diff --git a/software/binaries/1.6L+/T12.ino.standard.hex b/software/binaries/1.6L+/T12.ino.standard.hex new file mode 100644 index 0000000..d28fdc6 --- /dev/null +++ b/software/binaries/1.6L+/T12.ino.standard.hex @@ -0,0 +1,2014 @@ +:100000000C94F7180C941F190C941F190C94632D61 +:100010000C941F190C941F190C941F190C941F1980 +:100020000C941F190C941F190C941F190C941F1970 +:100030000C941F190C941F190C941F190C941F1960 +:100040000C94192D0C941F190C94E72C0C94C12CB2 +:100050000C941F190C943A2E0C941F190C941F1910 +:100060000C941F190C941F195361766500466C6936 +:1000700070004D61696E2053637265656E004F4B71 +:10008000004E4F00454E00434E00594553004E4F21 +:10009000004F4E004F464600496E666F730042693E +:1000A0006700504944004469726563740053617687 +:1000B0006500426F6F7374004F666600536C656530 +:1000C00070005361766500426F6F737400536C6506 +:1000D00065700044656661756C74005361766500F7 +:1000E0004164640044656C6574650052656E616DC1 +:1000F000650043616C696272617465004368616E9A +:1001000067650052657475726E004C616E67004CD5 +:100110004F5720566F6C0042757A7A6572005363B0 +:100120007265656E00436F6E74726F6C0054696D1A +:1001300065720054656D7000546970000000000025 +:10014000000F1DC20800054442080003845FBF0081 +:100150000FE44410000115451000054CC97F8009CB +:10016000244F900007C4C11000054D413F000554C5 +:1001700043810007C44D0200054441140005554168 +:10018000080007C881040000000000000000000013 +:100190000001083FFE001FFF810000004002000038 +:1001A00007FE0FF800040208080004020888000790 +:1001B000FE0888000402088800040208880007FE80 +:1001C0000888000402094800040202300007FE0407 +:1001D0000C000402180400000000000000000000F1 +:1001E0000001100080001FFF80800001103FFF0011 +:1001F000004004080007FC04080004440410000444 +:100200004402100004440220001FFF81200000402F +:1002100000C00000A00130000110020800060C0C14 +:1002200007001803B00200000000000000000000FA +:1002300000004000800000400080000FFF3FFF00F2 +:10024000084104080008410408000841041000089F +:10025000410210000FFF0220000841012000004071 +:1002600000C0000040013000004002080000400CC7 +:100270000700004030020000000000000000000005 +:10028000001FDF10200002120C20000224042000B6 +:10029000047F8020000424B820000FA4885000149C +:1002A000BF88500004A488500004A488480004BFFC +:1002B00088880004A48A880007A48C8400044489E8 +:1002C000070000818602000000000000000000001E +:1002D000000FF00491000440025200047F9054008B +:1002E000045088FF0007D08481000451008100047D +:1002F0004901FF0007CA0281000444048100044A46 +:100300001CFF0007EA0481000C510481000061C455 +:100310008500004080820000000000000000000016 +:100320000007FF802000008407FF00008404010014 +:10033000008404010000840401000FFFC7FF0000D7 +:10034000840400000084040000008405FF00008491 +:100350000501000104090100010409010002041162 +:10036000FF00040401010000000000000000000084 +:1003700000008204FF00004402010007FF902100FA +:100380000010102100001017FD0000101021000FB8 +:10039000FFD06100001010A10000281121000028EA +:1003A0001221000044142100008210A1000301D09A +:1003B00045000C009002000000000000000000005A +:1003C00000084410FE00042810920005FF2292004D +:1003D00000103C920000100892001CFE10920004D5 +:1003E0001020FE0004103E920005FF8092000410D1 +:1003F00000920005100E92000610309200041000CA +:10040000FE0000100082000000000000000000005C +:100410000007DF8840000A24104000114210FE004F +:10042000040022820002FF3D020008010A42000986 +:10043000F9103200090920120009F93E02000909E9 +:1004400000020009090E020009F930220008050027 +:100450001400080200080000000000000000000076 +:10046000000FC3F1E0000FE3F1F8000C70C19E0033 +:100470000C30C186000C30C183000C30C183000CED +:1004800060C183000C60C183000FC0C183000FC036 +:10049000C186000C00C186000C00C198000C03F15D +:1004A000F8000C03F1E00000000000000000000074 +:1004B0000000200820000FFF09FC000020080000B9 +:1004C00000203E880003FE08500002020BFE0003DD +:1004D000FE0C4000020218400003FE2BFE00020248 +:1004E00008480003FE0888000202085000020228A3 +:1004F00030001FFF91CC0000000000000104047CCC +:100500000000880444000FFF3F4400002004440022 +:1005100000200C440000200E44001FFF9544000002 +:10052000201444000050244400005004440000887B +:100530000445000104048500060385030018010436 +:1005400000000000000000000000000000000000AB +:1005500000047E21FC0004421104001F7E090400F7 +:10056000044221FC000542110400067E1104000C27 +:100570000005FC0015FF880000040813FE00044875 +:10058000325200044F125200044812520014A812B2 +:100590005200091F97FF000000000000000000004B +:1005A0000002103DFC000210250400041025040088 +:1005B00005FFBDFC000C102520000C382520001480 +:1005C0003825FE0004543D200004542510000492F8 +:1005D0002510000511A5090006113D450004102550 +:1005E0008300041001010000000000000000000072 +:1005F000001FC8102000124A0C20001AC904200055 +:1006000017480020001FFFB8200002080850001FF4 +:10061000C8085000020808500003C80848001E140B +:1006200008880001540A880015220C8400144389AC +:1006300007000081060200000000000002FE010029 +:100640000002823FFF00048202000004FE0200005C +:100650000C1004FC00141004080005FF8C100004AA +:1006600010141000043825FF000434041000045254 +:1006700004100004918410000510045000041004BC +:10068000200000000000000000000000000000004A +:100690000002030010001FDC3EFE00089002120062 +:1006A000051004FF001FDF84120002120CFE001F61 +:1006B000D2021000021222FE000A921410000A5206 +:1006C00014100012220DFF0002220810000A42142A +:1006D0001000040223FF00000000000000000000E2 +:1006E000000F78BC20000948A45000094AA8500017 +:1006F000094AA88800094AB104001FFEAAFB0009A4 +:100700004AA42000094AA42000094AA7FE00094A79 +:10071000B420000948A924000B48A22200088AA49A +:10072000A20011192040000000000000000000009D +:10073000000020008000005001FC0000880104003F +:10074000010403080006FB0490000800C0600007D5 +:10075000DF018000045106000004511BFE0004511B +:1007600002020007D9020200045602020000100330 +:10077000FE00001002020000000000000000000067 +:10078000000208209000027F9890001F8009FF005F +:10079000022201100006218B100007628DFE000A64 +:1007A000A20910000A14111000121431FE000208F0 +:1007B00011100002141110000222111000024391C6 +:1007C000FF00028111000000000000000000000096 +:1007D00000100700000008F83FFE0004802002001F +:1007E000008020020000BE23E2001C8222220004BE +:1007F000A4222200049422220004882222000494CD +:1008000023E200052220020005422002000A003FE8 +:10081000FE0011FFA00200000000000009FF0040E0 +:100820000004203FFF00042000000000FE00000044 +:100830001C420FFC00044200000007FF800000047F +:10084000000FFC0004FF000000048100000005818F +:100850000FFC00068108040004FF08040000810F5B +:10086000FC0000000000000000000000000000008C +:100870000001000FFE00010008200003FF08200017 +:100880000201082000042208200008200BFE0010AE +:10089000200820000050082800005008240000888C +:1008A000082200008810200001041020000203A785 +:1008B000FF000C010000000000000000000000002C +:1008C0000000400080001FFF9FFC0000400410005B +:1008D0000FFF02200000003FFF000FFE0000000895 +:1008E000420FF80008420808000FFE08080008023E +:1008F0000FF8000800080800080008080008000FAA +:10090000F8001000080800000000000000000000CF +:100910000007FE0FF80004020000000402000000BF +:1009200007FE00000004023FFE00040200800007F2 +:10093000FE008000009004900008910C880006934F +:100940001086000294208200009000800000900237 +:1009500080001FFF81000000000000000000000078 +:1009600000041012020005FF9FD200050092120041 +:100970001E28A2120004443FF20004820212000664 +:10098000000212000CFE1FD20014101252000410BC +:100990001242000410134200041012820015FF825C +:1009A0000A0008000204000000000000000000002F +:1009B00000002000000000203E04001FFFA20400F1 +:1009C0001000A2FF0000012204000FFE220400001C +:1009D000403E440000402224000440222400047CC5 +:1009E00022040004402204000A403E040009402280 +:1009F000240010FF80140000000008000000000028 +:100A00000010FE08200008820BFF0004820A01008B +:100A100010FE3C5100088208880008820904000288 +:100A2000FE0C0000040019FC0009FF282000192911 +:100A30000820000929082000092908200009292B7D +:100A4000FF000BFF9000000000000000000000000D +:100A5000001F7F90F80001080888000A100888002D +:100A6000047F0107001FC13A0000054909FC00048A +:100A700049088400044908880004490848000449DA +:100A800008500004490A200004160C58001421895B +:100A9000870008C086020000000000000FFFFFFF73 +:100AA000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF29 +:100AB000FFFFFFFEF0000000000FF0000000000F3D +:100AC000F0000000000FF1FFFFFFFF8FF1FFFFFFBD +:100AD000FF8FF1FFFFFFFF8FF1FFFFFFFF8FF1FFA0 +:100AE000FFFFFF8FF1FFFFFFFF8FF1FFFFFFFF8F82 +:100AF000F1FFFFFFFF8FF1FFFFFFFF8FF1FFFFFF10 +:100B0000FF8FF1FFFFFFFF8FF1FFFFFFFF8FF1FF6F +:100B1000FF03FF8FF1FFFF03FF8FF1FFFF03FF8F45 +:100B2000F1FFFFFFF18FF1FFFFFFE18FF1FFFFFF0B +:100B3000C78FF1FFFFFF8F8FF1FFFFFF0F8FF1FFD7 +:100B4000FFFF8F8FF1FFFFFFC78FF1FFFFFFE18FE7 +:100B5000F1FFFFFFF18FF1FFFFFFFF8FF1FFFFFFBD +:100B6000FF8FF0000000000FF0000000000FF00009 +:100B70000000000FF1FFFFFFFF8FF1111FFFFF8F3C +:100B8000F1111FFFFF8FF1111FFFFF8FF1FFFFFF1B +:100B9000FF8FF0000000000FF0000000000FF000D9 +:100BA0000000000F7FFFFFFFFFFE7FFFFFFFFFFE44 +:100BB0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFF7 +:100BC000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF08 +:100BD000FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF26 +:100BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:100BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:100C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:100C1000FFFFFFC7001FC00FFFC7001FC00C1FC78B +:100C2000001FC00C1FC71FFFC7FC0FC71FFFC7FC5B +:100C30004FC71FFFC7FC4FC71FFFC7FC47C71FFF9A +:100C4000C7FC67C71C01C01C63C71C01C01C73C75D +:100C50001C01C01C71C71F8FC7FC79C71F8FC7FC41 +:100C600078C71F8FC7FC7C071F8FC7FC7C07000F4E +:100C7000C00C7E07000FC00FFFFF000FC00FFFFF6B +:100C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:100C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:100CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:100CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:100CC000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFE36 +:100CD0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFD6 +:100CE000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFFE7 +:100CF000FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF05 +:100D0000FFFFFFFFFFFFFFFFFC7FFFFFFFFFFC7FF9 +:100D1000FFFFFFFFFC7FFFFFFFFFFC7FFFFFFFFFE9 +:100D2000FC7FFFFFFFFFFC7FFFFFFFFFFC7FFFFF5C +:100D3000FFFFFC7FFFFFFE00000001FFFE00000040 +:100D400001FFFE00000001FFFE3FFC7FF1FFFE3FC0 +:100D5000FC7FF1FFFE3FFC7FF1FFFE3FFC7FF1FFD8 +:100D6000FE3FFC7FF1FFFE3FFC7FF1FFFE3FFC7F7B +:100D7000F1FFFE3FFC7FF1FFFE3FFC7FF1FFFE0035 +:100D80000000007FFE000000007FFE000000007FEA +:100D9000FE3FFC7FFFFFFFFFFC7FFFFFFFFFFC7FAD +:100DA000FFFFFFFFFC7FFFFFFFFFFC7FFFFFFFFF59 +:100DB000FC7FFFFFFFFFFC7FFFFFFFFFFC7FFFFFCC +:100DC000FFFFFC7FFFFFFFFFFC7FFFFFFFFFFC7FBC +:100DD000FFFFFFFFFCFFFFFFFFFFFFFFFFFFFFFF26 +:100DE000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFE15 +:100DF0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFB5 +:100E0000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFFC5 +:100E1000C003FFFEFFFF0000FFFFFFFC00003FFFDD +:100E2000FFF000000FFFFFC0000003FFFFC0000045 +:100E300001FFFF00000000FFFF000000007FFE0038 +:100E40000000007FFC000000003FFC000000203F8D +:100E5000F8000000701FF8000000F81FF00000010B +:100E6000F80FF0000003F00FF0000007E00FF000B3 +:100E7000000FC00FE000001F8007E001803F000767 +:100E8000E003C07E0007E007E0FC0007E003F1F8A4 +:100E90000007E001FFF00007E000FFE00007E000CE +:100EA0007FC00007F0003F80000FF0001F00000F20 +:100EB000F0000E00000FF0000400000FF80000002A +:100EC000001FF8000000001FFC000000003FFC00B5 +:100ED0000000003FFF000000007FFF00000000FF57 +:100EE000FF80000001FFFFC0000003FFFFF00000D3 +:100EF00007FFFFF000000FFFFFFC00003FFFFFFFB8 +:100F00000000FFFF7FFFF00FFFFE7FFFFFFFFFFEF0 +:100F10003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF93 +:100F2000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFFA4 +:100F3000C001FFFEFFFF0000FFFFFFFC00001FFFDE +:100F4000FFF000000FFFFFE0000003FFFFC0000004 +:100F500001FFFF80000000FFFF000000007FFE0097 +:100F60000000007FFE000000003FFC008000801FAA +:100F7000F801C003C01FF803E003E01FF803F00FFF +:100F8000E00FF001F80FC007F000FC1F8007F00031 +:100F90007E7F0007E0003FFE0007E0001FFC000727 +:100FA000E0000FF80007E00007F00007E00007F09E +:100FB0000007E0001FF80007E0001FFC0007E0004A +:100FC0007FFE0007F0007E3F0007F001FC1F800756 +:100FD000F001F80FC00FF803F007E00FF803E0038B +:100FE000E01FF801C001801FFE008000803FFE006E +:100FF0000000003FFF000000007FFF000000007FB6 +:10100000FF80000000FFFFC0000001FFFFF00000B4 +:1010100007FFFFF800000FFFFFFC00003FFFFFFF8E +:101020008000FFFF7FFFF007FFFE7FFFFFFFFFFE57 +:101030003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF72 +:10104000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF83 +:10105000F00FFFFEFFFFF00FFFFFFFFFE007FFBFF6 +:10106000FFFFC3C3FF1FFFFF87E1FE0FFFFF0FF06E +:10107000FC1FFFFE1FF8783FFFFC3FFCF07FFFF8EE +:101080007FFFE0FFFFF0FFFFC1FFFFE1FFFF83FFF6 +:10109000FFE3FFFF07FFFFE3FFFE07FFFFE3FFFCA8 +:1010A00007FFFFE3FFF807FFFFE3FFF047FFFFE362 +:1010B000FFE0C7FFFFE3FFC1C7FFFFE3FF83C7FFF9 +:1010C000FFE3FF07C7FFFFE3FE0FC7FFFFE3FC1FC0 +:1010D000C7FFFFE3F83FC7FFFFE3F07FC7FFFFE372 +:1010E000E0FFC7FFFFE3C1FFC7FFFFE783FFC7FFC5 +:1010F000FFEF07FFC7FFFFFE0FFFC1FFFFFC1FFF52 +:10110000E0FFFFF83FFFF87FFFF07FFFFC3FFFE0CD +:101110000000003FFFC00000003FFF800000003FD4 +:10112000FF07FFFFFFFFFE0FC003FFFFFC1FC00311 +:10113000FFFFFE3FE007FFFFFF7FE007FFFFFFFF2E +:10114000F81FFFFF7FFFF81FFFFE7FFFFFFFFFFE7F +:101150003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF51 +:10116000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF62 +:10117000FFFFFFFEF0000000000FF0000000000F76 +:10118000F0000000000FF1FFFFFFFF8FF1FFFFF8FD +:10119000888FF1FFFFF8888FF1FFFFF8888FF1FF4C +:1011A000FFFFFF8FF0000000000FF0000000000FB5 +:1011B000F0000000000FF1FFFFFFFF8FF10DDDFEDB +:1011C0004A8FF10AAAFFCD8FF10888FE5F8FF11ACE +:1011D000AAFFFF8FF1FFFFFFFF8FF1FFFFFFFF8FE0 +:1011E000F1FFFF00008FF10C017FFF8FF16FFF46D1 +:1011F000318FF16C3F56B78FF11FFF56B78FF1FF5C +:10120000FF46318FF1FFFF77B58FF1FFFF77B58F85 +:10121000F10C0177B58FF16FFF46318FF16C3F7F95 +:10122000FF8FF11FFF00008FF1FFFFFFFF8FF1FF26 +:10123000FFFFFF8FF1FFFFFFFF8FF100002AA48F58 +:10124000F1000055228FF1E0002AA48FF1FFFFFF8B +:10125000FF8FF0000000000FF0000000000FF00012 +:101260000000000F7FFFFFFFFFFE7FFFFFFFFFFE7D +:101270003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF30 +:10128000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF41 +:10129000FFFFFFFEF0000000000FF0000000000F55 +:1012A000F0000000000FF1FFFFFFFF8FF1FFFFF8DC +:1012B000888FF1FFFFF8888FF1FFFFF8888FF1FF2B +:1012C000FFFFFF8FF0000000000FF0000000000F94 +:1012D000F0000000000FF1FFFFFFFF8FF1FFFFFFA5 +:1012E000FF8FF1FFFFFFFF8FF1FFFFFFFF8FF1FF88 +:1012F000FFFFFF8FF180F01F018FF180F01F018F42 +:10130000F19CF39FF98FF19CF39FF98FF19CF39F70 +:10131000F98FF19CF39FF98FF180F01C018FF18020 +:10132000F01C018FF1FCFF9CF98FF1FCFF9CF98F01 +:10133000F1FCFF9CF98FF1FCFF9CF98FF100E01CA0 +:10134000018FF100E01C018FF1FFFFFFFF8FF1FF24 +:10135000FFFFFF8FF1FFFFFFFF8FF1FFFFFFFF8F09 +:10136000F1FFFFFFFF8FF1FFFFFFFF8FF1FFFFFF97 +:10137000FF8FF0000000000FF0000000000FF000F1 +:101380000000000F7FFFFFFFFFFE7FFFFFFFFFFE5C +:101390003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF0F +:1013A000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF20 +:1013B000FFFFFFFEFFFFFFFFFFFFFDFFFFFFFFFF40 +:1013C000F8FFFFFFFFFFF07FFFFFFFFFE03FFFFFA2 +:1013D000FFFFF8FFFFFFFFFFF8FFFFFFFFFFF8FF32 +:1013E000FFFFFFFFF8E7FFFFFFFFF8E7FFE1FFFF69 +:1013F000F8E3FF007FFFF8F3FE0C1FFFF8F3F87F20 +:101400000FFFF8F1F0FFC7FFF8F9E3FFE3FFF8F88B +:10141000E7FFF1FFF8FC47FFF8FFF8FE0FFFFCFFC6 +:10142000F8FF1FFFFFFFF8FF1FFFFFFFF8FE0FFF92 +:10143000FFFFF8FE47FFFFFFF8FC63FFFFFFF8FC2C +:10144000F0FFFFFFF8F8F87FFFFFF8F9FE1FFFFF3E +:10145000F8F1FF07FFFFF8E3FFC1FFFFF8C7FFF058 +:101460001FFFF8C7FFFC07FFF8CFFFFFC7FFF8FF1C +:10147000FFFFFFFFF8FFFFFFFFFFF8FFFFFFFFBFCA +:10148000F8FFFFFFFF9FF8000000000FF8000000CA +:101490000007F8000000000FFFFFFFFFFF9FFFFFA6 +:1014A000FFFFFFBF7FFFFFFFFFFE7FFFFFFFFFFE8E +:1014B0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFEE +:1014C000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFFFF +:1014D000FFFFFFFEFFFFFFFFFFFFFDFFFFFFFFFF1F +:1014E000F8FFFFFFFFFFF07FFFFFFFFFE03FFFFF81 +:1014F000FFFFF8FFFFFFFFFFF8FFFFFFFFFFF8FF11 +:10150000FFFFFFFFF8E7FFFFFFFFF8E7C00003FF63 +:10151000F8E3C00003FFF8F3CFFFFFFFF8F3CFFFBE +:10152000FFFFF8F1CFFFFFFFF8F9CFFFFFFFF8F85B +:10153000CFFFFFFFF8FC4FFFFFFFF8FE0FFFFFFF9D +:10154000F8FF0FFFFFFFF8FF0FFFFFFFF8FF8FFF10 +:10155000FFFFF8FFC7FFFFFFF8FFC3FFFFFFF8FF24 +:10156000C0FFFFFFF8FFC87FFFFFF8800E1FFFFFDF +:10157000F8800F07FFFFF8FFFFC1FFFFF8FFFFF044 +:101580001FFFF8FFFFFC07FFF8FFFFFFC7FFF8FF93 +:10159000FFFFFFFFF8FFFFFFFFFFF8FFFFFFFFBFA9 +:1015A000F8FFFFFFFF9FF8000000000FF8000000A9 +:1015B0000007F8000000000FFFFFFFFFFF9FFFFF85 +:1015C000FFFFFFBF7FFFFFFFFFFE7FFFFFFFFFFE6D +:1015D0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFCD +:1015E000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFFDE +:1015F000FE3FFFFEFFFFFE3FFFFFFFFFFE3FFFFF3F +:10160000FFFFFE3FFFFFFFFFFE3FFFFFFFFFBE3D6F +:10161000FFFFFFFE3E3C7FFFFFFC3E3C3FFFFFF82D +:101620003E3C1FFFFFF0FE3F0FFFFFE1FE3F87FF45 +:10163000FFC3FE3FC3FFFF87FE3FE1FFFF8FFE3F7B +:10164000F1FFFF0FFE3FF0FFFF1FFE3FF8FFFF1F00 +:10165000FE3FF8FFFE1FFE3FFC7FFE3FFE3FFC7F8C +:10166000FE3FFE3FFC7FFE3FFE3FFC7FFE3FFE3F16 +:10167000FC7FFE3FFFFFFC7FFE3FFFFFFC7FFE1F66 +:10168000FFFFFC7FFF1FFFFFF8FFFF1FFFFFF8FFBB +:10169000FF0FFFFFF0FFFF8FFFFFF1FFFF87FFFF4F +:1016A000E1FFFFC3FFFFC3FFFFE1FFFF87FFFFF085 +:1016B000FFFF07FFFFF83FFC0FFFFFFC0FF03FFFAE +:1016C000FFFE00007FFFFFFF8001FFFFFFFFF00F25 +:1016D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:1016E000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFE0C +:1016F0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFAC +:10170000FFF03FFFFFFFFFFC7FFEFFFFFFFE7FFEBE +:101710007FFFFFFEFFFE3FFFFFFFFFFE1FFFFFFFFC +:10172000FFFE0FFFFFFFFFFE07FFFFFFFFFE03FFB0 +:10173000FFFFFFFE01FFFFFFFFFE01FFFFFFFFFCBA +:1017400000FFFFFFFFF800FFFFFFFFF000FFFFFFBC +:10175000FFE0007FFFFFFFE0007FFFFFFFC0007F93 +:10176000FFFFFF80007FFFFFFF00007EFFFFFF0005 +:10177000007E7FFFFE0000FE3FFFFC0000FF1FFF1A +:10178000FC0000FE0FFFF80001FE07FFF80001FE5D +:1017900003FFF00003FC01FFF00007FC01FFF00075 +:1017A0000FF801FFF0001FF000FFF0001FF000FF36 +:1017B000F0003FE0007FF8007FC0007FF800FF806E +:1017C000007FFC00FF00007FFC01FF00007FFE01A6 +:1017D000FE00007FFE03FC00007FFF03F80000FF17 +:1017E000FF83F80000FFFFC7F80000FFFFE3F000F1 +:1017F00001FFFFF3F00003FFFFFFF00007FFFFFF13 +:10180000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFEEA +:101810003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF8A +:10182000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF9B +:10183000FFC1FFFEFFFFFF01FFFFFFFFFC01FFFFF6 +:10184000FFFFF001FFFFFFFFC001FFFFFFFF0007E9 +:10185000FFFFFFFC001FFFFFFFF0007F9FFFFFE087 +:1018600001FE0FFFFFC007F807FFFFC01FE007FFE3 +:10187000FFC07F8007FFFFE1FE001FFFFFFFF800B2 +:101880003FFFFFFFE001FFFFFFFF8003FFFFFFFEC1 +:10189000000FFFFFFFF8003FFFFFFFE000FE0FFF1C +:1018A000FFC003FC07FFFFC00FE007FFFFC03FC002 +:1018B00007FFFFC0FE000FFFFFFFFC003FFFFFFF21 +:1018C000E0007FFFFFFFC003FFFFFFFF0001FFFFFE +:1018D000FFFE0001FFFFFFFE0000FFFFFFFE000113 +:1018E000FFFFFFFF0001FFFFFFFFFFFFFFFFFFFF05 +:1018F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:10190000FFFFFFFFFFFFFFFFE00FFFFFFFFFC0072D +:10191000FFFFFFFF8007FFFFFFFF8007FFFFFFFFC5 +:10192000C00FFFFF7FFFE01FFFFE7FFFFFFFFFFEF7 +:101930003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF69 +:10194000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF7A +:10195000FFFFFFFEF00000001FFFF00000000FFF80 +:10196000F000000007FFF1C00FF8C3FFF1C00FF84F +:10197000E1FFF1C00FF8F0FFF1C00FF8F87FF1C000 +:101980000FF8FC3FF1C00FF8FE1FF1C00000FF0F81 +:10199000F1C00000FF8FF1C00000FF8FF1FFFFFFDB +:1019A000FF8FF1FFFFFFFF8FF1FFFFFFFF8FF1FFC1 +:1019B000FFFFFF8FF1FFFFFFFF8FF1FFFFFFFF8FA3 +:1019C000F1FFFFFFFF8FF1FFFFFFFF8FF1FFFFFF31 +:1019D000FF8FF1C00000038FF1C00000038FF1C042 +:1019E0000000038FF1C7FFFFE38FF1C7FFFFE38F15 +:1019F000F1C60000E38FF1C60000E38FF1C60000DE +:101A0000E38FF1C7FFFFE38FF1C7FFFFE38FF1C65D +:101A10000000E38FF1C60000E38FF1C60000E38F02 +:101A2000F1C7FFFFE38FF1C7FFFFE38FF1C7FFFFB0 +:101A3000E38FF0000000000FF0000000000FF00046 +:101A40000000000F7FFFFFFFFFFE7FFFFFFFFFFE95 +:101A50003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF48 +:101A6000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF59 +:101A7000FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF77 +:101A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:101A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:101AA000FE3FFFFFFFFFFE3FFFFFFFFFFE3FFFFF89 +:101AB000FFFFFE3FFFFFFFFFFE3FFFFFFFFFFE3F79 +:101AC000FFFFFFFFFE3FFFFFFFFFFE3FFFFFFFFFA8 +:101AD000FE3FFFFFFFFFFE3FFFFFFFFFFE3FFFFF59 +:101AE000FFF000000FFFFFF000000FFFFFF000000D +:101AF0000FFFFFFFFFFFFFFFFFFFFE3FFFFFFFFFA7 +:101B0000FE3FFFFFFFFFFE3FFFFFFFFFFE3FFFFF28 +:101B1000FFFFFE3FFFFFFFFFFE3FFFFFFFFFFE3F18 +:101B2000FFFFFFFFFE3FFFFFFFFFFE3FFFFFFFFF47 +:101B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:101B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:101B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:101B6000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFE87 +:101B70003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF27 +:101B8000FFF03FFE00007FFC7FFE00007FFE7FFC39 +:101B900000003FFEFFFC7FFE3FFFFFFC7FFE3FFF9C +:101BA000FFFC7FFE3FFFFC000000001FF80000006C +:101BB000000FF00000000007F1FFFFFFFFC7F1FF7B +:101BC000FFFFFFC7F1FFFFFFFFC7F00000000007A6 +:101BD000F8000000000FFC000000001FFFFFFFFFE7 +:101BE000FFFFFC7FFFFFFE3FFC7FFFFFFE3FFC7F10 +:101BF000FFFFFE3FFC7F8FF8FE3FFC7F8FF8FE3F2C +:101C0000FC7F8FF8FE3FFC7F8FF8FE3FFC7F8FF854 +:101C1000FE3FFC7F8FF8FE3FFC7F8FF8FE3FFC7F8E +:101C20008FF8FE3FFC7F8FF8FE3FFC7F8FF8FE3F72 +:101C3000FC7F8FF8FE3FFC7F8FF8FE3FFC7F8FF824 +:101C4000FE3FFC7F8FF8FE3FFC7F8FF8FE3FFC7F5E +:101C50008FF8FE3FFC7F8FF8FE3FFC7FFFFFFE3FCB +:101C6000FC7FFFFFFE3FFC7FFFFFFE3FFC7FFFFF8F +:101C7000FE3FFC7FFFFFFE3FFC3FFFFFFC3FFC0001 +:101C80000000003F7E000000007E7F00000000FE9C +:101C90003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF06 +:101CA000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF17 +:101CB000FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF35 +:101CC000FFFFFFFFFFFFFFFFF007FFFFFFFF8000A9 +:101CD000FFFFFFFE00003FFFFFF807F00FFFFFF0E0 +:101CE0003FFE07FFFFE0FFFF83FFFFC1FFFFE1FFB4 +:101CF000FF87FFFFF0FFFF0FFFFFF87FFF0FFFFFE2 +:101D0000FC7FFE1FFFFFFC3FFE3FFFFFFE3FFC3F4F +:101D1000F3FBFE1FFC7FE1F0FF1FFC7FC0E07F1F95 +:101D2000F87F80407F0FF8FF00003F8FF8FF000032 +:101D30003F8FF8FF00001F8FF8FE00001F8FFFFE8F +:101D400000001FFFFFFE00001FFFFFFE00001FFF3F +:101D5000FFFF00001FFFFFFF00003FFFFFFF00002D +:101D60003FFFFFFF80007FFFFFFF80007FFFFFFF3F +:101D7000C000FFFFFFFFF003FFFFFFFFFC0FFFFFAF +:101D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:101D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:101DA000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFE45 +:101DB0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFE5 +:101DC000FFF03FFFFFFFFFFC7FFFFFFFFFFE600014 +:101DD00000001FFEE00000001FFFE00000001FFFEA +:101DE000E3FFFFFF1FFFE3FFFFFF1FFFE3FFFFFF17 +:101DF00010FFE3FFFFFF10FFE3FFFFFF10FFE3FF14 +:101E0000FFFF18FFE3FFFFFF18FFE3FFFFFF188747 +:101E1000E3FFFFFF1887E3FFFFFF1887E3FFFFFFE4 +:101E200018C7E3FFFFFF18C7E3FFFFFF18C7E3FF73 +:101E3000FFFF18C7E3FFFFFF18C7E3FFFFFF18C747 +:101E4000E3FFFFFF18C7E3FFFFFF18C7E3FFFFFF34 +:101E500018C7E3FFFFFF18C7E3FFFFFF18C7E3FF43 +:101E6000FFFF18C7E3FFFFFF18C7E3FFFFFF18C717 +:101E7000E3FFFFFF18C7E3FFFFFF18C7E000000004 +:101E800018C7E000000018C7E000000018C7FFFFF7 +:101E9000FFFFF8C7FF1FFFFFF8C7FF00000000C7E4 +:101EA000FF00000000C7FF00000000C7FFFFFFFFAA +:101EB000FFC7FFF8FFFFFFC7FFF800000007FFF8AC +:101EC000000000077FF8000000067FFFFFFFFFFE15 +:101ED0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFC4 +:101EE000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFFD5 +:101EF000FFFFFFFEFFFFFFFFFFFFF000007FFFFF80 +:101F0000F000007FFFFFF000007FFFFFF1FFFFFF09 +:101F1000FF0FF1FFFFFFFE0FF1FFFFFFFC0FF1FFCF +:101F2000FFFFF81FF1FFFFFFF03FF1FFFFFFE07F32 +:101F3000F1FFFFFFC0FFF1FFFFFF81FFF1FFFFFF98 +:101F400003FFF1FFFFFE07FFF1FFFFFC0FFFF1FEB4 +:101F50001FF81FFFF1FE0FF03FFFF1FE07E07FFFCC +:101F6000F1FE03C0FFFFF1FF0181FFFFF1FF8003DE +:101F7000FFFFF1FFC007FC7FF1FFE00FFC7FF1FFE7 +:101F8000F01FFC7FF1FFF83FFC7FF1FFFC7FFC7F3F +:101F9000F1FFFFFFFC7FF1FFFFFFFC7FF1FFFFFF81 +:101FA000FC7FF1FFFFFFFC7FF1FFFFFFFC7FF1FFF4 +:101FB000FFFFFC7FF1FFFFFFFC7FF1FFFFFFFC7FD6 +:101FC000F1FFFFFFFC7FF0000000007FF000000049 +:101FD000007FF0000000007FFFFFFFFFFFFFFFFF1B +:101FE000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFE03 +:101FF0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFA3 +:10200000FFF03FFFFFFFFFFC7FFFC001FFFE7FFEF1 +:1020100000007FFEFFF800001FFFFFE0000007FF49 +:10202000FFC0400203FFFF81800181FFFF07842082 +:10203000E0FFFE0F0C30F07FFC1E0C38783FF83EBE +:102040001C387C1FF87C1C3C3E1FF07C3C3C3F0F46 +:10205000F0FC3C3E1F0FE1F87C3E1F87E1F87C3E20 +:102060001F87E1F87C3F1FC7C3F8FC3F0FC3C3F0D5 +:10207000FC3F0FC3C3F0FC3F0FC3C00000000003D0 +:10208000C00000000003C00000000003C00000000A +:102090000003C7F0FC3F0FE3C3F0FC3F0FE3C3F0C6 +:1020A000FC3F0FC3C3F0FC3F0FC3C3F0FC3F0FC3A3 +:1020B000E1F8FC3F1FC7E1F87C3E1F87E1F87C3E5A +:1020C0001F87F0FC7C3E3F0FF07C3C3C3E0FF87CD1 +:1020D0003C3C3E1FFC3E1C387C3FFC1E0C30783FD5 +:1020E000FE0F0C30F07FFF030420C0FFFF81800152 +:1020F00081FFFFC0000003FFFFF000000FFFFFF8AB +:1021000000001FFF7FFE00007FFE7FFFC003FFFE79 +:102110003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF81 +:10212000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF92 +:10213000FFFFFFFEFFFFF003FFFFFFFFF003FFFFC6 +:10214000FFFFF003FFFFFFFFF1E3FFFFFFC001E030 +:1021500000FFFFC001E000FFFFC001E000FFFFC77C +:10216000FFFFF8FFFFC7FFFFF8FFFFC7FFFFF8FF04 +:10217000FFC7FFFFF8FFFFC7FFFFF8FFFFC7FFFF25 +:10218000F8FFFFC7FFFFF8FFFFC7FFFFF8FFFFC71C +:10219000FFFFF8FFFFC7FFFFF8FFFFC7FFFFF8FFD4 +:1021A000FFC7FFFFF8FFFFC7FFFFF8FFFFC7FFFFF5 +:1021B000F8FFFFC7FFFFF8FFFFC7FFFFF8FFFFC7EC +:1021C000FFFFF8FFFFC7FFFFF8FFFFC7FFFFF8FFA4 +:1021D000FFC7FFFFF8FFFFC7FFFFF8FFFFC7FFFFC5 +:1021E000F8FFFFC7FFFFF8FFFFC7FFFFF8FFFFC4BF +:1021F000000008FFFFC4000008FFFFC4000008FF44 +:10220000FFC4000008FFFFC4000008FFFFC7FFFF76 +:10221000F8FFFFC0000000FFFFC0000000FFFFC08C +:10222000000000FF7FFFFFFFFFFE7FFFFFFFFFFEBD +:102230003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF60 +:10224000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF71 +:10225000F00FFFFEFFFFF00FFFFFFFFFE007FFFFA4 +:10226000FFFFC3C3FFFFFFFF87E1FFFFFFFF0FF08B +:10227000FFFFFFFE1FF87FFFFFFC3FFC3FFFFFF863 +:102280007FFE1FFFFFF0FFFF0FFFFFE1FFFF87FF54 +:10229000FFE3FFFFC7FFFFE3FFFFC7FFFFE3FFFF12 +:1022A000C7FFFFE3FFFFC7FFFFE3FFFFC7FFFFE33A +:1022B000FFFFC7FFFFE3FFFFC7FFFFE3FFFFC7FF0E +:1022C000FFE3FFFFC7FFFFE3FFFFC7FFFFE3FFFFE2 +:1022D000C7FFFFE3FFFFC7FFFFE3FFFFC7FFFFE30A +:1022E000FFFFC7FFFFE3FFFFC7FFFFE3FFFFC7FFDE +:1022F000FFE3FFFFC7FFFF83FFFFC1FFFF07FFFFF4 +:10230000E0FFFE1FFFFFF87FFC3FFFFFFC3FFC00EC +:102310000000003FFC000000003FFC000000003F08 +:10232000FFFFFFFFFFFFFFFFC003FFFFFFFFC00333 +:10233000FFFFFFFFE007FFFFFFFFE007FFFFFFFFDB +:10234000F81FFFFF7FFFF81FFFFE7FFFFFFFFFFE6D +:102350003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF3F +:10236000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF50 +:10237000FFFFFFFEF0000000000FF0000000000F64 +:10238000F0000000000FF1FFFFFFFF8FF1FFFFF8EB +:10239000888FF1FFFFF8888FF1FFFFF8888FF1FF3A +:1023A000FFFFFF8FF0000000000FF0000000000FA3 +:1023B000F0000000000FF1FFFFFFFF8FF1FFFFFFB4 +:1023C000FF8FF18FFFFFFF8FF187FFFFFF8FF1E39B +:1023D000FFFFFF8FF1F1FFFFFF8FF1F0FFFFFF8F96 +:1023E000F1F1FFFFFF8FF1E3FFFFFF8FF187FFFFA9 +:1023F000FF8FF18FFFFFFF8FF1FFC0FFFF8FF1FF16 +:10240000C0FFFF8FF1FFC0FFFF8FF1FFFFFFFF8FC6 +:10241000F1FFFFFFFF8FF1FFFFFFFF8FF1FFFFFFD6 +:10242000FF8FF1FFFFFFFF8FF1FFFFFFFF8FF1FF36 +:10243000FFFFFF8FF1FFFFFFFF8FF1FFFFFFFF8F18 +:10244000F1FFFFFFFF8FF1FFFFFFFF8FF1FFFFFFA6 +:10245000FF8FF0000000000FF0000000000FF00000 +:102460000000000F7FFFFFFFFFFE7FFFFFFFFFFE6B +:102470003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF1E +:10248000FFF03FFFFFFFFFFC7FFFFF803FFE7FFF6E +:10249000FF003FFEFFFFFE007FFFFFFFFC00FFFF8E +:1024A000FFFFF801FFFFFFFFF003FFFFFFFFE00763 +:1024B000FFFFFFFFC007FFFFFFFFC007FFFFFFFF9A +:1024C000C007FFFFFFFFC007FFFFFFFFC007FFFFC1 +:1024D000FFFFC007FFE7FFFFC007FFC7FFFFC00701 +:1024E000FF87FFFFC007FF07FFFFC007FE07FFFFD3 +:1024F000C0000007FFFFC0000007FFFFC000000F83 +:10250000FFFF8000000FFFFF0000001FFFFE000024 +:10251000003FFFFC0000007FFFF8000000FFFFF01D +:10252000000001FFFFE0000003FFFFC0000007FF05 +:10253000FF80007FFFFFFF0000FFFFFFFE0001FFA5 +:10254000FFFFFC0003FFFFFFF80007FFFFFFF000A5 +:102550000FFFFFFFE0001FFFFFFFC3803FFFFFFFF4 +:1025600087C07FFFFFFF87C0FFFFFFFF87C1FFFF1F +:10257000FFFF8383FFFFFFFFC007FFFFFFFFC00FC9 +:10258000FFFFFFFF601FFFFFFFFE783FFFFFFFFE23 +:102590003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFFD +:1025A000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FC746 +:1025B000FFFFF1FEFF03FFFFE07FFE03FFFFE03FB1 +:1025C000FC03FFFFE01FF807F007F00FF00F80009B +:1025D000F807E01E00003C03E03C00001E03E07032 +:1025E00000000703E0E000000383F1C001C001C761 +:1025F000FF8003E000FFFF8003E000FFFF0003E037 +:10260000007FFF0003E0007FFE0003E0003FFE00CC +:1026100003E0003FFC0003E0001FFC0003E0001F9C +:10262000FC0003E0001FFC0003E0001FFC0003E0CF +:10263000001FFC0003F0001FFC0001F8001FFC005D +:1026400000FC001FFC00003E001FFE00001F003FBA +:10265000FE00000F803FFF000007803FFF000003E7 +:10266000007FFF80000000FFFF80000000FFFF8070 +:10267000000000FFFF000000007FFE000000003FA0 +:10268000FC000000001FFC060000301FFC0F800053 +:10269000F81FFE1FF007FC3FFFFFFFFFFFFFFFFFDC +:1026A000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFE3C +:1026B0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFDC +:1026C000FFF03FFFFFFFFFFC7FFFF83FFFFE7FFFB4 +:1026D000F01FFFFEFFFFE38FFFFFFFFFE7CFFFFFCE +:1026E000FFFFE7CFFFFFFFFFE7CFFFFFFFFFE1CFD8 +:1026F000FFFFFFFFE1CFFFFFFFFFE7CFFFFFFFFF80 +:10270000E7CFFFFFFFFFE7CFFFFFFFFFE7CFFFFFB1 +:10271000FFFFE1CFFFFFFFFFE1CFFFFFFFFFE7CFAD +:10272000FFFFFFFFE7CFFFFFFFFFE7CFFFFFFFFF49 +:10273000E7CFFFFFFFFFE1CFFFFFFFFFE1CFFFFF8D +:10274000FFFFE7CFFFFFFFFFE7CFFFFFFFFFE3CF75 +:10275000FFFFFFFFE0CFFFFFFFFFE00FFFFFFFFFE7 +:10276000E00FFFFFFFFFE00FFFFFFFFFE00FFFFFA6 +:10277000FFFFE00FFFFFFFFFE00FFFFFFFFFE00F96 +:10278000FFFFFFFFE00FFFFFFFFFC007FFFFFFFF9F +:102790008003FFFFFFFF8003FFFFFFFF8003FFFFBA +:1027A000FFFF8003FFFFFFFF8003FFFFFFFF8003AA +:1027B000FFFFFFFFC007FFFFFFFFC007FFFFFFFF97 +:1027C000E00FFFFF7FFFF01FFFFE7FFFFFFFFFFE19 +:1027D0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFBB +:1027E000FFF03FFFFFFFFFFC7FFFFFFFFFFE7000DA +:1027F0003FFFFFFEF0001FFFFFFFF0000FFFFFFF96 +:10280000F00007FFFFFFF00003FFFFFFF00001FFF4 +:10281000FFFFF00F80FFFFFFF01FC07FFFFFF03FC3 +:10282000E03FFFFFF07FF01FFFFFF07FF00FFFFFA3 +:10283000F07FF007FFFFF07FF003FFFFF03FE001C4 +:10284000FFFFF03FE000FFFFF01FC0007FFFF00F31 +:1028500080003FFFF80000001FFFFC0000000FFF9A +:10286000FE00000007FFFF00000003FFFF800000E4 +:1028700001FFFFC0000000FFFFE00000007FFFF04D +:102880000000003FFFF80000001FFFFC0000000FE9 +:10289000FFFE00000007FFFF00000003FFFF8000B5 +:1028A0000007FFFFC000000FFFFFE000001FFFFF59 +:1028B000F000003FFFFFF800007FFFFFFC0000FF7B +:1028C000FFFFFE0001FFFFFFFF0003FFFFFFFF8090 +:1028D00007FFFFFFFFC00FFFFFFFFFE01FFFFFFF2E +:1028E000FFF03FFF7FFFFFF87FFE7FFFFFFCFFFE53 +:1028F0003FFFFFFFFFFC0FFFFFFFFFF0000007E0BF +:102900001FF818181818181800003FFC3C3C3C3CF5 +:102910003C3C3E7C3E7C3FFC3FFC0000040006004B +:1029200007000F000F801F803F907F187F1C7E3CA8 +:102930007C3E787E78FE31FE11FC09F80FE01FF82E +:102940003FFC7FFEFFE6FFCEFF9FF33FF07FF8FFE7 +:10295000FDFE7FFE7FFC3FF81FF003C000E003C0D8 +:102960000F001C3810F003C00F001C3810F003E0FB +:1029700007E007E00000000003C003800180018041 +:102980000180199039B8318C618C618660066006CF +:10299000600E700C301C1C780FF003C003800380A5 +:1029A00003C007C007E00FE00E701E701E701E7897 +:1029B0003FF83FFC7E7C7E7E7FFE7FFE11408200E2 +:1029C00021208FE023FC82004A23E200FE209FF0BA +:1029D00013F880802220C0804221BFF0FBFA88805B +:1029E00002208480022084801A208080E3FE82807E +:1029F000020101000F421FC0784110400840904082 +:102A000008421FC008411040FFFD104008405FC051 +:102A10000840800008413FE0084325201041252060 +:102A2000104125202041252040417FF07FF848803B +:102A3000020049000201FFF00201001002027F20A3 +:102A40002200410023F07F00220008002200FF80C6 +:102A5000220088802200888022008A80220089004B +:102A6000FFFC080023F21FC022111040FBF0904031 +:102A700022121FC02A11104033F1104060005FC0C5 +:102A8000AFFC800020413FE0224325202279252011 +:102A900022412520A541252048FD7FF01083DFC07D +:102AA00010825040208250402FFFDFC060825200D1 +:102AB00061C25200A1C25FE022A3D20022A2510053 +:102AC00024925100288E5090308BD4502082583060 +:102AD00020801010104047C017FC44402003F440F1 +:102AE00023F844406208C440A3F8E4402001544065 +:102AF0002FFD44402806444023F8444020404450E1 +:102B000020404850214050302080400020921FC07B +:102B10003DF990402090904040901FC07BFF000006 +:102B2000A0013FE021F90200FD09020021097FF028 +:102B300021F90500210945002909888031F9107023 +:102B40002108202025004300202070F8380133019F +:102B50002D0125011E0117010F010A010301FC00CF +:102B6000F200EB00E400E000DB00D300CD00C70082 +:102B7000C200BC00B800B200AD00A600A2009E00DA +:102B80009800940091008E008A00870084008100E4 +:102B90007E0072006D0068003E0053656C656374D2 +:102BA000205469700000000000003E5B4F5B3E3E19 +:102BB0006B4F6B3E1C3E7C3E1C183C7E3C181C57E9 +:102BC0007D571C1C5E7F5E1C00183C1800FFE7C38D +:102BD000E7FF0018241800FFE7DBE7FF30483A065C +:102BE0000E2629792926407F050507407F05253FC8 +:102BF0005A3CE73C5A7F3E1C1C08081C1C3E7F14B4 +:102C0000227F22145F5F005F5F06097F017F0066FD +:102C100089956A606060606094A2FFA29408047E57 +:102C2000040810207E201008082A1C08081C2A0806 +:102C3000081E101010100C1E0C1E0C30383E3830C0 +:102C4000060E3E0E06000000000000005F000000BF +:102C500007000700147F147F14242A7F2A122313ED +:102C600008646236495620500008070300001C2201 +:102C700041000041221C002A1C7F1C2A08083E0833 +:102C80000800807030000808080808000060600034 +:102C900020100804023E5149453E00427F40007228 +:102CA000494949462141494D331814127F1027459F +:102CB0004545393C4A4949314121110907364949BD +:102CC0004936464949291E000014000000403400DE +:102CD0000000081422411414141414004122140892 +:102CE00002015909063E415D594E7C1211127C7F4A +:102CF000494949363E414141227F4141413E7F4958 +:102D00004949417F090909013E414151737F080842 +:102D1000087F00417F41002040413F017F0814228D +:102D2000417F404040407F021C027F7F0408107FAB +:102D30003E4141413E7F090909063E4151215E7FE6 +:102D400009192946264949493203017F01033F40B9 +:102D500040403F1F2040201F3F4038403F63140841 +:102D6000146303047804036159494D43007F4141D2 +:102D7000410204081020004141417F040201020485 +:102D80004040404040000307080020545478407FF2 +:102D9000284444383844444428384444287F38542C +:102DA00054541800087E090218A4A49C787F0804D3 +:102DB000047800447D40002040403D007F102844BE +:102DC0000000417F40007C047804787C080404788B +:102DD0003844444438FC1824241818242418FC7C53 +:102DE00008040408485454542404043F44243C4038 +:102DF00040207C1C2040201C3C4030403C4428109B +:102E000028444C9090907C4464544C4400083641D3 +:102E100000000077000000413608000201020402B1 +:102E20003C2623263C1EA1A161123A4040207A385C +:102E300054545559215555794121545478412155BF +:102E400054784020545579400C1E52721239555511 +:102E50005559395454545939555454580000457CE7 +:102E6000410002457D420001457C40F0292429F0C3 +:102E7000F0282528F07C545545002054547C547C7F +:102E80000A097F4932494949323248484832324A70 +:102E90004848303A4141217A3A42402078009DA08A +:102EA000A07D39444444393D4040403D3C24FF240A +:102EB00024487E4943662B2FFC2F2BFF0929F6203F +:102EC000C0887E090320545479410000447D41307C +:102ED00048484A32384040227A007A0A0A727D0D08 +:102EE00019317D2629292F28262929292630484DC0 +:102EF0004020380808080808080808382F10C8AC0F +:102F0000BA2F102834FA00007B000008142A14227B +:102F100022142A14089500220095AA005500AAAA96 +:102F200055AA55AA000000FF00101010FF0014144D +:102F300014FF001010FF00FF1010F010F014141414 +:102F4000FC001414F700FF0000FF00FF1414F40449 +:102F5000FC141417101F10101F101F1414141F003E +:102F6000101010F0000000001F101010101F1010A3 +:102F70001010F010000000FF1010101010101010B2 +:102F800010FF10000000FF140000FF00FF00001FF2 +:102F900010170000FC04F414141710171414F40490 +:102FA000F40000FF00F714141414141414F700F7BD +:102FB000141414171410101F101F141414F41410E8 +:102FC00010F010F000001F101F0000001F14000080 +:102FD00000FC140000F010F01010FF10FF14141487 +:102FE000FF141010101F00000000F010FFFFFFFF83 +:102FF000FFF0F0F0F0F0FFFFFF0000000000FFFF27 +:103000000F0F0F0F0F38444438447C2A2A3E147E99 +:1030100002020606027E027E02635549416338447D +:10302000443C04407E201E2006027E020299A5E751 +:10303000A5991C2A492A1C4C7201724C304A4D4DEC +:10304000303048784830BC625A463D3E49494900D4 +:103050007E0101017E2A2A2A2A2A44445F444440F0 +:10306000514A444040444A51400000FF0103E0807F +:10307000FF000008086B6B083612362436060F096D +:103080000F06000018180000001010003040FF016B +:1030900001001F01011E00191D1712003C3C3C3CA1 +:1030A000000000000000000000240027002A0000AB +:1030B000000000250028002B00000000002300264F +:1030C00000290004040404040404040202020202AD +:1030D00002030303030303010204081020408001DC +:1030E0000204081020010204081020AED5F0A83F09 +:1030F000D300408D14A1C8DA1281CFD9F1DB40A4EE +:10310000A6AF200021007F220007506C6561736527 +:103110002077616974004144433A200074656D7002 +:103120003A2000536574206D6561737572656400A3 +:10313000537465703A20003030300076312E364CB2 +:10314000310056005600430000800080018001805D +:103150000380078007F00FF00FE01FC001C001805F +:103160000180018001000100124812481FF8E007A9 +:103170002E142C04E80720042004E007200428145F +:10318000E0071FF8124812484552524F5200484F6C +:103190004C44004845415400574F524B5900424F50 +:1031A0004F535400534C454550004F4646000000D5 +:1031B0007E007F00738061C061E073F03FF81FFC08 +:1031C0000FFE07FF03FF01FE00FC00780030010244 +:1031D00004081020408000000008000201000003E5 +:1031E000040700000000000000003B2EA03811245E +:1031F0001FBECFEFD8E0DEBFCDBF12E0A0E0B1E050 +:10320000ECE4FCE702C005900D92A237B107D9F7B4 +:1032100027E0A2E7B2E001C01D92A53CB207E1F7AA +:1032200018E1C6EFD8E104C02197FE010E941C3CC2 +:10323000C53FD107C9F70E94FF2E0C94193E0C948C +:1032400000004F925F926F927F928F929F92AF9207 +:10325000BF92CF92DF92EF92FF920F931F93CF9383 +:10326000DF9300D000D0CDB7DEB74B015C01290160 +:103270003A016701780120E030E0A9010E9421397C +:1032800087FDA6C020E030E0A901C301B2010E9481 +:10329000213987FD9DC020E030E0A901C801B601B9 +:1032A0000E94213987FD94C081E0209185073091EB +:1032B00086072130310509F080E08093A6078092CF +:1032C0006B0790926C07A0926D07B0926E074092C8 +:1032D0006F07509270076092710770927207C092E8 +:1032E0007307D0927407E0927507F09276076091A9 +:1032F000990770919A0780919B0790919C070E9473 +:10330000263920E030E04AE754E40E945A3B6983C2 +:103310007A838B839C838092770790927807A09220 +:103320007907B0927A079B01AC01C301B2010E94F8 +:1033300087392B013C0140927B0750927C076092B9 +:103340007D0770927E0729813A814B815C81C7019C +:10335000B6010E945A3B6B017C01C0927F07D0925C +:103360008007E0928107F092820780918307909115 +:103370008407019769F5A501940160E070E0CB0135 +:103380000E94ED3A609377077093780780937907EE +:1033900090937A07A301920160E070E0CB010E9454 +:1033A000ED3A60937B0770937C0780937D07909341 +:1033B0007E07A701960160E070E0CB010E94ED3A24 +:1033C00060937F07709380078093810790938207B3 +:1033D0000F900F900F900F90DF91CF911F910F9151 +:1033E000FF90EF90DF90CF90BF90AF909F908F9025 +:1033F0007F906F905F904F90089580389105B0F462 +:103400006034710598F4EEECF1E390E1969FD00101 +:10341000A0781124A80F6770E60FF11D9491AE53A8 +:10342000BD4F442321F08C91982B9C930895909547 +:103430008C919823FACFDF92EF92FF920F931F9314 +:10344000CF93DF937C01EB01D22E8B01040F111D72 +:10345000C8010134110514F080E490E0C817D907C1 +:103460003CF44D2DBE01C7010E94FD192196F0CFFD +:10347000DF91CF911F910F91FF90EF90DF90089512 +:10348000CF92DF92EF92FF920F931F93CF93DF9330 +:103490006B01122FEC017C01E40EF11CCE15DF054F +:1034A00044F4202F412FB601CE010E941B1A219611 +:1034B000F5CFDF91CF911F910F91FF90EF90DF90AB +:1034C000CF9008952F923F924F925F926F927F928A +:1034D0008F929F92AF92BF92CF92DF92EF92FF9224 +:1034E0000F931F93CF93DF9300D01F92CDB7DEB71A +:1034F000C22ED12C9601280F391F37FD4FC08038BE +:1035000091050CF04BC0E9824A017B013C01402E41 +:10351000512C160127E0220E311C93E0359427949C +:103520009A95E1F78B01B12CA12C1B821A82EA81BA +:10353000FB8183E0F595E7958A95E1F7EA0DFB1DA0 +:10354000E80DF91DE4918A819B818770992720E815 +:1035500030E002C0359527958A95E2F7C901F0E081 +:10356000E223F923EF2B41F04981B8018A819B8145 +:10357000860D971D0E94FD198A819B8101969B8370 +:103580008A838C159D059CF2A20CB31C0F5F1F4F04 +:10359000C8018E199F09841595053CF20F900F9074 +:1035A0000F90DF91CF911F910F91FF90EF90DF90DF +:1035B000CF90BF90AF909F908F907F906F905F90D3 +:1035C0004F903F902F90089580E0E2ECF2E081115F +:1035D0008FEF002481938193819381930394D1F79A +:1035E00008950895AF92BF92CF92DF92EF92FF922B +:1035F0000F931F93CF93DF936C017B018B01040F1B +:10360000151FEB015E01AE18BF08C017D10759F0B6 +:103610006991D601ED91FC910190F081E02DC601F8 +:103620000995892B79F7C501DF91CF911F910F91F2 +:10363000FF90EF90DF90CF90BF90AF900895FC0186 +:10364000538D448D252F30E0842F90E0821B930B07 +:10365000541710F0CF96089501970895FC01918DAD +:10366000828D981761F0A28DAE0FBF2FB11D5D96B0 +:103670008C91928D9F5F9F73928F90E008958FEF52 +:103680009FEF0895FC01918D828D981731F0828D06 +:10369000E80FF11D858D90E008958FEF9FEF08955D +:1036A000FC01918D228D892F90E0805C9F4F821BC1 +:1036B00091098F739927089582EC96E00E94501B20 +:1036C00021E0892B09F420E0822F089580E090E02A +:1036D000892B29F00E945C1B81110C940000089535 +:1036E000FC01A48DA80FB92FB11DA35ABF4F2C9177 +:1036F000848D90E001968F739927848FA689B7896E +:103700002C93A089B1898C91837080648C93938D64 +:10371000848D981306C00288F389E02D80818F7D07 +:1037200080830895EF92FF920F931F93CF93DF93BF +:10373000EC0181E0888F9B8D8C8D98131AC0E889ED +:10374000F989808185FF15C09FB7F894EE89FF89BC +:103750006083E889F98980818370806480839FBF5A +:1037600081E090E0DF91CF911F910F91FF90EF905A +:103770000895F62E0B8D10E00F5F1F4F0F7311276A +:10378000E02E8C8D8E110CC00FB607FCFACFE889A5 +:10379000F989808185FFF5CFCE010E94701BF1CFA2 +:1037A000EB8DEC0FFD2FF11DE35AFF4FF0829FB719 +:1037B000F8940B8FEA89FB8980818062CFCFCF9309 +:1037C000DF93EC01888D8823B9F0AA89BB89E88949 +:1037D000F9898C9185FD03C0808186FD0DC00FB6EF +:1037E00007FCF7CF8C9185FFF2CF808185FFEDCF6D +:1037F000CE010E94701BE9CFDF91CF9108958330F5 +:1038000081F028F4813099F08230A9F00895873052 +:10381000A9F08830C9F08430B1F4809180008F7DA8 +:1038200003C0809180008F7780938000089584B5D5 +:103830008F7784BD089584B58F7DFBCF8091B000D4 +:103840008F778093B00008958091B0008F7DF9CF7D +:10385000CF93DF93282F30E0F901EA52FE4C849198 +:10386000F901E952FF4CD491F901ED53FF4CC49199 +:10387000CC23A1F081110E94FF1BEC2FF0E0EE0F92 +:10388000FF1FE754FF4CA591B491EC91ED2381E02B +:1038900090E009F480E0DF91CF91089580E090E01E +:1038A000FACF1F93CF93DF93282F30E0F901EA522C +:1038B000FE4C8491F901E952FF4CD491F901ED538A +:1038C000FF4CC491CC23A9F0162F81110E94FF1B3D +:1038D000EC2FF0E0EE0FFF1FE155FF4CA591B491E6 +:1038E0008FB7F894EC91111108C0D095DE23DC93CA +:1038F0008FBFDF91CF911F910895DE2BF8CFCF932B +:10390000DF9390E0FC01E952FF4C24918D539F4CD2 +:10391000FC0184918823C9F090E0880F991FFC0175 +:10392000EB55FF4CA591B491FC01E155FF4CC591BD +:10393000D49161110DC09FB7F8948C91209582238A +:103940008C938881282328839FBFDF91CF9108958E +:10395000623051F49FB7F8943C91822F8095832375 +:103960008C93E8812E2BEFCF8FB7F894EC912E2B10 +:103970002C938FBFEACFCF93DF93EC0161E089E016 +:103980000E947F1C209731F460E089E0DF91CF91A5 +:103990000C94511CCF3FD10511F461E0F6CFEFED4F +:1039A000F1E3E491E33029F140F4E130B1F0E230A9 +:1039B000D9F0C038D1058CF7E7CFE73021F1E830F6 +:1039C00051F1E430B1F780918000806280938000F3 +:1039D000D0938B00C0938A0004C084B5806884BDF6 +:1039E000C7BDDF91CF91089584B5806284BDC8BD05 +:1039F000F8CF80918000806880938000D093890008 +:103A0000C0938800EECF8091B00080688093B000B2 +:103A1000C093B300E6CF8091B00080628093B00085 +:103A2000C093B400DECF3FB7F89480918B029091A1 +:103A30008C02A0918D02B0918E0226B5A89B05C084 +:103A40002F3F19F00196A11DB11D3FBFBA2FA92F1D +:103A5000982F8827BC01CD01620F711D811D911D1A +:103A600042E0660F771F881F991F4A95D1F7089586 +:103A70008F929F92AF92BF92CF92DF92EF92FF927E +:103A80004B015C010E94131D6B017C010E94131D00 +:103A90006C197D098E099F09683E73408105910567 +:103AA000A8F321E0821A9108A108B10888EEC80E97 +:103AB00083E0D81EE11CF11C81149104A104B1041F +:103AC00029F7FF90EF90DF90CF90BF90AF909F903D +:103AD0008F9008952FB7F8946091870270918802B3 +:103AE0008091890290918A022FBF089584E9809382 +:103AF000BC008091BC0084FDFCCF08958093BB0086 +:103B000084E88093BC008091BC0087FFFCCF0895BF +:103B100084EA8093BC008091BC0087FFFCCF88E7DB +:103B20000C947E1D0E94881D80E48093BB0084E875 +:103B30008093BC00E2ECF2E09091BC0097FFFCCFD8 +:103B400091919093BB008093BC0096E0E23CF90712 +:103B500099F78091BC0087FFFCCF0C94761DCF9322 +:103B6000C82F0E94881D80E00E947E1D8C2F0E941D +:103B70007E1DCF910C94761D480F592F511D413851 +:103B8000510514F040E850E0481BFB0177FD3796E3 +:103B900033E0F595E7953A95E1F7F695FE2FEE2798 +:103BA000F795E795E80FF91FEE53FD4F67707727FC +:103BB00081E090E001C0880F6A95EAF7382F213044 +:103BC00041F4415078F08191DF011197832B8C9360 +:103BD000F8CF8095415030F09191DF0111979823F3 +:103BE0009C93F8CF0895CF92DF92EF92FF920F93BC +:103BF000CF93DF936C017B01C42FD22F202F0E9423 +:103C0000BC1DB7016D0F711D6150710960347105E4 +:103C10002CF4202F4C2FC6010E94BC1D202F4D2FAD +:103C2000B701C6010E941B1AC6018C0F911D202FDF +:103C30004D2FB7010197DF91CF910F91FF90EF903A +:103C4000DF90CF900C941B1A2F923F924F925F926D +:103C50006F927F928F929F92AF92BF92CF92DF929C +:103C6000EF92FF920F931F93CF93DF93CDB7DEB701 +:103C70002A970FB6F894DEBF0FBECDBF9A83898313 +:103C80006A3061F5DC0152968C91B8E08B9F90010F +:103C90001124E981FA8186859785820F931F978782 +:103CA00086871586148681E090E02A960FB6F894F0 +:103CB000DEBF0FBECDBFDF91CF911F910F91FF905F +:103CC000EF90DF90CF90BF90AF909F908F907F90BC +:103CD0006F905F904F903F902F9008956D3019F343 +:103CE00029813A813A872987D9011C96AD90BC90E9 +:103CF000B0E8AB16B1040CF07BC0F901C684D784E0 +:103D0000F0E4CF16D1040CF073C0D90152966C9038 +:103D1000529745E09501649E200D311D1124121625 +:103D200013060CF065C0262C312C910153E0220FB4 +:103D3000331F5A95E1F72C0D3D1D121613060CF09A +:103D400057C05196BC91BB83E985FA85F089FC8305 +:103D5000649FB00111249B012B55344D3A83298374 +:103D6000712CE981FA818491F5E07F1201C080E035 +:103D7000460138E0532E282F30E03E832D834C80BF +:103D800080FF4B80411004C03B818C813817E1F0EB +:103D900010E000E00615C0F4D501A00FB11FB887F0 +:103DA000AF83F12CE12CE61460F4B701680D791DA6 +:103DB000442D8F8198850E94FD19BFEFEB1AFB0AF5 +:103DC000F2CF0F5F1F4FE6CF8D819E81959587952E +:103DD0005A94820C931C5110CECF7394E981FA81CE +:103DE0003196FA83E983A20CB31CF6E07F12B9CFB7 +:103DF000A985BA8552962C915297422F50E01C9675 +:103E00008D919C91B6E02B9F800D911D1124E98529 +:103E1000FA85958784872389222309F444CF6AEFA2 +:103E200064039001659F300D112420583F4F2817DF +:103E300039070CF038CFDF010190F081E02D0190BF +:103E4000F081E02D6AE0CD0109952DCF0F931F93EE +:103E5000CF93DF938C01D0E0C0E0F801EC0FFD1FA1 +:103E60006491662341F08DEA97E00E94241E892B1D +:103E700011F02196F2CFCE01DF91CF911F910F91DA +:103E80000895682F8DEA97E00C94241E90E080E05E +:103E9000089580917A00806980937A008EE48093FF +:103EA0007C0061E070E080E090E00E94381D83B704 +:103EB000817F826083BF80E130E020E093B7916032 +:103EC00093BF889593B79E7F93BF90917A0096FD9C +:103ED000FCCF4091780050917900240F351F81501C +:103EE00069F780917A008F7780937A0084E0369525 +:103EF00027958A95E1F750E040E064EB7BE281E1B1 +:103F000090E00E945B3AC901089580917A0080692F +:103F100080937A0088EC80937C0064E170E080E01C +:103F200090E00E94381D83B7817F826083BF80E26A +:103F300070E060E093B7916093BF889593B79E7FE0 +:103F400093BF90917A0096FDFCCF2091780030913C +:103F50007900620F731F815069F780917A008F7723 +:103F600080937A00769567957695679562527A4048 +:103F700090E080E00E94263926EF38E24CE151E4DF +:103F80000E945A3B089590917A00906990937A002C +:103F90008E50806480937C0083B7817F826083BF72 +:103FA00020E290E080E033B7316033BF889533B7CB +:103FB0003E7F33BF30917A0036FDFCCF40917800D0 +:103FC00050917900840F951F215069F720917A0054 +:103FD0002F7720937A0025E0969587952A95E1F72B +:103FE00008958FE00E94C31FA0919202B0919302A6 +:103FF0009C010E94DE3A0E94283928E539E743E314 +:1040000053E40E945A3B0E94D33BCB010895209178 +:10401000A00230E0EEE1F2E090E080E0AF014E512E +:1040200052404217530724F44191840F911DF6CF5B +:10403000089580919802882369F086E00E94281CE8 +:10404000892B41F06AE070E080E090E00E94381D2A +:104050001092980208950F931F93CF938091480177 +:10406000882399F0CFEF0FEE11E061E085E00E9428 +:10407000511CC8010197F1F760E085E00E94511CD6 +:10408000C8010197F1F7C15081F7CF911F910F91AE +:1040900008952F923F924F925F926F927F928F92EC +:1040A0009F92AF92BF92CF92DF92EF92FF920F93C7 +:1040B0001F93CF93DF9310E000E0D0E0C0E03EE339 +:1040C000E32EF12C40ECC42ED12CAA24A394B12CC5 +:1040D00060E2662E712C70E4272E312C4C2E86E087 +:1040E0000E94281C21E0892B09F020E020939802EF +:1040F000F0929F02E0929E02D0929D02C0929C029A +:10410000B0929B02A0929A0282E890E09093AB0258 +:104110008093AA028091AA029091AB02959587950F +:10412000582E9FE1591243C0F0929F02E0929E02E6 +:10413000D0929D02C0929C02B0929B02A0929A02E1 +:10414000EEEBF0E0F093AB02E093AA029FE5592E6C +:104150000E94E41A82E08093BF071093BA0700938D +:10416000B907E0E3F0E0F093BC07E093BB078EE50E +:104170000E94411F1092BA071092B9077092BC07B3 +:104180006092BB07912C812C841438F58091C10278 +:10419000F40196E0989FE00DF11D1124E15BFE4FC4 +:1041A00080810E94411FEFEF8E1A9E0AEDCFF0E64C +:1041B0005F12CECFF0929F02E0929E02D0929D02BB +:1041C000C0929C02B0929B02A0929A023092AB02E3 +:1041D0002092AA0280E2582EBBCF1093BA07009318 +:1041E000B9077092BC076092BB07852D0E94411FE2 +:1041F0000E9419200E94921D86E00E94281C892B93 +:1042000009F088CF80919802811184CF8090C102FB +:10421000F6E08F9E40011124C401815B9E4F4C014A +:10422000FC01EC0FFD1F50820E942B206AE070E021 +:1042300080E090E00E94381D2196005F1F4FC5303E +:10424000D10509F04BCFF4011582DF91CF911F9179 +:104250000F91FF90EF90DF90CF90BF90AF909F9025 +:104260008F907F906F905F904F903F902F90089528 +:104270003F924F925F926F927F928F929F92AF92F6 +:10428000BF92CF92DF92EF92FF920F931F93CF9343 +:10429000DF93CDB7DEB72E970FB6F894DEBF0FBE13 +:1042A000CDBF8091BE02882309F4A5C110925F079B +:1042B00010926007109261071092620780905F076A +:1042C00090906007A0906107B0906207C090B30221 +:1042D000D090B402E090B502F090B602A70196012A +:1042E000C501B4010E94ED3A2B013C0120E030E011 +:1042F000A9010E94023C18160CF0A0C1C301B20132 +:104300000E94D33B80914901882309F4B8C1C0922F +:104310006707D0926807E0926907F0926A07E12C7C +:10432000F12C00EA10E420E030E040E450E46E318B +:10433000710540F0E12CF12C00E81FE320E030E0B3 +:1043400040E05FE360E070E080E391E40E942119C7 +:104350008091A507882309F42AC10E946A1D6D83F4 +:104360007E838F83988780918D0790918E07A0918F +:104370008F07B09190074D815E816F817885481BD2 +:10438000590B6A0B7B0B8091990790919A07A0912A +:104390009B07B0919C07481759076A077B0708F4E9 +:1043A00006C1E0918707F091880780819181A28101 +:1043B000B38189839A83AB83BC83E0918B07F091AF +:1043C0008C079C01AD0160817181828193810E9483 +:1043D000ED3A4B015C012091950730919607409191 +:1043E00097075091980769817A818B819C810E94FF +:1043F000ED3A6B017C0120917B0730917C07409165 +:104400007D0750917E07C501B4010E948739209134 +:1044100091073091920740919307509194070E9421 +:10442000EE3A2B013C014092910750929207609224 +:104430009307709294073090A60731101AC020910C +:104440007707309178074091790750917A07C70133 +:10445000B6010E9487399B01AC01C301B2010E94E1 +:10446000ED3A60939107709392078093930790932E +:104470009407409091075090920760909307709036 +:1044800094071091A1079091A2079E87A091A3077E +:10449000AD870091A407212F392F4A2F502FC30138 +:1044A000B2010E94023C18160CF0CCC0812F9E85F0 +:1044B000AD85B02F8093910790939207A0939307B7 +:1044C000B0939407332009F4D6C020917707309138 +:1044D00078074091790750917A07C501B4010E948D +:1044E00087394B015C0120917F0730918007409113 +:1044F000810750918207C701B6010E9487399B014D +:10450000AC0160919107709192078091930790910F +:1045100094070E94ED3AA50194010E94EE3A6B01C6 +:104520007C019B01AC01612F7E858D85902F0E94BF +:10453000213987FD18C010919D0790919E079E8795 +:10454000A0919F07AD870091A007212F392F4A2FF7 +:10455000502FB601C7010E94213987FD04C01C2DD0 +:10456000DE86ED860F2DE0918907F0918A07812F75 +:104570009E85AD85B02F80839183A283B38389818B +:104580009A81AB81BC818093950790939607A09305 +:104590009707B09398078D819E81AF81B8858093EE +:1045A0008D0790938E07A0938F07B093900760912B +:1045B00063077091640780916507909166070E9478 +:1045C000CC3BCB012E960FB6F894DEBF0FBECDBF0D +:1045D000DF91CF911F910F91FF90EF90DF90CF90DF +:1045E000BF90AF909F908F907F906F905F904F9013 +:1045F0003F900C94BB1C8091BD026091440170916E +:10460000450181110EC08091B1029091B2022091BA +:10461000BC02BC01222329F060914301680F792F6D +:10462000711D90E080E00E94263960935F077093CF +:104630006007809361079093620740CEC301B20187 +:1046400090585ECE80919D0790919E07A0919F0704 +:10465000B091A00789879A87AB87BC879C01AD0181 +:10466000C301B2010E94213987FF2CCF89859A8529 +:10467000AB85BC851FCF812C912C540134CF20E019 +:1046800030E040E05FE3C701B6010E94EE3A9B01D3 +:10469000AC01C501B4010E94023C18164CF4109202 +:1046A00063071092640710926507109266077FCF28 +:1046B00080E090E0AFE7B3E48093630790936407F2 +:1046C000A0936507B093660772CF4F925F926F9287 +:1046D0007F928F929F92AF92BF92CF92DF92EF9292 +:1046E000FF92CF93DF938090940290909502A090D8 +:1046F0009602B0909702C091C102D0E0C501B4010A +:104700000E94CC3B6B017C0120E030E048E453E4A4 +:10471000C501B4010E94213993E0CC0FDD1F9A95A9 +:10472000E1F7CE5FDE4F87FF31C02881398150E04D +:1047300040E02551310941095109C701B6010E94E4 +:104740000C3C28EC30E040E050E00E945B3ACA01AB +:10475000B9016B5E7F4F8F4F9F4F0E942839609346 +:10476000B3027093B4028093B5029093B602DF91C6 +:10477000CF91FF90EF90DF90CF90BF90AF909F9040 +:104780008F907F906F905F904F9008954A805B80EC +:10479000712C612C20E030E04CE853E4C501B401F9 +:1047A0000E94213987FF1FC088809980B12CA12CDD +:1047B000A7019601285C310941095109C301B201E1 +:1047C000681979098A099B090E940C3C20E530E0B0 +:1047D00040E050E00E945B3ACA01B901680D791DC2 +:1047E0008A1D9B1DBACF2C813D8150E040E02419E9 +:1047F000350946095709C701B60168517140810959 +:1048000091090E940C3C20E530E040E050E00E941D +:104810005B3ACA01B901640D751D861D971D9DCFB8 +:10482000FC0101900020E9F73197AF01481B590BBB +:10483000BC018DEA97E00C94F21A8F929F92AF928E +:10484000BF920F931F93CF93DF93CDB7DEB7A1979E +:104850000FB6F894DEBF0FBECDBF19A2423008F4E8 +:104860004AE08E010F5D1F4F842E912CB12CA12C9C +:10487000A50194010E94BC3AE62FB901CA01EA30B1 +:10488000F4F4E05DD801EE938D01232B242B252B2E +:1048900079F790E080E0109719F0CD010E94102484 +:1048A000A1960FB6F894DEBF0FBECDBFDF91CF91BA +:1048B0001F910F91BF90AF909F908F900895E95CEA +:1048C000E1CFCF92DF92EF92FF92CF93DF9397FFEA +:1048D00019C06B017C018DE20E94411FEC0166272B +:1048E0007727CB016C197D098E099F094AE00E9448 +:1048F0001D248C0F9D1FDF91CF91FF90EF90DF90D3 +:10490000CF9008954AE0DF91CF91FF90EF90DF9034 +:10491000CF900C941D244F925F926F927F928F9252 +:104920009F92AF92BF92CF92DF92EF92FF920F933E +:104930001F93CF936B017C01742EAC019B010E94ED +:10494000073C882399F083E692E0CF911F910F9165 +:10495000FF90EF90DF90CF90BF90AF909F908F909F +:104960007F906F905F904F900C94102446015701F8 +:10497000E894B7F82FEF3FEF4FE75FE7C501B401C9 +:104980000E94073C81110DC02FEF3FEF4FE75FE71B +:10499000C501B4010E94213918161CF487E692E083 +:1049A000D4CF2FEF3FEF4FE75FE4C701B6010E947E +:1049B000023C18161CF48BE692E0C7CF2FEF3FEFB6 +:1049C0004FE75FECC701B6010E94213987FDF3CFA5 +:1049D00020E030E0A901C701B6010E94213910E0B2 +:1049E00000E087FF08C08DE20E94411F8C01F7FAAA +:1049F000F094F7F8F094C0E060E070E080E09FE3AE +:104A00007C1641F020E030E040E251E40E945A3B45 +:104A1000CF5FF6CFA70196010E94EE3A2B013C0131 +:104A20000E94D33B4B015C014AE00E941D247C01A3 +:104A3000E00EF11ECC23B1F1C501B4010E9426396C +:104A40009B01AC01C301B2010E94ED3A4B015C0134 +:104A50008EE20E94411FE80EF91EC15018F120E0BD +:104A600030E040E251E4C501B4010E9487392B01D6 +:104A70003C010E94D33B4B01B12CA12C4AE0C50163 +:104A8000B4010E941D24E80EF91EC501B4010E9464 +:104A900026399B01AC01C301B2010E94ED3A4B01E2 +:104AA0005C01DBCFC701CF911F910F91FF90EF9079 +:104AB000DF90CF90BF90AF909F908F907F906F903E +:104AC0005F904F900895CF92DF92EF92FF920F93F5 +:104AD0001F93CF93DF93C82F81E0DC2FD827D0938B +:104AE000BE07C093BD078093BF070C2F2EE046E69C +:104AF00061E370E081E090E00E94F31D2091BF022D +:104B00003091C002253F81E03807B8F4A4E6B0E058 +:104B10000E94DE3A24EF31E040E050E00E945B3A30 +:104B2000BA01A9014E5F5F4F6F4F7F4F2EE061E3E7 +:104B300070E081E090E00E94401A60915F07709100 +:104B4000600780916107909162070E94CC3B9B01B6 +:104B5000AC01A4E6B0E00E947A3A34EFC32EDD2423 +:104B6000D394E12CF12CA70196010E945B3ADA0163 +:104B7000C9010296A11DB11D02970C2F2DE043E043 +:104B800062E370E00E94401A60915F0770916007D5 +:104B900080916107909162070E94CC3B9B01AC0120 +:104BA000A4E6B0E00E947A3AA70196010E945B3A1F +:104BB000DA01C9010296A11DB11D039724E045E069 +:104BC0006CE370E00E94401A60915F07709160078B +:104BD00080916107909162070E94CC3B9B01AC01E0 +:104BE000A4E6B0E00E947A3AA70196010E945B3ADF +:104BF00089019A010E5F1F4F2F4F3F4F015011093E +:104C000041E3E42EF12C4D2FB701C8010E94FD199C +:104C10008FEFE81AF80A8DE3E816F104A1F7609126 +:104C20005F077091600780916107909162070E9411 +:104C3000CC3B9B01AC01A4E6B0E00E947A3A24EFA1 +:104C400031E040E050E00E945B3ADA01C90102968F +:104C5000A11DB11D0397ED2E04E025E048E45BE2C1 +:104C60006BE370E00E94621A0C2F2EE047E161E3D3 +:104C700070E088E690E00E94F31D609163077091F8 +:104C8000640780916507909166070E94CC3B9B0169 +:104C9000AC012F5F310941095109A7E1B0E00E9441 +:104CA0007A3ACC24C394DD24DA94ED2CFD2CA701B0 +:104CB00096010E945B3A422F2EE061E370E088E6A5 +:104CC00090E00E94401AC093BE07D093BD0782E0D7 +:104CD00090E09093BA078093B90707E310E0109330 +:104CE000BC070093BB0760915F07709160078091DC +:104CF00061079091620740E00E948B2488EF0E9438 +:104D0000411F86E49BE20E94261F89E690E0909373 +:104D1000BA078093B9071093BC070093BB07609153 +:104D200063077091640780916507909166070E9400 +:104D3000CC3B9B01AC012F5F310941095109A4E62D +:104D4000B0E00E947A3AA70196010E945B3ACA013C +:104D5000B9010E94612484E49BE20E94261FD09343 +:104D6000BE07C093BD07DF91CF911F910F91FF90B8 +:104D7000EF90DF90CF9008956F927F928F929F92E5 +:104D8000AF92BF92CF92DF92EF92FF920F931F9359 +:104D9000CF93DF93B090C10277247394B11001C018 +:104DA000712C809142018150990B10929F021092B8 +:104DB0009E02880F991F90939D0280939C0281E030 +:104DC00090E090939B0280939A028B2D90E0880F45 +:104DD000991F9093AB028093AA0286E00E94281C40 +:104DE00021E0892B09F020E020939802FF24F3941E +:104DF00072E0972EE6E08E2EFCE0CF2ED12C0E94A2 +:104E0000E41A1092BC071092BB071092BA071092D6 +:104E1000B907C091AA02D091AB02D595C795EC2EE7 +:104E20008E011127C801870D911D77FC9A958B196A +:104E30009109712C97FD06C08330910514F082E032 +:104E400090E0782EF092BE071092BD079092BF07B7 +:104E50008AE99BE20E94261F1092BE07F092BD07CE +:104E60001092BA071092B907A72C072C000CBB08A8 +:104E7000C501019654E0880F991F5A95E1F7909368 +:104E8000BC078093BB0788E99BE20E94261F6C2E1B +:104E9000671890E080E098012A193B095901209198 +:104EA00042018C010F5F1F4F6216D0F4D092BA07F7 +:104EB000C092B907980144E0220F331F4A95E1F7E9 +:104EC0003093BC072093BB078A0D9B1D889E9001E1 +:104ED000899E300D1124C901815B9E4F0E941024D0 +:104EE000C801639403301105D1F60E9419200E9475 +:104EF000921D86E00E94281C892BB9F480919802AB +:104F0000811113C00E942B20E092C102DF91CF914A +:104F10001F910F91FF90EF90DF90CF90BF90AF90D7 +:104F20009F908F907F906F900895BC2E68CF0E94C5 +:104F3000043EEF92FF920F931F93CF93DF93EC0108 +:104F40007B018A0188819981009729F02A813B8120 +:104F50002417350788F4B8016F5F7F4F0E94473DE3 +:104F6000009791F0998388831B830A832C813D816C +:104F7000232B11F4FC0110821D830C83B70188815F +:104F800099810E94123E0CC088819981009711F08E +:104F90000E94BE3C198218821D821C821B821A82CA +:104FA000CE01DF91CF911F910F91FF90EF90089567 +:104FB0001F93CF93DF93EC01162F0E94453A1817E9 +:104FC00039F0612FCE01DF91CF911F910C944D3AB2 +:104FD000DF91CF911F910895AF92BF92CF92DF9250 +:104FE000EF92FF920F931F93CF93DF93609147014E +:104FF00082E090E00E94D8276091460183E090E033 +:105000000E94D8276091450184E090E00E94D82753 +:105010006091440185E090E00E94D82760914301AF +:1050200086E090E00E94D82760914C0187E090E0F4 +:105030000E94D82760914B0188E090E00E94D82719 +:1050400060914A0189E090E00E94D82760917F0139 +:105050008AE090E00E94D827609149018BE090E0BF +:105060000E94D827609148018CE090E00E94D827E8 +:105070006091C1028DE090E00E94D82760914201CA +:105080008EE090E00E94D8276091BB028FE090E014 +:105090000E94D8276091990280E190E00E94D82771 +:1050A0006091B80281E190E00E94D82782E1E82E69 +:1050B000F12C10E006E0809142011817B8F5109F1E +:1050C00060011124D0E0C0E0FE01EC0DFD1DE15BAC +:1050D000FE4F6081C7018C0F9D1F0E94D82721962B +:1050E000C630D10589F7670186E0C80ED11C88E07B +:1050F000189FE0011124CE5FDE4F8EE0E80EF11C18 +:1051000069812296C6010E94D827560182E0A80E26 +:10511000B11CFE0132976081C60101960E94D8271A +:105120006501AE14BF0461F71F5FC5CFDF91CF915A +:105130001F910F91FF90EF90DF90CF90BF90AF90B5 +:1051400008958F929F92AF92BF92CF92DF92EF928B +:10515000FF92CF938FEF90E00E94BB1C8BEA94E00C +:105160000197F1F78EE00E94C31F7C018AE00E9444 +:10517000281C90917202981729F091E09093B70241 +:1051800080937202809101019FEF980F909301012B +:10519000811106C00E94F11F9093BA028093B90258 +:1051A000609163077091640780916507909166072D +:1051B0000E94CC3BCB010E94BB1C8090940290903B +:1051C0009502A0909602B0909702B70190E080E01F +:1051D0000E942639A50194010E94ED3A2DEC3CEC89 +:1051E0004CE45DE30E948739A50194010E94EE3AE8 +:1051F0006093940270939502809396029093970225 +:105200000E9465236091BF027091C00290E080E02F +:105210000E9426396B017C0120915F073091600765 +:1052200040916107509162070E9421398111B5C0F8 +:105230002091B3023091B4024091B5025091B60270 +:10524000C701B6010E94ED3A6B017C0120E030E01D +:10525000A9010E94023C18160CF095C020E030E035 +:1052600040EA50E4C701B6010E94023C18160CF453 +:1052700094C06091B1027091B20290E080E00E940F +:1052800026392091B3023091B4024091B502509179 +:10529000B6020E94ED3A6B017C0120E030E0A901EA +:1052A0000E94023C18160CF087C0C701B6010E948C +:1052B000D33B6530710508F083C080914E018111A8 +:1052C00005C080914D0181110E942B2081E08093C7 +:1052D0004E0110924D018091BF029091C002853F16 +:1052E00021E0920710F0109200012091000121119D +:1052F00040C0843F9140E8F58FEF90E00E94BB1CD6 +:105300000E942B20C1E0C09300010E94BC260E9495 +:10531000EC27C093B7028EE00E94C31FBC0190E04F +:1053200080E00E94263960939402709395028093E6 +:105330009602909397021092A9028091B1029091E7 +:10534000B20224E630E030939F0220939E0220E2D6 +:1053500033E030939D0220939C022AE030E03093AA +:105360009B0220939A02880F991F9093AB0280931F +:10537000AA02CF91FF90EF90DF90CF90BF90AF90B7 +:105380009F908F90089520E030E040EA50ECC701F4 +:10539000B6010E94213987FF6CCF6091B3027091F2 +:1053A000B4028091B5029091B6020E94D33B7093F3 +:1053B000C0026093BF025DCFC701B601905877CF9E +:1053C00010924E0188CF0C94453A2F923F924F9203 +:1053D0005F926F927F928F929F92AF92BF92CF9285 +:1053E000DF92EF92FF920F931F93CF93DF93CDB78E +:1053F000DEB768970FB6F894DEBF0FBECDBF26E0CC +:105400002093BF0721E02093BE071092BD070091B3 +:10541000AB071091AC076091A7077091A80730E81F +:10542000232E32E0332EF10130E020E02017310747 +:1054300030F4DB01A20FB31F6115710521F4109246 +:105440007302A3E7B2E04C9150E0419351932F5F78 +:105450003F4F2330310551F71C8A1B8A1E8A1D8A53 +:10546000188E1F8A4AE08E010F5F1F4FB8010E94FD +:10547000D738F80101900020E9F73197AF01401BC0 +:10548000510BB801CE0143960E9499278091A7073E +:105490009091A807009709F4E8C06B897C89611591 +:1054A000710509F4E0C04091A9075091AA072F891E +:1054B000388D4217530708F4D6C00E94123E8F89D8 +:1054C000988D9093AC078093AB07188E1F8A8B89B9 +:1054D0009C89009711F00E94BE3C94E7E92E92E06F +:1054E000F92E24E0A22EB12CD12CC12C8091AB0737 +:1054F0009091AC07C816D90638F4E091A707F0914F +:10550000A807309709F0C8C010927302E3E7F2E0F1 +:10551000808190E0F10120813181821B930BF2E3C5 +:10552000F89FB001F99F700D1124072E000C880B15 +:10553000990B0E942839F7012081318142815381E2 +:105540000E94EE3A2B013C0120E030E0A9010E94CC +:1055500021398111A4C0F701408251826282738295 +:1055600001E022E346E270E060E0C50104970E949A +:10557000401A8EEC882E99249A940FEF1FEFF701B2 +:10558000208131814281538160E070E080E890E4C5 +:105590000E94ED3A2B013C01B401092C000C880B50 +:1055A000990B0E9428399B01AC01C301B2010E94F2 +:1055B000EE3A0E94CC3BB092BA07A092B907709322 +:1055C000BC076093BB07F10160817181600F711F9F +:1055D00060537109072E000C880B990B0E946124FF +:1055E0000F5F1F4FF2E38F0E911C0230110539F649 +:1055F0002FEFC21AD20A84E0E80EF11CECE2AE0EE4 +:10560000B11CF2E02F0E311C23E0C216D10409F0C8 +:105610006DCF00E022E040E870E060E090E080E0E4 +:105620000E94401A2DE040E863E370E090E080E0E3 +:105630000E94401A68960FB6F894DEBF0FBECDBF29 +:10564000DF91CF911F910F91FF90EF90DF90CF905E +:10565000BF90AF909F908F907F906F905F904F9092 +:105660003F902F9008950E94BE3C8B899C89909317 +:10567000A8078093A7078D899E899093AA07809396 +:10568000A9078F89988D9093AC078093AB071C8AEC +:105690001B8A1E8A1D8A19CFEC0DFD1D39CFC3014F +:1056A000B20190582DEC3CEC4CE45FE30E9487394A +:1056B000A30192010E94EE3AF70160837183828315 +:1056C00093834ECF86E00E94281C21E0892B09F0AD +:1056D00020E0209398020E94E41A1092BC071092D6 +:1056E000BB071092BA071092B9078091AA02909155 +:1056F000AB02959587950E94E5290E94921D0E9414 +:10570000192086E00E94281C892B29F78091980295 +:105710008111E1CF0E942B208091A7079091A807CB +:10572000009721F00E94A938CB01089560E070E055 +:10573000CB01FACF2F923F924F925F926F927F925E +:105740008F929F92AF92BF92CF92DF92EF92FF9291 +:105750000F931F93CF93DF93CDB7DEB72A970FB682 +:10576000F894DEBF0FBECDBF782EE091A002F0E02E +:10577000E25EFD4F80818150990B10929F02109242 +:105780009E02880F991F90939D0280939C0281E056 +:1057900090E090939B0280939A02872D90E0880F6F +:1057A000991F9093AB028093AA0286E00E94281C66 +:1057B00021E0892B09F020E0209398021092BE0787 +:1057C00081E08093BD0748E3F42E8090AA02909078 +:1057D000AB0295948794182D5401BB249501271989 +:1057E0003109F29EC001F39E900D1124C80ED91EFE +:1057F000C114D10409F1662777276C197D09072E9A +:10580000000C880B990B0E94283920E030E040E022 +:105810005FE30E9487392B013C01B601DD0C880B48 +:10582000990B0E9428399B01AC01C301B2010E946F +:10583000EE3A0E94CC3B6B010E94E41A1092BC0726 +:105840001092BB071092BA071092B907350182E097 +:10585000681A71082601150193E0290E311C77FCA6 +:1058600020C0E091A002F0E0E25EFD4F808186154D +:105870001704B9F0B4F00E940720F301E80FF11DFE +:10588000EE0FFF1FEE52FE4F40815181EE24E39454 +:1058900000E320E370E060E0C201885491090E94B7 +:1058A000621A8FEF681A780A98E3490E511C621445 +:1058B0007304A9F68091BB02811140C00E940720A9 +:1058C000F501E80FF11DEE0FFF1FEA57FE4F408173 +:1058D0005181EE24E39400E124E260E370E080E390 +:1058E00090E00E94621A0E94921D0E94192086E098 +:1058F0000E94281C892B01F58091980281111CC0FF +:105900000E942B20812F2A960FB6F894DEBF0FBE7F +:10591000CDBFDF91CF911F910F91FF90EF90DF905E +:10592000CF90BF90AF909F908F907F906F905F903F +:105930004F903F902F900895782C47CF80E390E0D0 +:105940009093BA078093B90781E390E09093BC07E6 +:105950008093BB0781E08093BF070E940720880DDA +:10596000E82FF0E0EE0FFF1FE45BF44D65917491BA +:10597000CE0101960E94D038CE0101960E941024DB +:10598000B2CF1F920F920FB60F9211242F933F9315 +:105990004F935F936F937F938F939F93AF93BF9337 +:1059A000EF93FF9382EC96E00E94701BFF91EF91C2 +:1059B000BF91AF919F918F917F916F915F914F9127 +:1059C0003F912F910F900FBE0F901F9018951F922F +:1059D0000F920FB60F9211242F938F939F93EF93F3 +:1059E000FF93E091D206F091D3068081E091D80632 +:1059F000F091D90682FD1BC090818091DB068F5FFC +:105A00008F732091DC06821741F0E091DB06F0E015 +:105A1000EE53F94F958F8093DB06FF91EF919F91A5 +:105A20008F912F910F900FBE0F901F90189580812E +:105A3000F4CF1F920F920FB60F9211242F933F9322 +:105A40008F939F93AF93BF93809187029091880229 +:105A5000A0918902B0918A023091860223E0230F3F +:105A60002D3758F50196A11DB11D20938602809314 +:105A7000870290938802A0938902B0938A02809152 +:105A80008B0290918C02A0918D02B0918E020196B2 +:105A9000A11DB11D80938B0290938C02A0938D0267 +:105AA000B0938E02BF91AF919F918F913F912F91B3 +:105AB0000F900FBE0F901F90189526E8230F0296A7 +:105AC000A11DB11DD2CF1F920F920FB60F921124BC +:105AD0002F933F934F935F936F937F938F939F93F6 +:105AE000EF93FF9383B1817029B190919102981740 +:105AF00009F49DC030E0220F232F221F330B922F79 +:105B00008093910240919002241709F490C0209351 +:105B1000900220919A0230919B02981719F03195CA +:105B2000219531094091AA025091AB0260919E02E9 +:105B300070919F02240F351F261737070CF48BC076 +:105B400020919A0230919B02981719F03195219576 +:105B500031094091AA025091AB0260919C02709170 +:105B60009D02240F351F621773070CF46FC040911C +:105B70009A0250919B02981719F05195419551093D +:105B80002091AA023091AB02240F351F3093AB0253 +:105B90002093AA0241E0981340E020918F0242171F +:105BA00009F440C020919A0230919B02981719F095 +:105BB0003195219531096091AA027091AB02E09173 +:105BC0009E02F0919F02260F371F2E173F070CF4FD +:105BD0004CC020919A0230919B02981719F0319590 +:105BE000219531096091AA027091AB02E0919C026B +:105BF000F0919D02260F371FE217F3078CF12091D9 +:105C00009A0230919B02981719F03195219531092C +:105C10008091AA029091AB02820F931F9093AB02E6 +:105C20008093AA0240938F0281E08093B702FF9194 +:105C3000EF919F918F917F916F915F914F913F91E4 +:105C40002F910F900FBE0F901F90189520919C02DE +:105C500030919D029BCF20919E0230919F0296CF62 +:105C600080919C0290919D02D9CF80919E0290914B +:105C70009F02D4CF18950F931F93CF93DF93E2EC3D +:105C8000F6E01382128288EE93E0A0E0B0E0848315 +:105C90009583A683B78389E492E09183808385EC22 +:105CA00090E09587848784EC90E09787868780ECE6 +:105CB00090E0918B808B81EC90E0938B828B82ECD7 +:105CC00090E0958B848B86EC90E0978B868B118E81 +:105CD000128E138E148EEDEAF7E013821282168272 +:105CE000178280E180871582148212868BE592E00C +:105CF00091838083158614861786168611E0108B93 +:105D0000118A128B138AE7EAF7E01182108213825C +:105D100012821582148250E040E061E772E0CF0108 +:105D20000E949927CBE6D7E083E697E09F8F8E8F7E +:105D300087E697E09D8F8C8F8FE597E099A388A3E6 +:105D40001AAE1AAA1BAA1CAA1DAA80E090E0AFE70F +:105D5000B3E48EAB9FABA8AFB9AF84E690E0A0E010 +:105D6000B0E08EA79FA7A8ABB9AB81E090E0998F78 +:105D7000888F9B8F8A8F1BAF80E090E0A0E3B1E417 +:105D800088839983AA83BB8380E090E0A0E0BFE38F +:105D90008C839D83AE83BF8380E090E0A0E8BFE367 +:105DA00088879987AA87BB8780E090E0A0E3B1EC61 +:105DB0008C879D87AE87BF878DEC9CECACE4BDEBF8 +:105DC000888B998BAA8BBB8B80E090E0A0E2B1EC32 +:105DD0008C8B9D8BAE8BBF8B0E946A1D0EA51FA561 +:105DE00028A939A9601B710B820B930B6AA37BA3B3 +:105DF0008CA39DA3DF91CF911F910F910895CF9315 +:105E0000DF93CDB7DEB72B970FB6F894DEBF0FBE8A +:105E1000CDBF789484B5826084BD84B5816084BD33 +:105E200085B5826085BD85B5816085BD80916E0038 +:105E3000816080936E001092810080918100826069 +:105E400080938100809181008160809381008091A6 +:105E500080008160809380008091B1008460809395 +:105E6000B1008091B00081608093B00080917A0091 +:105E7000846080937A0080917A00826080937A00B7 +:105E800080917A00816080937A0080917A008068A6 +:105E900080937A001092C1001092B90088E4809338 +:105EA000B8000E94881D80E00E947E1D0BEE10E36A +:105EB0008AE0E82E81E3F82EF80184910E947E1D8D +:105EC0000F5F1F4FE016F106B9F70E94761D11E033 +:105ED0001093B8000E94921D81E28093B50760E0A4 +:105EE0008EE00E947F1C60E08FE00E947F1C61E0DA +:105EF00085E00E947F1C61E089E00E947F1C62E0D7 +:105F000087E00E947F1C62E088E00E947F1C62E0C4 +:105F100086E00E947F1C62E08AE00E947F1C8FEF77 +:105F200090E00E94BB1C60E085E00E94511C8091C3 +:105F30007A00876080937A0080917A0088608093ED +:105F40007A00789410936B00109368001BBB90E06C +:105F500080E00E94E329182F81E090E00E94E3296D +:105F6000912F8F3F984009F0BBC082E090E00E94E3 +:105F7000E329182F83E090E00E94E329912F90936A +:105F800047018093460184E090E00E94E329182FA6 +:105F900085E090E00E94E329912F90934501809342 +:105FA000440186E090E00E94E3298093430187E06A +:105FB00090E00E94E32980934C0188E090E00E94E9 +:105FC000E32980934B0189E090E00E94E3298093CC +:105FD0004A018AE090E00E94E32980937F018BE0F0 +:105FE00090E00E94E32991E0811101C090E090933C +:105FF00049018CE090E00E94E32991E0811101C009 +:1060000090E0909348018DE090E00E94E329809316 +:10601000C1028EE090E00E94E329282E8093420185 +:106020008FE090E00E94E3298093BB0280E190E042 +:106030000E94E32991E0811101C090E090939902C0 +:1060400081E190E00E94E3298093B802B2E08B2EB8 +:10605000B1E09B2E1FE4A12E11E0B12E02E1E02E53 +:10606000F12C312C231409F447C010E000E0C701E3 +:10607000800F911F0E94E329F501E00FF11F80833B +:106080000F5F1F4F0630110591F7670126E0C20E22 +:10609000D11C3EE0E30EF11C3401C6010E94E3294D +:1060A000082F10E0102F0027F30111830083260131 +:1060B000F2E04F0E511CC60101960E94E329082B05 +:1060C000F301019311933F0162014E145F0429F71C +:1060D0003394F8E08F0E911C26E0A20EB11CC2CFC3 +:1060E00068E090E080E00E94D8276FEF81E090E0C8 +:1060F0000E94D8270E94EC271091990280EC111180 +:1061000001C088EC0E94AF1D80EA111101C081EA34 +:106110000E94AF1D0E94491F9093930280939202A8 +:106120000E94F11F9093BA028093B9020091460138 +:10613000109147011093B2020093B1028EE00E94C9 +:10614000C31FBC0190E080E00E9426396093940256 +:106150007093950280939602909397020E94851FF8 +:106160000E94652320E030E040EA51E46091B302F0 +:106170007091B4028091B5029091B6020E94EE3AFD +:106180006B017C01B80190E080E00E9426399B0100 +:10619000AC01C701B6010E94213987FF04C090E01D +:1061A00080E00E94BB1C10929D0710929E071092E7 +:1061B0009F071092A007412C512CFFE76F2EF3E4AC +:1061C0007F2E4092A1075092A2076092A30770927F +:1061D000A407A0908907B0908A078091A507F501D0 +:1061E000C080D180E280F380882309F47DC7A301B9 +:1061F0009201C701B6010E94023C181634F5F50160 +:1062000040825182628273828090910790909207BF +:10621000A0909307B0909407C090A107D090A207D8 +:10622000E090A307F090A407A7019601C501B4016F +:106230000E94023C1816C4F4C0929107D0929207B3 +:10624000E0929307F09294071FC020E030E0A9018C +:10625000C701B6010E94213987FFD6CFF501108210 +:10626000118212821382D0CFC0909D07D0909E07DA +:10627000E0909F07F090A007A7019601C501B40127 +:106280000E94213987FDD8CF81E08093A50783B193 +:1062900081708093910289B190E0880F892F881FC7 +:1062A000990B80939002209191029091900281E04D +:1062B000291380E080938F0284E690E090939F0200 +:1062C00080939E0280E293E090939D0280939C02D3 +:1062D0008AE090E090939B0280939A02000F111F36 +:1062E0001093AB020093AA020E946A1D6093AD0254 +:1062F0007093AE028093AF029093B0020E942B2065 +:106300000E942B202090AA023090AB02910135957B +:1063100027953A8729873093B2022093B10286E00D +:106320000E94281C8B8781119EC08091A90288231E +:1063300009F499C00E942B200E946A1D6B017C0108 +:10634000C092A502D092A602E092A702F092A80203 +:1063500086E00E94281C892B59F40E946A1D6C1942 +:106360007D098E099F09643F71408105910580F385 +:106370000E946A1D6C197D098E099F09643F714056 +:106380008105910508F448C48FEF90E00E94BB1C82 +:106390000E942B20512C5AE0652E712C1092A002E5 +:1063A000852D0E949A2B582EF7E0F81708F438C074 +:1063B000E82FF0E0E252FE4C0C941C3CF831AA3479 +:1063C00024358C359A35D435EC35E23520E030E093 +:1063D000A901C701B6010E94213987FF55CF10924C +:1063E00091071092920710929307109294074CCF46 +:1063F0004EE1642E712C81E08093A002852D0E94D5 +:106400009A2B582E22E0821709F43EC2281708F46E +:10641000E9C0882309F411C131E0831709F410C1E0 +:106420000E94EC2781E08093B70229853A8530935A +:10643000B2022093B10284E690E090939F02809391 +:106440009E0280E293E090939D0280939C028AE0FA +:1064500090E090939B0280939A02C1018E7F90936B +:10646000AB028093AA023B853093A9028091BC02C3 +:10647000882309F110914A011123E9F00E946A1D55 +:10648000C090A102D090A202E090A302F090A402DA +:106490006C197D098E099F0928EE33E040E050E039 +:1064A0000E94BC3A211738F01092BC020E942B20A7 +:1064B00081E080934D018091B7028823E9F18091BA +:1064C000BD02882349F120E030E040EA51E46091C8 +:1064D000B3027091B4028091B5029091B6020E940D +:1064E000EE3A6B017C016091B1027091B20290E0D2 +:1064F00080E00E9426399B01AC01C701B6010E94D1 +:10650000213987FF04C090E080E00E94BB1C0E94FC +:106510002B2081E080934D011092B7021092BD02B2 +:106520001092BE020E946A1D6093AD027093AE028B +:106530008093AF029093B0020E946A1D0091AD0259 +:106540001091AE022091AF023091B002601B710B2E +:10655000820B930B20E63AEE40E050E00E94BC3AFA +:10656000122F2093AC028091BD0281110BC080914B +:106570004C01882339F0281728F081E08093BD0270 +:106580000E942B208091BE0281110BC080914B0193 +:10659000882339F0181728F081E08093BE020E940A +:1065A0002B200E94A1280E9438210E946A1D809100 +:1065B000B607962F981B892F9091B707992309F456 +:1065C00041C38093B8071092B70780E090E0892B11 +:1065D00009F498CE0E945C1B882309F493CE0E9494 +:1065E000000090CE83E0581609F451C194E059128E +:1065F00017CF80914201883008F0FDCE91E0980FCE +:10660000909342018093C1020E944920E091C1020F +:1066100028E0E29FF0011124EE5FFE4F88ED90E04C +:106620009183808324E331E03383228386E891E001 +:106630009583848377826682DECE0E94BC26DBCE81 +:106640008E010F5F1F4F812C912C5401839498EE83 +:10665000E92E93E0F92ECC24C394D12C32E0432EC2 +:10666000E091C10224E0E29FF0011124C4010197EE +:10667000E80FF91FEE0FFF1FEE5FFE4F8081918143 +:106680009093B2028093B102E8ECF0E0F0939F02A5 +:10669000E0939E02F0929D02E0929C02D0929B02B7 +:1066A000C0929A02880F991F9093AB028093AA021E +:1066B000F1E0F0934D0186E00E94281C21E0892B37 +:1066C00009F020E0209398020E94E41A1092BC077F +:1066D0001092BB071092BA071092B9074092BF07F9 +:1066E0000E94A1280E9438211092BA071092B9077F +:1066F0001092BC071092BB0780E391E30E94261F13 +:10670000C501B4010E9461248FE692E00E9410242A +:1067100080914E011092BA071092B907882309F4AC +:106720008BC020E130E03093BC072093BB0783E2AD +:1067300091E30E94261F1092BA071092B90780E2D7 +:1067400090E09093BC078093BB078CE191E30E949B +:10675000261F6091AA027091AB0275956795072E6E +:10676000000C880B990B0E9461240E9419200E9442 +:10677000921D86E00E94281C892B09F0A5CF8091EC +:1067800098028111A1CF8091AA029091AB029595B8 +:106790008795F801819391938F010E942B206AE0E5 +:1067A00070E080E090E00E94381DFFEF8F1A9F0A92 +:1067B000AF0ABF0A24E082169104A104B10409F0D3 +:1067C0004FCF8FEF90E00E94BB1C8BEA94E00197C3 +:1067D000F1F70E94851F0E94D33B4B0178876F839E +:1067E000C980DA800B811C81C6014E968017910703 +:1067F00008F001CEED80FE80C8014E968E159F05F3 +:1068000008F0F9CD87E08093A00280E00E949A2BE7 +:10681000882309F4F0CDE091C10238E0E39FF00154 +:106820001124EE5FFE4FD182C08213830283F58272 +:10683000E48297828682DFCDE0E1F0E0F093BC074E +:10684000E093BB0786E191E30E94261F60919402CA +:106850007091950280919602909197020E94D33B8D +:1068600090E080E04AE00E941D241092BA07109246 +:10687000B90720E230E03093BC072093BB078AE0E1 +:1068800091E30E94261F71CF0E944920B4CD87E07A +:106890008093A00280914201813009F4ACCD80E068 +:1068A0000E949A2B882309F4A6CD1091C102009171 +:1068B0004201802F8150990BBC011817190639F439 +:1068C00011501093C10201500093420194CD812FC9 +:1068D00090E086179707BCF7E6E01E9FD0011124D1 +:1068E00050E040E09C012F5F3F4FFA01EA0FFB1F91 +:1068F000E15BFE4FF680F0824F5F5F4F46305105FF +:10690000A1F7B3E0220F331FBA95E1F7F901EE5F6B +:10691000FE4F2081318143E0880F991F4A95E1F7AE +:10692000DC01AE5FBE4F11963C932E938281938122 +:1069300013969C938E9312978481958115969C93C0 +:106940008E9314978681978117969C938E931697B2 +:106950001F5FBDCF82E08093A002412C70E9C72E5B +:10696000DD24D394E4E6AE2EB12CF0E28F2EF3E0DA +:106970009F2EA4E1EA2EF12C08EC10E0842D0E9459 +:106980009A2B482E91E0891731F1891738F0E2E00F +:106990008E1709F43FC00E94EC2700CD809146017C +:1069A00090914701B0929F02A0929E0290929D0208 +:1069B00080929C0270929B0260929A02880F991FAB +:1069C0009093AB028093AA020E94622B909347019E +:1069D00080934601D3CF809144019091450128E2F4 +:1069E00030E030939F0220939E02D0929D02C0928D +:1069F0009C0270929B0260929A02880F991F90935A +:106A0000AB028093AA020E94622B9093450180936F +:106A10004401B4CF8091430190E0F0929F02E09254 +:106A20009E0210939D0200939C0270929B026092C2 +:106A30009A02880F991F9093AB028093AA020E943A +:106A4000622B809343019ACF83E08093A002F12CC4 +:106A500001E010E08F2D0E949A2BF82E31E0831771 +:106A6000E9F18317F8F082E0F81295CF80914A019E +:106A700090E010929F0210929E0228E631E030933F +:106A80009D0220939C0270929B0260929A02880F52 +:106A9000991F9093AB028093AA020E94622B80936D +:106AA0004A01D8CF80914C0190E010929F02109241 +:106AB0009E02ECE3F0E0F0939D02E0939C021093C1 +:106AC0009B0200939A02880F991F9093AB028093C8 +:106AD000AA020E94622B80934C01BCCF80914B0193 +:106AE00090E010929F0210929E0228E730E03093CF +:106AF0009D0220939C02E5E0F0E0F0939B02E0937E +:106B00009A02880F991F9093AB028093AA020E9469 +:106B1000622B80934B019ECF84E08093A0028091F2 +:106B200049010E949A2B91E0811101C090E090935D +:106B3000490134CC10E0EAE0EE2EF5E0DF2EA9E0CA +:106B4000CA2EE092A002812F0E949A2B182F882330 +:106B500021F08130E1F000E009C0D092A0028091E4 +:106B60007F010E949A2B80937F0101E0F0909902AF +:106B700080ECF11001C088EC0E94AF1D80EAF1109A +:106B800001C081EA0E94AF1D0111DBCF04CFC0928A +:106B9000A002809199020E949A2B91E0811101C07C +:106BA00090E090939902E1CF86E08093A0028091DB +:106BB00048010E949A2B91E0811101C090E09093CE +:106BC0004801ECCB88E08093A0028091BB020E9438 +:106BD0009A2B8093BB02E2CB8091B80290E0109296 +:106BE0009F0210929E02E4EFF1E0F0939D02E09389 +:106BF0009C0221E030E030939B0220939A02880FA0 +:106C0000991F9093AB028093AA020E94622B8093FB +:106C1000B8020E942B20C2CB8091BC0291E0892750 +:106C20008093BC02882351F00E946A1D6093A102E8 +:106C30007093A2028093A3029093A40281E08093B8 +:106C4000B70211CC9091B507891748F48F5F891767 +:106C500008F0BBCC81E083BF889513BEB6CC11E0B1 +:106C60001093B7076093B6078091B1079091B20770 +:106C700001969093B2078093B10780917F0188239A +:106C800009F4C4C10E94E41A1092BC071092BB0719 +:106C90001092BA071092B90701E020E440E870E0D2 +:106CA00060E090E080E00E94401A1093BF071093CC +:106CB000BE071092BD07E12C00E120E14EEA51E34E +:106CC00070E060E090E080E00E94621A83E190E072 +:106CD0009093BA078093B90784E090E09093BC0743 +:106CE0008093BB078091C102E6E08E9FC001112412 +:106CF000815B9E4F0E9410248091BF029091C00240 +:106D0000853F914008F02DC18091BE0281112BC1B9 +:106D10008091BD02811129C18091BC02811127C1DE +:106D200080914E01811125C120E030E044E353E41D +:106D30006091630770916407809165079091660781 +:106D40000E94213987FF17C185E025E330E03093A9 +:106D5000BA072093B90721E030E03093BC072093B5 +:106D6000BB0792E09093BF07C82ED12C9091BB0235 +:106D7000CC0CDD1C911101C1F601E95CFD4F408195 +:106D80005181E12C0EE02CE161E070E080E590E0C3 +:106D90000E94621AF601E75DFD4F40815181E12CAE +:106DA00000E120E170E060E080E790E00E94621A7C +:106DB00081E08093BF070E94851F20E030E040EA19 +:106DC00052E40E94023C18160CF0FAC00E946A1DA0 +:106DD00052E0660F771F881F991F5A95D1F728EE4A +:106DE00033E040E050E00E94BC3A20FFE9C00E943E +:106DF0002B206091B9027091BA0290E080E00E946D +:106E0000263920E030E048EC52E40E945A3B6B0106 +:106E10007C016091B80270E090E080E00E94283927 +:106E20009B01AC01C701B6010E94213987FDD4C086 +:106E3000E12C00E120E148E451E360E270E090E001 +:106E400080E00E94621A03E110E01093BA070093F9 +:106E5000B90720E130E03093BC072093BB070E94C4 +:106E6000851F41E00E948B2488EF0E94411F86E429 +:106E700091E30E94261F1093BA070093B90788E197 +:106E800090E09093BC078093BB070E94491FBC0110 +:106E900090E080E00E94263920E030E04AE754E4A8 +:106EA0000E945A3B42E00E948B2484E491E30E94BA +:106EB000261F1093BA070093B90780E290E09093E1 +:106EC000BC078093BB076091B9027091BA0290E051 +:106ED00080E00E94263920E030E04AE754E40E9436 +:106EE0005A3B41E00E948B2482E491E30E94261FDA +:106EF0001093BA070093B90788E290E09093BC071B +:106F00008093BB078BE391E30E94261F89E390E007 +:106F10009093BA078093B90782E190E09093BC0701 +:106F20008093BB0784E08093BF076091BF0270919C +:106F3000C002653F91E0790708F462C087E391E3FE +:106F40000E94261F00E020E248E460E170E087E351 +:106F500090E00E94F31D80E00E9463250E94921D34 +:106F600034CB80E0F2CE81E0F0CE82E0EECE83E062 +:106F7000ECCE84E0EACE86E0E8CE8330C1F038F48F +:106F8000813069F0823081F088E891E30AC0853071 +:106F9000A1F080F08630C1F78EE891E302C08AEA62 +:106FA00091E30E94261FF6CE84EA91E3FACF8EE9A0 +:106FB00091E3F7CF88E991E3F4CF83E991E3F1CF4F +:106FC000E12C00E120E148E651E360E170E090E06F +:106FD00080E00E94621A0DCF0E946A1D42E0660F97 +:106FE000771F881F991F4A95D1F728EE33E040E0BC +:106FF00050E00E94BC3A20FF1BCF0E942B2023CFE1 +:1070000090E080E04AE00E941D249CCF0E94E41A98 +:107010001092BC071092BB071092BA071092B907E2 +:107020000E94851F20E030E040EA52E40E94023CCA +:10703000181694F40E946A1D32E0660F771F881FAD +:10704000991F3A95D1F728EE33E040E050E00E94D6 +:10705000BC3A20FD0E942B206091B9027091BA02C7 +:1070600090E080E00E94263920E030E048EC52E4D5 +:107070000E945A3B6B017C016091B80270E090E085 +:1070800080E00E9428399B01AC01C701B6010E9433 +:10709000213987FF12C00E946A1D22E0660F771F08 +:1070A000881F991F2A95D1F728EE33E040E050E081 +:1070B0000E94BC3A20FD0E942B208091BF0290913B +:1070C000C002853FE1E09E0710F087EE93E00E944A +:1070D000E52900E023E040E860E370E090E080E034 +:1070E0000E94401A81E038CFC0929107D092920757 +:1070F000E0929307F0929407E0918707F091880758 +:1071000080819181A281B3818093950790939607A6 +:10711000A0939707B093980720E030E04FE753E43F +:10712000C701B6010E94023C18160CF04FC94092EC +:107130009107509292076092930770929407A4C8A7 +:107140008091A7079091A807009711F00C94BE3C7E +:1071500008951F93FC0199278827BC01E894119199 +:107160001032E9F3193010F01E30C8F31B3251F021 +:107170001D3249F4689406C00E94E238610F711D07 +:10718000811D911D119110531A30B0F33EF490956A +:107190008095709561957F4F8F4F9F4F1F910895F8 +:1071A000FB01DC0105900D920020E1F70895BB275B +:1071B0004A3031F4992322F4BDE2909581959F4F96 +:1071C0000C94F838592F482F372F262F660F771F2A +:1071D000881F991F660F771F881F991F620F731FE3 +:1071E000841F951F660F771F881F991F0895BB275F +:1071F000FB015527AA27880F991FAA1FA41710F073 +:10720000A41B83955051B9F7A05DAA3308F0A95D7E +:10721000A193009779F7B111B1931192CB010C941E +:107220001139DC01FC01672F71917723E1F7329767 +:1072300004C07C916D9370836291AE17BF07C8F351 +:1072400008950E94633908F481E00895E89409C024 +:1072500097FB3EF490958095709561957F4F8F4F89 +:107260009F4F9923A9F0F92F96E9BB279395F6959F +:10727000879577956795B795F111F8CFFAF4BB0F1D +:1072800011F460FF1BC06F5F7F4F8F4F9F4F16C081 +:10729000882311F096E911C0772321F09EE8872F0B +:1072A000762F05C0662371F096E8862F70E060E0C7 +:1072B0002AF09A95660F771F881FDAF7880F969540 +:1072C000879597F90895990F0008550FAA0BE0E8E4 +:1072D000FEEF16161706E807F907C0F01216130698 +:1072E000E407F50798F0621B730B840B950B39F4D8 +:1072F0000A2661F0232B242B252B21F408950A263E +:1073000009F4A140A6958FEF811D811D08950E946B +:107310009A390C940B3A0E94FD3938F00E94043AD5 +:1073200020F0952311F00C94F4390C94FA391124BF +:107330000C943F3A0E941C3A70F3959FC1F3950F4D +:1073400050E0551F629FF001729FBB27F00DB11DE9 +:10735000639FAA27F00DB11DAA1F649F6627B00D79 +:10736000A11D661F829F2227B00DA11D621F739F62 +:10737000B00DA11D621F839FA00D611D221F749F70 +:107380003327A00D611D231F849F600D211D822FB7 +:10739000762F6A2F11249F5750409AF0F1F08823DE +:1073A0004AF0EE0FFF1FBB1F661F771F881F91500B +:1073B0005040A9F79E3F510580F00C94F4390C948D +:1073C0003F3A5F3FE4F3983ED4F38695779567950F +:1073D000B795F795E7959F5FC1F7FE2B880F911D35 +:1073E0009695879597F9089597F99F6780E870E0DB +:1073F00060E008959FEF80EC089500240A9416162B +:10740000170618060906089500240A941216130692 +:10741000140605060895092E0394000C11F4882320 +:1074200052F0BB0F40F4BF2B11F460FF04C06F5F3C +:107430007F4F8F4F9F4F089557FD9058440F551F12 +:1074400059F05F3F71F04795880F97FB991F61F0E6 +:107450009F3F79F087950895121613061406551F5D +:10746000F2CF4695F1DF08C0161617061806991FC9 +:10747000F1CF86957105610508940895E894BB27BE +:1074800066277727CB0197F90895F999FECF92BD2A +:1074900081BDF89A992780B50895262FF999FECFD6 +:1074A0001FBA92BD81BD20BD0FB6F894FA9AF99A21 +:1074B0000FBE01960895052E97FB1EF400940E94BE +:1074C000723A57FD07D00E94BC3A07FC03D04EF435 +:1074D0000C94723A50954095309521953F4F4F4FFF +:1074E0005F4F089590958095709561957F4F8F4F70 +:1074F0009F4F08950E94DE3AA59F900DB49F900D76 +:10750000A49F800D911D112408952F923F924F92B8 +:107510005F926F927F928F929F92AF92BF92CF9223 +:10752000DF92EF92FF920F931F93CF93DF93CDB72C +:10753000DEB7CA1BDB0B0FB6F894DEBF0FBECDBFA4 +:1075400009942A88398848885F846E847D848C8475 +:107550009B84AA84B984C884DF80EE80FD800C817E +:107560001B81AA81B981CE0FD11D0FB6F894DEBF61 +:107570000FBECDBFED010895A1E21A2EAA1BBB1BC1 +:10758000FD010DC0AA1FBB1FEE1FFF1FA217B307EF +:10759000E407F50720F0A21BB30BE40BF50B661F05 +:1075A000771F881F991F1A9469F7609570958095C9 +:1075B00090959B01AC01BD01CF010895A29FB00140 +:1075C000B39FC001A39F700D811D1124911DB29F17 +:1075D000700D811D1124911D08955058BB27AA27B5 +:1075E0000E94053B0C940B3A0E94FD3938F00E9432 +:1075F000043A20F039F49F3F19F426F40C94FA3938 +:107600000EF4E095E7FB0C94F439E92F0E941C3A44 +:1076100058F3BA17620773078407950720F079F4C7 +:10762000A6F50C943E3A0EF4E0950B2EBA2FA02D41 +:107630000B01B90190010C01CA01A0011124FF271F +:10764000591B99F0593F50F4503E68F11A16F0401A +:10765000A22F232F342F4427585FF3CF4695379519 +:107660002795A795F0405395C9F77EF41F16BA0BDE +:10767000620B730B840BBAF09150A1F0FF0FBB1F8C +:10768000661F771F881FC2F70EC0BA0F621F731FD5 +:10769000841F48F4879577956795B795F7959E3F32 +:1076A00008F0B0CF9395880F08F09927EE0F9795C3 +:1076B000879508950E946E3B0C940B3A0E94043A01 +:1076C00058F00E94FD3940F029F45F3F29F00C94F6 +:1076D000F43951110C943F3A0C94FA390E941C3A37 +:1076E00068F39923B1F3552391F3951B550BBB27F1 +:1076F000AA2762177307840738F09F5F5F4F220F36 +:10770000331F441FAA1FA9F335D00E2E3AF0E0E82C +:1077100032D091505040E695001CCAF72BD0FE2F76 +:1077200029D0660F771F881FBB1F2617370748070A +:10773000AB07B0E809F0BB0B802DBF01FF279358C2 +:107740005F4F3AF09E3F510578F00C94F4390C9459 +:107750003F3A5F3FE4F3983ED4F38695779567957B +:10776000B795F7959F5FC9F7880F911D96958795F7 +:1077700097F90895E1E0660F771F881FBB1F621716 +:1077800073078407BA0720F0621B730B840BBA0BD4 +:10779000EE1F88F7E09508950E94D33B6894B111DD +:1077A0000C943F3A08950E94243A88F09F5798F02D +:1077B000B92F9927B751B0F0E1F0660F771F881FF6 +:1077C000991F1AF0BA95C9F714C0B13091F00E9410 +:1077D0003E3AB1E008950C943E3A672F782F8827FF +:1077E000B85F39F0B93FCCF3869577956795B39537 +:1077F000D9F73EF490958095709561957F4F8F4FA6 +:107800009F4F08950E94633908F48FEF08950E94F6 +:107810006339880B990B0895DB018F939F930E9426 +:107820007A3ABF91AF91A29F800D911DA39F900DB9 +:10783000B29F900D11240895EE0FFF1F0590F49153 +:10784000E02D09940F931F93CF93DF93823091051E +:1078500010F482E090E0E091C307F091C40730E0BB +:1078600020E0B0E0A0E0309799F42115310509F44B +:107870004AC0281B390B24303105D8F58A819B81F9 +:107880006115710589F1FB0193838283FE0111C0AB +:10789000408151810281138148175907E0F0481750 +:1078A000590799F4109761F012960C93129713965A +:1078B0001C933296CF01DF91CF911F910F910895C4 +:1078C0000093C3071093C407F4CF2115310551F07D +:1078D0004217530738F0A901DB019A01BD01DF010E +:1078E000F801C1CFEF01F9CF9093C4078093C3078C +:1078F000CDCFFE01E20FF31F819391932250310906 +:1079000039832883D7CF2091C1073091C207232B19 +:1079100041F420918201309183013093C20720937A +:10792000C10720918001309181012115310541F479 +:107930002DB73EB74091840150918501241B350B32 +:10794000E091C107F091C207E217F307A0F42E1BE4 +:107950003F0B2817390778F0AC014E5F5F4F2417B3 +:10796000350748F04E0F5F1F5093C2074093C10781 +:10797000819391939FCFF0E0E0E09CCFCF93DF9392 +:107980000097E9F0FC01329713821282A091C3079D +:10799000B091C407ED0130E020E01097A1F4208100 +:1079A0003181820F931F2091C1073091C2072817A0 +:1079B000390709F061C0F093C207E093C107DF9176 +:1079C000CF910895EA01CE17DF07E8F54A815B8180 +:1079D0009E0141155105B1F7E901FB83EA83499105 +:1079E0005991C40FD51FEC17FD0761F48081918177 +:1079F0000296840F951FE901998388838281938180 +:107A00009B838A83F0E0E0E012968D919C9113971E +:107A10000097B9F52D913C911197CD010296820FF7 +:107A2000931F2091C1073091C2072817390739F6F3 +:107A3000309751F51092C4071092C307B093C20754 +:107A4000A093C107BCCFD383C28340815181840FEF +:107A5000951FC817D90761F44E5F5F4F88819981E0 +:107A6000480F591F518340838A819B81938382836E +:107A70002115310509F0B0CFF093C407E093C30797 +:107A80009ECFFD01DC01C0CF13821282D7CFB0E0C0 +:107A9000A0E0EDE4FDE30C94873A8C01009751F4EB +:107AA000CB010E94223C8C01C801CDB7DEB7E0E1DA +:107AB0000C94A33AFC01E60FF71F9C0122503109F8 +:107AC000E217F30708F49DC0D901CD91DC9111971D +:107AD000C617D70798F0C530D10530F3CE0104970B +:107AE0008617970708F3C61BD70B2297C193D1932C +:107AF0006D937C93CF010E94BE3CD6CF5B01AC1A44 +:107B0000BD0A4C018C0E9D1EA091C307B091C40705 +:107B1000512C412CF12CE12C109731F58091C107AB +:107B20009091C2078815990509F05CC04616570662 +:107B300008F058C08091800190918101009741F434 +:107B40008DB79EB74091840150918501841B950BA0 +:107B5000E817F90708F055C0F093C207E093C10792 +:107B6000F90171836083A0CF8D919C91119712963A +:107B70006C90129713967C901397A815B90559F538 +:107B80006C0142E0C40ED11CCA14DB0420F1AC012C +:107B90004A195B09DA011296159780F062827382A6 +:107BA00051834083D9016D937C93E114F10471F00A +:107BB000D7011396FC93EE93129776CF22968C0FF3 +:107BC0009D1FF90191838083F301EFCFF093C407E8 +:107BD000E093C30769CF4816590608F42C017D01CC +:107BE000D3019ACFCB010E94223C7C01009749F03F +:107BF000AE01B8010E94093EC8010E94BE3C870147 +:107C000053CF10E000E050CF81E090E0F8940C9466 +:107C1000193EFB01DC0102C001900D924150504021 +:107C2000D8F70895FB01DC0101900D920020E1F7E7 +:107C3000089518E1C6EFD8E104C0FE010E941C3C83 +:0C7C40002196C73FD107C9F7F894FFCF89 +:107C4C0001FFD800340186011E0000000000000076 +:107C5C000000000000000000000000000000000018 +:107C6C000000000000000000000000000000000008 +:107C7C0000000000000000000000000000000000F8 +:107C8C000000013C960040010101280F0501014252 +:107C9C0043312E3500000000000000000000000001 +:107CAC0000000000000000000000000000000000C8 +:107CBC0000000000000000000000000000000001B7 +:107CCC000000C50780004C0AFC09AC095C090C09D2 +:107CDC00BC086C081C08CC074C0A7C072C07DC067B +:107CEC008C063C06EC059C054C053C069C05FC04EE +:107CFC004C053C06AC045C040C04BC036C031C0378 +:107D0C00CC027C022C02DC01CC027C028C013C01FA +:107D1C003C06DC27BC269C257C245C233C221C21B5 +:107D2C00FC1FDC1EBC1D9C1CDC277C1B5C1A3C193C +:107D3C00DC271C18FC163C191C18DC15FC163C190D +:107D4C00BC149C137C125C113C103C221C0FFC0DCF +:107D5C00DC0CBC0B1C0FFC0D7C129C0A3C1909069C +:107D6C000404020202020202039C297C295C2948B9 +:107D7C00313C291C29FC280C2BD42A9C2A642A2C43 +:107D8C002AF429BC2900000000921BF21A1F1BDFE9 +:107D9C001B501B2E1B421B00000000241EF21A4617 +:107DAC001FF11A6E616E00696E66006F7666002FA9 +:027DBC00330092 +:00000001FF diff --git a/software/binaries/1.6L+/T12.ino.with_bootloader.standard.hex b/software/binaries/1.6L+/T12.ino.with_bootloader.standard.hex new file mode 100644 index 0000000..88a0a7a --- /dev/null +++ b/software/binaries/1.6L+/T12.ino.with_bootloader.standard.hex @@ -0,0 +1,2047 @@ +:020000040000FA +:100000000C94F7180C941F190C941F190C94632D61 +:100010000C941F190C941F190C941F190C941F1980 +:100020000C941F190C941F190C941F190C941F1970 +:100030000C941F190C941F190C941F190C941F1960 +:100040000C94192D0C941F190C94E72C0C94C12CB2 +:100050000C941F190C943A2E0C941F190C941F1910 +:100060000C941F190C941F195361766500466C6936 +:1000700070004D61696E2053637265656E004F4B71 +:10008000004E4F00454E00434E00594553004E4F21 +:10009000004F4E004F464600496E666F730042693E +:1000A0006700504944004469726563740053617687 +:1000B0006500426F6F7374004F666600536C656530 +:1000C00070005361766500426F6F737400536C6506 +:1000D00065700044656661756C74005361766500F7 +:1000E0004164640044656C6574650052656E616DC1 +:1000F000650043616C696272617465004368616E9A +:1001000067650052657475726E004C616E67004CD5 +:100110004F5720566F6C0042757A7A6572005363B0 +:100120007265656E00436F6E74726F6C0054696D1A +:1001300065720054656D7000546970000000000025 +:10014000000F1DC20800054442080003845FBF0081 +:100150000FE44410000115451000054CC97F8009CB +:10016000244F900007C4C11000054D413F000554C5 +:1001700043810007C44D0200054441140005554168 +:10018000080007C881040000000000000000000013 +:100190000001083FFE001FFF810000004002000038 +:1001A00007FE0FF800040208080004020888000790 +:1001B000FE0888000402088800040208880007FE80 +:1001C0000888000402094800040202300007FE0407 +:1001D0000C000402180400000000000000000000F1 +:1001E0000001100080001FFF80800001103FFF0011 +:1001F000004004080007FC04080004440410000444 +:100200004402100004440220001FFF81200000402F +:1002100000C00000A00130000110020800060C0C14 +:1002200007001803B00200000000000000000000FA +:1002300000004000800000400080000FFF3FFF00F2 +:10024000084104080008410408000841041000089F +:10025000410210000FFF0220000841012000004071 +:1002600000C0000040013000004002080000400CC7 +:100270000700004030020000000000000000000005 +:10028000001FDF10200002120C20000224042000B6 +:10029000047F8020000424B820000FA4885000149C +:1002A000BF88500004A488500004A488480004BFFC +:1002B00088880004A48A880007A48C8400044489E8 +:1002C000070000818602000000000000000000001E +:1002D000000FF00491000440025200047F9054008B +:1002E000045088FF0007D08481000451008100047D +:1002F0004901FF0007CA0281000444048100044A46 +:100300001CFF0007EA0481000C510481000061C455 +:100310008500004080820000000000000000000016 +:100320000007FF802000008407FF00008404010014 +:10033000008404010000840401000FFFC7FF0000D7 +:10034000840400000084040000008405FF00008491 +:100350000501000104090100010409010002041162 +:10036000FF00040401010000000000000000000084 +:1003700000008204FF00004402010007FF902100FA +:100380000010102100001017FD0000101021000FB8 +:10039000FFD06100001010A10000281121000028EA +:1003A0001221000044142100008210A1000301D09A +:1003B00045000C009002000000000000000000005A +:1003C00000084410FE00042810920005FF2292004D +:1003D00000103C920000100892001CFE10920004D5 +:1003E0001020FE0004103E920005FF8092000410D1 +:1003F00000920005100E92000610309200041000CA +:10040000FE0000100082000000000000000000005C +:100410000007DF8840000A24104000114210FE004F +:10042000040022820002FF3D020008010A42000986 +:10043000F9103200090920120009F93E02000909E9 +:1004400000020009090E020009F930220008050027 +:100450001400080200080000000000000000000076 +:10046000000FC3F1E0000FE3F1F8000C70C19E0033 +:100470000C30C186000C30C183000C30C183000CED +:1004800060C183000C60C183000FC0C183000FC036 +:10049000C186000C00C186000C00C198000C03F15D +:1004A000F8000C03F1E00000000000000000000074 +:1004B0000000200820000FFF09FC000020080000B9 +:1004C00000203E880003FE08500002020BFE0003DD +:1004D000FE0C4000020218400003FE2BFE00020248 +:1004E00008480003FE0888000202085000020228A3 +:1004F00030001FFF91CC0000000000000104047CCC +:100500000000880444000FFF3F4400002004440022 +:1005100000200C440000200E44001FFF9544000002 +:10052000201444000050244400005004440000887B +:100530000445000104048500060385030018010436 +:1005400000000000000000000000000000000000AB +:1005500000047E21FC0004421104001F7E090400F7 +:10056000044221FC000542110400067E1104000C27 +:100570000005FC0015FF880000040813FE00044875 +:10058000325200044F125200044812520014A812B2 +:100590005200091F97FF000000000000000000004B +:1005A0000002103DFC000210250400041025040088 +:1005B00005FFBDFC000C102520000C382520001480 +:1005C0003825FE0004543D200004542510000492F8 +:1005D0002510000511A5090006113D450004102550 +:1005E0008300041001010000000000000000000072 +:1005F000001FC8102000124A0C20001AC904200055 +:1006000017480020001FFFB8200002080850001FF4 +:10061000C8085000020808500003C80848001E140B +:1006200008880001540A880015220C8400144389AC +:1006300007000081060200000000000002FE010029 +:100640000002823FFF00048202000004FE0200005C +:100650000C1004FC00141004080005FF8C100004AA +:1006600010141000043825FF000434041000045254 +:1006700004100004918410000510045000041004BC +:10068000200000000000000000000000000000004A +:100690000002030010001FDC3EFE00089002120062 +:1006A000051004FF001FDF84120002120CFE001F61 +:1006B000D2021000021222FE000A921410000A5206 +:1006C00014100012220DFF0002220810000A42142A +:1006D0001000040223FF00000000000000000000E2 +:1006E000000F78BC20000948A45000094AA8500017 +:1006F000094AA88800094AB104001FFEAAFB0009A4 +:100700004AA42000094AA42000094AA7FE00094A79 +:10071000B420000948A924000B48A22200088AA49A +:10072000A20011192040000000000000000000009D +:10073000000020008000005001FC0000880104003F +:10074000010403080006FB0490000800C0600007D5 +:10075000DF018000045106000004511BFE0004511B +:1007600002020007D9020200045602020000100330 +:10077000FE00001002020000000000000000000067 +:10078000000208209000027F9890001F8009FF005F +:10079000022201100006218B100007628DFE000A64 +:1007A000A20910000A14111000121431FE000208F0 +:1007B00011100002141110000222111000024391C6 +:1007C000FF00028111000000000000000000000096 +:1007D00000100700000008F83FFE0004802002001F +:1007E000008020020000BE23E2001C8222220004BE +:1007F000A4222200049422220004882222000494CD +:1008000023E200052220020005422002000A003FE8 +:10081000FE0011FFA00200000000000009FF0040E0 +:100820000004203FFF00042000000000FE00000044 +:100830001C420FFC00044200000007FF800000047F +:10084000000FFC0004FF000000048100000005818F +:100850000FFC00068108040004FF08040000810F5B +:10086000FC0000000000000000000000000000008C +:100870000001000FFE00010008200003FF08200017 +:100880000201082000042208200008200BFE0010AE +:10089000200820000050082800005008240000888C +:1008A000082200008810200001041020000203A785 +:1008B000FF000C010000000000000000000000002C +:1008C0000000400080001FFF9FFC0000400410005B +:1008D0000FFF02200000003FFF000FFE0000000895 +:1008E000420FF80008420808000FFE08080008023E +:1008F0000FF8000800080800080008080008000FAA +:10090000F8001000080800000000000000000000CF +:100910000007FE0FF80004020000000402000000BF +:1009200007FE00000004023FFE00040200800007F2 +:10093000FE008000009004900008910C880006934F +:100940001086000294208200009000800000900237 +:1009500080001FFF81000000000000000000000078 +:1009600000041012020005FF9FD200050092120041 +:100970001E28A2120004443FF20004820212000664 +:10098000000212000CFE1FD20014101252000410BC +:100990001242000410134200041012820015FF825C +:1009A0000A0008000204000000000000000000002F +:1009B00000002000000000203E04001FFFA20400F1 +:1009C0001000A2FF0000012204000FFE220400001C +:1009D000403E440000402224000440222400047CC5 +:1009E00022040004402204000A403E040009402280 +:1009F000240010FF80140000000008000000000028 +:100A00000010FE08200008820BFF0004820A01008B +:100A100010FE3C5100088208880008820904000288 +:100A2000FE0C0000040019FC0009FF282000192911 +:100A30000820000929082000092908200009292B7D +:100A4000FF000BFF9000000000000000000000000D +:100A5000001F7F90F80001080888000A100888002D +:100A6000047F0107001FC13A0000054909FC00048A +:100A700049088400044908880004490848000449DA +:100A800008500004490A200004160C58001421895B +:100A9000870008C086020000000000000FFFFFFF73 +:100AA000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF29 +:100AB000FFFFFFFEF0000000000FF0000000000F3D +:100AC000F0000000000FF1FFFFFFFF8FF1FFFFFFBD +:100AD000FF8FF1FFFFFFFF8FF1FFFFFFFF8FF1FFA0 +:100AE000FFFFFF8FF1FFFFFFFF8FF1FFFFFFFF8F82 +:100AF000F1FFFFFFFF8FF1FFFFFFFF8FF1FFFFFF10 +:100B0000FF8FF1FFFFFFFF8FF1FFFFFFFF8FF1FF6F +:100B1000FF03FF8FF1FFFF03FF8FF1FFFF03FF8F45 +:100B2000F1FFFFFFF18FF1FFFFFFE18FF1FFFFFF0B +:100B3000C78FF1FFFFFF8F8FF1FFFFFF0F8FF1FFD7 +:100B4000FFFF8F8FF1FFFFFFC78FF1FFFFFFE18FE7 +:100B5000F1FFFFFFF18FF1FFFFFFFF8FF1FFFFFFBD +:100B6000FF8FF0000000000FF0000000000FF00009 +:100B70000000000FF1FFFFFFFF8FF1111FFFFF8F3C +:100B8000F1111FFFFF8FF1111FFFFF8FF1FFFFFF1B +:100B9000FF8FF0000000000FF0000000000FF000D9 +:100BA0000000000F7FFFFFFFFFFE7FFFFFFFFFFE44 +:100BB0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFF7 +:100BC000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF08 +:100BD000FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF26 +:100BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:100BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:100C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:100C1000FFFFFFC7001FC00FFFC7001FC00C1FC78B +:100C2000001FC00C1FC71FFFC7FC0FC71FFFC7FC5B +:100C30004FC71FFFC7FC4FC71FFFC7FC47C71FFF9A +:100C4000C7FC67C71C01C01C63C71C01C01C73C75D +:100C50001C01C01C71C71F8FC7FC79C71F8FC7FC41 +:100C600078C71F8FC7FC7C071F8FC7FC7C07000F4E +:100C7000C00C7E07000FC00FFFFF000FC00FFFFF6B +:100C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:100C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:100CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:100CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:100CC000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFE36 +:100CD0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFD6 +:100CE000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFFE7 +:100CF000FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF05 +:100D0000FFFFFFFFFFFFFFFFFC7FFFFFFFFFFC7FF9 +:100D1000FFFFFFFFFC7FFFFFFFFFFC7FFFFFFFFFE9 +:100D2000FC7FFFFFFFFFFC7FFFFFFFFFFC7FFFFF5C +:100D3000FFFFFC7FFFFFFE00000001FFFE00000040 +:100D400001FFFE00000001FFFE3FFC7FF1FFFE3FC0 +:100D5000FC7FF1FFFE3FFC7FF1FFFE3FFC7FF1FFD8 +:100D6000FE3FFC7FF1FFFE3FFC7FF1FFFE3FFC7F7B +:100D7000F1FFFE3FFC7FF1FFFE3FFC7FF1FFFE0035 +:100D80000000007FFE000000007FFE000000007FEA +:100D9000FE3FFC7FFFFFFFFFFC7FFFFFFFFFFC7FAD +:100DA000FFFFFFFFFC7FFFFFFFFFFC7FFFFFFFFF59 +:100DB000FC7FFFFFFFFFFC7FFFFFFFFFFC7FFFFFCC +:100DC000FFFFFC7FFFFFFFFFFC7FFFFFFFFFFC7FBC +:100DD000FFFFFFFFFCFFFFFFFFFFFFFFFFFFFFFF26 +:100DE000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFE15 +:100DF0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFB5 +:100E0000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFFC5 +:100E1000C003FFFEFFFF0000FFFFFFFC00003FFFDD +:100E2000FFF000000FFFFFC0000003FFFFC0000045 +:100E300001FFFF00000000FFFF000000007FFE0038 +:100E40000000007FFC000000003FFC000000203F8D +:100E5000F8000000701FF8000000F81FF00000010B +:100E6000F80FF0000003F00FF0000007E00FF000B3 +:100E7000000FC00FE000001F8007E001803F000767 +:100E8000E003C07E0007E007E0FC0007E003F1F8A4 +:100E90000007E001FFF00007E000FFE00007E000CE +:100EA0007FC00007F0003F80000FF0001F00000F20 +:100EB000F0000E00000FF0000400000FF80000002A +:100EC000001FF8000000001FFC000000003FFC00B5 +:100ED0000000003FFF000000007FFF00000000FF57 +:100EE000FF80000001FFFFC0000003FFFFF00000D3 +:100EF00007FFFFF000000FFFFFFC00003FFFFFFFB8 +:100F00000000FFFF7FFFF00FFFFE7FFFFFFFFFFEF0 +:100F10003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF93 +:100F2000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFFA4 +:100F3000C001FFFEFFFF0000FFFFFFFC00001FFFDE +:100F4000FFF000000FFFFFE0000003FFFFC0000004 +:100F500001FFFF80000000FFFF000000007FFE0097 +:100F60000000007FFE000000003FFC008000801FAA +:100F7000F801C003C01FF803E003E01FF803F00FFF +:100F8000E00FF001F80FC007F000FC1F8007F00031 +:100F90007E7F0007E0003FFE0007E0001FFC000727 +:100FA000E0000FF80007E00007F00007E00007F09E +:100FB0000007E0001FF80007E0001FFC0007E0004A +:100FC0007FFE0007F0007E3F0007F001FC1F800756 +:100FD000F001F80FC00FF803F007E00FF803E0038B +:100FE000E01FF801C001801FFE008000803FFE006E +:100FF0000000003FFF000000007FFF000000007FB6 +:10100000FF80000000FFFFC0000001FFFFF00000B4 +:1010100007FFFFF800000FFFFFFC00003FFFFFFF8E +:101020008000FFFF7FFFF007FFFE7FFFFFFFFFFE57 +:101030003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF72 +:10104000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF83 +:10105000F00FFFFEFFFFF00FFFFFFFFFE007FFBFF6 +:10106000FFFFC3C3FF1FFFFF87E1FE0FFFFF0FF06E +:10107000FC1FFFFE1FF8783FFFFC3FFCF07FFFF8EE +:101080007FFFE0FFFFF0FFFFC1FFFFE1FFFF83FFF6 +:10109000FFE3FFFF07FFFFE3FFFE07FFFFE3FFFCA8 +:1010A00007FFFFE3FFF807FFFFE3FFF047FFFFE362 +:1010B000FFE0C7FFFFE3FFC1C7FFFFE3FF83C7FFF9 +:1010C000FFE3FF07C7FFFFE3FE0FC7FFFFE3FC1FC0 +:1010D000C7FFFFE3F83FC7FFFFE3F07FC7FFFFE372 +:1010E000E0FFC7FFFFE3C1FFC7FFFFE783FFC7FFC5 +:1010F000FFEF07FFC7FFFFFE0FFFC1FFFFFC1FFF52 +:10110000E0FFFFF83FFFF87FFFF07FFFFC3FFFE0CD +:101110000000003FFFC00000003FFF800000003FD4 +:10112000FF07FFFFFFFFFE0FC003FFFFFC1FC00311 +:10113000FFFFFE3FE007FFFFFF7FE007FFFFFFFF2E +:10114000F81FFFFF7FFFF81FFFFE7FFFFFFFFFFE7F +:101150003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF51 +:10116000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF62 +:10117000FFFFFFFEF0000000000FF0000000000F76 +:10118000F0000000000FF1FFFFFFFF8FF1FFFFF8FD +:10119000888FF1FFFFF8888FF1FFFFF8888FF1FF4C +:1011A000FFFFFF8FF0000000000FF0000000000FB5 +:1011B000F0000000000FF1FFFFFFFF8FF10DDDFEDB +:1011C0004A8FF10AAAFFCD8FF10888FE5F8FF11ACE +:1011D000AAFFFF8FF1FFFFFFFF8FF1FFFFFFFF8FE0 +:1011E000F1FFFF00008FF10C017FFF8FF16FFF46D1 +:1011F000318FF16C3F56B78FF11FFF56B78FF1FF5C +:10120000FF46318FF1FFFF77B58FF1FFFF77B58F85 +:10121000F10C0177B58FF16FFF46318FF16C3F7F95 +:10122000FF8FF11FFF00008FF1FFFFFFFF8FF1FF26 +:10123000FFFFFF8FF1FFFFFFFF8FF100002AA48F58 +:10124000F1000055228FF1E0002AA48FF1FFFFFF8B +:10125000FF8FF0000000000FF0000000000FF00012 +:101260000000000F7FFFFFFFFFFE7FFFFFFFFFFE7D +:101270003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF30 +:10128000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF41 +:10129000FFFFFFFEF0000000000FF0000000000F55 +:1012A000F0000000000FF1FFFFFFFF8FF1FFFFF8DC +:1012B000888FF1FFFFF8888FF1FFFFF8888FF1FF2B +:1012C000FFFFFF8FF0000000000FF0000000000F94 +:1012D000F0000000000FF1FFFFFFFF8FF1FFFFFFA5 +:1012E000FF8FF1FFFFFFFF8FF1FFFFFFFF8FF1FF88 +:1012F000FFFFFF8FF180F01F018FF180F01F018F42 +:10130000F19CF39FF98FF19CF39FF98FF19CF39F70 +:10131000F98FF19CF39FF98FF180F01C018FF18020 +:10132000F01C018FF1FCFF9CF98FF1FCFF9CF98F01 +:10133000F1FCFF9CF98FF1FCFF9CF98FF100E01CA0 +:10134000018FF100E01C018FF1FFFFFFFF8FF1FF24 +:10135000FFFFFF8FF1FFFFFFFF8FF1FFFFFFFF8F09 +:10136000F1FFFFFFFF8FF1FFFFFFFF8FF1FFFFFF97 +:10137000FF8FF0000000000FF0000000000FF000F1 +:101380000000000F7FFFFFFFFFFE7FFFFFFFFFFE5C +:101390003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF0F +:1013A000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF20 +:1013B000FFFFFFFEFFFFFFFFFFFFFDFFFFFFFFFF40 +:1013C000F8FFFFFFFFFFF07FFFFFFFFFE03FFFFFA2 +:1013D000FFFFF8FFFFFFFFFFF8FFFFFFFFFFF8FF32 +:1013E000FFFFFFFFF8E7FFFFFFFFF8E7FFE1FFFF69 +:1013F000F8E3FF007FFFF8F3FE0C1FFFF8F3F87F20 +:101400000FFFF8F1F0FFC7FFF8F9E3FFE3FFF8F88B +:10141000E7FFF1FFF8FC47FFF8FFF8FE0FFFFCFFC6 +:10142000F8FF1FFFFFFFF8FF1FFFFFFFF8FE0FFF92 +:10143000FFFFF8FE47FFFFFFF8FC63FFFFFFF8FC2C +:10144000F0FFFFFFF8F8F87FFFFFF8F9FE1FFFFF3E +:10145000F8F1FF07FFFFF8E3FFC1FFFFF8C7FFF058 +:101460001FFFF8C7FFFC07FFF8CFFFFFC7FFF8FF1C +:10147000FFFFFFFFF8FFFFFFFFFFF8FFFFFFFFBFCA +:10148000F8FFFFFFFF9FF8000000000FF8000000CA +:101490000007F8000000000FFFFFFFFFFF9FFFFFA6 +:1014A000FFFFFFBF7FFFFFFFFFFE7FFFFFFFFFFE8E +:1014B0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFEE +:1014C000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFFFF +:1014D000FFFFFFFEFFFFFFFFFFFFFDFFFFFFFFFF1F +:1014E000F8FFFFFFFFFFF07FFFFFFFFFE03FFFFF81 +:1014F000FFFFF8FFFFFFFFFFF8FFFFFFFFFFF8FF11 +:10150000FFFFFFFFF8E7FFFFFFFFF8E7C00003FF63 +:10151000F8E3C00003FFF8F3CFFFFFFFF8F3CFFFBE +:10152000FFFFF8F1CFFFFFFFF8F9CFFFFFFFF8F85B +:10153000CFFFFFFFF8FC4FFFFFFFF8FE0FFFFFFF9D +:10154000F8FF0FFFFFFFF8FF0FFFFFFFF8FF8FFF10 +:10155000FFFFF8FFC7FFFFFFF8FFC3FFFFFFF8FF24 +:10156000C0FFFFFFF8FFC87FFFFFF8800E1FFFFFDF +:10157000F8800F07FFFFF8FFFFC1FFFFF8FFFFF044 +:101580001FFFF8FFFFFC07FFF8FFFFFFC7FFF8FF93 +:10159000FFFFFFFFF8FFFFFFFFFFF8FFFFFFFFBFA9 +:1015A000F8FFFFFFFF9FF8000000000FF8000000A9 +:1015B0000007F8000000000FFFFFFFFFFF9FFFFF85 +:1015C000FFFFFFBF7FFFFFFFFFFE7FFFFFFFFFFE6D +:1015D0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFCD +:1015E000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFFDE +:1015F000FE3FFFFEFFFFFE3FFFFFFFFFFE3FFFFF3F +:10160000FFFFFE3FFFFFFFFFFE3FFFFFFFFFBE3D6F +:10161000FFFFFFFE3E3C7FFFFFFC3E3C3FFFFFF82D +:101620003E3C1FFFFFF0FE3F0FFFFFE1FE3F87FF45 +:10163000FFC3FE3FC3FFFF87FE3FE1FFFF8FFE3F7B +:10164000F1FFFF0FFE3FF0FFFF1FFE3FF8FFFF1F00 +:10165000FE3FF8FFFE1FFE3FFC7FFE3FFE3FFC7F8C +:10166000FE3FFE3FFC7FFE3FFE3FFC7FFE3FFE3F16 +:10167000FC7FFE3FFFFFFC7FFE3FFFFFFC7FFE1F66 +:10168000FFFFFC7FFF1FFFFFF8FFFF1FFFFFF8FFBB +:10169000FF0FFFFFF0FFFF8FFFFFF1FFFF87FFFF4F +:1016A000E1FFFFC3FFFFC3FFFFE1FFFF87FFFFF085 +:1016B000FFFF07FFFFF83FFC0FFFFFFC0FF03FFFAE +:1016C000FFFE00007FFFFFFF8001FFFFFFFFF00F25 +:1016D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:1016E000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFE0C +:1016F0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFAC +:10170000FFF03FFFFFFFFFFC7FFEFFFFFFFE7FFEBE +:101710007FFFFFFEFFFE3FFFFFFFFFFE1FFFFFFFFC +:10172000FFFE0FFFFFFFFFFE07FFFFFFFFFE03FFB0 +:10173000FFFFFFFE01FFFFFFFFFE01FFFFFFFFFCBA +:1017400000FFFFFFFFF800FFFFFFFFF000FFFFFFBC +:10175000FFE0007FFFFFFFE0007FFFFFFFC0007F93 +:10176000FFFFFF80007FFFFFFF00007EFFFFFF0005 +:10177000007E7FFFFE0000FE3FFFFC0000FF1FFF1A +:10178000FC0000FE0FFFF80001FE07FFF80001FE5D +:1017900003FFF00003FC01FFF00007FC01FFF00075 +:1017A0000FF801FFF0001FF000FFF0001FF000FF36 +:1017B000F0003FE0007FF8007FC0007FF800FF806E +:1017C000007FFC00FF00007FFC01FF00007FFE01A6 +:1017D000FE00007FFE03FC00007FFF03F80000FF17 +:1017E000FF83F80000FFFFC7F80000FFFFE3F000F1 +:1017F00001FFFFF3F00003FFFFFFF00007FFFFFF13 +:10180000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFEEA +:101810003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF8A +:10182000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF9B +:10183000FFC1FFFEFFFFFF01FFFFFFFFFC01FFFFF6 +:10184000FFFFF001FFFFFFFFC001FFFFFFFF0007E9 +:10185000FFFFFFFC001FFFFFFFF0007F9FFFFFE087 +:1018600001FE0FFFFFC007F807FFFFC01FE007FFE3 +:10187000FFC07F8007FFFFE1FE001FFFFFFFF800B2 +:101880003FFFFFFFE001FFFFFFFF8003FFFFFFFEC1 +:10189000000FFFFFFFF8003FFFFFFFE000FE0FFF1C +:1018A000FFC003FC07FFFFC00FE007FFFFC03FC002 +:1018B00007FFFFC0FE000FFFFFFFFC003FFFFFFF21 +:1018C000E0007FFFFFFFC003FFFFFFFF0001FFFFFE +:1018D000FFFE0001FFFFFFFE0000FFFFFFFE000113 +:1018E000FFFFFFFF0001FFFFFFFFFFFFFFFFFFFF05 +:1018F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:10190000FFFFFFFFFFFFFFFFE00FFFFFFFFFC0072D +:10191000FFFFFFFF8007FFFFFFFF8007FFFFFFFFC5 +:10192000C00FFFFF7FFFE01FFFFE7FFFFFFFFFFEF7 +:101930003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF69 +:10194000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF7A +:10195000FFFFFFFEF00000001FFFF00000000FFF80 +:10196000F000000007FFF1C00FF8C3FFF1C00FF84F +:10197000E1FFF1C00FF8F0FFF1C00FF8F87FF1C000 +:101980000FF8FC3FF1C00FF8FE1FF1C00000FF0F81 +:10199000F1C00000FF8FF1C00000FF8FF1FFFFFFDB +:1019A000FF8FF1FFFFFFFF8FF1FFFFFFFF8FF1FFC1 +:1019B000FFFFFF8FF1FFFFFFFF8FF1FFFFFFFF8FA3 +:1019C000F1FFFFFFFF8FF1FFFFFFFF8FF1FFFFFF31 +:1019D000FF8FF1C00000038FF1C00000038FF1C042 +:1019E0000000038FF1C7FFFFE38FF1C7FFFFE38F15 +:1019F000F1C60000E38FF1C60000E38FF1C60000DE +:101A0000E38FF1C7FFFFE38FF1C7FFFFE38FF1C65D +:101A10000000E38FF1C60000E38FF1C60000E38F02 +:101A2000F1C7FFFFE38FF1C7FFFFE38FF1C7FFFFB0 +:101A3000E38FF0000000000FF0000000000FF00046 +:101A40000000000F7FFFFFFFFFFE7FFFFFFFFFFE95 +:101A50003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF48 +:101A6000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF59 +:101A7000FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF77 +:101A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:101A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:101AA000FE3FFFFFFFFFFE3FFFFFFFFFFE3FFFFF89 +:101AB000FFFFFE3FFFFFFFFFFE3FFFFFFFFFFE3F79 +:101AC000FFFFFFFFFE3FFFFFFFFFFE3FFFFFFFFFA8 +:101AD000FE3FFFFFFFFFFE3FFFFFFFFFFE3FFFFF59 +:101AE000FFF000000FFFFFF000000FFFFFF000000D +:101AF0000FFFFFFFFFFFFFFFFFFFFE3FFFFFFFFFA7 +:101B0000FE3FFFFFFFFFFE3FFFFFFFFFFE3FFFFF28 +:101B1000FFFFFE3FFFFFFFFFFE3FFFFFFFFFFE3F18 +:101B2000FFFFFFFFFE3FFFFFFFFFFE3FFFFFFFFF47 +:101B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:101B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:101B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:101B6000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFE87 +:101B70003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF27 +:101B8000FFF03FFE00007FFC7FFE00007FFE7FFC39 +:101B900000003FFEFFFC7FFE3FFFFFFC7FFE3FFF9C +:101BA000FFFC7FFE3FFFFC000000001FF80000006C +:101BB000000FF00000000007F1FFFFFFFFC7F1FF7B +:101BC000FFFFFFC7F1FFFFFFFFC7F00000000007A6 +:101BD000F8000000000FFC000000001FFFFFFFFFE7 +:101BE000FFFFFC7FFFFFFE3FFC7FFFFFFE3FFC7F10 +:101BF000FFFFFE3FFC7F8FF8FE3FFC7F8FF8FE3F2C +:101C0000FC7F8FF8FE3FFC7F8FF8FE3FFC7F8FF854 +:101C1000FE3FFC7F8FF8FE3FFC7F8FF8FE3FFC7F8E +:101C20008FF8FE3FFC7F8FF8FE3FFC7F8FF8FE3F72 +:101C3000FC7F8FF8FE3FFC7F8FF8FE3FFC7F8FF824 +:101C4000FE3FFC7F8FF8FE3FFC7F8FF8FE3FFC7F5E +:101C50008FF8FE3FFC7F8FF8FE3FFC7FFFFFFE3FCB +:101C6000FC7FFFFFFE3FFC7FFFFFFE3FFC7FFFFF8F +:101C7000FE3FFC7FFFFFFE3FFC3FFFFFFC3FFC0001 +:101C80000000003F7E000000007E7F00000000FE9C +:101C90003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF06 +:101CA000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF17 +:101CB000FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF35 +:101CC000FFFFFFFFFFFFFFFFF007FFFFFFFF8000A9 +:101CD000FFFFFFFE00003FFFFFF807F00FFFFFF0E0 +:101CE0003FFE07FFFFE0FFFF83FFFFC1FFFFE1FFB4 +:101CF000FF87FFFFF0FFFF0FFFFFF87FFF0FFFFFE2 +:101D0000FC7FFE1FFFFFFC3FFE3FFFFFFE3FFC3F4F +:101D1000F3FBFE1FFC7FE1F0FF1FFC7FC0E07F1F95 +:101D2000F87F80407F0FF8FF00003F8FF8FF000032 +:101D30003F8FF8FF00001F8FF8FE00001F8FFFFE8F +:101D400000001FFFFFFE00001FFFFFFE00001FFF3F +:101D5000FFFF00001FFFFFFF00003FFFFFFF00002D +:101D60003FFFFFFF80007FFFFFFF80007FFFFFFF3F +:101D7000C000FFFFFFFFF003FFFFFFFFFC0FFFFFAF +:101D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:101D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:101DA000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFE45 +:101DB0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFE5 +:101DC000FFF03FFFFFFFFFFC7FFFFFFFFFFE600014 +:101DD00000001FFEE00000001FFFE00000001FFFEA +:101DE000E3FFFFFF1FFFE3FFFFFF1FFFE3FFFFFF17 +:101DF00010FFE3FFFFFF10FFE3FFFFFF10FFE3FF14 +:101E0000FFFF18FFE3FFFFFF18FFE3FFFFFF188747 +:101E1000E3FFFFFF1887E3FFFFFF1887E3FFFFFFE4 +:101E200018C7E3FFFFFF18C7E3FFFFFF18C7E3FF73 +:101E3000FFFF18C7E3FFFFFF18C7E3FFFFFF18C747 +:101E4000E3FFFFFF18C7E3FFFFFF18C7E3FFFFFF34 +:101E500018C7E3FFFFFF18C7E3FFFFFF18C7E3FF43 +:101E6000FFFF18C7E3FFFFFF18C7E3FFFFFF18C717 +:101E7000E3FFFFFF18C7E3FFFFFF18C7E000000004 +:101E800018C7E000000018C7E000000018C7FFFFF7 +:101E9000FFFFF8C7FF1FFFFFF8C7FF00000000C7E4 +:101EA000FF00000000C7FF00000000C7FFFFFFFFAA +:101EB000FFC7FFF8FFFFFFC7FFF800000007FFF8AC +:101EC000000000077FF8000000067FFFFFFFFFFE15 +:101ED0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFC4 +:101EE000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFFD5 +:101EF000FFFFFFFEFFFFFFFFFFFFF000007FFFFF80 +:101F0000F000007FFFFFF000007FFFFFF1FFFFFF09 +:101F1000FF0FF1FFFFFFFE0FF1FFFFFFFC0FF1FFCF +:101F2000FFFFF81FF1FFFFFFF03FF1FFFFFFE07F32 +:101F3000F1FFFFFFC0FFF1FFFFFF81FFF1FFFFFF98 +:101F400003FFF1FFFFFE07FFF1FFFFFC0FFFF1FEB4 +:101F50001FF81FFFF1FE0FF03FFFF1FE07E07FFFCC +:101F6000F1FE03C0FFFFF1FF0181FFFFF1FF8003DE +:101F7000FFFFF1FFC007FC7FF1FFE00FFC7FF1FFE7 +:101F8000F01FFC7FF1FFF83FFC7FF1FFFC7FFC7F3F +:101F9000F1FFFFFFFC7FF1FFFFFFFC7FF1FFFFFF81 +:101FA000FC7FF1FFFFFFFC7FF1FFFFFFFC7FF1FFF4 +:101FB000FFFFFC7FF1FFFFFFFC7FF1FFFFFFFC7FD6 +:101FC000F1FFFFFFFC7FF0000000007FF000000049 +:101FD000007FF0000000007FFFFFFFFFFFFFFFFF1B +:101FE000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFE03 +:101FF0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFA3 +:10200000FFF03FFFFFFFFFFC7FFFC001FFFE7FFEF1 +:1020100000007FFEFFF800001FFFFFE0000007FF49 +:10202000FFC0400203FFFF81800181FFFF07842082 +:10203000E0FFFE0F0C30F07FFC1E0C38783FF83EBE +:102040001C387C1FF87C1C3C3E1FF07C3C3C3F0F46 +:10205000F0FC3C3E1F0FE1F87C3E1F87E1F87C3E20 +:102060001F87E1F87C3F1FC7C3F8FC3F0FC3C3F0D5 +:10207000FC3F0FC3C3F0FC3F0FC3C00000000003D0 +:10208000C00000000003C00000000003C00000000A +:102090000003C7F0FC3F0FE3C3F0FC3F0FE3C3F0C6 +:1020A000FC3F0FC3C3F0FC3F0FC3C3F0FC3F0FC3A3 +:1020B000E1F8FC3F1FC7E1F87C3E1F87E1F87C3E5A +:1020C0001F87F0FC7C3E3F0FF07C3C3C3E0FF87CD1 +:1020D0003C3C3E1FFC3E1C387C3FFC1E0C30783FD5 +:1020E000FE0F0C30F07FFF030420C0FFFF81800152 +:1020F00081FFFFC0000003FFFFF000000FFFFFF8AB +:1021000000001FFF7FFE00007FFE7FFFC003FFFE79 +:102110003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF81 +:10212000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF92 +:10213000FFFFFFFEFFFFF003FFFFFFFFF003FFFFC6 +:10214000FFFFF003FFFFFFFFF1E3FFFFFFC001E030 +:1021500000FFFFC001E000FFFFC001E000FFFFC77C +:10216000FFFFF8FFFFC7FFFFF8FFFFC7FFFFF8FF04 +:10217000FFC7FFFFF8FFFFC7FFFFF8FFFFC7FFFF25 +:10218000F8FFFFC7FFFFF8FFFFC7FFFFF8FFFFC71C +:10219000FFFFF8FFFFC7FFFFF8FFFFC7FFFFF8FFD4 +:1021A000FFC7FFFFF8FFFFC7FFFFF8FFFFC7FFFFF5 +:1021B000F8FFFFC7FFFFF8FFFFC7FFFFF8FFFFC7EC +:1021C000FFFFF8FFFFC7FFFFF8FFFFC7FFFFF8FFA4 +:1021D000FFC7FFFFF8FFFFC7FFFFF8FFFFC7FFFFC5 +:1021E000F8FFFFC7FFFFF8FFFFC7FFFFF8FFFFC4BF +:1021F000000008FFFFC4000008FFFFC4000008FF44 +:10220000FFC4000008FFFFC4000008FFFFC7FFFF76 +:10221000F8FFFFC0000000FFFFC0000000FFFFC08C +:10222000000000FF7FFFFFFFFFFE7FFFFFFFFFFEBD +:102230003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF60 +:10224000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF71 +:10225000F00FFFFEFFFFF00FFFFFFFFFE007FFFFA4 +:10226000FFFFC3C3FFFFFFFF87E1FFFFFFFF0FF08B +:10227000FFFFFFFE1FF87FFFFFFC3FFC3FFFFFF863 +:102280007FFE1FFFFFF0FFFF0FFFFFE1FFFF87FF54 +:10229000FFE3FFFFC7FFFFE3FFFFC7FFFFE3FFFF12 +:1022A000C7FFFFE3FFFFC7FFFFE3FFFFC7FFFFE33A +:1022B000FFFFC7FFFFE3FFFFC7FFFFE3FFFFC7FF0E +:1022C000FFE3FFFFC7FFFFE3FFFFC7FFFFE3FFFFE2 +:1022D000C7FFFFE3FFFFC7FFFFE3FFFFC7FFFFE30A +:1022E000FFFFC7FFFFE3FFFFC7FFFFE3FFFFC7FFDE +:1022F000FFE3FFFFC7FFFF83FFFFC1FFFF07FFFFF4 +:10230000E0FFFE1FFFFFF87FFC3FFFFFFC3FFC00EC +:102310000000003FFC000000003FFC000000003F08 +:10232000FFFFFFFFFFFFFFFFC003FFFFFFFFC00333 +:10233000FFFFFFFFE007FFFFFFFFE007FFFFFFFFDB +:10234000F81FFFFF7FFFF81FFFFE7FFFFFFFFFFE6D +:102350003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF3F +:10236000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FFF50 +:10237000FFFFFFFEF0000000000FF0000000000F64 +:10238000F0000000000FF1FFFFFFFF8FF1FFFFF8EB +:10239000888FF1FFFFF8888FF1FFFFF8888FF1FF3A +:1023A000FFFFFF8FF0000000000FF0000000000FA3 +:1023B000F0000000000FF1FFFFFFFF8FF1FFFFFFB4 +:1023C000FF8FF18FFFFFFF8FF187FFFFFF8FF1E39B +:1023D000FFFFFF8FF1F1FFFFFF8FF1F0FFFFFF8F96 +:1023E000F1F1FFFFFF8FF1E3FFFFFF8FF187FFFFA9 +:1023F000FF8FF18FFFFFFF8FF1FFC0FFFF8FF1FF16 +:10240000C0FFFF8FF1FFC0FFFF8FF1FFFFFFFF8FC6 +:10241000F1FFFFFFFF8FF1FFFFFFFF8FF1FFFFFFD6 +:10242000FF8FF1FFFFFFFF8FF1FFFFFFFF8FF1FF36 +:10243000FFFFFF8FF1FFFFFFFF8FF1FFFFFFFF8F18 +:10244000F1FFFFFFFF8FF1FFFFFFFF8FF1FFFFFFA6 +:10245000FF8FF0000000000FF0000000000FF00000 +:102460000000000F7FFFFFFFFFFE7FFFFFFFFFFE6B +:102470003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFF1E +:10248000FFF03FFFFFFFFFFC7FFFFF803FFE7FFF6E +:10249000FF003FFEFFFFFE007FFFFFFFFC00FFFF8E +:1024A000FFFFF801FFFFFFFFF003FFFFFFFFE00763 +:1024B000FFFFFFFFC007FFFFFFFFC007FFFFFFFF9A +:1024C000C007FFFFFFFFC007FFFFFFFFC007FFFFC1 +:1024D000FFFFC007FFE7FFFFC007FFC7FFFFC00701 +:1024E000FF87FFFFC007FF07FFFFC007FE07FFFFD3 +:1024F000C0000007FFFFC0000007FFFFC000000F83 +:10250000FFFF8000000FFFFF0000001FFFFE000024 +:10251000003FFFFC0000007FFFF8000000FFFFF01D +:10252000000001FFFFE0000003FFFFC0000007FF05 +:10253000FF80007FFFFFFF0000FFFFFFFE0001FFA5 +:10254000FFFFFC0003FFFFFFF80007FFFFFFF000A5 +:102550000FFFFFFFE0001FFFFFFFC3803FFFFFFFF4 +:1025600087C07FFFFFFF87C0FFFFFFFF87C1FFFF1F +:10257000FFFF8383FFFFFFFFC007FFFFFFFFC00FC9 +:10258000FFFFFFFF601FFFFFFFFE783FFFFFFFFE23 +:102590003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFFD +:1025A000FFF03FFFFFFFFFFC7FFFFFFFFFFE7FC746 +:1025B000FFFFF1FEFF03FFFFE07FFE03FFFFE03FB1 +:1025C000FC03FFFFE01FF807F007F00FF00F80009B +:1025D000F807E01E00003C03E03C00001E03E07032 +:1025E00000000703E0E000000383F1C001C001C761 +:1025F000FF8003E000FFFF8003E000FFFF0003E037 +:10260000007FFF0003E0007FFE0003E0003FFE00CC +:1026100003E0003FFC0003E0001FFC0003E0001F9C +:10262000FC0003E0001FFC0003E0001FFC0003E0CF +:10263000001FFC0003F0001FFC0001F8001FFC005D +:1026400000FC001FFC00003E001FFE00001F003FBA +:10265000FE00000F803FFF000007803FFF000003E7 +:10266000007FFF80000000FFFF80000000FFFF8070 +:10267000000000FFFF000000007FFE000000003FA0 +:10268000FC000000001FFC060000301FFC0F800053 +:10269000F81FFE1FF007FC3FFFFFFFFFFFFFFFFFDC +:1026A000FFFFFFFF7FFFFFFFFFFE7FFFFFFFFFFE3C +:1026B0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFDC +:1026C000FFF03FFFFFFFFFFC7FFFF83FFFFE7FFFB4 +:1026D000F01FFFFEFFFFE38FFFFFFFFFE7CFFFFFCE +:1026E000FFFFE7CFFFFFFFFFE7CFFFFFFFFFE1CFD8 +:1026F000FFFFFFFFE1CFFFFFFFFFE7CFFFFFFFFF80 +:10270000E7CFFFFFFFFFE7CFFFFFFFFFE7CFFFFFB1 +:10271000FFFFE1CFFFFFFFFFE1CFFFFFFFFFE7CFAD +:10272000FFFFFFFFE7CFFFFFFFFFE7CFFFFFFFFF49 +:10273000E7CFFFFFFFFFE1CFFFFFFFFFE1CFFFFF8D +:10274000FFFFE7CFFFFFFFFFE7CFFFFFFFFFE3CF75 +:10275000FFFFFFFFE0CFFFFFFFFFE00FFFFFFFFFE7 +:10276000E00FFFFFFFFFE00FFFFFFFFFE00FFFFFA6 +:10277000FFFFE00FFFFFFFFFE00FFFFFFFFFE00F96 +:10278000FFFFFFFFE00FFFFFFFFFC007FFFFFFFF9F +:102790008003FFFFFFFF8003FFFFFFFF8003FFFFBA +:1027A000FFFF8003FFFFFFFF8003FFFFFFFF8003AA +:1027B000FFFFFFFFC007FFFFFFFFC007FFFFFFFF97 +:1027C000E00FFFFF7FFFF01FFFFE7FFFFFFFFFFE19 +:1027D0003FFFFFFFFFFC0FFFFFFFFFF00FFFFFFFBB +:1027E000FFF03FFFFFFFFFFC7FFFFFFFFFFE7000DA +:1027F0003FFFFFFEF0001FFFFFFFF0000FFFFFFF96 +:10280000F00007FFFFFFF00003FFFFFFF00001FFF4 +:10281000FFFFF00F80FFFFFFF01FC07FFFFFF03FC3 +:10282000E03FFFFFF07FF01FFFFFF07FF00FFFFFA3 +:10283000F07FF007FFFFF07FF003FFFFF03FE001C4 +:10284000FFFFF03FE000FFFFF01FC0007FFFF00F31 +:1028500080003FFFF80000001FFFFC0000000FFF9A +:10286000FE00000007FFFF00000003FFFF800000E4 +:1028700001FFFFC0000000FFFFE00000007FFFF04D +:102880000000003FFFF80000001FFFFC0000000FE9 +:10289000FFFE00000007FFFF00000003FFFF8000B5 +:1028A0000007FFFFC000000FFFFFE000001FFFFF59 +:1028B000F000003FFFFFF800007FFFFFFC0000FF7B +:1028C000FFFFFE0001FFFFFFFF0003FFFFFFFF8090 +:1028D00007FFFFFFFFC00FFFFFFFFFE01FFFFFFF2E +:1028E000FFF03FFF7FFFFFF87FFE7FFFFFFCFFFE53 +:1028F0003FFFFFFFFFFC0FFFFFFFFFF0000007E0BF +:102900001FF818181818181800003FFC3C3C3C3CF5 +:102910003C3C3E7C3E7C3FFC3FFC0000040006004B +:1029200007000F000F801F803F907F187F1C7E3CA8 +:102930007C3E787E78FE31FE11FC09F80FE01FF82E +:102940003FFC7FFEFFE6FFCEFF9FF33FF07FF8FFE7 +:10295000FDFE7FFE7FFC3FF81FF003C000E003C0D8 +:102960000F001C3810F003C00F001C3810F003E0FB +:1029700007E007E00000000003C003800180018041 +:102980000180199039B8318C618C618660066006CF +:10299000600E700C301C1C780FF003C003800380A5 +:1029A00003C007C007E00FE00E701E701E701E7897 +:1029B0003FF83FFC7E7C7E7E7FFE7FFE11408200E2 +:1029C00021208FE023FC82004A23E200FE209FF0BA +:1029D00013F880802220C0804221BFF0FBFA88805B +:1029E00002208480022084801A208080E3FE82807E +:1029F000020101000F421FC0784110400840904082 +:102A000008421FC008411040FFFD104008405FC051 +:102A10000840800008413FE0084325201041252060 +:102A2000104125202041252040417FF07FF848803B +:102A3000020049000201FFF00201001002027F20A3 +:102A40002200410023F07F00220008002200FF80C6 +:102A5000220088802200888022008A80220089004B +:102A6000FFFC080023F21FC022111040FBF0904031 +:102A700022121FC02A11104033F1104060005FC0C5 +:102A8000AFFC800020413FE0224325202279252011 +:102A900022412520A541252048FD7FF01083DFC07D +:102AA00010825040208250402FFFDFC060825200D1 +:102AB00061C25200A1C25FE022A3D20022A2510053 +:102AC00024925100288E5090308BD4502082583060 +:102AD00020801010104047C017FC44402003F440F1 +:102AE00023F844406208C440A3F8E4402001544065 +:102AF0002FFD44402806444023F8444020404450E1 +:102B000020404850214050302080400020921FC07B +:102B10003DF990402090904040901FC07BFF000006 +:102B2000A0013FE021F90200FD09020021097FF028 +:102B300021F90500210945002909888031F9107023 +:102B40002108202025004300202070F8380133019F +:102B50002D0125011E0117010F010A010301FC00CF +:102B6000F200EB00E400E000DB00D300CD00C70082 +:102B7000C200BC00B800B200AD00A600A2009E00DA +:102B80009800940091008E008A00870084008100E4 +:102B90007E0072006D0068003E0053656C656374D2 +:102BA000205469700000000000003E5B4F5B3E3E19 +:102BB0006B4F6B3E1C3E7C3E1C183C7E3C181C57E9 +:102BC0007D571C1C5E7F5E1C00183C1800FFE7C38D +:102BD000E7FF0018241800FFE7DBE7FF30483A065C +:102BE0000E2629792926407F050507407F05253FC8 +:102BF0005A3CE73C5A7F3E1C1C08081C1C3E7F14B4 +:102C0000227F22145F5F005F5F06097F017F0066FD +:102C100089956A606060606094A2FFA29408047E57 +:102C2000040810207E201008082A1C08081C2A0806 +:102C3000081E101010100C1E0C1E0C30383E3830C0 +:102C4000060E3E0E06000000000000005F000000BF +:102C500007000700147F147F14242A7F2A122313ED +:102C600008646236495620500008070300001C2201 +:102C700041000041221C002A1C7F1C2A08083E0833 +:102C80000800807030000808080808000060600034 +:102C900020100804023E5149453E00427F40007228 +:102CA000494949462141494D331814127F1027459F +:102CB0004545393C4A4949314121110907364949BD +:102CC0004936464949291E000014000000403400DE +:102CD0000000081422411414141414004122140892 +:102CE00002015909063E415D594E7C1211127C7F4A +:102CF000494949363E414141227F4141413E7F4958 +:102D00004949417F090909013E414151737F080842 +:102D1000087F00417F41002040413F017F0814228D +:102D2000417F404040407F021C027F7F0408107FAB +:102D30003E4141413E7F090909063E4151215E7FE6 +:102D400009192946264949493203017F01033F40B9 +:102D500040403F1F2040201F3F4038403F63140841 +:102D6000146303047804036159494D43007F4141D2 +:102D7000410204081020004141417F040201020485 +:102D80004040404040000307080020545478407FF2 +:102D9000284444383844444428384444287F38542C +:102DA00054541800087E090218A4A49C787F0804D3 +:102DB000047800447D40002040403D007F102844BE +:102DC0000000417F40007C047804787C080404788B +:102DD0003844444438FC1824241818242418FC7C53 +:102DE00008040408485454542404043F44243C4038 +:102DF00040207C1C2040201C3C4030403C4428109B +:102E000028444C9090907C4464544C4400083641D3 +:102E100000000077000000413608000201020402B1 +:102E20003C2623263C1EA1A161123A4040207A385C +:102E300054545559215555794121545478412155BF +:102E400054784020545579400C1E52721239555511 +:102E50005559395454545939555454580000457CE7 +:102E6000410002457D420001457C40F0292429F0C3 +:102E7000F0282528F07C545545002054547C547C7F +:102E80000A097F4932494949323248484832324A70 +:102E90004848303A4141217A3A42402078009DA08A +:102EA000A07D39444444393D4040403D3C24FF240A +:102EB00024487E4943662B2FFC2F2BFF0929F6203F +:102EC000C0887E090320545479410000447D41307C +:102ED00048484A32384040227A007A0A0A727D0D08 +:102EE00019317D2629292F28262929292630484DC0 +:102EF0004020380808080808080808382F10C8AC0F +:102F0000BA2F102834FA00007B000008142A14227B +:102F100022142A14089500220095AA005500AAAA96 +:102F200055AA55AA000000FF00101010FF0014144D +:102F300014FF001010FF00FF1010F010F014141414 +:102F4000FC001414F700FF0000FF00FF1414F40449 +:102F5000FC141417101F10101F101F1414141F003E +:102F6000101010F0000000001F101010101F1010A3 +:102F70001010F010000000FF1010101010101010B2 +:102F800010FF10000000FF140000FF00FF00001FF2 +:102F900010170000FC04F414141710171414F40490 +:102FA000F40000FF00F714141414141414F700F7BD +:102FB000141414171410101F101F141414F41410E8 +:102FC00010F010F000001F101F0000001F14000080 +:102FD00000FC140000F010F01010FF10FF14141487 +:102FE000FF141010101F00000000F010FFFFFFFF83 +:102FF000FFF0F0F0F0F0FFFFFF0000000000FFFF27 +:103000000F0F0F0F0F38444438447C2A2A3E147E99 +:1030100002020606027E027E02635549416338447D +:10302000443C04407E201E2006027E020299A5E751 +:10303000A5991C2A492A1C4C7201724C304A4D4DEC +:10304000303048784830BC625A463D3E49494900D4 +:103050007E0101017E2A2A2A2A2A44445F444440F0 +:10306000514A444040444A51400000FF0103E0807F +:10307000FF000008086B6B083612362436060F096D +:103080000F06000018180000001010003040FF016B +:1030900001001F01011E00191D1712003C3C3C3CA1 +:1030A000000000000000000000240027002A0000AB +:1030B000000000250028002B00000000002300264F +:1030C00000290004040404040404040202020202AD +:1030D00002030303030303010204081020408001DC +:1030E0000204081020010204081020AED5F0A83F09 +:1030F000D300408D14A1C8DA1281CFD9F1DB40A4EE +:10310000A6AF200021007F220007506C6561736527 +:103110002077616974004144433A200074656D7002 +:103120003A2000536574206D6561737572656400A3 +:10313000537465703A20003030300076312E364CB2 +:10314000310056005600430000800080018001805D +:103150000380078007F00FF00FE01FC001C001805F +:103160000180018001000100124812481FF8E007A9 +:103170002E142C04E80720042004E007200428145F +:10318000E0071FF8124812484552524F5200484F6C +:103190004C44004845415400574F524B5900424F50 +:1031A0004F535400534C454550004F4646000000D5 +:1031B0007E007F00738061C061E073F03FF81FFC08 +:1031C0000FFE07FF03FF01FE00FC00780030010244 +:1031D00004081020408000000008000201000003E5 +:1031E000040700000000000000003B2EA03811245E +:1031F0001FBECFEFD8E0DEBFCDBF12E0A0E0B1E050 +:10320000ECE4FCE702C005900D92A237B107D9F7B4 +:1032100027E0A2E7B2E001C01D92A53CB207E1F7AA +:1032200018E1C6EFD8E104C02197FE010E941C3CC2 +:10323000C53FD107C9F70E94FF2E0C94193E0C948C +:1032400000004F925F926F927F928F929F92AF9207 +:10325000BF92CF92DF92EF92FF920F931F93CF9383 +:10326000DF9300D000D0CDB7DEB74B015C01290160 +:103270003A016701780120E030E0A9010E9421397C +:1032800087FDA6C020E030E0A901C301B2010E9481 +:10329000213987FD9DC020E030E0A901C801B601B9 +:1032A0000E94213987FD94C081E0209185073091EB +:1032B00086072130310509F080E08093A6078092CF +:1032C0006B0790926C07A0926D07B0926E074092C8 +:1032D0006F07509270076092710770927207C092E8 +:1032E0007307D0927407E0927507F09276076091A9 +:1032F000990770919A0780919B0790919C070E9473 +:10330000263920E030E04AE754E40E945A3B6983C2 +:103310007A838B839C838092770790927807A09220 +:103320007907B0927A079B01AC01C301B2010E94F8 +:1033300087392B013C0140927B0750927C076092B9 +:103340007D0770927E0729813A814B815C81C7019C +:10335000B6010E945A3B6B017C01C0927F07D0925C +:103360008007E0928107F092820780918307909115 +:103370008407019769F5A501940160E070E0CB0135 +:103380000E94ED3A609377077093780780937907EE +:1033900090937A07A301920160E070E0CB010E9454 +:1033A000ED3A60937B0770937C0780937D07909341 +:1033B0007E07A701960160E070E0CB010E94ED3A24 +:1033C00060937F07709380078093810790938207B3 +:1033D0000F900F900F900F90DF91CF911F910F9151 +:1033E000FF90EF90DF90CF90BF90AF909F908F9025 +:1033F0007F906F905F904F90089580389105B0F462 +:103400006034710598F4EEECF1E390E1969FD00101 +:10341000A0781124A80F6770E60FF11D9491AE53A8 +:10342000BD4F442321F08C91982B9C930895909547 +:103430008C919823FACFDF92EF92FF920F931F9314 +:10344000CF93DF937C01EB01D22E8B01040F111D72 +:10345000C8010134110514F080E490E0C817D907C1 +:103460003CF44D2DBE01C7010E94FD192196F0CFFD +:10347000DF91CF911F910F91FF90EF90DF90089512 +:10348000CF92DF92EF92FF920F931F93CF93DF9330 +:103490006B01122FEC017C01E40EF11CCE15DF054F +:1034A00044F4202F412FB601CE010E941B1A219611 +:1034B000F5CFDF91CF911F910F91FF90EF90DF90AB +:1034C000CF9008952F923F924F925F926F927F928A +:1034D0008F929F92AF92BF92CF92DF92EF92FF9224 +:1034E0000F931F93CF93DF9300D01F92CDB7DEB71A +:1034F000C22ED12C9601280F391F37FD4FC08038BE +:1035000091050CF04BC0E9824A017B013C01402E41 +:10351000512C160127E0220E311C93E0359427949C +:103520009A95E1F78B01B12CA12C1B821A82EA81BA +:10353000FB8183E0F595E7958A95E1F7EA0DFB1DA0 +:10354000E80DF91DE4918A819B818770992720E815 +:1035500030E002C0359527958A95E2F7C901F0E081 +:10356000E223F923EF2B41F04981B8018A819B8145 +:10357000860D971D0E94FD198A819B8101969B8370 +:103580008A838C159D059CF2A20CB31C0F5F1F4F04 +:10359000C8018E199F09841595053CF20F900F9074 +:1035A0000F90DF91CF911F910F91FF90EF90DF90DF +:1035B000CF90BF90AF909F908F907F906F905F90D3 +:1035C0004F903F902F90089580E0E2ECF2E081115F +:1035D0008FEF002481938193819381930394D1F79A +:1035E00008950895AF92BF92CF92DF92EF92FF922B +:1035F0000F931F93CF93DF936C017B018B01040F1B +:10360000151FEB015E01AE18BF08C017D10759F0B6 +:103610006991D601ED91FC910190F081E02DC601F8 +:103620000995892B79F7C501DF91CF911F910F91F2 +:10363000FF90EF90DF90CF90BF90AF900895FC0186 +:10364000538D448D252F30E0842F90E0821B930B07 +:10365000541710F0CF96089501970895FC01918DAD +:10366000828D981761F0A28DAE0FBF2FB11D5D96B0 +:103670008C91928D9F5F9F73928F90E008958FEF52 +:103680009FEF0895FC01918D828D981731F0828D06 +:10369000E80FF11D858D90E008958FEF9FEF08955D +:1036A000FC01918D228D892F90E0805C9F4F821BC1 +:1036B00091098F739927089582EC96E00E94501B20 +:1036C00021E0892B09F420E0822F089580E090E02A +:1036D000892B29F00E945C1B81110C940000089535 +:1036E000FC01A48DA80FB92FB11DA35ABF4F2C9177 +:1036F000848D90E001968F739927848FA689B7896E +:103700002C93A089B1898C91837080648C93938D64 +:10371000848D981306C00288F389E02D80818F7D07 +:1037200080830895EF92FF920F931F93CF93DF93BF +:10373000EC0181E0888F9B8D8C8D98131AC0E889ED +:10374000F989808185FF15C09FB7F894EE89FF89BC +:103750006083E889F98980818370806480839FBF5A +:1037600081E090E0DF91CF911F910F91FF90EF905A +:103770000895F62E0B8D10E00F5F1F4F0F7311276A +:10378000E02E8C8D8E110CC00FB607FCFACFE889A5 +:10379000F989808185FFF5CFCE010E94701BF1CFA2 +:1037A000EB8DEC0FFD2FF11DE35AFF4FF0829FB719 +:1037B000F8940B8FEA89FB8980818062CFCFCF9309 +:1037C000DF93EC01888D8823B9F0AA89BB89E88949 +:1037D000F9898C9185FD03C0808186FD0DC00FB6EF +:1037E00007FCF7CF8C9185FFF2CF808185FFEDCF6D +:1037F000CE010E94701BE9CFDF91CF9108958330F5 +:1038000081F028F4813099F08230A9F00895873052 +:10381000A9F08830C9F08430B1F4809180008F7DA8 +:1038200003C0809180008F7780938000089584B5D5 +:103830008F7784BD089584B58F7DFBCF8091B000D4 +:103840008F778093B00008958091B0008F7DF9CF7D +:10385000CF93DF93282F30E0F901EA52FE4C849198 +:10386000F901E952FF4CD491F901ED53FF4CC49199 +:10387000CC23A1F081110E94FF1BEC2FF0E0EE0F92 +:10388000FF1FE754FF4CA591B491EC91ED2381E02B +:1038900090E009F480E0DF91CF91089580E090E01E +:1038A000FACF1F93CF93DF93282F30E0F901EA522C +:1038B000FE4C8491F901E952FF4CD491F901ED538A +:1038C000FF4CC491CC23A9F0162F81110E94FF1B3D +:1038D000EC2FF0E0EE0FFF1FE155FF4CA591B491E6 +:1038E0008FB7F894EC91111108C0D095DE23DC93CA +:1038F0008FBFDF91CF911F910895DE2BF8CFCF932B +:10390000DF9390E0FC01E952FF4C24918D539F4CD2 +:10391000FC0184918823C9F090E0880F991FFC0175 +:10392000EB55FF4CA591B491FC01E155FF4CC591BD +:10393000D49161110DC09FB7F8948C91209582238A +:103940008C938881282328839FBFDF91CF9108958E +:10395000623051F49FB7F8943C91822F8095832375 +:103960008C93E8812E2BEFCF8FB7F894EC912E2B10 +:103970002C938FBFEACFCF93DF93EC0161E089E016 +:103980000E947F1C209731F460E089E0DF91CF91A5 +:103990000C94511CCF3FD10511F461E0F6CFEFED4F +:1039A000F1E3E491E33029F140F4E130B1F0E230A9 +:1039B000D9F0C038D1058CF7E7CFE73021F1E830F6 +:1039C00051F1E430B1F780918000806280938000F3 +:1039D000D0938B00C0938A0004C084B5806884BDF6 +:1039E000C7BDDF91CF91089584B5806284BDC8BD05 +:1039F000F8CF80918000806880938000D093890008 +:103A0000C0938800EECF8091B00080688093B000B2 +:103A1000C093B300E6CF8091B00080628093B00085 +:103A2000C093B400DECF3FB7F89480918B029091A1 +:103A30008C02A0918D02B0918E0226B5A89B05C084 +:103A40002F3F19F00196A11DB11D3FBFBA2FA92F1D +:103A5000982F8827BC01CD01620F711D811D911D1A +:103A600042E0660F771F881F991F4A95D1F7089586 +:103A70008F929F92AF92BF92CF92DF92EF92FF927E +:103A80004B015C010E94131D6B017C010E94131D00 +:103A90006C197D098E099F09683E73408105910567 +:103AA000A8F321E0821A9108A108B10888EEC80E97 +:103AB00083E0D81EE11CF11C81149104A104B1041F +:103AC00029F7FF90EF90DF90CF90BF90AF909F903D +:103AD0008F9008952FB7F8946091870270918802B3 +:103AE0008091890290918A022FBF089584E9809382 +:103AF000BC008091BC0084FDFCCF08958093BB0086 +:103B000084E88093BC008091BC0087FFFCCF0895BF +:103B100084EA8093BC008091BC0087FFFCCF88E7DB +:103B20000C947E1D0E94881D80E48093BB0084E875 +:103B30008093BC00E2ECF2E09091BC0097FFFCCFD8 +:103B400091919093BB008093BC0096E0E23CF90712 +:103B500099F78091BC0087FFFCCF0C94761DCF9322 +:103B6000C82F0E94881D80E00E947E1D8C2F0E941D +:103B70007E1DCF910C94761D480F592F511D413851 +:103B8000510514F040E850E0481BFB0177FD3796E3 +:103B900033E0F595E7953A95E1F7F695FE2FEE2798 +:103BA000F795E795E80FF91FEE53FD4F67707727FC +:103BB00081E090E001C0880F6A95EAF7382F213044 +:103BC00041F4415078F08191DF011197832B8C9360 +:103BD000F8CF8095415030F09191DF0111979823F3 +:103BE0009C93F8CF0895CF92DF92EF92FF920F93BC +:103BF000CF93DF936C017B01C42FD22F202F0E9423 +:103C0000BC1DB7016D0F711D6150710960347105E4 +:103C10002CF4202F4C2FC6010E94BC1D202F4D2FAD +:103C2000B701C6010E941B1AC6018C0F911D202FDF +:103C30004D2FB7010197DF91CF910F91FF90EF903A +:103C4000DF90CF900C941B1A2F923F924F925F926D +:103C50006F927F928F929F92AF92BF92CF92DF929C +:103C6000EF92FF920F931F93CF93DF93CDB7DEB701 +:103C70002A970FB6F894DEBF0FBECDBF9A83898313 +:103C80006A3061F5DC0152968C91B8E08B9F90010F +:103C90001124E981FA8186859785820F931F978782 +:103CA00086871586148681E090E02A960FB6F894F0 +:103CB000DEBF0FBECDBFDF91CF911F910F91FF905F +:103CC000EF90DF90CF90BF90AF909F908F907F90BC +:103CD0006F905F904F903F902F9008956D3019F343 +:103CE00029813A813A872987D9011C96AD90BC90E9 +:103CF000B0E8AB16B1040CF07BC0F901C684D784E0 +:103D0000F0E4CF16D1040CF073C0D90152966C9038 +:103D1000529745E09501649E200D311D1124121625 +:103D200013060CF065C0262C312C910153E0220FB4 +:103D3000331F5A95E1F72C0D3D1D121613060CF09A +:103D400057C05196BC91BB83E985FA85F089FC8305 +:103D5000649FB00111249B012B55344D3A83298374 +:103D6000712CE981FA818491F5E07F1201C080E035 +:103D7000460138E0532E282F30E03E832D834C80BF +:103D800080FF4B80411004C03B818C813817E1F0EB +:103D900010E000E00615C0F4D501A00FB11FB887F0 +:103DA000AF83F12CE12CE61460F4B701680D791DA6 +:103DB000442D8F8198850E94FD19BFEFEB1AFB0AF5 +:103DC000F2CF0F5F1F4FE6CF8D819E81959587952E +:103DD0005A94820C931C5110CECF7394E981FA81CE +:103DE0003196FA83E983A20CB31CF6E07F12B9CFB7 +:103DF000A985BA8552962C915297422F50E01C9675 +:103E00008D919C91B6E02B9F800D911D1124E98529 +:103E1000FA85958784872389222309F444CF6AEFA2 +:103E200064039001659F300D112420583F4F2817DF +:103E300039070CF038CFDF010190F081E02D0190BF +:103E4000F081E02D6AE0CD0109952DCF0F931F93EE +:103E5000CF93DF938C01D0E0C0E0F801EC0FFD1FA1 +:103E60006491662341F08DEA97E00E94241E892B1D +:103E700011F02196F2CFCE01DF91CF911F910F91DA +:103E80000895682F8DEA97E00C94241E90E080E05E +:103E9000089580917A00806980937A008EE48093FF +:103EA0007C0061E070E080E090E00E94381D83B704 +:103EB000817F826083BF80E130E020E093B7916032 +:103EC00093BF889593B79E7F93BF90917A0096FD9C +:103ED000FCCF4091780050917900240F351F81501C +:103EE00069F780917A008F7780937A0084E0369525 +:103EF00027958A95E1F750E040E064EB7BE281E1B1 +:103F000090E00E945B3AC901089580917A0080692F +:103F100080937A0088EC80937C0064E170E080E01C +:103F200090E00E94381D83B7817F826083BF80E26A +:103F300070E060E093B7916093BF889593B79E7FE0 +:103F400093BF90917A0096FDFCCF2091780030913C +:103F50007900620F731F815069F780917A008F7723 +:103F600080937A00769567957695679562527A4048 +:103F700090E080E00E94263926EF38E24CE151E4DF +:103F80000E945A3B089590917A00906990937A002C +:103F90008E50806480937C0083B7817F826083BF72 +:103FA00020E290E080E033B7316033BF889533B7CB +:103FB0003E7F33BF30917A0036FDFCCF40917800D0 +:103FC00050917900840F951F215069F720917A0054 +:103FD0002F7720937A0025E0969587952A95E1F72B +:103FE00008958FE00E94C31FA0919202B0919302A6 +:103FF0009C010E94DE3A0E94283928E539E743E314 +:1040000053E40E945A3B0E94D33BCB010895209178 +:10401000A00230E0EEE1F2E090E080E0AF014E512E +:1040200052404217530724F44191840F911DF6CF5B +:10403000089580919802882369F086E00E94281CE8 +:10404000892B41F06AE070E080E090E00E94381D2A +:104050001092980208950F931F93CF938091480177 +:10406000882399F0CFEF0FEE11E061E085E00E9428 +:10407000511CC8010197F1F760E085E00E94511CD6 +:10408000C8010197F1F7C15081F7CF911F910F91AE +:1040900008952F923F924F925F926F927F928F92EC +:1040A0009F92AF92BF92CF92DF92EF92FF920F93C7 +:1040B0001F93CF93DF9310E000E0D0E0C0E03EE339 +:1040C000E32EF12C40ECC42ED12CAA24A394B12CC5 +:1040D00060E2662E712C70E4272E312C4C2E86E087 +:1040E0000E94281C21E0892B09F020E020939802EF +:1040F000F0929F02E0929E02D0929D02C0929C029A +:10410000B0929B02A0929A0282E890E09093AB0258 +:104110008093AA028091AA029091AB02959587950F +:10412000582E9FE1591243C0F0929F02E0929E02E6 +:10413000D0929D02C0929C02B0929B02A0929A02E1 +:10414000EEEBF0E0F093AB02E093AA029FE5592E6C +:104150000E94E41A82E08093BF071093BA0700938D +:10416000B907E0E3F0E0F093BC07E093BB078EE50E +:104170000E94411F1092BA071092B9077092BC07B3 +:104180006092BB07912C812C841438F58091C10278 +:10419000F40196E0989FE00DF11D1124E15BFE4FC4 +:1041A00080810E94411FEFEF8E1A9E0AEDCFF0E64C +:1041B0005F12CECFF0929F02E0929E02D0929D02BB +:1041C000C0929C02B0929B02A0929A023092AB02E3 +:1041D0002092AA0280E2582EBBCF1093BA07009318 +:1041E000B9077092BC076092BB07852D0E94411FE2 +:1041F0000E9419200E94921D86E00E94281C892B93 +:1042000009F088CF80919802811184CF8090C102FB +:10421000F6E08F9E40011124C401815B9E4F4C014A +:10422000FC01EC0FFD1F50820E942B206AE070E021 +:1042300080E090E00E94381D2196005F1F4FC5303E +:10424000D10509F04BCFF4011582DF91CF911F9179 +:104250000F91FF90EF90DF90CF90BF90AF909F9025 +:104260008F907F906F905F904F903F902F90089528 +:104270003F924F925F926F927F928F929F92AF92F6 +:10428000BF92CF92DF92EF92FF920F931F93CF9343 +:10429000DF93CDB7DEB72E970FB6F894DEBF0FBE13 +:1042A000CDBF8091BE02882309F4A5C110925F079B +:1042B00010926007109261071092620780905F076A +:1042C00090906007A0906107B0906207C090B30221 +:1042D000D090B402E090B502F090B602A70196012A +:1042E000C501B4010E94ED3A2B013C0120E030E011 +:1042F000A9010E94023C18160CF0A0C1C301B20132 +:104300000E94D33B80914901882309F4B8C1C0922F +:104310006707D0926807E0926907F0926A07E12C7C +:10432000F12C00EA10E420E030E040E450E46E318B +:10433000710540F0E12CF12C00E81FE320E030E0B3 +:1043400040E05FE360E070E080E391E40E942119C7 +:104350008091A507882309F42AC10E946A1D6D83F4 +:104360007E838F83988780918D0790918E07A0918F +:104370008F07B09190074D815E816F817885481BD2 +:10438000590B6A0B7B0B8091990790919A07A0912A +:104390009B07B0919C07481759076A077B0708F4E9 +:1043A00006C1E0918707F091880780819181A28101 +:1043B000B38189839A83AB83BC83E0918B07F091AF +:1043C0008C079C01AD0160817181828193810E9483 +:1043D000ED3A4B015C012091950730919607409191 +:1043E00097075091980769817A818B819C810E94FF +:1043F000ED3A6B017C0120917B0730917C07409165 +:104400007D0750917E07C501B4010E948739209134 +:1044100091073091920740919307509194070E9421 +:10442000EE3A2B013C014092910750929207609224 +:104430009307709294073090A60731101AC020910C +:104440007707309178074091790750917A07C70133 +:10445000B6010E9487399B01AC01C301B2010E94E1 +:10446000ED3A60939107709392078093930790932E +:104470009407409091075090920760909307709036 +:1044800094071091A1079091A2079E87A091A3077E +:10449000AD870091A407212F392F4A2F502FC30138 +:1044A000B2010E94023C18160CF0CCC0812F9E85F0 +:1044B000AD85B02F8093910790939207A0939307B7 +:1044C000B0939407332009F4D6C020917707309138 +:1044D00078074091790750917A07C501B4010E948D +:1044E00087394B015C0120917F0730918007409113 +:1044F000810750918207C701B6010E9487399B014D +:10450000AC0160919107709192078091930790910F +:1045100094070E94ED3AA50194010E94EE3A6B01C6 +:104520007C019B01AC01612F7E858D85902F0E94BF +:10453000213987FD18C010919D0790919E079E8795 +:10454000A0919F07AD870091A007212F392F4A2FF7 +:10455000502FB601C7010E94213987FD04C01C2DD0 +:10456000DE86ED860F2DE0918907F0918A07812F75 +:104570009E85AD85B02F80839183A283B38389818B +:104580009A81AB81BC818093950790939607A09305 +:104590009707B09398078D819E81AF81B8858093EE +:1045A0008D0790938E07A0938F07B093900760912B +:1045B00063077091640780916507909166070E9478 +:1045C000CC3BCB012E960FB6F894DEBF0FBECDBF0D +:1045D000DF91CF911F910F91FF90EF90DF90CF90DF +:1045E000BF90AF909F908F907F906F905F904F9013 +:1045F0003F900C94BB1C8091BD026091440170916E +:10460000450181110EC08091B1029091B2022091BA +:10461000BC02BC01222329F060914301680F792F6D +:10462000711D90E080E00E94263960935F077093CF +:104630006007809361079093620740CEC301B20187 +:1046400090585ECE80919D0790919E07A0919F0704 +:10465000B091A00789879A87AB87BC879C01AD0181 +:10466000C301B2010E94213987FF2CCF89859A8529 +:10467000AB85BC851FCF812C912C540134CF20E019 +:1046800030E040E05FE3C701B6010E94EE3A9B01D3 +:10469000AC01C501B4010E94023C18164CF4109202 +:1046A00063071092640710926507109266077FCF28 +:1046B00080E090E0AFE7B3E48093630790936407F2 +:1046C000A0936507B093660772CF4F925F926F9287 +:1046D0007F928F929F92AF92BF92CF92DF92EF9292 +:1046E000FF92CF93DF938090940290909502A090D8 +:1046F0009602B0909702C091C102D0E0C501B4010A +:104700000E94CC3B6B017C0120E030E048E453E4A4 +:10471000C501B4010E94213993E0CC0FDD1F9A95A9 +:10472000E1F7CE5FDE4F87FF31C02881398150E04D +:1047300040E02551310941095109C701B6010E94E4 +:104740000C3C28EC30E040E050E00E945B3ACA01AB +:10475000B9016B5E7F4F8F4F9F4F0E942839609346 +:10476000B3027093B4028093B5029093B602DF91C6 +:10477000CF91FF90EF90DF90CF90BF90AF909F9040 +:104780008F907F906F905F904F9008954A805B80EC +:10479000712C612C20E030E04CE853E4C501B401F9 +:1047A0000E94213987FF1FC088809980B12CA12CDD +:1047B000A7019601285C310941095109C301B201E1 +:1047C000681979098A099B090E940C3C20E530E0B0 +:1047D00040E050E00E945B3ACA01B901680D791DC2 +:1047E0008A1D9B1DBACF2C813D8150E040E02419E9 +:1047F000350946095709C701B60168517140810959 +:1048000091090E940C3C20E530E040E050E00E941D +:104810005B3ACA01B901640D751D861D971D9DCFB8 +:10482000FC0101900020E9F73197AF01481B590BBB +:10483000BC018DEA97E00C94F21A8F929F92AF928E +:10484000BF920F931F93CF93DF93CDB7DEB7A1979E +:104850000FB6F894DEBF0FBECDBF19A2423008F4E8 +:104860004AE08E010F5D1F4F842E912CB12CA12C9C +:10487000A50194010E94BC3AE62FB901CA01EA30B1 +:10488000F4F4E05DD801EE938D01232B242B252B2E +:1048900079F790E080E0109719F0CD010E94102484 +:1048A000A1960FB6F894DEBF0FBECDBFDF91CF91BA +:1048B0001F910F91BF90AF909F908F900895E95CEA +:1048C000E1CFCF92DF92EF92FF92CF93DF9397FFEA +:1048D00019C06B017C018DE20E94411FEC0166272B +:1048E0007727CB016C197D098E099F094AE00E9448 +:1048F0001D248C0F9D1FDF91CF91FF90EF90DF90D3 +:10490000CF9008954AE0DF91CF91FF90EF90DF9034 +:10491000CF900C941D244F925F926F927F928F9252 +:104920009F92AF92BF92CF92DF92EF92FF920F933E +:104930001F93CF936B017C01742EAC019B010E94ED +:10494000073C882399F083E692E0CF911F910F9165 +:10495000FF90EF90DF90CF90BF90AF909F908F909F +:104960007F906F905F904F900C94102446015701F8 +:10497000E894B7F82FEF3FEF4FE75FE7C501B401C9 +:104980000E94073C81110DC02FEF3FEF4FE75FE71B +:10499000C501B4010E94213918161CF487E692E083 +:1049A000D4CF2FEF3FEF4FE75FE4C701B6010E947E +:1049B000023C18161CF48BE692E0C7CF2FEF3FEFB6 +:1049C0004FE75FECC701B6010E94213987FDF3CFA5 +:1049D00020E030E0A901C701B6010E94213910E0B2 +:1049E00000E087FF08C08DE20E94411F8C01F7FAAA +:1049F000F094F7F8F094C0E060E070E080E09FE3AE +:104A00007C1641F020E030E040E251E40E945A3B45 +:104A1000CF5FF6CFA70196010E94EE3A2B013C0131 +:104A20000E94D33B4B015C014AE00E941D247C01A3 +:104A3000E00EF11ECC23B1F1C501B4010E9426396C +:104A40009B01AC01C301B2010E94ED3A4B015C0134 +:104A50008EE20E94411FE80EF91EC15018F120E0BD +:104A600030E040E251E4C501B4010E9487392B01D6 +:104A70003C010E94D33B4B01B12CA12C4AE0C50163 +:104A8000B4010E941D24E80EF91EC501B4010E9464 +:104A900026399B01AC01C301B2010E94ED3A4B01E2 +:104AA0005C01DBCFC701CF911F910F91FF90EF9079 +:104AB000DF90CF90BF90AF909F908F907F906F903E +:104AC0005F904F900895CF92DF92EF92FF920F93F5 +:104AD0001F93CF93DF93C82F81E0DC2FD827D0938B +:104AE000BE07C093BD078093BF070C2F2EE046E69C +:104AF00061E370E081E090E00E94F31D2091BF022D +:104B00003091C002253F81E03807B8F4A4E6B0E058 +:104B10000E94DE3A24EF31E040E050E00E945B3A30 +:104B2000BA01A9014E5F5F4F6F4F7F4F2EE061E3E7 +:104B300070E081E090E00E94401A60915F07709100 +:104B4000600780916107909162070E94CC3B9B01B6 +:104B5000AC01A4E6B0E00E947A3A34EFC32EDD2423 +:104B6000D394E12CF12CA70196010E945B3ADA0163 +:104B7000C9010296A11DB11D02970C2F2DE043E043 +:104B800062E370E00E94401A60915F0770916007D5 +:104B900080916107909162070E94CC3B9B01AC0120 +:104BA000A4E6B0E00E947A3AA70196010E945B3A1F +:104BB000DA01C9010296A11DB11D039724E045E069 +:104BC0006CE370E00E94401A60915F07709160078B +:104BD00080916107909162070E94CC3B9B01AC01E0 +:104BE000A4E6B0E00E947A3AA70196010E945B3ADF +:104BF00089019A010E5F1F4F2F4F3F4F015011093E +:104C000041E3E42EF12C4D2FB701C8010E94FD199C +:104C10008FEFE81AF80A8DE3E816F104A1F7609126 +:104C20005F077091600780916107909162070E9411 +:104C3000CC3B9B01AC01A4E6B0E00E947A3A24EFA1 +:104C400031E040E050E00E945B3ADA01C90102968F +:104C5000A11DB11D0397ED2E04E025E048E45BE2C1 +:104C60006BE370E00E94621A0C2F2EE047E161E3D3 +:104C700070E088E690E00E94F31D609163077091F8 +:104C8000640780916507909166070E94CC3B9B0169 +:104C9000AC012F5F310941095109A7E1B0E00E9441 +:104CA0007A3ACC24C394DD24DA94ED2CFD2CA701B0 +:104CB00096010E945B3A422F2EE061E370E088E6A5 +:104CC00090E00E94401AC093BE07D093BD0782E0D7 +:104CD00090E09093BA078093B90707E310E0109330 +:104CE000BC070093BB0760915F07709160078091DC +:104CF00061079091620740E00E948B2488EF0E9438 +:104D0000411F86E49BE20E94261F89E690E0909373 +:104D1000BA078093B9071093BC070093BB07609153 +:104D200063077091640780916507909166070E9400 +:104D3000CC3B9B01AC012F5F310941095109A4E62D +:104D4000B0E00E947A3AA70196010E945B3ACA013C +:104D5000B9010E94612484E49BE20E94261FD09343 +:104D6000BE07C093BD07DF91CF911F910F91FF90B8 +:104D7000EF90DF90CF9008956F927F928F929F92E5 +:104D8000AF92BF92CF92DF92EF92FF920F931F9359 +:104D9000CF93DF93B090C10277247394B11001C018 +:104DA000712C809142018150990B10929F021092B8 +:104DB0009E02880F991F90939D0280939C0281E030 +:104DC00090E090939B0280939A028B2D90E0880F45 +:104DD000991F9093AB028093AA0286E00E94281C40 +:104DE00021E0892B09F020E020939802FF24F3941E +:104DF00072E0972EE6E08E2EFCE0CF2ED12C0E94A2 +:104E0000E41A1092BC071092BB071092BA071092D6 +:104E1000B907C091AA02D091AB02D595C795EC2EE7 +:104E20008E011127C801870D911D77FC9A958B196A +:104E30009109712C97FD06C08330910514F082E032 +:104E400090E0782EF092BE071092BD079092BF07B7 +:104E50008AE99BE20E94261F1092BE07F092BD07CE +:104E60001092BA071092B907A72C072C000CBB08A8 +:104E7000C501019654E0880F991F5A95E1F7909368 +:104E8000BC078093BB0788E99BE20E94261F6C2E1B +:104E9000671890E080E098012A193B095901209198 +:104EA00042018C010F5F1F4F6216D0F4D092BA07F7 +:104EB000C092B907980144E0220F331F4A95E1F7E9 +:104EC0003093BC072093BB078A0D9B1D889E9001E1 +:104ED000899E300D1124C901815B9E4F0E941024D0 +:104EE000C801639403301105D1F60E9419200E9475 +:104EF000921D86E00E94281C892BB9F480919802AB +:104F0000811113C00E942B20E092C102DF91CF914A +:104F10001F910F91FF90EF90DF90CF90BF90AF90D7 +:104F20009F908F907F906F900895BC2E68CF0E94C5 +:104F3000043EEF92FF920F931F93CF93DF93EC0108 +:104F40007B018A0188819981009729F02A813B8120 +:104F50002417350788F4B8016F5F7F4F0E94473DE3 +:104F6000009791F0998388831B830A832C813D816C +:104F7000232B11F4FC0110821D830C83B70188815F +:104F800099810E94123E0CC088819981009711F08E +:104F90000E94BE3C198218821D821C821B821A82CA +:104FA000CE01DF91CF911F910F91FF90EF90089567 +:104FB0001F93CF93DF93EC01162F0E94453A1817E9 +:104FC00039F0612FCE01DF91CF911F910C944D3AB2 +:104FD000DF91CF911F910895AF92BF92CF92DF9250 +:104FE000EF92FF920F931F93CF93DF93609147014E +:104FF00082E090E00E94D8276091460183E090E033 +:105000000E94D8276091450184E090E00E94D82753 +:105010006091440185E090E00E94D82760914301AF +:1050200086E090E00E94D82760914C0187E090E0F4 +:105030000E94D82760914B0188E090E00E94D82719 +:1050400060914A0189E090E00E94D82760917F0139 +:105050008AE090E00E94D827609149018BE090E0BF +:105060000E94D827609148018CE090E00E94D827E8 +:105070006091C1028DE090E00E94D82760914201CA +:105080008EE090E00E94D8276091BB028FE090E014 +:105090000E94D8276091990280E190E00E94D82771 +:1050A0006091B80281E190E00E94D82782E1E82E69 +:1050B000F12C10E006E0809142011817B8F5109F1E +:1050C00060011124D0E0C0E0FE01EC0DFD1DE15BAC +:1050D000FE4F6081C7018C0F9D1F0E94D82721962B +:1050E000C630D10589F7670186E0C80ED11C88E07B +:1050F000189FE0011124CE5FDE4F8EE0E80EF11C18 +:1051000069812296C6010E94D827560182E0A80E26 +:10511000B11CFE0132976081C60101960E94D8271A +:105120006501AE14BF0461F71F5FC5CFDF91CF915A +:105130001F910F91FF90EF90DF90CF90BF90AF90B5 +:1051400008958F929F92AF92BF92CF92DF92EF928B +:10515000FF92CF938FEF90E00E94BB1C8BEA94E00C +:105160000197F1F78EE00E94C31F7C018AE00E9444 +:10517000281C90917202981729F091E09093B70241 +:1051800080937202809101019FEF980F909301012B +:10519000811106C00E94F11F9093BA028093B90258 +:1051A000609163077091640780916507909166072D +:1051B0000E94CC3BCB010E94BB1C8090940290903B +:1051C0009502A0909602B0909702B70190E080E01F +:1051D0000E942639A50194010E94ED3A2DEC3CEC89 +:1051E0004CE45DE30E948739A50194010E94EE3AE8 +:1051F0006093940270939502809396029093970225 +:105200000E9465236091BF027091C00290E080E02F +:105210000E9426396B017C0120915F073091600765 +:1052200040916107509162070E9421398111B5C0F8 +:105230002091B3023091B4024091B5025091B60270 +:10524000C701B6010E94ED3A6B017C0120E030E01D +:10525000A9010E94023C18160CF095C020E030E035 +:1052600040EA50E4C701B6010E94023C18160CF453 +:1052700094C06091B1027091B20290E080E00E940F +:1052800026392091B3023091B4024091B502509179 +:10529000B6020E94ED3A6B017C0120E030E0A901EA +:1052A0000E94023C18160CF087C0C701B6010E948C +:1052B000D33B6530710508F083C080914E018111A8 +:1052C00005C080914D0181110E942B2081E08093C7 +:1052D0004E0110924D018091BF029091C002853F16 +:1052E00021E0920710F0109200012091000121119D +:1052F00040C0843F9140E8F58FEF90E00E94BB1CD6 +:105300000E942B20C1E0C09300010E94BC260E9495 +:10531000EC27C093B7028EE00E94C31FBC0190E04F +:1053200080E00E94263960939402709395028093E6 +:105330009602909397021092A9028091B1029091E7 +:10534000B20224E630E030939F0220939E0220E2D6 +:1053500033E030939D0220939C022AE030E03093AA +:105360009B0220939A02880F991F9093AB0280931F +:10537000AA02CF91FF90EF90DF90CF90BF90AF90B7 +:105380009F908F90089520E030E040EA50ECC701F4 +:10539000B6010E94213987FF6CCF6091B3027091F2 +:1053A000B4028091B5029091B6020E94D33B7093F3 +:1053B000C0026093BF025DCFC701B601905877CF9E +:1053C00010924E0188CF0C94453A2F923F924F9203 +:1053D0005F926F927F928F929F92AF92BF92CF9285 +:1053E000DF92EF92FF920F931F93CF93DF93CDB78E +:1053F000DEB768970FB6F894DEBF0FBECDBF26E0CC +:105400002093BF0721E02093BE071092BD070091B3 +:10541000AB071091AC076091A7077091A80730E81F +:10542000232E32E0332EF10130E020E02017310747 +:1054300030F4DB01A20FB31F6115710521F4109246 +:105440007302A3E7B2E04C9150E0419351932F5F78 +:105450003F4F2330310551F71C8A1B8A1E8A1D8A53 +:10546000188E1F8A4AE08E010F5F1F4FB8010E94FD +:10547000D738F80101900020E9F73197AF01401BC0 +:10548000510BB801CE0143960E9499278091A7073E +:105490009091A807009709F4E8C06B897C89611591 +:1054A000710509F4E0C04091A9075091AA072F891E +:1054B000388D4217530708F4D6C00E94123E8F89D8 +:1054C000988D9093AC078093AB07188E1F8A8B89B9 +:1054D0009C89009711F00E94BE3C94E7E92E92E06F +:1054E000F92E24E0A22EB12CD12CC12C8091AB0737 +:1054F0009091AC07C816D90638F4E091A707F0914F +:10550000A807309709F0C8C010927302E3E7F2E0F1 +:10551000808190E0F10120813181821B930BF2E3C5 +:10552000F89FB001F99F700D1124072E000C880B15 +:10553000990B0E942839F7012081318142815381E2 +:105540000E94EE3A2B013C0120E030E0A9010E94CC +:1055500021398111A4C0F701408251826282738295 +:1055600001E022E346E270E060E0C50104970E949A +:10557000401A8EEC882E99249A940FEF1FEFF701B2 +:10558000208131814281538160E070E080E890E4C5 +:105590000E94ED3A2B013C01B401092C000C880B50 +:1055A000990B0E9428399B01AC01C301B2010E94F2 +:1055B000EE3A0E94CC3BB092BA07A092B907709322 +:1055C000BC076093BB07F10160817181600F711F9F +:1055D00060537109072E000C880B990B0E946124FF +:1055E0000F5F1F4FF2E38F0E911C0230110539F649 +:1055F0002FEFC21AD20A84E0E80EF11CECE2AE0EE4 +:10560000B11CF2E02F0E311C23E0C216D10409F0C8 +:105610006DCF00E022E040E870E060E090E080E0E4 +:105620000E94401A2DE040E863E370E090E080E0E3 +:105630000E94401A68960FB6F894DEBF0FBECDBF29 +:10564000DF91CF911F910F91FF90EF90DF90CF905E +:10565000BF90AF909F908F907F906F905F904F9092 +:105660003F902F9008950E94BE3C8B899C89909317 +:10567000A8078093A7078D899E899093AA07809396 +:10568000A9078F89988D9093AC078093AB071C8AEC +:105690001B8A1E8A1D8A19CFEC0DFD1D39CFC3014F +:1056A000B20190582DEC3CEC4CE45FE30E9487394A +:1056B000A30192010E94EE3AF70160837183828315 +:1056C00093834ECF86E00E94281C21E0892B09F0AD +:1056D00020E0209398020E94E41A1092BC071092D6 +:1056E000BB071092BA071092B9078091AA02909155 +:1056F000AB02959587950E94E5290E94921D0E9414 +:10570000192086E00E94281C892B29F78091980295 +:105710008111E1CF0E942B208091A7079091A807CB +:10572000009721F00E94A938CB01089560E070E055 +:10573000CB01FACF2F923F924F925F926F927F925E +:105740008F929F92AF92BF92CF92DF92EF92FF9291 +:105750000F931F93CF93DF93CDB7DEB72A970FB682 +:10576000F894DEBF0FBECDBF782EE091A002F0E02E +:10577000E25EFD4F80818150990B10929F02109242 +:105780009E02880F991F90939D0280939C0281E056 +:1057900090E090939B0280939A02872D90E0880F6F +:1057A000991F9093AB028093AA0286E00E94281C66 +:1057B00021E0892B09F020E0209398021092BE0787 +:1057C00081E08093BD0748E3F42E8090AA02909078 +:1057D000AB0295948794182D5401BB249501271989 +:1057E0003109F29EC001F39E900D1124C80ED91EFE +:1057F000C114D10409F1662777276C197D09072E9A +:10580000000C880B990B0E94283920E030E040E022 +:105810005FE30E9487392B013C01B601DD0C880B48 +:10582000990B0E9428399B01AC01C301B2010E946F +:10583000EE3A0E94CC3B6B010E94E41A1092BC0726 +:105840001092BB071092BA071092B907350182E097 +:10585000681A71082601150193E0290E311C77FCA6 +:1058600020C0E091A002F0E0E25EFD4F808186154D +:105870001704B9F0B4F00E940720F301E80FF11DFE +:10588000EE0FFF1FEE52FE4F40815181EE24E39454 +:1058900000E320E370E060E0C201885491090E94B7 +:1058A000621A8FEF681A780A98E3490E511C621445 +:1058B0007304A9F68091BB02811140C00E940720A9 +:1058C000F501E80FF11DEE0FFF1FEA57FE4F408173 +:1058D0005181EE24E39400E124E260E370E080E390 +:1058E00090E00E94621A0E94921D0E94192086E098 +:1058F0000E94281C892B01F58091980281111CC0FF +:105900000E942B20812F2A960FB6F894DEBF0FBE7F +:10591000CDBFDF91CF911F910F91FF90EF90DF905E +:10592000CF90BF90AF909F908F907F906F905F903F +:105930004F903F902F900895782C47CF80E390E0D0 +:105940009093BA078093B90781E390E09093BC07E6 +:105950008093BB0781E08093BF070E940720880DDA +:10596000E82FF0E0EE0FFF1FE45BF44D65917491BA +:10597000CE0101960E94D038CE0101960E941024DB +:10598000B2CF1F920F920FB60F9211242F933F9315 +:105990004F935F936F937F938F939F93AF93BF9337 +:1059A000EF93FF9382EC96E00E94701BFF91EF91C2 +:1059B000BF91AF919F918F917F916F915F914F9127 +:1059C0003F912F910F900FBE0F901F9018951F922F +:1059D0000F920FB60F9211242F938F939F93EF93F3 +:1059E000FF93E091D206F091D3068081E091D80632 +:1059F000F091D90682FD1BC090818091DB068F5FFC +:105A00008F732091DC06821741F0E091DB06F0E015 +:105A1000EE53F94F958F8093DB06FF91EF919F91A5 +:105A20008F912F910F900FBE0F901F90189580812E +:105A3000F4CF1F920F920FB60F9211242F933F9322 +:105A40008F939F93AF93BF93809187029091880229 +:105A5000A0918902B0918A023091860223E0230F3F +:105A60002D3758F50196A11DB11D20938602809314 +:105A7000870290938802A0938902B0938A02809152 +:105A80008B0290918C02A0918D02B0918E020196B2 +:105A9000A11DB11D80938B0290938C02A0938D0267 +:105AA000B0938E02BF91AF919F918F913F912F91B3 +:105AB0000F900FBE0F901F90189526E8230F0296A7 +:105AC000A11DB11DD2CF1F920F920FB60F921124BC +:105AD0002F933F934F935F936F937F938F939F93F6 +:105AE000EF93FF9383B1817029B190919102981740 +:105AF00009F49DC030E0220F232F221F330B922F79 +:105B00008093910240919002241709F490C0209351 +:105B1000900220919A0230919B02981719F03195CA +:105B2000219531094091AA025091AB0260919E02E9 +:105B300070919F02240F351F261737070CF48BC076 +:105B400020919A0230919B02981719F03195219576 +:105B500031094091AA025091AB0260919C02709170 +:105B60009D02240F351F621773070CF46FC040911C +:105B70009A0250919B02981719F05195419551093D +:105B80002091AA023091AB02240F351F3093AB0253 +:105B90002093AA0241E0981340E020918F0242171F +:105BA00009F440C020919A0230919B02981719F095 +:105BB0003195219531096091AA027091AB02E09173 +:105BC0009E02F0919F02260F371F2E173F070CF4FD +:105BD0004CC020919A0230919B02981719F0319590 +:105BE000219531096091AA027091AB02E0919C026B +:105BF000F0919D02260F371FE217F3078CF12091D9 +:105C00009A0230919B02981719F03195219531092C +:105C10008091AA029091AB02820F931F9093AB02E6 +:105C20008093AA0240938F0281E08093B702FF9194 +:105C3000EF919F918F917F916F915F914F913F91E4 +:105C40002F910F900FBE0F901F90189520919C02DE +:105C500030919D029BCF20919E0230919F0296CF62 +:105C600080919C0290919D02D9CF80919E0290914B +:105C70009F02D4CF18950F931F93CF93DF93E2EC3D +:105C8000F6E01382128288EE93E0A0E0B0E0848315 +:105C90009583A683B78389E492E09183808385EC22 +:105CA00090E09587848784EC90E09787868780ECE6 +:105CB00090E0918B808B81EC90E0938B828B82ECD7 +:105CC00090E0958B848B86EC90E0978B868B118E81 +:105CD000128E138E148EEDEAF7E013821282168272 +:105CE000178280E180871582148212868BE592E00C +:105CF00091838083158614861786168611E0108B93 +:105D0000118A128B138AE7EAF7E01182108213825C +:105D100012821582148250E040E061E772E0CF0108 +:105D20000E949927CBE6D7E083E697E09F8F8E8F7E +:105D300087E697E09D8F8C8F8FE597E099A388A3E6 +:105D40001AAE1AAA1BAA1CAA1DAA80E090E0AFE70F +:105D5000B3E48EAB9FABA8AFB9AF84E690E0A0E010 +:105D6000B0E08EA79FA7A8ABB9AB81E090E0998F78 +:105D7000888F9B8F8A8F1BAF80E090E0A0E3B1E417 +:105D800088839983AA83BB8380E090E0A0E0BFE38F +:105D90008C839D83AE83BF8380E090E0A0E8BFE367 +:105DA00088879987AA87BB8780E090E0A0E3B1EC61 +:105DB0008C879D87AE87BF878DEC9CECACE4BDEBF8 +:105DC000888B998BAA8BBB8B80E090E0A0E2B1EC32 +:105DD0008C8B9D8BAE8BBF8B0E946A1D0EA51FA561 +:105DE00028A939A9601B710B820B930B6AA37BA3B3 +:105DF0008CA39DA3DF91CF911F910F910895CF9315 +:105E0000DF93CDB7DEB72B970FB6F894DEBF0FBE8A +:105E1000CDBF789484B5826084BD84B5816084BD33 +:105E200085B5826085BD85B5816085BD80916E0038 +:105E3000816080936E001092810080918100826069 +:105E400080938100809181008160809381008091A6 +:105E500080008160809380008091B1008460809395 +:105E6000B1008091B00081608093B00080917A0091 +:105E7000846080937A0080917A00826080937A00B7 +:105E800080917A00816080937A0080917A008068A6 +:105E900080937A001092C1001092B90088E4809338 +:105EA000B8000E94881D80E00E947E1D0BEE10E36A +:105EB0008AE0E82E81E3F82EF80184910E947E1D8D +:105EC0000F5F1F4FE016F106B9F70E94761D11E033 +:105ED0001093B8000E94921D81E28093B50760E0A4 +:105EE0008EE00E947F1C60E08FE00E947F1C61E0DA +:105EF00085E00E947F1C61E089E00E947F1C62E0D7 +:105F000087E00E947F1C62E088E00E947F1C62E0C4 +:105F100086E00E947F1C62E08AE00E947F1C8FEF77 +:105F200090E00E94BB1C60E085E00E94511C8091C3 +:105F30007A00876080937A0080917A0088608093ED +:105F40007A00789410936B00109368001BBB90E06C +:105F500080E00E94E329182F81E090E00E94E3296D +:105F6000912F8F3F984009F0BBC082E090E00E94E3 +:105F7000E329182F83E090E00E94E329912F90936A +:105F800047018093460184E090E00E94E329182FA6 +:105F900085E090E00E94E329912F90934501809342 +:105FA000440186E090E00E94E3298093430187E06A +:105FB00090E00E94E32980934C0188E090E00E94E9 +:105FC000E32980934B0189E090E00E94E3298093CC +:105FD0004A018AE090E00E94E32980937F018BE0F0 +:105FE00090E00E94E32991E0811101C090E090933C +:105FF00049018CE090E00E94E32991E0811101C009 +:1060000090E0909348018DE090E00E94E329809316 +:10601000C1028EE090E00E94E329282E8093420185 +:106020008FE090E00E94E3298093BB0280E190E042 +:106030000E94E32991E0811101C090E090939902C0 +:1060400081E190E00E94E3298093B802B2E08B2EB8 +:10605000B1E09B2E1FE4A12E11E0B12E02E1E02E53 +:10606000F12C312C231409F447C010E000E0C701E3 +:10607000800F911F0E94E329F501E00FF11F80833B +:106080000F5F1F4F0630110591F7670126E0C20E22 +:10609000D11C3EE0E30EF11C3401C6010E94E3294D +:1060A000082F10E0102F0027F30111830083260131 +:1060B000F2E04F0E511CC60101960E94E329082B05 +:1060C000F301019311933F0162014E145F0429F71C +:1060D0003394F8E08F0E911C26E0A20EB11CC2CFC3 +:1060E00068E090E080E00E94D8276FEF81E090E0C8 +:1060F0000E94D8270E94EC271091990280EC111180 +:1061000001C088EC0E94AF1D80EA111101C081EA34 +:106110000E94AF1D0E94491F9093930280939202A8 +:106120000E94F11F9093BA028093B9020091460138 +:10613000109147011093B2020093B1028EE00E94C9 +:10614000C31FBC0190E080E00E9426396093940256 +:106150007093950280939602909397020E94851FF8 +:106160000E94652320E030E040EA51E46091B302F0 +:106170007091B4028091B5029091B6020E94EE3AFD +:106180006B017C01B80190E080E00E9426399B0100 +:10619000AC01C701B6010E94213987FF04C090E01D +:1061A00080E00E94BB1C10929D0710929E071092E7 +:1061B0009F071092A007412C512CFFE76F2EF3E4AC +:1061C0007F2E4092A1075092A2076092A30770927F +:1061D000A407A0908907B0908A078091A507F501D0 +:1061E000C080D180E280F380882309F47DC7A301B9 +:1061F0009201C701B6010E94023C181634F5F50160 +:1062000040825182628273828090910790909207BF +:10621000A0909307B0909407C090A107D090A207D8 +:10622000E090A307F090A407A7019601C501B4016F +:106230000E94023C1816C4F4C0929107D0929207B3 +:10624000E0929307F09294071FC020E030E0A9018C +:10625000C701B6010E94213987FFD6CFF501108210 +:10626000118212821382D0CFC0909D07D0909E07DA +:10627000E0909F07F090A007A7019601C501B40127 +:106280000E94213987FDD8CF81E08093A50783B193 +:1062900081708093910289B190E0880F892F881FC7 +:1062A000990B80939002209191029091900281E04D +:1062B000291380E080938F0284E690E090939F0200 +:1062C00080939E0280E293E090939D0280939C02D3 +:1062D0008AE090E090939B0280939A02000F111F36 +:1062E0001093AB020093AA020E946A1D6093AD0254 +:1062F0007093AE028093AF029093B0020E942B2065 +:106300000E942B202090AA023090AB02910135957B +:1063100027953A8729873093B2022093B10286E00D +:106320000E94281C8B8781119EC08091A90288231E +:1063300009F499C00E942B200E946A1D6B017C0108 +:10634000C092A502D092A602E092A702F092A80203 +:1063500086E00E94281C892B59F40E946A1D6C1942 +:106360007D098E099F09643F71408105910580F385 +:106370000E946A1D6C197D098E099F09643F714056 +:106380008105910508F448C48FEF90E00E94BB1C82 +:106390000E942B20512C5AE0652E712C1092A002E5 +:1063A000852D0E949A2B582EF7E0F81708F438C074 +:1063B000E82FF0E0E252FE4C0C941C3CF831AA3479 +:1063C00024358C359A35D435EC35E23520E030E093 +:1063D000A901C701B6010E94213987FF55CF10924C +:1063E00091071092920710929307109294074CCF46 +:1063F0004EE1642E712C81E08093A002852D0E94D5 +:106400009A2B582E22E0821709F43EC2281708F46E +:10641000E9C0882309F411C131E0831709F410C1E0 +:106420000E94EC2781E08093B70229853A8530935A +:10643000B2022093B10284E690E090939F02809391 +:106440009E0280E293E090939D0280939C028AE0FA +:1064500090E090939B0280939A02C1018E7F90936B +:10646000AB028093AA023B853093A9028091BC02C3 +:10647000882309F110914A011123E9F00E946A1D55 +:10648000C090A102D090A202E090A302F090A402DA +:106490006C197D098E099F0928EE33E040E050E039 +:1064A0000E94BC3A211738F01092BC020E942B20A7 +:1064B00081E080934D018091B7028823E9F18091BA +:1064C000BD02882349F120E030E040EA51E46091C8 +:1064D000B3027091B4028091B5029091B6020E940D +:1064E000EE3A6B017C016091B1027091B20290E0D2 +:1064F00080E00E9426399B01AC01C701B6010E94D1 +:10650000213987FF04C090E080E00E94BB1C0E94FC +:106510002B2081E080934D011092B7021092BD02B2 +:106520001092BE020E946A1D6093AD027093AE028B +:106530008093AF029093B0020E946A1D0091AD0259 +:106540001091AE022091AF023091B002601B710B2E +:10655000820B930B20E63AEE40E050E00E94BC3AFA +:10656000122F2093AC028091BD0281110BC080914B +:106570004C01882339F0281728F081E08093BD0270 +:106580000E942B208091BE0281110BC080914B0193 +:10659000882339F0181728F081E08093BE020E940A +:1065A0002B200E94A1280E9438210E946A1D809100 +:1065B000B607962F981B892F9091B707992309F456 +:1065C00041C38093B8071092B70780E090E0892B11 +:1065D00009F498CE0E945C1B882309F493CE0E9494 +:1065E000000090CE83E0581609F451C194E059128E +:1065F00017CF80914201883008F0FDCE91E0980FCE +:10660000909342018093C1020E944920E091C1020F +:1066100028E0E29FF0011124EE5FFE4F88ED90E04C +:106620009183808324E331E03383228386E891E001 +:106630009583848377826682DECE0E94BC26DBCE81 +:106640008E010F5F1F4F812C912C5401839498EE83 +:10665000E92E93E0F92ECC24C394D12C32E0432EC2 +:10666000E091C10224E0E29FF0011124C4010197EE +:10667000E80FF91FEE0FFF1FEE5FFE4F8081918143 +:106680009093B2028093B102E8ECF0E0F0939F02A5 +:10669000E0939E02F0929D02E0929C02D0929B02B7 +:1066A000C0929A02880F991F9093AB028093AA021E +:1066B000F1E0F0934D0186E00E94281C21E0892B37 +:1066C00009F020E0209398020E94E41A1092BC077F +:1066D0001092BB071092BA071092B9074092BF07F9 +:1066E0000E94A1280E9438211092BA071092B9077F +:1066F0001092BC071092BB0780E391E30E94261F13 +:10670000C501B4010E9461248FE692E00E9410242A +:1067100080914E011092BA071092B907882309F4AC +:106720008BC020E130E03093BC072093BB0783E2AD +:1067300091E30E94261F1092BA071092B90780E2D7 +:1067400090E09093BC078093BB078CE191E30E949B +:10675000261F6091AA027091AB0275956795072E6E +:10676000000C880B990B0E9461240E9419200E9442 +:10677000921D86E00E94281C892B09F0A5CF8091EC +:1067800098028111A1CF8091AA029091AB029595B8 +:106790008795F801819391938F010E942B206AE0E5 +:1067A00070E080E090E00E94381DFFEF8F1A9F0A92 +:1067B000AF0ABF0A24E082169104A104B10409F0D3 +:1067C0004FCF8FEF90E00E94BB1C8BEA94E00197C3 +:1067D000F1F70E94851F0E94D33B4B0178876F839E +:1067E000C980DA800B811C81C6014E968017910703 +:1067F00008F001CEED80FE80C8014E968E159F05F3 +:1068000008F0F9CD87E08093A00280E00E949A2BE7 +:10681000882309F4F0CDE091C10238E0E39FF00154 +:106820001124EE5FFE4FD182C08213830283F58272 +:10683000E48297828682DFCDE0E1F0E0F093BC074E +:10684000E093BB0786E191E30E94261F60919402CA +:106850007091950280919602909197020E94D33B8D +:1068600090E080E04AE00E941D241092BA07109246 +:10687000B90720E230E03093BC072093BB078AE0E1 +:1068800091E30E94261F71CF0E944920B4CD87E07A +:106890008093A00280914201813009F4ACCD80E068 +:1068A0000E949A2B882309F4A6CD1091C102009171 +:1068B0004201802F8150990BBC011817190639F439 +:1068C00011501093C10201500093420194CD812FC9 +:1068D00090E086179707BCF7E6E01E9FD0011124D1 +:1068E00050E040E09C012F5F3F4FFA01EA0FFB1F91 +:1068F000E15BFE4FF680F0824F5F5F4F46305105FF +:10690000A1F7B3E0220F331FBA95E1F7F901EE5F6B +:10691000FE4F2081318143E0880F991F4A95E1F7AE +:10692000DC01AE5FBE4F11963C932E938281938122 +:1069300013969C938E9312978481958115969C93C0 +:106940008E9314978681978117969C938E931697B2 +:106950001F5FBDCF82E08093A002412C70E9C72E5B +:10696000DD24D394E4E6AE2EB12CF0E28F2EF3E0DA +:106970009F2EA4E1EA2EF12C08EC10E0842D0E9459 +:106980009A2B482E91E0891731F1891738F0E2E00F +:106990008E1709F43FC00E94EC2700CD809146017C +:1069A00090914701B0929F02A0929E0290929D0208 +:1069B00080929C0270929B0260929A02880F991FAB +:1069C0009093AB028093AA020E94622B909347019E +:1069D00080934601D3CF809144019091450128E2F4 +:1069E00030E030939F0220939E02D0929D02C0928D +:1069F0009C0270929B0260929A02880F991F90935A +:106A0000AB028093AA020E94622B9093450180936F +:106A10004401B4CF8091430190E0F0929F02E09254 +:106A20009E0210939D0200939C0270929B026092C2 +:106A30009A02880F991F9093AB028093AA020E943A +:106A4000622B809343019ACF83E08093A002F12CC4 +:106A500001E010E08F2D0E949A2BF82E31E0831771 +:106A6000E9F18317F8F082E0F81295CF80914A019E +:106A700090E010929F0210929E0228E631E030933F +:106A80009D0220939C0270929B0260929A02880F52 +:106A9000991F9093AB028093AA020E94622B80936D +:106AA0004A01D8CF80914C0190E010929F02109241 +:106AB0009E02ECE3F0E0F0939D02E0939C021093C1 +:106AC0009B0200939A02880F991F9093AB028093C8 +:106AD000AA020E94622B80934C01BCCF80914B0193 +:106AE00090E010929F0210929E0228E730E03093CF +:106AF0009D0220939C02E5E0F0E0F0939B02E0937E +:106B00009A02880F991F9093AB028093AA020E9469 +:106B1000622B80934B019ECF84E08093A0028091F2 +:106B200049010E949A2B91E0811101C090E090935D +:106B3000490134CC10E0EAE0EE2EF5E0DF2EA9E0CA +:106B4000CA2EE092A002812F0E949A2B182F882330 +:106B500021F08130E1F000E009C0D092A0028091E4 +:106B60007F010E949A2B80937F0101E0F0909902AF +:106B700080ECF11001C088EC0E94AF1D80EAF1109A +:106B800001C081EA0E94AF1D0111DBCF04CFC0928A +:106B9000A002809199020E949A2B91E0811101C07C +:106BA00090E090939902E1CF86E08093A0028091DB +:106BB00048010E949A2B91E0811101C090E09093CE +:106BC0004801ECCB88E08093A0028091BB020E9438 +:106BD0009A2B8093BB02E2CB8091B80290E0109296 +:106BE0009F0210929E02E4EFF1E0F0939D02E09389 +:106BF0009C0221E030E030939B0220939A02880FA0 +:106C0000991F9093AB028093AA020E94622B8093FB +:106C1000B8020E942B20C2CB8091BC0291E0892750 +:106C20008093BC02882351F00E946A1D6093A102E8 +:106C30007093A2028093A3029093A40281E08093B8 +:106C4000B70211CC9091B507891748F48F5F891767 +:106C500008F0BBCC81E083BF889513BEB6CC11E0B1 +:106C60001093B7076093B6078091B1079091B20770 +:106C700001969093B2078093B10780917F0188239A +:106C800009F4C4C10E94E41A1092BC071092BB0719 +:106C90001092BA071092B90701E020E440E870E0D2 +:106CA00060E090E080E00E94401A1093BF071093CC +:106CB000BE071092BD07E12C00E120E14EEA51E34E +:106CC00070E060E090E080E00E94621A83E190E072 +:106CD0009093BA078093B90784E090E09093BC0743 +:106CE0008093BB078091C102E6E08E9FC001112412 +:106CF000815B9E4F0E9410248091BF029091C00240 +:106D0000853F914008F02DC18091BE0281112BC1B9 +:106D10008091BD02811129C18091BC02811127C1DE +:106D200080914E01811125C120E030E044E353E41D +:106D30006091630770916407809165079091660781 +:106D40000E94213987FF17C185E025E330E03093A9 +:106D5000BA072093B90721E030E03093BC072093B5 +:106D6000BB0792E09093BF07C82ED12C9091BB0235 +:106D7000CC0CDD1C911101C1F601E95CFD4F408195 +:106D80005181E12C0EE02CE161E070E080E590E0C3 +:106D90000E94621AF601E75DFD4F40815181E12CAE +:106DA00000E120E170E060E080E790E00E94621A7C +:106DB00081E08093BF070E94851F20E030E040EA19 +:106DC00052E40E94023C18160CF0FAC00E946A1DA0 +:106DD00052E0660F771F881F991F5A95D1F728EE4A +:106DE00033E040E050E00E94BC3A20FFE9C00E943E +:106DF0002B206091B9027091BA0290E080E00E946D +:106E0000263920E030E048EC52E40E945A3B6B0106 +:106E10007C016091B80270E090E080E00E94283927 +:106E20009B01AC01C701B6010E94213987FDD4C086 +:106E3000E12C00E120E148E451E360E270E090E001 +:106E400080E00E94621A03E110E01093BA070093F9 +:106E5000B90720E130E03093BC072093BB070E94C4 +:106E6000851F41E00E948B2488EF0E94411F86E429 +:106E700091E30E94261F1093BA070093B90788E197 +:106E800090E09093BC078093BB070E94491FBC0110 +:106E900090E080E00E94263920E030E04AE754E4A8 +:106EA0000E945A3B42E00E948B2484E491E30E94BA +:106EB000261F1093BA070093B90780E290E09093E1 +:106EC000BC078093BB076091B9027091BA0290E051 +:106ED00080E00E94263920E030E04AE754E40E9436 +:106EE0005A3B41E00E948B2482E491E30E94261FDA +:106EF0001093BA070093B90788E290E09093BC071B +:106F00008093BB078BE391E30E94261F89E390E007 +:106F10009093BA078093B90782E190E09093BC0701 +:106F20008093BB0784E08093BF076091BF0270919C +:106F3000C002653F91E0790708F462C087E391E3FE +:106F40000E94261F00E020E248E460E170E087E351 +:106F500090E00E94F31D80E00E9463250E94921D34 +:106F600034CB80E0F2CE81E0F0CE82E0EECE83E062 +:106F7000ECCE84E0EACE86E0E8CE8330C1F038F48F +:106F8000813069F0823081F088E891E30AC0853071 +:106F9000A1F080F08630C1F78EE891E302C08AEA62 +:106FA00091E30E94261FF6CE84EA91E3FACF8EE9A0 +:106FB00091E3F7CF88E991E3F4CF83E991E3F1CF4F +:106FC000E12C00E120E148E651E360E170E090E06F +:106FD00080E00E94621A0DCF0E946A1D42E0660F97 +:106FE000771F881F991F4A95D1F728EE33E040E0BC +:106FF00050E00E94BC3A20FF1BCF0E942B2023CFE1 +:1070000090E080E04AE00E941D249CCF0E94E41A98 +:107010001092BC071092BB071092BA071092B907E2 +:107020000E94851F20E030E040EA52E40E94023CCA +:10703000181694F40E946A1D32E0660F771F881FAD +:10704000991F3A95D1F728EE33E040E050E00E94D6 +:10705000BC3A20FD0E942B206091B9027091BA02C7 +:1070600090E080E00E94263920E030E048EC52E4D5 +:107070000E945A3B6B017C016091B80270E090E085 +:1070800080E00E9428399B01AC01C701B6010E9433 +:10709000213987FF12C00E946A1D22E0660F771F08 +:1070A000881F991F2A95D1F728EE33E040E050E081 +:1070B0000E94BC3A20FD0E942B208091BF0290913B +:1070C000C002853FE1E09E0710F087EE93E00E944A +:1070D000E52900E023E040E860E370E090E080E034 +:1070E0000E94401A81E038CFC0929107D092920757 +:1070F000E0929307F0929407E0918707F091880758 +:1071000080819181A281B3818093950790939607A6 +:10711000A0939707B093980720E030E04FE753E43F +:10712000C701B6010E94023C18160CF04FC94092EC +:107130009107509292076092930770929407A4C8A7 +:107140008091A7079091A807009711F00C94BE3C7E +:1071500008951F93FC0199278827BC01E894119199 +:107160001032E9F3193010F01E30C8F31B3251F021 +:107170001D3249F4689406C00E94E238610F711D07 +:10718000811D911D119110531A30B0F33EF490956A +:107190008095709561957F4F8F4F9F4F1F910895F8 +:1071A000FB01DC0105900D920020E1F70895BB275B +:1071B0004A3031F4992322F4BDE2909581959F4F96 +:1071C0000C94F838592F482F372F262F660F771F2A +:1071D000881F991F660F771F881F991F620F731FE3 +:1071E000841F951F660F771F881F991F0895BB275F +:1071F000FB015527AA27880F991FAA1FA41710F073 +:10720000A41B83955051B9F7A05DAA3308F0A95D7E +:10721000A193009779F7B111B1931192CB010C941E +:107220001139DC01FC01672F71917723E1F7329767 +:1072300004C07C916D9370836291AE17BF07C8F351 +:1072400008950E94633908F481E00895E89409C024 +:1072500097FB3EF490958095709561957F4F8F4F89 +:107260009F4F9923A9F0F92F96E9BB279395F6959F +:10727000879577956795B795F111F8CFFAF4BB0F1D +:1072800011F460FF1BC06F5F7F4F8F4F9F4F16C081 +:10729000882311F096E911C0772321F09EE8872F0B +:1072A000762F05C0662371F096E8862F70E060E0C7 +:1072B0002AF09A95660F771F881FDAF7880F969540 +:1072C000879597F90895990F0008550FAA0BE0E8E4 +:1072D000FEEF16161706E807F907C0F01216130698 +:1072E000E407F50798F0621B730B840B950B39F4D8 +:1072F0000A2661F0232B242B252B21F408950A263E +:1073000009F4A140A6958FEF811D811D08950E946B +:107310009A390C940B3A0E94FD3938F00E94043AD5 +:1073200020F0952311F00C94F4390C94FA391124BF +:107330000C943F3A0E941C3A70F3959FC1F3950F4D +:1073400050E0551F629FF001729FBB27F00DB11DE9 +:10735000639FAA27F00DB11DAA1F649F6627B00D79 +:10736000A11D661F829F2227B00DA11D621F739F62 +:10737000B00DA11D621F839FA00D611D221F749F70 +:107380003327A00D611D231F849F600D211D822FB7 +:10739000762F6A2F11249F5750409AF0F1F08823DE +:1073A0004AF0EE0FFF1FBB1F661F771F881F91500B +:1073B0005040A9F79E3F510580F00C94F4390C948D +:1073C0003F3A5F3FE4F3983ED4F38695779567950F +:1073D000B795F795E7959F5FC1F7FE2B880F911D35 +:1073E0009695879597F9089597F99F6780E870E0DB +:1073F00060E008959FEF80EC089500240A9416162B +:10740000170618060906089500240A941216130692 +:10741000140605060895092E0394000C11F4882320 +:1074200052F0BB0F40F4BF2B11F460FF04C06F5F3C +:107430007F4F8F4F9F4F089557FD9058440F551F12 +:1074400059F05F3F71F04795880F97FB991F61F0E6 +:107450009F3F79F087950895121613061406551F5D +:10746000F2CF4695F1DF08C0161617061806991FC9 +:10747000F1CF86957105610508940895E894BB27BE +:1074800066277727CB0197F90895F999FECF92BD2A +:1074900081BDF89A992780B50895262FF999FECFD6 +:1074A0001FBA92BD81BD20BD0FB6F894FA9AF99A21 +:1074B0000FBE01960895052E97FB1EF400940E94BE +:1074C000723A57FD07D00E94BC3A07FC03D04EF435 +:1074D0000C94723A50954095309521953F4F4F4FFF +:1074E0005F4F089590958095709561957F4F8F4F70 +:1074F0009F4F08950E94DE3AA59F900DB49F900D76 +:10750000A49F800D911D112408952F923F924F92B8 +:107510005F926F927F928F929F92AF92BF92CF9223 +:10752000DF92EF92FF920F931F93CF93DF93CDB72C +:10753000DEB7CA1BDB0B0FB6F894DEBF0FBECDBFA4 +:1075400009942A88398848885F846E847D848C8475 +:107550009B84AA84B984C884DF80EE80FD800C817E +:107560001B81AA81B981CE0FD11D0FB6F894DEBF61 +:107570000FBECDBFED010895A1E21A2EAA1BBB1BC1 +:10758000FD010DC0AA1FBB1FEE1FFF1FA217B307EF +:10759000E407F50720F0A21BB30BE40BF50B661F05 +:1075A000771F881F991F1A9469F7609570958095C9 +:1075B00090959B01AC01BD01CF010895A29FB00140 +:1075C000B39FC001A39F700D811D1124911DB29F17 +:1075D000700D811D1124911D08955058BB27AA27B5 +:1075E0000E94053B0C940B3A0E94FD3938F00E9432 +:1075F000043A20F039F49F3F19F426F40C94FA3938 +:107600000EF4E095E7FB0C94F439E92F0E941C3A44 +:1076100058F3BA17620773078407950720F079F4C7 +:10762000A6F50C943E3A0EF4E0950B2EBA2FA02D41 +:107630000B01B90190010C01CA01A0011124FF271F +:10764000591B99F0593F50F4503E68F11A16F0401A +:10765000A22F232F342F4427585FF3CF4695379519 +:107660002795A795F0405395C9F77EF41F16BA0BDE +:10767000620B730B840BBAF09150A1F0FF0FBB1F8C +:10768000661F771F881FC2F70EC0BA0F621F731FD5 +:10769000841F48F4879577956795B795F7959E3F32 +:1076A00008F0B0CF9395880F08F09927EE0F9795C3 +:1076B000879508950E946E3B0C940B3A0E94043A01 +:1076C00058F00E94FD3940F029F45F3F29F00C94F6 +:1076D000F43951110C943F3A0C94FA390E941C3A37 +:1076E00068F39923B1F3552391F3951B550BBB27F1 +:1076F000AA2762177307840738F09F5F5F4F220F36 +:10770000331F441FAA1FA9F335D00E2E3AF0E0E82C +:1077100032D091505040E695001CCAF72BD0FE2F76 +:1077200029D0660F771F881FBB1F2617370748070A +:10773000AB07B0E809F0BB0B802DBF01FF279358C2 +:107740005F4F3AF09E3F510578F00C94F4390C9459 +:107750003F3A5F3FE4F3983ED4F38695779567957B +:10776000B795F7959F5FC9F7880F911D96958795F7 +:1077700097F90895E1E0660F771F881FBB1F621716 +:1077800073078407BA0720F0621B730B840BBA0BD4 +:10779000EE1F88F7E09508950E94D33B6894B111DD +:1077A0000C943F3A08950E94243A88F09F5798F02D +:1077B000B92F9927B751B0F0E1F0660F771F881FF6 +:1077C000991F1AF0BA95C9F714C0B13091F00E9410 +:1077D0003E3AB1E008950C943E3A672F782F8827FF +:1077E000B85F39F0B93FCCF3869577956795B39537 +:1077F000D9F73EF490958095709561957F4F8F4FA6 +:107800009F4F08950E94633908F48FEF08950E94F6 +:107810006339880B990B0895DB018F939F930E9426 +:107820007A3ABF91AF91A29F800D911DA39F900DB9 +:10783000B29F900D11240895EE0FFF1F0590F49153 +:10784000E02D09940F931F93CF93DF93823091051E +:1078500010F482E090E0E091C307F091C40730E0BB +:1078600020E0B0E0A0E0309799F42115310509F44B +:107870004AC0281B390B24303105D8F58A819B81F9 +:107880006115710589F1FB0193838283FE0111C0AB +:10789000408151810281138148175907E0F0481750 +:1078A000590799F4109761F012960C93129713965A +:1078B0001C933296CF01DF91CF911F910F910895C4 +:1078C0000093C3071093C407F4CF2115310551F07D +:1078D0004217530738F0A901DB019A01BD01DF010E +:1078E000F801C1CFEF01F9CF9093C4078093C3078C +:1078F000CDCFFE01E20FF31F819391932250310906 +:1079000039832883D7CF2091C1073091C207232B19 +:1079100041F420918201309183013093C20720937A +:10792000C10720918001309181012115310541F479 +:107930002DB73EB74091840150918501241B350B32 +:10794000E091C107F091C207E217F307A0F42E1BE4 +:107950003F0B2817390778F0AC014E5F5F4F2417B3 +:10796000350748F04E0F5F1F5093C2074093C10781 +:10797000819391939FCFF0E0E0E09CCFCF93DF9392 +:107980000097E9F0FC01329713821282A091C3079D +:10799000B091C407ED0130E020E01097A1F4208100 +:1079A0003181820F931F2091C1073091C2072817A0 +:1079B000390709F061C0F093C207E093C107DF9176 +:1079C000CF910895EA01CE17DF07E8F54A815B8180 +:1079D0009E0141155105B1F7E901FB83EA83499105 +:1079E0005991C40FD51FEC17FD0761F48081918177 +:1079F0000296840F951FE901998388838281938180 +:107A00009B838A83F0E0E0E012968D919C9113971E +:107A10000097B9F52D913C911197CD010296820FF7 +:107A2000931F2091C1073091C2072817390739F6F3 +:107A3000309751F51092C4071092C307B093C20754 +:107A4000A093C107BCCFD383C28340815181840FEF +:107A5000951FC817D90761F44E5F5F4F88819981E0 +:107A6000480F591F518340838A819B81938382836E +:107A70002115310509F0B0CFF093C407E093C30797 +:107A80009ECFFD01DC01C0CF13821282D7CFB0E0C0 +:107A9000A0E0EDE4FDE30C94873A8C01009751F4EB +:107AA000CB010E94223C8C01C801CDB7DEB7E0E1DA +:107AB0000C94A33AFC01E60FF71F9C0122503109F8 +:107AC000E217F30708F49DC0D901CD91DC9111971D +:107AD000C617D70798F0C530D10530F3CE0104970B +:107AE0008617970708F3C61BD70B2297C193D1932C +:107AF0006D937C93CF010E94BE3CD6CF5B01AC1A44 +:107B0000BD0A4C018C0E9D1EA091C307B091C40705 +:107B1000512C412CF12CE12C109731F58091C107AB +:107B20009091C2078815990509F05CC04616570662 +:107B300008F058C08091800190918101009741F434 +:107B40008DB79EB74091840150918501841B950BA0 +:107B5000E817F90708F055C0F093C207E093C10792 +:107B6000F90171836083A0CF8D919C91119712963A +:107B70006C90129713967C901397A815B90559F538 +:107B80006C0142E0C40ED11CCA14DB0420F1AC012C +:107B90004A195B09DA011296159780F062827382A6 +:107BA00051834083D9016D937C93E114F10471F00A +:107BB000D7011396FC93EE93129776CF22968C0FF3 +:107BC0009D1FF90191838083F301EFCFF093C407E8 +:107BD000E093C30769CF4816590608F42C017D01CC +:107BE000D3019ACFCB010E94223C7C01009749F03F +:107BF000AE01B8010E94093EC8010E94BE3C870147 +:107C000053CF10E000E050CF81E090E0F8940C9466 +:107C1000193EFB01DC0102C001900D924150504021 +:107C2000D8F70895FB01DC0101900D920020E1F7E7 +:107C3000089518E1C6EFD8E104C0FE010E941C3C83 +:107C40002196C73FD107C9F7F894FFCF01FFD800AD +:107C5000340186011E00000000000000000000004A +:107C60000000000000000000000000000000000014 +:107C70000000000000000000000000000000000004 +:107C80000000000000000000000000000000013CB7 +:107C9000960040010101280F0501014243312E35B4 +:107CA00000000000000000000000000000000000D4 +:107CB00000000000000000000000000000000000C4 +:107CC0000000000000000000000000010000C507E7 +:107CD00080004C0AFC09AC095C090C09BC086C0862 +:107CE0001C08CC074C0A7C072C07DC068C063C06DB +:107CF000EC059C054C053C069C05FC044C053C062B +:107D0000AC045C040C04BC036C031C03CC027C02BA +:107D10002C02DC01CC027C028C013C013C06DC27FD +:107D2000BC269C257C245C233C221C21FC1FDC1EE1 +:107D3000BC1D9C1CDC277C1B5C1A3C19DC271C1816 +:107D4000FC163C191C18DC15FC163C19BC149C13C1 +:107D50007C125C113C103C221C0FFC0DDC0CBC0B9B +:107D60001C0FFC0D7C129C0A3C190906040402023B +:107D700002020202039C297C295C2948313C291C0F +:107D800029FC280C2BD42A9C2A642A2C2AF429BCEE +:107D90002900000000921BF21A1F1BDF1B501B2E34 +:107DA0001B421B00000000241EF21A461FF11A6E2F +:0E7DB000616E00696E66006F7666002F33000C +:107E0000112484B714BE81FFF0D085E080938100F7 +:107E100082E08093C00088E18093C10086E0809377 +:107E2000C20080E18093C4008EE0C9D0259A86E02C +:107E300020E33CEF91E0309385002093840096BBD3 +:107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4 +:107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7 +:107E6000A2D0813461F49FD0082FAFD0023811F036 +:107E7000013811F484E001C083E08DD089C08234E0 +:107E800011F484E103C0853419F485E0A6D080C0E4 +:107E9000853579F488D0E82EFF2485D0082F10E0AE +:107EA000102F00270E291F29000F111F8ED06801E7 +:107EB0006FC0863521F484E090D080E0DECF843638 +:107EC00009F040C070D06FD0082F6DD080E0C81688 +:107ED00080E7D80618F4F601B7BEE895C0E0D1E017 +:107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8 +:107EF00018F0F601B7BEE89568D007B600FCFDCFD4 +:107F0000A601A0E0B1E02C9130E011968C91119780 +:107F100090E0982F8827822B932B1296FA010C0160 +:107F200087BEE89511244E5F5F4FF1E0A038BF0790 +:107F300051F7F601A7BEE89507B600FCFDCF97BE46 +:107F4000E89526C08437B1F42ED02DD0F82E2BD052 +:107F50003CD0F601EF2C8F010F5F1F4F84911BD097 +:107F6000EA94F801C1F70894C11CD11CFA94CF0C13 +:107F7000D11C0EC0853739F428D08EE10CD085E9AC +:107F80000AD08FE07ACF813511F488E018D01DD067 +:107F900080E101D065CF982F8091C00085FFFCCF94 +:107FA0009093C60008958091C00087FFFCCF809118 +:107FB000C00084FD01C0A8958091C6000895E0E648 +:107FC000F0E098E1908380830895EDDF803219F02E +:107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA +:107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6 +:047FF000FF270994CA +:027FFE00040479 +:00000001FF diff --git a/software/sources/SolderingStation2_arduboy_gplib_v1.6L+.ino b/software/sources/SolderingStation2_arduboy_gplib_v1.6L+.ino new file mode 100644 index 0000000..4f07a36 --- /dev/null +++ b/software/sources/SolderingStation2_arduboy_gplib_v1.6L+.ino @@ -0,0 +1,1296 @@ +/*License: http://creativecommons.org/licenses/by-sa/3.0/ + 采用CC3.0协议共享此程序 + 您可以自由地: + 共享 — 在任何媒介以任何形式复制、发行本作品 + 演绎 — 修改、转换或以本作品为基础进行创作 + 在任何用途下,甚至商业目的。 + 本许可协议为“自由文化作品(Free Cultural Works)”所接受。 + 只要你遵守许可协议条款,许可人就无法收回你的这些权利。 + + Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) + This is a human-readable summary of (and not a substitute for) the license. Disclaimer. + You are free to: + Share — copy and redistribute the material in any medium or format + Adapt — remix, transform, and build upon the material + for any purpose, even commercially. + This license is acceptable for Free Cultural Works. + The licensor cannot revoke these freedoms as long as you follow the license terms. +*/ +// SolderingStation2 +// +// ATmega328-controlled Soldering Station for Hakko T12 Tips. +// +// This version of the code implements: +// - Temperature measurement of the tip +// - Direct or PID control of the heater +// - Temperature control via rotary encoder +// - Boost mode by short pressing rotary encoder switch +// - Setup menu by long pressing rotary encoder switch +// - Handle movement detection (by checking ball switch) +// - Iron unconnected detection (by idenfying invalid temperature readings) +// - Time driven sleep/power off mode if iron is unused (movement detection) +// - Measurement of input voltage, Vcc and ATmega's internal temperature +// - Information display on OLED +// - Buzzer +// - Calibrating and managing different soldering tips +// - Storing user settings into the EEPROM +// - Tip change detection +// +// Power supply should be in the range of 16V/2A to 24V/3A and well +// stabilized. +// +// For calibration you need a soldering iron tips thermometer. For best results +// wait at least three minutes after switching on the soldering station before +// you start the calibration process. +// +// Controller: ATmega328p +// Core: Barebones ATmega (https://github.com/carlosefr/atmega) +// Clockspeed: 16 MHz external +// +// 2019/2020 by Stefan Wagner with great support from John Glavinos +// 2020-8 UI upgrade by LHW-createskyblue + +// Project Page: https://easyeda.com/wagiminator + +//关于界面-项目页面二维码 ->为了加入欠压报警只能阉割掉关于页面的二维码 +//const unsigned char QRCode[] PROGMEM = { 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x1f, 0xfe, 0x3f, 0xc1, 0x8c, 0x0c, 0x7f, 0xf8, 0x1f, 0xfe, 0x3f, 0xc1, 0x8c, 0x0c, 0x7f, 0xf8, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x3e, 0x0f, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3e, 0x0f, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x1f, 0xfe, 0x3e, 0x30, 0x70, 0x0c, 0x7f, 0xf8, 0x1f, 0xfe, 0x3e, 0x30, 0x70, 0x0c, 0x7f, 0xf8, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x01, 0x83, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x01, 0x83, 0x8f, 0xff, 0xff, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0xf8, 0x00, 0x3e, 0x3e, 0x03, 0xf0, 0x7f, 0x00, 0xf8, 0x00, 0x3e, 0x3e, 0x03, 0xf0, 0x7f, 0x00, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0x18, 0xc0, 0x31, 0xfe, 0x0c, 0x0c, 0x1c, 0xe0, 0x18, 0xc0, 0x31, 0xfe, 0x0c, 0x0c, 0x1c, 0xe0, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0x1f, 0x00, 0x31, 0xcf, 0xf3, 0x8c, 0x03, 0x00, 0x1f, 0x00, 0x31, 0xcf, 0xf3, 0x8c, 0x03, 0x00, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf0, 0x3e, 0x7c, 0x0f, 0xe0, 0x00, 0xff, 0xff, 0xf0, 0x3e, 0x7c, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x1f, 0xfe, 0x30, 0x01, 0x83, 0x8f, 0xe0, 0xff, 0x1f, 0xfe, 0x30, 0x01, 0x83, 0x8f, 0xe0, 0xff, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x3f, 0xff, 0x83, 0x83, 0xe3, 0x1f, 0x18, 0x06, 0x3f, 0xff, 0x83, 0x83, 0xe3, 0x1f, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x1f, 0xfe, 0x31, 0xfe, 0x00, 0x0c, 0x60, 0xe7, 0x1f, 0xfe, 0x31, 0xfe, 0x00, 0x0c, 0x60, 0xe7, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0 }; +//const unsigned char QRCode[] PROGMEM = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0x86, 0x70, 0x80, 0x03, 0x80, 0x03, 0x86, 0x70, 0x80, 0x03, 0x9f, 0xf3, 0xe1, 0x30, 0x9f, 0xf3, 0x9f, 0xf3, 0xe1, 0x30, 0x9f, 0xf3, 0x98, 0x33, 0x01, 0xcc, 0x98, 0x33, 0x98, 0x33, 0x01, 0xcc, 0x98, 0x33, 0x98, 0x33, 0x87, 0xc0, 0x98, 0x33, 0x98, 0x33, 0xe1, 0xc0, 0x98, 0x33, 0x98, 0x33, 0xe1, 0xc0, 0x98, 0x33, 0x9f, 0xf3, 0x98, 0xc0, 0x9f, 0xf3, 0x9f, 0xf3, 0x98, 0xc0, 0x9f, 0xf3, 0x80, 0x03, 0x66, 0xcc, 0x80, 0x03, 0x80, 0x03, 0x66, 0xcc, 0x80, 0x03, 0xff, 0xff, 0x01, 0x0c, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x61, 0x30, 0x1f, 0x3f, 0x87, 0x3c, 0xe6, 0xfc, 0x87, 0x33, 0x87, 0x3c, 0xe6, 0xfc, 0x87, 0xf3, 0xf8, 0x03, 0x9e, 0x0f, 0x1f, 0x03, 0xf8, 0x03, 0x9e, 0x0f, 0x1f, 0x03, 0xe1, 0x3c, 0xfe, 0x0c, 0x07, 0xcf, 0xe1, 0x3c, 0xfe, 0x0c, 0x07, 0xcf, 0x99, 0x03, 0x3e, 0x30, 0x86, 0xc3, 0xe6, 0xcf, 0x38, 0x0f, 0x9e, 0xf3, 0xe6, 0xcf, 0x38, 0x0f, 0x9e, 0xf3, 0x9e, 0x03, 0x27, 0xcc, 0x81, 0x03, 0x9e, 0x03, 0x27, 0xcc, 0x81, 0x03, 0xe0, 0xff, 0xe1, 0x0c, 0xe6, 0xcf, 0xe0, 0xff, 0xe1, 0x0c, 0xe6, 0xcf, 0x98, 0x03, 0x06, 0x00, 0x00, 0xff, 0x98, 0x03, 0x06, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0xf8, 0x03, 0x80, 0x03, 0x66, 0x30, 0x99, 0xc3, 0x80, 0x03, 0x66, 0x30, 0x99, 0xc3, 0x9f, 0xf3, 0x01, 0x0c, 0xf8, 0xff, 0x9f, 0xf3, 0x01, 0x0c, 0xf8, 0xff, 0x98, 0x33, 0x39, 0x3c, 0x01, 0xcf, 0x98, 0x33, 0x39, 0x3c, 0x01, 0xcf, 0x98, 0x33, 0xff, 0x0c, 0x79, 0x3f, 0x98, 0x33, 0x3e, 0xcc, 0xe0, 0xf3, 0x98, 0x33, 0x3e, 0xcc, 0xe0, 0xf3, 0x9f, 0xf3, 0x3e, 0x00, 0x98, 0xcf, 0x9f, 0xf3, 0x3e, 0x00, 0x98, 0xcf, 0x80, 0x03, 0x3e, 0x30, 0xe7, 0xc3, 0x80, 0x03, 0x3e, 0x30, 0xe7, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; +//ICO +//width:16,height:16 +const unsigned char Tag[] PROGMEM = { 0x00, 0x00, 0x7e, 0x00, 0x7f, 0x00, 0x73, 0x80, 0x61, 0xc0, 0x61, 0xe0, 0x73, 0xf0, 0x3f, 0xf8, 0x1f, 0xfc, 0x0f, 0xfe, 0x07, 0xff, 0x03, 0xff, 0x01, 0xfe, 0x00, 0xfc, 0x00, 0x78, 0x00, 0x30 }; +const unsigned char Chip[] PROGMEM = { 0x12, 0x48, 0x12, 0x48, 0x1f, 0xf8, 0xe0, 0x07, 0x2e, 0x14, 0x2c, 0x04, 0xe8, 0x07, 0x20, 0x04, 0x20, 0x04, 0xe0, 0x07, 0x20, 0x04, 0x28, 0x14, 0xe0, 0x07, 0x1f, 0xf8, 0x12, 0x48, 0x12, 0x48 }; +//const unsigned char HeatPipe[] PROGMEM = { 0x00, 0x00, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x01, 0x80, 0x00, 0x00 }; +const unsigned char Lightning[] PROGMEM = { 0x00, 0x80, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x80, 0x07, 0x80, 0x07, 0xf0, 0x0f, 0xf0, 0x0f, 0xe0, 0x1f, 0xc0, 0x01, 0xc0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x01, 0x00 }; +//const unsigned char Thermometer[] PROGMEM = { 0x01, 0x80, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x07, 0xe0, 0x07, 0xe0, 0x07, 0xe0, 0x03, 0xc0 }; +const unsigned char Pointer[] PROGMEM = { 0x20, 0x20, 0x70, 0xf8 }; +//状态提示 +//width:16,height:16 图标库 +const unsigned char c1[] PROGMEM = { 0x03, 0x80, 0x03, 0x80, 0x03, 0xc0, 0x07, 0xc0, 0x07, 0xe0, 0x0f, 0xe0, 0x0e, 0x70, 0x1e, 0x70, 0x1e, 0x70, 0x1e, 0x78, 0x3f, 0xf8, 0x3f, 0xfc, 0x7e, 0x7c, 0x7e, 0x7e, 0x7f, 0xfe, 0x7f, 0xfe }; +const unsigned char c2[] PROGMEM = { 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x19, 0x90, 0x39, 0xb8, 0x31, 0x8c, 0x61, 0x8c, 0x61, 0x86, 0x60, 0x06, 0x60, 0x06, 0x60, 0x0e, 0x70, 0x0c, 0x30, 0x1c, 0x1c, 0x78, 0x0f, 0xf0, 0x03, 0xc0 }; +const unsigned char c3[] PROGMEM = { 0x00, 0xe0, 0x03, 0xc0, 0x0f, 0x00, 0x1c, 0x38, 0x10, 0xf0, 0x03, 0xc0, 0x0f, 0x00, 0x1c, 0x38, 0x10, 0xf0, 0x03, 0xe0, 0x07, 0xe0, 0x07, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x03, 0x80 }; +//c4用Lightning 替代 +const unsigned char c5[] PROGMEM = { 0x0f, 0xe0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0xff, 0xe6, 0xff, 0xce, 0xff, 0x9f, 0xf3, 0x3f, 0xf0, 0x7f, 0xf8, 0xff, 0xfd, 0xfe, 0x7f, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x1f, 0xf0, 0x03, 0xc0 }; +const unsigned char c6[] PROGMEM = { 0x04, 0x00, 0x06, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x0f, 0x80, 0x1f, 0x80, 0x3f, 0x90, 0x7f, 0x18, 0x7f, 0x1c, 0x7e, 0x3c, 0x7c, 0x3e, 0x78, 0x7e, 0x78, 0xfe, 0x31, 0xfe, 0x11, 0xfc, 0x09, 0xf8 }; +const unsigned char c7[] PROGMEM = { 0x00, 0x00, 0x07, 0xe0, 0x1f, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x3f, 0xfc, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3e, 0x7c, 0x3e, 0x7c, 0x3f, 0xfc, 0x3f, 0xfc, 0x00, 0x00 }; +// width: 48, height: 48 +const unsigned char c_OK[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xc0, 0x03, 0xff, 0xfe, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x20, 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x70, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x01, 0xf8, 0x0f, 0xf0, 0x00, 0x00, 0x03, 0xf0, 0x0f, 0xf0, 0x00, 0x00, 0x07, 0xe0, 0x0f, 0xf0, 0x00, 0x00, 0x0f, 0xc0, 0x0f, 0xe0, 0x00, 0x00, 0x1f, 0x80, 0x07, 0xe0, 0x01, 0x80, 0x3f, 0x00, 0x07, 0xe0, 0x03, 0xc0, 0x7e, 0x00, 0x07, 0xe0, 0x07, 0xe0, 0xfc, 0x00, 0x07, 0xe0, 0x03, 0xf1, 0xf8, 0x00, 0x07, 0xe0, 0x01, 0xff, 0xf0, 0x00, 0x07, 0xe0, 0x00, 0xff, 0xe0, 0x00, 0x07, 0xe0, 0x00, 0x7f, 0xc0, 0x00, 0x07, 0xf0, 0x00, 0x3f, 0x80, 0x00, 0x0f, 0xf0, 0x00, 0x1f, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x0e, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x04, 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x7f, 0xff, 0xf0, 0x0f, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +// width: 48, height: 48 +const unsigned char c_NO[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xc0, 0x01, 0xff, 0xfe, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x80, 0x00, 0x80, 0x1f, 0xf8, 0x01, 0xc0, 0x03, 0xc0, 0x1f, 0xf8, 0x03, 0xe0, 0x03, 0xe0, 0x1f, 0xf8, 0x03, 0xf0, 0x0f, 0xe0, 0x0f, 0xf0, 0x01, 0xf8, 0x0f, 0xc0, 0x07, 0xf0, 0x00, 0xfc, 0x1f, 0x80, 0x07, 0xf0, 0x00, 0x7e, 0x7f, 0x00, 0x07, 0xe0, 0x00, 0x3f, 0xfe, 0x00, 0x07, 0xe0, 0x00, 0x1f, 0xfc, 0x00, 0x07, 0xe0, 0x00, 0x0f, 0xf8, 0x00, 0x07, 0xe0, 0x00, 0x07, 0xf0, 0x00, 0x07, 0xe0, 0x00, 0x07, 0xf0, 0x00, 0x07, 0xe0, 0x00, 0x1f, 0xf8, 0x00, 0x07, 0xe0, 0x00, 0x1f, 0xfc, 0x00, 0x07, 0xe0, 0x00, 0x7f, 0xfe, 0x00, 0x07, 0xf0, 0x00, 0x7e, 0x3f, 0x00, 0x07, 0xf0, 0x01, 0xfc, 0x1f, 0x80, 0x07, 0xf0, 0x01, 0xf8, 0x0f, 0xc0, 0x0f, 0xf8, 0x03, 0xf0, 0x07, 0xe0, 0x0f, 0xf8, 0x03, 0xe0, 0x03, 0xe0, 0x1f, 0xf8, 0x01, 0xc0, 0x01, 0x80, 0x1f, 0xfe, 0x00, 0x80, 0x00, 0x80, 0x3f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x80, 0x00, 0xff, 0xff, 0x7f, 0xff, 0xf0, 0x07, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char *C_table[] = {c1, c2, c3, Lightning, c5, c6, c7}; + +//设置(陈星汉认为语言是一种低像素的表达方式,容易造成隔阂; 交互界面设计尽可能形象化) +// width: 48, height: 48 +const unsigned char Set_LANG[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xc0, 0x01, 0xff, 0xfe, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xc0, 0x40, 0x02, 0x03, 0xff, 0xff, 0x81, 0x80, 0x01, 0x81, 0xff, 0xff, 0x07, 0x84, 0x20, 0xe0, 0xff, 0xfe, 0x0f, 0x0c, 0x30, 0xf0, 0x7f, 0xfc, 0x1e, 0x0c, 0x38, 0x78, 0x3f, 0xf8, 0x3e, 0x1c, 0x38, 0x7c, 0x1f, 0xf8, 0x7c, 0x1c, 0x3c, 0x3e, 0x1f, 0xf0, 0x7c, 0x3c, 0x3c, 0x3f, 0x0f, 0xf0, 0xfc, 0x3c, 0x3e, 0x1f, 0x0f, 0xe1, 0xf8, 0x7c, 0x3e, 0x1f, 0x87, 0xe1, 0xf8, 0x7c, 0x3e, 0x1f, 0x87, 0xe1, 0xf8, 0x7c, 0x3f, 0x1f, 0xc7, 0xc3, 0xf8, 0xfc, 0x3f, 0x0f, 0xc3, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc7, 0xf0, 0xfc, 0x3f, 0x0f, 0xe3, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xe3, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xe1, 0xf8, 0xfc, 0x3f, 0x1f, 0xc7, 0xe1, 0xf8, 0x7c, 0x3e, 0x1f, 0x87, 0xe1, 0xf8, 0x7c, 0x3e, 0x1f, 0x87, 0xf0, 0xfc, 0x7c, 0x3e, 0x3f, 0x0f, 0xf0, 0x7c, 0x3c, 0x3c, 0x3e, 0x0f, 0xf8, 0x7c, 0x3c, 0x3c, 0x3e, 0x1f, 0xfc, 0x3e, 0x1c, 0x38, 0x7c, 0x3f, 0xfc, 0x1e, 0x0c, 0x30, 0x78, 0x3f, 0xfe, 0x0f, 0x0c, 0x30, 0xf0, 0x7f, 0xff, 0x03, 0x04, 0x20, 0xc0, 0xff, 0xff, 0x81, 0x80, 0x01, 0x81, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x7f, 0xff, 0xc0, 0x03, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set0[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x70, 0x00, 0x3f, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x07, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf0, 0x0f, 0x80, 0xff, 0xff, 0xff, 0xf0, 0x1f, 0xc0, 0x7f, 0xff, 0xff, 0xf0, 0x3f, 0xe0, 0x3f, 0xff, 0xff, 0xf0, 0x7f, 0xf0, 0x1f, 0xff, 0xff, 0xf0, 0x7f, 0xf0, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xf0, 0x07, 0xff, 0xff, 0xf0, 0x7f, 0xf0, 0x03, 0xff, 0xff, 0xf0, 0x3f, 0xe0, 0x01, 0xff, 0xff, 0xf0, 0x3f, 0xe0, 0x00, 0xff, 0xff, 0xf0, 0x1f, 0xc0, 0x00, 0x7f, 0xff, 0xf0, 0x0f, 0x80, 0x00, 0x3f, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x80, 0x00, 0x00, 0x07, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0x7f, 0xff, 0xff, 0xf8, 0x7f, 0xfe, 0x7f, 0xff, 0xff, 0xfc, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set1[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xf8, 0x3f, 0xff, 0xfe, 0x7f, 0xff, 0xf0, 0x1f, 0xff, 0xfe, 0xff, 0xff, 0xe3, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0x7f, 0xff, 0xf0, 0x1f, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set2[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xc7, 0xff, 0xff, 0xf1, 0xfe, 0xff, 0x03, 0xff, 0xff, 0xe0, 0x7f, 0xfe, 0x03, 0xff, 0xff, 0xe0, 0x3f, 0xfc, 0x03, 0xff, 0xff, 0xe0, 0x1f, 0xf8, 0x07, 0xf0, 0x07, 0xf0, 0x0f, 0xf0, 0x0f, 0x80, 0x00, 0xf8, 0x07, 0xe0, 0x1e, 0x00, 0x00, 0x3c, 0x03, 0xe0, 0x3c, 0x00, 0x00, 0x1e, 0x03, 0xe0, 0x70, 0x00, 0x00, 0x07, 0x03, 0xe0, 0xe0, 0x00, 0x00, 0x03, 0x83, 0xf1, 0xc0, 0x01, 0xc0, 0x01, 0xc7, 0xff, 0x80, 0x03, 0xe0, 0x00, 0xff, 0xff, 0x80, 0x03, 0xe0, 0x00, 0xff, 0xff, 0x00, 0x03, 0xe0, 0x00, 0x7f, 0xff, 0x00, 0x03, 0xe0, 0x00, 0x7f, 0xfe, 0x00, 0x03, 0xe0, 0x00, 0x3f, 0xfe, 0x00, 0x03, 0xe0, 0x00, 0x3f, 0xfc, 0x00, 0x03, 0xe0, 0x00, 0x1f, 0xfc, 0x00, 0x03, 0xe0, 0x00, 0x1f, 0xfc, 0x00, 0x03, 0xe0, 0x00, 0x1f, 0xfc, 0x00, 0x03, 0xe0, 0x00, 0x1f, 0xfc, 0x00, 0x03, 0xe0, 0x00, 0x1f, 0xfc, 0x00, 0x03, 0xf0, 0x00, 0x1f, 0xfc, 0x00, 0x01, 0xf8, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0xfc, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x3e, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x1f, 0x00, 0x3f, 0xfe, 0x00, 0x00, 0x0f, 0x80, 0x3f, 0xff, 0x00, 0x00, 0x07, 0x80, 0x3f, 0xff, 0x00, 0x00, 0x03, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x06, 0x00, 0x00, 0x30, 0x1f, 0xfc, 0x0f, 0x80, 0x00, 0xf8, 0x1f, 0xfe, 0x1f, 0xf0, 0x07, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set3[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0x80, 0x3f, 0xfe, 0x7f, 0xff, 0xff, 0x00, 0x3f, 0xfe, 0xff, 0xff, 0xfe, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x01, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xe7, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xc7, 0xff, 0xff, 0xc0, 0x07, 0xff, 0x87, 0xff, 0xff, 0xc0, 0x07, 0xff, 0x07, 0xff, 0xff, 0xc0, 0x07, 0xfe, 0x07, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0x80, 0x00, 0x00, 0x0f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xf8, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x01, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x07, 0xff, 0xff, 0x80, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x01, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xc3, 0x80, 0x3f, 0xff, 0xff, 0xff, 0x87, 0xc0, 0x7f, 0xff, 0xff, 0xff, 0x87, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x87, 0xc1, 0xff, 0xff, 0xff, 0xff, 0x83, 0x83, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x60, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0x78, 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set4[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xf8, 0x88, 0x8f, 0xf1, 0xff, 0xff, 0xf8, 0x88, 0x8f, 0xf1, 0xff, 0xff, 0xf8, 0x88, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0x8f, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0x87, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xe3, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xf0, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xe3, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0x87, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0x8f, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xc0, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xc0, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xc0, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set4F[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0x03, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0x03, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0x03, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xf1, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xe1, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xc7, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0x8f, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0x0f, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0x8f, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xc7, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xe1, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xf1, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0x11, 0x1f, 0xff, 0xff, 0x8f, 0xf1, 0x11, 0x1f, 0xff, 0xff, 0x8f, 0xf1, 0x11, 0x1f, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set5[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xf0, 0x0f, 0xff, 0xfe, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0xff, 0x87, 0xe1, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xf8, 0x7f, 0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x3f, 0xff, 0xff, 0xf8, 0x7f, 0xfe, 0x1f, 0xff, 0xff, 0xf0, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xe1, 0xff, 0xff, 0x87, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0x83, 0xff, 0xff, 0xc1, 0xff, 0xff, 0x07, 0xff, 0xff, 0xe0, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xf8, 0x7f, 0xfc, 0x3f, 0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0x7f, 0xff, 0xf8, 0x1f, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set5_1[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xf0, 0x0f, 0xff, 0xfe, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xbf, 0xff, 0xff, 0xc3, 0xc3, 0xff, 0x1f, 0xff, 0xff, 0x87, 0xe1, 0xfe, 0x0f, 0xff, 0xff, 0x0f, 0xf0, 0xfc, 0x1f, 0xff, 0xfe, 0x1f, 0xf8, 0x78, 0x3f, 0xff, 0xfc, 0x3f, 0xfc, 0xf0, 0x7f, 0xff, 0xf8, 0x7f, 0xff, 0xe0, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0x83, 0xff, 0xff, 0xe3, 0xff, 0xff, 0x07, 0xff, 0xff, 0xe3, 0xff, 0xfe, 0x07, 0xff, 0xff, 0xe3, 0xff, 0xfc, 0x07, 0xff, 0xff, 0xe3, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xe3, 0xff, 0xf0, 0x47, 0xff, 0xff, 0xe3, 0xff, 0xe0, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xc1, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0x83, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0x07, 0xc7, 0xff, 0xff, 0xe3, 0xfe, 0x0f, 0xc7, 0xff, 0xff, 0xe3, 0xfc, 0x1f, 0xc7, 0xff, 0xff, 0xe3, 0xf8, 0x3f, 0xc7, 0xff, 0xff, 0xe3, 0xf0, 0x7f, 0xc7, 0xff, 0xff, 0xe3, 0xe0, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xc1, 0xff, 0xc7, 0xff, 0xff, 0xe7, 0x83, 0xff, 0xc7, 0xff, 0xff, 0xef, 0x07, 0xff, 0xc7, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xc1, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xe0, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xf8, 0x7f, 0xff, 0xf0, 0x7f, 0xff, 0xfc, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xc0, 0x03, 0xff, 0xff, 0xfc, 0x1f, 0xc0, 0x03, 0xff, 0xff, 0xfe, 0x3f, 0xe0, 0x07, 0xff, 0xff, 0xff, 0x7f, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0x7f, 0xff, 0xf8, 0x1f, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set6[] PROGMEM = { 0x0f,0xff,0xff,0xff,0xff,0xf0,0x3f,0xff,0xff,0xff,0xff,0xfc,0x7f,0xff,0xff,0xff,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xf0,0x03,0xff,0xff,0xff,0xff,0xf0,0x03,0xff,0xff,0xff,0xff,0xf0,0x03,0xff,0xff,0xff,0xff,0xf1,0xe3,0xff,0xff,0xff,0xc0,0x01,0xe0,0x00,0xff,0xff,0xc0,0x01,0xe0,0x00,0xff,0xff,0xc0,0x01,0xe0,0x00,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc4,0x00,0x00,0x08,0xff,0xff,0xc4,0x00,0x00,0x08,0xff,0xff,0xc4,0x00,0x00,0x08,0xff,0xff,0xc4,0x00,0x00,0x08,0xff,0xff,0xc4,0x00,0x00,0x08,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xff,0xc0,0x00,0x00,0x00,0xff,0xff,0xc0,0x00,0x00,0x00,0xff,0xff,0xc0,0x00,0x00,0x00,0xff,0x7f,0xff,0xff,0xff,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xfe,0x3f,0xff,0xff,0xff,0xff,0xfc,0x0f,0xff,0xff,0xff,0xff,0xf0 }; +const unsigned char Set7[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xf1, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xf1, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xf1, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xf1, 0xff, 0xff, 0xff, 0xe0, 0x7f, 0xf1, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xf1, 0xff, 0xff, 0xff, 0x81, 0xff, 0xf1, 0xff, 0xff, 0xff, 0x03, 0xff, 0xf1, 0xff, 0xff, 0xfe, 0x07, 0xff, 0xf1, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xf1, 0xfe, 0x1f, 0xf8, 0x1f, 0xff, 0xf1, 0xfe, 0x0f, 0xf0, 0x3f, 0xff, 0xf1, 0xfe, 0x07, 0xe0, 0x7f, 0xff, 0xf1, 0xfe, 0x03, 0xc0, 0xff, 0xff, 0xf1, 0xff, 0x01, 0x81, 0xff, 0xff, 0xf1, 0xff, 0x80, 0x03, 0xff, 0xff, 0xf1, 0xff, 0xc0, 0x07, 0xfc, 0x7f, 0xf1, 0xff, 0xe0, 0x0f, 0xfc, 0x7f, 0xf1, 0xff, 0xf0, 0x1f, 0xfc, 0x7f, 0xf1, 0xff, 0xf8, 0x3f, 0xfc, 0x7f, 0xf1, 0xff, 0xfc, 0x7f, 0xfc, 0x7f, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set11[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xc1, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x7f, 0x9f, 0xff, 0xff, 0xe0, 0x01, 0xfe, 0x0f, 0xff, 0xff, 0xc0, 0x07, 0xf8, 0x07, 0xff, 0xff, 0xc0, 0x1f, 0xe0, 0x07, 0xff, 0xff, 0xc0, 0x7f, 0x80, 0x07, 0xff, 0xff, 0xe1, 0xfe, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xe0, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xe0, 0x00, 0xfe, 0x0f, 0xff, 0xff, 0xc0, 0x03, 0xfc, 0x07, 0xff, 0xff, 0xc0, 0x0f, 0xe0, 0x07, 0xff, 0xff, 0xc0, 0x3f, 0xc0, 0x07, 0xff, 0xff, 0xc0, 0xfe, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x01, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0x80, 0x07, 0xff, 0xff, 0xff, 0xff, 0x80, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff, 0x7f, 0xff, 0xe0, 0x1f, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set12[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set8[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x60, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0xe0, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x10, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x10, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x10, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x18, 0x87, 0xe3, 0xff, 0xff, 0xff, 0x18, 0x87, 0xe3, 0xff, 0xff, 0xff, 0x18, 0x87, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x18, 0xc7, 0xe0, 0x00, 0x00, 0x00, 0x18, 0xc7, 0xe0, 0x00, 0x00, 0x00, 0x18, 0xc7, 0xe0, 0x00, 0x00, 0x00, 0x18, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xc7, 0xff, 0x1f, 0xff, 0xff, 0xf8, 0xc7, 0xff, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xff, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xff, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x07, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x07, 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x06, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set9[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf8, 0x07, 0xf0, 0x0f, 0xff, 0xff, 0xf0, 0x3f, 0xfe, 0x07, 0xff, 0xff, 0xe0, 0xff, 0xff, 0x83, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0x87, 0xff, 0xff, 0xf0, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0x0f, 0xff, 0xff, 0xfc, 0x7f, 0xfe, 0x1f, 0xff, 0xff, 0xfc, 0x3f, 0xfe, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xfc, 0x3f, 0xf3, 0xfb, 0xfe, 0x1f, 0xfc, 0x7f, 0xe1, 0xf0, 0xff, 0x1f, 0xfc, 0x7f, 0xc0, 0xe0, 0x7f, 0x1f, 0xf8, 0x7f, 0x80, 0x40, 0x7f, 0x0f, 0xf8, 0xff, 0x00, 0x00, 0x3f, 0x8f, 0xf8, 0xff, 0x00, 0x00, 0x3f, 0x8f, 0xf8, 0xff, 0x00, 0x00, 0x1f, 0x8f, 0xf8, 0xfe, 0x00, 0x00, 0x1f, 0x8f, 0xff, 0xfe, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set10[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xfe, 0x00, 0x00, 0x7f, 0xfc, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x7f, 0xfc, 0x00, 0x00, 0x3f, 0xfe, 0xff, 0xfc, 0x7f, 0xfe, 0x3f, 0xff, 0xff, 0xfc, 0x7f, 0xfe, 0x3f, 0xff, 0xff, 0xfc, 0x7f, 0xfe, 0x3f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xff, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xff, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0x8f, 0xf8, 0xfe, 0x3f, 0xfc, 0x7f, 0xff, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xff, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xff, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xff, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xff, 0xff, 0xfe, 0x3f, 0xfc, 0x3f, 0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set13[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xbe, 0x3d, 0xff, 0xff, 0xff, 0xfe, 0x3e, 0x3c, 0x7f, 0xff, 0xff, 0xfc, 0x3e, 0x3c, 0x3f, 0xff, 0xff, 0xf8, 0x3e, 0x3c, 0x1f, 0xff, 0xff, 0xf0, 0xfe, 0x3f, 0x0f, 0xff, 0xff, 0xe1, 0xfe, 0x3f, 0x87, 0xff, 0xff, 0xc3, 0xfe, 0x3f, 0xc3, 0xff, 0xff, 0x87, 0xfe, 0x3f, 0xe1, 0xff, 0xff, 0x8f, 0xfe, 0x3f, 0xf1, 0xff, 0xff, 0x0f, 0xfe, 0x3f, 0xf0, 0xff, 0xff, 0x1f, 0xfe, 0x3f, 0xf8, 0xff, 0xff, 0x1f, 0xfe, 0x3f, 0xf8, 0xff, 0xfe, 0x1f, 0xfe, 0x3f, 0xfc, 0x7f, 0xfe, 0x3f, 0xfe, 0x3f, 0xfc, 0x7f, 0xfe, 0x3f, 0xfe, 0x3f, 0xfc, 0x7f, 0xfe, 0x3f, 0xfe, 0x3f, 0xfc, 0x7f, 0xfe, 0x3f, 0xfe, 0x3f, 0xfc, 0x7f, 0xfe, 0x3f, 0xff, 0xff, 0xfc, 0x7f, 0xfe, 0x3f, 0xff, 0xff, 0xfc, 0x7f, 0xfe, 0x1f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0x1f, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xf0, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xf1, 0xff, 0xff, 0x87, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xe1, 0xff, 0xff, 0x87, 0xff, 0xff, 0xf0, 0xff, 0xff, 0x07, 0xff, 0xff, 0xf8, 0x3f, 0xfc, 0x0f, 0xff, 0xff, 0xfc, 0x0f, 0xf0, 0x3f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set14[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xfe, 0x7f, 0xff, 0xff, 0xfe, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x7e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x7e, 0x7f, 0xff, 0xfe, 0x00, 0x00, 0xfe, 0x3f, 0xff, 0xfc, 0x00, 0x00, 0xff, 0x1f, 0xff, 0xfc, 0x00, 0x00, 0xfe, 0x0f, 0xff, 0xf8, 0x00, 0x01, 0xfe, 0x07, 0xff, 0xf8, 0x00, 0x01, 0xfe, 0x03, 0xff, 0xf0, 0x00, 0x03, 0xfc, 0x01, 0xff, 0xf0, 0x00, 0x07, 0xfc, 0x01, 0xff, 0xf0, 0x00, 0x0f, 0xf8, 0x01, 0xff, 0xf0, 0x00, 0x1f, 0xf0, 0x00, 0xff, 0xf0, 0x00, 0x1f, 0xf0, 0x00, 0xff, 0xf0, 0x00, 0x3f, 0xe0, 0x00, 0x7f, 0xf8, 0x00, 0x7f, 0xc0, 0x00, 0x7f, 0xf8, 0x00, 0xff, 0x80, 0x00, 0x7f, 0xfc, 0x00, 0xff, 0x00, 0x00, 0x7f, 0xfc, 0x01, 0xff, 0x00, 0x00, 0x7f, 0xfe, 0x01, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x03, 0xfc, 0x00, 0x00, 0x7f, 0xff, 0x03, 0xf8, 0x00, 0x00, 0xff, 0xff, 0x83, 0xf8, 0x00, 0x00, 0xff, 0xff, 0xc7, 0xf8, 0x00, 0x00, 0xff, 0xff, 0xe3, 0xf0, 0x00, 0x01, 0xff, 0xff, 0xf3, 0xf0, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set15[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xe7, 0xc0, 0x00, 0x03, 0xff, 0xf8, 0xe3, 0xc0, 0x00, 0x03, 0xff, 0xf8, 0xf3, 0xcf, 0xff, 0xff, 0xff, 0xf8, 0xf3, 0xcf, 0xff, 0xff, 0xff, 0xf8, 0xf1, 0xcf, 0xff, 0xff, 0xff, 0xf8, 0xf9, 0xcf, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xcf, 0xff, 0xff, 0xff, 0xf8, 0xfc, 0x4f, 0xff, 0xff, 0xff, 0xf8, 0xfe, 0x0f, 0xff, 0xff, 0xff, 0xf8, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xf8, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xf8, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xc8, 0x7f, 0xff, 0xff, 0xf8, 0x80, 0x0e, 0x1f, 0xff, 0xff, 0xf8, 0x80, 0x0f, 0x07, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xf8, 0xff, 0xff, 0xfc, 0x07, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set16[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xe7, 0xff, 0xe1, 0xff, 0xff, 0xf8, 0xe3, 0xff, 0x00, 0x7f, 0xff, 0xf8, 0xf3, 0xfe, 0x0c, 0x1f, 0xff, 0xf8, 0xf3, 0xf8, 0x7f, 0x0f, 0xff, 0xf8, 0xf1, 0xf0, 0xff, 0xc7, 0xff, 0xf8, 0xf9, 0xe3, 0xff, 0xe3, 0xff, 0xf8, 0xf8, 0xe7, 0xff, 0xf1, 0xff, 0xf8, 0xfc, 0x47, 0xff, 0xf8, 0xff, 0xf8, 0xfe, 0x0f, 0xff, 0xfc, 0xff, 0xf8, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xf8, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xf8, 0xfe, 0x0f, 0xff, 0xff, 0xff, 0xf8, 0xfe, 0x47, 0xff, 0xff, 0xff, 0xf8, 0xfc, 0x63, 0xff, 0xff, 0xff, 0xf8, 0xfc, 0xf0, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0x7f, 0xff, 0xff, 0xf8, 0xf9, 0xfe, 0x1f, 0xff, 0xff, 0xf8, 0xf1, 0xff, 0x07, 0xff, 0xff, 0xf8, 0xe3, 0xff, 0xc1, 0xff, 0xff, 0xf8, 0xc7, 0xff, 0xf0, 0x1f, 0xff, 0xf8, 0xc7, 0xff, 0xfc, 0x07, 0xff, 0xf8, 0xcf, 0xff, 0xff, 0xc7, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set17[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xf8, 0x88, 0x8f, 0xf1, 0xff, 0xff, 0xf8, 0x88, 0x8f, 0xf1, 0xff, 0xff, 0xf8, 0x88, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0x80, 0xf0, 0x1f, 0x01, 0x8f, 0xf1, 0x80, 0xf0, 0x1f, 0x01, 0x8f, 0xf1, 0x9c, 0xf3, 0x9f, 0xf9, 0x8f, 0xf1, 0x9c, 0xf3, 0x9f, 0xf9, 0x8f, 0xf1, 0x9c, 0xf3, 0x9f, 0xf9, 0x8f, 0xf1, 0x9c, 0xf3, 0x9f, 0xf9, 0x8f, 0xf1, 0x80, 0xf0, 0x1c, 0x01, 0x8f, 0xf1, 0x80, 0xf0, 0x1c, 0x01, 0x8f, 0xf1, 0xfc, 0xff, 0x9c, 0xf9, 0x8f, 0xf1, 0xfc, 0xff, 0x9c, 0xf9, 0x8f, 0xf1, 0xfc, 0xff, 0x9c, 0xf9, 0x8f, 0xf1, 0xfc, 0xff, 0x9c, 0xf9, 0x8f, 0xf1, 0x00, 0xe0, 0x1c, 0x01, 0x8f, 0xf1, 0x00, 0xe0, 0x1c, 0x01, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Set18[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xf8, 0x88, 0x8f, 0xf1, 0xff, 0xff, 0xf8, 0x88, 0x8f, 0xf1, 0xff, 0xff, 0xf8, 0x88, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0x0d, 0xdd, 0xfe, 0x4a, 0x8f, 0xf1, 0x0a, 0xaa, 0xff, 0xcd, 0x8f, 0xf1, 0x08, 0x88, 0xfe, 0x5f, 0x8f, 0xf1, 0x1a, 0xaa, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0x00, 0x00, 0x8f, 0xf1, 0x0c, 0x01, 0x7f, 0xff, 0x8f, 0xf1, 0x6f, 0xff, 0x46, 0x31, 0x8f, 0xf1, 0x6c, 0x3f, 0x56, 0xb7, 0x8f, 0xf1, 0x1f, 0xff, 0x56, 0xb7, 0x8f, 0xf1, 0xff, 0xff, 0x46, 0x31, 0x8f, 0xf1, 0xff, 0xff, 0x77, 0xb5, 0x8f, 0xf1, 0xff, 0xff, 0x77, 0xb5, 0x8f, 0xf1, 0x0c, 0x01, 0x77, 0xb5, 0x8f, 0xf1, 0x6f, 0xff, 0x46, 0x31, 0x8f, 0xf1, 0x6c, 0x3f, 0x7f, 0xff, 0x8f, 0xf1, 0x1f, 0xff, 0x00, 0x00, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0x00, 0x00, 0x2a, 0xa4, 0x8f, 0xf1, 0x00, 0x00, 0x55, 0x22, 0x8f, 0xf1, 0xe0, 0x00, 0x2a, 0xa4, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Lang_CN[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xf1, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xf1, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xf1, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xf1, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xf1, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xf1, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xf1, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xf1, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xf1, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x3f, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Lang_EN[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x00, 0x1f, 0xc0, 0x0f, 0xff, 0xc7, 0x00, 0x1f, 0xc0, 0x0c, 0x1f, 0xc7, 0x00, 0x1f, 0xc0, 0x0c, 0x1f, 0xc7, 0x1f, 0xff, 0xc7, 0xfc, 0x0f, 0xc7, 0x1f, 0xff, 0xc7, 0xfc, 0x4f, 0xc7, 0x1f, 0xff, 0xc7, 0xfc, 0x4f, 0xc7, 0x1f, 0xff, 0xc7, 0xfc, 0x47, 0xc7, 0x1f, 0xff, 0xc7, 0xfc, 0x67, 0xc7, 0x1c, 0x01, 0xc0, 0x1c, 0x63, 0xc7, 0x1c, 0x01, 0xc0, 0x1c, 0x73, 0xc7, 0x1c, 0x01, 0xc0, 0x1c, 0x71, 0xc7, 0x1f, 0x8f, 0xc7, 0xfc, 0x79, 0xc7, 0x1f, 0x8f, 0xc7, 0xfc, 0x78, 0xc7, 0x1f, 0x8f, 0xc7, 0xfc, 0x7c, 0x07, 0x1f, 0x8f, 0xc7, 0xfc, 0x7c, 0x07, 0x00, 0x0f, 0xc0, 0x0c, 0x7e, 0x07, 0x00, 0x0f, 0xc0, 0x0f, 0xff, 0xff, 0x00, 0x0f, 0xc0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char Save[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x07, 0xff, 0xf1, 0xc0, 0x0f, 0xf8, 0xc3, 0xff, 0xf1, 0xc0, 0x0f, 0xf8, 0xe1, 0xff, 0xf1, 0xc0, 0x0f, 0xf8, 0xf0, 0xff, 0xf1, 0xc0, 0x0f, 0xf8, 0xf8, 0x7f, 0xf1, 0xc0, 0x0f, 0xf8, 0xfc, 0x3f, 0xf1, 0xc0, 0x0f, 0xf8, 0xfe, 0x1f, 0xf1, 0xc0, 0x00, 0x00, 0xff, 0x0f, 0xf1, 0xc0, 0x00, 0x00, 0xff, 0x8f, 0xf1, 0xc0, 0x00, 0x00, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xc0, 0x00, 0x00, 0x03, 0x8f, 0xf1, 0xc0, 0x00, 0x00, 0x03, 0x8f, 0xf1, 0xc0, 0x00, 0x00, 0x03, 0x8f, 0xf1, 0xc7, 0xff, 0xff, 0xe3, 0x8f, 0xf1, 0xc7, 0xff, 0xff, 0xe3, 0x8f, 0xf1, 0xc6, 0x00, 0x00, 0xe3, 0x8f, 0xf1, 0xc6, 0x00, 0x00, 0xe3, 0x8f, 0xf1, 0xc6, 0x00, 0x00, 0xe3, 0x8f, 0xf1, 0xc7, 0xff, 0xff, 0xe3, 0x8f, 0xf1, 0xc7, 0xff, 0xff, 0xe3, 0x8f, 0xf1, 0xc6, 0x00, 0x00, 0xe3, 0x8f, 0xf1, 0xc6, 0x00, 0x00, 0xe3, 0x8f, 0xf1, 0xc6, 0x00, 0x00, 0xe3, 0x8f, 0xf1, 0xc7, 0xff, 0xff, 0xe3, 0x8f, 0xf1, 0xc7, 0xff, 0xff, 0xe3, 0x8f, 0xf1, 0xc7, 0xff, 0xff, 0xe3, 0x8f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; +const unsigned char *Ico_table[] = { + Set0, Set1, Set2, Set3, Set4, Set5,Set6,Set_LANG,Set7, + Set8, Set9, Set0, Set10, Set12, Save, + Set0, Set11, Set14, Save, + Set11, Set13, Set14, Save, + Set15, Set16, + Set17, Set18, //5 + Set5_1, Set5, + c_NO, c_OK, + Lang_CN, Lang_EN, //8 + c_NO, c_OK, + Set17, Set4F, Save, +}; +const byte Menu_table[] = {9, 6, 4, 4, 2, 2, 2, 2, 2, 2, 3}; //菜单 标签 温控 定时 控制方式 首页 蜂鸣器 标签删除确认界面 语言菜单 翻转 显示 +byte MenuLevel = 0; //菜单层级 + +/*//////////////////////////////////////////////////////////////////////////////////////////////////// + 多语言支持 + Multilingual support + /////////////////////////////////////////////////////////////////////////////////////////////////// +*/ +/* + 英语库 ENGLISH +*/ +const char EN_0[] PROGMEM = "Tip"; +const char EN_1[] PROGMEM = "Temp"; +const char EN_2[] PROGMEM = "Timer"; +const char EN_3[] PROGMEM = "Control"; +const char EN_4[] PROGMEM = "Screen"; +const char EN_5[] PROGMEM = "Buzzer"; +const char EN_6[] PROGMEM = "LOW Vol"; +const char EN_7[] PROGMEM = "Lang"; +const char EN_8[] PROGMEM = "Return"; +const char EN_9[] PROGMEM = "Change"; +const char EN_10[] PROGMEM = "Calibrate"; +const char EN_11[] PROGMEM = "Rename"; +const char EN_12[] PROGMEM = "Delete"; +const char EN_13[] PROGMEM = "Add"; +const char EN_14[] PROGMEM = "Save"; +const char EN_15[] PROGMEM = "Default"; +const char EN_16[] PROGMEM = "Sleep"; +const char EN_17[] PROGMEM = "Boost"; +const char EN_18[] PROGMEM = "Save"; +const char EN_19[] PROGMEM = "Sleep"; +const char EN_20[] PROGMEM = "Off"; +const char EN_21[] PROGMEM = "Boost"; +const char EN_22[] PROGMEM = "Save"; +const char EN_23[] PROGMEM = "Direct"; +const char EN_24[] PROGMEM = "PID"; +const char EN_25[] PROGMEM = "Big"; +const char EN_26[] PROGMEM = "Infos"; +const char EN_27[] PROGMEM = "OFF"; +const char EN_28[] PROGMEM = "ON"; +const char EN_29[] PROGMEM = "NO"; +const char EN_30[] PROGMEM = "YES"; +const char EN_31[] PROGMEM = "CN"; +const char EN_32[] PROGMEM = "EN"; +const char EN_33[] PROGMEM = "NO"; +const char EN_34[] PROGMEM = "OK"; +const char EN_35[] PROGMEM = "Main Screen"; +const char EN_36[] PROGMEM = "Flip"; +const char EN_37[] PROGMEM = "Save"; +const char *const EN_table[] PROGMEM = {EN_0, EN_1, EN_2, EN_3, EN_4, EN_5, EN_6, EN_7, EN_8, EN_9, EN_10, EN_11, EN_12, EN_13, EN_14, EN_15, EN_16, EN_17, EN_18, EN_19, EN_20, EN_21, EN_22, EN_23, EN_24, EN_25, EN_26, EN_27, EN_28, EN_29, EN_30, EN_31, EN_32, EN_33, EN_34, EN_35, EN_36, EN_37,}; +/* + #!/usr/bin/python + # -*- coding: UTF-8 -*- + for num in range(0,38): + print("EN_",end="") + print(num,end='') + print(",",end="") +*/ +/* + 中文语言库 CHINESE + + //////////////////////////////////////////////////////////////////////////////////////////////////////// + 本地化提示:你可以按照位图的大小,把这里的文字位图替换成你的语言,确保位图分辨率一致即可,我们欢迎你把程序翻译为你当地的语言! + Localization tips: you can according to the size of the bitmap, + replace the text bitmap here with your language, + ensure that the bitmap resolution is consistent, + we welcome you to translate the program into your local language! + //////////////////////////////////////////////////////////////////////////////////////////////////////// +*/ +//width:28,height:14 主界面中文提示 +//Main Screen +//错误-ERROR +const unsigned char S1[] PROGMEM = { 0x20, 0x92, 0x1f, 0xc0, 0x3d, 0xf9, 0x90, 0x40, 0x20, 0x90, 0x90, 0x40, 0x40, 0x90, 0x1f, 0xc0, 0x7b, 0xff, 0x00, 0x00, 0xa0, 0x01, 0x3f, 0xe0, 0x21, 0xf9, 0x02, 0x00, 0xfd, 0x09, 0x02, 0x00, 0x21, 0x09, 0x7f, 0xf0, 0x21, 0xf9, 0x05, 0x00, 0x21, 0x09, 0x45, 0x00, 0x29, 0x09, 0x88, 0x80, 0x31, 0xf9, 0x10, 0x70, 0x21, 0x08, 0x20, 0x20 }; +//关机-OFF +const unsigned char S2[] PROGMEM = { 0x10, 0x40, 0x47, 0xc0, 0x17, 0xfc, 0x44, 0x40, 0x20, 0x03, 0xf4, 0x40, 0x23, 0xf8, 0x44, 0x40, 0x62, 0x08, 0xc4, 0x40, 0xa3, 0xf8, 0xe4, 0x40, 0x20, 0x01, 0x54, 0x40, 0x2f, 0xfd, 0x44, 0x40, 0x28, 0x06, 0x44, 0x40, 0x23, 0xf8, 0x44, 0x40, 0x20, 0x40, 0x44, 0x50, 0x20, 0x40, 0x48, 0x50, 0x21, 0x40, 0x50, 0x30, 0x20, 0x80, 0x40, 0x00 }; +//休眠-SLEEP +const unsigned char S3[] PROGMEM = { 0x10, 0x83, 0xdf, 0xc0, 0x10, 0x82, 0x50, 0x40, 0x20, 0x82, 0x50, 0x40, 0x2f, 0xff, 0xdf, 0xc0, 0x60, 0x82, 0x52, 0x00, 0x61, 0xc2, 0x52, 0x00, 0xa1, 0xc2, 0x5f, 0xe0, 0x22, 0xa3, 0xd2, 0x00, 0x22, 0xa2, 0x51, 0x00, 0x24, 0x92, 0x51, 0x00, 0x28, 0x8e, 0x50, 0x90, 0x30, 0x8b, 0xd4, 0x50, 0x20, 0x82, 0x58, 0x30, 0x20, 0x80, 0x10, 0x10 }; +//提温-BOOST +const unsigned char S4[] PROGMEM = { 0x23, 0xf2, 0x1f, 0xc0, 0x22, 0x11, 0x10, 0x40, 0xfb, 0xf0, 0x90, 0x40, 0x22, 0x12, 0x1f, 0xc0, 0x2a, 0x11, 0x10, 0x40, 0x33, 0xf1, 0x10, 0x40, 0x60, 0x00, 0x5f, 0xc0, 0xaf, 0xfc, 0x80, 0x00, 0x20, 0x41, 0x3f, 0xe0, 0x22, 0x43, 0x25, 0x20, 0x22, 0x79, 0x25, 0x20, 0x22, 0x41, 0x25, 0x20, 0xa5, 0x41, 0x25, 0x20, 0x48, 0xfd, 0x7f, 0xf0 }; +//正常工作-WORKY +const unsigned char S5[] PROGMEM = { 0x7f, 0xf8, 0x48, 0x80, 0x02, 0x00, 0x49, 0x00, 0x02, 0x01, 0xff, 0xf0, 0x02, 0x01, 0x00, 0x10, 0x02, 0x02, 0x7f, 0x20, 0x22, 0x00, 0x41, 0x00, 0x23, 0xf0, 0x7f, 0x00, 0x22, 0x00, 0x08, 0x00, 0x22, 0x00, 0xff, 0x80, 0x22, 0x00, 0x88, 0x80, 0x22, 0x00, 0x88, 0x80, 0x22, 0x00, 0x8a, 0x80, 0x22, 0x00, 0x89, 0x00, 0xff, 0xfc, 0x08, 0x00 }; +//加热-HEAT +const unsigned char S6[] PROGMEM = { 0x0f, 0x42, 0x1f, 0xc0, 0x78, 0x41, 0x10, 0x40, 0x08, 0x40, 0x90, 0x40, 0x08, 0x42, 0x1f, 0xc0, 0x08, 0x41, 0x10, 0x40, 0xff, 0xfd, 0x10, 0x40, 0x08, 0x40, 0x5f, 0xc0, 0x08, 0x40, 0x80, 0x00, 0x08, 0x41, 0x3f, 0xe0, 0x08, 0x43, 0x25, 0x20, 0x10, 0x41, 0x25, 0x20, 0x10, 0x41, 0x25, 0x20, 0x20, 0x41, 0x25, 0x20, 0x40, 0x41, 0x7f, 0xf0 }; +//维持-HOLD +const unsigned char S7[] PROGMEM = { 0x11, 0x40, 0x82, 0x00, 0x21, 0x20, 0x8f, 0xe0, 0x23, 0xfc, 0x82, 0x00, 0x4a, 0x23, 0xe2, 0x00, 0xfe, 0x20, 0x9f, 0xf0, 0x13, 0xf8, 0x80, 0x80, 0x22, 0x20, 0xc0, 0x80, 0x42, 0x21, 0xbf, 0xf0, 0xfb, 0xfa, 0x88, 0x80, 0x02, 0x20, 0x84, 0x80, 0x02, 0x20, 0x84, 0x80, 0x1a, 0x20, 0x80, 0x80, 0xe3, 0xfe, 0x82, 0x80, 0x02, 0x01, 0x01, 0x00 }; +const unsigned char *S_table[] = {S1, S2, S3, S4, S5, S6, S7}; + +// 菜单 width:36,height:16 +//MENU Oj +/* + The order here(↓) can refer to EN_table(↑↑↑) +*/ +const unsigned char t0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x90, 0xf8, 0x00, 0x01, 0x08, 0x08, 0x88, 0x00, 0x0a, 0x10, 0x08, 0x88, 0x00, 0x04, 0x7f, 0x01, 0x07, 0x00, 0x1f, 0xc1, 0x3a, 0x00, 0x00, 0x05, 0x49, 0x09, 0xfc, 0x00, 0x04, 0x49, 0x08, 0x84, 0x00, 0x04, 0x49, 0x08, 0x88, 0x00, 0x04, 0x49, 0x08, 0x48, 0x00, 0x04, 0x49, 0x08, 0x50, 0x00, 0x04, 0x49, 0x0a, 0x20, 0x00, 0x04, 0x16, 0x0c, 0x58, 0x00, 0x14, 0x21, 0x89, 0x87, 0x00, 0x08, 0xc0, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xfe, 0x08, 0x20, 0x00, 0x08, 0x82, 0x0b, 0xff, 0x00, 0x04, 0x82, 0x0a, 0x01, 0x00, 0x10, 0xfe, 0x3c, 0x51, 0x00, 0x08, 0x82, 0x08, 0x88, 0x00, 0x08, 0x82, 0x09, 0x04, 0x00, 0x02, 0xfe, 0x0c, 0x00, 0x00, 0x04, 0x00, 0x19, 0xfc, 0x00, 0x09, 0xff, 0x28, 0x20, 0x00, 0x19, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x2b, 0xff, 0x00, 0x0b, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3e, 0x04, 0x00, 0x1f, 0xff, 0xa2, 0x04, 0x00, 0x10, 0x00, 0xa2, 0xff, 0x00, 0x00, 0x01, 0x22, 0x04, 0x00, 0x0f, 0xfe, 0x22, 0x04, 0x00, 0x00, 0x40, 0x3e, 0x44, 0x00, 0x00, 0x40, 0x22, 0x24, 0x00, 0x04, 0x40, 0x22, 0x24, 0x00, 0x04, 0x7c, 0x22, 0x04, 0x00, 0x04, 0x40, 0x22, 0x04, 0x00, 0x0a, 0x40, 0x3e, 0x04, 0x00, 0x09, 0x40, 0x22, 0x24, 0x00, 0x10, 0xff, 0x80, 0x14, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00 }; +const unsigned char t3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x10, 0x12, 0x02, 0x00, 0x05, 0xff, 0x9f, 0xd2, 0x00, 0x05, 0x00, 0x92, 0x12, 0x00, 0x1e, 0x28, 0xa2, 0x12, 0x00, 0x04, 0x44, 0x3f, 0xf2, 0x00, 0x04, 0x82, 0x02, 0x12, 0x00, 0x06, 0x00, 0x02, 0x12, 0x00, 0x0c, 0xfe, 0x1f, 0xd2, 0x00, 0x14, 0x10, 0x12, 0x52, 0x00, 0x04, 0x10, 0x12, 0x42, 0x00, 0x04, 0x10, 0x13, 0x42, 0x00, 0x04, 0x10, 0x12, 0x82, 0x00, 0x15, 0xff, 0x82, 0x0a, 0x00, 0x08, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x0f, 0xf8, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x00, 0x04, 0x02, 0x3f, 0xfe, 0x00, 0x04, 0x02, 0x00, 0x80, 0x00, 0x07, 0xfe, 0x00, 0x80, 0x00, 0x00, 0x90, 0x04, 0x90, 0x00, 0x08, 0x91, 0x0c, 0x88, 0x00, 0x06, 0x93, 0x10, 0x86, 0x00, 0x02, 0x94, 0x20, 0x82, 0x00, 0x00, 0x90, 0x00, 0x80, 0x00, 0x00, 0x90, 0x02, 0x80, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x1f, 0xff, 0x9f, 0xfc, 0x00, 0x00, 0x40, 0x04, 0x10, 0x00, 0x0f, 0xff, 0x02, 0x20, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x08, 0x42, 0x0f, 0xf8, 0x00, 0x08, 0x42, 0x08, 0x08, 0x00, 0x0f, 0xfe, 0x08, 0x08, 0x00, 0x08, 0x02, 0x0f, 0xf8, 0x00, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, 0x0f, 0xf8, 0x00, 0x10, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t6[] PROGMEM = { 0x09, 0xff, 0x00, 0x40, 0x00, 0x04, 0x20, 0x3f, 0xff, 0x00, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x1c, 0x42, 0x0f, 0xfc, 0x00, 0x04, 0x42, 0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x04, 0x00, 0x0f, 0xfc, 0x00, 0x04, 0xff, 0x00, 0x00, 0x00, 0x04, 0x81, 0x00, 0x00, 0x00, 0x05, 0x81, 0x0f, 0xfc, 0x00, 0x06, 0x81, 0x08, 0x04, 0x00, 0x04, 0xff, 0x08, 0x04, 0x00, 0x00, 0x81, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t7[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0f, 0xfe, 0x00, 0x01, 0x00, 0x08, 0x20, 0x00, 0x03, 0xff, 0x08, 0x20, 0x00, 0x02, 0x01, 0x08, 0x20, 0x00, 0x04, 0x22, 0x08, 0x20, 0x00, 0x08, 0x20, 0x0b, 0xfe, 0x00, 0x10, 0x20, 0x08, 0x20, 0x00, 0x00, 0x50, 0x08, 0x28, 0x00, 0x00, 0x50, 0x08, 0x24, 0x00, 0x00, 0x88, 0x08, 0x22, 0x00, 0x00, 0x88, 0x10, 0x20, 0x00, 0x01, 0x04, 0x10, 0x20, 0x00, 0x02, 0x03, 0xa7, 0xff, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Back[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x07, 0x00, 0x00, 0x00, 0x08, 0xf8, 0x3f, 0xfe, 0x00, 0x04, 0x80, 0x20, 0x02, 0x00, 0x00, 0x80, 0x20, 0x02, 0x00, 0x00, 0xbe, 0x23, 0xe2, 0x00, 0x1c, 0x82, 0x22, 0x22, 0x00, 0x04, 0xa4, 0x22, 0x22, 0x00, 0x04, 0x94, 0x22, 0x22, 0x00, 0x04, 0x88, 0x22, 0x22, 0x00, 0x04, 0x94, 0x23, 0xe2, 0x00, 0x05, 0x22, 0x20, 0x02, 0x00, 0x05, 0x42, 0x20, 0x02, 0x00, 0x0a, 0x00, 0x3f, 0xfe, 0x00, 0x11, 0xff, 0xa0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t1_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x20, 0x90, 0x00, 0x02, 0x7f, 0x98, 0x90, 0x00, 0x1f, 0x80, 0x09, 0xff, 0x00, 0x02, 0x22, 0x01, 0x10, 0x00, 0x06, 0x21, 0x8b, 0x10, 0x00, 0x07, 0x62, 0x8d, 0xfe, 0x00, 0x0a, 0xa2, 0x09, 0x10, 0x00, 0x0a, 0x14, 0x11, 0x10, 0x00, 0x12, 0x14, 0x31, 0xfe, 0x00, 0x02, 0x08, 0x11, 0x10, 0x00, 0x02, 0x14, 0x11, 0x10, 0x00, 0x02, 0x22, 0x11, 0x10, 0x00, 0x02, 0x43, 0x91, 0xff, 0x00, 0x02, 0x81, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x80, 0x00, 0x00, 0x50, 0x01, 0xfc, 0x00, 0x00, 0x88, 0x01, 0x04, 0x00, 0x01, 0x04, 0x03, 0x08, 0x00, 0x06, 0xfb, 0x04, 0x90, 0x00, 0x08, 0x00, 0xc0, 0x60, 0x00, 0x07, 0xdf, 0x01, 0x80, 0x00, 0x04, 0x51, 0x06, 0x00, 0x00, 0x04, 0x51, 0x1b, 0xfe, 0x00, 0x04, 0x51, 0x02, 0x02, 0x00, 0x07, 0xd9, 0x02, 0x02, 0x00, 0x04, 0x56, 0x02, 0x02, 0x00, 0x00, 0x10, 0x03, 0xfe, 0x00, 0x00, 0x10, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x78, 0xbc, 0x20, 0x00, 0x09, 0x48, 0xa4, 0x50, 0x00, 0x09, 0x4a, 0xa8, 0x50, 0x00, 0x09, 0x4a, 0xa8, 0x88, 0x00, 0x09, 0x4a, 0xb1, 0x04, 0x00, 0x1f, 0xfe, 0xaa, 0xfb, 0x00, 0x09, 0x4a, 0xa4, 0x20, 0x00, 0x09, 0x4a, 0xa4, 0x20, 0x00, 0x09, 0x4a, 0xa7, 0xfe, 0x00, 0x09, 0x4a, 0xb4, 0x20, 0x00, 0x09, 0x48, 0xa9, 0x24, 0x00, 0x0b, 0x48, 0xa2, 0x22, 0x00, 0x08, 0x8a, 0xa4, 0xa2, 0x00, 0x11, 0x19, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x10, 0x00, 0x1f, 0xdc, 0x3e, 0xfe, 0x00, 0x08, 0x90, 0x02, 0x12, 0x00, 0x05, 0x10, 0x04, 0xff, 0x00, 0x1f, 0xdf, 0x84, 0x12, 0x00, 0x02, 0x12, 0x0c, 0xfe, 0x00, 0x1f, 0xd2, 0x02, 0x10, 0x00, 0x02, 0x12, 0x22, 0xfe, 0x00, 0x0a, 0x92, 0x14, 0x10, 0x00, 0x0a, 0x52, 0x14, 0x10, 0x00, 0x12, 0x22, 0x0d, 0xff, 0x00, 0x02, 0x22, 0x08, 0x10, 0x00, 0x0a, 0x42, 0x14, 0x10, 0x00, 0x04, 0x02, 0x23, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//默认 +const unsigned char t2_0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc8, 0x10, 0x20, 0x00, 0x12, 0x4a, 0x0c, 0x20, 0x00, 0x1a, 0xc9, 0x04, 0x20, 0x00, 0x17, 0x48, 0x00, 0x20, 0x00, 0x1f, 0xff, 0xb8, 0x20, 0x00, 0x02, 0x08, 0x08, 0x50, 0x00, 0x1f, 0xc8, 0x08, 0x50, 0x00, 0x02, 0x08, 0x08, 0x50, 0x00, 0x03, 0xc8, 0x08, 0x48, 0x00, 0x1e, 0x14, 0x08, 0x88, 0x00, 0x01, 0x54, 0x0a, 0x88, 0x00, 0x15, 0x22, 0x0c, 0x84, 0x00, 0x14, 0x43, 0x89, 0x07, 0x00, 0x00, 0x81, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//休眠 +const unsigned char t2_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x3d, 0xfc, 0x00, 0x02, 0x10, 0x25, 0x04, 0x00, 0x04, 0x10, 0x25, 0x04, 0x00, 0x05, 0xff, 0xbd, 0xfc, 0x00, 0x0c, 0x10, 0x25, 0x20, 0x00, 0x0c, 0x38, 0x25, 0x20, 0x00, 0x14, 0x38, 0x25, 0xfe, 0x00, 0x04, 0x54, 0x3d, 0x20, 0x00, 0x04, 0x54, 0x25, 0x10, 0x00, 0x04, 0x92, 0x25, 0x10, 0x00, 0x05, 0x11, 0xa5, 0x09, 0x00, 0x06, 0x11, 0x3d, 0x45, 0x00, 0x04, 0x10, 0x25, 0x83, 0x00, 0x04, 0x10, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//提温 +const unsigned char t2_2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x7e, 0x21, 0xfc, 0x00, 0x04, 0x42, 0x11, 0x04, 0x00, 0x1f, 0x7e, 0x09, 0x04, 0x00, 0x04, 0x42, 0x21, 0xfc, 0x00, 0x05, 0x42, 0x11, 0x04, 0x00, 0x06, 0x7e, 0x11, 0x04, 0x00, 0x0c, 0x00, 0x05, 0xfc, 0x00, 0x15, 0xff, 0x88, 0x00, 0x00, 0x04, 0x08, 0x13, 0xfe, 0x00, 0x04, 0x48, 0x32, 0x52, 0x00, 0x04, 0x4f, 0x12, 0x52, 0x00, 0x04, 0x48, 0x12, 0x52, 0x00, 0x14, 0xa8, 0x12, 0x52, 0x00, 0x09, 0x1f, 0x97, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//关机 +const unsigned char t3_1[] PROGMEM = { 0x01, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x88, 0x04, 0x44, 0x00, 0x0f, 0xff, 0x3f, 0x44, 0x00, 0x00, 0x20, 0x04, 0x44, 0x00, 0x00, 0x20, 0x0c, 0x44, 0x00, 0x00, 0x20, 0x0e, 0x44, 0x00, 0x1f, 0xff, 0x95, 0x44, 0x00, 0x00, 0x20, 0x14, 0x44, 0x00, 0x00, 0x50, 0x24, 0x44, 0x00, 0x00, 0x50, 0x04, 0x44, 0x00, 0x00, 0x88, 0x04, 0x45, 0x00, 0x01, 0x04, 0x04, 0x85, 0x00, 0x06, 0x03, 0x85, 0x03, 0x00, 0x18, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x20, 0x00, 0x0f, 0xff, 0x09, 0xfc, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, 0x20, 0x3e, 0x88, 0x00, 0x03, 0xfe, 0x08, 0x50, 0x00, 0x02, 0x02, 0x0b, 0xfe, 0x00, 0x03, 0xfe, 0x0c, 0x40, 0x00, 0x02, 0x02, 0x18, 0x40, 0x00, 0x03, 0xfe, 0x2b, 0xfe, 0x00, 0x02, 0x02, 0x08, 0x48, 0x00, 0x03, 0xfe, 0x08, 0x88, 0x00, 0x02, 0x02, 0x08, 0x50, 0x00, 0x02, 0x02, 0x28, 0x30, 0x00, 0x1f, 0xff, 0x91, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_PID[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc3, 0xf1, 0xe0, 0x00, 0x0f, 0xe3, 0xf1, 0xf8, 0x00, 0x0c, 0x70, 0xc1, 0x9e, 0x00, 0x0c, 0x30, 0xc1, 0x86, 0x00, 0x0c, 0x30, 0xc1, 0x83, 0x00, 0x0c, 0x30, 0xc1, 0x83, 0x00, 0x0c, 0x60, 0xc1, 0x83, 0x00, 0x0c, 0x60, 0xc1, 0x83, 0x00, 0x0f, 0xc0, 0xc1, 0x83, 0x00, 0x0f, 0xc0, 0xc1, 0x86, 0x00, 0x0c, 0x00, 0xc1, 0x86, 0x00, 0x0c, 0x00, 0xc1, 0x98, 0x00, 0x0c, 0x03, 0xf1, 0xf8, 0x00, 0x0c, 0x03, 0xf1, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t5_0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xdf, 0x88, 0x40, 0x00, 0x0a, 0x24, 0x10, 0x40, 0x00, 0x11, 0x42, 0x10, 0xfe, 0x00, 0x04, 0x00, 0x22, 0x82, 0x00, 0x02, 0xff, 0x3d, 0x02, 0x00, 0x08, 0x01, 0x0a, 0x42, 0x00, 0x09, 0xf9, 0x10, 0x32, 0x00, 0x09, 0x09, 0x20, 0x12, 0x00, 0x09, 0xf9, 0x3e, 0x02, 0x00, 0x09, 0x09, 0x00, 0x02, 0x00, 0x09, 0x09, 0x0e, 0x02, 0x00, 0x09, 0xf9, 0x30, 0x22, 0x00, 0x08, 0x05, 0x00, 0x14, 0x00, 0x08, 0x02, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x44, 0x10, 0xfe, 0x00, 0x04, 0x28, 0x10, 0x92, 0x00, 0x05, 0xff, 0x22, 0x92, 0x00, 0x00, 0x10, 0x3c, 0x92, 0x00, 0x00, 0x10, 0x08, 0x92, 0x00, 0x1c, 0xfe, 0x10, 0x92, 0x00, 0x04, 0x10, 0x20, 0xfe, 0x00, 0x04, 0x10, 0x3e, 0x92, 0x00, 0x05, 0xff, 0x80, 0x92, 0x00, 0x04, 0x10, 0x00, 0x92, 0x00, 0x05, 0x10, 0x0e, 0x92, 0x00, 0x06, 0x10, 0x30, 0x92, 0x00, 0x04, 0x10, 0x00, 0xfe, 0x00, 0x00, 0x10, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5_3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x3f, 0xfe, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x07, 0xfe, 0x0f, 0xf8, 0x00, 0x04, 0x02, 0x08, 0x08, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x07, 0xfe, 0x08, 0x88, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x07, 0xfe, 0x08, 0x88, 0x00, 0x04, 0x02, 0x09, 0x48, 0x00, 0x04, 0x02, 0x02, 0x30, 0x00, 0x07, 0xfe, 0x04, 0x0c, 0x00, 0x04, 0x02, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_off[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x04, 0xff, 0x00, 0x00, 0x44, 0x02, 0x01, 0x00, 0x07, 0xff, 0x90, 0x21, 0x00, 0x00, 0x10, 0x10, 0x21, 0x00, 0x00, 0x10, 0x17, 0xfd, 0x00, 0x00, 0x10, 0x10, 0x21, 0x00, 0x0f, 0xff, 0xd0, 0x61, 0x00, 0x00, 0x10, 0x10, 0xa1, 0x00, 0x00, 0x28, 0x11, 0x21, 0x00, 0x00, 0x28, 0x12, 0x21, 0x00, 0x00, 0x44, 0x14, 0x21, 0x00, 0x00, 0x82, 0x10, 0xa1, 0x00, 0x03, 0x01, 0xd0, 0x45, 0x00, 0x0c, 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_on[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x20, 0x00, 0x00, 0x84, 0x07, 0xff, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x0f, 0xff, 0xc7, 0xff, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0x00, 0x84, 0x05, 0xff, 0x00, 0x00, 0x84, 0x05, 0x01, 0x00, 0x01, 0x04, 0x09, 0x01, 0x00, 0x01, 0x04, 0x09, 0x01, 0x00, 0x02, 0x04, 0x11, 0xff, 0x00, 0x04, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_NO[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x04, 0x91, 0x00, 0x04, 0x40, 0x02, 0x52, 0x00, 0x04, 0x7f, 0x90, 0x54, 0x00, 0x04, 0x50, 0x88, 0xff, 0x00, 0x07, 0xd0, 0x84, 0x81, 0x00, 0x04, 0x51, 0x00, 0x81, 0x00, 0x04, 0x49, 0x01, 0xff, 0x00, 0x07, 0xca, 0x02, 0x81, 0x00, 0x04, 0x44, 0x04, 0x81, 0x00, 0x04, 0x4a, 0x1c, 0xff, 0x00, 0x07, 0xea, 0x04, 0x81, 0x00, 0x0c, 0x51, 0x04, 0x81, 0x00, 0x00, 0x61, 0xc4, 0x85, 0x00, 0x00, 0x40, 0x80, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_OK[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xdf, 0x10, 0x20, 0x00, 0x02, 0x12, 0x0c, 0x20, 0x00, 0x02, 0x24, 0x04, 0x20, 0x00, 0x04, 0x7f, 0x80, 0x20, 0x00, 0x04, 0x24, 0xb8, 0x20, 0x00, 0x0f, 0xa4, 0x88, 0x50, 0x00, 0x14, 0xbf, 0x88, 0x50, 0x00, 0x04, 0xa4, 0x88, 0x50, 0x00, 0x04, 0xa4, 0x88, 0x48, 0x00, 0x04, 0xbf, 0x88, 0x88, 0x00, 0x04, 0xa4, 0x8a, 0x88, 0x00, 0x07, 0xa4, 0x8c, 0x84, 0x00, 0x04, 0x44, 0x89, 0x07, 0x00, 0x00, 0x81, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_CN_CN[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x0f, 0xff, 0x3f, 0xff, 0x00, 0x08, 0x41, 0x04, 0x08, 0x00, 0x08, 0x41, 0x04, 0x08, 0x00, 0x08, 0x41, 0x04, 0x10, 0x00, 0x08, 0x41, 0x02, 0x10, 0x00, 0x0f, 0xff, 0x02, 0x20, 0x00, 0x08, 0x41, 0x01, 0x20, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0x40, 0x01, 0x30, 0x00, 0x00, 0x40, 0x02, 0x08, 0x00, 0x00, 0x40, 0x0c, 0x07, 0x00, 0x00, 0x40, 0x30, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_CN_EN[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x80, 0x00, 0x1f, 0xff, 0x80, 0x80, 0x00, 0x01, 0x10, 0x3f, 0xff, 0x00, 0x00, 0x40, 0x04, 0x08, 0x00, 0x07, 0xfc, 0x04, 0x08, 0x00, 0x04, 0x44, 0x04, 0x10, 0x00, 0x04, 0x44, 0x02, 0x10, 0x00, 0x04, 0x44, 0x02, 0x20, 0x00, 0x1f, 0xff, 0x81, 0x20, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0xa0, 0x01, 0x30, 0x00, 0x01, 0x10, 0x02, 0x08, 0x00, 0x06, 0x0c, 0x0c, 0x07, 0x00, 0x18, 0x03, 0xb0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//翻转 +const unsigned char t4f[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1d, 0xc2, 0x08, 0x00, 0x05, 0x44, 0x42, 0x08, 0x00, 0x03, 0x84, 0x5f, 0xbf, 0x00, 0x0f, 0xe4, 0x44, 0x10, 0x00, 0x01, 0x15, 0x45, 0x10, 0x00, 0x05, 0x4c, 0xc9, 0x7f, 0x80, 0x09, 0x24, 0x4f, 0x90, 0x00, 0x07, 0xc4, 0xc1, 0x10, 0x00, 0x05, 0x4d, 0x41, 0x3f, 0x00, 0x05, 0x54, 0x43, 0x81, 0x00, 0x07, 0xc4, 0x4d, 0x02, 0x00, 0x05, 0x44, 0x41, 0x14, 0x00, 0x05, 0x55, 0x41, 0x08, 0x00, 0x07, 0xc8, 0x81, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//保存 +const unsigned char t_save[] PROGMEM = { 0x02, 0xfe, 0x01, 0x00, 0x00, 0x02, 0x82, 0x3f, 0xff, 0x00, 0x04, 0x82, 0x02, 0x00, 0x00, 0x04, 0xfe, 0x02, 0x00, 0x00, 0x0c, 0x10, 0x04, 0xfc, 0x00, 0x14, 0x10, 0x04, 0x08, 0x00, 0x05, 0xff, 0x8c, 0x10, 0x00, 0x04, 0x10, 0x14, 0x10, 0x00, 0x04, 0x38, 0x25, 0xff, 0x00, 0x04, 0x34, 0x04, 0x10, 0x00, 0x04, 0x52, 0x04, 0x10, 0x00, 0x04, 0x91, 0x84, 0x10, 0x00, 0x05, 0x10, 0x04, 0x50, 0x00, 0x04, 0x10, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char *CN_table[] = { + t0, t1, t2, t3, t4, t5, t7, t6, Back, //0 + t0, t1_1, t1_2, t1_3, t1_4, t_save, //1 + t2_0, t2_1, t2_2, t_save, //2 + t2_1, t3_1, t2_2, t_save,//3 + t_4, t_PID,//4 + t5_0, t5_1,//5 + t_off, t_on,//6 + t_NO, t_OK,//7 + t_CN_CN, t_CN_EN,//8 + t_NO, t_OK,//9 + t5_3, t4f, t_save, //10 +}; + +bool lastbutton; +#include //注意 这里使用被阉割的图形库,只有绘图功能,并非通用的版本 +Arduboy2 arduboy; + +#include +#include +#include + +// Firmware version +#define VERSION "v1.6L1" + +// Type of rotary encoder +#define ROTARY_TYPE 1 // 0: 2 increments/step; 1: 4 increments/step + +// Pins +#define SENSOR_PIN A0 // temperature sense +#define VIN_PIN A1 // input voltage sense +#define BUZZER_PIN 5 // buzzer +#define BUTTON_PIN 6 // rotary encoder switch +#define ROTARY_1_PIN 7 // rotary encoder 1 +#define ROTARY_2_PIN 8 // rotary encoder 2 +#define CONTROL_PIN 9 // heater MOSFET PWM control +#define SWITCH_PIN 10 // handle vibration switch + +// Default temperature control values (recommended soldering temperature: 300-380°C) +#define TEMP_MIN 50 // min selectable temperature +#define TEMP_MAX 400 // max selectable temperature +#define TEMP_DEFAULT 320 // default start setpoint +#define TEMP_SLEEP 150 // temperature in sleep mode +#define TEMP_BOOST 60 // temperature increase in boost mode +#define TEMP_STEP 10 // rotary encoder temp change steps + +// Default tip temperature calibration values +#define TEMP200 216 // temperature at ADC = 200 +#define TEMP280 308 // temperature at ADC = 280 +#define TEMP360 390 // temperature at ADC = 360 +#define TEMPCHP 30 // chip temperature while calibration +#define TIPMAX 8 // max number of tips +#define TIPNAMELENGTH 6 // max length of tip names (including termination) +#define TIPNAME "BC1.5" // default tip name + +// Default timer values (0 = disabled) +#define TIME2SLEEP 5 // time to enter sleep mode in minutes +#define TIME2OFF 15 // time to shut off heater in minutes +#define TIMEOFBOOST 40 // time to stay in boost mode in seconds + +// Control values +#define TIME2SETTLE 950 // time in microseconds to allow OpAmp output to settle +#define SMOOTHIE 0.05 // OpAmp output smooth factor (1=no smoothing; 0.05 default) +#define PID_ENABLE true // enable PID control +#define BEEP_ENABLE true // enable/disable buzzer +#define MAINSCREEN 1 // type of main screen (0: big numbers; 1: more infos) + +// EEPROM identifier +#define EEPROM_IDENT 0x08FF // to identify if EEPROM was written by this program + +//Beep +#define SetBeepCoolTime 200 +unsigned long BeepCoolTime; + +// Define the aggressive and conservative PID tuning parameters +double aggKp = 11, aggKi = 0.5, aggKd = 1; +double consKp = 11, consKi = 3, consKd = 5; + +// Default values that can be changed by the user and stored in the EEPROM +uint16_t DefaultTemp = TEMP_DEFAULT; +uint16_t SleepTemp = TEMP_SLEEP; +uint8_t BoostTemp = TEMP_BOOST; +uint8_t time2sleep = TIME2SLEEP; +uint8_t time2off = TIME2OFF; +uint8_t timeOfBoost = TIMEOFBOOST; +uint8_t MainScrType = MAINSCREEN; +bool PIDenable = PID_ENABLE; +bool beepEnable = BEEP_ENABLE; +// Default values for tips +uint16_t CalTemp[TIPMAX][4] = {TEMP200, TEMP280, TEMP360, TEMPCHP}; +char TipName[TIPMAX][TIPNAMELENGTH] = {TIPNAME}; +uint8_t CurrentTip = 0; +uint8_t NumberOfTips = 1; + +// Menu items +/* + 这个可以选择进行界面美化 + const char *DeleteMessage[] = { "Warning", "You cannot", "delete your", "last tip!" }; + const char *MaxTipMessage[] = { "Warning", "You reached", "maximum number", "of tips!" }; +*/ +// Variables for pin change interrupt +volatile uint8_t a0, b0, c0, d0; +volatile bool ab0; +volatile int count, countMin, countMax, countStep; +volatile bool handleMoved; + +// Variables for temperature control +uint16_t SetTemp, ShowTemp, gap, Step; +double Input, Output, Setpoint, RawTemp, CurrentTemp, ChipTemp; + +// Variables for voltage readings +uint16_t Vcc, Vin; + +// State variables +bool inSleepMode = false; +bool inOffMode = false; +bool inBoostMode = false; +bool inCalibMode = false; +bool isWorky = true; +bool beepIfWorky = true; +bool TipIsPresent = true; +bool FlipState = false; +// Timing variables +uint32_t sleepmillis; +uint32_t boostmillis; +uint32_t buttonmillis; +uint8_t goneMinutes; +uint8_t goneSeconds; +uint8_t SensorCounter = 255; +//串口助手 +int x, y, a, b; +//欠压报警 +byte UnderVoltage = 0; +// Control variables +uint16_t time2settle = 300; + +//模拟数字滚轮 Numerical scrolling effect +String value; +int LastValue[3]; +float SlidingAnimationY[3]; + +// Specify the links and initial PID tuning parameters +PID ctrl(&Input, &Output, &Setpoint, aggKp, aggKi, aggKd, REVERSE); + + + +//LANG 语言支持 +/* 0 - 中文 CHINESE + 1 - 英文 ENGLISH +*/ +byte LANG = 0; +void Flip(bool Fmode) { + arduboy.flipVertical(Fmode); + arduboy.flipHorizontal(Fmode); +} +void setup() { + arduboy.begin(); + arduboy.setFrameRate(30); + + //Serial.begin(115200); + // set the pin modes + pinMode(SENSOR_PIN, INPUT); + pinMode(VIN_PIN, INPUT); + pinMode(BUZZER_PIN, OUTPUT); + pinMode(CONTROL_PIN, OUTPUT); + pinMode(ROTARY_1_PIN, INPUT_PULLUP); + pinMode(ROTARY_2_PIN, INPUT_PULLUP); + pinMode(BUTTON_PIN, INPUT_PULLUP); + pinMode(SWITCH_PIN, INPUT_PULLUP); + + analogWrite(CONTROL_PIN, 255); // this shuts off the heater + digitalWrite(BUZZER_PIN, LOW); // must be LOW when buzzer not in use + + // setup ADC + ADCSRA |= bit (ADPS0) | bit (ADPS1) | bit (ADPS2); // set ADC prescaler to 128 + ADCSRA |= bit (ADIE); // enable ADC interrupt + interrupts (); // enable global interrupts + + // setup pin change interrupt for rotary encoder + PCMSK0 = bit (PCINT0); // Configure pin change interrupt on Pin8 + PCICR = bit (PCIE0); // Enable pin change interrupt + PCIFR = bit (PCIF0); // Clear interrupt flag + + + // get default values from EEPROM + getEEPROM(); + //设置屏幕反转状态 + Flip(FlipState); + // read supply voltages in mV + Vcc = getVCC(); Vin = getVIN(); + + // read and set current iron temperature + SetTemp = DefaultTemp; + RawTemp = denoiseAnalog(SENSOR_PIN); + ChipTemp = getChipTemp(); + calculateTemp(); + + // turn on heater if iron temperature is well below setpoint + if ((CurrentTemp + 20) < DefaultTemp) analogWrite(CONTROL_PIN, 0); + + // tell the PID to range between 0 and the full window size + ctrl.SetOutputLimits(0, 255); + + // start PID + ctrl.SetMode(AUTOMATIC); + + // set initial rotary encoder values + a0 = PINB & 1; b0 = PIND >> 7 & 1; ab0 = (a0 == b0); + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, DefaultTemp); + + // reset sleep timer + sleepmillis = millis(); + + // long beep for setup completion + beep(); beep(); + + +} + + +void loop() { + //HelpMeSerialer(); + ROTARYCheck(); // check rotary encoder (temp/boost setting, enter setup menu) + SLEEPCheck(); // check and activate/deactivate sleep modes + SENSORCheck(); // reads temperature and vibration switch of the iron + Thermostat(); // heater control + MainScreen(); // updates the main page on the OLED + //beep(0); +} + + + + +// check rotary encoder; set temperature, toggle boost mode, enter setup menu accordingly +void ROTARYCheck() { + // set working temperature according to rotary encoder value + SetTemp = getRotary(); + + // check rotary encoder switch + uint8_t c = digitalRead(BUTTON_PIN); + if ( !c && c0 ) { + beep(); + buttonmillis = millis(); + while ( (!digitalRead(BUTTON_PIN)) && ((millis() - buttonmillis) < 500) ); + if ((millis() - buttonmillis) >= 500) SetupScreen(); + else { + inBoostMode = !inBoostMode; + if (inBoostMode) boostmillis = millis(); + handleMoved = true; + } + } + c0 = c; + + // check timer when in boost mode + if (inBoostMode && timeOfBoost) { + goneSeconds = (millis() - boostmillis) / 1000; + if (goneSeconds >= timeOfBoost) { + inBoostMode = false; // stop boost mode + beep(); // beep if boost mode is over + beepIfWorky = true; // beep again when working temperature is reached + } + } +} + + +// check and activate/deactivate sleep modes +void SLEEPCheck() { + if (handleMoved) { // if handle was moved + if (inSleepMode) { // in sleep or off mode? + if ((CurrentTemp + 20) < SetTemp) // if temp is well below setpoint + analogWrite(CONTROL_PIN, 0); // then start the heater right now + beep(); // beep on wake-up + beepIfWorky = true; // beep again when working temperature is reached + } + handleMoved = false; // reset handleMoved flag + inSleepMode = false; // reset sleep flag + inOffMode = false; // reset off flag + sleepmillis = millis(); // reset sleep timer + } + + // check time passed since the handle was moved + goneMinutes = (millis() - sleepmillis) / 60000; + if ( (!inSleepMode) && (time2sleep > 0) && (goneMinutes >= time2sleep) ) { + inSleepMode = true; + beep(); + } + if ( (!inOffMode) && (time2off > 0) && (goneMinutes >= time2off ) ) { + inOffMode = true; + beep(); + } +} + + +// reads temperature, vibration switch and supply voltages +void SENSORCheck() { + analogWrite(CONTROL_PIN, 255); // shut off heater in order to measure temperature + delayMicroseconds(time2settle); // wait for voltage to settle + + uint16_t temp = denoiseAnalog(SENSOR_PIN); // read ADC value for temperature + uint8_t d = digitalRead(SWITCH_PIN); // check handle vibration switch + if (d != d0) { + handleMoved = true; // set flag if handle was moved + d0 = d; + } + if (! SensorCounter--) Vin = getVIN(); // get Vin every now and then + + analogWrite(CONTROL_PIN, Output); // turn on again heater + + RawTemp += (temp - RawTemp) * SMOOTHIE; // stabilize ADC temperature reading + calculateTemp(); + + // stabilize displayed temperature when around setpoint + if ((ShowTemp != Setpoint) || (abs(ShowTemp - CurrentTemp) > 5)) ShowTemp = CurrentTemp; + + // set state variable if temperature is in working range; beep if working temperature was just reached + gap = abs(SetTemp - CurrentTemp); + if (gap < 5) { + if (!isWorky && beepIfWorky) beep(); + isWorky = true; + beepIfWorky = false; + } + else isWorky = false; + // checks if tip is present or currently inserted + if (ShowTemp > 500) TipIsPresent = false; // tip removed ? + if (!TipIsPresent && (ShowTemp < 500)) { // new tip inserted ? + analogWrite(CONTROL_PIN, 255); // shut off heater + beep(); // beep for info + TipIsPresent = true; // tip is present now + ChangeTipScreen(); // show tip selection screen + updateEEPROM(); // update setting in EEPROM + handleMoved = true; // reset all timers + RawTemp = denoiseAnalog(SENSOR_PIN); // restart temp smooth algorithm + c0 = LOW; // switch must be released + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, SetTemp); // reset rotary encoder + } +} + + +// calculates real temperature value according to ADC reading and calibration values +void calculateTemp() { + if (RawTemp < 200) CurrentTemp = map (RawTemp, 0, 200, 21, CalTemp[CurrentTip][0]); + else if (RawTemp < 280) CurrentTemp = map (RawTemp, 200, 280, CalTemp[CurrentTip][0], CalTemp[CurrentTip][1]); + else CurrentTemp = map (RawTemp, 280, 360, CalTemp[CurrentTip][1], CalTemp[CurrentTip][2]); +} + + +//调温 +void Thermostat() { + // define Setpoint acoording to current working mode + if (inOffMode) Setpoint = 0; + else if (inSleepMode) Setpoint = SleepTemp; + else if (inBoostMode) Setpoint = SetTemp + BoostTemp; + else Setpoint = SetTemp; + + // control the heater (PID or direct) + gap = abs(Setpoint - CurrentTemp); + if (PIDenable) { + Input = CurrentTemp; + if (gap < 30) ctrl.SetTunings(consKp, consKi, consKd); + else ctrl.SetTunings(aggKp, aggKi, aggKd); + ctrl.Compute(); + } else { + // turn on heater if current temperature is below setpoint + if ((CurrentTemp + 0.5) < Setpoint) Output = 0; else Output = 255; + } + analogWrite(CONTROL_PIN, Output); // set heater PWM +} + + +// creates a short beep on the buzzer +void beep() { + /* + if (beepEnable) { + if (BeepCoolTime + SetBeepCoolTime < millis()) { + if (state) BeepCoolTime = millis(); + analogWrite(BUZZER_PIN, 0); + } else analogWrite(BUZZER_PIN, 127); + } else analogWrite(BUZZER_PIN, 0); + */ + //体谅一下,没内存了,只能用原始的办法驱动无源蜂鸣器,否则我也不想牺牲宝贵响应资源换内存 + if (beepEnable) { + for (uint8_t i = 0; i < 255; i++) { + digitalWrite(BUZZER_PIN, HIGH); + delayMicroseconds(125); + digitalWrite(BUZZER_PIN, LOW); + delayMicroseconds(125); + } + } +} + +//设置旋转编码器的起始值 +// sets start values for rotary encoder +void setRotary(int rmin, int rmax, int rstep, int rvalue) { + countMin = rmin << ROTARY_TYPE; + countMax = rmax << ROTARY_TYPE; + countStep = rstep; + count = rvalue << ROTARY_TYPE; +} + + +// reads current rotary encoder value +int getRotary() { + return (count >> ROTARY_TYPE); +} + + +// reads user settings from EEPROM; if EEPROM values are invalid, write defaults +void getEEPROM() { + uint16_t identifier = (EEPROM.read(0) << 8) | EEPROM.read(1); + if (identifier == EEPROM_IDENT) { + DefaultTemp = (EEPROM.read(2) << 8) | EEPROM.read(3); + SleepTemp = (EEPROM.read(4) << 8) | EEPROM.read(5); + BoostTemp = EEPROM.read(6); + time2sleep = EEPROM.read(7); + time2off = EEPROM.read(8); + timeOfBoost = EEPROM.read(9); + MainScrType = EEPROM.read(10); + PIDenable = EEPROM.read(11); + beepEnable = EEPROM.read(12); + CurrentTip = EEPROM.read(13); + NumberOfTips = EEPROM.read(14); + LANG = EEPROM.read(15); + FlipState = EEPROM.read(16); + UnderVoltage = EEPROM.read(17); + uint8_t i, j; + uint16_t counter = 18; + for (i = 0; i < NumberOfTips; i++) { + for (j = 0; j < TIPNAMELENGTH; j++) { + TipName[i][j] = EEPROM.read(counter++); + } + for (j = 0; j < 4; j++) { + CalTemp[i][j] = EEPROM.read(counter++) << 8; + CalTemp[i][j] |= EEPROM.read(counter++); + } + } + } + else { + EEPROM.update(0, EEPROM_IDENT >> 8); EEPROM.update(1, EEPROM_IDENT & 0xFF); + updateEEPROM(); + } +} + + +// writes user settings to EEPROM using updade function to minimize write cycles +void updateEEPROM() { + EEPROM.update( 2, DefaultTemp >> 8); + EEPROM.update( 3, DefaultTemp & 0xFF); + EEPROM.update( 4, SleepTemp >> 8); + EEPROM.update( 5, SleepTemp & 0xFF); + EEPROM.update( 6, BoostTemp); + EEPROM.update( 7, time2sleep); + EEPROM.update( 8, time2off); + EEPROM.update( 9, timeOfBoost); + EEPROM.update(10, MainScrType); + EEPROM.update(11, PIDenable); + EEPROM.update(12, beepEnable); + EEPROM.update(13, CurrentTip); + EEPROM.update(14, NumberOfTips); + EEPROM.update(15, LANG); + EEPROM.update(16, FlipState); + EEPROM.update(17, UnderVoltage); + uint8_t i, j; + uint16_t counter = 18; + for (i = 0; i < NumberOfTips; i++) { + for (j = 0; j < TIPNAMELENGTH; j++) EEPROM.update(counter++, TipName[i][j]); + for (j = 0; j < 4; j++) { + EEPROM.update(counter++, CalTemp[i][j] >> 8); + EEPROM.update(counter++, CalTemp[i][j] & 0xFF); + } + } +} +//此片段用于DEBUG +void HelpMeSerialer() { + //串口助手 + if (Serial.available()) { + char TmpChar = Serial.read(); + switch (TmpChar) { + case 'x': x = Serial.parseInt(); + case 'y': y = Serial.parseInt(); + case 'a': a = Serial.parseInt(); + case 'b': b = Serial.parseInt(); + } + } + /* + Serial.println(String("X ->") + x); + Serial.println(String("Y ->") + y); + Serial.println(String("A ->") + a); + Serial.println(String("B ->") + b); + */ +} +// draws the main screen +void MainScreen() { + if (!(arduboy.nextFrame())) //帧率锁 + return; + byte SysState; + if (MainScrType) { + arduboy.clear(); + //详细信息页 + arduboy.fillRect(0, 0, 128, 64, 1); //白底 + arduboy.setTextSize(1); + SetTextColor(0); + //预设名 + arduboy.drawSlowXYBitmap(0, 0, Tag, 16, 16, 0); + arduboy.setCursor(19, 4); arduboy.print(TipName[CurrentTip]); + //状态显示 + if (ShowTemp > 500) SysState = 0; + else if (inOffMode) SysState = 1; + else if (inSleepMode) SysState = 2; + else if (inBoostMode) SysState = 3; + else if (isWorky) SysState = 4; + else if (Output < 180) SysState = 5; + else SysState = 6; + //显示状态 + arduboy.setCursor(53, 1); + arduboy.setTextSize(2); + switch (LANG) { + case 0: arduboy.drawSlowXYBitmap(80, 1, S_table[SysState], 28, 14, 0); break; //中文 Chinese + default: //英文 English + switch (SysState) { + case 1: arduboy.print(F("OFF")); break; + case 2: arduboy.print(F("SLEEP")); break; + case 3: arduboy.print(F("BOOST")); break; + case 4: arduboy.print(F("WORKY")); break; + case 5: arduboy.print(F("HEAT")); break; + case 6: arduboy.print(F("HOLD")); break; + default: arduboy.print(F("ERROR")); break; + } break; + } + arduboy.drawSlowXYBitmap(112, 0, C_table[SysState], 16, 16, 0); + arduboy.setTextSize(1); + //芯片 + //R1 + if (getChipTemp() >80 && ((millis()*4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(0, 16, Chip, 16, 16, 0); + + //R2 + if ((float)Vin / 100 < UnderVoltage && ((millis()*4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(0, 32, Lightning, 16, 16, 0); + //R3 + arduboy.setCursor(19, 16); arduboy.print(getChipTemp(), 1); arduboy.print((char)248); arduboy.print(F("C")); //芯片温度 + arduboy.setCursor(19, 24); arduboy.print((float)getVCC() / 1000, 2); arduboy.print(F("V")); //芯片电压 + arduboy.setCursor(19, 32); arduboy.print((float)Vin / 1000, 1); arduboy.print(F("V")); //输入电压 + arduboy.setCursor(19, 40); arduboy.print(F(VERSION)); //固件 + //显示探头温度 + arduboy.setCursor(57, 18); + arduboy.setTextSize(4); + if (ShowTemp > 500) arduboy.print(F("000")); else arduboy.print(ShowTemp); + arduboy.drawRect(55, 16, 72, 32, 0); + + DrawStatusBar(0); + arduboy.display(); + } else { + arduboy.clear(); + if (getChipTemp() >80 && ((millis()*4) / 1000) % 2) beep(); + if ((float)Vin / 100 < UnderVoltage && ((millis()*4) / 1000) % 2) beep(); + if (ShowTemp > 500) DisplayNum(999); else DisplayNum(ShowTemp); + arduboy.fillRect(0, 48, 128, 3, 0); + DrawStatusBar(1); + arduboy.display(); + } + +} + +void DrawStatusBar(bool color) { + SetTextColor(color); + arduboy.setTextSize(1); + //温度条 + //框 + arduboy.drawRect(1, 49, 102, 14, color); + //条 + if (ShowTemp <= 500) arduboy.fillRect(1, 49, map(ShowTemp, 0, 500, 2, 102), 14, color); + //指示部分 + arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 2, 50, 3, 13, color); + //先来个白底 + arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 3, 60, 5, 4, color); + arduboy.drawLine(map(Setpoint, 0, 500, 2, 102) - 1, 60, map(Setpoint, 0, 500, 2, 102) - 1, 49, !color); + + //画指示针 + arduboy.drawSlowXYBitmap(map(Setpoint, 0, 500, 2, 102) - 3, 59, Pointer, 5, 4, !color); + + //功率条 + arduboy.drawRect(104, 49, 23, 14, color); + arduboy.fillRect(104, 49, map(Output, 255, 0, 0, 23), 14, color); + + SetTextColor(!color); + //////////////进入反色//////////////////////////////// + arduboy.setCursor(2, 55); arduboy.print(Setpoint, 0); arduboy.print((char)248); arduboy.print(F("C")); //探头预设温度 + arduboy.setCursor(105, 55); arduboy.print(map(Output, 255, 0, 0, 100)); arduboy.print(F("%")); //功率百分比 + SetTextColor(color); +} + +//设置画笔颜色 +void SetTextColor(bool color) { + arduboy.setTextBackground(!color); + arduboy.setTextColor(color); +} +// setup screen +void SetupScreen() { + analogWrite(CONTROL_PIN, 255); // shut off heater + beep(); + uint16_t SaveSetTemp = SetTemp; + uint8_t selection = 0; + bool repeat = true; + + while (repeat) { + MenuLevel = 0; //默认打开主菜单 + selection = MenuScreen(selection); + switch (selection) { + case 0: MenuLevel = 1; TipScreen(); repeat = false; break; + case 1: MenuLevel = 2; TempScreen(); break; + case 2: MenuLevel = 3; TimerScreen(); break; + case 3: MenuLevel = 4; PIDenable = MenuScreen(PIDenable); break; + case 4: MenuLevel = 10; ScreenSet(); break; + case 5: MenuLevel = 6; beepEnable = MenuScreen(beepEnable); break; + case 7: MenuLevel = 8; LANG = MenuScreen(LANG); break; + case 6: UnderVoltageSet(); break; + default: repeat = false; break; + } + } + updateEEPROM(); + handleMoved = true; + SetTemp = SaveSetTemp; + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, SetTemp); +} + + +//显示设置菜单 +// tip settings screen +void ScreenSet() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + MenuLevel = 10; + selection = MenuScreen(selection); + switch (selection) { + case 0: MenuLevel = 5; MainScrType = MenuScreen(MainScrType); break; + case 1: MenuLevel = 9; FlipState = MenuScreen(FlipState); break; + default: repeat = false; break; + } + Flip(FlipState); //设置屏幕反转状态 + } + updateEEPROM(); +} + +//预设设置菜单 +// tip settings screen +void TipScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + MenuLevel = 1; + selection = MenuScreen(selection); + switch (selection) { + case 0: ChangeTipScreen(); break; + case 1: CalibrationScreen(); break; + case 2: InputNameScreen(); break; + case 3: DeleteTipScreen(); break; + case 4: AddTipScreen(); break; + default: repeat = false; break; + } + } +} + +//温控设置菜单 +// temperature settings screen +void TempScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + selection = MenuScreen(selection); + switch (selection) { + case 0: setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, DefaultTemp); + DefaultTemp = InputScreen(); break; + case 1: setRotary(20, 200, TEMP_STEP, SleepTemp); + SleepTemp = InputScreen(); break; + case 2: setRotary(10, 100, TEMP_STEP, BoostTemp); + BoostTemp = InputScreen(); break; + default: repeat = false; break; + } + } + updateEEPROM(); +} + +//定时器设置菜单 +// timer settings screen +void TimerScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + selection = MenuScreen(selection); + switch (selection) { + case 0: setRotary(0, 30, 1, time2sleep); + time2sleep = InputScreen(); break; + case 1: setRotary(0, 60, 5, time2off); + time2off = InputScreen(); break; + case 2: setRotary(0, 180, 10, timeOfBoost); + timeOfBoost = InputScreen(); break; + default: repeat = false; break; + } + } + updateEEPROM(); +} +//英语支持 +void Print_EN(byte i) { + char buffer[10]; + strcpy_P(buffer, (char *)pgm_read_word(&(EN_table[i]))); + arduboy.print(buffer); +} +//菜单界面 +// menu screen +uint8_t MenuScreen(uint8_t selected) { + int SlidingAnimationX; + uint8_t lastselected = selected; + setRotary(0, Menu_table[MenuLevel] - 1, 1, selected); + lastbutton = (!digitalRead(BUTTON_PIN)); + SetTextColor(1); + do { + selected = getRotary(); + //非线性滑动动画 + SlidingAnimationX += (selected - lastselected) * 56; + if (SlidingAnimationX != 0) SlidingAnimationX += 0.5 * (-SlidingAnimationX); + lastselected = selected; + arduboy.clear(); + //绘制图标 如果有指定的话 + for (byte i = 0; i < 5; i++) if (selected - 2 + i >= 0 && selected - 2 + i < Menu_table[MenuLevel]) arduboy.drawSlowXYBitmap(-72 + i * 56 + SlidingAnimationX, 0, Ico_table[selected - 2 + i + QueryMenuObject()], 48, 48, 1); + + if (LANG == 0) arduboy.drawSlowXYBitmap(48, 48, CN_table[selected + QueryMenuObject()], 36, 16, 1); else { + arduboy.setCursor(48, 49); + arduboy.setTextSize(1); + Print_EN(selected + QueryMenuObject()); + } + + + arduboy.display(); + CheckLastButton(); + //beep(0); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + return selected; +} +//检查按键 +void CheckLastButton() { + if (lastbutton && digitalRead(BUTTON_PIN)) { + delay(10); + lastbutton = false; + } +} +//返回对应层数的对象数 +byte QueryMenuObject() { + int SUM = 0; + for (int i = 0; i < (MenuLevel); i++) SUM += Menu_table[i]; + return SUM; +} +//信息窗 +/* + void MessageScreen(const char *Items[], uint8_t numberOfItems) { + lastbutton = (!digitalRead(BUTTON_PIN)); + + //u8g.setFont(//u8g_font_9x15); + //u8g.setFontPosTop(); + for (uint8_t i = 0; i < numberOfItems; i++) //u8g.drawStr( 0, i * 16, Items[i]); + + do { + CheckLastButton(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + } +*/ +/* + 好看是好看,但是浪费内存 + int wav(byte wavi, int num) { + return (wavi + byte(millis() / 100)) * (float(float(num - countMin) / float(countMax - countMin)) - 0.5) * 5; + } +*/ + +//模拟数字滚轮 Numerical scrolling effect +void DisplayNum(int Num) { + + arduboy.setTextSize(6); + SetTextColor(0); + //数字滚轮 + for (byte i = 0; i < 3; i++) LastValue[i] = byte(value[i]); + value = Num; + for (byte i = 0; i < 3; i++) { + SlidingAnimationY[i] += (byte(value[i]) - LastValue[i]) * 50; + if (SlidingAnimationY[i] != 0) SlidingAnimationY[i] += 0.8 * (-SlidingAnimationY[i]); + arduboy.fillRect(0 + i * 44, 0, 38, 50, 1); //白底 + for (int ii = -1; ii < 2; ii++) { + arduboy.setCursor(4 + i * 44, 4 - SlidingAnimationY[i] + ii * 50); + arduboy.print(LastValue[i] + ii - 48); + } + } + //刻度标 + arduboy.fillRect(0, 0, 128, 2, 0); //上遮罩层 + arduboy.fillRect(0, 51, 128, 13, 0); //下遮罩层 +} + +//数值输入界面 +// input value screen +uint16_t InputScreen() { + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + arduboy.clear(); + DisplayNum(getRotary()); + arduboy.display(); + CheckLastButton(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + return value.toInt(); +} + +//欠压报警设置 +// information display screen +void UnderVoltageSet() { + setRotary(0, 250, 1, UnderVoltage); + UnderVoltage = InputScreen(); + beep(); +} + +//更换预设界面 +// change tip screen +void ChangeTipScreen() { + uint8_t selected = CurrentTip; + uint8_t lastselected = selected; + int8_t arrow = 0; + if (selected) arrow = 1; + setRotary(0, NumberOfTips - 1, 1, selected); + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + //beep(0); + arduboy.clear(); + selected = getRotary(); + arrow = constrain(arrow + selected - lastselected, 0, 2); + lastselected = selected; + SetTextColor(0); + arduboy.setTextSize(2); + arduboy.setCursor(0, 0); arduboy.print(F("Select Tip")); + SetTextColor(1); + arduboy.setCursor(0, 16 * (arrow + 1)); arduboy.print(F(">")); + for (uint8_t i = 0; i < 3; i++) { + uint8_t drawnumber = selected + i - arrow; + if (drawnumber < NumberOfTips) { + arduboy.setCursor(12, 16 * (i + 1)); arduboy.print(TipName[selected + i - arrow]); + } + } + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + + beep(); + CurrentTip = selected; +} + +//温度校准界面 +// temperature calibration screen +void CalibrationScreen() { + uint16_t CalTempNew[4]; + for (uint8_t CalStep = 0; CalStep < 3; CalStep++) { + SetTemp = CalTemp[CurrentTip][CalStep]; + setRotary(100, 500, 1, SetTemp); + beepIfWorky = true; + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + arduboy.clear(); + arduboy.setTextSize(2); + SENSORCheck(); // reads temperature and vibration switch of the iron + Thermostat(); // heater control + arduboy.setCursor(0, 0); arduboy.print(F("Step: ")); arduboy.print(CalStep + 1); arduboy.print("/3"); + if (isWorky) { + arduboy.setCursor(0, 16); arduboy.print(F("Set measured")); + arduboy.setCursor(0, 32); arduboy.print(F("temp: ")); arduboy.print(getRotary()); + } else { + arduboy.setCursor(0, 16); arduboy.print(F("ADC: ")); arduboy.print(uint16_t(RawTemp)); + arduboy.setCursor(0, 32); arduboy.print(F("Please wait")); + } + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + + CalTempNew[CalStep] = getRotary(); + beep(); delay (10); + } + + analogWrite(CONTROL_PIN, 255); // shut off heater + delayMicroseconds(time2settle); // wait for voltage to settle + CalTempNew[3] = getChipTemp(); // read chip temperature + if ((CalTempNew[0] + 30 < CalTempNew[1]) && (CalTempNew[1] + 30 < CalTempNew[2])) { + MenuLevel = 7; + if (MenuScreen(0)) { + for (uint8_t i = 0; i < 4; i++) CalTemp[CurrentTip][i] = CalTempNew[i]; + } + } +} + +//命名界面 文本输入界面 +// input tip name screen +void InputNameScreen() { + uint8_t value; + for (uint8_t digit = 0; digit < (TIPNAMELENGTH - 1); digit++) { + lastbutton = (!digitalRead(BUTTON_PIN)); + setRotary(31, 96, 1, 65); + do { + value = getRotary(); + if (value == 31) { + value = 95; + setRotary(31, 96, 1, 95); + } + if (value == 96) { + value = 32; + setRotary(31, 96, 1, 32); + } + //arduboy.setCursor(0, 0);arduboy.print(); + arduboy.clear(); + arduboy.setTextSize(2); + arduboy.setCursor(16 * digit, 48); arduboy.print(char(94)); + arduboy.setCursor(0, 32); + for (uint8_t i = 0; i < digit; i++) arduboy.print(TipName[CurrentTip][i]); + arduboy.setCursor(16 * digit, 32); arduboy.print(char(value)); + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + TipName[CurrentTip][digit] = value; + beep(); delay (10); + } + TipName[CurrentTip][TIPNAMELENGTH - 1] = 0; + return value; +} + + +// delete tip screen +void DeleteTipScreen() { + MenuLevel = 7; + if (NumberOfTips == 1) { + //MessageScreen(DeleteMessage, sizeof(DeleteMessage)); + } + else if (MenuScreen(0)) { + if (CurrentTip == (NumberOfTips - 1)) { + CurrentTip--; + } + else { + for (uint8_t i = CurrentTip; i < (NumberOfTips - 1); i++) { + for (uint8_t j = 0; j < TIPNAMELENGTH; j++) TipName[i][j] = TipName[i + 1][j]; + for (uint8_t j = 0; j < 4; j++) CalTemp[i][j] = CalTemp[i + 1][j]; + } + } + NumberOfTips--; + } +} + + +// add new tip screen +void AddTipScreen() { + if (NumberOfTips < TIPMAX) { + CurrentTip = NumberOfTips++; InputNameScreen(); + CalTemp[CurrentTip][0] = TEMP200; CalTemp[CurrentTip][1] = TEMP280; + CalTemp[CurrentTip][2] = TEMP360; CalTemp[CurrentTip][3] = TEMPCHP; + } //MessageScreen(MaxTipMessage, sizeof(MaxTipMessage)); 信息窗 +} + + +// average several ADC readings in sleep mode to denoise +uint16_t denoiseAnalog (byte port) { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + if (port >= A0) port -= A0; // set port and + ADMUX = (0x0F & port) | bit(REFS0); // reference to AVcc + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 32; i++) { // get 32 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + return (result >> 5); // devide by 32 and return value +} + + +// get internal temperature by reading ADC channel 8 against 1.1V reference +double getChipTemp() { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + ADMUX = bit (REFS1) | bit (REFS0) | bit (MUX3); // set reference and mux + delay(20); // wait for voltages to settle + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 32; i++) { // get 32 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + result >>= 2; // devide by 4 + return ((result - 2594) / 9.76); // calculate internal temperature in degrees C +} + + +// get input voltage in mV by reading 1.1V reference against AVcc +uint16_t getVCC() { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + // set Vcc measurement against 1.1V reference + ADMUX = bit (REFS0) | bit (MUX3) | bit (MUX2) | bit (MUX1); + delay(1); // wait for voltages to settle + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 16; i++) { // get 16 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + result >>= 4; // devide by 16 + return (1125300L / result); // 1125300 = 1.1 * 1023 * 1000 +} + + +// get supply voltage in mV +uint16_t getVIN() { + long result; + result = denoiseAnalog (VIN_PIN); // read supply voltage via voltage divider + return (result * Vcc / 179.474); // 179.474 = 1023 * R13 / (R12 + R13) +} + +//ADC中断服务 +// ADC interrupt service routine +EMPTY_INTERRUPT (ADC_vect); // nothing to be done here + +//旋转编码器触发中断 +// Pin change interrupt service routine for rotary encoder +ISR (PCINT0_vect) { + uint8_t a = PINB & 1; + uint8_t b = PIND >> 7 & 1; + if (a != a0) { // A changed + a0 = a; + if (b != b0) { // B changed + b0 = b; + count = constrain(count + ((a == b) ? countStep : -countStep), countMin, countMax); + if (ROTARY_TYPE && ((a == b) != ab0)) { + count = constrain(count + ((a == b) ? countStep : -countStep), countMin, countMax);; + } + ab0 = (a == b); + handleMoved = true; + } + } +}