diff --git a/leakage_system/MDK-ARM/RTE/_leakage_system/RTE_Components.h b/leakage_system/MDK-ARM/RTE/_leakage_system/RTE_Components.h index 153dac0..0246594 100644 --- a/leakage_system/MDK-ARM/RTE/_leakage_system/RTE_Components.h +++ b/leakage_system/MDK-ARM/RTE/_leakage_system/RTE_Components.h @@ -11,11 +11,5 @@ #define RTE_COMPONENTS_H -/* - * Define the Device Header File: - */ -#define CMSIS_device_header "stm32f4xx.h" - - #endif /* RTE_COMPONENTS_H */ diff --git a/leakage_system/MDK-ARM/leakage_system.uvguix.22639 b/leakage_system/MDK-ARM/leakage_system.uvguix.22639 index 2b58833..8103346 100644 --- a/leakage_system/MDK-ARM/leakage_system.uvguix.22639 +++ b/leakage_system/MDK-ARM/leakage_system.uvguix.22639 @@ -78,11 +78,11 @@ - 1 - 1 + 0 + 0 0 - 0 - -1 + 50 + 16 @@ -101,17 +101,17 @@ -1 - 181 - 209 - 2404 - 1437 + 91 + 623 + 2392 + 1186 0 - 256 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000100000000000000010000003D443A5C776F726B5C636F64655C6769745C4C65616B6167652D436F6E74726F6C5C6C65616B6167655F73797374656D5C7573725C6170705C6170702E6300000000056170702E6300000000C5D4F200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000001D020000230100005C090000BA040000 + 356 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000045443A5C776F726B5C636F64655C6769745C4C65616B6167652D436F6E74726F6C5C6C65616B6167655F73797374656D5C7573725C6170705C6170705F6C65616B6167652E63000000000D6170705F6C65616B6167652E6300000000C5D4F200FFFFFFFF3D443A5C776F726B5C636F64655C6769745C4C65616B6167652D436F6E74726F6C5C6C65616B6167655F73797374656D5C7573725C6170705C6170702E6300000000056170702E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000BB030000C900000050090000BF030000 @@ -134,7 +134,7 @@ 16 - 3C00000053000000F403000017010000 + BB030000C9000000E70900008D010000 @@ -150,7 +150,7 @@ 0 16 - 03000000660000003D010000CD030000 + 03000000660000003D0100002C030000 16 @@ -170,7 +170,7 @@ 0 16 - 03000000660000003D010000CD030000 + 03000000660000003D0100002C030000 16 @@ -190,7 +190,7 @@ 0 16 - 000000000103000070070000C5030000 + 03000000040300006D070000AC030000 16 @@ -210,7 +210,7 @@ 0 16 - 03000000040300006D07000098030000 + 03000000040300006D070000AC030000 16 @@ -230,7 +230,7 @@ 0 16 - 03000000040300006D07000098030000 + 03000000040300006D070000AC030000 16 @@ -250,7 +250,7 @@ 0 16 - 03000000040300006D07000098030000 + 03000000040300006D070000AC030000 16 @@ -270,7 +270,7 @@ 0 16 - 33060000660000006D07000047010000 + 33060000660000006D070000E4020000 16 @@ -330,7 +330,7 @@ 0 16 - 03000000040300006D07000098030000 + 03000000040300006D070000AC030000 16 @@ -350,7 +350,7 @@ 0 16 - 03000000040300006D07000098030000 + 03000000040300006D070000AC030000 16 @@ -370,7 +370,7 @@ 0 16 - 03000000040300006D07000098030000 + 03000000040300006D070000AC030000 16 @@ -390,7 +390,7 @@ 0 16 - 03000000040300006D07000098030000 + 03000000040300006D070000AC030000 16 @@ -410,7 +410,7 @@ 0 16 - 03000000040300006D07000098030000 + 03000000040300006D070000AC030000 16 @@ -430,7 +430,7 @@ 0 16 - 03000000040300006D07000098030000 + 03000000040300006D070000AC030000 16 @@ -450,7 +450,7 @@ 0 16 - 03000000660000003D010000CD030000 + 03000000660000003D0100002C030000 16 @@ -470,7 +470,7 @@ 0 16 - 03000000660000003D010000CD030000 + 03000000660000003D0100002C030000 16 @@ -490,7 +490,7 @@ 0 16 - 00000000FE03000083080000AE040000 + 0300000060030000D6060000F4030000 16 @@ -520,7 +520,7 @@ 199 199 - 0 + 1 0 0 0 @@ -530,7 +530,7 @@ 0 16 - 03000000010400006D07000095040000 + 0300000060030000D6060000F4030000 16 @@ -550,7 +550,7 @@ 0 16 - 44010000630000007007000013010000 + 47010000660000006D070000FA000000 16 @@ -610,7 +610,7 @@ 0 16 - 300600006300000070070000FD020000 + 33060000660000006D070000E4020000 16 @@ -630,7 +630,7 @@ 0 16 - 000000000103000070070000B1030000 + 03000000040300006D070000AC030000 16 @@ -690,7 +690,7 @@ 0 16 - 44010000630000007007000013010000 + 47010000660000006D070000FA000000 16 @@ -730,7 +730,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -750,7 +750,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -770,7 +770,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -790,7 +790,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -810,7 +810,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -830,7 +830,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -850,7 +850,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -870,7 +870,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -890,7 +890,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -910,7 +910,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -930,7 +930,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -950,7 +950,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -970,7 +970,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -990,7 +990,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1010,7 +1010,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1030,7 +1030,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1050,7 +1050,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1070,7 +1070,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1090,7 +1090,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1110,7 +1110,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1130,7 +1130,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1150,7 +1150,7 @@ 0 16 - 03000000660000003D010000AC030000 + 03000000660000003D0100002C030000 16 @@ -1160,7 +1160,7 @@ 38007 38007 - 0 + 1 0 0 0 @@ -1170,7 +1170,7 @@ 0 16 - 00000000FE03000070070000AE040000 + 0300000060030000D6060000F4030000 16 @@ -1190,7 +1190,7 @@ 0 16 - 03000000010400006D07000095040000 + 0300000060030000D6060000F4030000 16 @@ -1210,7 +1210,7 @@ 0 16 - 03000000040300006D07000098030000 + 03000000040300006D070000AC030000 16 @@ -1230,7 +1230,7 @@ 0 16 - 03000000040300006D07000098030000 + 03000000040300006D070000AC030000 16 @@ -1250,7 +1250,7 @@ 0 16 - 03000000010400006D07000095040000 + 0300000060030000D6060000F4030000 16 @@ -1270,7 +1270,7 @@ 0 16 - 03000000010400006D07000095040000 + 0300000060030000D6060000F4030000 16 @@ -1310,7 +1310,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1330,7 +1330,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1350,7 +1350,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1370,7 +1370,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1390,7 +1390,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1410,7 +1410,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1430,7 +1430,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1450,7 +1450,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1470,7 +1470,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1490,7 +1490,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1510,7 +1510,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1530,7 +1530,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1550,7 +1550,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1570,7 +1570,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1590,7 +1590,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1610,7 +1610,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1630,7 +1630,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1650,7 +1650,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1670,7 +1670,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1690,7 +1690,7 @@ 0 16 - 33060000660000006D0700001C020000 + 33060000660000006D070000E4020000 16 @@ -1704,7 +1704,7 @@ 0 0 0 - 32767 + 966 0 8192 0 @@ -1730,7 +1730,7 @@ 0 16 - 00000000AE04000083080000C1040000 + 000000000D040000D906000020040000 16 @@ -1744,7 +1744,7 @@ 0 0 0 - 32767 + 476 0 8192 1 @@ -1764,7 +1764,7 @@ 0 0 0 - 32767 + 612 0 8192 2 @@ -1790,7 +1790,7 @@ 0 16 - 03000000040300006D07000098030000 + 03000000040300006D070000AC030000 16 @@ -1799,14 +1799,14 @@ 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000130100007007000017010000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000003C00000053000000F403000017010000440100004F00000070070000130100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F00000030060000FD020000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000003C000000530000007C01000064010000300600004F00000070070000FD02000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F00000044010000E6030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000003C000000530000007C01000064010000000000004F00000040010000E60300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000E902000070070000ED02000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000003C000000530000007C0100006401000000000000ED02000070070000C503000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000ED020000BC030000C503000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000E603000083080000EA030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000003C00000053000000F40300001701000000000000EA03000083080000AE0400000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000130100007007000017010000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000BB030000C9000000E70900008D010000440100004F00000070070000130100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F00000030060000FD020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A7080000C9000000E709000077030000300600004F00000070070000FD02000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F0000004401000045030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000077020000C9000000B7030000BF030000000000004F00000040010000450300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000E902000070070000ED02000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000007702000067030000E70900003F04000000000000ED02000070070000C503000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000ED020000BC030000C503000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000045030000D906000049030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000077020000C303000050090000870400000000000049030000D90600000D0400000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2624 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000156775695F746A635F686D695F6D61696E5F73656E6496000000000000000300156775695F746A635F686D695F6D61696E5F73656E64146273705F57353530305F536F636B65745F5365740A49525F54494D454F5554000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000 + 2590 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000018686973746F72795F6164645F616C61726D5F7265636F72649600000000000000010018686973746F72795F6164645F616C61726D5F7265636F726400000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1822,7 +1822,7 @@ Build 988 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E6C65616B6167655F73797374656D960000000000000001000E6C65616B6167655F73797374656D000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E6C65616B6167655F73797374656D960000000000000001000E6C65616B6167655F73797374656D000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -1838,7 +1838,1748 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000000000000100000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000000000000100000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000000000000100000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000000000000100000001000000000000000000000001000000000000000000054465627567FF7F0000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 2560 + 1440 + + + + 1 + Debug + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3607000017010000000A00006A040000 + + + 16 + 3607000066000000000A000081040000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000051040000 + + + 16 + 7000000087000000B001000098010000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000051040000 + + + 16 + 7000000087000000EC0100009B030000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000051040000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000019050000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000019050000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000019050000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 4701000066000000D6060000FA000000 + + + 16 + 7000000087000000280400004B010000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000051040000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 1936 + 1936 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000051040000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000019050000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000019050000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000019050000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000019050000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000019050000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000051040000 + + + 16 + 7000000087000000EC0100009B030000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000051040000 + + + 16 + 7000000087000000EC0100009B030000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000180300006D070000AC030000 + + + 16 + 7000000087000000280400004B010000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000006E040000000A000046050000 + + + 16 + 7000000087000000280400004B010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000180300006D070000AC030000 + + + 16 + 7000000087000000280400004B010000 + + + + 203 + 203 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 4401000063000000000A000013010000 + + + 16 + 7000000087000000280400004B010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 4701000066000000D6060000FA000000 + + + 16 + 7000000087000000280400004B010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000019050000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 4701000066000000D6060000FA000000 + + + 16 + 7000000087000000280400004B010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 4701000066000000D6060000FA000000 + + + 16 + 7000000087000000280400004B010000 + + + + 35141 + 35141 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 4701000066000000D6060000FA000000 + + + 16 + 7000000087000000B001000098010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 4701000066000000D6060000FA000000 + + + 16 + 7000000087000000280400004B010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000051040000 + + + 16 + 7000000087000000EC0100009B030000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000180300006D070000AC030000 + + + 16 + 7000000087000000280400004B010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000180300006D070000AC030000 + + + 16 + 7000000087000000EC0100009B030000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000019050000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000019050000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 463 + 463 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000180300006D070000AC030000 + + + 16 + 7000000087000000EC0100009B030000 + + + + 466 + 466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000180300006D070000AC030000 + + + 16 + 7000000087000000EC0100009B030000 + + + + 470 + 470 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 4701000066000000D6060000FA000000 + + + 16 + 7000000087000000280400004B010000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 7000000087000000B001000098010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 966 + 0 + 8192 + 0 + + 16 + 0000000000000000D10300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0000000046050000000A000059050000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 476 + 0 + 8192 + 1 + + 16 + 000000001C000000E701000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 000000001C0000006F02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 824 + 824 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 390700002E010000FD09000019050000 + + + 16 + 320D000022030000E6100000FA030000 + + + + 3415 + 000000000C000000000000000040000001000000FFFFFFFFFFFFFFFF3207000017010000360700006A04000001000000020000100400000001000000000000000000000000000000000000000000000001000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000FFFF02000B004354616262656450616E6500400000010000003607000066000000000A0000810400003607000017010000000A00006A04000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000020000001000000FFFFFFFFFFFFFFFF4401000013010000000A000017010000010000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000018000200000010000004401000066000000D90600002A010000440100004F000000000A0000130100000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F00000030060000FD020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000030060000660000007007000014030000300600004F00000070070000FD02000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F000000440100006A040000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000004001000081040000000000004F000000400100006A0400000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF000000006A040000000A00006E04000001000000010000100400000001000000000000000000000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFF6D03000035030000710300000D04000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000FD0200007007000001030000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000000000000000000001803000070070000DC030000000000000103000070070000C50300000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2928 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000018484D495F50524F544F5F4755495F5443505F434F4E4649479600000000000000130018484D495F50524F544F5F4755495F5443505F434F4E4649470952756E5F5374617465085068795F41646472125348475F48414C465F4C494E455749445448106273705F64615F76616C75655F736574137365742E736C6F70655F7468726573686F6C640E6461635F325F646174615F7365740F44454D4F445F44454255475F4C4F47104253505F44415F56414C55455F4D41580E4253505F44415F4652455F4D4158067072696E7466104C494748545F4452495645525F50494E0A61645F7270705F73756D1B696E6465785F636F756E745F646174615F72657365745F666C6167086164393833385F32126D6F646275735F736C6176655F74646C6173086170705F6E646972166170705F74646C61735F6761735F747970655F736574046E64697200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000300150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 955 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2362 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -1862,12 +3603,21 @@ 0 100 - 0 + 1 + + ..\usr\app\app_leakage.c + 8 + 343 + 367 + 1 + + 0 + ..\usr\app\app.c - 21 - 13 - 29 + 0 + 1 + 1 1 0 diff --git a/leakage_system/MDK-ARM/leakage_system.uvoptx b/leakage_system/MDK-ARM/leakage_system.uvoptx index 1bab97c..67527d2 100644 --- a/leakage_system/MDK-ARM/leakage_system.uvoptx +++ b/leakage_system/MDK-ARM/leakage_system.uvoptx @@ -132,11 +132,6 @@ ARMDBGFLAGS - - 0 - DLGUARM - d - 0 JL2CM3 @@ -148,24 +143,7 @@ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) - - - 0 - 0 - 71 - 1 -
134256418
- 0 - 0 - 0 - 0 - 0 - 1 - D:\code\Git\Leakage-Control(鏈€鏂扮増)\Leakage-Control\leakage_system\usr\app\app.c - - \\leakage_system\../usr/app/app.c\71 -
-
+ 0 @@ -257,6 +235,11 @@ 1 W5500,0x0A + + 18 + 1 + W5500,0x0A + 0 diff --git a/leakage_system/MDK-ARM/leakage_system.uvprojx b/leakage_system/MDK-ARM/leakage_system.uvprojx index 2108710..6c33317 100644 --- a/leakage_system/MDK-ARM/leakage_system.uvprojx +++ b/leakage_system/MDK-ARM/leakage_system.uvprojx @@ -10,14 +10,14 @@ leakage_system 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 STM32F407VGTx STMicroelectronics - Keil.STM32F4xx_DFP.2.15.0 - http://www.keil.com/pack/ + Keil.STM32F4xx_DFP.3.0.0 + https://www.keil.com/pack/ IRAM(0x20000000,0x00020000) IRAM2(0x10000000,0x00010000) IROM(0x08000000,0x00100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE @@ -185,6 +185,7 @@ 0 2 0 + 0 1 0 8 @@ -351,7 +352,7 @@ 0 0 0 - 0 + 4 diff --git a/leakage_system/usr/app/app.c b/leakage_system/usr/app/app.c index 1517aa7..c16b67f 100644 --- a/leakage_system/usr/app/app.c +++ b/leakage_system/usr/app/app.c @@ -23,7 +23,7 @@ #include "gui_tjc_hmi.h" const char *HwVersion = "V2.0"; -char SwVersion[24] = "V0.004.0"; +char SwVersion[24] = "V0.005.0"; void task_idle(void); void task_10ms(void); void task_50ms(void); @@ -60,7 +60,7 @@ void app_init(void) Wdg.Init(); /*flash*/ w25q32.init(); - + Wdg.Feed(); // HAL_Delay(5000); /*ڳʼ*/ @@ -69,10 +69,10 @@ void app_init(void) com_uart3.init(&com_uart3); com_uart4.init(&com_uart4); com_uart6.init(&com_uart6); - + Wdg.Feed(); /**/ W5500.Init(); - + Wdg.Feed(); /*ĻͨѶ*/ tjc_hmi.init(); diff --git a/leakage_system/usr/app/app_leakage.c b/leakage_system/usr/app/app_leakage.c index c3898ab..c70f87a 100644 --- a/leakage_system/usr/app/app_leakage.c +++ b/leakage_system/usr/app/app_leakage.c @@ -16,129 +16,124 @@ static void app_leakage_init(void); /*ʷ*/ uint8_t sector_buf[2][W25Q32_SECTOR_SIZE]; - -app_leakage_t leakage = -{ - .region_num = 0, - .sub_device_num = 0, - .init = app_leakage_init, - .task = app_leakage_task, - .class_update = app_leakage_region_classify, +app_leakage_t leakage = + { + .region_num = 0, + .sub_device_num = 0, + .init = app_leakage_init, + .task = app_leakage_task, + .class_update = app_leakage_region_classify, }; app_leakage_t *p_leakage = &leakage; app_hitory_t history = -{ - .read_history = history_read_record, - .clean_history = history_clear_all, - .init_history = history_init -}; - + { + .read_history = history_read_record, + .clean_history = history_clear_all, + .init_history = history_init}; static void app_leakage_init(void) { -// for(int i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++) -// { -// memset(leakage.sub_device_data[i].ch_data, 0, -// sizeof(leakage.sub_device_data[i].ch_data)); -// } - app_leakage_region_classify(); + // for(int i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++) + // { + // memset(leakage.sub_device_data[i].ch_data, 0, + // sizeof(leakage.sub_device_data[i].ch_data)); + // } + app_leakage_region_classify(); } /*࣬ͬһ豸ֵһ*/ void app_leakage_region_classify(void) { - u16 i,j; + u16 i, j; u8 add_region_flag; - + /**/ p_leakage->region_num = 0; p_leakage->sub_device_num = 0; - memset(p_leakage->region_data,0,sizeof(p_leakage->region_data)); - + memset(p_leakage->region_data, 0, sizeof(p_leakage->region_data)); + /*ϵͳ*/ - for(i=0;isub_device_data[i].flash_data.state) + if (ENABLE == p_leakage->sub_device_data[i].flash_data.state) { - p_leakage->sub_device_num++;/*ϵͳ++*/ + p_leakage->sub_device_num++; /*ϵͳ++*/ /********************************************򻮷******************************************************/ - /**/ - for(j=0;jregion_data[j].name,p_leakage->sub_device_data[i].flash_data.region_name, APP_LEAKAGE_STRING_NANE_LEN))/*ͬ*/ + if (0 == memcmp(p_leakage->region_data[j].name, p_leakage->sub_device_data[i].flash_data.region_name, APP_LEAKAGE_STRING_NANE_LEN)) /*ͬ*/ { /*豸*/ - p_leakage->region_data[j].sub_device_index[p_leakage->region_data[j].sub_device_num] = i;/*豸*/ - p_leakage->region_data[j].sub_device_num++; /*ϵͳ++*/ - add_region_flag = 0;/**/ + p_leakage->region_data[j].sub_device_index[p_leakage->region_data[j].sub_device_num] = i; /*豸*/ + p_leakage->region_data[j].sub_device_num++; /*ϵͳ++*/ + add_region_flag = 0; /**/ break; } } - + /*ûҵͬ*/ - if(add_region_flag)/**/ + if (add_region_flag) /**/ { /**/ - memcpy(p_leakage->region_data[p_leakage->region_num].name, + memcpy(p_leakage->region_data[p_leakage->region_num].name, p_leakage->sub_device_data[i].flash_data.region_name, APP_LEAKAGE_STRING_NANE_LEN); // һ豸Ϊ0 p_leakage->region_data[p_leakage->region_num].sub_device_index[0] = i; p_leakage->region_data[p_leakage->region_num].sub_device_num = 1; p_leakage->region_num++; - } + } } } } - /* ̵ */ static void app_leakage_alarm_contorl(void) { - if(0 != p_leakage->alarm_state) + if (0 != p_leakage->alarm_state) { buzzer.set.on(); - relay.set(BSP_RELAY_CH_ERROR_STATE,USR_ON); + relay.set(BSP_RELAY_CH_ERROR_STATE, USR_ON); } else { buzzer.set.off(); - relay.set(BSP_RELAY_CH_ERROR_STATE,USR_OFF); + relay.set(BSP_RELAY_CH_ERROR_STATE, USR_OFF); } - + /*©Һ״̬*/ - if(p_leakage->alarm_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) + if (p_leakage->alarm_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) { - relay.set(BSP_RELAY_CH_LEAKAGE,USR_ON); + relay.set(BSP_RELAY_CH_LEAKAGE, USR_ON); } else { - relay.set(BSP_RELAY_CH_LEAKAGE,USR_OFF); + relay.set(BSP_RELAY_CH_LEAKAGE, USR_OFF); } /*ϴ״̬*/ - if(p_leakage->alarm_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN) + if (p_leakage->alarm_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN) { - relay.set(BSP_RELAY_CH_OPEN,USR_ON); + relay.set(BSP_RELAY_CH_OPEN, USR_ON); } else { - relay.set(BSP_RELAY_CH_OPEN,USR_OFF); + relay.set(BSP_RELAY_CH_OPEN, USR_OFF); } /*ͨѶʱ*/ - if(p_leakage->alarm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) + if (p_leakage->alarm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) { - relay.set(BSP_RELAY_CH_COMMINCAION,USR_ON); - } + relay.set(BSP_RELAY_CH_COMMINCAION, USR_ON); + } else { - relay.set(BSP_RELAY_CH_COMMINCAION,USR_OFF); + relay.set(BSP_RELAY_CH_COMMINCAION, USR_OFF); } } - /*쳣״̬豸ͳ*/ void app_leakage_task(void) { @@ -146,7 +141,7 @@ void app_leakage_task(void) u16 i, j, k, sub_device_index; /* ʼ쳣ͳ */ - for(i = 0; i < p_leakage->region_num; i++) + for (i = 0; i < p_leakage->region_num; i++) { p_leakage->region_data[i].leakage_num = 0; p_leakage->region_data[i].open_num = 0; @@ -154,52 +149,50 @@ void app_leakage_task(void) } p_leakage->alarm_state = 0; /* ״̬仯ͳ쳣 */ - for(i = 0; i < p_leakage->region_num; i++) + for (i = 0; i < p_leakage->region_num; i++) { - for(j = 0; j < p_leakage->region_data[i].sub_device_num; j++) + for (j = 0; j < p_leakage->region_data[i].sub_device_num; j++) { sub_device_index = p_leakage->region_data[i].sub_device_index[j]; - + /* 豸Ƿ */ - if(p_leakage->sub_device_data[sub_device_index].flash_data.state != ENABLE) + if (p_leakage->sub_device_data[sub_device_index].flash_data.state != ENABLE) { continue; } - + /* 豸Ƿ */ - if(p_leakage->sub_device_data[sub_device_index].shield != UNBLOCKED) + if (p_leakage->sub_device_data[sub_device_index].shield != UNBLOCKED) { continue; } - + /*ʷ洢*/ - for(k = 0; k < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; k++) + for (k = 0; k < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; k++) { u16 current_state = p_leakage->sub_device_data[sub_device_index].ch_data[k].state; u16 prev_state = prev_ch_state[sub_device_index][k]; u16 leak_distance = p_leakage->sub_device_data[sub_device_index].ch_data[k].distance; - + /* ״̬仯¼ʷ */ - if((current_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) && - !(prev_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)) + if ((current_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) && + !(prev_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)) { /* ©Һʼ - ¼ʷ */ history_add_alarm_record(i, sub_device_index, k, APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE, leak_distance); } - - if((current_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN) && - !(prev_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)) + + if ((current_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN) && + !(prev_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)) { /* ϴʼ - ¼ʷ */ history_add_alarm_record(i, sub_device_index, k, APP_LEAKAGE_SUB_DEVICE_STATE_OPEN, 0); } - - - - if((current_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) && - !(prev_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)) + + if ((current_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) && + !(prev_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)) { - if( k > 0 && (p_leakage->sub_device_data[sub_device_index].ch_data[0].state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)) + if (k > 0 && (p_leakage->sub_device_data[sub_device_index].ch_data[0].state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)) { /*һͨʱʣͨ洢ʱ*/ } @@ -209,34 +202,33 @@ void app_leakage_task(void) history_add_alarm_record(i, sub_device_index, k, APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT, 0); } } - + /* ʷ״̬ */ prev_ch_state[sub_device_index][k] = current_state; } - + /* ͳ쳣豸 - 豸ͳ */ - for(k = 0; k < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; k++) + for (k = 0; k < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; k++) { u16 current_state = p_leakage->sub_device_data[sub_device_index].ch_data[k].state; - - if(current_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) + + if (current_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) { p_leakage->region_data[i].time_out_num++; p_leakage->alarm_state |= APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT; break; } - else if(current_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN) + else if (current_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN) { - p_leakage->region_data[i].open_num++; - p_leakage->alarm_state |= APP_LEAKAGE_SUB_DEVICE_STATE_OPEN; + p_leakage->region_data[i].open_num++; + p_leakage->alarm_state |= APP_LEAKAGE_SUB_DEVICE_STATE_OPEN; } - else if(current_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) + else if (current_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) { p_leakage->region_data[i].leakage_num++; p_leakage->alarm_state |= APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE; } } - } } /* ⱨ*/ @@ -246,29 +238,28 @@ void app_leakage_task(void) /* ȡǰʱ */ static void get_current_time(u8 *time_buffer) { - /* : 2ֽ (: 2024 -> 0x07 0xE8) */ - uint16_t year = 2000 + DS1302.Time.Year; /* RTCͨ2000ʼ */ - time_buffer[0] = (year >> 8) & 0xFF; /* ֽ */ - time_buffer[1] = year & 0xFF; /* ֽ */ - time_buffer[2] = DS1302.Time.Month; /* */ - time_buffer[3] = DS1302.Time.Day; /* */ - time_buffer[4] = DS1302.Time.Hour; /* ʱ */ - time_buffer[5] = DS1302.Time.Minute; /* */ - time_buffer[6] = DS1302.Time.Second; /* */ + /* : 2ֽ (: 2024 -> 0x07 0xE8) */ + uint16_t year = 2000 + DS1302.Time.Year; /* RTCͨ2000ʼ */ + time_buffer[0] = (year >> 8) & 0xFF; /* ֽ */ + time_buffer[1] = year & 0xFF; /* ֽ */ + time_buffer[2] = DS1302.Time.Month; /* */ + time_buffer[3] = DS1302.Time.Day; /* */ + time_buffer[4] = DS1302.Time.Hour; /* ʱ */ + time_buffer[5] = DS1302.Time.Minute; /* */ + time_buffer[6] = DS1302.Time.Second; /* */ } /* FlashȡʷԪ */ static void history_read_metadata(void) { app_leakage_history_metadata_t temp_metadata; - - w25q32.read(W25Q32_HISTORY_ALARM_METADATA_ADDR, - (uint8_t*)&temp_metadata, + + w25q32.read(W25Q32_HISTORY_ALARM_METADATA_ADDR, + (uint8_t *)&temp_metadata, sizeof(app_leakage_history_metadata_t)); - - - if(temp_metadata.total_records <= temp_metadata.max_records && - temp_metadata.write_index < temp_metadata.max_records) + + if (temp_metadata.total_records <= temp_metadata.max_records && + temp_metadata.write_index < temp_metadata.max_records) { /* ЧƵȫֱ */ memcpy(&leakage.history_metadata, &temp_metadata, sizeof(app_leakage_history_metadata_t)); @@ -278,9 +269,9 @@ static void history_read_metadata(void) /* Чʼ */ memset(&leakage.history_metadata, 0, sizeof(app_leakage_history_metadata_t)); leakage.history_metadata.max_records = MAX_HISTORY_ALARM_RECORDS; - + /* 浽Flash */ - history_save_metadata(); + history_save_metadata(); } } @@ -289,17 +280,17 @@ static void history_save_metadata(void) { /* Ԫ */ w25q32_sector_erase(W25Q32_HISTORY_ALARM_METADATA_ADDR); - + /* дԪ */ - w25q32.write(W25Q32_HISTORY_ALARM_METADATA_ADDR, - (uint8_t*)&leakage.history_metadata, - sizeof(app_leakage_history_metadata_t)); + w25q32.write(W25Q32_HISTORY_ALARM_METADATA_ADDR, + (uint8_t *)&leakage.history_metadata, + sizeof(app_leakage_history_metadata_t)); } /* ¼Flashеĵַ */ static uint32_t history_calc_record_addr(u32 record_index) { - return W25Q32_HISTORY_ALARM_DATA_ADDR + + return W25Q32_HISTORY_ALARM_DATA_ADDR + (record_index * HISTORY_ALARM_RECORD_SIZE); } @@ -307,7 +298,7 @@ static uint32_t history_calc_record_addr(u32 record_index) static uint32_t history_calc_sector_addr(u32 record_index) { uint32_t record_addr = history_calc_record_addr(record_index); - return record_addr & ~(W25Q32_SECTOR_SIZE - 1); /* 4K */ + return record_addr & ~(W25Q32_SECTOR_SIZE - 1); /* 4K */ } /* ʷ¼ */ @@ -315,76 +306,84 @@ void history_add_alarm_record(u8 region_idx, u8 device_idx, u8 channel, u16 alar { app_leakage_history_alarm_t new_alarm; uint32_t write_addr; - + /* 䱨¼ */ memset(&new_alarm, 0, sizeof(app_leakage_history_alarm_t)); - + /* */ - if (region_idx < leakage.region_num) { - memcpy(new_alarm.region_name, leakage.region_data[region_idx].name, + if (region_idx < leakage.region_num) + { + memcpy(new_alarm.region_name, leakage.region_data[region_idx].name, APP_LEAKAGE_STRING_NANE_LEN); } - + /* 豸ID */ - if (device_idx < APP_LEAKAGE_SUB_DEVICE_NUM) { + if (device_idx < APP_LEAKAGE_SUB_DEVICE_NUM) + { new_alarm.device_id = leakage.sub_device_data[device_idx].flash_data.modbus_id; memcpy(new_alarm.device_name, leakage.sub_device_data[device_idx].flash_data.device_name, APP_LEAKAGE_STRING_NANE_LEN); } - + /* ͨ͡©Һ */ new_alarm.alarm_type = alarm_type; new_alarm.channel = channel; new_alarm.leak_distance = leak_distance; - + /* ʼʱ */ get_current_time(new_alarm.start_time); - + /* дַ */ write_addr = history_calc_record_addr(leakage.history_metadata.write_index); - + /* ü¼ܿԽΧ2 */ uint32_t start_sector = write_addr & ~(W25Q32_SECTOR_SIZE - 1); uint32_t end_addr = write_addr + HISTORY_ALARM_RECORD_SIZE - 1; uint32_t end_sector = end_addr & ~(W25Q32_SECTOR_SIZE - 1); uint32_t num_sectors = (end_sector - start_sector) / W25Q32_SECTOR_SIZE + 1; - + /* ÿ4KB */ uint32_t sectors[2] = {start_sector, (num_sectors > 1) ? end_sector : 0}; - + /* 1. ȡ漰RAM */ - for (uint32_t i = 0; i < num_sectors; i++) { + for (uint32_t i = 0; i < num_sectors; i++) + { w25q32.read(sectors[i], sector_buf[i], W25Q32_SECTOR_SIZE); } - + /* 2. Щ */ - for (uint32_t i = 0; i < num_sectors; i++) { + for (uint32_t i = 0; i < num_sectors; i++) + { w25q32_sector_erase(sectors[i]); } - + /* 3. RAMи¼¼ */ uint32_t offset_in_start = write_addr - start_sector; uint32_t first_part_len = (num_sectors == 1) ? HISTORY_ALARM_RECORD_SIZE : (W25Q32_SECTOR_SIZE - offset_in_start); memcpy(sector_buf[0] + offset_in_start, &new_alarm, first_part_len); - if (num_sectors > 1) { + if (num_sectors > 1) + { uint32_t second_part_len = HISTORY_ALARM_RECORD_SIZE - first_part_len; - memcpy(sector_buf[1], (uint8_t*)&new_alarm + first_part_len, second_part_len); + memcpy(sector_buf[1], (uint8_t *)&new_alarm + first_part_len, second_part_len); } - + /* 4. ޸ĺĻдFlash */ - for (uint32_t i = 0; i < num_sectors; i++) { + for (uint32_t i = 0; i < num_sectors; i++) + { w25q32.write(sectors[i], sector_buf[i], W25Q32_SECTOR_SIZE); } - + /* 5. ԪݣζУ */ leakage.history_metadata.write_index++; - if (leakage.history_metadata.write_index >= leakage.history_metadata.max_records) { + if (leakage.history_metadata.write_index >= leakage.history_metadata.max_records) + { leakage.history_metadata.write_index = 0; } - if (leakage.history_metadata.total_records < leakage.history_metadata.max_records) { + if (leakage.history_metadata.total_records < leakage.history_metadata.max_records) + { leakage.history_metadata.total_records++; } - + /* ԪݵFlash */ history_save_metadata(); } @@ -392,31 +391,28 @@ void history_add_alarm_record(u8 region_idx, u8 device_idx, u8 channel, u16 alar /* ȡʷ¼ */ static u8 history_read_record(u32 record_index, app_leakage_history_alarm_t *record) { - if(record_index >= leakage.history_metadata.total_records) + if (record_index >= leakage.history_metadata.total_records) { - return 0; /* ¼Ч */ + return 0; /* ¼Ч */ } - + /* ʵʴ洢ѭУ */ uint32_t actual_index; - if(leakage.history_metadata.total_records == leakage.history_metadata.max_records) { - // write_index ָɼ¼ - actual_index = (leakage.history_metadata.write_index - 1 - record_index - + leakage.history_metadata.max_records) % leakage.history_metadata.max_records; - } else { - // δ˳洢 0 磬 total_records-1 - actual_index = leakage.history_metadata.total_records - 1 - record_index; - } - if(actual_index == 125) + if (leakage.history_metadata.total_records == leakage.history_metadata.max_records) { - actual_index =125; + /* */ + actual_index = (leakage.history_metadata.write_index + record_index) % + leakage.history_metadata.max_records; + } + else + { + /* δֱӶȡ */ + actual_index = record_index; } - - uint32_t read_addr = history_calc_record_addr(actual_index); - w25q32.read(read_addr, (uint8_t*)record, HISTORY_ALARM_RECORD_SIZE); - - + uint32_t read_addr = history_calc_record_addr(actual_index); + w25q32.read(read_addr, (uint8_t *)record, HISTORY_ALARM_RECORD_SIZE); + return 1; } @@ -426,19 +422,18 @@ static void history_clear_all(void) /* Ԫ */ memset(&leakage.history_metadata, 0, sizeof(app_leakage_history_metadata_t)); leakage.history_metadata.max_records = MAX_HISTORY_ALARM_RECORDS; - + /* Ԫ */ history_save_metadata(); - + /* ѡ */ - for(uint32_t i = 0; i < HISTORY_ALARM_SECTORS_NEEDED; i++) + for (uint32_t i = 0; i < HISTORY_ALARM_SECTORS_NEEDED; i++) { uint32_t sector_addr = W25Q32_HISTORY_ALARM_DATA_ADDR + i * W25Q32_SECTOR_SIZE; w25q32_sector_erase(sector_addr); } } - /* ʼʷģ */ static void history_init(void) { diff --git a/leakage_system/usr/app/app_leakage.h b/leakage_system/usr/app/app_leakage.h index e7eb351..21ef9e8 100644 --- a/leakage_system/usr/app/app_leakage.h +++ b/leakage_system/usr/app/app_leakage.h @@ -2,6 +2,7 @@ #define _APP_LEAKAGE_H_ #include "main.h" +#include "bsp_W5500.h" #define ENABLE (1) #define DISABLE (0) @@ -24,6 +25,8 @@ void app_leakage_region_classify(void); void history_add_alarm_record(u8 region_idx, u8 device_idx, u8 channel, u16 alarm_type, u16 leak_distance); +#define NETWORK_PORT_NUM BSP_W5500_PORT_NUM + /*豸洢IJ*/ typedef struct { @@ -66,7 +69,7 @@ typedef struct { u8 ip[4]; u8 mask[4]; u8 gateway[4]; - u16 port; + u16 port[NETWORK_PORT_NUM]; }network_config_t; /* ʷ¼ṹ */ diff --git a/leakage_system/usr/bsp/bsp_W5500.c b/leakage_system/usr/bsp/bsp_W5500.c index 54d8a26..2c8aff1 100644 --- a/leakage_system/usr/bsp/bsp_W5500.c +++ b/leakage_system/usr/bsp/bsp_W5500.c @@ -33,7 +33,7 @@ bsp_W5500_t W5500 = { .Gateway_IP = {192,168,100,1}, /*IPַ*/ .Sub_Mask = {255,255,255,0}, /**/ - .Phy_Addr = {0x0c,0x29,0xab,0x7c,0x00,0x01}, /*ַ(MAC)*/ + .Phy_Addr = {0x0c,0x29,0xab,0x7c,0x00,0x01}, /*ַ(MAC) ݵƬUIDMAC*/ .IP_Addr = {192,168,100,201}, /*IPַ*/ .Interrupt_Process = bsp_W5500_Interrupt_Process, @@ -49,6 +49,24 @@ bsp_W5500_t W5500 = .ConfigData.Port = {0x01,0xF6}, .Run_Mode = BSP_W5500_PORT_RUN_MODE_TCP_SERVER, }, + .W5500_Class[1] = + { + .SocketPort = 1, /*ʹö˿1*/ + .ConfigData.Port = {0x01,0xF7}, + .Run_Mode = BSP_W5500_PORT_RUN_MODE_TCP_SERVER, + }, + .W5500_Class[2] = + { + .SocketPort = 2, /*ʹö˿2*/ + .ConfigData.Port = {0x01,0xF8}, + .Run_Mode = BSP_W5500_PORT_RUN_MODE_TCP_SERVER, + }, + .W5500_Class[3] = + { + .SocketPort = 3, /*ʹö˿3*/ + .ConfigData.Port = {0x01,0xF9}, + .Run_Mode = BSP_W5500_PORT_RUN_MODE_TCP_SERVER, + }, }; bsp_W5500_t *pW5500 = &W5500; @@ -822,7 +840,7 @@ static void bsp_W5500_Task(void) if ((pW5500->W5500_Class[i].TR_Data_State & BSP_W5500_PORT_DATA_RECEIVE) == BSP_W5500_PORT_DATA_RECEIVE) // Socket0յ { pW5500->W5500_Class[i].TR_Data_State &= ~BSP_W5500_PORT_DATA_RECEIVE; - u16 Len = Read_SOCK_Data_Buffer(0, pW5500->W5500_Class[i].Rx_Buffer); + u16 Len = Read_SOCK_Data_Buffer(i, pW5500->W5500_Class[i].Rx_Buffer); // Write_SOCK_Data_Buffer(&pW5500->W5500_Class[i], pW5500->W5500_Class[i].Rx_Buffer, Len); // printf("RX"); // Debug_UartSend(pW5500->W5500_Class[i].Rx_Buffer, Len); diff --git a/leakage_system/usr/bsp/bsp_W5500.h b/leakage_system/usr/bsp/bsp_W5500.h index 497e1d1..11e9cff 100644 --- a/leakage_system/usr/bsp/bsp_W5500.h +++ b/leakage_system/usr/bsp/bsp_W5500.h @@ -215,7 +215,7 @@ #define W5500_INT_PORT W5500_INT_GPIO_Port typedef u8 SOCKET; // Զ˿ں -#define BSP_W5500_PORT_NUM 1 +#define BSP_W5500_PORT_NUM 4 #define BSP_W5500_TX_DATA_LEN 2048 #define BSP_W5500_RX_DATA_LEN 2048 diff --git a/leakage_system/usr/bsp/bsp_w25q.c b/leakage_system/usr/bsp/bsp_w25q.c index 347a00c..48e1205 100644 --- a/leakage_system/usr/bsp/bsp_w25q.c +++ b/leakage_system/usr/bsp/bsp_w25q.c @@ -98,6 +98,7 @@ static void gui_tjc_hmi_read_device_info_from_w25q(void) static void gui_tjc_hmi_read_network_config_from_w25q(void) { + u16 i; network_config_t config; w25q32.read(W25Q32_NETWORK_CONFIG_ADDR, (uint8_t*)&config, sizeof(config)); @@ -106,8 +107,12 @@ static void gui_tjc_hmi_read_network_config_from_w25q(void) memcpy(W5500.IP_Addr, config.ip, 4); memcpy(W5500.Sub_Mask, config.mask, 4); memcpy(W5500.Gateway_IP, config.gateway, 4); - W5500.W5500_Class[0].ConfigData.Port[0] = (config.port >> 8) & 0xFF; - W5500.W5500_Class[0].ConfigData.Port[1] = config.port & 0xFF; + + for(i=0;i> 8) & 0xFF; + W5500.W5500_Class[i].ConfigData.Port[1] = config.port[i] & 0xFF; + } } } diff --git a/leakage_system/usr/gui/gui_tjc_hmi.c b/leakage_system/usr/gui/gui_tjc_hmi.c index bf57528..abb2bcd 100644 --- a/leakage_system/usr/gui/gui_tjc_hmi.c +++ b/leakage_system/usr/gui/gui_tjc_hmi.c @@ -3,12 +3,11 @@ #include #include #include -#include +#include #include "proto_modbus_lib.h" - -#include "bsp_w25q.h" // Flash +#include "bsp_w25q.h" // Flash #include "bsp_W5500.h" #include "bsp_uart.h" #include "bsp_DS1302.h" @@ -18,48 +17,43 @@ #include "app_com.h" #include "app.h" /*ڷͻ*/ -#define HMI_TX_BUFFER_NUM (4096) +#define HMI_TX_BUFFER_NUM (4096) /*ַƴ */ #define GUI_TJC_HMI_TEXT_BUFFER_NUM (256) /*֡ͷ*/ -#define HMI_PROTO_FRAME_HEADER1 (0xAA) -#define HMI_PROTO_FRAME_HEADER2 (0x55) +#define HMI_PROTO_FRAME_HEADER1 (0xAA) +#define HMI_PROTO_FRAME_HEADER2 (0x55) /**/ -#define HMI_PROTO_CMD_GET (0x03) /*ȡ*/ -#define HMI_PROTO_CMD_SET (0x10) /*Ϣ*/ +#define HMI_PROTO_CMD_GET (0x03) /*ȡ*/ +#define HMI_PROTO_CMD_SET (0x10) /*Ϣ*/ /**/ -#define HMI_PROTO_GUI_MAIN (0x10)/* */ -#define HMI_PROTO_GUI_CURR_ALARM (0x11)/*ʵʱ */ -#define HMI_PROTO_GUI_DETAIL_MAIN (0x12)/*_ϸϢ */ -#define HMI_PROTO_GUI_LOGIN (0x13)/*¼ */ -#define HMI_PROTO_GUI_HISTORY_ALARM (0x14)/*ʷ */ -#define HMI_PROTO_GUI_TCP_CONFIG (0x15)/*ý */ -#define HMI_PROTO_GUI_DEVICE_CONFIG (0x16)/*豸ý */ -#define HMI_PROTO_GUI_HELP (0x17)/* */ -#define HMI_PROTO_GUI_TIME (0x18)/*ʱý*/ +#define HMI_PROTO_GUI_MAIN (0x10) /* */ +#define HMI_PROTO_GUI_CURR_ALARM (0x11) /*ʵʱ */ +#define HMI_PROTO_GUI_DETAIL_MAIN (0x12) /*_ϸϢ */ +#define HMI_PROTO_GUI_LOGIN (0x13) /*¼ */ +#define HMI_PROTO_GUI_HISTORY_ALARM (0x14) /*ʷ */ +#define HMI_PROTO_GUI_TCP_CONFIG (0x15) /*ý */ +#define HMI_PROTO_GUI_DEVICE_CONFIG (0x16) /*豸ý */ +#define HMI_PROTO_GUI_HELP (0x17) /* */ +#define HMI_PROTO_GUI_TIME (0x18) /*ʱý*/ /*ID*/ -#define GUI_MAIN (10)/**/ -#define GUI_CURR_ALARM (11)/*ʵʱ*/ -#define GUI_DETALL_MAIN (12)/*_ϸϢ*/ -#define GUI_LOGIN (13)/*½*/ -#define GUI_HISTORY_ALARM (14)/*ʷ*/ -#define GUI_TCP_CONFIG (15)/*ý*/ -#define GUI_DEVICE_CONFIG (16)/*豸ý*/ -#define GUI_TIME (18)/*ʱý*/ - -#define HMI_PROTO_ASCII_RX_DELINITER (0xAA)/*շָ*/ - -#define HMI_PROTO_ASCII_TX_DELINITER (0xFF)/*ͷָ*/ -#define HMI_PROTO_ASCII_TX_DELINITER_NUM (3)/*ͷָ*/ - -#define W25Q32_PASSWORD_ADDR (W25Q32_USER_DATA_ADDR)/*洢ַ*/ - - +#define GUI_MAIN (10) /**/ +#define GUI_CURR_ALARM (11) /*ʵʱ*/ +#define GUI_DETALL_MAIN (12) /*_ϸϢ*/ +#define GUI_LOGIN (13) /*½*/ +#define GUI_HISTORY_ALARM (14) /*ʷ*/ +#define GUI_TCP_CONFIG (15) /*ý*/ +#define GUI_DEVICE_CONFIG (16) /*豸ý*/ +#define GUI_TIME (18) /*ʱý*/ +#define HMI_PROTO_ASCII_RX_DELINITER (0xAA) /*շָ*/ +#define HMI_PROTO_ASCII_TX_DELINITER (0xFF) /*ͷָ*/ +#define HMI_PROTO_ASCII_TX_DELINITER_NUM (3) /*ͷָ*/ +#define W25Q32_PASSWORD_ADDR (W25Q32_USER_DATA_ADDR) /*洢ַ*/ static void gui_tjc_hmi_init(void); static void gui_tjc_hmi_communication_data_analysis(u8 *p_data, u16 len, void *rx_uart); @@ -71,35 +65,32 @@ static char gui_tjc_hmi_text_buffer[GUI_TJC_HMI_TEXT_BUFFER_NUM]; /*豸*/ app_leakage_sub_device_flash_data_t temp_buffer[APP_LEAKAGE_SUB_DEVICE_NUM]; /*ַ ˿ں*/ -static char *hmi_proto_string_com[] = -{ - "COM1", - "COM2", - "COM3", - "COM4" -}; +static char *hmi_proto_string_com[] = + { + "COM1", + "COM2", + "COM3", + "COM4"}; /*ַ */ -static char *hmi_proto_string_baudrate[] = -{ - "2400", - "4800", - "9600", - "115200", +static char *hmi_proto_string_baudrate[] = + { + "2400", + "4800", + "9600", + "115200", }; +static bsp_uart_t *p_rx_uart = NULL; -static bsp_uart_t * p_rx_uart = NULL; - -gui_tjc_hmi_t tjc_hmi = -{ - .all_page_index_clear = gui_tjc_hmi_all_page_index_clear, - .init = gui_tjc_hmi_init, +gui_tjc_hmi_t tjc_hmi = + { + .all_page_index_clear = gui_tjc_hmi_all_page_index_clear, + .init = gui_tjc_hmi_init, }; gui_tjc_hmi_t *p_tjc_hmi = &tjc_hmi; - static void gui_tjc_hmi_class_update(void) { gui_tjc_hmi_all_page_index_clear(); @@ -107,21 +98,18 @@ static void gui_tjc_hmi_class_update(void) app_com.class_update(); } - - /*ĻЭʼ*/ static void gui_tjc_hmi_init(void) { com_uart1.rx_data_analysis = gui_tjc_hmi_communication_data_analysis; } - /*ͽӿ*/ -static void gui_tjc_hmi_data_send(u8 *p_data,u16 len) +static void gui_tjc_hmi_data_send(u8 *p_data, u16 len) { - if(p_rx_uart != NULL) + if (p_rx_uart != NULL) { - p_rx_uart->send(p_rx_uart,p_data,len); + p_rx_uart->send(p_rx_uart, p_data, len); } } @@ -129,12 +117,12 @@ static void gui_tjc_hmi_read_password_from_w25q(void) { /*ֱӶȡ4ֽ*/ w25q32.read(W25Q32_PASSWORD_ADDR, p_tjc_hmi->password, 4); - + /*ЧԣȫΪ0xFF˵״ʹã*/ - if(p_tjc_hmi->password[0] == 0xFF && - p_tjc_hmi->password[1] == 0xFF && - p_tjc_hmi->password[2] == 0xFF && - p_tjc_hmi->password[3] == 0xFF) + if (p_tjc_hmi->password[0] == 0xFF && + p_tjc_hmi->password[1] == 0xFF && + p_tjc_hmi->password[2] == 0xFF && + p_tjc_hmi->password[3] == 0xFF) { memset(p_tjc_hmi->password, 0, 4); } @@ -151,66 +139,73 @@ static void gui_tjc_hmi_save_password_to_w25q(void) /* 豸Ϣapp_leakage浽W25Q32 */ static void gui_tjc_hmi_save_device_info_to_w25q(void) -{ +{ /* app_leakageṹ帴Ƶʱ */ - for(int i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++) + for (int i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++) { temp_buffer[i] = leakage.sub_device_data[i].flash_data; } - + /* Flash - д */ u32 erase_addr = W25Q32_DEVICE_INFO_ADDR; - + /* ȷַ4K루W25Q32_SECTOR_SIZE = 4096 */ erase_addr &= ~(W25Q32_SECTOR_SIZE - 1); - + /* */ w25q32_sector_erase(erase_addr); - + /* һд豸Ϣ */ - w25q32.write(W25Q32_DEVICE_INFO_ADDR, - (uint8_t*)temp_buffer, - DEVICE_INFO_STORAGE_SIZE); + w25q32.write(W25Q32_DEVICE_INFO_ADDR, + (uint8_t *)temp_buffer, + DEVICE_INFO_STORAGE_SIZE); } /* ǰW5500ñ浽W25Q32 */ static void gui_tjc_hmi_save_network_config_to_w25q(void) { + u16 i; network_config_t config; memcpy(config.ip, W5500.IP_Addr, 4); memcpy(config.mask, W5500.Sub_Mask, 4); memcpy(config.gateway, W5500.Gateway_IP, 4); - config.port = (W5500.W5500_Class[0].ConfigData.Port[0] << 8) | - W5500.W5500_Class[0].ConfigData.Port[1]; - + for (i = 0; i < NETWORK_PORT_NUM; i++) + { + config.port[i] = (W5500.W5500_Class[i].ConfigData.Port[0] << 8) | + W5500.W5500_Class[i].ConfigData.Port[1]; + } + /* 4K룩 */ u32 erase_addr = W25Q32_NETWORK_CONFIG_ADDR & ~(W25Q32_SECTOR_SIZE - 1); w25q32_sector_erase(erase_addr); - + /* д */ - w25q32.write(W25Q32_NETWORK_CONFIG_ADDR, (uint8_t*)&config, sizeof(config)); + w25q32.write(W25Q32_NETWORK_CONFIG_ADDR, (uint8_t *)&config, sizeof(config)); } /*纯*/ static void parse_ip_string(u8 *str, u8 len, u8 *ip) { u8 i = 0, part = 0, val = 0; - while (i < len) { - if (str[i] == '.') { + while (i < len) + { + if (str[i] == '.') + { ip[part++] = val; val = 0; - } else if (str[i] >= '0' && str[i] <= '9') { + } + else if (str[i] >= '0' && str[i] <= '9') + { val = val * 10 + (str[i] - '0'); } i++; } - ip[part] = val; // һ + ip[part] = val; // һ } - static void gui_tjc_hmi_all_page_index_clear(void) { - memset(&p_tjc_hmi->page,0,sizeof(gui_tjc_hmi_page_t)); + memset(&p_tjc_hmi->page, 0, sizeof(gui_tjc_hmi_page_t)); } /*öӦĿؼ @@ -220,289 +215,299 @@ buffer formatʽ ... */ -static u16 gui_tjc_hmi_tx_text_display(u16 z,u16 x,u16 y,char *buffer,const char *format,...) +static u16 gui_tjc_hmi_tx_text_display(u16 z, u16 x, u16 y, char *buffer, const char *format, ...) { - u16 i,len; + u16 i, len; s16 state; va_list arg; - + /*ջ*/ - memset(gui_tjc_hmi_text_buffer,0,sizeof(gui_tjc_hmi_text_buffer)); - - va_start(arg,format); + memset(gui_tjc_hmi_text_buffer, 0, sizeof(gui_tjc_hmi_text_buffer)); + + va_start(arg, format); /*ʽתַ*/ - state = vsnprintf(gui_tjc_hmi_text_buffer,GUI_TJC_HMI_TEXT_BUFFER_NUM,format,arg); - if(-1 == state || state > GUI_TJC_HMI_TEXT_BUFFER_NUM) - { - va_end(arg); - printf("Length REEOR"); - return 0; - } - + state = vsnprintf(gui_tjc_hmi_text_buffer, GUI_TJC_HMI_TEXT_BUFFER_NUM, format, arg); + if (-1 == state || state > GUI_TJC_HMI_TEXT_BUFFER_NUM) + { + va_end(arg); + printf("Length REEOR"); + return 0; + } + /*ƴַ*/ - sprintf(buffer,"t%d_%d_%d.txt=\"%s\"",z,x,y,gui_tjc_hmi_text_buffer); + sprintf(buffer, "t%d_%d_%d.txt=\"%s\"", z, x, y, gui_tjc_hmi_text_buffer); len = strlen(buffer); - for(i=0;i 0) + remain_region_num = leakage.region_num % MAIN_PAGE_SUB_DEVICE_NUM; /*ʣ*/ + if (remain_region_num > 0) { page_num++; } - - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,0, 3, - (char *)&hmi_tx_buffer[len], - "%d/%d", - p_tjc_hmi->page.main_index+1,page_num); - - + + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, 0, 3, + (char *)&hmi_tx_buffer[len], + "%d/%d", + p_tjc_hmi->page.main_index + 1, page_num); + char time[20]; - sprintf(time,"20%d-%02d-%02d %02d:%02d:%02d", - DS1302.Time.Year, - DS1302.Time.Month, - DS1302.Time.Day, - DS1302.Time.Hour, - DS1302.Time.Minute, - DS1302.Time.Second); - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,0,0,(char *)&hmi_tx_buffer[len],"%s",time); - + sprintf(time, "20%d-%02d-%02d %02d:%02d:%02d", + DS1302.Time.Year, + DS1302.Time.Month, + DS1302.Time.Day, + DS1302.Time.Hour, + DS1302.Time.Minute, + DS1302.Time.Second); + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, 0, 0, (char *)&hmi_tx_buffer[len], "%s", time); + /*IPַ*/ - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,0,1,(char *)&hmi_tx_buffer[len], - "%d.%d.%d.%d:%d", - W5500.IP_Addr[0], - W5500.IP_Addr[1], - W5500.IP_Addr[2], - W5500.IP_Addr[3], - (W5500.W5500_Class[0].ConfigData.Port[0] << 8) | (W5500.W5500_Class[0].ConfigData.Port[1]) ); - + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, 0, 1, (char *)&hmi_tx_buffer[len], + "%d.%d.%d.%d:%d,%d,%d,%d", + W5500.IP_Addr[0], + W5500.IP_Addr[1], + W5500.IP_Addr[2], + W5500.IP_Addr[3], + (W5500.W5500_Class[0].ConfigData.Port[0] << 8) | (W5500.W5500_Class[0].ConfigData.Port[1]), + (W5500.W5500_Class[1].ConfigData.Port[0] << 8) | (W5500.W5500_Class[1].ConfigData.Port[1]), + (W5500.W5500_Class[2].ConfigData.Port[0] << 8) | (W5500.W5500_Class[2].ConfigData.Port[1]), + (W5500.W5500_Class[3].ConfigData.Port[0] << 8) | (W5500.W5500_Class[3].ConfigData.Port[1])); + /*״̬*/ u8 buzzer_state = (buzzer.p_flash_data->sw == USR_ENABLE) ? 11 : 13; - /* "sw0.val=x" ָx Ϊ 0 1*/ - len += sprintf((char*)&hmi_tx_buffer[len], "p4.pic=%d", buzzer_state); - for (u8 i = 0; i < 3; i++) - { - hmi_tx_buffer[len + i] = 0xFF; - } - len += 3; - /*汾*/ - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,0,3,(char *)&hmi_tx_buffer[len], - "%s",SwVersion); - - if(HMI_PROTO_CMD_GET == cmd)/*ȡ*/ + /* "sw0.val=x" ָx Ϊ 0 1*/ + len += sprintf((char *)&hmi_tx_buffer[len], "p4.pic=%d", buzzer_state); + for (u8 i = 0; i < 3; i++) { - switch(opa) - { - case 0x01:/*ȡϢ*/ - { - if (leakage.region_num == 0) - { - for (j = 0; j < MAIN_PAGE_SUB_DEVICE_NUM; j++) - { - for (y = 0; y < 5; y++) - { - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,j+1, y+1, (char *)&hmi_tx_buffer[len], ""); - } - } - break; - } - - if(p_tjc_hmi->page.main_index == page_num - 1 && remain_region_num >0)/*ʾʣ*/ - { - for(j=0;jpage.main_index * MAIN_PAGE_SUB_DEVICE_NUM + j; - x = j; - /**/ - y = 0; - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.region_data[index].name); - /*豸*/ - y = 1; - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].sub_device_num); - /*©Һ*/ - y = 2; - if(leakage.region_data[index].leakage_num == 0) - { - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s","Normal"); - }else - { - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].leakage_num); - } - /*ϴ*/ - y = 3; - if(leakage.region_data[index].open_num == 0) - { - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s","Normal"); - }else - { - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].open_num); - } - /*ͨѶ*/ - y = 4; - if(leakage.region_data[index].time_out_num == 0) - { - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s","Normal"); - }else - { - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].time_out_num); - } - } - // еУΪַ - for(j = remain_region_num; j < MAIN_PAGE_SUB_DEVICE_NUM; j++) - { - for(y = 0; y < 5; y++) // 5 - { - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,j+1, y+1, (char *)&hmi_tx_buffer[len], ""); - } - } - } - else - { - for(j=0;jpage.main_index*MAIN_PAGE_SUB_DEVICE_NUM + j; - x = j; - /**/ - y = 0; - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.region_data[index].name); - /*豸*/ - y = 1; - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].sub_device_num); - /*©Һ*/ - y = 2; - if(leakage.region_data[index].leakage_num == 0) - { - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s","Normal"); - }else - { - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].leakage_num); - } - /*ϴ*/ - y = 3; - if(leakage.region_data[index].open_num == 0) - { - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s","Normal"); - }else - { - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].open_num); - } - /*ͨѶ*/ - y = 4; - if(leakage.region_data[index].time_out_num == 0) - { - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s","Normal"); - }else - { - len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].time_out_num); - } - } - } - }break; - case 0x03:/*ҳ*/ - { - if(0x01 == p_data[0]) - { - if(page_num - 1 <= p_tjc_hmi->page.main_index) - { - p_tjc_hmi->page.main_index = 0; - } - else - { - p_tjc_hmi->page.main_index++; - } - } - else - { - - if(0 == p_tjc_hmi->page.main_index) - { - p_tjc_hmi->page.main_index = page_num - 1; - } - else - { - p_tjc_hmi->page.main_index--; - } - } - } - default:return; - } - len = strlen((char *)hmi_tx_buffer); - gui_tjc_hmi_data_send(hmi_tx_buffer,len); + hmi_tx_buffer[len + i] = 0xFF; } - else if(HMI_PROTO_CMD_SET == cmd)/**/ + len += 3; + /*汾*/ + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, 0, 2, (char *)&hmi_tx_buffer[len], + "%s", SwVersion); + + if (HMI_PROTO_CMD_GET == cmd) /*ȡ*/ { - switch(opa) + switch (opa) { - case 0x01:/**/ + case 0x01: /*ȡϢ*/ + { + if (leakage.region_num == 0) { - if(0x01 == p_data[0]) + for (j = 0; j < MAIN_PAGE_SUB_DEVICE_NUM; j++) { - /*01򿪷*/ - buzzer.set.enable(); + for (y = 0; y < 5; y++) + { + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, j + 1, y + 1, (char *)&hmi_tx_buffer[len], ""); + } + } + break; + } + + if (p_tjc_hmi->page.main_index == page_num - 1 && remain_region_num > 0) /*ʾʣ*/ + { + for (j = 0; j < remain_region_num; j++) + { + index = p_tjc_hmi->page.main_index * MAIN_PAGE_SUB_DEVICE_NUM + j; + x = j; + /**/ + y = 0; + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", leakage.region_data[index].name); + /*豸*/ + y = 1; + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].sub_device_num); + /*©Һ*/ + y = 2; + if (leakage.region_data[index].leakage_num == 0) + { + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", "Normal"); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].leakage_num); + } + /*ϴ*/ + y = 3; + if (leakage.region_data[index].open_num == 0) + { + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", "Normal"); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].open_num); + } + /*ͨѶ*/ + y = 4; + if (leakage.region_data[index].time_out_num == 0) + { + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", "Normal"); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].time_out_num); + } + } + // еУΪַ + for (j = remain_region_num; j < MAIN_PAGE_SUB_DEVICE_NUM; j++) + { + for (y = 0; y < 5; y++) // 5 + { + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, j + 1, y + 1, (char *)&hmi_tx_buffer[len], ""); + } + } + } + else + { + for (j = 0; j < MAIN_PAGE_SUB_DEVICE_NUM; j++) + { + index = p_tjc_hmi->page.main_index * MAIN_PAGE_SUB_DEVICE_NUM + j; + x = j; + /**/ + y = 0; + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", leakage.region_data[index].name); + /*豸*/ + y = 1; + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].sub_device_num); + /*©Һ*/ + y = 2; + if (leakage.region_data[index].leakage_num == 0) + { + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", "Normal"); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].leakage_num); + } + /*ϴ*/ + y = 3; + if (leakage.region_data[index].open_num == 0) + { + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", "Normal"); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].open_num); + } + /*ͨѶ*/ + y = 4; + if (leakage.region_data[index].time_out_num == 0) + { + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", "Normal"); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].time_out_num); + } + } + } + } + break; + case 0x03: /*ҳ*/ + { + if (0x01 == p_data[0]) + { + if (page_num - 1 <= p_tjc_hmi->page.main_index) + { + p_tjc_hmi->page.main_index = 0; } else { - /*00رշ*/ - buzzer.set.disable(); + p_tjc_hmi->page.main_index++; } } - default:return; + else + { + + if (0 == p_tjc_hmi->page.main_index) + { + p_tjc_hmi->page.main_index = page_num - 1; + } + else + { + p_tjc_hmi->page.main_index--; + } + } + } + default: + return; } len = strlen((char *)hmi_tx_buffer); - gui_tjc_hmi_data_send(hmi_tx_buffer,len); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); + } + else if (HMI_PROTO_CMD_SET == cmd) /**/ + { + switch (opa) + { + case 0x01: /**/ + { + if (0x01 == p_data[0]) + { + /*01򿪷*/ + buzzer.set.enable(); + } + else + { + /*00رշ*/ + buzzer.set.disable(); + } + } + default: + return; + } + len = strlen((char *)hmi_tx_buffer); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); } } /*ʵʱӦ*/ -static void gui_tjc_hmi_curr_alarm_send(u8 cmd,u8 opa,u8 *p_data) +static void gui_tjc_hmi_curr_alarm_send(u8 cmd, u8 opa, u8 *p_data) { - /*ÿҳʾı豸*/ - #define REAL_ALARM_PAGE_NUM (4) - u16 len = 0,i,j,x,y,device_index,ch,index; - u8 page_num,remain_alrm_device_num,display_count; +/*ÿҳʾı豸*/ +#define REAL_ALARM_PAGE_NUM (4) + u16 len = 0, i, j, x, y, device_index, ch, index; + u8 page_num, remain_alrm_device_num, display_count; u8 alarm_device_count; u8 alarm_device_index[APP_LEAKAGE_SUB_DEVICE_NUM]; - - memset(hmi_tx_buffer,0,sizeof(hmi_tx_buffer)); - + + memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer)); + /*㱨豸*/ alarm_device_count = 0; j = 0; - for(i = 0;i 0) + if (remain_alrm_device_num > 0) { page_num++; } - - if (page_num == 0) { + + if (page_num == 0) + { page_num = 1; } - if (p_tjc_hmi->page.real_alarm_index >= page_num) { + if (p_tjc_hmi->page.real_alarm_index >= page_num) + { p_tjc_hmi->page.real_alarm_index = page_num - 1; } - len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,0, 0, - (char *)&hmi_tx_buffer[len], - "%d/%d", - p_tjc_hmi->page.real_alarm_index+1,page_num); - - - - - if(HMI_PROTO_CMD_GET == cmd)/*ȡ*/ + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, 0, 0, + (char *)&hmi_tx_buffer[len], + "%d/%d", + p_tjc_hmi->page.real_alarm_index + 1, page_num); + + if (HMI_PROTO_CMD_GET == cmd) /*ȡ*/ { - switch(opa) + switch (opa) { - case 0x01:/*ȡʵʱϢ*/ + case 0x01: /*ȡʵʱϢ*/ + { + if (alarm_device_count == 0) { - if(alarm_device_count == 0) + for (i = 0; i < REAL_ALARM_PAGE_NUM; i++) { - for (i= 0; i < REAL_ALARM_PAGE_NUM; i++) + x = i; + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 1, (char *)&hmi_tx_buffer[len], ""); // + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 2, (char *)&hmi_tx_buffer[len], ""); // 豸ID + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 3, (char *)&hmi_tx_buffer[len], ""); // 豸 + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 4, (char *)&hmi_tx_buffer[len], ""); // ͨѶ״̬ + for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++) + { + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 5 + (ch * 3), (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 6 + (ch * 3), (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 7 + (ch * 3), (char *)&hmi_tx_buffer[len], ""); + } + } + } + else + { + if (p_tjc_hmi->page.real_alarm_index == page_num - 1 && remain_alrm_device_num > 0) + { + for (j = 0; j < remain_alrm_device_num; j++) + { + index = p_tjc_hmi->page.real_alarm_index * REAL_ALARM_PAGE_NUM + j; + device_index = alarm_device_index[index]; + x = j; + + /**/ + y = 0; + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", leakage.sub_device_data[device_index].flash_data.region_name); + + /*豸ID*/ + y = 1; + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.sub_device_data[device_index].flash_data.modbus_id); + + /*豸*/ + y = 2; + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", leakage.sub_device_data[device_index].flash_data.device_name); + + /*ͨѶ״̬*/ + y = 3; + u16 comm_state = 0; + for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++) { - x = i; - len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 1, (char *)&hmi_tx_buffer[len], ""); // - len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 2, (char *)&hmi_tx_buffer[len], ""); // 豸ID - len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 3, (char *)&hmi_tx_buffer[len], ""); // 豸 - len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 4, (char *)&hmi_tx_buffer[len], ""); // ͨѶ״̬ - for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++) + if (leakage.sub_device_data[device_index].ch_data[ch].state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) { - len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 5 + (ch * 3), (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 6 + (ch * 3), (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 7 + (ch * 3), (char *)&hmi_tx_buffer[len], ""); + comm_state = APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT; + break; } } - } - else - { - if(p_tjc_hmi->page.real_alarm_index == page_num - 1 && remain_alrm_device_num > 0) - { - for(j=0;jpage.real_alarm_index * REAL_ALARM_PAGE_NUM + j; - device_index = alarm_device_index[index]; - x = j; - - /**/ - y = 0; - len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.region_name); - - /*豸ID*/ - y = 1; - len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.sub_device_data[device_index].flash_data.modbus_id); - - /*豸*/ - y = 2; - len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.device_name); - - /*ͨѶ״̬*/ - y =3; - u16 comm_state = 0; - for(ch=0;chpage.real_alarm_index * REAL_ALARM_PAGE_NUM + j; - device_index = alarm_device_index[index]; - - x = j; - - /**/ - y = 0; - len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.region_name); - - /*豸ID*/ - y = 1; - len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.sub_device_data[device_index].flash_data.modbus_id); - - /*豸*/ - y = 2; - len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.device_name); - - /*ͨѶ״̬*/ - y =3; - u16 comm_state = 0; - for(ch=0;chpage.real_alarm_index) - { - p_tjc_hmi->page.real_alarm_index = 0; - } - else - { - p_tjc_hmi->page.real_alarm_index++; } } else { - - if(0 == p_tjc_hmi->page.real_alarm_index) + for (j = 0; j < REAL_ALARM_PAGE_NUM; j++) { - p_tjc_hmi->page.real_alarm_index = page_num - 1; + index = p_tjc_hmi->page.real_alarm_index * REAL_ALARM_PAGE_NUM + j; + device_index = alarm_device_index[index]; + + x = j; + + /**/ + y = 0; + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", leakage.sub_device_data[device_index].flash_data.region_name); + + /*豸ID*/ + y = 1; + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.sub_device_data[device_index].flash_data.modbus_id); + + /*豸*/ + y = 2; + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", leakage.sub_device_data[device_index].flash_data.device_name); + + /*ͨѶ״̬*/ + y = 3; + u16 comm_state = 0; + for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++) + { + if (leakage.sub_device_data[device_index].ch_data[ch].state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) + { + comm_state = APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT; + break; + } + } + if (comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) + { + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "ͨѶ쳣"); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "ͨѶ"); + } + + /*ͨ״̬*/ + for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; ch++) + { + u16 ch_state = leakage.sub_device_data[device_index].ch_data[ch].state; + u16 ch_distance = leakage.sub_device_data[device_index].ch_data[ch].distance; + + y = 4 + (ch * 3); + if (comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) + { + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "-"); + } + else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) + { + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "©Һ"); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], ""); + } + + y = 5 + (ch * 3); + if (comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) + { + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "-"); + } + else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN) + { + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "ϴ"); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], ""); + } + + y = 6 + (ch * 3); + if (comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) + { + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "-"); + } + else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) + { + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%.2f", ch_distance / LEAKAGE_MULTIPLE); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "0"); + } + } } - else + } + for (; j < REAL_ALARM_PAGE_NUM; j++) + { + x = j; + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 1, (char *)&hmi_tx_buffer[len], ""); // + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 2, (char *)&hmi_tx_buffer[len], ""); // 豸ID + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 3, (char *)&hmi_tx_buffer[len], ""); // 豸 + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 4, (char *)&hmi_tx_buffer[len], ""); // ͨѶ״̬ + for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++) { - p_tjc_hmi->page.real_alarm_index--; + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 5 + (ch * 3), (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 6 + (ch * 3), (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 7 + (ch * 3), (char *)&hmi_tx_buffer[len], ""); } } } - default:return; } - len = strlen((char *)hmi_tx_buffer); - gui_tjc_hmi_data_send(hmi_tx_buffer,len); - } - else if(HMI_PROTO_CMD_SET == cmd)/**/ - { - switch(opa) + break; + case 0x03: /*ҳ*/ { - case 0x01: + if (0x01 == p_data[0]) { - - }break; - case 0x02: + if (page_num - 1 <= p_tjc_hmi->page.real_alarm_index) + { + p_tjc_hmi->page.real_alarm_index = 0; + } + else + { + p_tjc_hmi->page.real_alarm_index++; + } + } + else { - - }break; - default:return; + + if (0 == p_tjc_hmi->page.real_alarm_index) + { + p_tjc_hmi->page.real_alarm_index = page_num - 1; + } + else + { + p_tjc_hmi->page.real_alarm_index--; + } + } + } + default: + return; } len = strlen((char *)hmi_tx_buffer); - gui_tjc_hmi_data_send(hmi_tx_buffer,len); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); + } + else if (HMI_PROTO_CMD_SET == cmd) /**/ + { + switch (opa) + { + case 0x01: + { + } + break; + case 0x02: + { + } + break; + default: + return; + } + len = strlen((char *)hmi_tx_buffer); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); } } /**/ static void gui_tjc_hmi_detail_main_send(u8 cmd, u8 opa, u8 *p_data) { - #define DETAIL_MAIN_NUM (4) /* ÿҳʾ4豸 */ - - u16 len=0 , i, sub_device_index, ch, x, y, index; - u8 page_num=0, remain_device_num, display_count; +#define DETAIL_MAIN_NUM (4) /* ÿҳʾ4豸 */ + + u16 len = 0, i, sub_device_index, ch, x, y, index; + u8 page_num = 0, remain_device_num, display_count; u8 region_idx; /* */ app_leakage_region_data_class_t *region_data; - + memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer)); - - region_idx = p_tjc_hmi->page.deliniter_main_index; - if (region_idx >= leakage.region_num) return; + + region_idx = p_tjc_hmi->page.deliniter_main_index; + if (region_idx >= leakage.region_num) + return; region_data = &leakage.region_data[region_idx]; - + /* ҳÿҳʾ4豸 */ page_num = region_data->sub_device_num / DETAIL_MAIN_NUM; remain_device_num = region_data->sub_device_num % DETAIL_MAIN_NUM; @@ -824,830 +836,877 @@ static void gui_tjc_hmi_detail_main_send(u8 cmd, u8 opa, u8 *p_data) { page_num++; } - /*ҳ*/ - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,0, 0, - (char *)&hmi_tx_buffer[len], - "%d/%d", - p_tjc_hmi->page.detail_main_index+1,page_num); - - + /*ҳ*/ + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, 0, 0, + (char *)&hmi_tx_buffer[len], + "%d/%d", + p_tjc_hmi->page.detail_main_index + 1, page_num); + if (HMI_PROTO_CMD_GET == cmd) /* ȡ */ { switch (opa) { - case 0x01: /* ȡ豸Ϣ */ + case 0x01: /* ȡ豸Ϣ */ + { + u8 relative_region_idx = p_data[0]; + if (relative_region_idx < 1 || relative_region_idx > 4) + return; + + /* ȫ */ + region_idx = p_tjc_hmi->page.main_index * 4 + (relative_region_idx - 1); + if (region_idx >= leakage.region_num) + return; + + /* лʱҳ */ + if (region_idx != p_tjc_hmi->page.deliniter_main_index) + p_tjc_hmi->page.detail_main_index = 0; + + p_tjc_hmi->page.deliniter_main_index = region_idx; + region_data = &leakage.region_data[region_idx]; + + /* ҳ */ + page_num = region_data->sub_device_num / DETAIL_MAIN_NUM; + remain_device_num = region_data->sub_device_num % DETAIL_MAIN_NUM; + if (remain_device_num > 0) + page_num++; + if (page_num == 0) + page_num = 1; + + u8 start_index = p_tjc_hmi->page.detail_main_index * DETAIL_MAIN_NUM; + display_count = (p_tjc_hmi->page.detail_main_index == page_num - 1 && remain_device_num > 0) + ? remain_device_num + : DETAIL_MAIN_NUM; + + for (i = 0; i < display_count; i++) { - u8 relative_region_idx = p_data[0]; - if (relative_region_idx < 1 || relative_region_idx > 4) - return; + index = start_index + i; + if (index >= region_data->sub_device_num) + break; + sub_device_index = region_data->sub_device_index[index]; + x = i; - /* ȫ */ - region_idx = p_tjc_hmi->page.main_index * 4 + (relative_region_idx - 1); - if (region_idx >= leakage.region_num) - return; + /* 豸ID: t(x+1)_1 */ + y = 0; + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + "ID:%d", + leakage.sub_device_data[sub_device_index].flash_data.modbus_id); - /* лʱҳ */ - if (region_idx != p_tjc_hmi->page.deliniter_main_index) - p_tjc_hmi->page.detail_main_index = 0; + /* 豸: t(x+1)_2 */ + y = 1; + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + "%s", + leakage.sub_device_data[sub_device_index].flash_data.device_name); - p_tjc_hmi->page.deliniter_main_index = region_idx; - region_data = &leakage.region_data[region_idx]; - - /* ҳ */ - page_num = region_data->sub_device_num / DETAIL_MAIN_NUM; - remain_device_num = region_data->sub_device_num % DETAIL_MAIN_NUM; - if (remain_device_num > 0) page_num++; - if (page_num == 0) page_num = 1; - - u8 start_index = p_tjc_hmi->page.detail_main_index * DETAIL_MAIN_NUM; - display_count = (p_tjc_hmi->page.detail_main_index == page_num - 1 && remain_device_num > 0) - ? remain_device_num : DETAIL_MAIN_NUM; - - for (i = 0; i < display_count; i++) + /* ͨѶ״̬: t(x+1)_3 */ + y = 2; + u8 comm_state = 0; + for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++) { - index = start_index + i; - if (index >= region_data->sub_device_num) + if (leakage.sub_device_data[sub_device_index].ch_data[ch].state & + APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) + { + comm_state = 1; break; - sub_device_index = region_data->sub_device_index[index]; - x = i; - - /* 豸ID: t(x+1)_1 */ - y = 0; - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - "ID:%d", - leakage.sub_device_data[sub_device_index].flash_data.modbus_id); - - /* 豸: t(x+1)_2 */ - y = 1; - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - "%s", - leakage.sub_device_data[sub_device_index].flash_data.device_name); - - /* ͨѶ״̬: t(x+1)_3 */ - y = 2; - u8 comm_state = 0; - for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++) - { - if (leakage.sub_device_data[sub_device_index].ch_data[ch].state & - APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) - { - comm_state = 1; - break; - } } - if(leakage.sub_device_data[sub_device_index].shield == UNBLOCKED) + } + if (leakage.sub_device_data[sub_device_index].shield == UNBLOCKED) + { + if (comm_state) { + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + "ͨѶ쳣"); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + "ͨѶ"); + } + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + ""); + } + + /* ͨ1-4״̬ */ + for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; ch++) + { + u16 ch_state = leakage.sub_device_data[sub_device_index].ch_data[ch].state; + u16 ch_distance = leakage.sub_device_data[sub_device_index].ch_data[ch].distance; + + /* ©Һ״̬ */ + y = 3 + (ch * 3); + if (leakage.sub_device_data[sub_device_index].shield == UNBLOCKED) + { + if (comm_state) { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - "ͨѶ쳣"); + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + "-"); + } + else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) + { + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + "©Һ"); } else { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - "ͨѶ"); + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + ""); } - }else - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - ""); - } - - - /* ͨ1-4״̬ */ - for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; ch++) - { - u16 ch_state = leakage.sub_device_data[sub_device_index].ch_data[ch].state; - u16 ch_distance = leakage.sub_device_data[sub_device_index].ch_data[ch].distance; - - /* ©Һ״̬ */ - y = 3 + (ch * 3); - if(leakage.sub_device_data[sub_device_index].shield == UNBLOCKED) - { - - if (comm_state) - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - "-"); - } - else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - "©Һ"); - } - else - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - ""); - } - } - else - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - ""); - } - - - /* ϴ״̬ */ - y = 4 + (ch * 3); - if(leakage.sub_device_data[sub_device_index].shield == UNBLOCKED) - { - if (comm_state) - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - "-"); - } - else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN) - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - "ϴ"); - } - else - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - ""); - } - }else - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - ""); - } - - - /* ©Һλ */ - y = 5 + (ch * 3); - if(leakage.sub_device_data[sub_device_index].shield == UNBLOCKED) - { - if (comm_state) - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - "-"); - } - else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - "%.2f", - ch_distance/LEAKAGE_MULTIPLE); - } - else - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - "0"); - } - }else - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, - (char *)&hmi_tx_buffer[len], - "0"); - } - - } - /* ״̬ʾ: t(x+1)_16 */ - y = 15; // 16жӦy=15 - if (leakage.sub_device_data[sub_device_index].shield == BLOCKED) - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, (char *)&hmi_tx_buffer[len], ""); } else { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + ""); + } + + /* ϴ״̬ */ + y = 4 + (ch * 3); + if (leakage.sub_device_data[sub_device_index].shield == UNBLOCKED) + { + if (comm_state) + { + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + "-"); + } + else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN) + { + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + "ϴ"); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + ""); + } + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + ""); + } + + /* ©Һλ */ + y = 5 + (ch * 3); + if (leakage.sub_device_data[sub_device_index].shield == UNBLOCKED) + { + if (comm_state) + { + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + "-"); + } + else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) + { + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + "%.2f", + ch_distance / LEAKAGE_MULTIPLE); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + "0"); + } + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, + (char *)&hmi_tx_buffer[len], + "0"); } } - - /*δʹõ*/ - for (; i < DETAIL_MAIN_NUM; i++) + /* ״̬ʾ: t(x+1)_16 */ + y = 15; // 16жӦy=15 + if (leakage.sub_device_data[sub_device_index].shield == BLOCKED) { - x = i; - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, 1, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, 2, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, 3, (char *)&hmi_tx_buffer[len], ""); - for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++) - { - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, 4 + (ch*3), (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, 5 + (ch*3), (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, 6 + (ch*3), (char *)&hmi_tx_buffer[len], ""); - } - len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, 16, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], ""); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], ""); } } - break; - - case 0x03: /* ҳ */ + + /*δʹõ*/ + for (; i < DETAIL_MAIN_NUM; i++) { - - -// /*¼ҳ*/ -// page_num = region_data->sub_device_num / DETAIL_MAIN_NUM; -// remain_device_num = region_data->sub_device_num % DETAIL_MAIN_NUM; -// if (remain_device_num > 0) page_num++; -// if (page_num == 0) page_num = 1; - - if(0x01 == p_data[0]) /* һҳ */ + x = i; + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, 1, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, 2, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, 3, (char *)&hmi_tx_buffer[len], ""); + for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++) { - if(page_num - 1 <= p_tjc_hmi->page.detail_main_index) - { - p_tjc_hmi->page.detail_main_index = 0; - } - else - { - p_tjc_hmi->page.detail_main_index++; - } + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, 4 + (ch * 3), (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, 5 + (ch * 3), (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, 6 + (ch * 3), (char *)&hmi_tx_buffer[len], ""); } - else /* һҳ */ - { - if(0 == p_tjc_hmi->page.detail_main_index) - { - p_tjc_hmi->page.detail_main_index = page_num - 1; - } - else - { - p_tjc_hmi->page.detail_main_index--; - } - } - return; + len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, 16, (char *)&hmi_tx_buffer[len], ""); } - break; - - default: - return; } - + break; + + case 0x03: /* ҳ */ + { + + // /*¼ҳ*/ + // page_num = region_data->sub_device_num / DETAIL_MAIN_NUM; + // remain_device_num = region_data->sub_device_num % DETAIL_MAIN_NUM; + // if (remain_device_num > 0) page_num++; + // if (page_num == 0) page_num = 1; + + if (0x01 == p_data[0]) /* һҳ */ + { + if (page_num - 1 <= p_tjc_hmi->page.detail_main_index) + { + p_tjc_hmi->page.detail_main_index = 0; + } + else + { + p_tjc_hmi->page.detail_main_index++; + } + } + else /* һҳ */ + { + if (0 == p_tjc_hmi->page.detail_main_index) + { + p_tjc_hmi->page.detail_main_index = page_num - 1; + } + else + { + p_tjc_hmi->page.detail_main_index--; + } + } + return; + } + break; + + default: + return; + } + len = strlen((char *)hmi_tx_buffer); - gui_tjc_hmi_data_send(hmi_tx_buffer,len); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); } else if (HMI_PROTO_CMD_SET == cmd) /* */ { switch (opa) { - case 0x01: /* */ + case 0x01: /* */ + { + u8 len_id = 0; + u8 device_id = 0; + + p_data = p_data + 3; /*ID:ƫƳȥ*/ + /* 豸IDp_data[0]ʼֱָ */ + while (p_data[len_id] != HMI_PROTO_ASCII_RX_DELINITER) { - u8 len_id = 0; - u8 device_id = 0; - - p_data = p_data + 3; /*ID:ƫƳȥ*/ - /* 豸IDp_data[0]ʼֱָ */ - while (p_data[len_id] != HMI_PROTO_ASCII_RX_DELINITER) { - if (p_data[len_id] < '0' || p_data[len_id] > '9') { - return; /* Ƿַ */ - } - len_id++; - if (len_id > 3) { /* ID3λ(0-255) */ - return; - } + if (p_data[len_id] < '0' || p_data[len_id] > '9') + { + return; /* Ƿַ */ } - if (len_id == 0) { - return; /* IDΪ */ - } - - /* ASCIIִתΪֵ */ - char id_str[4] = {0}; /* 3λּ'\0' */ - memcpy(id_str, p_data, len_id); - id_str[len_id] = '\0'; - int temp_id = atoi(id_str); - if (temp_id < 0 || temp_id > 255) { - return; /* IDΧ */ - } - device_id = (u8)temp_id; - - /* 뼰ķָ */ - u8 op_index = len_id + 1; /* λ */ - u8 delim_index = len_id + 2; /* ķָλ */ - if (p_data[delim_index] != HMI_PROTO_ASCII_RX_DELINITER) { + len_id++; + if (len_id > 3) + { /* ID3λ(0-255) */ return; } - u8 operation = p_data[op_index]; /* ֱΪֵ */ - - /* ʹܵ豸ƥmodbus_id */ - u8 found = 0; - for (u8 i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++) { - if (leakage.sub_device_data[i].flash_data.state == ENABLE && - leakage.sub_device_data[i].flash_data.modbus_id == device_id) { - if (operation == 0x01) { - leakage.sub_device_data[i].shield = BLOCKED; /* */ - } else if (operation == 0x02) { - leakage.sub_device_data[i].shield = UNBLOCKED; /* ָ */ - } else { - return; - } - found = 1; - break; + } + if (len_id == 0) + { + return; /* IDΪ */ + } + + /* ASCIIִתΪֵ */ + char id_str[4] = {0}; /* 3λּ'\0' */ + memcpy(id_str, p_data, len_id); + id_str[len_id] = '\0'; + int temp_id = atoi(id_str); + if (temp_id < 0 || temp_id > 255) + { + return; /* IDΧ */ + } + device_id = (u8)temp_id; + + /* 뼰ķָ */ + u8 op_index = len_id + 1; /* λ */ + u8 delim_index = len_id + 2; /* ķָλ */ + if (p_data[delim_index] != HMI_PROTO_ASCII_RX_DELINITER) + { + return; + } + u8 operation = p_data[op_index]; /* ֱΪֵ */ + + /* ʹܵ豸ƥmodbus_id */ + u8 found = 0; + for (u8 i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++) + { + if (leakage.sub_device_data[i].flash_data.state == ENABLE && + leakage.sub_device_data[i].flash_data.modbus_id == device_id) + { + if (operation == 0x01) + { + leakage.sub_device_data[i].shield = BLOCKED; /* */ } + else if (operation == 0x02) + { + leakage.sub_device_data[i].shield = UNBLOCKED; /* ָ */ + } + else + { + return; + } + found = 1; + break; + } } if (found) { /*޸ĺ豸Ϣ浽 Flash*/ gui_tjc_hmi_save_device_info_to_w25q(); } - return; - } - break; - - default: - return; + return; + } + break; + + default: + return; } } } /*¼*/ -static void gui_tjc_hmi_login_send(u8 cmd,u8 opa,u8 *p_data) +static void gui_tjc_hmi_login_send(u8 cmd, u8 opa, u8 *p_data) { - u16 len = 0,i; - - if(HMI_PROTO_CMD_GET == cmd) /* ȡ */ + u16 len = 0, i; + + if (HMI_PROTO_CMD_GET == cmd) /* ȡ */ { - switch(opa) + switch (opa) { - case 0x01: /* ȡflashд洢 */ - { - gui_tjc_hmi_read_password_from_w25q(); - memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer)); - /* ֵʽ͵ؼ t22_1 */ - len = gui_tjc_hmi_tx_text_display(GUI_LOGIN,22, 1, (char *)hmi_tx_buffer, - "%d%d%d%d", - p_tjc_hmi->password[0], - p_tjc_hmi->password[1], - p_tjc_hmi->password[2], - p_tjc_hmi->password[3]); - gui_tjc_hmi_data_send(hmi_tx_buffer, len); - return; /* ֱӷأظ */ - } break; - case 0x02: /* ޲ */ - default: - return; + case 0x01: /* ȡflashд洢 */ + { + gui_tjc_hmi_read_password_from_w25q(); + memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer)); + /* ֵʽ͵ؼ t22_1 */ + len = gui_tjc_hmi_tx_text_display(GUI_LOGIN, 22, 1, (char *)hmi_tx_buffer, + "%d%d%d%d", + p_tjc_hmi->password[0], + p_tjc_hmi->password[1], + p_tjc_hmi->password[2], + p_tjc_hmi->password[3]); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); + return; /* ֱӷأظ */ + } + break; + case 0x02: /* ޲ */ + default: + return; } } - else if(HMI_PROTO_CMD_SET == cmd) /* */ + else if (HMI_PROTO_CMD_SET == cmd) /* */ { - switch(opa) + switch (opa) { - case 0x01: /* flash */ + case 0x01: /* flash */ + { + /* ASCIIתΪֵ'0'~'9' */ + for (i = 0; i < 4; i++) { - /* ASCIIתΪֵ'0'~'9' */ - for(i = 0; i < 4; i++) + if (p_data[i] >= '0' && p_data[i] <= '9') { - if(p_data[i] >= '0' && p_data[i] <= '9') - { - p_tjc_hmi->password[i] = p_data[i] - '0'; - } - else - { - p_tjc_hmi->password[i] = 0; /* Ƿַʱ */ - } + p_tjc_hmi->password[i] = p_data[i] - '0'; } - /* 浽W25Q32 */ - gui_tjc_hmi_save_password_to_w25q(); - /* Ӧֱӷ */ - return; - } break; - case 0x02: /* ޲ */ - default: - return; + else + { + p_tjc_hmi->password[i] = 0; /* Ƿַʱ */ + } + } + /* 浽W25Q32 */ + gui_tjc_hmi_save_password_to_w25q(); + /* Ӧֱӷ */ + return; + } + break; + case 0x02: /* ޲ */ + default: + return; } } } /*ʷ*/ -static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data) +static void gui_tjc_hmi_history_alarm_send(u8 cmd, u8 opa, u8 *p_data) { - #define HISTORY_ALARM_PER_PAGE (15) /* ÿҳ15ʷ */ +#define HISTORY_ALARM_PER_PAGE (15) /* ÿҳ15ʷ */ u16 len = 0, i, j; u8 page_num, remain_records, display_count; u32 total_records, start_index, record_index = 0; app_leakage_history_alarm_t history_record; char time_str[20]; char alarm_type_str[20]; - + /* ȡܼ¼ */ total_records = leakage.history_metadata.total_records; - - /* ҳ */ page_num = total_records / HISTORY_ALARM_PER_PAGE; remain_records = total_records % HISTORY_ALARM_PER_PAGE; - if(remain_records > 0) + if (remain_records > 0) { page_num++; } - + memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer)); - + /*ҳ*/ - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,0, 0, - (char *)&hmi_tx_buffer[len], - "%d/%d", - p_tjc_hmi->page.history_alarm_index+1, page_num == 0 ? 1 : page_num); - - if(HMI_PROTO_CMD_GET == cmd) /* ȡ */ + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, 0, 0, + (char *)&hmi_tx_buffer[len], + "%d/%d", + p_tjc_hmi->page.history_alarm_index + 1, page_num == 0 ? 1 : page_num); + + if (HMI_PROTO_CMD_GET == cmd) /* ȡ */ { - switch(opa) + switch (opa) { - case 0x01: /* ȡʷϢ */ + case 0x01: /* ȡʷϢ */ + { + /* ȡǰҳӦļ¼ */ + u8 current_page = p_tjc_hmi->page.history_alarm_index; + + /* ʼ¼ʱ䵹ʾµǰ棩 */ + start_index = current_page * HISTORY_ALARM_PER_PAGE; + + /* 㱾ҳʾ¼ */ + if (current_page == page_num - 1 && remain_records > 0) { - /* ȡǰҳӦļ¼ */ - u8 current_page = p_tjc_hmi->page.history_alarm_index; - - /* ʼ¼ʱ䵹ʾµǰ棩 */ - start_index = current_page * HISTORY_ALARM_PER_PAGE; - - /* 㱾ҳʾ¼ */ - if(current_page == page_num - 1 && remain_records > 0) + display_count = remain_records; + } + else + { + display_count = HISTORY_ALARM_PER_PAGE; + } + + if (total_records == 0) /*ûҪʾϢ*/ + { + display_count = 0; + } + + /* ʾʷ¼ */ + for (i = 0; i < display_count; i++) + { + /* ¼µĿʼ */ + if (total_records > start_index + i) { - display_count = remain_records; + record_index = total_records - 1 - (start_index + i); } else { - display_count = HISTORY_ALARM_PER_PAGE; + break; } - - if(total_records == 0)/*ûҪʾϢ*/ - { - display_count = 0; - } - - /* ʾʷ¼ */ - for(i = 0; i < display_count; i++) - { - /* ¼µĿʼ */ - if(total_records > start_index + i) - { - record_index = total_records - 1 - (start_index + i); - } - else - { - break; - } - - /* ȡʷ¼ */ - if(history.read_history(record_index, &history_record)) - { - u8 com_time_out_flag = 0; - if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) - { - com_time_out_flag = 1; - } - /* : t(i+1)_1 */ - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 1, - (char *)&hmi_tx_buffer[len], - "%s", - history_record.region_name); - - /* 豸ID: t(i+1)_2 */ - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 2, - (char *)&hmi_tx_buffer[len], - "%d", - history_record.device_id); - - if(com_time_out_flag) - { - /*ͨϢt(i+1)_3*/ - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1,3, - (char *)&hmi_tx_buffer[len], - "-"); - } - else - { - /*ͨϢt(i+1)_3*/ - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1,3, - (char *)&hmi_tx_buffer[len], - "%d", - history_record.channel+1); - } - - /* : t(i+1)_4 */ - alarm_type_str[0] = '\0'; - if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) - strcat(alarm_type_str, "©Һ"); - else if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_OPEN) - strcat(alarm_type_str, "ϴ"); - else if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) - { - strcat(alarm_type_str, "ͨѶ쳣"); - } - - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 4, - (char *)&hmi_tx_buffer[len], - "%s", - alarm_type_str); - - /* 豸: t(i+1)_5 */ - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 5, - (char *)&hmi_tx_buffer[len], - "%s", - history_record.device_name); - - /* ©Һ: t(i+1)_6 (©Һʾ) */ - if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) - { - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 6, - (char *)&hmi_tx_buffer[len], - "%.2f", - history_record.leak_distance/LEAKAGE_MULTIPLE); - } - else - { - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 6, - (char *)&hmi_tx_buffer[len], - "-"); - } - - /* ʼʱ: t(i+1)_7 */ - uint16_t year = (history_record.start_time[0] << 8) | history_record.start_time[1]; - sprintf(time_str, "%04d-%02d-%02d %02d:%02d:%02d", - year, - history_record.start_time[2], - history_record.start_time[3], - history_record.start_time[4], - history_record.start_time[5], - history_record.start_time[6]); - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 7, - (char *)&hmi_tx_buffer[len], - "%s", - time_str); + /* ȡʷ¼ */ + if (history.read_history(record_index, &history_record)) + { + u8 com_time_out_flag = 0; + if (history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) + { + com_time_out_flag = 1; + } + /* : t(i+1)_1 */ + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 1, + (char *)&hmi_tx_buffer[len], + "%s", + history_record.region_name); + + /* 豸ID: t(i+1)_2 */ + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 2, + (char *)&hmi_tx_buffer[len], + "%d", + history_record.device_id); + + if (com_time_out_flag) + { + /*ͨϢt(i+1)_3*/ + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 3, + (char *)&hmi_tx_buffer[len], + "-"); } else { - /* ȡʧܣʾ */ - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 1, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 2, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 3, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 4, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 5, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 6, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 7, (char *)&hmi_tx_buffer[len], ""); + /*ͨϢt(i+1)_3*/ + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 3, + (char *)&hmi_tx_buffer[len], + "%d", + history_record.channel + 1); } + + /* : t(i+1)_4 */ + alarm_type_str[0] = '\0'; + if (history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) + strcat(alarm_type_str, "©Һ"); + else if (history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_OPEN) + strcat(alarm_type_str, "ϴ"); + else if (history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) + { + strcat(alarm_type_str, "ͨѶ쳣"); + } + + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 4, + (char *)&hmi_tx_buffer[len], + "%s", + alarm_type_str); + + /* 豸: t(i+1)_5 */ + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 5, + (char *)&hmi_tx_buffer[len], + "%s", + history_record.device_name); + + /* ©Һ: t(i+1)_6 (©Һʾ) */ + if (history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) + { + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 6, + (char *)&hmi_tx_buffer[len], + "%.2f", + history_record.leak_distance / LEAKAGE_MULTIPLE); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 6, + (char *)&hmi_tx_buffer[len], + "-"); + } + + /* ʼʱ: t(i+1)_7 */ + uint16_t year = (history_record.start_time[0] << 8) | history_record.start_time[1]; + sprintf(time_str, "%04d-%02d-%02d %02d:%02d:%02d", + year, + history_record.start_time[2], + history_record.start_time[3], + history_record.start_time[4], + history_record.start_time[5], + history_record.start_time[6]); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 7, + (char *)&hmi_tx_buffer[len], + "%s", + time_str); } - - /* ҳ15¼ʣ */ - for(; i < HISTORY_ALARM_PER_PAGE; i++) + else { - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 1, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 2, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 3, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 4, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 5, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 6, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 7, (char *)&hmi_tx_buffer[len], ""); + /* ȡʧܣʾ */ + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 1, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 2, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 3, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 4, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 5, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 6, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 7, (char *)&hmi_tx_buffer[len], ""); } - - len = strlen((char *)hmi_tx_buffer); - gui_tjc_hmi_data_send(hmi_tx_buffer, len); } - break; - - case 0x03: /* ҳ */ + + /* ҳ15¼ʣ */ + for (; i < HISTORY_ALARM_PER_PAGE; i++) { - if(0x01 == p_data[0]) /* һҳ */ - { - if(p_tjc_hmi->page.history_alarm_index >= page_num - 1) - { - p_tjc_hmi->page.history_alarm_index = 0; - } - else - { - p_tjc_hmi->page.history_alarm_index++; - } - } - else /* һҳ */ - { - if(p_tjc_hmi->page.history_alarm_index == 0) - { - p_tjc_hmi->page.history_alarm_index = page_num - 1; - } - else - { - p_tjc_hmi->page.history_alarm_index--; - } - } + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 1, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 2, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 3, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 4, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 5, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 6, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 7, (char *)&hmi_tx_buffer[len], ""); } - break; - default:return; + + len = strlen((char *)hmi_tx_buffer); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); } - len = strlen((char *)hmi_tx_buffer); - gui_tjc_hmi_data_send(hmi_tx_buffer,len); - } - else if(HMI_PROTO_CMD_SET == cmd)/**/ - { - switch(opa) + break; + + case 0x03: /* ҳ */ { - case 0x01:/**/ + if (0x01 == p_data[0]) /* һҳ */ { - history.clean_history(); - p_tjc_hmi->page.history_alarm_index = 0; // ҳ - - memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer)); - len = 0; - -// // 15е7 -// for(i = 0; i < HISTORY_ALARM_PER_PAGE; i++) -// { -// len += gui_tjc_hmi_tx_text_display(i+1, 1, (char *)&hmi_tx_buffer[len], ""); // -// len += gui_tjc_hmi_tx_text_display(i+1, 2, (char *)&hmi_tx_buffer[len], ""); // 豸ID -// len += gui_tjc_hmi_tx_text_display(i+1, 3, (char *)&hmi_tx_buffer[len], ""); // ͨ -// len += gui_tjc_hmi_tx_text_display(i+1, 4, (char *)&hmi_tx_buffer[len], ""); // -// len += gui_tjc_hmi_tx_text_display(i+1, 5, (char *)&hmi_tx_buffer[len], ""); // 豸 -// len += gui_tjc_hmi_tx_text_display(i+1, 6, (char *)&hmi_tx_buffer[len], ""); // ©Һ -// len += gui_tjc_hmi_tx_text_display(i+1, 7, (char *)&hmi_tx_buffer[len], ""); // ʱ -// } - - gui_tjc_hmi_data_send(hmi_tx_buffer, len); - }break; - case 0x02:/**/ + if (p_tjc_hmi->page.history_alarm_index >= page_num - 1) + { + p_tjc_hmi->page.history_alarm_index = 0; + } + else + { + p_tjc_hmi->page.history_alarm_index++; + } + } + else /* һҳ */ { - - }break; - default:return; + if (p_tjc_hmi->page.history_alarm_index == 0) + { + p_tjc_hmi->page.history_alarm_index = page_num - 1; + } + else + { + p_tjc_hmi->page.history_alarm_index--; + } + } + } + break; + default: + return; } len = strlen((char *)hmi_tx_buffer); - gui_tjc_hmi_data_send(hmi_tx_buffer,len); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); + } + else if (HMI_PROTO_CMD_SET == cmd) /**/ + { + switch (opa) + { + case 0x01: /**/ + { + history.clean_history(); + p_tjc_hmi->page.history_alarm_index = 0; // ҳ + + memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer)); + len = 0; + + // // 15е7 + // for(i = 0; i < HISTORY_ALARM_PER_PAGE; i++) + // { + // len += gui_tjc_hmi_tx_text_display(i+1, 1, (char *)&hmi_tx_buffer[len], ""); // + // len += gui_tjc_hmi_tx_text_display(i+1, 2, (char *)&hmi_tx_buffer[len], ""); // 豸ID + // len += gui_tjc_hmi_tx_text_display(i+1, 3, (char *)&hmi_tx_buffer[len], ""); // ͨ + // len += gui_tjc_hmi_tx_text_display(i+1, 4, (char *)&hmi_tx_buffer[len], ""); // + // len += gui_tjc_hmi_tx_text_display(i+1, 5, (char *)&hmi_tx_buffer[len], ""); // 豸 + // len += gui_tjc_hmi_tx_text_display(i+1, 6, (char *)&hmi_tx_buffer[len], ""); // ©Һ + // len += gui_tjc_hmi_tx_text_display(i+1, 7, (char *)&hmi_tx_buffer[len], ""); // ʱ + // } + + gui_tjc_hmi_data_send(hmi_tx_buffer, len); + } + break; + case 0x02: /**/ + { + } + break; + default: + return; + } + len = strlen((char *)hmi_tx_buffer); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); } } /*ý*/ -static void gui_tjc_hmi_tcp_config_send(u8 cmd,u8 opa,u8 *p_data) +static void gui_tjc_hmi_tcp_config_send(u8 cmd, u8 opa, u8 *p_data) { - u16 len = 0,i; - - memset(hmi_tx_buffer,0,sizeof(hmi_tx_buffer)); - - if(HMI_PROTO_CMD_GET == cmd)/*ȡ*/ + u16 len = 0, i, j; + u16 port_temp; + u8 ip_str[16], mask_str[16], gw_str[16], port_str[BSP_W5500_PORT_NUM][16]; + u8 field_count = 0; + u8 *current_pos = p_data; + u8 ip_len, mask_len, gw_len, port_len; + u16 port_val; + + memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer)); + + if (HMI_PROTO_CMD_GET == cmd) /*ȡ*/ { - switch(opa) + switch (opa) { - case 0x01:/*ȡϢp_data[0]=0x01Ϊȡõã00ΪȡĬϵ,IP,,,DNS*/ + case 0x01: /*ȡϢp_data[0]=0x01Ϊȡõã00ΪȡĬϵ,IP,,,DNS*/ + { + if (p_data[0] == 0x01) { - if(p_data[0] == 0x01) + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 1, (char *)&hmi_tx_buffer[len], + "%d.%d.%d.%d", + W5500.IP_Addr[0], + W5500.IP_Addr[1], + W5500.IP_Addr[2], + W5500.IP_Addr[3]); + + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 2, (char *)&hmi_tx_buffer[len], + "%d.%d.%d.%d", + W5500.Sub_Mask[0], + W5500.Sub_Mask[1], + W5500.Sub_Mask[2], + W5500.Sub_Mask[3]); + + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 3, (char *)&hmi_tx_buffer[len], + "%d.%d.%d.%d", + W5500.Gateway_IP[0], + W5500.Gateway_IP[1], + W5500.Gateway_IP[2], + W5500.Gateway_IP[3]); + /*port˿*/ + for (i = 0; i < BSP_W5500_PORT_NUM; i++) { - len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,1,(char *)&hmi_tx_buffer[len], - "%d.%d.%d.%d", - W5500.IP_Addr[0], - W5500.IP_Addr[1], - W5500.IP_Addr[2], - W5500.IP_Addr[3]); - - len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,2,(char *)&hmi_tx_buffer[len], - "%d.%d.%d.%d", - W5500.Sub_Mask[0], - W5500.Sub_Mask[1], - W5500.Sub_Mask[2], - W5500.Sub_Mask[3]); - - len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,3,(char *)&hmi_tx_buffer[len], - "%d.%d.%d.%d", - W5500.Gateway_IP[0], - W5500.Gateway_IP[1], - W5500.Gateway_IP[2], - W5500.Gateway_IP[3]); - len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,4,(char *)&hmi_tx_buffer[len],"%d",(W5500.W5500_Class[0].ConfigData.Port[0] << 8) | W5500.W5500_Class[0].ConfigData.Port[1]); - }else if(p_data[0] == 0x00) - { - len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,1,(char *)&hmi_tx_buffer[len],"%s","192.168.100.100"); - len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,2,(char *)&hmi_tx_buffer[len],"%s","255.255.255.0"); - len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,3,(char *)&hmi_tx_buffer[len],"%s","192.168.50.1"); - len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,4,(char *)&hmi_tx_buffer[len],"%s","5000"); - sscanf("192.168.100.100","%hhu.%hhu.%hhu.%hhu",&W5500.IP_Addr[0],&W5500.IP_Addr[1],&W5500.IP_Addr[2],&W5500.IP_Addr[3]); - sscanf("255.255.255.0","%hhu.%hhu.%hhu.%hhu",&W5500.Sub_Mask[0],&W5500.Sub_Mask[1],&W5500.Sub_Mask[2],&W5500.Sub_Mask[3]); - sscanf("192.168.50.1","%hhu.%hhu.%hhu.%hhu",&W5500.Gateway_IP[0],&W5500.Gateway_IP[1],&W5500.Gateway_IP[2],&W5500.Gateway_IP[3]); - W5500.W5500_Class[0].ConfigData.Port[0] = (5000 >> 8) & 0xFF; - W5500.W5500_Class[0].ConfigData.Port[1] = 5000 & 0xFF; - W5500.Init(); + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 4 + i, (char *)&hmi_tx_buffer[len], "%d", (W5500.W5500_Class[i].ConfigData.Port[0] << 8) | W5500.W5500_Class[i].ConfigData.Port[1]); } - }break; - case 0x02:/**/ + } + else if (p_data[0] == 0x00) { - - }break; - default:return; + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 1, (char *)&hmi_tx_buffer[len], "%s", "192.168.100.100"); + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 2, (char *)&hmi_tx_buffer[len], "%s", "255.255.255.0"); + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 3, (char *)&hmi_tx_buffer[len], "%s", "192.168.50.1"); + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 4, (char *)&hmi_tx_buffer[len], "%s", "502"); + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 5, (char *)&hmi_tx_buffer[len], "%s", "503"); + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 6, (char *)&hmi_tx_buffer[len], "%s", "504"); + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 7, (char *)&hmi_tx_buffer[len], "%s", "505"); + + sscanf("192.168.100.100", "%hhu.%hhu.%hhu.%hhu", &W5500.IP_Addr[0], &W5500.IP_Addr[1], &W5500.IP_Addr[2], &W5500.IP_Addr[3]); + sscanf("255.255.255.0", "%hhu.%hhu.%hhu.%hhu", &W5500.Sub_Mask[0], &W5500.Sub_Mask[1], &W5500.Sub_Mask[2], &W5500.Sub_Mask[3]); + sscanf("192.168.50.1", "%hhu.%hhu.%hhu.%hhu", &W5500.Gateway_IP[0], &W5500.Gateway_IP[1], &W5500.Gateway_IP[2], &W5500.Gateway_IP[3]); + + port_temp = 502; + for (i = 0; i < BSP_W5500_PORT_NUM; i++) + { + W5500.W5500_Class[i].ConfigData.Port[0] = (port_temp >> 8) & 0xFF; + W5500.W5500_Class[i].ConfigData.Port[1] = port_temp & 0xFF; + port_temp++; + } + W5500.Init(); + } } - len = strlen((char *)hmi_tx_buffer); - gui_tjc_hmi_data_send(hmi_tx_buffer,len); - } - else if(HMI_PROTO_CMD_SET == cmd)/**/ - { - switch(opa) + break; + case 0x02: /**/ { - case 0x01:/*ãϢflash*/ - { - u8 field_count = 0; - u8 *current_pos = p_data; - u8 ip_str[16], mask_str[16], gw_str[16], port_str[16]; - u8 ip_len, mask_len, gw_len, port_len; - u16 port_val; - - /* IPַ */ - for (i = 0; i < 16; i++) { - if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) { - ip_len = i; - memcpy(ip_str, current_pos, ip_len); - ip_str[ip_len] = '\0'; - current_pos += (i + 1); - field_count++; - break; - } - } - - /* */ - for (i = 0; i < 16; i++) { - if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) { - mask_len = i; - memcpy(mask_str, current_pos, mask_len); - mask_str[mask_len] = '\0'; - current_pos += (i + 1); - field_count++; - break; - } - } - - /* */ - for (i = 0; i < 16; i++) { - if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) { - gw_len = i; - memcpy(gw_str, current_pos, gw_len); - gw_str[gw_len] = '\0'; - current_pos += (i + 1); - field_count++; - break; - } - } - - /* ˿ں */ - for (i = 0; i < 16; i++) { - if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) { - port_len = i; - memcpy(port_str, current_pos, port_len); - port_str[port_len] = '\0'; - current_pos += (i + 1); - field_count++; - break; - } - } - - if (field_count == 4) { - parse_ip_string(ip_str, ip_len, W5500.IP_Addr); - parse_ip_string(mask_str, mask_len, W5500.Sub_Mask); - parse_ip_string(gw_str, gw_len, W5500.Gateway_IP); - /* ˿ںתΪ */ - port_val = atoi((char*)port_str); - W5500.W5500_Class[0].ConfigData.Port[0] = (port_val >> 8) & 0xFF; - W5500.W5500_Class[0].ConfigData.Port[1] = port_val & 0xFF; - - /* 浽Flash */ - gui_tjc_hmi_save_network_config_to_w25q(); - - /* W5500ʹЧ */ - W5500.Init(); - } - - }break; - case 0x02:/**/ - { - - }break; - default:return; + } + break; + default: + return; } len = strlen((char *)hmi_tx_buffer); - gui_tjc_hmi_data_send(hmi_tx_buffer,len); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); + } + else if (HMI_PROTO_CMD_SET == cmd) /**/ + { + switch (opa) + { + case 0x01: /*ãϢflash*/ + { + + /* IPַ */ + for (i = 0; i < 16; i++) + { + if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) + { + ip_len = i; + memcpy(ip_str, current_pos, ip_len); + ip_str[ip_len] = '\0'; + current_pos += (i + 1); + field_count++; + break; + } + } + + /* */ + for (i = 0; i < 16; i++) + { + if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) + { + mask_len = i; + memcpy(mask_str, current_pos, mask_len); + mask_str[mask_len] = '\0'; + current_pos += (i + 1); + field_count++; + break; + } + } + + /* */ + for (i = 0; i < 16; i++) + { + if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) + { + gw_len = i; + memcpy(gw_str, current_pos, gw_len); + gw_str[gw_len] = '\0'; + current_pos += (i + 1); + field_count++; + break; + } + } + + /* ˿ں */ + for (j = 0; j < BSP_W5500_PORT_NUM; j++) + { + for (i = 0; i < 16; i++) + { + if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) + { + port_len = i; + memcpy(port_str[j], current_pos, port_len); + port_str[j][port_len] = '\0'; + current_pos += (i + 1); + field_count++; + break; + } + } + } + + if (field_count == 7) + { + parse_ip_string(ip_str, ip_len, W5500.IP_Addr); + parse_ip_string(mask_str, mask_len, W5500.Sub_Mask); + parse_ip_string(gw_str, gw_len, W5500.Gateway_IP); + /* ˿ںתΪ */ + for (i = 0; i < BSP_W5500_PORT_NUM; i++) + { + port_val = atoi((char *)(port_str[i])); + W5500.W5500_Class[i].ConfigData.Port[0] = (port_val >> 8) & 0xFF; + W5500.W5500_Class[i].ConfigData.Port[1] = port_val & 0xFF; + } + /* 浽Flash */ + gui_tjc_hmi_save_network_config_to_w25q(); + /* W5500ʹЧ */ + W5500.Init(); + } + } + break; + case 0x02: /**/ + { + } + break; + default: + return; + } + len = strlen((char *)hmi_tx_buffer); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); } } /*豸ý */ -static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data) +static void gui_tjc_hmi_device_config_send(u8 cmd, u8 opa, u8 *p_data) { - #define DEVICES_PER_PAGE (8) - - u16 len = 0,i,j; - u8 found_empty_slot = 0,enabled_device_count,field_count,page_num,remain_region_num; +#define DEVICES_PER_PAGE (8) + + u16 len = 0, i, j; + u8 found_empty_slot = 0, enabled_device_count, field_count, page_num, remain_region_num; u8 empty_slot_index = 0; u8 *current_pos = NULL; app_leakage_sub_device_flash_data_t new_device; - - memset(hmi_tx_buffer,0,sizeof(hmi_tx_buffer)); - -// enabled_device_count = 0; -// for (i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++) -// { -// if (leakage.sub_device_data[i].flash_data.state == ENABLE) -// { -// enabled_device_count++; -// } -// } - + + memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer)); + + // enabled_device_count = 0; + // for (i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++) + // { + // if (leakage.sub_device_data[i].flash_data.state == ENABLE) + // { + // enabled_device_count++; + // } + // } + enabled_device_count = leakage.sub_device_num; page_num = enabled_device_count / DEVICES_PER_PAGE; remain_region_num = enabled_device_count % DEVICES_PER_PAGE; @@ -1655,583 +1714,605 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data) { page_num++; } - if (page_num == 0) page_num = 1; - - /*ҳ*/ - len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,0, 0, - (char *)&hmi_tx_buffer[len], - "%d/%d", - p_tjc_hmi->page.device_config_index+1,page_num); - - - if(HMI_PROTO_CMD_GET == cmd)/*ȡ*/ + if (page_num == 0) + page_num = 1; + + /*ҳ*/ + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, 0, 0, + (char *)&hmi_tx_buffer[len], + "%d/%d", + p_tjc_hmi->page.device_config_index + 1, page_num); + + if (HMI_PROTO_CMD_GET == cmd) /*ȡ*/ { - switch(opa) + switch (opa) { - case 0x01:/*ȡѴڵ豸ʾ򣬶˿ڣ豸ID,豸,*/ + case 0x01: /*ȡѴڵ豸ʾ򣬶˿ڣ豸ID,豸,*/ + { + u8 page_device_indices[DEVICES_PER_PAGE] = {0}; /*洢ǰҳ8豸app_leakageе*/ + u8 page_device_count = 0; /*ǰҳʵõ豸*/ + u8 current_enabled_index = 0; /*ǰǵڼõ豸*/ + u8 device_index; + + /*õ豸*/ + // enabled_device_count = 0; + // for(i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++) + // { + // if(leakage.sub_device_data[i].flash_data.state == ENABLE) + // { + // enabled_device_count++; + // } + // } + // + // /*ҳ*/ + // page_num = enabled_device_count / DEVICES_PER_PAGE; + // remain_region_num = enabled_device_count % DEVICES_PER_PAGE; + // if(remain_region_num > 0) + // { + // page_num++; + // } + // + /*ȷҳЧΧ*/ + if (p_tjc_hmi->page.device_config_index >= page_num) { - u8 page_device_indices[DEVICES_PER_PAGE] = {0}; /*洢ǰҳ8豸app_leakageе*/ - u8 page_device_count = 0; /*ǰҳʵõ豸*/ - u8 current_enabled_index = 0; /*ǰǵڼõ豸*/ - u8 device_index; - - /*õ豸*/ -// enabled_device_count = 0; -// for(i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++) -// { -// if(leakage.sub_device_data[i].flash_data.state == ENABLE) -// { -// enabled_device_count++; -// } -// } -// -// /*ҳ*/ -// page_num = enabled_device_count / DEVICES_PER_PAGE; -// remain_region_num = enabled_device_count % DEVICES_PER_PAGE; -// if(remain_region_num > 0) -// { -// page_num++; -// } -// - /*ȷҳЧΧ*/ - if(p_tjc_hmi->page.device_config_index >= page_num) + p_tjc_hmi->page.device_config_index = 0; + } + + if (enabled_device_count == 0) + { + for (i = 0; i < DEVICES_PER_PAGE; i++) + { + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 1, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 2, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 3, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 4, (char *)&hmi_tx_buffer[len], ""); + } + len = strlen((char *)hmi_tx_buffer); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); + return; + } + + /*ȡǰҳ豸*/ + for (i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM && page_device_count < DEVICES_PER_PAGE; i++) + { + if (leakage.sub_device_data[i].flash_data.state == ENABLE) + { + current_enabled_index++; + + /*ж豸Ƿڵǰҳ*/ + u8 device_page = (current_enabled_index - 1) / DEVICES_PER_PAGE; + if (device_page == p_tjc_hmi->page.device_config_index) + { + page_device_indices[page_device_count] = i; + page_device_count++; + } + } + } + + if (page_device_count == 0) + { + /*ǰҳû豸Ϳ*/ + len = strlen((char *)hmi_tx_buffer); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); + return; + } + + /*ʾǰҳ豸Ϣ*/ + for (i = 0; i < page_device_count; i++) + { + device_index = page_device_indices[i]; + + /*: t(i+1)_1 */ + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 1, + (char *)&hmi_tx_buffer[len], + "%s", + leakage.sub_device_data[device_index].flash_data.region_name); + + /*˿ں: t(i+1)_2 */ + u8 com_port = leakage.sub_device_data[device_index].flash_data.com; + if (com_port < 4) /*ȷ˿ںЧΧ*/ + { + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 2, + (char *)&hmi_tx_buffer[len], + "%s", + hmi_proto_string_com[com_port]); + } + else + { + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 2, + (char *)&hmi_tx_buffer[len], + "δ֪"); + } + + /*豸ID: t(i+1)_3 */ + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 3, + (char *)&hmi_tx_buffer[len], + "%d", + leakage.sub_device_data[device_index].flash_data.modbus_id); + + /*豸: t(i+1)_4 */ + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 4, + (char *)&hmi_tx_buffer[len], + "%s", + leakage.sub_device_data[device_index].flash_data.device_name); + } + + /*ǰҳ8豸ʣ豸ʾλ*/ + if (page_device_count < DEVICES_PER_PAGE) + { + for (i = page_device_count; i < DEVICES_PER_PAGE; i++) + { + /**/ + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 1, + (char *)&hmi_tx_buffer[len], + ""); + + /*ն˿ں*/ + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 2, + (char *)&hmi_tx_buffer[len], + ""); + + /*豸ID*/ + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 3, + (char *)&hmi_tx_buffer[len], + ""); + + /*豸*/ + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 4, + (char *)&hmi_tx_buffer[len], + ""); + } + } + } + break; + + case 0x02: /*ȡĸCOMڵIJ*/ + { + u8 baud_vals[4]; + for (i = 0; i < 4; i++) + { + baud_vals[i] = app_com.com[i].flash_data.baudrate; + } + + len = 0; + len += sprintf((char *)&hmi_tx_buffer[len], "cb0.val=%d", baud_vals[0]); + for (i = 0; i < 3; i++) + hmi_tx_buffer[len + i] = 0xFF; + len += 3; + + len += sprintf((char *)&hmi_tx_buffer[len], "cb1.val=%d", baud_vals[1]); + for (i = 0; i < 3; i++) + hmi_tx_buffer[len + i] = 0xFF; + len += 3; + + len += sprintf((char *)&hmi_tx_buffer[len], "cb2.val=%d", baud_vals[2]); + for (i = 0; i < 3; i++) + hmi_tx_buffer[len + i] = 0xFF; + len += 3; + + len += sprintf((char *)&hmi_tx_buffer[len], "cb3.val=%d", baud_vals[3]); + for (i = 0; i < 3; i++) + hmi_tx_buffer[len + i] = 0xFF; + len += 3; + + gui_tjc_hmi_data_send(hmi_tx_buffer, len); + return; + } + break; + + case 0x03: /*ҳܣÿҳʾ8豸*/ + { + + if (0x01 == p_data[0]) /*һҳ*/ + { + if (page_num - 1 <= p_tjc_hmi->page.device_config_index) { p_tjc_hmi->page.device_config_index = 0; } - - if(enabled_device_count == 0) + else { - for(i = 0; i < DEVICES_PER_PAGE; i++) - { - len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 1, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 2, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 3, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 4, (char *)&hmi_tx_buffer[len], ""); - } - len = strlen((char *)hmi_tx_buffer); - gui_tjc_hmi_data_send(hmi_tx_buffer, len); - return; + p_tjc_hmi->page.device_config_index++; } - - /*ȡǰҳ豸*/ - for(i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM && page_device_count < DEVICES_PER_PAGE; i++) - { - if(leakage.sub_device_data[i].flash_data.state == ENABLE) - { - current_enabled_index++; - - /*ж豸Ƿڵǰҳ*/ - u8 device_page = (current_enabled_index - 1) / DEVICES_PER_PAGE; - if(device_page == p_tjc_hmi->page.device_config_index) - { - page_device_indices[page_device_count] = i; - page_device_count++; - } - } - } - - if(page_device_count == 0) - { - /*ǰҳû豸Ϳ*/ - len = strlen((char *)hmi_tx_buffer); - gui_tjc_hmi_data_send(hmi_tx_buffer,len); - return; - } - - /*ʾǰҳ豸Ϣ*/ - for(i = 0; i < page_device_count; i++) - { - device_index = page_device_indices[i]; - - /*: t(i+1)_1 */ - len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 1, - (char *)&hmi_tx_buffer[len], - "%s", - leakage.sub_device_data[device_index].flash_data.region_name); - - /*˿ں: t(i+1)_2 */ - u8 com_port = leakage.sub_device_data[device_index].flash_data.com; - if(com_port < 4) /*ȷ˿ںЧΧ*/ - { - len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 2, - (char *)&hmi_tx_buffer[len], - "%s", - hmi_proto_string_com[com_port]); - } - else - { - len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 2, - (char *)&hmi_tx_buffer[len], - "δ֪"); - } - - /*豸ID: t(i+1)_3 */ - len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 3, - (char *)&hmi_tx_buffer[len], - "%d", - leakage.sub_device_data[device_index].flash_data.modbus_id); - - /*豸: t(i+1)_4 */ - len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 4, - (char *)&hmi_tx_buffer[len], - "%s", - leakage.sub_device_data[device_index].flash_data.device_name); - } - - /*ǰҳ8豸ʣ豸ʾλ*/ - if(page_device_count < DEVICES_PER_PAGE) - { - for(i = page_device_count; i < DEVICES_PER_PAGE; i++) - { - /**/ - len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 1, - (char *)&hmi_tx_buffer[len], - ""); - - /*ն˿ں*/ - len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 2, - (char *)&hmi_tx_buffer[len], - ""); - - /*豸ID*/ - len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 3, - (char *)&hmi_tx_buffer[len], - ""); - - /*豸*/ - len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 4, - (char *)&hmi_tx_buffer[len], - ""); - } - } - - }break; - - case 0x02: /*ȡĸCOMڵIJ*/ + } + else /*һҳ*/ { - u8 baud_vals[4]; - for (i = 0; i < 4; i++) { - baud_vals[i] = app_com.com[i].flash_data.baudrate; - } - - len = 0; - len += sprintf((char*)&hmi_tx_buffer[len], "cb0.val=%d", baud_vals[0]); - for (i = 0; i < 3; i++) hmi_tx_buffer[len + i] = 0xFF; - len += 3; - - len += sprintf((char*)&hmi_tx_buffer[len], "cb1.val=%d", baud_vals[1]); - for (i = 0; i < 3; i++) hmi_tx_buffer[len + i] = 0xFF; - len += 3; - - len += sprintf((char*)&hmi_tx_buffer[len], "cb2.val=%d", baud_vals[2]); - for (i = 0; i < 3; i++) hmi_tx_buffer[len + i] = 0xFF; - len += 3; - - len += sprintf((char*)&hmi_tx_buffer[len], "cb3.val=%d", baud_vals[3]); - for (i = 0; i < 3; i++) hmi_tx_buffer[len + i] = 0xFF; - len += 3; - - gui_tjc_hmi_data_send(hmi_tx_buffer, len); - return; - } break; - - case 0x03:/*ҳܣÿҳʾ8豸*/ - { - - - if(0x01 == p_data[0]) /*һҳ*/ + if (0 == p_tjc_hmi->page.device_config_index) { - if(page_num - 1 <= p_tjc_hmi->page.device_config_index) - { - p_tjc_hmi->page.device_config_index = 0; - } - else - { - p_tjc_hmi->page.device_config_index++; - } + p_tjc_hmi->page.device_config_index = page_num - 1; } - else /*һҳ*/ + else { - if(0 == p_tjc_hmi->page.device_config_index) - { - p_tjc_hmi->page.device_config_index = page_num - 1; - } - else - { - p_tjc_hmi->page.device_config_index--; - } + p_tjc_hmi->page.device_config_index--; } - /*ҳҪ»ȡݲʾﲻֱӷ*/ - return; - }break; - default:return; + } + /*ҳҪ»ȡݲʾﲻֱӷ*/ + return; + } + break; + default: + return; } len = strlen((char *)hmi_tx_buffer); - gui_tjc_hmi_data_send(hmi_tx_buffer,len); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); } - else if(HMI_PROTO_CMD_SET == cmd)/**/ + else if (HMI_PROTO_CMD_SET == cmd) /**/ { - switch(opa) - { - case 0x01: + switch (opa) + { + case 0x01: + { + found_empty_slot = 0; + for (i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++) { - found_empty_slot = 0; - for(i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++) + if (leakage.sub_device_data[i].flash_data.state == DISABLE) { - if(leakage.sub_device_data[i].flash_data.state == DISABLE) - { - found_empty_slot = 1; - empty_slot_index = i; - break; - } + found_empty_slot = 1; + empty_slot_index = i; + break; } - - if(!found_empty_slot) - { - /*豸*/ - return; - } - - field_count = 0; - current_pos = p_data; - memset(&new_device, 0, sizeof(new_device)); - - /*˿ں*/ - for(i = 0; i < 10; i++) - { - if(current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) - { - if(i == 0) - { - /*˿ںŲΪ*/ - return; - } - - char port_str[10] = {0}; - memcpy(port_str, current_pos, i); - port_str[i] = '\0'; - - /*ַ˿ںתΪֵ*/ - if(strcmp(port_str, "COM1") == 0) - { - new_device.com = 0; - } - else if(strcmp(port_str, "COM2") == 0) - { - new_device.com = 1; - } - else if(strcmp(port_str, "COM3") == 0) - { - new_device.com = 2; - } - else if(strcmp(port_str, "COM4") == 0) - { - new_device.com = 3; - } - - current_pos += (i + 1); - field_count++; - break; - } - } - -// /**/ -// for(i = 0; i < 10; i++) // Ϊ115200 -// { -// if(current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) -// { -// if(i == 0) -// { -// /*ʲΪ*/ -// return; -// } + } -// char baud_str[10] = {0}; -// memcpy(baud_str, current_pos, i); -// baud_str[i] = '\0'; + if (!found_empty_slot) + { + /*豸*/ + return; + } -// /*ַתΪֵ*/ -// if(strcmp(baud_str, "2400") == 0) -// { -// new_device.baudrate = 0; -// } -// else if(strcmp(baud_str, "4800") == 0) -// { -// new_device.baudrate = 1; -// } -// else if(strcmp(baud_str, "9600") == 0) -// { -// new_device.baudrate = 2; -// } -// else if(strcmp(baud_str, "115200") == 0) -// { -// new_device.baudrate = 3; -// } + field_count = 0; + current_pos = p_data; + memset(&new_device, 0, sizeof(new_device)); -// current_pos += (i + 1); -// field_count++; -// break; -// } -// } - - /**/ - for(i = 0; i < APP_LEAKAGE_STRING_NANE_LEN; i++) + /*˿ں*/ + for (i = 0; i < 10; i++) + { + if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) { - if(current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) + if (i == 0) { - memcpy(new_device.region_name, current_pos, i); - new_device.region_name[i] = '\0'; - current_pos += (i + 1); + /*˿ںŲΪ*/ + return; + } + + char port_str[10] = {0}; + memcpy(port_str, current_pos, i); + port_str[i] = '\0'; + + /*ַ˿ںתΪֵ*/ + if (strcmp(port_str, "COM1") == 0) + { + new_device.com = 0; + } + else if (strcmp(port_str, "COM2") == 0) + { + new_device.com = 1; + } + else if (strcmp(port_str, "COM3") == 0) + { + new_device.com = 2; + } + else if (strcmp(port_str, "COM4") == 0) + { + new_device.com = 3; + } + + current_pos += (i + 1); + field_count++; + break; + } + } + + // /**/ + // for(i = 0; i < 10; i++) // Ϊ115200 + // { + // if(current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) + // { + // if(i == 0) + // { + // /*ʲΪ*/ + // return; + // } + + // char baud_str[10] = {0}; + // memcpy(baud_str, current_pos, i); + // baud_str[i] = '\0'; + + // /*ַתΪֵ*/ + // if(strcmp(baud_str, "2400") == 0) + // { + // new_device.baudrate = 0; + // } + // else if(strcmp(baud_str, "4800") == 0) + // { + // new_device.baudrate = 1; + // } + // else if(strcmp(baud_str, "9600") == 0) + // { + // new_device.baudrate = 2; + // } + // else if(strcmp(baud_str, "115200") == 0) + // { + // new_device.baudrate = 3; + // } + + // current_pos += (i + 1); + // field_count++; + // break; + // } + // } + + /**/ + for (i = 0; i < APP_LEAKAGE_STRING_NANE_LEN; i++) + { + if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) + { + memcpy(new_device.region_name, current_pos, i); + new_device.region_name[i] = '\0'; + current_pos += (i + 1); + field_count++; + break; + } + } + + /*豸ID */ + for (i = 0; i < 10; i++) + { + if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) + { + if (i == 0) + { + /*豸IDΪ*/ + return; + } + + /*豸IDַתΪֵ*/ + char id_str[10] = {0}; + memcpy(id_str, current_pos, i); + id_str[i] = '\0'; + new_device.modbus_id = atoi(id_str); + + if (new_device.modbus_id < 1 || new_device.modbus_id > 255) + { + return; + } + + current_pos += (i + 1); + field_count++; + break; + } + } + + /*豸*/ + for (i = 0; i < APP_LEAKAGE_STRING_NANE_LEN; i++) + { + if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) + { + memcpy(new_device.device_name, current_pos, i); + new_device.device_name[i] = '\0'; + field_count++; + break; + } + } + + /*ͬidʱ֮ǰ*/ + if (field_count == 4) + { + for (u8 x = 0; x < APP_LEAKAGE_SUB_DEVICE_NUM; x++) + { + if (leakage.sub_device_data[x].flash_data.modbus_id == new_device.modbus_id) + { + new_device.state = ENABLE; + new_device.baudrate = app_com.com[new_device.com].flash_data.baudrate; + leakage.sub_device_data[x].shield = UNBLOCKED; + leakage.sub_device_data[x].flash_data = new_device; + gui_tjc_hmi_save_device_info_to_w25q(); + gui_tjc_hmi_class_update(); field_count++; - break; } } - - /*豸ID */ - for(i = 0; i < 10; i++) + } + + /*ӵ豸б*/ + if (field_count == 4) + { + /*Ĭ״̬Ϊ*/ + new_device.state = ENABLE; + + /**/ + new_device.baudrate = app_com.com[new_device.com].flash_data.baudrate; + + leakage.sub_device_data[empty_slot_index].shield = UNBLOCKED; + + /*ӵapp_leakage豸б*/ + leakage.sub_device_data[empty_slot_index].flash_data = new_device; + + /*ͨ*/ + memset(leakage.sub_device_data[empty_slot_index].ch_data, 0, + sizeof(leakage.sub_device_data[empty_slot_index].ch_data)); + + /*浽W25Q32*/ + gui_tjc_hmi_save_device_info_to_w25q(); + + /*·*/ + gui_tjc_hmi_class_update(); + + page_num = leakage.sub_device_num / DEVICES_PER_PAGE; + remain_region_num = leakage.sub_device_num % DEVICES_PER_PAGE; + if (remain_region_num > 0) { - if(current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) + page_num++; + } + if (page_num == 0) + page_num = 1; + p_tjc_hmi->page.device_config_index = page_num - 1; // xian + + // if (new_device.com < APP_COM_NUM && new_device.baudrate < 4) { + // app_com.com[new_device.com].set.baud_rate( + // &app_com.com[new_device.com], + // new_device.baudrate + // ); + // } + } + else + { + /*ʹӦ*/ + return; + } + } + break; + case 0x02: /*ɾ豸豸Ϣw25qɾ*/ + { + u8 page_device_indices[8] = {0}; /*洢ǰҳ8豸app_leakageе*/ + u8 page_device_count = 0; /*ǰҳʵõ豸*/ + u8 current_enabled_index = 0; /*ǰǵڼõ豸*/ + + for (i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM && page_device_count < DEVICES_PER_PAGE; i++) + { + if (leakage.sub_device_data[i].flash_data.state == ENABLE) + { + current_enabled_index++; + + /*ж豸Ƿڵǰҳ*/ + u8 device_page = (current_enabled_index - 1) / DEVICES_PER_PAGE; + if (device_page == p_tjc_hmi->page.device_config_index) { - if(i == 0) - { - /*豸IDΪ*/ - return; - } - - /*豸IDַתΪֵ*/ - char id_str[10] = {0}; - memcpy(id_str, current_pos, i); - id_str[i] = '\0'; - new_device.modbus_id = atoi(id_str); - - if(new_device.modbus_id < 1 || new_device.modbus_id > 255) - { - return; - } - - current_pos += (i + 1); - field_count++; - break; + page_device_indices[page_device_count] = i; + page_device_count++; } } - - /*豸*/ - for(i = 0; i < APP_LEAKAGE_STRING_NANE_LEN; i++) + } + + if (page_device_count == 0) + { + /*ǰҳû豸*/ + return; + } + + /*8ѡпֽڣɾѡе豸Ӻǰɾ*/ + u8 deleted_count = 0; + for (i = page_device_count; i > 0; i--) + { + u8 idx = i - 1; + if (p_data[idx] == 0x01) { - if(current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) + u8 actual_index = page_device_indices[idx]; // ֱʹԭʼ + /*豸ǰƶ*/ + for (j = actual_index; j < APP_LEAKAGE_SUB_DEVICE_NUM - 1; j++) { - memcpy(new_device.device_name, current_pos, i); - new_device.device_name[i] = '\0'; - field_count++; - break; + leakage.sub_device_data[j].flash_data = leakage.sub_device_data[j + 1].flash_data; } - } - - /*ͬidʱ֮ǰ*/ - if(field_count == 4) - { - for(u8 x = 0; x < APP_LEAKAGE_SUB_DEVICE_NUM; x++) - { - if (leakage.sub_device_data[x].flash_data.modbus_id == new_device.modbus_id) - { - new_device.state = ENABLE; - new_device.baudrate = app_com.com[new_device.com].flash_data.baudrate; - leakage.sub_device_data[x].shield = UNBLOCKED; - leakage.sub_device_data[x].flash_data = new_device; - gui_tjc_hmi_save_device_info_to_w25q(); - gui_tjc_hmi_class_update(); - field_count++; - } - } - } - - /*ӵ豸б*/ - if(field_count == 4) - { - /*Ĭ״̬Ϊ*/ - new_device.state = ENABLE; - - /**/ - new_device.baudrate = app_com.com[new_device.com].flash_data.baudrate; - - leakage.sub_device_data[empty_slot_index].shield = UNBLOCKED; - - /*ӵapp_leakage豸б*/ - leakage.sub_device_data[empty_slot_index].flash_data = new_device; - + /*һ豸*/ + memset(&leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].flash_data, 0, + sizeof(app_leakage_sub_device_flash_data_t)); + leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].flash_data.state = DISABLE; + /*ͨ*/ - memset(leakage.sub_device_data[empty_slot_index].ch_data, 0, - sizeof(leakage.sub_device_data[empty_slot_index].ch_data)); - - /*浽W25Q32*/ - gui_tjc_hmi_save_device_info_to_w25q(); - - /*·*/ - gui_tjc_hmi_class_update(); - - page_num = leakage.sub_device_num / DEVICES_PER_PAGE; - remain_region_num = leakage.sub_device_num % DEVICES_PER_PAGE; - if (remain_region_num > 0) - { - page_num++; - } - if (page_num == 0) page_num = 1; - p_tjc_hmi->page.device_config_index = page_num - 1;//xian - - -// if (new_device.com < APP_COM_NUM && new_device.baudrate < 4) { -// app_com.com[new_device.com].set.baud_rate( -// &app_com.com[new_device.com], -// new_device.baudrate -// ); -// } - - } - else - { - /*ʹӦ*/ - return; - } - - }break; - case 0x02:/*ɾ豸豸Ϣw25qɾ*/ - { u8 page_device_indices[8] = {0}; /*洢ǰҳ8豸app_leakageе*/ - u8 page_device_count = 0; /*ǰҳʵõ豸*/ - u8 current_enabled_index = 0; /*ǰǵڼõ豸*/ - - for(i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM && page_device_count < DEVICES_PER_PAGE; i++) - { - if(leakage.sub_device_data[i].flash_data.state == ENABLE) - { - current_enabled_index++; - - /*ж豸Ƿڵǰҳ*/ - u8 device_page = (current_enabled_index - 1) / DEVICES_PER_PAGE; - if(device_page == p_tjc_hmi->page.device_config_index) - { - page_device_indices[page_device_count] = i; - page_device_count++; - } - } - } - - if(page_device_count == 0) - { - /*ǰҳû豸*/ - return; - } - - /*8ѡпֽڣɾѡе豸Ӻǰɾ*/ - u8 deleted_count = 0; - for(i = page_device_count; i > 0; i--) - { - u8 idx = i - 1; - if(p_data[idx] == 0x01) - { - u8 actual_index = page_device_indices[idx]; // ֱʹԭʼ - /*豸ǰƶ*/ - for(j = actual_index; j < APP_LEAKAGE_SUB_DEVICE_NUM - 1; j++) - { - leakage.sub_device_data[j].flash_data = leakage.sub_device_data[j + 1].flash_data; - } - /*һ豸*/ - memset(&leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].flash_data, 0, - sizeof(app_leakage_sub_device_flash_data_t)); - leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].flash_data.state = DISABLE; - - /*ͨ*/ - memset(leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].ch_data, 0, - sizeof(leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].ch_data)); - - deleted_count++; - } - } + memset(leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].ch_data, 0, + sizeof(leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].ch_data)); - if(deleted_count > 0) - { - /*浽W25Q32*/ - gui_tjc_hmi_save_device_info_to_w25q(); - /*·*/ - gui_tjc_hmi_class_update(); - /*ѡȷӦ*/ + deleted_count++; } - else - { - /*ûѡκ豸*/ - return; - } - }break; - - case 0x03: /*òʣ1ӦCOM1*/ + } + + if (deleted_count > 0) + { + /*浽W25Q32*/ + gui_tjc_hmi_save_device_info_to_w25q(); + /*·*/ + gui_tjc_hmi_class_update(); + /*ѡȷӦ*/ + } + else + { + /*ûѡκ豸*/ + return; + } + } + break; + + case 0x03: /*òʣ1ӦCOM1*/ { u8 *ptr = p_data; u8 baud_vals[APP_COM_NUM]; - char temp_buf[10]; /*ʱ洢ASCIIַ*/ + char temp_buf[10]; /*ʱ洢ASCIIַ*/ - for (i = 0; i < APP_COM_NUM; i++) { + for (i = 0; i < APP_COM_NUM; i++) + { u8 temp_len = 0; // ȡֱһ0xAAָ - while (*ptr != HMI_PROTO_ASCII_RX_DELINITER && temp_len < sizeof(temp_buf) - 1) { + while (*ptr != HMI_PROTO_ASCII_RX_DELINITER && temp_len < sizeof(temp_buf) - 1) + { temp_buf[temp_len++] = *ptr++; } - if (*ptr != HMI_PROTO_ASCII_RX_DELINITER) { - return; + if (*ptr != HMI_PROTO_ASCII_RX_DELINITER) + { + return; } temp_buf[temp_len] = '\0'; - ptr++; // ָ + ptr++; // ָ // ASCIIַתΪ u32 baud_int = atoi(temp_buf); // ӳ䵽öֵ u8 enum_val; - if (baud_int == 4800) enum_val = 0; - else if (baud_int == 9600) enum_val = 1; - else if (baud_int == 19200) enum_val = 2; - else if (baud_int == 57600) enum_val = 3; - else if (baud_int == 115200) enum_val = 4; - else enum_val = 4; + if (baud_int == 4800) + enum_val = 0; + else if (baud_int == 9600) + enum_val = 1; + else if (baud_int == 19200) + enum_val = 2; + else if (baud_int == 57600) + enum_val = 3; + else if (baud_int == 115200) + enum_val = 4; + else + enum_val = 4; baud_vals[i] = enum_val; } /*ÿCOMIJ*/ - for (i = 0; i < APP_COM_NUM; i++) { - if (app_com.com[i].flash_data.baudrate != baud_vals[i]) { - app_com.com[i].flash_data.baudrate = baud_vals[i]; - if (app_com.com[i].set.baud_rate) { - app_com.com[i].set.baud_rate(&app_com.com[i], baud_vals[i]); - } + for (i = 0; i < APP_COM_NUM; i++) + { + if (app_com.com[i].flash_data.baudrate != baud_vals[i]) + { + app_com.com[i].flash_data.baudrate = baud_vals[i]; + if (app_com.com[i].set.baud_rate) + { + app_com.com[i].set.baud_rate(&app_com.com[i], baud_vals[i]); } } + } app_com.save_flah(); return; - } break; - - default:return; + } + break; + + default: + return; } len = strlen((char *)hmi_tx_buffer); - gui_tjc_hmi_data_send(hmi_tx_buffer,len); + gui_tjc_hmi_data_send(hmi_tx_buffer, len); } } /*ʱ*/ -static void gui_tjc_hmi_time_set_send(u8 cmd,u8 opa,u8 *p_data) +static void gui_tjc_hmi_time_set_send(u8 cmd, u8 opa, u8 *p_data) { u16 i, len = 0; - char temp_buf[5]; + char temp_buf[5]; bsp_DS1302_Time_t new_time; - - if(HMI_PROTO_CMD_SET == cmd) /* */ + + if (HMI_PROTO_CMD_SET == cmd) /* */ { - switch(opa) + switch (opa) { - case 0x01: /* ʱ */ - { - int idx = 0; /**/ - int field = 0; /*ǰֶαţ0:,1:,2:,3:ʱ,4:֣*/ - char temp_buf[5]; - int value; + case 0x01: /* ʱ */ + { + int idx = 0; /**/ + int field = 0; /*ǰֶαţ0:,1:,2:,3:ʱ,4:֣*/ + char temp_buf[5]; + int value; while (field < 5) { @@ -2239,14 +2320,14 @@ static void gui_tjc_hmi_time_set_send(u8 cmd,u8 opa,u8 *p_data) /*ռǰֶεASCIIֱַָ0xAA*/ while (p_data[idx] != 0xAA) { - if (len >= 4) + if (len >= 4) { - return; + return; } temp_buf[len++] = p_data[idx++]; } - if (len == 0) + if (len == 0) { return; } @@ -2257,11 +2338,21 @@ static void gui_tjc_hmi_time_set_send(u8 cmd,u8 opa,u8 *p_data) /* ֶŸֵ*/ switch (field) { - case 0: new_time.Year = value % 2000; break; // ȡλ - case 1: new_time.Month = value; break; - case 2: new_time.Day = value; break; - case 3: new_time.Hour = value; break; - case 4: new_time.Minute = value; break; + case 0: + new_time.Year = value % 2000; + break; // ȡλ + case 1: + new_time.Month = value; + break; + case 2: + new_time.Day = value; + break; + case 3: + new_time.Hour = value; + break; + case 4: + new_time.Minute = value; + break; } /*ǰָ0xAA׼һֶ*/ @@ -2270,11 +2361,11 @@ static void gui_tjc_hmi_time_set_send(u8 cmd,u8 opa,u8 *p_data) } DS1302.Set(&new_time); - } + } + break; + + default: break; - - default: - break; } } } @@ -2282,74 +2373,82 @@ static void gui_tjc_hmi_time_set_send(u8 cmd,u8 opa,u8 *p_data) /*Ļָ*/ static void gui_tjc_hmi_communication_data_analysis(u8 *p_data, u16 len, void *rx_uart) { - u8 cmd,data,gui_id,opa,*p_offset_data; - u16 i,modbus_crc16,check_crc16; + u8 cmd, data, gui_id, opa, *p_offset_data; + u16 i, modbus_crc16, check_crc16; /*Ȳ*/ - if(len < 5) + if (len < 5) { - return ; + return; } /*֡ͷ*/ - if(p_data[0] != HMI_PROTO_FRAME_HEADER1 || p_data[1] != HMI_PROTO_FRAME_HEADER2) + if (p_data[0] != HMI_PROTO_FRAME_HEADER1 || p_data[1] != HMI_PROTO_FRAME_HEADER2) { - return ; + return; } /*Уλ*/ - check_crc16 = p_data[len-2] << 8 | p_data[len-1]; - modbus_crc16 = modbus_lib_crc16(p_data,len-2); + check_crc16 = p_data[len - 2] << 8 | p_data[len - 1]; + modbus_crc16 = modbus_lib_crc16(p_data, len - 2); modbus_crc16 = (modbus_crc16 >> 8) | (modbus_crc16 << 8); - if(modbus_crc16 != check_crc16) + if (modbus_crc16 != check_crc16) { - return ; + return; } - + /*CMD*/ cmd = p_data[2]; - if(cmd != HMI_PROTO_CMD_GET && cmd != HMI_PROTO_CMD_SET) + if (cmd != HMI_PROTO_CMD_GET && cmd != HMI_PROTO_CMD_SET) { - return ; + return; } - gui_id = p_data[3]; /*gui_id*/ - opa = p_data[4]; /**/ - p_offset_data = &p_data[5]; /**/ - p_rx_uart = (bsp_uart_t *)rx_uart; /*ָ*/ - switch(gui_id) + gui_id = p_data[3]; /*gui_id*/ + opa = p_data[4]; /**/ + p_offset_data = &p_data[5]; /**/ + p_rx_uart = (bsp_uart_t *)rx_uart; /*ָ*/ + switch (gui_id) { - case HMI_PROTO_GUI_MAIN : - { - gui_tjc_hmi_main_send(cmd,opa,p_offset_data); - }break; - case HMI_PROTO_GUI_CURR_ALARM : - { - gui_tjc_hmi_curr_alarm_send(cmd,opa,p_offset_data); - }break; - case HMI_PROTO_GUI_DETAIL_MAIN : - { - gui_tjc_hmi_detail_main_send(cmd,opa,p_offset_data); - }break; - case HMI_PROTO_GUI_LOGIN : - { - gui_tjc_hmi_login_send(cmd,opa,p_offset_data); - }break; - case HMI_PROTO_GUI_HISTORY_ALARM : - { - gui_tjc_hmi_history_alarm_send(cmd,opa,p_offset_data); - }break; - case HMI_PROTO_GUI_TCP_CONFIG : - { - gui_tjc_hmi_tcp_config_send(cmd,opa,p_offset_data); - }break; - case HMI_PROTO_GUI_DEVICE_CONFIG : - { - gui_tjc_hmi_device_config_send(cmd,opa,p_offset_data); - }break; - case HMI_PROTO_GUI_HELP : - { - //gui_tjc_hmi_help_send(cmd,opa,p_offset_data); - }break; - case HMI_PROTO_GUI_TIME : - { - gui_tjc_hmi_time_set_send(cmd,opa,p_offset_data); - } - } + case HMI_PROTO_GUI_MAIN: + { + gui_tjc_hmi_main_send(cmd, opa, p_offset_data); + } + break; + case HMI_PROTO_GUI_CURR_ALARM: + { + gui_tjc_hmi_curr_alarm_send(cmd, opa, p_offset_data); + } + break; + case HMI_PROTO_GUI_DETAIL_MAIN: + { + gui_tjc_hmi_detail_main_send(cmd, opa, p_offset_data); + } + break; + case HMI_PROTO_GUI_LOGIN: + { + gui_tjc_hmi_login_send(cmd, opa, p_offset_data); + } + break; + case HMI_PROTO_GUI_HISTORY_ALARM: + { + gui_tjc_hmi_history_alarm_send(cmd, opa, p_offset_data); + } + break; + case HMI_PROTO_GUI_TCP_CONFIG: + { + gui_tjc_hmi_tcp_config_send(cmd, opa, p_offset_data); + } + break; + case HMI_PROTO_GUI_DEVICE_CONFIG: + { + gui_tjc_hmi_device_config_send(cmd, opa, p_offset_data); + } + break; + case HMI_PROTO_GUI_HELP: + { + // gui_tjc_hmi_help_send(cmd,opa,p_offset_data); + } + break; + case HMI_PROTO_GUI_TIME: + { + gui_tjc_hmi_time_set_send(cmd, opa, p_offset_data); + } + } } diff --git a/leakage_system/usr/protocol/proto_modbus_tcp_slave_ex.c b/leakage_system/usr/protocol/proto_modbus_tcp_slave_ex.c index 19188d6..e0b7000 100644 --- a/leakage_system/usr/protocol/proto_modbus_tcp_slave_ex.c +++ b/leakage_system/usr/protocol/proto_modbus_tcp_slave_ex.c @@ -48,7 +48,12 @@ static void proto_modbus_communication_data_send(u8 *p_data, u16 len) static void proto_modbus_init(void) { - W5500.W5500_Class[0].Rx_DataAnalysis = proto_modbus_communication_data_analysis; + u16 i; + for(i=0;i> 8; - send_struct.send_buffer[send_buff_index_offset + send_buff_index_offset + 3] = modbus_analysis_data.start_addr & 0xff; - send_struct.send_buffer[send_buff_index_offset + send_buff_index_offset + 4] = modbus_analysis_data.reg_number >> 8; - send_struct.send_buffer[send_buff_index_offset + send_buff_index_offset + 5] = modbus_analysis_data.reg_number & 0xff; + send_struct.send_buffer[send_buff_index_offset + 0] = modbus_analysis_data.id; + send_struct.send_buffer[send_buff_index_offset + 1] = modbus_analysis_data.func; + send_struct.send_buffer[send_buff_index_offset + 2] = modbus_analysis_data.start_addr >> 8; + send_struct.send_buffer[send_buff_index_offset + 3] = modbus_analysis_data.start_addr & 0xff; + send_struct.send_buffer[send_buff_index_offset + 4] = modbus_analysis_data.reg_number >> 8; + send_struct.send_buffer[send_buff_index_offset + 5] = modbus_analysis_data.reg_number & 0xff; } break; default: diff --git a/leakage_system_V0.004.0.hex b/leakage_system_V0.004.0.hex deleted file mode 100644 index a86dba1..0000000 --- a/leakage_system_V0.004.0.hex +++ /dev/null @@ -1,3331 +0,0 @@ -:020000040800F2 -:10400000E0550020A1410008ED7900086175000825 -:10401000E9790008954E0008898700080000000033 -:104020000000000000000000000000004D7E0008BD -:104030004350000800000000F1790008397F0008B3 -:10404000BB410008BB410008BB410008BB41000860 -:10405000BB410008BB410008BB410008BB41000850 -:10406000BB410008BB410008BB410008BB41000840 -:10407000994E0008A94E0008B94E0008C94E000824 -:10408000D94E0008E94E0008BB410008BB410008BA -:10409000BB410008BB410008BB410008BB41000810 -:1040A000BB410008BB410008BB410008BB41000800 -:1040B000BB410008BB410008BB410008BB410008F0 -:1040C000BB410008BB410008BB410008BB410008E0 -:1040D000BB41000849870008598700086987000824 -:1040E000BB410008BB410008BB410008BB410008C0 -:1040F000BB410008BB410008BB410008BB410008B0 -:10410000BB410008BB410008BB410008BB4100089F -:1041100061800008BB410008BB410008BB410008AA -:10412000BB410008F94E0008094F0008BB410008D8 -:10413000BB410008BB410008BB410008BB4100086F -:10414000BB410008BB410008BB410008BB4100085F -:10415000BB410008194F0008294F00087987000863 -:10416000BB410008BB410008BB410008BB4100083F -:10417000BB410008BB410008BB4100080000000033 -:10418000BB410008BB410008DFF810D000F03EFC46 -:1041900000480047BDEE0008AFF30080E055002066 -:1041A0000648804706480047FEE7FEE7FEE7FEE7D1 -:1041B000FEE7FEE7FEE7FEE7FEE7FEE741800008D8 -:1041C000894100082DE9F05F0546002092469B4694 -:1041D00088460646814640241BE02846414647461D -:1041E000224600F0E3F953465A46C01A914110D3D3 -:1041F00011461846224600F0CAF92D1A67EB01084D -:104200004F4622460120002100F0C1F917EB0009BA -:104210004E41201EA4F10104DFDC484631462A4607 -:104220004346BDE8F09F40EA01039B0703D009E045 -:1042300008C9121F08C0042AFAD203E011F8013B92 -:1042400000F8013B521EF9D27047D2B201E000F8EB -:10425000012B491EFBD270470022F6E710B513462A -:104260000A4604461946FFF7F0FF204610BD421EDD -:1042700012F8013F002BFBD111F8013B02F8013B82 -:10428000002BF9D17047421C10F8011B0029FBD10B -:10429000801A704710B5002200E0521C835C8C5CD1 -:1042A000A34201D1002BF8D1D8B2E1B2401A10BD1F -:1042B00030B504460020034600E05B1C934203D265 -:1042C000E05CCD5C401BF8D030BD00000FB400B501 -:1042D0008DB010A909900B9000914FF0FF300A901B -:1042E00000200C9005480690054807906A4609A8EA -:1042F0000F9900F07FF90DB05DF814FB114600082E -:104300002F4600082DE9FF5F1D464FF0FF3BD5E922 -:10431000014691465F464FF00008A9697F1C01984D -:104320008847296A824688470028F6D1BAF1FF3FBC -:104330000CD024F4C064002E19DD600614D5BAF147 -:104340002B0F09D0BAF12D0F0ED103E0584604B05F -:10435000BDE8F09F44F48064A9697F1C01988847F8 -:10436000761E8246002E02DDBAF1300F03D0B9F17D -:10437000000F26D032E0A969761E44F400747F1C39 -:10438000019888478246002E05DDBAF1780F06D0E5 -:10439000BAF1580F03D0B9F1000F10D01EE0B9F1F7 -:1043A000000F02D0B9F1100F18D1A969761E24F4BC -:1043B00000747F1C019888478246102002E0082084 -:1043C00000E00A20814609E008FB0908A969761E79 -:1043D00044F400747F1C019888478246002E05DD56 -:1043E0004946504600F0F2F80028EDDAE9690198F4 -:1043F0008847A00502D46FF00100A8E7E00725D1A7 -:10440000600613D5600502D5C8F1000000E0404603 -:1044100029680A1D2A600968220501D5087015E07F -:10442000220701D5088011E008600FE02868011D0F -:1044300029600068210502D580F8008006E0210788 -:1044400002D5A0F8008001E0C0F8008038467EE781 -:1044500070B5064604F0D0FB046805460A22002128 -:10446000304600F0F5F82C6070BD2DE9F04D81EA82 -:10447000030404F0004B21F0004514464FF0000AFD -:1044800023F0004150EA050220D054EA01021DD079 -:10449000C5F30A570246C5F31303C1F31300C1F372 -:1044A0000A5640F4801543F48013A7EB0608101B4E -:1044B000D64608F2FD3873EB050002D308F1010877 -:1044C00001E092185B41B8F1000F03DA00200146C9 -:1044D000BDE8F08D00204FF48011064684460EE0C2 -:1044E000171B73EB050705D3121B63EB050306438C -:1044F0004CEA010C49084FEA300092185B4150EA3F -:104500000107EDD152EA030012D082EA040083EAE7 -:104510000501084305D0101BAB4106D20122002340 -:1045200006E000224FF0004302E06FF0010253105A -:104530001AEB06004CEB085110EB0A0041EB0B01A3 -:10454000BDE8F04D00F0BCB80EB540F23341029129 -:104550000021CDE900110A460B4600F0C0F803B077 -:1045600000BD30B50B46014600202022012409E0A1 -:1045700021FA02F59D4205D303FA02F5491B04FA1C -:1045800002F52844151EA2F10102F1DC30BD202AFB -:1045900004DB203A00FA02F1002070479140C2F19A -:1045A000200320FA03F3194390407047202A04DBCC -:1045B000203A21FA02F00021704721FA02F3D0409C -:1045C000C2F1200291400843194670473A2800D2B0 -:1045D000303820F02002412A01D3A2F1370088426E -:1045E00001D34FF0FF307047026811441378016027 -:1045F00018467047D1600449516104491162002195 -:104600001161114600F034BAE94500085D4A00081E -:10461000426842B1016811F8013B23B1521EC0E962 -:104620000012184670470121C160881E7047426819 -:104630005AB1C368016843B983688B4205D0491EEB -:10464000521CC0E90012002070474FF0FF30704745 -:104650002DE9F04791460F4680460446002614F89F -:10466000015B2DB100F0F6F90068405DC007F6D19E -:104670002B2D02D02D2D18D0641E4A4639462046D7 -:1046800000F08EFB27B13968A14201D1C7F8008044 -:1046900071054FF002040BD54042002803DD04F001 -:1046A000ABFA0460A007BDE8F08746F48066E4E753 -:1046B0000028F8DA04F0A0FA04606FF00040F2E796 -:1046C00010B5141E73F1000408DA401C41F100011A -:1046D00092185B411A4301D120F0010010BD2DE971 -:1046E000F04D92469B4611B1B1FA81F202E0B0FA68 -:1046F00080F220329046FFF74AFF04460F4640EA18 -:104700000A0041EA0B0153465A46084313D01146AA -:1047100053EA010019D0C8F140025046FFF746FFA6 -:1047200005460E46504659464246FFF730FF0843BD -:1047300005D0012004E020463946BDE8F08D002078 -:10474000054346EAE0762C4337430A986305E40ABA -:10475000A0EB08000022FD0A44EA47540A3002D5C3 -:1047600000200146E9E7010510196941DDE9084526 -:1047700000196941BDE8F04DA2E72DE9FE4F8046E2 -:1047800081EA0300C00F0C46009021F0004123F0A5 -:104790000045B8EB0200A94105D2404621469046AB -:1047A0001C460B46024623F00040104347D0270D1D -:1047B000C7F30A00C3F30A510290401A019040283F -:1047C0006BDAC3F3130040F4801B0098924620B1CB -:1047D0000023D2EB030A63EB0B0B01985946C0F19F -:1047E00040025046FFF7D3FE06460D465046594656 -:1047F000019A00F01DF910EB08006141002487EADE -:10480000115284EAE7731A4340D0009A62B3019AC6 -:10481000012A4FEA075215DC001B61EB02014FF041 -:10482000004202EA0752CDE90042001C41F5801126 -:1048300032462B46FFF753FF03B0BDE8F08F4046EA -:104840002146F9E7001B61EB0201001C41F58013D2 -:1048500000185B412018A2F5001747EB030140EA5E -:10486000D570B6196D4111E06D084FEA360645EA7C -:10487000C0754FEA0752001B61EB0201001C41F5B5 -:10488000801149084FEA30000019514132462B4649 -:1048900003B0BDE8F04FFFF713BF009801224000BE -:1048A0000023D0EB020263EBE073009821464FEA4D -:1048B000E074B8EB000061EB0401E9E783F000432A -:1048C0005BE781F0004158E72DE9FE4F81EA0304E0 -:1048D00004F0004421F0004100944FF0000B23F05D -:1048E000004350EA01045ED052EA03045BD0C3F3F4 -:1048F0000A54C1F30A552C44A4F2F3340194A0FBEA -:104900000254C1F3130141F48011C3F3130343F4C0 -:10491000801301FB024400FB034E840A970A44EA19 -:10492000815447EA8357A4FB076802958D0A05FB6B -:1049300007854FEA932C04FB0C542705029D4FEA90 -:10494000065847EA1637B5EB08056EEB070C870EDD -:10495000920E47EA811742EA8312A7FB0201B6EBE7 -:104960000B0164EB00042B0D43EA0C335E1844EB9F -:104970001C50DA465146E7FB0201C5F313044FEA27 -:104980000B3343EA14534FEA0432019C43EA060313 -:10499000A4F10C040294009CCDE900B4FFF79FFE43 -:1049A00003B0BDE8F08F00200146F9E7C1F30A52D9 -:1049B000C1F3130140F2FF3341F480119A4202DA4D -:1049C00000200146704740F233439A42A2F233423C -:1049D00002DC5242FFF7EABDFFF7D9BD30B5041E35 -:1049E00071F1000404DB4FF00044404264EB01012C -:1049F000141E73F1000405DB1C464FF000435242C5 -:104A000063EB0403994208BF904230BD064C074D4A -:104A100006E0E06840F0010394E80700984710348E -:104A2000AC42F6D3FFF7B4FB480D0108680D01084E -:104A3000202A06DBCB17203A41FA02F043EAE07362 -:104A400006E041FA02F3D040C2F12002914008434F -:104A50001946704700487047FC0C010810B5044621 -:104A6000FFF7F8FF0068005D00F0010010BD0000D6 -:104A70002DE9F34F8BB04FF0000801F10C000C460C -:104A80004FF0010B46460DF1080A019062690121C1 -:104A900001989047051E2DD0252D2CD0216A8847DE -:104AA000C0B16269012101989047216A88470028B6 -:104AB000F7D1411E62690198904700E0761CA16918 -:104AC0000B988847216A88470028F7D1E1690B983D -:104AD0008847DBE7A1690B9888470746A84201D1C0 -:104AE000761CD3E7E1690B9888477F1C02D1B8F1A7 -:104AF000000F6FD047E1002762693D4639460198B3 -:104B000090472A2804D16269012101989047012524 -:104B1000DFF888926269012101989047A0F1300185 -:104B20000A290AD24F45E5DC07EB870100EB410774 -:104B3000303FDFD445F01005ECE7E90601D46FF013 -:104B400000476C280AD04C2814D0682815D06A2851 -:104B50000DD074281CD07A281AD01DE0626901217A -:104B6000019890476C2802D045F0040514E045F008 -:104B700002050DE045F020050AE062690121019877 -:104B80009047682802D045F0080505E045F4006527 -:104B90006269012101989047C4E9015765283DD019 -:104BA00019DC58287AD00CDC452837D004DC2528BD -:104BB00026D0412831D131E046282FD047282CD1AA -:104BC0002CE05B2877D0612828D063287CD064282B -:104BD00023D15AE0D1E06F2848D008DC66281DD0E8 -:104BE00067281BD0692821D06E2816D127E07028AD -:104BF00045D0732868D0752847D078280DD14DE06E -:104C0000A1690B988847054625283FF469AFE169FB -:104C10000B9888476D1C3FF46AAFB4E023466A46A0 -:104C20006FF001000B99AFF300809FE045F040006A -:104C30006060A80723464FF0000236D43EE0E80744 -:104C40007FF447AF2068011D21600068290501D568 -:104C500006701BE7290701D5068017E7A90703D5CA -:104C6000F117C0E9006111E706600FE745F0400069 -:104C70006060A80723464FF0080216D41EE040F6F5 -:104C80000E0125EA0100606016E045F0400060601A -:104C9000A80723464FF00A0207D40FE045F0400072 -:104CA0006060A80708D5234610226FF001000B9919 -:104CB000AFF300805AE007E0234610226FF00100B6 -:104CC0000B99FFF71FFB51E04FF000094F464B4691 -:104CD000632802D05B2807D041E02079C00601D4C8 -:104CE0000120A06001273AE0626901210198904704 -:104CF0005E2805D14FF00109626949460198904745 -:104D0000216939B900210A46534643F82120491C3C -:104D10000829FADBB0B3216969B9C11700EBD16288 -:104D200053110AEB830122F01F02821A01200B6843 -:104D3000904003430B6062690121019890475D2810 -:104D4000E8D1B9F1000F09D00020514651F82020D8 -:104D5000D24341F82020401C0828F7DB02AB224652 -:104D600000976FF001000B99AFF3008000280CDA78 -:104D7000401C08D1BBF1000F05D04FF0FF300DB043 -:104D8000BDE8F08FFFE74046F9E7E90701D108F1F8 -:104D9000010806444FF0000B78E60000CCCCCC0CA8 -:104DA0002DE9F05F82460078002715468B460AF110 -:104DB0000104B946302801D09DB113E014F8010B6D -:104DC0000127782803D0582801D045B10AE00DB159 -:104DD000102D07D10027102514F8010B02E008253B -:104DE00000E00A250026B0460EE005FB080005FBA2 -:104DF00006F1012701EB10461FFA80F8B6F5803F57 -:104E000000D3B94614F8010B2946FFF7DFFB002851 -:104E1000EBDABBF1000F05D00FB1641E00E0544681 -:104E2000CBF80040B9F1000F06D003F0E5FE0221F7 -:104E30000160C81EBDE8F09F48EA0640FAE770B579 -:104E40008C1810F8015B15F0070301D110F8013B35 -:104E50002A1106D110F8012B03E010F8016B01F8BC -:104E6000016B5B1EF9D12B0705D40023521E0DD414 -:104E700001F8013BFAE710F8013BCB1A921C03E062 -:104E800013F8015B01F8015B521EF9D5A142D8D39A -:104E9000002070BD00BFFEE710B5024800F0A8F981 -:104EA00010BD00004C2A002010B5024800F0A0F907 -:104EB00010BD00000C28002010B5024800F098F941 -:104EC00010BD0000AC2A002010B5024800F090F997 -:104ED00010BD00006C28002010B5024800F088F9D1 -:104EE00010BD00008C29002010B5024800F080F9A8 -:104EF00010BD0000EC29002010B5024800F078F940 -:104F000010BD00000C2B002010B5024800F070F915 -:104F100010BD0000CC28002010B5024800F068F950 -:104F200010BD00006C2B002010B5024800F060F9A5 -:104F300010BD00002C2900200146087810381823E5 -:104F4000B0FBF3F20848805CC865032A05D90868FD -:104F50006FF30900001D886503E008686FF309001E -:104F60008865886D704700004E0C010801460020DE -:104F70008A6A8B69CBB932B1012A0DD0022A03D0DB -:104F8000032A10D10EE000BFCB6A03F08073B3F1A7 -:104F9000807F00D1012007E0CB6AB3F1C07F00D150 -:104FA000012001E000E000BF34E08B69B3F5005F51 -:104FB0001AD132B1012A07D0022A03D0032A11D113 -:104FC0000AE000BF01200EE0CB6A03F08073B3F16A -:104FD000807F00D1012006E0CB6AB3F1C07F00D111 -:104FE000012000E000BF15E032B1012A05D0022AFD -:104FF00004D0032A0CD103E000BF00BF012008E069 -:10500000CB6A03F08073B3F1807F00D1012000E010 -:1050100000BF00BF704730B50468246824F48024C2 -:1050200005682C60046863608468402C04D10468BF -:10503000A2600468E16003E00468A1600468E260C3 -:1050400030BD704738B532480068807B401CC0B224 -:105050008DF800002E480068C07B401CC0B28DF85F -:1050600001002B480068007C401CC0B28DF8020093 -:1050700027480068407C401CC0B28DF803006A4697 -:105080000C21002003F00CFD01220021084603F052 -:10509000C7FC01221146002003F0C2FC052000F0ED -:1050A00087FA0321002002F063FD132806D01022A6 -:1050B0000121002003F0B4FC002038BD04220121AE -:1050C000002003F0ADFC00BF00240221002002F00C -:1050D0004FFD044624B1E2B20221002003F0A0FCFF -:1050E000052000F065FA04F00800082801D100202E -:1050F000E3E70621002002F03BFDFF2806D0102246 -:105100000121002003F08CFCFF20D6E7DCE7000043 -:10511000041F002072B600BFFEE770B50446A56DFF -:1051200000F06CFB064694F83500022808D0802079 -:10513000606500BF002084F8340000BF012070BD0E -:105140002068006820F01600216808602068406927 -:1051500020F0800021684861206C08B9A06C28B15B -:105160002068006820F00800216808602068006856 -:1051700020F001002168086010E000F03FFB801B78 -:1051800005280BD920206065032084F8350000BF76 -:10519000002084F8340000BF0320D0E720680068B6 -:1051A00000F001000028E8D194F85C103F2088400E -:1051B000A860012084F8350000BF002084F8340086 -:1051C00000BF00BFBBE7014691F83500022803D0BD -:1051D0008020486501207047052081F83500086867 -:1051E000006820F001000A6810600020F3E700006A -:1051F000F8B50446002000908C4800684FF4165122 -:10520000B0FBF1F7A56D2E6894F85C10082088407B -:10521000304098B12068006800F0040070B1206848 -:10522000006820F004002168086094F85C100820F1 -:105230008840A860606D40F00100606594F85C10E3 -:1052400001208840304068B12068406900F080004B -:1052500040B194F85C1001208840A860606D40F077 -:105260000200606594F85C1004208840304068B10A -:105270002068006800F0020040B194F85C1004203F -:105280008840A860606D40F00400606594F85C1090 -:1052900010208840304078B32068006800F0080093 -:1052A00050B394F85C1010208840A8602068006813 -:1052B00000F4802080B12068006800F4002028B944 -:1052C000206CC8B12046216C884715E0A06C98B1CD -:1052D0002046A16C88470FE02068006800F48070C9 -:1052E00028B92068006820F0080021680860206C58 -:1052F00010B12046216C884794F85C10202088402B -:105300003040002865D02068006800F010000028B8 -:105310005FD094F85C1020208840A86094F8350095 -:10532000052828D12068006820F016002168086050 -:105330002068406920F0800021684861206C08B92D -:10534000A06C28B12068006820F00800216808607F -:1053500094F85C103F208840A860012084F8350054 -:1053600000BF002084F8340000BF206D10B120463B -:10537000216D8847F8BD2068006800F4802080B166 -:105380002068006800F4002028B9606C10B1204645 -:10539000616C88471DE0E06BD8B12046E16B88471F -:1053A00017E02068006800F4807068B92068006821 -:1053B00020F0100021680860012084F8350000BF4B -:1053C000002084F8340000BFE06B10B12046E16B90 -:1053D0008847606D38B3606D00F00100F0B10520C2 -:1053E00084F835002068006820F00100216808601A -:1053F00000BF0098401C0090B84200D905E020682A -:10540000006800F001000028F3D100BF012084F8FB -:10541000350000BF002084F8340000BFE06C10B1FC -:105420002046E16C884700BFA4E700000C00002084 -:105430002DE9F0410446002500F0E0F9074614B9D3 -:105440000120BDE8F081606A00B100BF022084F84D -:10545000350000BF002084F8340000BF20680068D9 -:1054600020F00100216808600AE000F0C7F9C01BC5 -:10547000052805D920206065032084F83500E0E781 -:105480002068006800F001000028EED1206805685F -:1054900021480540D4E901010843E1680843216936 -:1054A000084361690843A1690843E1690843216A27 -:1054B00008430543606A042803D1D4E90B0108437B -:1054C0000543206805602068456925F00705606A86 -:1054D0000543606A04280DD1A06A0543E06A48B11B -:1054E0002046FFF743FD28B140206065012084F885 -:1054F0003500A6E7206845612046FFF71DFD0646FA -:1055000094F85C103F208840B06000206065012066 -:1055100084F83500002094E73F8010F02DE9F04733 -:1055200004460D4616461F464FF00008D4F8589022 -:1055300000BF94F83400012802D10220BDE8F087B2 -:10554000012084F8340000BF94F83500012825D1EB -:10555000022084F83500002060653B46324629462B -:105560002046FFF758FD94F85C103F208840C9F8AA -:1055700008002068006840F0160021680860206C70 -:1055800028B12068006840F00800216808602068A1 -:10559000006840F001002168086006E000BF0020BC -:1055A00084F8340000BF4FF002084046C6E7000010 -:1055B00070B5044600F022F906462546681C10B175 -:1055C00004480078054400BF00F018F9801BA84289 -:1055D000FAD370BD08000020F8B502460B4600253E -:1055E000002400200021D6E0012606FA01F51E68FD -:1055F00006EA0504AC4274D11E7906F00306012EBA -:1056000004D01E7906F00306022E13D190684F00D5 -:105610000326BE40B0434F00DE68BE40304390607A -:10562000506801268E40B0431E79C6F300168E40A6 -:10563000304350601E7906F00306032E09D0D0686F -:105640004F000326BE40B0434F009E68BE4030432B -:10565000D0601E7906F00306022E13D1CF0802F1A6 -:10566000200656F827004E07F70E0F26BE40B0431F -:105670004F07FF0E1E69BE403043CF0802F12006DF -:1056800046F8270010684F000326BE40B0431E793D -:1056900006F003064F00BE40304310605E6806F41B -:1056A0004036002E76D000BF002600963C4E36686D -:1056B00046F480463A4F3E603E46366806F48046E1 -:1056C000009600BF00BF374E8F0856F827008E07A0 -:1056D000370F0F26BE40B043334EB24202D10026F0 -:1056E00024E057E0314EB24201D101261EE0304E97 -:1056F000B24201D1022619E02E4EB24201D1032658 -:1057000014E02D4EB24201D104260FE02B4EB242DE -:1057100001D105260AE02A4EB24201D1062605E053 -:10572000284EB24201D1072600E008268F073F0F1E -:10573000BE4030431B4E8F0846F82700224E30688B -:10574000A0435E6806F4801606B120431E4E30600A -:10575000361D3068A0435E6806F4001606B120438B -:10576000194E361D3060184E361F3068A0435E68F3 -:1057700006F4003606B12043134E361F3060361F44 -:105780003068A0435E6806F4803606B120430E4EB2 -:10579000083E3060491C1029FFF426AFF8BD000018 -:1057A0004438024008380140000002400004024032 -:1057B00000080240000C02400010024000140240A9 -:1057C00000180240001C0240083C014002461369D8 -:1057D0000B400BB1012000E00020704710B542697A -:1057E00021EA020302EA010443EA0443836110BD93 -:1057F0000AB1816101E00B048361704701480068D0 -:10580000704700000000002070B504460CB901206C -:1058100070BD4CF6CC402168086045F255502168B7 -:105820000860D4E9001048602168A0688860FFF72C -:10583000E5FF05460DE0FFF7E1FF401B41F60101E2 -:10584000884206D92068C06800F0030008B1032030 -:10585000DEE72068C06800F003000028EBD14AF6BC -:10586000AA20216808600020D2E701464AF6AA2053 -:105870000A681060002070470348006803490978EF -:10588000084401490860704700000020080000201B -:1058900010B50D48006840F400700B4908600846D8 -:1058A000006840F4806008600846006840F480703A -:1058B0000860032000F0AAF8032000F007F800F0C9 -:1058C0002BF8002010BD0000003C024070B50446DB -:1058D0000E4800784FF47A71B1FBF0F00C4909687A -:1058E000B1FBF0F5284600F0DBFF08B1012070BDE8 -:1058F000102C07D200222146501E00F049F805481E -:10590000046001E00120F2E70020F0E70800002039 -:105910000C0000200400002008B500BF002000900B -:105920001048006840F480400E490860084600684E -:1059300000F48040009000BF00BF00BF0020009036 -:10594000081F006840F08050091F08600846006882 -:1059500000F08050009000BF00BF052000F056F816 -:1059600008BD0000443802400146084600280DDB0F -:1059700000BF00BF00F01F0301229A4043099B00B3 -:1059800003F1E023C3F8002100BF00BF00BF704750 -:105990002DE9F05F80460D461646002703F010F90A -:1059A000074639462A46334601F00700C0F1070A88 -:1059B000BAF1040F02D94FF0040A01E0C0F1070A5E -:1059C000D14600F1040ABAF1070F02D24FF0000AE3 -:1059D00001E0A0F1030AD4464FF0010A0AFA09FADD -:1059E000AAF1010A0AEA020A0AFA0CFA4FF0010BBC -:1059F0000BFA0CFBABF1010B0BEA030B4AEA0B04AD -:105A00002146404603F0E4F8BDE8F09F00BF00F0F7 -:105A10000702064B19684FF6FF031940044B0B436E -:105A200043EA0221014B196000BF70470CED00E012 -:105A30000000FA0570B504460D460CB9012070BD92 -:105A40005848006800F00700A84209D255490D7077 -:105A50000846006800F00700A84201D00120EEE7E8 -:105A6000207800F0020002281DD1207800F0040008 -:105A7000042805D14C48006840F4E0504A490860C9 -:105A8000207800F00800082805D14748006840F455 -:105A90006040454908604448006820F0F000A16873 -:105AA000084341490860207800F00100A8B360680D -:105AB000012807D13C4808380068C0F34040B8B915 -:105AC0000120BCE76068022802D06068032807D183 -:105AD000354808380068C0F3406048B90120AEE797 -:105AE000314808380068C0F3400008B90120A6E733 -:105AF0002D48006820F00300616808432A490860C7 -:105B0000FFF77CFE064609E0FFF778FE801B41F2B6 -:105B10008831884202D9032091E707E022480068D3 -:105B200000F00C006168B0EB810FEDD11D480068FA -:105B300000F00700A84209D91A490D70084600680C -:105B400000F00700A84201D0012078E7207800F09B -:105B50000400042807D11448006820F4E050E168EC -:105B6000084311490860207800F00800082808D18F -:105B70000D48006820F46040216940EAC1000A49EC -:105B8000086000F03FF808490968C1F30311074AAB -:105B9000515CC8400649086006480068FFF796FE59 -:105BA00000204CE7003C024008380240560C010837 -:105BB0000C0000200400002001480068704700002D -:105BC0000C00002000B5FFF7F7FF04490968C1F396 -:105BD0008221034A515CC84000BD000008380240E1 -:105BE000660C010800B5FFF7E7FF04490968C1F337 -:105BF0004231034A515CC84000BD000008380240F1 -:105C0000660C01082DE9F047002400250026A14676 -:105C10002548006800F00C0020B1042805D00828B1 -:105C20003AD105E0DFF8849039E0DFF8849036E07F -:105C30001D48001F006800F03F041B48001F00685B -:105C400000F4800078B11A481749091F0968C1F3A8 -:105C50008811A0FB01700146224600233846FEF75A -:105C6000B1FA05460EE011480F49091F0968C1F352 -:105C70008811A0FB01700146224600233846FEF73A -:105C8000A1FA05460848001F0068C0F30140401C07 -:105C90004600B5FBF6F902E0DFF8109000BF00BF48 -:105CA0004846BDE8F0870000083802400024F400B0 -:105CB00000127A00F8B504460CB90120F8BD20782E -:105CC00000F00100002874D0F948006800F00C00D2 -:105CD00004280DD0F648006800F00C00082813D105 -:105CE000F348001F006800F48000B0F5800F0BD16E -:105CF000EF4808380068C0F34040002859D0606879 -:105D0000002856D10120D9E700BF6068B0F5803F78 -:105D100008D1E7480838006840F48030E449083981 -:105D200008601EE06068B0F5A02F0DD1E04808388B -:105D3000006840F48020DE490839086008460068A1 -:105D400040F4803008600CE0D9480838006820F43E -:105D50008030D749083908600846006820F4802060 -:105D6000086000BF606890B1FFF748FD054606E097 -:105D7000FFF744FD401B642801D903209EE7CC486F -:105D800008380068C0F340400028F1D011E0FFF768 -:105D900035FD054606E0FFF731FD401B642801D9BB -:105DA00003208BE7C24808380068C0F34040002851 -:105DB000F1D1207800F0020002285FD1BC480068D1 -:105DC00000F00C0058B1BA48006800F00C00082838 -:105DD0001CD1B748001F006800F48000B0B9B44877 -:105DE00008380068C0F3400020B1E068012801D005 -:105DF000012063E7AE480838006820F0F800216908 -:105E000040EAC100AA490839086037E0E06800B3F9 -:105E10000120A8490860FFF7F1FC054606E0FFF7FE -:105E2000EDFC401B022801D9032047E7A0480838B1 -:105E30000068C0F340000028F1D09D480838006891 -:105E400020F0F800216940EAC1009949083908604A -:105E500014E0002097490860FFF7D0FC054606E0F3 -:105E6000FFF7CCFC401B022801D9032026E790480D -:105E700008380068C0F340000028F1D1207800F015 -:105E8000080008282CD16069A8B101208A4908605F -:105E9000FFF7B4FC054606E0FFF7B0FC401B022804 -:105EA00001D903200AE782486C300068C0F3400043 -:105EB0000028F1D014E000207F490860FFF79EFC25 -:105EC000054606E0FFF79AFC401B022801D9032093 -:105ED000F4E677486C300068C0F340000028F1D148 -:105EE000207800F00400042870D100277048383072 -:105EF000006800F0805090B900BF002000906C480E -:105F00003830006840F080506949383108600846F0 -:105F1000006800F08050009000BF00BF0127674874 -:105F2000006800F48070B0B96448006840F4807084 -:105F300062490860FFF762FC054606E0FFF75EFC79 -:105F4000401B022801D90320B8E65C48006800F431 -:105F500080700028F2D000BFA068012808D1544802 -:105F60006830006840F001005149683108601DE068 -:105F7000A06805280DD14E486830006840F0040044 -:105F80004B49683108600846006840F0010008602D -:105F90000CE047486830006820F00100444968314F -:105FA00008600846006820F00400086000BFA06890 -:105FB000A8B1FFF723FC054609E0FFF71FFC401BD3 -:105FC00041F28831884202D9032077E626E038483A -:105FD00068300068C0F340000028EED013E0FFF7FF -:105FE0000DFC054608E0FFF709FC401B41F2883133 -:105FF000884201D9032061E62D4868300068C0F36B -:1060000040000028EFD1012F07D12948383000681F -:1060100020F0805026493831086000BFA069002870 -:1060200045D02348006800F00C0008285DD0A06926 -:10603000022845D100201F490866FFF7DFFB05460F -:1060400006E0FFF7DBFB401B022801D9032035E601 -:10605000174808380068C0F340600028F1D1D4E93F -:1060600007010843616A40EA81110122A06AC2EB7C -:10607000500041EA00412C20005D41EA00600C49DB -:10608000091F086001200B490866FFF7B7FB0546AA -:1060900006E0FFF7B3FB401B022801D903200DE601 -:1060A000034808380068C0F340600028F1D049E098 -:1060B0000838024000004742800E4742007000400E -:1060C000002021490866FFF799FB054606E0FFF727 -:1060D00095FB401B022801D90320EFE51B4800680F -:1060E000C0F340600028F2D12CE0A069012800D163 -:1060F000E4E51648001D0668A069012820D006F4D2 -:106100008001E06981421BD106F03F01206A814293 -:1061100016D147F6C0703040616AB0EB811F0FD1D5 -:1061200006F440310122A06AC2EB5000B1EB004FEF -:1061300006D106F070612C20005DB1EB006F01D03C -:106140000120BBE50020B9E50000474200380240CD -:1061500010B504460CB9012010BD606A38B96068FA -:10616000B0F5827F00D105E00021E16102E000216D -:10617000216161610021A16294F8510028B90020D9 -:1061800084F85000204600F047F8022084F85100BF -:106190002068006820F0400021680860A08800F4B2 -:1061A0008270218901F404410843A18901F400614E -:1061B0000843217C01F002010843217D01F0010127 -:1061C0000843218B01F400710843217F01F038015D -:1061D00008432021095D01F080010843218D01F46D -:1061E00000510843216808600421A06901EA1040B9 -:1061F00094F8241001F010010843216848602068D9 -:10620000C06920F400602168C86100206065012039 -:1062100084F8510000209FE710B586B00446142191 -:1062200001A8FEF719F837492068884230D100BF2D -:10623000002000903448006840F4805032490860E3 -:106240000846006800F48050009000BF00BF00BF07 -:10625000002000902C481438006840F001002A49C2 -:10626000143908600846006800F00100009000BF83 -:1062700000BFE02001900220029000200390032044 -:1062800004900520059001A92048FFF7A5F936E004 -:106290001F492068884232D100BF002000901A4870 -:1062A000001F006840F480401749091F0860084635 -:1062B000006800F48040009000BF00BF00BF0020D5 -:1062C000009011481438006840F002000E4914395B -:1062D00008600846006800F00200009000BF00BFA0 -:1062E0004FF46040019002200290002003900320B0 -:1062F00004900520059001A90648FFF76DF906B046 -:1063000010BD00000030014044380240000002404F -:1063100000380040000402402DE9F8430446884656 -:1063200016461D4694F85100012802D00220BDE80F -:10633000F883B8F1000F00D00EB90120F7E76068CC -:10634000B0F5827F0CD1A06850B9042084F85100C8 -:106350003346424641462046009500F07DF9E6E787 -:10636000FFF74CFA074600BF94F85000012801D10E -:106370000220DCE7012084F8500000BF042084F8EC -:10638000510000206065C4F83880A687E687206346 -:10639000A086E08620646064A068B0F5004F0BD151 -:1063A0002068006820F040002168086020680068CC -:1063B00020F48040216808602068006800F04000F8 -:1063C000402805D02068006840F04000216808603F -:1063D000E06830BB21E02068806800F0010050B127 -:1063E0002068007BA16B0870A06B401CA063E08F4D -:1063F000401EE08711E0FFF701FAC01BA84201D35D -:10640000681C00B94DB9012084F8510000BF00207C -:1064100084F8500000BF032089E7E08F0028DAD11C -:1064200025E021E02068806800F0010050B120687C -:10643000C068A16B0880A06B801CA063E08F401E29 -:10644000E08711E0FFF7DAF9C01BA84201D3681C0E -:1064500000B94DB9012084F8510000BF002084F834 -:10646000500000BF032062E7E08F0028DAD13A46EF -:106470002946204601F0EFFB08B12020606501208D -:1064800084F8510000BF002084F8500000BF606D08 -:1064900008B101204BE7002049E72DE9F843044605 -:1064A0000F4616461D46FFF7A9F98046B14694F8F7 -:1064B0005100012802D00220BDE8F88307B10EB9CF -:1064C0000120F9E700BF94F85000012801D1022013 -:1064D000F2E7012084F8500000BF032084F8510047 -:1064E000002060652763A686E686A063A087E08714 -:1064F00060642064A068B0F5004F0BD1206800688C -:1065000020F04000216808602068006840F4804066 -:10651000216808602068006800F04000402805D02D -:106520002068006840F0400021680860E068B0F52D -:10653000006F37D1606810B1B9F1010F09D1206B3C -:1065400000882168C860206B801C2063E08E401E9C -:10655000E08623E02068806800F0020002280AD16B -:10656000206B00882168C860206B801C2063E08E4F -:10657000401EE08612E0FFF741F9A0EB0800A842B8 -:1065800001D3681C00B94DB9012084F8510000BF47 -:10659000002084F8500000BF03208DE7E08E002823 -:1065A000D8D136E0606810B1B9F1010F09D1206B84 -:1065B000007821680873206B401C2063E08E401E29 -:1065C000E08623E02068806800F0020002280AD1FB -:1065D000206B007821680873206B401C2063E08EDC -:1065E000401EE08612E0FFF709F9A0EB0800A84280 -:1065F00001D3681C00B94DB9012084F8510000BFD7 -:10660000002084F8500000BF032055E7E08E0028EA -:10661000D8D142462946204601F068FB08B1202027 -:106620006065A06850B900BF002000902068C06875 -:10663000009020688068009000BF00BF012084F8AF -:10664000510000BF002084F8500000BF606D08B109 -:10665000012031E700202FE72DE9FE4F04460F46C9 -:1066600090461D460C9E01200190FFF7C7F8814619 -:1066700094F851B060680290AA46BBF1010F0BD0AC -:106680000298B0F5827F04D1A06810B9BBF1040F65 -:1066900002D00220BDE8FE8F1FB1B8F1000F00D07C -:1066A0000DB90120F6E700BF94F85000012801D190 -:1066B0000220EFE7012084F8500000BF94F8510059 -:1066C000042802D0052084F8510000206065C4F839 -:1066D0003880E587A5872763E586A5862064606402 -:1066E0002068006800F04000402805D0206800685D -:1066F00040F0400021680860E068B0F5006F52D1BA -:10670000606810B1BAF1010F09D1206B00882168CF -:10671000C860206B801C2063E08E401EE0863BE05A -:106720002068806800F00200022810D1E08E70B16D -:10673000019801280BD1206B00882168C860206B6C -:10674000801C2063E08E401EE086002001902068BF -:10675000806800F0010068B1E08F58B12068C0681F -:10676000A16B0880A06B801CA063E08F401EE087B7 -:1067700001200190FFF742F8A0EB0900B0420BD3D3 -:10678000701C48B1012084F8510000BF002084F83B -:10679000500000BF03207DE7E08E0028C0D1E08FCD -:1067A0000028BDD152E0606810B1BAF1010F09D1E3 -:1067B000206B007821680873206B401C2063E08EFA -:1067C000401EE0863CE02068806800F0020002285D -:1067D00010D1E08E70B1019801280BD1206B0078A8 -:1067E00021680873206B401C2063E08E401EE08609 -:1067F000002001902068806800F0010068B1E08FFF -:1068000058B12068C068A16B0870A06B401CA063E1 -:10681000E08F401EE08701200190FEF7EFFFA0EB24 -:106820000900B04201D3701C00B94EB9012084F8B0 -:10683000510000BF002084F8500000BF032029E76A -:10684000E08E0028BFD1E08F0028BCD14A463146F7 -:10685000204601F04BFA40B12020606500BF0020C7 -:1068600084F8500000BF012014E7A06850B900BFB1 -:10687000002000902068C068009020688068009028 -:1068800000BF00BF012084F8510000BF002084F841 -:10689000500000BF606D08B10120FBE60020F9E662 -:1068A00070B504462546681EB0F1807F01D30120F3 -:1068B0000FE0681E4FF0E02148610F214FF0FF30DC -:1068C00002F086F900204FF0E0218861072008617E -:1068D000002070BDF8B504460D46164694F84200F7 -:1068E00020282DD105B10EB90120F8BD012020636B -:1068F0000020606332462946204601F043FE0746E9 -:10690000206B012819D100BF00200090206800688A -:10691000009020684068009000BF00BF00BF00BF2B -:1069200021680C3151E8001F41F0100021680C3142 -:1069300041E80002002AF3D100E001273846D4E7FD -:106940000220D2E770B504460D46144920688842FB -:1069500003D1134804F0A7F91EE0124920688842C9 -:1069600003D1114804F09FF916E0104920688842CD -:1069700003D10F4804F097F90EE00E4920688842D1 -:1069800003D10D4804F08FF906E00C4920688842D5 -:1069900002D10B4804F087F970BD000000100140DF -:1069A000F00C002000440040440D0020004800404E -:1069B000980D0020004C0040EC0D00200014014018 -:1069C000400E002070B50446002520684069C0F3E1 -:1069D000C01594F84100212817D1B5B100BF00BF00 -:1069E0002168143151E8001F21F080002168143122 -:1069F00041E80002002AF3D100BFA06B10B1A06BE8 -:106A0000FEF78BFB204601F016FC20684069C0F3BE -:106A1000801594F84200222817D1B5B100BF00BFFD -:106A20002168143151E8001F21F040002168143121 -:106A300041E80002002AF3D100BFE06B10B1E06B27 -:106A4000FEF76BFB204601F0B0FB002070BD00009C -:106A500038B50446002531492068884201D1304DBF -:106A600016E030492068884201D12F4D10E02F49AF -:106A70002068884201D12E4D0AE02E4920688842C4 -:106A800001D12D4D04E02D492068884200D12C4DC4 -:106A9000606C00F0020050B100BF00200090206840 -:106AA0000068009020684068009000BF00BF606CE4 -:106AB00000F0040050B100BF002000902068006882 -:106AC000009020684068009000BF00BF2068006808 -:106AD000C0F3C00050B100BF0020009020680068E3 -:106AE000009020684068009000BF00BF20680068E8 -:106AF000C0F3400050B100BF002000902068006843 -:106B0000009020684068009000BF00BF25B1EA8B6C -:106B1000A9696868FFF7DEFE38BD0000001001407B -:106B2000F00C002000440040440D002000480040CC -:106B3000980D0020004C0040EC0D00200014014096 -:106B4000400E00202DE9F84F0446206805682068B3 -:106B5000C668206847694FF00009CA4605F00F096A -:106B6000B9F1000F0AD105F0200038B106F020007D -:106B700020B1204601F072FBBDE8F88FB9F1000F9B -:106B80007CD007F0010018B906F49070002875D089 -:106B900005F0010030B106F4807018B1606C40F06F -:106BA0000100606405F0040030B107F0010018B185 -:106BB000606C40F00200606405F0020030B107F044 -:106BC000010018B1606C40F00400606405F008003A -:106BD00048B106F0200010B907F0010018B1606C50 -:106BE00040F008006064606C002846D005F020008A -:106BF00028B106F0200010B1204601F02FFB2068DC -:106C00004069C0F3801A606C00F0080010B9BAF156 -:106C1000000F2DD0204601F0C8FA2068406900F02E -:106C20004000402820D100BF00BF2168143151E846 -:106C3000001F21F040002168143141E80002002AC1 -:106C4000F3D100BFE06B50B17F48E16B0865E06BAA -:106C5000FEF7B9FA88B1E06B016D88470DE0204678 -:106C6000FFF7F6FE09E009E02046FFF7F1FE04E039 -:106C70002046FFF7EDFE002060647DE7206B0128D1 -:106C800078D105F01000002874D006F0100000281C -:106C9000FAD000BF002000902068006800902068B3 -:106CA0004068009000BF00BF2068406900F04000CD -:106CB000402870D1E06B006840681FFA80F8B8F196 -:106CC000000F58D0A08D404555DDA4F82E80E06B14 -:106CD000C069B0F5807F43D000BF00BF21680C3190 -:106CE00051E8001F21F4807021680C3141E8000256 -:106CF000002AF3D100BF00BF00BF2168143151E862 -:106D0000001F21F001002168143141E80002002A2F -:106D1000F3D100BF00BF00BF2168143151E8001F4C -:106D200021F040002168143141E80002002AF3D12B -:106D300000BF202084F842000020206300BF00BF75 -:106D400021680C3151E8001F21F0100021680C313E -:106D500041E80002002AF3D100BFE06BFEF7DDF945 -:106D600002206063A08DE28D801A81B22046FFF779 -:106D7000E9FD0EE052E0A08D40450AD1E06BC0690C -:106D8000B0F5807F05D102206063A18D2046FFF71A -:106D9000D9FDF1E6FFE7A08DE18D401A1FFA80F8DA -:106DA000E08DD0B3B8F1000F37D000BF00BF21682D -:106DB0000C3151E8001F21F4907021680C3141E83A -:106DC0000002002AF3D100BF00BF00BF21681431C8 -:106DD00051E8001F21F001002168143141E8000250 -:106DE000002AF3D100BF202084F842000020206355 -:106DF00000BF00BF21680C3151E8001F21F01000D6 -:106E000021680C3141E80002002AF3D100BF0220C2 -:106E1000606341462046FFF795FDADE605F0800032 -:106E200030B106F0800018B1204601F017FCA3E64F -:106E300005F0400030B106F0400018B1204601F0E6 -:106E4000EAF999E600BF97E67180000810B504469C -:106E50000CB9012010BDA06900B100E000BF94F89A -:106E6000410028B9002084F84000204600F02AF8AC -:106E7000242084F841002068C06820F40050216874 -:106E8000C860204601F068FA2068006920F490404C -:106E9000216808612068406920F02A002168486163 -:106EA0002068C06840F400502168C8600020606419 -:106EB000202084F8410084F842000020606300BF75 -:106EC000C8E7000010B586B00446142101A8FDF7FC -:106ED000C3F9FE49206888427AD100BF00200090A3 -:106EE000FB48006840F40020F94908600846006843 -:106EF00000F40020009000BF00BF00BF0020009001 -:106F0000F3481038006840F00100F149103908607A -:106F10000846006800F00100009000BF00BF032099 -:106F2000019002200290002003900320049008208A -:106F3000059001A9E748FEF74FFBE748E7490860DD -:106F4000400548600021E5488160C1604FF48061E0 -:106F50000161002141618161C1614FF440310162F1 -:106F600000214162FEF764FA08B1FEF7D3F800BFD2 -:106F7000DA48E063846300BFD7483030D8490860FE -:106F80004FF0006048604021D54881600021C16019 -:106F90004FF480610161002141618161C1614FF461 -:106FA0000031016200214162FEF742FA08B1FEF7AA -:106FB000B1F800BFCA48A063846300BF002201216A -:106FC0003420FEF7E5FC3420FEF7CEFC1AE2FFE7A2 -:106FD000C449206888427DD100BF00200090BC4891 -:106FE000001D006840F01000B949091D08600846FE -:106FF000006800F01000009000BF00BF00BF00203C -:107000000090B3481038006840F00200B0491039D1 -:1070100008600846006800F00200009000BF00BF52 -:10702000C0200190022002900020039003200490D1 -:107030000720059001A9AC48FEF7CEFAAB48AC4951 -:1070400008604FF0006048600021A9488160C1607D -:107050004FF480610161002141618161C1614FF4A0 -:107060008031016200214162FEF7E2F908B1FEF7CA -:1070700051F800BF9E48E063846300BF9B487830AE -:107080009C4908604FF00060486040219948816049 -:107090000021C1604FF48061016100214161816183 -:1070A000C1614FF48031016200214162FEF7C0F9F5 -:1070B00008B1FEF72FF800BF8E48A063846300BFBD -:1070C000002201212520FEF763FC2520FEF74CFC61 -:1070D00098E1FFE78849206888427CD100BF002002 -:1070E00000907B48006840F4003079490860084609 -:1070F000006800F40030009000BF00BF00BF002017 -:10710000009073481038006840F001007049103951 -:1071100008600846006800F00100009000BF00BF52 -:107120000C20019002200290002003900320049084 -:107130000720059001A96748FEF74EFA66484830D7 -:107140006E4908604FF00060486000216B48816024 -:10715000C1604FF480610161002141618161C161C1 -:107160004FF44031016200214162FEF761F908B13C -:10717000FDF7D0FF00BF6148E063846300BF56485D -:1071800060305F4908604FF00060486040215C4813 -:1071900081600021C1604FF4806101610021416183 -:1071A0008161C1614FF40031016200214162FEF74B -:1071B0003FF908B1FDF7AEFF00BF5148A0638463FB -:1071C00000BF002201212620FEF7E2FB2620FEF769 -:1071D000CBFB17E1FFE74B492068884274D100BF21 -:1071E000002000903A48006840F480203849086048 -:1071F0000846006800F48020009000BF00BF00BF78 -:107200000020009032481038006840F002003049F9 -:10721000103908600846006800F00200009000BFC6 -:1072200000BF4FF4406001900220029000200390C4 -:10723000032004900720059001A92B48FEF7CCF904 -:1072400025481838304908604FF000604860002138 -:107250002D488160C1604FF480610161002141616E -:107260008161C16101624162FEF7E2F808B1FDF798 -:1072700051FF00BF2448E063846300BF1648183004 -:10728000224908604FF00060486040211F4881603B -:107290000021C1604FF48061016100214161816181 -:1072A000C16101624162FEF7C3F808B1FDF732FF28 -:1072B00000BF1648A063846300BF00221146272048 -:1072C000FEF766FB272023E025E00000004C00408D -:1072D0004038024000000240406002400C2800207C -:1072E0006C2800200010014000040240406402406D -:1072F000CC2800202C290020004400408C290020AC -:10730000EC290020004800404C2A0020AC2A002034 -:10731000FEF72AFB76E03C492068884272D100BF24 -:10732000002000903948006840F02000374908608C -:107330000846006800F02000009000BF00BF00BFBA -:107340000020009031481438006840F004002F49B4 -:10735000143908600846006800F00400009000BF7F -:1073600000BFC02001900220029000200390032063 -:1073700004900820059001A92548FEF72DF925481D -:107380002549086080054860002123488160C1606C -:107390004FF480610161002141618161C16101623D -:1073A0004162FEF745F808B1FDF7B4FE00BF1A4888 -:1073B000E063846300BF17487830184908604FF0D5 -:1073C000206048604021154881600021C1604FF471 -:1073D00080610161002141618161C161016241629D -:1073E000FEF726F808B1FDF795FE00BF0B48A06335 -:1073F000846300BF002211464720FEF7C9FA4720E8 -:10740000FEF7B2FA06B010BD001401404438024045 -:1074100000080240286402400C2B00206C2B002046 -:10742000704770472DE9F84F04460E4617469946B7 -:107430004FF0000A94F84100202850D106B117B946 -:107440000120BDE8F88F00206064212084F841000D -:10745000FEF7D4F98246A784E784A068B0F5805F80 -:1074600004D1206910B90025B04602E035464FF03E -:1074700000081EE05346002280212046CDF80090EF -:1074800001F01CF920B1202084F841000320D8E746 -:1074900045B9B8F80000C0F308002168486008F159 -:1074A000020803E02878216848606D1CE08C401ECB -:1074B000E084E08C0028DDD15346002240212046A4 -:1074C000CDF8009001F0FAF820B1202084F84100B6 -:1074D0000320B6E7202084F841000020B1E7022015 -:1074E000AFE7000010B5044613492068884203D175 -:1074F000124803F09BFC1EE011492068884203D12A -:10750000104803F093FC16E00F492068884203D12D -:107510000E4803F08BFC0EE00D492068884203D131 -:107520000C4803F083FC06E00B492068884202D136 -:107530000A4803F07BFC10BD00100140F00C002055 -:1075400000440040440D002000480040980D0020F9 -:10755000004C0040EC0D002000140140400E0020C3 -:1075600000BFFEE701460A2291FBF2F302FB131271 -:107570000A2391FBF3F302EB0312D0B27047000031 -:1075800008B500BF002000903648006840F40010A5 -:10759000344908600846006800F40010009000BFFD -:1075A00000BF00BF002000900846006840F4800043 -:1075B00008600846006800F48000009000BF00BF2B -:1075C000002211460C20FEF7E3F90C20FEF7CCF95F -:1075D000002211460D20FEF7DBF90D20FEF7C4F95D -:1075E000002211460E20FEF7D3F90E20FEF7BCF95B -:1075F000002211460F20FEF7CBF90F20FEF7B4F959 -:10760000002211461020FEF7C3F91020FEF7ACF956 -:10761000002211461120FEF7BBF91120FEF7A4F954 -:10762000002211463920FEF7B3F93920FEF79CF904 -:10763000002211463A20FEF7ABF93A20FEF794F902 -:10764000002211464520FEF7A3F94520FEF78CF9EC -:10765000002211464620FEF79BF94620FEF784F9EA -:1076600008BD00003038024000B587B0142102A8E0 -:10767000FCF7F2FD00BF002001906348006840F075 -:107680008000614908600846006800F080000190B1 -:1076900000BF00BF00BF002001900846006840F016 -:1076A000010008600846006800F00100019000BF7A -:1076B00000BF00BF002001900846006840F00400B1 -:1076C00008600846006800F00400019000BF00BF99 -:1076D00000BF002001900846006840F002000860EA -:1076E0000846006800F00200019000BF00BF00BF24 -:1076F000002001900846006840F01000086008462D -:10770000006800F01000019000BF00BF00BF002023 -:1077100001900846006840F00800086008460068CC -:1077200000F00800019000BF00BF00223021374860 -:10773000FEF75EF8002241F237113548FEF758F89F -:1077400000224FF478613348FEF752F800224FF4DC -:1077500080513148FEF74CF8002238212F48FEF7BF -:1077600047F83020029001200390002004900590FB -:1077700002A92648FDF730FF41F2171002900120C0 -:10778000039000200490059002A92148FDF724FFF2 -:107790004FF418600290012003900020049005909F -:1077A00002A91C48FDF718FF4FF4C06002900120A9 -:1077B000039004900020059002A91648FDF70CFFE5 -:1077C0004FF4805002900120039000200490059017 -:1077D00002A91148FDF700FF382002900120039014 -:1077E00000200490059002A90C48FDF7F5FE20202A -:1077F00002900120039004900020059002A9044803 -:10780000FDF7EAFE07B000BD303802400008024034 -:10781000000402400010024000000240000C024040 -:1078200010B50748074908600520486040F2EE217E -:1078300004488160FDF7E8FF08B1FDF76BFC10BD5F -:1078400000300040E825002010B50E480E490860C1 -:107850004FF48270486000210B488160C160016173 -:1078600041614FF4007181610021C1610162416297 -:1078700081620A21C162FEF76BFC08B1FDF74AFC88 -:1078800010BD000000300140F425002010B50E4866 -:107890000E4908604FF48270486000210B488160F7 -:1078A000C160016141614FF4007181610021C161DA -:1078B0000162416281620A21C162FEF749FC08B19E -:1078C000FDF728FC10BD0000003800404C260020C9 -:1078D00010B50B480B4908604FF4E13048600021B7 -:1078E00008488160C16001610C2141610021816112 -:1078F000C161FFF7ABFA08B1FDF70CFC10BD000049 -:10790000004C0040A426002010B50B480B4908602D -:107910004FF4E1304860002108488160C160016196 -:107920000C21416100218161C161FFF78FFA08B12B -:10793000FDF7F0FB10BD000000100140EC26002018 -:1079400010B50B480B4908604FF4E1304860002146 -:1079500008488160C16001610C21416100218161A1 -:10796000C161FFF773FA08B1FDF7D4FB10BD000049 -:10797000004400403427002010B50B480B49086034 -:107980004FF4E1304860002108488160C160016126 -:107990000C21416100218161C161FFF757FA08B1F3 -:1079A000FDF7B8FB10BD0000004800407C27002018 -:1079B00010B50B480B4908604FF4E13048600021D6 -:1079C00008488160C16001610C2141610021816131 -:1079D000C161FFF73BFA08B1FDF79CFB10BD000049 -:1079E00000140140C427002000BFFEE700BFFEE7EF -:1079F000704700002DE9F04780460D46262140469D -:107A000000F0E0F8064616B90020BDE8F08740F225 -:107A1000B450864200DD06462821404600F0D2F8E8 -:107A20000746B946C7F30A0700224FF400613C48F5 -:107A3000FDF7DEFE384600F005F9182101EB48118C -:107A4000C8B200F0F5F837480068C06800F0FF0AD7 -:107A5000B819B0F5006F11DA00240CE0002000F036 -:107A6000E7F830480068C06800F0FF0A85F800A019 -:107A70006D1C601C84B2B442F0DB3CE0C7F50060D2 -:107A800087B200240CE0002000F0D2F825480068FE -:107A9000C06800F0FF0A85F800A06D1C601C84B26D -:107AA000BC42F0DB0122D1021D48FDF7A1FE0022FD -:107AB0004FF400611A48FDF79BFE002000F0C2F869 -:107AC000182101EB4811C8B200F0B2F8154800685F -:107AD000C06800F0FF0A0CE0002000F0A9F811488F -:107AE0000068C06800F0FF0A85F800A06D1C601CEB -:107AF00084B2B442F0DB0122D1020948FDF778FEDE -:107B000009EB06001FFA80F94A462821404600F09A -:107B1000A7FF40220121404600F082FF304674E773 -:107B200000100240F425002070B5044600224FF4F6 -:107B300000610D48FDF75CFE204600F083F801204F -:107B400000F076F809480068C068C5B2002000F06F -:107B50006FF806480068C068C5B20122D102024829 -:107B6000FDF746FE284670BD00100240F4250020B7 -:107B700070B504460D4600224FF400610F48FDF732 -:107B800037FE284600F05EF8082101EB4411C9B227 -:107B900041F0010000F04CF809480068C068C6B226 -:107BA000002000F045F806480068C068C6B201220F -:107BB000D1020248FDF71CFE304670BD00100240A5 -:107BC000F425002070B505460E4600224FF40061F2 -:107BD0001548FDF70DFE304600F034F8082101EBA2 -:107BE0004511C9B241F0020000F022F80F480068C8 -:107BF000C06884B2002000F01BF80C480068C06820 -:107C000084B2002000F014F84FF6FF7000EA04245C -:107C100006480068C068204484B20122D1020248AC -:107C2000FDF7E6FD204670BD00100240F42500205F -:107C300001B5FF23012269460148FEF72EFC08BD6D -:107C4000F425002010B504462012FFF7F1FFE0B242 -:107C5000FFF7EEFF10BDF8B504460E461546606806 -:107C6000B0F5827F0DD1A068B0F5004F03D0A068B9 -:107C7000B0F5806F05D12068006820F040002168D1 -:107C800008606068B0F5827F1FD1A068B0F5806F92 -:107C90000DD03346002280212046009500F06AF87E -:107CA00008B3606D40F0200060650320F8BD3346E6 -:107CB000002201212046009500F05CF898B1606D2B -:107CC00040F0200060650320F0E7334600220121E8 -:107CD0002046009500F04EF828B1606D40F020007D -:107CE00060650320E2E70020E0E700007CB5044681 -:107CF0000E4615463346012202212046009500F02B -:107D000039F828B1606D40F02000606503207CBD2B -:107D1000164800681821B0FBF1F01549B0FBF1F0EE -:107D20004FF47A71484301906068B0F5827F0DD1BD -:107D30003346002280212046009500F01BF898B1C0 -:107D4000606D40F0200060650320E0E700BF01980F -:107D500000B908E00198401E019020688068C0F3D7 -:107D6000C0100028F3D100BF0020D0E70C00002095 -:107D700040420F002DE9F84F04460D4690461E463E -:107D8000DDF82890FDF73AFDA0EB0900371AFDF762 -:107D900035FD82462C480068C0F3CB307843009014 -:107DA00046E0701C002843D0FDF728FDA0EB0A0038 -:107DB000B84200D2A7BB2068406820F0E0002168EC -:107DC00048606068B0F5827F0DD1A068B0F5004FC3 -:107DD00003D0A068B0F5806F05D12068006820F05E -:107DE000400021680860A06AB0F5005F0DD100BFB7 -:107DF0002068006820F4005021680860206800684E -:107E000040F400502168086000BF012084F8510050 -:107E100000BF002084F8500000BF0320BDE8F88FA9 -:107E2000FFE7009808B9002702E00098401E009084 -:107E3000206880682840A84201D1012000E000208D -:107E40004045AED10020E9E70C000020704710B596 -:107E5000044601220021204600F0E2FD01221146E5 -:107E6000204600F0DDFD0520FDF7A2FB03212046A2 -:107E7000FFF77EFE132806D010220121204600F0D5 -:107E8000CFFD002010BD04220121204600F0C8FDD6 -:107E9000FF20F7E710B5044601220021204600F03C -:107EA000BFFD01221146204600F0BAFD0520FDF776 -:107EB0007FFB03212046FFF75BFE132806D010222C -:107EC0000121204600F0ACFD002010BD022201215E -:107ED000204600F0A5FD0520FDF76AFB03212046A2 -:107EE000FFF746FE142806D010220121204600F09C -:107EF00097FD0020E9E7FF20E7E710B504460222DE -:107F00000021204600F08CFD01221146204600F0A1 -:107F100087FD0520FDF74CFB03212046FFF728FED7 -:107F2000222806D010220121204600F079FD0020F1 -:107F300010BDFF20FCE7000010B50D48416901208D -:107F400088470C480121826C90470B480121826CC4 -:107F500090470A480121826C904709480121826CB0 -:107F6000904708480121826C9047FDF785FC10BDC1 -:107F70008C000020F00C0020440D0020980D002003 -:107F8000EC0D0020400E002000B593B0302107A872 -:107F9000FCF762F9142102A8FCF75EF900BF00208B -:107FA00001902548006840F0805023490860084649 -:107FB000006800F08050019000BF00BF00BF0020AB -:107FC00001901E48006840F480401C490860084643 -:107FD000006800F48040019000BF00BF09200790B6 -:107FE0004FF48030089001200C9002200D90410544 -:107FF0000E9104210F91A8211091022111910421C9 -:10800000129107A8FDF756FE08B1FDF783F80F207F -:10801000029002200390002004904FF4A05005909D -:108020004FF480500690052102A8FDF703FD08B12A -:10803000FDF770F813B000BD4038024000700040FA -:108040000548006840F4700003490860034802498D -:10805000803908607047000088ED00E000400008AB -:1080600010B50248FEF76EFD10BD0000A4260020EA -:1080700070B50446A56B0020E8852846FEF7E8FCAD -:1080800070BD70B506460025B46B20684069C0F32A -:10809000C01594F84100212805D125B10020E084C5 -:1080A000204600F0C8F820684069C0F3801594F8B5 -:1080B0004200222805D125B10020E085204600F0AD -:1080C00074F8606C40F0100060642046FEF7C0FC5D -:1080D00070BD70B50546AC6B2868006800F4807010 -:1080E000002842D1E08500BF00BF21680C3151E873 -:1080F000001F21F4807021680C3141E80002002A41 -:10810000F3D100BF00BF00BF2168143151E8001F48 -:1081100021F001002168143141E80002002AF3D166 -:1081200000BF00BF00BF2168143151E8001F21F0DB -:1081300040002168143141E80002002AF3D100BF59 -:10814000202084F84200206B01280ED100BF00BF20 -:1081500021680C3151E8001F21F0100021680C311A -:1081600041E80002002AF3D100BF00206063206BC9 -:10817000012804D1A18D2046FEF7E4FB02E0204651 -:10818000FFF74EF970BD70B50546AC6B012060631A -:10819000206B012805D1A08D41082046FEF7D2FBB7 -:1081A00002E02046FFF73DF970BD00BF00BF026846 -:1081B0000C3252E8002F22F4907102680C3242E82F -:1081C0000013002BF3D100BF00BF00BF02681432C0 -:1081D00052E8002F22F001010268143242E8001335 -:1081E000002BF3D100BF016B01290ED100BF00BFEE -:1081F00002680C3252E8002F22F0100102680C32A3 -:1082000042E80013002BF3D100BF202180F8421078 -:1082100000210163704710B504462068C06820F053 -:1082200040002168C860202084F841002046FFF704 -:1082300059F9002010BD00BF00BF02680C3252E89F -:10824000002F22F0C00102680C3242E80013002B1C -:10825000F3D100BF202180F841107047F8B50446E3 -:108260000025002694F84200222873D1A068B0F5BA -:10827000805F0BD1206948B9A66A20684068C0F3C6 -:1082800008003080A06A801CA06214E0A56AA06883 -:10829000B0F5805F03D0A06828B9206918B92068BC -:1082A0004068287004E02068406800F07F00287073 -:1082B000A06A401CA062E08D401E80B2E0850028CC -:1082C00046D12068C06820F020002168C86020687E -:1082D000C06820F480702168C8602068406920F080 -:1082E000010021684861202084F84200002060637A -:1082F000206B012826D10020206300BF00BF216829 -:108300000C3151E8001F21F0100021680C3141E8C8 -:108310000002002AF3D100BF2068006800F01000BE -:1083200010280AD100BF002000902068006800904B -:1083300020684068009000BF00BFA18D2046FEF776 -:1083400001FB02E02046FFF76BF80020F8BD01E0DA -:108350000020FBE70220F9E72DE9F84F04462068EA -:10836000006920F44050E1680843216808612169F0 -:10837000A068084361690843E169084300902068E8 -:10838000C06849F20C618843009908432168C860BD -:108390002068406920F44070A16908432168486161 -:1083A00076492068884203D075492068884203D105 -:1083B000FDF718FC814602E0FDF704FC8146E06908 -:1083C000B0F5004F6CD102206168A0FB015003465C -:1083D0001920A9FB007001462A463846FBF7F2FE39 -:1083E0006421B0FBF1F04FEA001A02206168A0FBA3 -:1083F00001510B461920A9FB00712A463846FBF7AC -:10840000E1FE834602206168A0FB0150034619206B -:10841000A9FB00712A463846FBF7D4FE6421B0FB65 -:10842000F1F000EBC00101EB0010ABEB800032215A -:1084300001EBC0006421B0FBF1F000F0F8000AEBA2 -:10844000400A02206168A0FB015003461920A9FBE5 -:10845000007001462A463846FBF7B4FE83460220E8 -:108460006168A0FB015003461920A9FB00712A4650 -:108470003846FBF7A7FE6421B0FBF1F000EBC0012A -:1084800001EB0010ABEB8000322101EBC000642156 -:10849000B0FBF1F000F007005044216888606AE00A -:1084A00004206168A0FB015003461920A9FB00705D -:1084B00001462A463846FBF785FE8246042061685D -:1084C000A0FB015003461920A9FB007001462A4673 -:1084D0003846FBF777FE6421B0FBF1F000EBC001FA -:1084E00001EB0010AAEB8000322101EB00106421A7 -:1084F000B0FBF1F000F0F00A04206168A0FB01700D -:1085000003461920A9FB00513A462846FBF75AFEBC -:108510006421B0FBF1F00AEB001A04206168A0FBB3 -:1085200001510B461920A9FB00712A463846FBF77A -:1085300049FE834604206168A0FB015003461920D0 -:10854000A9FB007001462A463846FBF73BFE642132 -:10855000B0FBF1F000EBC00101EB0010ABEB8000D1 -:10856000322101EB00106421B0FBF1F000F00F00AC -:10857000504421688860BDE8F88F00000010014079 -:108580000014014077B581B0044615460298A062F8 -:10859000A58500206064222084F842002C48E16B0D -:1085A000C8632C48E16B08642B48E16BC864002069 -:1085B000E16B086502AE32682368191D2B46E06B3B -:1085C000FCF7ACFF38B110206064202084F8420032 -:1085D000012004B070BD00BF00200090206800683A -:1085E000009020684068009000BF00BF206970B113 -:1085F00000BF00BF21680C3151E8001F41F48070BA -:1086000021680C3141E80002002AF3D100BF00BF0D -:1086100000BF2168143151E8001F41F001002168BA -:10862000143141E80002002AF3D100BF00BF00BFAF -:108630002168143151E8001F41F0400021681431D5 -:1086400041E80002002AF3D100BF0020C1E700008A -:10865000D38000088781000883800008014691F8D4 -:108660004100212828D18868B0F5805F0BD10869C6 -:1086700048B90A6A1088C0F308000B685860086A95 -:10868000801C086205E00B6A581C086218780B68A9 -:108690005860C88C401E80B2C88458B90868C06849 -:1086A00020F080000B68D8600868C06840F0400087 -:1086B0000B68D860002070470220FCE72DE9F843E2 -:1086C00004460D4617469846089E31E0701C70B36C -:1086D000FDF794F8A0EB0800B04200D816B90320CB -:1086E000BDE8F8832068C06800F00400F8B1802D70 -:1086F0001ED0402D1CD020680068C0F3C000B0B16F -:1087000000BF00200090206800680090206840684A -:10871000009000BF00BF2046FFF747FD08206064BF -:1087200000BF002084F8400000BF0120D8E7FFE729 -:10873000206800682840A84201D1012000E0002004 -:10874000B842C3D00020CBE710B50248FEF7FAF9D3 -:1087500010BD0000EC26002010B50248FEF7F2F92B -:1087600010BD00003427002010B50248FEF7EAF9DA -:1087700010BD00007C27002010B50248FEF7E2F98A -:1087800010BD0000C427002000BFFEE710B5002286 -:1087900010210748FDF72CF83220FCF709FF0122D1 -:1087A00010210348FDF724F86420FCF701FF10BDF9 -:1087B000000802403EB50024002000900190029085 -:1087C000802100F0F9F80A20FCF7F2FE0422334879 -:1087D0000168012000F092F9042230480168091D67 -:1087E000052000F08BF92E48006800902C48001DF1 -:1087F000006801902A480830006802900198000A39 -:108800002649096808720198C1B22448006841727B -:108810000298010E2148006881720298010C1F48DD -:108820000068C1720298010A1C480068017302982E -:10883000C1B21A480068417318480068007A00F015 -:10884000FE0040F00200154909680872062213482C -:1088500001680831092000F051F904220F4801682D -:108860000E310F2000F04AF900BF0BE0E0B2022207 -:108870001E2100F0D5F8E0B202221F2100F0D0F84E -:10888000601C84B2082CF1DB4FF4FA61192000F06F -:10889000ADF808211B2000F08FF83EBD041F00201A -:1088A000107AFF1F2DE9F04704460E4690462078C7 -:1088B0000021FFF75DF900F00F0022280DD020788D -:1088C00004F109020C2100F0EBF8A37B617B43EA81 -:1088D00001222078102100F0C3F820782421FFF72E -:1088E00071F90746B946C7F30A0700224FF4006141 -:1088F0003048FCF77DFF3846FFF7A4F921781022B5 -:1089000002EB4111C9B241F00400FFF791F907EB06 -:108910000800B0F5006F0ADA002505E016F8010B33 -:10892000FFF786F9681C85B24545F7DB2CE0C7F5F3 -:10893000006087B2002505E016F8010BFFF778F913 -:10894000681C85B2BD42F7DB0122D1021948FCF751 -:108950004FFF00224FF400611648FCF749FF00204A -:10896000FFF770F92178102202EB4111C9B241F0F2 -:108970000400FFF75DF905E016F8010BFFF758F961 -:10898000681C85B24545F7DB0122D1020948FCF796 -:108990002FFF09EB08001FFA80F920784A462421AE -:1089A00000F05EF820782022012100F039F8BDE8BF -:1089B000F08700000010024070B505460C4600220A -:1089C0004FF400610848FCF713FF2846FFF73AF917 -:1089D0000520FFF72DF92046FFF72AF90122D102E1 -:1089E0000148FCF705FF70BD0010024070B5054658 -:1089F0000C4600224FF400610848FCF7F9FE2846B7 -:108A0000FFF720F90620FFF713F92046FFF71AF9C0 -:108A10000122D1020148FCF7EBFE70BD00100240BC -:108A200070B504460D46164600224FF400610B480F -:108A3000FCF7DEFE2846FFF705F9082101EB44119B -:108A4000C9B241F00500FFF7F3F83046FFF7F0F840 -:108A50000122D1020148FCF7CBFE70BD001002409C -:108A600070B504460D46164600224FF400610B48CF -:108A7000FCF7BEFE2846FFF7E5F8082101EB44119C -:108A8000C9B241F00600FFF7D3F83046FFF7DAF835 -:108A90000122D1020148FCF7ABFE70BD001002407C -:108AA00070B505460E46144600224FF40061124888 -:108AB000FCF79EFE3046FFF7C5F8082101EB451193 -:108AC000C9B241F00700FFF7B3F814F8010BFFF744 -:108AD000AFF814F8010BFFF7ABF814F8010BFFF730 -:108AE000A7F814F8010BFFF7A3F80122D1020248FE -:108AF000FCF77EFE70BD0000001002402DE9F04141 -:108B000007460C46154600224FF400610C48FCF75E -:108B10006FFE3846FFF796F80420FFF789F8002625 -:108B200005E014F8010BFFF783F8701C86B2AE4223 -:108B3000F7DB0122D1020248FCF75AFEBDE8F081C2 -:108B4000001002400FB4054B10B503A9044A029867 -:108B500000F028F910BC5DF814FB0000A5AE000879 -:108B6000E02500200FB4084B10B504A902AA039811 -:108B700000F018F9044602A9002000F0A1FC2046EC -:108B800010BC5DF814FB0000C19400087CB50C001B -:108B90001D461646014601D0601E00E00020CDE9CA -:108BA0000010064B6A462946304600F0FBF8002CC0 -:108BB00002D0009A002111707CBD0000AB94000827 -:108BC00002480068C0F30220704700000CED00E08E -:108BD00010B5002804DB0A07130E054A135406E0FB -:108BE0000A07140E034A00F00F031B1FD45410BDD4 -:108BF00000E400E018ED00E000487047E4250020A4 -:108C000002E008C8121F08C1002AFAD17047704755 -:108C1000002001E001C1121F002AFBD170470000B3 -:108C20002DE9FF5F82B00021DDE90430020DDDF89F -:108C300040B0034318D044F61050A2F2FF32424332 -:108C40001514119801281FD0A5EB0B00401C5FEAFA -:108C5000000A4FF000064E4FDFF83891B0465046FC -:108C600015D5CAF1000413E0119801244AA3012884 -:108C700001D16FEA0B010298119AC0E90031C0E9F5 -:108C8000024206B0BDE8F09FCBF10000DFE70446EA -:108C90000021404A491842EB0450CDE9001012E08F -:108CA000E00707D032463B4640464946FBF70CFEFC -:108CB0008046894632463B4610461946FBF704FE7D -:108CC00006460F466410002CEAD1DDE90401DDE917 -:108CD0000023BAF1000F06DAFBF7F6FD42464B46D9 -:108CE000FBF7F2FD05E0FBF7C0FB42464B46FBF706 -:108CF000BCFB04460E460022284BFBF76FFE03D850 -:108D00004FF0FF30014607E00022254B2046314658 -:108D1000FBF733FDFBF74AFE102409E0002C0ADBC9 -:108D20000A220023FBF74EFA039B30321A55641EC9 -:108D300050EA0102F2D1641C039AC4F111031444F5 -:108D4000119A012A03D0012208430DD10AE00843F9 -:108D500004D000204FF0110B119072E7A3EB0B052C -:108D60006D1E0DE05B4504DD4FF0000205F10105CD -:108D700004E003DA4FF00002A5F10105002AECD06F -:108D800002981199C0E90231C0E9004579E7000075 -:108D9000000014400000F03F300000000000F043ED -:108DA0000000E03F2DE9FF4F95B09A468846064601 -:108DB0000025EEE1252877D100242746F94A012134 -:108DC000039400E0044316F8013F203B01FA03F04E -:108DD0001042F7D130782A2811D06FF02F03307865 -:108DE000A0F13002092A16D8039A44F0020402EBDB -:108DF000820203EB42021044761C0390EFE758F81E -:108E0000042B0392002A03DA504244F400540390E6 -:108E100044F00204761C30782E2816D116F8010F83 -:108E200044F004042A280DD06FF02F023078A0F10E -:108E30003003092B09D807EB870302EB4303C7185C -:108E4000761CF3E758F8047B761C30786C280FD03A -:108E500006DC4C2817D068280DD06A2814D104E00D -:108E6000742810D07A280FD10DE044F400140AE0E1 -:108E700044F4801401E044F440147278824202D138 -:108E800004F58014761C761C307866280BD013DC31 -:108E9000582877D009DC002875D04528F6D0462818 -:108EA000F4D047281AD193E118E0632835D064281C -:108EB00079D0652812D18BE1702873D008DC67283F -:108EC000F1D069286FD06E280DD06F2806D1ACE0A4 -:108ED00073282CD0752874D0782853D0524617990F -:108EE00090476D1C54E1C4F30250022809D00328B6 -:108EF0000DD0D8F8001004280DD00D6008F104083A -:108F000046E1D8F80010EA17C1E90052F6E7D8F8B0 -:108F100000100D80F2E70D70F0E718F8041B8DF8D3 -:108F2000001000208DF80100EB46012003E058F806 -:108F300004BB4FF0FF3061074FF0000102D40DE099 -:108F400009F101018946B9420FDA8145F8DB1BF8C6 -:108F500009100029F4D108E009F101018946814294 -:108F6000FADB1BF809100029F6D103985346A0EB51 -:108F7000090721463846179A00F080FA284400EB8A -:108F8000090507E044E008E10DE01BF8010B52463B -:108F900017999047B9F10109F7D25346214638464F -:108FA000179AF2E039E00A21C4F302524FF0000BA5 -:108FB0000091022A06D058F8040BC117032A09D0E1 -:108FC0000AE023E008F1070020F00702F2E80201BE -:108FD000904605E000B2C117042A01D140B2C11782 -:108FE000002906DA0A460021404261EB02012D22E7 -:108FF00002E0220504D52B228DF80420012203E093 -:10900000E20701D02022F7E7914657E00A2100E06D -:1090100010214FF0000B00910BE010214FF0000BDE -:1090200044F004040827009103E008204FF0000BEF -:109030000090C4F30252022A05D058F8040B002114 -:10904000032A08D008E008F1070020F00702F2E840 -:109050000201904603E080B2042A00D1C0B24FF072 -:10906000000922072AD53278702A07D0DDF800C01F -:109070008CF0100C5CEA0B0C05D00EE040228DF851 -:109080000420012208E050EA010306D030238DF8C5 -:1090900004308DF8052002229146009B83F00803DE -:1090A00053EA0B030AD150EA010201D1620705D548 -:1090B00030228DF804204FF001097F1E3278582AA3 -:1090C00004D039A20C920CAA02920BE03BA2F9E761 -:1090D0005B46009AFBF776F80C9B9B5C029A521E4B -:1090E0000292137050EA0102F2D1029804A9081A00 -:1090F00000F1200B600702D524F4803400E0012742 -:109100005F4502DDA7EB0B0000E0002000EB0B0148 -:10911000009003984944401A0390E00306D4534654 -:109120002146179A039800F0A9F90544002706E0A4 -:1091300001A85246C05D179990476D1C7F1C4F4592 -:10914000F6DBE0030CD553462146179A039800F04E -:1091500095F9054404E030205246179990476D1C5C -:109160000099481E00900029F5DC08E00298029959 -:1091700052460078491C0291179990476D1CBBF12B -:109180000001ABF1010BF1DC5BE100F065F9054496 -:10919000761C307800287FF40DAE19B02846BDE863 -:1091A000F08F000009280100303132333435363772 -:1091B0003839616263646566000000003031323323 -:1091C00034353637383941424344454600000000C3 -:1091D000600700D4062708F1070020F00700F0E838 -:1091E0000223804603F0004C5FEA0C0001D097A0F8 -:1091F00009E0200501D596A005E0E00701D095A083 -:1092000001E0AFF24C001390307823F00043652862 -:109210000CD006DC452809D046281DD047287FD130 -:109220003BE0662818D067287AD136E00021112F5C -:1092300001DB112000E0781CCDE9000104A90CA895 -:10924000FFF7EEFCDDE90D010C9A4FF0000B07F182 -:109250000109109200914EE04FF000400097CDE9D7 -:10926000011004A90CA8FFF7DBFCDDE90D020C9B43 -:109270000F994FF0000B91461093009211B9791C91 -:1092800000EB0109B7EB090003D4C0F1FF3B07F184 -:109290000109A9EB0700019042E0012F00DA012744 -:1092A0000021112F01DD112000E03846CDE9000139 -:1092B00004A90CA8FFF7B4FCDDE90D010C9A00919C -:1092C0004FF0000BB946109221070FD4009A4A457F -:1092D00003DA914601E0A9F10109B9F1010F05DDB9 -:1092E000109AA9F10101515C3029F4D0B84202DA98 -:1092F00010F1040F03DA0121CDE9011010E000287C -:1093000003DC8344A9EB000102E0411C494500DD78 -:109310008946A0EB0B00401C01904FF000400290EA -:10932000200705D40198484502DB4FF0FF3001903B -:1093300000208DF84B0002980DF14B07B0F1004F63 -:1093400025D002200C902B200D90029800280CDADA -:10935000404202902D200D9007E00A210298FBF771 -:1093600000F93031029007F8011D0C99481E0C904D -:109370000029F2DC02980028EFD1791E0D980870C0 -:10938000307800F0200040F0450007F8020D11A8E9 -:10939000C01BC01D02901398007800B1012000EBA3 -:1093A0000901019801EBE071029801440398401A09 -:1093B000401E0390E00306D453462146179A0398B3 -:1093C00000F05CF805441398007818B152461799DC -:1093D00090476D1CE00323D553462146179A039806 -:1093E00000F04CF805441BE0BBF1000F07DB0098D0 -:1093F000584504DD1098179910F80B0001E01799F3 -:1094000030205246904701980BF1010B401E05F1A8 -:109410000105019004D12E205246179990476D1CEA -:10942000B9F10001A9F10109DEDC05E017F8010B33 -:109430005246179990476D1C0299481E02900029C8 -:10944000F4DC53462146179A03989EE62D0000004F -:109450002B000000200000002DE9F041044600250B -:109460001E461746880404D405E039462020B0473C -:109470006D1C641EF9D52846BDE8F0812DE9F04148 -:10948000044600251E469046C80301D5302700E05B -:109490002027880404D505E041463846B0476D1CB6 -:1094A000641EF9D52846BDE8F0814A68002A06D036 -:1094B0000A68531C0B6010704868401E4860704773 -:1094C0000A68531C0B601070704770B505460E4655 -:1094D000052E13D2DFE806F00306090C0F004FF447 -:1094E00096540EE04FF416540BE04FF4964408E007 -:1094F0004FF4614405E04FF4E13402E04FF4E1340D -:1095000000BF00BF686830B16868406B18B1686818 -:109510002146426B904770BD70B500200AE00022E2 -:1095200000EBC00404EB00142A4D05EB0414628028 -:10953000421C90B20428F2DB002047E000EB40021E -:1095400002EBC004244A12F82420012A3CD100EB8B -:10955000400404EBC005204C04EB8504617800EB6B -:10956000400404EBC0051C4C04EB8504E37801EBDC -:10957000C10404EB0114174D05EB0414241D01EB89 -:10958000C10505EB0115134E06EB05156D8805EBBE -:10959000450504EB85020024146054609460137048 -:1095A00090700124547001EBC10404EB01143546A2 -:1095B00005EB04146488641C01EBC10505EB01157F -:1095C00006EB05156C8000BF421C90B22028B5DB6D -:1095D00070BD0000801F00206C06002010B5002424 -:1095E00015E00E4850F8240004EB44010C4A02EB4D -:1095F000810148600B4804EB440102EB8101886063 -:10960000042004EB440102F82100601CC4B2042CC5 -:10961000E7DBFFF781FF00F007F810BD180C002012 -:10962000280C0020CB94000838B515480422694660 -:1096300043684FF45040984700241EE01DF8040092 -:10964000FF2806D1042004EB44010E4A02F8210051 -:1096500006E01DF8040004EB44010A4A02F8210068 -:1096600004EB4402074B13F8221004EB440203EB13 -:109670008200FFF72AFF601CC4B2042CDEDB38BD79 -:10968000940E0020280C00201CB5002008E000EB00 -:109690004001124A12F8211001AA1154411CC8B20B -:1096A0000428F4DB0E480422694643684FF4504016 -:1096B00098470422694601A8FAF7FAFD00B91CBDD3 -:1096C0004FF45044204607F007FA0548042201A948 -:1096D00083682046984700BFF1E70000280C00206F -:1096E000940E002010B5284908688047274908686B -:1096F00080472748816B88472648816B88472648E2 -:10970000816B88472548816B88472548816B88474E -:109710002449086B80472449086980472349C86861 -:1097200080472348D0F8841188472148D0F8141383 -:1097300000F5C87088471E48D0F8A41400F548709A -:1097400088471B48D0F8341600F5966088471949B9 -:109750008868804718494868804718498868804762 -:109760001749086880471749D1F8540B80471649B4 -:10977000086B804715498868804715481549C268B5 -:109780000820904710BD00006C0C0020940E0020B3 -:10979000F00C0020440D0020980D0020EC0D00205E -:1097A000400E0020C41E0020681F0020C02500209D -:1097B000801F0020A80E0020301F0020081F00205E -:1097C000640C0020A8000020280C00200C0C0020B5 -:1097D0008C0000202C00002010B524480068408830 -:1097E00040B123490869804722480121C26803200B -:1097F000904707E01E49486980471E480021C2681B -:109800000320904719480068807800F0010028B1D3 -:1098100018480121C2680020904704E01548002143 -:10982000C2680846904711480068807800F002003E -:1098300028B110480121C2680846904704E00D484D -:109840000021C2680120904708480068408800F461 -:10985000004028B107480121C2680220904704E077 -:1098600004480021C2680220904710BD080C002067 -:10987000081F0020301F002010B500F001F810BDB7 -:1098800070B500205C49096808705B490968487038 -:109890004FF4B86158480068001DFAF7DDFC002459 -:1098A000A5E0012604EB440000EBC4015248006827 -:1098B00000F2C45010F8210001287DD14E48006804 -:1098C0004078401C4C4909684870002548E004EB8A -:1098D000440202EBC403484A126802F2C45202EB8B -:1098E000830202F10E01C5EBC50202EB0513424AE9 -:1098F0001268121D02EB4302101D0A22FAF7D8FC6F -:1099000060BBC5EBC50000EB05113B480068001DBE -:1099100000EB41000E30C5EBC50101EB05133649E4 -:109920000968091D01EB4301C9784454C5EBC50022 -:1099300000EB051130480068001D00EB4100C078C5 -:10994000401CC1B2C5EBC50000EB05122A480068F7 -:10995000001D00EB4200C170002603E0681C85B2C8 -:10996000202DB4DB00BF3EB3234800680078C0EB75 -:10997000C00101EB001120480068001D00EB41010F -:1099800004EB440000EBC4021B48006800F2C45022 -:1099900000EB820050F80E2F4A6042688A6000890E -:1099A0008881154800680078C0EBC00202EB001205 -:1099B00011480068001D00E017E000EB42008473CE -:1099C00001210D4800680078C0EBC00202EB0012D4 -:1099D00009480068001D00EB4200C170064800689D -:1099E0000078401C044909680870601C84B2202C6F -:1099F000FFF657AF70BD0000080C00202DE9F84FAE -:109A000000241FE00021C4EBC40000EB0412A648B0 -:109A10000068001D00F81210C4EBC40000EB041233 -:109A2000A1480068001D00EB42004170C4EBC40077 -:109A300000EB04129C480068001D00EB420081709E -:109A4000601C84B2984800680078A042DADC0020EC -:109A500095490968488000241BE14FF0000809E19E -:109A6000C4EBC40000EB04118F480068001D00EB3C -:109A700041000E3010F8086006EB460000EBC6010E -:109A80008948006800F2C45010F82100012800D075 -:109A9000ECE006EB460000EBC6018348006800F2EC -:109AA000C45000EB810090F82A0000B1DEE00025F0 -:109AB00062E006EB460000EBC6017B48006800F25E -:109AC000C45000EB8100183030F82570774800EB67 -:109AD000C60030F8159006EB460000EBC601724850 -:109AE000006800F2C45000EB8100183000EB8500E4 -:109AF000B0F802A007F0010050B109F0010038B938 -:109B0000EAB2F1B2E0B20123CDF800A005F0A2F86C -:109B100007F0020050B109F0020038B90020EAB2A3 -:109B2000F1B20090E0B2022305F094F807F400408F -:109B3000D8B109F40040C0B9002D0DDD06EB460098 -:109B400000EBC6015848006800F2C45000EB8100E9 -:109B5000008B00F4004040B90020EAB2F1B200905E -:109B6000E0B24FF4004305F075F8504800EBC60032 -:109B700020F81570681C85B2022D9ADB002571E073 -:109B800006EB460101EBC6024749096801F2C451E0 -:109B900001EB8201183131F8250000F40041F1B1E8 -:109BA000C4EBC40101EB04123F490968091D01EB34 -:109BB00042018978491CCAB2C4EBC40101EB041309 -:109BC00039490968091D01EB43018A703649096862 -:109BD000498841F40041344A1268518044E000F061 -:109BE0000201F1B1C4EBC40101EB04122E49096872 -:109BF000091D01EB42014978491CCAB2C4EBC401FA -:109C000001EB041328490968091D01EB43014A705F -:109C100025490968498841F00201234A12685180A8 -:109C20001EE000F00101D9B1C4EBC40101EB041244 -:109C30001D490968091D11F81210491CCAB2C4EB6C -:109C4000C40101EB041318490968091D01F8132028 -:109C500015490968498841F00101134A1268518089 -:109C6000681C85B2022D8BDB00BF00BF08F101002C -:109C70001FFA80F8C4EBC40000EB04110A48006826 -:109C8000001D00EB4100C07840453FF7E9AE601C85 -:109C900084B2054800680078A0423FF7DEAEFFF7C7 -:109CA0009BFDBDE8F88F0000080C0020CC2B0020A5 -:109CB00010B503490869804706F04EFE10BD00004C -:109CC0008C000020034A12689080024A126891605A -:109CD00070470000A400002010B51A480068806892 -:109CE00000B910BD002425E016480068806804EB28 -:109CF000440110F82100D0B1002012490968896898 -:109D000004EB440201F822000E480068806804EB6E -:109D1000440100EB8100806800B909E00949096845 -:109D2000896804EB440201EB82018868804700BF28 -:109D3000601C84B2034800688088A042D4DC00BF65 -:109D4000CFE70000A400002010B501462F4A12689A -:109D50001288521C2D4B1B681A802C4A12681288DC -:109D6000B2F57A7F06DB294A12685288521C274BCB -:109D70001B685A80254A1268926802B910BD0020FB -:109D80003CE0224A1268926800EB400302EB830237 -:109D900052888AB31D4A1268926800EB400302EBB6 -:109DA00083025288521E194B1B689B6800EB4004CB -:109DB00003EB84035A80154A1268926800EB400353 -:109DC00002EB83025288BAB90122104B1B689B68D0 -:109DD00000EB400403F824200C4A1268926800EB60 -:109DE000400302EB83029288084B1B689B6800EBE0 -:109DF000400403EB84035A80421C90B2034A126869 -:109E000092888242BDDC00BFB8E70000A4000020B9 -:109E100000B585B010200090002001900290022033 -:109E2000039069460248FBF7D7FB05B000BD000070 -:109E3000000C024000B585B0102000900120019078 -:109E4000002002900220039069460248FBF7C4FB01 -:109E500005B000BD000C024010B5012220212148B0 -:109E6000FBF7C6FC002208211E48FBF7C1FC00F0EE -:109E70009FF81D4800680088632818DC1A480068AD -:109E800080780C2813DC18480068C0781F280EDC86 -:109E9000154800680079172809DC134800684079E4 -:109EA0003B2804DC1048006880793B2818DD1A2024 -:109EB0000D490968088001200B49096888700A4922 -:109EC0000968C870002008490968087106490968CE -:109ED00048710549096888710348006800F006F870 -:109EE00010BD0000000C0240BC0E002070B50446FE -:109EF0002E4800680088632818DC2C4800688078A9 -:109F00000C2813DC29480068C0781F280EDC27487D -:109F100000680079172809DC2448006840793B284C -:109F200004DC2248006880793B2801DD002070BDF8 -:109F300000218E2000F00AFA8021084600F006FA7F -:109F40002078FDF70FFB054629468C2000F0FEF92E -:109F5000A078FDF707FB05462946882000F0F6F9B2 -:109F6000E078FDF7FFFA05462946862000F0EEF975 -:109F70002079FDF7F7FA05462946842000F0E6F936 -:109F80006079FDF7EFFA05462946822000F0DEF9F8 -:109F9000A079FDF7E7FA05462946802000F0D6F9BA -:109FA00080218E2000F0D2F90120C0E7BC0E0020F5 -:109FB00010B58C2000F08AF804462046E21704EB26 -:109FC00012721211A4EB02122146E31704EB137371 -:109FD0001B1103EB830302EB43023B4B1B681A800C -:109FE000882000F073F804462046E21704EB127252 -:109FF0001211A4EB02122146E31704EB13731B1199 -:10A0000003EB830302EB43022F4B1B689A708620FD -:10A0100000F05CF804462046E21704EB12721211BD -:10A02000A4EB02122146E31704EB13731B1103EB9D -:10A03000830302EB4302244B1B68DA70842000F098 -:10A0400045F804462046E21704EB12721211A4EB05 -:10A0500002122146E31704EB13731B1103EB830376 -:10A0600002EB4302184B1B681A71822000F02EF895 -:10A0700004462046E21704EB12721211A4EB0212FE -:10A080002146E31704EB13731B1103EB830302EB6D -:10A0900043020D4B1B685A71802000F017F80446EC -:10A0A0002046E21704EB12721211A4EB02122146B1 -:10A0B000E31704EB13731B1103EB830302EB43025F -:10A0C000014B1B689A7110BDBC0E002070B505468F -:10A0D000012220219C48FBF78BFB00BF00BF00BF83 -:10A0E00000BF00BF00BF00BF00BF00BF00BF00BF78 -:10A0F00000BF00BF00BF00BF00BF00BF00BF00BF68 -:10A1000000BF00BF00BF00BF00BF00BF00BF00BF57 -:10A1100000BF00BF00BF45F00105002474E005F05A -:10A12000010028B1012210218748FBF761FB04E000 -:10A13000002210218448FBF75BFB00BF00BF00BF7B -:10A1400000BF00BF00BF00BF00BF00BF00BF00BF17 -:10A1500000BF00BF00BF00BF00BF00BF00BF00BF07 -:10A1600000BF00BF00BF00BF00BF00BF00BF00BFF7 -:10A1700000BF00BF00BF012208217348FBF738FB76 -:10A1800000BF00BF00BF00BF00BF00BF00BF00BFD7 -:10A1900000BF00BF00BF00BF00BF00BF00BF00BFC7 -:10A1A00000BF00BF00BF00BF00BF00BF00BF00BFB7 -:10A1B00000BF00BF00BF00BF00BF00BF00220821DA -:10A1C0006148FBF715FB00BF00BF00BF00BF00BF29 -:10A1D00000BF00BF00BF00BF00BF00BF00BF00BF87 -:10A1E00000BF00BF00BF00BF00BF00BF00BF00BF77 -:10A1F00000BF00BF00BF00BF00BF00BF00BF00BF67 -:10A2000000BF6D10601CC4B2082C88DBFFF700FE95 -:10A21000002470E0761010214B48FBF7D7FA10B1FC -:10A2200046F0800601E006F07F0600BF00BF00BFD9 -:10A2300000BF00BF00BF00BF00BF00BF00BF00BF26 -:10A2400000BF00BF00BF00BF00BF00BF00BF00BF16 -:10A2500000BF00BF00BF00BF00BF00BF00BF00BF06 -:10A2600000BF00BF00BF012208213748FBF7C0FA3A -:10A2700000BF00BF00BF00BF00BF00BF00BF00BFE6 -:10A2800000BF00BF00BF00BF00BF00BF00BF00BFD6 -:10A2900000BF00BF00BF00BF00BF00BF00BF00BFC6 -:10A2A00000BF00BF00BF00BF00BF00BF00220821E9 -:10A2B0002548FBF79DFA00BF00BF00BF00BF00BFED -:10A2C00000BF00BF00BF00BF00BF00BF00BF00BF96 -:10A2D00000BF00BF00BF00BF00BF00BF00BF00BF86 -:10A2E00000BF00BF00BF00BF00BF00BF00BF00BF76 -:10A2F00000BF601CC4B2082C8CDB00222021124855 -:10A30000FBF776FA00BF00BF00BF00BF00BF00BF71 -:10A3100000BF00BF00BF00BF00BF00BF00BF00BF45 -:10A3200000BF00BF00BF00BF00BF00BF00BF00BF35 -:10A3300000BF00BF00BF00BF00BF00BF00BF00BF25 -:10A34000FFF778FD304670BD000C024070B5054641 -:10A350000E46012220219C48FBF74AFA00BF00BFAD -:10A3600000BF00BF00BF00BF00BF00BF00BF00BFF5 -:10A3700000BF00BF00BF00BF00BF00BF00BF00BFE5 -:10A3800000BF00BF00BF00BF00BF00BF00BF00BFD5 -:10A3900000BF00BF00BF00BF05F0FE05002474E051 -:10A3A00005F0010028B1012210218748FBF720FAAF -:10A3B00004E0002210218448FBF71AFA00BF00BF16 -:10A3C00000BF00BF00BF00BF00BF00BF00BF00BF95 -:10A3D00000BF00BF00BF00BF00BF00BF00BF00BF85 -:10A3E00000BF00BF00BF00BF00BF00BF00BF00BF75 -:10A3F00000BF00BF00BF00BF012208217248FBF769 -:10A40000F7F900BF00BF00BF00BF00BF00BF00BF23 -:10A4100000BF00BF00BF00BF00BF00BF00BF00BF44 -:10A4200000BF00BF00BF00BF00BF00BF00BF00BF34 -:10A4300000BF00BF00BF00BF00BF00BF00BF0022C1 -:10A4400008216148FBF7D4F900BF00BF00BF00BF7F -:10A4500000BF00BF00BF00BF00BF00BF00BF00BF04 -:10A4600000BF00BF00BF00BF00BF00BF00BF00BFF4 -:10A4700000BF00BF00BF00BF00BF00BF00BF00BFE4 -:10A4800000BF00BF6D10601CC4B2082C88DB002424 -:10A4900074E006F0010028B1012210214A48FBF7C0 -:10A4A000A7F904E0002210214748FBF7A1F900BFFB -:10A4B00000BF00BF00BF00BF00BF00BF00BF00BFA4 -:10A4C00000BF00BF00BF00BF00BF00BF00BF00BF94 -:10A4D00000BF00BF00BF00BF00BF00BF00BF00BF84 -:10A4E00000BF00BF00BF00BF00BF012208213648E7 -:10A4F000FBF77EF900BF00BF00BF00BF00BF00BF79 -:10A5000000BF00BF00BF00BF00BF00BF00BF00BF53 -:10A5100000BF00BF00BF00BF00BF00BF00BF00BF43 -:10A5200000BF00BF00BF00BF00BF00BF00BF00BF33 -:10A53000002208212448FBF75BF900BF00BF00BFE1 -:10A5400000BF00BF00BF00BF00BF00BF00BF00BF13 -:10A5500000BF00BF00BF00BF00BF00BF00BF00BF03 -:10A5600000BF00BF00BF00BF00BF00BF00BF00BFF3 -:10A5700000BF00BF00BF7610601CC4B2082C88DB8F -:10A58000002220211048FBF733F900BF00BF00BFB5 -:10A5900000BF00BF00BF00BF00BF00BF00BF00BFC3 -:10A5A00000BF00BF00BF00BF00BF00BF00BF00BFB3 -:10A5B00000BF00BF00BF00BF00BF00BF00BF00BFA3 -:10A5C00000BF00BF00BF70BD000C024010B5FEF719 -:10A5D000DDF8FEF7EFF8FAF735FD002417E004EB9D -:10A5E000440101EB44220B490968143101EBC2001C -:10A5F00000F00AF9002104EB440000EB4422054876 -:10A600000068143000EBC2000174601CC4B2012C5D -:10A61000E5DB10BD041F002070B500BF1720FDF75B -:10A6200083FA06460A20FAF7C3FF0024E0E001207F -:10A63000A040304000287CD004EB440101EB4422D0 -:10A6400070490968143111F832000221FDF790FABF -:10A65000054604EB440101EB44226A4909681431C0 -:10A6600011F832002A460221FEF7DAF905F001005E -:10A67000A8B104EB440000EB4421624800681430A8 -:10A6800000EBC100007C40F0020104EB440000EB51 -:10A6900044225C480068143000EBC200017405F0ED -:10A6A000020010B304EB440101EB44225549096850 -:10A6B000143111F8320010220121FEF7B1F904EB38 -:10A6C000440101EB44224F490968143101EBC200F7 -:10A6D00000F09AF8002104EB440000EB44224948C2 -:10A6E0000068143000EBC200017405F01000A8B13E -:10A6F00004EB440000EB442142480068143000EBB6 -:10A70000C100407C40F0020104EB440000EB442215 -:10A710003C480068143000EBC200417405F00400AE -:10A72000B8B104EB440000EB442136480068143013 -:10A7300000E04FE000EBC100407C40F0010104EB81 -:10A74000440000EB44222F480068143000EBC200A4 -:10A75000417405F00800E8B304EB440101EB442226 -:10A7600028490968143111F832002A460221FEF7FF -:10A7700057F904EB440101EB4422224909681431E2 -:10A7800011F8320010220121FEF74AF90A20FAF7E7 -:10A790000FFF04EB440101EB44221A49096814310C -:10A7A00001EBC20000F030F804EB440101EB44225D -:10A7B00014490968143101EBC20000F043F800218C -:10A7C00004EB440000EB44220E480068143000EB18 -:10A7D000C20000E00AE0017404EB440000EB4422F4 -:10A7E00008480068143000EBC2004174601CC4B219 -:10A7F000012CFFF61CAF1720FDF796F900B10DE70D -:10A8000070BD0000041F002010B50446207840F2FF -:10A81000B4521221FEF724F9A178637841EA0322A9 -:10A8200020780421FEF71CF9237AE17943EA01221A -:10A8300020781021FEF714F92078E21C0C21FEF795 -:10A840002FF910BD10B50446207C68BBE07B20B119 -:10A85000012811D0022825D119E02078FDF71AFB34 -:10A86000FF2806D1012020742078022106F0E6F9A5 -:10A8700001E00020207416E02078FDF7E8FAFF28B8 -:10A8800002D10120207401E0002020740BE0207828 -:10A89000FDF733FBFF2802D10320207401E00020E4 -:10A8A000207400E000BF00BF10BD000070B50024A0 -:10A8B0000CE004EB440101EB44223B4909681431EC -:10A8C00001EBC200FFF7BEFF601CC4B2012CF0DB3D -:10A8D000FFF7A2FE002464E004EB440000EB4421F7 -:10A8E00031480068143000EBC100407C00F00100EA -:10A8F000002854D004EB440000EB44212A480068AF -:10A90000143000EBC100407C20F0010104EB440056 -:10A9100000EB442224480068143000EBC20041746C -:10A9200004EB440000EB44221F480068143000EBA5 -:10A93000C20000F112010020FDF75CF8054604EBAF -:10A94000440000EB442118480068143000EBC100BB -:10A9500000F58050406908B304EB440101EB442644 -:10A9600011490968143101EBC60204EB440101EB03 -:10A9700044260D490968143101EBC60101F11200AA -:10A9800004EB440101EB442607490968143101EB4B -:10A99000C60101F580514B692946984700BF601CEC -:10A9A000C4B2012C98DB70BD041F002010B5024812 -:10A9B000FAF75BFF10BD0000E825002010B5054840 -:10A9C000806840F4805003498860034948688047A4 -:10A9D00010BD0000002004E06C0C002010B50648FB -:10A9E00000684068007830B1002003490968496870 -:10A9F000087000F043F810BD281F002010B507486C -:10AA0000006840680078012806D0012003490968E1 -:10AA10004968087000F032F810BD0000281F0020BF -:10AA200070B513480122134943684FF460409847BA -:10AA3000104C0125002006E0215CFF2901D00025F3 -:10AA400003E0411CC8B20028F6D000BF25B10020A9 -:10AA50000849087000F012F806480078012805D16E -:10AA600004480078044909684968087070BD00000E -:10AA7000940E00202C1F0020281F002010B54FF43A -:10AA8000604006F029F804480122044983684FF425 -:10AA90006040984710BD0000940E00202C1F00203D -:10AAA00010B5002210210548FAF7A2FE0448054916 -:10AAB00009684860FFF7B4FF10BD000000040240C1 -:10AAC0002C1F0020281F0020002002490968087060 -:10AAD00070470000281F0020012002490968087003 -:10AAE00070470000281F002010B50E48006840681D -:10AAF000007828B9002210210B48FAF779FE0FE000 -:10AB0000084800680078012805D101221021064874 -:10AB1000FAF76EFE04E0002210210348FAF768FEFF -:10AB200010BD0000281F00200004024010B50024C2 -:10AB300009E0322000F0B0F94FF480510348FAF7F1 -:10AB40004DFE601CC4B2142CF3DB10BD00000240AB -:10AB500010B54FF480510248FAF740FE10BD0000D6 -:10AB60000000024010B500224FF480710A48FAF745 -:10AB70003FFE00224FF400710748FAF739FE002229 -:10AB80004FF480610448FAF733FE00222021034885 -:10AB9000FAF72EFE10BD0000001002400004024033 -:10ABA000042802DA014A126811547047401F00203D -:10ABB00010B5224800680078012805D10122010261 -:10ABC0001F48FAF715FE05E000224FF480711C487B -:10ABD000FAF70EFE194800684078012805D10122D5 -:10ABE00041021748FAF704FE05E000224FF4007115 -:10ABF0001348FAF7FDFD114800688078012805D157 -:10AC0000012281020E48FAF7F3FD05E000224FF41D -:10AC100080610B48FAF7ECFD08480068C07801280D -:10AC200005D1012220210748FAF7E2FD04E00022C5 -:10AC300020210448FAF7DCFD10BD0000401F002071 -:10AC4000001002400004024070B504460D466068E2 -:10AC500045606068FCF7FAF870BD70B504460E46B2 -:10AC600015460020A074A08BA84200DAA58B2A46C6 -:10AC700031466069F9F7D7FA32232A46616960687C -:10AC8000FCF7D0FB70BD10B5044660680068C06872 -:10AC900040F0100061680968C860E28BA1696068D3 -:10ACA000FBF718FE10BD70B504466068FBF78AFE1E -:10ACB000E08BE16809684968401A86B206B970BD40 -:10ACC000002506E0A2695119206805F0D8FD681C2E -:10ACD00085B2B542F6DB204600F040F8E28BA16970 -:10ACE0006068FBF7F7FD00BFE9E7000070B50446B8 -:10ACF000A08C618C884225DA2068808920842046D7 -:10AD000000F032F8208CE18B88421BDC208CC8B12B -:10AD1000208C802803D9206805F065FD12E000250D -:10AD200006E0094A5119206805F065FD681C85B2E6 -:10AD3000208CA842F5DCE06C20B1218C2246024830 -:10AD4000E36C984770BD00004C34002090F826203A -:10AD5000012A02D1428C0A4442847047012180F8C2 -:10AD60002610002141847047002180F8261041847C -:10AD700070472DE9F04104460F461646204600F084 -:10AD800023F8A08B96FBF0F01FFA80F8002507E06F -:10AD9000A28B02FB05712046FFF75FFF681C85B29E -:10ADA0004545F5DBA08B00FB156086B236B1A08B64 -:10ADB00000FB057132462046FFF74FFF204600F0AA -:10ADC00039F8BDE8F081000010B50446114884420E -:10ADD00005D1012211461048FAF70AFD19E00F4883 -:10ADE000844205D1012202210B48FAF701FD10E04F -:10ADF0000B48844205D1012204210748FAF7F8FCE8 -:10AE000007E00848844204D1012280210648FAF76D -:10AE1000EFFC10BDEC0D002000040240440D0020AA -:10AE2000980D0020400E0020001002400121817486 -:10AE30007047000010B504461148844205D1002235 -:10AE400001211048FAF7D4FC19E00F48844205D1DB -:10AE5000002202210B48FAF7CBFC10E00B48844299 -:10AE600005D1002204210748FAF7C2FC07E0084890 -:10AE7000844204D1002280210648FAF7B9FC10BDB3 -:10AE8000EC0D002000040240440D0020980D00202D -:10AE9000400E00200010024010B504462046FAF78C -:10AEA00087FB10BD38B504468DF8000069460320C5 -:10AEB000ABBE204638BD00000B4A128802F5FA628C -:10AEC00091B20A0A02704170074A92788270064A6B -:10AED000D278C270044A12790271034A52794271DF -:10AEE000014A927982717047A80E002002480068DA -:10AEF00000210160818070477C1F002010B5FFF7A2 -:10AF0000F5FF0449D1F85C0B80470349486B804743 -:10AF100010BD0000A8000020280C00202DE9F84FEB -:10AF200004460D469046052D01DABDE8F88F2078DD -:10AF3000AA2802D16078552800D0F6E7681E215C67 -:10AF4000A81E205C41EA002BA81E81B2204603F017 -:10AF5000E0FF0746381240EA072087B25F4500D07D -:10AF6000E3E7A678032E02D0102E00D0DDE794F898 -:10AF7000039094F804A0601D00902048C0F8008061 -:10AF8000A9F11000092836D2DFE800F0050B1117EF -:10AF90001D23292F300051463046009A02F096FEBC -:10AFA00029E051463046009A00F02AF823E0514645 -:10AFB0003046009A00F020FF1DE051463046009ACE -:10AFC00002F01AFE17E051463046009A02F08CFA61 -:10AFD00011E051463046009A03F0CEFB0BE051469B -:10AFE0003046009A01F06AFC05E004E05146304624 -:10AFF000009A03F07DFD00BF00BF96E7641F0020AC -:10B0000007B5A0B000201F904FF48051FE48F9F71B -:10B0100023F9002015901D901E9042E01E9800EB31 -:10B02000400101EBC001F94810F82100012800D0CF -:10B0300033E01E9800EB400101EBC001F34800EB48 -:10B04000810090F82A0000B127E0002019901FE04D -:10B050001E9800EB400101EBC001EC4800EB8100C1 -:10B060001830199930F821000C9048F203010C981F -:10B07000084048B11E98C1B20DAA159811541598F0 -:10B08000401CC0B2159006E01998401C80B219907F -:10B0900019980428DCDB00BF00BF1E98401C80B25A -:10B0A0001E901E982028B9DB1598C1170C9000EB54 -:10B0B0009170C0F3870017901598C1170C9000EBA2 -:10B0C000917081100C98A0EB8100C0B21690169878 -:10B0D000002803DD1798401CC0B21790CC49179880 -:10B0E00009688978491CCBA2CDE900210290C649A4 -:10B0F0001F9808440346002211460C900B2003F0D1 -:10B1000055FD1F99084480B21F90209803287DD1D7 -:10B110002198012802D0032879D1F3E3159800285B -:10B1200076D11E90B1E01E981C90BCA0B64900904C -:10B130001F9808440C901C98401C80B20B90012270 -:10B1400001460B200C9B03F031FD1F99084480B28F -:10B150001F90B2A0AC4900901F9808440C901C9816 -:10B16000401C80B20B90022201460B200C9B03F086 -:10B170001DFD1F99084480B21F90A8A0A24900900D -:10B180001F9808440C901C98401C80B20B9003221E -:10B1900001460B200C9B03F009FD1F99084480B267 -:10B1A0001F909EA0984900901F9808440C901C98EE -:10B1B000401C80B20B90042201460B200C9B03F034 -:10B1C000F5FC1F99084480B21F900020199055E0AB -:10B1D00092A08D4900901F9808440C90199800EB9C -:10B1E0004000401D80B20B901C98401C80B20A9019 -:10B1F00001460B20DDE90B2303F0D8FC1F9908441E -:10B2000080B21F9085A08049009002E0FEE3FEE33B -:10B2100040E01F9808440C90199800EB4000801DF6 -:10B2200080B20B901C98401C80B20A9001460B2003 -:10B23000DDE90B2303F0BAFC1F99084480B21F908C -:10B2400076A0714900901F9808440C90199800EB63 -:10B250004000C01D80B20B901C98401C80B20A9028 -:10B2600001460B20DDE90B2303F0A0FC1F990844E5 -:10B2700080B21F901998401C80B219901998042828 -:10B28000A6DB1E98401C80B21E901E980428FFF674 -:10B290004AAFF3E35E48006881781798401E814208 -:10B2A0007ED1169800287BDD00201D902BE25848A7 -:10B2B000006880781D9901EB800080B218900DA97C -:10B2C0001898085C1A901D981C9000201B901A98E2 -:10B2D00000EB400101EBC0014C4800EB81000E3057 -:10B2E0004FA1CDE9001048491F9808440B901B98C6 -:10B2F000401C0A901C98401C80B2099001460B200B -:10B30000DDE90A2303F052FC1F99084480B21F9024 -:10B3100001201B901A9800EB400101EBC0013B4853 -:10B3200000EB8100C0783FA1CDE9001036491F989D -:10B3300008440B901B98401C0A901C98401C80B23B -:10B34000099001460B20DDE90A2303F02FFC1F9929 -:10B35000084480B21F9002201B901A9800EB400115 -:10B3600001EBC001294800EB8100001D2CA1CDE9B3 -:10B37000001025491F9808440B901B98401C0A9008 -:10B380001C98401C80B2099001460B20DDE90A237D -:10B3900003F00CFC1F99084480B21F90032000E0CA -:10B3A000B7E11B9000200C90199016E01A9800EB62 -:10B3B000400101EBC001154800EB810018301999DC -:10B3C00030F8210000F4004018B14FF400400C9018 -:10B3D00006E01998401C80B2199019980428E5DB02 -:10B3E00000BF0C9800F4004078B30FA0064900900D -:10B3F0001F9808440B901B98401C80B20A901C9820 -:10B40000401C80B2099015E0CC3400206C0600206E -:10B410007C1F002025642F25640000000000000030 -:10B420002573000025640000CDA8D1B6D2ECB3A3EB -:10B430000000000001460B20DDE90A2303F0B6FB03 -:10B440001F99084480B21F9018E0FFE7FBA0FE4957 -:10B4500000901F9808440B901B98401C80B20A90E3 -:10B460001C98401C80B2099001460B20DDE90A239C -:10B4700003F09CFB1F99084480B21F900020199094 -:10B4800039E11A9800EB400101EBC001EF4800EBF5 -:10B4900081001830199930F821000B901A9800EBB0 -:10B4A000400101EBC001E94800EB81001830199917 -:10B4B00000EB810040880A90199800EB4000001DC5 -:10B4C00080B21B900C9800F40040C0B1E0A0DE49AF -:10B4D00000901F98084409901B98401C80B2089067 -:10B4E0001C98401C80B2079001460B20DDE9082320 -:10B4F00003F05CFB1F99084480B21F9034E00B9866 -:10B5000000F00100C0B1D3A0CF4900901F980844BB -:10B5100009901B98401C80B208901C98401C80B277 -:10B52000079001460B20DDE9082303F03FFB1F993C -:10B53000084480B21F9017E0C1A0C34900901F9833 -:10B54000084409901B98401C80B208901C98401C2D -:10B5500080B2079001460B20DDE9082303F026FBAB -:10B560001F99084480B21F90199800EB4000401DBD -:10B5700080B21B900C9800F40040C0B1B4A0B24956 -:10B5800000901F98084409901B98401C80B20890B6 -:10B590001C98401C80B2079001460B20DDE908236F -:10B5A00003F004FB1F99084480B21F9034E00B980D -:10B5B00000F00200C0B1A9A0A34900901F98084460 -:10B5C00009901B98401C80B208901C98401C80B2C7 -:10B5D000079001460B20DDE9082303F0E7FA1F99E5 -:10B5E000084480B21F9017E095A0974900901F98DB -:10B5F000084409901B98401C80B208901C98401C7D -:10B6000080B2079001460B20DDE9082303F0CEFA53 -:10B610001F99084480B21F90199800EB4000801DCC -:10B6200080B21B900C9800F40040C0B188A08649FD -:10B6300000901F98084409901B98401C80B2089005 -:10B640001C98401C80B2079001460B20DDE90823BE -:10B6500003F0ACFA1F99084480B21F9047E00B98A2 -:10B6600000F0010058B30A98F8F76EFF9FED7D0BCC -:10B6700053EC102BCDE906019DED060B51EC100BA0 -:10B68000F8F7F3FECDE90801CDE9020177A06E4994 -:10B6900000901F98084407901B98401C80B20690A9 -:10B6A0001C98401C80B2059001460B20DDE9062362 -:10B6B00003F07CFA1F99084480B21F9017E06DA038 -:10B6C000614900901F98084409901B98401C80B263 -:10B6D00008901C98401C80B2079001460B20DDE9C1 -:10B6E000082303F063FA1F99084480B21F90199849 -:10B6F000401C80B2199019980228FFF6C2AE1D981E -:10B70000401C80B21D9016991D988842FFF6CFAD5F -:10B710004CE200201D9045E25748006880781D9952 -:10B7200001EB800080B218900DA91898085C1A905F -:10B730001D981C9000201B901A9800EB400101EB13 -:10B74000C001424800EB81000E30AFF22C31CDE950 -:10B7500000103D491F9808440B901B98401C0A900C -:10B760001C98401C80B2099001460B20DDE90A2399 -:10B7700003F01CFA1F99084480B21F9001201B900F -:10B780001A9800EB400101EBC001304800EB81004A -:10B79000C078AFF27031CDE900102B491F980844F2 -:10B7A0000B901B98401C0A901C98401C80B209907A -:10B7B00001460B20DDE90A2303F0F8F91F9908443C -:10B7C00080B21F9002201B901A9800EB400101EB01 -:10B7D000C0011E4800EB8100001DAFF2BC31CDE975 -:10B7E000001019491F9808440B901B98401C0A90A0 -:10B7F0001C98401C80B2099001460B20DDE90A2309 -:10B8000003F0D4F91F99084480B21F9003201B90C5 -:10B8100000200C90199037E01A9800EB400101EBE2 -:10B82000C0010A4800EB81001830199930F8210056 -:10B8300000F4004020B34FF400401FE0CDA8D1B683 -:10B84000D5FDB3A300000000CC3400206C0600201E -:10B850002D000000C2A9D2BA00000000B6CFB4F893 -:10B86000000000000000000000005940252E326654 -:10B8700000000000300000007C1F00200C9006E05B -:10B880001998401C80B2199019980428C4DB00BF95 -:10B890000C9800F40040C8B1AFF27440FE4900902B -:10B8A0001F9808440B901B98401C80B20A901C986B -:10B8B000401C80B2099001460B20DDE90A2303F009 -:10B8C00075F91F99084480B21F9018E0AFF29400F8 -:10B8D000F14900901F9808440B901B98401C80B2BF -:10B8E0000A901C98401C80B2099001460B20DDE9AB -:10B8F0000A2303F05BF91F99084480B21F900020CF -:10B90000199047E112E21A9800EB400101EBC001E7 -:10B91000E24800EB81001830199930F821000B90B3 -:10B920001A9800EB400101EBC001DC4800EB8100FC -:10B930001830199900EB810040880A90199800EBA3 -:10B940004000001D80B21B900C9800F40040C8B16C -:10B95000AFF20410D04900901F98084409901B983A -:10B96000401C80B208901C98401C80B20790014691 -:10B970000B20DDE9082303F019F91F99084480B270 -:10B980001F9036E00B9800F00100C8B1AFF23C10F8 -:10B99000C14900901F98084409901B98401C80B230 -:10B9A00008901C98401C80B2079001460B20DDE9EE -:10B9B000082303F0FBF81F99084480B21F9018E099 -:10B9C000AFF28410B44900901F98084409901B9866 -:10B9D000401C80B208901C98401C80B20790014621 -:10B9E0000B20DDE9082303F0E1F81F99084480B239 -:10B9F0001F90199800EB4000401D80B21B900C98DE -:10BA000000F40040E0B1AFF2B81001E0C5E1B7E1E9 -:10BA1000A14900901F98084409901B98401C80B2CF -:10BA200008901C98401C80B2079001460B20DDE96D -:10BA3000082303F0BBF81F99084480B21F9037E039 -:10BA40000B9800F00200D0B1AFF2F01092490090D4 -:10BA50001F98084409901B98401C80B208901C98BD -:10BA6000401C80B2079001460B20DDE9082303F05B -:10BA70009DF81F99084480B21F9019E055E1AFF27C -:10BA80004020854900901F98084409901B98401C4D -:10BA900080B208901C98401C80B2079001460B2091 -:10BAA000DDE9082303F082F81F99084480B21F9053 -:10BAB000199800EB4000801D80B21B900C9800F498 -:10BAC0000040C8B1AFF27820734900901F98084435 -:10BAD00009901B98401C80B208901C98401C80B2B2 -:10BAE000079001460B20DDE9082303F05FF81F995A -:10BAF000084480B21F9049E00B9800F0010060B349 -:10BB00000A98F8F721FD1FEDA90B53EC102BCDE996 -:10BB100006019DED060B51EC100BF8F7A6FCCDE9E4 -:10BB20000801CDE90201AFF2BC205B4900901F98EB -:10BB3000084407901B98401C80B206901C98401C3B -:10BB400080B2059001460B20DDE9062303F02EF8B4 -:10BB50001F99084480B21F9018E0AFF2E8204E49C8 -:10BB600000901F98084409901B98401C80B20890D0 -:10BB70001C98401C80B2079001460B20DDE9082389 -:10BB800003F014F81F99084480B21F901998401CC4 -:10BB900080B2199019980228FFF6B5AE1D98401C86 -:10BBA00080B21D901D980428FFF6B6ADB9E01D982F -:10BBB0001C90AFF27030384900901F9808440C90E8 -:10BBC0001C98401C80B20B90012201460B200C9B5C -:10BBD00002F0ECFF1F99084480B21F90AFF29C3036 -:10BBE0002D4900901F9808440C901C98401C80B26E -:10BBF0000B90022201460B200C9B02F0D7FF1F99ED -:10BC0000084480B21F90AFF2C430234900901F98BF -:10BC100008440C901C98401C80B20B9003220146F3 -:10BC20000B200C9B02F0C2FF1F99084480B21F90AA -:10BC3000AFF2F030184900901F9808440C901C98FF -:10BC4000401C80B20B90042201460B200C9B02F09A -:10BC5000ADFF1F99084480B21F900020199059E051 -:10BC6000AFF220400C4900901F9808440C9019989E -:10BC700000EB4000401D80B20B901C98401C80B22D -:10BC80000A9001460B20DDE90B2302F08FFF1F997C -:10BC9000084480B21F9003E0CC3400206C060020E2 -:10BCA000AFF26040494900901F9808440C901998E1 -:10BCB00000EB4000801D80B20B901C98401C80B2AD -:10BCC0000A9001460B20DDE90B2302F06FFF1F995C -:10BCD000084480B21F90AFF294403C4900901F98F6 -:10BCE00008440C90199800EB4000C01D80B20B90E6 -:10BCF0001C98401C80B20A9001460B20DDE90B2302 -:10BD000002F054FF1F99084480B21F901998401CFC -:10BD100080B2199019980428A2DB1D98401C80B2AB -:10BD20001D901D980428FFF642AF2BE02298007862 -:10BD3000012813D11798401E25490968897888423F -:10BD400004DC002022490968887018E02048006857 -:10BD50008078401C1E490968887010E01C48006803 -:10BD6000807828B91798401E19490968887006E03C -:10BD7000174800688078401E15490968887000BF20 -:10BD800023B000BD00BF1148F8F77DFA80B21F90C4 -:10BD90000E481F9900F01EF815E02098102812D1C7 -:10BDA0002198012802D0022802D100E001E000E041 -:10BDB000E6E700BF0548F8F766FA80B21F9003482F -:10BDC0001F9900F007F800BFDAE70000CC3400202C -:10BDD0007C1F002070B504460D460648006838B147 -:10BDE000044800682A462146C36B02480068984709 -:10BDF00070BD0000641F002007B59CB000201A90A1 -:10BE000013904FF48051FA48F8F726FAF948006881 -:10BE100040781090F84801781098814201DC1FB0FA -:10BE200000BD1098C0EBC00101EB0011F248001DED -:10BE300000EB41000F900F98C078C1170E9000EBF7 -:10BE40009170801013900F98C078C1170E9000EB7E -:10BE5000917081100E98A0EB8100C0B212901298E0 -:10BE6000002803DD1398401CC0B21390E1491398D9 -:10BE70000968C978491CE1A2CDE900210290DC499A -:10BE80001A9808440346002211460E900C2002F036 -:10BE90008DFE1A99084480B21A901C98032877D115 -:10BEA0001D98012802D0032873D1FDE31E98007865 -:10BEB0000E900E98012802DB0E98042800DDAEE7F4 -:10BEC0000E98401ECB490968097800EB8100C0B28A -:10BED0001090C94801781098814200DC9FE7C5485E -:10BEE000006841781098814203D00020C149096858 -:10BEF000C870C0491098096848701098C0EBC0011C -:10BF000001EB0011BC48001D00EB41000F900F98A1 -:10BF1000C078C1170C9000EB9170801013900F98AF -:10BF2000C078C1170C9000EB917081100C98A0EBB9 -:10BF30008100C0B212901298002803DD1398401CB3 -:10BF4000C0B21390139808B901201390A948006853 -:10BF5000C0788006000E0D90A6480068C17813983E -:10BF6000401E814204D11298002801DD129800E0A1 -:10BF70000420119000201990E9E219990D980844C5 -:10BF800080B214900F98C1781498814202DCE3E2E9 -:10BF9000EDE3E0E30F980E301499405C1890199887 -:10BFA000169000201590189800EB400101EBC0019D -:10BFB000944800EB8100C07893A1CDE900108C4932 -:10BFC0001A9808440B901598401C0A901698401C2B -:10BFD00080B2099001460C20DDE90A2302F0E6FD5B -:10BFE0001A99084480B21A9001201590189800EB15 -:10BFF000400101EBC001834800EB8100001D84A1DA -:10C00000CDE900107A491A9808440B901598401C05 -:10C010000A901698401C80B2099001460C20DDE978 -:10C020000A2302F0C3FD1A99084480B21A90022034 -:10C03000159000200C90179015E0189800EB400127 -:10C0400001EBC0016F4800EB81001830179930F800 -:10C05000210000F4004010B101200C9006E0179878 -:10C06000401C80B2179017980428E6DB00BF189890 -:10C0700000EB400101EBC001624800EB810090F849 -:10C080002A0098BB0C98C0B162A0594900901A9838 -:10C0900008440B901598401C80B20A901698401CDA -:10C0A00080B2099001460C20DDE90A2302F07EFDF2 -:10C0B0001A99084480B21A9031E059A04C49009076 -:10C0C0001A9808440B901598401C80B20A90169854 -:10C0D000401C80B2099001460C20DDE90A2302F0E1 -:10C0E00065FD1A99084480B21A9018E0FFE74DA048 -:10C0F0003F4900901A9808440B901598401C80B254 -:10C100000A901698401C80B2099001460C20DDE987 -:10C110000A2302F04BFD1A99084480B21A900020BD -:10C120001790CDE1189800EB400101EBC0013548B4 -:10C1300000EB81001830179930F821000B90189807 -:10C1400000EB400101EBC0012E4800EB81001830EC -:10C15000179900EB810040880A90179800EB400087 -:10C16000C01C80B21590189800EB400101EBC00193 -:10C17000244800EB810090F82A00B8BB0C98C0B1AD -:10C180002AA01B4900901A98084409901598401C51 -:10C1900080B208901698401C80B2079001460C208F -:10C1A000DDE9082302F002FD1A99084480B21A90D2 -:10C1B00075E00B9800F00100C8B11DA00C4900907B -:10C1C0001A98084409901598401C80B20890169857 -:10C1D000401C80B2079001460C20DDE9082302F0E4 -:10C1E000E5FC1A99084480B21A9058E03EE023E03A -:10C1F000CC3400207C1F0020A800002025642F25BF -:10C20000640000006C06002049443A2564000000E8 -:10C2100025730000CDA8D1B6D2ECB3A30000000076 -:10C22000CDA8D1B6D5FDB3A3000000002D000000BD -:10C23000C2A9D2BA00000000AFF21800FE49009077 -:10C240001A98084409901598401C80B208901698D6 -:10C25000401C80B2079001460C20DDE9082302F063 -:10C26000A5FC1A99084480B21A9018E0AFF24C006D -:10C27000F14900901A98084409901598401C80B222 -:10C2800008901698401C80B2079001460C20DDE90A -:10C29000082302F08BFC1A99084480B21A90179870 -:10C2A00000EB4000001D80B21590189800EB400193 -:10C2B00001EBC001E14800EB810090F82A00C0BB0F -:10C2C0000C98C8B1AFF29C00DB4900901A98084462 -:10C2D00009901598401C80B208901698401C80B2B6 -:10C2E000079001460C20DDE9082302F05FFC1A9953 -:10C2F000084480B21A9050E00B9800F00200C8B1D8 -:10C30000CFA0CD4900901A98084409901598401C78 -:10C3100080B208901698401C80B2079001460C200D -:10C32000DDE9082302F042FC1A99084480B21A9011 -:10C3300033E019E0AFF21410BF4900901A98084496 -:10C3400009901598401C80B208901698401C80B245 -:10C35000079001460C20DDE9082302F027FC1A991A -:10C36000084480B21A9018E0AFF24810B249009029 -:10C370001A98084409901598401C80B208901698A5 -:10C38000401C80B2079001460C20DDE9082302F032 -:10C390000DFC1A99084480B21A90179800EB4000DF -:10C3A000401D80B21590189800EB400101EBC001D0 -:10C3B000A24800EB810090F82A00002864D10C9874 -:10C3C000C8B1AFF298109C4900901A98084409909F -:10C3D0001598401C80B208901698401C80B20790B7 -:10C3E00001460C20DDE9082302F0E0FB1A9908441D -:10C3F00080B21A9060E00B9800F0010058B30A98E0 -:10C40000F8F7A2F89FED900B53EC102BCDE9060145 -:10C410009DED060B51EC100BF8F727F8CDE908015C -:10C42000CDE902018AA0844900901A980844079037 -:10C430001598401C80B206901698401C80B205905A -:10C4400001460C20DDE9062302F0B0FB1A990844EE -:10C4500080B21A9030E080A0774900901A98084482 -:10C4600009901598401C80B208901698401C80B224 -:10C47000079001460C20DDE9082302F097FB1A998A -:10C48000084480B21A9017E073A06B4900901A9884 -:10C49000084409901598401C80B208901698401CDA -:10C4A00080B2079001460C20DDE9082302F07EFBF4 -:10C4B0001A99084480B21A901798401C80B21790BD -:10C4C00017980228FFF62EAE0F201590189800EB53 -:10C4D000400101EBC001594800EB810090F82A00AF -:10C4E000012818D15DA0544900901A9808440B9077 -:10C4F0001598401C80B20A901698401C80B2099092 -:10C5000001460C20DDE90A2302F050FB1A99084489 -:10C5100080B21A9017E053A0474900901A98084437 -:10C520000B901598401C80B20A901698401C80B25F -:10C53000099001460C20DDE90A2302F037FB1A9925 -:10C54000084480B21A901998401C80B21990119931 -:10C5500019988842FFF611AD00BFCCE019981690EB -:10C5600038A0354900901A9808440C901698401C41 -:10C5700080B20B90012201460C200C9B02F016FBAE -:10C580001A99084480B21A902EA02B4900901A984C -:10C5900008440C901698401C80B20B900222014671 -:10C5A0000C200C9B02F002FB1A99084480B21A90EE -:10C5B00024A0214900901A9808440C901698401C19 -:10C5C00080B20B90032201460C200C9B02F0EEFA85 -:10C5D0001A99084480B21A90002017906FE019A0B1 -:10C5E000154900901A9808440C90179800EB4000E9 -:10C5F000001D80B20B901698401C80B20A90014634 -:10C600000C20DDE90B2302F0D1FA1A99084480B21C -:10C610001A900CA0084900901A9808440C9017989A -:10C6200000EB4000401D80B20B901698401C80B279 -:10C630000A9001460C2019E0CC3400206C06002042 -:10C64000B6CFB4F800000000000000000000594020 -:10C65000252E32660000000030000000BDFBD3C371 -:10C66000D6D00000C6F4D3C3D6D00000DDE90B233A -:10C6700002F09CFA1A99084480B21A90AFF23C007A -:10C680008B4900901A9808440C90179800EB4000D2 -:10C69000801D80B20B901698401C80B20A90014613 -:10C6A0000C20DDE90B2300E02AE002F07FFA1A9962 -:10C6B000084480B21A901798401C80B217901798BF -:10C6C00004288CDBAFF28400794900901A98084462 -:10C6D0000C901698401C80B20B90102201460C2042 -:10C6E0000C9B02F063FA1A99084480B21A901998C8 -:10C6F000401C80B2199019980428FFF62FAF2BE048 -:10C700001E980078012813D11398401E69490968C2 -:10C71000C978884204DC002066490968C87018E0BE -:10C7200064480068C078401C62490968C87010E01D -:10C7300060480068C07828B91398401E5D490968B0 -:10C74000C87006E05B480068C078401E5949096817 -:10C75000C870FFF764BBFCE700BF5548F7F793FDCF -:10C7600080B21A9052481A99FFF734FB9EE01C9849 -:10C77000102878D11D98012876D100200E900D90B8 -:10C780001E98C01C1E9012E00E991E98405C302826 -:10C7900004DB0E991E98405C392800DDD9E70E981D -:10C7A000401CC0B20E900E98032800DDD1E70E9910 -:10C7B0001E98405CAA28E7D10E9800B9C9E700206E -:10C7C0000C900CA80E9A1E99F7F72DFD00210CAACB -:10C7D0000E9811540CA8F7F73BFE0B900B9800280D -:10C7E00002DB0B98FF2800DDB3E70B98C0B20D9079 -:10C7F0000E98401CC0B20A900E98801CC0B20990DE -:10C800001E990998085CAA2800D0A2E70A991E98E8 -:10C81000405C08900020079006903DE0069800EBF1 -:10C82000400101EBC001244810F8210001282FD15C -:10C83000069800EB400101EBC0011F4800EB8100AE -:10C84000C1780D98814223D1089801280DD101218A -:10C85000069800EB400202EBC002174800EB820092 -:10C8600080F82A1011E021E01FE0089802280BD17F -:10C870000021069800EB400202EBC0020E4800EBDC -:10C88000820080F82A1000E063E70120079006E0AC -:10C890000698401CC0B2069006982028BEDB00BF58 -:10C8A000079808B101F006FF53E752E700BF50E7D1 -:10C8B000CC3400207C1F00206C06002007B59AB005 -:10C8C000002019901690119010904FF48051FE485E -:10C8D000F7F7C2FCFD48407815901598C1170990EC -:10C8E00000EB5170C01013901598C117099000EB20 -:10C8F0005170C1100998A0EBC100C0B212901298FB -:10C90000002803DD1398401CC0B21390139808B997 -:10C9100001201390EE49139809680979491CEDA28A -:10C92000CDE900210290E849199808440346002205 -:10C9300011460990102002F039F91999084480B283 -:10C9400019901A9803287DD11B98012804D0022839 -:10C9500079D0032878D17BE20020089009900790D5 -:10C960000690DB48006801791398814203DB0020C0 -:10C97000D749096808711598002866D1189053E0C6 -:10C98000D6A0D14900901998084404901898401CEA -:10C9900080B20390012201461020049B02F006F9A8 -:10C9A0001999084480B21990CCA0C74900901998F1 -:10C9B000084404901898401C80B20390022201465B -:10C9C0001020049B02F0F2F81999084480B21990E3 -:10C9D000C2A0BD4900901998084404901898401CC2 -:10C9E00080B20390032201461020049B02F0DEF87F -:10C9F0001999084480B21990B8A0B34900901998C9 -:10CA0000084404901898401C80B203900422014608 -:10CA10001020049B02F0CAF81999084480B21990BA -:10CA20001898401C80B2189018980828A8DBA648CF -:10CA3000F7F729FC80B21990A3481999FFF7CAF9B2 -:10CA40001DB000BD3AE25DE12CE2002018902AE022 -:10CA5000189800EB400101EBC001A14810F821003B -:10CA600001281CD10698401CC0B206900698401EB2 -:10CA7000C117039000EB5170C0F3C70004909448B5 -:10CA8000006801790498814208D11898C1B208AAB7 -:10CA9000079811540798401CC0B2079000BF18981F -:10CAA000401C80B218901898202802DA07980828AD -:10CAB000CEDB079848B98448F7F7E5FB80B21990B8 -:10CAC00081481999FFF786F9BAE7002018909CE091 -:10CAD00008A91898085C0590059800EB400101EB47 -:10CAE000C0017F4800EB81000E307EA1CDE900102F -:10CAF00075491998084403901898401C80B2029018 -:10CB0000012201461020039B02F050F819990844B5 -:10CB100080B21990059800EB400101EBC00170480C -:10CB200000EB8100407804900498042819DA6E49DB -:10CB3000049851F820006BA1CDE9001062491998C2 -:10CB4000084403901898401C80B2029002220146CB -:10CB50001020039B02F02AF81999084480B219901A -:10CB600013E062A05849009019980844039018985F -:10CB7000401C80B20290022201461020039B02F06A -:10CB800015F81999084480B21990059800EB4001F6 -:10CB900001EBC001524800EB8100C07855A1CDE9FE -:10CBA000001049491998084403901898401C80B215 -:10CBB0000290032201461020039B01F0F7FF199910 -:10CBC000084480B21990059800EB400101EBC001C8 -:10CBD000434800EB8100001D42A1CDE900103A4915 -:10CBE0001998084403901898401C80B202900422BF -:10CBF00001461020039B01F0D9FF1999084480B227 -:10CC000019901898401C80B218900799189888427B -:10CC1000FFF65EAF0798082873DA079818906DE062 -:10CC20002EA0294900901998084404901898401C97 -:10CC300080B20390012201461020049B01F0B6FF50 -:10CC40001999084480B2199024A01F49009019989E -:10CC5000084404901898401C80B2039002220146B8 -:10CC60001020049B01F0A2FF1999084480B219908A -:10CC70001AA0154900901998084404901898401C6F -:10CC800080B20390032201461020049B01F08EFF26 -:10CC90001999084480B2199010A00B490090199876 -:10CCA000084404901898401C80B203900422014666 -:10CCB0001020049B01F07AFF1999084480B2199062 -:10CCC0001898401C80B218E0CC340020A800002046 -:10CCD0007C1F002025642F25640000000000000058 -:10CCE0006C06002025730000441F0020CEB4D6AA95 -:10CCF000000000002564000003E018901898082840 -:10CD00008EDBD0E0002018900CE0189800EB40007B -:10CD1000FE4911F8201009AA189811541898401CBF -:10CD200080B2189018980428EFDB002019909DF825 -:10CD30002400F7490890199808440790F5A1089A2B -:10CD4000FBF710FF1999084480B219900020189041 -:10CD500009E0FF22DDE918100844ED490A5418984B -:10CD6000401C80B2189018980328F2DB1998C01C58 -:10CD700080B219909DF82500E5490890199808445B -:10CD80000790E7A1089AFBF7EDFE1999084480B2D5 -:10CD900019900020189009E0FF22DDE918100844DE -:10CDA000DB490A541898401C80B218901898032840 -:10CDB000F2DB1998C01C80B219909DF82600D44966 -:10CDC0000890199808440790D8A1089AFBF7CAFE62 -:10CDD0001999084480B219900020189009E0FF22A8 -:10CDE000DDE918100844CA490A541898401C80B25A -:10CDF000189018980328F2DB1998C01C80B219907B -:10CE00009DF82700C2490890199808440790CAA1C4 -:10CE1000089AFBF7A7FE1999084480B219900020E0 -:10CE2000189009E0FF22DDE918100844B8490A54B7 -:10CE30001898401C80B2189018980328F2DB1998B3 -:10CE4000C01C80B21990B2481999FEF7C3FFF7E5EC -:10CE50001C980078012813D11398401EB94909681D -:10CE60000979884204DC0020B6490968087118E095 -:10CE7000B44800680079401CB2490968087110E0A4 -:10CE8000B0480068007928B91398401EAD49096878 -:10CE9000087106E0AB4800680079401EA94909689E -:10CEA0000871CDE5CCE500BF9948F7F7ECF980B201 -:10CEB000199097481999FEF78DFF07E31A981028E3 -:10CEC000FBD11B98012804D0022878D0032877D101 -:10CED00057E200201690189012E0189800EB4001DD -:10CEE00001EBC001984810F8210028B901201690E4 -:10CEF0001898C0B2119006E01898401C80B21890A3 -:10CF000018982028E9DB00BF169800B998E50020A2 -:10CF100014901C98109018210AA8F7F79DF900208A -:10CF2000189045E018991098405CAA283CD11898B0 -:10CF300000B985E5002007900890099007A8189A85 -:10CF40001099F7F770F9002107AA189811547FA1DA -:10CF500007A8F7F79FF918B900208DF8290019E004 -:10CF60007CA107A8F7F796F918B901208DF82900D8 -:10CF700010E07AA107A8F7F78DF918B902208DF80B -:10CF8000290007E077A107A8F7F784F910B9032073 -:10CF90008DF829001898401C109908441090149896 -:10CFA000401CC0B2149006E01898401C80B2189043 -:10CFB00018980A28B6DB00BF002018901FE04FE148 -:10CFC00079E218991098405CAA2814D10DF1360026 -:10CFD000189A1099F7F727F900220DF136001899E1 -:10CFE00042541898401C1099084410901498401C02 -:10CFF000C0B2149006E01898401C80B2189018989F -:10D000000A28DEDB00BF0020189031E01899109844 -:10D01000405CAA2828D1189800B911E50020079093 -:10D020000890099007A8189A1099F7F7FCF80021C2 -:10D0300007AA1898115407A8F7F70AFAC0B28DF892 -:10D040002B009DF82B00012803DB9DF82B00FF2807 -:10D0500000DDF5E41898401C1099084410901498CD -:10D06000401CC0B2149006E01898401C80B2189082 -:10D0700018980A28CADB00BF0020189016E01899FB -:10D080001098405CAA280DD10BA8189A1099F7F7B0 -:10D09000CAF800220BA8189942541498401CC0B238 -:10D0A000149006E01898401C80B2189018980A282E -:10D0B000E5DB00BF1498042873D1002009906DE0CF -:10D0C000099800EB400101EBC0011F4800EB810013 -:10D0D000C1789DF82B0081425CD101208DF8280099 -:10D0E0009DF8290000EB4001084810F821008DF858 -:10D0F0002A000021099800EB400202EBC00212480E -:10D1000000EB820080F82A1009982FE0280C0020FC -:10D11000CC3400206362302E76616C3D25640000C3 -:10D120006362312E76616C3D256400006362322EAD -:10D1300076616C3D256400006362332E76616C3D40 -:10D14000256400007C1F00206C060020434F4D31F9 -:10D1500000000000434F4D3200000000434F4D33AC -:10D1600000000000434F4D340000000000EB400180 -:10D1700001EBC001D64800EB810018220AA90890F3 -:10D18000F7F751F801F096FAFDF7B8FE1498401C35 -:10D19000C0B214900998401CC0B209900998202888 -:10D1A0008EDB1498042859D101208DF828009DF8B1 -:10D1B000290000EB4000C74911F820008DF82A0033 -:10D1C0000021119800EB400202EBC002C04800EBC6 -:10D1D000820080F82A10119800EB400101EBC00199 -:10D1E000BB4800EB810018220AA90990F7F71BF849 -:10D1F000119800EB400101EBC001B54800EB810044 -:10D20000183010210990F7F727F801F053FAFDF7CD -:10D2100075FEB1484078C117099000EB5170C010FD -:10D220001390AD484078C117099000EB5170C110C0 -:10D230000998A0EBC100C0B212901298002803DD3B -:10D240001398401CC0B21390139808B90120139092 -:10D250001398401EA1490968087100E034E42BE1ED -:10D260000020089009900790069018902AE01898DE -:10D2700000EB400101EBC001954810F821000128A6 -:10D280001CD10698401CC0B206900698401EC117DB -:10D29000039000EB5170C0F3C70004908F48006802 -:10D2A00001790498814208D11898C1B208AA079858 -:10D2B00011540798401CC0B2079000BF1898401C3A -:10D2C00080B218901898202802DA07980828CEDB38 -:10D2D000079800B9BBE5002005900798189043E037 -:10D2E0001898401EC0B2049004991C98405C012814 -:10D2F00036D108A90498085C0390039817901AE0A7 -:10D300001798401C00EB400101EBC001704800EB96 -:10D3100081000290179800EB400101EBC0016C48BE -:10D3200000EB8100182201900299F6F77CFF179814 -:10D33000401C80B2179017981F28E1DB182168481D -:10D34000F6F78AFF0021644880F8181B102100F5C9 -:10D350003360F6F781FF0598401CC0B2059000BF0E -:10D360001898401E80B2189018980028B8DC0598CC -:10D37000002804DD01F09EF9FDF7C0FD00E066E540 -:10D380009AE01C9809900020189051E00020049029 -:10D390000AE0099802780498411CC9B2049105A9D1 -:10D3A0000A540998401C099009980078AA2802D0CC -:10D3B00004980928EDD309980078AA2800D046E5FA -:10D3C000002105AA049811540998401C099005A849 -:10D3D000F7F73EF803900398B0F5965F02D100206E -:10D3E00002901DE00398B0F5165F02D10120029073 -:10D3F00016E00398B0F5964F02D1022002900FE09C -:10D400000398B0F5614F02D10320029008E0039821 -:10D41000B0F5E13F02D10420029001E00420029027 -:10D4200008AA1899029850541898401C80B2189075 -:10D4300018980428AADB0020189034E0189800EB14 -:10D440004000244911F8201008AA1898105C814265 -:10D4500025D008A91898095C00EB40001D4A02F885 -:10D460002010189800EB4000114601EB8000806806 -:10D47000A8B108A91898085C0490189800EB40001F -:10D48000114601EB80000390189800EB400001EB7F -:10D49000800080680290DDE9022004999047189886 -:10D4A000401C80B2189018980428C7DB0948806B8C -:10D4B00004908047CBE4CAE400BF0A48F6F7E3FED5 -:10D4C00080B2199007481999FEF784FC00BFBEE4AA -:10D4D0006C060020280C0020A80000207C1F0020E3 -:10D4E000C00B0020CC34002007B5A6B0002025904A -:10D4F000FE48D0F8440B20900F212098B0FBF1F0AB -:10D50000C0B223902098B0FBF1F201FB12002290F0 -:10D510002298002803DD2398401CC0B223904FF4CA -:10D520008051F348F6F798FE239808B9012100E0EE -:10D530002399F04800684079401CEFA2CDE9002013 -:10D540000291EB49259808440346002211460A90AF -:10D550000E2001F02BFB2599084480B225902698D7 -:10D5600003287DD12798012802D0032879D1D3E25E -:10D57000E048006840790A900A98C0EB00101F90BC -:10D580002398401E0A99884205D12298002802DD7E -:10D590002298219001E00F202190209808B90020C6 -:10D5A0002190002024900BE224991F980144209898 -:10D5B000814207D22098401E249A1F991144401A94 -:10D5C0001E9000E001E2CE48006815A90990099A72 -:10D5D0001E989047002873D000200990BDF86A007B -:10D5E000B0F5004F01D10120099015A8C5A1CDE9E2 -:10D5F0000010BF492598084407902498401C80B229 -:10D600000690012201460E20079B01F0CFFA2599D2 -:10D61000084480B225909DF85E00BBA1CDE90010C2 -:10D62000B3492598084407902498401C80B206907E -:10D63000022201460E20079B01F0B8FA2599084402 -:10D6400080B225900998B8B1B0A0A949009025985A -:10D65000084407902498401C80B20690032201E001 -:10D6600091E283E201460E20079B01F09FFA259983 -:10D67000084480B2259017E09DF87600401CA2A1D6 -:10D68000CDE900109A492598084407902498401C39 -:10D6900080B20690032201460E20079B01F086FA15 -:10D6A0002599084480B2259000208DF82C00BDF803 -:10D6B0006A00012805D196A10BA8F6F7D8FD12E063 -:10D6C000B3E0BDF86A00022804D193A10BA8F6F7D5 -:10D6D000CEFD08E0BDF86A00B0F5004F03D190A17F -:10D6E0000BA8F6F7C4FD0BA886A1CDE90010804970 -:10D6F0002598084407902498401C80B20690042284 -:10D7000001460E20079B01F051FA2599084480B28A -:10D7100025900DF15F007BA1CDE90010744925989B -:10D72000084407902498401C80B2069005220146C8 -:10D730000E20079B01F03AFA2599084480B2259003 -:10D74000BDF86A00012829D1BDF874000390F6F7EE -:10D75000FBFE9FED760B53EC102BCDE904019DED04 -:10D76000040B51EC100BF6F780FECDE90601CDE974 -:10D77000020170A05E490090259808440590249805 -:10D78000401C80B20490062201460E20059B01F049 -:10D790000DFA2599084480B2259013E05BA0544906 -:10D7A00000902598084407902498401C80B2069069 -:10D7B000062201460E20079B01F0F8F9259908443E -:10D7C00080B2259015A8407E9DF86C1040EA01209B -:10D7D000089015A8807F15A9497F15AA127F15AB5F -:10D7E000DB7ECDE90032CDE9021015A8807E03462C -:10D7F000079052A110A8089AFBF7B4F910A841A10C -:10D80000CDE900103A492598084407902498401C17 -:10D8100080B20690072201460E20079B01F0C6F950 -:10D820002599084480B22590C6E03AA0304900907E -:10D830002598084409902498401C80B20890012241 -:10D8400001460E20099B01F0B1F92599084480B2E8 -:10D85000259030A0264900902598084409902498E6 -:10D86000401C80B20890022201460E20099B01F064 -:10D870009DF92599084480B2259026A01C49009066 -:10D880002598084409902498401C80B208900322EF -:10D8900001460E20099B01F089F92599084480B2C0 -:10D8A00025901CA0124900902598084409902498BE -:10D8B000401C80B20890042201460E20099B01F012 -:10D8C00075F92599084480B2259012A00849009066 -:10D8D0002598084409902498401C80B2089005229D -:10D8E00001460E20099B01F061F937E0A8000020F5 -:10D8F000CC3400207C1F002025642F25640000000C -:10D900000C0C002025730000256400002D00000091 -:10D91000C2A9D2BA00000000B6CFB4F800000000DF -:10D92000CDA8D1B6D2ECB3A30000000000000000E7 -:10D9300000005940252E3266000000002530346476 -:10D940002D253032642D2530326420253032643A62 -:10D95000253032643A2530326400000025990844AD -:10D9600080B22590AFF254009C490090259808445D -:10D9700009902498401C80B20890062201460E208F -:10D98000099B01F013F92599084480B22590AFF264 -:10D990007C00924900902598084409902498401CE6 -:10D9A00080B20890072201460E20099B01F0FEF884 -:10D9B0002599084480B225902498401C80B2249078 -:10D9C000219924988842FFF6EFAD00BF96E0AFF2B0 -:10D9D000BC00824900902598084409902498401C76 -:10D9E00080B20890012201460E20099B01F0DEF86A -:10D9F0002599084480B22590AFF2E800774900905D -:10DA00002598084409902498401C80B2089002226E -:10DA100001460E20099B01F0C9F82599084480B2FF -:10DA20002590AFF210106D49009025980844099098 -:10DA30002498401C80B20890032201460E20099BC6 -:10DA400001F0B4F82599084480B22590AFF23C105B -:10DA5000624900902598084409902498401C80B29F -:10DA60000890042201460E20099B01F09FF8259999 -:10DA7000084480B22590AFF2641058490090259870 -:10DA8000084409902498401C80B208900522014661 -:10DA90000E20099B01F08AF82599084480B2259050 -:10DAA000AFF290104D4900902598084409902498B1 -:10DAB000401C80B20890062201460E20099B01F00E -:10DAC00075F82599084480B22590AFF2B810434903 -:10DAD00000902598084409902498401C80B2089032 -:10DAE000072201460E20099B01F060F825990844A1 -:10DAF00080B225902498401C80B2249024980F284E -:10DB0000FFF665AF3548F6F7BEFB80B22590334887 -:10DB10002599FEF75FF92BE028980078012813D1AA -:10DB20002F48006841792398401E814204DB002081 -:10DB30002B490968487118E0294800684079401C61 -:10DB400027490968487110E025480068407928B9DC -:10DB50002398401E22490968487106E02048006861 -:10DB60004079401E1E490968487101E029B000BD96 -:10DB700000BF1A48F6F787FB80B225901748259911 -:10DB8000FEF728F928E02698102825D127980128A3 -:10DB900002D0022815D113E0124840680A9080474D -:10DBA00000200F49096848714FF480510B48F6F77F -:10DBB00053FB0020259009482599FEF70BF901E059 -:10DBC00000E0D3E700BF0548F6F75DFB80B2259083 -:10DBD00002482599FEF7FEF800BFC7E7CC340020C5 -:10DBE0007C1F00200C0C002001480249C8647047CB -:10DBF0001DAF0008F00C00202DE9F04186B006466C -:10DC00000F4615464FF00008032E2DD1012F02D0EC -:10DC1000022F27D127E000F025FD4FF48051264840 -:10DC2000F6F71AFB25480068407A24490968097A02 -:10DC3000224A1268D279214B1B689B79CDE90132C7 -:10DC4000CDE903101EA01C4B0122162100900D20CF -:10DC500000F0ACFF804641461748FEF7BBF806B01F -:10DC6000BDE8F08100BFFAE7102E22D1012F02D0CB -:10DC7000022F1CD11CE0002414E0285D30280ADBB0 -:10DC8000285D392807DC285D3038C1B20B480068B0 -:10DC9000801D015504E0002108480068801D0155E1 -:10DCA000601C84B2042CE8DB00F054FDD7E700BF11 -:10DCB000D5E700BFD3E70000CC3400207C1F002054 -:10DCC00025642564256425640000000007B594B030 -:10DCD000002013904FF48051FE48F6F7BDFAFE483D -:10DCE0000078C117069000EB917080100E90FA48F2 -:10DCF0000078C117069000EB917081100698A0EB98 -:10DD00008100C0B20D900D98002803DD0E98401CD4 -:10DD1000C0B20E90F1490E9809680978491CF0A22A -:10DD2000CDE900210290EB491398084403460322F1 -:10DD3000002106900A2000F039FF1399084480B2B0 -:10DD40001390E9488079E8494979E74A1279E64B26 -:10DD5000DB78CDE90032CDE90210E3488078069007 -:10DD6000E148008805900246E0A108A8069BFAF762 -:10DD7000F9FE08A8E5A1CDE90010D649139808449A -:10DD800003460022114606900A2000F00FFF139967 -:10DD9000084480B21390DE48817D407D41EA002234 -:10DDA000DB48407CDA49097CD94BDB7BCDE9023189 -:10DDB000CDE90402D648807BD6A1CDE90010C54943 -:10DDC0001398084403460122002106900A2000F01F -:10DDD000EDFE1399084480B21390D2484068007851 -:10DDE000012801D10B2000E00D200790B9491398BC -:10DDF00008440690CCA1079AFAF7B4FE1399084498 -:10DE000080B213900020069009E0FF220699139833 -:10DE10000844B0490A540698401CC0B206900698BF -:10DE20000328F2DB1398C01C80B21390C148B7A13D -:10DE3000CDE90010A74913980844034602220021A7 -:10DE400006900A2000F0B2FE1399084480B21390A5 -:10DE5000149803287ED11598012802D003287AD17E -:10DE600023E39D48007860BB0020129025E000204D -:10DE700010901BE0B0A097490090139808440690BA -:10DE80001098401C80B205901298401C80B20490FB -:10DE900001460A20DDE9052300F088FE13990844B5 -:10DEA00080B213901098401C80B2109010980528F2 -:10DEB000E0DB1298401C80B2129012980428D6DB46 -:10DEC0001FE38648006801780E98401E81427DD18C -:10DED0000D9800287ADD0020129073E17F480068D9 -:10DEE0000078129901EB800080B20F901298119087 -:10DEF000002010900F98C0EBC00101EB0011764894 -:10DF0000001D00EB4100001D80A1CDE9001071490A -:10DF10001398084406901098401C05901198401CD6 -:10DF200080B2049001460A20DDE9052300F03EFEA0 -:10DF30001399084480B21390012010900F98C0EB01 -:10DF4000C00101EB00116448001D00EB4100C078E6 -:10DF500073A101E0E0E2D2E2CDE900105D4913983F -:10DF6000084406901098401C05901198401C80B2FF -:10DF7000049001460A20DDE9052300F017FE1399FD -:10DF8000084480B21390022010900F98C0EBC0019B -:10DF900001EB00115048001D10F81100E0B967A016 -:10DFA0005AA1CDE900104B491398084406901098E7 -:10DFB000401C80B205901198401C80B2049001462C -:10DFC0000A20DDE9052300F0F1FD00E02DE11399C1 -:10DFD000084480B2139021E00F98C0EBC00101EB20 -:10DFE00000113D48001D10F811004DA1CDE90010B1 -:10DFF00038491398084406901098401C80B2059048 -:10E000001198401C80B2049001460A20DDE90523E6 -:10E0100000F0CCFD1399084480B2139003201090B7 -:10E020000F98C0EBC00101EB00112B48001D00EB65 -:10E0300041004078D0B941A034A1CDE90010254974 -:10E040001398084406901098401C80B205901198CF -:10E05000401C80B2049001460A20DDE9052300F04F -:10E06000A5FD1399084480B2139022E00F98C0EBED -:10E07000C00101EB00111848001D00EB4100407881 -:10E0800027A1CDE900101349139808440690109871 -:10E09000401C80B205901198401C80B2049001464B -:10E0A0000A20DDE9052300F081FD1399084480B2C0 -:10E0B0001390042010900F98C0EBC00101EB0011E9 -:10E0C0000548001D00EB4100807810B91BA00FA18E -:10E0D00038E050E0CC340020A80000207C1F002055 -:10E0E00025642F2564000000A80E0020323025642E -:10E0F0002D253032642D2530326420253032643AAB -:10E10000253032643A253032640000002573000067 -:10E11000C40E002025642E25642E25642E25643A25 -:10E1200025640000081F002070342E7069633D25AF -:10E130006400000014000020000000004E6F726DAB -:10E14000616C0000CDE90010FB491398084406906B -:10E150001098401C80B205901198401C80B2049029 -:10E1600001460A20DDE9052300F020FD139908444B -:10E1700080B2139022E00F98C0EBC00101EB0011B8 -:10E18000EE4800EB41008078AFF26C01CDE9001061 -:10E19000E9491398084406901098401C80B20590F5 -:10E1A0001198401C80B2049001460A20DDE9052345 -:10E1B00000F0FCFC1399084480B213901298401CA4 -:10E1C00080B212900D9912988842FFF687AE0D9892 -:10E1D000129026E0002010901CE0AFF2A400D64977 -:10E1E00000901398084406901098401C80B2059047 -:10E1F0001298401C80B2049001460A20DDE90523F4 -:10E2000000F0D4FC1399084480B213901098401C7D -:10E2100080B2109010980528DFDB1298401C80B265 -:10E22000129012980428D5DB3EE10020129037E1CD -:10E23000C34800680078129901EB800080B20F900B -:10E2400012981190002010900F98C0EBC00101EBC4 -:10E250000011BA4800EB4100001DAFF25011CDE9AA -:10E260000010B5491398084406901098401C05907A -:10E270001198401C80B2049001460A20DDE9052374 -:10E2800000F094FC1399084480B213900120109080 -:10E290000F98C0EBC00101EB0011A84800EB410052 -:10E2A000C078AFF28411CDE90010A3491398084457 -:10E2B00006901098401C05901198401C80B2049064 -:10E2C00001460A20DDE9052300F070FC139908449B -:10E2D00080B21390022010900F98C0EBC00101EBA8 -:10E2E0000011964810F81100E0B9AFF2B010AFF28B -:10E2F000E411CDE900109049139808440690109855 -:10E30000401C80B205901198401C80B204900146D8 -:10E310000A20DDE9052300F049FC1399084480B286 -:10E32000139021E00F98C0EBC00101EB001183486E -:10E3300010F81100AFF21821CDE900107E491398B2 -:10E34000084406901098401C80B205901198401C1B -:10E3500080B2049001460A20DDE9052300F026FC86 -:10E360001399084480B21390032010900F98C0EBCB -:10E37000C00101EB0011714800EB41004078E0B9A9 -:10E38000AFF24820AFF27C21CDE900106A49139822 -:10E39000084406901098401C80B205901198401CCB -:10E3A00080B2049001460A20DDE9052300F0FEFB5F -:10E3B0001399084480B2139022E00F98C0EBC0017B -:10E3C00001EB00115D4800EB41004078AFF2B02155 -:10E3D000CDE9001058491398084406901098401C45 -:10E3E00080B205901198401C80B2049001460A202A -:10E3F000DDE9052300F0DAFB1399084480B213909D -:10E40000042010900F98C0EBC00101EB00114B48A5 -:10E4100000EB41008078E0B9AFF2E020AFF21431B8 -:10E42000CDE9001044491398084406901098401C08 -:10E4300080B205901198401C80B2049001460A20D9 -:10E44000DDE9052300F0B2FB1399084480B2139074 -:10E4500022E00F98C0EBC00101EB0011374800EB40 -:10E4600041008078AFF24831CDE90010324913986D -:10E47000084406901098401C80B205901198401CEA -:10E4800080B2049001460A20DDE9052300F08EFBEE -:10E490001399084480B213901298401C80B21290D5 -:10E4A00012980428FFF6C4AE2BE0169800780128D5 -:10E4B00013D10E98401E224909680978884204DC6D -:10E4C00000201F490968087018E01D48006800789E -:10E4D000401C1B490968087010E019480068007862 -:10E4E00028B90E98401E16490968087006E01448BD -:10E4F00000680078401E12490968087000BF17B014 -:10E5000000BD00BF0C48F5F7BEFE80B213900A486C -:10E510001399FDF75FFC1DE0149810281AD1159887 -:10E52000012816D11698007801280DD10548806978 -:10E53000069080470CE00000CC340020AC000020A6 -:10E540007C1F0020081F00200348C06906908047F8 -:10E5500000BFD4E700BFD2E7081F002030B5ADF5FB -:10E56000417D2B484FF4407201A943684FF480501D -:10E5700098470125002017E000EB400101AA12F89E -:10E580003110FF290FD100EB400102EBC1014978A6 -:10E59000FF2908D100EB400102EBC101C978FF2936 -:10E5A00001D1002502E0401C2028E5DB00BFA5B119 -:10E5B00000240FE004EB440201AB03EBC20104EBC7 -:10E5C000440202EBC403134A02EB83001822F5F75E -:10E5D0002AFE641C202CEDDB16E0002412E004EB84 -:10E5E000440101EBC4020B4901EB82001821F5F74D -:10E5F00033FE002104EB440000EBC402054800F8A0 -:10E600002210641C202CEADB0DF5417D30BD00009A -:10E61000940E00206C0600201FB510480E2269469B -:10E6200043684FF4704098479DF80000FF2814D0CD -:10E630009DF8000088B10A480099C0F80E100199B1 -:10E64000416002990160BDF80C00010A044841755F -:10E65000BDF80C00C1B2024881751FBD940E0020A8 -:10E66000C40E002010B51148042243681048016808 -:10E67000891D002098470E4800688079FF2813D133 -:10E680000B480068C079FF280ED109480068007A5D -:10E69000FF2809D106480068407AFF2804D10448C1 -:10E6A00000680021C0F8061010BD0000940E002084 -:10E6B0007C1F002030B5ADF5417D00240FE004EB58 -:10E6C000440202EBC403104A02EB830104EB440250 -:10E6D00001AB03EBC2001822F5F7A5FD641C202C4A -:10E6E000EDDB4FF480556FF30B05284602F0F4F98B -:10E6F00006484FF4407201A983684FF48050984750 -:10E700000DF5417D30BD00006C060020940E002008 -:10E710001FB50E48D0F80E0000900C4840680190DC -:10E720000A48006802900948817D407D41EA002046 -:10E73000ADF80C004FF47044204602F0CDF90448C7 -:10E740000E2269468368204698471FBDC40E0020EC -:10E75000940E002010B50024204602F0BDF90448B4 -:10E760000422836803480168891D0020984710BD72 -:10E77000940E00207C1F00202DE9F74F92B09046A8 -:10E7800000254FF48051BF48F5F766FD1298032825 -:10E790007BD11398012802D0022877D1BCE098F8E9 -:10E7A0000000012852D1B848417C027CC07BB64BA6 -:10E7B0009B7BCDE90130CDE90321B4A00090B148A5 -:10E7C0004319012211460F2000F0F0F9284485B2C8 -:10E7D000AD48C1798079AC4A5279AB4B1B79CDE910 -:10E7E0000132CDE90301A9A00090A64843190222F5 -:10E7F00001210F2000F0DAF9284485B2A248C07840 -:10E80000A1498A784978A04B1B78CDE90131CDE93F -:10E8100003209EA000909B484319032201210F2052 -:10E8200000F0C4F9284485B29748817D407D41EAD3 -:10E83000002099A1CDE9001092484319042201213A -:10E840000F2000F0B3F9284485B264E098F8000086 -:10E85000002860D191A095A1CDE900108948431905 -:10E86000012211460F2000F0A1F9284485B290A0A2 -:10E870008EA1CDE9001083484319022201210F2007 -:10E8800000F094F9284485B201E053E045E08CA003 -:10E8900086A1CDE900107B484319032201210F20F6 -:10E8A00000F084F9284485B289A080A1CDE9001048 -:10E8B00074484319042201210F2000F077F92844FD -:10E8C00085B271491131481E431E821ECDE90001F7 -:10E8D00081A172A0F5F7FAFC6B49C91D481E431EC1 -:10E8E000821ECDE900017CA171A0F5F7EFFC66481E -:10E8F000C01C411E831EC21ECDE9001076A170A06F -:10E90000F5F7E4FC1321604841758821817500F515 -:10E910008051086B804703E002E015B0BDE8F08F3E -:10E9200000BF5848F5F7AFFC85B229465548FDF7BA -:10E9300051FAA5E012981028FBD11398012802D0B3 -:10E9400002287CD191E000274646002414E0305D87 -:10E95000AA280FD104F0FF094A4631460EA8F5F760 -:10E9600062FC00200EA901F80900601C0644781C16 -:10E97000C7B203E0601C84B2102CE8DB00BF0024A7 -:10E9800014E0305DAA280FD104F0FF0A5246314648 -:10E990000AA8F5F748FC00200AA901F80A00601C43 -:10E9A0000644781CC7B203E0601C84B2102CE8DB7C -:10E9B00000BF002414E0305DAA280FD104F0FF0B43 -:10E9C0005A46314606A8F5F72EFC002006A901F8A4 -:10E9D0000B00601C0644781CC7B203E0601C84B2C4 -:10E9E000102CE8DB00BF002414E0305DAA280FD112 -:10E9F000E0B20190314602A8019AF5F714FC00211B -:10EA000002AA01981154601C0644781CC7B203E0A6 -:10EA1000601C84B2102CE8DB00BF042F24D11A4AFA -:10EA20000E3249460EA800F0CDFA174A121D514683 -:10EA30000AA800F0C7FA144A594606A800E015E0F3 -:10EA400000F0C0FA02A8F5F703FD80B2009000982C -:10EA5000010A0D4841750098C1B20B488175FFF756 -:10EA600057FE2249086B804701E000E055E700BFF0 -:10EA70000448F5F708FC85B229460248FDF7AAF9D3 -:10EA800000BF4AE7CC340020C40E002025642E25A8 -:10EA9000642E25642E256400256400003139322E51 -:10EAA0003136382E3130302E3130300025730000B1 -:10EAB0003235352E3235352E3235352E30000000C8 -:10EAC0003139322E3136382E35302E3100000000EB -:10EAD0003530303000000000256868752E256868E4 -:10EAE000752E256868752E2568687500C41E00207F -:10EAF0002DE9FF5F81468A4617464FF0000BB9F1BA -:10EB0000100F4FD1BAF1010F4AD1D846002540E08D -:10EB100000260BE0042E01DBBDE8FF9F404608F114 -:10EB200001083A5C3046761C0DF8002017F8080002 -:10EB3000AA28EFD106B9EFE700200DF806006846D5 -:10EB4000F5F786FC0446052D1ED2DFE805F0030D1F -:10EB5000111519004FF4FA6094FBF0F100FB11401D -:10EB600080B2ADF808000FE0E0B28DF80A000BE0CB -:10EB7000E0B28DF80B0007E0E0B28DF80C0003E086 -:10EB8000E0B28DF80D0000BF00BF08F101086D1C58 -:10EB900000BF052DBCDB0448C16802A8884700E01F -:10EBA00000BF00BF00BFB7E7A80E00202DE9FE4F51 -:10EBB0000746884691461D464FF480711B48F5F77D -:10EBC0004BFB0DA802904FF480711848029B0C9AE1 -:10EBD000F9F7DCFF0FFA80FABAF1FF3F02D0BAF57D -:10EBE000807F07DD0020029011A0F9F7ABFF002025 -:10EBF000BDE8FE8F0D4843463A4611A1CDE900908D -:10EC00002846F9F7AFFF2846F5F73DFB86B200240A -:10EC100004E0FF2031196854601C84B2032CF8DB37 -:10EC200000200290F01C80B2E2E70000CC440020FB -:10EC30004C656E677468205245454F5200000000D5 -:10EC40007425645F25645F25642E7478743D2225E5 -:10EC5000732200002DE9F04F89B005460C4690461E -:10EC60009946DDF848A024216846F5F7F5FA4248B0 -:10EC70000078A8420EDDC5EBC50000EB05113E484B -:10EC8000001D00EB4100416800918168019180897D -:10EC9000ADF80800202C19DA04EB440000EBC401A5 -:10ECA000364800EB8100C0788DF80A0004EB440080 -:10ECB00000EBC401314800EB81004168CDF80B1036 -:10ECC0008168CDF80F108089ADF81300ADF816906B -:10ECD0008DF82280ADF820A006A8FCF7EDF82649B3 -:10ECE000D1F8480B00F04EF883462349D1F8480B81 -:10ECF00000F050F806462049D1F8481B21B91E49BA -:10ED0000D1F8501B491E03E01B49D1F8481B491E8E -:10ED1000084600F03FF80746BE4202D0304601F0F8 -:10ED2000DBFE1748242269468368584698471248F4 -:10ED3000D0F8480B401C1049C1F8480B0846D0F8E1 -:10ED4000481BD0F8500B814203D300210A48C0F879 -:10ED5000481B0948D0F8441BD0F8500B814206D21A -:10ED60000548D0F8440B401C0349C1F8440B00F09F -:10ED700095F809B0BDE8F08FA80000206C060020CF -:10ED8000940E0020014601EBC1004FF4405202EB0B -:10ED90008000704770B504462046FFF7F3FF054634 -:10EDA000280B000370BD000070B50D4800214164C0 -:10EDB0008164C16401654FF47A71A0F53060C0F8D8 -:10EDC000501B00F06BF8002407E04FF4405000EBBC -:10EDD0000435284601F080FE641C092CF5D370BD73 -:10EDE000A80B002010B500F001F810BD1FB51148A8 -:10EDF0001022694643685002984703990098884258 -:10EE000009D803990198884205D20B489DE81E0055 -:10EE100044301EC00DE00848002141648164C16493 -:10EE200001654FF47A71A0F53060C0F8501B00F016 -:10EE300035F81FBD940E0020A80B00202DE9F041ED -:10EE400004460E461348D0F8440BA04202D80020D6 -:10EE5000BDE8F0810F48D0F8441BD0F8500B814238 -:10EE60000BD10C48D0F8480B01190A48D0F8500BC8 -:10EE7000B1FBF0F200FB121500E025462846FFF733 -:10EE800081FF0746044824223146436838469847A4 -:10EE90000120DDE7A8000020940E002010B54FF4FB -:10EEA000005001F019FE0348102203498368500204 -:10EEB000984710BD940E0020EC0B0020F6F7E8FCFC -:10EEC000F9F762F8F8F7D0FBF8F75AFBF8F700FD0E -:10EED000F8F71AFDF8F734FDF8F7B6FCF8F7D6FCAA -:10EEE000F8F74AFDF8F764FDF8F79AFCFAF7FAFB31 -:10EEF00001E0FAF7DDFEFCE770B503460C4603E0DF -:10EF000014F8015B03F8015B151EA2F10102F7D1B1 -:10EF100070BD30B502460B464FF6FF70002112E07F -:10EF2000555C684000240AE000F0010525B140105E -:10EF30004AF20105684000E04010651CACB2082CA4 -:10EF4000F2DB4D1CA9B29942EADB30BD2DE9FC4150 -:10EF500006460C46154698468DF8006003208DF84D -:10EF60000100200A8DF80200E0B28DF80300280AA3 -:10EF70008DF80400E8B28DF8050006216846FFF719 -:10EF8000C8FF0746F8B28DF80600380A8DF807006A -:10EF900008216846C047BDE8FC81000010B501F0BB -:10EFA00045FE04460548007820B9012C02D10449E9 -:10EFB000086B80470148047010BD0000C00E00209F -:10EFC000C41E0020F0B503460C4600200025002199 -:10EFD00017E01E5C2E2E05D12E466F1CFDB29155FA -:10EFE00000210CE01E5C302E09DB1E5C392E06DC95 -:10EFF0001E5C303E01EB810706EB4706F1B2461C72 -:10F00000F0B2A042E5DB5155F0BD000070B50446FA -:10F010000D460449086809682A46CB6B2146984783 -:10F0200070BD0000180C002070B504460D46044960 -:10F03000486849682A46CB6B2146984770BD000056 -:10F04000180C002070B504460D460449886889688C -:10F050002A46CB6B2146984770BD0000180C002053 -:10F0600070B504460D460449C868C9682A46CB6B8A -:10F070002146984770BD0000180C00200F498842B7 -:10F0800004D10F490F4A1268D16416E00E49884234 -:10F0900004D10B490B4A5268D1640EE00B498842F7 -:10F0A00004D10749074A9268D16406E008498842BA -:10F0B00003D10349034AD268D1647047801F0020FE -:10F0C000D5F00008180C002010210020A0220020FC -:10F0D000302400202DE9F74F88B080468B46002071 -:10F0E000079003900A9810B90BB0BDE8F08F002785 -:10F0F0000FE0924850F827100A98814207D107EB99 -:10F10000C70000EB07108E4901EB00100390781C3C -:10F1100087B2042FEDDB039800B9E5E70398008878 -:10F1200000EB40010398001D00EB8104207898F863 -:10F130000010884205D008F10108ABF101001FFA68 -:10F1400080FB98F80000069098F80190ABF1010060 -:10F1500018F80010401E18F8000041EA0020059041 -:10F1600021780698814200D0BEE7B9F1030F09D09B -:10F17000B9F1060F06D0B9F1100F03D0B9F1410F64 -:10F1800000D0B1E7ABF1020081B24046FFF7C1FE0B -:10F1900004900498011241EA002080B20490DDE955 -:10F1A0000410884200D09FE7B9F1410F01D108F166 -:10F1B000060608F103060020E080A06820F4004065 -:10F1C000A060607810B1012800D100E0A3E0A07831 -:10F1D000DFF870C1DCE9003CCDE9013C02222028C7 -:10F1E00000DB98E0002519E04FF0000C00EB400335 -:10F1F00003EBC00E544B03EB8E03183323F825C0EA -:10F2000000EB400303EBC00E4F4B03EB8E031833B0 -:10F2100003EB8503A3F802C06B1C9DB29542E3DBB0 -:10F22000F37996F806C043EA0C2A00EB400303EB9F -:10F23000C00E454B03EB8E0383F828A0F37B96F8B2 -:10F240000EC043EA0C2A00EB400303EBC00E3E4B1A -:10F2500003EB8E0383F829A0002759E03D4601AB5C -:10F2600033F817104B1CF35C16F801C043EA0C2A64 -:10F27000BAF1010F15D100EB400303EBC00C324B88 -:10F2800003EB8C03183333F8253043F0010C00EB0B -:10F29000400303EBC00E2C4B03EB8E03183323F813 -:10F2A00025C0CB1CF35C01F1020C16F80CC043EA3C -:10F2B0000C2ABAF1010F15D100EB400303EBC00C8F -:10F2C000214B03EB8C03183333F8253043F0020C49 -:10F2D00000EB400303EBC00E1B4B03EB8E03183314 -:10F2E00023F825C04B1DF35C01F1040C16F80CC08B -:10F2F00043EA0C2A00EB400303EBC00C124B03EB78 -:10F300008C03183303EB8503A3F802A07B1C9FB288 -:10F310009742A3DB00BF00BF079800B1E4E60120DD -:10F320006070627801219140A0688843A06000204D -:10F33000A080039800F00AF800BFD5E6180C002062 -:10F34000801F0020700C01086C0600200188491CF9 -:10F35000018001884288914201DB002101807047D1 -:10F360002DE9F041044600250826208800EB4001E5 -:10F37000201D10F82170324629463846D4F88C31C9 -:10F38000FFF7E4FDBDE8F08170B50646308800EB7C -:10F390004001301D00EB8104708800B970BD2089E8 -:10F3A00000F4004048B9E088401C80B2E0800A28A0 -:10F3B00003DDA06840F40040A060607810B101282F -:10F3C00005D100E004E03046FFF7CAFF00E000BFCF -:10F3D00000BF208900F4004000B300251BE04FF47B -:10F3E0000041A07800EB400202EBC002234800EB92 -:10F3F0008200183020F825100021A07800EB400290 -:10F4000002EBC0021D4800EB8200183000EB8500C3 -:10F410004180681C85B2042DE1DB1DE0002519E068 -:10F42000A07800EB400101EBC001144800EB810023 -:10F43000183030F8250020F40041A07800EB40029D -:10F4400002EBC0020D4800EB8200183020F82510B6 -:10F45000681C85B2042DE3DBA088401CA080A08836 -:10F46000032809DBA0680043A0600020A0800120E1 -:10F4700060703046FFF76AFF00BF8FE76C06002020 -:10F480002DE9FE4F06468A4693460024707831786F -:10F4900040EA01200290F078B17840EA0120019022 -:10F4A0007079317940EA01200090019820B9AAF1E1 -:10F4B00006000099884201D0BDE8FE8FAA48C0F836 -:10F4C00000B0B079A9490870F0794870707A317A43 -:10F4D00040EA0120A5494880F07AB17A40EA01204B -:10F4E000A2498880062422463146A148F4F79BFEB3 -:10F4F0004FF000099D48407806287DD004DC0328A1 -:10F5000007D0042879D105E0102877D04128F9D117 -:10F5100037E000BF9548B0F802800078944908555C -:10F5200092484178924A601C1154904800794006F4 -:10F53000010EA01C1154002516E0404600F02CF9E5 -:10F540000746390AE01C022202FB0500884A1154D2 -:10F55000201D022202FB0500854A175408F1010014 -:10F560001FFA80F8681C85B280488088A842E4DCD5 -:10F570007F49A01C095CE01C08447D49A1F80008F3 -:10F58000BFE07A48B0F8028000787949085577489A -:10F590004178774A601C1154744840880112A01CBD -:10F5A000115472488178E01C1154704880884000E2 -:10F5B000C0F30721201D11546C4800794006010E4C -:10F5C000601D1154002516E0404600F0E5F807469E -:10F5D000390AA01D022202FB0500654A1154E01DF4 -:10F5E000022202FB0500624A175408F101001FFACB -:10F5F00080F8681C85B202E00FE07DE040E05B48E7 -:10F600008088A842E0DC59488188A01D022202FBC4 -:10F6100001005749A1F8000873E05448B0F802808F -:10F620008068407851498968097840EA012739465D -:10F63000404601F0C9F88146B9F1000F00D072E0F0 -:10F64000A01D4B49A1F800084848007808554748D4 -:10F650004178474A601C1154444840880112A01C5C -:10F66000115442488178E01C115440488068017868 -:10F67000201D11543D4880684178601D11543EE0C2 -:10F680003A48B0F80280002519E03848806810F840 -:10F690001570364881686800401C085C40EA0727FE -:10F6A0003946404601F090F8814608F101001FFA02 -:10F6B00080F8B9F1000F00D035E0681C85B22B4806 -:10F6C0008088A842E1DCA01D2949A1F8000827484C -:10F6D0000078087025484078487024484088001217 -:10F6E000887022488078C87020488088001208718D -:10F6F0001E480079487102E04FF0010913E000BF95 -:10F7000000BF1B48B0F80008001B000A1849087128 -:10F71000084690F80008001B48710846B0F8001829 -:10F7200000F028F8C8E6E01C1149A1F800080F48CD -:10F73000007808700D48407840F080004870084616 -:10F7400080F80290B0F80008001B000A0871084613 -:10F7500090F80008001B48710846B0F8001800F047 -:10F7600009F800BFA8E60000DC250020CC450020F9 -:10F77000D845002070B504460D460548006830B1F4 -:10F7800004482A462146C36B01480068984770BD6B -:10F79000DC250020C41E0020F0B504460020B4F58E -:10F7A000987F06D006DC982C05D005DC982C04D276 -:10F7B00004E0B8E372E2B7E336E13AE1A70000BF44 -:10F7C0007F447F68BF440000CC090000CE090000E0 -:10F7D000D0090000D2090000D4090000D6090000B9 -:10F7E000D8090000DA090000DC090000DE09000089 -:10F7F000E0090000E2090000E4090000E609000059 -:10F80000E8090000EA090000EC090000EE09000028 -:10F81000F0090000F2090000F4090000F6090000F8 -:10F82000F8090000FA090000FC090000FE090000C8 -:10F83000000A0000020A0000040A0000060A000094 -:10F84000080A00000A0A00000C0A00000E0A000064 -:10F85000100A0000120A0000140A0000160A000034 -:10F86000180A00001A0A00001C0A00001E0A000004 -:10F87000200A0000220A0000240A0000260A0000D4 -:10F88000280A00002A0A00002C0A00002E0A0000A4 -:10F89000300A0000320A0000340A0000360A000074 -:10F8A000380A00003A0A00003C0A00003E0A000044 -:10F8B000400A0000420A0000440A0000460A000014 -:10F8C000480A00004A0A00004C0A00004E0A0000E4 -:10F8D000500A0000520A0000540A0000560A0000B4 -:10F8E000580A00005A0A00005C0A00005E0A000084 -:10F8F000600A0000620A0000640A0000660A000054 -:10F90000680A00006A0A00006C0A00006E0A000023 -:10F91000700A0000720A0000740A0000760A0000F3 -:10F92000780A00007A0A00007C0A00007E0A0000C3 -:10F93000800A0000820A0000840A0000860A000093 -:10F94000880A00008A0A00008C0A00008E0A000063 -:10F95000900A0000920A0000940A0000960A000033 -:10F96000980A00009A0A00009C0A00009E0A000003 -:10F97000A00A0000A20A0000A40A0000A60A0000D3 -:10F98000A80A0000AA0A0000AC0A0000AE0A0000A3 -:10F99000B00A0000B20A0000B40A0000B60A000073 -:10F9A000B80A0000BA0A0000BC0A0000BE0A000043 -:10F9B000C00A0000C20A0000C40A0000C60A000013 -:10F9C000C80A0000CA0A0000CC0A0000CE0A0000E3 -:10F9D000D00A0000D20A0000D40A0000D60A0000B3 -:10F9E000D80A0000DA0A0000DC0A0000DE0A000083 -:10F9F000E00A0000E20A0000E40A0000E60A000053 -:10FA0000E80A0000EA0A0000EC0A0000EE0A000022 -:10FA1000F00A0000F20A0000F40A0000F60A0000F2 -:10FA2000F80A0000FA0A0000A4F19905972D00D207 -:10FA300000E03EE1AF0000BF7F447F68BF440000AC -:10FA400086080000880800008A0800008C08000072 -:10FA50008E08000090080000920800009408000042 -:10FA600096080000980800009A0800009C08000012 -:10FA70009E080000A0080000A2080000A4080000E2 -:10FA8000A6080000A8080000AA080000AC080000B2 -:10FA9000AE080000B0080000B2080000B408000082 -:10FAA000B6080000B8080000BA080000BC08000052 -:10FAB000BE080000C0080000C2080000C408000022 -:10FAC000C6080000C8080000CA080000CC080000F2 -:10FAD000CE080000D0080000D2080000D4080000C2 -:10FAE000D6080000D8080000DA080000DC08000092 -:10FAF000DE080000E0080000E2080000E408000062 -:10FB0000E6080000E8080000EA080000EC08000031 -:10FB1000EE080000F0080000F2080000F408000001 -:10FB2000F6080000F8080000FA080000FC080000D1 -:10FB3000FE0800000009000002090000040900009E -:10FB400006090000080900000A0900000C0900006D -:10FB50000E0900001009000012090000140900003D -:10FB600016090000180900001A0900001C0900000D -:10FB70001E090000200900002209000024090000DD -:10FB800026090000280900002A0900002C090000AD -:10FB90002E0900003009000032090000340900007D -:10FBA00036090000380900003A0900003C0900004D -:10FBB0003E0900004009000042090000440900001D -:10FBC00046090000480900004A0900004C090000ED -:10FBD0004E090000500900005209000054090000BD -:10FBE00056090000580900005A0900005C0900008D -:10FBF0005E0900006009000062090000640900005D -:10FC000066090000680900006A0900006C0900002C -:10FC10006E090000700900007209000074090000FC -:10FC200076090000780900007A0900007C090000CC -:10FC30007E0900008009000082090000840900009C -:10FC400086090000880900008A0900008C0900006C -:10FC50008E0900009009000092090000940900003C -:10FC600096090000980900009A0900009C0900000C -:10FC70009E090000A0090000A2090000A4090000DC -:10FC8000A6090000A8090000AA090000AC090000AC -:10FC9000AE090000B0090000B2090000B4F5E47F2D -:10FCA00005D005DCA4F23115972D02D202E0FDE368 -:10FCB00034E13AE1AF0000BF7F447F68BF440000F9 -:10FCC00036070000380700003A0700003C07000034 -:10FCD0003E07000040070000420700004407000004 -:10FCE00046070000480700004A0700004C070000D4 -:10FCF0004E070000500700005207000054070000A4 -:10FD000056070000580700005A0700005C07000073 -:10FD10005E07000060070000620700006407000043 -:10FD200066070000680700006A0700006C07000013 -:10FD30006E070000700700007207000074070000E3 -:10FD400076070000780700007A0700007C070000B3 -:10FD50007E07000080070000820700008407000083 -:10FD600086070000880700008A0700008C07000053 -:10FD70008E07000090070000920700009407000023 -:10FD800096070000980700009A0700009C070000F3 -:10FD90009E070000A0070000A2070000A4070000C3 -:10FDA000A6070000A8070000AA070000AC07000093 -:10FDB000AE070000B0070000B2070000B407000063 -:10FDC000B6070000B8070000BA070000BC07000033 -:10FDD000BE070000C0070000C2070000C407000003 -:10FDE000C6070000C8070000CA070000CC070000D3 -:10FDF000CE070000D0070000D2070000D4070000A3 -:10FE0000D6070000D8070000DA070000DC07000072 -:10FE1000DE070000E0070000E2070000E407000042 -:10FE2000E6070000E8070000EA070000F00700000E -:10FE3000F2070000F4070000F6070000F8070000D2 -:10FE4000FA070000FC070000FE07000000080000A1 -:10FE5000020800000408000006080000080800006E -:10FE60000A0800000C0800000E080000100800003E -:10FE7000120800001408000016080000180800000E -:10FE80001A0800001C0800001E08000020080000DE -:10FE900022080000240800002608000028080000AE -:10FEA0002A0800002C0800002E080000300800007E -:10FEB000320800003408000036080000380800004E -:10FEC0003A0800003C0800003E080000400800001E -:10FED00042080000440800004608000048080000EE -:10FEE0004A0800004C0800004E08000050080000BE -:10FEF000520800005408000056080000580800008E -:10FF00005A0800005C0800005E080000600800005D -:10FF1000620800006408000066080000A4F2C91529 -:10FF2000972D02D202E065E2CCE1F4E3AF0000BF1E -:10FF30007F447F68BF440000F2050000F405000024 -:10FF4000F6050000F8050000FA050000FC050000B9 -:10FF5000FE05000000060000020600000406000086 -:10FF600006060000080600000A0600000C06000055 -:10FF70000E06000010060000120600001406000025 -:10FF800016060000180600001A0600001C060000F5 -:10FF90001E060000200600002206000024060000C5 -:10FFA00026060000280600002A0600002C06000095 -:10FFB0002E06000030060000320600003406000065 -:10FFC00036060000380600003A0600003C06000035 -:10FFD0003E06000040060000420600004406000005 -:10FFE00046060000480600004A0600004C060000D5 -:10FFF0004E060000500600005206000054060000A5 -:020000040801F1 -:1000000056060000580600005A0600005C06000074 -:100010005E06000060060000620600006406000044 -:1000200066060000680600006A0600006C06000014 -:100030006E060000700600007206000074060000E4 -:1000400076060000780600007A0600007C060000B4 -:100050007E06000080060000820600008406000084 -:1000600086060000880600008A0600008C06000054 -:100070008E06000090060000920600009406000024 -:1000800096060000980600009A0600009C060000F4 -:100090009E060000A0060000A2060000A4060000C4 -:1000A000A6060000A8060000AA060000AC06000094 -:1000B000AE060000B0060000B2060000B406000064 -:1000C000B6060000B8060000BA060000BC06000034 -:1000D000BE060000C0060000C2060000C406000004 -:1000E000C6060000C8060000CA060000CC060000D4 -:1000F000CE060000D0060000D2060000D4060000A4 -:10010000D6060000D8060000DA060000DC06000073 -:10011000DE060000E0060000E2060000E406000043 -:10012000E6060000E8060000EA060000EC06000013 -:10013000EE060000F0060000F2060000F4060000E3 -:10014000F6060000F8060000FA060000FC060000B3 -:10015000FE06000000070000020700000407000080 -:1001600006070000080700000A0700000C0700004F -:100170000E0700001007000012070000140700001F -:1001800016070000180700001A0700001C070000EF -:100190001E07000000BF00BF00BF00BF00BF00BFC0 -:1001A00000BF00BF00BF00BF00BF00BF00BF00BF57 -:1001B00000BF00BF00BF00BF00BF00BF00BF00BF47 -:1001C00000BF00BF00BF00BF00BF00BF00BF00BF37 -:1001D00000BF00BF00BF00BF00BF00BF00BF00BF27 -:1001E00000BF00BF00BF00BF00BF00BF00BF00BF17 -:1001F00000BF00BF00BF00BF00BF00BF00BF00BF07 -:1002000000BF00BF00BF00BF00BF00BF00BF00BFF6 -:1002100000BF00BF00BF00BF00BF00BF00BF00BFE6 -:1002200000BF00BF00BF00BF00BF00BF00BF00BFD6 -:1002300000BF00BF00BF00BF00BF00BF00BF00BFC6 -:1002400000BF00BF00BF00BF00BF00BF00BF00BFB6 -:1002500000BF00BF00BF00BF00BF00BF00BF00BFA6 -:1002600000BF00BF00BF00BF00BF00BF00BF00BF96 -:1002700000BF00BF00BF00BF00BF00BF00BF00BF86 -:1002800000BF00BF00BF00BF00BF00BF00BF00BF76 -:1002900000BF00BF00BF00BF00BF00BF00BF00BF66 -:1002A00000BF00BF00BF00BF00BF00BF00BF00BF56 -:1002B00000BF00BF00BF00BF00BF00BF00BF00BF46 -:1002C00000BF00BF00BF00BF00BF00BF00BF00BF36 -:1002D00000BF00BF00BF00BF00BF00BF00BF00BF26 -:1002E00000BF00BF00BF00BF00BF00BF00BF00BF16 -:1002F00000BF00BF00BF00BF00BF00BF00BF00BF06 -:1003000000BF00BF00BF00BF00BF00BF00BF00BFF5 -:1003100000BF00BF00BF00BF00BF00BF00BF00BFE5 -:1003200000BF00BF00BF00BF00BF00BF00BF00BFD5 -:1003300000BF00BF00BF00BF00BF00BF00BF00BFC5 -:1003400000BF00BF00BF00BF00BF00BF00BF00BFB5 -:1003500000BF00BF00BF00BF00BF00BF00BF00BFA5 -:1003600000BF00BF00BF00BF00BF00BF00BF00BF95 -:1003700000BF00BF00BF00BF00BF00BF00BF00BF85 -:1003800000BF00BF00BF00BF00BF00BF00BF00BF75 -:1003900000BF00BF00BF00BF00BF00BF00BF00BF65 -:1003A00000BF00BF00BF00BF00BF00BF00BF00BF55 -:1003B00000BF00BF00BF00BF00BF00BF00BF00BF45 -:1003C00000BF00BF00BF00BF00BF00BF00BF00BF35 -:1003D00000BF00BF00BF00BF00BF00BF00BF00BF25 -:1003E00000BF00BF00BF00BF00BF00BF00BF00BF15 -:1003F00000BF00BF00BF00BF00BF00BF00BF00BF05 -:1004000000BF00BF00BF00BF00BF00BF00BF00BFF4 -:1004100000BF00BF00BF00BF00BF00BF00BF00BFE4 -:1004200000BF00BF00BF00BF00BF00BF00BF00BFD4 -:1004300000BF00BF00BF00BF00BF00BF00BF00BFC4 -:1004400000BF00BF00BF00BF00BF00BF00BF00BFB4 -:1004500000BF00BF00BF00BF00BF00BF00BF00BFA4 -:1004600000BF00BF00BF00BF00BF00BF00BF00BF94 -:1004700000BF00BF00BF00BF00BF00BF00BF00BF84 -:1004800000BF00BF00BF00BF00BF00BF00BF00BF74 -:1004900000BF00BF00BF00BF00BF00BF00BF00BF64 -:1004A00000BF00BF00BF00BF00BF00E03CE000BFD6 -:1004B00000BF00BF00BF00BF00BF00BF00BF00BF44 -:1004C00000BF00BF00BF00BF00BF00BF00BF00BF34 -:1004D00000BF00BF00BF00BF00BF00BF00BF00BF24 -:1004E00000BF00BF00BF00BF00BF00BF00BF00BF14 -:1004F00000BF00BF00BF00BF00BF00BF00BF00BF04 -:1005000000BF00BF00BF00BF00BF00BF00BF00BFF3 -:1005100000BF00BF00BF00BF00BF00BF00BF00BFE3 -:1005200000BF00BF00BF00BF00BF00BF00BF00BFD3 -:1005300000BF00BF00BF00BF00BF00BF00BF00BFC3 -:1005400000BF00BF00BF00BF00BF00BF00BF00BFB3 -:1005500000BF00BF00BF00BF00BF00BF00BF00BFA3 -:1005600000BF00BF00BF00BF00BF00BF00BF00BF93 -:1005700000BF00BF00BF00BF00BF00BF00BF00BF83 -:1005800000BF00BF00BF00BF00BF00BF00BF00BF73 -:1005900000BF00BF00BF00BF00BF00BF00BF00BF63 -:1005A00000BF00BF00BF00BF00BF00BF00BF00BF53 -:1005B00000BF00BF00BF00BF00BF00BF00BF00BF43 -:1005C00000BF00BF00BF00BF00BF00BF00BF00BF33 -:1005D00000BF00BF00BF00BF00BF00BF00BF00BF23 -:1005E00000BF00BF00BF00BF00BF00BF00BF00BF13 -:1005F00000BF00BF00BF00BF00BF00BF00BF00BF03 -:1006000000BF00BF00BF00BF00BF00BF00BF00BFF2 -:1006100000BF00BF00BF00BF00BF00BF00BF00BFE2 -:1006200000BF00BF00BF00BF00BF00BF00BF00BFD2 -:1006300000BF00BF00BF00BF00BF00BF00BF00BFC2 -:1006400000BF00BF00BF00BF00BF00BF00BF00BFB2 -:1006500000BF00BF00BF132594FBF5F5A9B2132519 -:1006600094FBF5F705FB1745AAB2132A7ED2DFE803 -:1006700002F00A3A3B3C3D3E53545556576A6B6C68 -:100680006D6E6F70710001EB410707EBC10C4D4FB0 -:1006900007EB8C077F787F1C4FF6FF7C0CEA072561 -:1006A00001EB410707EBC10C464F07EB8C07FF78C6 -:1006B0003D4301EB410707EBC10C424F07EB8C07B1 -:1006C00097F82A70012F01D145F4004501EB41074D -:1006D00007EBC10C3B4F17F82C70012F01D145F4EB -:1006E0008045284668E000BF00BF00BF00BF01EBA7 -:1006F000410505EBC107334D05EB870505F10E03F9 -:10070000551E33F815502F12551E13F8155047EA91 -:100710000525A8B250E051E000BF00BF00BF00BFF8 -:1007200001EB410505EBC107264D05EB87052B1DA8 -:10073000951F33F815502F12951F13F8155047EADF -:100740000525A8B238E000BF00BF00BF00BF00BF52 -:1007500000BF00BF01EB410505EBC107194D05EBDB -:10076000870595F82A50012D03D100E022E00020F2 -:100770001FE0A2F10B0505EBD577C7F34F06551C1B -:1007800005F001055DB101EB410505EBC1070D4D1C -:1007900005EB8705183505EB8605688809E001EB50 -:1007A000410505EBC107074D05EB8705183535F801 -:1007B000260001E0002000BF00BF01E0002000BFD4 -:1007C00000BFF0BD6C0600200246002000BF00BF45 -:1007D00070470000014902484161704781F40008F8 -:1007E000D81E0020704700B97047002141610161A7 -:1007F000C16000BFF8E770B504460D460CB9002093 -:1008000070BDE06808B90020FAE745B1D4E90006F8 -:10081000236903FB060132462846FEF76DFB20697B -:10082000401CA16890FBF1F201FB12002061E0681E -:10083000401EE0600120E3E770B504460D460CB9A8 -:10084000002070BDD4E90210884201D10020F8E7F1 -:1008500045B1D4E90016636903FB06103246294608 -:10086000FEF74AFB6069401CA16890FBF1F201FBB6 -:1008700012006061E068401CE0600120E1E770B5B3 -:1008800004460D460CB9002070BDD4E90210884220 -:1008900004DA29462046FFF7CFFFF5E745B1D4E952 -:1008A0000016636903FB061032462946FEF724FB57 -:1008B0006069401CA16890FBF1F201FB12006061CD -:1008C0002069401CA16890FBF1F201FB120020613D -:1008D0000120D9E77047704710B50849D1F8580B87 -:1008E00080470749086980470649C8688047064924 -:1008F000886880470549886B804710BDA8000020A4 -:10090000A80E0020081F0020301F0020C41E002059 -:100910007047704710B50D49486880470C48D0F8BB -:10092000881188470A48D0F8181300F5C87088471E -:100930000748D0F8A81400F5487088470448D0F854 -:10094000381600F59660884710BD0000640C002042 -:10095000801F00207047000010B50B48016D8847CC -:100960000A48016D88470A48016D88470948016DAA -:1009700088470948016D88470849486B80470849FE -:100980004868804710BD0000F00C0020440D002096 -:10099000980D0020EC0D0020400E0020C41E002009 -:1009A0006C0C002008B5C720009000F029F9002247 -:1009B0004FF480510748F4F71BFF0121684600F00F -:1009C000BFF8012211030348F4F712FF00F0D6F834 -:1009D00008BD00000004024010B5012211030548C3 -:1009E000F4F706FF00F0D4F8FDF7B8FDFDF714FEAC -:1009F00010BD000000040240F8B504460E4615463E -:100A0000B5F5807F01DD4FF4807500F0F9F8022024 -:100A10008DF80000200C8DF80100200A8DF80200EE -:100A2000E0B28DF8030000224FF480510948F4F73A -:100A3000DFFE0421684600F083F82946304600F0C6 -:100A40007FF8012211030348F4F7D2FE00F096F874 -:100A5000F8BD000000040240F8B504460D461646F5 -:100A600003208DF80000200C8DF80100200A8DF87D -:100A70000200E0B28DF8030000224FF480510848D4 -:100A8000F4F7B6FE0421684600F05AF8B1B22846E1 -:100A900000F048F8012211030148F4F7A9FEF8BD5F -:100AA0000004024038B50520009000224FF4805128 -:100AB0000848F4F79DFE0121684600F041F8002047 -:100AC00000F04CF80446012211030248F4F790FEAE -:100AD000204638BD0004024038B504466FF30B04CD -:100AE00000F08EF820208DF80000200C8DF8010019 -:100AF000200A8DF80200E0B28DF8030000224FF4C6 -:100B000080510748F4F774FE0421684600F018F895 -:100B1000012211030248F4F76BFE00F02FF838BDF4 -:100B20000004024070B504460D464FF0FF332A46DC -:100B300021460248F5F7F0FB70BD00004C2600206E -:100B400070B504460D464FF0FF332A462146024851 -:100B5000F5F7A3FC70BD00004C26002001B582B063 -:100B60004FF0FF30012301AA02A900900248F5F7D7 -:100B700073FD9DF804000EBD4C26002010B500BF8B -:100B8000FFF790FF00F001000028F9D110BD000030 -:100B900008B5AB20009000224FF480510748F4F7CD -:100BA00027FE01216846FFF7CBFF0122110303480E -:100BB000F4F71EFE0520F4F7FBFC08BD000402401C -:100BC0002DE9F04706460F4614464FF0000912E0A3 -:100BD000F0B2C0F58078444501D2204600E040469E -:100BE0000546AAB207EB09013046FFF705FF2E4480 -:100BF000A944641B00BF002CEAD1BDE8F0870000C7 -:100C000008B50620009000224FF480510648F4F702 -:100C1000EFFD01216846FFF793FF0122110302480F -:100C2000F4F7E6FD08BD00000004024010B52E20D8 -:100C3000F6F77AFF044604F0010010BD70B50546D2 -:100C40000C4622462F212846F7F7EAFE70BD000623 -:100C5000101600061016000000000000000001023F -:100C60000304060708090000000001020304000055 -:100C70000000080010001600004040404040404086 -:100C8000404041414141414040404040404040405F -:100C90004040404040404040400502020202020203 -:100CA0000202020202020202022020202020202052 -:100CB0002020200202020202020290909090909066 -:100CC0001010101010101010101010101010101024 -:100CD0001010101002020202020288888888888898 -:100CE0000808080808080808080808080808080884 -:100CF000080808080202020240000000790C0108FE -:100D000056322E30000000003131353230300000D4 -:100D1000323430300000000039363030000000003E -:100D20003438303000000000434F4D3100000000E7 -:100D3000434F4D3200000000434F4D330000000090 -:100D4000434F4D3400000000680D010800000020F2 -:100D5000E82500003E4E0008E80F0108E8250020C5 -:100D6000F82F0000108C000841321042012324F4B7 -:100D7000000C120D010856302E3030342E303A015E -:100D80002825590901081203320A2BD7080C12072B -:100D900032323A5518120B32643AD518120D32C855 -:100DA0003A111812111AF43D3A150C121323E803E4 -:100DB0003AD92412171BD007123918A113C59C1B4E -:100DC00008D90413499D23088C02FF2001FF01FF6D -:100DD00001FF01FF01FF01FF01FF01FF01FF01FF13 -:100DE000015F1379981408FD991B08810822A81443 -:100DF000203DEE1408A9ED1B08E50413EC0D1B20A3 -:100E000044041A980413400E02302013DD951B0889 -:100E1000190413899614082DAB1B08510413BDA99E -:100E20001B08AD04136C0C1420CC2C332001F28071 -:100E30000B144C2D180A15CC180B154C2E30091517 -:100E4000181A787C13EC261C202C29842A28D81206 -:100E5000011B4C2F0C1904FA802E611349AC1B089E -:100E600087041B73ADCC12AE1B08A70C1A4D0C41A6 -:100E70001AED0C1A90541B34275819541A8C043943 -:100E8000541A30541904E9542BEC0D200920541A3B -:100E9000A8541A7C5413AC2A1B204C0439541A3120 -:100EA000541904E9540A2598541AC0541AA4FC1A77 -:100EB0006CF86A0CFC1A325419040936FC1AD8541E -:100EC0001AC4A81B6C2B54190439541A335419042E -:100ED000093654180ED9090108590A0108C10B0135 -:100EE00008A50C1AD90C8113599E1B08ED0413B1E7 -:100EF0009F4C08A80EF81008C0A86401FFFFFF155A -:100F00000C29AB7C1A010E32C903FF01F601FF0167 -:100F1000FF01FF01FF01FF01FF01FF01FF01FF01D1 -:100F2000FF01FF01FF01FF01FF01FF01251319A6CA -:100F30001408CDA51408ADA814089DEF1408A588C1 -:100F40001408C40E822013A1AA1B08E9041AD904AC -:100F50001AC90413FDA91B08DD048B081F2413659F -:100F6000AB1B08B1041AA1041A30181E280D010881 -:100F700030041A38041A40041A10041A20041A18EB -:100F8000041A080401101BEDAE6412DB9B086854C0 -:100F900001FF017D137DF0140889F31B080D080182 -:100FA000FF0185137DF0140889F31B08290801FF50 -:100FB0000185137DF0140889F31B08450801FF0122 -:100FC00085137DF0140889F31B0861083201139919 -:100FD000F71F08C9070108D5041AE5041381F414A2 -:080FE00008C025C2200000003A -:040000050800418925 -:00000001FF diff --git a/leakage_system漏液主控软件履历表.xlsx b/leakage_system漏液主控软件履历表.xlsx index b4b02a1..cb227a7 100644 Binary files a/leakage_system漏液主控软件履历表.xlsx and b/leakage_system漏液主控软件履历表.xlsx differ diff --git a/漏液主控界面2.HMI b/漏液主控界面2.HMI index dfeec26..c20a5c6 100644 Binary files a/漏液主控界面2.HMI and b/漏液主控界面2.HMI differ