From b78f56aca8cc90320af0b80f53e8e36582cf2842 Mon Sep 17 00:00:00 2001 From: Baptiste Toussaint <baptiste.toussaint@polymtl.ca> Date: Tue, 3 Mar 2020 11:25:00 -0500 Subject: [PATCH] [standard] mise en commun code complet controle icra --- Standard_robot/.mxproject | 14 +- Standard_robot/BSP | 2 +- .../Source/Templates/system_stm32f4xx.c | 743 ++++ .../Inc/stm32f4xx_hal_can.h | 848 ++++ .../Src/stm32f4xx_hal_can.c | 2464 +++++++++++ Standard_robot/Inc/can.h | 58 + Standard_robot/Inc/main.h | 24 + Standard_robot/Inc/stm32f4xx_hal_conf.h | 10 +- Standard_robot/Inc/stm32f4xx_it.h | 3 + Standard_robot/Inc/tim.h | 60 + Standard_robot/MDK-ARM/EventRecorderStub.scvd | 9 + .../MDK-ARM/Standard_robot.uvguix.Baptiste | 1932 +++++++++ .../MDK-ARM/Standard_robot.uvguix.avbet | 1887 +++++++++ .../MDK-ARM/Standard_robot.uvguix.charl | 378 +- .../MDK-ARM/Standard_robot.uvguix.natha | 3628 +++++++++++++++++ Standard_robot/MDK-ARM/Standard_robot.uvoptx | 344 +- Standard_robot/MDK-ARM/Standard_robot.uvprojx | 253 +- .../MDK-ARM/Standard_robot/Standard_robot.hex | 2130 ++++++---- Standard_robot/README.md | 8 +- Standard_robot/Src/can.c | 117 + Standard_robot/Src/dma.c | 3 + Standard_robot/Src/gpio.c | 56 + Standard_robot/Src/main.c | 119 +- Standard_robot/Src/stm32f4xx_it.c | 47 +- Standard_robot/Src/tim.c | 165 + Standard_robot/Src/usart.c | 26 +- Standard_robot/Standard_robot.ioc | 169 +- 27 files changed, 14163 insertions(+), 1334 deletions(-) create mode 100644 Standard_robot/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c create mode 100644 Standard_robot/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h create mode 100644 Standard_robot/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c create mode 100644 Standard_robot/Inc/can.h create mode 100644 Standard_robot/Inc/tim.h create mode 100644 Standard_robot/MDK-ARM/EventRecorderStub.scvd create mode 100644 Standard_robot/MDK-ARM/Standard_robot.uvguix.Baptiste create mode 100644 Standard_robot/MDK-ARM/Standard_robot.uvguix.avbet create mode 100644 Standard_robot/MDK-ARM/Standard_robot.uvguix.natha create mode 100644 Standard_robot/Src/can.c create mode 100644 Standard_robot/Src/tim.c diff --git a/Standard_robot/.mxproject b/Standard_robot/.mxproject index 4270762..9134c84 100644 --- a/Standard_robot/.mxproject +++ b/Standard_robot/.mxproject @@ -1,14 +1,14 @@ [PreviousGenFiles] -HeaderPath=D:/charl/Documents/Git/RM-Controle/Standard_robot/Inc -HeaderFiles=gpio.h;stm32f4xx_it.h;stm32f4xx_hal_conf.h;main.h;dma.h;usart.h;adc.h;spi.h; -SourcePath=D:/charl/Documents/Git/RM-Controle/Standard_robot/Src -SourceFiles=gpio.c;stm32f4xx_it.c;stm32f4xx_hal_msp.c;main.c;dma.c;usart.c;adc.c;spi.c; +HeaderPath=D:/Documents/ST/Polystar/Contrôle télécommande/Inc +HeaderFiles=gpio.h;stm32f4xx_it.h;stm32f4xx_hal_conf.h;main.h;dma.h;usart.h;adc.h;spi.h;can.h;tim.h; +SourcePath=D:/Documents/ST/Polystar/Contrôle télécommande/Src +SourceFiles=gpio.c;stm32f4xx_it.c;stm32f4xx_hal_msp.c;main.c;dma.c;usart.c;adc.c;spi.c;can.c;tim.c; [PreviousLibFiles] -LibFiles=Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f427xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/tz_context.h; +LibFiles=Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f427xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/tz_context.h; [PreviousUsedKeilFiles] -SourceFiles=..\Src\main.c;..\Src\gpio.c;..\Src\adc.c;..\Src\dma.c;..\Src\spi.c;..\Src\usart.c;..\Src\stm32f4xx_it.c;..\Src\stm32f4xx_hal_msp.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;../\Src/system_stm32f4xx.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;../\Src/system_stm32f4xx.c;../Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;null; +SourceFiles=..\Src\main.c;..\Src\gpio.c;..\Src\adc.c;..\Src\can.c;..\Src\dma.c;..\Src\spi.c;..\Src\tim.c;..\Src\usart.c;..\Src\stm32f4xx_it.c;..\Src\stm32f4xx_hal_msp.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\\Src/system_stm32f4xx.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\\Src/system_stm32f4xx.c;..\Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;; HeaderPath=..\Drivers\STM32F4xx_HAL_Driver\Inc;..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F4xx\Include;..\Drivers\CMSIS\Include;..\Inc; -CDefines=USE_HAL_DRIVER;STM32F427xx;USE_HAL_DRIVER;STM32F427xx; +CDefines=USE_HAL_DRIVER;STM32F427xx;USE_HAL_DRIVER;USE_HAL_DRIVER; diff --git a/Standard_robot/BSP b/Standard_robot/BSP index 66ff244..0bc8c82 160000 --- a/Standard_robot/BSP +++ b/Standard_robot/BSP @@ -1 +1 @@ -Subproject commit 66ff2446ccb7ab9beece58bfac843782050b30a7 +Subproject commit 0bc8c82cd532f1dddb0f0aa878c549ff939403a4 diff --git a/Standard_robot/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c b/Standard_robot/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c new file mode 100644 index 0000000..9037604 --- /dev/null +++ b/Standard_robot/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c @@ -0,0 +1,743 @@ +/** + ****************************************************************************** + * @file system_stm32f4xx.c + * @author MCD Application Team + * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File. + * + * This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32f4xx.s" file. + * + * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used + * by the user application to setup the SysTick + * timer or configure other parameters. + * + * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must + * be called whenever the core clock is changed + * during program execution. + * + * + ****************************************************************************** + * @attention + * + * <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2> + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32f4xx_system + * @{ + */ + +/** @addtogroup STM32F4xx_System_Private_Includes + * @{ + */ + + +#include "stm32f4xx.h" + +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Defines + * @{ + */ + +/************************* Miscellaneous Configuration ************************/ +/*!< Uncomment the following line if you need to use external SRAM or SDRAM as data memory */ +#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\ + || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx) +/* #define DATA_IN_ExtSRAM */ +#endif /* STM32F40xxx || STM32F41xxx || STM32F42xxx || STM32F43xxx || STM32F469xx || STM32F479xx ||\ + STM32F412Zx || STM32F412Vx */ + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) +/* #define DATA_IN_ExtSDRAM */ +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx ||\ + STM32F479xx */ + +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ +/******************************************************************************/ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Variables + * @{ + */ + /* This variable is updated in three ways: + 1) by calling CMSIS function SystemCoreClockUpdate() + 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + Note: If you use this function to configure the system clock; then there + is no need to call the 2 first functions listed above, since SystemCoreClock + variable is updated automatically. + */ +uint32_t SystemCoreClock = 16000000; +const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4}; +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_FunctionPrototypes + * @{ + */ + +#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) + static void SystemInit_ExtMemCtl(void); +#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system + * Initialize the FPU setting, vector table location and External memory + * configuration. + * @param None + * @retval None + */ +void SystemInit(void) +{ + /* FPU settings ------------------------------------------------------------*/ + #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ + #endif + +#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) + SystemInit_ExtMemCtl(); +#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */ + + /* Configure the Vector Table location add offset address ------------------*/ +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ +#endif +} + +/** + * @brief Update SystemCoreClock variable according to Clock Register Values. + * The SystemCoreClock variable contains the core clock (HCLK), it can + * be used by the user application to setup the SysTick timer or configure + * other parameters. + * + * @note Each time the core clock (HCLK) changes, this function must be called + * to update SystemCoreClock variable value. Otherwise, any configuration + * based on this variable will be incorrect. + * + * @note - The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * + * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) + * + * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) + * + * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) + * or HSI_VALUE(*) multiplied/divided by the PLL factors. + * + * (*) HSI_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value + * 16 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (**) HSE_VALUE is a constant defined in stm32f4xx_hal_conf.h file (its value + * depends on the application requirements), user has to ensure that HSE_VALUE + * is same as the real frequency of the crystal used. Otherwise, this function + * may have wrong result. + * + * - The result of this function could be not correct when using fractional + * value for HSE crystal. + * + * @param None + * @retval None + */ +void SystemCoreClockUpdate(void) +{ + uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2; + + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & RCC_CFGR_SWS; + + switch (tmp) + { + case 0x00: /* HSI used as system clock source */ + SystemCoreClock = HSI_VALUE; + break; + case 0x04: /* HSE used as system clock source */ + SystemCoreClock = HSE_VALUE; + break; + case 0x08: /* PLL used as system clock source */ + + /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N + SYSCLK = PLL_VCO / PLL_P + */ + pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22; + pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM; + + if (pllsource != 0) + { + /* HSE used as PLL clock source */ + pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6); + } + else + { + /* HSI used as PLL clock source */ + pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6); + } + + pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2; + SystemCoreClock = pllvco/pllp; + break; + default: + SystemCoreClock = HSI_VALUE; + break; + } + /* Compute HCLK frequency --------------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; + /* HCLK frequency */ + SystemCoreClock >>= tmp; +} + +#if defined (DATA_IN_ExtSRAM) && defined (DATA_IN_ExtSDRAM) +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) +/** + * @brief Setup the external memory controller. + * Called in startup_stm32f4xx.s before jump to main. + * This function configures the external memories (SRAM/SDRAM) + * This SRAM/SDRAM will be used as program data memory (including heap and stack). + * @param None + * @retval None + */ +void SystemInit_ExtMemCtl(void) +{ + __IO uint32_t tmp = 0x00; + + register uint32_t tmpreg = 0, timeout = 0xFFFF; + register __IO uint32_t index; + + /* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface clock */ + RCC->AHB1ENR |= 0x000001F8; + + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN); + + /* Connect PDx pins to FMC Alternate function */ + GPIOD->AFR[0] = 0x00CCC0CC; + GPIOD->AFR[1] = 0xCCCCCCCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xAAAA0A8A; + /* Configure PDx pins speed to 100 MHz */ + GPIOD->OSPEEDR = 0xFFFF0FCF; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FMC Alternate function */ + GPIOE->AFR[0] = 0xC00CC0CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA828A; + /* Configure PEx pins speed to 100 MHz */ + GPIOE->OSPEEDR = 0xFFFFC3CF; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FMC Alternate function */ + GPIOF->AFR[0] = 0xCCCCCCCC; + GPIOF->AFR[1] = 0xCCCCCCCC; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA800AAA; + /* Configure PFx pins speed to 50 MHz */ + GPIOF->OSPEEDR = 0xAA800AAA; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FMC Alternate function */ + GPIOG->AFR[0] = 0xCCCCCCCC; + GPIOG->AFR[1] = 0xCCCCCCCC; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0xAAAAAAAA; + /* Configure PGx pins speed to 50 MHz */ + GPIOG->OSPEEDR = 0xAAAAAAAA; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + + /* Connect PHx pins to FMC Alternate function */ + GPIOH->AFR[0] = 0x00C0CC00; + GPIOH->AFR[1] = 0xCCCCCCCC; + /* Configure PHx pins in Alternate function mode */ + GPIOH->MODER = 0xAAAA08A0; + /* Configure PHx pins speed to 50 MHz */ + GPIOH->OSPEEDR = 0xAAAA08A0; + /* Configure PHx pins Output type to push-pull */ + GPIOH->OTYPER = 0x00000000; + /* No pull-up, pull-down for PHx pins */ + GPIOH->PUPDR = 0x00000000; + + /* Connect PIx pins to FMC Alternate function */ + GPIOI->AFR[0] = 0xCCCCCCCC; + GPIOI->AFR[1] = 0x00000CC0; + /* Configure PIx pins in Alternate function mode */ + GPIOI->MODER = 0x0028AAAA; + /* Configure PIx pins speed to 50 MHz */ + GPIOI->OSPEEDR = 0x0028AAAA; + /* Configure PIx pins Output type to push-pull */ + GPIOI->OTYPER = 0x00000000; + /* No pull-up, pull-down for PIx pins */ + GPIOI->PUPDR = 0x00000000; + +/*-- FMC Configuration -------------------------------------------------------*/ + /* Enable the FMC interface clock */ + RCC->AHB3ENR |= 0x00000001; + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + + FMC_Bank5_6->SDCR[0] = 0x000019E4; + FMC_Bank5_6->SDTR[0] = 0x01115351; + + /* SDRAM initialization sequence */ + /* Clock enable command */ + FMC_Bank5_6->SDCMR = 0x00000011; + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Delay */ + for (index = 0; index<1000; index++); + + /* PALL command */ + FMC_Bank5_6->SDCMR = 0x00000012; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Auto refresh command */ + FMC_Bank5_6->SDCMR = 0x00000073; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* MRD register program */ + FMC_Bank5_6->SDCMR = 0x00046014; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Set refresh count */ + tmpreg = FMC_Bank5_6->SDRTR; + FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1)); + + /* Disable write protection */ + tmpreg = FMC_Bank5_6->SDCR[0]; + FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF); + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001011; + FMC_Bank1->BTCR[3] = 0x00000201; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */ +#if defined(STM32F469xx) || defined(STM32F479xx) + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001091; + FMC_Bank1->BTCR[3] = 0x00110212; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F469xx || STM32F479xx */ + + (void)(tmp); +} +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */ +#elif defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) +/** + * @brief Setup the external memory controller. + * Called in startup_stm32f4xx.s before jump to main. + * This function configures the external memories (SRAM/SDRAM) + * This SRAM/SDRAM will be used as program data memory (including heap and stack). + * @param None + * @retval None + */ +void SystemInit_ExtMemCtl(void) +{ + __IO uint32_t tmp = 0x00; +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) +#if defined (DATA_IN_ExtSDRAM) + register uint32_t tmpreg = 0, timeout = 0xFFFF; + register __IO uint32_t index; + +#if defined(STM32F446xx) + /* Enable GPIOA, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG interface + clock */ + RCC->AHB1ENR |= 0x0000007D; +#else + /* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface + clock */ + RCC->AHB1ENR |= 0x000001F8; +#endif /* STM32F446xx */ + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN); + +#if defined(STM32F446xx) + /* Connect PAx pins to FMC Alternate function */ + GPIOA->AFR[0] |= 0xC0000000; + GPIOA->AFR[1] |= 0x00000000; + /* Configure PDx pins in Alternate function mode */ + GPIOA->MODER |= 0x00008000; + /* Configure PDx pins speed to 50 MHz */ + GPIOA->OSPEEDR |= 0x00008000; + /* Configure PDx pins Output type to push-pull */ + GPIOA->OTYPER |= 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOA->PUPDR |= 0x00000000; + + /* Connect PCx pins to FMC Alternate function */ + GPIOC->AFR[0] |= 0x00CC0000; + GPIOC->AFR[1] |= 0x00000000; + /* Configure PDx pins in Alternate function mode */ + GPIOC->MODER |= 0x00000A00; + /* Configure PDx pins speed to 50 MHz */ + GPIOC->OSPEEDR |= 0x00000A00; + /* Configure PDx pins Output type to push-pull */ + GPIOC->OTYPER |= 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOC->PUPDR |= 0x00000000; +#endif /* STM32F446xx */ + + /* Connect PDx pins to FMC Alternate function */ + GPIOD->AFR[0] = 0x000000CC; + GPIOD->AFR[1] = 0xCC000CCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xA02A000A; + /* Configure PDx pins speed to 50 MHz */ + GPIOD->OSPEEDR = 0xA02A000A; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FMC Alternate function */ + GPIOE->AFR[0] = 0xC00000CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA800A; + /* Configure PEx pins speed to 50 MHz */ + GPIOE->OSPEEDR = 0xAAAA800A; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FMC Alternate function */ + GPIOF->AFR[0] = 0xCCCCCCCC; + GPIOF->AFR[1] = 0xCCCCCCCC; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA800AAA; + /* Configure PFx pins speed to 50 MHz */ + GPIOF->OSPEEDR = 0xAA800AAA; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FMC Alternate function */ + GPIOG->AFR[0] = 0xCCCCCCCC; + GPIOG->AFR[1] = 0xCCCCCCCC; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0xAAAAAAAA; + /* Configure PGx pins speed to 50 MHz */ + GPIOG->OSPEEDR = 0xAAAAAAAA; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) + /* Connect PHx pins to FMC Alternate function */ + GPIOH->AFR[0] = 0x00C0CC00; + GPIOH->AFR[1] = 0xCCCCCCCC; + /* Configure PHx pins in Alternate function mode */ + GPIOH->MODER = 0xAAAA08A0; + /* Configure PHx pins speed to 50 MHz */ + GPIOH->OSPEEDR = 0xAAAA08A0; + /* Configure PHx pins Output type to push-pull */ + GPIOH->OTYPER = 0x00000000; + /* No pull-up, pull-down for PHx pins */ + GPIOH->PUPDR = 0x00000000; + + /* Connect PIx pins to FMC Alternate function */ + GPIOI->AFR[0] = 0xCCCCCCCC; + GPIOI->AFR[1] = 0x00000CC0; + /* Configure PIx pins in Alternate function mode */ + GPIOI->MODER = 0x0028AAAA; + /* Configure PIx pins speed to 50 MHz */ + GPIOI->OSPEEDR = 0x0028AAAA; + /* Configure PIx pins Output type to push-pull */ + GPIOI->OTYPER = 0x00000000; + /* No pull-up, pull-down for PIx pins */ + GPIOI->PUPDR = 0x00000000; +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */ + +/*-- FMC Configuration -------------------------------------------------------*/ + /* Enable the FMC interface clock */ + RCC->AHB3ENR |= 0x00000001; + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + + /* Configure and enable SDRAM bank1 */ +#if defined(STM32F446xx) + FMC_Bank5_6->SDCR[0] = 0x00001954; +#else + FMC_Bank5_6->SDCR[0] = 0x000019E4; +#endif /* STM32F446xx */ + FMC_Bank5_6->SDTR[0] = 0x01115351; + + /* SDRAM initialization sequence */ + /* Clock enable command */ + FMC_Bank5_6->SDCMR = 0x00000011; + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Delay */ + for (index = 0; index<1000; index++); + + /* PALL command */ + FMC_Bank5_6->SDCMR = 0x00000012; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Auto refresh command */ +#if defined(STM32F446xx) + FMC_Bank5_6->SDCMR = 0x000000F3; +#else + FMC_Bank5_6->SDCMR = 0x00000073; +#endif /* STM32F446xx */ + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* MRD register program */ +#if defined(STM32F446xx) + FMC_Bank5_6->SDCMR = 0x00044014; +#else + FMC_Bank5_6->SDCMR = 0x00046014; +#endif /* STM32F446xx */ + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Set refresh count */ + tmpreg = FMC_Bank5_6->SDRTR; +#if defined(STM32F446xx) + FMC_Bank5_6->SDRTR = (tmpreg | (0x0000050C<<1)); +#else + FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1)); +#endif /* STM32F446xx */ + + /* Disable write protection */ + tmpreg = FMC_Bank5_6->SDCR[0]; + FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF); +#endif /* DATA_IN_ExtSDRAM */ +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */ + +#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\ + || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx) + +#if defined(DATA_IN_ExtSRAM) +/*-- GPIOs Configuration -----------------------------------------------------*/ + /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */ + RCC->AHB1ENR |= 0x00000078; + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIODEN); + + /* Connect PDx pins to FMC Alternate function */ + GPIOD->AFR[0] = 0x00CCC0CC; + GPIOD->AFR[1] = 0xCCCCCCCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xAAAA0A8A; + /* Configure PDx pins speed to 100 MHz */ + GPIOD->OSPEEDR = 0xFFFF0FCF; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FMC Alternate function */ + GPIOE->AFR[0] = 0xC00CC0CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA828A; + /* Configure PEx pins speed to 100 MHz */ + GPIOE->OSPEEDR = 0xFFFFC3CF; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FMC Alternate function */ + GPIOF->AFR[0] = 0x00CCCCCC; + GPIOF->AFR[1] = 0xCCCC0000; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA000AAA; + /* Configure PFx pins speed to 100 MHz */ + GPIOF->OSPEEDR = 0xFF000FFF; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FMC Alternate function */ + GPIOG->AFR[0] = 0x00CCCCCC; + GPIOG->AFR[1] = 0x000000C0; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0x00085AAA; + /* Configure PGx pins speed to 100 MHz */ + GPIOG->OSPEEDR = 0x000CAFFF; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + +/*-- FMC/FSMC Configuration --------------------------------------------------*/ + /* Enable the FMC/FSMC interface clock */ + RCC->AHB3ENR |= 0x00000001; + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001011; + FMC_Bank1->BTCR[3] = 0x00000201; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */ +#if defined(STM32F469xx) || defined(STM32F479xx) + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001091; + FMC_Bank1->BTCR[3] = 0x00110212; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F469xx || STM32F479xx */ +#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx)|| defined(STM32F417xx)\ + || defined(STM32F412Zx) || defined(STM32F412Vx) + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FSMCEN); + /* Configure and enable Bank1_SRAM2 */ + FSMC_Bank1->BTCR[2] = 0x00001011; + FSMC_Bank1->BTCR[3] = 0x00000201; + FSMC_Bank1E->BWTR[2] = 0x0FFFFFFF; +#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F412Zx || STM32F412Vx */ + +#endif /* DATA_IN_ExtSRAM */ +#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx || STM32F437xx ||\ + STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx || STM32F412Zx || STM32F412Vx */ + (void)(tmp); +} +#endif /* DATA_IN_ExtSRAM && DATA_IN_ExtSDRAM */ +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Standard_robot/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h b/Standard_robot/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h new file mode 100644 index 0000000..0611a65 --- /dev/null +++ b/Standard_robot/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h @@ -0,0 +1,848 @@ +/** + ****************************************************************************** + * @file stm32f4xx_hal_can.h + * @author MCD Application Team + * @brief Header file of CAN HAL module. + ****************************************************************************** + * @attention + * + * <h2><center>© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.</center></h2> + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32F4xx_HAL_CAN_H +#define STM32F4xx_HAL_CAN_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f4xx_hal_def.h" + +/** @addtogroup STM32F4xx_HAL_Driver + * @{ + */ + +#if defined (CAN1) +/** @addtogroup CAN + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup CAN_Exported_Types CAN Exported Types + * @{ + */ +/** + * @brief HAL State structures definition + */ +typedef enum +{ + HAL_CAN_STATE_RESET = 0x00U, /*!< CAN not yet initialized or disabled */ + HAL_CAN_STATE_READY = 0x01U, /*!< CAN initialized and ready for use */ + HAL_CAN_STATE_LISTENING = 0x02U, /*!< CAN receive process is ongoing */ + HAL_CAN_STATE_SLEEP_PENDING = 0x03U, /*!< CAN sleep request is pending */ + HAL_CAN_STATE_SLEEP_ACTIVE = 0x04U, /*!< CAN sleep mode is active */ + HAL_CAN_STATE_ERROR = 0x05U /*!< CAN error state */ + +} HAL_CAN_StateTypeDef; + +/** + * @brief CAN init structure definition + */ +typedef struct +{ + uint32_t Prescaler; /*!< Specifies the length of a time quantum. + This parameter must be a number between Min_Data = 1 and Max_Data = 1024. */ + + uint32_t Mode; /*!< Specifies the CAN operating mode. + This parameter can be a value of @ref CAN_operating_mode */ + + uint32_t SyncJumpWidth; /*!< Specifies the maximum number of time quanta the CAN hardware + is allowed to lengthen or shorten a bit to perform resynchronization. + This parameter can be a value of @ref CAN_synchronisation_jump_width */ + + uint32_t TimeSeg1; /*!< Specifies the number of time quanta in Bit Segment 1. + This parameter can be a value of @ref CAN_time_quantum_in_bit_segment_1 */ + + uint32_t TimeSeg2; /*!< Specifies the number of time quanta in Bit Segment 2. + This parameter can be a value of @ref CAN_time_quantum_in_bit_segment_2 */ + + FunctionalState TimeTriggeredMode; /*!< Enable or disable the time triggered communication mode. + This parameter can be set to ENABLE or DISABLE. */ + + FunctionalState AutoBusOff; /*!< Enable or disable the automatic bus-off management. + This parameter can be set to ENABLE or DISABLE. */ + + FunctionalState AutoWakeUp; /*!< Enable or disable the automatic wake-up mode. + This parameter can be set to ENABLE or DISABLE. */ + + FunctionalState AutoRetransmission; /*!< Enable or disable the non-automatic retransmission mode. + This parameter can be set to ENABLE or DISABLE. */ + + FunctionalState ReceiveFifoLocked; /*!< Enable or disable the Receive FIFO Locked mode. + This parameter can be set to ENABLE or DISABLE. */ + + FunctionalState TransmitFifoPriority;/*!< Enable or disable the transmit FIFO priority. + This parameter can be set to ENABLE or DISABLE. */ + +} CAN_InitTypeDef; + +/** + * @brief CAN filter configuration structure definition + */ +typedef struct +{ + uint32_t FilterIdHigh; /*!< Specifies the filter identification number (MSBs for a 32-bit + configuration, first one for a 16-bit configuration). + This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */ + + uint32_t FilterIdLow; /*!< Specifies the filter identification number (LSBs for a 32-bit + configuration, second one for a 16-bit configuration). + This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */ + + uint32_t FilterMaskIdHigh; /*!< Specifies the filter mask number or identification number, + according to the mode (MSBs for a 32-bit configuration, + first one for a 16-bit configuration). + This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */ + + uint32_t FilterMaskIdLow; /*!< Specifies the filter mask number or identification number, + according to the mode (LSBs for a 32-bit configuration, + second one for a 16-bit configuration). + This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */ + + uint32_t FilterFIFOAssignment; /*!< Specifies the FIFO (0 or 1U) which will be assigned to the filter. + This parameter can be a value of @ref CAN_filter_FIFO */ + + uint32_t FilterBank; /*!< Specifies the filter bank which will be initialized. + For single CAN instance(14 dedicated filter banks), + this parameter must be a number between Min_Data = 0 and Max_Data = 13. + For dual CAN instances(28 filter banks shared), + this parameter must be a number between Min_Data = 0 and Max_Data = 27. */ + + uint32_t FilterMode; /*!< Specifies the filter mode to be initialized. + This parameter can be a value of @ref CAN_filter_mode */ + + uint32_t FilterScale; /*!< Specifies the filter scale. + This parameter can be a value of @ref CAN_filter_scale */ + + uint32_t FilterActivation; /*!< Enable or disable the filter. + This parameter can be a value of @ref CAN_filter_activation */ + + uint32_t SlaveStartFilterBank; /*!< Select the start filter bank for the slave CAN instance. + For single CAN instances, this parameter is meaningless. + For dual CAN instances, all filter banks with lower index are assigned to master + CAN instance, whereas all filter banks with greater index are assigned to slave + CAN instance. + This parameter must be a number between Min_Data = 0 and Max_Data = 27. */ + +} CAN_FilterTypeDef; + +/** + * @brief CAN Tx message header structure definition + */ +typedef struct +{ + uint32_t StdId; /*!< Specifies the standard identifier. + This parameter must be a number between Min_Data = 0 and Max_Data = 0x7FF. */ + + uint32_t ExtId; /*!< Specifies the extended identifier. + This parameter must be a number between Min_Data = 0 and Max_Data = 0x1FFFFFFF. */ + + uint32_t IDE; /*!< Specifies the type of identifier for the message that will be transmitted. + This parameter can be a value of @ref CAN_identifier_type */ + + uint32_t RTR; /*!< Specifies the type of frame for the message that will be transmitted. + This parameter can be a value of @ref CAN_remote_transmission_request */ + + uint32_t DLC; /*!< Specifies the length of the frame that will be transmitted. + This parameter must be a number between Min_Data = 0 and Max_Data = 8. */ + + FunctionalState TransmitGlobalTime; /*!< Specifies whether the timestamp counter value captured on start + of frame transmission, is sent in DATA6 and DATA7 replacing pData[6] and pData[7]. + @note: Time Triggered Communication Mode must be enabled. + @note: DLC must be programmed as 8 bytes, in order these 2 bytes are sent. + This parameter can be set to ENABLE or DISABLE. */ + +} CAN_TxHeaderTypeDef; + +/** + * @brief CAN Rx message header structure definition + */ +typedef struct +{ + uint32_t StdId; /*!< Specifies the standard identifier. + This parameter must be a number between Min_Data = 0 and Max_Data = 0x7FF. */ + + uint32_t ExtId; /*!< Specifies the extended identifier. + This parameter must be a number between Min_Data = 0 and Max_Data = 0x1FFFFFFF. */ + + uint32_t IDE; /*!< Specifies the type of identifier for the message that will be transmitted. + This parameter can be a value of @ref CAN_identifier_type */ + + uint32_t RTR; /*!< Specifies the type of frame for the message that will be transmitted. + This parameter can be a value of @ref CAN_remote_transmission_request */ + + uint32_t DLC; /*!< Specifies the length of the frame that will be transmitted. + This parameter must be a number between Min_Data = 0 and Max_Data = 8. */ + + uint32_t Timestamp; /*!< Specifies the timestamp counter value captured on start of frame reception. + @note: Time Triggered Communication Mode must be enabled. + This parameter must be a number between Min_Data = 0 and Max_Data = 0xFFFF. */ + + uint32_t FilterMatchIndex; /*!< Specifies the index of matching acceptance filter element. + This parameter must be a number between Min_Data = 0 and Max_Data = 0xFF. */ + +} CAN_RxHeaderTypeDef; + +/** + * @brief CAN handle Structure definition + */ +typedef struct __CAN_HandleTypeDef +{ + CAN_TypeDef *Instance; /*!< Register base address */ + + CAN_InitTypeDef Init; /*!< CAN required parameters */ + + __IO HAL_CAN_StateTypeDef State; /*!< CAN communication state */ + + __IO uint32_t ErrorCode; /*!< CAN Error code. + This parameter can be a value of @ref CAN_Error_Code */ + +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + void (* TxMailbox0CompleteCallback)(struct __CAN_HandleTypeDef *hcan);/*!< CAN Tx Mailbox 0 complete callback */ + void (* TxMailbox1CompleteCallback)(struct __CAN_HandleTypeDef *hcan);/*!< CAN Tx Mailbox 1 complete callback */ + void (* TxMailbox2CompleteCallback)(struct __CAN_HandleTypeDef *hcan);/*!< CAN Tx Mailbox 2 complete callback */ + void (* TxMailbox0AbortCallback)(struct __CAN_HandleTypeDef *hcan); /*!< CAN Tx Mailbox 0 abort callback */ + void (* TxMailbox1AbortCallback)(struct __CAN_HandleTypeDef *hcan); /*!< CAN Tx Mailbox 1 abort callback */ + void (* TxMailbox2AbortCallback)(struct __CAN_HandleTypeDef *hcan); /*!< CAN Tx Mailbox 2 abort callback */ + void (* RxFifo0MsgPendingCallback)(struct __CAN_HandleTypeDef *hcan); /*!< CAN Rx FIFO 0 msg pending callback */ + void (* RxFifo0FullCallback)(struct __CAN_HandleTypeDef *hcan); /*!< CAN Rx FIFO 0 full callback */ + void (* RxFifo1MsgPendingCallback)(struct __CAN_HandleTypeDef *hcan); /*!< CAN Rx FIFO 1 msg pending callback */ + void (* RxFifo1FullCallback)(struct __CAN_HandleTypeDef *hcan); /*!< CAN Rx FIFO 1 full callback */ + void (* SleepCallback)(struct __CAN_HandleTypeDef *hcan); /*!< CAN Sleep callback */ + void (* WakeUpFromRxMsgCallback)(struct __CAN_HandleTypeDef *hcan); /*!< CAN Wake Up from Rx msg callback */ + void (* ErrorCallback)(struct __CAN_HandleTypeDef *hcan); /*!< CAN Error callback */ + + void (* MspInitCallback)(struct __CAN_HandleTypeDef *hcan); /*!< CAN Msp Init callback */ + void (* MspDeInitCallback)(struct __CAN_HandleTypeDef *hcan); /*!< CAN Msp DeInit callback */ + +#endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */ +} CAN_HandleTypeDef; + +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 +/** + * @brief HAL CAN common Callback ID enumeration definition + */ +typedef enum +{ + HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID = 0x00U, /*!< CAN Tx Mailbox 0 complete callback ID */ + HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID = 0x01U, /*!< CAN Tx Mailbox 1 complete callback ID */ + HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID = 0x02U, /*!< CAN Tx Mailbox 2 complete callback ID */ + HAL_CAN_TX_MAILBOX0_ABORT_CB_ID = 0x03U, /*!< CAN Tx Mailbox 0 abort callback ID */ + HAL_CAN_TX_MAILBOX1_ABORT_CB_ID = 0x04U, /*!< CAN Tx Mailbox 1 abort callback ID */ + HAL_CAN_TX_MAILBOX2_ABORT_CB_ID = 0x05U, /*!< CAN Tx Mailbox 2 abort callback ID */ + HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID = 0x06U, /*!< CAN Rx FIFO 0 message pending callback ID */ + HAL_CAN_RX_FIFO0_FULL_CB_ID = 0x07U, /*!< CAN Rx FIFO 0 full callback ID */ + HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID = 0x08U, /*!< CAN Rx FIFO 1 message pending callback ID */ + HAL_CAN_RX_FIFO1_FULL_CB_ID = 0x09U, /*!< CAN Rx FIFO 1 full callback ID */ + HAL_CAN_SLEEP_CB_ID = 0x0AU, /*!< CAN Sleep callback ID */ + HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID = 0x0BU, /*!< CAN Wake Up fropm Rx msg callback ID */ + HAL_CAN_ERROR_CB_ID = 0x0CU, /*!< CAN Error callback ID */ + + HAL_CAN_MSPINIT_CB_ID = 0x0DU, /*!< CAN MspInit callback ID */ + HAL_CAN_MSPDEINIT_CB_ID = 0x0EU, /*!< CAN MspDeInit callback ID */ + +} HAL_CAN_CallbackIDTypeDef; + +/** + * @brief HAL CAN Callback pointer definition + */ +typedef void (*pCAN_CallbackTypeDef)(CAN_HandleTypeDef *hcan); /*!< pointer to a CAN callback function */ + +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup CAN_Exported_Constants CAN Exported Constants + * @{ + */ + +/** @defgroup CAN_Error_Code CAN Error Code + * @{ + */ +#define HAL_CAN_ERROR_NONE (0x00000000U) /*!< No error */ +#define HAL_CAN_ERROR_EWG (0x00000001U) /*!< Protocol Error Warning */ +#define HAL_CAN_ERROR_EPV (0x00000002U) /*!< Error Passive */ +#define HAL_CAN_ERROR_BOF (0x00000004U) /*!< Bus-off error */ +#define HAL_CAN_ERROR_STF (0x00000008U) /*!< Stuff error */ +#define HAL_CAN_ERROR_FOR (0x00000010U) /*!< Form error */ +#define HAL_CAN_ERROR_ACK (0x00000020U) /*!< Acknowledgment error */ +#define HAL_CAN_ERROR_BR (0x00000040U) /*!< Bit recessive error */ +#define HAL_CAN_ERROR_BD (0x00000080U) /*!< Bit dominant error */ +#define HAL_CAN_ERROR_CRC (0x00000100U) /*!< CRC error */ +#define HAL_CAN_ERROR_RX_FOV0 (0x00000200U) /*!< Rx FIFO0 overrun error */ +#define HAL_CAN_ERROR_RX_FOV1 (0x00000400U) /*!< Rx FIFO1 overrun error */ +#define HAL_CAN_ERROR_TX_ALST0 (0x00000800U) /*!< TxMailbox 0 transmit failure due to arbitration lost */ +#define HAL_CAN_ERROR_TX_TERR0 (0x00001000U) /*!< TxMailbox 1 transmit failure due to tranmit error */ +#define HAL_CAN_ERROR_TX_ALST1 (0x00002000U) /*!< TxMailbox 0 transmit failure due to arbitration lost */ +#define HAL_CAN_ERROR_TX_TERR1 (0x00004000U) /*!< TxMailbox 1 transmit failure due to tranmit error */ +#define HAL_CAN_ERROR_TX_ALST2 (0x00008000U) /*!< TxMailbox 0 transmit failure due to arbitration lost */ +#define HAL_CAN_ERROR_TX_TERR2 (0x00010000U) /*!< TxMailbox 1 transmit failure due to tranmit error */ +#define HAL_CAN_ERROR_TIMEOUT (0x00020000U) /*!< Timeout error */ +#define HAL_CAN_ERROR_NOT_INITIALIZED (0x00040000U) /*!< Peripheral not initialized */ +#define HAL_CAN_ERROR_NOT_READY (0x00080000U) /*!< Peripheral not ready */ +#define HAL_CAN_ERROR_NOT_STARTED (0x00100000U) /*!< Peripheral not started */ +#define HAL_CAN_ERROR_PARAM (0x00200000U) /*!< Parameter error */ + +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 +#define HAL_CAN_ERROR_INVALID_CALLBACK (0x00400000U) /*!< Invalid Callback error */ +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ +#define HAL_CAN_ERROR_INTERNAL (0x00800000U) /*!< Internal error */ + +/** + * @} + */ + +/** @defgroup CAN_InitStatus CAN InitStatus + * @{ + */ +#define CAN_INITSTATUS_FAILED (0x00000000U) /*!< CAN initialization failed */ +#define CAN_INITSTATUS_SUCCESS (0x00000001U) /*!< CAN initialization OK */ +/** + * @} + */ + +/** @defgroup CAN_operating_mode CAN Operating Mode + * @{ + */ +#define CAN_MODE_NORMAL (0x00000000U) /*!< Normal mode */ +#define CAN_MODE_LOOPBACK ((uint32_t)CAN_BTR_LBKM) /*!< Loopback mode */ +#define CAN_MODE_SILENT ((uint32_t)CAN_BTR_SILM) /*!< Silent mode */ +#define CAN_MODE_SILENT_LOOPBACK ((uint32_t)(CAN_BTR_LBKM | CAN_BTR_SILM)) /*!< Loopback combined with silent mode */ +/** + * @} + */ + + +/** @defgroup CAN_synchronisation_jump_width CAN Synchronization Jump Width + * @{ + */ +#define CAN_SJW_1TQ (0x00000000U) /*!< 1 time quantum */ +#define CAN_SJW_2TQ ((uint32_t)CAN_BTR_SJW_0) /*!< 2 time quantum */ +#define CAN_SJW_3TQ ((uint32_t)CAN_BTR_SJW_1) /*!< 3 time quantum */ +#define CAN_SJW_4TQ ((uint32_t)CAN_BTR_SJW) /*!< 4 time quantum */ +/** + * @} + */ + +/** @defgroup CAN_time_quantum_in_bit_segment_1 CAN Time Quantum in Bit Segment 1 + * @{ + */ +#define CAN_BS1_1TQ (0x00000000U) /*!< 1 time quantum */ +#define CAN_BS1_2TQ ((uint32_t)CAN_BTR_TS1_0) /*!< 2 time quantum */ +#define CAN_BS1_3TQ ((uint32_t)CAN_BTR_TS1_1) /*!< 3 time quantum */ +#define CAN_BS1_4TQ ((uint32_t)(CAN_BTR_TS1_1 | CAN_BTR_TS1_0)) /*!< 4 time quantum */ +#define CAN_BS1_5TQ ((uint32_t)CAN_BTR_TS1_2) /*!< 5 time quantum */ +#define CAN_BS1_6TQ ((uint32_t)(CAN_BTR_TS1_2 | CAN_BTR_TS1_0)) /*!< 6 time quantum */ +#define CAN_BS1_7TQ ((uint32_t)(CAN_BTR_TS1_2 | CAN_BTR_TS1_1)) /*!< 7 time quantum */ +#define CAN_BS1_8TQ ((uint32_t)(CAN_BTR_TS1_2 | CAN_BTR_TS1_1 | CAN_BTR_TS1_0)) /*!< 8 time quantum */ +#define CAN_BS1_9TQ ((uint32_t)CAN_BTR_TS1_3) /*!< 9 time quantum */ +#define CAN_BS1_10TQ ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_0)) /*!< 10 time quantum */ +#define CAN_BS1_11TQ ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_1)) /*!< 11 time quantum */ +#define CAN_BS1_12TQ ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_1 | CAN_BTR_TS1_0)) /*!< 12 time quantum */ +#define CAN_BS1_13TQ ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_2)) /*!< 13 time quantum */ +#define CAN_BS1_14TQ ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_2 | CAN_BTR_TS1_0)) /*!< 14 time quantum */ +#define CAN_BS1_15TQ ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_2 | CAN_BTR_TS1_1)) /*!< 15 time quantum */ +#define CAN_BS1_16TQ ((uint32_t)CAN_BTR_TS1) /*!< 16 time quantum */ +/** + * @} + */ + +/** @defgroup CAN_time_quantum_in_bit_segment_2 CAN Time Quantum in Bit Segment 2 + * @{ + */ +#define CAN_BS2_1TQ (0x00000000U) /*!< 1 time quantum */ +#define CAN_BS2_2TQ ((uint32_t)CAN_BTR_TS2_0) /*!< 2 time quantum */ +#define CAN_BS2_3TQ ((uint32_t)CAN_BTR_TS2_1) /*!< 3 time quantum */ +#define CAN_BS2_4TQ ((uint32_t)(CAN_BTR_TS2_1 | CAN_BTR_TS2_0)) /*!< 4 time quantum */ +#define CAN_BS2_5TQ ((uint32_t)CAN_BTR_TS2_2) /*!< 5 time quantum */ +#define CAN_BS2_6TQ ((uint32_t)(CAN_BTR_TS2_2 | CAN_BTR_TS2_0)) /*!< 6 time quantum */ +#define CAN_BS2_7TQ ((uint32_t)(CAN_BTR_TS2_2 | CAN_BTR_TS2_1)) /*!< 7 time quantum */ +#define CAN_BS2_8TQ ((uint32_t)CAN_BTR_TS2) /*!< 8 time quantum */ +/** + * @} + */ + +/** @defgroup CAN_filter_mode CAN Filter Mode + * @{ + */ +#define CAN_FILTERMODE_IDMASK (0x00000000U) /*!< Identifier mask mode */ +#define CAN_FILTERMODE_IDLIST (0x00000001U) /*!< Identifier list mode */ +/** + * @} + */ + +/** @defgroup CAN_filter_scale CAN Filter Scale + * @{ + */ +#define CAN_FILTERSCALE_16BIT (0x00000000U) /*!< Two 16-bit filters */ +#define CAN_FILTERSCALE_32BIT (0x00000001U) /*!< One 32-bit filter */ +/** + * @} + */ + +/** @defgroup CAN_filter_activation CAN Filter Activation + * @{ + */ +#define CAN_FILTER_DISABLE (0x00000000U) /*!< Disable filter */ +#define CAN_FILTER_ENABLE (0x00000001U) /*!< Enable filter */ +/** + * @} + */ + +/** @defgroup CAN_filter_FIFO CAN Filter FIFO + * @{ + */ +#define CAN_FILTER_FIFO0 (0x00000000U) /*!< Filter FIFO 0 assignment for filter x */ +#define CAN_FILTER_FIFO1 (0x00000001U) /*!< Filter FIFO 1 assignment for filter x */ +/** + * @} + */ + +/** @defgroup CAN_identifier_type CAN Identifier Type + * @{ + */ +#define CAN_ID_STD (0x00000000U) /*!< Standard Id */ +#define CAN_ID_EXT (0x00000004U) /*!< Extended Id */ +/** + * @} + */ + +/** @defgroup CAN_remote_transmission_request CAN Remote Transmission Request + * @{ + */ +#define CAN_RTR_DATA (0x00000000U) /*!< Data frame */ +#define CAN_RTR_REMOTE (0x00000002U) /*!< Remote frame */ +/** + * @} + */ + +/** @defgroup CAN_receive_FIFO_number CAN Receive FIFO Number + * @{ + */ +#define CAN_RX_FIFO0 (0x00000000U) /*!< CAN receive FIFO 0 */ +#define CAN_RX_FIFO1 (0x00000001U) /*!< CAN receive FIFO 1 */ +/** + * @} + */ + +/** @defgroup CAN_Tx_Mailboxes CAN Tx Mailboxes + * @{ + */ +#define CAN_TX_MAILBOX0 (0x00000001U) /*!< Tx Mailbox 0 */ +#define CAN_TX_MAILBOX1 (0x00000002U) /*!< Tx Mailbox 1 */ +#define CAN_TX_MAILBOX2 (0x00000004U) /*!< Tx Mailbox 2 */ +/** + * @} + */ + +/** @defgroup CAN_flags CAN Flags + * @{ + */ +/* Transmit Flags */ +#define CAN_FLAG_RQCP0 (0x00000500U) /*!< Request complete MailBox 0 flag */ +#define CAN_FLAG_TXOK0 (0x00000501U) /*!< Transmission OK MailBox 0 flag */ +#define CAN_FLAG_ALST0 (0x00000502U) /*!< Arbitration Lost MailBox 0 flag */ +#define CAN_FLAG_TERR0 (0x00000503U) /*!< Transmission error MailBox 0 flag */ +#define CAN_FLAG_RQCP1 (0x00000508U) /*!< Request complete MailBox1 flag */ +#define CAN_FLAG_TXOK1 (0x00000509U) /*!< Transmission OK MailBox 1 flag */ +#define CAN_FLAG_ALST1 (0x0000050AU) /*!< Arbitration Lost MailBox 1 flag */ +#define CAN_FLAG_TERR1 (0x0000050BU) /*!< Transmission error MailBox 1 flag */ +#define CAN_FLAG_RQCP2 (0x00000510U) /*!< Request complete MailBox2 flag */ +#define CAN_FLAG_TXOK2 (0x00000511U) /*!< Transmission OK MailBox 2 flag */ +#define CAN_FLAG_ALST2 (0x00000512U) /*!< Arbitration Lost MailBox 2 flag */ +#define CAN_FLAG_TERR2 (0x00000513U) /*!< Transmission error MailBox 2 flag */ +#define CAN_FLAG_TME0 (0x0000051AU) /*!< Transmit mailbox 0 empty flag */ +#define CAN_FLAG_TME1 (0x0000051BU) /*!< Transmit mailbox 1 empty flag */ +#define CAN_FLAG_TME2 (0x0000051CU) /*!< Transmit mailbox 2 empty flag */ +#define CAN_FLAG_LOW0 (0x0000051DU) /*!< Lowest priority mailbox 0 flag */ +#define CAN_FLAG_LOW1 (0x0000051EU) /*!< Lowest priority mailbox 1 flag */ +#define CAN_FLAG_LOW2 (0x0000051FU) /*!< Lowest priority mailbox 2 flag */ + +/* Receive Flags */ +#define CAN_FLAG_FF0 (0x00000203U) /*!< RX FIFO 0 Full flag */ +#define CAN_FLAG_FOV0 (0x00000204U) /*!< RX FIFO 0 Overrun flag */ +#define CAN_FLAG_FF1 (0x00000403U) /*!< RX FIFO 1 Full flag */ +#define CAN_FLAG_FOV1 (0x00000404U) /*!< RX FIFO 1 Overrun flag */ + +/* Operating Mode Flags */ +#define CAN_FLAG_INAK (0x00000100U) /*!< Initialization acknowledge flag */ +#define CAN_FLAG_SLAK (0x00000101U) /*!< Sleep acknowledge flag */ +#define CAN_FLAG_ERRI (0x00000102U) /*!< Error flag */ +#define CAN_FLAG_WKU (0x00000103U) /*!< Wake up interrupt flag */ +#define CAN_FLAG_SLAKI (0x00000104U) /*!< Sleep acknowledge interrupt flag */ + +/* Error Flags */ +#define CAN_FLAG_EWG (0x00000300U) /*!< Error warning flag */ +#define CAN_FLAG_EPV (0x00000301U) /*!< Error passive flag */ +#define CAN_FLAG_BOF (0x00000302U) /*!< Bus-Off flag */ +/** + * @} + */ + + +/** @defgroup CAN_Interrupts CAN Interrupts + * @{ + */ +/* Transmit Interrupt */ +#define CAN_IT_TX_MAILBOX_EMPTY ((uint32_t)CAN_IER_TMEIE) /*!< Transmit mailbox empty interrupt */ + +/* Receive Interrupts */ +#define CAN_IT_RX_FIFO0_MSG_PENDING ((uint32_t)CAN_IER_FMPIE0) /*!< FIFO 0 message pending interrupt */ +#define CAN_IT_RX_FIFO0_FULL ((uint32_t)CAN_IER_FFIE0) /*!< FIFO 0 full interrupt */ +#define CAN_IT_RX_FIFO0_OVERRUN ((uint32_t)CAN_IER_FOVIE0) /*!< FIFO 0 overrun interrupt */ +#define CAN_IT_RX_FIFO1_MSG_PENDING ((uint32_t)CAN_IER_FMPIE1) /*!< FIFO 1 message pending interrupt */ +#define CAN_IT_RX_FIFO1_FULL ((uint32_t)CAN_IER_FFIE1) /*!< FIFO 1 full interrupt */ +#define CAN_IT_RX_FIFO1_OVERRUN ((uint32_t)CAN_IER_FOVIE1) /*!< FIFO 1 overrun interrupt */ + +/* Operating Mode Interrupts */ +#define CAN_IT_WAKEUP ((uint32_t)CAN_IER_WKUIE) /*!< Wake-up interrupt */ +#define CAN_IT_SLEEP_ACK ((uint32_t)CAN_IER_SLKIE) /*!< Sleep acknowledge interrupt */ + +/* Error Interrupts */ +#define CAN_IT_ERROR_WARNING ((uint32_t)CAN_IER_EWGIE) /*!< Error warning interrupt */ +#define CAN_IT_ERROR_PASSIVE ((uint32_t)CAN_IER_EPVIE) /*!< Error passive interrupt */ +#define CAN_IT_BUSOFF ((uint32_t)CAN_IER_BOFIE) /*!< Bus-off interrupt */ +#define CAN_IT_LAST_ERROR_CODE ((uint32_t)CAN_IER_LECIE) /*!< Last error code interrupt */ +#define CAN_IT_ERROR ((uint32_t)CAN_IER_ERRIE) /*!< Error Interrupt */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ +/** @defgroup CAN_Exported_Macros CAN Exported Macros + * @{ + */ + +/** @brief Reset CAN handle state + * @param __HANDLE__ CAN handle. + * @retval None + */ +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 +#define __HAL_CAN_RESET_HANDLE_STATE(__HANDLE__) do{ \ + (__HANDLE__)->State = HAL_CAN_STATE_RESET; \ + (__HANDLE__)->MspInitCallback = NULL; \ + (__HANDLE__)->MspDeInitCallback = NULL; \ + } while(0) +#else +#define __HAL_CAN_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_CAN_STATE_RESET) +#endif /*USE_HAL_CAN_REGISTER_CALLBACKS */ + +/** + * @brief Enable the specified CAN interrupts. + * @param __HANDLE__ CAN handle. + * @param __INTERRUPT__ CAN Interrupt sources to enable. + * This parameter can be any combination of @arg CAN_Interrupts + * @retval None + */ +#define __HAL_CAN_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->IER) |= (__INTERRUPT__)) + +/** + * @brief Disable the specified CAN interrupts. + * @param __HANDLE__ CAN handle. + * @param __INTERRUPT__ CAN Interrupt sources to disable. + * This parameter can be any combination of @arg CAN_Interrupts + * @retval None + */ +#define __HAL_CAN_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->IER) &= ~(__INTERRUPT__)) + +/** @brief Check if the specified CAN interrupt source is enabled or disabled. + * @param __HANDLE__ specifies the CAN Handle. + * @param __INTERRUPT__ specifies the CAN interrupt source to check. + * This parameter can be a value of @arg CAN_Interrupts + * @retval The state of __IT__ (TRUE or FALSE). + */ +#define __HAL_CAN_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->IER) & (__INTERRUPT__)) + +/** @brief Check whether the specified CAN flag is set or not. + * @param __HANDLE__ specifies the CAN Handle. + * @param __FLAG__ specifies the flag to check. + * This parameter can be one of @arg CAN_flags + * @retval The state of __FLAG__ (TRUE or FALSE). + */ +#define __HAL_CAN_GET_FLAG(__HANDLE__, __FLAG__) \ + ((((__FLAG__) >> 8U) == 5U)? ((((__HANDLE__)->Instance->TSR) & (1U << ((__FLAG__) & CAN_FLAG_MASK))) == (1U << ((__FLAG__) & CAN_FLAG_MASK))): \ + (((__FLAG__) >> 8U) == 2U)? ((((__HANDLE__)->Instance->RF0R) & (1U << ((__FLAG__) & CAN_FLAG_MASK))) == (1U << ((__FLAG__) & CAN_FLAG_MASK))): \ + (((__FLAG__) >> 8U) == 4U)? ((((__HANDLE__)->Instance->RF1R) & (1U << ((__FLAG__) & CAN_FLAG_MASK))) == (1U << ((__FLAG__) & CAN_FLAG_MASK))): \ + (((__FLAG__) >> 8U) == 1U)? ((((__HANDLE__)->Instance->MSR) & (1U << ((__FLAG__) & CAN_FLAG_MASK))) == (1U << ((__FLAG__) & CAN_FLAG_MASK))): \ + (((__FLAG__) >> 8U) == 3U)? ((((__HANDLE__)->Instance->ESR) & (1U << ((__FLAG__) & CAN_FLAG_MASK))) == (1U << ((__FLAG__) & CAN_FLAG_MASK))): 0U) + +/** @brief Clear the specified CAN pending flag. + * @param __HANDLE__ specifies the CAN Handle. + * @param __FLAG__ specifies the flag to check. + * This parameter can be one of the following values: + * @arg CAN_FLAG_RQCP0: Request complete MailBox 0 Flag + * @arg CAN_FLAG_TXOK0: Transmission OK MailBox 0 Flag + * @arg CAN_FLAG_ALST0: Arbitration Lost MailBox 0 Flag + * @arg CAN_FLAG_TERR0: Transmission error MailBox 0 Flag + * @arg CAN_FLAG_RQCP1: Request complete MailBox 1 Flag + * @arg CAN_FLAG_TXOK1: Transmission OK MailBox 1 Flag + * @arg CAN_FLAG_ALST1: Arbitration Lost MailBox 1 Flag + * @arg CAN_FLAG_TERR1: Transmission error MailBox 1 Flag + * @arg CAN_FLAG_RQCP2: Request complete MailBox 2 Flag + * @arg CAN_FLAG_TXOK2: Transmission OK MailBox 2 Flag + * @arg CAN_FLAG_ALST2: Arbitration Lost MailBox 2 Flag + * @arg CAN_FLAG_TERR2: Transmission error MailBox 2 Flag + * @arg CAN_FLAG_FF0: RX FIFO 0 Full Flag + * @arg CAN_FLAG_FOV0: RX FIFO 0 Overrun Flag + * @arg CAN_FLAG_FF1: RX FIFO 1 Full Flag + * @arg CAN_FLAG_FOV1: RX FIFO 1 Overrun Flag + * @arg CAN_FLAG_WKUI: Wake up Interrupt Flag + * @arg CAN_FLAG_SLAKI: Sleep acknowledge Interrupt Flag + * @retval None + */ +#define __HAL_CAN_CLEAR_FLAG(__HANDLE__, __FLAG__) \ + ((((__FLAG__) >> 8U) == 5U)? (((__HANDLE__)->Instance->TSR) = (1U << ((__FLAG__) & CAN_FLAG_MASK))): \ + (((__FLAG__) >> 8U) == 2U)? (((__HANDLE__)->Instance->RF0R) = (1U << ((__FLAG__) & CAN_FLAG_MASK))): \ + (((__FLAG__) >> 8U) == 4U)? (((__HANDLE__)->Instance->RF1R) = (1U << ((__FLAG__) & CAN_FLAG_MASK))): \ + (((__FLAG__) >> 8U) == 1U)? (((__HANDLE__)->Instance->MSR) = (1U << ((__FLAG__) & CAN_FLAG_MASK))): 0U) + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup CAN_Exported_Functions CAN Exported Functions + * @{ + */ + +/** @addtogroup CAN_Exported_Functions_Group1 Initialization and de-initialization functions + * @brief Initialization and Configuration functions + * @{ + */ + +/* Initialization and de-initialization functions *****************************/ +HAL_StatusTypeDef HAL_CAN_Init(CAN_HandleTypeDef *hcan); +HAL_StatusTypeDef HAL_CAN_DeInit(CAN_HandleTypeDef *hcan); +void HAL_CAN_MspInit(CAN_HandleTypeDef *hcan); +void HAL_CAN_MspDeInit(CAN_HandleTypeDef *hcan); + +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 +/* Callbacks Register/UnRegister functions ***********************************/ +HAL_StatusTypeDef HAL_CAN_RegisterCallback(CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef CallbackID, void (* pCallback)(CAN_HandleTypeDef *_hcan)); +HAL_StatusTypeDef HAL_CAN_UnRegisterCallback(CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef CallbackID); + +#endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */ +/** + * @} + */ + +/** @addtogroup CAN_Exported_Functions_Group2 Configuration functions + * @brief Configuration functions + * @{ + */ + +/* Configuration functions ****************************************************/ +HAL_StatusTypeDef HAL_CAN_ConfigFilter(CAN_HandleTypeDef *hcan, CAN_FilterTypeDef *sFilterConfig); + +/** + * @} + */ + +/** @addtogroup CAN_Exported_Functions_Group3 Control functions + * @brief Control functions + * @{ + */ + +/* Control functions **********************************************************/ +HAL_StatusTypeDef HAL_CAN_Start(CAN_HandleTypeDef *hcan); +HAL_StatusTypeDef HAL_CAN_Stop(CAN_HandleTypeDef *hcan); +HAL_StatusTypeDef HAL_CAN_RequestSleep(CAN_HandleTypeDef *hcan); +HAL_StatusTypeDef HAL_CAN_WakeUp(CAN_HandleTypeDef *hcan); +uint32_t HAL_CAN_IsSleepActive(CAN_HandleTypeDef *hcan); +HAL_StatusTypeDef HAL_CAN_AddTxMessage(CAN_HandleTypeDef *hcan, CAN_TxHeaderTypeDef *pHeader, uint8_t aData[], uint32_t *pTxMailbox); +HAL_StatusTypeDef HAL_CAN_AbortTxRequest(CAN_HandleTypeDef *hcan, uint32_t TxMailboxes); +uint32_t HAL_CAN_GetTxMailboxesFreeLevel(CAN_HandleTypeDef *hcan); +uint32_t HAL_CAN_IsTxMessagePending(CAN_HandleTypeDef *hcan, uint32_t TxMailboxes); +uint32_t HAL_CAN_GetTxTimestamp(CAN_HandleTypeDef *hcan, uint32_t TxMailbox); +HAL_StatusTypeDef HAL_CAN_GetRxMessage(CAN_HandleTypeDef *hcan, uint32_t RxFifo, CAN_RxHeaderTypeDef *pHeader, uint8_t aData[]); +uint32_t HAL_CAN_GetRxFifoFillLevel(CAN_HandleTypeDef *hcan, uint32_t RxFifo); + +/** + * @} + */ + +/** @addtogroup CAN_Exported_Functions_Group4 Interrupts management + * @brief Interrupts management + * @{ + */ +/* Interrupts management ******************************************************/ +HAL_StatusTypeDef HAL_CAN_ActivateNotification(CAN_HandleTypeDef *hcan, uint32_t ActiveITs); +HAL_StatusTypeDef HAL_CAN_DeactivateNotification(CAN_HandleTypeDef *hcan, uint32_t InactiveITs); +void HAL_CAN_IRQHandler(CAN_HandleTypeDef *hcan); + +/** + * @} + */ + +/** @addtogroup CAN_Exported_Functions_Group5 Callback functions + * @brief Callback functions + * @{ + */ +/* Callbacks functions ********************************************************/ + +void HAL_CAN_TxMailbox0CompleteCallback(CAN_HandleTypeDef *hcan); +void HAL_CAN_TxMailbox1CompleteCallback(CAN_HandleTypeDef *hcan); +void HAL_CAN_TxMailbox2CompleteCallback(CAN_HandleTypeDef *hcan); +void HAL_CAN_TxMailbox0AbortCallback(CAN_HandleTypeDef *hcan); +void HAL_CAN_TxMailbox1AbortCallback(CAN_HandleTypeDef *hcan); +void HAL_CAN_TxMailbox2AbortCallback(CAN_HandleTypeDef *hcan); +void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan); +void HAL_CAN_RxFifo0FullCallback(CAN_HandleTypeDef *hcan); +void HAL_CAN_RxFifo1MsgPendingCallback(CAN_HandleTypeDef *hcan); +void HAL_CAN_RxFifo1FullCallback(CAN_HandleTypeDef *hcan); +void HAL_CAN_SleepCallback(CAN_HandleTypeDef *hcan); +void HAL_CAN_WakeUpFromRxMsgCallback(CAN_HandleTypeDef *hcan); +void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan); + +/** + * @} + */ + +/** @addtogroup CAN_Exported_Functions_Group6 Peripheral State and Error functions + * @brief CAN Peripheral State functions + * @{ + */ +/* Peripheral State and Error functions ***************************************/ +HAL_CAN_StateTypeDef HAL_CAN_GetState(CAN_HandleTypeDef *hcan); +uint32_t HAL_CAN_GetError(CAN_HandleTypeDef *hcan); +HAL_StatusTypeDef HAL_CAN_ResetError(CAN_HandleTypeDef *hcan); + +/** + * @} + */ + +/** + * @} + */ + +/* Private types -------------------------------------------------------------*/ +/** @defgroup CAN_Private_Types CAN Private Types + * @{ + */ + +/** + * @} + */ + +/* Private variables ---------------------------------------------------------*/ +/** @defgroup CAN_Private_Variables CAN Private Variables + * @{ + */ + +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup CAN_Private_Constants CAN Private Constants + * @{ + */ +#define CAN_FLAG_MASK (0x000000FFU) +/** + * @} + */ + +/* Private Macros -----------------------------------------------------------*/ +/** @defgroup CAN_Private_Macros CAN Private Macros + * @{ + */ + +#define IS_CAN_MODE(MODE) (((MODE) == CAN_MODE_NORMAL) || \ + ((MODE) == CAN_MODE_LOOPBACK)|| \ + ((MODE) == CAN_MODE_SILENT) || \ + ((MODE) == CAN_MODE_SILENT_LOOPBACK)) +#define IS_CAN_SJW(SJW) (((SJW) == CAN_SJW_1TQ) || ((SJW) == CAN_SJW_2TQ) || \ + ((SJW) == CAN_SJW_3TQ) || ((SJW) == CAN_SJW_4TQ)) +#define IS_CAN_BS1(BS1) (((BS1) == CAN_BS1_1TQ) || ((BS1) == CAN_BS1_2TQ) || \ + ((BS1) == CAN_BS1_3TQ) || ((BS1) == CAN_BS1_4TQ) || \ + ((BS1) == CAN_BS1_5TQ) || ((BS1) == CAN_BS1_6TQ) || \ + ((BS1) == CAN_BS1_7TQ) || ((BS1) == CAN_BS1_8TQ) || \ + ((BS1) == CAN_BS1_9TQ) || ((BS1) == CAN_BS1_10TQ)|| \ + ((BS1) == CAN_BS1_11TQ)|| ((BS1) == CAN_BS1_12TQ)|| \ + ((BS1) == CAN_BS1_13TQ)|| ((BS1) == CAN_BS1_14TQ)|| \ + ((BS1) == CAN_BS1_15TQ)|| ((BS1) == CAN_BS1_16TQ)) +#define IS_CAN_BS2(BS2) (((BS2) == CAN_BS2_1TQ) || ((BS2) == CAN_BS2_2TQ) || \ + ((BS2) == CAN_BS2_3TQ) || ((BS2) == CAN_BS2_4TQ) || \ + ((BS2) == CAN_BS2_5TQ) || ((BS2) == CAN_BS2_6TQ) || \ + ((BS2) == CAN_BS2_7TQ) || ((BS2) == CAN_BS2_8TQ)) +#define IS_CAN_PRESCALER(PRESCALER) (((PRESCALER) >= 1U) && ((PRESCALER) <= 1024U)) +#define IS_CAN_FILTER_ID_HALFWORD(HALFWORD) ((HALFWORD) <= 0xFFFFU) +#define IS_CAN_FILTER_BANK_DUAL(BANK) ((BANK) <= 27U) +#define IS_CAN_FILTER_BANK_SINGLE(BANK) ((BANK) <= 13U) +#define IS_CAN_FILTER_MODE(MODE) (((MODE) == CAN_FILTERMODE_IDMASK) || \ + ((MODE) == CAN_FILTERMODE_IDLIST)) +#define IS_CAN_FILTER_SCALE(SCALE) (((SCALE) == CAN_FILTERSCALE_16BIT) || \ + ((SCALE) == CAN_FILTERSCALE_32BIT)) +#define IS_CAN_FILTER_ACTIVATION(ACTIVATION) (((ACTIVATION) == CAN_FILTER_DISABLE) || \ + ((ACTIVATION) == CAN_FILTER_ENABLE)) +#define IS_CAN_FILTER_FIFO(FIFO) (((FIFO) == CAN_FILTER_FIFO0) || \ + ((FIFO) == CAN_FILTER_FIFO1)) +#define IS_CAN_TX_MAILBOX(TRANSMITMAILBOX) (((TRANSMITMAILBOX) == CAN_TX_MAILBOX0 ) || \ + ((TRANSMITMAILBOX) == CAN_TX_MAILBOX1 ) || \ + ((TRANSMITMAILBOX) == CAN_TX_MAILBOX2 )) +#define IS_CAN_TX_MAILBOX_LIST(TRANSMITMAILBOX) ((TRANSMITMAILBOX) <= (CAN_TX_MAILBOX0 | CAN_TX_MAILBOX1 | CAN_TX_MAILBOX2)) +#define IS_CAN_STDID(STDID) ((STDID) <= 0x7FFU) +#define IS_CAN_EXTID(EXTID) ((EXTID) <= 0x1FFFFFFFU) +#define IS_CAN_DLC(DLC) ((DLC) <= 8U) +#define IS_CAN_IDTYPE(IDTYPE) (((IDTYPE) == CAN_ID_STD) || \ + ((IDTYPE) == CAN_ID_EXT)) +#define IS_CAN_RTR(RTR) (((RTR) == CAN_RTR_DATA) || ((RTR) == CAN_RTR_REMOTE)) +#define IS_CAN_RX_FIFO(FIFO) (((FIFO) == CAN_RX_FIFO0) || ((FIFO) == CAN_RX_FIFO1)) +#define IS_CAN_IT(IT) ((IT) <= (CAN_IT_TX_MAILBOX_EMPTY | CAN_IT_RX_FIFO0_MSG_PENDING | \ + CAN_IT_RX_FIFO0_FULL | CAN_IT_RX_FIFO0_OVERRUN | \ + CAN_IT_RX_FIFO1_MSG_PENDING | CAN_IT_RX_FIFO1_FULL | \ + CAN_IT_RX_FIFO1_OVERRUN | CAN_IT_WAKEUP | \ + CAN_IT_SLEEP_ACK | CAN_IT_ERROR_WARNING | \ + CAN_IT_ERROR_PASSIVE | CAN_IT_BUSOFF | \ + CAN_IT_LAST_ERROR_CODE | CAN_IT_ERROR)) + +/** + * @} + */ +/* End of private macros -----------------------------------------------------*/ + +/** + * @} + */ + + +#endif /* CAN1 */ +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32F4xx_HAL_CAN_H */ + + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Standard_robot/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c b/Standard_robot/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c new file mode 100644 index 0000000..009a447 --- /dev/null +++ b/Standard_robot/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c @@ -0,0 +1,2464 @@ +/** + ****************************************************************************** + * @file stm32f4xx_hal_can.c + * @author MCD Application Team + * @brief CAN HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Controller Area Network (CAN) peripheral: + * + Initialization and de-initialization functions + * + Configuration functions + * + Control functions + * + Interrupts management + * + Callbacks functions + * + Peripheral State and Error functions + * + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + (#) Initialize the CAN low level resources by implementing the + HAL_CAN_MspInit(): + (++) Enable the CAN interface clock using __HAL_RCC_CANx_CLK_ENABLE() + (++) Configure CAN pins + (+++) Enable the clock for the CAN GPIOs + (+++) Configure CAN pins as alternate function open-drain + (++) In case of using interrupts (e.g. HAL_CAN_ActivateNotification()) + (+++) Configure the CAN interrupt priority using + HAL_NVIC_SetPriority() + (+++) Enable the CAN IRQ handler using HAL_NVIC_EnableIRQ() + (+++) In CAN IRQ handler, call HAL_CAN_IRQHandler() + + (#) Initialize the CAN peripheral using HAL_CAN_Init() function. This + function resorts to HAL_CAN_MspInit() for low-level initialization. + + (#) Configure the reception filters using the following configuration + functions: + (++) HAL_CAN_ConfigFilter() + + (#) Start the CAN module using HAL_CAN_Start() function. At this level + the node is active on the bus: it receive messages, and can send + messages. + + (#) To manage messages transmission, the following Tx control functions + can be used: + (++) HAL_CAN_AddTxMessage() to request transmission of a new + message. + (++) HAL_CAN_AbortTxRequest() to abort transmission of a pending + message. + (++) HAL_CAN_GetTxMailboxesFreeLevel() to get the number of free Tx + mailboxes. + (++) HAL_CAN_IsTxMessagePending() to check if a message is pending + in a Tx mailbox. + (++) HAL_CAN_GetTxTimestamp() to get the timestamp of Tx message + sent, if time triggered communication mode is enabled. + + (#) When a message is received into the CAN Rx FIFOs, it can be retrieved + using the HAL_CAN_GetRxMessage() function. The function + HAL_CAN_GetRxFifoFillLevel() allows to know how many Rx message are + stored in the Rx Fifo. + + (#) Calling the HAL_CAN_Stop() function stops the CAN module. + + (#) The deinitialization is achieved with HAL_CAN_DeInit() function. + + + *** Polling mode operation *** + ============================== + [..] + (#) Reception: + (++) Monitor reception of message using HAL_CAN_GetRxFifoFillLevel() + until at least one message is received. + (++) Then get the message using HAL_CAN_GetRxMessage(). + + (#) Transmission: + (++) Monitor the Tx mailboxes availability until at least one Tx + mailbox is free, using HAL_CAN_GetTxMailboxesFreeLevel(). + (++) Then request transmission of a message using + HAL_CAN_AddTxMessage(). + + + *** Interrupt mode operation *** + ================================ + [..] + (#) Notifications are activated using HAL_CAN_ActivateNotification() + function. Then, the process can be controlled through the + available user callbacks: HAL_CAN_xxxCallback(), using same APIs + HAL_CAN_GetRxMessage() and HAL_CAN_AddTxMessage(). + + (#) Notifications can be deactivated using + HAL_CAN_DeactivateNotification() function. + + (#) Special care should be taken for CAN_IT_RX_FIFO0_MSG_PENDING and + CAN_IT_RX_FIFO1_MSG_PENDING notifications. These notifications trig + the callbacks HAL_CAN_RxFIFO0MsgPendingCallback() and + HAL_CAN_RxFIFO1MsgPendingCallback(). User has two possible options + here. + (++) Directly get the Rx message in the callback, using + HAL_CAN_GetRxMessage(). + (++) Or deactivate the notification in the callback without + getting the Rx message. The Rx message can then be got later + using HAL_CAN_GetRxMessage(). Once the Rx message have been + read, the notification can be activated again. + + + *** Sleep mode *** + ================== + [..] + (#) The CAN peripheral can be put in sleep mode (low power), using + HAL_CAN_RequestSleep(). The sleep mode will be entered as soon as the + current CAN activity (transmission or reception of a CAN frame) will + be completed. + + (#) A notification can be activated to be informed when the sleep mode + will be entered. + + (#) It can be checked if the sleep mode is entered using + HAL_CAN_IsSleepActive(). + Note that the CAN state (accessible from the API HAL_CAN_GetState()) + is HAL_CAN_STATE_SLEEP_PENDING as soon as the sleep mode request is + submitted (the sleep mode is not yet entered), and become + HAL_CAN_STATE_SLEEP_ACTIVE when the sleep mode is effective. + + (#) The wake-up from sleep mode can be trigged by two ways: + (++) Using HAL_CAN_WakeUp(). When returning from this function, + the sleep mode is exited (if return status is HAL_OK). + (++) When a start of Rx CAN frame is detected by the CAN peripheral, + if automatic wake up mode is enabled. + + *** Callback registration *** + ============================================= + + The compilation define USE_HAL_CAN_REGISTER_CALLBACKS when set to 1 + allows the user to configure dynamically the driver callbacks. + Use Function @ref HAL_CAN_RegisterCallback() to register an interrupt callback. + + Function @ref HAL_CAN_RegisterCallback() allows to register following callbacks: + (+) TxMailbox0CompleteCallback : Tx Mailbox 0 Complete Callback. + (+) TxMailbox1CompleteCallback : Tx Mailbox 1 Complete Callback. + (+) TxMailbox2CompleteCallback : Tx Mailbox 2 Complete Callback. + (+) TxMailbox0AbortCallback : Tx Mailbox 0 Abort Callback. + (+) TxMailbox1AbortCallback : Tx Mailbox 1 Abort Callback. + (+) TxMailbox2AbortCallback : Tx Mailbox 2 Abort Callback. + (+) RxFifo0MsgPendingCallback : Rx Fifo 0 Message Pending Callback. + (+) RxFifo0FullCallback : Rx Fifo 0 Full Callback. + (+) RxFifo1MsgPendingCallback : Rx Fifo 1 Message Pending Callback. + (+) RxFifo1FullCallback : Rx Fifo 1 Full Callback. + (+) SleepCallback : Sleep Callback. + (+) WakeUpFromRxMsgCallback : Wake Up From Rx Message Callback. + (+) ErrorCallback : Error Callback. + (+) MspInitCallback : CAN MspInit. + (+) MspDeInitCallback : CAN MspDeInit. + This function takes as parameters the HAL peripheral handle, the Callback ID + and a pointer to the user callback function. + + Use function @ref HAL_CAN_UnRegisterCallback() to reset a callback to the default + weak function. + @ref HAL_CAN_UnRegisterCallback takes as parameters the HAL peripheral handle, + and the Callback ID. + This function allows to reset following callbacks: + (+) TxMailbox0CompleteCallback : Tx Mailbox 0 Complete Callback. + (+) TxMailbox1CompleteCallback : Tx Mailbox 1 Complete Callback. + (+) TxMailbox2CompleteCallback : Tx Mailbox 2 Complete Callback. + (+) TxMailbox0AbortCallback : Tx Mailbox 0 Abort Callback. + (+) TxMailbox1AbortCallback : Tx Mailbox 1 Abort Callback. + (+) TxMailbox2AbortCallback : Tx Mailbox 2 Abort Callback. + (+) RxFifo0MsgPendingCallback : Rx Fifo 0 Message Pending Callback. + (+) RxFifo0FullCallback : Rx Fifo 0 Full Callback. + (+) RxFifo1MsgPendingCallback : Rx Fifo 1 Message Pending Callback. + (+) RxFifo1FullCallback : Rx Fifo 1 Full Callback. + (+) SleepCallback : Sleep Callback. + (+) WakeUpFromRxMsgCallback : Wake Up From Rx Message Callback. + (+) ErrorCallback : Error Callback. + (+) MspInitCallback : CAN MspInit. + (+) MspDeInitCallback : CAN MspDeInit. + + By default, after the @ref HAL_CAN_Init() and when the state is HAL_CAN_STATE_RESET, + all callbacks are set to the corresponding weak functions: + example @ref HAL_CAN_ErrorCallback(). + Exception done for MspInit and MspDeInit functions that are + reset to the legacy weak function in the @ref HAL_CAN_Init()/ @ref HAL_CAN_DeInit() only when + these callbacks are null (not registered beforehand). + if not, MspInit or MspDeInit are not null, the @ref HAL_CAN_Init()/ @ref HAL_CAN_DeInit() + keep and use the user MspInit/MspDeInit callbacks (registered beforehand) + + Callbacks can be registered/unregistered in HAL_CAN_STATE_READY state only. + Exception done MspInit/MspDeInit that can be registered/unregistered + in HAL_CAN_STATE_READY or HAL_CAN_STATE_RESET state, + thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. + In that case first register the MspInit/MspDeInit user callbacks + using @ref HAL_CAN_RegisterCallback() before calling @ref HAL_CAN_DeInit() + or @ref HAL_CAN_Init() function. + + When The compilation define USE_HAL_CAN_REGISTER_CALLBACKS is set to 0 or + not defined, the callback registration feature is not available and all callbacks + are set to the corresponding weak functions. + + @endverbatim + ****************************************************************************** + * @attention + * + * <h2><center>© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.</center></h2> + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f4xx_hal.h" + +/** @addtogroup STM32F4xx_HAL_Driver + * @{ + */ + +#if defined(CAN1) + +/** @defgroup CAN CAN + * @brief CAN driver modules + * @{ + */ + +#ifdef HAL_CAN_MODULE_ENABLED + +#ifdef HAL_CAN_LEGACY_MODULE_ENABLED + #error "The CAN driver cannot be used with its legacy, Please enable only one CAN module at once" +#endif + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @defgroup CAN_Private_Constants CAN Private Constants + * @{ + */ +#define CAN_TIMEOUT_VALUE 10U +/** + * @} + */ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup CAN_Exported_Functions CAN Exported Functions + * @{ + */ + +/** @defgroup CAN_Exported_Functions_Group1 Initialization and de-initialization functions + * @brief Initialization and Configuration functions + * +@verbatim + ============================================================================== + ##### Initialization and de-initialization functions ##### + ============================================================================== + [..] This section provides functions allowing to: + (+) HAL_CAN_Init : Initialize and configure the CAN. + (+) HAL_CAN_DeInit : De-initialize the CAN. + (+) HAL_CAN_MspInit : Initialize the CAN MSP. + (+) HAL_CAN_MspDeInit : DeInitialize the CAN MSP. + +@endverbatim + * @{ + */ + +/** + * @brief Initializes the CAN peripheral according to the specified + * parameters in the CAN_InitStruct. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_CAN_Init(CAN_HandleTypeDef *hcan) +{ + uint32_t tickstart; + + /* Check CAN handle */ + if (hcan == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_CAN_ALL_INSTANCE(hcan->Instance)); + assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TimeTriggeredMode)); + assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoBusOff)); + assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoWakeUp)); + assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoRetransmission)); + assert_param(IS_FUNCTIONAL_STATE(hcan->Init.ReceiveFifoLocked)); + assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TransmitFifoPriority)); + assert_param(IS_CAN_MODE(hcan->Init.Mode)); + assert_param(IS_CAN_SJW(hcan->Init.SyncJumpWidth)); + assert_param(IS_CAN_BS1(hcan->Init.TimeSeg1)); + assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2)); + assert_param(IS_CAN_PRESCALER(hcan->Init.Prescaler)); + +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + if (hcan->State == HAL_CAN_STATE_RESET) + { + /* Reset callbacks to legacy functions */ + hcan->RxFifo0MsgPendingCallback = HAL_CAN_RxFifo0MsgPendingCallback; /* Legacy weak RxFifo0MsgPendingCallback */ + hcan->RxFifo0FullCallback = HAL_CAN_RxFifo0FullCallback; /* Legacy weak RxFifo0FullCallback */ + hcan->RxFifo1MsgPendingCallback = HAL_CAN_RxFifo1MsgPendingCallback; /* Legacy weak RxFifo1MsgPendingCallback */ + hcan->RxFifo1FullCallback = HAL_CAN_RxFifo1FullCallback; /* Legacy weak RxFifo1FullCallback */ + hcan->TxMailbox0CompleteCallback = HAL_CAN_TxMailbox0CompleteCallback; /* Legacy weak TxMailbox0CompleteCallback */ + hcan->TxMailbox1CompleteCallback = HAL_CAN_TxMailbox1CompleteCallback; /* Legacy weak TxMailbox1CompleteCallback */ + hcan->TxMailbox2CompleteCallback = HAL_CAN_TxMailbox2CompleteCallback; /* Legacy weak TxMailbox2CompleteCallback */ + hcan->TxMailbox0AbortCallback = HAL_CAN_TxMailbox0AbortCallback; /* Legacy weak TxMailbox0AbortCallback */ + hcan->TxMailbox1AbortCallback = HAL_CAN_TxMailbox1AbortCallback; /* Legacy weak TxMailbox1AbortCallback */ + hcan->TxMailbox2AbortCallback = HAL_CAN_TxMailbox2AbortCallback; /* Legacy weak TxMailbox2AbortCallback */ + hcan->SleepCallback = HAL_CAN_SleepCallback; /* Legacy weak SleepCallback */ + hcan->WakeUpFromRxMsgCallback = HAL_CAN_WakeUpFromRxMsgCallback; /* Legacy weak WakeUpFromRxMsgCallback */ + hcan->ErrorCallback = HAL_CAN_ErrorCallback; /* Legacy weak ErrorCallback */ + + if (hcan->MspInitCallback == NULL) + { + hcan->MspInitCallback = HAL_CAN_MspInit; /* Legacy weak MspInit */ + } + + /* Init the low level hardware: CLOCK, NVIC */ + hcan->MspInitCallback(hcan); + } + +#else + if (hcan->State == HAL_CAN_STATE_RESET) + { + /* Init the low level hardware: CLOCK, NVIC */ + HAL_CAN_MspInit(hcan); + } +#endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */ + + /* Exit from sleep mode */ + CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); + + /* Get tick */ + tickstart = HAL_GetTick(); + + /* Check Sleep mode leave acknowledge */ + while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U) + { + if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; + + /* Change CAN state */ + hcan->State = HAL_CAN_STATE_ERROR; + + return HAL_ERROR; + } + } + + /* Request initialisation */ + SET_BIT(hcan->Instance->MCR, CAN_MCR_INRQ); + + /* Get tick */ + tickstart = HAL_GetTick(); + + /* Wait initialisation acknowledge */ + while ((hcan->Instance->MSR & CAN_MSR_INAK) == 0U) + { + if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; + + /* Change CAN state */ + hcan->State = HAL_CAN_STATE_ERROR; + + return HAL_ERROR; + } + } + + /* Set the time triggered communication mode */ + if (hcan->Init.TimeTriggeredMode == ENABLE) + { + SET_BIT(hcan->Instance->MCR, CAN_MCR_TTCM); + } + else + { + CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_TTCM); + } + + /* Set the automatic bus-off management */ + if (hcan->Init.AutoBusOff == ENABLE) + { + SET_BIT(hcan->Instance->MCR, CAN_MCR_ABOM); + } + else + { + CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_ABOM); + } + + /* Set the automatic wake-up mode */ + if (hcan->Init.AutoWakeUp == ENABLE) + { + SET_BIT(hcan->Instance->MCR, CAN_MCR_AWUM); + } + else + { + CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_AWUM); + } + + /* Set the automatic retransmission */ + if (hcan->Init.AutoRetransmission == ENABLE) + { + CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_NART); + } + else + { + SET_BIT(hcan->Instance->MCR, CAN_MCR_NART); + } + + /* Set the receive FIFO locked mode */ + if (hcan->Init.ReceiveFifoLocked == ENABLE) + { + SET_BIT(hcan->Instance->MCR, CAN_MCR_RFLM); + } + else + { + CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_RFLM); + } + + /* Set the transmit FIFO priority */ + if (hcan->Init.TransmitFifoPriority == ENABLE) + { + SET_BIT(hcan->Instance->MCR, CAN_MCR_TXFP); + } + else + { + CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_TXFP); + } + + /* Set the bit timing register */ + WRITE_REG(hcan->Instance->BTR, (uint32_t)(hcan->Init.Mode | + hcan->Init.SyncJumpWidth | + hcan->Init.TimeSeg1 | + hcan->Init.TimeSeg2 | + (hcan->Init.Prescaler - 1U))); + + /* Initialize the error code */ + hcan->ErrorCode = HAL_CAN_ERROR_NONE; + + /* Initialize the CAN state */ + hcan->State = HAL_CAN_STATE_READY; + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Deinitializes the CAN peripheral registers to their default + * reset values. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_CAN_DeInit(CAN_HandleTypeDef *hcan) +{ + /* Check CAN handle */ + if (hcan == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_CAN_ALL_INSTANCE(hcan->Instance)); + + /* Stop the CAN module */ + (void)HAL_CAN_Stop(hcan); + +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + if (hcan->MspDeInitCallback == NULL) + { + hcan->MspDeInitCallback = HAL_CAN_MspDeInit; /* Legacy weak MspDeInit */ + } + + /* DeInit the low level hardware: CLOCK, NVIC */ + hcan->MspDeInitCallback(hcan); + +#else + /* DeInit the low level hardware: CLOCK, NVIC */ + HAL_CAN_MspDeInit(hcan); +#endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */ + + /* Reset the CAN peripheral */ + SET_BIT(hcan->Instance->MCR, CAN_MCR_RESET); + + /* Reset the CAN ErrorCode */ + hcan->ErrorCode = HAL_CAN_ERROR_NONE; + + /* Change CAN state */ + hcan->State = HAL_CAN_STATE_RESET; + + /* Return function status */ + return HAL_OK; +} + +/** + * @brief Initializes the CAN MSP. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_MspInit(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_MspInit could be implemented in the user file + */ +} + +/** + * @brief DeInitializes the CAN MSP. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_MspDeInit(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_MspDeInit could be implemented in the user file + */ +} + +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 +/** + * @brief Register a CAN CallBack. + * To be used instead of the weak predefined callback + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for CAN module + * @param CallbackID ID of the callback to be registered + * This parameter can be one of the following values: + * @arg @ref HAL_CAN_TX_MAILBOX0_COMPLETE_CALLBACK_CB_ID Tx Mailbox 0 Complete callback ID + * @arg @ref HAL_CAN_TX_MAILBOX1_COMPLETE_CALLBACK_CB_ID Tx Mailbox 1 Complete callback ID + * @arg @ref HAL_CAN_TX_MAILBOX2_COMPLETE_CALLBACK_CB_ID Tx Mailbox 2 Complete callback ID + * @arg @ref HAL_CAN_TX_MAILBOX0_ABORT_CALLBACK_CB_ID Tx Mailbox 0 Abort callback ID + * @arg @ref HAL_CAN_TX_MAILBOX1_ABORT_CALLBACK_CB_ID Tx Mailbox 1 Abort callback ID + * @arg @ref HAL_CAN_TX_MAILBOX2_ABORT_CALLBACK_CB_ID Tx Mailbox 2 Abort callback ID + * @arg @ref HAL_CAN_RX_FIFO0_MSG_PENDING_CALLBACK_CB_ID Rx Fifo 0 message pending callback ID + * @arg @ref HAL_CAN_RX_FIFO0_FULL_CALLBACK_CB_ID Rx Fifo 0 full callback ID + * @arg @ref HAL_CAN_RX_FIFO1_MSGPENDING_CALLBACK_CB_ID Rx Fifo 1 message pending callback ID + * @arg @ref HAL_CAN_RX_FIFO1_FULL_CALLBACK_CB_ID Rx Fifo 1 full callback ID + * @arg @ref HAL_CAN_SLEEP_CALLBACK_CB_ID Sleep callback ID + * @arg @ref HAL_CAN_WAKEUP_FROM_RX_MSG_CALLBACK_CB_ID Wake Up from Rx message callback ID + * @arg @ref HAL_CAN_ERROR_CALLBACK_CB_ID Error callback ID + * @arg @ref HAL_CAN_MSPINIT_CB_ID MspInit callback ID + * @arg @ref HAL_CAN_MSPDEINIT_CB_ID MspDeInit callback ID + * @param pCallback pointer to the Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_CAN_RegisterCallback(CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef CallbackID, void (* pCallback)(CAN_HandleTypeDef *_hcan)) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + /* Update the error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + + if (hcan->State == HAL_CAN_STATE_READY) + { + switch (CallbackID) + { + case HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID : + hcan->TxMailbox0CompleteCallback = pCallback; + break; + + case HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID : + hcan->TxMailbox1CompleteCallback = pCallback; + break; + + case HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID : + hcan->TxMailbox2CompleteCallback = pCallback; + break; + + case HAL_CAN_TX_MAILBOX0_ABORT_CB_ID : + hcan->TxMailbox0AbortCallback = pCallback; + break; + + case HAL_CAN_TX_MAILBOX1_ABORT_CB_ID : + hcan->TxMailbox1AbortCallback = pCallback; + break; + + case HAL_CAN_TX_MAILBOX2_ABORT_CB_ID : + hcan->TxMailbox2AbortCallback = pCallback; + break; + + case HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID : + hcan->RxFifo0MsgPendingCallback = pCallback; + break; + + case HAL_CAN_RX_FIFO0_FULL_CB_ID : + hcan->RxFifo0FullCallback = pCallback; + break; + + case HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID : + hcan->RxFifo1MsgPendingCallback = pCallback; + break; + + case HAL_CAN_RX_FIFO1_FULL_CB_ID : + hcan->RxFifo1FullCallback = pCallback; + break; + + case HAL_CAN_SLEEP_CB_ID : + hcan->SleepCallback = pCallback; + break; + + case HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID : + hcan->WakeUpFromRxMsgCallback = pCallback; + break; + + case HAL_CAN_ERROR_CB_ID : + hcan->ErrorCallback = pCallback; + break; + + case HAL_CAN_MSPINIT_CB_ID : + hcan->MspInitCallback = pCallback; + break; + + case HAL_CAN_MSPDEINIT_CB_ID : + hcan->MspDeInitCallback = pCallback; + break; + + default : + /* Update the error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else if (hcan->State == HAL_CAN_STATE_RESET) + { + switch (CallbackID) + { + case HAL_CAN_MSPINIT_CB_ID : + hcan->MspInitCallback = pCallback; + break; + + case HAL_CAN_MSPDEINIT_CB_ID : + hcan->MspDeInitCallback = pCallback; + break; + + default : + /* Update the error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else + { + /* Update the error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + return status; +} + +/** + * @brief Unregister a CAN CallBack. + * CAN callabck is redirected to the weak predefined callback + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for CAN module + * @param CallbackID ID of the callback to be unregistered + * This parameter can be one of the following values: + * @arg @ref HAL_CAN_TX_MAILBOX0_COMPLETE_CALLBACK_CB_ID Tx Mailbox 0 Complete callback ID + * @arg @ref HAL_CAN_TX_MAILBOX1_COMPLETE_CALLBACK_CB_ID Tx Mailbox 1 Complete callback ID + * @arg @ref HAL_CAN_TX_MAILBOX2_COMPLETE_CALLBACK_CB_ID Tx Mailbox 2 Complete callback ID + * @arg @ref HAL_CAN_TX_MAILBOX0_ABORT_CALLBACK_CB_ID Tx Mailbox 0 Abort callback ID + * @arg @ref HAL_CAN_TX_MAILBOX1_ABORT_CALLBACK_CB_ID Tx Mailbox 1 Abort callback ID + * @arg @ref HAL_CAN_TX_MAILBOX2_ABORT_CALLBACK_CB_ID Tx Mailbox 2 Abort callback ID + * @arg @ref HAL_CAN_RX_FIFO0_MSG_PENDING_CALLBACK_CB_ID Rx Fifo 0 message pending callback ID + * @arg @ref HAL_CAN_RX_FIFO0_FULL_CALLBACK_CB_ID Rx Fifo 0 full callback ID + * @arg @ref HAL_CAN_RX_FIFO1_MSGPENDING_CALLBACK_CB_ID Rx Fifo 1 message pending callback ID + * @arg @ref HAL_CAN_RX_FIFO1_FULL_CALLBACK_CB_ID Rx Fifo 1 full callback ID + * @arg @ref HAL_CAN_SLEEP_CALLBACK_CB_ID Sleep callback ID + * @arg @ref HAL_CAN_WAKEUP_FROM_RX_MSG_CALLBACK_CB_ID Wake Up from Rx message callback ID + * @arg @ref HAL_CAN_ERROR_CALLBACK_CB_ID Error callback ID + * @arg @ref HAL_CAN_MSPINIT_CB_ID MspInit callback ID + * @arg @ref HAL_CAN_MSPDEINIT_CB_ID MspDeInit callback ID + * @retval HAL status + */ +HAL_StatusTypeDef HAL_CAN_UnRegisterCallback(CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef CallbackID) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (hcan->State == HAL_CAN_STATE_READY) + { + switch (CallbackID) + { + case HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID : + hcan->TxMailbox0CompleteCallback = HAL_CAN_TxMailbox0CompleteCallback; + break; + + case HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID : + hcan->TxMailbox1CompleteCallback = HAL_CAN_TxMailbox1CompleteCallback; + break; + + case HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID : + hcan->TxMailbox2CompleteCallback = HAL_CAN_TxMailbox2CompleteCallback; + break; + + case HAL_CAN_TX_MAILBOX0_ABORT_CB_ID : + hcan->TxMailbox0AbortCallback = HAL_CAN_TxMailbox0AbortCallback; + break; + + case HAL_CAN_TX_MAILBOX1_ABORT_CB_ID : + hcan->TxMailbox1AbortCallback = HAL_CAN_TxMailbox1AbortCallback; + break; + + case HAL_CAN_TX_MAILBOX2_ABORT_CB_ID : + hcan->TxMailbox2AbortCallback = HAL_CAN_TxMailbox2AbortCallback; + break; + + case HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID : + hcan->RxFifo0MsgPendingCallback = HAL_CAN_RxFifo0MsgPendingCallback; + break; + + case HAL_CAN_RX_FIFO0_FULL_CB_ID : + hcan->RxFifo0FullCallback = HAL_CAN_RxFifo0FullCallback; + break; + + case HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID : + hcan->RxFifo1MsgPendingCallback = HAL_CAN_RxFifo1MsgPendingCallback; + break; + + case HAL_CAN_RX_FIFO1_FULL_CB_ID : + hcan->RxFifo1FullCallback = HAL_CAN_RxFifo1FullCallback; + break; + + case HAL_CAN_SLEEP_CB_ID : + hcan->SleepCallback = HAL_CAN_SleepCallback; + break; + + case HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID : + hcan->WakeUpFromRxMsgCallback = HAL_CAN_WakeUpFromRxMsgCallback; + break; + + case HAL_CAN_ERROR_CB_ID : + hcan->ErrorCallback = HAL_CAN_ErrorCallback; + break; + + case HAL_CAN_MSPINIT_CB_ID : + hcan->MspInitCallback = HAL_CAN_MspInit; + break; + + case HAL_CAN_MSPDEINIT_CB_ID : + hcan->MspDeInitCallback = HAL_CAN_MspDeInit; + break; + + default : + /* Update the error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else if (hcan->State == HAL_CAN_STATE_RESET) + { + switch (CallbackID) + { + case HAL_CAN_MSPINIT_CB_ID : + hcan->MspInitCallback = HAL_CAN_MspInit; + break; + + case HAL_CAN_MSPDEINIT_CB_ID : + hcan->MspDeInitCallback = HAL_CAN_MspDeInit; + break; + + default : + /* Update the error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else + { + /* Update the error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + return status; +} +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ + +/** + * @} + */ + +/** @defgroup CAN_Exported_Functions_Group2 Configuration functions + * @brief Configuration functions. + * +@verbatim + ============================================================================== + ##### Configuration functions ##### + ============================================================================== + [..] This section provides functions allowing to: + (+) HAL_CAN_ConfigFilter : Configure the CAN reception filters + +@endverbatim + * @{ + */ + +/** + * @brief Configures the CAN reception filter according to the specified + * parameters in the CAN_FilterInitStruct. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @param sFilterConfig pointer to a CAN_FilterTypeDef structure that + * contains the filter configuration information. + * @retval None + */ +HAL_StatusTypeDef HAL_CAN_ConfigFilter(CAN_HandleTypeDef *hcan, CAN_FilterTypeDef *sFilterConfig) +{ + uint32_t filternbrbitpos; + CAN_TypeDef *can_ip = hcan->Instance; + HAL_CAN_StateTypeDef state = hcan->State; + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + /* Check the parameters */ + assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdHigh)); + assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow)); + assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdHigh)); + assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdLow)); + assert_param(IS_CAN_FILTER_MODE(sFilterConfig->FilterMode)); + assert_param(IS_CAN_FILTER_SCALE(sFilterConfig->FilterScale)); + assert_param(IS_CAN_FILTER_FIFO(sFilterConfig->FilterFIFOAssignment)); + assert_param(IS_CAN_FILTER_ACTIVATION(sFilterConfig->FilterActivation)); + +#if defined(CAN3) + /* Check the CAN instance */ + if (hcan->Instance == CAN3) + { + /* CAN3 is single instance with 14 dedicated filters banks */ + + /* Check the parameters */ + assert_param(IS_CAN_FILTER_BANK_SINGLE(sFilterConfig->FilterBank)); + } + else + { + /* CAN1 and CAN2 are dual instances with 28 common filters banks */ + /* Select master instance to access the filter banks */ + can_ip = CAN1; + + /* Check the parameters */ + assert_param(IS_CAN_FILTER_BANK_DUAL(sFilterConfig->FilterBank)); + assert_param(IS_CAN_FILTER_BANK_DUAL(sFilterConfig->SlaveStartFilterBank)); + } +#elif defined(CAN2) + /* CAN1 and CAN2 are dual instances with 28 common filters banks */ + /* Select master instance to access the filter banks */ + can_ip = CAN1; + + /* Check the parameters */ + assert_param(IS_CAN_FILTER_BANK_DUAL(sFilterConfig->FilterBank)); + assert_param(IS_CAN_FILTER_BANK_DUAL(sFilterConfig->SlaveStartFilterBank)); +#else + /* CAN1 is single instance with 14 dedicated filters banks */ + + /* Check the parameters */ + assert_param(IS_CAN_FILTER_BANK_SINGLE(sFilterConfig->FilterBank)); +#endif + + /* Initialisation mode for the filter */ + SET_BIT(can_ip->FMR, CAN_FMR_FINIT); + +#if defined(CAN3) + /* Check the CAN instance */ + if (can_ip == CAN1) + { + /* Select the start filter number of CAN2 slave instance */ + CLEAR_BIT(can_ip->FMR, CAN_FMR_CAN2SB); + SET_BIT(can_ip->FMR, sFilterConfig->SlaveStartFilterBank << CAN_FMR_CAN2SB_Pos); + } + +#elif defined(CAN2) + /* Select the start filter number of CAN2 slave instance */ + CLEAR_BIT(can_ip->FMR, CAN_FMR_CAN2SB); + SET_BIT(can_ip->FMR, sFilterConfig->SlaveStartFilterBank << CAN_FMR_CAN2SB_Pos); + +#endif + /* Convert filter number into bit position */ + filternbrbitpos = (uint32_t)1 << (sFilterConfig->FilterBank & 0x1FU); + + /* Filter Deactivation */ + CLEAR_BIT(can_ip->FA1R, filternbrbitpos); + + /* Filter Scale */ + if (sFilterConfig->FilterScale == CAN_FILTERSCALE_16BIT) + { + /* 16-bit scale for the filter */ + CLEAR_BIT(can_ip->FS1R, filternbrbitpos); + + /* First 16-bit identifier and First 16-bit mask */ + /* Or First 16-bit identifier and Second 16-bit identifier */ + can_ip->sFilterRegister[sFilterConfig->FilterBank].FR1 = + ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) | + (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); + + /* Second 16-bit identifier and Second 16-bit mask */ + /* Or Third 16-bit identifier and Fourth 16-bit identifier */ + can_ip->sFilterRegister[sFilterConfig->FilterBank].FR2 = + ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | + (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh); + } + + if (sFilterConfig->FilterScale == CAN_FILTERSCALE_32BIT) + { + /* 32-bit scale for the filter */ + SET_BIT(can_ip->FS1R, filternbrbitpos); + + /* 32-bit identifier or First 32-bit identifier */ + can_ip->sFilterRegister[sFilterConfig->FilterBank].FR1 = + ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) | + (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); + + /* 32-bit mask or Second 32-bit identifier */ + can_ip->sFilterRegister[sFilterConfig->FilterBank].FR2 = + ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | + (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow); + } + + /* Filter Mode */ + if (sFilterConfig->FilterMode == CAN_FILTERMODE_IDMASK) + { + /* Id/Mask mode for the filter*/ + CLEAR_BIT(can_ip->FM1R, filternbrbitpos); + } + else /* CAN_FilterInitStruct->CAN_FilterMode == CAN_FilterMode_IdList */ + { + /* Identifier list mode for the filter*/ + SET_BIT(can_ip->FM1R, filternbrbitpos); + } + + /* Filter FIFO assignment */ + if (sFilterConfig->FilterFIFOAssignment == CAN_FILTER_FIFO0) + { + /* FIFO 0 assignation for the filter */ + CLEAR_BIT(can_ip->FFA1R, filternbrbitpos); + } + else + { + /* FIFO 1 assignation for the filter */ + SET_BIT(can_ip->FFA1R, filternbrbitpos); + } + + /* Filter activation */ + if (sFilterConfig->FilterActivation == CAN_FILTER_ENABLE) + { + SET_BIT(can_ip->FA1R, filternbrbitpos); + } + + /* Leave the initialisation mode for the filter */ + CLEAR_BIT(can_ip->FMR, CAN_FMR_FINIT); + + /* Return function status */ + return HAL_OK; + } + else + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; + + return HAL_ERROR; + } +} + +/** + * @} + */ + +/** @defgroup CAN_Exported_Functions_Group3 Control functions + * @brief Control functions + * +@verbatim + ============================================================================== + ##### Control functions ##### + ============================================================================== + [..] This section provides functions allowing to: + (+) HAL_CAN_Start : Start the CAN module + (+) HAL_CAN_Stop : Stop the CAN module + (+) HAL_CAN_RequestSleep : Request sleep mode entry. + (+) HAL_CAN_WakeUp : Wake up from sleep mode. + (+) HAL_CAN_IsSleepActive : Check is sleep mode is active. + (+) HAL_CAN_AddTxMessage : Add a message to the Tx mailboxes + and activate the corresponding + transmission request + (+) HAL_CAN_AbortTxRequest : Abort transmission request + (+) HAL_CAN_GetTxMailboxesFreeLevel : Return Tx mailboxes free level + (+) HAL_CAN_IsTxMessagePending : Check if a transmission request is + pending on the selected Tx mailbox + (+) HAL_CAN_GetRxMessage : Get a CAN frame from the Rx FIFO + (+) HAL_CAN_GetRxFifoFillLevel : Return Rx FIFO fill level + +@endverbatim + * @{ + */ + +/** + * @brief Start the CAN module. + * @param hcan pointer to an CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_CAN_Start(CAN_HandleTypeDef *hcan) +{ + uint32_t tickstart; + + if (hcan->State == HAL_CAN_STATE_READY) + { + /* Change CAN peripheral state */ + hcan->State = HAL_CAN_STATE_LISTENING; + + /* Request leave initialisation */ + CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_INRQ); + + /* Get tick */ + tickstart = HAL_GetTick(); + + /* Wait the acknowledge */ + while ((hcan->Instance->MSR & CAN_MSR_INAK) != 0U) + { + /* Check for the Timeout */ + if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; + + /* Change CAN state */ + hcan->State = HAL_CAN_STATE_ERROR; + + return HAL_ERROR; + } + } + + /* Reset the CAN ErrorCode */ + hcan->ErrorCode = HAL_CAN_ERROR_NONE; + + /* Return function status */ + return HAL_OK; + } + else + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_NOT_READY; + + return HAL_ERROR; + } +} + +/** + * @brief Stop the CAN module and enable access to configuration registers. + * @param hcan pointer to an CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_CAN_Stop(CAN_HandleTypeDef *hcan) +{ + uint32_t tickstart; + + if (hcan->State == HAL_CAN_STATE_LISTENING) + { + /* Request initialisation */ + SET_BIT(hcan->Instance->MCR, CAN_MCR_INRQ); + + /* Get tick */ + tickstart = HAL_GetTick(); + + /* Wait the acknowledge */ + while ((hcan->Instance->MSR & CAN_MSR_INAK) == 0U) + { + /* Check for the Timeout */ + if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; + + /* Change CAN state */ + hcan->State = HAL_CAN_STATE_ERROR; + + return HAL_ERROR; + } + } + + /* Exit from sleep mode */ + CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); + + /* Change CAN peripheral state */ + hcan->State = HAL_CAN_STATE_READY; + + /* Return function status */ + return HAL_OK; + } + else + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_NOT_STARTED; + + return HAL_ERROR; + } +} + +/** + * @brief Request the sleep mode (low power) entry. + * When returning from this function, Sleep mode will be entered + * as soon as the current CAN activity (transmission or reception + * of a CAN frame) has been completed. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval HAL status. + */ +HAL_StatusTypeDef HAL_CAN_RequestSleep(CAN_HandleTypeDef *hcan) +{ + HAL_CAN_StateTypeDef state = hcan->State; + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + /* Request Sleep mode */ + SET_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); + + /* Return function status */ + return HAL_OK; + } + else + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; + + /* Return function status */ + return HAL_ERROR; + } +} + +/** + * @brief Wake up from sleep mode. + * When returning with HAL_OK status from this function, Sleep mode + * is exited. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval HAL status. + */ +HAL_StatusTypeDef HAL_CAN_WakeUp(CAN_HandleTypeDef *hcan) +{ + __IO uint32_t count = 0; + uint32_t timeout = 1000000U; + HAL_CAN_StateTypeDef state = hcan->State; + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + /* Wake up request */ + CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); + + /* Wait sleep mode is exited */ + do + { + /* Increment counter */ + count++; + + /* Check if timeout is reached */ + if (count > timeout) + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; + + return HAL_ERROR; + } + } + while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U); + + /* Return function status */ + return HAL_OK; + } + else + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; + + return HAL_ERROR; + } +} + +/** + * @brief Check is sleep mode is active. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval Status + * - 0 : Sleep mode is not active. + * - 1 : Sleep mode is active. + */ +uint32_t HAL_CAN_IsSleepActive(CAN_HandleTypeDef *hcan) +{ + uint32_t status = 0U; + HAL_CAN_StateTypeDef state = hcan->State; + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + /* Check Sleep mode */ + if ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U) + { + status = 1U; + } + } + + /* Return function status */ + return status; +} + +/** + * @brief Add a message to the first free Tx mailbox and activate the + * corresponding transmission request. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @param pHeader pointer to a CAN_TxHeaderTypeDef structure. + * @param aData array containing the payload of the Tx frame. + * @param pTxMailbox pointer to a variable where the function will return + * the TxMailbox used to store the Tx message. + * This parameter can be a value of @arg CAN_Tx_Mailboxes. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_CAN_AddTxMessage(CAN_HandleTypeDef *hcan, CAN_TxHeaderTypeDef *pHeader, uint8_t aData[], uint32_t *pTxMailbox) +{ + uint32_t transmitmailbox; + HAL_CAN_StateTypeDef state = hcan->State; + uint32_t tsr = READ_REG(hcan->Instance->TSR); + + /* Check the parameters */ + assert_param(IS_CAN_IDTYPE(pHeader->IDE)); + assert_param(IS_CAN_RTR(pHeader->RTR)); + assert_param(IS_CAN_DLC(pHeader->DLC)); + if (pHeader->IDE == CAN_ID_STD) + { + assert_param(IS_CAN_STDID(pHeader->StdId)); + } + else + { + assert_param(IS_CAN_EXTID(pHeader->ExtId)); + } + assert_param(IS_FUNCTIONAL_STATE(pHeader->TransmitGlobalTime)); + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + /* Check that all the Tx mailboxes are not full */ + if (((tsr & CAN_TSR_TME0) != 0U) || + ((tsr & CAN_TSR_TME1) != 0U) || + ((tsr & CAN_TSR_TME2) != 0U)) + { + /* Select an empty transmit mailbox */ + transmitmailbox = (tsr & CAN_TSR_CODE) >> CAN_TSR_CODE_Pos; + + /* Check transmit mailbox value */ + if (transmitmailbox > 2U) + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_INTERNAL; + + return HAL_ERROR; + } + + /* Store the Tx mailbox */ + *pTxMailbox = (uint32_t)1 << transmitmailbox; + + /* Set up the Id */ + if (pHeader->IDE == CAN_ID_STD) + { + hcan->Instance->sTxMailBox[transmitmailbox].TIR = ((pHeader->StdId << CAN_TI0R_STID_Pos) | + pHeader->RTR); + } + else + { + hcan->Instance->sTxMailBox[transmitmailbox].TIR = ((pHeader->ExtId << CAN_TI0R_EXID_Pos) | + pHeader->IDE | + pHeader->RTR); + } + + /* Set up the DLC */ + hcan->Instance->sTxMailBox[transmitmailbox].TDTR = (pHeader->DLC); + + /* Set up the Transmit Global Time mode */ + if (pHeader->TransmitGlobalTime == ENABLE) + { + SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].TDTR, CAN_TDT0R_TGT); + } + + /* Set up the data field */ + WRITE_REG(hcan->Instance->sTxMailBox[transmitmailbox].TDHR, + ((uint32_t)aData[7] << CAN_TDH0R_DATA7_Pos) | + ((uint32_t)aData[6] << CAN_TDH0R_DATA6_Pos) | + ((uint32_t)aData[5] << CAN_TDH0R_DATA5_Pos) | + ((uint32_t)aData[4] << CAN_TDH0R_DATA4_Pos)); + WRITE_REG(hcan->Instance->sTxMailBox[transmitmailbox].TDLR, + ((uint32_t)aData[3] << CAN_TDL0R_DATA3_Pos) | + ((uint32_t)aData[2] << CAN_TDL0R_DATA2_Pos) | + ((uint32_t)aData[1] << CAN_TDL0R_DATA1_Pos) | + ((uint32_t)aData[0] << CAN_TDL0R_DATA0_Pos)); + + /* Request transmission */ + SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].TIR, CAN_TI0R_TXRQ); + + /* Return function status */ + return HAL_OK; + } + else + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_PARAM; + + return HAL_ERROR; + } + } + else + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; + + return HAL_ERROR; + } +} + +/** + * @brief Abort transmission requests + * @param hcan pointer to an CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @param TxMailboxes List of the Tx Mailboxes to abort. + * This parameter can be any combination of @arg CAN_Tx_Mailboxes. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_CAN_AbortTxRequest(CAN_HandleTypeDef *hcan, uint32_t TxMailboxes) +{ + HAL_CAN_StateTypeDef state = hcan->State; + + /* Check function parameters */ + assert_param(IS_CAN_TX_MAILBOX_LIST(TxMailboxes)); + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + /* Check Tx Mailbox 0 */ + if ((TxMailboxes & CAN_TX_MAILBOX0) != 0U) + { + /* Add cancellation request for Tx Mailbox 0 */ + SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ0); + } + + /* Check Tx Mailbox 1 */ + if ((TxMailboxes & CAN_TX_MAILBOX1) != 0U) + { + /* Add cancellation request for Tx Mailbox 1 */ + SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ1); + } + + /* Check Tx Mailbox 2 */ + if ((TxMailboxes & CAN_TX_MAILBOX2) != 0U) + { + /* Add cancellation request for Tx Mailbox 2 */ + SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ2); + } + + /* Return function status */ + return HAL_OK; + } + else + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; + + return HAL_ERROR; + } +} + +/** + * @brief Return Tx Mailboxes free level: number of free Tx Mailboxes. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval Number of free Tx Mailboxes. + */ +uint32_t HAL_CAN_GetTxMailboxesFreeLevel(CAN_HandleTypeDef *hcan) +{ + uint32_t freelevel = 0U; + HAL_CAN_StateTypeDef state = hcan->State; + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + /* Check Tx Mailbox 0 status */ + if ((hcan->Instance->TSR & CAN_TSR_TME0) != 0U) + { + freelevel++; + } + + /* Check Tx Mailbox 1 status */ + if ((hcan->Instance->TSR & CAN_TSR_TME1) != 0U) + { + freelevel++; + } + + /* Check Tx Mailbox 2 status */ + if ((hcan->Instance->TSR & CAN_TSR_TME2) != 0U) + { + freelevel++; + } + } + + /* Return Tx Mailboxes free level */ + return freelevel; +} + +/** + * @brief Check if a transmission request is pending on the selected Tx + * Mailboxes. + * @param hcan pointer to an CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @param TxMailboxes List of Tx Mailboxes to check. + * This parameter can be any combination of @arg CAN_Tx_Mailboxes. + * @retval Status + * - 0 : No pending transmission request on any selected Tx Mailboxes. + * - 1 : Pending transmission request on at least one of the selected + * Tx Mailbox. + */ +uint32_t HAL_CAN_IsTxMessagePending(CAN_HandleTypeDef *hcan, uint32_t TxMailboxes) +{ + uint32_t status = 0U; + HAL_CAN_StateTypeDef state = hcan->State; + + /* Check function parameters */ + assert_param(IS_CAN_TX_MAILBOX_LIST(TxMailboxes)); + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + /* Check pending transmission request on the selected Tx Mailboxes */ + if ((hcan->Instance->TSR & (TxMailboxes << CAN_TSR_TME0_Pos)) != (TxMailboxes << CAN_TSR_TME0_Pos)) + { + status = 1U; + } + } + + /* Return status */ + return status; +} + +/** + * @brief Return timestamp of Tx message sent, if time triggered communication + mode is enabled. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @param TxMailbox Tx Mailbox where the timestamp of message sent will be + * read. + * This parameter can be one value of @arg CAN_Tx_Mailboxes. + * @retval Timestamp of message sent from Tx Mailbox. + */ +uint32_t HAL_CAN_GetTxTimestamp(CAN_HandleTypeDef *hcan, uint32_t TxMailbox) +{ + uint32_t timestamp = 0U; + uint32_t transmitmailbox; + HAL_CAN_StateTypeDef state = hcan->State; + + /* Check function parameters */ + assert_param(IS_CAN_TX_MAILBOX(TxMailbox)); + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + /* Select the Tx mailbox */ + transmitmailbox = POSITION_VAL(TxMailbox); + + /* Get timestamp */ + timestamp = (hcan->Instance->sTxMailBox[transmitmailbox].TDTR & CAN_TDT0R_TIME) >> CAN_TDT0R_TIME_Pos; + } + + /* Return the timestamp */ + return timestamp; +} + +/** + * @brief Get an CAN frame from the Rx FIFO zone into the message RAM. + * @param hcan pointer to an CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @param RxFifo Fifo number of the received message to be read. + * This parameter can be a value of @arg CAN_receive_FIFO_number. + * @param pHeader pointer to a CAN_RxHeaderTypeDef structure where the header + * of the Rx frame will be stored. + * @param aData array where the payload of the Rx frame will be stored. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_CAN_GetRxMessage(CAN_HandleTypeDef *hcan, uint32_t RxFifo, CAN_RxHeaderTypeDef *pHeader, uint8_t aData[]) +{ + HAL_CAN_StateTypeDef state = hcan->State; + + assert_param(IS_CAN_RX_FIFO(RxFifo)); + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + /* Check the Rx FIFO */ + if (RxFifo == CAN_RX_FIFO0) /* Rx element is assigned to Rx FIFO 0 */ + { + /* Check that the Rx FIFO 0 is not empty */ + if ((hcan->Instance->RF0R & CAN_RF0R_FMP0) == 0U) + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_PARAM; + + return HAL_ERROR; + } + } + else /* Rx element is assigned to Rx FIFO 1 */ + { + /* Check that the Rx FIFO 1 is not empty */ + if ((hcan->Instance->RF1R & CAN_RF1R_FMP1) == 0U) + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_PARAM; + + return HAL_ERROR; + } + } + + /* Get the header */ + pHeader->IDE = CAN_RI0R_IDE & hcan->Instance->sFIFOMailBox[RxFifo].RIR; + if (pHeader->IDE == CAN_ID_STD) + { + pHeader->StdId = (CAN_RI0R_STID & hcan->Instance->sFIFOMailBox[RxFifo].RIR) >> CAN_TI0R_STID_Pos; + } + else + { + pHeader->ExtId = ((CAN_RI0R_EXID | CAN_RI0R_STID) & hcan->Instance->sFIFOMailBox[RxFifo].RIR) >> CAN_RI0R_EXID_Pos; + } + pHeader->RTR = (CAN_RI0R_RTR & hcan->Instance->sFIFOMailBox[RxFifo].RIR); + pHeader->DLC = (CAN_RDT0R_DLC & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_DLC_Pos; + pHeader->FilterMatchIndex = (CAN_RDT0R_FMI & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_FMI_Pos; + pHeader->Timestamp = (CAN_RDT0R_TIME & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_TIME_Pos; + + /* Get the data */ + aData[0] = (uint8_t)((CAN_RDL0R_DATA0 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R_DATA0_Pos); + aData[1] = (uint8_t)((CAN_RDL0R_DATA1 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R_DATA1_Pos); + aData[2] = (uint8_t)((CAN_RDL0R_DATA2 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R_DATA2_Pos); + aData[3] = (uint8_t)((CAN_RDL0R_DATA3 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R_DATA3_Pos); + aData[4] = (uint8_t)((CAN_RDH0R_DATA4 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R_DATA4_Pos); + aData[5] = (uint8_t)((CAN_RDH0R_DATA5 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R_DATA5_Pos); + aData[6] = (uint8_t)((CAN_RDH0R_DATA6 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R_DATA6_Pos); + aData[7] = (uint8_t)((CAN_RDH0R_DATA7 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R_DATA7_Pos); + + /* Release the FIFO */ + if (RxFifo == CAN_RX_FIFO0) /* Rx element is assigned to Rx FIFO 0 */ + { + /* Release RX FIFO 0 */ + SET_BIT(hcan->Instance->RF0R, CAN_RF0R_RFOM0); + } + else /* Rx element is assigned to Rx FIFO 1 */ + { + /* Release RX FIFO 1 */ + SET_BIT(hcan->Instance->RF1R, CAN_RF1R_RFOM1); + } + + /* Return function status */ + return HAL_OK; + } + else + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; + + return HAL_ERROR; + } +} + +/** + * @brief Return Rx FIFO fill level. + * @param hcan pointer to an CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @param RxFifo Rx FIFO. + * This parameter can be a value of @arg CAN_receive_FIFO_number. + * @retval Number of messages available in Rx FIFO. + */ +uint32_t HAL_CAN_GetRxFifoFillLevel(CAN_HandleTypeDef *hcan, uint32_t RxFifo) +{ + uint32_t filllevel = 0U; + HAL_CAN_StateTypeDef state = hcan->State; + + /* Check function parameters */ + assert_param(IS_CAN_RX_FIFO(RxFifo)); + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + if (RxFifo == CAN_RX_FIFO0) + { + filllevel = hcan->Instance->RF0R & CAN_RF0R_FMP0; + } + else /* RxFifo == CAN_RX_FIFO1 */ + { + filllevel = hcan->Instance->RF1R & CAN_RF1R_FMP1; + } + } + + /* Return Rx FIFO fill level */ + return filllevel; +} + +/** + * @} + */ + +/** @defgroup CAN_Exported_Functions_Group4 Interrupts management + * @brief Interrupts management + * +@verbatim + ============================================================================== + ##### Interrupts management ##### + ============================================================================== + [..] This section provides functions allowing to: + (+) HAL_CAN_ActivateNotification : Enable interrupts + (+) HAL_CAN_DeactivateNotification : Disable interrupts + (+) HAL_CAN_IRQHandler : Handles CAN interrupt request + +@endverbatim + * @{ + */ + +/** + * @brief Enable interrupts. + * @param hcan pointer to an CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @param ActiveITs indicates which interrupts will be enabled. + * This parameter can be any combination of @arg CAN_Interrupts. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_CAN_ActivateNotification(CAN_HandleTypeDef *hcan, uint32_t ActiveITs) +{ + HAL_CAN_StateTypeDef state = hcan->State; + + /* Check function parameters */ + assert_param(IS_CAN_IT(ActiveITs)); + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + /* Enable the selected interrupts */ + __HAL_CAN_ENABLE_IT(hcan, ActiveITs); + + /* Return function status */ + return HAL_OK; + } + else + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; + + return HAL_ERROR; + } +} + +/** + * @brief Disable interrupts. + * @param hcan pointer to an CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @param InactiveITs indicates which interrupts will be disabled. + * This parameter can be any combination of @arg CAN_Interrupts. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_CAN_DeactivateNotification(CAN_HandleTypeDef *hcan, uint32_t InactiveITs) +{ + HAL_CAN_StateTypeDef state = hcan->State; + + /* Check function parameters */ + assert_param(IS_CAN_IT(InactiveITs)); + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + /* Disable the selected interrupts */ + __HAL_CAN_DISABLE_IT(hcan, InactiveITs); + + /* Return function status */ + return HAL_OK; + } + else + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; + + return HAL_ERROR; + } +} + +/** + * @brief Handles CAN interrupt request + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +void HAL_CAN_IRQHandler(CAN_HandleTypeDef *hcan) +{ + uint32_t errorcode = HAL_CAN_ERROR_NONE; + uint32_t interrupts = READ_REG(hcan->Instance->IER); + uint32_t msrflags = READ_REG(hcan->Instance->MSR); + uint32_t tsrflags = READ_REG(hcan->Instance->TSR); + uint32_t rf0rflags = READ_REG(hcan->Instance->RF0R); + uint32_t rf1rflags = READ_REG(hcan->Instance->RF1R); + uint32_t esrflags = READ_REG(hcan->Instance->ESR); + + /* Transmit Mailbox empty interrupt management *****************************/ + if ((interrupts & CAN_IT_TX_MAILBOX_EMPTY) != 0U) + { + /* Transmit Mailbox 0 management *****************************************/ + if ((tsrflags & CAN_TSR_RQCP0) != 0U) + { + /* Clear the Transmission Complete flag (and TXOK0,ALST0,TERR0 bits) */ + __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP0); + + if ((tsrflags & CAN_TSR_TXOK0) != 0U) + { + /* Transmission Mailbox 0 complete callback */ +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + /* Call registered callback*/ + hcan->TxMailbox0CompleteCallback(hcan); +#else + /* Call weak (surcharged) callback */ + HAL_CAN_TxMailbox0CompleteCallback(hcan); +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ + } + else + { + if ((tsrflags & CAN_TSR_ALST0) != 0U) + { + /* Update error code */ + errorcode |= HAL_CAN_ERROR_TX_ALST0; + } + else if ((tsrflags & CAN_TSR_TERR0) != 0U) + { + /* Update error code */ + errorcode |= HAL_CAN_ERROR_TX_TERR0; + } + else + { + /* Transmission Mailbox 0 abort callback */ +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + /* Call registered callback*/ + hcan->TxMailbox0AbortCallback(hcan); +#else + /* Call weak (surcharged) callback */ + HAL_CAN_TxMailbox0AbortCallback(hcan); +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ + } + } + } + + /* Transmit Mailbox 1 management *****************************************/ + if ((tsrflags & CAN_TSR_RQCP1) != 0U) + { + /* Clear the Transmission Complete flag (and TXOK1,ALST1,TERR1 bits) */ + __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP1); + + if ((tsrflags & CAN_TSR_TXOK1) != 0U) + { + /* Transmission Mailbox 1 complete callback */ +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + /* Call registered callback*/ + hcan->TxMailbox1CompleteCallback(hcan); +#else + /* Call weak (surcharged) callback */ + HAL_CAN_TxMailbox1CompleteCallback(hcan); +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ + } + else + { + if ((tsrflags & CAN_TSR_ALST1) != 0U) + { + /* Update error code */ + errorcode |= HAL_CAN_ERROR_TX_ALST1; + } + else if ((tsrflags & CAN_TSR_TERR1) != 0U) + { + /* Update error code */ + errorcode |= HAL_CAN_ERROR_TX_TERR1; + } + else + { + /* Transmission Mailbox 1 abort callback */ +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + /* Call registered callback*/ + hcan->TxMailbox1AbortCallback(hcan); +#else + /* Call weak (surcharged) callback */ + HAL_CAN_TxMailbox1AbortCallback(hcan); +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ + } + } + } + + /* Transmit Mailbox 2 management *****************************************/ + if ((tsrflags & CAN_TSR_RQCP2) != 0U) + { + /* Clear the Transmission Complete flag (and TXOK2,ALST2,TERR2 bits) */ + __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP2); + + if ((tsrflags & CAN_TSR_TXOK2) != 0U) + { + /* Transmission Mailbox 2 complete callback */ +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + /* Call registered callback*/ + hcan->TxMailbox2CompleteCallback(hcan); +#else + /* Call weak (surcharged) callback */ + HAL_CAN_TxMailbox2CompleteCallback(hcan); +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ + } + else + { + if ((tsrflags & CAN_TSR_ALST2) != 0U) + { + /* Update error code */ + errorcode |= HAL_CAN_ERROR_TX_ALST2; + } + else if ((tsrflags & CAN_TSR_TERR2) != 0U) + { + /* Update error code */ + errorcode |= HAL_CAN_ERROR_TX_TERR2; + } + else + { + /* Transmission Mailbox 2 abort callback */ +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + /* Call registered callback*/ + hcan->TxMailbox2AbortCallback(hcan); +#else + /* Call weak (surcharged) callback */ + HAL_CAN_TxMailbox2AbortCallback(hcan); +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ + } + } + } + } + + /* Receive FIFO 0 overrun interrupt management *****************************/ + if ((interrupts & CAN_IT_RX_FIFO0_OVERRUN) != 0U) + { + if ((rf0rflags & CAN_RF0R_FOVR0) != 0U) + { + /* Set CAN error code to Rx Fifo 0 overrun error */ + errorcode |= HAL_CAN_ERROR_RX_FOV0; + + /* Clear FIFO0 Overrun Flag */ + __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FOV0); + } + } + + /* Receive FIFO 0 full interrupt management ********************************/ + if ((interrupts & CAN_IT_RX_FIFO0_FULL) != 0U) + { + if ((rf0rflags & CAN_RF0R_FULL0) != 0U) + { + /* Clear FIFO 0 full Flag */ + __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FF0); + + /* Receive FIFO 0 full Callback */ +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + /* Call registered callback*/ + hcan->RxFifo0FullCallback(hcan); +#else + /* Call weak (surcharged) callback */ + HAL_CAN_RxFifo0FullCallback(hcan); +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ + } + } + + /* Receive FIFO 0 message pending interrupt management *********************/ + if ((interrupts & CAN_IT_RX_FIFO0_MSG_PENDING) != 0U) + { + /* Check if message is still pending */ + if ((hcan->Instance->RF0R & CAN_RF0R_FMP0) != 0U) + { + /* Receive FIFO 0 mesage pending Callback */ +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + /* Call registered callback*/ + hcan->RxFifo0MsgPendingCallback(hcan); +#else + /* Call weak (surcharged) callback */ + HAL_CAN_RxFifo0MsgPendingCallback(hcan); +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ + } + } + + /* Receive FIFO 1 overrun interrupt management *****************************/ + if ((interrupts & CAN_IT_RX_FIFO1_OVERRUN) != 0U) + { + if ((rf1rflags & CAN_RF1R_FOVR1) != 0U) + { + /* Set CAN error code to Rx Fifo 1 overrun error */ + errorcode |= HAL_CAN_ERROR_RX_FOV1; + + /* Clear FIFO1 Overrun Flag */ + __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FOV1); + } + } + + /* Receive FIFO 1 full interrupt management ********************************/ + if ((interrupts & CAN_IT_RX_FIFO1_FULL) != 0U) + { + if ((rf1rflags & CAN_RF1R_FULL1) != 0U) + { + /* Clear FIFO 1 full Flag */ + __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FF1); + + /* Receive FIFO 1 full Callback */ +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + /* Call registered callback*/ + hcan->RxFifo1FullCallback(hcan); +#else + /* Call weak (surcharged) callback */ + HAL_CAN_RxFifo1FullCallback(hcan); +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ + } + } + + /* Receive FIFO 1 message pending interrupt management *********************/ + if ((interrupts & CAN_IT_RX_FIFO1_MSG_PENDING) != 0U) + { + /* Check if message is still pending */ + if ((hcan->Instance->RF1R & CAN_RF1R_FMP1) != 0U) + { + /* Receive FIFO 1 mesage pending Callback */ +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + /* Call registered callback*/ + hcan->RxFifo1MsgPendingCallback(hcan); +#else + /* Call weak (surcharged) callback */ + HAL_CAN_RxFifo1MsgPendingCallback(hcan); +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ + } + } + + /* Sleep interrupt management *********************************************/ + if ((interrupts & CAN_IT_SLEEP_ACK) != 0U) + { + if ((msrflags & CAN_MSR_SLAKI) != 0U) + { + /* Clear Sleep interrupt Flag */ + __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_SLAKI); + + /* Sleep Callback */ +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + /* Call registered callback*/ + hcan->SleepCallback(hcan); +#else + /* Call weak (surcharged) callback */ + HAL_CAN_SleepCallback(hcan); +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ + } + } + + /* WakeUp interrupt management *********************************************/ + if ((interrupts & CAN_IT_WAKEUP) != 0U) + { + if ((msrflags & CAN_MSR_WKUI) != 0U) + { + /* Clear WakeUp Flag */ + __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_WKU); + + /* WakeUp Callback */ +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + /* Call registered callback*/ + hcan->WakeUpFromRxMsgCallback(hcan); +#else + /* Call weak (surcharged) callback */ + HAL_CAN_WakeUpFromRxMsgCallback(hcan); +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ + } + } + + /* Error interrupts management *********************************************/ + if ((interrupts & CAN_IT_ERROR) != 0U) + { + if ((msrflags & CAN_MSR_ERRI) != 0U) + { + /* Check Error Warning Flag */ + if (((interrupts & CAN_IT_ERROR_WARNING) != 0U) && + ((esrflags & CAN_ESR_EWGF) != 0U)) + { + /* Set CAN error code to Error Warning */ + errorcode |= HAL_CAN_ERROR_EWG; + + /* No need for clear of Error Warning Flag as read-only */ + } + + /* Check Error Passive Flag */ + if (((interrupts & CAN_IT_ERROR_PASSIVE) != 0U) && + ((esrflags & CAN_ESR_EPVF) != 0U)) + { + /* Set CAN error code to Error Passive */ + errorcode |= HAL_CAN_ERROR_EPV; + + /* No need for clear of Error Passive Flag as read-only */ + } + + /* Check Bus-off Flag */ + if (((interrupts & CAN_IT_BUSOFF) != 0U) && + ((esrflags & CAN_ESR_BOFF) != 0U)) + { + /* Set CAN error code to Bus-Off */ + errorcode |= HAL_CAN_ERROR_BOF; + + /* No need for clear of Error Bus-Off as read-only */ + } + + /* Check Last Error Code Flag */ + if (((interrupts & CAN_IT_LAST_ERROR_CODE) != 0U) && + ((esrflags & CAN_ESR_LEC) != 0U)) + { + switch (esrflags & CAN_ESR_LEC) + { + case (CAN_ESR_LEC_0): + /* Set CAN error code to Stuff error */ + errorcode |= HAL_CAN_ERROR_STF; + break; + case (CAN_ESR_LEC_1): + /* Set CAN error code to Form error */ + errorcode |= HAL_CAN_ERROR_FOR; + break; + case (CAN_ESR_LEC_1 | CAN_ESR_LEC_0): + /* Set CAN error code to Acknowledgement error */ + errorcode |= HAL_CAN_ERROR_ACK; + break; + case (CAN_ESR_LEC_2): + /* Set CAN error code to Bit recessive error */ + errorcode |= HAL_CAN_ERROR_BR; + break; + case (CAN_ESR_LEC_2 | CAN_ESR_LEC_0): + /* Set CAN error code to Bit Dominant error */ + errorcode |= HAL_CAN_ERROR_BD; + break; + case (CAN_ESR_LEC_2 | CAN_ESR_LEC_1): + /* Set CAN error code to CRC error */ + errorcode |= HAL_CAN_ERROR_CRC; + break; + default: + break; + } + + /* Clear Last error code Flag */ + CLEAR_BIT(hcan->Instance->ESR, CAN_ESR_LEC); + } + } + + /* Clear ERRI Flag */ + __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_ERRI); + } + + /* Call the Error call Back in case of Errors */ + if (errorcode != HAL_CAN_ERROR_NONE) + { + /* Update error code in handle */ + hcan->ErrorCode |= errorcode; + + /* Call Error callback function */ +#if USE_HAL_CAN_REGISTER_CALLBACKS == 1 + /* Call registered callback*/ + hcan->ErrorCallback(hcan); +#else + /* Call weak (surcharged) callback */ + HAL_CAN_ErrorCallback(hcan); +#endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ + } +} + +/** + * @} + */ + +/** @defgroup CAN_Exported_Functions_Group5 Callback functions + * @brief CAN Callback functions + * +@verbatim + ============================================================================== + ##### Callback functions ##### + ============================================================================== + [..] + This subsection provides the following callback functions: + (+) HAL_CAN_TxMailbox0CompleteCallback + (+) HAL_CAN_TxMailbox1CompleteCallback + (+) HAL_CAN_TxMailbox2CompleteCallback + (+) HAL_CAN_TxMailbox0AbortCallback + (+) HAL_CAN_TxMailbox1AbortCallback + (+) HAL_CAN_TxMailbox2AbortCallback + (+) HAL_CAN_RxFifo0MsgPendingCallback + (+) HAL_CAN_RxFifo0FullCallback + (+) HAL_CAN_RxFifo1MsgPendingCallback + (+) HAL_CAN_RxFifo1FullCallback + (+) HAL_CAN_SleepCallback + (+) HAL_CAN_WakeUpFromRxMsgCallback + (+) HAL_CAN_ErrorCallback + +@endverbatim + * @{ + */ + +/** + * @brief Transmission Mailbox 0 complete callback. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_TxMailbox0CompleteCallback(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_TxMailbox0CompleteCallback could be implemented in the + user file + */ +} + +/** + * @brief Transmission Mailbox 1 complete callback. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_TxMailbox1CompleteCallback(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_TxMailbox1CompleteCallback could be implemented in the + user file + */ +} + +/** + * @brief Transmission Mailbox 2 complete callback. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_TxMailbox2CompleteCallback(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_TxMailbox2CompleteCallback could be implemented in the + user file + */ +} + +/** + * @brief Transmission Mailbox 0 Cancellation callback. + * @param hcan pointer to an CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_TxMailbox0AbortCallback(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_TxMailbox0AbortCallback could be implemented in the + user file + */ +} + +/** + * @brief Transmission Mailbox 1 Cancellation callback. + * @param hcan pointer to an CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_TxMailbox1AbortCallback(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_TxMailbox1AbortCallback could be implemented in the + user file + */ +} + +/** + * @brief Transmission Mailbox 2 Cancellation callback. + * @param hcan pointer to an CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_TxMailbox2AbortCallback(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_TxMailbox2AbortCallback could be implemented in the + user file + */ +} + +/** + * @brief Rx FIFO 0 message pending callback. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_RxFifo0MsgPendingCallback could be implemented in the + user file + */ +} + +/** + * @brief Rx FIFO 0 full callback. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_RxFifo0FullCallback(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_RxFifo0FullCallback could be implemented in the user + file + */ +} + +/** + * @brief Rx FIFO 1 message pending callback. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_RxFifo1MsgPendingCallback(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_RxFifo1MsgPendingCallback could be implemented in the + user file + */ +} + +/** + * @brief Rx FIFO 1 full callback. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_RxFifo1FullCallback(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_RxFifo1FullCallback could be implemented in the user + file + */ +} + +/** + * @brief Sleep callback. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_SleepCallback(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_SleepCallback could be implemented in the user file + */ +} + +/** + * @brief WakeUp from Rx message callback. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_WakeUpFromRxMsgCallback(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_WakeUpFromRxMsgCallback could be implemented in the + user file + */ +} + +/** + * @brief Error CAN callback. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval None + */ +__weak void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hcan); + + /* NOTE : This function Should not be modified, when the callback is needed, + the HAL_CAN_ErrorCallback could be implemented in the user file + */ +} + +/** + * @} + */ + +/** @defgroup CAN_Exported_Functions_Group6 Peripheral State and Error functions + * @brief CAN Peripheral State functions + * +@verbatim + ============================================================================== + ##### Peripheral State and Error functions ##### + ============================================================================== + [..] + This subsection provides functions allowing to : + (+) HAL_CAN_GetState() : Return the CAN state. + (+) HAL_CAN_GetError() : Return the CAN error codes if any. + (+) HAL_CAN_ResetError(): Reset the CAN error codes if any. + +@endverbatim + * @{ + */ + +/** + * @brief Return the CAN state. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval HAL state + */ +HAL_CAN_StateTypeDef HAL_CAN_GetState(CAN_HandleTypeDef *hcan) +{ + HAL_CAN_StateTypeDef state = hcan->State; + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + /* Check sleep mode acknowledge flag */ + if ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U) + { + /* Sleep mode is active */ + state = HAL_CAN_STATE_SLEEP_ACTIVE; + } + /* Check sleep mode request flag */ + else if ((hcan->Instance->MCR & CAN_MCR_SLEEP) != 0U) + { + /* Sleep mode request is pending */ + state = HAL_CAN_STATE_SLEEP_PENDING; + } + else + { + /* Neither sleep mode request nor sleep mode acknowledge */ + } + } + + /* Return CAN state */ + return state; +} + +/** + * @brief Return the CAN error code. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval CAN Error Code + */ +uint32_t HAL_CAN_GetError(CAN_HandleTypeDef *hcan) +{ + /* Return CAN error code */ + return hcan->ErrorCode; +} + +/** + * @brief Reset the CAN error code. + * @param hcan pointer to a CAN_HandleTypeDef structure that contains + * the configuration information for the specified CAN. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_CAN_ResetError(CAN_HandleTypeDef *hcan) +{ + HAL_StatusTypeDef status = HAL_OK; + HAL_CAN_StateTypeDef state = hcan->State; + + if ((state == HAL_CAN_STATE_READY) || + (state == HAL_CAN_STATE_LISTENING)) + { + /* Reset CAN error code */ + hcan->ErrorCode = 0U; + } + else + { + /* Update error code */ + hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; + + status = HAL_ERROR; + } + + /* Return the status */ + return status; +} + +/** + * @} + */ + +/** + * @} + */ + +#endif /* HAL_CAN_MODULE_ENABLED */ + +/** + * @} + */ + +#endif /* CAN1 */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Standard_robot/Inc/can.h b/Standard_robot/Inc/can.h new file mode 100644 index 0000000..8e586fd --- /dev/null +++ b/Standard_robot/Inc/can.h @@ -0,0 +1,58 @@ +/** + ****************************************************************************** + * File Name : CAN.h + * Description : This file provides code for the configuration + * of the CAN instances. + ****************************************************************************** + * @attention + * + * <h2><center>© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.</center></h2> + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __can_H +#define __can_H +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +extern CAN_HandleTypeDef hcan1; + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_CAN1_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif +#endif /*__ can_H */ + +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Standard_robot/Inc/main.h b/Standard_robot/Inc/main.h index 25ceb98..12ef3cd 100644 --- a/Standard_robot/Inc/main.h +++ b/Standard_robot/Inc/main.h @@ -17,6 +17,7 @@ * ****************************************************************************** */ +#define LIMIT_MIN_MAX(x,min,max) (x) = (((x)<=(min))?(min):(((x)>=(max))?(max):(x))) /* USER CODE END Header */ /* Define to prevent recursive inclusion -------------------------------------*/ @@ -58,10 +59,33 @@ void Error_Handler(void); /* USER CODE END EFP */ /* Private defines -----------------------------------------------------------*/ +#define PWM_FREQUENCE 50 +#define PWM_RESOLUTION 10000 +#define APB1_TIMER_CLOCKS 84000000 +#define PWM_DEFAULT_DUTY 5000 +#define APB2_TIMER_CLOCKS 168000000 +#define TIM_PSC_APB1 ((APB1_TIMER_CLOCKS/PWM_FREQUENCE)/PWM_RESOLUTION -1) +#define TIM_PSC_APB2 ((APB2_TIMER_CLOCKS/PWM_FREQUENCE)/PWM_RESOLUTION -1) #define OLED_DC_Pin GPIO_PIN_9 #define OLED_DC_GPIO_Port GPIOB +#define Z_Pin GPIO_PIN_2 +#define Z_GPIO_Port GPIOI +#define POWER1_CTRL_Pin GPIO_PIN_2 +#define POWER1_CTRL_GPIO_Port GPIOH +#define POWER2_CTRL_Pin GPIO_PIN_3 +#define POWER2_CTRL_GPIO_Port GPIOH +#define POWER3_CTRL_Pin GPIO_PIN_4 +#define POWER3_CTRL_GPIO_Port GPIOH #define LED_A_Pin GPIO_PIN_8 #define LED_A_GPIO_Port GPIOG +#define POWER4_CTRL_Pin GPIO_PIN_5 +#define POWER4_CTRL_GPIO_Port GPIOH +#define KEY_Pin GPIO_PIN_2 +#define KEY_GPIO_Port GPIOB +#define LED_RED_Pin GPIO_PIN_11 +#define LED_RED_GPIO_Port GPIOE +#define LED_GREEN_Pin GPIO_PIN_14 +#define LED_GREEN_GPIO_Port GPIOF #define OLED_RST_Pin GPIO_PIN_10 #define OLED_RST_GPIO_Port GPIOB /* USER CODE BEGIN Private defines */ diff --git a/Standard_robot/Inc/stm32f4xx_hal_conf.h b/Standard_robot/Inc/stm32f4xx_hal_conf.h index 87bc481..3c27478 100644 --- a/Standard_robot/Inc/stm32f4xx_hal_conf.h +++ b/Standard_robot/Inc/stm32f4xx_hal_conf.h @@ -38,7 +38,7 @@ #define HAL_ADC_MODULE_ENABLED /* #define HAL_CRYP_MODULE_ENABLED */ -/* #define HAL_CAN_MODULE_ENABLED */ +#define HAL_CAN_MODULE_ENABLED /* #define HAL_CRC_MODULE_ENABLED */ /* #define HAL_CRYP_MODULE_ENABLED */ /* #define HAL_DAC_MODULE_ENABLED */ @@ -61,11 +61,12 @@ /* #define HAL_SD_MODULE_ENABLED */ /* #define HAL_MMC_MODULE_ENABLED */ #define HAL_SPI_MODULE_ENABLED -/* #define HAL_TIM_MODULE_ENABLED */ +#define HAL_TIM_MODULE_ENABLED #define HAL_UART_MODULE_ENABLED /* #define HAL_USART_MODULE_ENABLED */ /* #define HAL_IRDA_MODULE_ENABLED */ /* #define HAL_SMARTCARD_MODULE_ENABLED */ +/* #define HAL_SMBUS_MODULE_ENABLED */ /* #define HAL_WWDG_MODULE_ENABLED */ /* #define HAL_PCD_MODULE_ENABLED */ /* #define HAL_HCD_MODULE_ENABLED */ @@ -77,7 +78,6 @@ /* #define HAL_SPDIFRX_MODULE_ENABLED */ /* #define HAL_DFSDM_MODULE_ENABLED */ /* #define HAL_LPTIM_MODULE_ENABLED */ -/* #define HAL_EXTI_MODULE_ENABLED */ #define HAL_GPIO_MODULE_ENABLED #define HAL_EXTI_MODULE_ENABLED #define HAL_DMA_MODULE_ENABLED @@ -264,6 +264,10 @@ #include "stm32f4xx_hal_cryp.h" #endif /* HAL_CRYP_MODULE_ENABLED */ +#ifdef HAL_SMBUS_MODULE_ENABLED +#include "stm32f4xx_hal_smbus.h" +#endif /* HAL_SMBUS_MODULE_ENABLED */ + #ifdef HAL_DMA2D_MODULE_ENABLED #include "stm32f4xx_hal_dma2d.h" #endif /* HAL_DMA2D_MODULE_ENABLED */ diff --git a/Standard_robot/Inc/stm32f4xx_it.h b/Standard_robot/Inc/stm32f4xx_it.h index 1c02bb8..b61be99 100644 --- a/Standard_robot/Inc/stm32f4xx_it.h +++ b/Standard_robot/Inc/stm32f4xx_it.h @@ -56,7 +56,10 @@ void SVC_Handler(void); void DebugMon_Handler(void); void PendSV_Handler(void); void SysTick_Handler(void); +void CAN1_TX_IRQHandler(void); +void CAN1_RX0_IRQHandler(void); void USART1_IRQHandler(void); +void DMA2_Stream2_IRQHandler(void); void DMA2_Stream7_IRQHandler(void); /* USER CODE BEGIN EFP */ diff --git a/Standard_robot/Inc/tim.h b/Standard_robot/Inc/tim.h new file mode 100644 index 0000000..b573a6b --- /dev/null +++ b/Standard_robot/Inc/tim.h @@ -0,0 +1,60 @@ +/** + ****************************************************************************** + * File Name : TIM.h + * Description : This file provides code for the configuration + * of the TIM instances. + ****************************************************************************** + * @attention + * + * <h2><center>© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.</center></h2> + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __tim_H +#define __tim_H +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +extern TIM_HandleTypeDef htim1; + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_TIM1_Init(void); + +void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif +#endif /*__ tim_H */ + +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Standard_robot/MDK-ARM/EventRecorderStub.scvd b/Standard_robot/MDK-ARM/EventRecorderStub.scvd new file mode 100644 index 0000000..2956b29 --- /dev/null +++ b/Standard_robot/MDK-ARM/EventRecorderStub.scvd @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> + +<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd"> + +<component name="EventRecorderStub" version="1.0.0"/> <!--name and version of the component--> + <events> + </events> + +</component_viewer> diff --git a/Standard_robot/MDK-ARM/Standard_robot.uvguix.Baptiste b/Standard_robot/MDK-ARM/Standard_robot.uvguix.Baptiste new file mode 100644 index 0000000..b90e2ed --- /dev/null +++ b/Standard_robot/MDK-ARM/Standard_robot.uvguix.Baptiste @@ -0,0 +1,1932 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<ProjectGui xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_guix.xsd"> + + <SchemaVersion>-6.1</SchemaVersion> + + <Header>### uVision Project, (C) Keil Software</Header> + + <PrjGuiSettings> + <LastAddFilePath></LastAddFilePath> + </PrjGuiSettings> + + <ViewPool/> + + <SECTreeCtrl> + <View> + <WinId>38003</WinId> + <ViewName>Registers</ViewName> + <TableColWidths>187 188</TableColWidths> + </View> + <View> + <WinId>346</WinId> + <ViewName>Code Coverage</ViewName> + <TableColWidths>665 160</TableColWidths> + </View> + <View> + <WinId>204</WinId> + <ViewName>Performance Analyzer</ViewName> + <TableColWidths>825</TableColWidths> + </View> + </SECTreeCtrl> + + <TreeListPane> + <View> + <WinId>35141</WinId> + <ViewName>Event Statistics</ViewName> + <UserString></UserString> + <TableColWidths>200 50 700</TableColWidths> + </View> + <View> + <WinId>1506</WinId> + <ViewName>Symbols</ViewName> + <UserString></UserString> + <TableColWidths>56 56 56</TableColWidths> + </View> + <View> + <WinId>1936</WinId> + <ViewName>Watch 1</ViewName> + <UserString></UserString> + <TableColWidths>200 133 133</TableColWidths> + </View> + <View> + <WinId>1937</WinId> + <ViewName>Watch 2</ViewName> + <UserString></UserString> + <TableColWidths>200 133 133</TableColWidths> + </View> + <View> + <WinId>1935</WinId> + <ViewName>Call Stack + Locals</ViewName> + <UserString></UserString> + <TableColWidths>200 133 133</TableColWidths> + </View> + <View> + <WinId>2506</WinId> + <ViewName>Trace Data</ViewName> + <UserString></UserString> + <TableColWidths>75 135 130 95 70 230 200 150</TableColWidths> + </View> + <View> + <WinId>466</WinId> + <ViewName>Source Browser</ViewName> + <UserString>500</UserString> + <TableColWidths>300</TableColWidths> + </View> + </TreeListPane> + + <CompViewPool/> + + <WindowSettings> + <LogicAnalizer> + <ShowLACursor>1</ShowLACursor> + <ShowSignalInfo>1</ShowSignalInfo> + <ShowCycles>0</ShowCycles> + <LeftSideBarSize>0</LeftSideBarSize> + <TimeBaseIndex>-1</TimeBaseIndex> + </LogicAnalizer> + </WindowSettings> + + <WinLayoutEx> + <sActiveDebugView></sActiveDebugView> + <WindowPosition> + <length>44</length> + <flags>2</flags> + <showCmd>3</showCmd> + <MinPosition> + <xPos>-32000</xPos> + <yPos>-32000</yPos> + </MinPosition> + <MaxPosition> + <xPos>-1</xPos> + <yPos>-1</yPos> + </MaxPosition> + <NormalPosition> + <Top>52</Top> + <Left>52</Left> + <Right>1077</Right> + <Bottom>577</Bottom> + </NormalPosition> + </WindowPosition> + <MDIClientArea> + <RegID>0</RegID> + <MDITabState> + <Len>784</Len> + <Data>01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000007000000000000000100000038433A5C55736572735C42617074697374655C4465736B746F705C5361757665676172646520506F6C79737461725C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF41433A5C55736572735C42617074697374655C4465736B746F705C5361757665676172646520506F6C79737461725C4253505C416C676F726974686D5C7069642E6300000000057069642E6300000000FFDC7800FFFFFFFF42433A5C55736572735C42617074697374655C4465736B746F705C5361757665676172646520506F6C79737461725C4253505C4472697665725C6273705F70776D2E6800000000096273705F70776D2E6800000000BECEA100FFFFFFFF42433A5C55736572735C42617074697374655C4465736B746F705C5361757665676172646520506F6C79737461725C4253505C4472697665725C6273705F70776D2E6300000000096273705F70776D2E6300000000F0A0A100FFFFFFFF38433A5C55736572735C42617074697374655C4465736B746F705C5361757665676172646520506F6C79737461725C496E635C6D61696E2E6800000000066D61696E2E6800000000BCA8E100FFFFFFFF40433A5C55736572735C42617074697374655C4465736B746F705C5361757665676172646520506F6C79737461725C4253505C4465766963655C6D6F746F722E6300000000076D6F746F722E63000000009CC1B600FFFFFFFF40433A5C55736572735C42617074697374655C4465736B746F705C5361757665676172646520506F6C79737461725C4253505C4465766963655C6D6F746F722E6800000000076D6F746F722E6800000000F7B88600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000850100006600000056050000DB010000</Data> + </MDITabState> + </MDIClientArea> + <ViewEx> + <ViewType>0</ViewType> + <ViewName>Build</ViewName> + <Window> + <RegID>-1</RegID> + <PaneID>-1</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>AE0000004F000000F1030000B3000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>AE00000066000000F1030000CA000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1005</RegID> + <PaneID>1005</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000660000007E010000AB010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>109</RegID> + <PaneID>109</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000660000007E010000AB010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000390100000C020000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1465</RegID> + <PaneID>1465</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1466</RegID> + <PaneID>1466</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1467</RegID> + <PaneID>1467</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1468</RegID> + <PaneID>1468</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1506</RegID> + <PaneID>1506</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>16384</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1913</RegID> + <PaneID>1913</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B100000066000000EE0300009A000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1935</RegID> + <PaneID>1935</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>32768</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1936</RegID> + <PaneID>1936</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1937</RegID> + <PaneID>1937</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1939</RegID> + <PaneID>1939</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1940</RegID> + <PaneID>1940</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1941</RegID> + <PaneID>1941</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1942</RegID> + <PaneID>1942</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>195</RegID> + <PaneID>195</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000660000007E010000AB010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000390100000C020000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>196</RegID> + <PaneID>196</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000660000007E010000AB010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000390100000C020000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>197</RegID> + <PaneID>197</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>32768</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>00000000DC01000056050000AE020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>198</RegID> + <PaneID>198</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>32768</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>000000005E010000F1030000D3010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>199</RegID> + <PaneID>199</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000DF0100005305000095020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>203</RegID> + <PaneID>203</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B100000066000000EE0300009A000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>204</RegID> + <PaneID>204</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B100000066000000EE0300009A000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>221</RegID> + <PaneID>221</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>00000000000000000000000000000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>2506</RegID> + <PaneID>2506</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>2507</RegID> + <PaneID>2507</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>343</RegID> + <PaneID>343</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B100000066000000EE0300009A000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>346</RegID> + <PaneID>346</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B100000066000000EE0300009A000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35141</RegID> + <PaneID>35141</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B100000066000000EE0300009A000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35824</RegID> + <PaneID>35824</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B100000066000000EE0300009A000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35885</RegID> + <PaneID>35885</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35886</RegID> + <PaneID>35886</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35887</RegID> + <PaneID>35887</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35888</RegID> + <PaneID>35888</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35889</RegID> + <PaneID>35889</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35890</RegID> + <PaneID>35890</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35891</RegID> + <PaneID>35891</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35892</RegID> + <PaneID>35892</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35893</RegID> + <PaneID>35893</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35894</RegID> + <PaneID>35894</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35895</RegID> + <PaneID>35895</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35896</RegID> + <PaneID>35896</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35897</RegID> + <PaneID>35897</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35898</RegID> + <PaneID>35898</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35899</RegID> + <PaneID>35899</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35900</RegID> + <PaneID>35900</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35901</RegID> + <PaneID>35901</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35902</RegID> + <PaneID>35902</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35903</RegID> + <PaneID>35903</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35904</RegID> + <PaneID>35904</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35905</RegID> + <PaneID>35905</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>38003</RegID> + <PaneID>38003</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000660000007E010000AB010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000390100000C020000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>38007</RegID> + <PaneID>38007</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000DF0100005305000095020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>436</RegID> + <PaneID>436</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000DF0100005305000095020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000390100000C020000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>437</RegID> + <PaneID>437</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>440</RegID> + <PaneID>440</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>463</RegID> + <PaneID>463</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000DF0100005305000095020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000390100000C020000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>466</RegID> + <PaneID>466</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000DF0100005305000095020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000390100000C020000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>470</RegID> + <PaneID>470</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B100000066000000EE0300009A000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>700000008700000068020000E8000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50000</RegID> + <PaneID>50000</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50001</RegID> + <PaneID>50001</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50002</RegID> + <PaneID>50002</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50003</RegID> + <PaneID>50003</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50004</RegID> + <PaneID>50004</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50005</RegID> + <PaneID>50005</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50006</RegID> + <PaneID>50006</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50007</RegID> + <PaneID>50007</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50008</RegID> + <PaneID>50008</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50009</RegID> + <PaneID>50009</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50010</RegID> + <PaneID>50010</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50011</RegID> + <PaneID>50011</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50012</RegID> + <PaneID>50012</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50013</RegID> + <PaneID>50013</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50014</RegID> + <PaneID>50014</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50015</RegID> + <PaneID>50015</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50016</RegID> + <PaneID>50016</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50017</RegID> + <PaneID>50017</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50018</RegID> + <PaneID>50018</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50019</RegID> + <PaneID>50019</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>4A03000066000000EE03000052010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59392</RegID> + <PaneID>59392</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>966</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0000000000000000D10300001C000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59393</RegID> + <PaneID>0</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>00000000AE02000056050000C1020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59399</RegID> + <PaneID>59399</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>476</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>1</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>000000001C000000E701000038000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59400</RegID> + <PaneID>59400</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>612</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>2</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>00000000380000006F02000054000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>824</RegID> + <PaneID>824</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000075010000EE030000BA010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000001A01000014010000</Data> + </RectRecentFloat> + </Window> + <DockMan> + <Len>3312</Len> + <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFAE000000B3000000F1030000B7000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000AE00000066000000F1030000CA000000AE0000004F000000F1030000B30000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF430300004F000000470300006B010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000004703000066000000F103000082010000470300004F000000F10300006B01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF810100004F00000085010000C40100000100000002000010040000000100000095FFFFFFE0040000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000006600000081010000DB010000000000004F00000081010000C40100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000005A010000F10300005E01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000000000000075010000F1030000EA010000000000005E010000F1030000D301000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFF90100005E010000FD010000D301000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000C401000056050000C80100000100000001000010040000000100000091FEFFFFE5000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000000000000DF01000056050000C502000000000000C801000056050000AE0200000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data> + </DockMan> + <ToolBar> + <RegID>59392</RegID> + <Name>File</Name> + <Buttons> + <Len>2603</Len> + <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000F4D333530385F7069645F7370656564960000000000000004000F4D333530385F7069645F7370656564056863616E320665787465726E05416464547800000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data> + </Buttons> + <OriginalItems> + <Len>1423</Len> + <Data>2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> + </OriginalItems> + <OrigResetItems> + <Len>1423</Len> + <Data>2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000</Data> + </OrigResetItems> + </ToolBar> + <ToolBar> + <RegID>59399</RegID> + <Name>Build</Name> + <Buttons> + <Len>988</Len> + <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E5374616E646172645F726F626F74960000000000000001000E5374616E646172645F726F626F74000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data> + </Buttons> + <OriginalItems> + <Len>583</Len> + <Data>1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> + </OriginalItems> + <OrigResetItems> + <Len>583</Len> + <Data>1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000</Data> + </OrigResetItems> + </ToolBar> + <ToolBar> + <RegID>59400</RegID> + <Name>Debug</Name> + <Buttons> + <Len>2373</Len> + <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data> + </Buttons> + <OriginalItems> + <Len>898</Len> + <Data>1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> + </OriginalItems> + <OrigResetItems> + <Len>898</Len> + <Data>1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000</Data> + </OrigResetItems> + </ToolBar> + <ControlBarsSummary> + <Bars>0</Bars> + <ScreenCX>1366</ScreenCX> + <ScreenCY>768</ScreenCY> + </ControlBarsSummary> + </ViewEx> + </WinLayoutEx> + + <MDIGroups> + <Orientation>1</Orientation> + <ActiveMDIGroup>0</ActiveMDIGroup> + <MDIGroup> + <Size>100</Size> + <ActiveTab>0</ActiveTab> + <Doc> + <Name>../Src/main.c</Name> + <ColumnNumber>24</ColumnNumber> + <TopLine>46</TopLine> + <CurrentLine>61</CurrentLine> + <Folding>1</Folding> + <ContractedFolders></ContractedFolders> + <PaneID>0</PaneID> + </Doc> + <Doc> + <Name>..\BSP\Algorithm\pid.c</Name> + <ColumnNumber>21</ColumnNumber> + <TopLine>50</TopLine> + <CurrentLine>64</CurrentLine> + <Folding>1</Folding> + <ContractedFolders></ContractedFolders> + <PaneID>0</PaneID> + </Doc> + <Doc> + <Name>../BSP/Driver/bsp_pwm.h</Name> + <ColumnNumber>21</ColumnNumber> + <TopLine>10</TopLine> + <CurrentLine>10</CurrentLine> + <Folding>1</Folding> + <ContractedFolders></ContractedFolders> + <PaneID>0</PaneID> + </Doc> + <Doc> + <Name>..\BSP\Driver\bsp_pwm.c</Name> + <ColumnNumber>18</ColumnNumber> + <TopLine>1</TopLine> + <CurrentLine>78</CurrentLine> + <Folding>1</Folding> + <ContractedFolders></ContractedFolders> + <PaneID>0</PaneID> + </Doc> + <Doc> + <Name>../Inc/main.h</Name> + <ColumnNumber>3</ColumnNumber> + <TopLine>1</TopLine> + <CurrentLine>12</CurrentLine> + <Folding>1</Folding> + <ContractedFolders></ContractedFolders> + <PaneID>0</PaneID> + </Doc> + <Doc> + <Name>..\BSP\Device\motor.c</Name> + <ColumnNumber>0</ColumnNumber> + <TopLine>5</TopLine> + <CurrentLine>5</CurrentLine> + <Folding>1</Folding> + <ContractedFolders></ContractedFolders> + <PaneID>0</PaneID> + </Doc> + <Doc> + <Name>..\BSP\Device\motor.h</Name> + <ColumnNumber>13</ColumnNumber> + <TopLine>70</TopLine> + <CurrentLine>15</CurrentLine> + <Folding>1</Folding> + <ContractedFolders></ContractedFolders> + <PaneID>0</PaneID> + </Doc> + </MDIGroup> + </MDIGroups> + +</ProjectGui> diff --git a/Standard_robot/MDK-ARM/Standard_robot.uvguix.avbet b/Standard_robot/MDK-ARM/Standard_robot.uvguix.avbet new file mode 100644 index 0000000..eacf47c --- /dev/null +++ b/Standard_robot/MDK-ARM/Standard_robot.uvguix.avbet @@ -0,0 +1,1887 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<ProjectGui xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_guix.xsd"> + + <SchemaVersion>-6.1</SchemaVersion> + + <Header>### uVision Project, (C) Keil Software</Header> + + <PrjGuiSettings> + <LastAddFilePath></LastAddFilePath> + </PrjGuiSettings> + + <ViewPool/> + + <SECTreeCtrl> + <View> + <WinId>38003</WinId> + <ViewName>Registers</ViewName> + <TableColWidths>115 67</TableColWidths> + </View> + <View> + <WinId>346</WinId> + <ViewName>Code Coverage</ViewName> + <TableColWidths>770 160</TableColWidths> + </View> + <View> + <WinId>204</WinId> + <ViewName>Performance Analyzer</ViewName> + <TableColWidths>930</TableColWidths> + </View> + </SECTreeCtrl> + + <TreeListPane> + <View> + <WinId>35141</WinId> + <ViewName>Event Statistics</ViewName> + <UserString></UserString> + <TableColWidths>200 50 700</TableColWidths> + </View> + <View> + <WinId>1506</WinId> + <ViewName>Symbols</ViewName> + <UserString></UserString> + <TableColWidths>64 64 64</TableColWidths> + </View> + <View> + <WinId>1936</WinId> + <ViewName>Watch 1</ViewName> + <UserString></UserString> + <TableColWidths>200 133 133</TableColWidths> + </View> + <View> + <WinId>1937</WinId> + <ViewName>Watch 2</ViewName> + <UserString></UserString> + <TableColWidths>200 133 133</TableColWidths> + </View> + <View> + <WinId>1935</WinId> + <ViewName>Call Stack + Locals</ViewName> + <UserString></UserString> + <TableColWidths>200 133 133</TableColWidths> + </View> + <View> + <WinId>2506</WinId> + <ViewName>Trace Data</ViewName> + <UserString></UserString> + <TableColWidths>75 135 130 95 70 230 200 150</TableColWidths> + </View> + <View> + <WinId>466</WinId> + <ViewName>Source Browser</ViewName> + <UserString>500</UserString> + <TableColWidths>300</TableColWidths> + </View> + </TreeListPane> + + <CompViewPool/> + + <WindowSettings> + <LogicAnalizer> + <ShowLACursor>1</ShowLACursor> + <ShowSignalInfo>1</ShowSignalInfo> + <ShowCycles>0</ShowCycles> + <LeftSideBarSize>0</LeftSideBarSize> + <TimeBaseIndex>-1</TimeBaseIndex> + </LogicAnalizer> + </WindowSettings> + + <WinLayoutEx> + <sActiveDebugView></sActiveDebugView> + <WindowPosition> + <length>44</length> + <flags>2</flags> + <showCmd>3</showCmd> + <MinPosition> + <xPos>-1</xPos> + <yPos>-1</yPos> + </MinPosition> + <MaxPosition> + <xPos>-1</xPos> + <yPos>-1</yPos> + </MaxPosition> + <NormalPosition> + <Top>52</Top> + <Left>52</Left> + <Right>1204</Right> + <Bottom>645</Bottom> + </NormalPosition> + </WindowPosition> + <MDIClientArea> + <RegID>0</RegID> + <MDITabState> + <Len>412</Len> + <Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000200000000000000010000004F433A5C55736572735C61766265745C446F63756D656E74735C506F6C79537461725C636F6E74726F6C652D65742D73797374656D655C5374616E646172645F726F626F745C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF62433A5C55736572735C61766265745C446F63756D656E74735C506F6C79537461725C636F6E74726F6C652D65742D73797374656D655C5374616E646172645F726F626F745C4D444B2D41524D5C737461727475705F73746D33326634323778782E730000000015737461727475705F73746D33326634323778782E7300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000C40000006600000000060000B3020000</Data> + </MDITabState> + </MDIClientArea> + <ViewEx> + <ViewType>0</ViewType> + <ViewName>Build</ViewName> + <Window> + <RegID>-1</RegID> + <PaneID>-1</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C40000004F00000070040000BD000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>C40000006600000070040000D4000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1005</RegID> + <PaneID>1005</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000BD00000083020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>109</RegID> + <PaneID>109</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000BD00000083020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>220000003900000005010000F5010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1465</RegID> + <PaneID>1465</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1466</RegID> + <PaneID>1466</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1467</RegID> + <PaneID>1467</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1468</RegID> + <PaneID>1468</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1506</RegID> + <PaneID>1506</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>16384</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1913</RegID> + <PaneID>1913</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1935</RegID> + <PaneID>1935</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>32768</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1936</RegID> + <PaneID>1936</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1937</RegID> + <PaneID>1937</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1939</RegID> + <PaneID>1939</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1940</RegID> + <PaneID>1940</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1941</RegID> + <PaneID>1941</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1942</RegID> + <PaneID>1942</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>195</RegID> + <PaneID>195</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000BD00000083020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>220000003900000005010000F5010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>196</RegID> + <PaneID>196</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000BD00000083020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>220000003900000005010000F5010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>197</RegID> + <PaneID>197</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>32768</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>00000000B4020000000600000E030000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>198</RegID> + <PaneID>198</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>32768</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>00000000950100007004000017020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>199</RegID> + <PaneID>199</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000B7020000FD050000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>203</RegID> + <PaneID>203</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>204</RegID> + <PaneID>204</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>221</RegID> + <PaneID>221</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>00000000000000000000000000000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>2506</RegID> + <PaneID>2506</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>2507</RegID> + <PaneID>2507</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>343</RegID> + <PaneID>343</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>346</RegID> + <PaneID>346</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35141</RegID> + <PaneID>35141</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35824</RegID> + <PaneID>35824</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35885</RegID> + <PaneID>35885</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35886</RegID> + <PaneID>35886</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35887</RegID> + <PaneID>35887</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35888</RegID> + <PaneID>35888</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35889</RegID> + <PaneID>35889</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35890</RegID> + <PaneID>35890</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35891</RegID> + <PaneID>35891</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35892</RegID> + <PaneID>35892</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35893</RegID> + <PaneID>35893</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35894</RegID> + <PaneID>35894</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35895</RegID> + <PaneID>35895</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35896</RegID> + <PaneID>35896</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35897</RegID> + <PaneID>35897</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35898</RegID> + <PaneID>35898</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35899</RegID> + <PaneID>35899</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35900</RegID> + <PaneID>35900</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35901</RegID> + <PaneID>35901</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35902</RegID> + <PaneID>35902</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35903</RegID> + <PaneID>35903</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35904</RegID> + <PaneID>35904</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35905</RegID> + <PaneID>35905</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>38003</RegID> + <PaneID>38003</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000BD00000083020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>220000003900000005010000F5010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>38007</RegID> + <PaneID>38007</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000B7020000FD050000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>436</RegID> + <PaneID>436</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000B7020000FD050000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>220000003900000005010000F5010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>437</RegID> + <PaneID>437</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>440</RegID> + <PaneID>440</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>463</RegID> + <PaneID>463</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000B7020000FD050000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>220000003900000005010000F5010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>466</RegID> + <PaneID>466</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000B7020000FD050000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>220000003900000005010000F5010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>470</RegID> + <PaneID>470</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50000</RegID> + <PaneID>50000</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50001</RegID> + <PaneID>50001</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50002</RegID> + <PaneID>50002</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50003</RegID> + <PaneID>50003</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50004</RegID> + <PaneID>50004</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50005</RegID> + <PaneID>50005</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50006</RegID> + <PaneID>50006</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50007</RegID> + <PaneID>50007</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50008</RegID> + <PaneID>50008</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50009</RegID> + <PaneID>50009</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50010</RegID> + <PaneID>50010</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50011</RegID> + <PaneID>50011</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50012</RegID> + <PaneID>50012</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50013</RegID> + <PaneID>50013</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50014</RegID> + <PaneID>50014</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50015</RegID> + <PaneID>50015</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50016</RegID> + <PaneID>50016</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50017</RegID> + <PaneID>50017</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50018</RegID> + <PaneID>50018</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50019</RegID> + <PaneID>50019</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59392</RegID> + <PaneID>59392</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>966</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0000000000000000D10300001C000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59393</RegID> + <PaneID>0</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>000000000E0300000006000021030000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59399</RegID> + <PaneID>59399</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>476</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>1</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>000000001C000000E701000038000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59400</RegID> + <PaneID>59400</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>612</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>2</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>00000000380000006F02000054000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>824</RegID> + <PaneID>824</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <DockMan> + <Len>3312</Len> + <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFC4000000BD00000070040000C1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000C40000006600000070040000D4000000C40000004F00000070040000BD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFAC0300004F000000B0030000A5010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000B00300006600000070040000BC010000B00300004F00000070040000A501000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFC00000004F000000C40000009C020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000C0000000B3020000000000004F000000C00000009C0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000091010000700400009501000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000AC010000700400002E0200000000000095010000700400001702000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000950100003C0200001702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000009C02000000060000A0020000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000000000000B7020000000600002503000000000000A0020000000600000E0300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data> + </DockMan> + <ToolBar> + <RegID>59392</RegID> + <Name>File</Name> + <Buttons> + <Len>2537</Len> + <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data> + </Buttons> + <OriginalItems> + <Len>1423</Len> + <Data>2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> + </OriginalItems> + <OrigResetItems> + <Len>1423</Len> + <Data>2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000</Data> + </OrigResetItems> + </ToolBar> + <ToolBar> + <RegID>59399</RegID> + <Name>Build</Name> + <Buttons> + <Len>988</Len> + <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E5374616E646172645F726F626F74960000000000000001000E5374616E646172645F726F626F74000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data> + </Buttons> + <OriginalItems> + <Len>583</Len> + <Data>1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> + </OriginalItems> + <OrigResetItems> + <Len>583</Len> + <Data>1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000</Data> + </OrigResetItems> + </ToolBar> + <ToolBar> + <RegID>59400</RegID> + <Name>Debug</Name> + <Buttons> + <Len>2373</Len> + <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data> + </Buttons> + <OriginalItems> + <Len>898</Len> + <Data>1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> + </OriginalItems> + <OrigResetItems> + <Len>898</Len> + <Data>1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000</Data> + </OrigResetItems> + </ToolBar> + <ControlBarsSummary> + <Bars>0</Bars> + <ScreenCX>1536</ScreenCX> + <ScreenCY>864</ScreenCY> + </ControlBarsSummary> + </ViewEx> + </WinLayoutEx> + + <MDIGroups> + <Orientation>1</Orientation> + <ActiveMDIGroup>0</ActiveMDIGroup> + <MDIGroup> + <Size>100</Size> + <ActiveTab>0</ActiveTab> + <Doc> + <Name>../Src/main.c</Name> + <ColumnNumber>0</ColumnNumber> + <TopLine>1</TopLine> + <CurrentLine>1</CurrentLine> + <Folding>1</Folding> + <ContractedFolders></ContractedFolders> + <PaneID>0</PaneID> + </Doc> + <Doc> + <Name>startup_stm32f427xx.s</Name> + <ColumnNumber>0</ColumnNumber> + <TopLine>1</TopLine> + <CurrentLine>1</CurrentLine> + <Folding>1</Folding> + <ContractedFolders></ContractedFolders> + <PaneID>0</PaneID> + </Doc> + </MDIGroup> + </MDIGroups> + +</ProjectGui> diff --git a/Standard_robot/MDK-ARM/Standard_robot.uvguix.charl b/Standard_robot/MDK-ARM/Standard_robot.uvguix.charl index 9088ab2..64a0d9a 100644 --- a/Standard_robot/MDK-ARM/Standard_robot.uvguix.charl +++ b/Standard_robot/MDK-ARM/Standard_robot.uvguix.charl @@ -110,8 +110,8 @@ <MDIClientArea> <RegID>0</RegID> <MDITabState> - <Len>636</Len> - <Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000500000001000000010000003C443A5C636861726C5C446F63756D656E74735C4769745C524D2D436F6E74726F6C655C5374616E646172645F726F626F745C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF47443A5C636861726C5C446F63756D656E74735C4769745C524D2D436F6E74726F6C655C5374616E646172645F726F626F745C4253505C4472697665725C6273705F6F6C65642E63000000000A6273705F6F6C65642E6300000000FFDC7800FFFFFFFF47443A5C636861726C5C446F63756D656E74735C4769745C524D2D436F6E74726F6C655C5374616E646172645F726F626F745C4253505C4472697665725C6273705F6F6C65642E68000000000A6273705F6F6C65642E6800000000F0A0A100FFFFFFFF43443A5C636861726C5C446F63756D656E74735C4769745C524D2D436F6E74726F6C655C5374616E646172645F726F626F745C4253505C4465766963655C6F6C65642E6300000000066F6C65642E6300000000F0A0A100FFFFFFFF43443A5C636861726C5C446F63756D656E74735C4769745C524D2D436F6E74726F6C655C5374616E646172645F726F626F745C4253505C4465766963655C6F6C65642E6800000000066F6C65642E6800000000BCA8E100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000D1000000660000005805000070020000</Data> + <Len>820</Len> + <Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000700000000000000010000003C443A5C636861726C5C446F63756D656E74735C4769745C524D2D436F6E74726F6C655C5374616E646172645F726F626F745C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF44443A5C636861726C5C446F63756D656E74735C4769745C524D2D436F6E74726F6C655C5374616E646172645F726F626F745C4253505C4465766963655C6D6F746F722E6300000000076D6F746F722E6300000000FFDC7800FFFFFFFF44443A5C636861726C5C446F63756D656E74735C4769745C524D2D436F6E74726F6C655C5374616E646172645F726F626F745C4253505C4465766963655C6D6F746F722E6800000000076D6F746F722E6800000000BECEA100FFFFFFFF46443A5C636861726C5C446F63756D656E74735C4769745C524D2D436F6E74726F6C655C5374616E646172645F726F626F745C4253505C4472697665725C6273705F63616E2E6300000000096273705F63616E2E6300000000F0A0A100FFFFFFFF46443A5C636861726C5C446F63756D656E74735C4769745C524D2D436F6E74726F6C655C5374616E646172645F726F626F745C4253505C4472697665725C6273705F63616E2E6800000000096273705F63616E2E6800000000BCA8E100FFFFFFFF45443A5C636861726C5C446F63756D656E74735C4769745C524D2D436F6E74726F6C655C5374616E646172645F726F626F745C4253505C416C676F726974686D5C7069642E6300000000057069642E63000000009CC1B600FFFFFFFF45443A5C636861726C5C446F63756D656E74735C4769745C524D2D436F6E74726F6C655C5374616E646172645F726F626F745C4253505C416C676F726974686D5C7069642E6800000000057069642E6800000000F7B88600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000AF0000006600000058050000E6020000</Data> </MDITabState> </MDIClientArea> <ViewEx> @@ -134,7 +134,7 @@ </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>AF00000066000000F2030000DB000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -150,11 +150,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>0300000066000000CA00000040020000</Data> + <Data>0300000066000000A8000000B6020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -170,11 +170,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>0300000066000000CA00000040020000</Data> + <Data>0300000066000000A8000000B6020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C000000530000000601000027020000</Data> + <Data>D8000000EF000000A2010000C3020000</Data> </RectRecentFloat> </Window> <Window> @@ -190,11 +190,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>03000000C4010000EF0300001D020000</Data> + <Data>00000000C1010000F203000036020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -210,11 +210,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>03000000C4010000EF0300001D020000</Data> + <Data>03000000C4010000EF03000009020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -230,11 +230,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>03000000C4010000EF0300001D020000</Data> + <Data>03000000C4010000EF03000009020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -250,11 +250,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>03000000C4010000EF0300001D020000</Data> + <Data>03000000C4010000EF03000009020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -270,11 +270,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF030000E1000000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -294,7 +294,7 @@ </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -314,7 +314,7 @@ </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -330,11 +330,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>03000000C4010000EF0300001D020000</Data> + <Data>03000000C4010000EF03000009020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -350,11 +350,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>03000000C4010000EF0300001D020000</Data> + <Data>03000000C4010000EF03000009020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -370,11 +370,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>03000000C4010000EF0300001D020000</Data> + <Data>03000000C4010000EF03000009020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -390,11 +390,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>03000000C4010000EF0300001D020000</Data> + <Data>03000000C4010000EF03000009020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -410,11 +410,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>03000000C4010000EF0300001D020000</Data> + <Data>03000000C4010000EF03000009020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -430,11 +430,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>03000000C4010000EF0300001D020000</Data> + <Data>03000000C4010000EF03000009020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -450,11 +450,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>0300000066000000CA00000040020000</Data> + <Data>0300000066000000A8000000B6020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C000000530000000601000027020000</Data> + <Data>D8000000EF000000A2010000C3020000</Data> </RectRecentFloat> </Window> <Window> @@ -470,11 +470,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>0300000066000000CA00000040020000</Data> + <Data>0300000066000000A8000000B6020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C000000530000000601000027020000</Data> + <Data>D8000000EF000000A2010000C3020000</Data> </RectRecentFloat> </Window> <Window> @@ -490,11 +490,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>00000000710200005805000048030000</Data> + <Data>00000000E70200005805000048030000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -514,7 +514,7 @@ </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -530,11 +530,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>0300000074020000550500002F030000</Data> + <Data>03000000EA020000EF0300002F030000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -550,11 +550,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>B200000066000000EF030000AB000000</Data> + <Data>AF00000063000000F2030000C4000000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -574,7 +574,7 @@ </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -610,11 +610,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4703000063000000F2030000BD010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -630,11 +630,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>03000000C4010000EF0300001D020000</Data> + <Data>00000000C1010000F203000022020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -654,7 +654,7 @@ </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -674,7 +674,7 @@ </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -690,11 +690,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>B200000066000000EF030000AB000000</Data> + <Data>AF00000063000000F2030000C4000000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -714,7 +714,7 @@ </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -730,11 +730,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -750,11 +750,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -770,11 +770,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -790,11 +790,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -810,11 +810,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -830,11 +830,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -850,11 +850,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -870,11 +870,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -890,11 +890,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -910,11 +910,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -930,11 +930,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -950,11 +950,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -970,11 +970,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -990,11 +990,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1010,11 +1010,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1030,11 +1030,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1050,11 +1050,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1070,11 +1070,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1090,11 +1090,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1110,11 +1110,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1130,11 +1130,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1150,11 +1150,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>0300000066000000A800000040020000</Data> + <Data>0300000066000000A80000001D020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C000000530000000601000027020000</Data> + <Data>D8000000EF000000A2010000C3020000</Data> </RectRecentFloat> </Window> <Window> @@ -1170,11 +1170,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>0300000074020000550500002F030000</Data> + <Data>00000000E7020000F203000048030000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -1190,11 +1190,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>0300000074020000550500002F030000</Data> + <Data>03000000EA020000EF0300002F030000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C000000530000000601000027020000</Data> + <Data>D8000000EF000000A2010000C3020000</Data> </RectRecentFloat> </Window> <Window> @@ -1210,11 +1210,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>03000000C4010000EF0300001D020000</Data> + <Data>03000000C4010000EF03000009020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1230,11 +1230,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>03000000C4010000EF0300001D020000</Data> + <Data>03000000C4010000EF03000009020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1250,11 +1250,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>0300000074020000550500002F030000</Data> + <Data>03000000EA020000EF0300002F030000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C000000530000000601000027020000</Data> + <Data>D8000000EF000000A2010000C3020000</Data> </RectRecentFloat> </Window> <Window> @@ -1270,11 +1270,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>0300000074020000550500002F030000</Data> + <Data>03000000EA020000EF0300002F030000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C000000530000000601000027020000</Data> + <Data>D8000000EF000000A2010000C3020000</Data> </RectRecentFloat> </Window> <Window> @@ -1294,7 +1294,7 @@ </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C0000005300000035020000C8000000</Data> + <Data>D8000000EF000000D102000064010000</Data> </RectRecentFloat> </Window> <Window> @@ -1310,11 +1310,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1330,11 +1330,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1350,11 +1350,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1370,11 +1370,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1390,11 +1390,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1410,11 +1410,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1430,11 +1430,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1450,11 +1450,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1470,11 +1470,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1490,11 +1490,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1510,11 +1510,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1530,11 +1530,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1550,11 +1550,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1570,11 +1570,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1590,11 +1590,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1610,11 +1610,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1630,11 +1630,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1650,11 +1650,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1670,11 +1670,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1690,11 +1690,11 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>4A03000066000000EF030000A4010000</Data> + <Data>4A03000066000000EF0300002B010000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <Window> @@ -1704,7 +1704,7 @@ <IsFloating>0</IsFloating> <IsTabbed>0</IsTabbed> <IsActivated>0</IsActivated> - <MRUWidth>966</MRUWidth> + <MRUWidth>32767</MRUWidth> <PinState>0</PinState> <RecentFrameAlignment>8192</RecentFrameAlignment> <RecentRowIndex>0</RecentRowIndex> @@ -1744,7 +1744,7 @@ <IsFloating>0</IsFloating> <IsTabbed>0</IsTabbed> <IsActivated>0</IsActivated> - <MRUWidth>476</MRUWidth> + <MRUWidth>32767</MRUWidth> <PinState>0</PinState> <RecentFrameAlignment>8192</RecentFrameAlignment> <RecentRowIndex>1</RecentRowIndex> @@ -1764,7 +1764,7 @@ <IsFloating>0</IsFloating> <IsTabbed>0</IsTabbed> <IsActivated>0</IsActivated> - <MRUWidth>612</MRUWidth> + <MRUWidth>32767</MRUWidth> <PinState>0</PinState> <RecentFrameAlignment>8192</RecentFrameAlignment> <RecentRowIndex>2</RecentRowIndex> @@ -1790,23 +1790,23 @@ <RecentRowIndex>0</RecentRowIndex> <RectRecentDocked> <Len>16</Len> - <Data>03000000C4010000EF0300001D020000</Data> + <Data>03000000C4010000EF03000009020000</Data> </RectRecentDocked> <RectRecentFloat> <Len>16</Len> - <Data>3C00000053000000E7000000FE000000</Data> + <Data>D8000000EF000000830100009A010000</Data> </RectRecentFloat> </Window> <DockMan> <Len>3312</Len> - <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFAF000000C4000000F2030000C8000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000AF00000066000000F2030000DB000000AF0000004F000000F2030000C40000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF430300004F00000047030000BD010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000004703000066000000F2030000D4010000470300004F000000F2030000BD01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFCD0000004F000000D1000000590200000100000002000010040000000100000057FFFFFFA4040000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000AB00000070020000000000004F000000CD000000590200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000A9010000F2030000AD01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000C4010000F20300004D02000000000000AD010000F20300003602000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFF9010000AD010000FD0100003602000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000059020000580500005D0200000100000001000010040000000100000085FDFFFF73000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000000000000074020000580500005F030000000000005D02000058050000480300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data> + <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFAF000000C4000000F2030000C8000000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000D8000000EF000000D102000064010000AF0000004F000000F2030000C40000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF430300004F00000047030000BD010000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000D8000000EF000000830100009A010000470300004F000000F2030000BD01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFAB0000004F000000AF000000CF020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000D8000000EF000000830100009A010000000000004F000000AB000000CF0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000A9010000F2030000AD01000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000D8000000EF000000830100009A01000000000000AD010000F20300003602000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFF9010000AD010000FD0100003602000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000CF02000058050000D3020000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000D8000000EF000000D10200006401000000000000D302000058050000480300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data> </DockMan> <ToolBar> <RegID>59392</RegID> <Name>File</Name> <Buttons> <Len>2606</Len> - <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000574696D6528960000000000000005000574696D6528085F5F434C49424E530D63757272656E745F73746174650A49525148616E646C65720341534D0000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data> + <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000574696D6528960000000000000005000574696D6528085F5F434C49424E530D63757272656E745F73746174650A49525148616E646C65720341534D0000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000</Data> </Buttons> <OriginalItems> <Len>1423</Len> @@ -1822,7 +1822,7 @@ <Name>Build</Name> <Buttons> <Len>988</Len> - <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E5374616E646172645F726F626F74960000000000000001000E5374616E646172645F726F626F74000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data> + <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E5374616E646172645F726F626F74960000000000000001000E5374616E646172645F726F626F74000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000</Data> </Buttons> <OriginalItems> <Len>583</Len> @@ -1838,7 +1838,7 @@ <Name>Debug</Name> <Buttons> <Len>2373</Len> - <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data> + <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000000000000100000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000000000000100000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000000000000100000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000000000000100000001000000000000000000000001000000000000000000054465627567FF7F0000</Data> </Buttons> <OriginalItems> <Len>898</Len> @@ -1862,48 +1862,66 @@ <ActiveMDIGroup>0</ActiveMDIGroup> <MDIGroup> <Size>100</Size> - <ActiveTab>1</ActiveTab> + <ActiveTab>0</ActiveTab> <Doc> <Name>../Src/main.c</Name> - <ColumnNumber>26</ColumnNumber> - <TopLine>116</TopLine> - <CurrentLine>128</CurrentLine> + <ColumnNumber>32</ColumnNumber> + <TopLine>149</TopLine> + <CurrentLine>162</CurrentLine> <Folding>1</Folding> - <ContractedFolders>134,139,180,185,192</ContractedFolders> + <ContractedFolders>188,229,234,241</ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> - <Name>..\BSP\Driver\bsp_oled.c</Name> - <ColumnNumber>18</ColumnNumber> - <TopLine>83</TopLine> - <CurrentLine>269</CurrentLine> + <Name>..\BSP\Device\motor.c</Name> + <ColumnNumber>17</ColumnNumber> + <TopLine>8</TopLine> + <CurrentLine>33</CurrentLine> <Folding>1</Folding> - <ContractedFolders>17,33,50,67,81,87,94,107,128,153,171,179,222,230,309,317,366,393</ContractedFolders> + <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> - <Name>..\BSP\Driver\bsp_oled.h</Name> - <ColumnNumber>92</ColumnNumber> - <TopLine>3</TopLine> - <CurrentLine>4</CurrentLine> + <Name>..\BSP\Device\motor.h</Name> + <ColumnNumber>24</ColumnNumber> + <TopLine>37</TopLine> + <CurrentLine>46</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> - <Name>..\BSP\Device\oled.c</Name> + <Name>..\BSP\Driver\bsp_can.c</Name> + <ColumnNumber>11</ColumnNumber> + <TopLine>28</TopLine> + <CurrentLine>60</CurrentLine> + <Folding>1</Folding> + <ContractedFolders>30,49,88,95</ContractedFolders> + <PaneID>0</PaneID> + </Doc> + <Doc> + <Name>..\BSP\Driver\bsp_can.h</Name> <ColumnNumber>0</ColumnNumber> - <TopLine>1</TopLine> - <CurrentLine>6</CurrentLine> + <TopLine>11</TopLine> + <CurrentLine>20</CurrentLine> <Folding>1</Folding> - <ContractedFolders>6,32</ContractedFolders> + <ContractedFolders></ContractedFolders> + <PaneID>0</PaneID> + </Doc> + <Doc> + <Name>..\BSP\Algorithm\pid.c</Name> + <ColumnNumber>40</ColumnNumber> + <TopLine>13</TopLine> + <CurrentLine>47</CurrentLine> + <Folding>1</Folding> + <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> </Doc> <Doc> - <Name>../BSP/Device/oled.h</Name> - <ColumnNumber>47</ColumnNumber> - <TopLine>3</TopLine> - <CurrentLine>28</CurrentLine> + <Name>../BSP/Algorithm/pid.h</Name> + <ColumnNumber>13</ColumnNumber> + <TopLine>16</TopLine> + <CurrentLine>39</CurrentLine> <Folding>1</Folding> <ContractedFolders></ContractedFolders> <PaneID>0</PaneID> diff --git a/Standard_robot/MDK-ARM/Standard_robot.uvguix.natha b/Standard_robot/MDK-ARM/Standard_robot.uvguix.natha new file mode 100644 index 0000000..e1a0f13 --- /dev/null +++ b/Standard_robot/MDK-ARM/Standard_robot.uvguix.natha @@ -0,0 +1,3628 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<ProjectGui xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_guix.xsd"> + + <SchemaVersion>-6.1</SchemaVersion> + + <Header>### uVision Project, (C) Keil Software</Header> + + <PrjGuiSettings> + <LastAddFilePath>D:\Documents\ST\Polystar\Contrôle télécommande\MDK-ARM</LastAddFilePath> + </PrjGuiSettings> + + <ViewPool/> + + <SECTreeCtrl> + <View> + <WinId>38003</WinId> + <ViewName>Registers</ViewName> + <TableColWidths>127 128</TableColWidths> + </View> + <View> + <WinId>346</WinId> + <ViewName>Code Coverage</ViewName> + <TableColWidths>770 160</TableColWidths> + </View> + <View> + <WinId>204</WinId> + <ViewName>Performance Analyzer</ViewName> + <TableColWidths>930</TableColWidths> + </View> + </SECTreeCtrl> + + <TreeListPane> + <View> + <WinId>35141</WinId> + <ViewName>Event Statistics</ViewName> + <UserString></UserString> + <TableColWidths>200 50 700</TableColWidths> + </View> + <View> + <WinId>1506</WinId> + <ViewName>Symbols</ViewName> + <UserString></UserString> + <TableColWidths>64 64 64</TableColWidths> + </View> + <View> + <WinId>1936</WinId> + <ViewName>Watch 1</ViewName> + <UserString></UserString> + <TableColWidths>200 133 133</TableColWidths> + </View> + <View> + <WinId>1937</WinId> + <ViewName>Watch 2</ViewName> + <UserString></UserString> + <TableColWidths>200 133 133</TableColWidths> + </View> + <View> + <WinId>1935</WinId> + <ViewName>Call Stack + Locals</ViewName> + <UserString></UserString> + <TableColWidths>200 133 133</TableColWidths> + </View> + <View> + <WinId>2506</WinId> + <ViewName>Trace Data</ViewName> + <UserString></UserString> + <TableColWidths>75 135 130 95 70 230 200 150</TableColWidths> + </View> + <View> + <WinId>466</WinId> + <ViewName>Source Browser</ViewName> + <UserString>500</UserString> + <TableColWidths>166</TableColWidths> + </View> + </TreeListPane> + + <CompViewPool/> + + <WindowSettings> + <LogicAnalizer> + <ShowLACursor>0</ShowLACursor> + <ShowSignalInfo>0</ShowSignalInfo> + <ShowCycles>0</ShowCycles> + <LeftSideBarSize>50</LeftSideBarSize> + <TimeBaseIndex>16</TimeBaseIndex> + </LogicAnalizer> + </WindowSettings> + + <WinLayoutEx> + <sActiveDebugView></sActiveDebugView> + <WindowPosition> + <length>44</length> + <flags>2</flags> + <showCmd>3</showCmd> + <MinPosition> + <xPos>-32000</xPos> + <yPos>-32000</yPos> + </MinPosition> + <MaxPosition> + <xPos>-1</xPos> + <yPos>-1</yPos> + </MaxPosition> + <NormalPosition> + <Top>155</Top> + <Left>156</Left> + <Right>1308</Right> + <Bottom>749</Bottom> + </NormalPosition> + </WindowPosition> + <MDIClientArea> + <RegID>0</RegID> + <MDITabState> + <Len>349</Len> + <Data>01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000039443A5C446F63756D656E74735C53545C506F6C79737461725C436F6E7472F46C652074E96CE9636F6D6D616E64655C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF44443A5C446F63756D656E74735C53545C506F6C79737461725C436F6E7472F46C652074E96CE9636F6D6D616E64655C4253505C4472697665725C6273705F756172742E63000000000A6273705F756172742E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000000D01000066000000000600003A020000</Data> + </MDITabState> + </MDIClientArea> + <ViewEx> + <ViewType>0</ViewType> + <ViewName>Build</ViewName> + <Window> + <RegID>-1</RegID> + <PaneID>-1</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C40000004F00000070040000BD000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>C40000006600000070040000D4000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1005</RegID> + <PaneID>1005</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000060100000A020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>109</RegID> + <PaneID>109</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000060100000A020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>220000003900000005010000F5010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1465</RegID> + <PaneID>1465</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1466</RegID> + <PaneID>1466</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1467</RegID> + <PaneID>1467</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1468</RegID> + <PaneID>1468</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1506</RegID> + <PaneID>1506</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>16384</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1913</RegID> + <PaneID>1913</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1935</RegID> + <PaneID>1935</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>32768</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1936</RegID> + <PaneID>1936</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1937</RegID> + <PaneID>1937</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1939</RegID> + <PaneID>1939</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1940</RegID> + <PaneID>1940</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1941</RegID> + <PaneID>1941</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1942</RegID> + <PaneID>1942</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>195</RegID> + <PaneID>195</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000060100000A020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>220000003900000005010000F5010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>196</RegID> + <PaneID>196</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000060100000A020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>220000003900000005010000F5010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>197</RegID> + <PaneID>197</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>32768</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>000000003B020000000600000E030000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>198</RegID> + <PaneID>198</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>32768</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>00000000950100007004000017020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>199</RegID> + <PaneID>199</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>030000003E020000FD050000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>203</RegID> + <PaneID>203</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>204</RegID> + <PaneID>204</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>221</RegID> + <PaneID>221</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>00000000000000000000000000000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>2506</RegID> + <PaneID>2506</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>2507</RegID> + <PaneID>2507</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>343</RegID> + <PaneID>343</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>346</RegID> + <PaneID>346</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35141</RegID> + <PaneID>35141</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35824</RegID> + <PaneID>35824</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35885</RegID> + <PaneID>35885</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35886</RegID> + <PaneID>35886</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35887</RegID> + <PaneID>35887</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35888</RegID> + <PaneID>35888</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35889</RegID> + <PaneID>35889</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35890</RegID> + <PaneID>35890</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35891</RegID> + <PaneID>35891</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35892</RegID> + <PaneID>35892</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35893</RegID> + <PaneID>35893</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35894</RegID> + <PaneID>35894</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35895</RegID> + <PaneID>35895</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35896</RegID> + <PaneID>35896</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35897</RegID> + <PaneID>35897</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35898</RegID> + <PaneID>35898</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35899</RegID> + <PaneID>35899</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35900</RegID> + <PaneID>35900</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35901</RegID> + <PaneID>35901</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35902</RegID> + <PaneID>35902</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35903</RegID> + <PaneID>35903</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35904</RegID> + <PaneID>35904</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35905</RegID> + <PaneID>35905</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>38003</RegID> + <PaneID>38003</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000060100000A020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>220000003900000005010000F5010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>38007</RegID> + <PaneID>38007</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>030000003E020000FD050000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>436</RegID> + <PaneID>436</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>030000003E020000FD050000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>220000003900000005010000F5010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>437</RegID> + <PaneID>437</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>440</RegID> + <PaneID>440</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>463</RegID> + <PaneID>463</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>030000003E020000FD050000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>220000003900000005010000F5010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>466</RegID> + <PaneID>466</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>030000003E020000FD050000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>220000003900000005010000F5010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>470</RegID> + <PaneID>470</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>22000000390000005A020000A7000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50000</RegID> + <PaneID>50000</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50001</RegID> + <PaneID>50001</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50002</RegID> + <PaneID>50002</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50003</RegID> + <PaneID>50003</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50004</RegID> + <PaneID>50004</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50005</RegID> + <PaneID>50005</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50006</RegID> + <PaneID>50006</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50007</RegID> + <PaneID>50007</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50008</RegID> + <PaneID>50008</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50009</RegID> + <PaneID>50009</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50010</RegID> + <PaneID>50010</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50011</RegID> + <PaneID>50011</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50012</RegID> + <PaneID>50012</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50013</RegID> + <PaneID>50013</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50014</RegID> + <PaneID>50014</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50015</RegID> + <PaneID>50015</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50016</RegID> + <PaneID>50016</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50017</RegID> + <PaneID>50017</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50018</RegID> + <PaneID>50018</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50019</RegID> + <PaneID>50019</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59392</RegID> + <PaneID>59392</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>966</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0000000000000000D10300001C000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59393</RegID> + <PaneID>0</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>000000000E0300000006000021030000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59399</RegID> + <PaneID>59399</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>476</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>1</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>000000001C000000E701000038000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59400</RegID> + <PaneID>59400</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>612</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>2</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>00000000380000006F02000054000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>824</RegID> + <PaneID>824</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000AC0100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>2200000039000000E2000000D9000000</Data> + </RectRecentFloat> + </Window> + <DockMan> + <Len>3312</Len> + <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFC4000000BD00000070040000C1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000C40000006600000070040000D4000000C40000004F00000070040000BD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFAC0300004F000000B0030000A5010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000B00300006600000070040000BC010000B00300004F00000070040000A501000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF090100004F0000000D010000230200000100000002000010040000000100000042FFFFFF37050000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000090100003A020000000000004F00000009010000230200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000091010000700400009501000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000AC010000700400002E0200000000000095010000700400001702000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000950100003C0200001702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000002302000000060000270200000100000001000010040000000100000093FEFFFF47010000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000000003E02000000060000250300000000000027020000000600000E0300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data> + </DockMan> + <ToolBar> + <RegID>59392</RegID> + <Name>File</Name> + <Buttons> + <Len>2621</Len> + <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000008646275735F6275669600000000000000060008646275735F627566094C494D49545F4D494E0D4C494D49545F4D494E5F4D41580443414E310943414E315F42415345036C6564000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data> + </Buttons> + <OriginalItems> + <Len>1423</Len> + <Data>2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> + </OriginalItems> + <OrigResetItems> + <Len>1423</Len> + <Data>2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000</Data> + </OrigResetItems> + </ToolBar> + <ToolBar> + <RegID>59399</RegID> + <Name>Build</Name> + <Buttons> + <Len>988</Len> + <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E5374616E646172645F726F626F74960000000000000001000E5374616E646172645F726F626F74000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data> + </Buttons> + <OriginalItems> + <Len>583</Len> + <Data>1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> + </OriginalItems> + <OrigResetItems> + <Len>583</Len> + <Data>1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000</Data> + </OrigResetItems> + </ToolBar> + <ToolBar> + <RegID>59400</RegID> + <Name>Debug</Name> + <Buttons> + <Len>2373</Len> + <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data> + </Buttons> + <OriginalItems> + <Len>898</Len> + <Data>1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> + </OriginalItems> + <OrigResetItems> + <Len>898</Len> + <Data>1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000</Data> + </OrigResetItems> + </ToolBar> + <ControlBarsSummary> + <Bars>0</Bars> + <ScreenCX>1536</ScreenCX> + <ScreenCY>864</ScreenCY> + </ControlBarsSummary> + </ViewEx> + <ViewEx> + <ViewType>1</ViewType> + <ViewName>Debug</ViewName> + <Window> + <RegID>-1</RegID> + <PaneID>-1</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C40000004F00000000030000BD000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>C40000006600000070040000D4000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1005</RegID> + <PaneID>1005</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000BD0000006F020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>109</RegID> + <PaneID>109</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000BD00000078010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000005301000043020000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1465</RegID> + <PaneID>1465</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000FD020000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1466</RegID> + <PaneID>1466</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000B5030000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1467</RegID> + <PaneID>1467</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000B5030000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1468</RegID> + <PaneID>1468</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000B5030000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1506</RegID> + <PaneID>1506</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>16384</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1913</RegID> + <PaneID>1913</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1935</RegID> + <PaneID>1935</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>32768</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000FD020000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1936</RegID> + <PaneID>1936</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000B5030000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1937</RegID> + <PaneID>1937</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000B5030000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1939</RegID> + <PaneID>1939</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000B5030000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1940</RegID> + <PaneID>1940</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000B5030000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1941</RegID> + <PaneID>1941</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000B5030000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>1942</RegID> + <PaneID>1942</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000B5030000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>195</RegID> + <PaneID>195</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000BD00000078010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000005301000043020000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>196</RegID> + <PaneID>196</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000BD00000078010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000005301000043020000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>197</RegID> + <PaneID>197</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>32768</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000C00100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>198</RegID> + <PaneID>198</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>32768</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>000000008C020000800100000E030000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>199</RegID> + <PaneID>199</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000C00100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>203</RegID> + <PaneID>203</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C40000006300000000030000BD000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>204</RegID> + <PaneID>204</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>221</RegID> + <PaneID>221</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>00000000000000000000000000000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>2506</RegID> + <PaneID>2506</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>2507</RegID> + <PaneID>2507</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000B5030000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>343</RegID> + <PaneID>343</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>346</RegID> + <PaneID>346</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35141</RegID> + <PaneID>35141</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35824</RegID> + <PaneID>35824</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35885</RegID> + <PaneID>35885</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35886</RegID> + <PaneID>35886</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35887</RegID> + <PaneID>35887</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35888</RegID> + <PaneID>35888</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35889</RegID> + <PaneID>35889</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35890</RegID> + <PaneID>35890</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35891</RegID> + <PaneID>35891</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35892</RegID> + <PaneID>35892</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35893</RegID> + <PaneID>35893</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35894</RegID> + <PaneID>35894</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35895</RegID> + <PaneID>35895</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35896</RegID> + <PaneID>35896</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35897</RegID> + <PaneID>35897</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35898</RegID> + <PaneID>35898</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35899</RegID> + <PaneID>35899</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35900</RegID> + <PaneID>35900</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35901</RegID> + <PaneID>35901</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35902</RegID> + <PaneID>35902</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35903</RegID> + <PaneID>35903</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35904</RegID> + <PaneID>35904</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>35905</RegID> + <PaneID>35905</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>38003</RegID> + <PaneID>38003</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0300000066000000BD0000006F020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000005301000043020000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>38007</RegID> + <PaneID>38007</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000C00100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>436</RegID> + <PaneID>436</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000C00100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000005301000043020000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>437</RegID> + <PaneID>437</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000B5030000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>440</RegID> + <PaneID>440</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000B5030000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>463</RegID> + <PaneID>463</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000C00100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000005301000043020000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>466</RegID> + <PaneID>466</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>03000000C00100006D040000FE010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000005301000043020000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>470</RegID> + <PaneID>470</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>C7000000660000006D040000A4000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>7000000087000000A8020000F5000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50000</RegID> + <PaneID>50000</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50001</RegID> + <PaneID>50001</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50002</RegID> + <PaneID>50002</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50003</RegID> + <PaneID>50003</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50004</RegID> + <PaneID>50004</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50005</RegID> + <PaneID>50005</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50006</RegID> + <PaneID>50006</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50007</RegID> + <PaneID>50007</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50008</RegID> + <PaneID>50008</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50009</RegID> + <PaneID>50009</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50010</RegID> + <PaneID>50010</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50011</RegID> + <PaneID>50011</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50012</RegID> + <PaneID>50012</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50013</RegID> + <PaneID>50013</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50014</RegID> + <PaneID>50014</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50015</RegID> + <PaneID>50015</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50016</RegID> + <PaneID>50016</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50017</RegID> + <PaneID>50017</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50018</RegID> + <PaneID>50018</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>50019</RegID> + <PaneID>50019</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>B3030000660000006D0400008C010000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59392</RegID> + <PaneID>59392</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>966</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>0000000000000000000300001C000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59393</RegID> + <PaneID>0</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>000000000E0300000003000021030000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59399</RegID> + <PaneID>59399</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>476</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>1</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>000000001C000000E701000038000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>59400</RegID> + <PaneID>59400</PaneID> + <IsVisible>1</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>612</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>8192</RecentFrameAlignment> + <RecentRowIndex>2</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>000000001C0000006F02000038000000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>0A0000000A0000006E0000006E000000</Data> + </RectRecentFloat> + </Window> + <Window> + <RegID>824</RegID> + <PaneID>824</PaneID> + <IsVisible>0</IsVisible> + <IsFloating>0</IsFloating> + <IsTabbed>0</IsTabbed> + <IsActivated>0</IsActivated> + <MRUWidth>32767</MRUWidth> + <PinState>0</PinState> + <RecentFrameAlignment>4096</RecentFrameAlignment> + <RecentRowIndex>0</RecentRowIndex> + <RectRecentDocked> + <Len>16</Len> + <Data>87010000A3020000B5030000F5020000</Data> + </RectRecentDocked> + <RectRecentFloat> + <Len>16</Len> + <Data>70000000870000003001000027010000</Data> + </RectRecentFloat> + </Window> + <DockMan> + <Len>3311</Len> + <Data>000000000B000000000000000020000001000000FFFFFFFFFFFFFFFFC4000000BD00000000030000C1000000010000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000C40000006600000070040000D4000000C40000004F00000000030000BD0000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFAC0300004F000000B0030000A5010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000B00300006600000070040000BC010000B00300004F00000070040000A501000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFC00000004F000000C400000088020000010000000200000004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000C0000000A8010000000000004F000000C0000000880200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000088020000000300008C02000001000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000010000003C020000AC010000700400002E020000840100008C020000000300000E03000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF000000000000000001000000000000000100000001000000FFFFFFFF800100008C020000840100000E03000001000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000A501000070040000A9010000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000000000000000000C0010000700400002E02000000000000A901000070040000170200000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data> + </DockMan> + <ToolBar> + <RegID>59392</RegID> + <Name>File</Name> + <Buttons> + <Len>2609</Len> + <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000000460000000000000000000000000000000001000000010000000180FE880000000000004500000000000000000000000000000000010000000100000001800B810000000000001300000000000000000000000000000000010000000100000001800C810000000000001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000000000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000094C494D49545F4D494E96000000000000000500094C494D49545F4D494E0D4C494D49545F4D494E5F4D41580443414E310943414E315F42415345036C65640000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000000180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000000000001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data> + </Buttons> + <OriginalItems> + <Len>1423</Len> + <Data>2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> + </OriginalItems> + <OrigResetItems> + <Len>1423</Len> + <Data>2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000</Data> + </OrigResetItems> + </ToolBar> + <ToolBar> + <RegID>59399</RegID> + <Name>Build</Name> + <Buttons> + <Len>955</Len> + <Data>00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data> + </Buttons> + <OriginalItems> + <Len>583</Len> + <Data>1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> + </OriginalItems> + <OrigResetItems> + <Len>583</Len> + <Data>1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000</Data> + </OrigResetItems> + </ToolBar> + <ToolBar> + <RegID>59400</RegID> + <Name>Debug</Name> + <Buttons> + <Len>2373</Len> + <Data>00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data> + </Buttons> + <OriginalItems> + <Len>898</Len> + <Data>1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> + </OriginalItems> + <OrigResetItems> + <Len>898</Len> + <Data>1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000</Data> + </OrigResetItems> + </ToolBar> + <ControlBarsSummary> + <Bars>0</Bars> + <ScreenCX>1536</ScreenCX> + <ScreenCY>864</ScreenCY> + </ControlBarsSummary> + </ViewEx> + </WinLayoutEx> + + <MDIGroups> + <Orientation>1</Orientation> + <ActiveMDIGroup>0</ActiveMDIGroup> + <MDIGroup> + <Size>100</Size> + <ActiveTab>1</ActiveTab> + <Doc> + <Name>../Src/main.c</Name> + <ColumnNumber>24</ColumnNumber> + <TopLine>174</TopLine> + <CurrentLine>207</CurrentLine> + <Folding>1</Folding> + <ContractedFolders></ContractedFolders> + <PaneID>0</PaneID> + </Doc> + <Doc> + <Name>..\BSP\Driver\bsp_uart.c</Name> + <ColumnNumber>0</ColumnNumber> + <TopLine>73</TopLine> + <CurrentLine>1</CurrentLine> + <Folding>1</Folding> + <ContractedFolders></ContractedFolders> + <PaneID>0</PaneID> + </Doc> + </MDIGroup> + </MDIGroups> + +</ProjectGui> diff --git a/Standard_robot/MDK-ARM/Standard_robot.uvoptx b/Standard_robot/MDK-ARM/Standard_robot.uvoptx index 8de390e..6a0b140 100644 --- a/Standard_robot/MDK-ARM/Standard_robot.uvoptx +++ b/Standard_robot/MDK-ARM/Standard_robot.uvoptx @@ -117,6 +117,26 @@ <pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon> </DebugOpt> <TargetDriverDllRegistry> + <SetRegEntry> + <Number>0</Number> + <Key>ARMRTXEVENTFLAGS</Key> + <Name>-L70 -Z18 -C0 -M0 -T1</Name> + </SetRegEntry> + <SetRegEntry> + <Number>0</Number> + <Key>DLGTARM</Key> + <Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)</Name> + </SetRegEntry> + <SetRegEntry> + <Number>0</Number> + <Key>ARMDBGFLAGS</Key> + <Name></Name> + </SetRegEntry> + <SetRegEntry> + <Number>0</Number> + <Key>DLGUARM</Key> + <Name>(105=-1,-1,-1,-1,0)</Name> + </SetRegEntry> <SetRegEntry> <Number>0</Number> <Key>UL2CM3</Key> @@ -125,7 +145,7 @@ <SetRegEntry> <Number>0</Number> <Key>ST-LINKIII-KEIL_SWO</Key> - <Name>-U-O142 -O2254 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32F427IIHx$CMSIS\Flash\STM32F4xx_2048.FLM)</Name> + <Name>-U-O142 -O2254 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32F427IIHx$CMSIS\Flash\STM32F4xx_2048.FLM)</Name> </SetRegEntry> </TargetDriverDllRegistry> <Breakpoint/> @@ -140,7 +160,7 @@ <aSer1>0</aSer1> <aSer2>0</aSer2> <aPa>0</aPa> - <viewmode>0</viewmode> + <viewmode>1</viewmode> <vrSel>0</vrSel> <aSym>0</aSym> <aTbox>0</aTbox> @@ -173,7 +193,7 @@ <pMultCmdsp></pMultCmdsp> <DebugDescription> <Enable>1</Enable> - <EnableFlashSeq>1</EnableFlashSeq> + <EnableFlashSeq>0</EnableFlashSeq> <EnableLog>0</EnableLog> <Protocol>2</Protocol> <DbgClock>10000000</DbgClock> @@ -183,7 +203,7 @@ <Group> <GroupName>Application/MDK-ARM</GroupName> - <tvExp>0</tvExp> + <tvExp>1</tvExp> <tvExpOptDlg>0</tvExpOptDlg> <cbSel>0</cbSel> <RteFlg>0</RteFlg> @@ -250,6 +270,18 @@ <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> <bDave2>0</bDave2> + <PathWithFileName>../Src/can.c</PathWithFileName> + <FilenameWithoutPath>can.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>2</GroupNumber> + <FileNumber>6</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> <PathWithFileName>../Src/dma.c</PathWithFileName> <FilenameWithoutPath>dma.c</FilenameWithoutPath> <RteFlg>0</RteFlg> @@ -257,7 +289,7 @@ </File> <File> <GroupNumber>2</GroupNumber> - <FileNumber>6</FileNumber> + <FileNumber>7</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -269,7 +301,19 @@ </File> <File> <GroupNumber>2</GroupNumber> - <FileNumber>7</FileNumber> + <FileNumber>8</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>../Src/tim.c</PathWithFileName> + <FilenameWithoutPath>tim.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>2</GroupNumber> + <FileNumber>9</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -281,7 +325,7 @@ </File> <File> <GroupNumber>2</GroupNumber> - <FileNumber>8</FileNumber> + <FileNumber>10</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -293,7 +337,7 @@ </File> <File> <GroupNumber>2</GroupNumber> - <FileNumber>9</FileNumber> + <FileNumber>11</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -306,86 +350,202 @@ </Group> <Group> - <GroupName>Drivers/STM32F4xx_HAL_Driver</GroupName> + <GroupName>Drivers/CMSIS</GroupName> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> <cbSel>0</cbSel> <RteFlg>0</RteFlg> <File> <GroupNumber>3</GroupNumber> - <FileNumber>10</FileNumber> + <FileNumber>12</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> <bDave2>0</bDave2> - <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c</PathWithFileName> - <FilenameWithoutPath>stm32f4xx_hal_adc.c</FilenameWithoutPath> + <PathWithFileName>../Src/system_stm32f4xx.c</PathWithFileName> + <FilenameWithoutPath>system_stm32f4xx.c</FilenameWithoutPath> <RteFlg>0</RteFlg> <bShared>0</bShared> </File> + </Group> + + <Group> + <GroupName>BSP</GroupName> + <tvExp>1</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>11</FileNumber> + <GroupNumber>4</GroupNumber> + <FileNumber>13</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> <bDave2>0</bDave2> - <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c</PathWithFileName> - <FilenameWithoutPath>stm32f4xx_hal_adc_ex.c</FilenameWithoutPath> + <PathWithFileName>..\BSP\Driver\bsp_oled.c</PathWithFileName> + <FilenameWithoutPath>bsp_oled.c</FilenameWithoutPath> <RteFlg>0</RteFlg> <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>12</FileNumber> + <GroupNumber>4</GroupNumber> + <FileNumber>14</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> <bDave2>0</bDave2> - <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c</PathWithFileName> - <FilenameWithoutPath>stm32f4xx_hal_spi.c</FilenameWithoutPath> + <PathWithFileName>..\BSP\Driver\bsp_can.c</PathWithFileName> + <FilenameWithoutPath>bsp_can.c</FilenameWithoutPath> <RteFlg>0</RteFlg> <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>13</FileNumber> + <GroupNumber>4</GroupNumber> + <FileNumber>15</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> <bDave2>0</bDave2> - <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c</PathWithFileName> - <FilenameWithoutPath>stm32f4xx_hal_tim.c</FilenameWithoutPath> + <PathWithFileName>..\BSP\Driver\bsp_key.c</PathWithFileName> + <FilenameWithoutPath>bsp_key.c</FilenameWithoutPath> <RteFlg>0</RteFlg> <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>14</FileNumber> + <GroupNumber>4</GroupNumber> + <FileNumber>16</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> <bDave2>0</bDave2> - <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c</PathWithFileName> - <FilenameWithoutPath>stm32f4xx_hal_tim_ex.c</FilenameWithoutPath> + <PathWithFileName>..\BSP\Driver\bsp_pwm.c</PathWithFileName> + <FilenameWithoutPath>bsp_pwm.c</FilenameWithoutPath> <RteFlg>0</RteFlg> <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>15</FileNumber> + <GroupNumber>4</GroupNumber> + <FileNumber>17</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> <bDave2>0</bDave2> - <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c</PathWithFileName> - <FilenameWithoutPath>stm32f4xx_hal_uart.c</FilenameWithoutPath> + <PathWithFileName>..\BSP\Driver\bsp_uart.c</PathWithFileName> + <FilenameWithoutPath>bsp_uart.c</FilenameWithoutPath> <RteFlg>0</RteFlg> <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>16</FileNumber> + <GroupNumber>4</GroupNumber> + <FileNumber>18</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\BSP\Driver\bsp_usart.c</PathWithFileName> + <FilenameWithoutPath>bsp_usart.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>Device</GroupName> + <tvExp>1</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>5</GroupNumber> + <FileNumber>19</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\BSP\Device\oled.c</PathWithFileName> + <FilenameWithoutPath>oled.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>5</GroupNumber> + <FileNumber>20</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\BSP\Device\motor.c</PathWithFileName> + <FilenameWithoutPath>motor.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>5</GroupNumber> + <FileNumber>21</FileNumber> + <FileType>1</FileType> + <tvExp>1</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\BSP\Device\list_motor.c</PathWithFileName> + <FilenameWithoutPath>list_motor.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>Algorithm</GroupName> + <tvExp>1</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>6</GroupNumber> + <FileNumber>22</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>..\BSP\Algorithm\pid.c</PathWithFileName> + <FilenameWithoutPath>pid.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + </Group> + + <Group> + <GroupName>Drivers/STM32F4xx_HAL_Driver</GroupName> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <cbSel>0</cbSel> + <RteFlg>0</RteFlg> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>23</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c</PathWithFileName> + <FilenameWithoutPath>stm32f4xx_hal_adc.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>24</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c</PathWithFileName> + <FilenameWithoutPath>stm32f4xx_hal_adc_ex.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>25</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -396,8 +556,8 @@ <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>17</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>26</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -408,8 +568,8 @@ <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>18</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>27</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -420,8 +580,8 @@ <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>19</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>28</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -432,8 +592,8 @@ <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>20</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>29</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -444,8 +604,8 @@ <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>21</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>30</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -456,8 +616,8 @@ <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>22</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>31</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -468,8 +628,8 @@ <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>23</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>32</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -480,8 +640,8 @@ <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>24</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>33</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -492,8 +652,8 @@ <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>25</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>34</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -504,8 +664,8 @@ <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>26</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>35</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -516,8 +676,8 @@ <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>27</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>36</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -528,8 +688,8 @@ <bShared>0</bShared> </File> <File> - <GroupNumber>3</GroupNumber> - <FileNumber>28</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>37</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> @@ -539,75 +699,63 @@ <RteFlg>0</RteFlg> <bShared>0</bShared> </File> - </Group> - - <Group> - <GroupName>Drivers/CMSIS</GroupName> - <tvExp>1</tvExp> - <tvExpOptDlg>0</tvExpOptDlg> - <cbSel>0</cbSel> - <RteFlg>0</RteFlg> <File> - <GroupNumber>4</GroupNumber> - <FileNumber>29</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>38</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> <bDave2>0</bDave2> - <PathWithFileName>../Src/system_stm32f4xx.c</PathWithFileName> - <FilenameWithoutPath>system_stm32f4xx.c</FilenameWithoutPath> + <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c</PathWithFileName> + <FilenameWithoutPath>stm32f4xx_hal_can.c</FilenameWithoutPath> <RteFlg>0</RteFlg> <bShared>0</bShared> </File> - </Group> - - <Group> - <GroupName>BSP</GroupName> - <tvExp>1</tvExp> - <tvExpOptDlg>0</tvExpOptDlg> - <cbSel>0</cbSel> - <RteFlg>0</RteFlg> <File> - <GroupNumber>5</GroupNumber> - <FileNumber>30</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>39</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> <bDave2>0</bDave2> - <PathWithFileName>..\BSP\Driver\bsp_usart.c</PathWithFileName> - <FilenameWithoutPath>bsp_usart.c</FilenameWithoutPath> + <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c</PathWithFileName> + <FilenameWithoutPath>stm32f4xx_hal_spi.c</FilenameWithoutPath> <RteFlg>0</RteFlg> <bShared>0</bShared> </File> <File> - <GroupNumber>5</GroupNumber> - <FileNumber>31</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>40</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> <bDave2>0</bDave2> - <PathWithFileName>..\BSP\Driver\bsp_oled.c</PathWithFileName> - <FilenameWithoutPath>bsp_oled.c</FilenameWithoutPath> + <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c</PathWithFileName> + <FilenameWithoutPath>stm32f4xx_hal_tim.c</FilenameWithoutPath> <RteFlg>0</RteFlg> <bShared>0</bShared> </File> - </Group> - - <Group> - <GroupName>Device</GroupName> - <tvExp>1</tvExp> - <tvExpOptDlg>0</tvExpOptDlg> - <cbSel>0</cbSel> - <RteFlg>0</RteFlg> <File> - <GroupNumber>6</GroupNumber> - <FileNumber>32</FileNumber> + <GroupNumber>7</GroupNumber> + <FileNumber>41</FileNumber> <FileType>1</FileType> <tvExp>0</tvExp> <tvExpOptDlg>0</tvExpOptDlg> <bDave2>0</bDave2> - <PathWithFileName>..\BSP\Device\oled.c</PathWithFileName> - <FilenameWithoutPath>oled.c</FilenameWithoutPath> + <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c</PathWithFileName> + <FilenameWithoutPath>stm32f4xx_hal_tim_ex.c</FilenameWithoutPath> + <RteFlg>0</RteFlg> + <bShared>0</bShared> + </File> + <File> + <GroupNumber>7</GroupNumber> + <FileNumber>42</FileNumber> + <FileType>1</FileType> + <tvExp>0</tvExp> + <tvExpOptDlg>0</tvExpOptDlg> + <bDave2>0</bDave2> + <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c</PathWithFileName> + <FilenameWithoutPath>stm32f4xx_hal_uart.c</FilenameWithoutPath> <RteFlg>0</RteFlg> <bShared>0</bShared> </File> diff --git a/Standard_robot/MDK-ARM/Standard_robot.uvprojx b/Standard_robot/MDK-ARM/Standard_robot.uvprojx index cf9749d..1f7e225 100644 --- a/Standard_robot/MDK-ARM/Standard_robot.uvprojx +++ b/Standard_robot/MDK-ARM/Standard_robot.uvprojx @@ -338,7 +338,7 @@ <MiscControls></MiscControls> <Define>USE_HAL_DRIVER,STM32F427xx,USE_HAL_DRIVER,STM32F427xx</Define> <Undefine></Undefine> - <IncludePath>../Inc;../Drivers/STM32F4xx_HAL_Driver/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F4xx/Include;../Drivers/CMSIS/Include;../BSP/Algorithm;../BSP/Controller;../BSP/Device;../BSP/Driver;../BSP/Modules</IncludePath> + <IncludePath>../Inc; ../Drivers/STM32F4xx_HAL_Driver/Inc; ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy; ../Drivers/CMSIS/Device/ST/STM32F4xx/Include; ../Drivers/CMSIS/Include; ../BSP/Algorithm; ../BSP/Controller; ../BSP/Device; ../BSP/Driver; ../BSP/Modules</IncludePath> </VariousControls> </Cads> <Aads> @@ -407,6 +407,11 @@ <FileType>1</FileType> <FilePath>../Src/adc.c</FilePath> </File> + <File> + <FileName>can.c</FileName> + <FileType>1</FileType> + <FilePath>../Src/can.c</FilePath> + </File> <File> <FileName>dma.c</FileName> <FileType>1</FileType> @@ -417,6 +422,11 @@ <FileType>1</FileType> <FilePath>../Src/spi.c</FilePath> </File> + <File> + <FileName>tim.c</FileName> + <FileType>1</FileType> + <FilePath>../Src/tim.c</FilePath> + </File> <File> <FileName>usart.c</FileName> <FileType>1</FileType> @@ -435,128 +445,48 @@ </Files> </Group> <Group> - <GroupName>Drivers/STM32F4xx_HAL_Driver</GroupName> + <GroupName>Drivers/CMSIS</GroupName> <Files> <File> - <FileName>stm32f4xx_hal_adc.c</FileName> - <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c</FilePath> - </File> - <File> - <FileName>stm32f4xx_hal_adc_ex.c</FileName> - <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c</FilePath> - </File> - <File> - <FileName>stm32f4xx_hal_spi.c</FileName> - <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c</FilePath> - </File> - <File> - <FileName>stm32f4xx_hal_tim.c</FileName> - <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c</FilePath> - </File> - <File> - <FileName>stm32f4xx_hal_tim_ex.c</FileName> - <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c</FilePath> - </File> - <File> - <FileName>stm32f4xx_hal_uart.c</FileName> - <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c</FilePath> - </File> - <File> - <FileName>stm32f4xx_hal_rcc.c</FileName> - <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c</FilePath> - </File> - <File> - <FileName>stm32f4xx_hal_rcc_ex.c</FileName> - <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c</FilePath> - </File> - <File> - <FileName>stm32f4xx_hal_flash.c</FileName> - <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c</FilePath> - </File> - <File> - <FileName>stm32f4xx_hal_flash_ex.c</FileName> - <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c</FilePath> - </File> - <File> - <FileName>stm32f4xx_hal_flash_ramfunc.c</FileName> - <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c</FilePath> - </File> - <File> - <FileName>stm32f4xx_hal_gpio.c</FileName> - <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c</FilePath> - </File> - <File> - <FileName>stm32f4xx_hal_dma_ex.c</FileName> - <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c</FilePath> - </File> - <File> - <FileName>stm32f4xx_hal_dma.c</FileName> - <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c</FilePath> - </File> - <File> - <FileName>stm32f4xx_hal_pwr.c</FileName> + <FileName>system_stm32f4xx.c</FileName> <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c</FilePath> + <FilePath>../Src/system_stm32f4xx.c</FilePath> </File> + </Files> + </Group> + <Group> + <GroupName>BSP</GroupName> + <Files> <File> - <FileName>stm32f4xx_hal_pwr_ex.c</FileName> + <FileName>bsp_oled.c</FileName> <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c</FilePath> + <FilePath>..\BSP\Driver\bsp_oled.c</FilePath> </File> <File> - <FileName>stm32f4xx_hal_cortex.c</FileName> + <FileName>bsp_can.c</FileName> <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c</FilePath> + <FilePath>..\BSP\Driver\bsp_can.c</FilePath> </File> <File> - <FileName>stm32f4xx_hal.c</FileName> + <FileName>bsp_key.c</FileName> <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c</FilePath> + <FilePath>..\BSP\Driver\bsp_key.c</FilePath> </File> <File> - <FileName>stm32f4xx_hal_exti.c</FileName> + <FileName>bsp_pwm.c</FileName> <FileType>1</FileType> - <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c</FilePath> + <FilePath>..\BSP\Driver\bsp_pwm.c</FilePath> </File> - </Files> - </Group> - <Group> - <GroupName>Drivers/CMSIS</GroupName> - <Files> <File> - <FileName>system_stm32f4xx.c</FileName> + <FileName>bsp_uart.c</FileName> <FileType>1</FileType> - <FilePath>../Src/system_stm32f4xx.c</FilePath> + <FilePath>..\BSP\Driver\bsp_uart.c</FilePath> </File> - </Files> - </Group> - <Group> - <GroupName>BSP</GroupName> - <Files> <File> <FileName>bsp_usart.c</FileName> <FileType>1</FileType> <FilePath>..\BSP\Driver\bsp_usart.c</FilePath> </File> - <File> - <FileName>bsp_oled.c</FileName> - <FileType>1</FileType> - <FilePath>..\BSP\Driver\bsp_oled.c</FilePath> - </File> </Files> </Group> <Group> @@ -636,6 +566,131 @@ <FileType>1</FileType> <FilePath>..\BSP\Device\oled.c</FilePath> </File> + <File> + <FileName>motor.c</FileName> + <FileType>1</FileType> + <FilePath>..\BSP\Device\motor.c</FilePath> + </File> + <File> + <FileName>list_motor.c</FileName> + <FileType>1</FileType> + <FilePath>..\BSP\Device\list_motor.c</FilePath> + </File> + </Files> + </Group> + <Group> + <GroupName>Algorithm</GroupName> + <Files> + <File> + <FileName>pid.c</FileName> + <FileType>1</FileType> + <FilePath>..\BSP\Algorithm\pid.c</FilePath> + </File> + </Files> + </Group> + <Group> + <GroupName>Drivers/STM32F4xx_HAL_Driver</GroupName> + <Files> + <File> + <FileName>stm32f4xx_hal_adc.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_adc_ex.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_rcc.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_rcc_ex.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_flash.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_flash_ex.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_flash_ramfunc.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_gpio.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_dma_ex.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_dma.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_pwr.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_pwr_ex.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_cortex.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_exti.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_can.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_spi.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_tim.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_tim_ex.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c</FilePath> + </File> + <File> + <FileName>stm32f4xx_hal_uart.c</FileName> + <FileType>1</FileType> + <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c</FilePath> + </File> </Files> </Group> <Group> diff --git a/Standard_robot/MDK-ARM/Standard_robot/Standard_robot.hex b/Standard_robot/MDK-ARM/Standard_robot/Standard_robot.hex index 3571b7f..e8e88c5 100644 --- a/Standard_robot/MDK-ARM/Standard_robot/Standard_robot.hex +++ b/Standard_robot/MDK-ARM/Standard_robot/Standard_robot.hex @@ -1,920 +1,1260 @@ :020000040800F2 -:1000000050090020C1010008471E0008891C000893 -:10001000451E0008710800083D220008000000008D -:10002000000000000000000000000000391F000870 -:10003000FD08000800000000491E00083B1F0008E2 +:10000000380D0020C1010008172A00083D2600080D +:10001000152A0008BD080008813000080000000013 +:10002000000000000000000000000000092B000894 +:100030009509000800000000192A00080B2B000891 :10004000DB010008DB010008DB010008DB01000820 :10005000DB010008DB010008DB010008DB01000810 :10006000DB010008DB010008DB010008DB01000800 :10007000DB010008DB010008DB010008DB010008F0 -:10008000DB010008DB010008DB010008DB010008E0 -:10009000DB010008DB010008DB010008DB010008D0 +:10008000DB010008DB010008DB010008CD080008E7 +:10009000C1080008DB010008DB010008DB010008E3 :1000A000DB010008DB010008DB010008DB010008C0 :1000B000DB010008DB010008DB010008DB010008B0 :1000C000DB010008DB010008DB010008DB010008A0 -:1000D000DB01000831220008DB010008DB01000819 +:1000D000DB01000869300008DB010008DB010008D3 :1000E000DB010008DB010008DB010008DB01000880 :1000F000DB010008DB010008DB010008DB01000870 :10010000DB010008DB010008DB010008DB0100085F :10011000DB010008DB010008DB010008DB0100084F -:10012000DB010008DB010008DB010008DB0100083F +:10012000DB010008DB010008D9080008DB0100083A :10013000DB010008DB010008DB010008DB0100082F :10014000DB010008DB010008DB010008DB0100081F -:10015000DB010008DB01000875080008DB0100086E +:10015000DB010008DB010008E5080008DB010008FE :10016000DB010008DB010008DB010008DB010008FF :10017000DB010008DB010008DB01000800000000D3 :10018000DB010008DB010008DB010008DB010008DF :10019000DB010008DB010008DB010008DB010008CF :1001A0000000000000000000DB010008DFF80CD0B8 -:1001B00000F048FA00480047612B00085009002071 +:1001B00000F06EFA00480047213B0008380D00208F :1001C0000648804706480047FEE7FEE7FEE7FEE7F1 -:1001D000FEE7FEE7FEE7FEE7FEE7FEE7C51F0008D5 +:1001D000FEE7FEE7FEE7FEE7FEE7FEE7952B0008F9 :1001E000AD0100082DE9F05F0546002092469B46D0 :1001F00088460646814640241BE02846414647463D -:10020000224600F057F853465A46C01A914110D37F -:1002100011461846224600F03EF82D1A67EB0108F9 -:100220004F4622460120002100F035F817EB000967 +:10020000224600F07CF853465A46C01A914110D35A +:1002100011461846224600F063F82D1A67EB0108D4 +:100220004F4622460120002100F05AF817EB000942 :100230004E41201EA4F10104DFDC484631462A4627 -:100240004346BDE8F09FD2B201E000F8012B491E01 -:10025000FBD270470022F6E710B513460A46044663 -:100260001946FFF7F0FF204610BD30B50B4601469A -:1002700000202022012409E021FA02F59D4205D345 -:1002800003FA02F5491B04FA02F52844151EA2F1EF -:100290000102F1DC30BD202A04DB203A00FA02F131 -:1002A000002070479140C2F1200320FA03F3194364 -:1002B00090407047202A04DB203A21FA02F0002106 -:1002C000704721FA02F3D040C2F120029140084366 -:1002D000194670472DE9FE4F804681EA0300C00FA2 -:1002E0000C46009021F0004123F00045B8EB0200DD -:1002F000A94105D24046214690461C460B4602467F -:1003000023F00040104347D0270DC7F30A00C3F382 -:100310000A510290401A019040286BDAC3F313008F -:1003200040F4801B0098924620B10023D2EB030AD0 -:1003300063EB0B0B01985946C0F140025046FFF7A2 -:10034000AAFF06460D4650465946019A00F08CF920 -:1003500010EB08006141002487EA115284EAE77338 -:100360001A4340D0009A62B3019A012A4FEA075219 -:1003700015DC001B61EB02014FF0004202EA07525C -:10038000CDE90042001C41F5801132462B4600F0B9 -:100390008CF903B0BDE8F08F40462146F9E7001B19 -:1003A00061EB0201001C41F5801300185B4120182D -:1003B000A2F5001747EB030140EAD570B6196D416D -:1003C00011E06D084FEA360645EAC0754FEA07525C -:1003D000001B61EB0201001C41F5801149084FEA46 -:1003E00030000019514132462B4603B0BDE8F04FB2 -:1003F00000F04CB90098012240000023D0EB02022B -:1004000063EBE073009821464FEAE074B8EB00001C -:1004100061EB0401E9E783F000435BE781F0004111 -:1004200058E72DE9FE4F81EA030404F0004421F06F -:10043000004100944FF0000B23F0004350EA010408 -:100440005ED052EA03045BD0C3F30A54C1F30A55E9 -:100450002C44A4F2F3340194A0FB0254C1F3130121 -:1004600041F48011C3F3130343F4801301FB0244EE -:1004700000FB034E840A970A44EA815447EA8357F3 -:10048000A4FB076802958D0A05FB07854FEA932CAC -:1004900004FB0C542705029D4FEA065847EA16371D -:1004A000B5EB08056EEB070C870E920E47EA811735 -:1004B00042EA8312A7FB0201B6EB0B0164EB0004D6 -:1004C0002B0D43EA0C335E1844EB1C50DA465146C0 -:1004D000E7FB0201C5F313044FEA0B3343EA14535D -:1004E0004FEA0432019C43EA0603A4F10C0402948F -:1004F000009CCDE900B400F0D8F803B0BDE8F08F5F -:1005000000200146F9E72DE9F04D81EA030404F0EB -:10051000004B21F0004514464FF0000A23F0004143 -:1005200050EA050220D054EA01021DD0C5F30A5753 -:100530000246C5F31303C1F31300C1F30A5640F496 -:10054000801543F48013A7EB0608101BD64608F26B -:10055000FD3873EB050002D308F1010801E09218A1 -:100560005B41B8F1000F03DA00200146BDE8F08DD1 -:1005700000204FF48011064684460EE0171B73EBF3 -:10058000050705D3121B63EB050306434CEA010C78 -:1005900049084FEA300092185B4150EA0107EDD15B -:1005A00052EA030012D082EA040083EA05010843FC -:1005B00005D0101BAB4106D20122002306E0002229 -:1005C0004FF0004302E06FF0010253101AEB0600F7 -:1005D0004CEB085110EB0A0041EB0B01BDE8F04D6C -:1005E00000F054B8C1F30A52C1F3130140F2FF33D3 -:1005F00041F480119A4202DA00200146704740F22D -:1006000033439A42A2F2334202DC5242FFF752BE17 -:10061000FFF741BE30B5041E71F1000404DB4FF05A -:100620000044404264EB0101141E73F1000405DB39 -:100630001C464FF00043524263EB0403994208BF4B -:10064000904230BD064C074D06E0E06840F00103E3 -:1006500094E8070098471034AC42F6D3FFF7AAFDA0 -:100660001439000834390008202A06DBCB17203A59 -:1006700041FA02F043EAE07306E041FA02F3D040A7 -:10068000C2F12002914008431946704710B5141E6C -:1006900073F1000408DA401C41F1000192185B413B -:1006A0001A4301D120F0010010BD2DE9F04D924612 -:1006B0009B4611B1B1FA81F202E0B0FA80F2203229 -:1006C0009046FFF7E8FD04460F4640EA0A0041EA7B -:1006D0000B0153465A46084313D0114653EA010012 -:1006E00019D0C8F140025046FFF7E4FD05460E461A -:1006F000504659464246FFF7CEFD084305D001203B -:1007000004E020463946BDE8F08D0020054346EA66 -:10071000E0762C4337430A986305E40AA0EB08000F -:100720000022FD0A44EA47540A3002D5002001465F -:10073000E9E7010510196941DDE90845001969413A -:10074000BDE8F04DA2E70000464910B54A6822F422 -:1007500040324A604A6843681A434A6001684A68FE -:1007600022F480724A6001684A68036942EA0322FF -:100770004A6001684A6822F040724A6001684A682B -:1007800083681A434A6001688A6822F400628A60BA -:1007900001688A68C3681A438A60816A6FF0706270 -:1007A000D14201688A6822F070628A6001688A68B2 -:1007B0000CD0836A1A438A6001688A6822F040522A -:1007C0008A6001688A68C36A1A4301E022F04052D5 -:1007D0008A6001688A6822F002028A6001688A6879 -:1007E000037E42EA43028A6090F8201000290168E3 -:1007F0004A680FD042F400624A6001684A6822F4F5 -:1008000060424A6001684A68174C436A04EB43330C -:100810001A4301E022F400624A600168CA6A22F4C5 -:100820007002CA620168CA6A838B104C04EB0353DE -:100830001A43CA6201688A6822F400728A600168F9 -:100840008A6890F8303042EA43228A6001688A68F8 -:1008500022F480628A6001688A68406942EA8020E6 -:10086000886010BD0023014000E0FFFF0000F0FFA2 -:10087000FEE70000014800F02DBA0000F000002063 -:1008800001681823CAB2103AB2FBF3F2054B6FF3BA -:100890000901032A9B5CC36500D9091D81650846CF -:1008A000704700008030000810B5014600208B69B9 -:1008B0008A6A4FF0C07453B1B3F5005F15D072B1BE -:1008C000012A0CD0022A0AD0032A09D104E01AB165 -:1008D000012A06D0022A03D1C96AC90100D5012024 -:1008E00010BDC96AA142FAD010BD002AF7D0012A72 -:1008F000F2D0022AF3D0032AF3D010BD704770471C -:1009000078B50024009490F83C20012A19D00122E7 -:1009100080F83C200A6807230568092A13D9EE6885 -:100920000A3A02EB420293409E43EE600B788A68DB -:100930000A3B03EB43039A400368DD682A43DA600D -:1009400010E0022078BD2E6902EB420293409E43E4 -:100950002E610B788A6803EB43039A4003681D6994 -:100960002A431A614A681F23072A13D205686E6B4F -:10097000521E02EB820293409E436E630A8893B23A -:100980000A79521E02EB820293400268556B2B4398 -:10099000536327E005680D2A12D22E6BD21F02EB9B -:1009A000820293409E432E630B790A88DB1F92B22A -:1009B00003EB83039A4003681D6B2A431A6311E01B -:1009C000EE6A0D3A02EB820293409E43EE620B798F -:1009D0000A880D3B92B203EB83039A400368DD6AF9 -:1009E0002A43DA621B4B0568194A9D420AD10D68F9 -:1009F000122D07D1556825F400055560556845F45A -:100A00008005556005689D421DD1134D0B68AB42B2 -:100A100001D0112B17D1536823F48003536053681E -:100A200043F4000353600968A9420CD10B490C4AF6 -:100A30000968B1FBF2F101EB8101490000E0491EB8 -:100A400000910029FBD180F83C40002078BD0000D7 -:100A50000023014000200140120000100C00002083 -:100A600040420F000068C06C704770B504004FF042 -:100A7000000503D0206C002610B107E0012070BDF6 -:100A8000204600F01DF8666484F83C60206CC006C7 -:100A900010D4206C20F4885040F0020020642046DE -:100AA000FFF752FE6664206C20F0020040F0010067 -:100AB000206400E0012584F83C60284670BD0000F9 -:100AC00010B586B0044614216846FFF7C3FB1149F0 -:100AD000206888421CD110480021026842F48072CC -:100AE0000260006800F4807005900B4814380268BA -:100AF00042F001020260006800F001000590402011 -:100B000000900320CDE901016946044800F02EFA67 -:100B100006B010BD002001404438024000000240F1 -:100B20002DE9F041044600680D4681684FF000074A -:100B300049050BD58068C00508D5206C40F0200021 -:100B4000206484F83C700120BDE8F08100F0FEFADA -:100B500006460FE0681C0DD025B100F0F7FA801BA7 -:100B6000A84207D9206C40F00400206484F83C704F -:100B70000320E9E7206800688007EBD521686FF063 -:100B800012000860206C40F40070206420688168C6 -:100B900011F0405F13D1217E89B9C16A11F4700F41 -:100BA00002D0806840050AD4206C20F48070206454 -:100BB000206CC00403D4206C40F0010020640020AD -:100BC000C2E7000018B50021009190F83C20012AEE -:100BD00007D0012280F83C2002689368DB0702D02E -:100BE00011E0022018BD936843F0010393602A4A84 -:100BF0002A4B1268B2FBF3F202EB420200E0521EF3 -:100C00000092002AFBD102689368DB0741D0036C95 -:100C100040F20164A34343F48073036453685B05AB -:100C200005D5036C23F4005343F480530364036C31 -:100C3000DB0404D5436C23F00603436400E0416405 -:100C400080F83C1016496FF0220313604968006871 -:100C5000CA06144906D088421BD1816811F0405F52 -:100C600013D016E08842F8D00F4A904203D1D1F851 -:100C70000423D206F1D00D4A90420AD1D1F80413D0 -:100C800001F01F011029E8D303E0816841F08041A1 -:100C90008160002018BD00000C00002040420F00C1 -:100CA00000230140002001400021014000220140BA -:100CB00090F83510022903D080214165012070474A -:100CC000052180F835100068016821F001010160FC -:100CD000002070472DE9F84304464FF00009CDF895 -:100CE000009063484FF41651A56D0068B0FBF1F712 -:100CF0002E6894F85C10082000FA01F131420FD000 -:100D000021680A6852070BD50A6822F004020A60BB -:100D100094F85C108840A860606D40F00100606548 -:100D200094F85C104FF0010808FA01F0304208D046 -:100D300021684969090604D5A860606D40F0020089 -:100D4000606594F85C1004208840304208D0216827 -:100D50000968890704D5A860606D40F004006065EB -:100D600094F85C1010208840304218D0216809683F -:100D7000090714D5A86020680168490304D50068F4 -:100D8000000308D5A16C07E00168C90503D4016818 -:100D900021F008010160216C09B12046884794F8D0 -:100DA0005C1020208840304231D021680968C90693 -:100DB0002DD5A86094F8350005282068016806D074 -:100DC000490347D5006800031DD4616C1CE021F085 -:100DD000160101602068416921F080014161206CA9 -:100DE00008B9A06C20B12068016821F008010160F9 -:100DF00094F85C103F208840A86084F8349084F810 -:100E00003580216D1FE0E16B09B120468847606D98 -:100E100000282BD0606DC00714D0052084F8350061 -:100E20002068016821F0010101600098401C0090D9 -:100E3000B84203D820680068C007F6D184F834901F -:100E400084F83580E16C002910D001B02046BDE85F -:100E5000F04308470168C905D5D4016821F01001A5 -:100E6000016084F8349084F83580CCE7BDE8F883DD -:100E70000C0000202DE9F041044600F067F9064619 -:100E80005CB1002584F83450022084F835002068D5 -:100E9000016821F0010101600DE00120BDE8F08151 -:100EA00000F054F9801B052805D920206065032037 -:100EB00084F83500F2E720680068C007F0D12268A6 -:100EC000116820480140D4E901031843D4E90336EE -:100ED0003343184363691843A3691843E36918430C -:100EE000236A18430843616A042903D1D4E90B1328 -:100EF00019430843106020684069666A20F00701C2 -:100F000030460E43012704280CD1A06A0643E06A4C -:100F100040B12046FFF7C8FC20B14020606584F84E -:100F20003570BAE7206846612046FFF7A9FC94F8BF -:100F30005C203F2191408160656584F83570002018 -:100F4000ACE700003F8010F070B5044600F0FEF8FA -:100F50000546601C02D004480078044400F0F6F80E -:100F6000401BA042FAD370BD000000202DE9F84FCD -:100F700000224FF0010803254FF00F0E0B6808FA0E -:100F800002F42340A3426ED14E68012E05D0022EFA -:100F900003D0112E01D0122E12D186684FEA420CD6 -:100FA00005FA0CF7BE43CF6807FA0CF737438760A2 -:100FB0004668A6430C79C4F300149440344344605B -:100FC000C668570005FA07FC8C6826EA0C06BC4088 -:100FD0003443C4604C68022C01D0122C13D1D408C5 -:100FE00000EB8404A346D4F8209054074FEAD46A57 -:100FF0000EFA0AF629EA06090E6906FA0AF646EA20 -:101000000906CBF8206004680E7924EA0C0406F087 -:101010000306BE40264306604C68E4006FD53B4C97 -:10102000266846F480462660246822F0030604F40D -:1010300080440094364C3444A446D4F808489607BB -:10104000360F0EFA06F7BC43324FB84201D10027E3 -:101050002EE0314FB84201D1012729E02F4FB8428D -:1010600002D1022724E04AE02D4FB84201D10327E4 -:101070001EE02C4FB84201D1042719E02A4FB84294 -:1010800001D1052714E0294FB84201D106270FE00E -:10109000274FB84201D107270AE0264FB84201D1B5 -:1010A000082705E0244FB84201D1092700E00A27AC -:1010B000B7402743CCF80878204E34684F689C43EB -:1010C000FF0300D51C4334601C4E361D34684F6846 -:1010D0009C43BF0300D51C433460184E0836346867 -:1010E0004F689C43FF0200D51C433460134E0C36FE -:1010F00034684F689C43BF0200D51C433460521CC7 -:10110000102AFFF43BAFBDE8F88F000044380240DE -:10111000003001400000024000040240000802408C -:10112000000C02400010024000140240001802406F -:10113000001C02400020024000240240003C01400C -:101140000AB1816170470904FBE70000014880682B -:1011500070470000000000200248816802781144B6 -:1011600081607047000000200B4810B5016841F411 -:1011700000710160016841F480610160016841F41F -:1011800080710160032000F06FF8002000F006F885 -:1011900000F024F8002010BD003C024070B50D4D59 -:1011A00004464FF47A712878B1FBF0F00A490968D7 -:1011B000B1FBF0F000F03AFC48B9102C07D2002245 -:1011C0002146501E00F030F800206C6070BD0120F8 -:1011D00070BD0000000000200C0000200A4808B587 -:1011E000016841F480410160006800F48040009093 -:1011F0000548001F016841F080510160006800F05F -:101200008050009008BD000044380240002809DBEF -:1012100000F01F02012191404009800000F1E02010 -:10122000C0F8001170470000F0B40E4B1B680C466C -:10123000C3F30223C3F10705042D00D90425191DAA -:10124000072901D2002300E0DB1E012606FA05F182 -:10125000491E214099409E40761E16403143F0BC05 -:1012600001F000B80CED00E0064900F00702086844 -:101270004FF6FF03184040EA0220034A104308607B -:10128000704700000CED00E00000FA052DE9F04782 -:101290000E46050065D0DFF81481D8F80000F7B2DB -:1012A00000F00F00B04207D288F80070D8F80000B4 -:1012B00000F00F00B04254D128683D4C810712D590 -:1012C000400703D5206840F4E050206028780007EC -:1012D00003D5206840F4604020602068A96820F0B1 -:1012E000F000084320602878C0072DD03049686896 -:1012F0000839012812D0022813D0032811D0096818 -:10130000890700292DDA216821F0030101432160BA -:10131000FFF71CFF814641F2883A0EE00968890315 -:10132000EFE709688901ECE7FFF710FFA0EB09017F -:10133000514502D90320BDE8F0872068696800F0B4 -:101340000C00B0EB810FEFD1D8F80010404601F04F -:101350000F01B14207D90770006800F00F00B042DA -:1013600001D00120E7E72878400705D52068E96823 -:1013700020F4E050084320602878000706D5206854 -:10138000296920F4604040EAC100206000F038F88C -:101390002168084AC1F30311515CC840064908603E -:1013A00006480068FFF7FAFE0020C4E7003C024050 -:1013B00008380240883000080C000020040000209B -:1013C0000448054900680968044AC1F38221515C58 -:1013D000C84070470C0000200838024098300008D0 -:1013E0000448054900680968044AC1F34231515C68 -:1013F000C84070470C0000200838024098300008B0 -:10140000154810B5006810F00C02144813D01449A8 -:10141000042A0FD0082A0ED10F4C241F22682368FB -:1014200002F03F025B0207D52068C0F38810A0FBE2 -:10143000010106E0084610BD2168C1F38811A1FB37 -:1014400000010023FEF7CEFE2168C1F30141491CD3 -:101450004900B0FBF1F010BD083802400024F40050 -:10146000001BB7002DE9F84F040076D02078DFF894 -:1014700038A3CE4DC00749D0DAF800105046C1F36A -:101480008101012908D00068C0F3810002280AD137 -:10149000281D0068400206D52868800336D560689C -:1014A0000028E2D032E06068B0F5803F10D0B0F59F -:1014B000A02F286810D020F480302860286820F4FD -:1014C000802028606068A0B1FFF740FE06460CE06F -:1014D000286840F48030F4E740F480202860F7E783 -:1014E000FFF734FE801B642873D828688003F7D583 -:1014F0000CE0FFF72BFE064605E000BFFFF726FED7 -:10150000801B6428F0D828688003F7D42078DFF89F -:10151000A08280074FF000093ED5DAF8001050464F -:1015200011F00C0F09D00068C0F3810002280BD124 -:101530009D48001F0068400206D42868800715D522 -:10154000E068012809D111E0E068B8B10120C8F8CD -:101550000000FFF7FBFD064605E020E1FFF7F6FD82 -:10156000801B0228C0D828688007F7D52868216921 -:1015700020F0F80040EAC10028600DE0C8F80090B3 -:10158000FFF7E4FD064604E0FFF7E0FD801B0228BC -:101590001FD828688007F7D42078000722D5824E0C -:1015A000844861696C3671B101210160FFF7CEFD9D -:1015B000074604E0FFF7CAFDC01B022809D83068BF -:1015C0008007F7D50EE0C0F80090FFF7BFFD074693 -:1015D00005E082E0FFF7BAFDC01B02287DD8306825 -:1015E0008007F7D42078400768D5DFF8BCB1002722 -:1015F0000BF1380BDBF80000C0000BD4DBF8001057 -:1016000041F08051CBF80010DBF80000012700F01A -:1016100080500090684E3068C00510D4306840F4A7 -:1016200080703060FFF792FD009005E0FFF78EFDBF -:101630000099401A022850D83068C005F6D55A4E95 -:10164000A068683601280FD00528306810D020F037 -:1016500001003060306820F004003060A068B8B14C -:10166000FFF774FD00900FE0306840F00100F4E7F0 -:1016700040F004003060F7E7FFF768FD0099411A79 -:1016800041F28830814266D830688007F4D50EE098 -:10169000FFF75CFD009007E0FFF758FD0099411A45 -:1016A00041F28830814256D830688007F4D42FB197 -:1016B000DBF8001021F08051CBF80010A069D0B306 -:1016C000DAF800205146C2F38102022A4AD00228E9 -:1016D000484607D0C8F8600000E03CE0FFF736FD60 -:1016E00004463BE04746C8F86000FFF72FFD06467A -:1016F00005E000BFFFF72AFD801B02282BD82868D1 -:101700008001F7D4D4E907010843A16A2B4A4908AC -:1017100002EB0141626A41EA8211084394F82C10FD -:1017200040EA01612048001F016001203866FFF790 -:101730000DFD044605E034E0FFF708FD001B02281C -:1017400009D828688001F7D52BE000BFFFF7FEFC21 -:10175000001B022802D90320BDE8F88F2868800109 -:10176000F4D41EE00128F7D00868E26900F4800193 -:10177000914214D1226A00F03F0191420FD147F605 -:10178000C071626A0140914209D1A26A00F44031FD -:10179000914204D1E16A00F07060884201D00120DA -:1017A000DAE70020D8E7000008380240003802409D -:1017B00000004742800E4742007000400000FFFFDB -:1017C00070B5040005D00025A56294F8510010B151 -:1017D00006E0012070BD84F85050204600F030F83B -:1017E000022084F851002068016821F04001016066 -:1017F000D4E901010843D4E90312114308436169A4 -:101800000843218B01F400710843E1690843216A10 -:101810000843A16A084321680860A069042101EA1D -:101820001040616A0843216848602068C16921F45A -:101830000061C1616565012084F85100002070BD20 -:10184000F0B587B0044614216846FEF703FD1C4935 -:101850002068884232D11B480024016841F480513D -:101860000160006800F48050059016481438016843 -:1018700041F002010160016801F002010591016877 -:1018800041F0010101600068022500F001000590AF -:101890001820CDE9000502AA0326052782E8D0001A -:1018A00069460948FFF762FB8020CDE9000502AADE -:1018B000694682E8D0000548FFF758FB07B0F0BD45 -:1018C0000030014044380240000402400000024061 -:1018D0002DE9F84F044690F8500000271D461646A3 -:1018E000894601280DD04FF0010B84F850B0FFF766 -:1018F0002DFC804694F85100BA46012804D00227F6 -:101900008EE00220BDE8F88FB9F1000F7DD0002EE7 -:101910007BD0032084F85100C4F854A0C4F8309060 -:10192000A686E686C4F838A0A4F83CA0A4F83EA099 -:10193000C4F844A0C4F840A0A068B0F5004F04D19A -:101940002068016841F4804101602068016849060F -:1019500003D4016841F040010160E068B0F5006F18 -:10196000606803D030B3012E24D040E008B1012ECE -:101970001CD1206B21680088C86006E0206881685F -:10198000890709D5216B0988C160206B801C206301 -:10199000E08E401EE08609E0FFF7D8FBA0EB0800D0 -:1019A000A84202D3681C01D031E07DB3E08E00284C -:1019B000E4D11FE0206B21680078087306E02068FE -:1019C0008168890709D5216B09780173206B401C58 -:1019D0002063E08E401EE08609E0FFF7B7FBA0EB36 -:1019E0000800A84202D3681C01D010E075B1E08E57 -:1019F0000028E4D142462946204600F027FA08B1E3 -:101A000020206065A06820B107E008E0FFE7032719 -:101A100006E02068C16880680090606D00B1012711 -:101A200084F851B084F850A038466BE710B5401EDA -:101A3000B0F1807F01D3012010BD4FF0E024606140 -:101A40000F21601700F00EFC0020A061072020612C -:101A5000002010BD7047000070B502680446106891 -:101A6000D168536910F00F0F52D003F0010501F453 -:101A700090762E435FD0C20705D0CA0503D5E26B2E -:101A800042F00102E263420705D5DA0703D0E26BB8 -:101A900042F00202E263820705D5DA0703D0E26B67 -:101AA00042F00402E263020707D501F020022A4354 -:101AB00003D0E26B42F00802E263E26B002A33D00B -:101AC000800604D5880602D5204600F09FFA2068DB -:101AD0004069E16BC0F38010090700D428B32046A9 -:101AE00000F086FA2068416949061AD5416921F05B -:101AF00040014161606BA0B11B490165606BFFF75C -:101B0000D7F8002810D0606B016DBDE87040084721 -:101B1000830610D58B060ED52046BDE8704000F038 -:101B200075BA2046FFF796FF70BD2046FFF792FF7B -:101B30000020E06370BD030606D50B0604D52046E1 -:101B4000BDE8704000F042BB4006F3D54806F1D531 -:101B5000D168204621F04001D160202184F839105D -:101B600000F091F870BD0000E11F000870B504009E -:101B700004D094F83900002510B106E0012070BDB2 -:101B800084F83850204600F023F8242084F83900E7 -:101B90002068C16821F40051C160204600F082FA3B -:101BA0002068016921F4904101612068416921F0B8 -:101BB0002A0141612068C16841F40051C160E563B8 -:101BC000202084F8390084F83A00002070BD00001D -:101BD00070B586B0064614216846FEF73BFB2449E3 -:101BE0003068884241D123480025016841F0100146 -:101BF0000160006800F0100005901E48143801686C -:101C000041F0020101600068694600F002000590A1 -:101C1000C020009002200190012002900320039038 -:101C2000072004901448FFF7A1F9154C13482060D1 -:101C30004FF0006060604020C4E902050001C4E983 -:101C40000405A561E561256220466562FFF712F98A -:101C500008B1FEF754FE3463002211462520A66326 -:101C6000FFF7E2FA2520FFF7D1FA06B070BD0000B9 -:101C7000001001404438024000040240B8640240B1 -:101C8000F000002070477047FEE700007FB5002499 -:101C900015480094019402941249039401604FF492 -:101CA0008031C0E901140461047680F820400F49B6 -:101CB000C0E90A140125C561C46080F8304045615F -:101CC000FEF7D3FE08B1FEF71AFE0620CDE90005A7 -:101CD000694602940448FEF713FE002801D0FEF77F -:101CE0000EFE7FBD00200140100000200100000F0B -:101CF000094808B5016841F48001016000680022CC -:101D000000F48000009011464620FFF78DFABDE8F0 -:101D100008404620FFF77ABA303802402DE9F041FA -:101D200086B014216846FEF795FA2348002401681E -:101D300041F002010160016801F0020105910168B2 -:101D400041F001010160016801F0010105910168A4 -:101D500041F080010160016801F080010591016896 -:101D600041F0400101600068144F00F040004FF462 -:101D7000C0650590002229463846FFF7E1F9DFF8F3 -:101D80004080BE15002231464046FFF7D9F9009544 -:101D90000125CDE90154694638460394FFF7E6F87A -:101DA0000096CDE90154694640460394FFF7DEF8FA -:101DB00006B0BDE8F0810000303802400004024067 -:101DC00000180240104810B50E4901604FF48271AE -:101DD000416000218160C1604FF400720161C0E97F -:101DE00005122822C0E90721416281620A21C162ED -:101DF000FFF7E6FC002803D0BDE81040FEF77FBDEA -:101E000010BD000000300140580000200C4810B503 -:101E10000A4901604FF4E1314160002181600C22E8 -:101E2000C160C0E904128161C161FFF79FFE002813 -:101E300003D0BDE81040FEF762BD10BD00100140A8 -:101E4000B0000020FEE770477047000038B5044638 -:101E50001248134B0068B0FBF3F04FF47A73584309 -:101E600000906068B0F5827F0DD10B460092002291 -:101E70008021204600F016F870B1606D40F020001F -:101E80006065032038BD009830B1401E0090206886 -:101E90008068C0430006F6D5002038BD0C00002045 -:101EA00000366E012DE9F0411D4617460E460446E8 -:101EB000DDF8188008E0681C06D0FFF747F9A0EBB2 -:101EC0000800A8420BD255B12068806836EA0000AD -:101ED00030D00020B842EED10020BDE8F08120686B -:101EE000416821F0E00141606068B0F5827F0BD16C -:101EF000A068B0F5004F02D0B0F5806F04D1206823 -:101F0000016821F040010160A06AB0F5005F09D1CD -:101F10002068016821F4005101602068016841F4E3 -:101F200000510160012084F85100002084F8500025 -:101F30000320D2E70120CDE77047FFF70DB900007D -:101F400030B593B030216846FEF784F914210CA80F -:101F5000FEF780F919480025016841F080510160C1 -:101F6000006800F0805011901548016841F440412C -:101F700001600068022400F44040119001200090AC -:101F8000000401908001CDE9064006200890A820B9 -:101F9000CDE9090404200B906846FFF763FA0CA909 -:101FA0000F2081E831004FF4A0500F90E002109014 -:101FB00005210CA8FFF76AF913B030BD4038024084 -:101FC000007000400548016841F470010160034958 -:101FD0004FF00060803908607047000088ED00E035 -:101FE00010B5806B0021C185C184FFF733FD10BDA2 -:101FF0000168CA6822F49072CA6001684A6922F0D6 -:1020000001024A61202180F83A10704710B590F81B -:102010003A10222901D0022010BD8168B1F5805FFD -:1020200011D00169002901681FD0496801F07F03C0 -:10203000816A4A1C82620B70C18D491E0904090C19 -:10204000C18518D02BE00269816A002A02685268B3 -:1020500005D0D2B20A80816A491C8162ECE7C2F3E2 -:1020600008020A80816A891CF7E74A68816A4B1C6A -:1020700083620A70E0E70168CA6822F02002CA6041 -:102080000168CA6822F48072CA6001684A6922F055 -:1020900001024A61202180F83A10FFF7F3FD002089 -:1020A00010BD00002DE9F041044600680169E268B6 -:1020B00021F44051114301612169A068E26908439C -:1020C0006169114308432168CA6849F20C639A4365 -:1020D0000243CA6020684169A26921F4407111433A -:1020E0004161E069192764253226B0F5004F354A71 -:1020F000354920684FF0000806D0884201D0904250 -:1021000036D1FFF76DF935E0884201D0904202D117 -:10211000FFF766F901E0FFF753F961684A18A0FB81 -:10212000070148EB0803FEF75DF80146B0FBF5F048 -:102130000201B1FBF5F06FF01803584301EB80008A -:1021400006EBC000B0FBF5F000F0F80002EB400237 -:10215000B1FBF5F0584301EB800006EBC000B0FB8B -:10216000F5F000F00700216810448860BDE8F081B8 -:10217000FFF726F961688B0F8A00A0FB0701FEF7C5 -:1021800031F80146B0FBF5F06FF01802504301EB57 -:10219000800006EB0010B0FBF5F000F0F002B1FBA0 -:1021A000F5F002EB0012B1FBF5F06FF018035843A5 -:1021B00001EB800006EB0010B0FBF5F000F00F0023 -:1021C000D1E70000001401400010014090F83910E0 -:1021D000212901D0022070478168B1F5805F016A32 -:1021E0000BD04A1C0262026809785160C18C491EFA -:1021F0000904090CC1840ED017E009880268C1F3F4 -:102200000801516001690029016A02D0491C01627C -:10221000ECE7891CFBE70168CA6822F08002CA600B -:102220000068C16841F04001C160002070470000B3 -:102230000148FFF711BC0000B0000020FEE70000DD -:1022400037B514460846064B6A46214600F0ECF8BE -:1022500004466946002000F07EFC20463EBD00009A -:10226000572B00080907090E002804DB00F1E020C5 -:1022700080F80014704700F00F0000F1E02080F8B3 -:10228000141D704702E008C8121F08C1002AFAD1C5 -:1022900070477047002001E001C1121F002AFBD1E6 -:1022A000704700002DE9FF5F82B00021DDE90430B6 -:1022B000020DDDF840B0034318D044F61050A2F2EE -:1022C000FF3242431514119801281FD0A5EB0B00D3 -:1022D000401C5FEA000A4FF000064E4FDFF83891CD -:1022E000B046504615D5CAF1000413E011980124F8 -:1022F0004AA3012801D16FEA0B010298119AC0E9A3 -:102300000031C0E9024206B0BDE8F09FCBF1000009 -:10231000DFE704460021404A491842EB0450CDE96A -:10232000001012E0E00707D032463B4640464946DF -:10233000FEF777F88046894632463B4610461946F6 -:10234000FEF76FF806460F466410002CEAD1DDE96F -:102350000401DDE90023BAF1000F06DAFEF761F8A7 -:1023600042464B46FEF75DF805E0FEF7CCF84246E4 -:102370004B46FEF7C8F804460E460022284BFEF7EF -:1023800049F903D84FF0FF30014607E00022254B02 -:1023900020463146FDF79EFFFEF724F9102409E0A0 -:1023A000002C0ADB0A220023FDF71CFF039B3032BE -:1023B0001A55641E50EA0102F2D1641C039AC4F15A -:1023C00011031444119A012A03D0012208430DD1AC -:1023D0000AE0084304D000204FF0110B119072E77F -:1023E000A3EB0B056D1E0DE05B4504DD4FF0000215 -:1023F00005F1010504E003DA4FF00002A5F1010543 -:10240000002AECD002981199C0E90231C0E90045D8 -:1024100079E70000000014400000F03F30000000A9 -:102420000000F0430000E03F2DE9FF4F95B09B46D0 -:102430008946064600250FE2252877D10024274645 -:10244000F84A0121059400E0044316F8013F203BBF -:1024500001FA03F01042F7D130782A2811D06FF03A -:102460002F033078A0F13002092A16D8059A44F0DB -:10247000020402EB820203EB42021044761C059038 -:10248000EFE759F8042B0592002A03DA504244F48E -:102490000054059044F00204761C30782E2816D1A2 -:1024A00016F8010F44F004042A280DD06FF02F0213 -:1024B0003078A0F13003092B09D807EB870302EB32 -:1024C0004303C718761CF3E759F8047B761C307871 -:1024D0006C280FD006DC4C2817D068280DD06A284D -:1024E00014D104E0742810D07A280FD10DE044F400 -:1024F00000140AE044F4801401E044F440147278BB -:10250000824202D104F58014761C761C307866284D -:102510000BD013DC582877D009DC002875D045286B -:10252000F6D04628F4D047281AD19DE118E0632858 -:1025300035D0642879D0652812D195E1702873D000 -:1025400008DC6728F1D069286FD06E280DD06F287D -:1025500006D1B5E073282CD0752875D0782874D0B2 -:102560005A46179990476D1C75E1C4F30250022832 -:1025700009D003280DD0D9F8001004280DD00D6023 -:1025800009F1040967E1D9F80010EA17C1E900521E -:10259000F6E7D9F800100D80F2E70D70F0E719F8B2 -:1025A000041B8DF8001000208DF80100EA46012080 -:1025B00003E059F804AB4FF0FF3061074FF0000122 -:1025C00002D40DE008F101018846B9420FDA8045D6 -:1025D000F8DB1AF808100029F4D108E008F101012D -:1025E00088468142FADB1AF808100029F6D10598CE -:1025F0005B46A0EB080721463846179A00F094FA8C -:10260000284400EB080507E04DE029E10DE01AF849 -:10261000010B5A4617999047B8F10108F7D25B466B -:1026200021463846179A13E142E00A220092C4F389 -:1026300002524FF0000A022A08D059F804CB032AAC -:102640004FEAEC710AD00DE029E02AE009F1070118 -:1026500021F00702F2E802C1914609E00FFA8CFC72 -:102660004FEAEC71042A03D14FFA8CFC4FEAEC716B -:10267000002907DA0A460021DCF1000C61EB0201B7 -:102680002D2202E0220504D52B228DF80420012200 -:1026900003E0E20701D02022F7E7904659E00A2143 -:1026A00002E010220DE010214FF0000A00910BE033 -:1026B00010224FF0000A44F004040827009203E0BF -:1026C00008224FF0000A0092C4F30252022A05D0F9 -:1026D00059F804CB0021032A08D009E009F10701C9 -:1026E00021F00702F2E802C1914605E01FFA8CFCD6 -:1026F000042A01D10CF0FF0C4FF00008220728D566 -:10270000702806D0009B83F0100353EA0A0305D01B -:102710000EE040228DF80420012208E05CEA01026C -:1027200006D030228DF804208DF805000222904654 -:10273000009B83F0080353EA0A030AD15CEA010212 -:1027400001D1620705D530228DF804204FF0010831 -:102750007F1E582804D034A003900EA802900DE0EC -:1027600036A0F9E753466046009AFDF73BFD8446E4 -:102770000398825C0298401E029002705CEA01009D -:10278000F0D1029806A9081A00F1200A600702D5C4 -:1027900024F4803400E00127574502DDA7EB0A004E -:1027A00000E0002000EB0A01009005984144401A27 -:1027B0000590E00306D45B462146179A059800F081 -:1027C000B3F90544002706E001A85A46C05D1799F1 -:1027D00090476D1C7F1C4745F6DBE0030CD55B463C -:1027E0002146179A059800F09FF9054404E030202F -:1027F0005A46179990476D1C0099481E0090002971 -:10280000F5DC08E0029802995A460078491C0291CA -:10281000179990476D1CBAF10001AAF1010AF1DC89 -:1028200065E1000009280100303132333435363794 -:10283000383961626364656600000000303132330C -:1028400034353637383941424344454600000000AC -:1028500000F058F90544761C307800287FF4ECAD80 -:1028600019B02846BDE8F08F620700D4062709F1A9 -:10287000070222F0070CFCE80223E14603F00048BF -:102880005FEA080C02D00FF2702C0DE05FEA045CE6 -:1028900002D50FF2682C07E05FEAC47C02D00FF289 -:1028A000602C01E0AFF2700C4FF0FF3823F00043D2 -:1028B000CDF850C065280CD006DC452809D0462844 -:1028C0001DD047283DD13DE0662818D067287ED12D -:1028D00038E00021112F01DB112000E0781CCDE948 -:1028E000000106A90EA8FFF7DDFCDDE90F010E9A35 -:1028F00003910021009207F1010A04914DE04FF08D -:1029000000400097CDE9011006A90EA8FFF7CAFC08 -:10291000DDE90F0203920E9B11990022DDF80CA055 -:102920000093049211B9791C00EB010AB7EB0A007D -:1029300004D4C0F1FF3007F1010A0490AAEB0700AC -:10294000019044E0012F00DA01270021112F01DD61 -:10295000112000E03846CDE9000106A90EA8FFF7D6 -:10296000A1FCDDE90F010E9A039100210491009270 -:10297000BA4621070CD40399514500DA8A46BAF1C8 -:10298000010F05DD009AAAF10101515C302908D040 -:10299000B84202DA10F1040F06DA0121CDE9011084 -:1029A00015E0AAF10101E9E7002805DC04990144DA -:1029B0000491AAEB000102E0411C514500DD8A466A -:1029C0000499401A401C01904FF0004002902007EB -:1029D00004D40198504501DBCDF8048000208DF827 -:1029E0004F0002980DF14F07B0F1004F25D02B207A -:1029F0000E9002984FF0020800280CDA4042029034 -:102A00002D200E9007E00A210298FDF72EFC3031B0 -:102A1000029007F8011DB8F10001A8F10108F2DCED -:102A200002980028EFD1791E0E980870307800F0D7 -:102A3000200040F0450007F8020D12A8C01B00F16D -:102A400007081498007800B1012000EB0A010198F2 -:102A500001EBE07105984144401A401E0590E003E7 -:102A600006D45B462146179A059800F05DF80544A8 -:102A70001498007818B15A46179990476D1CE003D6 -:102A800024D55B462146179A059800F04DF8054479 -:102A90001CE00498002807DBDDE90301884203DD20 -:102AA0000098405C179901E0179930205A469047EA -:102AB000049805F10105401C04900198401E019006 -:102AC00004D12E205A46179990476D1CBAF1000187 -:102AD000AAF1010ADDDC05E017F8010B5A46179947 -:102AE00090476D1CB8F10001A8F10108F4DC5B46C9 -:102AF0002146179A0598ABE62D0000002B00000038 -:102B0000200000002DE9F041044600251E4617462E -:102B1000880404D405E039462020B0476D1C641EAB -:102B2000F9D52846BDE8F0812DE9F041044600259D -:102B30001E469046C80301D5302700E020278804B0 -:102B400004D505E041463846B0476D1C641EF9D5F2 -:102B50002846BDE8F0810A68531C0B60107070476E -:102B6000FEF702FBFFF7ECF9FFF7D8F8FFF7C0F824 -:102B7000FFF74CF9FFF78AF8FFF724F900F076FA2F -:102B800000F0E4F8002000F09DF800F01BF800F0E1 -:102B9000D3F900224FF480710948FEF7D1FA4FF4BF -:102BA000FA70FEF7D1F9002000F08CF800F0C4F9BB -:102BB0000121084600F05CF96420FEF7C5F9F7E74B -:102BC000001802402DE9F047002000F07BF8DFF804 -:102BD000549000245FF0000609EBC60000EBD4001F -:102BE000002507784FFA86F8380604EB050041B255 -:102BF00001D5012200E00022404600F083F878066B -:102C00006D1C070EEDB2082DEED3761CF6B2802EA9 -:102C1000E2D30834E4B2402CDCD3BDE8F04700F046 -:102C20008BB900001435000810B50748FDF7CAFF3E -:102C300064210548FDF774FF0348FDF713FF00EE1C -:102C4000100AB8EE400A10BD1000002010B5FFF7C2 -:102C5000EBFFBDEEC00A10EE100AD0F54D6100D5B5 -:102C60004942802901DC002010BDA0F24F314942C9 -:102C700000D54942802901DC012010BDA0F2C261CB -:102C8000494200D54942802901DC022010BDA0F64E -:102C90009911494200D54942802901DC032010BD29 -:102CA000414200D54942802901DC042010BDA0F634 -:102CB000FA70404200D54042802801DC052010BD5A -:102CC000062010BDF0B500210D4BFF260C4600225A -:102CD00001280FD003EBC20580B16F5CC7F1FF077D -:102CE0006F54521CD2B2802AF2D9491CC9B20829A9 -:102CF000EDD3F0BD03EBC2056E54F2E76C54F0E780 -:102D00005001002070B5802817D2002915DB3F291B -:102D100013DCCB1701EB5375C5F3C70325F007058B -:102D20000124094E491B8C4006EBC000012A05D046 -:102D3000C15C022A05D0A143C15470BDC15C2143CE -:102D4000FAE76140F8E700005001002070B5474DF8 -:102D50004FF48064002221462846FEF7F1F94FF433 -:102D6000FA70FEF7F1F8012221462846FEF7E8F94D -:102D70000021AE2000F064F90021084600F060F95F -:102D80000021102000F05CF90021402000F058F9EB -:102D90000021812000F054F90021CF2000F050F9EB -:102DA0000021A12000F04CF90021C82000F048F9D2 -:102DB0000021A62000F044F90021A82000F040F9ED -:102DC00000213F2000F03CF90021D32000F038F929 -:102DD0000021084600F034F90021D52000F030F938 -:102DE0000021802000F02CF90021D92000F028F9E2 -:102DF0000021F12000F024F90021DA2000F020F970 -:102E00000021122000F01CF90021DB2000F018F94D -:102E10000021402000F014F90021202000F010F9DA -:102E20000021022000F00CF900218D2000F008F9AB -:102E30000021142000F004F90021A42000F000F982 -:102E40000021A62000F0FCF80021AF2000F0F8F8E7 -:102E50000021AF2000F0F4F80020FFF733FFBDE8B9 -:102E600070400021084600F081B8000000040240D4 -:102E700070B505460C460020FFF724FFFFF7E6FE7D -:102E800007280CD2DFE800F004060F111315170015 -:102E90000AA200E00BA22146284600F029F8BDE86E -:102EA000704000F049B809A2F5E70AA2F3E70AA2C8 -:102EB000F1E70BA2EFE70CA2EDE70000444F574EFD -:102EC000000000004C4546540000000052494748AD -:102ED00054000000555000005052455353454400E3 -:102EE00053544154494300004552524F5200000090 -:102EF0000FB430B5A1B00C46054680216846FDF7F9 -:102F0000A9F9042D13D8142C11D8002C0FD027AAFE -:102F100068462699FFF794F9C4F11500C0B2002164 -:102F20000DF800106A462146284600F071F821B0DD -:102F300030BC5DF814FB000070B50B4E0024214638 -:102F4000002000F013F8002506EBC5000121005D0C -:102F500000F076F86D1CEDB2802DF5D3641CE4B260 -:102F6000082CECD370BD00005001002010B5801C6F -:102F7000C4B2B031C8B2002100F062F8102040EABB -:102F80001410002100F05CF804F0F000BDE81040DF -:102F9000002100F055B800002DE9F04F01EB410190 -:102FA00000EB400049068006040E203A4FEA116902 -:102FB000D0B2164900EB4000A046002501EB800B83 -:102FC00000261BF805704FFA89FA380601D5012250 -:102FD00000E0002261B25046FFF794FE7806641CC0 -:102FE000070EE4B2A4EB08000C2809D0761CF6B258 -:102FF000082EEAD36D1CEDB20C2DE1D3BDE8F08FA5 -:1030000009F10100444600F0FF09F3E7A030000891 -:10301000F0B517460C46064600250CE02146304622 -:10302000FFF7BAFF641CE4B2142C02D90024761C0A -:10303000F6B26D1CEDB27A5D002AEFD1F0BD000052 -:1030400013B508484FF4007309B1012200E00022D3 -:103050001946FEF775F80A23012269460248FEF771 -:1030600037FC1CBD000402405800002003480068E3 -:10307000416941F08001416170470000B0000020CB -:1030800000061016000610160000000000000000E8 -:1030900001020304060708090000000001020304FE -:1030A0000000000000000000000000000000000020 -:1030B0003F400000000000000000300040003000F1 -:1030C0004000000009000BC03D000BC03D0009009E -:1030D00018C024407FE0224031800000180024C046 -:1030E0001B000D803240018003801C4027401C8063 -:1030F00007400040100060000000000000000000D9 -:103100000000000000001F80204040200000402000 -:1031100020401F8000000000090006001F800600FC -:1031200009000000040004003F80040004000000C7 -:103130000010006000000000000000000400040017 -:103140000400040004000000000000400000000033 -:1031500000000000002001C0060038004000000010 -:103160001F802040204020401F80000000001040B1 -:103170003FC000400000000018C021402240244011 -:103180001840000010802040244024401B80000094 -:1031900002000D0011003FC0014000003C802440AF -:1031A00024402440238000001F80244024403440D9 -:1031B000038000003000200027C0380020000000FD -:1031C0001B802440244024401B8000001C0022C09F -:1031D000224022401F800000000000000840000044 -:1031E000000000000000000004600000000000007B -:1031F000000004000A00110020804040090009007E -:103200000900090009000000000040402080110072 -:103210000A000400180020002340240018000000C9 -:103220001F802040274029401F400000004007C069 -:1032300039000F0001C0004020403FC0244024401E -:103240001B8000001F802040204020403080000074 -:1032500020403FC0204020401F80000020403FC051 -:1032600024402E4030C0000020403FC024402E00AB -:10327000300000000F001080204022403380020008 -:1032800020403FC0040004003FC0204020402040B8 -:103290003FC02040204000000060202020203FC090 -:1032A0002000200020403FC024400B0030C02040C0 -:1032B00020403FC020400040004000C03FC03C00D4 -:1032C00003C03C003FC0000020403FC00C40230032 -:1032D0003FC020001F802040204020401F80000071 -:1032E00020403FC024402400180000001F802140DF -:1032F000214020E01FA0000020403FC024402600C5 -:1033000019C0004018C024402440224031800000F1 -:10331000300020403FC020403000000020003F80AF -:10332000004000403F80200020003E0001C0070018 -:1033300038002000380007C03C0007C038000000FB -:10334000204039C0060039C020400000200038402D -:1033500007C0384020000000304021C026403840DF -:1033600020C00000000000007FE04020402000005E -:10337000000070000C0003800040000000004020AE -:1033800040207FE0000000000000200040002000FE -:1033900000000000001000100010001000100010CD -:1033A000000000004000000000000000000002805B -:1033B0000540054003C0004020003FC004400440D9 -:1033C0000380000000000380044004400640000029 -:1033D00000000380044024403FC000400000038000 -:1033E0000540054003400000000004401FC0244089 -:1033F00024402000000002E0055005500650042043 -:1034000020403FC00440040003C0004000000440CE -:1034100027C000400000000000100010041027E04A -:103420000000000020403FC00140070004C00440ED -:10343000204020403FC000400040000007C0040082 -:1034400007C0040003C00000044007C0044004009B -:1034500003C00040000003800440044003800000DB -:10346000041007F0045004400380000000000380B3 -:103470000440045007F00010044007C0024004005C -:1034800004000000000006400540054004C00000A4 -:10349000000004001F80044000400000040007807A -:1034A0000040044007C000400400070004C0018041 -:1034B00006000400060001C0070001C0060000006D -:1034C000044006C0010006C00440000004100710BC -:1034D00004E00180060004000000044005C006402E -:1034E000044000000000000004007BE040200000D9 -:1034F000000000000000FFF000000000000040207D -:103500007BE004000000000040008000400020003C -:10351000200040000000000000000000000000004B -:10352000000000000000000000000000000000009B -:10353000000000000000000000000000000000008B -:10354000000000000000000000000000000000007B -:103550000000000000000000000000060000000065 -:103560000000001E00000000000000DE000000005F -:10357000000000D800000000000000D8000000009B -:10358000000000D800000000000000DE0000000085 -:10359000000000FE00000000000000F60000000037 -:1035A00000000072000000000000000000000000A9 -:1035B0000000007C00000000000000FE0000000091 -:1035C000000000C600000000000000C6000000006F -:1035D000000000C600000000000000FE0000000027 -:1035E0000000007C0000000000000000000000005F -:1035F0000000001E00000000000000DE00000000CF -:10360000000000D600000000000000D6000000000E -:10361000000000D600000000000000D600000000FE -:10362000000000DE40000000000000FE600000001E -:103630000010006C700000000030000078000000F6 -:1036400000F0007C7C00000007F000FE7E0000001F -:103650003FF000C67F000001FFF000C67F80000F32 -:10366000FFF000C67FC0007FFFF000FE7FE003FF99 -:10367000FFF0007C7FF03FFFFFF000027FF83FFF8C -:10368000FFF000067FFC3FFFFFF0001E7FFE3FFFC4 -:10369000FFF000BC7FFF3FFFFFF000E07FFFBFFFB8 -:1036A000FF8000F87FFFFFFFFC00003E7FFFFFFF71 -:1036B000E000000E7FFFFFFF000000B87FFFFFF873 -:1036C000000000E07FFFFFF0000000FE7FFFFFF042 -:1036D0000000001E7FFFFFF0000000027FFFFFF0F0 -:1036E000000000007FEFFFF0020000067FE7FFF020 -:1036F0000200000E7FE3FFF00200001C7FE1FFF8F4 -:10370000030000BA7FE0FFFC030000F67FE07FFECD -:10371000038000E67FE03FFF038000F67FE03FFF8D -:1037200083C0003E7FE03FFFC3C0000E7FE03FFF4D -:10373000E3E000027FE03FFFF3E000007FE03FFFB7 -:10374000FBF000027FE03FFFFFF000667FE03FFFFD -:10375000FFF800F67FE03FFFFFF800D67FE03FFF75 -:10376000FFFC00D67FF07FFFFFFC00D67FF8FFF75D -:10377000FFFE00D67FFFFFF3FFFE00DE3FFFFFE10D -:10378000FFFF008C3FFFFFE0FFCF00401FFFFFC0A7 -:103790007FC780C01FFFFFC03FC380C00FFFFF80F7 -:1037A0001FC1C0FE07FFFF000FC0C0FE03FFFE00E9 -:1037B00007C060C001FFFC0003C020C0007FF00014 -:1037C00001C00086000F800000C00016000000004D -:1037D000004000D600000000000000D600000000FD -:1037E000000000D600000000000000D6000000002D -:1037F000000000D600000000000000D00000000023 -:10380000000000C0000000000000000600000000F2 -:103810000000001E00000000000000DE00000000AC -:10382000000000D800000000000000D800000000E8 -:10383000000000D800000000000000DE00000000D2 -:10384000000000DE00000000000000F600000000A4 -:1038500000000072000000000000000000000000F6 -:103860000000006200000000000000F60000000000 -:10387000000000F600000000000000D6000000007C -:10388000000000D600000000000000D6000000008C -:10389000000000DE000000000000008C00000000BE -:1038A0000000000000000000000000000000000018 -:1038B0000000000000000000000000000000000008 -:1038C00000000000000000000000000000000000F8 -:1038D00000000000000000000000000000000000E8 -:1038E00000000000000000000000000000000000D8 -:1038F00000000000000000000000000000000000C8 -:1039000000000000000000000000000000000000B7 -:103910000000000034390008000000201000000002 -:1039200084220008443900081000002040090000EB -:1039300094220008010000001000000000000000B8 -:043940000024F4006B +:100240004346BDE8F09F40EA01039B0703D009E065 +:1002500008C9121F08C0042AFAD203E011F8013BB2 +:1002600000F8013B521EF9D27047D2B201E000F80B +:10027000012B491EFBD270470022F6E710B513464A +:100280000A4604461946FFF7F0FF204610BD00F06D +:10029000004230F000400AD0C10D01F56071C0F39A +:1002A000160042EA0151C20840071143704700207E +:1002B0000146704730B50B4601460020202201243C +:1002C00009E021FA02F59D4205D303FA02F5491B24 +:1002D00004FA02F52844151EA2F10102F1DC30BD3A +:1002E000202A04DB203A00FA02F1002070479140F6 +:1002F000C2F1200320FA03F3194390407047202AEB +:1003000004DB203A21FA02F00021704721FA02F3BF +:10031000D040C2F1200291400843194670472DE9B0 +:10032000FE4F804681EA0300C00F0C46009021F08A +:10033000004123F00045B8EB0200A94105D2404638 +:10034000214690461C460B46024623F000401043CF +:1003500047D0270DC7F30A00C3F30A510290401A91 +:10036000019040286BDAC3F3130040F4801B00981F +:10037000924620B10023D2EB030A63EB0B0B0198EA +:100380005946C0F140025046FFF7AAFF06460D4607 +:1003900050465946019A00F08DF910EB0800614172 +:1003A000002487EA115284EAE7731A4340D0009A86 +:1003B00062B3019A012A4FEA075215DC001B61EB78 +:1003C00002014FF0004202EA0752CDE90042001C50 +:1003D00041F5801132462B4600F08DF903B0BDE89F +:1003E000F08F40462146F9E7001B61EB0201001C3B +:1003F00041F5801300185B412018A2F5001747EB68 +:10040000030140EAD570B6196D4111E06D084FEA5D +:10041000360645EAC0754FEA0752001B61EB020140 +:10042000001C41F5801149084FEA30000019514184 +:1004300032462B4603B0BDE8F04F00F04DB90098AE +:10044000012240000023D0EB020263EBE07300982E +:1004500021464FEAE074B8EB000061EB0401E9E7E4 +:1004600083F000435BE781F0004158E72DE9FE4F40 +:1004700081EA030404F0004421F0004100944FF0AD +:10048000000B23F0004350EA01045ED052EA03045B +:100490005BD0C3F30A54C1F30A552C44A4F2F334DD +:1004A0000194A0FB0254C1F3130141F48011C3F382 +:1004B000130343F4801301FB024400FB034E840A40 +:1004C000970A44EA815447EA8357A4FB07680295D8 +:1004D0008D0A05FB07854FEA932C04FB0C54270576 +:1004E000029D4FEA065847EA1637B5EB08056EEB52 +:1004F000070C870E920E47EA811742EA8312A7FB88 +:100500000201B6EB0B0164EB00042B0D43EA0C3344 +:100510005E1844EB1C50DA465146E7FB0201C5F376 +:1005200013044FEA0B3343EA14534FEA0432019C9D +:1005300043EA0603A4F10C040294009CCDE900B444 +:1005400000F0D9F803B0BDE8F08F00200146F9E7CC +:100550002DE9F04D81EA030404F0004B21F0004541 +:1005600014464FF0000A23F0004150EA050220D063 +:1005700054EA01021DD0C5F30A570246C5F313031E +:10058000C1F31300C1F30A5640F4801543F48013FD +:10059000A7EB0608101BD64608F2FD3873EB0500E2 +:1005A00002D308F1010801E092185B41B8F1000F95 +:1005B00003DA00200146BDE8F08D00204FF48011E1 +:1005C000064684460EE0171B73EB050705D3121B86 +:1005D00063EB050306434CEA010C49084FEA30007F +:1005E00092185B4150EA0107EDD152EA030012D0A4 +:1005F00082EA040083EA0501084305D0101BAB41E1 +:1006000006D20122002306E000224FF0004302E060 +:100610006FF0010253101AEB06004CEB085110EB7F +:100620000A0041EB0B01BDE8F04D00F055B8C1F3F5 +:100630000A52C1F3130140F2FF3341F480119A4290 +:1006400002DA00200146704740F233439A42A2F298 +:10065000334202DC5242FFF752BEFFF741BE0000B8 +:1006600030B5041E71F1000404DB4FF00044404239 +:1006700064EB0101141E73F1000405DB1C464FF00E +:100680000043524263EB0403994208BF904230BDDD +:10069000064C074D06E0E06840F0010394E80700CF +:1006A00098471034AC42F6D3FFF784FD444E00085F +:1006B000644E0008202A06DBCB17203A41FA02F0EC +:1006C00043EAE07306E041FA02F3D040C2F12002AF +:1006D000914008431946704710B5141E73F1000489 +:1006E00008DA401C41F1000192185B411A4301D124 +:1006F00020F0010010BD2DE9F04D92469B4611B14E +:10070000B1FA81F202E0B0FA80F220329046FFF7AF +:10071000E7FD04460F4640EA0A0041EA0B01534652 +:100720005A46084313D0114653EA010019D0C8F1C4 +:1007300040025046FFF7E3FD05460E465046594637 +:100740004246FFF7CDFD084305D0012004E02046D6 +:100750003946BDE8F08D0020054346EAE0762C439B +:1007600037430A986305E40AA0EB08000022FD0A5B +:1007700044EA47540A3002D500200146E9E7010562 +:1007800010196941DDE9084500196941BDE8F04DDE +:10079000A2E70000464910B54A6822F440324A6098 +:1007A0004A6843681A434A6001684A6822F48072C2 +:1007B0004A6001684A68036942EA03224A600168A4 +:1007C0004A6822F040724A6001684A6883681A43A6 +:1007D0004A6001688A6822F400628A6001688A6857 +:1007E000C3681A438A60816A6FF07062D1420168FF +:1007F0008A6822F070628A6001688A680CD0836A15 +:100800001A438A6001688A6822F040528A6001684F +:100810008A68C36A1A4301E022F040528A60016884 +:100820008A6822F002028A6001688A68037E42EACE +:1008300043028A6090F82010002901684A680FD0AE +:1008400042F400624A6001684A6822F460424A60E9 +:1008500001684A68174C436A04EB43331A4301E0CA +:1008600022F400624A600168CA6A22F47002CA6215 +:100870000168CA6A838B104C04EB03531A43CA62A3 +:1008800001688A6822F400728A6001688A6890F8B8 +:10089000303042EA43228A6001688A6822F480622A +:1008A0008A6001688A68406942EA8020886010BDD9 +:1008B0000023014000E0FFFF0000F0FFFEE7000022 +:1008C000014800F0E6BA000068000020014800F08E +:1008D000E0BA000068000020014800F027BD0000D9 +:1008E00068010020014800F021BD0000C80100207F +:1008F00001681823CAB2103AB2FBF3F2054B6FF34A +:100900000901032A9B5CC36500D9091D816508465E +:10091000704700003C4E000810B5014600208B696E +:100920008A6A4FF0C07453B1B3F5005F15D072B14D +:10093000012A0CD0022A0AD0032A09D104E01AB1F4 +:10094000012A06D0022A03D1C96AC90100D50120B3 +:1009500010BDC96AA142FAD010BD002AF7D0012A01 +:10096000F2D0022AF3D0032AF3D010BD30B50468C8 +:10097000256825F480252560046863608368402B22 +:10098000036803D099600068C26030BD9A60006857 +:10099000C16030BD7047704778B50024009490F86E +:1009A0003C20012A19D0012280F83C200A68072344 +:1009B0000568092A13D9EE680A3A02EB420293400D +:1009C0009E43EE600B788A680A3B03EB43039A4030 +:1009D0000368DD682A43DA6010E0022078BD2E69E2 +:1009E00002EB420293409E432E610B788A6803EB30 +:1009F00043039A4003681D692A431A614A681F230A +:100A0000072A13D205686E6B521E02EB82029340D6 +:100A10009E436E630A8893B20A79521E02EB8202E9 +:100A200093400268556B2B43536327E005680D2AFA +:100A300012D22E6BD21F02EB820293409E432E6392 +:100A40000B790A88DB1F92B203EB83039A40036899 +:100A50001D6B2A431A6311E0EE6A0D3A02EB820223 +:100A600093409E43EE620B790A880D3B92B203EBF2 +:100A700083039A400368DD6A2A43DA621B4B0568E8 +:100A8000194A9D420AD10D68122D07D1556825F4E7 +:100A900000055560556845F48005556005689D4220 +:100AA0001DD1134D0B68AB4201D0112B17D15368E8 +:100AB00023F480035360536843F4000353600968D0 +:100AC000A9420CD10B490C4A0968B1FBF2F101EBC8 +:100AD0008101490000E0491E00910029FBD180F806 +:100AE0003C40002078BD0000002301400020014070 +:100AF000120000100400002040420F0070B50400F6 +:100B00004FF0000503D0206C002610B107E0012053 +:100B100070BD204600F01CF8666484F83C60206CD0 +:100B2000C00610D4206C20F4885040F002002064ED +:100B30002046FFF72FFE6664206C20F0020040F094 +:100B40000100206400E0012584F83C60284670BD67 +:100B500010B586B0044614216846FFF78DFB114995 +:100B6000206888421CD110480021026842F480723B +:100B70000260006800F4807005900B481438026829 +:100B800042F001020260006800F001000590402080 +:100B900000900320CDE901016946044800F036FDCC +:100BA00006B010BD00200140443802400000024061 +:100BB00090F82020012A07D0022A05D0416A41F48A +:100BC0008021416201207047006842690A43426106 +:100BD00000207047F0B590F820500468A468012DFB +:100BE00005D0022D03D0416A41F4802153E014F076 +:100BF000406F01D1E5004BD5C4F30164022C03D949 +:100C0000416A41F4000146E00125A5401D608D6860 +:100C10004FF4C0739DB1CE6835434E6845EAC605B2 +:100C2000066803EB0417F5514FF4C275076805EB2E +:100C300004150E697E51097D012905D009E00E8851 +:100C4000CD6845EA4655EBE701684E5946F4807693 +:100C50004E511179D2F805504FF4C67641EA052578 +:100C6000016806EB04168D511178D2F801204FF47B +:100C7000C47541EA0221026805EB04155151006870 +:100C800003EB0411425842F0010242500020F0BD33 +:100C9000416A41F4001141620120F0BD10B590F8A5 +:100CA0002020012A07D0022A05D0416A41F4802180 +:100CB0004162012010BD3B48D0F8002242F0010201 +:100CC000C0F80022D0F8002222F47C52C0F80022A2 +:100CD000D0F800224B6A42EA0322C0F800220A7DC3 +:100CE00002F01F0301229A40D0F81C329343C0F84F +:100CF0001C32CB69B3B9D0F80C329343C0F80C3234 +:100D00008C894B6864F31F434C6900EBC404C4F83E +:100D100040320C890B6864F31F434C6900EBC40438 +:100D2000C4F84432CB69012B16D1D0F80C321343EE +:100D3000C0F80C320C884B6864F31F434C6900EB1D +:100D4000C404C4F840320C89CB6864F31F434C6977 +:100D500000EBC404C4F844328B69002BD0F8043291 +:100D60000ED01343C0F804320B69002BD0F81432B4 +:100D700008D01343C0F81432096A012904D008E0EE +:100D80009343EFE79343F5E7D0F81C121143C0F803 +:100D90001C12D0F8001221F00101C0F8001200204E +:100DA00010BD000000640040704730B590F820404E +:100DB000012C05D0022C03D0416A41F480215DE072 +:100DC0000468002955D02469A40754D04FF4D8747E +:100DD000056804EB01142D5915F0040595600568AC +:100DE0002D594ED0ED08556005682C5904F00204C9 +:100DF000D4604FF4DA74056804EB01142D5905F042 +:100E00000F05156105682D59C5F30725956105681E +:100E10002C59240C54614FF4DC72046802EB01126B +:100E2000A4581C700468A458240A5C700468A45870 +:100E3000240C9C700468A258120EDA704FF4DE7213 +:100E4000046802EB0112A4581C710468A458240A17 +:100E50005C710468A458240C9C710468A258120E9A +:100E6000DA71006881B1016941F02001016100205F +:100E700030BDE468A8E7416A41F4001141620120F5 +:100E800030BD6D0D1560AFE7C16841F02001C16054 +:100E9000EDE72DE9F05F0546006800244669D0F8CB +:100EA00004908768D0F80CB0D0F810A0D0F8188063 +:100EB000F10748D0F90714D001218160B80703D5A4 +:100EC000284600F01AFA0CE0780702D54FF40064C7 +:100ED00007E0380702D54FF4805402E0284600F0BE +:100EE0000BFAF80516D529684FF480708860B805AC +:100EF00003D5284600F003FA0CE0780502D544F447 +:100F0000005407E0380502D544F4804402E0284646 +:100F100000F0F4F9F80316D529684FF480308860A2 +:100F2000B80303D5284600F0ECF90CE0780302D5AD +:100F300044F4004407E0380302D544F4803402E06E +:100F4000284600F0DDF9300707D55FEACB6004D50D +:100F50002968102044F40074C86070074FF0080737 +:100F600007D55FEA0B7004D52868C760284600F0F3 +:100F70005FF9B00706D52868C068800702D0284608 +:100F800000F058F9700607D55FEACA6004D52968F1 +:100F9000102044F480640861B00607D55FEA0A7047 +:100FA00004D528680761284600F076F9F00606D5D2 +:100FB00028680069800702D0284600F06EF9B00367 +:100FC00008D55FEAC96005D5296810204860284621 +:100FD00000F064F9F00307D55FEA097004D52868CA +:100FE0004760284600F08EF9300446D55FEA497024 +:100FF00040D5F00504D55FEAC87001D044F0010483 +:10100000B00504D55FEA887001D544F0020470058C +:1010100004D55FEA487001D544F00404300529D5B1 +:1010200018F0700F26D008F07000402815D006DCAC +:10103000102809D020280AD0302816D10AE05028DC +:101040000ED0602811D10EE044F008040DE044F009 +:1010500010040AE044F0200407E044F0400404E0F7 +:1010600044F0800401E044F480742868816921F030 +:1010700070018161296804204860002C05D0686AED +:10108000204368622846FFF78FFEBDE8F09F70B5E9 +:10109000040003D094F8200010B104E0012070BDDA +:1010A000204600F081F82068016821F0020101600B +:1010B00000F0A0FB0546052604E000F09BFB401B6A +:1010C0000A2811D8206840688007F6D42068016893 +:1010D00041F00101016000F08DFB05460BE000F0DE +:1010E00089FB401B0A2806D9606A40F40030606220 +:1010F00084F82060D2E720684068C007EFD0207EE7 +:101100000128206801683DD021F080010160607EE7 +:1011100001282068016838D021F040010160A07EDC +:1011200001282068016833D021F020010160E07EB1 +:101130000128206801682ED041F010010160207F55 +:1011400001282068016829D021F008010160607F32 +:1011500001282068016824D021F004010160D4E94D +:1011600002010843D4E90412114308436168491E8F +:1011700008432168C86100206062012084F82000D3 +:10118000002070BD41F08001C0E741F04001C5E79B +:1011900041F02001CAE721F01001CFE741F008013A +:1011A000D4E741F00401D9E710B586B00446142114 +:1011B0006846FFF761F81B49206888422FD11A481A +:1011C0000021026842F000720260006800F00070C6 +:1011D000059015481038026842F008020260006865 +:1011E000022200F0080005900320CDE90210CDE9AD +:1011F00000020920049069460C4800F007FA00221A +:101200001146132000F064FB132000F053FB002272 +:101210001146142000F05CFB142000F04BFB06B0DC +:1012200010BD00000064004040380240000C024045 +:101230007047000010B5016888B0D1F8B011124AAB +:10124000490D00910168114C91420FD10099A1F212 +:10125000012107290AD22288C9B2521C22800C4AD5 +:1012600002EBC1036A460021FFF79FFD2088B0F51D +:10127000FA7F06D1002020800648016881F4804171 +:10128000016008B010BD00000064004008000020AC +:101290002806002014140240704770477047000071 +:1012A00070B5044690F82000012804D0606A40F42C +:1012B0000020606218E0022084F8200020680168A5 +:1012C00021F00101016000F095FA05460EE000BF33 +:1012D00000F090FA401B0A2808D9606A40F40030F8 +:1012E0006062052084F82000012070BD20684068FD +:1012F000C007EDD1606270BD70477047704770479E +:1013000070477047704790F83510022903D080214C +:10131000416501207047052180F83510006801689B +:1013200021F0010101600020704700002DE9F84321 +:1013300004464FF00009CDF8009063484FF4165171 +:10134000A56D0068B0FBF1F72E6894F85C100820DA +:1013500000FA01F131420FD021680A6852070BD51B +:101360000A6822F004020A6094F85C108840A860C1 +:10137000606D40F00100606594F85C104FF001086A +:1013800008FA01F0304208D021684969090604D5FD +:10139000A860606D40F00200606594F85C10042065 +:1013A0008840304208D021680968890704D5A860C0 +:1013B000606D40F00400606594F85C101020884077 +:1013C000304218D021680968090714D5A860206840 +:1013D0000168490304D50068000308D5A16C07E043 +:1013E0000168C90503D4016821F008010160216C7E +:1013F00009B12046884794F85C102020884030428C +:1014000031D021680968C9062DD5A86094F8350047 +:1014100005282068016806D0490347D50068000305 +:101420001DD4616C1CE021F0160101602068416947 +:1014300021F080014161206C08B9A06C20B12068C6 +:10144000016821F00801016094F85C103F20884099 +:10145000A86084F8349084F83580216D1FE0E16B3A +:1014600009B120468847606D00282BD0606DC00709 +:1014700014D0052084F835002068016821F00101AE +:1014800001600098401C0090B84203D820680068B2 +:10149000C007F6D184F8349084F83580E16C0029D7 +:1014A00010D001B02046BDE8F04308470168C905E7 +:1014B000D5D4016821F01001016084F8349084F8DB +:1014C0003580CCE7BDE8F883040000202DE9F04129 +:1014D000044600F08FF906465CB1002584F83450CC +:1014E000022084F835002068016821F001010160C4 +:1014F0000DE00120BDE8F08100F07CF9801B05289B +:1015000005D920206065032084F83500F2E72068C3 +:101510000068C007F0D12268116820480140D4E972 +:1015200001031843D4E9033633431843636918436E +:10153000A3691843E3691843236A18430843616A9F +:10154000042903D1D4E90B13194308431060206820 +:101550004069666A20F0070130460E4301270428DF +:101560000CD1A06A0643E06A40B12046FFF7D4F9E7 +:1015700020B14020606584F83570BAE72068466184 +:101580002046FFF7B5F994F85C203F219140816037 +:10159000656584F835700020ACE700003F8010F0EE +:1015A00070B5044690F83400002501280CD00120C5 +:1015B00084F8340094F835600020012E06D084F8B9 +:1015C00034000225284670BD022070BD022684F832 +:1015D000356060652046FFF7C9F92068016841F071 +:1015E00001010160EEE7000070B5044600F002F969 +:1015F0000546601C02D004480078044400F0FAF864 +:10160000401BA042FAD370BD140000202DE9F84F12 +:1016100000224FF0010803254FF00F0E0B6808FA67 +:1016200002F42340A3426ED14E68012E05D0022E53 +:1016300003D0112E01D0122E12D186684FEA420C2F +:1016400005FA0CF7BE43CF6807FA0CF737438760FB +:101650004668A6430C79C4F30014944034434460B4 +:10166000C668570005FA07FC8C6826EA0C06BC40E1 +:101670003443C4604C68022C01D0122C13D1D4081E +:1016800000EB8404A346D4F8209054074FEAD46AB0 +:101690000EFA0AF629EA06090E6906FA0AF646EA79 +:1016A0000906CBF8206004680E7924EA0C0406F0E1 +:1016B0000306BE40264306604C68E4006FD53B4CF1 +:1016C000266846F480462660246822F0030604F467 +:1016D00080440094364C3444A446D4F80848960715 +:1016E000360F0EFA06F7BC43324FB84201D100273D +:1016F0002EE0314FB84201D1012729E02F4FB842E7 +:1017000002D1022724E04AE02D4FB84201D103273D +:101710001EE02C4FB84201D1042719E02A4FB842ED +:1017200001D1052714E0294FB84201D106270FE067 +:10173000274FB84201D107270AE0264FB84201D10E +:10174000082705E0244FB84201D1092700E00A2705 +:10175000B7402743CCF80878204E34684F689C4344 +:10176000FF0300D51C4334601C4E361D34684F689F +:101770009C43BF0300D51C433460184E08363468C0 +:101780004F689C43FF0200D51C433460134E0C3657 +:1017900034684F689C43BF0200D51C433460521C20 +:1017A000102AFFF43BAFBDE8F88F00004438024038 +:1017B00000300140000002400004024000080240E6 +:1017C000000C0240001002400014024000180240C9 +:1017D000001C02400020024000240240003C014066 +:1017E0000069084000D0012070470AB1816170474C +:1017F0000904FBE7014880687047000014000020DE +:10180000024881680278114481607047140000200A +:101810000B4810B5016841F400710160016841F4A2 +:1018200080610160016841F480710160032000F073 +:101830006FF8002000F006F800F024F8002010BD3A +:10184000003C024070B50D4D04464FF47A71287883 +:10185000B1FBF0F00A490968B1FBF0F000F03AFC86 +:1018600048B9102C07D200222146501E00F030F853 +:1018700000206C6070BD012070BD000014000020CD +:10188000040000200A4808B5016841F48041016065 +:10189000006800F4804000900548001F016841F096 +:1018A00080510160006800F08050009008BD000089 +:1018B00044380240002809DB00F01F02012191405A +:1018C0004009800000F1E020C0F8001170470000DE +:1018D000F0B40E4B1B680C46C3F30223C3F107059B +:1018E000042D00D90425191D072901D2002300E089 +:1018F000DB1E012606FA05F1491E214099409E4053 +:10190000761E16403143F0BC01F0CEBB0CED00E07A +:10191000064900F0070208684FF6FF03184040EA46 +:101920000220034A10430860704700000CED00E0FD +:101930000000FA052DE9F0470E46050065D0DFF8F6 +:101940001481D8F80000F7B200F00F00B04207D2BF +:1019500088F80070D8F8000000F00F00B04254D1B1 +:1019600028683D4C810712D5400703D5206840F414 +:10197000E05020602878000703D5206840F46040DC +:1019800020602068A96820F0F000084320602878D3 +:10199000C0072DD0304968680839012812D00228C4 +:1019A00013D0032811D00968890700292DDA21688E +:1019B00021F0030101432160FFF71CFF814641F242 +:1019C000883A0EE009688903EFE709688901ECE7C6 +:1019D000FFF710FFA0EB0901514502D90320BDE834 +:1019E000F0872068696800F00C00B0EB810FEFD140 +:1019F000D8F80010404601F00F01B14207D9077036 +:101A0000006800F00F00B04201D00120E7E728781D +:101A1000400705D52068E96820F4E05008432060BD +:101A20002878000706D52068296920F4604040EA3C +:101A3000C100206000F038F82168084AC1F30311A2 +:101A4000515CC8400649086006480068FFF7FAFE86 +:101A50000020C4E7003C024008380240D04400089F +:101A600004000020180000200448054900680968A7 +:101A7000044AC1F38221515CC84070470400002031 +:101A800008380240E0440008044805490068096835 +:101A9000044AC1F34231515CC84070470400002041 +:101AA00008380240E0440008154810B5006810F0FE +:101AB0000C02144813D01449042A0FD0082A0ED15E +:101AC0000F4C241F2268236802F03F025B0207D5F7 +:101AD0002068C0F38810A0FB010106E0084610BD95 +:101AE0002168C1F38811A1FB00010023FEF77AFBF6 +:101AF0002168C1F30141491C4900B0FBF1F010BD60 +:101B0000083802400024F400001BB7002DE9F84F0C +:101B1000040076D02078DFF838A3CE4DC00749D036 +:101B2000DAF800105046C1F38101012908D000689D +:101B3000C0F3810002280AD1281D0068400206D5A2 +:101B40002868800336D560680028E2D032E06068FB +:101B5000B0F5803F10D0B0F5A02F286810D020F449 +:101B600080302860286820F4802028606068A0B158 +:101B7000FFF740FE06460CE0286840F48030F4E7AA +:101B800040F480202860F7E7FFF734FE801B6428CC +:101B900073D828688003F7D50CE0FFF72BFE0646C4 +:101BA00005E000BFFFF726FE801B6428F0D82868F8 +:101BB0008003F7D42078DFF8A08280074FF0000977 +:101BC0003ED5DAF80010504611F00C0F09D000682D +:101BD000C0F3810002280BD19D48001F006840021D +:101BE00006D42868800715D5E068012809D111E0DE +:101BF000E068B8B10120C8F80000FFF7FBFD064619 +:101C000005E020E1FFF7F6FD801B0228C0D8286818 +:101C10008007F7D52868216920F0F80040EAC10064 +:101C200028600DE0C8F80090FFF7E4FD064604E0E8 +:101C3000FFF7E0FD801B02281FD828688007F7D433 +:101C40002078000722D5824E844861696C3671B1D4 +:101C500001210160FFF7CEFD074604E0FFF7CAFD52 +:101C6000C01B022809D830688007F7D50EE0C0F8FD +:101C70000090FFF7BFFD074605E082E0FFF7BAFDE1 +:101C8000C01B02287DD830688007F7D42078400731 +:101C900068D5DFF8BCB100270BF1380BDBF800008A +:101CA000C0000BD4DBF8001041F08051CBF80010DD +:101CB000DBF80000012700F080500090684E30688B +:101CC000C00510D4306840F480703060FFF792FD9A +:101CD000009005E0FFF78EFD0099401A022850D8C9 +:101CE0003068C005F6D55A4EA068683601280FD076 +:101CF0000528306810D020F001003060306820F0F6 +:101D000004003060A068B8B1FFF774FD00900FE0E8 +:101D1000306840F00100F4E740F004003060F7E77D +:101D2000FFF768FD0099411A41F28830814266D878 +:101D300030688007F4D50EE0FFF75CFD009007E007 +:101D4000FFF758FD0099411A41F28830814256D878 +:101D500030688007F4D42FB1DBF8001021F08051F7 +:101D6000CBF80010A069D0B3DAF800205146C2F3D6 +:101D70008102022A4AD00228484607D0C8F86000EB +:101D800000E03CE0FFF736FD04463BE04746C8F87C +:101D90006000FFF72FFD064605E000BFFFF72AFDB4 +:101DA000801B02282BD828688001F7D4D4E90701CA +:101DB0000843A16A2B4A490802EB0141626A41EAE1 +:101DC0008211084394F82C1040EA01612048001F5A +:101DD000016001203866FFF70DFD044605E034E0A0 +:101DE000FFF708FD001B022809D828688001F7D5F5 +:101DF0002BE000BFFFF7FEFC001B022802D90320E6 +:101E0000BDE8F88F28688001F4D41EE00128F7D0DF +:101E10000868E26900F48001914214D1226A00F05E +:101E20003F0191420FD147F6C071626A0140914271 +:101E300009D1A26A00F44031914204D1E16A00F074 +:101E40007060884201D00120DAE70020D8E7000066 +:101E5000083802400038024000004742800E4742E6 +:101E6000007000400000FFFF70B5040005D00025A1 +:101E7000A56294F8510010B106E0012070BD84F80D +:101E80005050204600F030F8022084F851002068BD +:101E9000016821F040010160D4E901010843D4E95F +:101EA00003121143084361690843218B01F4007157 +:101EB0000843E1690843216A0843A16A084321688D +:101EC0000860A069042101EA1040616A08432168A2 +:101ED00048602068C16921F40061C1616565012025 +:101EE00084F85100002070BDF0B587B0044614217D +:101EF0006846FEF7C1F91C492068884232D11B4868 +:101F00000024016841F480510160006800F48050B1 +:101F1000059016481438016841F00201016001681B +:101F200001F002010591016841F0010101600068C2 +:101F3000022500F0010005901820CDE9000502AA55 +:101F40000326052782E8D00069460948FFF75EFBB3 +:101F50008020CDE9000502AA694682E8D000054844 +:101F6000FFF754FB07B0F0BD003001404438024099 +:101F700000040240000002402DE9F84F044690F8AA +:101F8000500000271D461646894601280DD04FF007 +:101F9000010B84F850B0FFF72DFC804694F85100F7 +:101FA000BA46012804D002278EE00220BDE8F88F4F +:101FB000B9F1000F7DD0002E7BD0032084F85100B2 +:101FC000C4F854A0C4F83090A686E686C4F838A0B9 +:101FD000A4F83CA0A4F83EA0C4F844A0C4F840A0D3 +:101FE000A068B0F5004F04D12068016841F4804139 +:101FF000016020680168490603D4016841F040018E +:102000000160E068B0F5006F606803D030B3012E66 +:1020100024D040E008B1012E1CD1206B216800883B +:10202000C86006E020688168890709D5216B0988A6 +:10203000C160206B801C2063E08E401EE08609E0BA +:10204000FFF7D8FBA0EB0800A84202D3681C01D020 +:1020500031E07DB3E08E0028E4D11FE0206B2168E1 +:102060000078087306E020688168890709D5216B2C +:1020700009780173206B401C2063E08E401EE086CF +:1020800009E0FFF7B7FBA0EB0800A84202D3681CE9 +:1020900001D010E075B1E08E0028E4D14246294617 +:1020A000204600F0BBFC08B120206065A06820B18C +:1020B00007E008E0FFE7032706E02068C1688068C2 +:1020C0000090606D00B1012784F851B084F850A0F1 +:1020D00038466BE710B5401EB0F1807F01D3012078 +:1020E00010BD4FF0E02460610F21601700F0DCFFAD +:1020F0000020A06107202061002010BD10B590F8DD +:102100003C20012A22D0012280F83C20CA688C6839 +:1021100022F4407222434C6822F4806222430C680D +:1021200022F4006222430C6922F4805222434C695B +:1021300022F400522243C969002322F480420A4358 +:1021400001684A6480F83C30002010BD022010BDB8 +:1021500070B590F83C20012A32D0012480F83C4030 +:10216000022280F83D2003685A689D6822F07006BC +:102170000A6832435A60134B02689A4214D0B2F193 +:10218000804F11D0104B9A420ED0104B9A420BD078 +:102190000F4B9A4208D00F4B9A4205D00E4B9A42F1 +:1021A00002D00E4B9A4204D1496825F080031943AE +:1021B000916080F83D40002180F83C10084670BDD9 +:1021C000022070BD000001400004004000080040F3 +:1021D000000C004000040140004001400018004095 +:1021E00070B586B0044614216846FEF745F81849D4 +:1021F0002068884229D117480024016841F0010174 +:102200000160016801F001010591016841F01001D0 +:1022100001600068022500F0100005904FF4407046 +:102220000090CDE901540126CDE9034669460A48EC +:10223000FFF7ECF94FF4C0400090CDE90154CDE92F +:10224000034669460548FFF7E1F906B070BD000096 +:1022500000000140303802400000024000100240FF +:1022600070B5044690F83C000D4601280DD00126BB +:1022700084F83C60022084F83D0042B1042A18D062 +:10228000082A2AD00C2A4DD139E0022070BD2068DE +:1022900000F000FD2068816941F00801816120683B +:1022A000816921F004018161206881692A691143F3 +:1022B00011E0206800F01EFD2068816941F4006192 +:1022C00081612068816921F4806181612068816970 +:1022D0002A6941EA0221816124E0206800F040FD82 +:1022E0002068C16941F00801C1612068C16921F01D +:1022F0000401C1612068C1692A69114311E02068A5 +:1023000000F062FD2068C16941F40061C16120688C +:10231000C16921F48061C1612068C1692A6941EA0B +:102320000221C16184F83D60002084F83C0070BD4A +:1023300010B5040003D094F83D0010B107E001206F +:1023400010BD002084F83C00204600F00DF802206B +:1023500084F83D00211D206800F02AFC012084F84B +:102360003D00002010BD000008B500680649884205 +:1023700008D10648016841F001010160006800F0E1 +:102380000100009008BD00000000014044380240F8 +:1023900010B504460068012200F06EFC0B4920686D +:1023A000884202D00A49884203D1416C41F400417D +:1023B00041642068816801F00701062903D00168A3 +:1023C00041F001010160002010BD0000000001404B +:1023D000000401407047000070B5026804461068B0 +:1023E000D168536910F00F0F52D003F0010501F4CA +:1023F00090762E435FD0C20705D0CA0503D5E26BA5 +:1024000042F00102E263420705D5DA0703D0E26B2E +:1024100042F00202E263820705D5DA0703D0E26BDD +:1024200042F00402E263020707D501F020022A43CA +:1024300003D0E26B42F00802E263E26B002A33D081 +:10244000800604D5880602D5204600F0FBFC2068F3 +:102450004069E16BC0F38010090700D428B320461F +:1024600000F0E2FC2068416949061AD5416921F073 +:1024700040014161606BA0B11B490165606BFEF7D3 +:1024800042FF002810D0606B016DBDE87040084726 +:10249000830610D58B060ED52046BDE8704000F0AF +:1024A000D1BC2046FFF796FF70BD2046FFF792FF94 +:1024B0000020E06370BD030606D50B0604D5204658 +:1024C000BDE8704000F09EBD4006F3D54806F1D54A +:1024D000D168204621F04001D160202184F83910D4 +:1024E00000F0ABF870BD0000192E000870B50400B4 +:1024F00004D094F83900002510B106E0012070BD29 +:1025000084F83850204600F023F8242084F839005D +:102510002068C16821F40051C160204600F0DEFC53 +:102520002068016921F4904101612068416921F02E +:102530002A0141612068C16841F40051C160E5632E +:10254000202084F8390084F83A00002070BD000093 +:102550002DE9F04186B0064614216846FDF78CFE51 +:1025600030493068884259D12F480024016841F031 +:1025700010010160006800F0100005902A4814382E +:10258000016841F0020101600068694600F0020044 +:102590000590C02000900220CDE9010403200390A3 +:1025A000072004902148FFF731F8224D20484FF0D2 +:1025B00000672860C5E901744FF48068C5E90348E5 +:1025C00080156C61C5E906402C6228466C62FEF7F6 +:1025D0007DFF08B1FEF7DFF97563AE63154D144852 +:1025E00060357830E5E802074020A5E81101114880 +:1025F00045F814496030AC61EC612C626C62FEF706 +:1026000065FF08B1FEF7C7F93563002211462520A2 +:10261000AE63FFF75DF92520FFF74CF906B0BDE882 +:10262000F0810000001001404438024000040240E4 +:10263000406402406801002070477047FEE70000D8 +:102640007FB5002415480094019402941249039424 +:1026500001604FF48031C0E901140461047680F810 +:1026600020400F49C0E90A140125C561C46080F803 +:1026700030404561FEF742FA08B1FEF78CF90620BA +:10268000CDE90005694602940448FEF785F9002863 +:1026900001D0FEF780F97FBD00200140200000201E +:1026A0000100000F104810B50E4901600321416080 +:1026B00000214FF400228160C0E903124FF4401260 +:1026C00042610176012242768176C17601774177B7 +:1026D000FEF7DDFC002803D0BDE81040FEF75BB933 +:1026E00010BD000000640040680000200D4808B5DF +:1026F000016841F4800101600068002200F480005C +:10270000009011463A20FFF7E3F83A20FFF7D2F89D +:10271000002211464620FFF7DBF8BDE808404620BE +:10272000FFF7C8B8303802402DE9F04F87B01421C8 +:102730006846FDF7A1FD59480024016841F00201F7 +:102740000160016801F002010591016841F0010199 +:102750000160016801F001010591016841F0080183 +:102760000160016801F008010591016841F4807180 +:102770000160016801F480710591016841F08001F8 +:102780000160016801F080010591016841F040019C +:102790000160016801F040010591016841F01001FC +:1027A0000160016801F010010591016841F020010C +:1027B000016000684FF4C06500F020000590002221 +:1027C00029463748FFF711F8DFF8D8A00022042186 +:1027D0005046FFF70AF800222C213348FFF705F88E +:1027E000DFF8C8B04FF48077002239465846FEF72C +:1027F000FCFF4FF40068002241462D48FEF7F5FF2C +:102800004FF48049002249462A48FEF7EEFF009522 +:102810000125CDE90154694621480394FEF7F6FEEF +:1028200004260096CDE90154694650460394FEF70C +:10283000EDFE2C200090CDE9015469461A4803941E +:10284000FEF7E4FE1020CDE9000469461648029424 +:10285000FEF7DCFE0097CDE9015469465846039423 +:10286000FEF7D4FECDE9006469460D480294FEF7F8 +:10287000CDFECDF80080CDE9015469460C480394A3 +:10288000FEF7C4FECDF80090CDE901546946094831 +:102890000394FEF7BBFE07B0BDE8F08F303802406E +:1028A0000004024000200240001C024000180240C8 +:1028B0000010024000140240104810B50E4901609B +:1028C0004FF48271416000218160C1604FF4007259 +:1028D0000161C0E905122822C0E907214162816235 +:1028E0000A21C162FFF7C0FA002803D0BDE81040FA +:1028F000FEF751B810BD00000030014090000020EC +:1029000010B592B000240F941C2168461094FDF776 +:10291000B3FC202107A8FDF7AFFC2D482B4901602F +:10292000A721C0E9011442F20F71C0E90314446108 +:102930008461FFF7FDFC08B1FEF72DF80F940FA995 +:1029400023481094FFF704FC08B1FEF724F8602038 +:1029500000904FF47A70CDE9010403940494059437 +:10296000002269461A480694FFF77AFC08B1FEF780 +:1029700012F8042269461648FFF772FC08B1FEF708 +:102980000AF8082269461248FFF76AFC08B1FEF708 +:1029900002F80C2269460E48FFF762FC08B1FDF709 +:1029A000FAFF0794089409944FF400500A94CDE973 +:1029B0000B4007A906480E94FFF7A0FB08B1FDF7EE +:1029C000EAFF0348FFF70CFC12B010BD0000014005 +:1029D000E80000200D4810B50B4901600C4941602A +:1029E00000214FF480628160C0E903120C22C0E92B +:1029F0000521C161FFF77AFD002803D0BDE8104032 +:102A0000FDF7C9BF10BD00000010014028010020E3 +:102A1000A0860100FEE770477047000038B5044605 +:102A20001248134B0068B0FBF3F04FF47A7358432D +:102A300000906068B0F5827F0DD10B4600920022B5 +:102A40008021204600F016F870B1606D40F0200043 +:102A50006065032038BD009830B1401E00902068AA +:102A60008068C0430006F6D5002038BD0400002071 +:102A700000366E012DE9F0411D4617460E4604460C +:102A8000DDF8188008E0681C06D0FEF7B3FEA0EB66 +:102A90000800A8420BD255B12068806836EA0000D1 +:102AA00030D00020B842EED10020BDE8F08120688F +:102AB000416821F0E00141606068B0F5827F0BD190 +:102AC000A068B0F5004F02D0B0F5806F04D1206847 +:102AD000016821F040010160A06AB0F5005F09D1F2 +:102AE0002068016821F4005101602068016841F408 +:102AF00000510160012084F85100002084F850004A +:102B00000320D2E70120CDE77047FEF779BE000031 +:102B100030B593B030216846FDF7AEFB14210CA808 +:102B2000FDF7AAFB19480025016841F080510160BA +:102B3000006800F0805011901548016841F4404150 +:102B400001600068022400F44040119001200090D0 +:102B5000000401908001CDE9064006200890A820DD +:102B6000CDE9090404200B906846FEF7CFFF0CA9BD +:102B70000F2081E831004FF4A0500F90E002109038 +:102B800005210CA8FEF7D6FE13B030BD4038024038 +:102B9000007000400548016841F47001016003497C +:102BA0004FF00060803908607047000088ED00E059 +:102BB000F0B50268254C264D264E274F274B4FF087 +:102BC000804CA04209D0604507D0A84205D0B04251 +:102BD00003D0B84201D0984204D122F0700E4A6866 +:102BE00042EA0E02A0421BD0604519D0A84217D07D +:102BF000B04215D0B84213D0984211D0184DA84217 +:102C00000ED0184DA8420BD0174DA84208D0174D32 +:102C1000A84205D0164DA84202D0164DA84203D1B5 +:102C200022F44075CA682A434D6922F080022A4383 +:102C300002608A68C2620A688262A04201D0984239 +:102C400001D10969016301214161F0BD000001402A +:102C50000004004000080040000C00400004014057 +:102C6000004001400044014000480140001800407D +:102C7000001C00400020004010B501F01F0301219E +:102C8000046A99408C430462016A9A4011430162CC +:102C900010BD0000F0B5026A22F001020262036A70 +:102CA00042688469124E24F073050C682C4323F0AB +:102CB00002058B682B430D4DA84201D0B04205D1CF +:102CC00023F00807CB683B4323F00403A84201D05C +:102CD000B04205D14D6922F4407215438A692A43F6 +:102CE00042608461496841630362F0BD00000140B5 +:102CF00000040140F0B5026A22F010020262026A8A +:102D0000436884690D6824F4E64444EA05248D6828 +:102D100022F0200242EA05120F4D104EA84201D0C7 +:102D2000B04206D1CF6822F0800242EA071222F0B8 +:102D30004002A84201D0B04207D14D6923F440635C +:102D400043EA85038D6943EA8503436084614968EA +:102D500081630262F0BD00000000014000040140F8 +:102D6000F0B5026A22F480720262026A4368C469A2 +:102D700022F4007224F073050C68124E2C438D6807 +:102D800042EA05220E4DA84201D0B04206D1CF68DA +:102D900022F4006242EA072222F48062A84201D0B3 +:102DA000B04207D14D6923F4405343EA05138D69BE +:102DB00043EA05134360C4614968C1630262F0BD20 +:102DC000000001400004014030B5026A22F4805244 +:102DD0000262046A4268C3690D6823F4E64343EA69 +:102DE00005238D6824F4005444EA0534084DA842B4 +:102DF00002D0084DA84204D14D6922F4804242EA33 +:102E000085124260C36149680164046230BD0000FC +:102E1000000001400004014010B5806B0021C18515 +:102E2000C184FFF7D7FA10BD0168CA6822F4907216 +:102E3000CA6001684A6922F001024A61202180F8D3 +:102E40003A10704710B590F83A10222901D00220AC +:102E500010BD8168B1F5805F11D00169002901685A +:102E60001FD0496801F07F03816A4A1C82620B709F +:102E7000C18D491E0904090CC18518D02BE00269D7 +:102E8000816A002A0268526805D0D2B20A80816A3B +:102E9000491C8162ECE7C2F308020A80816A891C3E +:102EA000F7E74A68816A4B1C83620A70E0E70168B1 +:102EB000CA6822F02002CA600168CA6822F48072DF +:102EC000CA6001684A6922F001024A61202180F843 +:102ED0003A10FFF7B1FB002010BD00002DE9F041D2 +:102EE000044600680169E26821F440511143016120 +:102EF0002169A068E26908436169114308432168B8 +:102F0000CA6849F20C639A430243CA602068416967 +:102F1000A26921F4407111434161E06919276425D8 +:102F20003226B0F5004F354A354920684FF0000889 +:102F300006D0884201D0904236D1FEF7A5FD35E09B +:102F4000884201D0904202D1FEF79EFD01E0FEF7DB +:102F50008BFD61684A18A0FB070148EB0803FDF7E9 +:102F600041F90146B0FBF5F00201B1FBF5F06FF05D +:102F70001803584301EB800006EBC000B0FBF5F0EE +:102F800000F0F80002EB4002B1FBF5F0584301EB12 +:102F9000800006EBC000B0FBF5F000F007002168F0 +:102FA00010448860BDE8F081FEF75EFD61688B0F1C +:102FB0008A00A0FB0701FDF715F90146B0FBF5F00B +:102FC0006FF01802504301EB800006EB0010B0FBDD +:102FD000F5F000F0F002B1FBF5F002EB0012B1FBEE +:102FE000F5F06FF01803584301EB800006EB00107A +:102FF000B0FBF5F000F00F00D1E700000014014035 +:103000000010014090F83910212901D002207047AA +:103010008168B1F5805F016A0BD04A1C02620268C8 +:1030200009785160C18C491E0904090CC1840ED075 +:1030300017E009880268C1F308015160016900299D +:10304000016A02D0491C0162ECE7891CFBE70168B8 +:10305000CA6822F08002CA600068C16841F040017D +:10306000C16000207047000010B5044801F000FA6C +:10307000BDE810400148FFF7AFB90000280100206B +:10308000FEE7000037B514460846064B6A4621465F +:1030900000F0ECF804466946002000F07EFC204673 +:1030A0003EBD00009B3900080907090E002804DB1B +:1030B00000F1E02080F80014704700F00F0000F1EC +:1030C000E02080F8141D704702E008C8121F08C1F4 +:1030D000002AFAD170477047002001E001C1121F99 +:1030E000002AFBD1704700002DE9FF5F82B000216C +:1030F000DDE90430020DDDF840B0034318D044F69A +:103100001050A2F2FF3242431514119801281FD02B +:10311000A5EB0B00401C5FEA000A4FF000064E4F83 +:10312000DFF83891B046504615D5CAF1000413E0D7 +:10313000119801244AA3012801D16FEA0B010298DA +:10314000119AC0E90031C0E9024206B0BDE8F09F23 +:10315000CBF10000DFE704460021404A491842EB6A +:103160000450CDE9001012E0E00707D032463B469C +:1031700040464946FDF77AF98046894632463B4645 +:1031800010461946FDF772F906460F466410002CEA +:10319000EAD1DDE90401DDE90023BAF1000F06DA26 +:1031A000FDF764F942464B46FDF760F905E0FDF78F +:1031B000CFF942464B46FDF7CBF904460E460022B6 +:1031C000284BFDF74DFA03D84FF0FF30014607E0DA +:1031D0000022254B20463146FDF7A1F8FDF727FADE +:1031E000102409E0002C0ADB0A220023FCF7FAFF76 +:1031F000039B30321A55641E50EA0102F2D1641C5E +:10320000039AC4F111031444119A012A03D0012234 +:1032100008430DD10AE0084304D000204FF0110B01 +:10322000119072E7A3EB0B056D1E0DE05B4504DD0D +:103230004FF0000205F1010504E003DA4FF000024F +:10324000A5F10105002AECD002981199C0E90231DC +:10325000C0E9004579E70000000014400000F03F9D +:10326000300000000000F0430000E03F2DE9FF4F78 +:1032700095B09B468946064600250FE2252877D162 +:1032800000242746F84A0121059400E0044316F87B +:10329000013F203B01FA03F01042F7D130782A2891 +:1032A00011D06FF02F033078A0F13002092A16D820 +:1032B000059A44F0020402EB820203EB420210443E +:1032C000761C0590EFE759F8042B0592002A03DAE3 +:1032D000504244F40054059044F00204761C3078C7 +:1032E0002E2816D116F8010F44F004042A280DD018 +:1032F0006FF02F023078A0F13003092B09D807EBCB +:10330000870302EB4303C718761CF3E759F8047BE5 +:10331000761C30786C280FD006DC4C2817D0682833 +:103320000DD06A2814D104E0742810D07A280FD167 +:103330000DE044F400140AE044F4801401E044F485 +:1033400040147278824202D104F58014761C761CF7 +:10335000307866280BD013DC582877D009DC002899 +:1033600075D04528F6D04628F4D047281AD19DE1DB +:1033700018E0632835D0642879D0652812D195E10A +:10338000702873D008DC6728F1D069286FD06E28C8 +:103390000DD06F2806D1B5E073282CD0752875D0D4 +:1033A000782874D05A46179990476D1C75E1C4F37C +:1033B0000250022809D003280DD0D9F800100428A3 +:1033C0000DD00D6009F1040967E1D9F80010EA1782 +:1033D000C1E90052F6E7D9F800100D80F2E70D7050 +:1033E000F0E719F8041B8DF8001000208DF801009B +:1033F000EA46012003E059F804AB4FF0FF306107C3 +:103400004FF0000102D40DE008F101018846B942F5 +:103410000FDA8045F8DB1AF808100029F4D108E02B +:1034200008F1010188468142FADB1AF808100029E8 +:10343000F6D105985B46A0EB080721463846179A57 +:1034400000F094FA284400EB080507E04DE029E17C +:103450000DE01AF8010B5A4617999047B8F1010888 +:10346000F7D25B4621463846179A13E142E00A221A +:103470000092C4F302524FF0000A022A08D059F811 +:1034800004CB032A4FEAEC710AD00DE029E02AE0D0 +:1034900009F1070121F00702F2E802C1914609E0B3 +:1034A0000FFA8CFC4FEAEC71042A03D14FFA8CFC22 +:1034B0004FEAEC71002907DA0A460021DCF1000C22 +:1034C00061EB02012D2202E0220504D52B228DF8AA +:1034D0000420012203E0E20701D02022F7E7904612 +:1034E00059E00A2102E010220DE010214FF0000AFD +:1034F00000910BE010224FF0000A44F0040408276A +:10350000009203E008224FF0000A0092C4F3025236 +:10351000022A05D059F804CB0021032A08D009E07B +:1035200009F1070121F00702F2E802C1914605E026 +:103530001FFA8CFC042A01D10CF0FF0C4FF000089C +:10354000220728D5702806D0009B83F0100353EA89 +:103550000A0305D00EE040228DF80420012208E085 +:103560005CEA010206D030228DF804208DF80500B7 +:1035700002229046009B83F0080353EA0A030AD113 +:103580005CEA010201D1620705D530228DF80420E2 +:103590004FF001087F1E582804D034A003900EA8D5 +:1035A00002900DE036A0F9E753466046009AFCF71A +:1035B00019FE84460398825C0298401E02900270B5 +:1035C0005CEA0100F0D1029806A9081A00F1200A6D +:1035D000600702D524F4803400E00127574502DD5E +:1035E000A7EB0A0000E0002000EB0A01009005981C +:1035F0004144401A0590E00306D45B462146179AE1 +:10360000059800F0B3F90544002706E001A85A46E2 +:10361000C05D179990476D1C7F1C4745F6DBE003A2 +:103620000CD55B462146179A059800F09FF9054492 +:1036300004E030205A46179990476D1C0099481EA7 +:1036400000900029F5DC08E0029802995A460078BB +:10365000491C0291179990476D1CBAF10001AAF11B +:10366000010AF1DC65E10000092801003031323344 +:1036700034353637383961626364656600000000AE +:103680003031323334353637383941424344454698 +:103690000000000000F058F90544761C307800283E +:1036A0007FF4ECAD19B02846BDE8F08F620700D476 +:1036B000062709F1070222F0070CFCE80223E14685 +:1036C00003F000485FEA080C02D00FF2702C0DE006 +:1036D0005FEA045C02D50FF2682C07E05FEAC47C65 +:1036E00002D00FF2602C01E0AFF2700C4FF0FF3807 +:1036F00023F00043CDF850C065280CD006DC4528E7 +:1037000009D046281DD047283DD13DE0662818D075 +:1037100067287ED138E00021112F01DB112000E065 +:10372000781CCDE9000106A90EA8FFF7DDFCDDE954 +:103730000F010E9A03910021009207F1010A0491F2 +:103740004DE04FF000400097CDE9011006A90EA80A +:10375000FFF7CAFCDDE90F0203920E9B11990022CC +:10376000DDF80CA00093049211B9791C00EB010A5A +:10377000B7EB0A0004D4C0F1FF3007F1010A04904E +:10378000AAEB0700019044E0012F00DA0127002195 +:10379000112F01DD112000E03846CDE9000106A916 +:1037A0000EA8FFF7A1FCDDE90F010E9A039100219D +:1037B00004910092BA4621070CD40399514500DACE +:1037C0008A46BAF1010F05DD009AAAF10101515CA8 +:1037D000302908D0B84202DA10F1040F06DA0121CC +:1037E000CDE9011015E0AAF10101E9E7002805DCA7 +:1037F000049901440491AAEB000102E0411C5145E7 +:1038000000DD8A460499401A401C01904FF00040A8 +:103810000290200704D40198504501DBCDF80480C4 +:1038200000208DF84F0002980DF14F07B0F1004FC6 +:1038300025D02B200E9002984FF0020800280CDAB9 +:10384000404202902D200E9007E00A210298FCF7DA +:1038500031FD3031029007F8011DB8F10001A8F1E7 +:103860000108F2DC02980028EFD1791E0E9808704A +:10387000307800F0200040F0450007F8020D12A853 +:10388000C01B00F107081498007800B1012000EB7C +:103890000A01019801EBE07105984144401A401E6D +:1038A0000590E00306D45B462146179A059800F080 +:1038B0005DF805441498007818B15A461799904756 +:1038C0006D1CE00324D55B462146179A059800F04D +:1038D0004DF805441CE00498002807DBDDE90301EE +:1038E000884203DD0098405C179901E01799302069 +:1038F0005A469047049805F10105401C0490019830 +:10390000401E019004D12E205A46179990476D1CF5 +:10391000BAF10001AAF1010ADDDC05E017F8010B9C +:103920005A46179990476D1CB8F10001A8F101089B +:10393000F4DC5B462146179A0598ABE62D000000A3 +:103940002B000000200000002DE9F0410446002576 +:103950001E461746880404D405E039462020B047A7 +:103960006D1C641EF9D52846BDE8F0812DE9F041B3 +:10397000044600251E469046C80301D5302700E0C6 +:103980002027880404D505E041463846B0476D1C21 +:10399000641EF9D52846BDE8F0810A68531C0B6007 +:1039A00010707047401E044AC0B202EBC0000268AB +:1039B0000A604068486070472806002038B5C0B2E9 +:1039C000049C009400F002F838BD000030B589B0C6 +:1039D0000C9C28B340F2FF100290002008250490B0 +:1039E000CDE905058DF81C00080A8DF800008DF85A +:1039F0000110100A8DF80200180A8DF804008DF8E5 +:103A00000530200A8DF806008DF803208DF8074058 +:103A100001236A4602A90448FDF7DCF809B030BD6D +:103A20004FF40070D8E700006800002000B58BB0AC +:103A300000210122CDE90612059100910191029128 +:103A4000039104910E21CDE908216946FDF726F97D +:103A50000448FDF725FC02210248FDF7A9F80BB048 +:103A600000BD00006800002090ED220ABDEEC00AF3 +:103A700010EE100A00B2704738B50F4800210068F8 +:103A8000026842680092C26842F01002C2600A4CAA +:103A90000A4A94F83A0020280DD13223A262A38565 +:103AA000E1632168606B091DFDF77AFD20684169BB +:103AB00041F04001416138BD28010020600600202E +:103AC00010B5044600880B49FFF76CFF09482169CF +:103AD00019B1012901D0002010BD018849BAE18047 +:103AE000418849BA2181818849BA618180792073EE +:103AF000012010BD0C00002010B5074C0421607897 +:103B000020700648FDF76CFE607010B9207801281F +:103B100000D0002010BD00000A0000200004024078 +:103B20001CB5FDF775FEFEF7F3FFFEF7FDFDFEF792 +:103B3000DDFDFEF74FFFFEF783FDFEF7BDFEFEF74E +:103B4000B1FDFEF7DDFE01223C217648FDF74DFE7A +:103B5000FFF792FF00F004FA002000F0BDF900F03A +:103B600089F900F0B3FA00224FF480716E48FDF736 +:103B70003CFE0A20FDF738FD002000F0ADF900F012 +:103B8000A5FA6A48FFF752FF00F0A6FB00F000F923 +:103B9000674E684FDFF8A081684DDFF8A4A1DFF819 +:103BA000A4B14FF00009684CFFF7A6FF90B3D6ED23 +:103BB000210A9FED660A674A70EE800AC6ED210A67 +:103BC00097ED211A10EE901A31EE001A914287ED0E +:103BD000211A98ED211A31EE001A88ED211A94ED80 +:103BE000211A31EE000A9FED5A1A84ED210A95ED53 +:103BF000210A30EE010A85ED210A0BDD9FED560A00 +:103C000086ED210A87ED210A88ED210A84ED210A3B +:103C100085ED210ABAF90020BAF9020011188900CD +:103C200000EE101A831A9B00B8EEC00A49424042C7 +:103C300086ED210A00EE103AB8EEC00A87ED210A9F +:103C400000EE101A910001EB8000B8EEC00A88ED7A +:103C5000210A00EE100A3648B8EEC00A84ED210AA7 +:103C6000FFF72EFF3348FFF72BFF3348FFF728FFFE +:103C70003548FFF725FF3148FFF722FF002000F00D +:103C80002BF9012135A2084600F0FCF9D5F8840093 +:103C9000FCF7FDFACDE9000132A20121022000F07B +:103CA000F1F9B5F9083033A20121032000F0EAF957 +:103CB000B5F9063032A20121042000F0E3F900F04A +:103CC00005FABBF80010491C09B2ABF80010FA293C +:103CD00006D12E48ABF80090416981F40061416142 +:103CE000134800F062FB134800F05FFB124800F03D +:103CF0005CFB154800F059FB104800F056FB0E4BDA +:103D00000C4A0B490020009400F087FB00231A4660 +:103D10000A490120CDF8009000F07FFB0A20FDF752 +:103D200063FC41E7001C02400018024068000020CC +:103D30000807002094070020200800207C060020AF +:103D40007206002000000020AC0800200000FA43AA +:103D5000000020420000FA4400000000474D3630C9 +:103D60003230000020205461726765743A20256665 +:103D700000000000202053706565643A202569002A +:103D80002020416E676C653A2025690000100240D2 +:103D900010B534480121002401610471418040F2D2 +:103DA00005210180382230491430FCF74CFA2E49A5 +:103DB0002C48382238394C30FCF745FA294840F273 +:103DC00001218C303822046104714480018026492D +:103DD00014307039FCF737FA234922483822A839C1 +:103DE000D830FCF730FA214840F202213822046131 +:103DF0000471448001801C4914307039FCF723FAA7 +:103E000019491A483822A8394C30FCF71CFA1748CF +:103E100040F203218C303822046104714480018017 +:103E2000114914307039FCF70EFA0F490F48382247 +:103E3000A839D830FCF707FA0D484FF40171382241 +:103E40000461047144800180074914307039FCF723 +:103E5000FAF9054906483822A839BDE810404C3027 +:103E6000FCF7F1B97C060020044E000894070020FE +:103E7000AC0800202DE9F047002000F02DF8DFF815 +:103E8000549000245FF0000609EBC60000EBD4005C +:103E9000002507784FFA86F8380604EB050041B292 +:103EA00001D5012200E00022404600F035F87806F6 +:103EB0006D1C070EEDB2082DEED3761CF6B2802EE7 +:103EC000E2D30834E4B2402CDCD3BDE8F04700F084 +:103ED000FDB800005C490008F0B500210D4BFF263D +:103EE0000C46002201280FD003EBC20580B16F5CA5 +:103EF000C7F1FF076F54521CD2B2802AF2D9491C75 +:103F0000C9B20829EDD3F0BD03EBC2056E54F2E748 +:103F10006C54F0E72802002070B5802817D20029E1 +:103F200015DB3F2913DCCB1701EB5375C5F3C70332 +:103F300025F007050124094E491B8C4006EBC00003 +:103F4000012A05D0C15C022A05D0A143C15470BD2D +:103F5000C15C2143FAE76140F8E700002802002035 +:103F600070B5474D4FF48064002221462846FDF786 +:103F70003CFC4FF4FA70FDF737FB0122214628463E +:103F8000FDF733FC0021AE2000F024F900210846A3 +:103F900000F020F90021102000F01CF90021402041 +:103FA00000F018F90021812000F014F90021CF2041 +:103FB00000F010F90021A12000F00CF90021C82028 +:103FC00000F008F90021A62000F004F90021A82043 +:103FD00000F000F900213F2000F0FCF80021D32080 +:103FE00000F0F8F80021084600F0F4F80021D52090 +:103FF00000F0F0F80021802000F0ECF80021D9203A +:1040000000F0E8F80021F12000F0E4F80021DA20C7 +:1040100000F0E0F80021122000F0DCF80021DB20A5 +:1040200000F0D8F80021402000F0D4F80021202032 +:1040300000F0D0F80021022000F0CCF800218D2003 +:1040400000F0C8F80021142000F0C4F80021A420DA +:1040500000F0C0F80021A62000F0BCF80021AF203D +:1040600000F0B8F80021AF2000F0B4F80020FFF70E +:1040700033FFBDE870400021084600F041B8000061 +:10408000000402400FB430B5A1B00C4605468021B3 +:104090006846FCF7F1F8042D13D8142C11D8002C25 +:1040A0000FD027AA68462699FEF7ECFFC4F1150049 +:1040B000C0B200210DF800106A462146284600F0E3 +:1040C00071F821B030BC5DF814FB000070B50B4EE8 +:1040D00000242146002000F013F8002506EBC5005F +:1040E0000121005D00F076F86D1CEDB2802DF5D356 +:1040F000641CE4B2082CECD370BD00002802002040 +:1041000010B5801CC4B2B031C8B2002100F062F812 +:10411000102040EA1410002100F05CF804F0F000D8 +:10412000BDE81040002100F055B800002DE9F04F27 +:1041300001EB410100EB400049068006040E203AE5 +:104140004FEA1169D0B2164900EB4000A0460025A5 +:1041500001EB800B00261BF805704FFA89FA380630 +:1041600001D5012200E0002261B25046FFF7D4FEE3 +:104170007806641C070EE4B2A4EB08000C2809D0F2 +:10418000761CF6B2082EEAD36D1CEDB20C2DE1D3ED +:10419000BDE8F08F09F10100444600F0FF09F3E7A4 +:1041A000E8440008F0B517460C46064600250CE02A +:1041B00021463046FFF7BAFF641CE4B2142C02D942 +:1041C0000024761CF6B26D1CEDB27A5D002AEFD1A8 +:1041D000F0BD000013B508484FF4007309B1012287 +:1041E00000E000221946FDF700FB0A230122694680 +:1041F0000248FDF7C1FE1CBD0004024090000020F3 +:1042000080ED060AC0ED070A90ED081A30EE600A4C +:1042100080ED091A80ED080A016899B910EE101AAC +:10422000DFED2C0AB1F18B4F03DD30EE600A80ED3B +:10423000080A10EE101A11F16A5F03D930EE200A55 +:1042400080ED080A90ED010AD0ED080A20EE202A40 +:1042500080ED0A2A90ED0B0AD0ED021A01EEA00AB9 +:1042600080ED0B0AD0ED031A11EEA01A80ED0C1AA6 +:10427000D0ED040AF1EE601AB4EEE10AF1EE10FAA4 +:1042800002D8B0EE610A06E0B4EEE00AF1EE10FAF0 +:1042900001DBB0EE600A80ED0B0A32EE000A30EE70 +:1042A000010A80ED0D0AD0ED050AB1EE601AB4EEF8 +:1042B000C10AF1EE10FA02D8B0EE410A06E0B4EEFF +:1042C000E00AF1EE10FA01DBB0EE600A80ED0D0AB3 +:1042D000704700000000004610B500210848FEF7B6 +:1042E00057F804210648FEF753F808210448FEF762 +:1042F0004FF8BDE810400C210148FEF749B8000016 +:10430000E800002070B50A88C2F30A04A4F58064AE +:10431000C4804A788B78D20842EA4312C2F30A0377 +:10432000A3F5806383808A78CD78920942EA85027A +:104330000D7942EA8522C2F30A02A2F58062428028 +:104340000D794E796D0845EAC615C5F30A05A5F540 +:10435000806505804E7905F52575B609067249799F +:10436000C1F3011141724FF4A5618D420BD802F5E2 +:1043700025728A4207D803F525738B4203D804F5CA +:1043800025748C4203D9002101604160018170BD18 +:104390000FB42DED020B10B5044605A8FFF730FF52 +:1043A00084ED220A10BC5DF81CFB30B504462DEDEF +:1043B000028B8BB090ED218A006904F1580510B191 +:1043C000012826D112E02C2229466846FBF73BFF44 +:1043D000B4F9080004F14C0100EE100A0EC9F8EE21 +:1043E000C00AB0EE480A2046FFF7D2FF2C22294629 +:1043F0006846FBF728FFB4F9080004F14C0100EE11 +:10440000100A0EC9F8EEC00AB0EE480A2046FFF7BF +:10441000BFFF0BB0BDEC028B30BD2DE9F84F00257E +:104420002F463E46DDF828B09946924634468046EF +:1044300019B10846FFF718FB0446BAF1000002D094 +:10444000FFF712FB0646B9F1000002D0FFF70CFBA4 +:104450000746BBF1000002D0FFF706FB05463B46CE +:104460003246214640460095FFF7A8FABDE8F88F8E +:1044700018B501680A68D20624D5CA68D20621D5C3 +:1044800004460868486800900F4884421AD1606B5F +:104490000068016821F001010160606B00684068FC +:1044A00080B2202804D1094901F11200FFF72AFF48 +:1044B000616B322009684860606B0068016841F0F8 +:1044C0000101016018BD00002801002060060020E5 +:1044D00000000000000000000102030406070809B4 +:1044E00000000000010203040000000000000000C2 +:1044F00000000000000000003F400000000000003D +:1045000000003000400030004000000009000BC0F7 +:104510003D000BC03D00090018C024407FE0224050 +:1045200031800000180024C01B000D803240018043 +:1045300003801C4027401C800740004010006000A2 +:1045400000000000000000000000000000001F80CC +:10455000204040200000402020401F80000000003C +:10456000090006001F800600090000000400040086 +:104570003F80040004000000001000600000000004 +:104580000000000004000400040004000400000017 +:10459000000000400000000000000000002001C0FA +:1045A00006003800400000001F80204020402040CE +:1045B0001F800000000010403FC0004000000000CD +:1045C00018C02140224024401840000010802040A4 +:1045D000244024401B80000002000D0011003FC059 +:1045E000014000003C8024402440244023800000FF +:1045F0001F8024402440344003800000300020000D +:1046000027C03800200000001B80244024402440A4 +:104610001B8000001C0022C0224022401F8000009E +:104620000000000008400000000000000000000042 +:104630000460000000000000000004000A001100F7 +:10464000208040400900090009000900090000001D +:1046500000004040208011000A00040018002000E3 +:1046600023402400180000001F80204027402940DC +:104670001F400000004007C039000F0001C000408B +:1046800020403FC0244024401B8000001F80204069 +:10469000204020403080000020403FC0204020408B +:1046A0001F80000020403FC024402E4030C000004A +:1046B00020403FC024402E00300000000F0010803A +:1046C000204022403380020020403FC0040004000C +:1046D0003FC02040204020403FC0204020400000FC +:1046E0000060202020203FC02000200020403FC04C +:1046F00024400B0030C0204020403FC020400040FC +:10470000004000C03FC03C0003C03C003FC0000070 +:1047100020403FC00C4023003FC020001F802040AD +:10472000204020401F80000020403FC02440240043 +:10473000180000001F802140214020E01FA0000041 +:1047400020403FC02440260019C0004018C024402B +:104750002440224031800000300020403FC02040F3 +:104760003000000020003F80004000403F802000DB +:1047700020003E0001C0070038002000380007C0BC +:104780003C0007C038000000204039C0060039C096 +:10479000204000002000384007C0384020000000C2 +:1047A000304021C02640384020C0000000000000FA +:1047B0007FE0402040200000000070000C000380DB +:1047C000004000000000402040207FE0000000008A +:1047D0000000200040002000000000000010001039 +:1047E0000010001000100010000000004000000049 +:1047F00000000000000002800540054003C00040AA +:1048000020003FC0044004400380000000000380FB +:10481000044004400640000000000380044024409F +:104820003FC00040000003800540054003400000F9 +:10483000000004401FC0244024402000000002E08B +:10484000055005500650042020403FC0044004009D +:1048500003C000400000044027C0004000000000EA +:1048600000100010041027E00000000020403FC0AE +:104870000140070004C00440204020403FC00040E9 +:104880000040000007C0040007C0040003C000008F +:10489000044007C00440040003C00040000003803F +:1048A0000440044003800000041007F0045004405A +:1048B00003800000000003800440045007F0001053 +:1048C000044007C00240040004000000000006404D +:1048D0000540054004C00000000004001F800440A3 +:1048E00000400000040007800040044007C0004072 +:1048F0000400070004C0018006000400060001C097 +:10490000070001C006000000044006C0010006C008 +:10491000044000000410071004E0018006000400B9 +:104920000000044005C006400440000000000000F4 +:1049300004007BE040200000000000000000FFF0C9 +:1049400000000000000040207BE0040000000000A8 +:1049500040008000400020002000400000000000D7 +:104960000000000000000000000000000000000047 +:104970000000000000000000000000000000000037 +:104980000000000000000000000000000000000027 +:104990000000000000000000000000000000000017 +:1049A00000000006000000000000001E00000000E3 +:1049B000000000DE00000000000000D80000000041 +:1049C000000000D800000000000000D80000000037 +:1049D000000000DE00000000000000FE00000000FB +:1049E000000000F60000000000000072000000005F +:1049F00000000000000000000000007C000000003B +:104A0000000000FE00000000000000C600000000E2 +:104A1000000000C600000000000000C6000000000A +:104A2000000000FE000000000000007C000000000C +:104A300000000000000000000000001E0000000058 +:104A4000000000DE00000000000000D600000000B2 +:104A5000000000D600000000000000D600000000AA +:104A6000000000D600000000000000DE4000000052 +:104A7000000000FE600000000010006C70000000EC +:104A8000003000007800000000F0007C7C00000096 +:104A900007F000FE7E0000003FF000C67F0000012E +:104AA000FFF000C67F80000FFFF000C67FC0007FD0 +:104AB000FFF000FE7FE003FFFFF0007C7FF03FFF90 +:104AC000FFF000027FF83FFFFFF000067FFC3FFF92 +:104AD000FFF0001E7FFE3FFFFFF000BC7FFF3FFFA7 +:104AE000FFF000E07FFFBFFFFF8000F87FFFFFFFC8 +:104AF000FC00003E7FFFFFFFE000000E7FFFFFFF96 +:104B0000000000B87FFFFFF8000000E07FFFFFF02B +:104B1000000000FE7FFFFFF00000001E7FFFFFF09F +:104B2000000000027FFFFFF0000000007FEFFFF0B9 +:104B3000020000067FE7FFF00200000E7FE3FFF0B7 +:104B40000200001C7FE1FFF8030000BA7FE0FFFCD9 +:104B5000030000F67FE07FFE038000E67FE03FFF7A +:104B6000038000F67FE03FFF83C0003E7FE03FFF11 +:104B7000C3C0000E7FE03FFFE3E000027FE03FFFA5 +:104B8000F3E000007FE03FFFFBF000027FE03FFF2B +:104B9000FFF000667FE03FFFFFF800F67FE03FFF99 +:104BA000FFF800D67FE03FFFFFFC00D67FF07FFFDD +:104BB000FFFC00D67FF8FFF7FFFE00D67FFFFFF374 +:104BC000FFFE00DE3FFFFFE1FFFF008C3FFFFFE045 +:104BD000FFCF00401FFFFFC07FC780C01FFFFFC087 +:104BE0003FC380C00FFFFF801FC1C0FE07FFFF0053 +:104BF0000FC0C0FE03FFFE0007C060C001FFFC0045 +:104C000003C020C0007FF00001C00086000F8000BC +:104C100000C0001600000000004000D600000000A8 +:104C2000000000D600000000000000D600000000D8 +:104C3000000000D600000000000000D600000000C8 +:104C4000000000D000000000000000C000000000D4 +:104C500000000006000000000000001E0000000030 +:104C6000000000DE00000000000000D8000000008E +:104C7000000000D800000000000000D80000000084 +:104C8000000000DE00000000000000DE0000000068 +:104C9000000000F6000000000000007200000000AC +:104CA00000000000000000000000006200000000A2 +:104CB000000000F600000000000000F60000000008 +:104CC000000000D600000000000000D60000000038 +:104CD000000000D600000000000000DE0000000020 +:104CE0000000008C00000000000000000000000038 +:104CF00000000000000000000000000000000000B4 +:104D000000000000000000000000000000000000A3 +:104D10000000000000000000000000000000000093 +:104D20000000000000000000000000000000000083 +:104D30000000000000000000000000000000000073 +:104D40000000000000000000000000000000000063 +:104D50000000000000000000000000000100000052 +:104D6000000000400AD7A33B0000004000007A4644 +:104D700000007A4600000000000000000000000073 +:104D80000000000000000000000000000000000023 +:104D90000000000000000000CDCCCC3D0AD7A33BB2 +:104DA0000000000000007A4600007A460000000083 +:104DB00000000000000000000000000000000000F3 +:104DC00000000000000000000000000001000000E2 +:104DD0000000204200002041000000000060EA4680 +:104DE0000060EA4600000000000000000000000033 +:104DF00000000000000000000000000000000000B3 +:104E000000000000000000000000404100004040A1 +:104E10000000A04000401C4600401C46000000006E +:104E20000000000000000000000000000000000082 +:104E30000000000000000000000000000006101646 +:104E400000061016644E000800000020200000003C +:104E5000C8300008844E000820000020180D000013 +:104E6000D8300008000000000024F400000000001A +:104E70000000000000000000010000001000000021 +:044E8000000000002E :04000005080001AD41 :00000001FF diff --git a/Standard_robot/README.md b/Standard_robot/README.md index 7d632b3..644e783 100644 --- a/Standard_robot/README.md +++ b/Standard_robot/README.md @@ -14,10 +14,4 @@ - Modules - Consist of a driver, device, controller, and algorithm, which can realize a specific function. (i.e: Gimbal, Chassis) -Notre structure - - - -Inspiration du GitHub de RoboMaster - - \ No newline at end of file + \ No newline at end of file diff --git a/Standard_robot/Src/can.c b/Standard_robot/Src/can.c new file mode 100644 index 0000000..dc0dc5c --- /dev/null +++ b/Standard_robot/Src/can.c @@ -0,0 +1,117 @@ +/** + ****************************************************************************** + * File Name : CAN.c + * Description : This file provides code for the configuration + * of the CAN instances. + ****************************************************************************** + * @attention + * + * <h2><center>© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.</center></h2> + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "can.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +CAN_HandleTypeDef hcan1; + +/* CAN1 init function */ +void MX_CAN1_Init(void) +{ + + hcan1.Instance = CAN1; + hcan1.Init.Prescaler = 3; + hcan1.Init.Mode = CAN_MODE_NORMAL; + hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ; + hcan1.Init.TimeSeg1 = CAN_BS1_9TQ; + hcan1.Init.TimeSeg2 = CAN_BS2_4TQ; + hcan1.Init.TimeTriggeredMode = DISABLE; + hcan1.Init.AutoBusOff = ENABLE; + hcan1.Init.AutoWakeUp = DISABLE; + hcan1.Init.AutoRetransmission = DISABLE; + hcan1.Init.ReceiveFifoLocked = DISABLE; + hcan1.Init.TransmitFifoPriority = DISABLE; + if (HAL_CAN_Init(&hcan1) != HAL_OK) + { + Error_Handler(); + } + +} + +void HAL_CAN_MspInit(CAN_HandleTypeDef* canHandle) +{ + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(canHandle->Instance==CAN1) + { + /* USER CODE BEGIN CAN1_MspInit 0 */ + + /* USER CODE END CAN1_MspInit 0 */ + /* CAN1 clock enable */ + __HAL_RCC_CAN1_CLK_ENABLE(); + + __HAL_RCC_GPIOD_CLK_ENABLE(); + /**CAN1 GPIO Configuration + PD0 ------> CAN1_RX + PD1 ------> CAN1_TX + */ + GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF9_CAN1; + HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); + + /* CAN1 interrupt Init */ + HAL_NVIC_SetPriority(CAN1_TX_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(CAN1_TX_IRQn); + HAL_NVIC_SetPriority(CAN1_RX0_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(CAN1_RX0_IRQn); + /* USER CODE BEGIN CAN1_MspInit 1 */ + + /* USER CODE END CAN1_MspInit 1 */ + } +} + +void HAL_CAN_MspDeInit(CAN_HandleTypeDef* canHandle) +{ + + if(canHandle->Instance==CAN1) + { + /* USER CODE BEGIN CAN1_MspDeInit 0 */ + + /* USER CODE END CAN1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_CAN1_CLK_DISABLE(); + + /**CAN1 GPIO Configuration + PD0 ------> CAN1_RX + PD1 ------> CAN1_TX + */ + HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1); + + /* CAN1 interrupt Deinit */ + HAL_NVIC_DisableIRQ(CAN1_TX_IRQn); + HAL_NVIC_DisableIRQ(CAN1_RX0_IRQn); + /* USER CODE BEGIN CAN1_MspDeInit 1 */ + + /* USER CODE END CAN1_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Standard_robot/Src/dma.c b/Standard_robot/Src/dma.c index c1bc8ee..8c6618f 100644 --- a/Standard_robot/Src/dma.c +++ b/Standard_robot/Src/dma.c @@ -42,6 +42,9 @@ void MX_DMA_Init(void) __HAL_RCC_DMA2_CLK_ENABLE(); /* DMA interrupt init */ + /* DMA2_Stream2_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn); /* DMA2_Stream7_IRQn interrupt configuration */ HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 0, 0); HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn); diff --git a/Standard_robot/Src/gpio.c b/Standard_robot/Src/gpio.c index 69a65cb..2f78994 100644 --- a/Standard_robot/Src/gpio.c +++ b/Standard_robot/Src/gpio.c @@ -45,15 +45,31 @@ void MX_GPIO_Init(void) /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOD_CLK_ENABLE(); + __HAL_RCC_GPIOI_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOG_CLK_ENABLE(); + __HAL_RCC_GPIOE_CLK_ENABLE(); + __HAL_RCC_GPIOF_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOB, OLED_DC_Pin|OLED_RST_Pin, GPIO_PIN_RESET); + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(Z_GPIO_Port, Z_Pin, GPIO_PIN_RESET); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(GPIOH, POWER1_CTRL_Pin|POWER2_CTRL_Pin|POWER4_CTRL_Pin, GPIO_PIN_RESET); + /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(LED_A_GPIO_Port, LED_A_Pin, GPIO_PIN_RESET); + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(LED_RED_GPIO_Port, LED_RED_Pin, GPIO_PIN_RESET); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(LED_GREEN_GPIO_Port, LED_GREEN_Pin, GPIO_PIN_RESET); + /*Configure GPIO pins : PBPin PBPin */ GPIO_InitStruct.Pin = OLED_DC_Pin|OLED_RST_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; @@ -61,6 +77,26 @@ void MX_GPIO_Init(void) GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + /*Configure GPIO pin : PtPin */ + GPIO_InitStruct.Pin = Z_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(Z_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pins : PHPin PHPin PHPin */ + GPIO_InitStruct.Pin = POWER1_CTRL_Pin|POWER2_CTRL_Pin|POWER4_CTRL_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); + + /*Configure GPIO pin : PtPin */ + GPIO_InitStruct.Pin = POWER3_CTRL_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(POWER3_CTRL_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = LED_A_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; @@ -68,6 +104,26 @@ void MX_GPIO_Init(void) GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(LED_A_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pin : PtPin */ + GPIO_InitStruct.Pin = KEY_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(KEY_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pin : PtPin */ + GPIO_InitStruct.Pin = LED_RED_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(LED_RED_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pin : PtPin */ + GPIO_InitStruct.Pin = LED_GREEN_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(LED_GREEN_GPIO_Port, &GPIO_InitStruct); + } /* USER CODE BEGIN 2 */ diff --git a/Standard_robot/Src/main.c b/Standard_robot/Src/main.c index 6142dca..e4a1022 100644 --- a/Standard_robot/Src/main.c +++ b/Standard_robot/Src/main.c @@ -21,8 +21,10 @@ /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "adc.h" +#include "can.h" #include "dma.h" #include "spi.h" +#include "tim.h" #include "usart.h" #include "gpio.h" @@ -31,8 +33,18 @@ #include "bsp_oled.h" #include "bsp_usart.h" +#include "bsp_key.h" +#include "bsp_led.h" +#include "bsp_can.h" +#include "bsp_pwm.h" +#include "bsp_uart.h" + + +#include "pid.h" +#include "motor.h" #include "oled.h" #include "string.h" +#include "list_motor.h" /* USER CODE END Includes */ @@ -54,6 +66,15 @@ /* Private variables ---------------------------------------------------------*/ /* USER CODE BEGIN PV */ +int16_t led_cnt; +float target_speed; +motor_t m2006; + +extern rc_info_t rc; +//char buf[200]; +//uint16_t pwm_pulse = 1080; // default pwm pulse width:1080~1920 + + /* USER CODE END PV */ @@ -101,33 +122,117 @@ int main(void) MX_USART1_UART_Init(); MX_ADC1_Init(); MX_SPI1_Init(); + MX_CAN1_Init(); + MX_TIM1_Init(); /* USER CODE BEGIN 2 */ - usart1_tx_dma_init(); + HAL_GPIO_WritePin(GPIOH, POWER1_CTRL_Pin|POWER2_CTRL_Pin|POWER3_CTRL_Pin|POWER4_CTRL_Pin, GPIO_PIN_SET); // switch on 24v power + /* open dbus uart receive it */ + dbus_uart_init(); + + //Init OLED oled_init(); oled_clear(Pen_Clear); oled_LOGO(); oled_refresh_gram(); HAL_GPIO_WritePin(LED_A_GPIO_Port, LED_A_Pin, GPIO_PIN_RESET); - - HAL_Delay(500); + HAL_Delay(10); oled_clear(Pen_Clear); oled_refresh_gram(); + + can_user_init(&hcan1); // config can filter, start can + pwm_init(); // start pwm output + motors_init(); + //PWM_ScaleAll(&htim1); // etalonnage du PWM entre 0 et 1 (a faire uniquement lors de l'installation des moteurs la 1ere fois) + + + /* USER CODE END 2 */ + + /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ - - /* USER CODE BEGIN 3 */ - oled_print_button(1, 1); - HAL_Delay(100); + + /* USER CODE BEGIN 3 */ + + /* scan is key be pressed down to change target speed and pwm pulse */ + if (key_scan()) + { + m3508_frontleft.target += 500; + m3508_frontright.target += 500; + m3508_backleft.target += 500; + m3508_backright.target += 500; + + gm6020.target += 40; + + if (m3508_frontleft.target > 2000) + { + m3508_frontleft.target = 0; + m3508_frontright.target = 0; + m3508_backleft.target = 0; + m3508_backright.target = 0; + + gm6020.target = 0; + } +// PWM_SetAllDuty(&htim1, 0.1f, 0.1f, 0.1f, 0.1f); +// HAL_Delay(2500); +// PWM_SetAllDuty(&htim1, 0, 0, 0, 0); + } + + m3508_frontleft.target = 4*rc.ch1 + 4*rc.ch2; + m3508_frontright.target = -(4*rc.ch1 - 4*rc.ch2); + m3508_backleft.target = -(4*rc.ch1 + 4*rc.ch2); + m3508_backright.target = 4*rc.ch1 - 4*rc.ch2; + + get_motor_data(&m3508_frontleft); + get_motor_data(&m3508_frontright); + get_motor_data(&m3508_backleft); + get_motor_data(&m3508_backright); + + get_motor_data(&gm6020); + + /*Affichage de donnees sur le OLED*/ + oled_clear(Pen_Clear); + oled_printf(1, 1, "GM6020"); + oled_printf(2, 1," Target: %f", gm6020.target); + oled_printf(3, 1," Speed: %i", gm6020.info.M3508_info.speed); + oled_printf(4, 1," Angle: %i", gm6020.info.M3508_info.angle); + oled_refresh_gram(); + +// oled_clear(Pen_Clear); +// oled_printf(0, 1, "Manette"); +// oled_printf(1, 1," CH1: %i", rc.ch1); +// oled_printf(2, 1," CH2: %i", rc.ch2); +// oled_printf(3, 1," CH3: %i", rc.ch3); +// oled_printf(4, 1," CH4: %i", rc.ch4); +// oled_refresh_gram(); + + /* led blink */ + led_cnt ++; + if (led_cnt == 250) + { + led_cnt = 0; + LED_RED_TOGGLE(); //blink cycle 500ms + } + + set_motor_speed(&m3508_frontleft); + set_motor_speed(&m3508_frontright); + set_motor_speed(&m3508_backleft); + set_motor_speed(&m3508_backright); + + set_motor_speed(&gm6020); + + set_motor_voltage(0, &m3508_frontleft, &m3508_frontright, &m3508_backleft, &m3508_backright); //0x200 + set_motor_voltage(1, &gm6020, NULL, NULL, NULL); //0x1ff + HAL_Delay(10); } /* USER CODE END 3 */ } diff --git a/Standard_robot/Src/stm32f4xx_it.c b/Standard_robot/Src/stm32f4xx_it.c index 25e8ef6..553248f 100644 --- a/Standard_robot/Src/stm32f4xx_it.c +++ b/Standard_robot/Src/stm32f4xx_it.c @@ -23,6 +23,7 @@ #include "stm32f4xx_it.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ +#include "bsp_uart.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -56,6 +57,8 @@ /* USER CODE END 0 */ /* External variables --------------------------------------------------------*/ +extern CAN_HandleTypeDef hcan1; +extern DMA_HandleTypeDef hdma_usart1_rx; extern DMA_HandleTypeDef hdma_usart1_tx; extern UART_HandleTypeDef huart1; /* USER CODE BEGIN EV */ @@ -198,13 +201,41 @@ void SysTick_Handler(void) /* please refer to the startup file (startup_stm32f4xx.s). */ /******************************************************************************/ +/** + * @brief This function handles CAN1 TX interrupts. + */ +void CAN1_TX_IRQHandler(void) +{ + /* USER CODE BEGIN CAN1_TX_IRQn 0 */ + + /* USER CODE END CAN1_TX_IRQn 0 */ + HAL_CAN_IRQHandler(&hcan1); + /* USER CODE BEGIN CAN1_TX_IRQn 1 */ + + /* USER CODE END CAN1_TX_IRQn 1 */ +} + +/** + * @brief This function handles CAN1 RX0 interrupts. + */ +void CAN1_RX0_IRQHandler(void) +{ + /* USER CODE BEGIN CAN1_RX0_IRQn 0 */ + + /* USER CODE END CAN1_RX0_IRQn 0 */ + HAL_CAN_IRQHandler(&hcan1); + /* USER CODE BEGIN CAN1_RX0_IRQn 1 */ + + /* USER CODE END CAN1_RX0_IRQn 1 */ +} + /** * @brief This function handles USART1 global interrupt. */ void USART1_IRQHandler(void) { /* USER CODE BEGIN USART1_IRQn 0 */ - + uart_receive_handler(&huart1); /* USER CODE END USART1_IRQn 0 */ HAL_UART_IRQHandler(&huart1); /* USER CODE BEGIN USART1_IRQn 1 */ @@ -212,6 +243,20 @@ void USART1_IRQHandler(void) /* USER CODE END USART1_IRQn 1 */ } +/** + * @brief This function handles DMA2 stream2 global interrupt. + */ +void DMA2_Stream2_IRQHandler(void) +{ + /* USER CODE BEGIN DMA2_Stream2_IRQn 0 */ + + /* USER CODE END DMA2_Stream2_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_usart1_rx); + /* USER CODE BEGIN DMA2_Stream2_IRQn 1 */ + + /* USER CODE END DMA2_Stream2_IRQn 1 */ +} + /** * @brief This function handles DMA2 stream7 global interrupt. */ diff --git a/Standard_robot/Src/tim.c b/Standard_robot/Src/tim.c new file mode 100644 index 0000000..0f2e4b3 --- /dev/null +++ b/Standard_robot/Src/tim.c @@ -0,0 +1,165 @@ +/** + ****************************************************************************** + * File Name : TIM.c + * Description : This file provides code for the configuration + * of the TIM instances. + ****************************************************************************** + * @attention + * + * <h2><center>© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.</center></h2> + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "tim.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +TIM_HandleTypeDef htim1; + +/* TIM1 init function */ +void MX_TIM1_Init(void) +{ + TIM_MasterConfigTypeDef sMasterConfig = {0}; + TIM_OC_InitTypeDef sConfigOC = {0}; + TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0}; + + htim1.Instance = TIM1; + htim1.Init.Prescaler = TIM_PSC_APB1; + htim1.Init.CounterMode = TIM_COUNTERMODE_UP; + htim1.Init.Period = PWM_RESOLUTION-1; + htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim1.Init.RepetitionCounter = 0; + htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_PWM_Init(&htim1) != HAL_OK) + { + Error_Handler(); + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK) + { + Error_Handler(); + } + sConfigOC.OCMode = TIM_OCMODE_PWM1; + sConfigOC.Pulse = 1000; + sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; + sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH; + sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; + sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET; + sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET; + if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) + { + Error_Handler(); + } + if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_2) != HAL_OK) + { + Error_Handler(); + } + if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_3) != HAL_OK) + { + Error_Handler(); + } + if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_4) != HAL_OK) + { + Error_Handler(); + } + sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE; + sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE; + sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF; + sBreakDeadTimeConfig.DeadTime = 0; + sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE; + sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH; + sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE; + if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK) + { + Error_Handler(); + } + HAL_TIM_MspPostInit(&htim1); + +} + +void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* tim_pwmHandle) +{ + + if(tim_pwmHandle->Instance==TIM1) + { + /* USER CODE BEGIN TIM1_MspInit 0 */ + + /* USER CODE END TIM1_MspInit 0 */ + /* TIM1 clock enable */ + __HAL_RCC_TIM1_CLK_ENABLE(); + /* USER CODE BEGIN TIM1_MspInit 1 */ + + /* USER CODE END TIM1_MspInit 1 */ + } +} +void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) +{ + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(timHandle->Instance==TIM1) + { + /* USER CODE BEGIN TIM1_MspPostInit 0 */ + + /* USER CODE END TIM1_MspPostInit 0 */ + + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOE_CLK_ENABLE(); + /**TIM1 GPIO Configuration + PA9 ------> TIM1_CH2 + PA8 ------> TIM1_CH1 + PE13 ------> TIM1_CH3 + PE14 ------> TIM1_CH4 + */ + GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_8; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF1_TIM1; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF1_TIM1; + HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); + + /* USER CODE BEGIN TIM1_MspPostInit 1 */ + + /* USER CODE END TIM1_MspPostInit 1 */ + } + +} + +void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* tim_pwmHandle) +{ + + if(tim_pwmHandle->Instance==TIM1) + { + /* USER CODE BEGIN TIM1_MspDeInit 0 */ + + /* USER CODE END TIM1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM1_CLK_DISABLE(); + /* USER CODE BEGIN TIM1_MspDeInit 1 */ + + /* USER CODE END TIM1_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Standard_robot/Src/usart.c b/Standard_robot/Src/usart.c index 8aafaf2..6255964 100644 --- a/Standard_robot/Src/usart.c +++ b/Standard_robot/Src/usart.c @@ -25,6 +25,7 @@ /* USER CODE END 0 */ UART_HandleTypeDef huart1; +DMA_HandleTypeDef hdma_usart1_rx; DMA_HandleTypeDef hdma_usart1_tx; /* USART1 init function */ @@ -33,10 +34,10 @@ void MX_USART1_UART_Init(void) { huart1.Instance = USART1; - huart1.Init.BaudRate = 115200; + huart1.Init.BaudRate = 100000; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; - huart1.Init.Parity = UART_PARITY_NONE; + huart1.Init.Parity = UART_PARITY_EVEN; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; @@ -66,12 +67,30 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) */ GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_PULLUP; + GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF7_USART1; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /* USART1 DMA Init */ + /* USART1_RX Init */ + hdma_usart1_rx.Instance = DMA2_Stream2; + hdma_usart1_rx.Init.Channel = DMA_CHANNEL_4; + hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; + hdma_usart1_rx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_usart1_rx.Init.MemInc = DMA_MINC_ENABLE; + hdma_usart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_usart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_usart1_rx.Init.Mode = DMA_CIRCULAR; + hdma_usart1_rx.Init.Priority = DMA_PRIORITY_LOW; + hdma_usart1_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; + if (HAL_DMA_Init(&hdma_usart1_rx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(uartHandle,hdmarx,hdma_usart1_rx); + /* USART1_TX Init */ hdma_usart1_tx.Instance = DMA2_Stream7; hdma_usart1_tx.Init.Channel = DMA_CHANNEL_4; @@ -117,6 +136,7 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7|GPIO_PIN_6); /* USART1 DMA DeInit */ + HAL_DMA_DeInit(uartHandle->hdmarx); HAL_DMA_DeInit(uartHandle->hdmatx); /* USART1 interrupt Deinit */ diff --git a/Standard_robot/Standard_robot.ioc b/Standard_robot/Standard_robot.ioc index dbfc3f9..3b64c7e 100644 --- a/Standard_robot/Standard_robot.ioc +++ b/Standard_robot/Standard_robot.ioc @@ -6,54 +6,92 @@ ADC1.NbrOfConversionFlag=1 ADC1.Rank-0\#ChannelRegularConversion=1 ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_3CYCLES ADC1.master=1 -Dma.Request0=USART1_TX -Dma.RequestsNb=1 -Dma.USART1_TX.0.Direction=DMA_MEMORY_TO_PERIPH -Dma.USART1_TX.0.FIFOMode=DMA_FIFOMODE_DISABLE -Dma.USART1_TX.0.Instance=DMA2_Stream7 -Dma.USART1_TX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE -Dma.USART1_TX.0.MemInc=DMA_MINC_ENABLE -Dma.USART1_TX.0.Mode=DMA_NORMAL -Dma.USART1_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE -Dma.USART1_TX.0.PeriphInc=DMA_PINC_DISABLE -Dma.USART1_TX.0.Priority=DMA_PRIORITY_LOW -Dma.USART1_TX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode +CAN1.ABOM=ENABLE +CAN1.BS1=CAN_BS1_9TQ +CAN1.BS2=CAN_BS2_4TQ +CAN1.CalculateTimeQuantum=71.42857142857143 +CAN1.IPParameters=CalculateTimeQuantum,Prescaler,ABOM,BS1,BS2 +CAN1.Prescaler=3 +Dma.Request0=USART1_RX +Dma.Request1=USART1_TX +Dma.RequestsNb=2 +Dma.USART1_RX.0.Direction=DMA_PERIPH_TO_MEMORY +Dma.USART1_RX.0.FIFOMode=DMA_FIFOMODE_DISABLE +Dma.USART1_RX.0.Instance=DMA2_Stream2 +Dma.USART1_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.USART1_RX.0.MemInc=DMA_MINC_ENABLE +Dma.USART1_RX.0.Mode=DMA_CIRCULAR +Dma.USART1_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.USART1_RX.0.PeriphInc=DMA_PINC_DISABLE +Dma.USART1_RX.0.Priority=DMA_PRIORITY_LOW +Dma.USART1_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode +Dma.USART1_TX.1.Direction=DMA_MEMORY_TO_PERIPH +Dma.USART1_TX.1.FIFOMode=DMA_FIFOMODE_DISABLE +Dma.USART1_TX.1.Instance=DMA2_Stream7 +Dma.USART1_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.USART1_TX.1.MemInc=DMA_MINC_ENABLE +Dma.USART1_TX.1.Mode=DMA_NORMAL +Dma.USART1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.USART1_TX.1.PeriphInc=DMA_PINC_DISABLE +Dma.USART1_TX.1.Priority=DMA_PRIORITY_LOW +Dma.USART1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode File.Version=6 +GPIO.groupedBy=Group By Peripherals KeepUserPlacement=false Mcu.Family=STM32F4 Mcu.IP0=ADC1 -Mcu.IP1=DMA -Mcu.IP2=NVIC -Mcu.IP3=RCC -Mcu.IP4=SPI1 -Mcu.IP5=SYS -Mcu.IP6=USART1 -Mcu.IPNb=7 +Mcu.IP1=CAN1 +Mcu.IP2=DMA +Mcu.IP3=NVIC +Mcu.IP4=RCC +Mcu.IP5=SPI1 +Mcu.IP6=SYS +Mcu.IP7=TIM1 +Mcu.IP8=USART1 +Mcu.IPNb=9 Mcu.Name=STM32F427I(G-I)Hx Mcu.Package=UFBGA176 Mcu.Pin0=PB4 Mcu.Pin1=PB3 -Mcu.Pin10=PA6 -Mcu.Pin11=PA7 -Mcu.Pin12=PB10 -Mcu.Pin13=VP_SYS_VS_Systick +Mcu.Pin10=PA9 +Mcu.Pin11=PH2 +Mcu.Pin12=PA8 +Mcu.Pin13=PH0/OSC_IN +Mcu.Pin14=PH3 +Mcu.Pin15=PH1/OSC_OUT +Mcu.Pin16=PH4 +Mcu.Pin17=PG8 +Mcu.Pin18=PH5 +Mcu.Pin19=PB2/BOOT1 Mcu.Pin2=PA14 +Mcu.Pin20=PE13 +Mcu.Pin21=PA6 +Mcu.Pin22=PE11 +Mcu.Pin23=PE14 +Mcu.Pin24=PA7 +Mcu.Pin25=PF14 +Mcu.Pin26=PB10 +Mcu.Pin27=VP_SYS_VS_Systick Mcu.Pin3=PA13 Mcu.Pin4=PB9 Mcu.Pin5=PB7 Mcu.Pin6=PB6 -Mcu.Pin7=PH0/OSC_IN -Mcu.Pin8=PH1/OSC_OUT -Mcu.Pin9=PG8 -Mcu.PinsNb=14 +Mcu.Pin7=PD0 +Mcu.Pin8=PD1 +Mcu.Pin9=PI2 +Mcu.PinsNb=28 Mcu.ThirdPartyNb=0 -Mcu.UserConstants= +Mcu.UserConstants=PWM_FREQUENCE,50;PWM_RESOLUTION,10000;APB1_TIMER_CLOCKS,84000000;PWM_DEFAULT_DUTY,5000;APB2_TIMER_CLOCKS,168000000;TIM_PSC_APB1,((APB1_TIMER_CLOCKS/PWM_FREQUENCE)/PWM_RESOLUTION -1);TIM_PSC_APB2,((APB2_TIMER_CLOCKS/PWM_FREQUENCE)/PWM_RESOLUTION -1) Mcu.UserName=STM32F427IIHx -MxCube.Version=5.3.0 -MxDb.Version=DB.5.0.30 +MxCube.Version=5.5.0 +MxDb.Version=DB.5.0.50 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.CAN1_RX0_IRQn=true\:0\:0\:true\:false\:true\:true\:true +NVIC.CAN1_TX_IRQn=true\:0\:0\:false\:false\:true\:true\:true +NVIC.DMA2_Stream2_IRQn=true\:0\:0\:true\:false\:true\:false\:true NVIC.DMA2_Stream7_IRQn=true\:0\:0\:false\:false\:true\:false\:true NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.ForceEnableDMAVector=true NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false @@ -61,7 +99,7 @@ NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true -NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true +NVIC.USART1_IRQn=true\:0\:0\:true\:false\:true\:true\:true NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false PA13.Mode=Serial_Wire PA13.Signal=SYS_JTMS-SWDIO @@ -71,10 +109,16 @@ PA6.Signal=ADCx_IN6 PA7.Locked=true PA7.Mode=Full_Duplex_Master PA7.Signal=SPI1_MOSI +PA8.Signal=S_TIM1_CH1 +PA9.Signal=S_TIM1_CH2 PB10.GPIOParameters=GPIO_Label PB10.GPIO_Label=OLED_RST PB10.Locked=true PB10.Signal=GPIO_Output +PB2/BOOT1.GPIOParameters=GPIO_Label +PB2/BOOT1.GPIO_Label=KEY +PB2/BOOT1.Locked=true +PB2/BOOT1.Signal=GPIO_Input PB3.Mode=Full_Duplex_Master PB3.Signal=SPI1_SCK PB4.Mode=Full_Duplex_Master @@ -95,6 +139,24 @@ PCC.Seq0=0 PCC.Series=STM32F4 PCC.Temperature=25 PCC.Vdd=3.3 +PD0.Locked=true +PD0.Mode=Master +PD0.Signal=CAN1_RX +PD1.Locked=true +PD1.Mode=Master +PD1.Signal=CAN1_TX +PE11.GPIOParameters=GPIO_Label +PE11.GPIO_Label=LED_RED +PE11.Locked=true +PE11.Signal=GPIO_Output +PE13.Locked=true +PE13.Signal=S_TIM1_CH3 +PE14.Locked=true +PE14.Signal=S_TIM1_CH4 +PF14.GPIOParameters=GPIO_Label +PF14.GPIO_Label=LED_GREEN +PF14.Locked=true +PF14.Signal=GPIO_Output PG8.GPIOParameters=GPIO_Label PG8.GPIO_Label=LED_A PG8.Locked=true @@ -103,6 +165,26 @@ PH0/OSC_IN.Mode=HSE-External-Oscillator PH0/OSC_IN.Signal=RCC_OSC_IN PH1/OSC_OUT.Mode=HSE-External-Oscillator PH1/OSC_OUT.Signal=RCC_OSC_OUT +PH2.GPIOParameters=GPIO_Label +PH2.GPIO_Label=POWER1_CTRL +PH2.Locked=true +PH2.Signal=GPIO_Output +PH3.GPIOParameters=GPIO_Label +PH3.GPIO_Label=POWER2_CTRL +PH3.Locked=true +PH3.Signal=GPIO_Output +PH4.GPIOParameters=GPIO_Label +PH4.GPIO_Label=POWER3_CTRL +PH4.Locked=true +PH4.Signal=GPIO_Input +PH5.GPIOParameters=GPIO_Label +PH5.GPIO_Label=POWER4_CTRL +PH5.Locked=true +PH5.Signal=GPIO_Output +PI2.GPIOParameters=GPIO_Label +PI2.GPIO_Label=Z +PI2.Locked=true +PI2.Signal=GPIO_Output PinOutPanel.CurrentBGAView=Top PinOutPanel.RotationAngle=0 ProjectManager.AskForMigrate=true @@ -131,7 +213,7 @@ ProjectManager.StackSize=0x400 ProjectManager.TargetToolchain=MDK-ARM V5 ProjectManager.ToolChainLocation= ProjectManager.UnderRoot=false -ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_ADC1_Init-ADC1-false-HAL-true,5-MX_SPI1_Init-SPI1-false-HAL-true +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_ADC1_Init-ADC1-false-HAL-true,6-MX_SPI1_Init-SPI1-false-HAL-true,7-MX_CAN1_Init-CAN1-false-HAL-true,8-MX_TIM1_Init-TIM1-false-HAL-true RCC.48MHZClocksFreq_Value=84000000 RCC.AHBFreq_Value=168000000 RCC.APB1CLKDivider=RCC_HCLK_DIV4 @@ -172,13 +254,34 @@ RCC.VcooutputI2S=192000000 RCC.VcooutputI2SQ=192000000 SH.ADCx_IN6.0=ADC1_IN6,IN6 SH.ADCx_IN6.ConfNb=1 +SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1 +SH.S_TIM1_CH1.ConfNb=1 +SH.S_TIM1_CH2.0=TIM1_CH2,PWM Generation2 CH2 +SH.S_TIM1_CH2.ConfNb=1 +SH.S_TIM1_CH3.0=TIM1_CH3,PWM Generation3 CH3 +SH.S_TIM1_CH3.ConfNb=1 +SH.S_TIM1_CH4.0=TIM1_CH4,PWM Generation4 CH4 +SH.S_TIM1_CH4.ConfNb=1 SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_64 SPI1.CalculateBaudRate=1.3125 MBits/s SPI1.Direction=SPI_DIRECTION_2LINES SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler SPI1.Mode=SPI_MODE_MASTER SPI1.VirtualType=VM_MASTER -USART1.IPParameters=VirtualMode +TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1 +TIM1.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2 +TIM1.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3 +TIM1.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4 +TIM1.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2,Channel-PWM Generation3 CH3,Channel-PWM Generation4 CH4,Prescaler,Period,Pulse-PWM Generation1 CH1,Pulse-PWM Generation2 CH2,Pulse-PWM Generation3 CH3,Pulse-PWM Generation4 CH4 +TIM1.Period=PWM_RESOLUTION-1 +TIM1.Prescaler=TIM_PSC_APB1 +TIM1.Pulse-PWM\ Generation1\ CH1=1000 +TIM1.Pulse-PWM\ Generation2\ CH2=1000 +TIM1.Pulse-PWM\ Generation3\ CH3=1000 +TIM1.Pulse-PWM\ Generation4\ CH4=1000 +USART1.BaudRate=100000 +USART1.IPParameters=VirtualMode,BaudRate,Parity +USART1.Parity=PARITY_EVEN USART1.VirtualMode=VM_ASYNC VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Signal=SYS_VS_Systick -- GitLab