Refs #963.Updated CAN driver in the STM32F0 port and the HAL drivers in all STM32F0 demo programs for compatibility with the latest ST HAL.

git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@749 5dc33758-31d5-4daf-9ae8-b24bf3d40d73
master
Frank Voorburg 3 years ago
parent d54fe54b56
commit f0c0b427cb

@ -1,340 +1,334 @@
bin/openblt_stm32f051.elf: file format elf32-littlearm
bin/openblt_stm32f051.elf
architecture: arm, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x08000000
Program Header:
0x70000001 off 0x00011b30 vaddr 0x08001b30 paddr 0x08001b30 align 2**2
filesz 0x00000008 memsz 0x00000008 flags r--
LOAD off 0x00010000 vaddr 0x08000000 paddr 0x08000000 align 2**16
filesz 0x00001b38 memsz 0x00001b38 flags r-x
LOAD off 0x000200c0 vaddr 0x200000c0 paddr 0x08001b38 align 2**16
filesz 0x00000070 memsz 0x000005a0 flags rw-
private flags = 5000200: [Version5 EABI] [soft-float ABI]
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00001b30 08000000 08000000 00010000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .ARM.exidx 00000008 08001b30 08001b30 00011b30 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .data 00000070 200000c0 08001b38 000200c0 2**2
CONTENTS, ALLOC, LOAD, DATA
3 .bss 00000530 20000130 08001ba8 00020130 2**3
ALLOC
4 .stack_dummy 00000100 20000660 20000660 00020130 2**3
CONTENTS, READONLY
5 .ARM.attributes 00000028 00000000 00000000 00020230 2**0
CONTENTS, READONLY
6 .comment 0000006e 00000000 00000000 00020258 2**0
CONTENTS, READONLY
7 .debug_line 00007eab 00000000 00000000 000202c6 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_info 00007b0e 00000000 00000000 00028171 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_abbrev 00002557 00000000 00000000 0002fc7f 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_aranges 00000890 00000000 00000000 000321d8 2**3
CONTENTS, READONLY, DEBUGGING
11 .debug_loc 00003686 00000000 00000000 00032a68 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_ranges 00000700 00000000 00000000 000360ee 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_macro 0001155b 00000000 00000000 000367ee 2**0
CONTENTS, READONLY, DEBUGGING
14 .debug_str 00050c26 00000000 00000000 00047d49 2**0
CONTENTS, READONLY, DEBUGGING
15 .debug_frame 00001294 00000000 00000000 00098970 2**2
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
08000000 l d .text 00000000 .text
08001b30 l d .ARM.exidx 00000000 .ARM.exidx
200000c0 l d .data 00000000 .data
20000130 l d .bss 00000000 .bss
20000660 l d .stack_dummy 00000000 .stack_dummy
00000000 l d .ARM.attributes 00000000 .ARM.attributes
00000000 l d .comment 00000000 .comment
00000000 l d .debug_line 00000000 .debug_line
00000000 l d .debug_info 00000000 .debug_info
00000000 l d .debug_abbrev 00000000 .debug_abbrev
00000000 l d .debug_aranges 00000000 .debug_aranges
00000000 l d .debug_loc 00000000 .debug_loc
00000000 l d .debug_ranges 00000000 .debug_ranges
00000000 l d .debug_macro 00000000 .debug_macro
00000000 l d .debug_str 00000000 .debug_str
00000000 l d .debug_frame 00000000 .debug_frame
00000000 l df *ABS* 00000000 obj/startup_stm32f0xx.o
00000100 l *ABS* 00000000 Stack_Size
00000000 l *ABS* 00000000 Heap_Size
080001ae l .text 00000000 .flash_to_ram_loop_end
080001a4 l .text 00000000 .flash_to_ram_loop
080001d8 l .text 00000000 .fill_zero_bss
080001d4 l .text 00000000 .loop_zero_bss
00000000 l df *ABS* 00000000 crtstuff.c
08001b2c l O .text 00000000 __EH_FRAME_BEGIN__
080000c0 l F .text 00000000 __do_global_dtors_aux
20000130 l .bss 00000000 completed.8603
2000012c l O .data 00000000 __do_global_dtors_aux_fini_array_entry
080000e8 l F .text 00000000 frame_dummy
20000134 l .bss 00000000 object.8608
20000128 l O .data 00000000 __frame_dummy_init_array_entry
00000000 l df *ABS* 00000000 /opt/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv6-m/crt0.o
00000000 l df *ABS* 00000000 main.c
08000238 l F .text 000000b0 SystemClock_Config
080002e8 l F .text 0000000c Init
00000000 l df *ABS* 00000000 system_stm32f0xx.c
00000000 l df *ABS* 00000000 stm32f0xx_ll_utils.c
00000000 l df *ABS* 00000000 stm32f0xx_ll_usart.c
00000000 l df *ABS* 00000000 stm32f0xx_ll_rcc.c
00000000 l df *ABS* 00000000 stm32f0xx_ll_gpio.c
00000000 l df *ABS* 00000000 stm32f0xx_hal_rcc.c
00000000 l df *ABS* 00000000 stm32f0xx_hal_flash_ex.c
080007a0 l F .text 00000024 FLASH_MassErase
00000000 l df *ABS* 00000000 stm32f0xx_hal_flash.c
0800088c l F .text 00000020 FLASH_Program_HalfWord
080008ac l F .text 0000003c FLASH_SetErrorCode
00000000 l df *ABS* 00000000 stm32f0xx_hal_cortex.c
00000000 l df *ABS* 00000000 stm32f0xx_hal.c
00000000 l df *ABS* 00000000 _exit.c
00000000 l df *ABS* 00000000 led.c
2000014c l O .bss 00000004 nextBlinkEvent.6496
20000150 l O .bss 00000002 ledBlinkIntervalMs
20000152 l O .bss 00000001 ledOn.6495
00000000 l df *ABS* 00000000 hooks.c
00000000 l df *ABS* 00000000 xcp.c
08000bc0 l F .text 0000000c XcpProtectResources
08000bcc l F .text 00000014 XcpSetCtoError
08000be0 l F .text 0000001c XcpCmdDisconnect
08000bfc l F .text 00000020 XcpCmdGetStatus
08000c1c l F .text 0000000a XcpCmdSynch
08000c28 l F .text 00000030 XcpCmdGetId
08000c58 l F .text 00000018 XcpCmdSetMta
08000c70 l F .text 0000000a XcpCmdProgramPrepare
08000c7c l F .text 00000028 XcpCmdProgramStart
08000ca4 l F .text 00000040 XcpCmdConnect
08000ce4 l F .text 00000040 XcpCmdUpload
08000d24 l F .text 00000044 XcpCmdShortUpload
08000d68 l F .text 00000024 XcpComputeChecksum
08000d8c l F .text 00000028 XcpCmdBuildCheckSum
08000db4 l F .text 00000044 XcpCmdProgramMax
08000df8 l F .text 00000064 XcpCmdProgram
08000e5c l F .text 0000002c XcpCmdProgramClear
08000e88 l F .text 00000018 XcpCmdProgramReset
08000ea0 l F .text 0000000a XcpTransmitPacket
08001a5c l O .text 00000008 xcpStationId
20000154 l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 cop.c
00000000 l df *ABS* 00000000 com.c
200001a0 l O .bss 00000040 xcpCtoReqPacket.4271
200000c4 l O .data 00000001 comActiveInterface
00000000 l df *ABS* 00000000 boot.c
00000000 l df *ABS* 00000000 backdoor.c
200001e0 l O .bss 00000001 backdoorOpen
200001e4 l O .bss 00000004 backdoorOpenTime
00000000 l df *ABS* 00000000 assert.c
00000000 l df *ABS* 00000000 uart.c
080010dc l F .text 0000001c UartReceiveByte
080010f8 l F .text 0000002c UartTransmitByte
200001e8 l O .bss 00000041 xcpCtoReqPacket.7096
20000229 l O .bss 00000001 xcpCtoRxLength.7097
2000022a l O .bss 00000001 xcpCtoRxInProgress.7098
2000022c l O .bss 00000004 xcpCtoRxStartTime.7099
00000000 l df *ABS* 00000000 timer.c
20000230 l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 nvm.c
00000000 l df *ABS* 00000000 flash.c
080012e0 l F .text 00000044 FlashGetSector
08001324 l F .text 00000038 FlashGetSectorBaseAddr
0800135c l F .text 00000038 FlashGetSectorSize
08001394 l F .text 00000022 FlashInitBlock
080013b8 l F .text 00000056 FlashWriteBlock
08001410 l F .text 00000044 FlashSwitchBlock
08001454 l F .text 00000080 FlashAddToBlock
080014d4 l F .text 0000008e FlashEraseSectors
08001a8c l O .text 0000009c flashLayout
20000234 l O .bss 00000204 bootBlockInfo
20000438 l O .bss 00000204 blockInfo
00000000 l df *ABS* 00000000 cpu.c
00000000 l df *ABS* 00000000 cpu_comp.c
00000000 l df *ABS* 00000000 _udivsi3.o
080017ac l .text 00000000 .udivsi3_skip_div0_test
00000000 l df *ABS* 00000000 _dvmd_tls.o
00000000 l df *ABS* 00000000 exit.c
00000000 l df *ABS* 00000000 init.c
00000000 l df *ABS* 00000000 memset.c
00000000 l df *ABS* 00000000 /opt/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/armv6-m/crti.o
00000000 l df *ABS* 00000000 /opt/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/armv6-m/crtn.o
00000000 l df *ABS* 00000000 impure.c
200000c8 l O .data 00000060 impure_data
00000000 l df *ABS* 00000000 crtstuff.c
08001b2c l O .text 00000000 __FRAME_END__
00000000 l df *ABS* 00000000
2000012c l .data 00000000 __init_array_end
20000128 l .data 00000000 __preinit_array_end
20000128 l .data 00000000 __init_array_start
20000128 l .data 00000000 __preinit_array_start
08000fac g F .text 00000018 ComInit
0800157c g F .text 00000068 FlashWrite
0800197c g O .text 00000008 APBPrescTable
20000660 g .stack_dummy 00000000 __HeapBase
080010d4 g F .text 00000008 AssertFailure
00000000 g *ABS* 00000000 __HEAP_SIZE
08001270 g F .text 0000001c TimerUpdate
08000ed8 g F .text 00000010 XcpPacketTransmitted
200000c0 g .data 00000000 __data_start__
08000538 g F .text 0000001c RCC_GetPCLK1ClockFreq
08000a1c g F .text 00000064 HAL_NVIC_SetPriority
0800020a w F .text 00000002 TIM1_CC_IRQHandler
08000910 g F .text 00000014 HAL_FLASH_Lock
08000fc4 g F .text 00000030 ComTask
080001e4 w F .text 00000002 HardFault_Handler
08000206 w F .text 00000002 ADC1_COMP_IRQHandler
080012a4 g F .text 00000002 SysTick_Handler
080001f0 w F .text 00000002 PVD_IRQHandler
0800104c g F .text 0000001c BootInit
08000794 g F .text 0000000c HAL_RCC_GetHCLKFreq
080001e8 w F .text 00000002 PendSV_Handler
080001e2 w F .text 00000002 NMI_Handler
08001b38 g .ARM.exidx 00000000 __exidx_end
0800021c w F .text 00000002 I2C1_IRQHandler
080010b4 g F .text 00000020 BackDoorInit
08000448 g F .text 0000000c LL_SetSystemCoreClock
08001b38 g .ARM.exidx 00000000 __etext
08000ab8 g F .text 00000024 HAL_DeInit
08000304 g F .text 0000009c HAL_MspInit
08000fa4 g F .text 00000008 CopService
080017a4 g F .text 00000004 CpuIrqDisable
080005c8 g F .text 00000064 LL_RCC_GetUSARTClockFreq
0800170c g F .text 00000008 FlashGetUserProgBaseAddress
0800123c g F .text 0000000c TimerReset
200000c0 g O .data 00000004 SystemCoreClock
08001068 g F .text 00000014 BootTask
080017ac g F .text 0000010a .hidden __udivsi3
08001624 g F .text 00000054 FlashWriteChecksum
08000ff8 g F .text 0000001c ComTransmitPacket
20000660 g .stack_dummy 00000000 __HeapLimit
20000130 g .bss 00000000 __bss_start__
08000220 w F .text 00000002 SPI1_IRQHandler
080007e8 g F .text 000000a4 HAL_FLASHEx_Erase
08000210 w F .text 00000002 TIM6_DAC_IRQHandler
08000a80 g F .text 00000038 HAL_SYSTICK_Config
20000640 g O .bss 00000020 pFlash
08001b30 g .text 00000000 __exidx_start
08000454 g F .text 000000c8 LL_USART_Init
08001b28 g O .text 00000004 _global_impure_ptr
080018f0 g F .text 0000004c __libc_init_array
08000228 w F .text 00000002 USART3_4_IRQHandler
08000120 g F .text 00000000 _mainCRTStartup
080001fa w F .text 00000002 EXTI2_3_IRQHandler
08000ec8 g F .text 00000010 XcpIsConnected
0800194c g F .text 00000000 _init
0800021e w F .text 00000002 I2C2_IRQHandler
080012a8 g F .text 00000008 NvmInit
08001564 g F .text 00000018 FlashInit
080012c8 g F .text 00000008 NvmGetUserProgBaseAddress
0800021a w F .text 00000002 TIM17_IRQHandler
00000000 w *UND* 00000000 __libc_fini_array
080001f2 w F .text 00000002 RTC_IRQHandler
08000198 g F .text 00000034 Reset_Handler
08000b00 g F .text 00000020 HAL_Init
08000ff4 g F .text 00000002 ComFree
0800051c g F .text 0000001c RCC_GetHCLKClockFreq
00000000 w *UND* 00000000 __sf_fake_stderr
00000000 w *UND* 00000000 __deregister_frame_info
08000980 g F .text 0000009c HAL_FLASH_Program
20000660 g .stack_dummy 00000000 end
08001124 g F .text 00000034 UartInit
20000130 g .data 00000000 __data_end__
080012b8 g F .text 00000008 NvmErase
08000b94 g F .text 00000018 CpuUserProgramStartHook
08000218 w F .text 00000002 TIM16_IRQHandler
20000660 g .bss 00000000 __bss_end__
00000100 g *ABS* 00000000 __STACK_SIZE
0800020e w F .text 00000002 TIM3_IRQHandler
080001fc w F .text 00000002 EXTI4_15_IRQHandler
080001f6 w F .text 00000002 RCC_IRQHandler
00000000 w *UND* 00000000 __call_exitprocs
08000200 w F .text 00000002 DMA1_Channel1_IRQHandler
080001ec w F .text 00000002 Default_Handler
080007c4 g F .text 00000024 FLASH_PageErase
08000120 g F .text 00000000 _start
08000ee8 g F .text 000000b4 XcpPacketReceived
0800196c g O .text 00000010 AHBPrescTable
08001714 g F .text 00000008 CpuInit
08000924 g F .text 0000005c FLASH_WaitForLastOperation
08000b24 g F .text 0000000c LedBlinkInit
0800022a w F .text 00000002 CEC_IRQHandler
08000214 w F .text 00000002 TIM14_IRQHandler
080016d4 g F .text 00000038 FlashDone
08000204 w F .text 00000002 DMA1_Channel4_5_IRQHandler
00000000 w *UND* 00000000 software_init_hook
08000b30 g F .text 00000054 LedBlinkTask
08000212 w F .text 00000002 TIM7_IRQHandler
08000216 w F .text 00000002 TIM15_IRQHandler
080001f8 w F .text 00000002 EXTI0_1_IRQHandler
0800022c w F .text 00000002 USB_IRQHandler
080018c0 w F .text 00000002 .hidden __aeabi_ldiv0
0800129c g F .text 00000008 HAL_GetTick
08000eac g F .text 0000001c XcpInit
0800062c g F .text 000000c4 LL_GPIO_DeInit
08000590 g F .text 00000020 RCC_GetSystemClockFreq
08000222 w F .text 00000002 SPI2_IRQHandler
00000000 w *UND* 00000000 __sf_fake_stdin
080015e4 g F .text 00000040 FlashErase
0800193c g F .text 00000010 memset
08000b84 g F .text 00000010 LedBlinkExit
08000000 g .text 000000c0 __isr_vector
080002f4 g F .text 00000010 main
080017ac g F .text 00000000 .hidden __aeabi_uidiv
080001e6 w F .text 00000002 SVC_Handler
08000554 g F .text 0000003c RCC_PLL_GetFreqDomain_SYS
080012d0 g F .text 00000010 NvmDone
08001158 g F .text 00000038 UartTransmitPacket
080012c0 g F .text 00000008 NvmVerifyChecksum
00000000 w *UND* 00000000 hardware_init_hook
0800171c g F .text 00000020 CpuMemCopy
20000660 g .stack_dummy 00000000 __end__
080003e8 g F .text 00000060 SystemInit
08001958 g F .text 00000000 _fini
0800102c g F .text 00000018 ComGetActiveInterfaceMaxTxLen
00000000 w *UND* 00000000 atexit
08001190 g F .text 000000ac UartReceivePacket
080017a8 g F .text 00000004 CpuIrqEnable
08000adc w F .text 00000024 HAL_InitTick
20002000 g .bss 00000000 __StackTop
080001fe w F .text 00000002 TS_IRQHandler
080001ee w F .text 00000002 WWDG_IRQHandler
08000f9c g F .text 00000008 CopInit
0800020c w F .text 00000002 TIM2_IRQHandler
080012b0 g F .text 00000008 NvmWrite
0800173c g F .text 00000068 CpuStartUserProgram
08000202 w F .text 00000002 DMA1_Channel2_3_IRQHandler
20002000 g *ABS* 00000000 __stack
080018b8 g F .text 00000008 .hidden __aeabi_uidivmod
08001678 g F .text 0000005c FlashVerifyChecksum
080003a0 g F .text 00000048 HAL_MspDeInit
080006f0 g F .text 000000a4 LL_GPIO_Init
080008e8 g F .text 00000028 HAL_FLASH_Unlock
20001f00 g *ABS* 00000100 __StackLimit
08000226 w F .text 00000002 USART2_IRQHandler
080018c4 g F .text 0000002c exit
08001044 g F .text 00000008 ComIsConnected
00000000 w *UND* 00000000 __sf_fake_stdout
080005b0 g F .text 00000018 LL_RCC_GetSystemClocksFreq
080018c0 w F .text 00000002 .hidden __aeabi_idiv0
080001f4 w F .text 00000002 FLASH_IRQHandler
08000b20 w F .text 00000002 _exit
08001014 g F .text 00000018 ComGetActiveInterfaceMaxRxLen
08000224 w F .text 00000002 USART1_IRQHandler
08000bac g F .text 0000000a CopInitHook
0800107c g F .text 00000038 BackDoorCheck
08000208 w F .text 00000002 TIM1_BRK_UP_TRG_COM_IRQHandler
0800128c g F .text 00000010 TimerGet
00000000 w *UND* 00000000 _Jv_RegisterClasses
08001248 g F .text 00000028 TimerInit
00000000 w *UND* 00000000 __register_frame_info
08000bb8 g F .text 00000008 CopServiceHook
bin/openblt_stm32f051.elf: file format elf32-littlearm
bin/openblt_stm32f051.elf
architecture: armv6s-m, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x08000000
Program Header:
0x70000001 off 0x00011bc4 vaddr 0x08001bc4 paddr 0x08001bc4 align 2**2
filesz 0x00000008 memsz 0x00000008 flags r--
LOAD off 0x00010000 vaddr 0x08000000 paddr 0x08000000 align 2**16
filesz 0x00001bcc memsz 0x00001bcc flags r-x
LOAD off 0x000200c0 vaddr 0x200000c0 paddr 0x08001bcc align 2**16
filesz 0x00000070 memsz 0x00000070 flags rw-
LOAD off 0x00020130 vaddr 0x20000130 paddr 0x08001c40 align 2**16
filesz 0x00000000 memsz 0x00000530 flags rw-
private flags = 5000200: [Version5 EABI] [soft-float ABI]
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00001bc4 08000000 08000000 00010000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .ARM.exidx 00000008 08001bc4 08001bc4 00011bc4 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .data 00000070 200000c0 08001bcc 000200c0 2**2
CONTENTS, ALLOC, LOAD, DATA
3 .bss 00000530 20000130 08001c40 00020130 2**3
ALLOC
4 .stack_dummy 00000100 20000660 20000660 00020130 2**3
CONTENTS, READONLY
5 .ARM.attributes 00000028 00000000 00000000 00020230 2**0
CONTENTS, READONLY
6 .comment 00000075 00000000 00000000 00020258 2**0
CONTENTS, READONLY
7 .debug_line 0000a7a3 00000000 00000000 000202cd 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_info 0001281d 00000000 00000000 0002aa70 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_abbrev 00003e36 00000000 00000000 0003d28d 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_aranges 000008b0 00000000 00000000 000410c8 2**3
CONTENTS, READONLY, DEBUGGING
11 .debug_str 00051cc9 00000000 00000000 00041978 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_loc 00004511 00000000 00000000 00093641 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_ranges 00000768 00000000 00000000 00097b52 2**0
CONTENTS, READONLY, DEBUGGING
14 .debug_macro 000119ce 00000000 00000000 000982ba 2**0
CONTENTS, READONLY, DEBUGGING
15 .debug_frame 000012e8 00000000 00000000 000a9c88 2**2
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
08000000 l d .text 00000000 .text
08001bc4 l d .ARM.exidx 00000000 .ARM.exidx
200000c0 l d .data 00000000 .data
20000130 l d .bss 00000000 .bss
20000660 l d .stack_dummy 00000000 .stack_dummy
00000000 l d .ARM.attributes 00000000 .ARM.attributes
00000000 l d .comment 00000000 .comment
00000000 l d .debug_line 00000000 .debug_line
00000000 l d .debug_info 00000000 .debug_info
00000000 l d .debug_abbrev 00000000 .debug_abbrev
00000000 l d .debug_aranges 00000000 .debug_aranges
00000000 l d .debug_str 00000000 .debug_str
00000000 l d .debug_loc 00000000 .debug_loc
00000000 l d .debug_ranges 00000000 .debug_ranges
00000000 l d .debug_macro 00000000 .debug_macro
00000000 l d .debug_frame 00000000 .debug_frame
00000000 l df *ABS* 00000000 obj/startup_stm32f0xx.o
00000100 l *ABS* 00000000 Stack_Size
00000000 l *ABS* 00000000 Heap_Size
08000196 l .text 00000000 .flash_to_ram_loop_end
0800018c l .text 00000000 .flash_to_ram_loop
080001c0 l .text 00000000 .fill_zero_bss
080001bc l .text 00000000 .loop_zero_bss
00000000 l df *ABS* 00000000 crtstuff.c
08001bc0 l O .text 00000000 __EH_FRAME_BEGIN__
080000c0 l F .text 00000000 __do_global_dtors_aux
20000130 l .bss 00000001 completed.8879
2000012c l O .data 00000000 __do_global_dtors_aux_fini_array_entry
080000e8 l F .text 00000000 frame_dummy
20000134 l .bss 00000018 object.8884
20000128 l O .data 00000000 __frame_dummy_init_array_entry
00000000 l df *ABS* 00000000 c:/progra~2/gnutoo~1/82018-~1/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/crt0.o
00000000 l df *ABS* 00000000 system_stm32f0xx.c
00000000 l df *ABS* 00000000 stm32f0xx_ll_gpio.c
00000000 l df *ABS* 00000000 stm32f0xx_hal_flash.c
080003ec l F .text 00000020 FLASH_Program_HalfWord
0800040c l F .text 0000003c FLASH_SetErrorCode
00000000 l df *ABS* 00000000 stm32f0xx_hal_rcc.c
00000000 l df *ABS* 00000000 stm32f0xx_hal_flash_ex.c
08000590 l F .text 00000024 FLASH_MassErase
00000000 l df *ABS* 00000000 stm32f0xx_ll_utils.c
00000000 l df *ABS* 00000000 stm32f0xx_ll_usart.c
00000000 l df *ABS* 00000000 stm32f0xx_hal_cortex.c
00000000 l df *ABS* 00000000 stm32f0xx_hal.c
00000000 l df *ABS* 00000000 stm32f0xx_ll_rcc.c
00000000 l df *ABS* 00000000 _exit.c
00000000 l df *ABS* 00000000 led.c
2000014c l O .bss 00000002 ledBlinkIntervalMs
2000014e l O .bss 00000001 ledOn.6591
20000150 l O .bss 00000004 nextBlinkEvent.6592
00000000 l df *ABS* 00000000 hooks.c
00000000 l df *ABS* 00000000 main.c
08000a64 l F .text 000000b0 SystemClock_Config
08000b14 l F .text 0000000c Init
00000000 l df *ABS* 00000000 assert.c
00000000 l df *ABS* 00000000 cop.c
00000000 l df *ABS* 00000000 boot.c
00000000 l df *ABS* 00000000 backdoor.c
20000154 l O .bss 00000004 backdoorExtensionTime
20000158 l O .bss 00000001 backdoorOpen
2000015c l O .bss 00000004 backdoorOpenTime
00000000 l df *ABS* 00000000 com.c
20000160 l O .bss 00000040 xcpCtoReqPacket.4308
200000c4 l O .data 00000001 comActiveInterface
00000000 l df *ABS* 00000000 xcp.c
08000d9c l F .text 0000000c XcpProtectResources
08000da8 l F .text 00000014 XcpSetCtoError
08000dbc l F .text 0000001c XcpCmdDisconnect
08000dd8 l F .text 00000020 XcpCmdGetStatus
08000df8 l F .text 0000000a XcpCmdSynch
08000e04 l F .text 00000030 XcpCmdGetId
08000e34 l F .text 00000018 XcpCmdSetMta
08000e4c l F .text 0000000a XcpCmdProgramPrepare
08000e58 l F .text 00000028 XcpCmdProgramStart
08000e80 l F .text 00000040 XcpCmdConnect
08000ec0 l F .text 0000003c XcpCmdUpload
08000efc l F .text 00000040 XcpCmdShortUpload
08000f3c l F .text 00000024 XcpComputeChecksum
08000f60 l F .text 00000028 XcpCmdBuildCheckSum
08000f88 l F .text 00000044 XcpCmdProgramMax
08000fcc l F .text 00000064 XcpCmdProgram
08001030 l F .text 0000002c XcpCmdProgramClear
0800105c l F .text 00000018 XcpCmdProgramReset
08001074 l F .text 0000000a XcpTransmitPacket
200001a0 l O .bss 0000004c xcpInfo
08001af0 l O .text 00000008 xcpStationId
00000000 l df *ABS* 00000000 timer.c
200001ec l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 rs232.c
080011e4 l F .text 0000001c Rs232ReceiveByte
08001200 l F .text 0000002c Rs232TransmitByte
200001f0 l O .bss 00000041 xcpCtoReqPacket.7192
20000231 l O .bss 00000001 xcpCtoRxInProgress.7194
20000232 l O .bss 00000001 xcpCtoRxLength.7193
20000234 l O .bss 00000004 xcpCtoRxStartTime.7195
00000000 l df *ABS* 00000000 flash.c
08001348 l F .text 00000044 FlashGetSector
08001b20 l O .text 0000009c flashLayout
0800138c l F .text 00000038 FlashGetSectorBaseAddr
080013c4 l F .text 00000034 FlashGetSectorSize
080013f8 l F .text 00000022 FlashInitBlock
0800141a l F .text 00000056 FlashWriteBlock
08001470 l F .text 00000044 FlashSwitchBlock
2000043c l O .bss 00000204 bootBlockInfo
20000238 l O .bss 00000204 blockInfo
080014b4 l F .text 00000088 FlashAddToBlock
0800153c l F .text 0000008c FlashEraseSectors
00000000 l df *ABS* 00000000 cpu.c
00000000 l df *ABS* 00000000 nvm.c
00000000 l df *ABS* 00000000 cpu_comp.c
00000000 l df *ABS* 00000000 _udivsi3.o
08001844 l .text 00000000 .udivsi3_skip_div0_test
00000000 l df *ABS* 00000000 _dvmd_tls.o
00000000 l df *ABS* 00000000 exit.c
00000000 l df *ABS* 00000000 init.c
00000000 l df *ABS* 00000000 memset.c
00000000 l df *ABS* 00000000 c:/progra~2/gnutoo~1/82018-~1/bin/../lib/gcc/arm-none-eabi/8.2.1/thumb/v6-m/nofp/crti.o
00000000 l df *ABS* 00000000 c:/progra~2/gnutoo~1/82018-~1/bin/../lib/gcc/arm-none-eabi/8.2.1/thumb/v6-m/nofp/crtn.o
00000000 l df *ABS* 00000000 impure.c
200000c8 l O .data 00000060 impure_data
00000000 l df *ABS* 00000000 crtstuff.c
08001bc0 l O .text 00000000 __FRAME_END__
00000000 l df *ABS* 00000000
2000012c l .data 00000000 __init_array_end
20000128 l .data 00000000 __preinit_array_end
20000128 l .data 00000000 __init_array_start
20000128 l .data 00000000 __preinit_array_start
08000cdc g F .text 00000018 ComInit
080015e0 g F .text 00000064 FlashWrite
08001a08 g O .text 00000008 APBPrescTable
20000660 g .stack_dummy 00000000 __HeapBase
08000c18 g F .text 00000008 AssertFailure
00000000 g *ABS* 00000000 __HEAP_SIZE
080011ac g F .text 0000001c TimerUpdate
080010b0 g F .text 00000010 XcpPacketTransmitted
200000c0 g .data 00000000 __data_start__
080008d8 g F .text 0000001c RCC_GetPCLK1ClockFreq
08000750 g F .text 00000064 HAL_NVIC_SetPriority
080001f2 w F .text 00000002 TIM1_CC_IRQHandler
08000478 g F .text 00000014 HAL_FLASH_Lock
08000cf4 g F .text 00000030 ComTask
080001cc w F .text 00000002 HardFault_Handler
080001ee w F .text 00000002 ADC1_COMP_IRQHandler
080011e0 g F .text 00000002 SysTick_Handler
080001d8 w F .text 00000002 PVD_IRQHandler
08000c30 g F .text 0000001c BootInit
08000584 g F .text 0000000c HAL_RCC_GetHCLKFreq
080001d0 w F .text 00000002 PendSV_Handler
080001ca w F .text 00000002 NMI_Handler
08001bcc g .ARM.exidx 00000000 __exidx_end
08000204 w F .text 00000002 I2C1_IRQHandler
08000cc4 g F .text 00000018 BackDoorInit
0800067c g F .text 0000000c LL_SetSystemCoreClock
08001bcc g .ARM.exidx 00000000 __etext
080007ec g F .text 00000024 HAL_DeInit
08000b30 g F .text 0000009c HAL_MspInit
08000c28 g F .text 00000008 CopService
08001260 g F .text 00000038 Rs232TransmitPacket
0800183a g F .text 00000004 CpuIrqDisable
08001298 g F .text 000000b0 Rs232ReceivePacket
08000968 g F .text 0000005c LL_RCC_GetUSARTClockFreq
08001768 g F .text 00000008 FlashGetUserProgBaseAddress
08000854 g F .text 00000068 LL_RCC_DeInit
08001178 g F .text 0000000c TimerReset
200000c0 g O .data 00000004 SystemCoreClock
08000c4c g F .text 00000014 BootTask
08001844 g F .text 0000010a .hidden __udivsi3
08001684 g F .text 00000050 FlashWriteChecksum
08000d28 g F .text 0000001c ComTransmitPacket
20000660 g .stack_dummy 00000000 __HeapLimit
20000130 g .bss 00000000 __bss_start__
08000208 w F .text 00000002 SPI1_IRQHandler
080005d8 g F .text 000000a4 HAL_FLASHEx_Erase
080001f8 w F .text 00000002 TIM6_DAC_IRQHandler
080007b4 g F .text 00000038 HAL_SYSTICK_Config
20000640 g O .bss 00000020 pFlash
08001bc4 g .text 00000000 __exidx_start
08000688 g F .text 000000c8 LL_USART_Init
08001bbc g O .text 00000004 _global_impure_ptr
08001988 g F .text 00000048 __libc_init_array
08000210 w F .text 00000002 USART3_4_IRQHandler
08000108 g F .text 00000000 _mainCRTStartup
080001e2 w F .text 00000002 EXTI2_3_IRQHandler
0800109c g F .text 00000014 XcpIsConnected
080019e0 g F .text 00000000 _init
08000206 w F .text 00000002 I2C2_IRQHandler
08001800 g F .text 00000008 NvmInit
080015c8 g F .text 00000018 FlashInit
08001820 g F .text 00000008 NvmGetUserProgBaseAddress
08000202 w F .text 00000002 TIM17_IRQHandler
080001da w F .text 00000002 RTC_IRQHandler
08000180 g F .text 00000034 Reset_Handler
08000834 g F .text 00000020 HAL_Init
08000d24 g F .text 00000002 ComFree
080008bc g F .text 0000001c RCC_GetHCLKClockFreq
080004e4 g F .text 000000a0 HAL_FLASH_Program
20000660 g .stack_dummy 00000000 end
20000130 g .data 00000000 __data_end__
08001810 g F .text 00000008 NvmErase
08000a38 g F .text 00000018 CpuUserProgramStartHook
08000200 w F .text 00000002 TIM16_IRQHandler
20000660 g .bss 00000000 __bss_end__
00000100 g *ABS* 00000000 __STACK_SIZE
080001f6 w F .text 00000002 TIM3_IRQHandler
080001e4 w F .text 00000002 EXTI4_15_IRQHandler
080001de w F .text 00000002 RCC_IRQHandler
080001e8 w F .text 00000002 DMA1_Channel1_IRQHandler
080001d4 w F .text 00000002 Default_Handler
080005b4 g F .text 00000024 FLASH_PageErase
08000108 g F .text 00000000 _start
080010c0 g F .text 000000b8 XcpPacketReceived
080019f8 g O .text 00000010 AHBPrescTable
08001770 g F .text 00000008 CpuInit
0800048c g F .text 00000058 FLASH_WaitForLastOperation
080009c8 g F .text 0000000c LedBlinkInit
08000212 w F .text 00000002 CEC_IRQHandler
080001fc w F .text 00000002 TIM14_IRQHandler
08001730 g F .text 00000038 FlashDone
080001ec w F .text 00000002 DMA1_Channel4_5_IRQHandler
080009d4 g F .text 00000054 LedBlinkTask
080001fa w F .text 00000002 TIM7_IRQHandler
080001fe w F .text 00000002 TIM15_IRQHandler
080001e0 w F .text 00000002 EXTI0_1_IRQHandler
08000214 w F .text 00000002 USB_IRQHandler
08001958 w F .text 00000002 .hidden __aeabi_ldiv0
0800122c g F .text 00000034 Rs232Init
080011d8 g F .text 00000008 HAL_GetTick
08001080 g F .text 0000001c XcpInit
08000280 g F .text 000000c4 LL_GPIO_DeInit
08000930 g F .text 00000020 RCC_GetSystemClockFreq
0800020a w F .text 00000002 SPI2_IRQHandler
08001644 g F .text 00000040 FlashErase
080019d0 g F .text 00000010 memset
08000a28 g F .text 00000010 LedBlinkExit
08000000 g .text 000000c0 __isr_vector
08000b20 g F .text 00000010 main
08001844 g F .text 00000000 .hidden __aeabi_uidiv
080001ce w F .text 00000002 SVC_Handler
080008f4 g F .text 0000003c RCC_PLL_GetFreqDomain_SYS
08001828 g F .text 00000012 NvmDone
08001818 g F .text 00000008 NvmVerifyChecksum
08001778 g F .text 00000020 CpuMemCopy
20000660 g .stack_dummy 00000000 __end__
08000220 g F .text 00000060 SystemInit
080019ec g F .text 00000000 _fini
08000d68 g F .text 00000024 ComGetActiveInterfaceMaxTxLen
0800183e g F .text 00000004 CpuIrqEnable
08000810 w F .text 00000024 HAL_InitTick
20002000 g .bss 00000000 __StackTop
080001e6 w F .text 00000002 TS_IRQHandler
080001d6 w F .text 00000002 WWDG_IRQHandler
08000c20 g F .text 00000008 CopInit
080001f4 w F .text 00000002 TIM2_IRQHandler
08001808 g F .text 00000008 NvmWrite
08001798 g F .text 00000068 CpuStartUserProgram
080001ea w F .text 00000002 DMA1_Channel2_3_IRQHandler
20002000 g *ABS* 00000000 __stack
08001950 g F .text 00000008 .hidden __aeabi_uidivmod
080016d4 g F .text 0000005c FlashVerifyChecksum
08000bcc g F .text 0000004c HAL_MspDeInit
08000344 g F .text 000000a6 LL_GPIO_Init
08000448 g F .text 00000030 HAL_FLASH_Unlock
20001f00 g *ABS* 00000100 __StackLimit
0800020e w F .text 00000002 USART2_IRQHandler
0800195c g F .text 0000002c exit
08000d8c g F .text 0000000e ComIsConnected
08000950 g F .text 00000018 LL_RCC_GetSystemClocksFreq
08001958 w F .text 00000002 .hidden __aeabi_idiv0
080001dc w F .text 00000002 FLASH_IRQHandler
080009c4 w F .text 00000002 _exit
08000ca4 g F .text 00000020 BackDoorRestartTimer
08000d44 g F .text 00000024 ComGetActiveInterfaceMaxRxLen
0800020c w F .text 00000002 USART1_IRQHandler
08000a50 g F .text 0000000a CopInitHook
08000c60 g F .text 00000044 BackDoorCheck
080001f0 w F .text 00000002 TIM1_BRK_UP_TRG_COM_IRQHandler
080011c8 g F .text 00000010 TimerGet
08001184 g F .text 00000028 TimerInit
08000a5a g F .text 00000008 CopServiceHook

@ -1,445 +1,455 @@
S01D000062696E2F6F70656E626C745F73746D3332663035312E7372656397
S315080000000020002099010008E3010008E501000826
S315080000000020002081010008CB010008CD0100086E
S3150800001000000000000000000000000000000000D2
S31508000020000000000000000000000000E7010008D2
S315080000300000000000000000E9010008A512000801
S31508000040EF010008F1010008F3010008F5010008B6
S31508000050F7010008F9010008FB010008FD01000886
S31508000060FF01000801020008030200080502000853
S3150800007007020008090200080B0200080D02000822
S315080000800F020008110200081302000815020008F2
S3150800009017020008190200081B0200081D020008C2
S315080000A01F02000821020008230200082502000892
S315080000B027020008290200082B0200082D02000862
S31508000020000000000000000000000000CF010008EA
S315080000300000000000000000D1010008E1110008DE
S31508000040D7010008D9010008DB010008DD01000816
S31508000050DF010008E1010008E3010008E5010008E6
S31508000060E7010008E9010008EB010008ED010008B6
S31508000070EF010008F1010008F3010008F501000886
S31508000080F7010008F9010008FB010008FD01000856
S31508000090FF01000801020008030200080502000823
S315080000A007020008090200080B0200080D020008F2
S315080000B00F020008110200081302000815020008C2
S315080000C010B5064C2378002B07D1054B002B02D020
S315080000D0044800E000BF0123237010BD3001002052
S315080000E0000000002C1B0008084B10B5002B03D09D
S315080000F00749084800E000BF07480368002B00D1FD
S3150800010010BD064B002BFBD09847F9E7000000000E
S31508000110340100202C1B00083001002000000000DC
S31508000120164B002B00D1144B9D46402292029A1A78
S31508000130924600218B460F461348144A121A01F0BC
S31508000140FDFB0F4B002B00D098470E4B002B00D021
S3150800015098470020002104000D000D48002802D011
S315080001600C4800E000BF01F0C3FB2000290000F0A6
S31508000170C1F801F0A7FBC0460000080000200020D7
S31508000180000000000000000030010020600600208A
S3150800019000000000000000000749084A084B9B1AA7
S315080001A005DD00240859105104349C42FADB054841
S315080001B08047054800470000381B0008C00000209B
S315080001C030010020E9030008210100081849194AEE
S315080001D0002301E00B6004319142FBD300F08AF85A
S315080000E000000000C01B0008044B10B5002B03D00D
S315080000F00349044800E000BF10BDC04600000000E8
S3150800010034010020C01B0008164B002B00D1144BED
S315080001109D46402292029A1A924600218B460F4625
S315080001201348144A121A01F053FC0F4B002B00D047
S3150800013098470E4B002B00D098470020002104005A
S315080001400D000D48002802D00C4800E000BF01F061
S315080001501BFC2000290000F0E3FC01F0FFFBC04671
S315080001600000080000200020000000000000000039
S31508000170300100206006002000000000000000009A
S315080001800749084A084B9B1A05DD002408591051EF
S3150800019004349C42FADB05488047054800470000BE
S315080001A0CC1B0008C00000203001002021020008F6
S315080001B0090100081849194A002301E00B600431B7
S315080001C09142FBD300F0ACFCFEE7FEE7FEE7FEE754
S315080001D0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7E9
S315080001E0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7D9
S315080001F0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7C9
S31508000200FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7B8
S31508000210FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7A8
S31508000220FEE7FEE7FEE7FEE7FEE7FEE7FEE700007D
S31508000230300100206006002010B525490B68012210
S31508000240934313430B600B681A4203D16A21214872
S3150800025000F040FF204B1A688021C9020A431A6041
S315080002601A68802149020A431A601B4B1B689B03C4
S31508000270FBD5194B5968194A0A40882149030A438C
S315080002805A60DA6A0F218A43DA621A6880214904B9
S315080002900A431A60104B1B689B01FBD50E4B5A6824
S315080002A0F0218A435A6059680D4A0A405A605A68CA
S315080002B003218A4301390A435A60074B5B680C22BB
S315080002C01340082BF9D1074800F0BEF810BDC04608
S315080002D0002002406419000800100240FFFFC2FF18
S315080002E0FFF8FFFF006CDC0210B500F009FCFFF711
S315080002F0A3FF10BD10B5FFF7F7FF00F0A7FE00F04B
S31508000300B3FEFCE7F0B58BB0234B9A6901252A4367
S315080003109A619A692A400392039A5969802292023D
S31508000320114359615969114002910299586980210E
S315080003300903084358615869014001910199D9692F
S315080003401143D961DB691A400092009B80277F0020
S315080003500497059500240694079408940F4E04A95B
S31508000360300000F0C5F9B762049505940894902604
S31508000370F60504A9300000F0BBF90C2304930A3BE8
S3150800038005930133069307940894099504A9300048
S3150800039000F0AEF90BB0F0BD0010024000080048AE
S315080003A010B50D4880235B00836200F03FF990206A
S315080003B0C00500F03BF9094BD969094A1140D961D2
S315080003C0586908490140596159690A405A619A6948
S315080003D001218A439A6110BD0008004800100240B6
S315080003E0FFFFFDFFFFFFF7FF114B1A6801210A43C4
S315080003F01A6058680F4A02405A6018680E4A024046
S315080004001A6018680D4A02401A6058680C4A024079
S315080004105A60DA6A0F208243DA62186B094A024088
S315080004201A635A6B8A435A6300229A607047C04619
S31508000430001002400CB8FFF8FFFFF6FEFFFFFBFFB7
S31508000440FFFFC0FFACFEFFFF014B18607047C046B8
S31508000450C000002030B585B004000D000368DB0736
S3150800046049D40168274B19406B68EA6813432A691F
S315080004701343AA691A430B00134303604268224BCD
S315080004801340AA68134343608268204B13406A6985
S31508000490134383601E4B984203D1002000F094F862
S315080004A008E01C4B984204D101A800F081F8039893
S315080004B000E00020002820D0296800291FD0AA695A
S315080004C080231B029A420DD140004B08C01801F048
S315080004D06DF9114B03404008072210401843E060AD
S315080004E001200DE04B08C01801F060F90004000C6B
S315080004F0E060012004E0002002E0002000E0002087
S3150800050005B030BDF369FFFFFFCFFFFFFFFCFFFF1C
S315080005100038014000440040F0FF0000044B5B68CF
S315080005201B090F221340034AD35CD8407047C046C4
S31508000530001002406C190008044B5A68E023DB00DF
S3150800054013401B0A024AD35CD84070470010024089
S315080005507C19000870B50B4B5B6880225202134069
S31508000560934201D0084800E00848064DE96A0F247E
S315080005702140013101F01AF96B689B0C23400233C4
S31508000580584370BD0010024000093D0000127A0071
S3150800059010B5054B5B680C221340082B02D1FFF7F8
S315080005A0D9FF00E0014810BD0010024000127A0091
S315080005B010B50400FFF7ECFF2060FFF7AFFF60609F
S315080005C0FFF7BAFFA06010BD10B5002822D1154B61
S315080005D01A6B0323834013400006184302280CD0E5
S315080005E0032804D001280ED1FFF7D2FF18E00D4BDF
S315080005F01B689B0710D4002012E00A4B1B6A9B0756
S315080006000CD400200CE0FFF7C3FFFFF787FFFFF7C6
S3150800061093FF05E0002003E0034801E08020000284
S3150800062010BDC0460010024000127A009023DB0578
S3150800063098420BD1244B9A6A802189020A439A620E
S31508000640996A224A0A409A6201203CE0204B984265
S315080006500BD11D4B9A6A8021C9020A439A62996A8C
S315080006601C4A0A409A6201202DE01B4B98420BD186
S31508000670154B9A6A802109030A439A62996A174AAE
S315080006800A409A6201201EE0154B98420BD10E4B88
S315080006909A6A802149030A439A62996A114A0A406A
S315080006A09A6201200FE0104B98420BD1064B9A6ACA
S315080006B08021C9030A439A62996A0C4A0A409A62D7
S315080006C0012000E00020704700100240FFFFFDFFF8
S315080006D000040048FFFFFBFF00080048FFFFF7FF84
S315080006E0000C0048FFFFEFFF00140048FFFFBFFFA4
S315080006F0F0B500243EE00123A340134039D0066834
S315080007001D005D436A005219D24316404F686F4375
S315080007103E4306604E68013E012E05D8866816409F
S315080007208F686F433E438660C66832400E696E43E3
S315080007303243C2604A68022A1BD1FF2B0BD8026AD1
S315080007405D436B431D01ED1AAA4315004A695343DD
S315080007502B4303620DE0456A1B0A1A005A435A43A3
S3150800076053431A01D21A95432A004D696B43134322
S31508000770436201340A681300E340BCD14B68013B6D
S31508000780012B05D8CB684168914353430B4343601B
S315080007900120F0BD014B18687047C046C000002014
S315080007A00022064BDA61064B196904320A431A61BC
S315080007B0196940220A431A617047C046400600205C
S315080007C0002002400022064BDA61064B1969023204
S315080007D00A431A615861196940220A431A61704727
S315080007E0400600200020024070B505000E00244B8C
S315080007F01B7E012B42D00122214B1A760368012B5E
S315080008000FD1204800F08EF8002830D1FFF7C8FF36
S315080008101C4800F087F81C4A136904218B431361AE
S3150800082028E0184800F07EF8002822D101235B4210
S3150800083033606C68013012E02000FFF7C3FF1148EF
S3150800084000F070F8104A136902218B4313610028DF
S3150800085001D034600EE08023DB009C466444AB681C
S315080008609B026A68944663449C42E5D302E00120F1
S3150800087000E001200022024B1A7600E0022070BD3B
S315080008804006002050C300000020024010B5002298
S31508000890044BDA61044A1469012323431361018076
S315080008A010BDC04640060020002002400C4BDB6805
S315080008B0DB0606D50B4AD16902230B43D361102305
S315080008C000E00023064AD268520706D50549C869DA
S315080008D001220243CA6104221343014AD3607047C6
S315080008E00020024040060020064B1B691B0606D561
S315080008F0044B054A5A60054A5A60002000E0012068
S315080009007047C0460020024023016745AB89EFCDFA
S31508000910034A116980230B43136100207047C046C0
S315080009200020024070B5040000F0B8FC050008E09D
S31508000930631C06D0002C1BD000F0B0FC401B844280
S3150800094018D30E4BDB68DB07F2D40C4BDB689B062F
S3150800095002D52022094BDA60084BDB68DB0603D494
S31508000960064BDB685B0707D5FFF7A0FF012004E00D
S31508000970032002E0032000E0002070BD00200240B2
S31508000980F0B583B004000E0001921F00204B1B7EB9
S31508000990012B39D001221E4B1A761E48FFF7C2FFDB
S315080009A000282DD1012C03D0022C03D1022502E008
S315080009B0012500E00425002420E060002301202210
S315080009C052429A1802D43900D14007E02022D21A9E
S315080009D0390091400A000199D940114389B280191A
S315080009E0FFF754FF0B48FFF79DFF0B4A13690121D8
S315080009F08B431361002803D10134E4B2AC42DCD343
S31508000A000022034B1A7600E0022003B0F0BDC04670
S31508000A104006002050C300000020024070B50028A0
S31508000A2017DAC0B20F230340083B9B0806339B0026
S31508000A30114A944663445A6803242040C000FC3493
S31508000A4025008540AA438901214081401143596008
S31508000A5010E08308094DC0339B005C5903221040FF
S31508000A60C000FF263200824094438901314081400C
S31508000A702143595170BDC04600ED00E000E100E099
S31508000A8001380A4B98420FD8094A506009490B6A3F
S31508000A901B021B0AC020000603430B620023936057
S31508000AA007331360002000E001207047FFFFFF00B6
S31508000AB010E000E000ED00E010B5074B01214942C7
S31508000AC0196100221A61D960DA6099629A62FFF7A1
S31508000AD067FC002010BDC0460010024010B5040097
S31508000AE0FFF758FEFA21890000F060FEFFF7C8FFFD
S31508000AF00022210001204042FFF790FF002010BD90
S31508000B0010B5064A116810230B4313600020FFF73F
S31508000B10E5FFFFF7F7FB002010BDC04600200240A6
S31508000B20FEE7C046014B18807047C04650010020BA
S31508000B3010B500F0ABFB0F4B1B68984218D30E4B51
S31508000B401B78002B06D101220B4B1A70FF320B4B78
S31508000B509A6106E00022084B1A700132FF32074BF1
S31508000B609A6200F093FB064B1B881818014B186015
S31508000B7010BDC0464C010020520100200008004864
S31508000B805001002080225200014B9A627047C046ED
S31508000B900008004810B5FFF7F5FF9023DB051B6931
S31508000BA0DB0701D5002000E0012010BD10B5642048
S31508000BB0FFF7B8FF10BDC04610B5FFF7B9FF10BD67
S31508000BC00022014B5A70704754010020034BFE2245
S31508000BD0DA7018710221BA3A995270475401002006
S31508000BE010B5054C00232370FFF7EAFFFF23E370D7
S31508000BF00122BB3BE25210BD54010020064BFF22E6
S31508000C00DA7000221A71597859719A71DA711A7262
S31508000C1006214432995270475401002010B500202D
S31508000C20FFF7D4FF10BDC046094BFF22DA70094A08
S31508000C309A6400221A715A719A710721D971002192
S31508000C401972597299720831442299527047C046EE
S31508000C50540100205C1A0008044BFF22DA7042682F
S31508000C609A640121442299527047C04654010020D3
S31508000C7010B53120FFF7AAFF10BDC04670B5084C65
S31508000C80FF23E37000252571657100F0C3F9A07193
S31508000C90E5712572657207224423E25270BDC0468B
S31508000CA05401002070B5FFF78BFF0D4C0125257008
S31508000CB0FF23E370EF3B23710023637100F0AAF969
S31508000CC0A07100F0B3F9E07100F0B0F9000A2072E3
S31508000CD06572A57208224423E25200F0E5FA70BD57
S31508000CE05401002070B50500447800F093F90138E6
S31508000CF0844203DD2220FFF769FF10E0084C6A787A
S31508000D00201DA16C00F00AFDFF23E3706B78A26C2E
S31508000D1094466344A3646B7801334422A35270BD9E
S31508000D205401002070B50400457800F073F90138C5
S31508000D30854203DD2220FFF749FF11E06168094D6E
S31508000D40A9646278281D00F0E9FCFF23EB7063783C
S31508000D50AA6C94466344AB64637801334422AB526D
S31508000D6070BDC04654010020F8B5050017000024E0
S31508000D7006E02B78E418E4B2013500F013F93100E7
S31508000D804E1E0029F5D13C600120F8BD10B5084C6F
S31508000D90FF23E370E21D4168A06CFFF7E5FF2071B1
S31508000DA000236371A37108224433E25210BDC04682
S31508000DB05401002070B504000E4B9D6C00F02AF912
S31508000DC0411E621C280000F073FA002803D1313056
S31508000DD0FFF7FCFE0CE0074CFF23E37000F01AF95E
S31508000DE00138A36C9C466044A06401224423E25265
S31508000DF070BDC0465401002070B50400457800F067
S31508000E0009F90238854203DD2220FFF7DFFE21E0DB
S31508000E10114BFF22DA700121BB3A995261780029F9
S31508000E2007D100F055FA002814D13130FFF7CEFE6D
S31508000E3010E0094B986CA21C00F03AFA002803D17E
S31508000E403130FFF7C3FE05E06378034A916C8C46A0
S31508000E506344936470BDC0465401002010B5094B25
S31508000E609B6C4168180000F027FA002803D131303E
S31508000E70FFF7ACFE05E0034BFF22DA700121BB3A0F
S31508000E80995210BD5401002010B500F057FC034BD1
S31508000E90FF22DA700121BB3A995210BD5401002095
S31508000EA010B589B200F0A8F810BDC046054B00225F
S31508000EB01A709A6443215A5401315A529A705A70D8
S31508000EC07047C04654010020024B1878002800D00D
S31508000ED0012070475401002000214323014AD154C0
S31508000EE07047C0465401002010B50378FF2B02D185
S31508000EF0FFF7D8FE38E0274A1278012A48D1373357
S31508000F00DAB2352A2DD89300234AD3589F46FFF7DD
S31508000F10E9FE29E0FFF706FF26E0FFF79DFE23E03E
S31508000F20FFF734FF20E0FFF77FFE1DE0FFF776FEB0
S31508000F301AE0FFF763FE17E0FFF752FE14E0FFF72B
S31508000F4039FF11E0FFF758FF0EE0FFF797FE0BE0B9
S31508000F50FFF784FF08E0FFF797FF05E0FFF788FE35
S31508000F6002E02020FFF732FE43230A4AD35C012B16
S31508000F7002D11020FFF72AFE4423064AD15E002933
S31508000F8006DD100001224323C2540330FFF788FF11
S31508000F9010BDC046540100208419000810B5FFF79B
S31508000FA005FE10BD10B5FFF707FE10BD10B5FFF71B
S31508000FB07DFF00F0B7F80022014B1A7010BDC0463D
S31508000FC0C400002000B583B06B46D91D074800F061
S31508000FD0DFF8012807D10022054B1A706B46D9792C
S31508000FE00248FFF781FF03B000BDC046A0010020FC
S31508000FF0C40000207047C04610B5054B1B78002B6F
S3150800100002D1C9B200F0A8F8FFF766FF10BDC046C6
S31508001010C4000020044B1B78013BDBB2022B01D92C
S31508001020402000E000207047C4000020044B1B78D5
S31508001030013BDBB2022B01D9402000E000207047BB
S31508001040C400002010B5FFF73FFF10BD10B500F033
S3150800105061FBFFF7A3FF00F0F7F800F025F9FFF7AB
S31508001060A5FF00F027F810BD10B5FFF79BFF00F0AD
S31508001070FFF8FFF7A7FF00F001F810BD10B5FFF75E
S31508001080E1FF012810D0094B1B78012B0CD100F089
S31508001090FDF8074B1B68F533FF33984204D300224B
S315080010A0024B1A7000F04AFB10BDC046E001002052
S315080010B0E401002010B50122044B1A7000F0E6F88E
S315080010C0034B1860FFF7DAFF10BDC046E0010020A9
S315080010D0E401002010B5FFF765FFFCE7054BDB6967
S315080010E09B0604D5034B9B8C0370012000E000206F
S315080010F07047C0460044004010B580B2084B1885BA
S3150800110000F0C4F80A30040005E0FFF74BFF00F0D2
S31508001110BDF8844203D3024BDB691B06F5D510BD27
S315080011200044004010B588B0E1231B020193002358
S315080011300293039304930C22059206930793054C96
S3150800114001A92000FFF786F92268012313432360CB
S3150800115008B010BD0044004070B506000D004029D7
S3150800116003D981210948FFF7B5FF2800FFF7C4FF17
S31508001170002406E0FFF716FF305DFFF7BDFF0134D8
S31508001180A4B2ABB29C42F5D370BDC046641A00083F
S3150800119070B506000D00254B1C78002C15D1244887
S315080011A0FFF79CFF01283FD1214B1B78013BDBB29F
S315080011B03F2B39D800F06AF81E4B186000221E4BE8
S315080011C01A700132194B1A702EE01B4B1878013031
S315080011D0174B1818FFF782FF0400012815D1164B84
S315080011E01A780132D2B21A70114B1B789A4218D16A
S315080011F092B20F490131300000F090FA00220B4BF1
S315080012001A700D4B1B782B700EE000F03FF8094B57
S315080012101B686433984206D90022044B1A700024CE
S3150800122002E0002400E00024200070BD2A0200200D
S31508001230E80100202C020020290200200022014B90
S315080012401A60704710E000E010B5FFF7F7FF054B8E
S31508001250054A5A6000229A6005211960034B1A60F4
S3150800126010BDC04610E000E07FBB00003002002041
S31508001270044B1B68DB0303D5034A13680133136069
S315080012807047C04610E000E03002002010B5FFF7B6
S31508001290EFFF014B186810BD3002002010B5FFF7AC
S315080012A0F5FF10BD7047C04610B500F05BF910BDDC
S315080012B010B500F063F910BD10B500F093F910BD34
S315080012C010B500F0D9F910BD10B500F01FFA10BD21
S315080012D010B500F0A7F9002801D000F0FBF910BD01
S315080012E070B50500002416E0FFF75CFE63001B19C5
S315080012F09A000B4BD358AB420BD809488218526850
S315080013009B189D4205D2630019198B00C318187AD9
S3150800131004E00134E4B20C2CE6D9FF2070BDC046C7
S315080013208C1A000870B50500002410E0FFF73AFE95
S31508001330620012199300084AD3181B7AAB4204D1EB
S31508001340630019198B00985805E00134E4B20C2C97
S31508001350ECD90120404270BD8C1A000870B5050012
S31508001360002411E0FFF71EFE620012199300084AD6
S31508001370D3181B7AAB4205D1630019198B00D31811
S31508001380586804E00134E4B20C2CEBD9002070BD97
S315080013908C1A000810B5CB0509D10368994208D004
S315080013A002C08022920000F0B9F9012002E0002074
S315080013B000E0012010BDC046F8B507000068FFF739
S315080013C08FFFFF2821D0FFF78FFA002512E0AB0028
S315080013D03A68D418FB185E68FFF7E4FD320000236C
S315080013E021000220FFF7CCFA002807D123689E4285
S315080013F006D101357F2DEAD9012402E0002400E058
S315080014000024FFF785FA200000E00020F8BDC0465A
S3150800141070B504000D000C4B984207D00B4B99424F
S3150800142006D0FFF7C9FF002803D109E0084C00E001
S31508001430054C29002000FFF7ADFF002802D102E085
S31508001440002000E0200070BD3402002000200008C3
S3150800145038040020F0B5474680B407000C00150094
S315080014601E004B0A5B0298460368013304D14146C5
S31508001470FFF790FF002828D03B68984505D04146DD
S315080014803800FFF7C5FF071E1CD03B68E41A3C1955
S315080014900434FFF787FD3B1DE31A0D4A934208D92A
S315080014A08021890041443800FFF7B2FF071E0BD0A0
S315080014B0041D2B78237001340135013E002EE8D136
S315080014C0012002E0002000E0002004BC9046F0BDA8
S315080014D0FF010000F0B587B00C0000230593884291
S315080014E001D8012600E00026032802D9102C02D8CC
S315080014F002E0002600E00026012E2FD1FFF712FF9A
S3150800150007002000FFF70EFF05002000FFF726FF63
S315080015102D18013DED1B0135AD0AADB2002302932E
S31508001520039701330493FFF7DFF9002410E0FFF770
S3150800153039FD05A902A8FFF757F900280BD1039B27
S3150800154001938022D2009446634403930134A4B2E3
S31508001550AC42ECD300E00026FFF7DAF9300007B01A
S31508001560F0BDC04601235B42024A1360024A13607B
S315080015707047C046380400203402002070B50400C5
S315080015800E0015004A1E134B1B1A9A421CD8FFF769
S31508001590A7FEFF281AD030190138FFF7A1FEFF2849
S315080015A016D0630A5B020C4A934206D133002A001E
S315080015B021000A48FFF74EFF0BE033002A002100FE
S315080015C00748FFF747FF04E0002002E0002000E09C
S315080015D0002070BDFFFF000800200008340200202C
S315080015E038040020F8B504000E004A1E0C4B1B1ADE
S315080015F09A420FD8FFF774FE050030190138FFF735
S315080016006FFEFF2D08D0FF2808D001002800FFF73D
S3150800161061FF04E0002002E0002000E00020F8BDA1
S31508001620FFFF000800B583B0114B1B6801331BD0C0
S315080016300F4B5A689868844662441100DA689446E3
S3150800164061441A69944661445A69944661449A69A0
S3150800165094466144DA698B185B42019301AA042116
S315080016600448FFF78BFF00E0012003B000BDC04629
S3150800167034020020C02000080E4B1A680E4B1B6867
S31508001680D3180E4A12689B180D4A12689B180D4A01
S3150800169012689B180C4A12689B180C4A12689B1809
S315080016A00B4A12689B18002B01D1012000E000208C
S315080016B07047C046002000080420000808200008DB
S315080016C00C20000810200008142000081820000824
S315080016D0C020000810B50B4B1B68013304D009481D
S315080016E0FFF76AFE00280CD0074B1B68013305D0AC
S315080016F00548FFF761FE002802D102E0012000E05C
S31508001700012010BD3402002038040020004870472C
S315080017100020000810B500F045F810BD70B508E0C7
S31508001720461C4D1C0B780370FFF73CFC220030006A
S315080017302900531E9CB2002AF2D170BD10B582B0A2
S31508001740FFF7BEFD002826D0FFF724FA002822D08E
S31508001750FFF750FCFFF772FDFFF7AEF90F4A9169E4
S31508001760012001439161936903400193019BFFF7AF
S31508001770ABFD0100C02280208005FFF7CFFF084996
S315080017800A6803239A4313430B60FFF79DFD4468D9
S3150800179000F00AF8A04702B010BDC046001002408B
S315080017A00000014072B6704762B6704700224308CF
S315080017B08B4274D303098B425FD3030A8B4244D30B
S315080017C0030B8B4228D3030C8B420DD3FF2209024D
S315080017D012BA030C8B4202D31212090265D0030B0C
S315080017E08B4219D300E0090AC30B8B4201D3CB0302
S315080017F0C01A5241830B8B4201D38B03C01A524144
S31508001800430B8B4201D34B03C01A5241030B8B4245
S3150800181001D30B03C01A5241C30A8B4201D3CB0230
S31508001820C01A5241830A8B4201D38B02C01A524115
S31508001830430A8B4201D34B02C01A5241030A8B4218
S3150800184001D30B02C01A5241CDD2C3098B4201D330
S31508001850CB01C01A524183098B4201D38B01C01AAE
S31508001860524143098B4201D34B01C01A5241030925
S315080018708B4201D30B01C01A5241C3088B4201D3D4
S31508001880CB00C01A524183088B4201D38B00C01A81
S31508001890524143088B4201D34B00C01A5241411AA8
S315080018A000D20146524110467047FFE701B50020B5
S315080018B000F006F802BDC0460029F7D076E7704763
S315080018C07047C046084B10B50400002B02D0002113
S315080018D000E000BF054B1868836A002B00D09847C4
S315080018E02000FFF71DF9C04600000000281B00086D
S315080018F00E4B70B500251E000D4CE41AA410A54227
S3150800190004D0AB00F35898470135F8E700F01EF805
S31508001910084B00251E00084CE41AA410A54204D062
S31508001920AB00F35898470135F8E770BD2801002049
S3150800193028010020280100202C010020030082181D
S31508001940934202D019700133FAE77047F8B5C046DA
S31508001950F8BC08BC9E467047F8B5C046F8BC08BC3B
S315080019609E4670476D61696E2E6300000000000098
S315080019700000000001020304060708090000000031
S31508001980010203043E0F0008620F0008620F0008F8
S315080019905C0F0008620F0008620F0008560F000867
S315080019A0440F0008500F00084A0F0008620F00088D
S315080019B0620F0008620F0008620F0008620F000835
S315080019C0620F0008620F0008620F0008620F000825
S315080019D0620F0008620F0008620F0008620F000815
S315080019E0620F0008620F0008620F0008620F000805
S315080019F0620F0008620F0008620F0008620F0008F5
S31508001A00620F0008620F0008620F0008620F0008E4
S31508001A10620F0008620F0008620F0008620F0008D4
S31508001A20620F0008620F0008620F0008200F000806
S31508001A30140F00080E0F00081A0F0008620F00089E
S31508001A40620F0008620F0008260F0008620F0008E0
S31508001A502C0F0008320F0008380F00084F70656E0B
S31508001A60424C54002E2E2F2E2E2F2E2E2F536F75AE
S31508001A707263652F41524D434D305F53544D333297
S31508001A8046302F756172742E63000000002000082E
S31508001A9000080000040000000028000800080000F4
S31508001AA005000000003000080008000006000000DD
S31508001AB00038000800080000070000000040000881
S31508001AC000080000080000000048000800080000A0
S31508001AD00900000000500008000800000A00000085
S31508001AE000580008000800000B000000006000080D
S31508001AF0000800000C00000000680008000800004C
S31508001B000D00000000700008000800000E0000002C
S31508001B1000780008000800000F0000000080000898
S31508001B200080000010000000C8000020000000002F
S30D08001B30F0E5FF7F010000004B
S31508001B3800127A00040000000000000000000000FF
S31508001B48000000000000000000000000000000007F
S31508001B58000000000000000000000000000000006F
S31508001B68000000000000000000000000000000005F
S31508001B78000000000000000000000000000000004F
S31508001B88000000000000000000000000000000003F
S31508001B980000000000000000E9000008C100000875
S31508000210FEE7FEE7FEE7000030010020600600204A
S31508000220114B1A6801210A431A605A680F4802409E
S315080002305A601A680E4802401A601A680D48024049
S315080002401A605A680C4802405A60DA6A0F208243DC
S31508000250DA621A6B094802401A635A6B8A435A6370
S3150800026000229A607047C046001002400CB8FFF89A
S31508000270FFFFF6FEFFFFFBFFFFFFC0FFACFEFFFF21
S315080002809023DB0598420DD0244B984216D0244B78
S3150800029098421FD0234B984228D0234B984231D0FE
S315080002A000200AE0214B996A802292020A439A6248
S315080002B09A6A1F490A409A62012070471B4B996A3D
S315080002C08022D2020A439A629A6A1A490A409A62B4
S315080002D00120F2E7154B996A802212030A439A62B3
S315080002E09A6A15490A409A620120E6E70F4B996A0D
S315080002F0802252030A439A629A6A10490A409A620D
S315080003000120DAE7094B996A8022D2030A439A62E6
S315080003109A6A0B490A409A620120CEE7000400480F
S3150800032000080048000C004800140048001002406D
S31508000330FFFFFDFFFFFFFBFFFFFFF7FFFFFFEFFFDD
S31508000340FFFFBFFFF0B500220FE0866826408F68E2
S315080003506F433E438660C66834400E696E43344335
S31508000360C4604C68022C18D001320B681C00D440BB
S315080003702ED0012494402340F6D006681D005D4324
S315080003806C006419E44326404F686F433E43066099
S315080003904E68013E012EDED8D7E7FF2B0AD8046A3D
S315080003A05D436B431D01ED1AAC434D696B43234313
S315080003B00362D9E7456A1B0A1C005C435C43634336
S315080003C01C01E41AA5434C6963432B434362CBE7FC
S315080003D04A68013A012A01D90120F0BDC968426874
S315080003E09A434B4313434360F6E7000010B5054BA9
S315080003F00022DA61044A1369012423431361018048
S3150800040010BDC04640060020002002400C4BDB68A9
S31508000410DB0606D50B4AD36902210B43D3611023A9
S3150800042000E00023064AD268520706D50549CA697C
S3150800043001200243CA6104221343014AD36070476C
S315080004400020024040060020084B1B691B0609D500
S31508000450064B074A5A60074A5A601B691B0603D4AB
S31508000460002000E0002070470120FCE70020024041
S3150800047023016745AB89EFCD034A136980210B43F6
S31508000480136100207047C0460020024070B5040082
S3150800049000F0A2FE0500124BDB68DB070AD5631CD9
S315080004A0F9D0002C04D000F097FE401BA042F2D9E8
S315080004B003200FE00A4BDB689B0602D5084B202277
S315080004C0DA60074BDB68DB0605D4054BDB685B07A0
S315080004D001D4002070BDFFF799FF0120FAE7C04656
S315080004E000200240F0B5C64600B504000D0090464F
S315080004F01E00214B1B7E012B3BD01F4B01221A7677
S315080005001E48FFF7C3FF00282DD1012C06D0022C68
S3150800051002D0042700241BE00227FBE70127F9E79E
S315080005202022D21A310091400A004146D94011438F
S3150800053089B24019FFF75AFF1048FFF7A7FF104A7C
S31508000540136901218B43136100280CD10134E4B2ED
S31508000550BC4208D260002301202252429A18DFD4F6
S315080005603100D140E4E7044B00221A7604BC9046D9
S31508000570F0BD0220FAE7C0464006002050C300003E
S3150800058000200240014B18687047C046C000002092
S31508000590064B0022DA61064B1A6904210A431A61DE
S315080005A01A693C310A431A617047C0464006002062
S315080005B000200240064B0022DA61064B1A69022126
S315080005C00A431A6158611A693E310A431A6170472B
S315080005D0400600200020024070B505000E00244B9E
S315080005E01B7E012B41D0224B01221A760368012B70
S315080005F022D02048FFF74AFF002831D101235B4269
S3150800060033606C680130AB689B026A689446634441
S31508000610A34226D92000FFF7CDFF1648FFF736FF7D
S31508000620154A136902218B431361002816D18023CA
S31508000630DB009C466444E6E70E48FFF727FF0028E0
S3150800064001D001200DE0FFF7A3FF0A48FFF71EFFC0
S31508000650094A136904218B43136102E0346000E000
S315080006600120034B00221A7670BD0220FCE7C04623
S315080006704006002050C3000000200240014B1860CD
S315080006807047C046C000002030B585B004000D0094
S315080006900368DB0748D40368274A1A404B68C968C9
S315080006A00B4329690B43A9690B431343036043684A
S315080006B0224A1340AA68134343608368204A1340BA
S315080006C06A69134383601F4B984204D01E4B9842B5
S315080006D017D0002029E0002000F046F9002826D08F
S315080006E02968002925D0AA6980231B029A420DD0C1
S315080006F04B08C01801F0A6F80004000CE0600120C1
S3150800070013E001A800F024F90398E7E740004B0836
S31508000710C01801F097F80D4B034040080722104017
S315080007200343E360012000E0002005B030BD00204F
S31508000730FBE70020F9E7C046F369FFFFFFCFFFFF9D
S31508000740FFFCFFFF0038014000440040F0FF0000B6
S3150800075070B5002811DB8308144DC0339B005C5923
S3150800076003221040C000FC3216008640B4438901BB
S315080007700A40824014435C5170BDC0B20F23034047
S31508000780083B9B0806339B00094A944663445D6808
S3150800079003242040C000FF2214008440A543890199
S315080007A00A4082402A435A60E6E7C04600E100E074
S315080007B000ED00E001380A4B98420FD8094A50600C
S315080007C00948036A1B021B0AC02109060B43036278
S315080007D00023936007331360002070470120FCE76D
S315080007E0FFFFFF0010E000E000ED00E010B5074B4A
S315080007F001214942196100221A61D960DA609962B9
S315080008009A6200F0E3F9002010BDC04600100240CD
S3150800081010B50400FFF7B6FEFA21890001F012F8B8
S31508000820FFF7C8FF0120002221004042FFF790FF92
S31508000830002010BD10B5064A136810210B4313603B
S315080008400020FFF7E5FF00F073F9002010BDC04651
S315080008500020024030B5154B1A68012002431A6081
S315080008601968F825A943802421431960104A5A605B
S31508000870104A1A601968104A114019600021596017
S315080008805A6BAA4322435A635A6B82435A635A6B7A
S31508000890033082435A63D96219639868BF221204E7
S315080008A002439A609960012030BDC046001002409C
S315080008B00CF8FFF0FFFFF6FEFFFFFBFF044B5A683C
S315080008C012090F231340034AD35CD8407047C04629
S315080008D000100240F8190008044B5A68120A072348
S315080008E01340034AD35CD8407047C0460010024004
S315080008F0081A000870B50B4B5B6880225202134039
S3150800090093420DD00848074DE96A0F24214001316A
S3150800091000F098FF6B689B0C1C400234604370BD66
S315080009200248F0E70010024000093D0000127A0074
S3150800093010B5054B5A680C231340082B01D0034801
S3150800094010BDFFF7D7FFFBE70010024000127A0040
S3150800095010B50400FFF7ECFF2060FFF7AFFF6060FB
S31508000960FFF7BAFFA06010BD10B5002823D1134BBE
S315080009701A6B03238340134002061343022B13D03A
S31508000980032B0BD0012B06D0FFF7D2FFFFF796FFFC
S31508000990FFF7A2FF10E0FFF7CBFF0DE0074B1B6840
S315080009A09B0709D5064807E0044B1B6A9B0703D536
S315080009B08020000200E0002010BDC0460010024062
S315080009C000127A00FEE70000014B18807047C04607
S315080009D04C01002010B500F0F7FB0F4B1B6898423E
S315080009E010D30E4B1B78002B0DD10C4B01221A701D
S315080009F00B4BFF329A6100F0E7FB0A4B1B881B186A
S31508000A00054A136010BD054B00221A70044B0132CB
S31508000A10FF329A62EFE7C046500100204E010020DF
S31508000A20000800484C010020024B802252009A62BE
S31508000A307047C0460008004810B59023DB051B69BF
S31508000A40DB0701D5002010BDFFF7EEFF0120FAE70E
S31508000A5010B56420FFF7B8FF10BD10B5FFF7BAFF51
S31508000A6010BD000010B525490B68012293431343B6
S31508000A700B600B681A423CD0214B19688022D202BF
S31508000A800A431A601968802252020A431A601C4BEC
S31508000A901B689B03FBD51A4B5A681A4911408822D2
S31508000AA052030A435A60DA6A0F218A43DA621968DE
S31508000AB0802252040A431A60114B1B689B01FBD51E
S31508000AC00F4B5A68F0218A435A605A680E490A4001
S31508000AD05A605A6803218A4301390A435A60084B07
S31508000AE05A680C231340082BF9D10848FFF7C6FDAE
S31508000AF010BD6A21064800F08FF8BDE700200240C5
S31508000B0000100240FFFFC2FFFFF8FFFF006CDC0287
S31508000B10101A000810B5FFF78DFEFFF7A3FF10BDEA
S31508000B2010B5FFF7F7FF00F083F800F08FF8FCE741
S31508000B30F0B58BB0234B9A6901252A439A619A69C5
S31508000B402A400392039A59698022920211435961F5
S31508000B505969114002910299586980242403204357
S31508000B6058615969214001910199D9691143D9619F
S31508000B70DB691A400092009B80277F000497059541
S31508000B8000240694079408940F4E04A93000FFF732
S31508000B90D9FBB7620495059408949026F60504A92E
S31508000BA03000FFF7CFFB0C2304930A3B0593013370
S31508000BB0069307940894099504A93000FFF7C2FB29
S31508000BC00BB0F0BD001002400008004810B5FFF752
S31508000BD041FE0D4880235B008362FFF751FB90209E
S31508000BE0C005FFF74DFB094BD96909480140D96192
S31508000BF05969084A114059615A6902405A619A6905
S31508000C0001218A439A6110BD00080048001002407D
S31508000C10FFFFFDFFFFFFF7FF10B500F005F8FCE743
S31508000C2010B5FFF715FF10BD10B5FFF716FF10BD7D
S31508000C3010B500F09DFDFFF7F3FF00F0A3FA00F0F2
S31508000C40DFFD00F04BF800F03DF810BD10B5FFF7DA
S31508000C50EBFF00F0ABFA00F04DF800F001F810BD1C
S31508000C6010B500F093F8012803D00B4B1B78012B25
S31508000C7000D010BD00F0A8FA084B1B68084A126895
S31508000C809B18F533FF339842F3D3034B00221A70AF
S31508000C9000F082FDEDE7C04658010020540100200F
S31508000CA05C01002010B5054B1B78012B00D010BD48
S31508000CB000F08AFA024B1860F9E7C046580100208E
S31508000CC05C01002010B5044B01221A70FFF7EAFFF9
S31508000CD0FFF7C6FF10BDC0465801002010B500F04A
S31508000CE0CFF900F0A3FA024B00221A7010BDC046D5
S31508000CF0C400002000B583B06B46D91D074800F034
S31508000D00CBFA012801D003B000BD054B00221A70AA
S31508000D106B46D979014800F0D3F9F4E76001002061
S31508000D20C40000207047000010B5054B1B78002B47
S31508000D3002D000F0BDF910BDC9B200F091FAF8E78B
S31508000D40C4000020074B1B78022B05D0032B05D0C7
S31508000D50012B05D0402070470020FCE70020FAE769
S31508000D600020F8E7C4000020074B1B78022B05D0AB
S31508000D70032B05D0012B05D0402070470020FCE747
S31508000D800020FAE70020F8E7C400002010B500F0BC
S31508000D9085F9002800D0012010BD0000014B002273
S31508000DA05A707047A0010020034BFE22DA701871B2
S31508000DB0BA3A022199527047A001002010B5054C95
S31508000DC000232370FFF7EAFFFF23E370BB3B0122F2
S31508000DD0E25210BDA0010020064BFF22DA70002265
S31508000DE01A71597859719A71DA711A724432062150
S31508000DF099527047A001002010B50020FFF7D4FFD4
S31508000E0010BD0000094BFF22DA70094A9A640022D5
S31508000E101A715A719A710721D9710021197259727A
S31508000E2099724422083199527047C046A0010020A1
S31508000E30F01A0008044BFF22DA7042689A644422CA
S31508000E40012199527047C046A001002010B53120F3
S31508000E50FFF7AAFF10BD000070B5084CFF23E3702A
S31508000E60002525716571FFF76DFFA071E571257283
S31508000E70657244230722E25270BDC046A0010020D5
S31508000E8070B5FFF78BFF0D4C01252570FF23E37026
S31508000E90EF3B237100236371FFF754FFA071FFF73F
S31508000EA063FFE071FFF760FF000A20726572A572A2
S31508000EB044230822E25200F0A3FC70BDA0010020E2
S31508000EC070B50500FFF73EFF6A78904210D90A4CC4
S31508000ED0201DA16C00F050FCFF23E3706B78A26C18
S31508000EE094466344A3646B7801334422A35270BDCD
S31508000EF02220FFF759FFFAE7A001002070B5040089
S31508000F00FFF720FF6378984212D961680A4DA964F1
S31508000F106278281D00F030FCFF23EB706378AA6C1A
S31508000F2094466344AB64637801334422AB5270BD84
S31508000F302220FFF739FFFAE7A0010020F8B50500DF
S31508000F40170000244E1E002907D02B781C19E4B27E
S31508000F500135FFF769FE3100F4E73C600120F8BD72
S31508000F6010B5084CFF23E370E21D4168A06CFFF73B
S31508000F70E5FF207100236371A37144330822E2520E
S31508000F8010BDC046A001002070B504000E4B9D6C34
S31508000F90FFF7D8FE411E621C280000F035FC002829
S31508000FA00DD0094CFF23E370FFF7CCFE0138A36C84
S31508000FB09C466044A06444230122E25270BD31304D
S31508000FC0FFF7F2FEFAE7C046A001002010B50400BC
S31508000FD0FFF7B8FE01386378984216DD134BFF22F7
S31508000FE0DA70BB3A012199526178002911D00F4B6A
S31508000FF0986CA21C00F008FC002812D063780B4AF3
S31508001000916C8C466344936410BD2220FFF7CCFE96
S31508001010FAE700F009FC0028F6D13130FFF7C4FEE4
S31508001020F2E73130FFF7C0FEEEE7C046A001002028
S3150800103010B5094B9B6C4168180000F0E9FB0028C5
S3150800104006D0054BFF22DA70BB3A0121995210BD32
S315080010503130FFF7A9FEFAE7A001002010B500F02D
S315080010609BFB034BFF22DA70BB3A0121995210BD54
S31508001070A001002010B589B2FFF756FE10BD00008A
S31508001080054B00221A709A6443215A5401315A5268
S315080010909A705A707047C046A0010020034B1B780F
S315080010A0002B01D0012070470020FCE7A00100209A
S315080010B0024A43230021D1547047C046A0010020AC
S315080010C010B50378FF2B0BD0294A1278012A13D1C1
S315080010D03733DAB2352A3AD89300264AD3589F4688
S315080010E0FFF7CEFE224A4323D35C012B33D0204A96
S315080010F04423D15E002932DC10BDFFF7E1FEF1E79B
S31508001100FFF7FCFEEEE7FFF795FEEBE7FFF728FF94
S31508001110E8E7FFF777FEE5E7FFF76EFEE2E7FFF79A
S315080011205BFEDFE7FFF74AFEDCE7FFF72DFFD9E7AF
S31508001130FFF74CFFD6E7FFF78FFED3E7FFF778FFF9
S31508001140D0E7FFF78BFFCDE7FFF780FECAE7202041
S31508001150FFF72AFEC6E71020FFF726FEC7E71000AE
S3150800116043230122C2540330FFF784FFC4E7C04675
S31508001170A0010020181A0008014B00221A607047C7
S3150800118010E000E010B5FFF7F7FF054B054A5A6077
S3150800119000229A6005211960034B1A6010BDC046EB
S315080011A010E000E07FBB0000EC010020044B1B6848
S315080011B0DB0303D5034A1368013313607047C0463F
S315080011C010E000E0EC01002010B5FFF7EFFF014B3F
S315080011D0186810BDEC01002010B5FFF7F5FF10BD2B
S315080011E070470000054BDB699B0604D5034B9B8CB7
S315080011F00370012000E000207047C046004400400C
S3150800120010B580B2084B1885FFF7DEFF0A300400D8
S31508001210054BDB691B0605D4FFF706FDFFF7D4FF70
S31508001220A042F5D910BDC0460044004010B588B0AC
S31508001230E1231B02019300230293039304930C22D8
S31508001240059206930793054C01A92000FFF71CFA9F
S31508001250236801221343236008B010BD00440040F0
S3150800126070B506000D0040290ED82800FFF7C8FF04
S315080012700024ABB2A3420CD9FFF7D6FC305DFFF7CA
S31508001280BFFF0134A4B2F4E781210248FFF7C4FC8A
S31508001290EBE770BDF81A000870B506000D00264B7E
S315080012A01C78002C17D12548FFF79CFF012801D090
S315080012B0200070BD214B1B78013BDBB23F2BF7D8D2
S315080012C0FFF782FF1E4B18601E4B00221A701A4B3E
S315080012D001321A70ECE71B4B1B7801331748C0180C
S315080012E0FFF780FF0400012817D1164B1A78013240
S315080012F0D2B21A70114B1B789A4201D00024D7E754
S3150800130092B20E490131300000F036FA0A4B00223B
S315080013101A700C4B1B782B70CAE7FFF755FF084B62
S315080013201B686433984204D9034B00221A700024C0
S31508001330BEE70024BCE7C04631020020F0010020C9
S31508001340340200203202002070B50500002401E0B6
S315080013500134E4B20C2C15D8FFF766FC63001B19A0
S315080013609A00094BD358AB42F2D862001219900082
S31508001370054A121852689B18AB42E9D9024B1B184A
S31508001380187A00E0FF2070BD201B000870B5050024
S3150800139000240C2C10D8FFF747FC63001B199A0091
S315080013A0074B9B181B7AAB4202D00134E4B2F0E734
S315080013B01300034A985801E00120404270BDC04618
S315080013C0201B000870B5050000240C2C10D8FFF768
S315080013D02BFC63001B199A00064B9B181B7AAB4221
S315080013E002D00134E4B2F0E7024B9B18586800E0DB
S315080013F0002070BD201B000810B5CB0509D1036875
S315080014008B4208D002C08022920000F0B5F9012074
S3150800141010BD0020FCE70120FAE7F8B507000068D0
S31508001420FFF792FFFF2821D0FFF70EF800257F2D42
S3150800143013D8AB003A68D418FB185E68FFF7F4FBBC
S315080014403200002321000220FFF74CF8002806D1BD
S315080014502368B34208D10135E9E7012400E00024F6
S31508001460FFF70AF82000F8BD0024F9E70024F9E799
S3150800147070B504000D000C4B984211D00B4B9942E5
S3150800148008D1094C29002000FFF7B6FF002809D02B
S31508001490200070BDFFF7C1FF0028F3D10024F7E74D
S315080014A0034CEFE70024F3E73C0400200020000883
S315080014B038020020F0B5C64600B507000C00150036
S315080014C01E004B0A5B0298460368013307D03B6847
S315080014D043450AD13B68E41A3C19043414E04146F2
S315080014E0FFF78AFF0028F2D120E041463800FFF7CF
S315080014F0BFFF071EEED1002018E02B7823700134B9
S315080015000135013E002E10D0FFF78EFB3B1DE31A76
S31508001510094A9342F1D98021890041443800FFF7EE
S31508001520A7FF071E05D0041DE7E7012004BC904667
S31508001530F0BD0020FAE7C046FF010000F0B587B00D
S315080015400D0000230593884232D80124032835D993
S31508001550102D37D8012C32D1FFF718FF07002800C5
S31508001560FFF714FF06002800FFF72CFF3618013E88
S31508001570F61B0136B60AB6B2002302930397013367
S315080015800493FEF761FF0025B54214D2FFF74CFB22
S3150800159005A902A8FFF720F800280BD1039B0193A1
S315080015A08022D2009446634403930135ADB2EBE73B
S315080015B00024CBE70024FEF75FFF00E000242000AC
S315080015C007B0F0BD0024FAE701235B42024A136024
S315080015D0024A13607047C046380200203C040020C7
S315080015E070B504000E0015004A1E124B1B1A9A42CB
S315080015F001D9002070BDFFF7A7FEFF2811D03019CA
S315080016000138FFF7A1FEFF280BD0630A5B020A4ADE
S31508001610934208D033002A0021000848FFF74AFF02
S31508001620E8E70020E6E733002A0021000448FFF730
S3150800163041FFDFE7FFFF000800200008380200200E
S315080016403C040020F8B506000C004A1E0C4B1B1A79
S315080016509A4201D90020F8BDFFF776FE0500A019C9
S315080016600138FFF771FEFF2D06D0FF2806D00100CE
S315080016702800FFF763FFEEE70020ECE70020EAE723
S31508001680FFFF000800B583B0104B1B6801331BD061
S315080016900E4A536891688C466344D1688C46634405
S315080016A011698C46634451698C46634491698C463A
S315080016B06344D2699B185B42019301AA042104483A
S315080016C0FFF78EFF03B000BD0120FBE73C040020B6
S315080016D0C02000080E4B1A680E4B1B68D2180E4B1A
S315080016E01B689A180D4B1B689B180D4A1268D3186D
S315080016F00C4A1268D2180C4B1B689A180B4B1B68BD
S315080017009B18002B01D0002070470120FCE7C0463B
S315080017100020000804200008082000080C20000803
S31508001720102000081420000818200008C02000080F
S3150800173010B50B4B1B68013305D10A4B1B680133E7
S3150800174007D1012010BD0648FFF767FE0028F4D12F
S31508001750F8E70448FFF761FE0028F3D00120F1E717
S315080017603C0400203802002000487047002000088A
S3150800177010B500F062F810BD70B5541EA4B2002A68
S3150800178009D04D1C461C0B780370FFF74DFA300044
S3150800179029002200F1E770BD10B582B000F03CF8D0
S315080017A0002801D102B010BDFFF746F90028F9D08C
S315080017B0FFF7B8FAFFF7E0FCFFF718F80E4A916949
S315080017C0012319439161926913400193019B00F02B
S315080017D027F801008020C0228005FFF7CDFF074AC1
S315080017E0136803218B430B43136000F019F8446810
S315080017F000F025F8A047D5E7001002400000014098
S3150800180010B5FFF7E1FE10BD10B5FFF7E9FE10BDF4
S3150800181010B5FFF717FF10BD10B5FFF75BFF10BD3A
S3150800182010B5FFF7A1FF10BD10B5FFF72BFF002875
S3150800183000D110BDFFF77CFFFBE772B6704762B6B2
S3150800184070470000002243088B4274D303098B4279
S315080018505FD3030A8B4244D3030B8B4228D3030C72
S315080018608B420DD3FF22090212BA030C8B4202D314
S315080018701212090265D0030B8B4219D300E0090A3C
S31508001880C30B8B4201D3CB03C01A5241830B8B4245
S3150800189001D38B03C01A5241430B8B4201D34B032E
S315080018A0C01A5241030B8B4201D30B03C01A524193
S315080018B0C30A8B4201D3CB02C01A5241830A8B4218
S315080018C001D38B02C01A5241430A8B4201D34B0201
S315080018D0C01A5241030A8B4201D30B02C01A524165
S315080018E0CDD2C3098B4201D3CB01C01A5241830919
S315080018F08B4201D38B01C01A524143098B4201D353
S315080019004B01C01A524103098B4201D30B01C01A7D
S315080019105241C3088B4201D3CB00C01A52418308F7
S315080019208B4201D38B00C01A524143088B4201D324
S315080019304B00C01A5241411A00D201465241104684
S315080019407047FFE701B5002000F006F802BDC04663
S315080019500029F7D076E770477047C046084B10B5A0
S315080019600400002B02D0002100E000BF054B1868D8
S31508001970836A002B00D098472000FFF723F8C0465B
S3150800198000000000BC1B000870B500260C4D0D4C6D
S31508001990641BA410A64209D1002600F021F80A4DBE
S315080019A00A4C641BA410A64205D170BDB300EB58BF
S315080019B098470136EEE7B300EB5898470136F2E749
S315080019C02801002028010020280100202C010020E1
S315080019D003001218934200D1704719700133F9E7D2
S315080019E0F8B5C046F8BC08BC9E467047F8B5C04670
S315080019F0F8BC08BC9E4670470000000000000000C6
S31508001A000102030406070809000000000102030496
S31508001A106D61696E2E6300002A1100084E110008D8
S31508001A204E110008481100084E1100084E11000812
S31508001A3042110008301100083C1100083611000850
S31508001A404E1100084E1100084E1100084E110008EC
S31508001A504E1100084E1100084E1100084E110008DC
S31508001A604E1100084E1100084E1100084E110008CC
S31508001A704E1100084E1100084E1100084E110008BC
S31508001A804E1100084E1100084E1100084E110008AC
S31508001A904E1100084E1100084E1100084E1100089C
S31508001AA04E1100084E1100084E1100084E1100088C
S31508001AB04E1100084E1100084E1100084E1100087C
S31508001AC00C11000800110008FA1000080611000899
S31508001AD04E1100084E1100084E1100081211000898
S31508001AE04E110008181100081E11000824110008DC
S31508001AF04F70656E424C54002E2E2F2E2E2F2E2EF2
S31508001B002F536F757263652F41524D434D305F53A6
S31508001B10544D333246302F72733233322E630000FF
S31508001B200020000800080000040000000028000843
S31508001B30000800000500000000300008000800004A
S31508001B400600000000380008000800000700000032
S31508001B5000400008000800000800000000480008CF
S31508001B6000080000090000000050000800080000F6
S31508001B700A00000000580008000800000B000000DA
S31508001B8000600008000800000C000000006800085B
S31508001B90000800000D0000000070000800080000A2
S31508001BA00E00000000780008000800000F00000082
S31508001BB0008000080080000010000000C800002017
S30908001BC00000000013
S30D08001BC444E5FF7F0100000063
S31508001BCC00127A000400000000000000000000006B
S31508001BDC00000000000000000000000000000000EB
S31508001BEC00000000000000000000000000000000DB
S31508001BFC00000000000000000000000000000000CB
S31508001C0C00000000000000000000000000000000BA
S31508001C1C00000000000000000000000000000000AA
S31508001C2C0000000000000000E9000008C1000008E0
S70508000000F2

@ -68,11 +68,11 @@
* @{
*/
/**
* @brief STM32F0xx HAL Driver version number V1.7.0
* @brief STM32F0xx HAL Driver version number V1.7.2
*/
#define __STM32F0xx_HAL_VERSION_MAIN (0x01) /*!< [31:24] main version */
#define __STM32F0xx_HAL_VERSION_SUB1 (0x07) /*!< [23:16] sub1 version */
#define __STM32F0xx_HAL_VERSION_SUB2 (0x00) /*!< [15:8] sub2 version */
#define __STM32F0xx_HAL_VERSION_SUB2 (0x02) /*!< [15:8] sub2 version */
#define __STM32F0xx_HAL_VERSION_RC (0x00) /*!< [7:0] release candidate */
#define __STM32F0xx_HAL_VERSION ((__STM32F0xx_HAL_VERSION_MAIN << 24U)\
|(__STM32F0xx_HAL_VERSION_SUB1 << 16U)\

@ -494,18 +494,22 @@ __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
*/
HAL_StatusTypeDef HAL_FLASH_Unlock(void)
{
if (HAL_IS_BIT_SET(FLASH->CR, FLASH_CR_LOCK))
HAL_StatusTypeDef status = HAL_OK;
if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
{
/* Authorize the FLASH Registers access */
WRITE_REG(FLASH->KEYR, FLASH_KEY1);
WRITE_REG(FLASH->KEYR, FLASH_KEY2);
}
else
{
return HAL_ERROR;
/* Verify Flash is unlocked */
if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
{
status = HAL_ERROR;
}
}
return HAL_OK;
return status;
}
/**

@ -919,22 +919,22 @@ static uint32_t FLASH_OB_GetWRP(void)
*/
static uint32_t FLASH_OB_GetRDP(void)
{
uint32_t tmp_reg = 0U;
uint32_t tmp_reg;
/* Read RDP level bits */
tmp_reg = READ_BIT(FLASH->OBR, (FLASH_OBR_RDPRT1 | FLASH_OBR_RDPRT2));
if (tmp_reg == FLASH_OBR_RDPRT1)
if (tmp_reg == 0U)
{
return OB_RDP_LEVEL_1;
return OB_RDP_LEVEL_0;
}
else if (tmp_reg == FLASH_OBR_RDPRT2)
else if ((tmp_reg & FLASH_OBR_RDPRT2) == FLASH_OBR_RDPRT2)
{
return OB_RDP_LEVEL_2;
}
else
{
return OB_RDP_LEVEL_0;
return OB_RDP_LEVEL_1;
}
}

@ -1,101 +0,0 @@
/**
******************************************************************************
* @file stm32f0xx_ll_pwr.c
* @author MCD Application Team
* @brief PWR LL module driver.
******************************************************************************
* @attention
*
* <h2><center>&copy; COPYRIGHT(c) 2016 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.
*
************************************************************