Skip to content

Instantly share code, notes, and snippets.

@nickfox-taterli
Created January 23, 2022 03:52
Show Gist options
  • Save nickfox-taterli/b43324e1ad07c2c4fda02394a764fcb4 to your computer and use it in GitHub Desktop.
Save nickfox-taterli/b43324e1ad07c2c4fda02394a764fcb4 to your computer and use it in GitHub Desktop.
STM32L475 IOT NFC Demo
#include "stm32l4xx_ll_i2c.h"
#include "stm32l4xx_ll_crs.h"
#include "stm32l4xx_ll_rcc.h"
#include "stm32l4xx_ll_bus.h"
#include "stm32l4xx_ll_system.h"
#include "stm32l4xx_ll_exti.h"
#include "stm32l4xx_ll_cortex.h"
#include "stm32l4xx_ll_utils.h"
#include "stm32l4xx_ll_pwr.h"
#include "stm32l4xx_ll_dma.h"
#include "stm32l4xx_ll_spi.h"
#include "stm32l4xx_ll_usart.h"
#include "stm32l4xx_ll_gpio.h"
#include "FreeRTOS.h"
#include "task.h"
#include "timers.h"
#include "queue.h"
#include "semphr.h"
#include "event_groups.h"
#include "hts221.h"
#include "vl53l0x.h"
/**
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void)
{
LL_FLASH_SetLatency(LL_FLASH_LATENCY_4);
while(LL_FLASH_GetLatency()!= LL_FLASH_LATENCY_4)
{
}
LL_PWR_SetRegulVoltageScaling(LL_PWR_REGU_VOLTAGE_SCALE1);
LL_RCC_MSI_Enable();
/* Wait till MSI is ready */
while(LL_RCC_MSI_IsReady() != 1)
{
}
LL_RCC_MSI_EnableRangeSelection();
LL_RCC_MSI_SetRange(LL_RCC_MSIRANGE_6);
LL_RCC_MSI_SetCalibTrimming(0);
LL_PWR_EnableBkUpAccess();
LL_RCC_LSE_SetDriveCapability(LL_RCC_LSEDRIVE_LOW);
LL_RCC_LSE_Enable();
/* Wait till LSE is ready */
while(LL_RCC_LSE_IsReady() != 1)
{
}
LL_RCC_MSI_EnablePLLMode();
LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_MSI, LL_RCC_PLLM_DIV_1, 40, LL_RCC_PLLR_DIV_2);
LL_RCC_PLL_EnableDomain_SYS();
LL_RCC_PLL_Enable();
/* Wait till PLL is ready */
while(LL_RCC_PLL_IsReady() != 1)
{
}
LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
/* Wait till System clock is ready */
while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
{
}
LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1);
LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1);
LL_Init1msTick(80000000);
LL_SYSTICK_EnableIT();
LL_SetSystemCoreClock(80000000);
LL_RCC_SetUSARTClockSource(LL_RCC_USART1_CLKSOURCE_PCLK2);
LL_RCC_SetUSARTClockSource(LL_RCC_USART3_CLKSOURCE_PCLK1);
LL_RCC_SetI2CClockSource(LL_RCC_I2C2_CLKSOURCE_PCLK1);
}
/* NFC测试开始 */
#include "string.h"
#include "stdio.h"
#include "stdbool.h"
#include "lib_TT4_interface.h"
#include "m24sr.h"
/* Image format {Width, Height, Bit Depth, Byte Count , Max Frame, ... */
const char uVcardCSL1[] = {
0x1E, 0x1F, 0xC2, 0x0C, 0x00, 0x00, 0x1E, 0x0D, 0x74, 0x65, 0x78, 0x74, 0x2F, 0x78, 0x2D, 0x76, 0x43, 0x61, 0x72, 0x64,
0x42, 0x45, 0x47, 0x49, 0x4E, 0x3A, 0x56, 0x43, 0x41, 0x52, 0x44, 0x0D, 0x0A, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E,
0x3A, 0x32, 0x2E, 0x31, 0x0D, 0x0A, 0x4E, 0x3A, 0x59, 0x6F, 0x75, 0x3B, 0x43, 0x61, 0x6E, 0x49, 0x48, 0x65, 0x6C, 0x70,
0x3B, 0x3B, 0x3B, 0x0D, 0x0A, 0x46, 0x4E, 0x3A, 0x43, 0x61, 0x6E, 0x49, 0x48, 0x65, 0x6C, 0x70, 0x20, 0x59, 0x6F, 0x75,
0x0D, 0x0A, 0x54, 0x45, 0x4C, 0x3B, 0x43, 0x45, 0x4C, 0x4C, 0x3A, 0x2B, 0x33, 0x33, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35,
0x36, 0x37, 0x38, 0x0D, 0x0A, 0x45, 0x4D, 0x41, 0x49, 0x4C, 0x3B, 0x57, 0x4F, 0x52, 0x4B, 0x3A, 0x63, 0x75, 0x73, 0x74,
0x6F, 0x6D, 0x65, 0x72, 0x2E, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x40, 0x73, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x0D,
0x0A, 0x41, 0x44, 0x52, 0x3B, 0x57, 0x4F, 0x52, 0x4B, 0x3A, 0x31, 0x39, 0x30, 0x20, 0x61, 0x76, 0x65, 0x6E, 0x75, 0x65,
0x20, 0x43, 0x65, 0x6C, 0x65, 0x73, 0x74, 0x69, 0x6E, 0x20, 0x43, 0x6F, 0x71, 0x20, 0x31, 0x33, 0x31, 0x30, 0x36, 0x20,
0x52, 0x4F, 0x55, 0x53, 0x53, 0x45, 0x54, 0x20, 0x46, 0x52, 0x41, 0x4E, 0x43, 0x45, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
0x3B, 0x0D, 0x0A, 0x4F, 0x52, 0x47, 0x3A, 0x53, 0x54, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x72,
0x6F, 0x6E, 0x69, 0x63, 0x73, 0x0D, 0x0A, 0x54, 0x49, 0x54, 0x4C, 0x45, 0x3A, 0x43, 0x75, 0x73, 0x74, 0x6F, 0x6D, 0x65,
0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6F, 0x72, 0x74, 0x0D, 0x0A, 0x55, 0x52, 0x4C, 0x3A, 0x77, 0x77, 0x77, 0x2E, 0x73,
0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x6E, 0x66, 0x63, 0x2D, 0x72, 0x66, 0x69, 0x64, 0x0D, 0x0A, 0x50, 0x48, 0x4F, 0x54,
0x4F, 0x3B, 0x45, 0x4E, 0x43, 0x4F, 0x44, 0x49, 0x4E, 0x47, 0x3D, 0x42, 0x41, 0x53, 0x45, 0x36, 0x34, 0x3B, 0x4A, 0x50,
0x45, 0x47, 0x3A, 0x2F, 0x39, 0x6A, 0x2F, 0x34, 0x41, 0x41, 0x51, 0x53, 0x6B, 0x5A, 0x4A, 0x52, 0x67, 0x41, 0x42, 0x41,
0x51, 0x41, 0x41, 0x41, 0x51, 0x41, 0x42, 0x41, 0x41, 0x44, 0x2F, 0x32, 0x77, 0x42, 0x44, 0x41, 0x41, 0x49, 0x42, 0x41,
0x51, 0x45, 0x42, 0x41, 0x51, 0x49, 0x42, 0x41, 0x51, 0x45, 0x43, 0x41, 0x67, 0x49, 0x43, 0x41, 0x67, 0x51, 0x44, 0x41,
0x67, 0x49, 0x43, 0x41, 0x67, 0x55, 0x45, 0x42, 0x41, 0x4D, 0x45, 0x42, 0x67, 0x55, 0x47, 0x42, 0x67, 0x59, 0x46, 0x0A,
0x42, 0x67, 0x59, 0x47, 0x42, 0x77, 0x6B, 0x49, 0x42, 0x67, 0x63, 0x4A, 0x42, 0x77, 0x59, 0x47, 0x43, 0x41, 0x73, 0x49,
0x43, 0x51, 0x6F, 0x4B, 0x43, 0x67, 0x6F, 0x4B, 0x42, 0x67, 0x67, 0x4C, 0x44, 0x41, 0x73, 0x4B, 0x44, 0x41, 0x6B, 0x4B,
0x43, 0x67, 0x72, 0x2F, 0x32, 0x77, 0x42, 0x44, 0x41, 0x51, 0x49, 0x43, 0x41, 0x67, 0x49, 0x43, 0x41, 0x67, 0x55, 0x44,
0x41, 0x77, 0x55, 0x4B, 0x42, 0x77, 0x59, 0x48, 0x43, 0x67, 0x6F, 0x4B, 0x43, 0x67, 0x6F, 0x4B, 0x0A, 0x43, 0x67, 0x6F,
0x4B, 0x43, 0x67, 0x6F, 0x4B, 0x43, 0x67, 0x6F, 0x4B, 0x43, 0x67, 0x6F, 0x4B, 0x43, 0x67, 0x6F, 0x4B, 0x43, 0x67, 0x6F,
0x4B, 0x43, 0x67, 0x6F, 0x4B, 0x43, 0x67, 0x6F, 0x4B, 0x43, 0x67, 0x6F, 0x4B, 0x43, 0x67, 0x6F, 0x4B, 0x43, 0x67, 0x6F,
0x4B, 0x43, 0x67, 0x6F, 0x4B, 0x43, 0x67, 0x6F, 0x4B, 0x43, 0x67, 0x6F, 0x4B, 0x43, 0x67, 0x72, 0x2F, 0x77, 0x41, 0x41,
0x52, 0x43, 0x41, 0x42, 0x63, 0x41, 0x46, 0x77, 0x44, 0x41, 0x53, 0x49, 0x41, 0x0A, 0x41, 0x68, 0x45, 0x42, 0x41, 0x78,
0x45, 0x42, 0x2F, 0x38, 0x51, 0x41, 0x48, 0x77, 0x41, 0x41, 0x41, 0x51, 0x55, 0x42, 0x41, 0x51, 0x45, 0x42, 0x41, 0x51,
0x45, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x45, 0x43, 0x41, 0x77, 0x51, 0x46, 0x42, 0x67,
0x63, 0x49, 0x43, 0x51, 0x6F, 0x4C, 0x2F, 0x38, 0x51, 0x41, 0x74, 0x52, 0x41, 0x41, 0x41, 0x67, 0x45, 0x44, 0x41, 0x77,
0x49, 0x45, 0x41, 0x77, 0x55, 0x46, 0x42, 0x41, 0x51, 0x41, 0x0A, 0x41, 0x41, 0x46, 0x39, 0x41, 0x51, 0x49, 0x44, 0x41,
0x41, 0x51, 0x52, 0x42, 0x52, 0x49, 0x68, 0x4D, 0x55, 0x45, 0x47, 0x45, 0x31, 0x46, 0x68, 0x42, 0x79, 0x4A, 0x78, 0x46,
0x44, 0x4B, 0x42, 0x6B, 0x61, 0x45, 0x49, 0x49, 0x30, 0x4B, 0x78, 0x77, 0x52, 0x56, 0x53, 0x30, 0x66, 0x41, 0x6B, 0x4D,
0x32, 0x4A, 0x79, 0x67, 0x67, 0x6B, 0x4B, 0x46, 0x68, 0x63, 0x59, 0x47, 0x52, 0x6F, 0x6C, 0x4A, 0x69, 0x63, 0x6F, 0x4B,
0x53, 0x6F, 0x30, 0x4E, 0x54, 0x59, 0x33, 0x0A, 0x4F, 0x44, 0x6B, 0x36, 0x51, 0x30, 0x52, 0x46, 0x52, 0x6B, 0x64, 0x49,
0x53, 0x55, 0x70, 0x54, 0x56, 0x46, 0x56, 0x57, 0x56, 0x31, 0x68, 0x5A, 0x57, 0x6D, 0x4E, 0x6B, 0x5A, 0x57, 0x5A, 0x6E,
0x61, 0x47, 0x6C, 0x71, 0x63, 0x33, 0x52, 0x31, 0x64, 0x6E, 0x64, 0x34, 0x65, 0x58, 0x71, 0x44, 0x68, 0x49, 0x57, 0x47,
0x68, 0x34, 0x69, 0x4A, 0x69, 0x70, 0x4B, 0x54, 0x6C, 0x4A, 0x57, 0x57, 0x6C, 0x35, 0x69, 0x5A, 0x6D, 0x71, 0x4B, 0x6A,
0x70, 0x4B, 0x57, 0x6D, 0x0A, 0x70, 0x36, 0x69, 0x70, 0x71, 0x72, 0x4B, 0x7A, 0x74, 0x4C, 0x57, 0x32, 0x74, 0x37, 0x69,
0x35, 0x75, 0x73, 0x4C, 0x44, 0x78, 0x4D, 0x58, 0x47, 0x78, 0x38, 0x6A, 0x4A, 0x79, 0x74, 0x4C, 0x54, 0x31, 0x4E, 0x58,
0x57, 0x31, 0x39, 0x6A, 0x5A, 0x32, 0x75, 0x48, 0x69, 0x34, 0x2B, 0x54, 0x6C, 0x35, 0x75, 0x66, 0x6F, 0x36, 0x65, 0x72,
0x78, 0x38, 0x76, 0x50, 0x30, 0x39, 0x66, 0x62, 0x33, 0x2B, 0x50, 0x6E, 0x36, 0x2F, 0x38, 0x51, 0x41, 0x48, 0x77, 0x45,
0x41, 0x0A, 0x41, 0x77, 0x45, 0x42, 0x41, 0x51, 0x45, 0x42, 0x41, 0x51, 0x45, 0x42, 0x41, 0x51, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x45, 0x43, 0x41, 0x77, 0x51, 0x46, 0x42, 0x67, 0x63, 0x49, 0x43, 0x51, 0x6F, 0x4C, 0x2F, 0x38,
0x51, 0x41, 0x74, 0x52, 0x45, 0x41, 0x41, 0x67, 0x45, 0x43, 0x42, 0x41, 0x51, 0x44, 0x42, 0x41, 0x63, 0x46, 0x42, 0x41,
0x51, 0x41, 0x41, 0x51, 0x4A, 0x33, 0x41, 0x41, 0x45, 0x43, 0x41, 0x78, 0x45, 0x45, 0x42, 0x53, 0x45, 0x78, 0x0A, 0x42,
0x68, 0x4A, 0x42, 0x55, 0x51, 0x64, 0x68, 0x63, 0x52, 0x4D, 0x69, 0x4D, 0x6F, 0x45, 0x49, 0x46, 0x45, 0x4B, 0x52, 0x6F,
0x62, 0x48, 0x42, 0x43, 0x53, 0x4D, 0x7A, 0x55, 0x76, 0x41, 0x56, 0x59, 0x6E, 0x4C, 0x52, 0x43, 0x68, 0x59, 0x6B, 0x4E,
0x4F, 0x45, 0x6C, 0x38, 0x52, 0x63, 0x59, 0x47, 0x52, 0x6F, 0x6D, 0x4A, 0x79, 0x67, 0x70, 0x4B, 0x6A, 0x55, 0x32, 0x4E,
0x7A, 0x67, 0x35, 0x4F, 0x6B, 0x4E, 0x45, 0x52, 0x55, 0x5A, 0x48, 0x53, 0x45, 0x6C, 0x4B, 0x0A, 0x55, 0x31, 0x52, 0x56,
0x56, 0x6C, 0x64, 0x59, 0x57, 0x56, 0x70, 0x6A, 0x5A, 0x47, 0x56, 0x6D, 0x5A, 0x32, 0x68, 0x70, 0x61, 0x6E, 0x4E, 0x30,
0x64, 0x58, 0x5A, 0x33, 0x65, 0x48, 0x6C, 0x36, 0x67, 0x6F, 0x4F, 0x45, 0x68, 0x59, 0x61, 0x48, 0x69, 0x49, 0x6D, 0x4B,
0x6B, 0x70, 0x4F, 0x55, 0x6C, 0x5A, 0x61, 0x58, 0x6D, 0x4A, 0x6D, 0x61, 0x6F, 0x71, 0x4F, 0x6B, 0x70, 0x61, 0x61, 0x6E,
0x71, 0x4B, 0x6D, 0x71, 0x73, 0x72, 0x4F, 0x30, 0x74, 0x62, 0x61, 0x33, 0x0A, 0x75, 0x4C, 0x6D, 0x36, 0x77, 0x73, 0x50,
0x45, 0x78, 0x63, 0x62, 0x48, 0x79, 0x4D, 0x6E, 0x4B, 0x30, 0x74, 0x50, 0x55, 0x31, 0x64, 0x62, 0x58, 0x32, 0x4E, 0x6E,
0x61, 0x34, 0x75, 0x50, 0x6B, 0x35, 0x65, 0x62, 0x6E, 0x36, 0x4F, 0x6E, 0x71, 0x38, 0x76, 0x50, 0x30, 0x39, 0x66, 0x62,
0x33, 0x2B, 0x50, 0x6E, 0x36, 0x2F, 0x39, 0x6F, 0x41, 0x44, 0x41, 0x4D, 0x42, 0x41, 0x41, 0x49, 0x52, 0x41, 0x78, 0x45,
0x41, 0x50, 0x77, 0x44, 0x39, 0x2F, 0x4B, 0x52, 0x76, 0x0A, 0x39, 0x57, 0x63, 0x48, 0x74, 0x2F, 0x6A, 0x52, 0x76, 0x54,
0x2B, 0x38, 0x50, 0x7A, 0x71, 0x44, 0x55, 0x74, 0x53, 0x73, 0x64, 0x4A, 0x30, 0x32, 0x34, 0x31, 0x50, 0x55, 0x4C, 0x6C,
0x49, 0x34, 0x4C, 0x65, 0x46, 0x70, 0x4A, 0x6E, 0x59, 0x38, 0x4B, 0x71, 0x67, 0x6B, 0x6E, 0x38, 0x68, 0x53, 0x62, 0x53,
0x54, 0x59, 0x48, 0x67, 0x50, 0x37, 0x64, 0x2F, 0x37, 0x65, 0x66, 0x77, 0x31, 0x2F, 0x59, 0x65, 0x2B, 0x46, 0x31, 0x78,
0x34, 0x6E, 0x38, 0x52, 0x77, 0x74, 0x0A, 0x71, 0x50, 0x69, 0x43, 0x34, 0x73, 0x70, 0x5A, 0x4E, 0x44, 0x30, 0x53, 0x42,
0x4A, 0x48, 0x65, 0x34, 0x64, 0x42, 0x2F, 0x72, 0x48, 0x45, 0x59, 0x5A, 0x31, 0x69, 0x42, 0x2B, 0x38, 0x77, 0x42, 0x4A,
0x41, 0x49, 0x41, 0x4A, 0x34, 0x72, 0x38, 0x62, 0x2F, 0x32, 0x6C, 0x76, 0x2B, 0x43, 0x6F, 0x48, 0x37, 0x54, 0x6E, 0x37,
0x51, 0x6D, 0x6F, 0x36, 0x68, 0x38, 0x57, 0x2F, 0x69, 0x78, 0x34, 0x39, 0x75, 0x64, 0x4D, 0x38, 0x4D, 0x36, 0x66, 0x45,
0x62, 0x58, 0x53, 0x0A, 0x4E, 0x48, 0x30, 0x61, 0x34, 0x6D, 0x74, 0x72, 0x5A, 0x62, 0x69, 0x57, 0x42, 0x68, 0x44, 0x75,
0x74, 0x68, 0x4B, 0x41, 0x35, 0x65, 0x47, 0x5A, 0x6E, 0x4C, 0x74, 0x75, 0x5A, 0x2F, 0x6E, 0x6A, 0x44, 0x42, 0x51, 0x69,
0x69, 0x54, 0x39, 0x73, 0x72, 0x34, 0x39, 0x65, 0x4F, 0x66, 0x32, 0x78, 0x76, 0x32, 0x30, 0x5A, 0x50, 0x67, 0x4E, 0x34,
0x4B, 0x76, 0x4A, 0x66, 0x45, 0x32, 0x74, 0x36, 0x6E, 0x71, 0x4D, 0x73, 0x34, 0x54, 0x54, 0x72, 0x78, 0x6A, 0x42, 0x70,
0x0A, 0x61, 0x4A, 0x63, 0x4F, 0x30, 0x55, 0x63, 0x7A, 0x6B, 0x6E, 0x43, 0x63, 0x68, 0x74, 0x69, 0x34, 0x41, 0x33, 0x4B,
0x63, 0x5A, 0x7A, 0x6A, 0x32, 0x76, 0x78, 0x35, 0x2F, 0x77, 0x52, 0x32, 0x38, 0x56, 0x36, 0x78, 0x38, 0x45, 0x6F, 0x50,
0x44, 0x39, 0x7A, 0x72, 0x57, 0x6E, 0x76, 0x65, 0x72, 0x5A, 0x51, 0x53, 0x36, 0x67, 0x74, 0x7A, 0x43, 0x75, 0x79, 0x65,
0x37, 0x69, 0x53, 0x4D, 0x4E, 0x4B, 0x6F, 0x52, 0x51, 0x46, 0x5A, 0x2F, 0x4B, 0x58, 0x4A, 0x36, 0x6A, 0x0A, 0x4A, 0x41,
0x50, 0x4A, 0x4A, 0x2B, 0x50, 0x78, 0x6D, 0x5A, 0x58, 0x6E, 0x79, 0x76, 0x34, 0x54, 0x32, 0x73, 0x48, 0x6C, 0x73, 0x6E,
0x53, 0x35, 0x76, 0x74, 0x48, 0x35, 0x38, 0x61, 0x50, 0x2B, 0x31, 0x31, 0x71, 0x76, 0x69, 0x65, 0x34, 0x31, 0x72, 0x78,
0x4A, 0x71, 0x6B, 0x35, 0x75, 0x37, 0x79, 0x2B, 0x61, 0x34, 0x50, 0x32, 0x62, 0x54, 0x34, 0x52, 0x44, 0x4A, 0x71, 0x56,
0x76, 0x50, 0x6C, 0x63, 0x69, 0x63, 0x45, 0x53, 0x32, 0x30, 0x6D, 0x77, 0x46, 0x56, 0x0A, 0x2B, 0x5A, 0x67, 0x75, 0x53,
0x41, 0x4E, 0x32, 0x54, 0x58, 0x56, 0x2B, 0x46, 0x2F, 0x69, 0x6A, 0x72, 0x33, 0x77, 0x32, 0x38, 0x47, 0x33, 0x58, 0x6A,
0x48, 0x34, 0x66, 0x65, 0x4F, 0x62, 0x38, 0x43, 0x44, 0x54, 0x4E, 0x54, 0x73, 0x74, 0x52, 0x73, 0x49, 0x72, 0x53, 0x4D,
0x58, 0x68, 0x6E, 0x32, 0x52, 0x4B, 0x4A, 0x6E, 0x52, 0x5A, 0x6C, 0x57, 0x62, 0x37, 0x50, 0x62, 0x54, 0x33, 0x53, 0x71,
0x58, 0x55, 0x67, 0x4C, 0x62, 0x68, 0x77, 0x70, 0x63, 0x35, 0x50, 0x0A, 0x6D, 0x58, 0x78, 0x51, 0x2F, 0x5A, 0x67, 0x2B,
0x4C, 0x48, 0x77, 0x70, 0x38, 0x5A, 0x36, 0x68, 0x6F, 0x6C, 0x37, 0x34, 0x66, 0x69, 0x68, 0x75, 0x72, 0x65, 0x42, 0x6D,
0x52, 0x59, 0x6F, 0x31, 0x7A, 0x4F, 0x67, 0x6B, 0x49, 0x38, 0x78, 0x44, 0x6A, 0x35, 0x69, 0x43, 0x70, 0x36, 0x34, 0x4A,
0x72, 0x61, 0x38, 0x45, 0x58, 0x66, 0x68, 0x50, 0x77, 0x4E, 0x5A, 0x70, 0x71, 0x6D, 0x72, 0x33, 0x6B, 0x55, 0x56, 0x33,
0x4A, 0x4B, 0x70, 0x74, 0x31, 0x6E, 0x6B, 0x5A, 0x0A, 0x6F, 0x35, 0x4A, 0x6B, 0x32, 0x50, 0x73, 0x6C, 0x6A, 0x42, 0x48,
0x33, 0x6D, 0x6A, 0x4B, 0x4D, 0x42, 0x6B, 0x6B, 0x73, 0x4E, 0x78, 0x36, 0x56, 0x69, 0x2F, 0x59, 0x56, 0x4B, 0x64, 0x34,
0x4C, 0x6D, 0x52, 0x72, 0x54, 0x68, 0x69, 0x4B, 0x54, 0x35, 0x5A, 0x76, 0x6C, 0x50, 0x62, 0x66, 0x6A, 0x48, 0x38, 0x59,
0x64, 0x56, 0x38, 0x56, 0x65, 0x43, 0x5A, 0x66, 0x46, 0x2F, 0x68, 0x37, 0x78, 0x33, 0x4E, 0x50, 0x50, 0x46, 0x71, 0x4D,
0x4E, 0x2F, 0x42, 0x72, 0x63, 0x0A, 0x46, 0x7A, 0x4A, 0x48, 0x39, 0x75, 0x68, 0x53, 0x4D, 0x53, 0x32, 0x39, 0x34, 0x6B,
0x54, 0x73, 0x71, 0x4A, 0x4B, 0x51, 0x30, 0x69, 0x66, 0x36, 0x51, 0x72, 0x79, 0x44, 0x79, 0x74, 0x6F, 0x64, 0x47, 0x56,
0x32, 0x72, 0x37, 0x4C, 0x2F, 0x34, 0x4A, 0x6D, 0x2F, 0x38, 0x48, 0x44, 0x58, 0x68, 0x48, 0x57, 0x76, 0x37, 0x4D, 0x2B,
0x42, 0x76, 0x37, 0x55, 0x4E, 0x31, 0x64, 0x54, 0x4A, 0x4C, 0x63, 0x70, 0x59, 0x36, 0x50, 0x34, 0x6F, 0x45, 0x67, 0x6B,
0x6B, 0x74, 0x0A, 0x77, 0x4D, 0x49, 0x71, 0x33, 0x75, 0x35, 0x7A, 0x4C, 0x7A, 0x77, 0x52, 0x49, 0x64, 0x35, 0x35, 0x77,
0x57, 0x62, 0x6C, 0x71, 0x2F, 0x4A, 0x76, 0x57, 0x76, 0x47, 0x39, 0x6E, 0x71, 0x39, 0x6A, 0x64, 0x67, 0x36, 0x56, 0x46,
0x63, 0x36, 0x54, 0x62, 0x53, 0x58, 0x55, 0x78, 0x53, 0x35, 0x6C, 0x4D, 0x78, 0x53, 0x4B, 0x56, 0x34, 0x34, 0x34, 0x6D,
0x32, 0x6B, 0x68, 0x52, 0x73, 0x43, 0x53, 0x67, 0x4B, 0x75, 0x42, 0x68, 0x75, 0x41, 0x4E, 0x71, 0x6D, 0x6F, 0x64, 0x0A,
0x57, 0x38, 0x50, 0x61, 0x50, 0x62, 0x36, 0x53, 0x50, 0x69, 0x68, 0x38, 0x4D, 0x53, 0x2B, 0x6D, 0x36, 0x68, 0x48, 0x38,
0x2B, 0x75, 0x61, 0x4D, 0x38, 0x49, 0x32, 0x35, 0x7A, 0x78, 0x49, 0x71, 0x45, 0x37, 0x67, 0x6A, 0x63, 0x5A, 0x78, 0x6B,
0x63, 0x35, 0x34, 0x50, 0x4E, 0x50, 0x44, 0x56, 0x48, 0x68, 0x70, 0x65, 0x35, 0x70, 0x2F, 0x58, 0x58, 0x39, 0x43, 0x61,
0x73, 0x48, 0x58, 0x70, 0x74, 0x53, 0x31, 0x38, 0x2F, 0x77, 0x44, 0x4C, 0x39, 0x54, 0x2B, 0x74, 0x0A, 0x66, 0x53, 0x72,
0x79, 0x32, 0x76, 0x72, 0x53, 0x4F, 0x2F, 0x74, 0x70, 0x31, 0x64, 0x4A, 0x59, 0x77, 0x30, 0x62, 0x70, 0x30, 0x5A, 0x53,
0x4D, 0x67, 0x2F, 0x51, 0x6A, 0x2B, 0x64, 0x58, 0x59, 0x47, 0x42, 0x59, 0x67, 0x65, 0x6C, 0x66, 0x6C, 0x35, 0x2F, 0x77,
0x51, 0x62, 0x2F, 0x34, 0x4B, 0x76, 0x66, 0x46, 0x58, 0x39, 0x72, 0x47, 0x35, 0x54, 0x39, 0x6D, 0x66, 0x34, 0x72, 0x2B,
0x42, 0x5A, 0x5A, 0x59, 0x4E, 0x4E, 0x38, 0x4F, 0x66, 0x61, 0x74, 0x46, 0x38, 0x0A, 0x53, 0x77, 0x52, 0x79, 0x6C, 0x59,
0x42, 0x42, 0x49, 0x4C, 0x64, 0x72, 0x4F, 0x36, 0x5A, 0x73, 0x67, 0x79, 0x45, 0x67, 0x75, 0x6A, 0x5A, 0x35, 0x55, 0x48,
0x72, 0x6A, 0x4E, 0x66, 0x70, 0x2F, 0x5A, 0x59, 0x4C, 0x6B, 0x67, 0x2F, 0x77, 0x64, 0x50, 0x54, 0x4A, 0x36, 0x56, 0x39,
0x5A, 0x68, 0x35, 0x71, 0x70, 0x42, 0x53, 0x57, 0x2F, 0x55, 0x38, 0x42, 0x77, 0x35, 0x4A, 0x4E, 0x46, 0x69, 0x69, 0x69,
0x69, 0x75, 0x6F, 0x6F, 0x72, 0x49, 0x78, 0x49, 0x49, 0x50, 0x0A, 0x34, 0x56, 0x38, 0x2B, 0x66, 0x38, 0x46, 0x50, 0x66,
0x6A, 0x74, 0x4A, 0x2B, 0x7A, 0x66, 0x2B, 0x77, 0x78, 0x38, 0x52, 0x66, 0x69, 0x74, 0x62, 0x37, 0x2F, 0x74, 0x46, 0x6C,
0x34, 0x62, 0x75, 0x42, 0x62, 0x6F, 0x41, 0x68, 0x42, 0x64, 0x30, 0x4B, 0x44, 0x49, 0x5A, 0x6C, 0x34, 0x79, 0x65, 0x78,
0x4A, 0x39, 0x41, 0x61, 0x2B, 0x68, 0x43, 0x77, 0x49, 0x49, 0x42, 0x48, 0x31, 0x2F, 0x4F, 0x76, 0x67, 0x54, 0x2F, 0x41,
0x49, 0x4F, 0x52, 0x68, 0x71, 0x74, 0x37, 0x0A, 0x2F, 0x77, 0x41, 0x45, 0x78, 0x50, 0x46, 0x31, 0x6A, 0x70, 0x6C, 0x39,
0x63, 0x51, 0x42, 0x48, 0x74, 0x37, 0x6C, 0x70, 0x4C, 0x64, 0x7A, 0x6C, 0x76, 0x4C, 0x6B, 0x7A, 0x74, 0x49, 0x33, 0x41,
0x62, 0x54, 0x33, 0x36, 0x39, 0x4B, 0x34, 0x4D, 0x56, 0x4C, 0x6B, 0x77, 0x38, 0x70, 0x42, 0x68, 0x31, 0x7A, 0x56, 0x45,
0x6A, 0x34, 0x67, 0x2F, 0x34, 0x4E, 0x6A, 0x76, 0x32, 0x64, 0x72, 0x54, 0x78, 0x64, 0x6F, 0x6E, 0x6A, 0x76, 0x38, 0x41,
0x62, 0x51, 0x38, 0x57, 0x0A, 0x78, 0x32, 0x39, 0x37, 0x71, 0x57, 0x73, 0x36, 0x6D, 0x39, 0x6E, 0x70, 0x74, 0x32, 0x55,
0x4A, 0x61, 0x4F, 0x4E, 0x4D, 0x6D, 0x52, 0x68, 0x6E, 0x70, 0x6C, 0x6A, 0x6A, 0x36, 0x4B, 0x50, 0x65, 0x76, 0x31, 0x67,
0x76, 0x39, 0x4F, 0x53, 0x36, 0x73, 0x6A, 0x48, 0x4A, 0x47, 0x72, 0x44, 0x70, 0x77, 0x4B, 0x2B, 0x47, 0x66, 0x2B, 0x44,
0x65, 0x58, 0x55, 0x2F, 0x44, 0x6E, 0x68, 0x6A, 0x2F, 0x41, 0x49, 0x4A, 0x62, 0x65, 0x48, 0x74, 0x66, 0x31, 0x65, 0x36,
0x46, 0x0A, 0x71, 0x62, 0x36, 0x34, 0x76, 0x54, 0x63, 0x6D, 0x62, 0x67, 0x76, 0x4E, 0x39, 0x6F, 0x6B, 0x58, 0x6A, 0x50,
0x72, 0x74, 0x77, 0x50, 0x77, 0x39, 0x71, 0x2B, 0x36, 0x64, 0x42, 0x38, 0x55, 0x2B, 0x45, 0x39, 0x63, 0x30, 0x39, 0x33,
0x30, 0x76, 0x78, 0x42, 0x61, 0x7A, 0x67, 0x45, 0x72, 0x75, 0x74, 0x35, 0x46, 0x63, 0x67, 0x67, 0x6B, 0x45, 0x45, 0x41,
0x38, 0x45, 0x45, 0x59, 0x72, 0x34, 0x4B, 0x61, 0x56, 0x57, 0x74, 0x4F, 0x2F, 0x54, 0x51, 0x2B, 0x7A, 0x6F, 0x0A, 0x79,
0x64, 0x4B, 0x67, 0x6C, 0x48, 0x64, 0x36, 0x6E, 0x7A, 0x33, 0x38, 0x66, 0x66, 0x32, 0x4F, 0x50, 0x68, 0x6E, 0x38, 0x5A,
0x4A, 0x62, 0x69, 0x54, 0x78, 0x48, 0x6F, 0x73, 0x53, 0x7A, 0x50, 0x62, 0x53, 0x51, 0x70, 0x63, 0x77, 0x74, 0x73, 0x6B,
0x54, 0x4F, 0x66, 0x6D, 0x52, 0x6C, 0x37, 0x35, 0x39, 0x65, 0x6F, 0x36, 0x31, 0x2B, 0x53, 0x33, 0x37, 0x65, 0x33, 0x37,
0x43, 0x58, 0x78, 0x6A, 0x2F, 0x5A, 0x39, 0x76, 0x62, 0x71, 0x2B, 0x38, 0x43, 0x32, 0x76, 0x0A, 0x32, 0x7A, 0x53, 0x34,
0x4C, 0x37, 0x37, 0x53, 0x39, 0x35, 0x62, 0x32, 0x79, 0x72, 0x6E, 0x65, 0x53, 0x71, 0x46, 0x6A, 0x6B, 0x68, 0x53, 0x75,
0x4F, 0x56, 0x4A, 0x41, 0x59, 0x64, 0x78, 0x6B, 0x6B, 0x66, 0x76, 0x46, 0x39, 0x6A, 0x73, 0x32, 0x61, 0x52, 0x2F, 0x74,
0x53, 0x37, 0x41, 0x70, 0x4A, 0x59, 0x38, 0x35, 0x39, 0x71, 0x38, 0x52, 0x2B, 0x4F, 0x50, 0x67, 0x50, 0x77, 0x39, 0x34,
0x73, 0x57, 0x34, 0x74, 0x70, 0x62, 0x6D, 0x47, 0x33, 0x45, 0x7A, 0x66, 0x0A, 0x50, 0x49, 0x38, 0x69, 0x67, 0x48, 0x4F,
0x34, 0x63, 0x45, 0x38, 0x43, 0x75, 0x65, 0x55, 0x71, 0x75, 0x46, 0x66, 0x4E, 0x54, 0x50, 0x53, 0x77, 0x31, 0x4F, 0x6C,
0x6A, 0x59, 0x4F, 0x4E, 0x58, 0x54, 0x7A, 0x50, 0x35, 0x7A, 0x39, 0x54, 0x74, 0x74, 0x52, 0x30, 0x66, 0x62, 0x65, 0x57,
0x57, 0x71, 0x78, 0x58, 0x44, 0x58, 0x56, 0x78, 0x48, 0x47, 0x4C, 0x57, 0x64, 0x48, 0x56, 0x34, 0x2F, 0x4C, 0x50, 0x38,
0x41, 0x78, 0x37, 0x41, 0x46, 0x57, 0x43, 0x59, 0x41, 0x0A, 0x55, 0x41, 0x74, 0x67, 0x6B, 0x73, 0x53, 0x65, 0x63, 0x41,
0x39, 0x48, 0x38, 0x4D, 0x66, 0x47, 0x47, 0x6D, 0x57, 0x33, 0x69, 0x4B, 0x78, 0x74, 0x72, 0x75, 0x77, 0x4E, 0x31, 0x70,
0x39, 0x35, 0x62, 0x46, 0x4A, 0x5A, 0x72, 0x79, 0x53, 0x53, 0x51, 0x78, 0x6F, 0x64, 0x79, 0x50, 0x41, 0x78, 0x45, 0x5A,
0x4A, 0x49, 0x41, 0x32, 0x6A, 0x47, 0x38, 0x37, 0x73, 0x48, 0x43, 0x39, 0x76, 0x72, 0x72, 0x39, 0x76, 0x2F, 0x41, 0x50,
0x5A, 0x4A, 0x2B, 0x47, 0x39, 0x6A, 0x0A, 0x34, 0x71, 0x6D, 0x38, 0x5A, 0x2B, 0x46, 0x4E, 0x65, 0x73, 0x59, 0x64, 0x52,
0x6A, 0x38, 0x77, 0x70, 0x48, 0x70, 0x7A, 0x4C, 0x49, 0x75, 0x41, 0x68, 0x55, 0x71, 0x77, 0x44, 0x67, 0x71, 0x78, 0x33,
0x50, 0x6B, 0x4C, 0x7A, 0x69, 0x76, 0x68, 0x62, 0x58, 0x4E, 0x51, 0x6E, 0x38, 0x4F, 0x57, 0x6C, 0x7A, 0x70, 0x56, 0x70,
0x66, 0x53, 0x54, 0x36, 0x66, 0x70, 0x39, 0x37, 0x39, 0x6F, 0x55, 0x58, 0x39, 0x30, 0x37, 0x72, 0x4C, 0x4B, 0x79, 0x37,
0x57, 0x51, 0x68, 0x0A, 0x67, 0x7A, 0x62, 0x53, 0x46, 0x54, 0x37, 0x33, 0x4F, 0x56, 0x41, 0x4A, 0x34, 0x35, 0x39, 0x6A,
0x43, 0x56, 0x6F, 0x59, 0x75, 0x69, 0x31, 0x61, 0x30, 0x72, 0x48, 0x69, 0x59, 0x33, 0x43, 0x79, 0x77, 0x63, 0x37, 0x72,
0x33, 0x6F, 0x39, 0x7A, 0x39, 0x4F, 0x2F, 0x2B, 0x44, 0x63, 0x54, 0x34, 0x6D, 0x36, 0x7A, 0x38, 0x4A, 0x50, 0x32, 0x39,
0x50, 0x46, 0x6E, 0x77, 0x41, 0x75, 0x64, 0x46, 0x69, 0x73, 0x39, 0x4C, 0x31, 0x66, 0x77, 0x32, 0x32, 0x72, 0x6F, 0x49,
0x0A, 0x6A, 0x6B, 0x73, 0x49, 0x70, 0x49, 0x59, 0x34, 0x2B, 0x2F, 0x51, 0x43, 0x36, 0x4F, 0x43, 0x65, 0x66, 0x58, 0x6B,
0x56, 0x2B, 0x2B, 0x46, 0x6A, 0x67, 0x74, 0x6B, 0x63, 0x35, 0x6A, 0x47, 0x54, 0x58, 0x38, 0x76, 0x2F, 0x41, 0x50, 0x77,
0x53, 0x4F, 0x38, 0x65, 0x61, 0x58, 0x6F, 0x6E, 0x37, 0x56, 0x6E, 0x78, 0x73, 0x2B, 0x4C, 0x48, 0x32, 0x4F, 0x51, 0x61,
0x62, 0x34, 0x59, 0x2F, 0x5A, 0x30, 0x31, 0x79, 0x65, 0x57, 0x53, 0x7A, 0x56, 0x38, 0x42, 0x45, 0x6A, 0x0A, 0x69, 0x6D,
0x32, 0x78, 0x62, 0x5A, 0x45, 0x5A, 0x65, 0x49, 0x6D, 0x77, 0x49, 0x33, 0x6A, 0x50, 0x79, 0x6A, 0x61, 0x79, 0x6E, 0x35,
0x68, 0x2F, 0x54, 0x6A, 0x34, 0x46, 0x31, 0x69, 0x48, 0x78, 0x48, 0x34, 0x5A, 0x73, 0x50, 0x45, 0x4E, 0x6F, 0x72, 0x2B,
0x54, 0x65, 0x32, 0x45, 0x4D, 0x38, 0x50, 0x6D, 0x64, 0x64, 0x72, 0x71, 0x47, 0x41, 0x50, 0x4A, 0x35, 0x77, 0x52, 0x58,
0x30, 0x32, 0x57, 0x53, 0x74, 0x54, 0x35, 0x58, 0x75, 0x39, 0x54, 0x35, 0x6A, 0x45, 0x0A, 0x65, 0x39, 0x58, 0x6B, 0x31,
0x74, 0x63, 0x32, 0x4B, 0x4B, 0x4B, 0x4B, 0x39, 0x59, 0x67, 0x71, 0x78, 0x71, 0x64, 0x35, 0x58, 0x30, 0x2F, 0x7A, 0x2F,
0x6E, 0x36, 0x31, 0x38, 0x54, 0x2F, 0x38, 0x46, 0x35, 0x76, 0x41, 0x66, 0x69, 0x58, 0x34, 0x69, 0x2F, 0x38, 0x41, 0x42,
0x50, 0x6E, 0x78, 0x31, 0x6F, 0x2B, 0x6E, 0x74, 0x61, 0x43, 0x7A, 0x30, 0x37, 0x53, 0x49, 0x39, 0x52, 0x6E, 0x53, 0x65,
0x49, 0x6C, 0x33, 0x4D, 0x63, 0x77, 0x42, 0x56, 0x43, 0x4F, 0x35, 0x0A, 0x44, 0x41, 0x63, 0x38, 0x63, 0x31, 0x39, 0x73,
0x52, 0x4D, 0x52, 0x6B, 0x46, 0x4F, 0x50, 0x35, 0x31, 0x38, 0x61, 0x2F, 0x38, 0x46, 0x76, 0x66, 0x48, 0x43, 0x65, 0x48,
0x50, 0x32, 0x43, 0x2F, 0x69, 0x58, 0x34, 0x63, 0x68, 0x42, 0x53, 0x36, 0x76, 0x50, 0x41, 0x38, 0x37, 0x32, 0x6B, 0x67,
0x6B, 0x55, 0x4D, 0x58, 0x57, 0x65, 0x4D, 0x6E, 0x61, 0x75, 0x64, 0x7A, 0x6C, 0x52, 0x38, 0x78, 0x43, 0x67, 0x34, 0x48,
0x4A, 0x34, 0x72, 0x67, 0x78, 0x45, 0x56, 0x4F, 0x0A, 0x68, 0x4B, 0x4C, 0x36, 0x6B, 0x55, 0x5A, 0x4F, 0x4D, 0x6C, 0x4B,
0x4B, 0x31, 0x52, 0x38, 0x61, 0x66, 0x73, 0x61, 0x66, 0x45, 0x76, 0x38, 0x41, 0x61, 0x48, 0x2F, 0x5A, 0x62, 0x2F, 0x34,
0x4A, 0x4B, 0x66, 0x44, 0x76, 0x56, 0x76, 0x32, 0x64, 0x2F, 0x67, 0x51, 0x66, 0x46, 0x75, 0x71, 0x61, 0x70, 0x70, 0x6A,
0x33, 0x45, 0x2B, 0x6E, 0x78, 0x54, 0x67, 0x4C, 0x61, 0x68, 0x32, 0x6B, 0x6E, 0x6B, 0x79, 0x78, 0x50, 0x39, 0x77, 0x53,
0x62, 0x54, 0x79, 0x4E, 0x77, 0x0A, 0x55, 0x59, 0x35, 0x72, 0x6D, 0x76, 0x41, 0x2F, 0x6A, 0x4C, 0x39, 0x6F, 0x70, 0x76,
0x32, 0x6F, 0x30, 0x30, 0x6E, 0x78, 0x7A, 0x2B, 0x7A, 0x66, 0x61, 0x57, 0x64, 0x6A, 0x65, 0x57, 0x63, 0x63, 0x6C, 0x39,
0x34, 0x35, 0x38, 0x49, 0x53, 0x58, 0x6C, 0x69, 0x6C, 0x7A, 0x64, 0x65, 0x62, 0x4A, 0x45, 0x7A, 0x4C, 0x43, 0x51, 0x45,
0x64, 0x6D, 0x32, 0x4B, 0x35, 0x2B, 0x58, 0x35, 0x54, 0x4E, 0x79, 0x54, 0x67, 0x6B, 0x2B, 0x38, 0x2F, 0x38, 0x45, 0x45,
0x76, 0x48, 0x0A, 0x64, 0x2F, 0x38, 0x41, 0x46, 0x76, 0x38, 0x41, 0x34, 0x4A, 0x67, 0x2B, 0x43, 0x62, 0x37, 0x78, 0x56,
0x42, 0x48, 0x75, 0x73, 0x59, 0x62, 0x2F, 0x41, 0x45, 0x78, 0x53, 0x76, 0x52, 0x30, 0x74, 0x72, 0x6D, 0x57, 0x46, 0x57,
0x35, 0x41, 0x35, 0x49, 0x55, 0x48, 0x70, 0x33, 0x72, 0x36, 0x63, 0x62, 0x77, 0x6A, 0x34, 0x63, 0x73, 0x62, 0x30, 0x50,
0x44, 0x70, 0x36, 0x6D, 0x51, 0x66, 0x64, 0x65, 0x51, 0x6E, 0x63, 0x6F, 0x50, 0x6F, 0x54, 0x30, 0x4F, 0x65, 0x54, 0x0A,
0x77, 0x4D, 0x38, 0x2B, 0x74, 0x66, 0x6E, 0x64, 0x4F, 0x6F, 0x71, 0x4D, 0x71, 0x6C, 0x4F, 0x63, 0x50, 0x74, 0x50, 0x71,
0x66, 0x6F, 0x56, 0x4B, 0x50, 0x74, 0x6F, 0x77, 0x6E, 0x54, 0x6D, 0x34, 0x2B, 0x36, 0x74, 0x4C, 0x4A, 0x6E, 0x47, 0x2B,
0x4F, 0x39, 0x64, 0x31, 0x50, 0x77, 0x46, 0x38, 0x4D, 0x58, 0x31, 0x57, 0x58, 0x55, 0x37, 0x69, 0x54, 0x37, 0x4B, 0x6D,
0x79, 0x53, 0x65, 0x62, 0x2F, 0x57, 0x53, 0x44, 0x47, 0x4D, 0x74, 0x2F, 0x74, 0x48, 0x38, 0x4B, 0x0A, 0x2B, 0x55, 0x50,
0x69, 0x6A, 0x34, 0x52, 0x38, 0x49, 0x36, 0x35, 0x45, 0x50, 0x48, 0x66, 0x69, 0x58, 0x54, 0x64, 0x66, 0x38, 0x56, 0x61,
0x7A, 0x39, 0x6B, 0x62, 0x56, 0x68, 0x6F, 0x39, 0x35, 0x71, 0x30, 0x6B, 0x4E, 0x69, 0x6C, 0x72, 0x43, 0x7A, 0x46, 0x79,
0x78, 0x58, 0x35, 0x59, 0x67, 0x4D, 0x34, 0x47, 0x51, 0x53, 0x7A, 0x73, 0x41, 0x42, 0x6E, 0x42, 0x72, 0x36, 0x79, 0x2F,
0x61, 0x66, 0x61, 0x4F, 0x30, 0x2B, 0x47, 0x44, 0x61, 0x57, 0x63, 0x43, 0x53, 0x0A, 0x34, 0x6C, 0x47, 0x2F, 0x50, 0x54,
0x47, 0x65, 0x70, 0x72, 0x41, 0x2B, 0x42, 0x2B, 0x67, 0x61, 0x56, 0x34, 0x6E, 0x2B, 0x48, 0x7A, 0x32, 0x4E, 0x35, 0x4C,
0x47, 0x56, 0x54, 0x61, 0x68, 0x43, 0x4A, 0x32, 0x42, 0x4C, 0x66, 0x6C, 0x6E, 0x74, 0x30, 0x72, 0x69, 0x6F, 0x31, 0x59,
0x55, 0x38, 0x57, 0x2B, 0x65, 0x37, 0x58, 0x59, 0x39, 0x61, 0x57, 0x46, 0x72, 0x54, 0x79, 0x35, 0x75, 0x46, 0x6F, 0x74,
0x76, 0x63, 0x2F, 0x4E, 0x44, 0x53, 0x66, 0x2B, 0x43, 0x68, 0x0A, 0x58, 0x67, 0x37, 0x39, 0x6F, 0x4C, 0x51, 0x6F, 0x66,
0x68, 0x58, 0x71, 0x76, 0x37, 0x44, 0x64, 0x7A, 0x6F, 0x63, 0x56, 0x79, 0x38, 0x69, 0x77, 0x33, 0x45, 0x57, 0x6A, 0x6E,
0x79, 0x30, 0x6D, 0x52, 0x4D, 0x71, 0x47, 0x62, 0x59, 0x48, 0x53, 0x51, 0x4B, 0x65, 0x53, 0x33, 0x49, 0x4B, 0x59, 0x79,
0x53, 0x61, 0x2B, 0x55, 0x50, 0x32, 0x70, 0x50, 0x68, 0x50, 0x70, 0x76, 0x67, 0x4C, 0x34, 0x6B, 0x57, 0x74, 0x72, 0x71,
0x6D, 0x6A, 0x52, 0x52, 0x32, 0x76, 0x69, 0x0A, 0x46, 0x48, 0x68, 0x45, 0x46, 0x34, 0x72, 0x48, 0x44, 0x4E, 0x75, 0x4B,
0x48, 0x47, 0x52, 0x38, 0x77, 0x62, 0x61, 0x52, 0x6D, 0x76, 0x33, 0x4E, 0x38, 0x51, 0x2F, 0x43, 0x48, 0x34, 0x5A, 0x2B,
0x46, 0x6E, 0x75, 0x37, 0x2B, 0x78, 0x30, 0x61, 0x42, 0x35, 0x35, 0x43, 0x38, 0x30, 0x30, 0x37, 0x70, 0x75, 0x59, 0x73,
0x52, 0x6A, 0x64, 0x36, 0x35, 0x77, 0x41, 0x43, 0x65, 0x2F, 0x46, 0x66, 0x6D, 0x48, 0x2F, 0x77, 0x57, 0x67, 0x38, 0x49,
0x36, 0x62, 0x70, 0x6E, 0x0A, 0x67, 0x66, 0x54, 0x50, 0x69, 0x56, 0x70, 0x63, 0x52, 0x57, 0x57, 0x32, 0x31, 0x32, 0x47,
0x41, 0x50, 0x47, 0x6F, 0x79, 0x69, 0x73, 0x57, 0x79, 0x65, 0x52, 0x67, 0x44, 0x41, 0x50, 0x50, 0x61, 0x75, 0x76, 0x44,
0x34, 0x36, 0x45, 0x73, 0x78, 0x6A, 0x54, 0x70, 0x78, 0x35, 0x55, 0x37, 0x65, 0x5A, 0x79, 0x31, 0x73, 0x74, 0x6C, 0x48,
0x4B, 0x4A, 0x7A, 0x72, 0x53, 0x35, 0x6E, 0x48, 0x58, 0x5A, 0x4C, 0x39, 0x54, 0x67, 0x66, 0x32, 0x65, 0x2F, 0x77, 0x42,
0x6D, 0x0A, 0x6E, 0x78, 0x44, 0x38, 0x4C, 0x66, 0x38, 0x41, 0x67, 0x6A, 0x2F, 0x2B, 0x31, 0x46, 0x2B, 0x30, 0x62, 0x72,
0x74, 0x35, 0x63, 0x61, 0x66, 0x65, 0x65, 0x4A, 0x4C, 0x2F, 0x41, 0x45, 0x50, 0x77, 0x35, 0x70, 0x39, 0x77, 0x35, 0x38,
0x6F, 0x7A, 0x32, 0x30, 0x46, 0x2F, 0x62, 0x6D, 0x54, 0x61, 0x34, 0x77, 0x51, 0x73, 0x70, 0x75, 0x47, 0x6A, 0x4B, 0x6A,
0x67, 0x68, 0x44, 0x6E, 0x49, 0x7A, 0x58, 0x37, 0x70, 0x2F, 0x38, 0x45, 0x4A, 0x2F, 0x69, 0x35, 0x34, 0x68, 0x0A, 0x2B,
0x4E, 0x33, 0x2F, 0x41, 0x41, 0x53, 0x4C, 0x2B, 0x43, 0x58, 0x6A, 0x66, 0x78, 0x52, 0x46, 0x45, 0x6C, 0x33, 0x62, 0x2B,
0x44, 0x78, 0x6F, 0x68, 0x45, 0x4B, 0x6B, 0x42, 0x6B, 0x30, 0x79, 0x34, 0x6D, 0x30, 0x32, 0x4E, 0x69, 0x44, 0x7A, 0x75,
0x61, 0x4F, 0x30, 0x52, 0x6D, 0x2F, 0x32, 0x69, 0x31, 0x66, 0x6B, 0x72, 0x2B, 0x30, 0x50, 0x38, 0x52, 0x66, 0x47, 0x76,
0x67, 0x7A, 0x2F, 0x41, 0x49, 0x4A, 0x4B, 0x2F, 0x42, 0x48, 0x34, 0x43, 0x65, 0x43, 0x2F, 0x0A, 0x68, 0x4E, 0x71, 0x68,
0x74, 0x4E, 0x59, 0x38, 0x51, 0x57, 0x75, 0x74, 0x65, 0x49, 0x39, 0x5A, 0x6D, 0x6A, 0x53, 0x61, 0x78, 0x74, 0x59, 0x41,
0x73, 0x6A, 0x70, 0x62, 0x7A, 0x42, 0x2F, 0x2B, 0x50, 0x6B, 0x6C, 0x4A, 0x44, 0x4B, 0x59, 0x2F, 0x37, 0x73, 0x42, 0x50,
0x38, 0x4A, 0x32, 0x2F, 0x6F, 0x39, 0x2F, 0x77, 0x62, 0x6D, 0x2B, 0x49, 0x39, 0x47, 0x75, 0x66, 0x32, 0x4F, 0x66, 0x47,
0x6E, 0x67, 0x62, 0x51, 0x72, 0x79, 0x43, 0x4C, 0x54, 0x74, 0x44, 0x2B, 0x0A, 0x4C, 0x65, 0x74, 0x4E, 0x34, 0x65, 0x30,
0x65, 0x4B, 0x38, 0x65, 0x59, 0x57, 0x47, 0x6B, 0x33, 0x4A, 0x68, 0x75, 0x4C, 0x63, 0x49, 0x5A, 0x47, 0x4C, 0x6D, 0x4A,
0x6E, 0x65, 0x34, 0x32, 0x75, 0x33, 0x4C, 0x46, 0x58, 0x79, 0x53, 0x77, 0x61, 0x76, 0x30, 0x44, 0x43, 0x78, 0x63, 0x4B,
0x69, 0x31, 0x50, 0x7A, 0x4F, 0x6E, 0x4A, 0x56, 0x49, 0x79, 0x66, 0x6E, 0x66, 0x37, 0x7A, 0x39, 0x41, 0x61, 0x4B, 0x4B,
0x4B, 0x39, 0x55, 0x5A, 0x57, 0x42, 0x47, 0x4D, 0x35, 0x0A, 0x72, 0x38, 0x33, 0x2F, 0x41, 0x50, 0x67, 0x35, 0x63, 0x2B,
0x45, 0x6B, 0x6E, 0x6A, 0x4C, 0x39, 0x6A, 0x62, 0x52, 0x2F, 0x69, 0x4A, 0x42, 0x66, 0x77, 0x32, 0x7A, 0x2B, 0x48, 0x66,
0x45, 0x63, 0x59, 0x75, 0x4A, 0x42, 0x45, 0x53, 0x38, 0x74, 0x76, 0x4B, 0x43, 0x48, 0x54, 0x4B, 0x6E, 0x4F, 0x33, 0x43,
0x6E, 0x35, 0x65, 0x68, 0x4A, 0x35, 0x50, 0x65, 0x76, 0x30, 0x64, 0x65, 0x52, 0x43, 0x70, 0x43, 0x35, 0x36, 0x38, 0x63,
0x56, 0x38, 0x4A, 0x2F, 0x38, 0x41, 0x0A, 0x42, 0x78, 0x6A, 0x41, 0x37, 0x66, 0x38, 0x41, 0x42, 0x4D, 0x2F, 0x57, 0x37,
0x6D, 0x4E, 0x53, 0x66, 0x73, 0x2F, 0x69, 0x4C, 0x54, 0x4A, 0x4A, 0x43, 0x47, 0x49, 0x77, 0x6F, 0x6C, 0x62, 0x50, 0x54,
0x36, 0x31, 0x35, 0x32, 0x4C, 0x66, 0x2B, 0x7A, 0x31, 0x42, 0x34, 0x50, 0x2B, 0x50, 0x46, 0x48, 0x69, 0x66, 0x2F, 0x41,
0x41, 0x52, 0x36, 0x38, 0x58, 0x32, 0x6E, 0x68, 0x54, 0x39, 0x6B, 0x72, 0x57, 0x66, 0x42, 0x4F, 0x6B, 0x61, 0x66, 0x59,
0x32, 0x47, 0x6E, 0x0A, 0x65, 0x46, 0x74, 0x54, 0x6B, 0x2B, 0x77, 0x52, 0x57, 0x67, 0x78, 0x49, 0x59, 0x62, 0x6D, 0x4E,
0x62, 0x6B, 0x79, 0x4D, 0x4E, 0x35, 0x58, 0x6D, 0x53, 0x56, 0x68, 0x75, 0x41, 0x47, 0x41, 0x43, 0x76, 0x4A, 0x79, 0x54,
0x37, 0x39, 0x34, 0x4C, 0x38, 0x55, 0x65, 0x4B, 0x76, 0x48, 0x58, 0x6A, 0x56, 0x76, 0x45, 0x72, 0x58, 0x53, 0x4C, 0x70,
0x74, 0x69, 0x42, 0x35, 0x64, 0x6E, 0x49, 0x4F, 0x5A, 0x6E, 0x2F, 0x32, 0x75, 0x34, 0x56, 0x65, 0x77, 0x50, 0x49, 0x50,
0x0A, 0x42, 0x2B, 0x36, 0x4D, 0x2F, 0x6C, 0x72, 0x2F, 0x41, 0x4D, 0x45, 0x6D, 0x2F, 0x77, 0x42, 0x72, 0x75, 0x33, 0x2B,
0x45, 0x33, 0x78, 0x59, 0x6A, 0x68, 0x2B, 0x4A, 0x4E, 0x6B, 0x49, 0x76, 0x44, 0x66, 0x78, 0x4C, 0x30, 0x69, 0x4C, 0x54,
0x4C, 0x6E, 0x55, 0x35, 0x2F, 0x6B, 0x69, 0x74, 0x4C, 0x79, 0x47, 0x59, 0x69, 0x48, 0x35, 0x6E, 0x4F, 0x46, 0x51, 0x47,
0x34, 0x6B, 0x6A, 0x5A, 0x51, 0x54, 0x39, 0x31, 0x57, 0x7A, 0x68, 0x54, 0x58, 0x36, 0x4E, 0x61, 0x78, 0x0A, 0x2B, 0x7A,
0x42, 0x63, 0x58, 0x46, 0x2F, 0x6F, 0x76, 0x78, 0x59, 0x38, 0x4C, 0x61, 0x39, 0x65, 0x51, 0x61, 0x33, 0x34, 0x59, 0x75,
0x5A, 0x70, 0x70, 0x4C, 0x4D, 0x36, 0x68, 0x4E, 0x46, 0x61, 0x61, 0x72, 0x45, 0x38, 0x66, 0x6C, 0x79, 0x78, 0x33, 0x45,
0x53, 0x4D, 0x41, 0x37, 0x46, 0x53, 0x53, 0x6A, 0x38, 0x6C, 0x57, 0x49, 0x62, 0x6E, 0x47, 0x4B, 0x2F, 0x4D, 0x4D, 0x52,
0x43, 0x6F, 0x73, 0x5A, 0x4A, 0x58, 0x30, 0x62, 0x33, 0x38, 0x7A, 0x39, 0x52, 0x79, 0x0A, 0x75, 0x64, 0x4B, 0x57, 0x42,
0x35, 0x57, 0x6C, 0x64, 0x66, 0x6B, 0x50, 0x2F, 0x61, 0x7A, 0x2B, 0x4A, 0x48, 0x6A, 0x4E, 0x72, 0x53, 0x4C, 0x54, 0x39,
0x42, 0x2B, 0x48, 0x70, 0x31, 0x4F, 0x51, 0x78, 0x73, 0x41, 0x73, 0x55, 0x34, 0x56, 0x41, 0x34, 0x48, 0x47, 0x34, 0x38,
0x6B, 0x4C, 0x6B, 0x6A, 0x6B, 0x41, 0x34, 0x48, 0x59, 0x39, 0x4B, 0x38, 0x33, 0x2B, 0x47, 0x48, 0x78, 0x4A, 0x2B, 0x49,
0x2F, 0x77, 0x35, 0x31, 0x71, 0x36, 0x76, 0x74, 0x51, 0x30, 0x51, 0x0A, 0x32, 0x32, 0x6B, 0x36, 0x67, 0x73, 0x5A, 0x2F,
0x73, 0x35, 0x70, 0x64, 0x78, 0x67, 0x6C, 0x77, 0x46, 0x59, 0x71, 0x78, 0x35, 0x4F, 0x54, 0x6E, 0x33, 0x2B, 0x6C, 0x65,
0x7A, 0x36, 0x39, 0x65, 0x2F, 0x41, 0x4F, 0x54, 0x51, 0x33, 0x68, 0x75, 0x50, 0x45, 0x6E, 0x69, 0x53, 0x32, 0x6C, 0x67,
0x6A, 0x6B, 0x59, 0x32, 0x2B, 0x39, 0x4A, 0x43, 0x57, 0x4B, 0x34, 0x52, 0x64, 0x37, 0x44, 0x2B, 0x2B, 0x43, 0x44, 0x2F,
0x41, 0x45, 0x46, 0x65, 0x41, 0x2F, 0x47, 0x48, 0x0A, 0x77, 0x35, 0x34, 0x65, 0x2B, 0x4B, 0x31, 0x33, 0x63, 0x65, 0x44,
0x50, 0x68, 0x35, 0x34, 0x70, 0x38, 0x52, 0x61, 0x52, 0x44, 0x4A, 0x4B, 0x73, 0x62, 0x36, 0x72, 0x4A, 0x63, 0x52, 0x6C,
0x69, 0x68, 0x55, 0x6C, 0x39, 0x6F, 0x56, 0x63, 0x4B, 0x33, 0x4A, 0x55, 0x45, 0x6E, 0x67, 0x67, 0x4E, 0x7A, 0x33, 0x69,
0x72, 0x68, 0x76, 0x5A, 0x79, 0x39, 0x70, 0x37, 0x52, 0x65, 0x65, 0x70, 0x36, 0x6D, 0x44, 0x6D, 0x36, 0x6C, 0x43, 0x56,
0x42, 0x55, 0x70, 0x57, 0x58, 0x0A, 0x64, 0x4E, 0x4C, 0x35, 0x4E, 0x36, 0x50, 0x35, 0x48, 0x64, 0x2B, 0x4F, 0x66, 0x69,
0x56, 0x4E, 0x72, 0x65, 0x6E, 0x79, 0x53, 0x36, 0x52, 0x4D, 0x73, 0x69, 0x47, 0x50, 0x45, 0x6E, 0x7A, 0x72, 0x6D, 0x4C,
0x49, 0x36, 0x45, 0x5A, 0x7A, 0x33, 0x37, 0x2F, 0x30, 0x72, 0x38, 0x33, 0x66, 0x2B, 0x43, 0x34, 0x4F, 0x75, 0x33, 0x4D,
0x50, 0x77, 0x48, 0x38, 0x4B, 0x2B, 0x47, 0x4E, 0x50, 0x6D, 0x55, 0x50, 0x72, 0x50, 0x69, 0x6B, 0x6F, 0x37, 0x68, 0x63,
0x6C, 0x51, 0x0A, 0x6B, 0x5A, 0x49, 0x59, 0x41, 0x42, 0x69, 0x52, 0x6E, 0x30, 0x42, 0x72, 0x37, 0x6C, 0x6D, 0x74, 0x66,
0x41, 0x76, 0x77, 0x6F, 0x2B, 0x47, 0x6B, 0x66, 0x77, 0x33, 0x30, 0x2B, 0x2B, 0x67, 0x73, 0x59, 0x35, 0x74, 0x53, 0x4B,
0x52, 0x58, 0x2B, 0x71, 0x61, 0x69, 0x47, 0x65, 0x63, 0x78, 0x67, 0x73, 0x57, 0x65, 0x53, 0x51, 0x35, 0x64, 0x32, 0x64,
0x35, 0x44, 0x67, 0x2F, 0x77, 0x41, 0x49, 0x77, 0x4D, 0x41, 0x59, 0x48, 0x77, 0x52, 0x2F, 0x77, 0x55, 0x78, 0x2F, 0x0A,
0x61, 0x78, 0x2B, 0x45, 0x2F, 0x77, 0x43, 0x7A, 0x70, 0x38, 0x56, 0x64, 0x4C, 0x38, 0x59, 0x61, 0x4C, 0x61, 0x57, 0x66,
0x69, 0x6E, 0x34, 0x6C, 0x36, 0x44, 0x5A, 0x74, 0x46, 0x34, 0x4B, 0x30, 0x36, 0x36, 0x69, 0x57, 0x62, 0x54, 0x2F, 0x44,
0x30, 0x72, 0x48, 0x35, 0x39, 0x55, 0x75, 0x41, 0x66, 0x6C, 0x6E, 0x6E, 0x47, 0x41, 0x49, 0x59, 0x2B, 0x56, 0x55, 0x2F,
0x4D, 0x32, 0x63, 0x41, 0x56, 0x72, 0x6B, 0x57, 0x45, 0x71, 0x59, 0x6A, 0x4D, 0x6F, 0x7A, 0x61, 0x0A, 0x30, 0x69, 0x65,
0x66, 0x78, 0x48, 0x6D, 0x46, 0x44, 0x44, 0x35, 0x50, 0x4F, 0x45, 0x57, 0x72, 0x79, 0x30, 0x74, 0x35, 0x48, 0x50, 0x38,
0x41, 0x37, 0x54, 0x6E, 0x37, 0x63, 0x58, 0x37, 0x51, 0x6E, 0x37, 0x4D, 0x66, 0x2F, 0x42, 0x4F, 0x72, 0x53, 0x76, 0x32,
0x46, 0x2F, 0x69, 0x52, 0x62, 0x52, 0x78, 0x2B, 0x4E, 0x76, 0x46, 0x57, 0x6B, 0x57, 0x55, 0x47, 0x71, 0x33, 0x39, 0x76,
0x35, 0x39, 0x70, 0x4A, 0x34, 0x64, 0x30, 0x56, 0x67, 0x4A, 0x49, 0x37, 0x5A, 0x0A, 0x77, 0x6B, 0x6F, 0x38, 0x79, 0x39,
0x75, 0x49, 0x38, 0x43, 0x63, 0x73, 0x71, 0x6F, 0x73, 0x44, 0x47, 0x4E, 0x6B, 0x64, 0x70, 0x47, 0x32, 0x66, 0x70, 0x4E,
0x2F, 0x77, 0x61, 0x76, 0x57, 0x30, 0x30, 0x58, 0x67, 0x48, 0x34, 0x6E, 0x54, 0x74, 0x66, 0x53, 0x7A, 0x42, 0x74, 0x4E,
0x38, 0x4E, 0x4C, 0x4E, 0x75, 0x2B, 0x34, 0x4A, 0x38, 0x36, 0x6F, 0x7A, 0x59, 0x4F, 0x65, 0x57, 0x4B, 0x76, 0x48, 0x6E,
0x68, 0x65, 0x77, 0x77, 0x63, 0x5A, 0x50, 0x34, 0x41, 0x65, 0x0A, 0x4F, 0x64, 0x5A, 0x2B, 0x49, 0x6E, 0x78, 0x51, 0x38,
0x42, 0x78, 0x2B, 0x4F, 0x66, 0x6A, 0x48, 0x34, 0x6A, 0x75, 0x64, 0x58, 0x31, 0x76, 0x57, 0x64, 0x62, 0x75, 0x4C, 0x73,
0x33, 0x39, 0x33, 0x68, 0x37, 0x69, 0x37, 0x6D, 0x2F, 0x64, 0x6D, 0x55, 0x75, 0x34, 0x47, 0x57, 0x4C, 0x62, 0x69, 0x63,
0x74, 0x30, 0x32, 0x34, 0x39, 0x71, 0x2F, 0x70, 0x49, 0x2F, 0x34, 0x4E, 0x6A, 0x2F, 0x68, 0x39, 0x59, 0x65, 0x48, 0x2F,
0x77, 0x42, 0x68, 0x44, 0x58, 0x50, 0x69, 0x0A, 0x47, 0x31, 0x72, 0x49, 0x62, 0x33, 0x78, 0x44, 0x34, 0x7A, 0x65, 0x4A,
0x72, 0x75, 0x58, 0x37, 0x30, 0x31, 0x76, 0x61, 0x57, 0x6C, 0x74, 0x46, 0x47, 0x76, 0x30, 0x57, 0x55, 0x33, 0x49, 0x48,
0x74, 0x58, 0x36, 0x42, 0x51, 0x72, 0x4B, 0x72, 0x69, 0x6F, 0x78, 0x58, 0x52, 0x76, 0x35, 0x6E, 0x35, 0x6E, 0x53, 0x77,
0x72, 0x6F, 0x59, 0x4F, 0x55, 0x33, 0x31, 0x73, 0x66, 0x6F, 0x35, 0x52, 0x52, 0x52, 0x58, 0x76, 0x48, 0x4B, 0x56, 0x51,
0x69, 0x34, 0x77, 0x65, 0x0A, 0x33, 0x57, 0x76, 0x7A, 0x37, 0x2F, 0x34, 0x4F, 0x52, 0x66, 0x69, 0x41, 0x66, 0x43, 0x58,
0x2F, 0x41, 0x41, 0x54, 0x33, 0x76, 0x64, 0x42, 0x6B, 0x30, 0x37, 0x7A, 0x6F, 0x74, 0x55, 0x31, 0x53, 0x46, 0x6E, 0x6C,
0x78, 0x6B, 0x49, 0x49, 0x6D, 0x44, 0x63, 0x2B, 0x78, 0x7A, 0x58, 0x36, 0x42, 0x6A, 0x63, 0x58, 0x59, 0x46, 0x73, 0x35,
0x78, 0x2F, 0x57, 0x76, 0x7A, 0x52, 0x2F, 0x34, 0x4F, 0x66, 0x6E, 0x75, 0x42, 0x2B, 0x77, 0x78, 0x42, 0x4B, 0x6D, 0x66,
0x49, 0x0A, 0x74, 0x39, 0x53, 0x44, 0x58, 0x52, 0x77, 0x6E, 0x33, 0x47, 0x49, 0x58, 0x6A, 0x63, 0x50, 0x2F, 0x41, 0x4B,
0x39, 0x65, 0x50, 0x6D, 0x55, 0x6E, 0x44, 0x43, 0x54, 0x61, 0x37, 0x72, 0x38, 0x58, 0x5A, 0x6D, 0x2B, 0x57, 0x77, 0x55,
0x38, 0x58, 0x47, 0x4A, 0x2B, 0x4F, 0x33, 0x77, 0x61, 0x6A, 0x74, 0x66, 0x69, 0x58, 0x38, 0x42, 0x2F, 0x45, 0x33, 0x77,
0x2B, 0x6B, 0x32, 0x7A, 0x61, 0x6C, 0x34, 0x64, 0x38, 0x75, 0x39, 0x30, 0x69, 0x4B, 0x57, 0x52, 0x56, 0x48, 0x0A, 0x6C,
0x76, 0x47, 0x53, 0x56, 0x56, 0x51, 0x63, 0x45, 0x4E, 0x49, 0x5A, 0x43, 0x7A, 0x48, 0x6A, 0x6C, 0x41, 0x4F, 0x70, 0x78,
0x2B, 0x6C, 0x6E, 0x2F, 0x42, 0x47, 0x6E, 0x39, 0x76, 0x69, 0x38, 0x2B, 0x4A, 0x76, 0x77, 0x2F, 0x73, 0x50, 0x32, 0x61,
0x66, 0x6A, 0x4C, 0x4D, 0x34, 0x31, 0x75, 0x77, 0x73, 0x58, 0x4F, 0x68, 0x36, 0x31, 0x4E, 0x63, 0x47, 0x58, 0x37, 0x5A,
0x47, 0x48, 0x59, 0x50, 0x61, 0x54, 0x6B, 0x6B, 0x2B, 0x58, 0x4E, 0x48, 0x6C, 0x41, 0x67, 0x0A, 0x33, 0x45, 0x4E, 0x45,
0x30, 0x51, 0x34, 0x59, 0x59, 0x62, 0x38, 0x32, 0x76, 0x2B, 0x43, 0x5A, 0x6E, 0x37, 0x44, 0x2F, 0x41, 0x4F, 0x31, 0x7A,
0x2B, 0x30, 0x72, 0x38, 0x51, 0x72, 0x4C, 0x34, 0x69, 0x66, 0x43, 0x76, 0x77, 0x35, 0x63, 0x77, 0x2B, 0x45, 0x64, 0x4B,
0x6E, 0x6C, 0x58, 0x78, 0x4E, 0x34, 0x74, 0x31, 0x68, 0x7A, 0x46, 0x59, 0x53, 0x32, 0x6A, 0x52, 0x79, 0x66, 0x75, 0x4D,
0x6E, 0x35, 0x37, 0x68, 0x73, 0x6F, 0x6F, 0x78, 0x48, 0x76, 0x45, 0x62, 0x0A, 0x47, 0x4E, 0x6D, 0x51, 0x68, 0x52, 0x58,
0x30, 0x48, 0x6F, 0x66, 0x77, 0x6F, 0x75, 0x50, 0x32, 0x66, 0x2F, 0x69, 0x72, 0x65, 0x58, 0x48, 0x68, 0x31, 0x4E, 0x2B,
0x6F, 0x36, 0x5A, 0x66, 0x50, 0x63, 0x66, 0x62, 0x75, 0x6B, 0x4C, 0x78, 0x4B, 0x42, 0x75, 0x56, 0x53, 0x32, 0x37, 0x5A,
0x75, 0x56, 0x6D, 0x59, 0x67, 0x37, 0x6D, 0x4A, 0x32, 0x39, 0x51, 0x46, 0x78, 0x38, 0x48, 0x6D, 0x56, 0x50, 0x36, 0x74,
0x46, 0x75, 0x57, 0x30, 0x74, 0x55, 0x2B, 0x7A, 0x36, 0x0A, 0x6E, 0x33, 0x4F, 0x55, 0x31, 0x46, 0x69, 0x58, 0x79, 0x78,
0x66, 0x76, 0x51, 0x33, 0x58, 0x64, 0x64, 0x44, 0x39, 0x59, 0x66, 0x48, 0x76, 0x68, 0x58, 0x77, 0x2B, 0x31, 0x6F, 0x38,
0x36, 0x32, 0x30, 0x58, 0x6E, 0x52, 0x67, 0x2F, 0x4D, 0x77, 0x42, 0x2F, 0x4D, 0x59, 0x72, 0x38, 0x66, 0x76, 0x2B, 0x43,
0x72, 0x58, 0x37, 0x65, 0x48, 0x37, 0x52, 0x76, 0x77, 0x6F, 0x2F, 0x61, 0x47, 0x76, 0x2F, 0x67, 0x64, 0x38, 0x4B, 0x76,
0x46, 0x71, 0x36, 0x42, 0x61, 0x36, 0x0A, 0x54, 0x62, 0x32, 0x73, 0x36, 0x54, 0x36, 0x4F, 0x6F, 0x53, 0x65, 0x53, 0x57,
0x52, 0x46, 0x66, 0x4C, 0x53, 0x59, 0x47, 0x56, 0x79, 0x35, 0x54, 0x41, 0x78, 0x79, 0x71, 0x39, 0x63, 0x35, 0x72, 0x39,
0x53, 0x2F, 0x41, 0x66, 0x69, 0x58, 0x56, 0x50, 0x48, 0x50, 0x77, 0x31, 0x74, 0x4E, 0x59, 0x57, 0x2B, 0x6B, 0x6B, 0x66,
0x37, 0x4F, 0x45, 0x6E, 0x6B, 0x52, 0x77, 0x53, 0x2F, 0x79, 0x34, 0x79, 0x51, 0x51, 0x41, 0x43, 0x66, 0x76, 0x48, 0x47,
0x4D, 0x45, 0x31, 0x0A, 0x35, 0x4E, 0x38, 0x57, 0x2F, 0x77, 0x42, 0x6B, 0x44, 0x77, 0x6E, 0x38, 0x58, 0x64, 0x55, 0x74,
0x76, 0x45, 0x58, 0x6A, 0x58, 0x77, 0x39, 0x62, 0x61, 0x6E, 0x4C, 0x59, 0x50, 0x35, 0x6D, 0x6E, 0x7A, 0x58, 0x64, 0x6B,
0x6A, 0x74, 0x62, 0x74, 0x6E, 0x49, 0x4B, 0x5A, 0x55, 0x62, 0x54, 0x6E, 0x6B, 0x45, 0x48, 0x67, 0x34, 0x39, 0x42, 0x58,
0x6E, 0x5A, 0x64, 0x6D, 0x32, 0x47, 0x77, 0x65, 0x49, 0x39, 0x74, 0x4F, 0x6E, 0x7A, 0x71, 0x31, 0x72, 0x66, 0x71, 0x65,
0x0A, 0x31, 0x6A, 0x73, 0x73, 0x78, 0x65, 0x50, 0x77, 0x4C, 0x77, 0x38, 0x4B, 0x33, 0x49, 0x37, 0x33, 0x76, 0x35, 0x48,
0x77, 0x78, 0x38, 0x4B, 0x66, 0x44, 0x30, 0x2F, 0x37, 0x51, 0x66, 0x77, 0x76, 0x38, 0x4B, 0x66, 0x46, 0x2F, 0x77, 0x43,
0x50, 0x4E, 0x68, 0x65, 0x33, 0x66, 0x69, 0x4F, 0x62, 0x77, 0x33, 0x48, 0x48, 0x71, 0x74, 0x70, 0x4C, 0x4C, 0x4B, 0x73,
0x56, 0x78, 0x50, 0x62, 0x54, 0x53, 0x77, 0x51, 0x58, 0x55, 0x6B, 0x57, 0x46, 0x41, 0x6C, 0x65, 0x7A, 0x0A, 0x53, 0x31,
0x56, 0x67, 0x41, 0x56, 0x63, 0x71, 0x30, 0x72, 0x45, 0x76, 0x4F, 0x56, 0x58, 0x34, 0x31, 0x2F, 0x61, 0x2F, 0x38, 0x44,
0x52, 0x66, 0x45, 0x48, 0x39, 0x71, 0x71, 0x36, 0x31, 0x61, 0x53, 0x43, 0x61, 0x34, 0x67, 0x73, 0x72, 0x4F, 0x46, 0x4A,
0x6F, 0x62, 0x56, 0x44, 0x49, 0x38, 0x6A, 0x35, 0x62, 0x62, 0x46, 0x47, 0x71, 0x67, 0x6C, 0x6D, 0x4A, 0x4F, 0x4F, 0x41,
0x65, 0x74, 0x66, 0x73, 0x6A, 0x62, 0x66, 0x73, 0x79, 0x61, 0x38, 0x38, 0x55, 0x33, 0x0A, 0x67, 0x33, 0x34, 0x57, 0x2B,
0x42, 0x72, 0x76, 0x56, 0x64, 0x53, 0x6C, 0x69, 0x41, 0x6A, 0x57, 0x48, 0x4B, 0x69, 0x4D, 0x4D, 0x32, 0x31, 0x57, 0x64,
0x79, 0x64, 0x71, 0x44, 0x70, 0x6B, 0x6E, 0x41, 0x47, 0x44, 0x79, 0x4D, 0x47, 0x76, 0x5A, 0x76, 0x32, 0x53, 0x2F, 0x2B,
0x43, 0x51, 0x66, 0x37, 0x50, 0x50, 0x37, 0x4F, 0x4F, 0x74, 0x4C, 0x38, 0x53, 0x2F, 0x48, 0x47, 0x6E, 0x66, 0x38, 0x4A,
0x58, 0x38, 0x52, 0x4C, 0x79, 0x4B, 0x64, 0x37, 0x6E, 0x58, 0x37, 0x0A, 0x68, 0x43, 0x30, 0x4E, 0x6B, 0x37, 0x2F, 0x66,
0x6A, 0x74, 0x59, 0x6A, 0x6C, 0x55, 0x41, 0x47, 0x42, 0x76, 0x59, 0x46, 0x7A, 0x36, 0x71, 0x44, 0x74, 0x48, 0x74, 0x35,
0x4A, 0x58, 0x78, 0x75, 0x59, 0x34, 0x71, 0x65, 0x4A, 0x61, 0x35, 0x59, 0x37, 0x4A, 0x4C, 0x52, 0x4A, 0x65, 0x52, 0x38,
0x35, 0x6E, 0x74, 0x48, 0x41, 0x5A, 0x54, 0x67, 0x59, 0x34, 0x56, 0x53, 0x35, 0x70, 0x62, 0x74, 0x33, 0x75, 0x32, 0x2F,
0x4D, 0x2F, 0x6E, 0x67, 0x69, 0x75, 0x39, 0x58, 0x0A, 0x31, 0x6E, 0x34, 0x6F, 0x36, 0x4A, 0x34, 0x56, 0x38, 0x5A, 0x2B,
0x46, 0x72, 0x76, 0x54, 0x55, 0x30, 0x2F, 0x55, 0x6F, 0x6F, 0x44, 0x59, 0x51, 0x49, 0x49, 0x33, 0x74, 0x6F, 0x57, 0x6D,
0x7A, 0x79, 0x7A, 0x6A, 0x43, 0x79, 0x41, 0x38, 0x73, 0x54, 0x74, 0x79, 0x46, 0x78, 0x78, 0x6A, 0x49, 0x2F, 0x71, 0x48,
0x2F, 0x41, 0x4F, 0x43, 0x4B, 0x50, 0x67, 0x44, 0x58, 0x66, 0x68, 0x66, 0x2B, 0x78, 0x4C, 0x42, 0x34, 0x4A, 0x38, 0x52,
0x57, 0x4C, 0x32, 0x31, 0x78, 0x0A, 0x62, 0x2B, 0x49, 0x4A, 0x35, 0x78, 0x46, 0x4A, 0x5A, 0x6D, 0x33, 0x62, 0x79, 0x35,
0x34, 0x4C, 0x65, 0x34, 0x6A, 0x4A, 0x6A, 0x4C, 0x48, 0x5A, 0x6C, 0x4A, 0x56, 0x4F, 0x4D, 0x39, 0x78, 0x77, 0x44, 0x6B,
0x56, 0x2B, 0x43, 0x50, 0x38, 0x41, 0x77, 0x57, 0x57, 0x2B, 0x46, 0x58, 0x68, 0x72, 0x34, 0x47, 0x2F, 0x38, 0x46, 0x45,
0x4E, 0x54, 0x38, 0x4E, 0x61, 0x54, 0x6F, 0x78, 0x69, 0x45, 0x36, 0x32, 0x31, 0x2F, 0x47, 0x53, 0x6A, 0x41, 0x53, 0x73,
0x2B, 0x53, 0x0A, 0x56, 0x77, 0x63, 0x44, 0x62, 0x6C, 0x68, 0x6B, 0x64, 0x4D, 0x34, 0x4F, 0x54, 0x74, 0x49, 0x50, 0x37,
0x74, 0x2F, 0x38, 0x45, 0x4C, 0x2F, 0x32, 0x71, 0x66, 0x41, 0x6E, 0x37, 0x55, 0x2F, 0x2F, 0x41, 0x41, 0x54, 0x7A, 0x38,
0x4C, 0x65, 0x4E, 0x4E, 0x45, 0x76, 0x56, 0x2F, 0x77, 0x43, 0x45, 0x68, 0x30, 0x75, 0x33, 0x6A, 0x30, 0x6A, 0x78, 0x6E,
0x59, 0x4E, 0x63, 0x74, 0x4A, 0x4E, 0x42, 0x66, 0x32, 0x63, 0x4D, 0x64, 0x6F, 0x4A, 0x4A, 0x4E, 0x78, 0x7A, 0x2B, 0x0A,
0x39, 0x68, 0x74, 0x34, 0x70, 0x4D, 0x38, 0x6A, 0x35, 0x69, 0x4D, 0x6B, 0x67, 0x34, 0x39, 0x33, 0x41, 0x30, 0x35, 0x53,
0x7A, 0x57, 0x46, 0x57, 0x2B, 0x69, 0x69, 0x31, 0x59, 0x38, 0x4F, 0x70, 0x55, 0x55, 0x4D, 0x71, 0x6C, 0x54, 0x33, 0x62,
0x6B, 0x6E, 0x38, 0x6A, 0x37, 0x4C, 0x6F, 0x71, 0x46, 0x4C, 0x32, 0x4E, 0x38, 0x37, 0x56, 0x4A, 0x77, 0x4D, 0x30, 0x76,
0x32, 0x6C, 0x65, 0x79, 0x47, 0x76, 0x71, 0x31, 0x4B, 0x4C, 0x56, 0x7A, 0x77, 0x2B, 0x5A, 0x45, 0x0A, 0x4D, 0x65, 0x48,
0x64, 0x73, 0x39, 0x73, 0x56, 0x38, 0x55, 0x2F, 0x38, 0x46, 0x76, 0x74, 0x48, 0x2B, 0x44, 0x65, 0x75, 0x2F, 0x73, 0x2F,
0x36, 0x4A, 0x70, 0x58, 0x78, 0x36, 0x30, 0x79, 0x57, 0x37, 0x38, 0x4B, 0x50, 0x34, 0x6A, 0x74, 0x6D, 0x31, 0x71, 0x43,
0x47, 0x56, 0x6F, 0x32, 0x65, 0x33, 0x57, 0x52, 0x53, 0x77, 0x4C, 0x4C, 0x79, 0x45, 0x78, 0x79, 0x32, 0x4F, 0x64, 0x6F,
0x49, 0x47, 0x44, 0x7A, 0x58, 0x32, 0x71, 0x68, 0x78, 0x76, 0x49, 0x39, 0x76, 0x0A, 0x36, 0x31, 0x38, 0x4C, 0x66, 0x38,
0x46, 0x34, 0x31, 0x46, 0x7A, 0x38, 0x41, 0x4E, 0x44, 0x73, 0x4A, 0x53, 0x54, 0x46, 0x4E, 0x71, 0x55, 0x79, 0x53, 0x70,
0x6E, 0x68, 0x31, 0x4D, 0x65, 0x43, 0x44, 0x2B, 0x42, 0x72, 0x35, 0x33, 0x50, 0x36, 0x37, 0x6F, 0x35, 0x56, 0x55, 0x6D,
0x74, 0x30, 0x31, 0x2F, 0x36, 0x55, 0x65, 0x6A, 0x6B, 0x4E, 0x4E, 0x56, 0x63, 0x7A, 0x70, 0x51, 0x66, 0x32, 0x6D, 0x65,
0x6C, 0x32, 0x65, 0x6C, 0x65, 0x42, 0x2F, 0x44, 0x50, 0x77, 0x0A, 0x47, 0x69, 0x38, 0x4A, 0x66, 0x43, 0x7A, 0x77, 0x37,
0x70, 0x32, 0x6C, 0x61, 0x48, 0x61, 0x61, 0x4E, 0x43, 0x4C, 0x53, 0x7A, 0x30, 0x69, 0x31, 0x57, 0x43, 0x32, 0x4D, 0x54,
0x59, 0x32, 0x6D, 0x4E, 0x41, 0x4D, 0x6E, 0x4F, 0x51, 0x54, 0x6E, 0x4A, 0x4A, 0x4F, 0x54, 0x33, 0x72, 0x38, 0x2B, 0x58,
0x38, 0x50, 0x57, 0x56, 0x37, 0x2B, 0x30, 0x46, 0x66, 0x6E, 0x53, 0x73, 0x53, 0x50, 0x4A, 0x62, 0x2F, 0x61, 0x6F, 0x4C,
0x58, 0x49, 0x4B, 0x66, 0x49, 0x2F, 0x6C, 0x0A, 0x73, 0x53, 0x4F, 0x6F, 0x4C, 0x71, 0x71, 0x6A, 0x6A, 0x74, 0x30, 0x36,
0x56, 0x39, 0x6B, 0x65, 0x48, 0x2F, 0x47, 0x2B, 0x74, 0x65, 0x4A, 0x66, 0x32, 0x59, 0x2F, 0x42, 0x2F, 0x69, 0x69, 0x35,
0x57, 0x47, 0x43, 0x65, 0x2B, 0x38, 0x43, 0x57, 0x30, 0x73, 0x6B, 0x64, 0x71, 0x47, 0x57, 0x4E, 0x43, 0x45, 0x55, 0x59,
0x55, 0x46, 0x6A, 0x67, 0x63, 0x44, 0x71, 0x54, 0x30, 0x36, 0x31, 0x38, 0x4E, 0x66, 0x73, 0x71, 0x65, 0x49, 0x4C, 0x37,
0x78, 0x4C, 0x2B, 0x32, 0x0A, 0x4A, 0x34, 0x67, 0x31, 0x54, 0x56, 0x46, 0x6A, 0x5A, 0x30, 0x38, 0x56, 0x58, 0x57, 0x68,
0x78, 0x78, 0x71, 0x44, 0x73, 0x53, 0x31, 0x67, 0x6A, 0x63, 0x49, 0x41, 0x43, 0x54, 0x38, 0x78, 0x4F, 0x57, 0x4A, 0x36,
0x62, 0x6D, 0x4F, 0x41, 0x42, 0x77, 0x50, 0x6C, 0x38, 0x2F, 0x66, 0x31, 0x69, 0x68, 0x46, 0x62, 0x61, 0x4C, 0x38, 0x54,
0x36, 0x66, 0x68, 0x71, 0x6C, 0x39, 0x57, 0x71, 0x56, 0x46, 0x75, 0x37, 0x74, 0x66, 0x63, 0x66, 0x52, 0x76, 0x37, 0x4D,
0x6C, 0x0A, 0x76, 0x71, 0x48, 0x67, 0x65, 0x78, 0x31, 0x44, 0x34, 0x5A, 0x53, 0x33, 0x55, 0x38, 0x6B, 0x64, 0x74, 0x4A,
0x35, 0x75, 0x6D, 0x79, 0x58, 0x49, 0x4A, 0x4A, 0x74, 0x6E, 0x79, 0x79, 0x67, 0x6B, 0x35, 0x79, 0x51, 0x4E, 0x79, 0x6B,
0x6B, 0x6B, 0x2F, 0x4B, 0x50, 0x78, 0x39, 0x70, 0x30, 0x48, 0x77, 0x35, 0x72, 0x58, 0x69, 0x63, 0x6A, 0x53, 0x39, 0x50,
0x74, 0x58, 0x56, 0x63, 0x5A, 0x65, 0x37, 0x4B, 0x45, 0x6F, 0x67, 0x44, 0x66, 0x78, 0x48, 0x32, 0x4F, 0x44, 0x0A, 0x67,
0x64, 0x63, 0x69, 0x75, 0x56, 0x68, 0x30, 0x4C, 0x54, 0x5A, 0x37, 0x58, 0x53, 0x4E, 0x65, 0x6B, 0x68, 0x48, 0x32, 0x6D,
0x4B, 0x43, 0x56, 0x46, 0x6B, 0x32, 0x6A, 0x6C, 0x56, 0x49, 0x77, 0x70, 0x79, 0x4F, 0x6C, 0x66, 0x54, 0x32, 0x6C, 0x36,
0x46, 0x70, 0x65, 0x6B, 0x65, 0x44, 0x34, 0x72, 0x62, 0x54, 0x62, 0x56, 0x59, 0x6B, 0x53, 0x44, 0x49, 0x43, 0x6A, 0x6E,
0x4C, 0x64, 0x54, 0x6E, 0x31, 0x35, 0x50, 0x50, 0x57, 0x76, 0x48, 0x79, 0x48, 0x4B, 0x46, 0x0A, 0x6D, 0x4F, 0x4A, 0x6C,
0x54, 0x6E, 0x4C, 0x53, 0x4F, 0x76, 0x71, 0x65, 0x72, 0x6E, 0x2B, 0x65, 0x50, 0x4C, 0x73, 0x49, 0x70, 0x55, 0x34, 0x36,
0x73, 0x62, 0x34, 0x4D, 0x38, 0x47, 0x65, 0x45, 0x2F, 0x68, 0x33, 0x34, 0x55, 0x6A, 0x30, 0x50, 0x77, 0x74, 0x61, 0x2B,
0x65, 0x38, 0x72, 0x42, 0x72, 0x6D, 0x37, 0x32, 0x2F, 0x50, 0x63, 0x4D, 0x63, 0x6A, 0x4A, 0x78, 0x36, 0x63, 0x67, 0x4C,
0x2F, 0x43, 0x50, 0x55, 0x35, 0x7A, 0x74, 0x32, 0x2B, 0x6E, 0x51, 0x32, 0x0A, 0x73, 0x4C, 0x33, 0x6B, 0x39, 0x75, 0x32,
0x63, 0x38, 0x59, 0x47, 0x66, 0x30, 0x71, 0x44, 0x77, 0x71, 0x45, 0x53, 0x30, 0x4E, 0x76, 0x35, 0x59, 0x49, 0x53, 0x4F,
0x52, 0x6C, 0x4C, 0x64, 0x51, 0x66, 0x4D, 0x50, 0x38, 0x79, 0x53, 0x66, 0x71, 0x54, 0x58, 0x52, 0x77, 0x6F, 0x45, 0x74,
0x45, 0x6C, 0x58, 0x71, 0x56, 0x39, 0x4B, 0x2F, 0x53, 0x71, 0x46, 0x4B, 0x6A, 0x54, 0x6F, 0x4A, 0x52, 0x56, 0x6F, 0x72,
0x52, 0x66, 0x35, 0x6E, 0x35, 0x62, 0x56, 0x72, 0x7A, 0x0A, 0x72, 0x31, 0x6E, 0x7A, 0x4E, 0x75, 0x54, 0x31, 0x75, 0x7A,
0x38, 0x64, 0x76, 0x2B, 0x44, 0x6B, 0x2F, 0x77, 0x44, 0x59, 0x68, 0x31, 0x48, 0x78, 0x38, 0x2F, 0x68, 0x54, 0x39, 0x70,
0x2F, 0x77, 0x66, 0x34, 0x53, 0x6B, 0x75, 0x6D, 0x73, 0x34, 0x5A, 0x64, 0x4D, 0x38, 0x51, 0x79, 0x32, 0x36, 0x4F, 0x78,
0x6A, 0x68, 0x49, 0x4A, 0x69, 0x6B, 0x4B, 0x6F, 0x63, 0x34, 0x79, 0x57, 0x42, 0x50, 0x51, 0x44, 0x47, 0x65, 0x74, 0x63,
0x31, 0x2F, 0x77, 0x51, 0x45, 0x2B, 0x0A, 0x4A, 0x58, 0x77, 0x77, 0x2F, 0x5A, 0x49, 0x2B, 0x4F, 0x66, 0x69, 0x4B, 0x62,
0x78, 0x62, 0x34, 0x36, 0x30, 0x33, 0x53, 0x72, 0x58, 0x34, 0x67, 0x33, 0x6C, 0x76, 0x70, 0x6D, 0x6D, 0x36, 0x61, 0x62,
0x6D, 0x55, 0x75, 0x34, 0x56, 0x57, 0x6B, 0x57, 0x5A, 0x6C, 0x42, 0x32, 0x6C, 0x32, 0x6C, 0x4F, 0x46, 0x42, 0x47, 0x56,
0x56, 0x70, 0x4F, 0x53, 0x43, 0x43, 0x66, 0x76, 0x50, 0x38, 0x41, 0x34, 0x4C, 0x45, 0x2F, 0x47, 0x33, 0x78, 0x70, 0x2B,
0x7A, 0x2F, 0x2B, 0x0A, 0x7A, 0x42, 0x63, 0x36, 0x6C, 0x38, 0x4F, 0x6F, 0x72, 0x47, 0x4F, 0x37, 0x31, 0x4F, 0x4F, 0x61,
0x42, 0x37, 0x71, 0x37, 0x74, 0x76, 0x4E, 0x65, 0x45, 0x42, 0x63, 0x67, 0x78, 0x35, 0x4F, 0x30, 0x4E, 0x36, 0x45, 0x67,
0x34, 0x77, 0x4D, 0x59, 0x36, 0x31, 0x2B, 0x41, 0x33, 0x67, 0x53, 0x2F, 0x59, 0x65, 0x50, 0x66, 0x44, 0x32, 0x74, 0x33,
0x4D, 0x4B, 0x33, 0x46, 0x37, 0x64, 0x36, 0x75, 0x47, 0x61, 0x37, 0x6E, 0x6B, 0x64, 0x6E, 0x6A, 0x64, 0x77, 0x35, 0x4C,
0x0A, 0x4A, 0x38, 0x32, 0x41, 0x63, 0x6C, 0x6A, 0x30, 0x49, 0x79, 0x37, 0x5A, 0x42, 0x7A, 0x58, 0x69, 0x34, 0x6D, 0x4D,
0x31, 0x6A, 0x4F, 0x61, 0x4C, 0x74, 0x62, 0x66, 0x7A, 0x5A, 0x39, 0x44, 0x6C, 0x30, 0x34, 0x34, 0x6A, 0x4B, 0x32, 0x6D,
0x76, 0x4A, 0x65, 0x68, 0x2F, 0x57, 0x72, 0x41, 0x79, 0x53, 0x51, 0x4C, 0x50, 0x46, 0x49, 0x6A, 0x71, 0x36, 0x41, 0x68,
0x30, 0x4F, 0x51, 0x66, 0x6F, 0x66, 0x53, 0x70, 0x34, 0x38, 0x4D, 0x6D, 0x65, 0x74, 0x66, 0x50, 0x33, 0x0A, 0x2F, 0x42,
0x4F, 0x50, 0x78, 0x5A, 0x34, 0x68, 0x38, 0x53, 0x66, 0x73, 0x2B, 0x76, 0x70, 0x6D, 0x76, 0x36, 0x6E, 0x4A, 0x64, 0x72,
0x6F, 0x57, 0x73, 0x58, 0x47, 0x6E, 0x61, 0x66, 0x4C, 0x4F, 0x64, 0x30, 0x69, 0x32, 0x30, 0x5A, 0x58, 0x59, 0x6A, 0x4E,
0x2F, 0x46, 0x74, 0x42, 0x77, 0x43, 0x65, 0x63, 0x41, 0x44, 0x74, 0x58, 0x76, 0x75, 0x35, 0x76, 0x57, 0x76, 0x70, 0x36,
0x46, 0x62, 0x32, 0x31, 0x4A, 0x56, 0x4C, 0x48, 0x67, 0x79, 0x53, 0x67, 0x32, 0x6A, 0x0A, 0x2F, 0x39, 0x6B, 0x3D, 0x0A,
0x0D, 0x0A, 0x45, 0x4E, 0x44, 0x3A, 0x56, 0x43, 0x41, 0x52, 0x44, 0x0D, 0x0A
};
/* Field to fill for the SMS demonstration */
char PhoneNumber[] = {"+33612345678\0"};
char Message[] = {"This SMS was generated automatically by tapping your phone near BM1297\0"};
char Instruction[] = {"This is an example of NFC generated SMS using BM1297 board\0"};
/* Field to fill for the Vcard demonstration */
char FirstName[] = {"Help Desk\0"};
char Title[] = {"Customer support\0"};
char Org[] = {"STMicroelectronics\0"};
char HomeAddress[] = {"\0"};
char WorkAddress[] = {"190 avenue Celestin Coq 13106 ROUSSET FRANCE\0"};
char HomeTel[] = {"\0"};
char WorkTel[] = {"\0"};
char CellTel[] = {"+33 6 11 22 33 44\0"};
char HomeEmail[] = {"\0"};
char WorkEmail[] = {"[email protected] \0"};
/* Field to fill for the Email demonstration */
char EmailAdd[] = {"[email protected]\0"};
char Subject[] = {"M24SR S/N 754FHFGJF46G329 WARRANTY\0"};
char EmailMessage[] = {"this is a demonstration to illustrate an automatic warranty activation email\0"};
char Information[] = {"automatic warranty\0"};
static void URIwrite_demo(void)
{
sURI_Info URI;
/* Prepare URI NDEF message content */
strcpy(URI.protocol,URI_ID_0x01_STRING);
strcpy(URI.URI_Message,"taterli.com");
strcpy(URI.Information,"\0");
/* First write NDEF */
while (TT4_WriteURI(&URI) != SUCCESS);
}
static void SMSwrite_demo(void)
{
uint16_t status = ERROR;
sSMSInfo SMSStruct;
sSMSInfo *pSMSStruct;
pSMSStruct = &SMSStruct;
memcpy(pSMSStruct->PhoneNumber, PhoneNumber, strlen(PhoneNumber)+1);
memcpy(pSMSStruct->Message, Message, strlen(Message)+1);
memcpy(pSMSStruct->Information, Instruction, strlen(Instruction)+1);
status = TT4_WriteSMS ( pSMSStruct );
if(status != SUCCESS)
{
for(;;);
}
}
static void EMAILwrite_demo(void)
{
uint16_t status = ERROR;
sEmailInfo EmailStruct;
sEmailInfo *pEmailStruct;
pEmailStruct = &EmailStruct;
memcpy(pEmailStruct->EmailAdd, EmailAdd, strlen(EmailAdd)+1);
memcpy(pEmailStruct->Subject, Subject, strlen(Subject)+1);
memcpy(pEmailStruct->Message, EmailMessage, strlen(EmailMessage)+1);
memcpy(pEmailStruct->Information, Information, strlen(Information)+1);
status = TT4_WriteEmail ( pEmailStruct );
if(status != SUCCESS)
{
for(;;);
}
}
static void Vcardwrite_demo(void)
{
uint16_t status = ERROR;
/* USee a NDEF file Vcard with a default Jpeg embedded */
status = TT4_WriteNDEF((uint8_t*)uVcardCSL1);
if(status != SUCCESS)
{
for(;;);
}
}
static void Vcardwrite_demo2(void)
{
uint16_t status = ERROR;
sVcardInfo VcardStruct;
sVcardInfo *pVcardStruct;
pVcardStruct = &VcardStruct;
memcpy(pVcardStruct->FirstName, FirstName, strlen(FirstName)+1);
memcpy(pVcardStruct->Title, Title, strlen(Title)+1);
memcpy(pVcardStruct->Org, Org, strlen(Org)+1);
memcpy(pVcardStruct->HomeAddress, HomeAddress, strlen(HomeAddress)+1);
memcpy(pVcardStruct->WorkAddress, WorkAddress, strlen(WorkAddress)+1);
memcpy(pVcardStruct->HomeTel, HomeTel, strlen(HomeTel)+1);
memcpy(pVcardStruct->WorkTel, WorkTel, strlen(WorkTel)+1);
memcpy(pVcardStruct->CellTel, CellTel, strlen(CellTel)+1);
memcpy(pVcardStruct->HomeEmail, HomeEmail, strlen(HomeEmail)+1);
memcpy(pVcardStruct->WorkEmail, WorkEmail, strlen(WorkEmail)+1);
status = TT4_WriteVcard ( &VcardStruct );
if(status != SUCCESS)
{
for(;;);
}
}
static void AARwrite_demo(void)
{
uint16_t status = ERROR;
uint8_t NULL_NDEF[2] = {0,0};
sAARInfo AAR_struct;
sAARInfo *pAAR;
pAAR = &AAR_struct;
/* to set only AAR force NDEF size to 0 before */
TT4_WriteNDEF(NULL_NDEF);
memcpy(pAAR->PakageName, "com.stm.bluetoothlevalidation", strlen("com.stm.bluetoothlevalidation")+1);
/* Add AAR record */
status = TT4_AddAAR(pAAR);
if(status != SUCCESS)
{
for(;;);
}
}
/* NFC测试结束 */
float humidity = 0.0f;
float temperature = 0.0f;
uint16_t distance = 0;
void vInit( void * pvParameters )
{
/* Init of the Type Tag 4 component (M24SR)
Thanks to a call to KillSession command during init no issue can occurs
If customer modify the code to avoid Kill session command call,
he must retry Init until succes (session can be lock by RF ) */
while (TT4_Init() != SUCCESS);
URIwrite_demo();
SMSwrite_demo();
EMAILwrite_demo();
Vcardwrite_demo();
Vcardwrite_demo2();
AARwrite_demo();
HTS221_Init(0xBE);
VL53L0X_PROXIMITY_Init();
for( ;; )
{
vTaskDelay(1000);
humidity = HTS221_ReadHumidity(0xBE);
temperature = HTS221_ReadTemp(0xBE);
distance = VL53L0X_PROXIMITY_GetDistance();
}
}
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SYSCFG);
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_PWR);
NVIC_SetPriorityGrouping(0x00000003);
/* Configure the system clock */
SystemClock_Config();
xTaskCreate(
vInit, /* Function that implements the task. */
"Init", /* Text name for the task. */
8 * configMINIMAL_STACK_SIZE, /* Stack size in words, not bytes. */
NULL, /* Parameter passed into the task. */
tskIDLE_PRIORITY, /* Priority at which the task is created. */
NULL ); /* Used to pass out the created task's handle. */
vTaskStartScheduler();
/* Infinite loop */
while (1)
{
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment