From 8154cad6bcaaa4b31c06fdf1021077366d4029c1 Mon Sep 17 00:00:00 2001 From: lhye200 Date: Mon, 1 Sep 2025 22:43:03 +0800 Subject: [PATCH] =?UTF-8?q?OLED=20INA226=E5=9F=BA=E6=9C=AC=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Header/PCA9685_driver.h | 8 +- Header/iic.h | 2 + Header/iic_soft.h | 18 +- Header/ina226.h | 83 ++ Header/oled_font.h | 9 + Header/oled_iic_SSD1306.h | 64 + Header/printfs.h | 8 + Objects/stc32g_all | Bin 112688 -> 146268 bytes Objects/stc32g_all.hex | 2565 +++++++++++++++++++++-------------- STC32G12K128.cfg | 1 + STC32_FPMU_LARGE.LIB.remove | Bin 0 -> 3457 bytes Source/PCA9685_driver.c | 37 +- Source/iic.c | 146 +- Source/iic_soft.c | 149 +- Source/ina226.c | 123 ++ Source/isr.c | 5 +- Source/main.c | 86 +- Source/oled_font.c | 223 +++ Source/oled_iic_SSD1306.c | 491 +++++++ Source/printfs.c | 241 ++++ stc32g_all.uvopt | 136 +- stc32g_all.uvproj | 40 + 22 files changed, 3258 insertions(+), 1177 deletions(-) create mode 100644 Header/ina226.h create mode 100644 Header/oled_font.h create mode 100644 Header/oled_iic_SSD1306.h create mode 100644 Header/printfs.h create mode 100644 STC32_FPMU_LARGE.LIB.remove create mode 100644 Source/ina226.c create mode 100644 Source/oled_font.c create mode 100644 Source/oled_iic_SSD1306.c create mode 100644 Source/printfs.c diff --git a/Header/PCA9685_driver.h b/Header/PCA9685_driver.h index 80793b1..72a4925 100644 --- a/Header/PCA9685_driver.h +++ b/Header/PCA9685_driver.h @@ -9,8 +9,12 @@ #if PCA9685_USE_SOFT_IIC == 1 -#define PCA9685_SOFT_IIC_SCL_PIN P1_5 -#define PCA9685_SOFT_IIC_SDA_PIN P1_4 +#define PCA9685_SOFT_IIC_SCL_PIN P15 +#define PCA9685_SOFT_IIC_SDA_PIN P14 + +#define PCA9685_SDA_LEVEL(x) (PCA9685_SOFT_IIC_SDA_PIN = x) +#define PCA9685_SCL_LEVEL(x) (PCA9685_SOFT_IIC_SCL_PIN = x) +#define PCA9685_SDA_READ() (PCA9685_SOFT_IIC_SDA_PIN) #else diff --git a/Header/iic.h b/Header/iic.h index 648a397..1b1b0f6 100644 --- a/Header/iic.h +++ b/Header/iic.h @@ -25,8 +25,10 @@ typedef enum #define IIC_SEND_OK 0 #define IIC_SEND_FAIL 1 +void iic_scan(void); void iic_init(IICN_enum iic_n, uint8 wait_time); uint8 iic_write_reg(uint8 dev_add, uint8 reg, uint8 dat); +uint8 iic_write_reg_bytes(uint8 dev_add, uint8 reg, uint8 *dat, uint8 num); uint8 iic_read_reg(uint8 dev_add, uint8 reg, uint8 *dat); uint8 iic_read_reg_bytes(uint8 dev_add, uint8 reg, uint8 *dat, uint8 num); void iic_change_pin(IICN_enum iic_n); diff --git a/Header/iic_soft.h b/Header/iic_soft.h index 20ad471..36a7a0e 100644 --- a/Header/iic_soft.h +++ b/Header/iic_soft.h @@ -2,19 +2,25 @@ #define __IIC_SOFT_H__ #include "common.h" -#include "gpio.h" +// #include "gpio.h" typedef struct { - PIN_enum scl_pin; // SCL引脚 - PIN_enum sda_pin; // SDA引脚 + // PIN_enum scl_pin; // SCL引脚 + // PIN_enum sda_pin; // SDA引脚 + void (*SCL_SET)(void); + void (*SCL_CLR)(void); + void (*SDA_SET)(void); + void (*SDA_CLR)(void); + uint8 (*SDA_READ)(void); uint16 wait_time; // 等待时间,用于I2C总线速度控制 } IIC_Soft_Config; +void soft_iic_scan(IIC_Soft_Config *config); void soft_iic_init(IIC_Soft_Config *config); - -uint8 soft_iic_read_reg(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg_addr, uint8 *dat); - void soft_iic_write_reg(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg_addr, uint8 dat); +void soft_iic_write_reg_bytes(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg, uint8 *dat, uint8 len); +uint8 soft_iic_read_reg(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg_addr, uint8 *dat); +uint8 soft_iic_read_reg_bytes(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg, uint8 *buf, uint8 len); #endif diff --git a/Header/ina226.h b/Header/ina226.h new file mode 100644 index 0000000..5f6ba77 --- /dev/null +++ b/Header/ina226.h @@ -0,0 +1,83 @@ +#ifndef __INA226_H__ +#define __INA226_H__ + +#include "common.h" + + +#define INA226_USE_SOFT_IIC 0 + +#define INA226_NUM 1 + +#define INA226_READ_TIME_MS 1 + +#if (1==INA226_USE_SOFT_IIC) + +#define INA226_SDA_PIN P24 +#define INA226_SCL_PIN P25 +#define INA226_SOFT_WAIT_TIME 5 + +#define INA226_SDA_LEVEL(x) (INA226_SDA_PIN = x) +#define INA226_SCL_LEVEL(x) (INA226_SCL_PIN = x) +#define INA226_SDA_READ() (INA226_SDA_PIN) + +#else + +#define INA226_IIC IIC_1 +#define INA226_HARD_WAIT_TIME 10 + +#endif + +#define INA226_CONFIG_REG 0x00 +#define INA226_SHUNTVOT_REG 0x01 +#define INA226_BUSVOT_REG 0x02 +#define INA226_POWER_REG 0x03 +#define INA226_CURRENT_REG 0x04 +#define INA226_CALIBRATION_REG 0x05 + +#define INA226_DEF_ADDR 0x40 +#define INA226_DEF_MODE {0x44, 0x4F} +#define INA226_DEF_CAL {0x0D, 0x1B} + + +typedef struct +{ + uint8 addr; + float max_current_A; + float rshunt_mOhm; + float vot_fix_k; + float amp_fix_k; + uint8 mode[2]; +} INA226_Config; + +typedef struct +{ + float c_lsb_mA; + uint8 cal[2]; +} INA226_Calibration; + +typedef struct +{ + float voltage_V; + float current_A; + float power_W; + float shunt_voltage_mV; + float energy_J; + float quantity_C; + uint8 org_reg[4][2]; + float past_voltage_V[10]; + float past_current_A[10]; +} INA226_Result; + +typedef struct +{ + INA226_Config config; + INA226_Calibration calibration; + INA226_Result result; +} INA226_t; + +extern INA226_t ina226[INA226_NUM]; + +void INA226_Init(INA226_t *ina226, uint8 addr, uint8 mode[2], float max_current_A, float rshunt_mOhm, float amp_fix_k, float vot_fix_k); +void INA226_Read(INA226_t *ina226); + +#endif diff --git a/Header/oled_font.h b/Header/oled_font.h new file mode 100644 index 0000000..d86f525 --- /dev/null +++ b/Header/oled_font.h @@ -0,0 +1,9 @@ +#ifndef __OLED_FONT_H__ +#define __OLED_FONT_H__ + +#include "common.h" + +extern const uint8 code oled_6x8[][6]; +extern const uint8 code ascii_font_8x16[][16]; + +#endif diff --git a/Header/oled_iic_SSD1306.h b/Header/oled_iic_SSD1306.h new file mode 100644 index 0000000..afdd7c0 --- /dev/null +++ b/Header/oled_iic_SSD1306.h @@ -0,0 +1,64 @@ +#ifndef __OLED_IIC_SSD1306_H__ +#define __OLED_IIC_SSD1306_H__ + +#include "common.h" + +#define OLED_USE_SOFT_IIC 1 + +#define OLED_ADDR 0x3C + +#if (1==OLED_USE_SOFT_IIC) + +#define OLED_SDA_PIN P24 +#define OLED_SCL_PIN P25 +#define OLED_SOFT_WAIT_TIME 0 + +#define OLED_SDA_LEVEL(x) (OLED_SDA_PIN = x) +#define OLED_SCL_LEVEL(x) (OLED_SCL_PIN = x) +#define OLED_SDA_READ() (OLED_SDA_PIN) + +#else + +#define OLED_IIC IIC_2 +#define OLED_HARD_WAIT_TIME 0 + +#endif + +//定义显示方向 +//0 横屏模式 +//1 横屏模式 旋转180 +#define OLED_DISPLAY_DIR 0 + +#if (0==OLED_DISPLAY_DIR || 1==OLED_DISPLAY_DIR) +#define X_WIDTH 128 +#define Y_WIDTH 64 + +#else +#error "OLED_DISPLAY_DIR 定义错误" + +#endif + +#define Brightness 0x7f //设置OLED亮度 越大越亮 范围0-0XFF +#define XLevelL 0x00 +#define XLevelH 0x10 +#define XLevel ((XLevelH&0x0F)*16+XLevelL) +#define Max_Column 128 +#define Max_Row 64 + + +void oled_init(void); +void oled_fill(uint8 dat); +void oled_set_pos(uint8 x, uint8 y); +void oled_putpixel(uint8 x,uint8 y,uint8 data1); +void oled_clrpixel(uint8 x,uint8 y); +void oled_p6x8str(uint8 x,uint8 y,const int8 ch[]); + +void oled_uint16(uint8 x, uint8 y, uint16 num); +void oled_int16(uint8 x, uint8 y, int16 num); +void oled_printf_int32(uint16 x,uint16 y,int32 dat,uint8 num); +void oled_printf_float(uint16 x,uint16 y,double dat,uint8 num,uint8 pointnum); +void oled_dis_bmp(uint16 high, uint16 width, uint8 *p,uint8 value); +void oled_print_chinese(uint8 x, uint8 y, uint8 size, const uint8 *p, uint8 len); + + +#endif diff --git a/Header/printfs.h b/Header/printfs.h new file mode 100644 index 0000000..936f013 --- /dev/null +++ b/Header/printfs.h @@ -0,0 +1,8 @@ +#ifndef __PRINTFS_H__ +#define __PRINTFS_H__ + +#include "common.h" + +uint32 zf_sprintf (int8 *buff, const int8 *format, ...); + +#endif diff --git a/Objects/stc32g_all b/Objects/stc32g_all index 2483aa1738b3fee69a9b5d4d5c966df0667dfd22..156f2f67746ae8b8ec00d1efe594854221f9cb0c 100644 GIT binary patch literal 146268 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

?1EV( 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 PgAYYvEb#^Or_BEYX+#Nv diff --git a/Objects/stc32g_all.hex b/Objects/stc32g_all.hex index f004841..2c86e8f 100644 --- a/Objects/stc32g_all.hex +++ b/Objects/stc32g_all.hex @@ -1,27 +1,26 @@ :0200000400FFFB -:10000000023D6802000A53EFEF323202001A53EF4A -:10001000DF323202001253EFBF323202002253EFBE -:10002000FE3232023469801200000000000000003D -:10003000000000000000000000007D231B344D2262 -:1000400078E6220244B9E47AB3010B74117E704859 -:100050000248B702000653EFFD322202000E53EFB2 -:10006000FB322202001E74047E34FE817E24007E58 -:100070007A1BB0123BDA7E34FE877E24007E7E1B24 -:02008000B022AC -:06008300020016D2AF22BC -:06008B000244D3C2AF22C3 -:060093000244ED024927C2 -:06009B0002005602492795 -:1000A30002005E7F217F707F10800A7E2B307A1BD7 +:1000000002599002001AA294E4332202005AA2A4D8 +:10001000E4332202002253EFEF3232025C9753EFB7 +:10002000DF3232024F17CA797CF77CEB7D327E08D3 +:1000300002BF125DCF7CBE7C7F7E0802C0124035BD +:10004000DA79220261EC7C6B7E080277743C6C7773 +:100050000256E102001653EFBF323202001E53EF88 +:10006000FE322202005E801200000000000000004C +:10007000000000000000000000007D231B344D2222 +:1000800078E62202005653EFFD322202620653EF59 +:02009000FB3241 +:06009300026220D2AF2240 +:06009B00020086C2AF2244 +:1000A30002008E7F217F707F10800A7E2B307A1BA7 :1000B300300B540B34691FFFFD7D011B04790FFFC7 -:1000C300FD4D1178E67F17220230E77EB30101BEB2 -:1000D300B00D50507EA003A49000DF73020106020E -:1000E300010902012702010C02012702010F02018B -:1000F3001202011502011802011B02011E02012155 -:100103000201240223A40229F4022C6802399E026C -:100113002A930200960237C602294F023DE50243A5 -:070123001F02009E024927A4 -:10012B000241C90204266E00807CB1337CB0336877 +:1000C300FD4D1178E67F1722024A32CA3B7F30E4A6 +:1000D3007AB303287F031260F77E1467C97E040096 +:1000E300FF125F407F037EB303283EB0124BAC7F09 +:1000F3000312533960177E7303280A377A3701D204 +:100103007E1467A97E0400FF125F4080057F0312FF +:100113005E8C7EB30328047AB303287E730328BE60 +:07012300707F28B0DA3B22D7 +:10012B00025E5F0204266E00807CB1337CB03368C4 :10013B000D0468EF7CB5337CB43378037F10220455 :10014B0068E17D5092F77D457D51BF2140067C8053 :10015B007F017F121203E97EA1D05CB004780320EB @@ -63,7 +62,7 @@ :10039B00248140039F11227C457C567C676C77241B :1003AB00E0500E7E1CFFFF221E341E2450034E60B5 :1003BB00800478F430D50A6E34FFFF6E24FFFF0BF8 -:1003CB001C227F707F517E6F00947E9403DC0204AD +:1003CB001C227F707F517E6F03177E9403DC020427 :1003DB00674005E47A7BB0227A7BB00B7C222D0040 :1003EB0092D50E104E10807D422D445002B2D54E48 :1003FB0050806C447CB8222C4450120B1C7E400065 @@ -83,7 +82,7 @@ :1004DB007416937C3B7423937C2B89147CB0801310 :1004EB00742012045120F205BEC00250F31B6D297B :1004FB00B6000112045102045C1B6E691600020B5C -:10050B006A00BE08000078087E0400FF7E14495282 +:10050B006A00BE08000078087E0400FF7E1466D0E7 :10051B0020F21E4CCC681A7F10E47E1B804C88683E :10052B00070B1C04BCBD78F2C2F6CA0B12063BDAF1 :10053B000B7E0BB060C0CA0B120451DA0B0B0C4CC8 @@ -170,1025 +169,1501 @@ :100A4B00D57CB030E708B2D59F229F207F027CB4C3 :100A5B0030E713B2D59F229F217F121209F99F22F3 :100A6B009F207F0280031209F930D5069F229F2118 -:100A7B007F12227D127D234D116803020B8F7D3275 -:100A8B005E3400F0781A7CB5540F7E0400016005CB -:100A9B003E041478FB7CA16EA0FF7CBA5293529457 -:100AAB00BE340010781A7CB5540F7E04000160052B -:100ABB003E041478FB7CA16EA0FF7CBA529152923B -:100ACB00BE340020781A7CB5540F7E0400016005FB -:100ADB003E041478FB7CA16EA0FF7CBA5295529613 -:100AEB00BE340030781A7CB5540F7E0400016005CB -:100AFB003E041478FB7CA16EA0FF7CBA52B152B2BB -:100B0B00BE340040781A7CB5540F7E04000160059A -:100B1B003E041478FB7CA16EA0FF7CBA52B352B496 -:100B2B00BE340050781A7CB5540F7E04000160056A -:100B3B003E041478FB7CA16EA0FF7CBA52C952CA4A -:100B4B00BE340060781A7CB5540F7E04000160053A -:100B5B003E041478FB7CA16EA0FF7CBA52CB52CC26 -:100B6B00BE3400706803020E747CB5540F7E3400E3 -:100B7B000160053E341478FB7CA76EA0FF7CBA5253 -:100B8B00E152E222BE1400016803020C967D325E34 -:100B9B003400F078197CB5540F7E04000160053EDB -:100BAB00041478FB7CB164FF52937CB14294BE3445 -:100BBB00001078197CB5540F7E04000160053E04CB -:100BCB001478FB7CB164FF52917CB14292BE34002D -:100BDB002078197CB5540F7E04000160053E041487 -:100BEB0078FB7CB164FF52957CB14296BE340030E9 -:100BFB0078197CB5540F7E04000160053E0414780F -:100C0B00FB7CB164FF52B17CB142B2BE3400407880 -:100C1B00197CB5540F7E04000160053E041478FB6B -:100C2B007CB164FF52B37CB142B4BE34005078192E -:100C3B007CB5540F7E04000160053E041478FB7CE8 -:100C4B00B164FF52C97CB142CABE34006078197CD2 -:100C5B00B5540F7E04000160053E041478FB7CB193 -:100C6B0064FF52CB7CB142CCBE3400706803020EE1 -:100C7B00747CB5540F7E34000160053E341478FB50 -:100C8B007CA77CBA64FF52E1020E70BE14000268AE -:100C9B0003020D8D7D325E3400F078177CB5540F56 -:100CAB007E04000160053E041478FB7CB142936422 -:100CBB00FF5294BE34001078177CB5540F7E04009D -:100CCB000160053E041478FB7CB1429164FF5292A3 -:100CDB00BE34002078177CB5540F7E0400016005EC -:100CEB003E041478FB7CB1429564FF5296BE3400EF -:100CFB003078177CB5540F7E04000160053E041458 -:100D0B0078FB7CB142B164FF52B2BE34004078171D -:100D1B007CB5540F7E04000160053E041478FB7C07 -:100D2B00B142B364FF52B4BE34005078177CB55453 -:100D3B000F7E04000160053E041478FB7CB142C9B0 -:100D4B0064FF52CABE34006078177CB5540F7E0422 -:100D5B00000160053E041478FB7CB142CB64FF526A -:100D6B00CCBE3400706803020E747CB5540F7E3415 -:100D7B00000160053E341478FB7CB742E164FF52FE -:100D8B00E222BE1400036803020E747D325E34004F -:100D9B00F078157CB5540F7E14000160053E1414D9 -:100DAB0078FB7CB342934294BE34001078157CB52B -:100DBB00540F7E14000160053E141478FB7CB34283 -:100DCB00914292BE34002078157CB5540F7E1400EE -:100DDB000160053E141478FB7CB342954296BE34F9 -:100DEB00003078157CB5540F7E14000160053E145D -:100DFB001478FB7CB342B142B2BE34004078157C10 -:100E0B00B5540F7E14000160053E141478FB7CB3BF -:100E1B0042B342B4BE34005078157CB5540F7E14E7 -:100E2B00000160053E141478FB7CB342C942CABE74 -:100E3B0034006078157CB5540F7E14000160053EBC -:100E4B00141478FB7CB342CB42CCBE3400707819BF -:100E5B007CB5540F7E34000160053E341478FB7C66 -:100E6B00A77CBA42E17CBA42E222CA797A0F01220C -:100E7B007D7343BA801214357E1F001C7E0F012236 -:100E8B001209F97D126D007DD20B141209F77F71D7 -:100E9B001B7C7E1F0126BE182710681FE41203530C -:100EAB007E1440007E04461C12028C7F017F17E4E7 -:100EBB001203531201EC12039080047F170B1C7A60 -:100ECB001F012ABE7400405803020F9B7D570E541E -:100EDB000E540E540E541B563E547CAB7E14000124 -:100EEB0060053E141478FB7E34FEB57E24007E7EB6 -:100EFB001BB04CB37A1BB07D375E3400037CBA60F9 -:100F0B00053E341478FB7C677E14FEB67E04007EAF -:100F1B007E0B704C767A0B707D570E540E540E541C -:100F2B000E545E5400013E543E547E340001600565 -:100F3B003E341478FB7C677D170E140E140E140EC2 -:100F4B00140E141A021A007F202F202F222E440079 -:100F5B00FF2E28497E691200020B2A007E0B704C73 -:100F6B00767A0B707D1D0A127E34FEF07E24007E95 -:100F7B007A1B307D3D7C377E34FEF17A1B307480DA -:100F8B007E34FEFD7A1BB074017E34FEE0021071DC -:100F9B007D570E540E540E540E543E547CAB7CBFF6 -:100FAB0054017E3400017D2360053E241478FB7CC4 -:100FBB00BA60053E241478FB7E14FEB17E04007EDD -:100FCB007E0BB04CB57A0BB07D275E2400070E2448 -:100FDB007CBA60053E241478FB7C457E14FEB27E01 -:100FEB0004007E7E0B504C547A0B507D270E240E42 -:100FFB00240E240E245E2400013E243E247D575EE5 -:10100B005400013E542D5260053E341478FB7C672E -:10101B007D170E140E140E140E140E141A021A0051 -:10102B007F202F202F222E4400FF2E28497E69126D -:10103B0000020B2A007E0B704C767A0B707D1D0A1A -:10104B00127E34FED07E24007E7A1B307D3D7C37B1 -:10105B007E34FED17A1B3074807E34FEDD7A1BB079 -:10106B0074017E34FEC07E24007E7A1BB07D1F7D12 -:10107B00370E340E340E340E340E340E341A261A48 -:10108B00247F212F212F222E4400FF2E2849766901 -:10109B003200020B2A207A1B207D3F7D370E340E47 -:1010AB00340E340E340E340E341A261A247F212FAC -:1010BB00212F222E4400FF2E284976693200020B85 -:1010CB002A200B1C7A1B307E1F012A7C367D370EA3 -:1010DB00340E340E340E341A261A247F212F212F6E -:1010EB00222E4400FF2E284956693200020B2A207B -:1010FB007A1B307E2F012A7D370E340E340E340EC0 -:10110B00341A261A247F012F012F007F702EE40042 -:10111B00FF2E784956693700020B7A200B1C7A1B7D -:10112B00B02E0400FF2E08498E693000020B0A20F6 -:10113B007E1BB044607A1BB07D370E340E340E34F8 -:10114B000E341A261A247F012F012F002E0400FFC4 -:10115B002E08498E693000020B0A207E1BB0440812 -:10116B007A1BB0DA7922CA3B7A1F00EC7F306D33E1 -:10117B007A3700F69F007A0F00F87A0F00FC7E1F7B -:10118B0000EC4D23780B7E3400037A3700F6021403 -:10119B00117E3B700A375E34000768127E1F00F029 -:1011AB00791100021B1A007E3400060214237F0300 -:1011BB0012483D7F217A1F00FC7E0F00F069300042 -:1011CB00020B0A20BF1228267E1F00FC793000027A -:1011DB001B0A207E3400077A3700F67E1F00FC4D79 -:1011EB0023780B7E3BB054F77A3BB002142E7E3B38 -:1011FB00B044087A3BB06913000D6903000B6933E7 -:10120B00000969230007BF1038127E2F00F0691206 -:10121B0000020B2A00BF1050030212A46913000135 -:10122B001B1468201B14683D0B1568030214097E00 -:10123B002F00F0691200020B2A007D51CA599F1032 -:10124B007D1380447E1F00F0691100020B1A007F92 -:10125B00102F10CA3969330009692300079F107DCD -:10126B00133E1480237E1F00F0691100020B1A003D -:10127B007F102F102F11CA3969330009692300071A -:10128B009F107D133E143E14693300056923000340 -:10129B002D317E0F00EC0214046913000969030061 -:1012AB00077E2F00F0693200020B2A209F107A1F55 -:1012BB0000F8693300011B34686B1B34780302138D -:1012CB00960B3568030214097E0F00F87D31CA397D -:1012DB0069330015692300139F107D1369330005D3 -:1012EB00692300032D317E0F00EC1200A61BFD7E3F -:1012FB001F00F0695100020B1A407E0F00F87F129D -:10130B009F10CA3969330009692300079F127D5367 -:10131B0069330005692300032D357D517E0F00ECE9 -:10132B002D150214047E0F00F87D313E34CA396945 -:10133B00330015692300139F107D133E146933008E -:10134B0005692300032D317E0F00EC1200A61BFD57 -:10135B007E1F00F0695100020B1A407E0F00F87FD0 -:10136B00129F102F11CA3969330009692300079F97 -:10137B00127D533E5469330005692300032D357DDF -:10138B00513E547E0F00EC2D15806E7E0F00F87DC4 -:10139B00313E343E34CA3969330015692300139F3B -:1013AB00107D133E143E1469330005692300032D91 -:1013BB00317E0F00EC1200A61BFD7E1F00F0695161 -:1013CB0000020B1A407E0F00F87F129F102F112F77 -:1013DB0011CA3969330009692300079F127D533EF7 -:1013EB00543E5469330005692300032D357D513E6E -:1013FB00543E547E0F00EC2D151200A61BFD7E3BB8 -:10140B00B054F77A3BB07E3700F44D3378157E3B02 -:10141B00B0B40B0A7E3400027A3700F680057F03E6 -:10142B001233997E3700F6DA3B227D53BE5400749B -:10143B0040030216D57E340003AD532E54144C8951 -:10144B00540215A80215AF0215B60215BD0215C43C -:10145B000215CB0216D50216D50216D50216D502E9 -:10146B0016D50216D50216D50216D50216D50216BA -:10147B00D50215D20215D90215E00215E70215EEB9 -:10148B000215F50216D50216D50216D50216D5028F -:10149B0016D50216D50216D50216D50216D502168A -:1014AB00D50215FC02160202160802160E021614BD -:1014BB0002161A0216D50216D50216D50216D50239 -:1014CB0016D50216D50216D50216D50216D502165A -:1014DB00D502162002162602162C021632021638D8 -:1014EB0002163E02164402164A0216D50216D50201 -:1014FB0016D50216D50216D50216D50216D502162A -:10150B00D502165002165602165C0216600216D54C -:10151B000216D50216D50216D50216D50216D5021D -:10152B0016D50216D50216D50216D50216D50216F9 -:10153B00D502166602166C02167202167A0216D5C0 -:10154B000216D50216D50216D50216D50216D502ED -:10155B0016D50216D50216D50216D50216D50216C9 -:10156B00D502168402168E0216980216A20216D502 -:10157B000216D50216D50216D50216D50216D502BD -:10158B0016D50216D50216D50216D50216D5021699 -:10159B00D50216AC0216B60216C00216CA7E34006D -:1015AB001002167E7E34001102167E7E340020025D -:1015BB00167E7E34002102167E7E34006002167E7B -:1015CB007E34006102167E7E34001202167E7E345B -:1015DB00001302167E7E34002202167E7E34002318 -:1015EB0002167E7E34006202167E7E340063021683 -:1015FB007E7E340014807C7E34001580767E340031 -:10160B002480707E340025806A7E34006480647E82 -:10161B00340065805E7E34001680587E340017805F -:10162B00527E340026804C7E34002780467E340068 -:10163B006680407E340067803A7E34003480347E8E -:10164B00340033802E7E34002080287E34001780B7 -:10165B00226D33801E7E34007480187E340021800E -:10166B00127E340054800C7E2400017D3280587E23 -:10167B003400757E240001804E7E3400227E2400CF -:10168B000180447E3400337E240001803A7E340096 -:10169B00027E24000180307E3400767E240001809F -:1016AB00267E3400237E240001801C7E3400347E91 -:1016BB0024000180127E3400037E24000180087E0A -:1016CB003400777E240001020A7E22CA3B7A1F0077 -:1016DB00087F306D337A3700129F007A0F00147A2F -:1016EB000F00187E1F00084D23780B7E3400037A01 -:1016FB003700120218E87E3B700A375E340003682D -:10170B00127E1F000C791100021B1A007E3400069A -:10171B000218FA7F0312483D7F217A1F00187E0FB3 -:10172B00000C693000020B0A20BF1228237E1F0019 -:10173B0018793000021B0A207E3400077A3700121A -:10174B007E1F00184D2378087E3BB054F702193BDF -:10175B007E3BB044087A3BB06933000D6923000B24 -:10176B0069530015694300139F217A2F00147E7F64 -:10177B00000C691700020B7A00BF0238586953003E -:10178B00011B5468111B5468230B5568030218E0A6 -:10179B00CA197D13802E7E0F000C693000023E3477 -:1017AB00CA396933000D7D133E1480187E0F000C6F -:1017BB00693000023E343E34CA396933000D7D1363 -:1017CB003E143E1469330005692300032D317E0F4F -:1017DB0000080218DB693300011B3468511B347895 -:1017EB00030218870B3568030218E07E1F0014CA2A -:1017FB00396933000D7D1369330005692300032D0F -:10180B00317E0F00081200A61BFD7E1F000C691114 -:10181B0000020B1A007E1F00149F01CA197E0F00D5 -:10182B00082D1369330005692300030218DB7E1FA3 -:10183B0000142F11CA396933000D6923000B7D1376 -:10184B003E1469330005692300032D317E0F000818 -:10185B001200A61BFD7E1F000C691100020B1A0063 -:10186B007E1F00149F012F00CA193E347E0F000803 -:10187B002D13693300056923000380547E1F001468 -:10188B002F112F11CA396933000D6923000B7D13FA -:10189B003E143E1469330005692300032D317E0F7E -:1018AB0000081200A61BFD7E1F000C691100020B25 -:1018BB001A007E1F00149F012F002F00CA193E34FF -:1018CB003E347E0F00082D13693300056923000396 -:1018DB001200A61BFD7E3BB054F77A3BB07E37005F -:1018EB00104D33784E7E3BB0B40B0A7E3400027A37 -:1018FB00370012803E44027A3BB07F037E2F000CF0 -:10190B00693200020B2A20123B947E1F000C695196 -:10191B0000020B1A407F032E14000F693000020BDC -:10192B000A202F12793000021B0A207E3BB054FD97 -:10193B007A3BB07E370012DA3B22CA3B7A1F011486 -:10194B007F306D337A37011C9F117A1F011E7E1F6A -:10195B0001144D2378067E340003800F7E3BB00AC2 -:10196B003B5E340005680B7E3400047A37011C02A1 -:10197B001B9144047A3BB0693300116923000F7E3D -:10198B002F0118BF212803021B816933000969232A -:10199B00000769130015690300139F017A0F011EDD -:1019AB00BF203803021AD9691300011B1468551B99 -:1019BB00147803021A630B156803021B657E0F0173 -:1019CB001ECA1969130005690300032D137E1F013D -:1019DB00141200A61BFD7F037E1F011E123B4E7EC1 -:1019EB001F011E7E0F01189F01CA19691300096997 -:1019FB000300077D5169130005690300032D157D55 -:101A0B0053021ABF7E1F011E3E34CA3969330009C7 -:101A1B003E3469130005690300032D137E1F011467 -:101A2B001200A61BFD7F037E1F011E123B4E7E1F65 -:101A3B00011E7E0F01189F013E14CA19691300097C -:101A4B00690300077D513E546913000569030003C8 -:101A5B002D157D533E54805C7E1F011E3E343E345B -:101A6B00CA39693300093E343E34691300056903F2 -:101A7B0000032D137E1F01141200A61BFD7F037E96 -:101A8B001F011E123B4E7E1F011E7E0F01189F0170 -:101A9B003E143E14CA1969130009690300077D51EE -:101AAB003E543E5469130005690300032D157D5305 -:101ABB003E543E547E1F01142D351200A61BFD7F94 -:101ACB00037E2F011E7E1F01189F12021B626933BA -:101ADB0000011B34682D1B3468520B35787C7E1F3C -:101AEB000118CA396933000969130005690300033A -:101AFB002D137E1F01141200A61BFD7F037E1F01F9 -:101B0B001880547E1F01183E34CA39693300093ED0 -:101B1B003469130005690300032D137E1F01141292 -:101B2B0000A61BFD7F037E1F0118802B7E1F011853 -:101B3B003E343E34CA39693300093E343E346913AE -:101B4B000005690300032D137E1F01141200A61B51 -:101B5B00FD7F037E1F0118123B4E7E2F01187F0362 -:101B6B002E14000F693000020B0A209F12793000EF -:101B7B00021B0A2080087E3400057A37011C7E3B4D -:101B8B00B054FB7A3BB07E37011CDA3B227DD07D13 -:101B9B00F17DE27DC37E1F001C7E0F01601209F9EF -:101BAB0074027F011E141E0450034E20801478F41F -:101BBB006D337E2400019F101BC47803021C621B33 -:101BCB00C47803021CA31BC47803021CFA2EC400A6 -:101BDB00036803021D56BED40001781B439850E5E1 -:101BEB0089F5897CB7F58B0A56F58D438E40D28EDD -:101BFB00E47AB301798014BED40002780E43985076 -:101C0B007CB7F5D70A56F5D6438E1553A23F4DEE4A -:101C1B00780CBEF400017806E5A2F5A28031BEE493 -:101C2B000002780BBEF40003780543A2408020BE6F -:101C3B00E40004780BBEF40005780543A280800F06 -:101C4B00BEE400067809BEF40007780343A2C0E4A3 -:101C5B007AB30179D2AC22BED40002780E439A50EB -:101C6B007CB7F5D70A56F5D6438E1453BAFEBEE4AD -:101C7B000008780CBEF400097806E5BAF5BA800FB7 -:101C8B00BEE4000A7809BEF4000B780343BA0143A3 -:101C9B00AF01E47AB3017A22BED40002781043ACD0 -:101CAB00107CB7F5D70A56F5D6438E148014BED4E4 -:101CBB000003780E43AC507CB7F5D50A56F5D443E8 -:101CCB00DD0A53BAFDBEE4000C780CBEF4000D78AF -:101CDB0006E5BAF5BA800FBEE4000E7809BEF40033 -:101CEB000F780343BA0243AF08E47AB3017B22BEF9 -:101CFB00D40002781043FD107CB7F5D70A56F5D601 -:101D0B00438E148014BED40004780E43FD507CB770 -:101D1B00F5D30A56F5D243DDA053BAFBBEE400104F -:101D2B00780CBEF400117806E5BAF5BA8015BEE45E -:101D3B000012780FBEF40013780975CA0075C90438 -:101D4B0043BA0443AF10E47AB3017C227C3B7D237E -:101D5B005E3400F0782E4C3368147CB5540F7E241F -:101D6B00000160053E241478FB7CB54280227CB5D3 -:101D7B00540F7E24000160053E241478FB7CB5646F -:101D8B00FF528022BE340010782E4C3368147CB581 -:101D9B00540F7E24000160053E241478FB7CB54271 -:101DAB0090227CB5540F7E24000160053E241478EC -:101DBB00FB7CB564FF529022BE340020782E4C334E -:101DCB0068147CB5540F7E24000160053E24147802 -:101DDB00FB7CB542A0227CB5540F7E24000160052C -:101DEB003E241478FB7CB564FF52A022BE34003035 -:101DFB00782E4C3368147CB5540F7E24000160059B -:101E0B003E241478FB7CB542B0227CB5540F7E2463 -:101E1B00000160053E241478FB7CB564FF52B022B0 -:101E2B00BE340040782E4C3368147CB5540F7E249E -:101E3B00000160053E241478FB7CB542C0227CB5C2 -:101E4B00540F7E24000160053E241478FB7CB5649E -:101E5B00FF52C022BE340050782E4C3368147CB530 -:101E6B00540F7E24000160053E241478FB7CB542A0 -:101E7B00C8227CB5540F7E24000160053E241478E3 -:101E8B00FB7CB564FF52C822BE340060782E4C3305 -:101E9B0068147CB5540F7E24000160053E24147831 -:101EAB00FB7CB542E8227CB5540F7E240001600513 -:101EBB003E241478FB7CB564FF52E822BE340070DC -:101ECB00782D4C3368147CB5540F7E3400016005BB -:101EDB003E341478FB7CB742F8227CB5540F7E3429 -:101EEB00000160053E341478FB7CB764FF52F82286 -:101EFB007D235E3400F078237CB5540F7E440001C3 -:101F0B0060053E441478FBE5800A2B5D246807745A -:101F1B00017CAB02203B6CAA02203BBE3400107844 -:101F2B00237CB5540F7E44000160053E441478FBBE -:101F3B00E5900A2B5D24680774017CAB02203B6C97 -:101F4B00AA02203BBE34002078237CB5540F7E447C -:101F5B00000160053E441478FBE5A00A2B5D246864 -:101F6B000774017CAB02203B6CAA02203BBE340001 -:101F7B003078237CB5540F7E44000160053E441439 -:101F8B0078FBE5B00A2B5D24680774017CAB02205B -:101F9B003B6CAA02203BBE34004078217CB5540F29 -:101FAB007E44000160053E441478FBE5C00A2B5DBE -:101FBB0024680674017CAB80776CAA8073BE3400F6 -:101FCB005078217CB5540F7E44000160053E4414CB -:101FDB0078FBE5C80A2B5D24680674017CAB805046 -:101FEB006CAA804CBE34006078217CB5540F7E44C3 -:101FFB00000160053E441478FBE5E80A2B5D24687C -:10200B000674017CAB80296CAA8025BE34007078E5 -:10201B001F7CB5540F7E24000160053E241478FB11 -:10202B00E5F80A3B5D32680674017CAB80026CAA52 -:10203B007CBA227DF37E1F001C1209F97D126D0004 -:10204B007DE20B141209F77F611B6C7E1F018BBEA7 -:10205B001827106821E41203537E1440007E0446B7 -:10206B001C12028C7F017F16E41203531201EC1237 -:10207B0003907F5180047F560B5CBEF400404819DF -:10208B007D1E0A127E34FEF07E24007E7A1B307D8C -:10209B003E7C377E34FEF180177D1E0A127E34FEA5 -:1020AB00D07E24007E7A1B307D3E7C377E34FED181 -:1020BB007E24007E7A1B307D1D7D3F0E340E340E48 -:1020CB00340E340E340E341A261A247F212F212F6E -:1020DB00222E4400FF2E284976693200020B2A205B -:1020EB007A1B207D3D7D3F0E340E340E340E340EA4 -:1020FB00340E341A261A247F212F212F222E44002E -:10210B00FF2E284976693200020B2A200B1C7A1B02 -:10211B00307D1B7D3F0E340E340E340E341A261ACE -:10212B00247F212F212F222E4400FF2E2849566970 -:10213B003200020B2A207A1B207D3B7D3F0E340E92 -:10214B00340E340E341A261A247F212F212F222EDF -:10215B004400FF2E284956693200020B2A200B1C23 -:10216B007A1B302243BA807E3480007E2401517E5C -:10217B007F001CBF71781474047E34FE017E240032 -:10218B007E7A1BB07E14FDEB0222767E3436007E07 -:10219B0024016EBF71781474047E34FE017E24001A -:1021AB007E7A1BB07E14FDEC0222767E34FCC07E60 -:1021BB0024019BBF71781474047E34FE017E2400CD -:1021CB007E7A1BB07E14FDED0222767E34C3807EB8 -:1021DB002401C9BF71781374047E14FE017E0400C0 -:1021EB007E7A0BB07E54FDEE801D7E1440007E0483 -:1021FB0001FABF70782874047E14FE017E04007E01 -:10220B007A0BB07E54FDEF7E44007E7E2BB0F59FA3 -:10221B007E54FDF77E2BB0F5A6759D0280327E14A1 -:10222B000EC07E040216BF70782C74047E14FE015F -:10223B007E04007E7A0BB07E54FDF07E44007E7EE1 -:10224B002BB0F59F7E54FDF87E2BB0F5A6759D0344 -:10225B00E47A0BB0802E7A1F001C74047E34FE01CE -:10226B007E24007E7A1BB07E14FDEE7E04007E7E03 -:10227B000BB0F59F7E14FDF77E0BB0F5A6759D0296 -:10228B00E47A1BB07E1F001C22CA3B7A1F013A7FE7 -:10229B00306D337A3701407E1F013A4D23780B7E28 -:1022AB003400037A3701400223597E3B700A375EB4 -:1022BB0034000368077E34000602236B7F03124849 -:1022CB003DBE18000150077E34000702236B7E3B96 -:1022DB00B044087A3BB0693300011B3468241B34CB -:1022EB00683E0B3578606933000D7D13693300054B -:1022FB00692300032D317E1B307E1F013A7A1B3080 -:10230B0080446933000D7D133E1469330005692346 -:10231B0000032D310B1A107E1F013A1B1A10802659 -:10232B006933000D7D133E143E1469330005692398 -:10233B0000032D31691100020B1A007E1F013A793F -:10234B001100021B1A007E3BB054F77A3BB07E376C -:10235B00013E4D33783C7E3BB0B40B0A7E34000219 -:10236B007A370140802C44027A3BB07F037E180001 -:10237B0001123B947F032E14000F693000020B0AED -:10238B00200B1C793000021B0A207E3BB054FD7AD7 -:10239B003BB07E370140DA3B22CAF87EF301007C6A -:1023AB00BF5480B480167EB3010370307EB301023C -:1023BB00702A7E370106BE340002680302249C7C1F -:1023CB00BF540F14681B14683B0BB1680302249CA9 -:1023DB007EB3010570067EB30104601E02249C804F -:1023EB00197EB3010AB4040F7EB301056003022406 -:1023FB009C7EB30104600302249C7E34305A7E24FD -:10240B0000FF807D7EB3010AB404067EB301056034 -:10241B0002807E7E7301047CA75EA00F1B70683662 -:10242B002E707F68040B7078687E2400017CBA6084 -:10243B00053E241478FB7E7301126C665C754D337C -:10244B00680A7E34305C7E2400FF80357E34305A3F -:10245B007E2400FF802B7E2400017CBA60053E2485 -:10246B001478FB7E7301136C665C754D33680A7EC2 -:10247B0034305C7E2400FF80087E34305A7E24008A -:10248B00FF7A1F010E7E3400027A37010C80078021 -:10249B000012492780031248CADAF822CA3B7CDBB8 -:1024AB007D739F117A1F0193BED00A28037ED00A39 -:1024BB007E340034E4121D577E3400337401121D38 -:1024CB00577E340033121EFBBEB00168F46CCC7E19 -:1024DB003400347401121D577E1F01932F117A1F84 -:1024EB0001937E340033121EFBB4010B7E1F01934C -:1024FB004E70017A1F01937E340034E4121D570B8A -:10250B00C0BEC01878C96CCC80157E340034740101 -:10251B00121D5700007E340034E4121D570BC00A05 -:10252B003CBD3748E56CCC7404ACBC493500CA499A -:10253B002500C8593500C6592500C40BC0BEC009BB -:10254B0078E57E1F01937A1F00E89F117A1F019394 -:10255B006CCC80217404ACBC493500C6492500C441 -:10256B000A1D6D001209F97F017E1F01932F107A4E -:10257B001F01930BC0BCDC38DB7E1F0193DA3B22BF -:10258B00CA79740E7E70011248B774141248677CB6 -:10259B00FB30E60874147E70801248B77CBF20E0D5 -:1025AB000302265A7E1400407E0400017421123E61 -:1025BB00DA7AB301087E1F012E4D23780302264AD7 -:1025CB006CFF80737EB301091A3B7E0F012E2D31F8 -:1025DB007D207E1BA00A4F2E4400407A91827A8187 -:1025EB00837EEBE0BCEA7839047AB301097E730190 -:1025FB00091A372D317D207E1BB0703974146C771E -:10260B001248B775F40075DC00E47E34FE077E24B7 -:10261B00007E7A1BB07E34000A1247CC75C76080EF -:10262B00FE7E1F012E7E1B70BCE7780474018001B7 -:10263B00E47AB301090BF07E730108BC7F3885D2B5 -:10264B00001248A4500974146C771248B7C200DA10 -:10265B0079227F607DF30E340E340E340E340E343B -:10266B000E341A261A247F012F012F002E0400FF8F -:10267B002E084976693000020B0A200B1C7E1B705A -:10268B000AE7693000020B0A207E1B700A977D391E -:10269B007C676C777D934D9E6D88BE682710682391 -:1026AB007F16E41203537E1440007E04461C120274 -:1026BB008C7F017F14E41203531201EC1203907F01 -:1026CB005180047F540B5C7D1B7D3F0E340E340E0A -:1026DB00340E341A261A247F212F212F222E440048 -:1026EB00FF2E284956693200020B2A207A1B207DC7 -:1026FB003B7D3F0E340E340E340E341A261A247FD3 -:10270B00212F212F222E4400FF2E284956693200FB -:10271B00020B2A200B1C7A1B3022CA3B7F617F30B5 -:10272B006D337A3701B17E3BB00A3B5E34000568EE -:10273B000B7E3400047A3701B10227E644047A3B5E -:10274B00B0693300116923000FBE180001407C698A -:10275B003300011B3468211B3468340B35784B7DF7 -:10276B003D7C37693300097D03693300056923001C -:10277B00032D307A1B308032693300097D033E0410 -:10278B0069330005692300032D301B1AD0801B69A8 -:10279B003300097D133E143E146933000569230091 -:1027AB00032D3179D100021B1AC07F037E18000163 -:1027BB00123B4E7F032E14000F693000020B0A20D0 -:1027CB001B1C793000021B0A2080087E3400057A1E -:1027DB003701B17E3BB054FB7A3BB07E3701B1DAA7 -:1027EB003B22A9D7BA75EA0075E90043FF1075BA09 -:1027FB00807E3440007E2401FA7A1F001C123F8831 -:10280B0075E90043BA80E47E34FE017E24007E7AB3 -:10281B001BB07594007593007592007591007596B9 -:10282B000075950075B20075B10075B40075B300F5 -:10283B0075CA0075C90075CC0075CB0075E20075C3 -:10284B00E10075DE00758E00759800759A0075AC09 -:10285B000075FD0075A20075AF0075890043BA8045 -:10286B0053B2FC43B10374807E34FE077A1BB07EF7 -:10287B0034FE077E24007E7E1BB030E0F275DC0058 -:10288B0075F49012371443AF80D2AF7EB3010AB404 -:10289B0004F9020086CAD8CA797D739F117A1F0189 -:1028AB00977E340034E4121D577E340033740112CA -:1028BB001D577E340033121EFBB40104E402294A77 -:1028CB006CDD7E3400347401121D577E1F01972F6F -:1028DB00117A1F01977E340033121EFBB4010B7E5D -:1028EB001F01974E70017A1F01977E340034E4125A -:1028FB001D570BD0BED01878C96CDD80157E340007 -:10290B00347401121D5700007E340034E4121D573D -:10291B000BD00A3DBD3748E56CDD7404ACBD4935C1 -:10292B0000CA492500C8593500C6592500C40BD02B -:10293B00BED00978E57E1F01977A1F00E87401DA93 -:10294B0079DAD8227EB3010ABEB00268207EB301C9 -:10295B0000701A7EB3010370147EB30105700E7EF6 -:10296B00B3010470087E3701064D33680302492713 -:10297B007EB30102B4015F74047AB3010AE47AB343 -:10298B0001127AB30113740E7E70011248B77412E0 -:10299B007E70201248B774107E70081248B7740E00 -:1029AB007E70021248B774127E70201248B77410F2 -:1029BB007E70081248B7740E7E70011248B77412FD -:1029CB006C771248B774137E70081248B7740E6C8C -:1029DB00771248B7801074037AB3010A74FF7AB385 -:1029EB0001127AB301130200467EB3010AB4042428 -:1029FB007EB30100B4021D7EB301056003022A8D74 -:102A0B007EB30103707C7EB3010270767E370106C4 -:102A1B004D336802806C7E6301047C765E700F1B05 -:102A2B0060682F2E607F68040B6078567E2400014F -:102A3B007CB760053E241478FB7C656E60FF5E639B -:102A4B0001127A630112740E1248B774117E704032 -:102A5B0080247E2400017CB760053E241478FB7C27 -:102A6B00656E60FF5E6301137A630113740E124887 -:102A7B00B774147E70801248B7740E6C771248B717 -:102A8B0080030249270200467EB301005480BEB08A -:102A9B00806803022B1E7EB301031BB168191468F7 -:102AAB00280BB1786E7E3430057E2400FF7A1F012F -:102ABB000E7E34001280547E3430177E2400FF7A51 -:102ACB001F010E7E34004380427EB301021468194D -:102ADB001468280BB1783C7E3430017E2400FF7AD9 -:102AEB001F010E7E34000480227E34305E7E240073 -:102AFB00FF7A1F010E7E34000880107E342FE37E98 -:102B0B002400FF7A1F010E7E34001E7A37010C80E1 -:102B1B000580000249277E370106BE37010C5004A1 -:102B2B007A37010C0248CACA3B7A6301A57F307A17 -:102B3B007301A47AB301A31248DB60057401022B65 -:102B4B00CB7EB301A33EB01247FB600474018070CF -:102B5B001248EB6004740180677EB301A41247FB3B -:102B6B0060047401805A1248EB6004740180517E3A -:102B7B00B301A33EB044011247FB600474018040D3 -:102B8B001248EB60177401803780111200667A3B94 -:102B9B00B012479C6004740180260B747EB301A5B0 -:102BAB00147AB301A578E41200667A3BB012479C05 -:102BBB0060047401800A1248FB600474018001E414 -:102BCB00DA3B226D227EA001C203022C547EB3009D -:102BDB00210A4B09740022BE70206813BE703B683B -:102BEB000EBE700D6809BE700A6804A5BF000520F3 -:102BFB000366804CA5BF2D057EA0FF8043BE7030C1 -:102C0B004019BE70393814D2030AF77E14000AAD8E -:102C1B00127D212D2F9E2400308025A5BF2E1D80D7 -:102C2B00007EB30021047AB300210A3B09B30022D2 -:102C3B00BEB030400BBEB03928E780046D2280183F -:102C4B007EB30021047AB300217EB300210A3B0935 -:102C5B00B300226003022BD81A3AAD32227EB301A5 -:102C6B000AB404247EB30100B4021D7EB3010560D7 -:102C7B0003022CFB7EB3010370767EB301027070EE -:102C8B007E3701064D33680280667E6301047C76D5 -:102C9B005E700F1B60682C2E607F68040B60785091 -:102CAB007E2400017CB760053E241478FB7C654EC6 -:102CBB006301127A630112740E1248B774117E709D -:102CCB001080217E2400017CB760053E241478FB24 -:102CDB007C654E6301137A630113740E1248B7744B -:102CEB00147E70201248B7740E6C771248B78003AD -:102CFB00024927020046CA3B7A3701827F306D3387 -:102D0B007A370185807A74387AB301847E370182F1 -:102D1B00BE34003850047A7301841246897E7301E5 -:102D2B00840A572E540003900004F074CF900005D2 -:102D3B00F07E1701857E3400067E2400011B1A10DD -:102D4B007E7301840A37CA397F137E1400087E0410 -:102D5B0000011200A61BFD7EB30184240812419AC8 -:102D6B007E7301840A372D737E7301840A272E37F5 -:102D7B0001857A3701857E3701829D327A37018250 -:102D8B007E3701824D336803022D11DA3B22CA3B99 -:102D9B007A37017D7F306D337A370180807A7438D2 -:102DAB007AB3017F7E37017DBE34003850047A73CD -:102DBB00017F1246ED7E73017F0A572E540003905C -:102DCB000004F074AF900005F07E1701807E340094 -:102DDB00067E2400011B1A107E73017F0A37CA3945 -:102DEB007F137E1400087E0400011200A61BFD7EDB -:102DFB00B3017F240812419A7E73017F0A372D732A -:102E0B007E73017F0A272E3701807A3701807E3748 -:102E1B00017D9D327A37017D7E37017D4D3368030D -:102E2B00022DA9DA3B227DF37E3403E88D327E142A -:102E3B00000CAD136D007E1F001C120A4A7DE36E61 -:102E4B00E4FFFF0BE44DFF7813E589F5897D3E7CAC -:102E5B00B7F58A0A56F58CD28CD2A922BEF40001A2 -:102E6B007813E589F5897D3E7CB7F58B0A56F58D90 -:102E7B00D28ED2AB22BEF4000278117D3E7CB7F528 -:102E8B00D70A56F5D6438E1043AF0422BEF4000387 -:102E9B0078117D3E7CB7F5D50A56F5D443DD084352 -:102EAB00AF2022BEF4000478107D3E7CB7F5D30A28 -:102EBB0056F5D243DD8043AF4022CAF87D23E4129E -:102ECB0003587F017E34BC207E2445BE12028C7FCA -:102EDB00716D117E04404012030D50057EF003808E -:102EEB00336D117E04437F7F1712030D28057EF08F -:102EFB00FF80217F171203907CF77C47E412035D60 -:102F0B007F017F171201316D117E043F0012030DFB -:102F1B0040020BF07E08015374406C777E601012F8 -:102F2B003A797E08015374407E70FE7C6F123A79B9 -:102F3B007E08015374406C776C66123A797E0801F7 -:102F4B005374406C777E6080123A79DAF822CAF8B3 -:102F5B00740E6C771248B774111248677CFB30E221 -:102F6B000F74117C7F5E70FB1248B7E47AB3010BD0 -:102F7B007CBF30E40A74117C7F4E70801248B77EA0 -:102F8B00B3010B24FD68461468480BB278477CBF2D -:102F9B0030E0427E0801007420123EDA7E370106D3 -:102FAB0012409B7A3701067EB30100546024E0681F -:102FBB000D24E0680E2440780F1200CE80171244C7 -:102FCB009E801212494F800D12492780081234023D -:102FDB008003123907DAF8221E0353005400430012 -:102FEB002000550053004200200053006500720082 -:102FFB00690061006C000403090412010002020065 -:10300B000040BF3402FF000101020001090243002E -:10301B0002010080320904000001020201000524B4 -:10302B0000100105240100010424020205240600FE -:10303B0001070582034000FF09040100020A00009A -:10304B000007058102400000070501024000000057 -:10305B000001000803530054004300CA3B7AB3013C -:10306B00AF7F3069330002E4121D57E47AB301B02D -:10307B006933000412490B7E7301B00A477E54007A -:10308B00079D547E24000160053E241478FB7E735B -:10309B0001AF6C665C754D336808693300027401CF -:1030AB00800569330002E4121D570B3A307401128C -:1030BB001D576933000412490B0B3A30E4121D57AC -:1030CB007EB301B0047AB301B07E7301B0BE700859 -:1030DB00409E6933000412490BDA3B22CA7BCA6B50 -:1030EB00CA5BCA4BCA3BCA2BCA1BCA0BC0D0C08314 -:1030FB00C0827EF1FC74061248677CEB74021248A6 -:10310B00677CCB74041248677CDB7CBE30E1031216 -:10311B0000627CBE30E203123A317CBC30E0031219 -:10312B002F597CBC30E1031241F67CBC30E2031218 -:10313B0042507CBD30E10312258B7CBE30E0031284 -:10314B00005A7AF1FCD082D083D0D0DA0BDA1BDABA -:10315B002BDA3BDA4BDA5BDA6BDA7B32CA797A0F32 -:10316B00018F7CE77CFB1248DB60047401805F7C81 -:10317B00BF3EB01247FB6004740180521248EB60F3 -:10318B0004740180497CBE1247FB60047401803ECD -:10319B001248EB6004740180357CBF3EB0440112D1 -:1031AB0047FB6004740180261248EB6004740180B5 -:1031BB001D1200667E1F018F7A1BB012479C6004A4 -:1031CB007401800A1248FB600474018001E4DA790F -:1031DB0022CA3B7F30E47AB301AD6933000274013C -:1031EB00121D57E47AB301AE0B3A307401121D571E -:1031FB006933000412490B69330002121EFB601F76 -:10320B007E7301AE0A477E5400079D547E34000145 -:10321B0060053E341478FB4E7301AD7A7301AD0B30 -:10322B003A30E4121D576933000412490B7EB30187 -:10323B00AE047AB301AE7E7301AEBE700840A97EB8 -:10324B00B301ADDA3B22CA3B7A3700637F30A9C7A3 -:10325B00AF740E7E70011248B76D337A3700667EFD -:10326B00270063BE24004008057E704080027C75F9 -:10327B007A730065741112486720E0F87F032E17EC -:10328B0000667EB300657E70011248527E73006546 -:10329B000A277D322E3700667A3700667E37006349 -:1032AB009D327A3700637E730065BE704050B0A9C3 -:1032BB00D7AFDA3B227D127D23BE140001782E7C22 -:1032CB00B5540F7E34000160053E341478FB7C67E7 -:1032DB007D120E140E140E140E141A021A002E0464 -:1032EB00007E2E08FE107E0B704C7680324D1178CE -:1032FB00317CB5540F7E34000160053E341478FBED -:10330B007CB764FF7D120E140E140E140E141A02E9 -:10331B001A002E04007E2E08FE107E0B705C7B7A4A -:10332B000B7022CA69CAF87D627A3701AB7CFB7ECF -:10333B0008015374407C7F3E703E702E70067E27D2 -:10334B0001AB7C65123A797E08015374407C7F3E59 -:10335B00703E702E70077E2701AB0A247C65123AF3 -:10336B00797E08015374407C7F3E703E702E70084E -:10337B007C6D123A797E08015374407C7F3E703E1F -:10338B00702E70097C6C123A79DAF8DA6922CA3B32 -:10339B007F307E3BB044017A3BB09F1179330009FB -:1033AB00792300077933000D7923000B693300155E -:1033BB0069230013793300117923000F693300015E -:1033CB001B34680E1B3468120B35782269330015D9 -:1033DB008010693300153E348008693300153E3484 -:1033EB003E346913000569030003E412460BE47ACB -:1033FB003BB06D33DA3B22CAF8740E6C771248B7C8 -:10340B00741112486720E1537E37010CBE34004023 -:10341B0028057EF04080027CF77E0F010E7C7F74C6 -:10342B00201242F60A2F7E37010C9D327A37010C9F -:10343B000A157E1F010E2D317A1F010E7E37010CEE -:10344B004D33780F74117E700A1248B7E47AB301CA -:10345B000B800874117E70021248B7DAF822CA7B0F -:10346B00CA6BCA5BCA4BCA2BCA1BCA0BC0D0C08360 -:10347B00C082E59830E1085398FDE47AB30179E511 -:10348B009830E02A5398FE7EA199BEA07F78157ED6 -:10349B007301B57CB7047AB301B5BE7014280A75F5 -:1034AB00C7608005E47AB301B57CBA123FFAD082CB -:1034BB00D083D0D0DA0BDA1BDA2BDA4BDA5BDA6B90 -:1034CB00DA7B32CA3B7A73016D7AB3016C7F3012AF -:1034DB0043BA7F037EB3016C3EB01230667F03129A -:1034EB0041047F037EB3016D1230667F03124104EA -:1034FB007F031243BA7F037EB3016C3EB0440112CB -:10350B0030667F031241047F031231DC7E1F016E94 -:10351B007A1BB07F031240D07F031240317E1F0114 -:10352B006E7E1BB0DA3B227E340006121EFB701A35 -:10353B007E1F01740B1C7A1F0174BE182710401DCF -:10354B007E1827107A1F017480137E340007121E19 -:10355B00FB700A9F117A1F01747A3701727E1F016B -:10356B0074BE1807D040097E1400037A170172222B -:10357B00BE18006440127E370172BE340002680828 -:10358B007E3400017A370172227E3400377E2400AC -:10359B0001120A7E7E3400367E240001120A7E7EE2 -:1035AB003400357E240001120A7E7E340037E4128B -:1035BB001D577E340036E4121D577E340035E4125D -:1035CB001D577E3400067E2400011232C07E34006B -:1035DB00077E2400011232C07E3400066D22120ACF -:1035EB007E7E3400076D22020A7E7A1F014A7E34EA -:1035FB00014D7E2400007E1B307E34014E7E240064 -:10360B00007A1B307E34014C7E2400007E1B307E02 -:10361B0034014F7E2400007A1B307E34014B7E2414 -:10362B0000007E1B307E3401507E2400007A1B305C -:10363B007E34014A7E2400007E1B307E3401517E95 -:10364B002400007A1B307E1F014E22CAD8CA797C17 -:10365B00F67CE77CDB1248DB6004740180487CBDA0 -:10366B003EB01247FB60047401803B1248EB6004D0 -:10367B00740180327CBE1247FB60047401802712F8 -:10368B0048EB60047401801E7CBF1247FB6004741E -:10369B000180131248EB60047401800A1248FB602E -:1036AB000474018001E4DA79DAD8227CAB53BACF07 -:1036BB0043BA801B3468141B3468151B3468162EF0 -:1036CB003400037813E5BAF5BA800D43BA108008BD -:1036DB0043BA20800343BA307E14FE807E04007E02 -:1036EB007E0BB044407A0BB07E0BB044807A0BB0AB -:1036FB007CBA543F7E0B704C7B7A0B70E47E34FEAD -:10370B00827E24007E7A1BB022E46C771248B77459 -:10371B00017E70081248B774077E703F1248B77469 -:10372B00097E703F1248B7740B7E70071248B7744E -:10373B00016C771248B774027AB3010AE47AB301C9 -:10374B000B7AB301127AB301137E3401007E24008D -:10375B00C27A1F01597AB3015D7AB3015E74087A9C -:10376B00B3015FA9D7AF227CAB1B34681E1B346837 -:10377B002A1B3468362E340003783F7EB3017970F0 -:10378B00FA74017AB301797AA199227EB3017A7026 -:10379B00FA74017AB3017A7AA19B227EB3017B7012 -:1037AB00FA74017AB3017B7AA1AD227EB3017C70EE -:1037BB00FA74017AB3017C7AA1FE227EB30100B4C4 -:1037CB0080227EB30103701C7EB3010270167EB3A0 -:1037DB00010570107EB30104700A7E370106BE34FA -:1037EB00000168030249277EB3010AB4040A7E3440 -:1037FB00305C7E2400FF80087E34305A7E2400FF2C -:10380B007A1F010E7E3400017A37010C0248CA1B65 -:10381B0034681B1B3468221B34682B1B3468340B35 -:10382B0036783CC28C758C00758A00D28C22C28E85 -:10383B00758D00758B00D28E22538EEF75D6007569 -:10384B00D700438E102253DDF775D40075D5004396 -:10385B00DD082253DD7F75D20075D30043DD802256 -:10386B00CA3B7F707CF57CE67CD77CCBCA7B0A3667 -:10387B006D222F110A1F6D001209E6DA0B122D991A -:10388B001246ED7405900004F074A8900005F090BA -:10389B0000067AEBC09000077AEBD09000087AEB29 -:1038AB00E09000097AEBF0740A12419ADA3B227D20 -:1038BB00236D331B24681A1B2468201B2468261BCA -:1038CB0024682C0B267834E58C7C6B6C77E58A802E -:1038DB0026E58D7C6B6C77E58B801CE5D67C6B6C61 -:1038EB0077E5D78012E5D47C6B6C77E5D58008E55E -:1038FB00D27C6B6C77E5D30A2B4D3222740E6C772E -:10390B001248B7741112486730E03D7E0F010E74F8 -:10391B0020123EDA0A1B7E27010C9D217A27010C0F -:10392B007E1F010E2D317A1F010E7E37010C4D3398 -:10393B00780E74117E70481248B7E47AB3010B22EB -:10394B0074117E70400248B7221B34681C1B34680C -:10395B00241B34682A1B3468300B367835758A0083 -:10396B00758C00438904D28C22758B00758D0043B6 -:10397B008940D28E2275D70075D600438E182275DA -:10398B00D50075D40043DD0C2275D30075D20043EE -:10399B00DDC022CAF87EB3010070237EB30105702F -:1039AB001D7EB3010470177EB3010370117EF3010A -:1039BB0002BEF08050087E3701064D336805124970 -:1039CB00278017E47C7F1248B74CFF680474038090 -:1039DB000274027AB3010A120046DAF822CA797A23 -:1039EB000F00C01247837453900004F0E49000055D -:1039FB00F0900006F0900007F07E3400C07E2400AB -:103A0B00007A1F00947E1400087E0400017E1F00C4 -:103A1B00C01203CD7D732E7400087D570B541241D9 -:103A2B009A7D37DA7922E46C771248B774027AB34D -:103A3B00010AE47AB3010B740E7E70011248B7745D -:103A4B00117E70481248B7740E7E70021248B7741C -:103A5B00117E70481248B7740E7E70011248B7740D -:103A6B00147E70901248B7740E6C770248B7CA3B3D -:103A7B007A6301A87A7301A77AB301A67F30124348 -:103A8B00BA7F037EB301A63EB01230667F031241AC -:103A9B00047F037EB301A71230667F031241047FBC -:103AAB00037EB301A81230667F031241047F031219 -:103ABB004031DA3B22CAF87CFBBEF03B28037EF098 -:103ACB003B744C900000F07445900001F0744490EE -:103ADB000002F07428900003F09000047AEBF00AD7 -:103AEB003FCA397F107E1400057E0400011200A628 -:103AFB001BFD7CBF240512419ADAF822CAF87CFB25 -:103B0B00BEF03B28037EF03B744C900000F07445F4 -:103B1B00900001F07444900002F07440900003F0A8 -:103B2B009000047AEBF00A3FCA397F107E1400052F -:103B3B007E0400011200A61BFD7CBF240512419AD6 -:103B4B00DAF8227F617F702E140007693000020BB8 -:103B5B000A202F16801769570015694700137F0736 -:103B6B002E140007693000020B0A209F12793000D7 -:103B7B00021B0A206917000969070007693700153E -:103B8B0069270013BF1028CE227F617F702E14008F -:103B9B000B693000020B0A202F168017695700158E -:103BAB00694700137F072E14000B693000020B0AC4 -:103BBB00209F12793000021B0A206917000D69073C -:103BCB00000B6937001569270013BF1028CE22CAD6 -:103BDB0069CAF86D666CFF80167E340001124828A6 -:103BEB007D360B64BE34001E40057EF001800E7ED8 -:103BFB0034FE827E24007E7E1BB030E6DC7E34FEFB -:103C0B00827E24007E7E1BB054BF7A1BB07CBFDA51 -:103C1B00F8DA69227D437F707E1F014279370005F8 -:103C2B0079270003E47A7BB0794700019F1179373C -:103C3B000009792700077937000D7927000B7E1FC4 -:103C4B000146793700117927000F7E1F014679371E -:103C5B000015792700136D33227F717F607CAB6C6D -:103C6B007780310A170A2A2D217F062D127E0BB081 -:103C7B007E7B60BCB6680E7E0F019B7E0B609C67E3 -:103C8B007A0B60E4220BF47E0F019B7E0BB0047A5F -:103C9B000BB00B707E7BB070CA7401227EB30062D6 -:103CAB00603AE47EA300210A3A19B300227AB300EA -:103CBB00217E1800217A1F019B7E0800227E344A48 -:103CCB00327E2400FF123C647E144A297E0400FFDE -:103CDB00124223E47AB300217AB30062227EB3014D -:103CEB005270397E3400157A3701537E3400147AC2 -:103CFB003701557E34000A7A3701577E080153127B -:103D0B0042CD7E08015374406C776C66123A797E13 -:103D1B00340032122EC574017AB3015222CA3B7C95 -:103D2B00F57CE67CD77CCB7C7EAC7F122D011246DA -:103D3B00897405900004F074C8900005F09000069B -:103D4B007AEBC09000077AEBD09000087AEBE0900A -:103D5B0000097AEBF0740A12419ADA3B227584015E -:103D6B007E44041FE47A49B01B4478F97EF801B510 -:103D7B007E0400FF7E1449AE0B0A405D44681A694D -:103D8B002000020B0E0B44800A7E0BB07A29B00B7D -:103D9B00240B0C1B4478F280DF02427B7D127D23C7 -:103DAB004D23780CBE140000A9A1D1B39288D2A8E0 -:103DBB00BE24000178082E14FFFF928AD2AABE24DB -:103DCB0000027803438F10BE2400037803438F2037 -:103DDB00BE2400047803438F40227EB3010AB4044F -:103DEB001D7EB30100B481167EB3010370107EB348 -:103DFB000105700A7E370106BE34000168030249D3 -:103E0B00277E34305A7E2400FF7A1F010E7E340049 -:103E1B00017A37010C0248CACA797D737E340037A8 -:103E2B00BE740037780474018001E4121D577E3490 -:103E3B000036BE740036780474018001E4121D57FD -:103E4B007E340035BE740035780474018001E412B1 -:103E5B001D57DA7922CAF87CFB7A1F019F12478320 -:103E6B00744C900004F07401900005F09000067AF9 -:103E7B00EBF0E4900007F07E0F019F7E3400087E8C -:103E8B00240001791100021B1A00740C12419ADAFA -:103E9B00F822CA3B7F307A7301B47AB301B312496B -:103EAB00350B347F03122D991246ED7403900004E9 -:103EBB00F074A7900005F07EB301B3900006F07E7E -:103ECB00B301B4900007F0740812419ADA3B22CA8E -:103EDB003B7F30CAB80BFD74161248677AFBB039BA -:103EEB00BFFFFF800C29BFFFFE1248677A3BB00B68 -:103EFB00747EFBA07CBA147AFBB04CAA78E729BF7E -:103F0B00FFFF9EF80003DA3B22CA3B7D727CCB128B -:103F1B0046897406900004F074C6900005F0740195 -:103F2B00900006F09000077AEBC09000087AEB70D7 -:103F3B007E3400097E2400011B1A70740B12419A07 -:103F4B00DA3B22CA3B7D727CCB1246897406900009 -:103F5B0004F074C6900005F07402900006F0900017 -:103F6B00077AEBC09000087AEB707E3400097E2450 -:103F7B0000011B1A70740B12419ADA3B227E081750 -:103F8B00707E7F001C7F17120A4A7A3701877E14D6 -:103F9B00CFC07E04006A7F17120A4A7A3701897EE6 -:103FAB00341B007E2400B7BF71180A7E3701890BC2 -:103FBB00347A37018922CA3B7D727CCB12468974D5 -:103FCB0006900004F074C6900005F0E4900006F033 -:103FDB009000077AEBC09000087AEB707E340009F2 -:103FEB007E2400011B1A70740B12419ADA3B227C5F -:103FFB00AB7EB30062702E7E7300217CB7047AB364 -:10400B0000210A3719A300227EA300210A3A09B323 -:10401B000021B43B0674017AB30062BEA040400598 -:10402B00E47AB3002122CA3B7F3069330002E412E9 -:10403B001D576933000412490B0B3A307401121DE2 -:10404B00576933000412490B693300027401121DC6 -:10405B00576933000412490BDA3B22CA3B124783E0 -:10406B007443900004F0E4900005F0900006F0908B -:10407B000007F07E340008CA397F107E1400087EDA -:10408B000400011200A61BFD741012419ADA3B22A8 -:10409B007A3700637E3400647E2400007E1B307E02 -:1040AB003400657E2400007A1B307E3400637E244E -:1040BB0000007E1B307E3400667E2400007A1B30AD -:1040CB007E37006522CA3B7F3069330002740112D0 -:1040DB001D576933000412490B0B3A307401121D42 -:1040EB00576933000412490B0B3A30E4121D576920 -:1040FB0033000412490BDA3B22CA3B7F3069330091 -:10410B0002E4121D576933000412490B0B3A307449 -:10411B0001121D576933000412490B0B3A30E4129C -:10412B001D576933000412490BE4DA3B22CA3B7F6B -:10413B00311247837444900004F07401900005F031 -:10414B00E4900006F0900007F07E3400087E240017 -:10415B0001797100021B1A60740C12419ADA3B222E -:10416B0043BA8053BACF1B3468141B3468151B3405 -:10417B0068162E3400037813E5BAF5BA800D43BAEE -:10418B0010800843BA20800343BA3053BA7F22CA47 -:10419B00F87CFBA9C7AF740E7E70011248B774117F -:1041AB0012486720E0F87E1400007E0400017CBFFB -:1041BB007E7001124852D202A9D7AFDAF822CAB8E0 -:1041CB00CA1B7E34FD107E24007E7E1BB030E408BB -:1041DB007E1BB054EF7A1BB07E1BB030E5087E1B04 -:1041EB00B054DF7A1BB0DA1BDAB832CAF8740E7E21 -:1041FB0070011248B774111248677CFB30E50874E4 -:10420B00117E70401248B77CBF30E20774116C7797 -:10421B001248B7C202DAF822CA797A0F00907E34BC -:10422B0000907E2400007A1F00947E1400007E0410 -:10423B0000017E1F00901203CD7D737CB712419A53 -:10424B007D37DA7922CAF8740E7E70021248B77481 -:10425B00111248677CFB30E50874117E70401248E0 -:10426B00B77CBF30E20774116C771248B7DAF822CB -:10427B001227ED7E3403E81247E47E144A127E04C3 -:10428B0000FF1242237E3403E81247E47E1449FEFA -:10429B007E0400FF12422380ECCA3B7F307A370149 -:1042AB0066800C7E3701667E3BB00B741237727ED4 -:1042BB001F01687F011B0C7A0F01684D2378E4DA2C -:1042CB003B22CA3B7F300B3A306D22120A7E693398 -:1042DB0000026D22120A7E0B3A307401121D5769CF -:1042EB003300027401121D57DA3B22CA3BCA787F96 -:1042FB0030CAB8800B7EFBB07E3B700B741248B794 -:10430B0029AFFFFF7CBA1439BFFFFF4CAA78E61B1D -:10431B00FDDA3B227EB3010AB4041B7EB30100B469 -:10432B0001147EB30103700E7EB3010570087E3756 -:10433B0001064D336803024927020046CAF87CFB8D -:10434B001246ED7403900004F074A3900005F07412 -:10435B0002900006F09000077AEBF0740812419A75 -:10436B00DAF8227EB3010AB404097EB30100BEB0B1 -:10437B00A168030249277E1801597A1F010E7E3767 -:10438B0001067A37010C0248CA7EB3010AB404094C -:10439B007EB30100BEB02168030249277E18015984 -:1043AB007A1F010E7E3701067A37010C024919CAB2 -:1043BB003B7F3069330002E4121D5769330004124E -:1043CB00490B0B3A30E4121D576933000412490BA9 -:1043DB00DA3B227E3400336D22120A7E7E340034A7 -:1043EB006D22120A7E7E340034E4121D577E340097 -:1043FB00337401021D57CAF87CFB12468974029074 -:10440B000004F074C5900005F09000067AEBF07490 -:10441B000712419ADAF822CAF87CFB124689740219 -:10442B00900004F074C4900005F09000067AEBF055 -:10443B00740712419ADAF822CAF87CFB1246ED7423 -:10444B0002900004F074A5900005F09000067AEB42 -:10445B00F0740712419ADAF822CA3B7F307A37019F -:10446B00A9800C7E3701A97E3BB00B741237727E8C -:10447B003BB070EFDA3B227E370172BE340001781D -:10448B000D7E3400027A3701727E340001227E37B2 -:10449B000172227EB3010124DF680A14680A0BB192 -:1044AB00780902439402436E024812024927CAB8A4 -:1044BB00E59A30E108539AFDE47AB3017AE59A3034 -:1044CB00E003539AFEDAB832CAB8E5AC30E10853D0 -:1044DB00ACFDE47AB3017BE5AC30E00353ACFEDA20 -:1044EB00B832CAB8E5FD30E10853FDFDE47AB301FB -:1044FB007CE5FD30E00353FDFEDAB83212468974D9 -:10450B0002900004F074C7900005F074019000064F -:10451B00F0740702419A1246897402900004F074F9 -:10452B00C0900005F07401900006F0740702419AE8 -:10453B001246ED7402900004F074A3900005F07421 -:10454B0001900006F0740702419A1246ED74029036 -:10455B000004F074A4900005F07401900006F07450 -:10456B000702419A1246897402900004F074C290BB -:10457B000005F07401900006F0740702419A124690 -:10458B00ED7402900004F074A2900005F074029098 -:10459B000006F0740702419A1246897402900004D7 -:1045AB00F074C1900005F07401900006F0740702DE -:1045BB00419A1246ED7402900004F074A09000052D -:1045CB00F07401900006F0740702419A1246ED74E4 -:1045DB0002900004F074A2900005F07401900006A4 -:1045EB00F0740702419A1246ED7402900004F074C5 -:1045FB00A1900005F07401900006F0740702419A37 -:10460B00CAF87DF37CFB7F207F1080071BF47A2B8D -:10461B00F00B544DFF78F5DAF8227F017E370189D4 -:10462B007D231B247D3278F87F201B2C7F024D4588 -:10463B0078EA2274017E34FE827E24007E7A1BB0DF -:10464B0074057E34FE817A1BB0023BDACAF80A5B32 -:10465B002E540020123EDA7CFB74146C771248B790 -:10466B007CBFDAF8221246897402900004F074C001 -:10467B00900005F0E4900006F0740702419A744F25 -:10468B00900000F0744C900001F07445900002F023 -:10469B007480900003F0221246ED7402900004F037 -:1046AB0074A4900005F0E4900006F0740702419AA0 -:1046BB001246897402900004F074C7900005F0E470 -:1046CB00900006F0740702419A1246ED74029000B6 -:1046DB0004F074A0900005F0E4900006F07407025B -:1046EB00419A744C900000F07443900001F07444B4 -:1046FB00900002F07480900003F0221246ED7402D9 -:10470B00900004F074A3900005F0E4900006F074A0 -:10471B000702419A1246897402900004F074C29009 -:10472B000005F0E4900006F0740702419A124689E6 -:10473B007402900004F074C1900005F0E490000640 -:10474B00F0740702419A1246ED7402900004F07463 -:10475B00A1900005F0E4900006F0740702419A1254 -:10476B0046ED7402900004F074A2900005F0E49002 -:10477B000006F0740702419A7437900000F07453EE -:10478B00900001F07445900002F07447900003F024 -:10479B0022E47E34FE827E24007E7A1BB074057E7A -:1047AB0034FE817A1BB0023BDAA9C7AF740E7E7060 -:1047BB00011248B774146C771248B7C200A9D7AF6F -:1047CB0022CA797D7380077E3403E81200267D3779 -:1047DB001B744D3378F1DA79227D237E3701877D87 -:1047EB00131B147D3178F87D121B147D2178EC227C -:1047FB007E34FE867E24007E7A1BB074027E34FEED -:10480B00817A1BB0023BDA7EB3010AB404097EB392 -:10481B000100BEB0216803024927020046800A7ED0 -:10482B00A0097CBA147CAB78F97D231B344D22781C -:10483B00EE227F70691700116907000F69370015A9 -:10484B00692700139F10227CA77C7B0A5A2E5400E9 -:10485B00201242F674117E70010248B77CABE5FC66 -:10486B0020E7FB7CBA4480F5FCE5FC20E7FBE5EC9C -:10487B00221246ED7401900004F074A6900005F02E -:10488B00740602419A1246897401900004F074C3B5 -:10489B00900005F0740602419A7E1400407E0400DD -:1048AB00017E7301080A37123251D3227CA77C7B1D -:1048BB00E5FC20E7FB7CB7547FF5FC7AA1EC227476 -:1048CB00037AB3010B74117E70401248B7023402A5 -:1048DB0074017E34FE817E24007E7A1BB0023BDAAB -:1048EB0074037E34FE817E24007E7A1BB0023BDA99 -:1048FB0074067E34FE817E24007E7A1BB0023BDA86 -:10490B007D236D338003000B34BD2338F9227404EF -:10491B007AB3010B74117E70400248B774057AB3F9 -:10492B00010B74117E70600248B76D3380020B343B -:10493B007E0BB00B1470F7227EB301526005E47A44 -:10494B00B301522202492728302900007EFED500F0 -:10495B007EFED7007EFED9007EFEDB007EFEF500DC -:10496B007EFEF7007EFEF9007EFEFB007EFED2008F -:10497B007EFEF2007EFECC007EFECD007EFEEC00C5 -:10498B007EFEED007EFEC8007EFEC9007EFECA00E4 -:10499B007EFECB007EFEE8007EFEE9007EFEEA0096 -:1049AB007EFEEB0004001C01FA40000002018700B0 -:1049BB0000000201890000000101520000010021EA -:1049CB00000001006200000201720000000401748B -:1049DB00000000000004012E00FF4A3600040132E3 -:1049EB000000000000040136000000000001010976 -:1049FB0000000053797374656D2052756E6E696E8D -:104A0B00672E2E2E0D0A0053797374656D20496E37 -:104A1B0069742E2E2E0D0A004F4B210D0A00457284 -:104A2B00726F72210D0A00504F5700405354434987 -:044A3B0053502300B1 +:100A7B007F122200000000000000000000000000B8 +:100A8B00000000000000F800000000000000333000 +:100A9B0000000000100C06100C0600000000000007 +:100AAB0000000040C07840C0784000043F04043F81 +:100ABB00040400007088FC08300000001820FF219F +:100ACB001E0000F008F000E018000000211C031EBF +:100ADB00211E0000F00888700000001E212324193D +:100AEB0027211010160E000000000000000000006F +:100AFB00000000000000E0180402000000000718CE +:100B0B0020400000020418E00000000040201807FD +:100B1B00000000404080F0804040000202010F01C5 +:100B2B00020200000000F0000000000101011F01A3 +:100B3B00010100000000000000000080B070000008 +:100B4B000000000000000000000000000101010196 +:100B5B000101010000000000000000003030000027 +:100B6B0000000000000000806018040060180601FF +:100B7B0000000000E010080810E000000F1020201B +:100B8B00100F00001010F8000000000020203F2084 +:100B9B00200000007008080888700000302824220C +:100BAB0021300000300888884830000018202020B1 +:100BBB00110E000000C02010F800000007042424D0 +:100BCB003F240000F808888808080000192120201D +:100BDB00110E0000E0108888180000000F11202073 +:100BEB00110E0000380808C83808000000003F004C +:100BFB000000000070880808887000001C2221216A +:100C0B00221C0000E010080810E000000031222236 +:100C1B00110F00000000C0C00000000000003030C9 +:100C2B000000000000008000000000000080600059 +:100C3B0000000000008040201008000001020408A2 +:100C4B001020004040404040404000040404040495 +:100C5B00040400000810204080000000201008044D +:100C6B00020100007048080808F000000000303650 +:100C7B00010000C030C828E810E000071827242323 +:100C8B00140B000000C038E0000000203C230202DF +:100C9B0027382008F8888888700000203F20202003 +:100CAB00110E00C030080808083800071820202053 +:100CBB0010080008F808080810E000203F2020204A +:100CCB00100F0008F88888E8081000203F20202328 +:100CDB0020180008F88888E8081000203F2000033F +:100CEB00000000C030080808380000071820202238 +:100CFB001E020008F808000008F808203F21010137 +:100D0B00213F20000808F8080800000020203F20A1 +:100D1B0020000000000808F8080800C08080807FD1 +:100D2B0000000008F888C028180800203F20012682 +:100D3B0038200008F8080000000000203F20202089 +:100D4B0020300008F8F800F8F80800203F003F00BA +:100D5B003F200008F830C00008F808203F200007AB +:100D6B00183F00E01008080810E0000F10202020AA +:100D7B00100F0008F808080808F000203F210101B7 +:100D8B00010000E01008080810E0000F18242438B8 +:100D9B00504F0008F8888888887000203F20000397 +:100DAB000C302000708808080838000038202121FA +:100DBB00221C00180808F8080818000000203F2023 +:100DCB0000000008F808000008F808001F20202089 +:100DDB00201F000878880000C83808000007380E6C +:100DEB00010000F80800F80008F800033C070007B2 +:100DFB003C0300081868808068180820302C030317 +:100E0B002C30200838C800C83808000000203F20CC +:100E1B0000000010080808C83808002038262120D8 +:100E2B00201800000000FE020202000000007F40BC +:100E3B00404000000C30C000000000000000010624 +:100E4B0038C00000020202FE000000004040407F5C +:100E5B000000000000040202020400000000000079 +:100E6B0000000000000000000000008080808080F7 +:100E7B0080808000020204000000000000000000DF +:100E8B0000000000008080808000000019242222D6 +:100E9B00223F2008F8008080000000003F11202036 +:100EAB00110E000000008080800000000E11202039 +:100EBB00201100000000808088F800000E11202017 +:100ECB00103F200000808080800000001F22222223 +:100EDB00221300008080F0888888180020203F2093 +:100EEB002000000000808080808000006B94949430 +:100EFB0093600008F8008080800000203F210000F4 +:100F0B00203F2000809898000000000020203F2008 +:100F1B00200000000000809898000000C0808080B6 +:100F2B007F000008F8000080808000203F24022D05 +:100F3B00302000000808F8000000000020203F20AF +:100F4B002000008080808080808000203F20003F38 +:100F5B0020003F8080008080800000203F21000027 +:100F6B00203F200000808080800000001F20202078 +:100F7B00201F00808000808000000080FFA12020C7 +:100F8B00110E000000008080808000000E112020D8 +:100F9B00A0FF80808080008080800020203F212067 +:100FAB000001000000808080808000003324242416 +:100FBB00241900008080E0808000000000001F20CA +:100FCB002000008080000000808000001F20202077 +:100FDB00103F20808080000080808000010E300850 +:100FEB0006010080800080008080800F300C030C95 +:100FFB00300F0000808000808080000020312E0E9A +:10100B00312000808080000080808080818E70186D +:10101B0006010000808080808080000021302C221F +:10102B0021300000000000807C0202000000000064 +:10103B003F404000000000FF00000000000000FFE8 +:10104B000000000002027C800000000040403F00D6 +:10105B000000000006010102020404000000000071 +:10106B000000000000000000000000002F00000046 +:10107B00000700070000147F147F1400242A7F2A26 +:10108B0012006264081323003649552250000005F4 +:10109B0003000000001C224100000041221C000044 +:1010AB0014083E08140008083E0808000000A06061 +:1010BB00000008080808080000606000000020100D +:1010CB00080402003E5149453E0000427F400000AB +:1010DB004261514946002141454B31001814127FA2 +:1010EB0010002745454539003C4A494930000171FC +:1010FB0009050300364949493600064949291E00AE +:10110B00003636000000005636000000081422415D +:10111B0000001414141414000041221408000201DE +:10112B0051090600324959513E007C1211127C00C4 +:10113B007F49494936003E41414122007F414122CE +:10114B001C007F49494941007F09090901003E41C3 +:10115B0049497A007F0808087F0000417F41000061 +:10116B002040413F01007F08142241007F40404056 +:10117B0040007F020C027F007F0408107F003E417D +:10118B0041413E007F09090906003E4151215E00A5 +:10119B007F091929460046494949310001017F0160 +:1011AB0001003F4040403F001F2040201F003F40B8 +:1011BB0038403F00631408146300070870080700E9 +:1011CB00615149454300007F41410000552A552A92 +:1011DB0055000041417F0000040201020400404021 +:1011EB004040400000010204000020545454780099 +:1011FB007F48444438003844444420003844444831 +:10120B007F00385454541800087E0901020018A4BA +:10121B00A4A47C007F080404780000447D400000F7 +:10122B004080847D00007F102844000000417F40F7 +:10123B0000007C04180478007C080404780038440F +:10124B0044443800FC242424180018242418FC00DF +:10125B007C0804040800485454542000043F4440C4 +:10126B0020003C4040207C001C2040201C003C40C7 +:10127B0030403C004428102844001CA0A0A07C0057 +:10128B004464544C44141414141414CA3B7A1F00B1 +:10129B00807F309F117A1F00847E34007C7E240077 +:1012AB00007A1F00880217857E1F00807E1BB07A94 +:1012BB00B3008CB4250280030217650B347A1F0030 +:1012CB00807E1BB024DBBEB054400302177B7EA094 +:1012DB0003A49012E17302175602177B02177B02CD +:1012EB00177B02177B02177B02177B02177B0217F8 +:1012FB007B02177B02177B02177B02177B02177B84 +:10130B0002177B02177B02177B02177B02177B02EC +:10131B00177B02177B02177B02177B02177B0217C7 +:10132B007B02177B02177B02177B02177B02177B53 +:10133B0002177B02177B02177B02146F02177B02CB +:10134B00177B02177B02177B02177B02177B021797 +:10135B007B02177B02177B02177B02177B02177B23 +:10136B0002177B02177B02177B02177B02177B028C +:10137B00166102177B02177B02177B02177B021782 +:10138B007B02177B02177B02177B02177B02177BF3 +:10139B000213DD0213F602177B02146F02177B0296 +:1013AB00177B0213F602177B02177B02177B0217C0 +:1013BB007B02177B02160A02170502177B02177BAB +:1013CB000216C302177B0215B202177B02177B02B0 +:1013DB0016617E1F00881B367A1F00887E0F0088DF +:1013EB00693000027A73008D02176C7E1F00881B18 +:1013FB00367A1F00887E0F0088693000020B0A20A6 +:10140B007A1F00AE740A7AB300B37E08008D7401A4 +:10141B001246F17AB300B27E1F00AEBE1800005820 +:10142B00127EA02D7EB300B20A4B19A4008D047A54 +:10143B00B300B27E08008D7E7300B20A376D2212A4 +:10144B005A0D7E7300B20A37CA397E18008D7F039E +:10145B001200A61BFD7E7300B20A372D737E73003C +:10146B00B20216B67E1F00881B367A1F00887E0FCD +:10147B000088693000020B0A207A1F00AE740A7ACA +:10148B00B300B31203907E08008D74011246F17AFB +:10149B00B300B29F007E1F00AE12030D50127EA050 +:1014AB002D7EB300B20A4B19A4008D047AB300B29F +:1014BB007E08008D7E7300B20A376D22125A0D7EA4 +:1014CB007300B20A37CA397E18008D7F031200A64B +:1014DB001BFD7E7300B20A372D737E7300B20A17A1 +:1014EB006D007E1F00842F107A1F00847E7F00AE5C +:1014FB007F171203907CB41203537F017F171201E5 +:10150B00317E1424007E0449741201EC7A1F00AE64 +:10151B00BE1800006814740A7AB300B31203907EED +:10152B0008008D74011246F1801C74307AB300925E +:10153B007AB300917AB300907AB3008F7AB3008EAE +:10154B007AB3008D74067AB300B27E7030800F7E52 +:10155B00B300B20A2B1972008D047AB300B27EA3CA +:10156B0000B2BEA00640E8742E0A4A19B4008D7C66 +:10157B00B9047AB300B27E08008D7E7300B20A37CD +:10158B006D22125A0D7E7300B20A37CA397E1800CB +:10159B008D7F031200A61BFD7E7300B20A372D73DD +:1015AB007E7300B20216B67E1F00881B367A1F00B0 +:1015BB00887E0F0088693000020B0A207A1F00AE6C +:1015CB00740A7AB300B37E08008DE41246F17AB345 +:1015DB0000B27E08008D0A3B6D22125A0D7E7300FD +:1015EB00B20A37CA397E18008D7F031200A61BFD85 +:1015FB007E7300B20A372D737E7300B20216B67E6D +:10160B001F00881B367A1F00887E0F008869300008 +:10161B00020B0A207A1F00AE74087AB300B37E085F +:10162B00008DE41246F17AB300B27E08008D0A3BBE +:10163B006D22125A0D7E7300B20A37CA397E18001A +:10164B008D7F031200A61BFD7E7300B20A372D732C +:10165B007E7300B280557E1F00881B367A1F008870 +:10166B007E0F0088693000020B0A207A1F00AE74CF +:10167B00107AB300B37E08008DE41246F17AB30002 +:10168B00B27E08008D0A3B6D22125A0D7E7300B29A +:10169B000A37CA397E18008D7F031200A61BFD7E08 +:1016AB007300B20A372D737E7300B20A176D007E7A +:1016BB001F00842F100217777E1F00881B367A1F9E +:1016CB0000887E0F0088693000020B0A20801C7E88 +:1016DB001F008D7E1B707A3B700B747E1F00840B7A +:1016EB001C7A1F00847E1F008D0B347A1F008D7EA9 +:1016FB001F008D7E1BB070D780767E1F00881B3637 +:10170B007A1F00887E0F0088693000020B0A207A4E +:10171B001F00AE74107AB300B37E08008DE412463E +:10172B00F17E08008D7E180008125A0D7E340008D9 +:10173B00CA397E18008D7F031200A61BFD2E740084 +:10174B00087E1F00842E180008802174257A3BB078 +:10175B000B747E1F00840B1C80127E1F00807E1B6F +:10176B00707A3B700B747E1F00840B1C7A1F0084F5 +:10177B007E1F00800B347A1F00807E1F00807E1B33 +:10178B00B060030212B37E1F0084DA3B227D127D10 +:10179B00234D1168030218A97D325E3400F0781ACC +:1017AB007CB5540F7E04000160053E041478FB7C6D +:1017BB00A16EA0FF7CBA52935294BE340010781ADB +:1017CB007CB5540F7E04000160053E041478FB7C4D +:1017DB00A16EA0FF7CBA52915292BE340020781AAF +:1017EB007CB5540F7E04000160053E041478FB7C2D +:1017FB00A16EA0FF7CBA52955296BE340030781A77 +:10180B007CB5540F7E04000160053E041478FB7C0C +:10181B00A16EA0FF7CBA52B152B2BE340040781A0E +:10182B007CB5540F7E04000160053E041478FB7CEC +:10183B00A16EA0FF7CBA52B352B4BE340050781ADA +:10184B007CB5540F7E04000160053E041478FB7CCC +:10185B00A16EA0FF7CBA52C952CABE340060781A7E +:10186B007CB5540F7E04000160053E041478FB7CAC +:10187B00A16EA0FF7CBA52CB52CCBE340070680371 +:10188B00021B8E7CB5540F7E34000160053E341470 +:10189B0078FB7CA76EA0FF7CBA52E152E222BE1409 +:1018AB00000168030219B07D325E3400F078197CB8 +:1018BB00B5540F7E04000160053E041478FB7CB127 +:1018CB0064FF52937CB14294BE34001078197CB5FE +:1018DB00540F7E04000160053E041478FB7CB16458 +:1018EB00FF52917CB14292BE34002078197CB554E2 +:1018FB000F7E04000160053E041478FB7CB164FF8D +:10190B0052957CB14296BE34003078197CB5540F99 +:10191B007E04000160053E041478FB7CB164FF5229 +:10192B00B17CB142B2BE34004078197CB5540F7E05 +:10193B0004000160053E041478FB7CB164FF52B3D4 +:10194B007CB142B4BE34005078197CB5540F7E0480 +:10195B00000160053E041478FB7CB164FF52C97C26 +:10196B00B142CABE34006078197CB5540F7E0400B6 +:10197B000160053E041478FB7CB164FF52CB7CB153 +:10198B0042CCBE3400706803021B8E7CB5540F7EB4 +:10199B0034000160053E341478FB7CA77CBA64FFED +:1019AB0052E1021B8ABE1400026803021AA77D32A1 +:1019BB005E3400F078177CB5540F7E04000160058F +:1019CB003E041478FB7CB1429364FF5294BE340006 +:1019DB001078177CB5540F7E04000160053E04148B +:1019EB0078FB7CB1429164FF5292BE340020781791 +:1019FB007CB5540F7E04000160053E041478FB7C1B +:101A0B00B1429564FF5296BE34003078177CB554C2 +:101A1B000F7E04000160053E041478FB7CB142B1DB +:101A2B0064FF52B2BE34004078177CB5540F7E046D +:101A3B00000160053E041478FB7CB142B364FF5295 +:101A4B00B4BE34005078177CB5540F7E040001608F +:101A5B00053E041478FB7CB142C964FF52CABE3404 +:101A6B00006078177CB5540F7E04000160053E04BE +:101A7B001478FB7CB142CB64FF52CCBE340070684F +:101A8B0003021B8E7CB5540F7E34000160053E347F +:101A9B001478FB7CB742E164FF52E222BE140003D0 +:101AAB006803021B8E7D325E3400F078157CB554D2 +:101ABB000F7E14000160053E141478FB7CB3429337 +:101ACB004294BE34001078157CB5540F7E1400017F +:101ADB0060053E141478FB7CB342914292BE3400F5 +:101AEB002078157CB5540F7E14000160053E14144C +:101AFB0078FB7CB342954296BE34003078157CB5AA +:101B0B00540F7E14000160053E141478FB7CB34225 +:101B1B00B142B2BE34004078157CB5540F7E140030 +:101B2B000160053E141478FB7CB342B342B4BE345F +:101B3B00005078157CB5540F7E14000160053E14DF +:101B4B001478FB7CB342C942CABE34006078157C62 +:101B5B00B5540F7E14000160053E141478FB7CB362 +:101B6B0042CB42CCBE34007078197CB5540F7E3416 +:101B7B00000160053E341478FB7CA77CBA42E17C03 +:101B8B00BA42E222CA3B7AB302857F307A270283BC +:101B9B007D236D337A3702867A3702887A37028A49 +:101BAB00E47AB3028E7D125E1400077A17028C78EA +:101BBB000F7D121E141E141E147A17028A021EB6F3 +:101BCB001E241E241E240B247A27028A021EB6E42E +:101BDB007E3702861260D46D33021E9FE47AB30205 +:101BEB008E7E37028A1B34BE370286380E7E270262 +:101BFB008C4D226806BE240001402F7E0702863ED4 +:101C0B00043E043E047E170283AD107D212E270275 +:101C1B00887F032D127E0B50BE53028528067E242F +:101C2B00000180026D227A53028EBE370286380E77 +:101C3B007E27028C4D226806BE24000240397E07A7 +:101C4B0002863E043E043E047E170283AD107E27BF +:101C5B0002882E2702832D217F032D127E0B50BE6F +:101C6B0053028528067E24000180026D223E244EFD +:101C7B0053028E7A53028EBE370286380E7E2702AF +:101C8B008C4D226806BE240003403B7E0702863E35 +:101C9B00043E043E047E2702837D10AD123E242DAC +:101CAB00212E2702887F032D127E0B50BE530285F7 +:101CBB0028067E24000180026D223E243E244E53D2 +:101CCB00028E7A53028EBE370286380E7E27028C26 +:101CDB004D226806BE24000440437E4702863E44E4 +:101CEB003E443E447E0702837D54AD507E14000378 +:101CFB00AD107D212D252E2702887F032D127E0B03 +:101D0B0050BE53028528067E24000180026D223EC0 +:101D1B00243E243E244E53028E7A53028EBE37024B +:101D2B0086380E7E27028C4D226806BE24000540A5 +:101D3B00417E0702863E043E043E047E2702837DDD +:101D4B0010AD123E243E242D212E2702887F032D19 +:101D5B00127E0B50BE53028528067E2400018002A2 +:101D6B006D223E243E243E243E244E53028E7A5353 +:101D7B00028EBE370286380E7E27028C4D226806F5 +:101D8B00BE24000640477E4702863E443E443E4406 +:101D9B007E0702837D54AD507E140005AD107D216E +:101DAB002D252E2702887F032D127E0B50BE53024A +:101DBB008528067E24000180026D223E243E243EAF +:101DCB00243E243E244E53028E7A53028EBE37029B +:101DDB0086380E7E27028C4D226806BE24000740F3 +:101DEB00497E4702863E443E443E447E0702837D45 +:101DFB0054AD507E140006AD107D212D252E2702EB +:101E0B00887F032D127E0B50BE53028528067E243D +:101E1B00000180026D223E243E243E243E243E24BB +:101E2B003E244E53028E7A53028EBE370286380EF4 +:101E3B007E37028C4D336806BE34000840497E075E +:101E4B0002863E043E043E047E2702837D10AD12C3 +:101E5B007E340007AD322D312E3702882D377D268B +:101E6B007E1B70BE73028528067E34000180026DD6 +:101E7B00333E343E343E343E343E343E343E344EB8 +:101E8B0073028E7A73028E7EB3028E12665E7E377B +:101E9B0002880B347A3702887E370283BE3702887A +:101EAB002803021BE77E3702860B347A3702867EC5 +:101EBB0037028ABE3702862803021BDADA3B22CAB4 +:101ECB00797A0F00297D7343BA8012248A7E1F0012 +:101EDB001C7E0F00291209F97D126D007DD20B14A7 +:101EEB001209F77F711B7C7E1F002DBE182710680F +:101EFB001FE41203537E1440007E04461C12028C16 +:101F0B007F017F17E41203531201EC12039080043C +:101F1B007F170B1C7A1F0031BE7400405803021F41 +:101F2B00F07D570E540E540E540E541B563E547CDB +:101F3B00AB7E14000160053E141478FB7E34FEB5B5 +:101F4B007E24007E7E1BB04CB37A1BB07D375E3493 +:101F5B0000037CBA60053E341478FB7C677E14FE6C +:101F6B00B67E04007E7E0B704C767A0B707D570E1E +:101F7B00540E540E540E545E5400013E543E547E87 +:101F8B0034000160053E341478FB7C677D170E141A +:101F9B000E140E140E140E141A021A007F202F208A +:101FAB002F222E4400FF2E286757691200020B2A9E +:101FBB00007E0B704C767A0B707D1D0A127E34FE00 +:101FCB00F07E24007E7A1B307D3D7C377E34FEF123 +:101FDB007A1B3074807E34FEFD7A1BB074017E3424 +:101FEB00FEE00220C67D570E540E540E540E543E86 +:101FFB00547CAB7CBF54017E3400017D2360053ED5 +:10200B00241478FB7CBA60053E241478FB7E14FE06 +:10201B00B17E04007E7E0BB04CB57A0BB07D275E93 +:10202B002400070E247CBA60053E241478FB7C4503 +:10203B007E14FEB27E04007E7E0B504C547A0B5005 +:10204B007D270E240E240E240E245E2400013E2434 +:10205B003E247D575E5400013E542D5260053E34A4 +:10206B001478FB7C677D170E140E140E140E140ED1 +:10207B00141A021A007F202F202F222E4400FF2E2D +:10208B00286757691200020B2A007E0B704C767A78 +:10209B000B707D1D0A127E34FED07E24007E7A1BCF +:1020AB00307D3D7C377E34FED17A1B3074807E349C +:1020BB00FEDD7A1BB074017E34FEC07E24007E7A76 +:1020CB001BB07D1F7D370E340E340E340E340E34A0 +:1020DB000E341A261A247F212F212F222E4400FF83 +:1020EB002E28674F693200020B2A207A1B207D3F76 +:1020FB007D370E340E340E340E340E340E341A2655 +:10210B001A247F212F212F222E4400FF2E28674FC8 +:10211B00693200020B2A200B1C7A1B307E1F003108 +:10212B007C367D370E340E340E340E341A261A24B8 +:10213B007F212F212F222E4400FF2E28672F69325B +:10214B0000020B2A207A1B307E2F00317D370E3494 +:10215B000E340E340E341A261A247F012F012F0051 +:10216B007F702EE400FF2E78672F693700020B7A01 +:10217B00200B1C7A1BB02E0400FF2E0867676930FA +:10218B0000020B0A207E1BB044607A1BB07D370E19 +:10219B00340E340E340E341A261A247F012F012FDD +:1021AB00002E0400FF2E086767693000020B0A201F +:1021BB007E1BB044087A1BB0DA7922CA3B7A1F0225 +:1021CB00287F306D337A3702329F007A0F02347AD0 +:1021DB000F02387E1F02284D23780B7E3400037AC2 +:1021EB003702320224667E3B700A375E3400076882 +:1021FB00127E1F022C791100021B1A007E3400067E +:10220B000224787F031265707F217A1F02387E0FBC +:10221B00022C693000020B0A20BF1228267E1F02F7 +:10222B0038793000021B0A207E3400077A370232DD +:10223B007E1F02384D23780B7E3BB054F77A3BB0B0 +:10224B000224837E3BB044087A3BB06913000D69CE +:10225B0003000B6933000969230007BF1038127E96 +:10226B002F022C691200020B2A00BF10500302220E +:10227B00F9691300011B1468201B14683D0B1568CA +:10228B000302245E7E2F022C691200020B2A007DB2 +:10229B0051CA599F107D1380447E1F022C69110077 +:1022AB00020B1A007F102F10CA39693300096923FA +:1022BB0000079F107D133E1480237E1F022C691193 +:1022CB0000020B1A007F102F102F11CA396933002F +:1022DB0009692300079F107D133E143E14693300D8 +:1022EB0005692300032D317E0F022802245969133F +:1022FB000009690300077E2F022C693200020B2AAA +:10230B00209F107A1F0234693300011B34686B1B4A +:10231B003478030223EB0B35680302245E7E0F0235 +:10232B00347D31CA3969330015692300139F107D41 +:10233B001369330005692300032D317E0F02281228 +:10234B0000A61BFD7E1F022C695100020B1A407E5A +:10235B000F02347F129F10CA3969330009692300B9 +:10236B00079F127D5369330005692300032D357DCB +:10237B00517E0F02282D150224597E0F02347D3118 +:10238B003E34CA3969330015692300139F107D133E +:10239B003E1469330005692300032D317E0F02289B +:1023AB001200A61BFD7E1F022C695100020B1A4066 +:1023BB007E0F02347F129F102F11CA396933000927 +:1023CB00692300079F127D533E546933000569232F +:1023DB0000032D357D513E547E0F02282D15806E46 +:1023EB007E0F02347D313E343E34CA3969330015D9 +:1023FB00692300139F107D133E143E1469330005AF +:10240B00692300032D317E0F02281200A61BFD7ECF +:10241B001F022C695100020B1A407E0F02347F12EF +:10242B009F102F112F11CA39693300096923000737 +:10243B009F127D533E543E546933000569230003BC +:10244B002D357D513E543E547E0F02282D15120022 +:10245B00A61BFD7E3BB054F77A3BB07E3702304D66 +:10246B003378157E3BB0B40B0A7E3400027A370208 +:10247B003280057F03124E477E370232DA3B227DD4 +:10248B0053BE540074400302272A7E340003AD531D +:10249B002E5424A189540225FD02260402260B0288 +:1024AB00261202261902262002272A02272A022791 +:1024BB002A02272A02272A02272A02272A02272A48 +:1024CB0002272A02272A02262702262E0226350257 +:1024DB00263C02264302264A02272A02272A0227E3 +:1024EB002A02272A02272A02272A02272A02272A18 +:1024FB0002272A02272A02265102265702265D02AC +:10250B00266302266902266F02272A02272A022740 +:10251B002A02272A02272A02272A02272A02272AE7 +:10252B0002272A02272A02267502267B022681020F +:10253B00268702268D02269302269902269F0227C2 +:10254B002A02272A02272A02272A02272A02272AB7 +:10255B0002272A02272A0226A50226AB0226B1024F +:10256B0026B502272A02272A02272A02272A022710 +:10257B002A02272A02272A02272A02272A02272A87 +:10258B0002272A02272A0226BB0226C10226C702DD +:10259B0026CF02272A02272A02272A02272A0227C6 +:1025AB002A02272A02272A02272A02272A02272A57 +:1025BB0002272A02272A0226D90226E30226ED0247 +:1025CB0026F702272A02272A02272A02272A02276E +:1025DB002A02272A02272A02272A02272A02272A27 +:1025EB0002272A02272A02270102270B022715029C +:1025FB00271F7E3400100226D37E3400110226D30F +:10260B007E3400200226D37E3400210226D37E3472 +:10261B0000600226D37E3400610226D37E34001282 +:10262B000226D37E3400130226D37E3400220226E8 +:10263B00D37E3400230226D37E3400620226D37E5F +:10264B003400630226D37E340014807C7E34001564 +:10265B0080767E34002480707E340025806A7E3440 +:10266B00006480647E340065805E7E340016805882 +:10267B007E34001780527E340026804C7E34002737 +:10268B0080467E34006680407E340067803A7E341C +:10269B00003480347E340033802E7E34002080283A +:1026AB007E34001780226D33801E7E3400748018B8 +:1026BB007E34002180127E340054800C7E24000175 +:1026CB007D3280587E3400757E240001804E7E342E +:1026DB0000227E24000180447E3400337E240001DE +:1026EB00803A7E3400027E24000180307E340076F6 +:1026FB007E24000180267E3400237E240001801C72 +:10270B007E3400347E24000180127E3400037E244C +:10271B00000180087E3400777E2400010217982286 +:10272B00CA3B7F307EB300B470030229AA7E3BB054 +:10273B007E70027F032E1400337E60021240DE7E19 +:10274B003BB07E70047F032E1400377E6002124074 +:10275B00DE7E3BB07E70037F032E1400357E60025D +:10276B001240DE7E3BB07E70017F032E1400317E63 +:10277B0060021240DE29630033295300347C467C0F +:10278B00B61203587E14D70A7E043AA31201EC79D1 +:10279B0033001B7923001929630037295300387C38 +:1027AB00467CB61203586913001569030013120116 +:1027BB00EC7E14126F7E043A831201EC7933001F06 +:1027CB007923001D29630035295300367C467CB6DE +:1027DB0012035869130015690300131201EC7E14E0 +:1027EB00CCCD7E043CCC1201EC7933002379230051 +:1027FB002129630031295300327C467CB6120358E1 +:10280B007E14D70A7E043B231201EC79330027791F +:10281B002300259F006933001B6923001912030D48 +:10282B00280A6933001B6923001980029F11793331 +:10283B00001B792300199F006933001F6923001DBA +:10284B0012030D280A6933001F6923001D80029FA4 +:10285B00117933001F7923001D693300236923008D +:10286B00217E14126F7E043C8312030D282A9F775E +:10287B006933001F6923001D9F0012030D2819697E +:10288B0033001B692300197F0712030D280A6933D4 +:10289B0000236923002180029F11793300237923C0 +:1028AB0000219F00693300276923002512030D289F +:1028BB000A693300276923002580029F11793300B1 +:1028CB0027792300256C777404ACB72D577D4669A7 +:1028DB0012003F6902003D7912003B790200397406 +:1028EB0004ACB72D576912006769020065791200B5 +:1028FB0063790200610B70A5BF09CC6933001B69BA +:10290B002300197933005F7923005D6933001F6958 +:10291B0023001D79330087792300856913008369B0 +:10292B000300816933005B692300591201EC7F714D +:10293B0069130087690300856933005F6923005DB4 +:10294B001201EC7F071201347E14126F7E043A03DE +:10295B001201EC7F732EF40029691700020B7A0029 +:10296B00120134793700021B7A2069130083690343 +:10297B00008169330087692300851201347E1412AC +:10298B006F7E043A031201EC7F732EF4002D69174E +:10299B0000020B7A00120134793700021B7A20DA1D +:1029AB003B22CA3B7A1F00087F306D337A37001207 +:1029BB009F007A0F00147A0F00187E1F00084D231A +:1029CB00780B7E3400037A370012022BBF7E3B70EC +:1029DB000A375E34000368127E1F000C7911000267 +:1029EB001B1A007E340006022BD17F031265707F09 +:1029FB00217A1F00187E0F000C693000020B0A2091 +:102A0B00BF1228237E1F0018793000021B0A207E7C +:102A1B003400077A3700127E1F00184D2378087E8A +:102A2B003BB054F7022C127E3BB044087A3BB069A2 +:102A3B0033000D6923000B69530015694300139F85 +:102A4B00217A2F00147E7F000C691700020B7A008D +:102A5B00BF023858695300011B5468111B5468237B +:102A6B000B556803022BB7CA197D13802E7E0F00FE +:102A7B000C693000023E34CA396933000D7D133EB8 +:102A8B001480187E0F000C693000023E343E34CAAD +:102A9B00396933000D7D133E143E1469330005690B +:102AAB002300032D317E0F0008022BB26933000186 +:102ABB001B3468511B347803022B5E0B3568030201 +:102ACB002BB77E1F0014CA396933000D7D13693390 +:102ADB000005692300032D317E0F00081200A61B91 +:102AEB00FD7E1F000C691100020B1A007E1F0014E3 +:102AFB009F01CA197E0F00082D1369330005692346 +:102B0B000003022BB27E1F00142F11CA3969330048 +:102B1B000D6923000B7D133E1469330005692300F7 +:102B2B00032D317E0F00081200A61BFD7E1F000C2B +:102B3B00691100020B1A007E1F00149F012F00CA9F +:102B4B00193E347E0F00082D1369330005692300ED +:102B5B000380547E1F00142F112F11CA39693300C3 +:102B6B000D6923000B7D133E143E14693300056978 +:102B7B002300032D317E0F00081200A61BFD7E1FC4 +:102B8B00000C691100020B1A007E1F00149F012F0D +:102B9B00002F00CA193E343E347E0F00082D1369F6 +:102BAB00330005692300031200A61BFD7E3BB054C6 +:102BBB00F77A3BB07E3700104D33784E7E3BB0B486 +:102BCB000B0A7E3400027A370012803E44027A3BB5 +:102BDB00B07F037E2F000C693200020B2A201257A4 +:102BEB00FC7E1F000C695100020B1A407F032E1450 +:102BFB00000F693000020B0A202F12793000021BE4 +:102C0B000A207E3BB054FD7A3BB07E370012DA3B94 +:102C1B0022CA3B7A1F02507F306D337A3702589F9E +:102C2B00117A1F025A7E1F02504D2378067E340004 +:102C3B0003800F7E3BB00A3B5E340005680B7E348D +:102C4B0000047A370258022E6844047A3BB0693389 +:102C5B0000116923000F7E2F0254BF212803022E7F +:102C6B0058693300096923000769130015690300CC +:102C7B00139F017A0F025ABF203803022DB069133C +:102C8B0000011B1468551B147803022D3A0B1568B1 +:102C9B0003022E3C7E0F025ACA1969130005690301 +:102CAB0000032D137E1F02501200A61BFD7F037E17 +:102CBB001F025A1257B67E1F025A7E0F02549F01F3 +:102CCB00CA1969130009690300077D5169130005CF +:102CDB00690300032D157D53022D967E1F025A3E6C +:102CEB0034CA39693300093E34691300056903009E +:102CFB00032D137E1F02501200A61BFD7F037E1FA8 +:102D0B00025A1257B67E1F025A7E0F02549F013E83 +:102D1B0014CA1969130009690300077D513E5469F0 +:102D2B00130005690300032D157D533E54805C7E13 +:102D3B001F025A3E343E34CA39693300093E343ED1 +:102D4B003469130005690300032D137E1F02501213 +:102D5B0000A61BFD7F037E1F025A1257B67E1F0271 +:102D6B005A7E0F02549F013E143E14CA1969130078 +:102D7B0009690300077D513E543E546913000569F0 +:102D8B000300032D157D533E543E547E1F02502DE0 +:102D9B00351200A61BFD7F037E2F025A7E1F0254A5 +:102DAB009F12022E39693300011B34682D1B3468C6 +:102DBB00520B35787C7E1F0254CA3969330009697E +:102DCB00130005690300032D137E1F02501200A68A +:102DDB001BFD7F037E1F025480547E1F02543E3422 +:102DEB00CA39693300093E346913000569030003CE +:102DFB002D137E1F02501200A61BFD7F037E1F02A8 +:102E0B0054802B7E1F02543E343E34CA3969330042 +:102E1B00093E343E3469130005690300032D137E0C +:102E2B001F02501200A61BFD7F037E1F0254125778 +:102E3B00B67E2F02547F032E14000F693000020B55 +:102E4B000A209F12793000021B0A2080087E340072 +:102E5B00057A3702587E3BB054FB7A3BB07E370283 +:102E6B0058DA3B227DD07DF17DE27DC37E1F001CB5 +:102E7B007E0F02D41209F974027F011E141E045036 +:102E8B00034E20801478F46D337E2400019F101BB9 +:102E9B00C47803022F391BC47803022F7A1BC47822 +:102EAB0003022FD12EC40003680302302DBED400C1 +:102EBB0001781B439850E589F5897CB7F58B0A5649 +:102ECB00F58D438E40D28EE47AB302ED8014BED4DE +:102EDB000002780E4398507CB7F5D70A56F5D643C7 +:102EEB008E1553A23F4DEE780CBEF400017806E52B +:102EFB00A2F5A28031BEE40002780BBEF400037889 +:102F0B000543A2408020BEE40004780BBEF400050C +:102F1B00780543A280800FBEE400067809BEF4005A +:102F2B0007780343A2C0E47AB302EDD2AC22BED43D +:102F3B000002780E439A507CB7F5D70A56F5D64364 +:102F4B008E1453BAFEBEE40008780CBEF400097868 +:102F5B0006E5BAF5BA800FBEE4000A7809BEF400A4 +:102F6B000B780343BA0143AF01E47AB302EE22BEFE +:102F7B00D40002781043AC107CB7F5D70A56F5D6BF +:102F8B00438E148014BED40003780E43AC507CB730 +:102F9B00F5D50A56F5D443DD0A53BAFDBEE4000C51 +:102FAB00780CBEF4000D7806E5BAF5BA800FBEE4D6 +:102FBB00000E7809BEF4000F780343BA0243AF0842 +:102FCB00E47AB302EF22BED40002781043FD107CEA +:102FDB00B7F5D70A56F5D6438E148014BED4000429 +:102FEB00780E43FD507CB7F5D30A56F5D243DDA0DE +:102FFB0053BAFBBEE40010780CBEF400117806E562 +:10300B00BAF5BA8015BEE40012780FBEF40013783F +:10301B000975CA0075C90443BA0443AF10E47AB307 +:10302B0002F0227C3B7D235E3400F0782E4C33681B +:10303B00147CB5540F7E24000160053E241478FBEC +:10304B007CB54280227CB5540F7E24000160053E86 +:10305B00241478FB7CB564FF528022BE34001078B8 +:10306B002E4C3368147CB5540F7E24000160053E52 +:10307B00241478FB7CB54290227CB5540F7E24003F +:10308B000160053E241478FB7CB564FF529022BE90 +:10309B00340020782E4C3368147CB5540F7E2400FA +:1030AB000160053E241478FB7CB542A0227CB5540C +:1030BB000F7E24000160053E241478FB7CB564FF71 +:1030CB0052A022BE340030782E4C3368147CB55499 +:1030DB000F7E24000160053E241478FB7CB542B0C2 +:1030EB00227CB5540F7E24000160053E241478FB2E +:1030FB007CB564FF52B022BE340040782E4C33684E +:10310B00147CB5540F7E24000160053E241478FB1B +:10311B007CB542C0227CB5540F7E24000160053E75 +:10312B00241478FB7CB564FF52C022BE3400507867 +:10313B002E4C3368147CB5540F7E24000160053E81 +:10314B00241478FB7CB542C8227CB5540F7E240036 +:10315B000160053E241478FB7CB564FF52C822BE87 +:10316B00340060782E4C3368147CB5540F7E2400E9 +:10317B000160053E241478FB7CB542E8227CB554F3 +:10318B000F7E24000160053E241478FB7CB564FFA0 +:10319B0052E822BE340070782D4C3368147CB55441 +:1031AB000F7E34000160053E341478FB7CB742F887 +:1031BB00227CB5540F7E34000160053E341478FB3D +:1031CB007CB764FF52F822123ED3C285123C7A6D53 +:1031DB00337E2441A07A1F002E7E2440A07A1F004C +:1031EB00327E34BE0E7E243F887A1F00367E344EEC +:1031FB006A7E243F807A1F003A7E0800B574407EB9 +:10320B0018031B1239CF7E3400017E2400011245B6 +:10321B00C97E1813887A1F002D7E3400047E148615 +:10322B00A07E040001121ECAC28674047AB3002E5B +:10323B006D226D337E0F00CE74021238D774376C4B +:10324B00777E1467E97E0400FF12403574047AB36D +:10325B00002E6D337E2400017E0F00D274021238D3 +:10326B00D774377E70017E1467E77E0400FF12402F +:10327B003574047AB3002E6D337E2400027E0F006A +:10328B00D674021238D774377E70027E1467E57ECF +:10329B000400FF12403574027AB3002E6D337E2486 +:1032AB0000037E0F00DE74051238D774377E70036F +:1032BB007E1467E37E0400FF12403574037AB3007B +:1032CB002E6D33CA397E240004CA296D117E044544 +:1032DB00617E1F00DE12028C7F017405DA29DA3958 +:1032EB001238D774377E70047E1467E07E0400FFBB +:1032FB0012403574027AB3002E6D337E2400057EA6 +:10330B000F00E274051238D774377E70057E146790 +:10331B00DE7E0400FF124035A2CBB392CB023235D6 +:10332B007D235E3400F078237CB5540F7E4400017E +:10333B0060053E441478FBE5800A2B5D2468077416 +:10334B00017CAB02346B6CAA02346BBE3400107878 +:10335B00237CB5540F7E44000160053E441478FB7A +:10336B00E5900A2B5D24680774017CAB02346B6C0F +:10337B00AA02346BBE34002078237CB5540F7E44F4 +:10338B00000160053E441478FBE5A00A2B5D246820 +:10339B000774017CAB02346B6CAA02346BBE340035 +:1033AB003078237CB5540F7E44000160053E4414F5 +:1033BB0078FBE5B00A2B5D24680774017CAB023403 +:1033CB006B6CAA02346BBE34004078217CB5540F71 +:1033DB007E44000160053E441478FBE5C00A2B5D7A +:1033EB0024680674017CAB80776CAA8073BE3400B2 +:1033FB005078217CB5540F7E44000160053E441487 +:10340B0078FBE5C80A2B5D24680674017CAB805001 +:10341B006CAA804CBE34006078217CB5540F7E447E +:10342B00000160053E441478FBE5E80A2B5D246837 +:10343B000674017CAB80296CAA8025BE34007078A1 +:10344B001F7CB5540F7E24000160053E241478FBCD +:10345B00E5F80A3B5D32680674017CAB80026CAA0E +:10346B007CBA227DF37E1F001C1209F97D126D00C0 +:10347B007DE20B141209F77F611B6C7E1F02FFBEEE +:10348B001827106821E41203537E1440007E044673 +:10349B001C12028C7F017F16E41203531201EC12F3 +:1034AB0003907F5180047F560B5CBEF4004048199B +:1034BB007D1E0A127E34FEF07E24007E7A1B307D48 +:1034CB003E7C377E34FEF180177D1E0A127E34FE61 +:1034DB00D07E24007E7A1B307D3E7C377E34FED13D +:1034EB007E24007E7A1B307D1D7D3F0E340E340E04 +:1034FB00340E340E340E341A261A247F212F212F2A +:10350B00222E4400FF2E28674F693200020B2A201F +:10351B007A1B207D3D7D3F0E340E340E340E340E5F +:10352B00340E341A261A247F212F212F222E4400E9 +:10353B00FF2E28674F693200020B2A200B1C7A1BC7 +:10354B00307D1B7D3F0E340E340E340E341A261A8A +:10355B00247F212F212F222E4400FF2E28672F6935 +:10356B003200020B2A207A1B207D3B7D3F0E340E4E +:10357B00340E340E341A261A247F212F212F222E9B +:10358B004400FF2E28672F693200020B2A200B1CE8 +:10359B007A1B302243BA807E3480007E2401517E18 +:1035AB007F001CBF71781474047E34FE017E2400EE +:1035BB007E7A1BB07E14FDEB0236A67E3436007E7F +:1035CB0024016EBF71781474047E34FE017E2400D6 +:1035DB007E7A1BB07E14FDEC0236A67E34FCC07ED8 +:1035EB0024019BBF71781474047E34FE017E240089 +:1035FB007E7A1BB07E14FDED0236A67E34C3807E30 +:10360B002401C9BF71781374047E14FE017E04007B +:10361B007E7A0BB07E54FDEE801D7E1440007E043E +:10362B0001FABF70782874047E14FE017E04007EBC +:10363B007A0BB07E54FDEF7E44007E7E2BB0F59F5F +:10364B007E54FDF77E2BB0F5A6759D0280327E145D +:10365B000EC07E040216BF70782C74047E14FE011B +:10366B007E04007E7A0BB07E54FDF07E44007E7E9D +:10367B002BB0F59F7E54FDF87E2BB0F5A6759D0300 +:10368B00E47A0BB0802E7A1F001C74047E34FE018A +:10369B007E24007E7A1BB07E14FDEE7E04007E7EBF +:1036AB000BB0F59F7E14FDF77E0BB0F5A6759D0252 +:1036BB00E47A1BB07E1F001C22CA3B7A1F02997F43 +:1036CB00306D337A37029F7E1F02994D23780B7E24 +:1036DB003400037A37029F0237897E3B700A375ECC +:1036EB0034000368077E34000602379B7F031265A4 +:1036FB0070BE18000150077E34000702379B7E3BDB +:10370B00B044087A3BB0693300011B3468241B3486 +:10371B00683E0B3578606933000D7D136933000506 +:10372B00692300032D317E1B307E1F02997A1B30DB +:10373B0080446933000D7D133E1469330005692302 +:10374B0000032D310B1A107E1F02991B1A108026B5 +:10375B006933000D7D133E143E1469330005692354 +:10376B0000032D31691100020B1A007E1F0299799B +:10377B001100021B1A007E3BB054F77A3BB07E3728 +:10378B00029D4D33783C7E3BB0B40B0A7E34000275 +:10379B007A37029F802C44027A3BB07F037E18005D +:1037AB00011257FC7F032E14000F693000020B0A25 +:1037BB00200B1C793000021B0A207E3BB054FD7A93 +:1037CB003BB07E37029FDA3B22CAF87EF3023C7C89 +:1037DB00BF5480B480167EB3023F70307EB3023E7E +:1037EB00702A7E370242BE34000268030238CC7C5A +:1037FB00BF540F14681B14683B0BB168030238CC21 +:10380B007EB3024170067EB30240601E0238CC804C +:10381B00197EB30246B4040F7EB302416003023833 +:10382B00CC7EB3024060030238CC7E3449A47E24A4 +:10383B0000FF807D7EB30246B404067EB302416076 +:10384B0002807E7E7302407CA75EA00F1B706836E1 +:10385B002E707F68040B7078687E2400017CBA6040 +:10386B00053E241478FB7E73024E6C665C754D33FB +:10387B00680A7E3449A67E2400FF80357E3449A435 +:10388B007E2400FF802B7E2400017CBA60053E2441 +:10389B001478FB7E73024F6C665C754D33680A7E41 +:1038AB003449A67E2400FF80087E3449A47E240080 +:1038BB00FF7A1F024A7E3400027A37024880078063 +:1038CB000012667A800312660FDAF822CA3B7AB3CB +:1038DB00002D7F307A27002B7A3700297E73002E3C +:1038EB00BE7006280674067AB3002E7E73002DBEBA +:1038FB00700A2806740A7AB3002D9F117F031203F6 +:10390B000D28197A3F00787E0800307E3467EB7EF5 +:10391B002400FF1212967A73002F801E7A3F0078D4 +:10392B007E0800317E3467EB7E2400FF1212967CFA +:10393B00B77A73002F047AB3002F7E73002F0A37E8 +:10394B009E3400077E63002D0A161A279D211B2427 +:10395B007A5300527E63002E0A261A372D320B340F +:10396B007A7300537EA020801C7EB300531A3B1940 +:10397B00A300307EB30053047AB300537EB30052DE +:10398B00047AB300527EB30052BEB00048DB9F11E5 +:10399B007F0312030D2804742D800274207EA30074 +:1039AB00521A3A19B30030E47EA300531A3A19B3F2 +:1039BB0000307E5700297E37002B7E0800301240E6 +:1039CB0035DA3B22CA3B7A1F002A7AB300297F30B3 +:1039DB007EB300B4700D6D33740A1251C974017A41 +:1039EB00B300B47E7300297A3B707E1F002A7E1BC6 +:1039FB0070397300117E1F002A2971000139730081 +:103A0B00127E1F002E79330003792300017E1F00E5 +:103A1B003279330007792300057E1F003A79330092 +:103A2B000B792300097E1F00367933000F792300B1 +:103A3B000D7E1411EC7E0442837E1F002E12028C2D +:103A4B007933001579230013691300076903000507 +:103A5B0069330015692300131201EC7F016D337E6E +:103A6B002445A012028C6913000F6903000D12018B +:103A7B00EC7F711203900A36397300177F1712030C +:103A8B0090397300187F032E1400197E340070E4F4 +:103A9B0012633E7E3BB06C777F032E1400117E6069 +:103AAB0002124B307E3BB07E70057F032E14001745 +:103ABB007E6002124B30DA3B22CA3B7CDB7D739F6C +:103ACB00117A1F0307BED00A28037ED00A7E34006A +:103ADB0034E412302E7E340033740112302E7E34D7 +:103AEB00003312332BBEB00168F46CCC7E3400343F +:103AFB00740112302E7E1F03072F117A1F03077ECE +:103B0B0034003312332BB4010B7E1F03074E7001AD +:103B1B007A1F03077E340034E412302E0BC0BEC074 +:103B2B001878C96CCC80157E340034740112302E99 +:103B3B0000007E340034E412302E0BC00A3CBD373B +:103B4B0048E56CCC7404ACBC493501DE492501DC7D +:103B5B00593501DA592501D80BC0BEC00978E57E6D +:103B6B001F03077A1F01FC9F117A1F03076CCC8080 +:103B7B00217404ACBC493501DA492501D80A1D6D05 +:103B8B00001209F97F017E1F03072F107A1F03070D +:103B9B000BC0BCDC38DB7E1F0307DA3B22CA79740F +:103BAB000E7E70011265EA741412659A7CFB30E686 +:103BBB000874147E70801265EA7CBF20E003023C1F +:103BCB00777E1400407E0400017421125B407AB3AF +:103BDB0002447E1F026B4D237803023C676CFF800F +:103BEB00737EB302451A3B7E0F026B2D317D207E17 +:103BFB001BA00A4F2E4400407A91827A81837EEB80 +:103C0B00E0BCEA7839047AB302457E7302451A3771 +:103C1B002D317D207E1BB0703974146C771265EAE0 +:103C2B0075F40075DC00E47E34FE077E24007E7A9A +:103C3B001BB07E34000A1264FF75C76080FE7E1FC6 +:103C4B00026B7E1B70BCE7780474018001E47AB3CD +:103C5B0002450BF07E730244BC7F3885D20012659F +:103C6B00D7500974146C771265EAC200DA79227E98 +:103C7B003466C47A3702777E3466BE7A3702797E31 +:103C8B003466C17A37027B7E3466BB7A37027D7E1F +:103C9B0034000E7A37027F6D337A3702817E080249 +:103CAB00771265FD74AE120046E4120046741012D2 +:103CBB00004674401200467481120046747F120055 +:103CCB004674A112004674C812004674A612004630 +:103CDB0074A8120046743F12004674D3120046E4D7 +:103CEB0012004674D5120046748012004674D91225 +:103CFB00004674F112004674DA1200467412120078 +:103D0B004674DB12004674401200467420120046C3 +:103D1B007402120046748D1200467414120046741D +:103D2B00A412004674A612004674AF120046E412A9 +:103D3B005D69E46C770260D47F607DF30E340E34E2 +:103D4B000E340E340E340E341A261A247F012F0132 +:103D5B002F002E0400FF2E08674F693000020B0A5C +:103D6B00200B1C7E1B700AE7693000020B0A207EB9 +:103D7B001B700A977D397C676C777D934D9E6D88A0 +:103D8B00BE68271068237F16E41203537E1440008D +:103D9B007E04461C12028C7F017F14E41203531223 +:103DAB0001EC1203907F5180047F540B5C7D1B7DD3 +:103DBB003F0E340E340E340E341A261A247F212F64 +:103DCB00212F222E4400FF2E28672F693200020B71 +:103DDB002A207A1B207D3B7D3F0E340E340E340E91 +:103DEB00341A261A247F212F212F222E4400FF2E36 +:103DFB0028672F693200020B2A200B1C7A1B3022FA +:103E0B00CA3B7F617F306D337A3703237E3BB00A29 +:103E1B003B5E340005680B7E3400047A37032302C3 +:103E2B003ECC44047A3BB0693300116923000FBECA +:103E3B00180001407C693300011B3468211B346876 +:103E4B00340B35784B7D3D7C37693300097D036935 +:103E5B00330005692300032D307A1B308032693320 +:103E6B0000097D033E0469330005692300032D30EF +:103E7B001B1AD0801B693300097D133E143E146955 +:103E8B00330005692300032D3179D100021B1AC0C1 +:103E9B007F037E1800011257B67F032E14000F69A3 +:103EAB003000020B0A201B1C793000021B0A2080F9 +:103EBB00087E3400057A3703237E3BB054FB7A3BF4 +:103ECB00B07E370323DA3B22A9D7BA75EA0075E92E +:103EDB000043FF1075BA807E3440007E2401FA7ACD +:103EEB001F001C125BEE75E90043BA80E47E34FEC2 +:103EFB00017E24007E7A1BB0759400759300759239 +:103F0B000075910075960075950075B20075B1003E +:103F1B0075B40075B30075CA0075C90075CC007512 +:103F2B00CB0075E20075E10075DE00758E007598AB +:103F3B0000759A0075AC0075FD0075A20075AF0099 +:103F4B0075890043BA8053B2FC43B10374807E344D +:103F5B00FE077A1BB07E34FE077E24007E7E1BB0EC +:103F6B0030E0F275DC0075F49012522743AF80D22B +:103F7B00AF7EB30246B404F9020096CAD8CA797D63 +:103F8B00739F117A1F030B7E340034E412302E7EA4 +:103F9B00340033740112302E7E34003312332BB4C1 +:103FAB000104E40240306CDD7E34003474011230C5 +:103FBB002E7E1F030B2F117A1F030B7E340033123F +:103FCB00332BB4010B7E1F030B4E70017A1F030BB7 +:103FDB007E340034E412302E0BD0BED01878C96C6E +:103FEB00DD80157E340034740112302E00007E34D7 +:103FFB000034E412302E0BD00A3DBD3748E56CDDA2 +:10400B007404ACBD493501DE492501DC593501DAB3 +:10401B00592501D80BD0BED00978E57E1F030B7A4A +:10402B001F01FC7401DA79DAD822CA3B7F307A732C +:10403B0000557AB30054E47AB300567AB300578034 +:10404B00797E7300580A372D377D267E1B701A3701 +:10405B009E3400207A7300567E730054BE707E2807 +:10406B000EE47AB300547EB30055047AB300557E48 +:10407B00B300547E7300551260D4E47AB300577EBC +:10408B006300567E7006AC677E5300570A252D32AF +:10409B002E34106E7A71827A6183E49312665E7E9F +:1040AB00B30057047AB30057B406D47EB30054243C +:1040BB00067AB300547EB30058047AB300587E736B +:1040CB0000580A372D377D267E1BB0600302404C0B +:1040DB00DA3B22CA3B7A6300237F307A7300227A61 +:1040EB00B30021126620600574010241807EB3008B +:1040FB00213EB012652E6004740180791266306027 +:10410B0004740180707EB3002212652E600474016A +:10411B00806312663060047401805A12662060045A +:10412B00740180517EB300213EB0440112652E60B4 +:10413B000474018040126630602274018037801C49 +:10414B001261997A3BB07EB30023700512637180C4 +:10415B000B1264CF60047401801B0B747EA30023CD +:10416B007CBA147AB300234CAA78D512664060044B +:10417B0074018001E4DA3B227EB30246BEB00268D2 +:10418B00207EB3023C701A7EB3023F70147EB302E2 +:10419B0041700E7EB3024070087E3702424D336889 +:1041AB000302667A7EB3023EB4015F74047AB302F3 +:1041BB0046E47AB3024E7AB3024F740E7E7001124C +:1041CB0065EA74127E70201265EA74107E70081214 +:1041DB0065EA740E7E70021265EA74127E7020120C +:1041EB0065EA74107E70081265EA740E7E70011217 +:1041FB0065EA74126C771265EA74137E70081265A7 +:10420B00EA740E6C771265EA801074037AB3024677 +:10421B0074FF7AB3024E7AB3024F0266967EB302F4 +:10422B0046B404247EB3023CB4021D7EB30241604B +:10423B00030242C17EB3023F707C7EB3023E7076B6 +:10424B007E3702424D336802806C7E6302407C767F +:10425B005E700F1B60682F2E607F68040B607856B2 +:10426B007E2400017CB760053E241478FB7C656ED0 +:10427B0060FF5E63024E7A63024E740E1265EA743F +:10428B00117E704080247E2400017CB760053E24A3 +:10429B001478FB7C656E60FF5E63024F7A63024F9E +:1042AB00740E1265EA74147E70801265EA740E6CDB +:1042BB00771265EA800302667A0266967EB3023C49 +:1042CB005480BEB08068030243527EB3023F1BB1E1 +:1042DB0068191468280BB1786E7E34494F7E240020 +:1042EB00FF7A1F024A7E34001280547E3449617E6D +:1042FB002400FF7A1F024A7E34004380427EB302C1 +:10430B003E1468191468280BB1783C7E34494B7EF7 +:10431B002400FF7A1F024A7E34000480227E344937 +:10432B00A87E2400FF7A1F024A7E34000880107E8C +:10433B0034492D7E2400FF7A1F024A7E34001E7AF8 +:10434B003702488005800002667A7E370242BE370C +:10435B00024850047A37024802660F6D227EA00194 +:10436B00C2030243EC7EB3013E0A4B0974013FBE0C +:10437B0070206813BE703B680EBE700D6809BE706E +:10438B000A6804A5BF0005200366804CA5BF2D0558 +:10439B007EA0FF8043BE70304019BE70393814D2F6 +:1043AB00030AF77E14000AAD127D212D2F9E2400E7 +:1043BB00308025A5BF2E1D80007EB3013E047AB34D +:1043CB00013E0A3B09B3013FBEB030400BBEB039D2 +:1043DB0028E780046D2280187EB3013E047AB30176 +:1043EB003E7EB3013E0A3B09B3013F6003024370BB +:1043FB001A3AAD32227EB30246B404247EB3023C99 +:10440B00B4021D7EB3024160030244937EB3023FAC +:10441B0070767EB3023E70707E3702424D33680277 +:10442B0080667E6302407C765E700F1B60682C2E6C +:10443B00607F68040B6078507E2400017CB76005B8 +:10444B003E241478FB7C654E63024E7A63024E74F5 +:10445B000E1265EA74117E701080217E2400017C9F +:10446B00B760053E241478FB7C654E63024F7A637C +:10447B00024F740E1265EA74147E70201265EA7492 +:10448B000E6C771265EA800302667A026696CA3B67 +:10449B007A3702F67F306D337A3702F9807A7438C7 +:1044AB007AB302F87E3702F6BE34003850047A73C2 +:1044BB0002F81263BC7E7302F80A572E5400039065 +:1044CB000004F074CF900005F07E1702F97E3400E3 +:1044DB00067E2400011B1A107E7302F80A37CA39B4 +:1044EB007F137E1400087E0400011200A61BFD7EC4 +:1044FB00B302F82408125E307E7302F80A372D736C +:10450B007E7302F80A272E3702F97A3702F97E37C3 +:10451B0002F69D327A3702F67E3702F64D33680388 +:10452B000244A9DA3B22CA3B7A3702F17F306D3362 +:10453B007A3702F4807A74387AB302F37E3702F159 +:10454B00BE34003850047A7302F31264207E730277 +:10455B00F30A572E540003900004F074AF9000053B +:10456B00F07E1702F47E3400067E2400011B1A1025 +:10457B007E7302F30A37CA397F137E1400087E0458 +:10458B0000011200A61BFD7EB302F32408125E305D +:10459B007E7302F30A372D737E7302F30A272E37CD +:1045AB0002F47A3702F47E3702F19D327A3702F148 +:1045BB007E3702F14D336803024541DA3B227DF32E +:1045CB007E3403E88D327E14000CAD136D007E1F1C +:1045DB00001C120A4A7DE36EE4FFFF0BE44DFF78EB +:1045EB0013E589F5897D3E7CB7F58A0A56F58CD2A1 +:1045FB008CD2A922BEF400017813E589F5897D3EA2 +:10460B007CB7F58B0A56F58DD28ED2AB22BEF40059 +:10461B000278117D3E7CB7F5D70A56F5D6438E103E +:10462B0043AF0422BEF4000378117D3E7CB7F5D571 +:10463B000A56F5D443DD0843AF2022BEF4000478BC +:10464B00107D3E7CB7F5D30A56F5D243DD8043AFE0 +:10465B004022CAF87D23E41203587F017E34BC202C +:10466B007E2445BE12028C7F716D117E0440401278 +:10467B00030D50057EF00380336D117E04437F7F65 +:10468B001712030D28057EF0FF80217F1712039070 +:10469B007CF77C47E412035D7F017F171201316DBC +:1046AB00117E043F0012030D40020BF07E08025FE7 +:1046BB0074406C777E60101256E17E08025F744086 +:1046CB007E70FE7C6F1256E17E08025F74406C7741 +:1046DB006C661256E17E08025F74406C777E6080D8 +:1046EB001256E1DAF822CA797CAB7F707F616CFFDE +:1046FB004CAB68457F56BE580000580A6EB4FFFF9E +:10470B006EA4FFFF0B5C7E7300B30A176D007F1561 +:10471B00120A4A7F102E1800307A7B707E7300B31A +:10472B000A176D007F15120A4A7F510BF0BE580015 +:10473B000068400BF480CF803A7E7300B30A176D8C +:10474B00007F161209F97CE3BEE00A40052EE03724 +:10475B0080032EE0307A7BE07E7300B30A176D0086 +:10476B007F161209F97F610BF0BE68000068040B1D +:10477B00F480C67CBFDA7922CA3B7A6302BE7A73B5 +:10478B0002B97AB302B87F301260F77F037EB302AF +:10479B00B83EB0124BAC7F031253397F037EB3028A +:1047AB00B9124BAC7F031253397F031260F77F03AF +:1047BB007EB302B83EB04401124BAC7F03125339A7 +:1047CB0080287F03124D6F7E1F02BA7A1BB07EB317 +:1047DB0002BE70077F03125EB9800F7F03125EE685 +:1047EB007E1F02BA0B347A1F02BA7EA302BE7CBABA +:1047FB00147AB302BE4CAA78C97F03125E8C7E1F5B +:10480B0002BA7E1BB0DA3B22CA3B7A5302927F304C +:10481B007A6302917A7302907AB3028F6D3380655B +:10482B006D3380457E7302910A377E270293AD323A +:10483B007E53028F0A552D537EA302900A3A2E37D0 +:10484B0002951260D46D337A3702977E3BB01266B5 +:10485B005E0B747E3702970B347A370297BE3400A7 +:10486B001078E87E3702950B347A3702957E730207 +:10487B00910A371E341E341E34BE37029538A57E7E +:10488B003702930B347A3702937E7302920A37BE48 +:10489B00370293388BDA3B22CAF8740E6C771265A9 +:1048AB00EA741112659A7CFB30E20F74117C7F5E07 +:1048BB0070FB1265EAE47AB302477CBF30E40A74FA +:1048CB00117C7F4E70801265EA7EB3024724FD682F +:1048DB00461468480BB278477CBF30E0427E080232 +:1048EB003C7420125B407E370242125D017A370224 +:1048FB00427EB3023C546024E0680D24E0680E2431 +:10490B0040780F12528580171261D180121266CD3A +:10491B00800D12667A8008124EB08003125524DA8D +:10492B00F8221E035300540043002000550053008F +:10493B0042002000530065007200690061006C00AA +:10494B00040309041201000202000040BF3402FFFD +:10495B00000101020001090243000201008032093B +:10496B0004000001020201000524001001052401CE +:10497B0000010424020205240600010705820340FE +:10498B0000FF09040100020A000000070581024034 +:10499B00000007050102400000000001000803535E +:1049AB000054004300CA3B7CFB7A0F02027D627A03 +:1049BB00370200BEF00A28037EF00A0BF07E1F02BE +:1049CB0002BE18000058177A1F00787E0802067E78 +:1049DB003467EE7E2400FF1212967CE78021742050 +:1049EB007AB302067E1F02027A1F00787E08020746 +:1049FB007E3467EE7E2400FF1212967CE70BE07E7E +:104A0B00A02080080A3E19A302060BE0BCFE38F476 +:104A1B00E40A3F19B302067E5702007C7D7E080232 +:104A2B0006124035DA3B22CA7BCA6BCA5BCA4BCA39 +:104A3B003BCA2BCA1BCA0BC0D0C083C0827EF1FC01 +:104A4B00740612659A7CEB740212659A7CCB740423 +:104A5B0012659A7CDB7CBE30E10312008A7CBE308F +:104A6B00E2031256997CBC30E0031248A37CBC30A5 +:104A7B00E103125F137CBC30E203125F997CBD3003 +:104A8B00E103123BA87CBE30E0031200627AF1FC1A +:104A9B00D082D083D0D0DA0BDA1BDA2BDA3BDA4BAD +:104AAB00DA5BDA6BDA7B32CA797A0F03037CE77C49 +:104ABB00FB1266206004740180687CBF3EB01265F7 +:104ACB002E60047401805B126630600474018052A6 +:104ADB007CBE12652E600474018047126630600440 +:104AEB007401803E1266206004740180357CBF3EE9 +:104AFB00B0440112652E600474018026126630608A +:104B0B00047401801D1261997E1F03037A1BB0127E +:104B1B0064CF60047401800A1266406004740180E3 +:104B2B0001E4DA7922CA3B7A6300407F307A730062 +:104B3B003F7AB3003E1266206004740180607EB33E +:104B4B00003E3EB012652E60047401805112663037 +:104B5B006004740180487EB3003F12652E600474BC +:104B6B0001803B126630601D7401803280177E3BE2 +:104B7B00B012652E600474018024126630600474D8 +:104B8B0001801B0B747EA300407CBA147AB30040E7 +:104B9B004CAA78DA126640600474018001E4DA3BB7 +:104BAB0022CA3B7AB3005C7F30693300069934E448 +:104BBB007AB3005D6933000A1266507E73005D0A9A +:104BCB00477E5400079D547E24000160053E24144B +:104BDB0078FB7E73005C6C665C754D3368086933DB +:104BEB000004993480066933000699340B3A3099E6 +:104BFB00346933000A1266506933000299347EB36C +:104C0B00005D047AB3005D7E73005DBE700840A446 +:104C1B006933000A126650DA3B22CA3B7A3700240A +:104C2B007F30A9C7AF740E7E70011265EA6D337ABF +:104C3B003700277E270024BE24004008057E7040E5 +:104C4B0080027C757A730026741112659A20E0F845 +:104C5B007F032E1700277EB300267E700112658519 +:104C6B007E7300260A277D322E3700277A370027DE +:104C7B007E3700249D327A3700247E730026BE7067 +:104C8B004050B0A9D7AFDA3B227D127D23BE140072 +:104C9B0001782E7CB5540F7E34000160053E341430 +:104CAB0078FB7C677D120E140E140E140E141A0270 +:104CBB001A002E04007E2E08FE107E0B704C7680A0 +:104CCB00324D1178317CB5540F7E34000160053EB6 +:104CDB00341478FB7CB764FF7D120E140E140E1483 +:104CEB000E141A021A002E04007E2E08FE107E0BE4 +:104CFB00705C7B7A0B7022CA796CFF1266207E1473 +:104D0B0067A77E0400FF125F407CBF3EB012652E8A +:104D1B0074037E34FE817E24007E7A1BB07E34FECB +:104D2B00827E24007E7E1BB030E6F27E1BB030E12B +:104D3B00046CEE80037EE0017E1BB054BF7A1BB087 +:104D4B004CEE68130A3F7A3701D27E1467877E04D4 +:104D5B0000FF125F4080031266400BF0BEF07F280D +:104D6B009ADA7922CA3B7F30E47AB30321693300A4 +:104D7B00049934E47AB303220B3A30993469330043 +:104D8B000A126650693300089934601F7E73032240 +:104D9B000A477E5400079D547E34000160053E3463 +:104DAB001478FB4E7303217A730321693300029944 +:104DBB00346933000A1266507EB30322047AB303BC +:104DCB00227E730322BE700840AE7EB30321DA3B12 +:104DDB0022CA69CAF87D627A37031F7CFB7E080200 +:104DEB005F74407C7F3E703E702E70067E27031FE3 +:104DFB007C651256E17E08025F74407C7F3E703EFC +:104E0B00702E70077E27031F0A247C651256E17EE5 +:104E1B0008025F74407C7F3E703E702E70087C6D84 +:104E2B001256E17E08025F74407C7F3E703E702E0E +:104E3B0070097C6C1256E1DAF8DA6922CA3B7F30D2 +:104E4B007E3BB044017A3BB09F1179330009792343 +:104E5B0000077933000D7923000B693300156923A3 +:104E6B000013793300117923000F693300011B34D0 +:104E7B00680E1B3468120B357822693300158010CD +:104E8B00693300153E348008693300153E343E34D7 +:104E9B006913000569030003E412633EE47A3BB037 +:104EAB006D33DA3B22CAF8740E6C771265EA741113 +:104EBB0012659A20E1537E370248BE340040280524 +:104ECB007EF04080027CF77E0F024A7C7F742012BA +:104EDB005FED0A2F7E3702489D327A3702480A155A +:104EEB007E1F024A2D317A1F024A7E3702484D330C +:104EFB00780F74117E700A1265EAE47AB302478068 +:104F0B000874117E70021265EADAF822CA7BCA6B4A +:104F1B00CA5BCA4BCA2BCA1BCA0BC0D0C083C08288 +:104F2B00E59830E1085398FDE47AB302EDE598304B +:104F3B00E02A5398FE7EA199BEA07F78157E73035D +:104F4B00277CB7047AB30327BE7014280A75C76091 +:104F5B008005E47AB303277CBA125C60D082D083DD +:104F6B00D0D0DA0BDA1BDA2BDA4BDA5BDA6BDA7BC3 +:104F7B0032CA3B7A6302B77A7302B27AB302B17F59 +:104F8B00301260F77F037EB302B13EB0124BAC7FA1 +:104F9B00031253397F037EB302B2124BAC7F031261 +:104FAB005339801B7F037E1F02B37E1BB0124BACA9 +:104FBB007F031253397E1F02B30B347A1F02B37E69 +:104FCB00A302B77CBA147AB302B74CAA78D67F0384 +:104FDB00125E8CDA3B22CA3B7A7302E17AB302E0AF +:104FEB007F301260F77F037EB302E03EB0124BAC12 +:104FFB007F031253397F037EB302E1124BAC7F0365 +:10500B001253397F031260F77F037EB302E03EB089 +:10501B004401124BAC7F031253397F03124D6F7E49 +:10502B001F02E27A1BB07F03125EB97F03125E8C04 +:10503B007E1F02E27E1BB0DA3B227E340006123367 +:10504B002B701A7E1F02E80B1C7A1F02E8BE182772 +:10505B0010401D7E1827107A1F02E880137E340043 +:10506B000712332B700A9F117A1F02E87A3702E678 +:10507B007E1F02E8BE1807D040097E1400037A1782 +:10508B0002E622BE18006440127E3702E6BE3400F0 +:10509B000268087E3400017A3702E6227E3400373C +:1050AB007E2400011217987E3400367E24000112F4 +:1050BB0017987E3400357E2400011217987E340039 +:1050CB0037E412302E7E340036E412302E7E34005C +:1050DB0035E412302E7E3400067E240001124C94EF +:1050EB007E3400077E240001124C947E3400066D42 +:1050FB00221217987E3400076D220217987A1F022E +:10510B00A97E3402AC7E2400007E1B307E3402ADBF +:10511B007E2400007A1B307E3402AB7E2400007E9E +:10512B001B307E3402AE7E2400007A1B307E3402AC +:10513B00AA7E2400007E1B307E3402AF7E2400004A +:10514B007A1B307E3402A97E2400007E1B307E3415 +:10515B0002B07E2400007A1B307E1F02AD22CAD81B +:10516B00CA797CF67CE77CDB1266206004740180D4 +:10517B00487CBD3EB012652E60047401803B126604 +:10518B00306004740180327CBE12652E60047401A1 +:10519B00802712663060047401801E7CBF12652E5E +:1051AB0060047401801312663060047401800A126B +:1051BB006640600474018001E4DA79DAD8227CABB2 +:1051CB0053BACF43BA801B3468141B3468151B3495 +:1051DB0068162E3400037813E5BAF5BA800D43BA7E +:1051EB0010800843BA20800343BA307E14FE807EC1 +:1051FB0004007E7E0BB044407A0BB07E0BB0448033 +:10520B007A0BB07CBA543F7E0B704C7B7A0B70E4FC +:10521B007E34FE827E24007E7A1BB022E46C7712F1 +:10522B0065EA74017E70081265EA74077E703F129E +:10523B0065EA74097E703F1265EA740B7E70071283 +:10524B0065EA74016C771265EA74027AB30246E47C +:10525B007AB302477AB3024E7AB3024F7E3401001F +:10526B007E2400C27A1F02CD7AB302D17AB302D266 +:10527B0074087AB302D3A9D7AF227EB3023DBEB076 +:10528B000D50507EA003A4905296730252BD025251 +:10529B00C00252DE0252C30252DE0252C60252C991 +:1052AB000252CC0252CF0252D20252D50252D80233 +:1052BB0052DB0237D4024228024400025606024255 +:1052CB00C70266C70253E3024183025A4B026016C0 +:1052DB000266CA02667A7EB3025E70517E3466B88D +:1052EB007A37025F7E3466B27A3702617E3466B5F6 +:1052FB007A3702637E3466AF7A3702657E340006F6 +:10530B007A3702677E34000A7A3702697E08025FB9 +:10531B001265FD7E08025F74406C776C661256E175 +:10532B007E34003212465D74017AB3025E22CA3BB0 +:10533B007F30E47AB3005C6933000499346933003D +:10534B000A1266500B3A30993480157EB3005C0418 +:10535B007AB3005C7E73005CBE701E2803E4802170 +:10536B006933000A126650693300089934BEB001E4 +:10537B0068D96933000299346933000A1266507494 +:10538B0001DA3B227CAB1B34681E1B34682A1B34AE +:10539B0068362E340003783F7EB302ED70FA740149 +:1053AB007AB302ED7AA199227EB302EE70FA740100 +:1053BB007AB302EE7AA19B227EB302EF70FA7401EC +:1053CB007AB302EF7AA1AD227EB302F070FA7401C8 +:1053DB007AB302F07AA1FE227EB3023CB480227E25 +:1053EB00B3023F701C7EB3023E70167EB302417057 +:1053FB00107EB30240700A7E370242BE3400016851 +:10540B000302667A7EB30246B4040A7E3449A67E52 +:10541B002400FF80087E3449A47E2400FF7A1F02FB +:10542B004A7E3400017A37024802660F1B34681B30 +:10543B001B3468221B34682B1B3468340B36783CC6 +:10544B00C28C758C00758A00D28C22C28E758D0031 +:10545B00758B00D28E22538EEF75D60075D7004315 +:10546B008E102253DDF775D40075D50043DD08226D +:10547B0053DD7F75D20075D30043DD8022CA3B7F9D +:10548B00707CF57CE67CD77CCBCA7B0A366D222FF1 +:10549B00110A1F6D001209E6DA0B12453112642056 +:1054AB007405900004F074A8900005F09000067A43 +:1054BB00EBC09000077AEBD09000087AEBE09000FD +:1054CB00097AEBF0740A125E30DA3B227D236D33DE +:1054DB001B24681A1B2468201B2468261B24682C99 +:1054EB000B267834E58C7C6B6C77E58A8026E58D12 +:1054FB007C6B6C77E58B801CE5D67C6B6C77E5D78A +:10550B008012E5D47C6B6C77E5D58008E5D27C6B9B +:10551B006C77E5D30A2B4D3222740E6C771265EA49 +:10552B00741112659A30E03D7E0F024A7420125BB3 +:10553B00400A1B7E2702489D217A2702487E1F02C4 +:10554B004A2D317A1F024A7E3702484D33780E744A +:10555B00117E70481265EAE47AB302472274117E19 +:10556B0070400265EA22CA3B7D627CE77CFBBE642D +:10557B00000058146E64FFFF0B647CBF7C7E7E14AE +:10558B0067F37E0400FF800C7CBF7C7E7E1467F18A +:10559B007E0400FF1240352EF0067D367E0802C6D3 +:1055AB00125DCF7CBF7C7E7E0802C7124035DA3B92 +:1055BB00221B34681C1B3468241B34682A1B346878 +:1055CB00300B367835758A00758C00438904D28C84 +:1055DB0022758B00758D00438940D28E2275D700C2 +:1055EB0075D600438E182275D50075D40043DD0C9B +:1055FB002275D30075D20043DDC022CAF87EB302F8 +:10560B003C70237EB30241701D7EB3024070177E47 +:10561B00B3023F70117EF3023EBEF08050087E371E +:10562B0002424D33680512667A8017E47C7F12655F +:10563B00EA4CFF68047403800274027AB3024612C8 +:10564B006696DAF822CA797A0F01A81264B67453F7 +:10565B00900004F0E4900005F0900006F090000735 +:10566B00F07E3401A87E2400007A1F03177E1400FD +:10567B00087E0400017E1F01A81203CD7D732E74DA +:10568B0000087D570B54125E307D37DA7922E46CBB +:10569B00771265EA74027AB30246E47AB30247746E +:1056AB000E7E70011265EA74117E70481265EA7401 +:1056BB000E7E70021265EA74117E70481265EA74F0 +:1056CB000E7E70011265EA74147E70901265EA7496 +:1056DB000E6C770265EACA3B7A63005B7A73005AF9 +:1056EB007AB300597F301260F77F037EB300593EC7 +:1056FB00B0124BAC7F031253397F037EB3005A12A7 +:10570B004BAC7F031253397F037EB3005B124BAC60 +:10571B007F031253397F03125E8CDA3B22CAF87C6B +:10572B00FBBEF03B28037EF03B744C900000F07402 +:10573B0045900001F07444900002F074289000032F +:10574B00F09000047AEBF00A3FCA397F107E140008 +:10575B00057E0400011200A61BFD7CBF2405125E12 +:10576B0030DAF822CAF87CFBBEF03B28037EF03B14 +:10577B00744C900000F07445900001F0744490005C +:10578B0002F07440900003F09000047AEBF00A3FB3 +:10579B00CA397F107E1400057E0400011200A61B7F +:1057AB00FD7CBF2405125E30DAF8227F617F702EFC +:1057BB00140007693000020B0A202F168017695757 +:1057CB000015694700137F072E140007693000028C +:1057DB000B0A209F12793000021B0A20691700095F +:1057EB00690700076937001569270013BF1028CE1A +:1057FB00227F617F702E14000B693000020B0A2090 +:10580B002F16801769570015694700137F072E1451 +:10581B00000B693000020B0A209F12793000021B2B +:10582B000A206917000D6907000B693700156927F6 +:10583B000013BF1028CE22CA69CAF86D666CFF80B0 +:10584B00167E34000112655B7D360B64BE34001E80 +:10585B0040057EF001800E7E34FE827E24007E7E2B +:10586B001BB030E6DC7E34FE827E24007E7E1BB0D5 +:10587B0054BF7A1BB07CBFDAF8DA69227D437F70A4 +:10588B007E1F02A17937000579270003E47A7BB0EC +:10589B00794700019F11793700097927000779377C +:1058AB00000D7927000B7E1F02A579370011792790 +:1058BB00000F7E1F02A579370015792700136D3372 +:1058CB00227F717F607CAB6C7780310A170A2A2D9F +:1058DB00217F062D127E0BB07E7B60BCB6680E7EE0 +:1058EB000F030F7E0B609C677A0B60E4220BF47E38 +:1058FB000F030F7E0BB0047A0BB00B707E7BB07076 +:10590B00CA7401227EB3017F603AE47EA3013E0A92 +:10591B003A19B3013F7AB3013E7E18013E7A1F0359 +:10592B000F7E08013F7E3467DA7E2400FF1258CCCD +:10593B007E1467D17E0400FF125F40E47AB3013E10 +:10594B007AB3017F22CA3B7CF57CE67CD77CCB7C8F +:10595B007EAC7F1244991263BC7405900004F07402 +:10596B00C8900005F09000067AEBC09000077AEB28 +:10597B00D09000087AEBE09000097AEBF0740A12F1 +:10598B005E30DA3B227584017E44041FE47A49B011 +:10599B001B4478F97EF803287E0400FF7E1466D43E +:1059AB000B0A405D44681A692000020B0E0B448001 +:1059BB000A7E0BB07A29B00B240B0C1B4478F280B7 +:1059CB00DF0231D27D127D234D23780CBE140000F3 +:1059DB00A9A1D1B39288D2A8BE24000178082E14B5 +:1059EB00FFFF928AD2AABE2400027803438F10BE17 +:1059FB002400037803438F20BE2400047803438FD5 +:105A0B0040227F617F709F1180267F061B0C9F01B8 +:105A1B007D017F272D517E2B307D532D5F7E2B20DB +:105A2B007F272D507A2B207F272D537A2B300B1C61 +:105A3B007F261E541E4450034EA080BF1240CB2223 +:105A4B007EB30246B4041D7EB3023CB481167EB312 +:105A5B00023F70107EB30241700A7E370242BE34A1 +:105A6B000001680302667A7E3449A47E2400FF7A23 +:105A7B001F024A7E3400017A37024802660FCA7948 +:105A8B007D737E340037BE74003778047401800157 +:105A9B00E412302E7E340036BE7400367804740166 +:105AAB008001E412302E7E340035BE74003578044C +:105ABB0074018001E412302EDA7922CAF87CFB7A69 +:105ACB001F03131264B6744C900004F07401900021 +:105ADB0005F09000067AEBF0E4900007F07E0F03E0 +:105AEB00137E3400087E240001791100021B1A007A +:105AFB00740C125E30DAF822CA3B7F307A730326BD +:105B0B007AB303251266880B347F03124531126476 +:105B1B00207403900004F074A7900005F07EB3038B +:105B2B0025900006F07EB30326900007F074081250 +:105B3B005E30DA3B22CA3B7F30CAB80BFD741612BB +:105B4B00659A7AFBB039BFFFFF800C29BFFFFE12AD +:105B5B00659A7A3BB00B747EFBA07CBA147AFBB0CF +:105B6B004CAA78E729BFFFFF9EF80003DA3B22CA55 +:105B7B003B7D727CCB1263BC7406900004F074C640 +:105B8B00900005F07401900006F09000077AEBC0CE +:105B9B009000087AEB707E3400097E2400011B1AFA +:105BAB0070740B125E30DA3B22CA3B7D727CCB12D7 +:105BBB0063BC7406900004F074C6900005F0740288 +:105BCB00900006F09000077AEBC09000087AEB701B +:105BDB007E3400097E2400011B1A70740B125E3098 +:105BEB00DA3B227E0817707E7F001C7F17120A4A51 +:105BFB007A3702FB7E14CFC07E04006A7F17120A2D +:105C0B004A7A3702FD7E341B007E2400B7BF711821 +:105C1B000A7E3702FD0B347A3702FD22CA3B7D72B6 +:105C2B007CCB1263BC7406900004F074C690000524 +:105C3B00F0E4900006F09000077AEBC09000087A31 +:105C4B00EB707E3400097E2400011B1A70740B125A +:105C5B005E30DA3B227CAB7EB3017F702E7E73010C +:105C6B003E7CB7047AB3013E0A3719A3013F7EA3EA +:105C7B00013E0A3A09B3013EB43B0674017AB30103 +:105C8B007FBEA0404005E47AB3013E22CA7BCA6BBB +:105C9B00CA5BCA4BCA2BCA1BCA0BC0D0C083C082FB +:105CAB007E0800B512272BA287B39287D082D083B0 +:105CBB00D0D0DA0BDA1BDA2BDA4BDA5BDA6BDA7B66 +:105CCB0032CA3B1264B67443900004F0E4900005B2 +:105CDB00F0900006F0900007F07E340008CA397F80 +:105CEB00107E1400087E0400011200A61BFD741028 +:105CFB00125E30DA3B227A3700247E3400257E2474 +:105D0B0000007E1B307E3400267E2400007A1B3080 +:105D1B007E3400247E2400007E1B307E3400277EE0 +:105D2B002400007A1B307E37002622CAD8CA797C21 +:105D3B00D67CE77CFB1260D47CBE24B01200467C80 +:105D4B00BF54F0C4540F0A5B44101200467CBF547E +:105D5B000F1200467CBD12665EDA79DAD822CAD8F9 +:105D6B00CA797CFB6CEE7CBE24B012004674011227 +:105D7B00004674101200466CDD7CBF12665E0BD0C1 +:105D8B00BED08078F40BE0BEE00840DADA79DAD8DE +:105D9B0022CA3B7F311264B67444900004F0740144 +:105DAB00900005F0E4900006F0900007F07E3400C0 +:105DBB00087E240001797100021B1A60740C125EBC +:105DCB0030DA3B227F707D437EA006E439B70006B4 +:105DDB001BA07E04000A7D348D307D148D107D4117 +:105DEB000A252E2400307C650A2A7F072D127A0B98 +:105DFB00604CAA78DB2243BA8053BACF1B346814A9 +:105E0B001B3468151B3468162E3400037813E5BA5F +:105E1B00F5BA800D43BA10800843BA20800343BA09 +:105E2B003053BA7F22CAF87CFBA9C7AF740E7E70C1 +:105E3B00011265EA741112659A20E0F87E140000D5 +:105E4B007E0400017CBF7E7001126585D202A9D74A +:105E5B00AFDAF822CAB8CA1B7E34FD107E24007E4E +:105E6B007E1BB030E4087E1BB054EF7A1BB07E1B58 +:105E7B00B030E5087E1BB054DF7A1BB0DA1BDAB802 +:105E8B0032CA3B7F306933000699346933000A12FA +:105E9B0066500B3A3099346933000A1266506933F5 +:105EAB00000499346933000A126650DA3B22CA3B6C +:105EBB007F306933000499346933000A1266500B42 +:105ECB003A3099346933000A1266506933000299EB +:105EDB00346933000A126650DA3B22CA3B7F3069C1 +:105EEB0033000699346933000A1266500B3A309925 +:105EFB00346933000A1266506933000299346933EE +:105F0B00000A126650DA3B22CAF8740E7E70011238 +:105F1B0065EA741112659A7CFB30E50874117E708A +:105F2B00401265EA7CBF30E20774116C771265EAA8 +:105F3B00C202DAF822CA797A0F01D47E3401D47EF8 +:105F4B002400007A1F03177E1400007E0400017EDC +:105F5B001F01D41203CD7D737CB7125E307D37DA0F +:105F6B007922CA797CE77CFB1260D47CBE24B01208 +:105F7B0000467CBF54F0C4540F0A5B441012004619 +:105F8B007CBF540F120046E412665EDA7922CAF81F +:105F9B00740E7E70021265EA741112659A7CFB30E6 +:105FAB00E50874117E70401265EA7CBF30E207741D +:105FBB00116C771265EADAF822CA3B7F307A370226 +:105FCB00DA800C7E3702DA7E3BB00B7412538F7E75 +:105FDB001F02DC7F011B0C7A0F02DC4D2378E4DA05 +:105FEB003B22CA3BCA787F30CAB8800B7EFBB07E9F +:105FFB003B700B741265EA29AFFFFF7CBA1439BFF3 +:10600B00FFFF4CAA78E61BFDDA3B227EB30246B4B7 +:10601B00041B7EB3023CB401147EB3023F700E7EB0 +:10602B00B3024170087E3702424D33680302667A31 +:10603B00026696CAF87CFB1264207403900004F08D +:10604B0074A3900005F07402900006F09000077A9C +:10605B00EBF07408125E30DAF8227EB30246B40419 +:10606B00097EB3023CBEB0A1680302667A7E1802B9 +:10607B00CD7A1F024A7E3702427A37024802660FF8 +:10608B007EB30246B404097EB3023CBEB021680362 +:10609B0002667A7E1802CD7A1F024A7E3702427A56 +:1060AB0037024802666C7E3400336D221217987EDD +:1060BB003400346D221217987E340034E412302EE3 +:1060CB007E340033740102302ECAF87CFB7CB7247B +:1060DB00B01200467CBF54F0C4540F0A5B4410123C +:1060EB0000467CBF540F120046DAF822CA3B7F30C1 +:1060FB006933000699346933000A1266506933001C +:10610B000299346933000A126650DA3B22CAF87CD2 +:10611B00FB1263BC7402900004F074C5900005F090 +:10612B009000067AEBF07407125E30DAF822CAF8A8 +:10613B007CFB1263BC7402900004F074C4900005E5 +:10614B00F09000067AEBF07407125E30DAF822CA90 +:10615B00F87CFB1264207402900004F074A590008C +:10616B0005F09000067AEBF07407125E30DAF82235 +:10617B00CA3B7F307A37031D800C7E37031D7E3B75 +:10618B00B00B7412538F7E3BB070EFDA3B2274046A +:10619B007E34FE817E24007E7A1BB01258427E3400 +:1061AB00FE877E24007E7E1BB0227E3702E6BE3445 +:1061BB000001780D7E3400027A3702E67E3400014E +:1061CB00227E3702E6227EB3023D24DF680A146882 +:1061DB000A0BB1780902608B0260650265450266A5 +:1061EB007ACAB8E59A30E108539AFDE47AB302EE25 +:1061FB00E59A30E003539AFEDAB832CAB8E5AC3010 +:10620B00E10853ACFDE47AB302EFE5AC30E00353A5 +:10621B00ACFEDAB832CAB8E5FD30E10853FDFDE457 +:10622B007AB302F0E5FD30E00353FDFEDAB832122B +:10623B0063BC7402900004F074C7900005F0740105 +:10624B00900006F07407025E301263BC740290007B +:10625B0004F074C0900005F07401900006F0740710 +:10626B00025E301264207402900004F074A390005C +:10627B0005F07401900006F07407025E3012642082 +:10628B007402900004F074A4900005F07401900067 +:10629B0006F07407025E301263BC7402900004F0C7 +:1062AB0074C2900005F07401900006F07407025E52 +:1062BB00301264207402900004F074A2900005F078 +:1062CB007402900006F07407025E301263BC740215 +:1062DB00900004F074C1900005F07401900006F07A +:1062EB007407025E301264207402900004F074A0F4 +:1062FB00900005F07401900006F07407025E3012F6 +:10630B0064207402900004F074A2900005F07401F4 +:10631B00900006F07407025E301264207402900045 +:10632B0004F074A1900005F07401900006F074075E +:10633B00025E30CAF87DF37CFB7F207F1080071B49 +:10634B00F47A2BF00B544DFF78F5DAF8227F017EAF +:10635B003702FD7D231B247D3278F87F201B2C7F99 +:10636B00024D4578EA2274017E34FE827E24007E43 +:10637B007A1BB074057E34FE817A1BB0025842CA78 +:10638B00F80A5B2E540020125B407CFB74146C7774 +:10639B001265EA7CBFDAF8221263BC740290000427 +:1063AB00F074C0900005F0E4900006F07407025EF4 +:1063BB0030744F900000F0744C900001F0744590D5 +:1063CB000002F07480900003F0221264207402909B +:1063DB000004F074A4900005F0E4900006F074073C +:1063EB00025E301263BC7402900004F074C790001C +:1063FB0005F0E4900006F07407025E30126420741E +:10640B0002900004F074A0900005F0E4900006F0F8 +:10641B007407025E30744C900000F07443900001DE +:10642B00F07444900002F07480900003F022126428 +:10643B00207402900004F074A3900005F0E4900027 +:10644B0006F07407025E301263BC7402900004F015 +:10645B0074C2900005F0E4900006F07407025E3001 +:10646B001263BC7402900004F074C1900005F0E458 +:10647B00900006F07407025E3012642074029000E4 +:10648B0004F074A1900005F0E4900006F07407028C +:10649B005E301264207402900004F074A290000528 +:1064AB00F0E4900006F07407025E30743790000041 +:1064BB00F07453900001F07445900002F074479013 +:1064CB000003F022E47E34FE827E24007E7A1BB031 +:1064DB0074057E34FE817A1BB0025842A9C7AF7493 +:1064EB000E7E70011265EA74146C771265EAC200B5 +:1064FB00A9D7AF22CA797D7380077E3403E81200D7 +:10650B00667D371B744D3378F1DA79227D237E3724 +:10651B0002FB7D131B147D3178F87D121B147D213A +:10652B0078EC227E34FE867E24007E7A1BB07402C9 +:10653B007E34FE817A1BB00258427EB30246B4040D +:10654B00097EB3023CBEB021680302667A026696EE +:10655B00800A7EA0097CBA147CAB78F97D231B34AE +:10656B004D2278EE227F70691700116907000F69C1 +:10657B00370015692700139F10227CA77C7B0A5AD2 +:10658B002E540020125FED74117E70010265EA7CBF +:10659B00ABE5FC20E7FB7CBA4480F5FCE5FC20E78F +:1065AB00FBE5EC221264207401900004F074A690B9 +:1065BB000005F07406025E301263BC740190000497 +:1065CB00F074C3900005F07406025E307E14004038 +:1065DB007E0400017E7302440A37124C25D3227CC1 +:1065EB00A77C7BE5FC20E7FB7CB7547FF5FC7AA10D +:1065FB00EC22CA3B7F300B3A309934693300049953 +:10660B0034DA3B2274037AB3024774117E70401262 +:10661B0065EA024EB074017E34FE817E24007E7AE0 +:10662B001BB002584274037E34FE817E24007E7AB6 +:10663B001BB002584274067E34FE817E24007E7AA3 +:10664B001BB00258427D236D338003000B34BD23F6 +:10665B0038F9227C6B7E080277743C7E70400256C0 +:10666B00E174047AB3024774117E70400265EA74D8 +:10667B00057AB3024774117E70600265EA6D338050 +:10668B00020B347E0BB00B1470F722E47AB3024783 +:10669B0074117E70480265EA7EB3025E6005E47A8F +:1066AB00B3025E22C29422C29522D29422D29522A8 +:1066BB00C2A422C2A522D2A422D2A52202667A02A9 +:1066CB00667A02667A283029000002031B444F00C9 +:1066DB0004001C01FA4000000202FB000000020251 +:1066EB00FD00000001025E000001013E00000101FF +:1066FB007F00000202E60000000402E80000000038 +:10670B000004026B00FF67F50004026F000000003D +:10671B000004027300000000000100B4000001023D +:10672B0045000000007EFED5007EFED7007EFED920 +:10673B00007EFEDB007EFEF5007EFEF7007EFEF99E +:10674B00007EFEFB007EFED2007EFEF2007EFECCC3 +:10675B00007EFECD007EFEEC007EFEED007EFEC8D0 +:10676B00007EFEC9007EFECA007EFECB007EFEE8E8 +:10677B00007EFEE9007EFEEA007EFEEB0D0A466F10 +:10678B00756E642044657669636520416464726547 +:10679B0073733A3078253032580D0A002E000D0AEB +:1067AB00466F756E64204465766963652041646449 +:1067BB00726573733A3078253032580D0A002E000B +:1067CB004F4B210D0A004572726F72210D0A00505A +:1067DB004F570043005768004A00570041005600CE +:1067EB0025660025640020002D0040535443495377 +:0367FB0050230028 :00000001FF diff --git a/STC32G12K128.cfg b/STC32G12K128.cfg index 3285eb8..131c800 100644 --- a/STC32G12K128.cfg +++ b/STC32G12K128.cfg @@ -15,3 +15,4 @@ SelfDefineBaud=9600 SelfDefineFormat=0 SelfDefineSize=8 SelfDefineCommand=405354434953502339 +WaitForHidIsp=1 diff --git a/STC32_FPMU_LARGE.LIB.remove b/STC32_FPMU_LARGE.LIB.remove new file mode 100644 index 0000000000000000000000000000000000000000..c2f694287eae555d18f23d079e7450a8fe5801fa GIT binary patch literal 3457 zcmZXXdu$X{6voe#Zh_KL5h5b5GJsHM3w?rtWLdV|y0F`>yW19}Nl_aMDg@IGqVi}E z(L}>5B{3i-64ww=5)()yLBSXah>7?Ps0oH3(J-lK{KHs--??-4?88lFGw1i+@7}w2 z?mct%-H~L`B&wpKbEPyUkqp+=hPp$sX#4PmQAAWgWLcF5??odTYg8jv2NF?wui{E? z{lS@NV`WQE_w|pd?uxAI>tDB_x3BBN$}7D+19uaZ1!@~=$~)?-8y~2ysjFVtwsSfa z6k!Z}25|YP%pZ&Uv!>v@a?ZlID~w1q${+Lx1Bqk^EGBF;ScqW|up=La0lV^H1du;I zT-;?S7HDb$n~=kT(O4EU!^FVq084TjHibLDc&#!WM%#Ii`*T=pa|>8u4okEz2U{kr zD3A=a`ny3E3-JZp5(ZSIn}h<(J+da9fVCNr zFfBG@18z|+pfI#55Jg;{ZjcCjGrdbdQR1O^(oA(}x{3KQ`!4$t(=}WLG=fG1f^kV4=Wbffy2Gj!vJRT-{${K!8;|mO(Ep#NH&b8$`vNIi9TULPU-`^;^+bdIx!&x<|6RMpUdV z$EE7#eY`QL!;NzN2nVH;y~~lIY!D0{TncW$dmHbq(??;@j%x z1M0Zt=S5#f#N?*B$0M?5i~1xH$Jf<8!MJC9EczxdOMW-VtIVr95qfIqgvig50bi*+ z339URCy_T3UNl5ss5}|bk!xo}ehv!`@VUyom3l^{R}I;V!9|@pA1Qm1m|yUY*m<3K zIaJ5BPl~>i%+5Zeo%1P84IL5rCGXgNpq=w6vd4?Mi-_Y>YUa$Ix|KHX@lyS9mHAxv z3`E7f*E{G(Ri4N0;oTzdBQijTu7qrth`OJM<0ES3Lz}vFNaRD_DSlmLK55DAog%;C z9lZl8b8<-yzbx`$A_n_)Xg=n)Pt-TPW4}k2l+U~4Rvi%in3n-|sCyB+Em4mXalB34 z{7!S+>b;_$^xks)>R!U`e?>h-#PLRT^IOGn7rZL^M?_4XP&dD2?7u}lOT_VG`m>iI zT0btmXcxR!?yA8u*~OfqwiWsZz7hXLB1Y{xdI*u@E*ud3Ga@E29X*W59uoBu5yugA zuQ2Y}=~ch#RWwU=cAWQ8Lz~6^0}+G8+Ibry`&UtaB;vS1&HTdJ(w{yCH@wPdzK+d# z+HvP>75gtlOy+9m$VFsd7xgB7GvZm=IlrW~)+R;%-K((f)6V$~>bP?^iGG`i$wcjZ zH6lBG`u`x}c)Ys1jJx6)asT6$YNOTN&F(9r4ijCtAeu&+1-l+;yu(FSkr3^}R0JQ_xdGkBB_O zA_iY;=j##K>2z*e#PMY{Z(#GC7BSDah(RW=ZA9d_^>NWFEn@PCcHW1`{#4W|i#R^3 zGw(OgAn0c$%7g@yMeeE16n(VWpF1Co{6FPIQFH?7xh#as?!TGk1 zy#=!4Ha3Zl%9qJo+WB@w_GwX3&U1WtZ;|)s;J5PyI1@*6|DsHI$A>n>wDQ>L%%6kI zKLWiA>s>?(e(weqeWtYc5K1%e21Sy0gUa2zLAfq9x>uMNdDXbjl;FM)mukKc7u)8$ Y6W=J5%y*|LpnaxlmQvYg>SNmVAHM_r5C8xG literal 0 HcmV?d00001 diff --git a/Source/PCA9685_driver.c b/Source/PCA9685_driver.c index c722faa..cbc1e29 100644 --- a/Source/PCA9685_driver.c +++ b/Source/PCA9685_driver.c @@ -10,12 +10,45 @@ static IIC_Soft_Config config; static uint8 has_init = 0; +#if (1==PCA9685_USE_SOFT_IIC) +void pca9685_scl_set() +{ + PCA9685_SCL_LEVEL(1); +} + +void pca9685_sda_set() +{ + PCA9685_SDA_LEVEL(1); +} + +void pca9685_sda_clr() +{ + PCA9685_SDA_LEVEL(0); +} + +void pca9685_scl_clr() +{ + PCA9685_SCL_LEVEL(0); +} + +uint8 pca9685_sda_read() +{ + return PCA9685_SDA_READ(); +} + +#endif + void pca9685_init() { if(has_init) return; // 如果已经初始化过,则直接返回 #if PCA9685_USE_SOFT_IIC == 1 - config.scl_pin = PCA9685_SOFT_IIC_SCL_PIN; - config.sda_pin = PCA9685_SOFT_IIC_SDA_PIN; + // config.scl_pin = PCA9685_SOFT_IIC_SCL_PIN; + // config.sda_pin = PCA9685_SOFT_IIC_SDA_PIN; + config.SCL_SET = pca9685_scl_set; + config.SCL_CLR = pca9685_scl_clr; + config.SDA_SET = pca9685_sda_set; + config.SDA_CLR = pca9685_sda_clr; + config.SDA_READ = pca9685_sda_read; config.wait_time = 10; soft_iic_init(&config); // 初始化软件IIC soft_iic_write_reg(&config, PCA9685_I2C_ADDR, PCA9685_MODE1, 0x00); // 设置PCA9685模式寄存器为正常模式 diff --git a/Source/iic.c b/Source/iic.c index 26baa41..7fa7a2e 100644 --- a/Source/iic.c +++ b/Source/iic.c @@ -16,13 +16,6 @@ void iic_delay_us(uint16 x) //33.1776Mhz } } - -//------------------------------------------------------------------------------------------------------------------- -// @brief 内部使用用户无需关心 -// @param NULL -// @return void -// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 -//------------------------------------------------------------------------------------------------------------------- uint8 wait(void) { uint16 count = 0; @@ -40,12 +33,6 @@ uint8 wait(void) return ret; } -//------------------------------------------------------------------------------------------------------------------- -// @brief 内部使用用户无需关心 -// @param NULL -// @return void -// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 -//------------------------------------------------------------------------------------------------------------------- uint8 start(void) { uint8 ret; @@ -54,12 +41,6 @@ uint8 start(void) return ret; } -//------------------------------------------------------------------------------------------------------------------- -// @brief 内部使用用户无需关心 -// @param NULL -// @return void -// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 -//------------------------------------------------------------------------------------------------------------------- uint8 send_data(char dat) { uint8 ret; @@ -69,12 +50,6 @@ uint8 send_data(char dat) return ret; } -//------------------------------------------------------------------------------------------------------------------- -// @brief 内部使用用户无需关心 -// @param NULL -// @return void -// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 -//------------------------------------------------------------------------------------------------------------------- uint8 recv_ack(void) { uint8 ret; @@ -83,12 +58,6 @@ uint8 recv_ack(void) return ret; } -//------------------------------------------------------------------------------------------------------------------- -// @brief 内部使用用户无需关心 -// @param NULL -// @return void -// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 -//------------------------------------------------------------------------------------------------------------------- char recv_data(void) //接收数据 { I2CMSCR = 0x04; //发送RECV命令 @@ -96,12 +65,6 @@ char recv_data(void) //接收数据 return I2CRXD; } -//------------------------------------------------------------------------------------------------------------------- -// @brief 内部使用用户无需关心 -// @param NULL -// @return void -// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 -//------------------------------------------------------------------------------------------------------------------- uint8 send_ack(void) { uint8 ret; @@ -111,12 +74,6 @@ uint8 send_ack(void) return ret; } -//------------------------------------------------------------------------------------------------------------------- -// @brief 内部使用用户无需关心 -// @param NULL -// @return void -// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 -//------------------------------------------------------------------------------------------------------------------- void send_nak(void) { I2CMSST = 0x01; //设置NAK信号 @@ -124,12 +81,6 @@ void send_nak(void) wait(); } -//------------------------------------------------------------------------------------------------------------------- -// @brief 内部使用用户无需关心 -// @param NULL -// @return void -// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 -//------------------------------------------------------------------------------------------------------------------- uint8 stop(void) { uint8 ret; @@ -139,6 +90,33 @@ uint8 stop(void) } +void iic_scan(void) +{ + uint8 i; + for(i = 0; i <= 0x7F; i++) { //7位SlaveAddress + uint8 ACK_or_NACK = 0; + start(); + printf("."); + send_data((i << 1) | 0); //I2C从地址+写标志 + + I2CMSCR = 0x03; + while(!(I2CMSST & 0x40)); + if(I2CMSST & 0x02) //判断I2CMSST的bit1 MSACKI,读入的ACK信号为低即是ACK,为高为NACK. + ACK_or_NACK = 0; //MSACKI=1=NACK=没有正确收到ACK信号 + else + ACK_or_NACK = 1; //MSACKI=0=ACK=正确收到ACK信号 + I2CMSST &= ~0x40; //清除中断标志 + if(ACK_or_NACK) { + printf("\r\nFound Device Address:0x%02X\r\n", i); + // UART_SendHex(i); + // printf("%02x",i); + } else { + stop(); + } + + } +} + //#define UNUSED(expr1, expr2) do { if(scl_pin == sda_pin); } while (0) @@ -213,6 +191,40 @@ uint8 iic_write_reg(uint8 dev_add, uint8 reg, uint8 dat) return IIC_SEND_OK; } +//------------------------------------------------------------------------------------------------------------------- +// @brief 写入多个字节数据到I2C设备指定寄存器地址 + +//------------------------------------------------------------------------------------------------------------------- +uint8 iic_write_reg_bytes(uint8 dev_add, uint8 reg, uint8 *dat, uint8 num) +{ + if(start() != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(send_data((dev_add<<1) | 0x00) != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(recv_ack() != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(send_data(reg) != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(recv_ack() != IIC_SEND_OK) + return IIC_SEND_FAIL; + while(num--) + { + if(send_data(*dat) != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(recv_ack() != IIC_SEND_OK) + return IIC_SEND_FAIL; + dat++; + } + + // if(recv_ack() != IIC_SEND_OK) + // return IIC_SEND_FAIL; + if(stop() != IIC_SEND_OK) + return IIC_SEND_FAIL; + + + return IIC_SEND_OK; +} + //------------------------------------------------------------------------------------------------------------------- // @brief 读取I2C设备指定地址寄存器的数据 // @param iic_n I2C通道号及引脚 @@ -237,8 +249,10 @@ uint8 iic_read_reg(uint8 dev_add, uint8 reg, uint8 *dat) return IIC_SEND_FAIL; if(recv_ack() != IIC_SEND_OK) return IIC_SEND_FAIL; - - + // if(stop() != IIC_SEND_OK) + // return IIC_SEND_FAIL; + if(start() != IIC_SEND_OK) + return IIC_SEND_FAIL; // if(start() != IIC_SEND_OK) // return IIC_SEND_FAIL; @@ -288,26 +302,38 @@ uint8 iic_read_reg_bytes(uint8 dev_add, uint8 reg return IIC_SEND_FAIL; if(recv_ack() != IIC_SEND_OK) return IIC_SEND_FAIL; + // if(stop() != IIC_SEND_OK) + // return IIC_SEND_FAIL; + if(start() != IIC_SEND_OK) + return IIC_SEND_FAIL; if(send_data((dev_add<<1) | 0x01) != IIC_SEND_OK) return IIC_SEND_FAIL; if(recv_ack() != IIC_SEND_OK) return IIC_SEND_FAIL; - while(--num) + while(num--) { *dat = recv_data(); //读取数据 - if(send_ack() != IIC_SEND_OK) - { - return IIC_SEND_FAIL; - } - dat++; + if(num==0) + { + send_nak(); + } + else + { + if(send_ack() != IIC_SEND_OK) + { + return IIC_SEND_FAIL; + } + dat++; + } + } - *dat = recv_data(); + // *dat = recv_data(); - if(send_ack() != IIC_SEND_OK) - return IIC_SEND_FAIL; + // if(send_ack() != IIC_SEND_OK) + // return IIC_SEND_FAIL; if(stop() != IIC_SEND_OK) return IIC_SEND_FAIL; diff --git a/Source/iic_soft.c b/Source/iic_soft.c index 9e1fcf1..fcbf566 100644 --- a/Source/iic_soft.c +++ b/Source/iic_soft.c @@ -15,45 +15,45 @@ void soft_iic_delay(uint16 delay_time) void soft_iic_init(IIC_Soft_Config *config) { // 设置SCL和SDA引脚为推挽输出模式 - gpio_mode(config->scl_pin, GPIO); - gpio_mode(config->sda_pin, GPIO); + // gpio_mode(config->scl_pin, GPIO); + // gpio_mode(config->sda_pin, GPIO); // 初始化SCL和SDA引脚为高电平 - gpio_set_level(config->scl_pin, 1); - gpio_set_level(config->sda_pin, 1); + config->SCL_SET(); + config->SDA_SET(); } void soft_iic_start(IIC_Soft_Config *config) { - gpio_set_level(config->sda_pin, 0); // SDA拉低 + config->SDA_CLR(); // SDA拉低 soft_iic_delay(config->wait_time); // 等待一段时间 - gpio_set_level(config->scl_pin, 0); // SCL拉低 + config->SCL_CLR(); // SCL拉低 soft_iic_delay(config->wait_time); // 等待一段时间 } void soft_iic_stop(IIC_Soft_Config *config) { - gpio_set_level(config->sda_pin, 0); // SDA拉低 + config->SDA_CLR(); // SDA拉低 soft_iic_delay(config->wait_time); // 等待一段时间 - gpio_set_level(config->scl_pin, 1); // SCL拉高 + config->SCL_SET(); // SCL拉高 soft_iic_delay(config->wait_time); // 等待一段时间 - gpio_set_level(config->sda_pin, 1); // SDA拉高 + config->SDA_SET(); // SDA拉高 soft_iic_delay(config->wait_time); // 等待一段时间 } uint8 soft_iic_read(IIC_Soft_Config *config) { uint8 dat = 0,i; - gpio_set_level(config->sda_pin, 1); // 设置SDA为输入模式 + config->SDA_SET(); // 设置SDA为输入模式 for (i = 0; i < 8; i++) { - gpio_set_level(config->scl_pin, 1); // SCL拉高 + config->SCL_SET(); // SCL拉高 soft_iic_delay(config->wait_time); // 等待一段时间 - if (gpio_get_level(config->sda_pin)) // 读取SDA的状态 + if (config->SDA_READ()) // 读取SDA的状态 { dat |= (1 << (7 - i)); // 将读取的位存入dat } - gpio_set_level(config->scl_pin, 0); // SCL拉低 + config->SCL_CLR(); // SCL拉低 soft_iic_delay(config->wait_time); // 等待一段时间 } return dat; @@ -62,58 +62,113 @@ uint8 soft_iic_read(IIC_Soft_Config *config) void soft_iic_write(IIC_Soft_Config *config, uint8 dat) { uint8 i; - gpio_set_level(config->sda_pin, 0); // 设置SDA为输出模式 + config->SDA_CLR(); // 设置SDA为输出模式 for (i = 0; i < 8; i++) { soft_iic_delay(config->wait_time); // 等待一段时间 if (dat & (1 << (7 - i))) // 检查当前位 { - gpio_set_level(config->sda_pin, 1); // 写入1 + config->SDA_SET(); // 写入1 } else { - gpio_set_level(config->sda_pin, 0); // 写入0 + config->SDA_CLR(); // 写入0 } - gpio_set_level(config->scl_pin, 1); // SCL拉高 + config->SCL_SET(); // SCL拉高 soft_iic_delay(config->wait_time); // 等待一段时间 - gpio_set_level(config->scl_pin, 0); // SCL拉低 + config->SCL_CLR(); // SCL拉低 } soft_iic_delay(config->wait_time); // 等待一段时间 } -uint8 soft_iic_ack(IIC_Soft_Config *config) +uint8 soft_iic_rev_ack(IIC_Soft_Config *config) { - gpio_set_level(config->sda_pin, 0); // 发送ACK + uint8 err_count = 0; + config->SDA_SET(); // 发送 soft_iic_delay(config->wait_time); // 等待一段时间 - gpio_set_level(config->scl_pin, 1); // SCL拉高 + config->SCL_SET(); // SCL拉高 soft_iic_delay(config->wait_time); // 等待一段时间 - gpio_set_level(config->scl_pin, 0); // SCL拉低 + while(config->SDA_READ() == 1) + { + err_count++; + if(err_count > 30) + { + return 0; // 返回ACK失败 + } + soft_iic_delay(config->wait_time); // 等待一段时间 + } + config->SCL_CLR(); // SCL拉低 soft_iic_delay(config->wait_time); // 等待一段时间 - return 0; // 返回ACK成功 + return 1; } +void soft_iic_scan(IIC_Soft_Config *config) +{ + uint8 i; + for(i = 0; i <= 0x7F; i++) { //7位SlaveAddress + uint8 ACK_or_NACK = 0; + soft_iic_start(config); + printf("."); + soft_iic_write(config,(i << 1) | 0); //I2C从地址+写标志 + if(soft_iic_rev_ack(config) ) { + printf("\r\nFound Device Address:0x%02X\r\n", i); + // UART_SendHex(i); + // printf("%02x",i); + } else { + soft_iic_stop(config); + } + + } +} + + void soft_iic_nack(IIC_Soft_Config *config) { - gpio_set_level(config->sda_pin, 1); // 发送NACK + config->SDA_SET(); // 发送NACK soft_iic_delay(config->wait_time); // 等待一段时间 - gpio_set_level(config->scl_pin, 1); // SCL拉高 + config->SCL_SET(); // SCL拉高 soft_iic_delay(config->wait_time); // 等待一段时间 - gpio_set_level(config->scl_pin, 0); // SCL拉低 + config->SCL_CLR(); // SCL拉低 soft_iic_delay(config->wait_time); // 等待一段时间 } +void soft_iic_ack(IIC_Soft_Config *config) +{ + config->SDA_CLR(); // 发送ACK + soft_iic_delay(config->wait_time); // 等待一段时间 + config->SCL_SET(); // SCL拉高 + soft_iic_delay(config->wait_time); // 等待一段时间 + config->SCL_CLR(); // SCL拉低 + soft_iic_delay(config->wait_time); // 等待一段时间 +} void soft_iic_write_reg(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg, uint8 dat) { soft_iic_start(config); // 发送起始信号 soft_iic_write(config, (dev_addr << 1) | 0); // 发送设备地址和写命令 - soft_iic_ack(config); // 等待ACK + soft_iic_rev_ack(config); // 等待ACK soft_iic_write(config, reg); // 发送寄存器地址 - soft_iic_ack(config); // 等待ACK + soft_iic_rev_ack(config); // 等待ACK soft_iic_write(config, dat); // 发送数据 - soft_iic_ack(config); // 等待ACK + soft_iic_rev_ack(config); // 等待ACK + soft_iic_stop(config); // 发送停止信号 +} + +void soft_iic_write_reg_bytes(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg, uint8 *dat, uint8 len) +{ + soft_iic_start(config); // 发送起始信号 + soft_iic_write(config, (dev_addr << 1) | 0); // 发送设备地址和写命令 + soft_iic_rev_ack(config); // 等待ACK + soft_iic_write(config, reg); // 发送寄存器地址 + soft_iic_rev_ack(config); // 等待ACK + while(len--) + { + soft_iic_write(config, *dat); // 发送数据 + soft_iic_rev_ack(config); // 等待ACK + dat++; + } soft_iic_stop(config); // 发送停止信号 } @@ -121,14 +176,42 @@ uint8 soft_iic_read_reg(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg, uint { soft_iic_start(config); // 发送起始信号 soft_iic_write(config, (dev_addr << 1) | 0); // 发送设备地址和写命令 - soft_iic_ack(config); // 等待ACK + soft_iic_rev_ack(config); // 等待ACK soft_iic_write(config, reg); // 发送寄存器地址 - soft_iic_ack(config); // 等待ACK + soft_iic_rev_ack(config); // 等待ACK soft_iic_start(config); // 重新发送起始信号 soft_iic_write(config, (dev_addr << 1) | 1); // 发送设备地址和读命令 - soft_iic_ack(config); // 等待ACK + soft_iic_rev_ack(config); // 等待ACK *dat = soft_iic_read(config); // 读取数据 soft_iic_nack(config); // 发送NACK soft_iic_stop(config); // 发送停止信号 return *dat; // 返回读取的数据 -} \ No newline at end of file +} + +uint8 soft_iic_read_reg_bytes(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg, uint8 *buf, uint8 len) +{ + soft_iic_start(config); // 发送起始信号 + soft_iic_write(config, (dev_addr << 1) | 0); // 发送设备地址和写命令 + soft_iic_rev_ack(config); // 等待ACK + soft_iic_write(config, reg); // 发送寄存器地址 + soft_iic_rev_ack(config); // 等待ACK + soft_iic_start(config); // 重新发送起始信号 + soft_iic_write(config, (dev_addr << 1) | 1); // 发送设备地址和读命令 + soft_iic_rev_ack(config); // 等待ACK + while(len--) + { + *buf = soft_iic_read(config); // 读取数据 + if(len==0) + { + soft_iic_nack(config); // 发送NACK + } + else + { + soft_iic_ack(config); // 发送ACK + buf++; + } + } + soft_iic_stop(config); // 发送停止信号 + return *buf; // 返回成功 +} + diff --git a/Source/ina226.c b/Source/ina226.c new file mode 100644 index 0000000..ce63dd7 --- /dev/null +++ b/Source/ina226.c @@ -0,0 +1,123 @@ +#include "ina226.h" + +static uint8 is_iic_init = 0; +INA226_t ina226[INA226_NUM]; + +#if (1==INA226_USE_SOFT_IIC) + +#include "iic_soft.h" +static IIC_Soft_Config ina226_soft_config; + +void ina226_scl_set() +{ + INA226_SCL_LEVEL(1); +} + +void ina226_sda_set() +{ + INA226_SDA_LEVEL(1); +} + +void ina226_sda_clr() +{ + INA226_SDA_LEVEL(0); +} + +void ina226_scl_clr() +{ + INA226_SCL_LEVEL(0); +} + +uint8 ina226_sda_read() +{ + return INA226_SDA_READ(); +} + +#else + +#include "iic.h" + +#endif + + +void INA226_Init(INA226_t *ina226, uint8 addr, uint8 mode[2], float max_current_A, float rshunt_mOhm, float amp_fix_k, float vot_fix_k) +{ + float cal; + if(!is_iic_init) + { + #if (1==INA226_USE_SOFT_IIC) + ina226_soft_config.SCL_SET = ina226_scl_set; + ina226_soft_config.SCL_CLR = ina226_scl_clr; + ina226_soft_config.SDA_SET = ina226_sda_set; + ina226_soft_config.SDA_CLR = ina226_sda_clr; + ina226_soft_config.SDA_READ = ina226_sda_read; + ina226_soft_config.wait_time = INA226_SOFT_WAIT_TIME; + soft_iic_init(&ina226_soft_config); + #else + iic_init(INA226_IIC, INA226_HARD_WAIT_TIME); + #endif + is_iic_init = 1; + } + ina226->config.addr = addr; + ina226->config.mode[0] = mode[0]; + ina226->config.mode[1] = mode[1]; + ina226->config.max_current_A = max_current_A; + ina226->config.rshunt_mOhm = rshunt_mOhm; + ina226->config.vot_fix_k = vot_fix_k; + ina226->config.amp_fix_k = amp_fix_k; + + ina226->calibration.c_lsb_mA = max_current_A / 65.535f; // Current LSB + cal = (5120.0f) / (ina226->calibration.c_lsb_mA * ina226->config.rshunt_mOhm) * ina226->config.amp_fix_k; + ina226->calibration.cal[0] = (uint8)((uint16)cal >> 8); + ina226->calibration.cal[1] = (uint8)((uint16)cal & 0xFF); + + memset(&ina226->result, 0, sizeof(ina226->result)); + #if (1==INA226_USE_SOFT_IIC) + soft_iic_write_reg_bytes(&ina226_soft_config, ina226->config.addr, INA226_CONFIG_REG, ina226->config.mode, 2); + soft_iic_write_reg_bytes(&ina226_soft_config, ina226->config.addr, INA226_CALIBRATION_REG, ina226->calibration.cal, 2); + #else + iic_write_reg_bytes(ina226->config.addr, INA226_CONFIG_REG, ina226->config.mode, 2); + iic_write_reg_bytes(ina226->config.addr, INA226_CALIBRATION_REG, ina226->calibration.cal, 2); + #endif + +} + +void INA226_Read(INA226_t *ina226) +{ + uint8 counter; + if(!is_iic_init) return; + + // Read voltage, current, power, and shunt voltage registers + #if (1==INA226_USE_SOFT_IIC) + soft_iic_read_reg_bytes(&ina226_soft_config, ina226->config.addr, INA226_BUSVOT_REG, ina226->result.org_reg[1],2); + soft_iic_read_reg_bytes(&ina226_soft_config, ina226->config.addr, INA226_CURRENT_REG, ina226->result.org_reg[3],2); + soft_iic_read_reg_bytes(&ina226_soft_config, ina226->config.addr, INA226_POWER_REG, ina226->result.org_reg[2],2); + soft_iic_read_reg_bytes(&ina226_soft_config, ina226->config.addr, INA226_SHUNTVOT_REG, ina226->result.org_reg[0],2); + #else + iic_read_reg_bytes(ina226->config.addr, INA226_BUSVOT_REG, ina226->result.org_reg[1],2); + iic_read_reg_bytes(ina226->config.addr, INA226_CURRENT_REG, ina226->result.org_reg[3],2); + iic_read_reg_bytes(ina226->config.addr, INA226_POWER_REG, ina226->result.org_reg[2],2); + iic_read_reg_bytes(ina226->config.addr, INA226_SHUNTVOT_REG, ina226->result.org_reg[0],2); + #endif + + ina226->result.voltage_V = (int16)((ina226->result.org_reg[1][0] << 8) | ina226->result.org_reg[1][1]) * 0.00125f; + ina226->result.current_A = (int16)((ina226->result.org_reg[3][0] << 8) | ina226->result.org_reg[3][1]) * ina226->calibration.c_lsb_mA * 0.001f; + ina226->result.power_W = (int16)((ina226->result.org_reg[2][0] << 8) | ina226->result.org_reg[2][1]) * ina226->calibration.c_lsb_mA * 0.025f; + ina226->result.shunt_voltage_mV = (int16)((ina226->result.org_reg[0][0] << 8) | ina226->result.org_reg[0][1]) * 0.0025f; + + ina226->result.voltage_V = ina226->result.voltage_V > 0 ? ina226->result.voltage_V : 0; + ina226->result.current_A = ina226->result.current_A > 0 ? ina226->result.current_A : 0; + ina226->result.power_W = ina226->result.power_W > 0.016 && ina226->result.current_A > 0 && ina226->result.voltage_V > 0 ? ina226->result.power_W : 0; + ina226->result.shunt_voltage_mV = ina226->result.shunt_voltage_mV > 0 ? ina226->result.shunt_voltage_mV : 0; + + for(counter = 0; counter < 9; counter++) + { + ina226->result.past_voltage_V[counter] = ina226->result.past_voltage_V[counter+1]; + ina226->result.past_current_A[counter] = ina226->result.past_current_A[counter+1]; + } + ina226->result.past_voltage_V[9] = ina226->result.voltage_V; + ina226->result.past_current_A[9] = ina226->result.current_A; + + ina226->result.energy_J += (ina226->result.past_voltage_V[9] * ina226->result.past_current_A[9] + ina226->result.past_voltage_V[8] * ina226->result.past_current_A[8]) * (INA226_READ_TIME_MS / 2000.0f); + ina226->result.quantity_C += (ina226->result.past_current_A[9] + ina226->result.past_current_A[8]) * (INA226_READ_TIME_MS / 2000.0f); +} diff --git a/Source/isr.c b/Source/isr.c index 27be3f8..f66c5ad 100644 --- a/Source/isr.c +++ b/Source/isr.c @@ -1,6 +1,6 @@ #include "isr.h" #include "command.h" - +#include "ina226.h" //UART1中断 void UART1_Isr() interrupt 4 @@ -112,7 +112,8 @@ void TM0_Isr() interrupt 1 } void TM1_Isr() interrupt 3 { - + INA226_Read(&ina226[0]); + P07 ^= 0x01; } void TM2_Isr() interrupt 12 { diff --git a/Source/main.c b/Source/main.c index ec22798..f46ce1a 100644 --- a/Source/main.c +++ b/Source/main.c @@ -1,18 +1,90 @@ #include "common.h" #include "delay.h" +#include "oled_iic_SSD1306.h" +#include "ina226.h" +#include "tim.h" +#include "iic.h" +#include "iic_soft.h" +#include "printfs.h" +#include "pwm.h" +uint8 mode[2] = INA226_DEF_MODE; +// uint8 m5[2] = {0x0D, 0x1B}; +// int8 s_buff[30]; +// uint8 ttt = 0; +// extern IIC_Soft_Config ina226_soft_config; void main() { - board_init(); // 初始化板子 - delay_ms(1000); - printf("System Init...\r\n"); - + // delay_ms(1000); + // printf("System Init...\r\n"); + P05 = 0; + oled_init(); + INA226_Init(&ina226[0], INA226_DEF_ADDR, mode, 20, 5, 1.0683, 1.002393); + + pit_timer_ms(TIM_1,INA226_READ_TIME_MS); + + pwm_init(PWMA_CH1P_P60,100000,5000); + + // oled_fill(0xff); + + // iic_init(IIC_1,10); + // ttt += iic_write_reg_bytes(0x40, 0x00, mode, 2); + // ttt += iic_write_reg_bytes(0x40, 0x05, m5, 2); + // // printf("ttt: %d",ttt); + P06 = 0; + // iic_scan(); while(1) { - delay_ms(1000); - printf("System Running...\r\n"); + // soft_iic_scan(&ina226_soft_config); + // uint8 vot[2] = {0}; + // uint8 cru[2] = {0}; + // uint8 pow[2] = {0}; + // int16 vott, crut, powt; + // float votf, cruf, powf; + // // // iic_scan(); + // iic_read_reg_bytes(0x40, 0x02, vot, 2); + // iic_read_reg_bytes(0x40, 0x04, cru, 2); + // iic_read_reg_bytes(0x40, 0x03, pow, 2); + // zf_sprintf(s_buff, "VOT: %d,%d\r\n", 45, 1234); + // // printf("%s", s_buff); + // // printf("VOT: %d,%d\r\n", (int32)(vot[0] << 8 | vot[1]), 1234); + // vott = (int16)(vot[0] << 8 | vot[1]); + // votf = (float)vott * 1.25 /1000.0f; + + // crut = (int16)(cru[0] << 8 | cru[1]); + // cruf = (float)crut * 0.30518 /1000.0f; + + // powt = (int16)(pow[0] << 8 | pow[1]); + // powf = (float)powt * 0.30518*25 /1000.0f; + + oled_printf_float(0, 0, ina226[0].result.voltage_V,2,4);oled_p6x8str(55, 0, "V"); + oled_printf_float(0, 1, ina226[0].result.current_A,2,4);oled_p6x8str(55, 1, "A"); + oled_printf_float(0, 2, ina226[0].result.power_W,2,4);oled_p6x8str(55, 2, "W"); + oled_printf_float(0, 3, ina226[0].result.energy_J,5,2);oled_p6x8str(55, 3, "J"); + oled_printf_float(0, 4, ina226[0].result.energy_J/3600.0f,5,3);oled_p6x8str(55, 4, "Wh"); + oled_printf_float(0, 5, ina226[0].result.quantity_C,5,2);oled_p6x8str(55, 5, "C"); + // // oled_int16(0, 0, (int16)(vot[0] << 8 | vot[1])); + // oled_int16(0, 1, vot[0]); + // oled_int16(40, 1, vot[1]); + // oled_int16(80, 1, ttt); + // oled_int16(0, 2, -12345); + // oled_printf_float(0, 0, 45.6,2,4);oled_p6x8str(55, 0, "V"); + // oled_p6x8str(0,3,s_buff); + // // printf("System Running...\r\n"); + // // USB_SendData("wewe",4); + P53 ^= 0x01; + // if(P53) + // { + // oled_fill(0xff); + // } + // else + // { + // oled_fill(0x00); + // } + // delay_ms(1000); } -} \ No newline at end of file +} + diff --git a/Source/oled_font.c b/Source/oled_font.c new file mode 100644 index 0000000..960f2e9 --- /dev/null +++ b/Source/oled_font.c @@ -0,0 +1,223 @@ +#include "oled_font.h" + +const uint8 code ascii_font_8x16[][16]= +{ + // <阴码> <列行式> <逆向> <8*16> + // <纵向 8bit 为一个数据模型> <横向取模> + + // 字模数据储存格式为:{byte1, byte2,....byte16} + + // 字模数据与像素对应关系 + // byte 1 2 3 4 5 6 7 8 + // bit [ 0] [ 8] [ 16] [ 24] [ 32] [ 40] [ 48] [ 56] + // bit [ 1] [ 9] [ 17] [ 25] [ 33] [ 41] [ 49] [ 57] + // bit [ 2] [ 10] [ 18] [ 26] [ 34] [ 42] [ 50] [ 58] + // bit [ 3] [ 11] [ 19] [ 37] [ 35] [ 43] [ 51] [ 59] + // bit [ 4] [ 12] [ 20] [ 38] [ 36] [ 44] [ 52] [ 60] + // bit [ 5] [ 13] [ 21] [ 39] [ 37] [ 45] [ 53] [ 61] + // bit [ 6] [ 14] [ 22] [ 30] [ 38] [ 46] [ 54] [ 62] + // bit [ 7] [ 15] [ 23] [ 31] [ 39] [ 47] [ 55] [ 63] + + // byte 9 10 11 12 13 14 15 16 + // bit [ 64] [ 72] [ 80] [ 88] [ 96] [104] [112] [120] + // bit [ 65] [ 73] [ 81] [ 89] [ 97] [105] [113] [121] + // bit [ 66] [ 74] [ 82] [ 90] [ 98] [106] [114] [122] + // bit [ 67] [ 75] [ 83] [ 91] [ 99] [107] [115] [123] + // bit [ 68] [ 76] [ 84] [ 92] [100] [108] [116] [124] + // bit [ 69] [ 77] [ 85] [ 93] [101] [109] [117] [125] + // bit [ 70] [ 78] [ 86] [ 94] [102] [110] [118] [126] + // bit [ 71] [ 79] [ 87] [ 95] [103] [111] [119] [127] + + {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0 + {0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00}, // ! 1 + {0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // " 2 + {0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00}, // # 3 + {0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00}, // $ 4 + {0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00}, // % 5 + {0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10}, // & 6 + {0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // ' 7 + {0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00}, // ( 8 + {0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00}, // ) 9 + {0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00}, // * 10 + {0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00}, // + 11 + {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00}, // , 12 + {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01}, // - 13 + {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00}, // . 14 + {0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00}, // / 15 + {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00}, // 0 16 + {0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00}, // 1 17 + {0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00}, // 2 18 + {0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00}, // 3 19 + {0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00}, // 4 20 + {0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00}, // 5 21 + {0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00}, // 6 22 + {0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00}, // 7 23 + {0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00}, // 8 24 + {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00}, // 9 25 + {0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00}, // : 26 + {0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00}, // ; 27 + {0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00}, // < 28 + {0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00}, // = 29 + {0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00}, // > 30 + {0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00}, // ? 31 + {0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00}, // @ 32 + {0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20}, // A 33 + {0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00}, // B 34 + {0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00}, // C 35 + {0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00}, // D 36 + {0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00}, // E 37 + {0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00}, // F 38 + {0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00}, // G 39 + {0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20}, // H 40 + {0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00}, // I 41 + {0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00}, // J 42 + {0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00}, // K 43 + {0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00}, // L 44 + {0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00}, // M 45 + {0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00}, // N 46 + {0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00}, // O 47 + {0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00}, // P 48 + {0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00}, // Q 49 + {0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20}, // R 50 + {0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00}, // S 51 + {0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00}, // T 52 + {0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00}, // U 53 + {0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00}, // V 54 + {0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00}, // W 55 + {0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20}, // X 56 + {0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00}, // Y 57 + {0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00}, // Z 58 + {0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00}, // [ 59 + {0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00}, // \ 60 + {0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00}, // ] 61 + {0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // ^ 62 + {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, // _ 63 + {0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // ` 64 + {0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20}, // a 65 + {0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00}, // b 66 + {0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00}, // c 67 + {0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20}, // d 68 + {0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00}, // e 69 + {0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00}, // f 70 + {0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00}, // g 71 + {0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20}, // h 72 + {0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00}, // i 73 + {0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00}, // j 74 + {0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00}, // k 75 + {0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00}, // l 76 + {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F}, // m 77 + {0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20}, // n 78 + {0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00}, // o 79 + {0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00}, // p 80 + {0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80}, // q 81 + {0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00}, // r 82 + {0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00}, // s 83 + {0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00}, // t 84 + {0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20}, // u 85 + {0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00}, // v 86 + {0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00}, // w 87 + {0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00}, // x 88 + {0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00}, // y 89 + {0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00}, // z 90 + {0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40}, // { 91 + {0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00}, // | 92 + {0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00}, // } 93 + {0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00} // ~ 94 +}; + +const uint8 code oled_6x8[][6] = +{ + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp + { 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 }, // ! + { 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 }, // " + { 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // # + { 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $ + { 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 }, // % + { 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 }, // & + { 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 }, // ' + { 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 }, // ( + { 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 }, // ) + { 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 }, // * + { 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 }, // + + { 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 }, // , + { 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 }, // - + { 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 }, // . + { 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 }, // / + { 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0 + { 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1 + { 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2 + { 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3 + { 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4 + { 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5 + { 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6 + { 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7 + { 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8 + { 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9 + { 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 }, // : + { 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 }, // ; + { 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 }, // < + { 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 }, // = + { 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 }, // > + { 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 }, // ? + { 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E }, // @ + { 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C }, // A + { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B + { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C + { 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D + { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E + { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F + { 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G + { 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H + { 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I + { 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J + { 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K + { 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L + { 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M + { 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N + { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O + { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P + { 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q + { 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R + { 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 }, // S + { 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T + { 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U + { 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V + { 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F }, // W + { 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 }, // X + { 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y + { 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z + { 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 }, // [ + { 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 }, // 55 + { 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 }, // ] + { 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^ + { 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 }, // _ + { 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 }, // ' + { 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 }, // a + { 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 }, // b + { 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 }, // c + { 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F }, // d + { 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 }, // e + { 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 }, // f + { 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C }, // g + { 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 }, // h + { 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 }, // i + { 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 }, // j + { 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 }, // k + { 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 }, // l + { 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 }, // m + { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 }, // n + { 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 }, // o + { 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 }, // p + { 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC }, // q + { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 }, // r + { 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 }, // s + { 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 }, // t + { 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C }, // u + { 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C }, // v + { 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C }, // w + { 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 }, // x + { 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C }, // y + { 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 }, // z + { 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 } // horiz lines +}; + diff --git a/Source/oled_iic_SSD1306.c b/Source/oled_iic_SSD1306.c new file mode 100644 index 0000000..326e1d5 --- /dev/null +++ b/Source/oled_iic_SSD1306.c @@ -0,0 +1,491 @@ +#include "oled_iic_SSD1306.h" +#include "oled_font.h" +#include "delay.h" +#include "printfs.h" + +#if (1==OLED_USE_SOFT_IIC) + +#include "iic_soft.h" + +static IIC_Soft_Config oled_soft_iic; + +#else + +#include "iic.h" + +#endif + + +//------------------------------------------------------------------------------------------------------------------- +// @brief 内部调用,用户无需关心 +// @param void +// @return +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +void oled_wrdat(uint8 dat) +{ +#if (1==OLED_USE_SOFT_IIC) + soft_iic_write_reg(&oled_soft_iic, OLED_ADDR, 0x40, dat); +#else + iic_write_reg(OLED_ADDR, 0x40, dat); +#endif +} + + +//------------------------------------------------------------------------------------------------------------------- +// @brief 内部调用,用户无需关心 +// @param void +// @return +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +void oled_wrcmd(uint8 cmd) +{ +#if (1==OLED_USE_SOFT_IIC) + soft_iic_write_reg(&oled_soft_iic, OLED_ADDR, 0x00, cmd); +#else + iic_write_reg(OLED_ADDR, 0x00, cmd); +#endif +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 内部调用,用户无需关心 +// @param void +// @return +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +void oled_hexascii(uint16 hex,int8 * Print) +{ + uint8 edata hexcheck ; + uint8 edata TEMP ; + TEMP = 6 ; + Print[TEMP ]='\0'; + while(TEMP) + { + TEMP -- ; + hexcheck = hex%10 ; + hex /=10 ; + Print[TEMP ] = hexcheck + 0x30 ; + } + +} + +#if (1==OLED_USE_SOFT_IIC) +void oled_scl_set() +{ + OLED_SCL_LEVEL(1); +} + +void oled_sda_set() +{ + OLED_SDA_LEVEL(1); +} + +void oled_sda_clr() +{ + OLED_SDA_LEVEL(0); +} + +void oled_scl_clr() +{ + OLED_SCL_LEVEL(0); +} + +uint8 oled_sda_read() +{ + return OLED_SDA_READ(); +} + +#endif + +//------------------------------------------------------------------------------------------------------------------- +// @brief OLED初始化函数 +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +void oled_init(void) +{ + // unsigned char i; + // unsigned char initData[] = {0xAE,0x00,0x10,0x40,0xB0,0x81,0xFF,0xA0,0xA6,0xA8,0x3F,0xC8,0xD3,0x00,0xD5,0x80,0xD9,0xF1,0xDA,0x12,0xDB,0x30,0x8D,0x14,0xAF}; +#if (1==OLED_USE_SOFT_IIC) + // oled_soft_iic.sda_pin = OLED_SDA_PIN; + // oled_soft_iic.scl_pin = OLED_SCL_PIN; + oled_soft_iic.SCL_SET = oled_scl_set; + oled_soft_iic.SCL_CLR = oled_scl_clr; + oled_soft_iic.SDA_SET = oled_sda_set; + oled_soft_iic.SDA_CLR = oled_sda_clr; + oled_soft_iic.SDA_READ = oled_sda_read; + oled_soft_iic.wait_time = OLED_SOFT_WAIT_TIME; + soft_iic_init(&oled_soft_iic); +#else + iic_init(OLED_IIC,OLED_HARD_WAIT_TIME); +#endif + + + // for(i=0;i<25;i++){ + // oled_wrcmd(initData[i]); + // } + + // oled_wrcmd(0xAE); + // oled_wrcmd(0x40); + // oled_wrcmd(0xB0); + // oled_wrcmd(0xC8); + // oled_wrcmd(0x81); + // oled_wrcmd(0xFF); + // oled_wrcmd(0xA1); + // oled_wrcmd(0xA6); + // oled_wrcmd(0xA8); + // oled_wrcmd(0x1F); + // oled_wrcmd(0xD3); + // oled_wrcmd(0x00); + // oled_wrcmd(0xD5); + // oled_wrcmd(0xF0); + // oled_wrcmd(0xD9); + // oled_wrcmd(0x22); + // oled_wrcmd(0xDA); + // oled_wrcmd(0x02); + // oled_wrcmd(0xDB); + // oled_wrcmd(0x49); + // oled_wrcmd(0x8D); + // oled_wrcmd(0x14); + // oled_wrcmd(0xAF); + + oled_wrcmd(0xae);//--turn off oled panel + oled_wrcmd(0x00);//---set low column address + oled_wrcmd(0x10);//---set high column address + oled_wrcmd(0x40);//--set start line address Set Mapping RAM Display Start Line (0x00~0x3F) + oled_wrcmd(0x81);//--set contrast control register + oled_wrcmd(Brightness); // Set SEG Output Current Brightness + +#if (0 == OLED_DISPLAY_DIR) + oled_wrcmd(0xa1);//--Set SEG/Column Mapping 0xa0左右反置 0xa1正常 + oled_wrcmd(0xc8);//Set COM/Row Scan Direction 0xc0上下反置 0xc8正常 +#else + oled_wrcmd(0xa0);//--Set SEG/Column Mapping 0xa0左右反置 0xa1正常 + oled_wrcmd(0xc0);//Set COM/Row Scan Direction 0xc0上下反置 0xc8正常 +#endif + + oled_wrcmd(0xa6);//--set normal display + oled_wrcmd(0xa8);//--set multiplex ratio(1 to 64) + oled_wrcmd(0x3f);//--1/64 duty + oled_wrcmd(0xd3);//-set display offset Shift Mapping RAM Counter (0x00~0x3F) + oled_wrcmd(0x00);//-not offset + oled_wrcmd(0xd5);//--set display clock divide ratio/oscillator frequency + oled_wrcmd(0x80);//--set divide ratio, Set Clock as 100 Frames/Sec + oled_wrcmd(0xd9);//--set pre-charge period + oled_wrcmd(0xf1);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock + oled_wrcmd(0xda);//--set com pins hardware configuration + oled_wrcmd(0x12); + oled_wrcmd(0xdb);//--set vcomh + oled_wrcmd(0x40);//Set VCOM Deselect Level + oled_wrcmd(0x20);//-Set Page Addressing Mode (0x00/0x01/0x02) + oled_wrcmd(0x02);// + oled_wrcmd(0x8d);//--set Charge Pump enable/disable + oled_wrcmd(0x14);//--set(0x10) disable + oled_wrcmd(0xa4);// Disable Entire Display On (0xa4/0xa5) + oled_wrcmd(0xa6);// Disable Inverse Display On (0xa6/a7) + oled_wrcmd(0xaf);//--turn on oled panel + oled_fill(0x00); //初始清屏 + oled_set_pos(0,0); +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief OLED显示坐标设置 +// @param x x轴坐标设置0-127 +// @param y y轴坐标设置0-7 +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +void oled_set_pos(uint8 x, uint8 y) +{ + oled_wrcmd((uint8)(0xb0+y)); + oled_wrcmd((uint8)(((x&0xf0)>>4)|0x10)); + oled_wrcmd((uint8)((x&0x0f))); +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief OLED清屏函数 +// @param bmp_data 填充颜色选着(0x00 or 0xff) +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +void oled_fill(uint8 bmp_data) +{ + uint8 edata y,x; + + for(y=0;y<8;y++) + { + oled_wrcmd((uint8)(0xb0+y)); + oled_wrcmd((uint8)(0x01)); + oled_wrcmd((uint8)(0x10)); + for(x=0;x>4)|0x10)); + oled_wrcmd((uint8)((x&0x0f)|0x00)); + oled_wrdat(data1); +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief OLED关闭一个坐标所有亮点 +// @param x x轴坐标设置0-127 +// @param y y轴坐标设置0-7 +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +void oled_clrpixel(uint8 x,uint8 y) +{ + oled_set_pos(x,y); + oled_wrcmd((uint8)(0xb0+y)); + oled_wrcmd((uint8)(((x&0xf0)>>4)|0x10)); + oled_wrcmd((uint8)((x&0x0f)|0x00)); + oled_wrdat(0x00); +} + + +//------------------------------------------------------------------------------------------------------------------- +// @brief OLED显示字符串(6*8字体) +// @param x x轴坐标设置0-127 +// @param y y轴坐标设置0-7 +// @param ch[] 字符串 +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +void oled_p6x8str(uint8 x,uint8 y,const int8 ch[]) +{ + uint8 edata c=0,i=0,j=0; + while (ch[j]!='\0') + { + c =ch[j]-32; + if(x>126){x=0;y++;} + oled_set_pos(x,y); + for(i=0;i<6;i++) oled_wrdat(oled_6x8[c][i]); + x+=6; + j++; + } +} + + +//------------------------------------------------------------------------------------------------------------------- +// @brief OLED显示无符号数(6*8字体) +// @param x x轴坐标设置0-127 +// @param y y轴坐标设置0-7 +// @param num 无符号数 +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +void oled_uint16(uint8 x, uint8 y, uint16 num) +{ + int8 ch[7]; + + oled_hexascii(num,ch); + + oled_p6x8str(x, y, &ch[1]); //显示数字 6*8字体 + //oled_p8x16str(x, y, &ch[1]); //显示数字 8*16字体 +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief OLED显示有符号数(6*8字体) +// @param x x轴坐标设置0-127 +// @param y y轴坐标设置0-7 +// @param num 有符号数 +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +void oled_int16(uint8 x, uint8 y, int16 num) +{ + int8 ch[7]; + if(num<0) {num = -num;oled_p6x8str(x, y, "-");} + else oled_p6x8str(x, y, " "); + x+=6; + + oled_hexascii(num,ch); + oled_p6x8str(x, y, &ch[1]); //显示数字 6*8字体 +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief OLED显示32位有符号(去除整数部分无效的0) +// @param x x轴坐标设置0-127 +// @param y y轴坐标设置0-7 +// @param dat 需要显示的变量,数据类型uint32 +// @param num 需要显示的位数 最高10位 不包含正负号 +// @return void +// @since v1.0 +// Sample usage: oled_printf_int32(0,0,x,5);//x可以为int32 uint16 int16 uint8 int8类型 +// Sample usage: 负数会显示一个 ‘-’号 正数显示一个空格 +//------------------------------------------------------------------------------------------------------------------- +void oled_printf_int32(uint16 x,uint16 y,int32 dat,uint8 num) +{ + int8 buff[34]; + uint8 length; + + if(10dat) length = zf_sprintf( &buff[0],"%d",dat);//负数 + else + { + buff[0] = ' '; + length = zf_sprintf( &buff[1],"%d",dat); + length++; + } + while(length < num) + { + buff[length] = ' '; + length++; + } + buff[num] = '\0'; + + oled_p6x8str((uint8)x, (uint8)y, (int *)buff); //显示数字 +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief OLED显示浮点数(去除整数部分无效的0) +// @param x x轴坐标设置0-127 +// @param y y轴坐标设置0-7 +// @param dat 需要显示的变量,数据类型float或double +// @param num 整数位显示长度 最高10位 +// @param pointnum 小数位显示长度 最高6位 +// @return void +// @since v1.0 +// Sample usage: oled_printf_float(0,0,x,2,3);//显示浮点数 整数显示2位 小数显示三位 +// @note 特别注意当发现小数部分显示的值与你写入的值不一样的时候, +// 可能是由于浮点数精度丢失问题导致的,这并不是显示函数的问题, +// 有关问题的详情,请自行百度学习 浮点数精度丢失问题。 +// 负数会显示一个 ‘-’号 正数显示一个空格 +//------------------------------------------------------------------------------------------------------------------- +void oled_printf_float(uint16 x,uint16 y,double dat,uint8 num,uint8 pointnum) +{ + uint8 length; + int8 buff[34]; + int8 start,end,point; + + if(6dat) length = zf_sprintf( &buff[0],"%f",dat);//负数 + else + { + length = zf_sprintf( &buff[1],"%f",dat); + length++; + } + point = length - 7; //计算小数点位置 + start = point - num - 1; //计算起始位 + end = point + pointnum + 1; //计算结束位 + while(0>start)//整数位不够 末尾应该填充空格 + { + buff[end] = ' '; + end++; + start++; + } + + if(0>dat) buff[start] = '-'; + else buff[start] = ' '; + + buff[end] = '\0'; + + oled_p6x8str((uint8)x, (uint8)y, (int8 *)buff); //显示数字 +} + + + +//------------------------------------------------------------------------------------------------------------------- +// @brief OLED显示图像 +// @param high 图像高度 +// @param width 图像宽度 +// @param *p 图像地址(数组) +// @param value 二值化阀值 +// @return void +// @since v1.0 +// Sample usage: +// @Note 使用Image2lcd V3.2软件取模 C语言数组 水平扫描 +// 宽度高度自行设置 颜色反转 256色 +//------------------------------------------------------------------------------------------------------------------- +void oled_dis_bmp(uint16 high, uint16 width, uint8 *p,uint8 value) +{ + uint16 i = 0; + uint16 edata j = 0; + uint16 temp = 0,temp1 = 0; + uint8 dat = 0; + + + temp1 = high%8; + if(temp1 == 0) temp = high/8; + else temp = high/8+1; + + for(i=0; i=1))dat |= (*(p+i*8*width+j+width*0) > value? 1: 0)<<0; + if( (i<(temp-1)) || !temp1 || (temp1>=2))dat |= (*(p+i*8*width+j+width*1) > value? 1: 0)<<1; + if( (i<(temp-1)) || !temp1 || (temp1>=3))dat |= (*(p+i*8*width+j+width*2) > value? 1: 0)<<2; + if( (i<(temp-1)) || !temp1 || (temp1>=4))dat |= (*(p+i*8*width+j+width*3) > value? 1: 0)<<3; + if( (i<(temp-1)) || !temp1 || (temp1>=5))dat |= (*(p+i*8*width+j+width*4) > value? 1: 0)<<4; + if( (i<(temp-1)) || !temp1 || (temp1>=6))dat |= (*(p+i*8*width+j+width*5) > value? 1: 0)<<5; + if( (i<(temp-1)) || !temp1 || (temp1>=7))dat |= (*(p+i*8*width+j+width*6) > value? 1: 0)<<6; + if( (i<(temp-1)) || !temp1 || (temp1>=8))dat |= (*(p+i*8*width+j+width*7) > value? 1: 0)<<7; + + oled_wrdat(dat); + } + } +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 汉字显示 +// @param x 横坐标 0-127 +// @param y 纵坐标 0-7 +// @param size 取模的时候设置的汉字字体大小,也就是一个汉字占用的点阵长宽为多少个点,取模的时候需要长宽是一样的。 +// @param *p 需要显示的汉字数组 +// @param len 需要显示多少位 +// @return void +// @since v1.0 +// Sample usage: +// @Note 使用PCtoLCD2002软件取模 阴码、逐行式、顺向 16*16 +//------------------------------------------------------------------------------------------------------------------- +void oled_print_chinese(uint8 x, uint8 y, uint8 size, const uint8 *p, uint8 len) +{ + uint16 i,j,k; + + for(i=0; i +#include + +uint8 number_conversion_ascii(uint32 dat, int8 *p, uint8 neg_type, uint8 radix) +{ + int32 neg_dat; + uint32 pos_dat; + uint8 temp_data = 0; + uint8 valid_num = 0; + + if(neg_type) + { + neg_dat = (int32)dat; + if(neg_dat<0) neg_dat = -neg_dat; + while(1) + { + *p = neg_dat%radix + '0'; + neg_dat = neg_dat/radix; + valid_num++; + + if(!neg_dat) break; + p++; + } + } + else + { + pos_dat = dat; + while(1) + { + temp_data = pos_dat%radix; + if(10 <= temp_data) temp_data += 'A'-10; + else temp_data += '0'; + + *p = temp_data; + + pos_dat = pos_dat/radix; + valid_num++; + + if(!pos_dat) break; + p++; + } + } + return valid_num; +} + +void printf_reverse_order(int8 *d_buff, uint32 len) +{ + uint32 i; + int8 temp_data; + for(i=0;ivlen) + { + vstr[vlen] = '0'; + vlen++; + } + + vstr[vlen] = '.'; + vlen++; + + printf_reverse_order(vstr,vlen); + memcpy(buff,vstr,vlen); + buff += vlen; + buff_len += vlen; + + break; + } + + case 'u':// 无符号十进制整数 + { + int8 vstr[33]; + uint32 ival = (uint32)va_arg(arg, uint32); + uint8 vlen = number_conversion_ascii(ival, vstr, 0, 10); + + printf_reverse_order(vstr,vlen); + memcpy(buff,vstr,vlen); + buff += vlen; + buff_len += vlen; + }break; + + case 'o':// 无符号八进制整数 + { + int8 vstr[33]; + uint32 ival = (uint32)va_arg(arg, uint32); + uint8 vlen = number_conversion_ascii(ival, vstr, 0, 8); + + printf_reverse_order(vstr,vlen); + memcpy(buff,vstr,vlen); + buff += vlen; + buff_len += vlen; + + }break; + + case 'x':// 无符号十六进制整数 + case 'X':// 无符号十六进制整数 + { + int8 vstr[33]; + uint32 ival = (uint32)va_arg(arg, uint32); + uint8 vlen = number_conversion_ascii(ival, vstr, 0, 16); + + printf_reverse_order(vstr,vlen); + memcpy(buff,vstr,vlen); + buff += vlen; + buff_len += vlen; + }break; + + + case 's':// 字符串 + { + int8 *pc = va_arg(arg, int8 *); + while (*pc) + { + *buff = *pc; + buff++; + buff_len++; + pc++; + } + }break; + + case 'p':// 以16进制形式输出指针 + { + int8 vstr[33]; + uint32 ival = (uint32)va_arg(arg, uint32); + //uint8 vlen = number_conversion_ascii(ival, vstr, 0, 16); + number_conversion_ascii(ival, vstr, 0, 16); + + printf_reverse_order(vstr,8); + memcpy(buff,vstr,8); + buff += 8; + buff_len += 8; + + }break; + + + case '%':// 输出字符% + { + *buff = '%'; + buff++; + buff_len++; + }break; + + default:break; + } + } + else + { + *buff = (int8)(*format); + buff++; + buff_len++; + } + format++; + } + va_end(arg); + + return buff_len; +} diff --git a/stc32g_all.uvopt b/stc32g_all.uvopt index 3a171d7..0553992 100644 --- a/stc32g_all.uvopt +++ b/stc32g_all.uvopt @@ -379,6 +379,54 @@ 0 0 + + 1 + 18 + 1 + 0 + 0 + 0 + .\Source\oled_iic_SSD1306.c + oled_iic_SSD1306.c + 0 + 0 + + + 1 + 19 + 1 + 0 + 0 + 0 + .\Source\oled_font.c + oled_font.c + 0 + 0 + + + 1 + 20 + 1 + 0 + 0 + 0 + .\Source\printfs.c + printfs.c + 0 + 0 + + + 1 + 21 + 1 + 0 + 0 + 0 + .\Source\ina226.c + ina226.c + 0 + 0 + @@ -389,7 +437,7 @@ 0 2 - 18 + 22 0 0 0 @@ -401,7 +449,7 @@ 2 - 19 + 23 5 0 0 @@ -413,7 +461,7 @@ 2 - 20 + 24 5 0 0 @@ -425,7 +473,7 @@ 2 - 21 + 25 5 0 0 @@ -437,7 +485,7 @@ 2 - 22 + 26 5 0 0 @@ -449,7 +497,7 @@ 2 - 23 + 27 5 0 0 @@ -461,7 +509,7 @@ 2 - 24 + 28 5 0 0 @@ -473,7 +521,7 @@ 2 - 25 + 29 5 0 0 @@ -485,7 +533,7 @@ 2 - 26 + 30 5 0 0 @@ -497,7 +545,7 @@ 2 - 27 + 31 5 0 0 @@ -509,7 +557,7 @@ 2 - 28 + 32 5 0 0 @@ -521,7 +569,7 @@ 2 - 29 + 33 5 0 0 @@ -533,7 +581,7 @@ 2 - 30 + 34 5 0 0 @@ -545,7 +593,7 @@ 2 - 31 + 35 5 0 0 @@ -557,7 +605,7 @@ 2 - 32 + 36 5 0 0 @@ -569,7 +617,7 @@ 2 - 33 + 37 5 0 0 @@ -581,7 +629,7 @@ 2 - 34 + 38 5 0 0 @@ -593,7 +641,7 @@ 2 - 35 + 39 5 0 0 @@ -605,7 +653,7 @@ 2 - 36 + 40 5 0 0 @@ -615,6 +663,54 @@ 0 0 + + 2 + 41 + 5 + 0 + 0 + 0 + .\Header\oled_iic_SSD1306.h + oled_iic_SSD1306.h + 0 + 0 + + + 2 + 42 + 5 + 0 + 0 + 0 + .\Header\oled_font.h + oled_font.h + 0 + 0 + + + 2 + 43 + 5 + 0 + 0 + 0 + .\Header\printfs.h + printfs.h + 0 + 0 + + + 2 + 44 + 5 + 0 + 0 + 0 + .\Header\ina226.h + ina226.h + 0 + 0 + @@ -625,7 +721,7 @@ 0 3 - 37 + 45 4 0 0 diff --git a/stc32g_all.uvproj b/stc32g_all.uvproj index a6bafce..27012cb 100644 --- a/stc32g_all.uvproj +++ b/stc32g_all.uvproj @@ -409,6 +409,26 @@ 1 .\Source\stc32_stc8_usb.c + + oled_iic_SSD1306.c + 1 + .\Source\oled_iic_SSD1306.c + + + oled_font.c + 1 + .\Source\oled_font.c + + + printfs.c + 1 + .\Source\printfs.c + + + ina226.c + 1 + .\Source\ina226.c + @@ -509,6 +529,26 @@ 5 .\Header\stc32_stc8_usb.h + + oled_iic_SSD1306.h + 5 + .\Header\oled_iic_SSD1306.h + + + oled_font.h + 5 + .\Header\oled_font.h + + + printfs.h + 5 + .\Header\printfs.h + + + ina226.h + 5 + .\Header\ina226.h +