From e5285479f9c455fd7d02953b9ba0944ff4b59447 Mon Sep 17 00:00:00 2001 From: Razvalyaev Date: Wed, 15 Apr 2026 16:24:41 +0300 Subject: [PATCH] =?UTF-8?q?=20=D0=B7=D0=B0=D0=B3=D0=BE=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D0=B8=D0=B3=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BC=D0=B5=D0=BB=D0=BE=D0=B4=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/Clock/melody.c | 107 ++++++++++++++++++++ Core/Clock/melody.h | 175 ++++++++++++++++++++++++++++++++ Core/Inc/main.h | 2 + Core/Inc/tim.h | 5 + Core/Src/main.c | 52 ++++++++++ Core/Src/tim.c | 122 ++++++++++++++++++++++- MDK-ARM/lamp.uvguix.I | 225 ++++++++++++++++++++++++------------------ MDK-ARM/lamp.uvoptx | 54 ++++++---- MDK-ARM/lamp.uvprojx | 10 ++ lamp.ioc | 50 ++++++---- 10 files changed, 666 insertions(+), 136 deletions(-) create mode 100644 Core/Clock/melody.c create mode 100644 Core/Clock/melody.h diff --git a/Core/Clock/melody.c b/Core/Clock/melody.c new file mode 100644 index 0000000..5678433 --- /dev/null +++ b/Core/Clock/melody.c @@ -0,0 +1,107 @@ +#include "melody.h" + +#define FIXED_ARR 10 // фиксированный период таймера + +// Конвертирует длительность ноты в миллисекунды +static uint32_t _duration_to_ms(MelodyHandle* mh, float duration) { + float quarter_sec = 60.0f / mh->bpm; // четверть в секундах + float whole_sec = quarter_sec * 4.0f; // целая нота в секундах + float note_sec = whole_sec * duration; // нота в секундах + return (uint32_t)(note_sec * 1000.0f); // в миллисекунды +} + +// Устанавливает частоту на выходе PWM +static void _set_freq(MelodyHandle* mh, uint32_t freq) { + if (freq == 0) { + // Выключаем звук - просто CCR = 0 + __HAL_TIM_SET_COMPARE(mh->htim, mh->channel, 0); + return; + } + + // Считаем предделитель: PSC = F_timer / freq / (ARR+1) + // ARR+1 = 11, так как ARR = 10 + uint32_t psc = mh->timer_clock_hz / freq / (FIXED_ARR + 1); + + // Ограничиваем диапазоном 1..65535 + if (psc < 1) psc = 1; + if (psc > 65535) psc = 65535; + + // Устанавливаем prescaler (вычитаем 1, т.к. счётчик от 0 до psc-1) + __HAL_TIM_SET_PRESCALER(mh->htim, psc - 1); + // Фиксированный период + __HAL_TIM_SET_AUTORELOAD(mh->htim, FIXED_ARR); + // Скважность 50% для чистого тона + __HAL_TIM_SET_COMPARE(mh->htim, mh->channel, FIXED_ARR / 2); +} + +void Melody_Init(MelodyHandle* mh, TIM_HandleTypeDef* htim, uint32_t channel, uint32_t timer_clock_hz) { + mh->htim = htim; + mh->channel = channel; + mh->timer_clock_hz = timer_clock_hz; + mh->sequence = NULL; + mh->length = 0; + mh->current_index = 0; + mh->note_start_time = 0; + mh->is_playing = 0; + + // Настраиваем таймер на фиксированный период + __HAL_TIM_SET_AUTORELOAD(mh->htim, FIXED_ARR); + __HAL_TIM_SET_COMPARE(mh->htim, mh->channel, 0); + + // Запускаем PWM один раз + HAL_TIM_PWM_Start(mh->htim, mh->channel); +} + +void Melody_SetBPM(MelodyHandle* mh, uint16_t bpm) { + mh->bpm = bpm; +} + +void Melody_Play(MelodyHandle* mh, const Note* sequence, uint16_t length, uint16_t bpm) { + if (mh->is_playing) { + _set_freq(mh, 0); + } + + mh->sequence = sequence; + mh->length = length; + mh->current_index = 0; + mh->is_playing = 1; + mh->note_start_time = HAL_GetTick(); + mh->bpm = bpm; + + if (length > 0 && sequence[0].freq != 0) { + _set_freq(mh, sequence[0].freq); + } +} + +void Melody_Stop(MelodyHandle* mh) { + mh->is_playing = 0; + _set_freq(mh, 0); +} + +void Melody_Update(MelodyHandle* mh) { + if (!mh->is_playing) return; + + uint32_t now = HAL_GetTick(); + uint32_t dur_ms = _duration_to_ms(mh, mh->sequence[mh->current_index].duration); + + if (now - mh->note_start_time >= dur_ms) { + mh->current_index++; + + if (mh->current_index >= mh->length) { + Melody_Stop(mh); + return; + } + + mh->note_start_time = now; + + if (mh->sequence[mh->current_index].freq == NOTE_REST) { + __HAL_TIM_SET_COMPARE(mh->htim, mh->channel, 0); + } else { + _set_freq(mh, mh->sequence[mh->current_index].freq); + } + } +} + +uint8_t Melody_IsPlaying(MelodyHandle* mh) { + return mh->is_playing; +} \ No newline at end of file diff --git a/Core/Clock/melody.h b/Core/Clock/melody.h new file mode 100644 index 0000000..716cb1c --- /dev/null +++ b/Core/Clock/melody.h @@ -0,0 +1,175 @@ +#ifndef MELODY_H +#define MELODY_H + +#include "stm32f1xx_hal.h" + +typedef struct { + uint16_t freq; // частота в Гц или NOTE_REST + float duration; // длительность в долях (0.25 = четверть) +} Note; + +typedef struct { + TIM_HandleTypeDef* htim; + uint32_t channel; + uint32_t timer_clock_hz; // частота тактирования таймера в Гц + const Note* sequence; + uint16_t length; + uint16_t current_index; + uint32_t note_start_time; + uint8_t is_playing; + uint16_t bpm; +} MelodyHandle; + +void Melody_Init(MelodyHandle* mh, TIM_HandleTypeDef* htim, uint32_t channel, uint32_t timer_clock_hz); +void Melody_SetBPM(MelodyHandle* mh, uint16_t bpm); +void Melody_Play(MelodyHandle* mh, const Note* sequence, uint16_t length, uint16_t bpm); +void Melody_Stop(MelodyHandle* mh); +void Melody_Update(MelodyHandle* mh); +uint8_t Melody_IsPlaying(MelodyHandle* mh); + +// Длительности (в долях от целой ноты) +#define NOTE_WHOLE 1.0 +#define NOTE_HALF 0.5 +#define NOTE_QUARTER 0.25 +#define NOTE_EIGHTH 0.125 +#define NOTE_SIXTEENTH 0.0625 +#define NOTE_THIRTYSECOND 0.03125 + +#define NOTE_WHOLE_DOT 1.5 +#define NOTE_HALF_DOT 0.75 +#define NOTE_QUARTER_DOT 0.375 +#define NOTE_EIGHTH_DOT 0.1875 +#define NOTE_SIXTEENTH_DOT 0.09375 + +// Ноты (частота, Гц) - диапазон 700-8000 Гц для SCS-17-S +// Октавы смещены: старая 4-я = новая 0-я, старая 5-я = новая 1-я и т.д. + +// 0-я октава (бывшая 4-я) +#define NOTE_B0 494 +#define NOTE_C1 523 +#define NOTE_CS1 554 +#define NOTE_D1 587 +#define NOTE_DS1 622 +#define NOTE_E1 659 +#define NOTE_F1 698 +#define NOTE_FS1 740 +#define NOTE_G1 784 +#define NOTE_GS1 831 +#define NOTE_A1 880 +#define NOTE_AS1 932 +#define NOTE_B1 988 + +// 2-я октава (бывшая 6-я) +#define NOTE_C2 1047 +#define NOTE_CS2 1109 +#define NOTE_D2 1175 +#define NOTE_DS2 1245 +#define NOTE_E2 1319 +#define NOTE_F2 1397 +#define NOTE_FS2 1480 +#define NOTE_G2 1568 +#define NOTE_GS2 1661 +#define NOTE_A2 1760 +#define NOTE_AS2 1865 +#define NOTE_B2 1976 + +// 3-я октава (бывшая 7-я) +#define NOTE_C3 2093 +#define NOTE_CS3 2217 +#define NOTE_D3 2349 +#define NOTE_DS3 2489 +#define NOTE_E3 2637 +#define NOTE_F3 2794 +#define NOTE_FS3 2960 +#define NOTE_G3 3136 +#define NOTE_GS3 3322 +#define NOTE_A3 3520 +#define NOTE_AS3 3729 +#define NOTE_B3 3951 + +// 4-я октава (бывшая 8-я) +#define NOTE_C4 4186 +#define NOTE_CS4 4435 +#define NOTE_D4 4699 +#define NOTE_DS4 4978 +#define NOTE_E4 5274 +#define NOTE_F4 5588 +#define NOTE_FS4 5920 +#define NOTE_G4 6272 +#define NOTE_GS4 6645 +#define NOTE_A4 7040 +#define NOTE_AS4 7459 +#define NOTE_B4 7902 + +// Сольфеджио с новыми октавами +// 0-я октава +#define SI0 NOTE_B0 // 494 Hz + +// 1-я октава +#define DO1 NOTE_C1 // 523 Hz +#define RE1 NOTE_D1 // 587 Hz +#define MI1 NOTE_E1 // 659 Hz +#define FA1 NOTE_F1 // 698 Hz +#define SOL1 NOTE_G1 // 784 Hz +#define LA1 NOTE_A1 // 880 Hz +#define SI1 NOTE_B1 // 988 Hz + +// 2-я октава +#define DO2 NOTE_C2 // 1047 Hz +#define RE2 NOTE_D2 // 1175 Hz +#define MI2 NOTE_E2 // 1319 Hz +#define FA2 NOTE_F2 // 1397 Hz +#define SOL2 NOTE_G2 // 1568 Hz +#define LA2 NOTE_A2 // 1760 Hz +#define SI2 NOTE_B2 // 1976 Hz + +// 3-я октава +#define DO3 NOTE_C3 // 2093 Hz +#define RE3 NOTE_D3 // 2349 Hz +#define MI3 NOTE_E3 // 2637 Hz +#define FA3 NOTE_F3 // 2794 Hz +#define SOL3 NOTE_G3 // 3136 Hz +#define LA3 NOTE_A3 // 3520 Hz +#define SI3 NOTE_B3 // 3951 Hz + +// 4-я октава +#define DO4 NOTE_C4 // 4186 Hz +#define RE4 NOTE_D4 // 4699 Hz +#define MI4 NOTE_E4 // 5274 Hz +#define FA4 NOTE_F4 // 5588 Hz +#define SOL4 NOTE_G4 // 6272 Hz +#define LA4 NOTE_A4 // 7040 Hz +#define SI4 NOTE_B4 // 7902 Hz + +// Диезы для 1-й октавы +#define DO1s NOTE_CS1 // 554 Hz +#define RE1s NOTE_DS1 // 622 Hz +#define FA1s NOTE_FS1 // 740 Hz +#define SOL1s NOTE_GS1 // 831 Hz +#define LA1s NOTE_AS1 // 932 Hz + +// Диезы для 2-й октавы +#define DO2s NOTE_CS2 // 1109 Hz +#define RE2s NOTE_DS2 // 1245 Hz +#define FA2s NOTE_FS2 // 1480 Hz +#define SOL2s NOTE_GS2 // 1661 Hz +#define LA2s NOTE_AS2 // 1865 Hz + +// Диезы для 3-й октавы +#define DO3s NOTE_CS3 // 2217 Hz +#define RE3s NOTE_DS3 // 2489 Hz +#define FA3s NOTE_FS3 // 2960 Hz +#define SOL3s NOTE_GS3 // 3322 Hz +#define LA3s NOTE_AS3 // 3729 Hz + +// Диезы для 4-й октавы +#define DO4s NOTE_CS4 // 4435 Hz +#define RE4s NOTE_DS4 // 4978 Hz +#define FA4s NOTE_FS4 // 5920 Hz +#define SOL4s NOTE_GS4 // 6645 Hz +#define LA4s NOTE_AS4 // 7459 Hz + +#define NOTE_REST 0 + + +#endif \ No newline at end of file diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 5ba0075..f6ac47d 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -78,6 +78,8 @@ void Error_Handler(void); #define DIGIT_SEC_L_GPIO_Port GPIOA #define SEGMENT_A_Pin GPIO_PIN_15 #define SEGMENT_A_GPIO_Port GPIOB +#define BUZZER_Pin GPIO_PIN_8 +#define BUZZER_GPIO_Port GPIOA #define SW_ENTER_Pin GPIO_PIN_9 #define SW_ENTER_GPIO_Port GPIOA #define SW_UP_Pin GPIO_PIN_10 diff --git a/Core/Inc/tim.h b/Core/Inc/tim.h index 5e9bd09..24dd662 100644 --- a/Core/Inc/tim.h +++ b/Core/Inc/tim.h @@ -32,14 +32,19 @@ extern "C" { /* USER CODE END Includes */ +extern TIM_HandleTypeDef htim1; + extern TIM_HandleTypeDef htim2; /* USER CODE BEGIN Private defines */ /* USER CODE END Private defines */ +void MX_TIM1_Init(void); void MX_TIM2_Init(void); +void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); + /* USER CODE BEGIN Prototypes */ /* USER CODE END Prototypes */ diff --git a/Core/Src/main.c b/Core/Src/main.c index ce704af..828216a 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -27,6 +27,7 @@ #include "clock_manager.h" #include "menu.h" #include "segment.h" +#include "melody.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -78,6 +79,50 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { Segment_Process(); } } +MelodyHandle melody; +const Note mySong[] = { +// //1 +// {SOL2, NOTE_QUARTER}, +// {MI3, NOTE_EIGHTH}, +// {SI3, NOTE_EIGHTH}, +// {MI4, NOTE_EIGHTH}, +// {SI3, NOTE_EIGHTH}, +// {SOL3, NOTE_EIGHTH}, +// {SI3, NOTE_EIGHTH}, +// {DO4, NOTE_EIGHTH_DOT}, +// {LA3, NOTE_SIXTEENTH}, +// {SI3, NOTE_EIGHTH}, +// {SI2, NOTE_EIGHTH_DOT}, +// {DO2, NOTE_SIXTEENTH}, +// {SI3, NOTE_EIGHTH}, +// {MI3, NOTE_QUARTER}, + + //2 + {RE3s, NOTE_QUARTER}, + {SI2, NOTE_EIGHTH}, + {LA2, NOTE_EIGHTH}, + {LA3, NOTE_EIGHTH}, + {SI3, NOTE_SIXTEENTH}, + {LA3, NOTE_EIGHTH}, + {RE3, NOTE_SIXTEENTH}, + {FA4s, NOTE_SIXTEENTH}, + {LA4, NOTE_SIXTEENTH}, + {RE3s, NOTE_EIGHTH}, + {LA3, NOTE_SIXTEENTH}, + {RE3s, NOTE_EIGHTH}, + + {SI4, NOTE_SIXTEENTH}, + {FA4s, NOTE_SIXTEENTH}, + {RE3s, NOTE_THIRTYSECOND}, + {NOTE_REST, NOTE_THIRTYSECOND}, + {RE3s, NOTE_EIGHTH}, + {MI3, NOTE_EIGHTH}, + + {DO3, NOTE_SIXTEENTH}, + {SI2, NOTE_SIXTEENTH}, + {MI3, NOTE_SIXTEENTH}, +}; + /* USER CODE END 0 */ /** @@ -111,6 +156,7 @@ int main(void) MX_GPIO_Init(); MX_RTC_Init(); MX_TIM2_Init(); + MX_TIM1_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ @@ -120,10 +166,16 @@ int main(void) Segment_Init(); ClockManager_Init(); Menu_Init(); + HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); HAL_TIM_Base_Start_IT(&htim2); + // BPM = 120 + Melody_Init(&melody, &htim1, TIM_CHANNEL_1, 72000000); + + Melody_Play(&melody, mySong, sizeof(mySong)/sizeof(mySong[0]), 80); while (1) { Menu_Process(); + Melody_Update(&melody); /* USER CODE END WHILE */ diff --git a/Core/Src/tim.c b/Core/Src/tim.c index 4fa0a0e..657f4fe 100644 --- a/Core/Src/tim.c +++ b/Core/Src/tim.c @@ -24,8 +24,79 @@ /* USER CODE END 0 */ +TIM_HandleTypeDef htim1; TIM_HandleTypeDef htim2; +/* TIM1 init function */ +void MX_TIM1_Init(void) +{ + + /* USER CODE BEGIN TIM1_Init 0 */ + + /* USER CODE END TIM1_Init 0 */ + + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + TIM_MasterConfigTypeDef sMasterConfig = {0}; + TIM_OC_InitTypeDef sConfigOC = {0}; + TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0}; + + /* USER CODE BEGIN TIM1_Init 1 */ + + /* USER CODE END TIM1_Init 1 */ + htim1.Instance = TIM1; + htim1.Init.Prescaler = 0; + htim1.Init.CounterMode = TIM_COUNTERMODE_UP; + htim1.Init.Period = 65535; + htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim1.Init.RepetitionCounter = 0; + htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim1) != HAL_OK) + { + Error_Handler(); + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK) + { + Error_Handler(); + } + 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 = 0; + 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(); + } + 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(); + } + /* USER CODE BEGIN TIM1_Init 2 */ + + /* USER CODE END TIM1_Init 2 */ + HAL_TIM_MspPostInit(&htim1); + +} /* TIM2 init function */ void MX_TIM2_Init(void) { @@ -70,7 +141,18 @@ void MX_TIM2_Init(void) void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) { - if(tim_baseHandle->Instance==TIM2) + if(tim_baseHandle->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 */ + } + else if(tim_baseHandle->Instance==TIM2) { /* USER CODE BEGIN TIM2_MspInit 0 */ @@ -86,11 +168,47 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) /* USER CODE END TIM2_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(); + /**TIM1 GPIO Configuration + PA8 ------> TIM1_CH1 + */ + GPIO_InitStruct.Pin = BUZZER_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(BUZZER_GPIO_Port, &GPIO_InitStruct); + + /* USER CODE BEGIN TIM1_MspPostInit 1 */ + + /* USER CODE END TIM1_MspPostInit 1 */ + } + +} void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) { - if(tim_baseHandle->Instance==TIM2) + if(tim_baseHandle->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 */ + } + else if(tim_baseHandle->Instance==TIM2) { /* USER CODE BEGIN TIM2_MspDeInit 0 */ diff --git a/MDK-ARM/lamp.uvguix.I b/MDK-ARM/lamp.uvguix.I index 97cfaf0..e78a2c3 100644 --- a/MDK-ARM/lamp.uvguix.I +++ b/MDK-ARM/lamp.uvguix.I @@ -6,7 +6,7 @@
### uVision Project, (C) Keil Software
- H:\.HOBBY\lamp\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm + F:\OtherStuff\Lamps\Core\Clock @@ -28,6 +28,12 @@ 90 + + System Viewer\TIM1 + 35903 + + 180 + @@ -44,7 +50,7 @@ 204 Performance Analyzer - 320 153 153 100 + 18 153 153 100 @@ -89,7 +95,7 @@ 466 Source Browser 500 - 166 + 300 @@ -112,8 +118,8 @@ 2 3 - -32000 - -32000 + -1 + -1 -1 @@ -129,8 +135,8 @@ 0 - 2117 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000017000000020000000100000023483A5C2E484F4242595C6C616D705C436F72655C436C6F636B5C7365676D656E742E6300000000097365676D656E742E6300000000C5D4F200FFFFFFFF2C483A5C2E484F4242595C6C616D705C4D444B2D41524D5C737461727475705F73746D33326631303378622E730000000015737461727475705F73746D33326631303378622E7300000000FFDC7800FFFFFFFF1E483A5C2E484F4242595C6C616D705C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF46483A5C2E484F4242595C6C616D705C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F74696D5F65782E63000000001673746D3332663178785F68616C5F74696D5F65782E6300000000F0A0A100FFFFFFFF1E483A5C2E484F4242595C6C616D705C436F72655C5372635C6770696F2E6300000000066770696F2E6300000000BCA8E100FFFFFFFF26483A5C2E484F4242595C6C616D705C436F72655C5372635C73746D3332663178785F69742E63000000000E73746D3332663178785F69742E63000000009CC1B600FFFFFFFF3F483A5C2E484F4242595C6C616D705C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C2E63000000000F73746D3332663178785F68616C2E6300000000F7B88600FFFFFFFF2B483A5C2E484F4242595C6C616D705C436F72655C5372635C73746D3332663178785F68616C5F6D73702E63000000001373746D3332663178785F68616C5F6D73702E6300000000D9ADC200FFFFFFFF2A483A5C2E484F4242595C6C616D705C436F72655C5372635C73797374656D5F73746D3332663178782E63000000001273797374656D5F73746D3332663178782E6300000000A5C2D700FFFFFFFF43483A5C2E484F4242595C6C616D705C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F7263632E63000000001373746D3332663178785F68616C5F7263632E6300000000B3A6BE00FFFFFFFF1D483A5C2E484F4242595C6C616D705C436F72655C5372635C74696D2E63000000000574696D2E6300000000EAD6A300FFFFFFFF46483A5C2E484F4242595C6C616D705C447269766572735C434D5349535C4465766963655C53545C53544D3332463178785C496E636C7564655C73746D33326631303378622E68000000000D73746D33326631303378622E6800000000F6FA7D00FFFFFFFF44483A5C2E484F4242595C6C616D705C447269766572735C434D5349535C4465766963655C53545C53544D3332463178785C496E636C7564655C73746D3332663178782E68000000000B73746D3332663178782E6800000000B5E99D00FFFFFFFF47483A5C2E484F4242595C6C616D705C447269766572735C53544D3332463178785F48414C5F4472697665725C496E635C73746D3332663178785F68616C5F6770696F5F65782E68000000001773746D3332663178785F68616C5F6770696F5F65782E68000000005FC3CF00FFFFFFFF5B483A5C2E484F4242595C6C616D705C447269766572735C434D5349535C4465766963655C53545C53544D3332463178785C536F757263655C54656D706C617465735C61726D5C737461727475705F73746D33326631303178362E730000000015737461727475705F73746D33326631303178362E7300000000C1838300FFFFFFFF23483A5C2E484F4242595C6C616D705C436F72655C436C6F636B5C7365676D656E742E6800000000097365676D656E742E6800000000CACAD500FFFFFFFF20483A5C2E484F4242595C6C616D705C436F72655C436C6F636B5C6D656E752E6300000000066D656E752E6300000000C5D4F200FFFFFFFF29483A5C2E484F4242595C6C616D705C436F72655C436C6F636B5C636C6F636B5F6D616E616765722E63000000000F636C6F636B5F6D616E616765722E6300000000FFDC7800FFFFFFFF1D483A5C2E484F4242595C6C616D705C436F72655C5372635C7274632E6300000000057274632E6300000000BECEA100FFFFFFFF43483A5C2E484F4242595C6C616D705C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F7274632E63000000001373746D3332663178785F68616C5F7274632E6300000000F0A0A100FFFFFFFF43483A5C2E484F4242595C6C616D705C447269766572735C53544D3332463178785F48414C5F4472697665725C496E635C73746D3332663178785F68616C5F7274632E68000000001373746D3332663178785F68616C5F7274632E6800000000BCA8E100FFFFFFFF43483A5C2E484F4242595C6C616D705C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F74696D2E63000000001373746D3332663178785F68616C5F74696D2E63000000009CC1B600FFFFFFFF44483A5C2E484F4242595C6C616D705C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F6770696F2E63000000001473746D3332663178785F68616C5F6770696F2E6300000000F7B88600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000023010000660000009006000007030000 + 2421 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000001A000000020000000100000028463A5C4F7468657253747566665C4C616D70735C436F72655C436C6F636B5C7365676D656E742E6300000000097365676D656E742E6300000000C5D4F200FFFFFFFF31463A5C4F7468657253747566665C4C616D70735C4D444B2D41524D5C737461727475705F73746D33326631303378622E730000000015737461727475705F73746D33326631303378622E7300000000FFDC7800FFFFFFFF23463A5C4F7468657253747566665C4C616D70735C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF4B463A5C4F7468657253747566665C4C616D70735C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F74696D5F65782E63000000001673746D3332663178785F68616C5F74696D5F65782E6300000000F0A0A100FFFFFFFF23463A5C4F7468657253747566665C4C616D70735C436F72655C5372635C6770696F2E6300000000066770696F2E6300000000BCA8E100FFFFFFFF2B463A5C4F7468657253747566665C4C616D70735C436F72655C5372635C73746D3332663178785F69742E63000000000E73746D3332663178785F69742E63000000009CC1B600FFFFFFFF44463A5C4F7468657253747566665C4C616D70735C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C2E63000000000F73746D3332663178785F68616C2E6300000000F7B88600FFFFFFFF30463A5C4F7468657253747566665C4C616D70735C436F72655C5372635C73746D3332663178785F68616C5F6D73702E63000000001373746D3332663178785F68616C5F6D73702E6300000000D9ADC200FFFFFFFF2F463A5C4F7468657253747566665C4C616D70735C436F72655C5372635C73797374656D5F73746D3332663178782E63000000001273797374656D5F73746D3332663178782E6300000000A5C2D700FFFFFFFF48463A5C4F7468657253747566665C4C616D70735C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F7263632E63000000001373746D3332663178785F68616C5F7263632E6300000000B3A6BE00FFFFFFFF22463A5C4F7468657253747566665C4C616D70735C436F72655C5372635C74696D2E63000000000574696D2E6300000000EAD6A300FFFFFFFF4B463A5C4F7468657253747566665C4C616D70735C447269766572735C434D5349535C4465766963655C53545C53544D3332463178785C496E636C7564655C73746D33326631303378622E68000000000D73746D33326631303378622E6800000000F6FA7D00FFFFFFFF49463A5C4F7468657253747566665C4C616D70735C447269766572735C434D5349535C4465766963655C53545C53544D3332463178785C496E636C7564655C73746D3332663178782E68000000000B73746D3332663178782E6800000000B5E99D00FFFFFFFF4C463A5C4F7468657253747566665C4C616D70735C447269766572735C53544D3332463178785F48414C5F4472697665725C496E635C73746D3332663178785F68616C5F6770696F5F65782E68000000001773746D3332663178785F68616C5F6770696F5F65782E68000000005FC3CF00FFFFFFFF60463A5C4F7468657253747566665C4C616D70735C447269766572735C434D5349535C4465766963655C53545C53544D3332463178785C536F757263655C54656D706C617465735C61726D5C737461727475705F73746D33326631303178362E730000000015737461727475705F73746D33326631303178362E7300000000C1838300FFFFFFFF28463A5C4F7468657253747566665C4C616D70735C436F72655C436C6F636B5C7365676D656E742E6800000000097365676D656E742E6800000000CACAD500FFFFFFFF25463A5C4F7468657253747566665C4C616D70735C436F72655C436C6F636B5C6D656E752E6300000000066D656E752E6300000000C5D4F200FFFFFFFF2E463A5C4F7468657253747566665C4C616D70735C436F72655C436C6F636B5C636C6F636B5F6D616E616765722E63000000000F636C6F636B5F6D616E616765722E6300000000FFDC7800FFFFFFFF22463A5C4F7468657253747566665C4C616D70735C436F72655C5372635C7274632E6300000000057274632E6300000000BECEA100FFFFFFFF48463A5C4F7468657253747566665C4C616D70735C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F7274632E63000000001373746D3332663178785F68616C5F7274632E6300000000F0A0A100FFFFFFFF48463A5C4F7468657253747566665C4C616D70735C447269766572735C53544D3332463178785F48414C5F4472697665725C496E635C73746D3332663178785F68616C5F7274632E68000000001373746D3332663178785F68616C5F7274632E6800000000BCA8E100FFFFFFFF48463A5C4F7468657253747566665C4C616D70735C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F74696D2E63000000001373746D3332663178785F68616C5F74696D2E63000000009CC1B600FFFFFFFF49463A5C4F7468657253747566665C4C616D70735C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F6770696F2E63000000001473746D3332663178785F68616C5F6770696F2E6300000000F7B88600FFFFFFFF27463A5C4F7468657253747566665C4C616D70735C436F72655C436C6F636B5C6D656C6F64792E6800000000086D656C6F64792E6800000000D9ADC200FFFFFFFF27463A5C4F7468657253747566665C4C616D70735C436F72655C436C6F636B5C6D656C6F64792E6300000000086D656C6F64792E6300000000A5C2D700FFFFFFFF23463A5C4F7468657253747566665C4C616D70735C436F72655C496E635C6D61696E2E6800000000066D61696E2E6800000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000023010000660000009006000007030000 @@ -1824,8 +1830,8 @@ 59392 File - 2997 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000255F5F48414C5F54494D5F4D4F455F44495341424C455F554E434F4E444954494F4E414C4C5996000000000000001400255F5F48414C5F54494D5F4D4F455F44495341424C455F554E434F4E444954494F4E414C4C590850574D5F53746F700C524546524553485F52415445155550505F43555252454E545F52414E47455F353041155550505F43555252454E545F52414E47455F3930410553572D44500B73746D33326631303378620B4750494F5F50494E5F3135125669727475616C537065656453656E736F720952657655704374726C1153706565646E506F734664626B5F53544F1368616C6C5F73706565645F706F735F6664626B1853544F5F434F524449435F53706565646E506F734664626B06636F726469630A535044504F545F52756E16506F74656E74696F6D657465725F48616E646C655F7413504F545F54616B654D6561737572656D656E74077048616E646C650D506F74526567436F6E765F4D31214D435F4150505F506F73744D656469756D4672657175656E6379486F6F6B5F4D310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2965 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000E74696D65725F636C6F636B5F687A960000000000000014000E4E4F54455F5349585445454E54480E74696D65725F636C6F636B5F687A155243435F4C53455F54494D454F55545F56414C5545134C53455F535441525455505F54494D454F5554115254435F4155544F5F315F5345434F4E44255F5F48414C5F54494D5F4D4F455F44495341424C455F554E434F4E444954494F4E414C4C590850574D5F53746F700C524546524553485F52415445155550505F43555252454E545F52414E47455F353041155550505F43555252454E545F52414E47455F3930410553572D44500B73746D33326631303378620B4750494F5F50494E5F3135125669727475616C537065656453656E736F720952657655704374726C1153706565646E506F734664626B5F53544F1368616C6C5F73706565645F706F735F6664626B1853544F5F434F524449435F53706565646E506F734664626B06636F726469630A535044504F545F52756E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1857,7 +1863,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -1890,11 +1896,11 @@ 0 16 - D60000004F000000B6030000BA000000 + D60000004F00000088020000BA000000 16 - D600000066000000B6030000D1000000 + D60000006600000088020000D1000000 @@ -1950,7 +1956,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -1970,7 +1976,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -1990,7 +1996,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -2010,7 +2016,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -2030,7 +2036,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2050,7 +2056,7 @@ 0 16 - D900000066000000B3030000A1000000 + D90000006600000085020000A1000000 16 @@ -2070,7 +2076,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -2090,7 +2096,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -2110,7 +2116,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -2130,7 +2136,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -2150,7 +2156,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -2170,7 +2176,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -2190,7 +2196,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -2310,7 +2316,7 @@ 0 16 - D600000063000000B6030000BA000000 + D60000006300000088020000BA000000 16 @@ -2330,7 +2336,7 @@ 0 16 - D900000066000000B3030000A1000000 + D90000006600000085020000A1000000 16 @@ -2370,7 +2376,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2390,7 +2396,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -2410,7 +2416,7 @@ 0 16 - D900000066000000B3030000A1000000 + D90000006600000085020000A1000000 16 @@ -2430,7 +2436,7 @@ 0 16 - D900000066000000B3030000A1000000 + D90000006600000085020000A1000000 16 @@ -2450,7 +2456,7 @@ 0 16 - D900000066000000B3030000A1000000 + D90000006600000085020000A1000000 16 @@ -2470,7 +2476,7 @@ 0 16 - D900000066000000B3030000A1000000 + D90000006600000085020000A1000000 16 @@ -2490,7 +2496,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2510,7 +2516,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2530,7 +2536,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2550,7 +2556,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2570,7 +2576,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2590,7 +2596,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2610,7 +2616,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2630,7 +2636,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2650,7 +2656,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2670,7 +2676,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2690,7 +2696,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2710,7 +2716,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2730,7 +2736,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2750,7 +2756,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2770,7 +2776,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2790,7 +2796,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2810,7 +2816,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2830,7 +2836,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2840,7 +2846,7 @@ 35903 35903 - 0 + 1 0 0 0 @@ -2850,7 +2856,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2870,7 +2876,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -2890,7 +2896,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -2970,7 +2976,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -2990,7 +2996,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -3050,7 +3056,7 @@ 0 16 - D900000066000000B3030000A1000000 + D90000006600000085020000A1000000 16 @@ -3070,7 +3076,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3090,7 +3096,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3110,7 +3116,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3130,7 +3136,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3150,7 +3156,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3170,7 +3176,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3190,7 +3196,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3210,7 +3216,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3230,7 +3236,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3250,7 +3256,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3270,7 +3276,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3290,7 +3296,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3310,7 +3316,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3330,7 +3336,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3350,7 +3356,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3370,7 +3376,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3390,7 +3396,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3410,7 +3416,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3430,7 +3436,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3450,7 +3456,7 @@ 0 16 - BD03000066000000A20500005B020000 + 8F02000066000000A50400005B020000 16 @@ -3550,7 +3556,7 @@ 0 16 - AC050000660000008D0600005B020000 + AF040000660000008D0600005B020000 16 @@ -3559,14 +3565,14 @@ 3446 - 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFFD6000000BA000000B6030000BE00000001000000010000100400000001000000000000000000000000000000000000000000000001000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000D600000066000000B6030000D1000000D60000004F000000B6030000BA0000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000001000000FFFFFFFFFFFFFFFFB60300004F000000BA03000074020000010000000200001004000000010000005CFCFFFF060200000000000000000000000000000100000000000000000000000000000001000000FFFFFFFF2A000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000001000000BA03000066000000A50500008B020000BA0300004F000000A50500007402000000000000404100562A0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF054750494F43010000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF044146494F000000003F8C000001000000FFFFFFFFFFFFFFFF054750494F4201000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFF1200000000000000FFFFFFFF100000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000408C000001800040000001000000A905000066000000900600008B020000A90500004F00000090060000740200000000000040410056100000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF054750494F4101000000408C000001000000FFFFFFFFFFFFFFFF050000000000000002000000000000000100000002000000FFFFFFFFA50500004F000000A90500007402000001000000020000100400000000000000B6FEFFFF850100000000000000000000000000000000000002000000FFFFFFFFE2050000FFFFFFFF8F07000001000000FFFFFFFFE205000001000000FFFFFFFF8F070000000000000010000001000000FFFFFFFFFFFFFFFFD20000004F000000D600000074020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000D20000008B020000000000004F000000D2000000740200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF000000007402000090060000780200000100000001000010040000000100000042FEFFFFDE00000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFF48030000850200004C030000C803000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000039030000900600003D030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000000005403000090060000DF030000000000003D03000090060000C80300000000000040820056060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFFD6000000BA00000088020000BE00000001000000010000100400000001000000000000000000000000000000000000000000000001000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000D60000006600000088020000D1000000D60000004F00000088020000BA0000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000001000000FFFFFFFFFFFFFFFF880200004F0000008C0200007402000001000000020000100400000001000000CCFCFFFF760200000000000000000000000000000100000000000000000000000000000001000000FFFFFFFF2A000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000010000008C02000066000000A80400008B0200008C0200004F000000A80400007402000000000000404100562A0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF054750494F43010000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF0454494D31010000003F8C000001000000FFFFFFFFFFFFFFFF054750494F4201000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFF1400000000000000FFFFFFFF100000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000408C000001800040000001000000AC04000066000000900600008B020000AC0400004F00000090060000740200000000000040410056100000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF054750494F4101000000408C000001000000FFFFFFFFFFFFFFFF050000000000000002000000000000000100000002000000FFFFFFFFA80400004F000000AC0400007402000001000000020000100400000000000000B6FEFFFF850100000000000000000000000000000000000002000000FFFFFFFFE2050000FFFFFFFF8F07000001000000FFFFFFFFE205000001000000FFFFFFFF8F070000000000000010000001000000FFFFFFFFFFFFFFFFD20000004F000000D600000074020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000D20000008B020000000000004F000000D2000000740200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF000000007402000090060000780200000100000001000010040000000100000042FEFFFFDE00000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFF48030000850200004C030000C803000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000039030000900600003D030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000000005403000090060000DF030000000000003D03000090060000C80300000000000040820056060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2997 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000255F5F48414C5F54494D5F4D4F455F44495341424C455F554E434F4E444954494F4E414C4C5996000000000000001400255F5F48414C5F54494D5F4D4F455F44495341424C455F554E434F4E444954494F4E414C4C590850574D5F53746F700C524546524553485F52415445155550505F43555252454E545F52414E47455F353041155550505F43555252454E545F52414E47455F3930410553572D44500B73746D33326631303378620B4750494F5F50494E5F3135125669727475616C537065656453656E736F720952657655704374726C1153706565646E506F734664626B5F53544F1368616C6C5F73706565645F706F735F6664626B1853544F5F434F524449435F53706565646E506F734664626B06636F726469630A535044504F545F52756E16506F74656E74696F6D657465725F48616E646C655F7413504F545F54616B654D6561737572656D656E74077048616E646C650D506F74526567436F6E765F4D31214D435F4150505F506F73744D656469756D4672657175656E6379486F6F6B5F4D310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000000180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2973 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000E74696D65725F636C6F636B5F687A960000000000000014000E74696D65725F636C6F636B5F687A155243435F4C53455F54494D454F55545F56414C5545134C53455F535441525455505F54494D454F5554115254435F4155544F5F315F5345434F4E44255F5F48414C5F54494D5F4D4F455F44495341424C455F554E434F4E444954494F4E414C4C590850574D5F53746F700C524546524553485F52415445155550505F43555252454E545F52414E47455F353041155550505F43555252454E545F52414E47455F3930410553572D44500B73746D33326631303378620B4750494F5F50494E5F3135125669727475616C537065656453656E736F720952657655704374726C1153706565646E506F734664626B5F53544F1368616C6C5F73706565645F706F735F6664626B1853544F5F434F524449435F53706565646E506F734664626B06636F726469630A535044504F545F52756E16506F74656E74696F6D657465725F48616E646C655F740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -3582,7 +3588,7 @@ Build 955 - 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -3598,7 +3604,7 @@ Debug 2362 - 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3644,8 +3650,8 @@ ../Core/Src/main.c 21 - 104 - 118 + 88 + 117 1 0 @@ -3653,7 +3659,7 @@ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c 0 - 129 + 132 139 1 @@ -3715,9 +3721,9 @@ ../Core/Src/tim.c - 0 - 1 - 1 + 5 + 30 + 31 1 0 @@ -3769,18 +3775,18 @@ ..\Core\Clock\menu.c - 0 - 382 - 418 + 1 + 289 + 356 1 0 ..\Core\Clock\clock_manager.c - 49 - 16 - 34 + 21 + 23 + 54 1 0 @@ -3830,6 +3836,33 @@ 0 + + ..\Core\Clock\melody.h + 0 + 22 + 35 + 1 + + 0 + + + ..\Core\Clock\melody.c + 0 + 63 + 88 + 1 + + 0 + + + ..\Core\Inc\main.h + 33 + 24 + 100 + 1 + + 0 + diff --git a/MDK-ARM/lamp.uvoptx b/MDK-ARM/lamp.uvoptx index 188387c..9a534b3 100644 --- a/MDK-ARM/lamp.uvoptx +++ b/MDK-ARM/lamp.uvoptx @@ -148,24 +148,7 @@ (105=-1,-1,-1,-1,0) - - - 0 - 0 - 111 - 1 -
134234580
- 0 - 0 - 0 - 0 - 0 - 1 - ../Core/Src/main.c - - \\lamp\../Core/Src/main.c\111 -
-
+ 0 @@ -180,7 +163,12 @@ 2 1 - rtc_time + rtc_time,0x0A + + + 3 + 1 + htim1.Instance,0x0A @@ -238,6 +226,10 @@ System Viewer\RTC 35904 + + System Viewer\TIM1 + 35903 + 1 @@ -647,6 +639,30 @@ 0 0 + + 5 + 31 + 1 + 0 + 0 + 0 + ..\Core\Clock\melody.c + melody.c + 0 + 0 + + + 5 + 32 + 5 + 0 + 0 + 0 + ..\Core\Clock\melody.h + melody.h + 0 + 0 + diff --git a/MDK-ARM/lamp.uvprojx b/MDK-ARM/lamp.uvprojx index 44ded98..066d24e 100644 --- a/MDK-ARM/lamp.uvprojx +++ b/MDK-ARM/lamp.uvprojx @@ -797,6 +797,16 @@ 5 ..\Core\Clock\segment.h + + melody.c + 1 + ..\Core\Clock\melody.c + + + melody.h + 5 + ..\Core\Clock\melody.h + diff --git a/lamp.ioc b/lamp.ioc index f4d88a1..a81c5f1 100644 --- a/lamp.ioc +++ b/lamp.ioc @@ -11,30 +11,33 @@ Mcu.IP0=NVIC Mcu.IP1=RCC Mcu.IP2=RTC Mcu.IP3=SYS -Mcu.IP4=TIM2 -Mcu.IPNb=5 +Mcu.IP4=TIM1 +Mcu.IP5=TIM2 +Mcu.IPNb=6 Mcu.Name=STM32F103C(8-B)Tx Mcu.Package=LQFP48 Mcu.Pin0=PC13-TAMPER-RTC Mcu.Pin1=PC14-OSC32_IN Mcu.Pin10=PA5 Mcu.Pin11=PB15 -Mcu.Pin12=PA9 -Mcu.Pin13=PA10 -Mcu.Pin14=PA11 -Mcu.Pin15=PA12 -Mcu.Pin16=PA13 -Mcu.Pin17=PA14 -Mcu.Pin18=PB3 -Mcu.Pin19=PB4 +Mcu.Pin12=PA8 +Mcu.Pin13=PA9 +Mcu.Pin14=PA10 +Mcu.Pin15=PA11 +Mcu.Pin16=PA12 +Mcu.Pin17=PA13 +Mcu.Pin18=PA14 +Mcu.Pin19=PB3 Mcu.Pin2=PC15-OSC32_OUT -Mcu.Pin20=PB6 -Mcu.Pin21=PB7 -Mcu.Pin22=PB8 -Mcu.Pin23=PB9 -Mcu.Pin24=VP_RTC_VS_RTC_Activate -Mcu.Pin25=VP_SYS_VS_Systick -Mcu.Pin26=VP_TIM2_VS_ClockSourceINT +Mcu.Pin20=PB4 +Mcu.Pin21=PB6 +Mcu.Pin22=PB7 +Mcu.Pin23=PB8 +Mcu.Pin24=PB9 +Mcu.Pin25=VP_RTC_VS_RTC_Activate +Mcu.Pin26=VP_SYS_VS_Systick +Mcu.Pin27=VP_TIM1_VS_ClockSourceINT +Mcu.Pin28=VP_TIM2_VS_ClockSourceINT Mcu.Pin3=PD0-OSC_IN Mcu.Pin4=PD1-OSC_OUT Mcu.Pin5=PA0-WKUP @@ -42,7 +45,7 @@ Mcu.Pin6=PA1 Mcu.Pin7=PA2 Mcu.Pin8=PA3 Mcu.Pin9=PA4 -Mcu.PinsNb=27 +Mcu.PinsNb=29 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32F103C8Tx @@ -101,6 +104,9 @@ PA5.GPIOParameters=GPIO_Label PA5.GPIO_Label=DIGIT_SEC_L PA5.Locked=true PA5.Signal=GPIO_Output +PA8.GPIOParameters=GPIO_Label +PA8.GPIO_Label=BUZZER +PA8.Signal=S_TIM1_CH1 PA9.GPIOParameters=GPIO_Label PA9.GPIO_Label=SW_ENTER PA9.Locked=true @@ -176,7 +182,7 @@ ProjectManager.ToolChainLocation= ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptBeforePath= ProjectManager.UnderRoot=false -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_RTC_Init-RTC-false-HAL-true,4-MX_TIM2_Init-TIM2-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_RTC_Init-RTC-false-HAL-true,4-MX_TIM2_Init-TIM2-false-HAL-true,5-MX_TIM1_Init-TIM1-false-HAL-true RCC.ADCFreqValue=36000000 RCC.AHBFreq_Value=72000000 RCC.APB1CLKDivider=RCC_HCLK_DIV2 @@ -202,6 +208,10 @@ RCC.USBFreq_Value=72000000 RCC.VCOOutput2Freq_Value=8000000 RTC.IPParameters=OutPut RTC.OutPut=RTC_OUTPUTSOURCE_ALARM +SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1 +SH.S_TIM1_CH1.ConfNb=1 +TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1 +TIM1.IPParameters=Channel-PWM Generation1 CH1 TIM2.IPParameters=Prescaler,Period TIM2.Period=72*10-1 TIM2.Prescaler=0 @@ -209,6 +219,8 @@ VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Signal=SYS_VS_Systick +VP_TIM1_VS_ClockSourceINT.Mode=Internal +VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT VP_TIM2_VS_ClockSourceINT.Mode=Internal VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT board=custom