From 649b33d7783cf3021928534b7ae127e0a89e8807 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 21 Jun 2016 22:39:54 -0400 Subject: Renames keyboard folder to keyboards, adds couple of tmk's fixes (#432) * fixes from tmk's repo * rename keyboard to keyboards --- keyboards/planck/keymaps/unicode/Makefile | 11 + keyboards/planck/keymaps/unicode/compiled.hex | 1206 +++++++++++++++++++++++++ keyboards/planck/keymaps/unicode/keymap.c | 326 +++++++ 3 files changed, 1543 insertions(+) create mode 100644 keyboards/planck/keymaps/unicode/Makefile create mode 100644 keyboards/planck/keymaps/unicode/compiled.hex create mode 100644 keyboards/planck/keymaps/unicode/keymap.c (limited to 'keyboards/planck/keymaps/unicode') diff --git a/keyboards/planck/keymaps/unicode/Makefile b/keyboards/planck/keymaps/unicode/Makefile new file mode 100644 index 0000000000..110af7501c --- /dev/null +++ b/keyboards/planck/keymaps/unicode/Makefile @@ -0,0 +1,11 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +UNICODE_ENABLE = yes # Unicode + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/unicode/compiled.hex b/keyboards/planck/keymaps/unicode/compiled.hex new file mode 100644 index 0000000000..ad95012764 --- /dev/null +++ b/keyboards/planck/keymaps/unicode/compiled.hex @@ -0,0 +1,1206 @@ +:100000000C94B3040C94F7040C94F7040C94F704C8 +:100010000C94F7040C94F7040C94F7040C94F70474 +:100020000C94F7040C94F7040C9426100C94F8101C +:100030000C940F1E0C94F7040C94F7040C94F70422 +:100040000C94F7040C9458050C94F7040C94F704E2 +:100050000C94F7040C94771E0C94F7040C94F7049A +:100060000C94F7040C94F7040C94F7040C94F70424 +:100070000C94F7040C94F7040C94F7040C94F70414 +:100080000C94F7040C94F7040C94F7040C94F70404 +:100090000C94F7040C94F7040C94F7040C94F704F4 +:1000A0000C94F7040C94F7040C94F704BE05C605F1 +:1000B000D005D805E705F1052E062E062E062E06DC +:1000C0002E062E06FF0522062A06651187117512D7 +:1000D00087117512CC11EF11751244125712411588 +:1000E000411570157015AF15CF1525172517DA15A1 +:1000F00025178A168A16F116FA1625171F1797164E +:100100009716971697169716971697169716971687 +:100110009716971697169716971697169716A71667 +:10012000B516BC16C316CD16000000000000000076 +:10013000000000010204060A0F17202C3A4A5D71E4 +:10014000879DB3C7DAE9F5FCFFFCF5E9DAC7B39D93 +:1001500087715D4A3A2C20170F0A0604020100003D +:10016000000000000000000001080115010901194C +:100170000112010F02080215020902190212020FF0 +:10018000002B0014001A000800150017001C0018AE +:10019000000C00120013002A0029000400160007BA +:1001A0000009000A000B000D000E000F00330034A0 +:1001B00000E1001D001B00060019000500110010E1 +:1001C0000036003700380028000530E000E200E388 +:1001D0000003302C002C0004305000510052004F1E +:1001E000002B00718077806680708067806A806CE9 +:1001F00080758079803B80088029006180728073DF +:10020000807480648068806E80658069806F8027DC +:1002100080E1007A8078806380768062806B806D78 +:10022000802C802E802F8028000100E000E200E377 +:100230000003302C002C0004305000510052004FBD +:10024000002B0034003600370013001C0009000AA0 +:1002500000060015000F002A002900040012000803 +:100260000018000C0007000B0017001100160038E2 +:1002700000E100330014000D000E001B000500100B +:10028000001A0019001D0028000530E000E200E31C +:100290000003302C002C0004305000510052004F5D +:1002A0000035021E021F0220022102220223022424 +:1002B000022502260227022A004C003A003B003C9D +:1002C000003D003E003F002D022E022F0230023181 +:1002D000020100400041004200430044004500018B +:1002E0000001000100010001000100010001000106 +:1002F000000100010001000100AB00AA00A900AE4E +:100300000035001E001F00200021002200230024D1 +:10031000002500260027002A004C003A003B003C44 +:10032000003D003E003F002D002E002F0030003128 +:10033000000100400041004200430044004500012C +:1003400000010001000100010001000100010001A5 +:10035000000100010001000100AB00AA00A900AEED +:10036000001E001E001E001E001E001E001E001E9D +:10037000001E001E001E001E00000014001A0008CF +:1003800000150017001C0018000C00120013002FAD +:10039000000E3004001600070009000A000B000DD3 +:1003A000000E000F00330034000D30000000000686 +:1003B0000019000000000011001000000000000003 +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:1007800000010000700100010001000100010001F2 +:10079000000100010001004C0001000100010015F2 +:1007A00070167013700A700030013002300C300186 +:1007B0000001001C701B70187019701D701E7001F4 +:1007C0000001000100010001000100010001000121 +:1007D0000001000100010001000100010001000111 +:1007E000002803540068006500200050006C006180 +:1007F000006E0063006B0020004B00650079006212 +:10080000006F0061007200640000002C034F007252 +:1008100000740068006F006C0069006E0065006184 +:1008200000720020004B006500790062006F0061DB +:1008300000720064007300000004030904090254FC +:1008400000030100A0FA09040000010301010009EE +:1008500021110100012240000705810308000A0957 +:100860000401000103010200092111010001224DD0 +:10087000000705820308000A0904020001030000C2 +:100880000009211101000122360007058303080039 +:100890000A1201100100000008EDFE606001000175 +:1008A00002000105010980A101850216010026B799 +:1008B000001A01002AB700751095018100C0050CCF +:1008C0000901A1018503160100269C021A01002AD4 +:1008D0009C02751095018100C005010902A1010962 +:1008E00001A10005091901290515002501950575C6 +:1008F0000181029501750381010501093009311556 +:1009000081257F95027508810609381581257F9517 +:100910000175088106050C0A38021581257F9501AD +:1009200075088106C0C005010906A101050719E087 +:1009300029E71500250195087501810295017508C3 +:100940008101050819012905950575019102950197 +:10095000750391010507190029FF150026FF009571 +:100960000675088100C011241FBECFEFDAE0DEBF9C +:10097000CDBF04B603FE24C08091E7019091E80149 +:10098000A091E901B091EA018730904BA740B04BAC +:10099000B9F41092E7011092E8011092E901109267 +:1009A000EA0114BE84B7877F84BF88E10FB6F8944C +:1009B00080936000109260000FBEE0E0F8E30995BC +:1009C00011E0A0E0B1E0ECE0FBE402C005900D9284 +:1009D000AE33B107D9F711E0AEE3B1E001C01D922B +:1009E000A73EB107E1F70E94700D0C9484250C948A +:1009F0000000089581E0089508950C94F9040C9482 +:100A0000FA040C94FC040E94FA2323E030E0281B33 +:100A10003109220F209342010895282F2F988091A9 +:100A20008000211108C0877F8093800010928D0084 +:100A300010928C001BC0886080938000233019F4D2 +:100A40008FEF9FEF0FC083E090E0821B9109880F2A +:100A5000991F2FEF3FEFA90102C0569547958A9540 +:100A6000E2F7CA0190938D0080938C000C940305EB +:100A70000E94030584E08093410110923E01089595 +:100A8000279A2F988FEF9FEF90938700809386008F +:100A90008AE08093800089E1809381000E94632333 +:100AA0000C9438050E9440056E9A769A0C94340690 +:100AB0001F920F920FB60F9211242F933F938F9393 +:100AC0009F93EF93FF93E0913F01F0914001CF019D +:100AD00001969093400180933F010090410102C034 +:100AE000F695E7950A94E2F7EF7380913E01823024 +:100AF00019F4E03251F404C0813039F4EF3329F4B1 +:100B000080916F008D7F80936F00F0E0E85DFE4F75 +:100B1000E49121E031E0E29FC001E39F900D1124B8 +:100B20000090420102C0969587950A94E2F790934F +:100B30008D0080938C00FF91EF919F918F913F9159 +:100B40002F910F900FBE0F901F901895CF93DF93AA +:100B5000EC010E94091FBE0180E090E0DF91CF917F +:100B60000C94501B462F50E04F30510508F076C0D2 +:100B7000DC01FA01EA5AFF4F0C94342512968C914D +:100B8000882309F46BC081E090E007C012968C9135 +:100B9000882309F463C082E090E00E94A6055EC04D +:100BA00012968C91882309F459C084E090E0F5CF27 +:100BB00012968C91882311F083E00EC083E00E948E +:100BC000EE1B40E164E083E00E94350847C01296C6 +:100BD0008C91882321F084E00E94CD1BF2CF84E029 +:100BE000EECF12968C91882331F085EE0E94E513AA +:100BF0000E94BA2333C085EE0E94AD142FC0129616 +:100C00008C91882359F184E00E94EE1B83E00E94BE +:100C1000EE1B80E10E94EE1B85E00E94CD1B0E942E +:100C2000F61E811102C00E94D71E0E940E1F90E086 +:100C30009093D8018093D70180688093D7010E9458 +:100C4000121F0CC012968C91882341F085E00E94FF +:100C5000EE1B04C012968C91811103C080E090E0DD +:100C6000089588E691E00895089581E008950C9430 +:100C700035060895282F882339F090E02A3010F4A3 +:100C80004D9608950697089587E290E00895AF92F3 +:100C9000BF92DF92EF92FF920F931F93CF93DF9358 +:100CA0008C01FC01C081D181CE010E94891CBE0152 +:100CB0000E941B0AEC01B8010E943706882309F440 +:100CC000C9C1F8018281882309F4BEC080914F0117 +:100CD00081111FC0C431F0E7DF0709F0B5C10E94E0 +:100CE000390681E080934F010E94411E90934E018E +:100CF00080934D01109246011092480110924701D5 +:100D000010924A011092490110924C0110924B012D +:100D1000A1C180914D0190914E010E944D1E883CD1 +:100D2000910570F480914601E82FF0E0EE0FFF1F6F +:100D3000E95BFE4FD183C0838F5F809346018AC1F8 +:100D4000C13020E8D20708F451C0F801828188231D +:100D500009F47EC05E01E894B7F8809145018130C6 +:100D600079F050F08230C1F482EE0E94E51387E5FD +:100D70000E94E51387E50EC082EE0E94E5130CC0C9 +:100D800080EE0E94E51381EE0E94E51388E10E9447 +:100D9000E51388E10E94AD148CE0E82EF12CC5012A +:100DA0000E2C02C0969587950A94E2F78F700E94E8 +:100DB0003A06D82E0E94E5138D2D0E94AD14F4E062 +:100DC000EF1AF1082CEFE2162FEFF20641F78091AF +:100DD0004501813029F010F0823041F482EE04C0E8 +:100DE00080EE0E94AD1481EE0E94AD14C43180E704 +:100DF000D80768F4C23090E7D90708F046C0C1159B +:100E0000E0E7DE0771F0C130D047A1F10CC1C33378 +:100E100020E7D20709F4D8C0C433D04709F4EBC0A7 +:100E200002C1F8018281882309F402C10E9490174F +:100E3000FFEF24E38CE0F15020408040E1F700C058 +:100E400000000E949C1E06C1C13080E8D80770F2E5 +:100E5000C43120E7D20708F0B3C0C23080E7D8071A +:100E6000A0F4C11590E7D90709F4E2C0C130D0471A +:100E700009F0D9C0F8018281882309F4D9C0809192 +:100E8000C60181608093C601E5C0F8018281882394 +:100E900009F4CEC00E94F61E811102C00E94D71E26 +:100EA0000E940E1F90E09093D8018093D701C2302A +:100EB000F0E7DF0721F48091D70181607AC0C33069 +:100EC00020E7D20721F48091D701826072C0C4303C +:100ED00080E7D80721F48091D70184606AC0C530CB +:100EE00090E7D90719F48091D70127C0C630E0E711 +:100EF000DE0721F48091D70180615BC0C730F0E745 +:100F0000DF0721F48091D701806253C0C83020E709 +:100F1000D20721F48091D70180644BC0C93080E7AB +:100F2000D80721F48091D701806843C0CA3090E788 +:100F3000D90729F48091D701846088603AC0CB300A +:100F4000E0E7DE0721F48091D7018E7F32C0CC30FC +:100F5000F0E7DF0721F48091D7018D7F2AC0CD30E3 +:100F600020E7D20721F48091D7018B7F22C0CE30B9 +:100F700080E7D80719F48091D7011AC08091D70172 +:100F8000CF3090E7D90711F48F7E13C0C031E0E76E +:100F9000DE0711F48F7D0DC0C131F0E7DF0711F4DA +:100FA0008F7B07C0C231D04711F48F7702C08B7F8F +:100FB000877F8093D7018091D7010E94121F4AC07A +:100FC000C333F0E7DF07A1F4F8018281882321F021 +:100FD0001092430182E016C080914301811106C046 +:100FE00086E20E94E51386E20E94AD1482E018C0FA +:100FF000C433D047C1F4F8018281882331F01092C4 +:10100000440180E20E94FC1425C0809144018111BA +:1010100006C087E20E94E51387E20E94AD1480E2D9 +:101020000E94031517C081E080934301809344011F +:10103000C801DF91CF911F910F91FF90EF90DF904A +:10104000BF90AF900C94FF04C130F0E8DF0708F0C8 +:1010500081CECCCE80E0DF91CF911F910F91FF9098 +:10106000EF90DF90BF90AF900895CF92DF92EF9214 +:10107000FF920F931F9301E010E020E030E0680141 +:10108000790104C0CC0CDD1CEE1CFF1C8A95D2F744 +:1010900004C0000F111F221F331F6A95D2F70C29BD +:1010A0001D292E293F29C090B101D090B201E090B6 +:1010B000B301F090B401C022D122E222F322842FA6 +:1010C000C016D106E206F30641F41F910F91FF907E +:1010D000EF90DF90CF900C94CD1B1F910F91FF905C +:1010E000EF90DF90CF900C94EE1B0C9452050C9473 +:1010F000FD042CE0729FF001112430E3839FE00D8A +:10110000F11D1124E60FF11DEE0FFF1FEF57FE4FEB +:10111000859194910E942D0A811540E5940708F06D +:1011200047C0811520E4920708F013C1883E91055D +:1011300020F5803E910508F07CC1883A910578F44D +:10114000853A910508F0A5C08130910509F471C177 +:1011500008F42EC18430910508F06BC129C18B3B86 +:10116000910508F4A1C0803C910508F421C1FC015F +:10117000EE0FFF1FEF5FFF4FE6C0811530E29307D0 +:1011800058F4811541E0940708F053C1803F910560 +:1011900008F40EC190650895811520E3920708F0C8 +:1011A000D5C0FC01FF70EE0FFF1FEF57FE4FCBC005 +:1011B000811535E5930708F043C0811544E5940790 +:1011C00008F0DEC0811522E5920708F5811531E5AA +:1011D000930708F0C1C0482F437021E030E002C0FF +:1011E000220F331F4A95E2F73C68AC0164E0569544 +:1011F00047956A95E1F74370342B8F7086958695F5 +:1012000040E2849FC0011124822B932B0895282F44 +:1012100026952695AC01437055278115934508F016 +:10122000A0C080E2289F9001112481E090E002C0DC +:10123000880F991F4A95E2F7822B932B9C6808959B +:101240008F3240E7940790F48F3120E7920708F03F +:10125000A2C0811536E5930708F497C09C0130566B +:101260002115304108F0A4C09F7093C0803320E75F +:10127000920709F497C008F492C0813340E79407BD +:1012800009F493C08233904709F092C080E093ED57 +:101290000895853A910509F48EC0863A910509F0C2 +:1012A0008DC082E890E40895883A910509F489C0D8 +:1012B000893A910509F488C08A3A910509F487C0F2 +:1012C0008B3A910509F486C08C3A910509F485C0E2 +:1012D0008D3A910509F484C0803B910509F483C0DF +:1012E0008E3A910509F482C08F3A910509F481C0C4 +:1012F000813B910509F480C0823B910509F47FC0D0 +:10130000833B910509F47EC0843B910509F47DC0BF +:10131000853B910509F47CC0863B910509F47BC0AF +:10132000873B910509F47AC0883B910509F479C09F +:10133000893B910509F478C08A3B910509F477C08F +:1013400080E094E408958591949108959927906C94 +:1013500008959F70906A0895982F8827816F906AEA +:10136000089590E2299F9001112481E090E002C04D +:10137000880F991F4A95E2F7822B932B9A6808955C +:10138000982F8827846F906A08958F719927982FD6 +:101390008827906208958F519047946D089580E05A +:1013A00091ED089580E090ED089580E092ED08952C +:1013B00080E090E0089581E890E4089583E890E467 +:1013C000089582EE94E4089589EE94E408958AEEF7 +:1013D00094E4089585EB94E4089586EB94E40895ED +:1013E00087EB94E408958CEC94E408958DEC94E4F8 +:1013F000089583E895E408958AE895E4089582E9DC +:1014000095E4089584E995E4089581E296E40895C9 +:1014100083E296E4089584E296E4089585E296E4F2 +:10142000089586E296E4089587E296E408958AE2B4 +:1014300096E4089508959CE0799FF001112490E3CB +:10144000899FE00DF11D1124E60FF11DEE0FFF1F26 +:10145000EF57FE4F8591949108958238910549F197 +:10146000B0F48133910509F458C048F489329105EC +:1014700009F44EC08A32910509F454C008958533A9 +:10148000910509F440C08933910599F00895833E90 +:10149000910529F138F4803E910591F0823E910545 +:1014A000A1F00895863E9105F9F0873E910531F14E +:1014B00008952091D70120FD3AC021FD38C008953C +:1014C0008091D70180FD35C032C08091D70182FF65 +:1014D00032C08091D70184FD30C083EE39C0809145 +:1014E000D70182FD28C0F5CF8091D70183FF27C0A7 +:1014F0008091D70184FD21C087EE2AC08091D70159 +:1015000083FD1DC0F5CF8091D70185FD1AC01BC09A +:101510008091D70185FD17C014C08091D70186FD49 +:1015200014C015C08091D70186FD11C00EC080EE99 +:101530000FC089E30DC082EE0BC080E009C086EECB +:1015400007C089E205C085E303C08AE201C081E3E8 +:1015500090E008950C940105E82FF0E0E05EFE4F66 +:101560008081E82FEF70F0E082958F7021E030E00D +:10157000A90102C0440F551F8A95E2F740A30895C0 +:101580000F931F93CF93DF93C3E0D0E001E010E00F +:10159000FE01E05EFE4F8081E82FEF70F0E021A1B8 +:1015A00082958F70A80102C0440F551F8A95E2F7FB +:1015B000CA01822B81A38C2F0E94AC0A219740F78D +:1015C0008BE090E061E070E0FC01EC5EFE4F20817A +:1015D000E22FEF70F0E042A122952F70DB0102C0F4 +:1015E000AA0FBB1F2A95E2F79D01242B22A3019786 +:1015F00058F7DF91CF911F910F9108950F931F938B +:10160000CF93DF9385B7806885BF85B7806885BF36 +:10161000C3E0D0E001E010E0FE01E05EFE4F80811B +:10162000E82FEF70F0E021A182958F70A80102C031 +:10163000440F551F8A95E2F7CA01822B81A38C2F94 +:101640000E94AC0A219740F78BE090E061E070E0E7 +:10165000FC01EC5EFE4F2081E22FEF70F0E042A132 +:1016600022952F70DB0102C0AA0FBB1F2A95E2F75B +:101670009D01242B22A3019758F7DF91CF911F9151 +:101680000F910C947508EF92FF920F931F93CF93D5 +:10169000DF9308E511E0C3E0EE24E394F12CD5E0FC +:1016A0008C2F0E94AC0A8BE090E040E050E0FC01FF +:1016B000EC5EFE4F6081E62FEF70F0E020A130E09D +:1016C00062956F7002C0359527956A95E2F720FD07 +:1016D00009C09701082E02C0220F331F0A94E2F7B7 +:1016E000422B532B019718F7F801929182918F01A9 +:1016F0008417950721F051834083D09300018C2FEC +:101700000E94AC0AC15060F68091000187FD2CC098 +:101710008150809300018F3F39F08FE99FE001975E +:10172000F1F700C0000020C0809156019091570150 +:1017300090935F0180935E018091540190915501D7 +:1017400090935D0180935C018091520190915301CF +:1017500090935B0180935A018091500190915101C7 +:1017600090935901809358010E94770881E0DF919E +:10177000CF911F910F91FF90EF900895E82FF0E027 +:10178000EE0FFF1FE85AFE4F808191810895089562 +:101790000F931F93CF9300E611E0C0E0F801929100 +:1017A00082918F010E94BA1DC80FF1E008351F0712 +:1017B000A9F78C2FCF911F910F9108958091680107 +:1017C0000895CF93DF9300D01F92CDB7DEB79C0171 +:1017D0008091DD01843019F593E099833B832A835E +:1017E0009093E9008FEF9091E800815095FD06C03D +:1017F00095ED9A95F1F700008111F5CF8091E80001 +:1018000085FF0DC040E050E063E070E0CE0101963E +:101810000E94160E8091E8008E778093E8000F906A +:101820000F900F90DF91CF910895CF93DF9300D069 +:101830001F92CDB7DEB72091DD01243021F522E0E3 +:1018400029839B838A8383E08093E9008FEF9091C3 +:10185000E800815095FD06C095ED9A95F1F70000DE +:101860008111F5CF8091E80085FF0DC040E050E088 +:1018700063E070E0CE0101960E94160E8091E800B0 +:101880008E778093E8000F900F900F90DF91CF91AB +:1018900008952091DD012430F1F422E02093E90045 +:1018A0002FEF3091E800215035FD06C035ED3A9517 +:1018B000F1F700002111F5CF2091E80025FF0BC0C2 +:1018C00040E050E065E070E00E94160E8091E80074 +:1018D0008E778093E8000895CF93DF932091DD0108 +:1018E000243039F521E02093E9002FEF3091E80012 +:1018F000215035FD06C035ED3A95F1F70000211174 +:10190000F5CF2091E80025FF14C0EC0140E050E045 +:1019100068E070E00E94160E8091E8008E77809358 +:10192000E80088E0FE01A0E6B1E001900D928A9502 +:10193000E1F7DF91CF9108958091DC01811109C019 +:101940000E94AB0F0E9408108091E2008460809397 +:10195000E20008951092DC010895089508950C9412 +:10196000041E42E061EC81E00E94250F42E061EC40 +:1019700082E00E94250F42E061EC83E00C94250F89 +:101980008091DF01833009F453C030F4813071F06D +:10199000823009F48CC008958A3009F478C08B3005 +:1019A00009F45EC0893009F09AC020C08091DE0140 +:1019B000813A09F094C08091E800877F8093E80025 +:1019C0008091E2019091E301892B21F468E080E6A7 +:1019D00091E003C060E080E090E070E00E94610E62 +:1019E0008091E8008B778093E80008958091DE0174 +:1019F000813209F074C08091E2019091E301892B5A +:101A000009F06DC08091E800877F8093E8008091A5 +:101A1000E80082FD05C08091DD018111F8CF5FC033 +:101A20008091F100809368018091E8008B7753C02A +:101A30008091DE01813A09F052C08091E2019091DB +:101A4000E301892B09F04BC08091E800877F8093E8 +:101A5000E8008091E80080FFFCCF80910B0136C048 +:101A60008091DE018132D9F58091E2019091E3010C +:101A7000892BA9F58091E800877F8093E8000E9478 +:101A80005A0F8091E00180930B010C949017809184 +:101A9000DE01813221F58091E800877F8093E800A4 +:101AA0000E945A0F8091E10180936901089580910D +:101AB000DE01813AA1F48091E800877F8093E800FD +:101AC0008091E80080FFFCCF809169018093F10054 +:101AD0008091E8008E778093E8000C945A0F089567 +:101AE00084B7877F84BF88E10FB6F8948093600045 +:101AF000109260000FBE80E8809361001092610038 +:101B00000E94FD120E94AB0F0E9408108091E2001B +:101B100084608093E20078940E948E120E94FF12EB +:101B200081E091E00E94A9128091DD01853069F485 +:101B30000E94C61D8091DB018823B1F30E94F31D32 +:101B4000882391F30E94000EEFCF0E940713ECCF81 +:101B5000292F332723303105C9F064F421303105B2 +:101B600081F02230310509F043C084E590E02DE397 +:101B700038E042C021323105F1F02232310541F125 +:101B800037C082E190E021E938E036C09927813002 +:101B9000910541F08230910541F0892B49F5E9E347 +:101BA000F8E005C0EBE0F8E002C0E1EEF7E0849178 +:101BB00090E09F0121C06330D8F4E62FF0E0EE0FF3 +:101BC000FF1FE35DFE4F2081318189E090E014C06A +:101BD000633070F470E0FB01EE0FFF1FE95DFE4F14 +:101BE00020813181FB01EC5DFE4F808190E004C0DB +:101BF00080E090E020E030E0FA0131832083089516 +:101C000080E189BD82E189BD09B400FEFDCF8091EC +:101C1000D8008F7D8093D8008091E000826080930F +:101C2000E0008091E00081FDFCCF0895CF92DF922B +:101C3000EF92FF920F931F93CF93DF93EC018B01F1 +:101C40006A010E94790F811133C0C114D10439F0A7 +:101C5000F60180819181081B190BC80FD91FE12C57 +:101C6000F12C0115110519F18091E80085FD16C0D0 +:101C70008091E8008E778093E800C114D10449F088 +:101C8000F60180819181E80EF91EF182E08285E003 +:101C90000FC00E94790F882321F30AC08991809395 +:101CA000F10001501109FFEFEF1AFF0ADACF80E0CF +:101CB000DF91CF911F910F91FF90EF90DF90CF9028 +:101CC00008952091E4013091E5012617370748F087 +:101CD0006115710539F42091E8002E772093E80012 +:101CE00001C0B90140E061157105A9F12091DD0144 +:101CF000222309F443C0253009F442C02091E800B2 +:101D000023FD40C02091E80022FD32C02091E80070 +:101D100020FFE9CF4091F3002091F20030E0342B16 +:101D2000FC01CF016115710559F02830310540F4EF +:101D300081918093F100615071092F5F3F4FF1CF86 +:101D400041E02830310509F040E02091E8002E778D +:101D50002093E800C8CF4111C9CF0AC08091DD01AE +:101D6000882361F0853061F08091E80083FD0AC02E +:101D70008091E80082FFF2CF80E0089582E008952C +:101D800083E0089581E008952091E4013091E50118 +:101D90002617370748F06115710539F42091E800DE +:101DA0002E772093E80001C0B901FC0120E0611505 +:101DB000710591F18091DD01882309F440C08530DF +:101DC00009F43FC08091E80083FD3DC08091E800A8 +:101DD00082FD2FC08091E80080FFE9CF2091F300C1 +:101DE0008091F20090E0922B6115710559F08830D6 +:101DF000910540F424912093F100319661507109CE +:101E00000196F2CF21E0089709F020E08091E800E8 +:101E10008E778093E800CBCF2111CCCF0AC0809180 +:101E2000DD01882361F0853061F08091E80083FD59 +:101E30000AC08091E80082FFF2CF80E0089582E03E +:101E4000089583E0089581E00895982F973058F51C +:101E50009093E900981739F07091EC002091ED0013 +:101E60005091F00003C0242F762F50E021FF19C0BD +:101E70003091EB003E7F3093EB003091ED003D7FE1 +:101E80003093ED003091EB0031603093EB007093B4 +:101E9000EC002093ED005093F0002091EE0027FF1E +:101EA00007C09F5FD3CF8F708093E90081E00895D2 +:101EB00080E008958091DE0187FF11C08091E800E5 +:101EC00082FD05C08091DD018111F8CF11C08091A4 +:101ED000E8008B770BC08091DD01882349F0809169 +:101EE000E80080FFF8CF8091E8008E778093E800CB +:101EF00008952091E4003091E50095E64091EC00D2 +:101F0000842F817040FF22C08091E80080FD1CC0BA +:101F10008091DD01882391F0853091F08091EB0074 +:101F200085FD10C04091E4005091E5004217530731 +:101F300029F39A01915011F784E0089582E0089501 +:101F400083E0089581E0089580E008954091E800DD +:101F500042FFDECF08950E9419100E942110E0EE8A +:101F6000F0E0808181608083E8EDF0E080818F7710 +:101F7000808319BCA7EDB0E08C918E7F8C9380811B +:101F80008F7E80831092DC0108950F931F93CF936F +:101F9000DF930E9419100E942110C8EDD0E08881C3 +:101FA0008F77888388818068888388818F7D888304 +:101FB00019BC1092DD011092D9011092DB01109230 +:101FC000DA0100EE10E0F80180818B7F8083888148 +:101FD0008160888342E060E080E00E94250FE1EEAE +:101FE000F0E080818E7F8083E2EEF0E0808181608E +:101FF0008083808188608083F80180818E7F8083E8 +:10200000888180618883DF91CF911F910F9108951E +:10201000E8EDF0E080818F7E8083E7EDF0E0808165 +:102020008160808384E082BF81E08093DC010C9436 +:10203000C50FE8EDF0E080818E7F80831092E20092 +:1020400008951092DA001092E10008951F920F9205 +:102050000FB60F9211242F933F934F935F936F937B +:102060007F938F939F93AF93BF93EF93FF93809151 +:10207000E10082FF0BC08091E20082FF07C08091E7 +:10208000E1008B7F8093E1000E948D128091DA0045 +:1020900080FF1FC08091D80080FF1BC08091DA00B4 +:1020A0008E7F8093DA008091D90080FF0DC080E19F +:1020B00089BD82E189BD09B400FEFDCF81E0809336 +:1020C000DD010E949C0C05C019BC1092DD010E942C +:1020D000AA0C8091E10080FF19C08091E20080FF8E +:1020E00015C08091E2008E7F8093E2008091E20033 +:1020F00080618093E2008091D80080628093D80054 +:1021000019BC85E08093DD010E94AE0C8091E10056 +:1021100084FF30C08091E20084FF2CC080E189BD43 +:1021200082E189BD09B400FEFDCF8091D8008F7D8A +:102130008093D8008091E1008F7E8093E1008091B0 +:10214000E2008F7E8093E2008091E20081608093C4 +:10215000E2008091D901882311F084E007C08091CA +:10216000E30087FD02C081E001C083E08093DD01D0 +:102170000E94AF0C8091E10083FF29C08091E200B2 +:1021800083FF25C08091E100877F8093E10082E09A +:102190008093DD011092D9018091E1008E7F8093C0 +:1021A000E1008091E2008E7F8093E2008091E20066 +:1021B00080618093E20042E060E080E00E94250FB1 +:1021C0008091F00088608093F0000E94AD0CFF9138 +:1021D000EF91BF91AF919F918F917F916F915F919F +:1021E0004F913F912F910F900FBE0F901F90189518 +:1021F0001F920F920FB60F9211242F933F934F937C +:102200005F936F937F938F939F93AF93BF93CF937E +:10221000DF93EF93FF93C091E900CF708091EC00C2 +:10222000D82FD17080FDD0E81092E9008091F000A5 +:10223000877F8093F00078940E943C111092E9000F +:102240008091F00088608093F000CD2BCF70C09318 +:10225000E900FF91EF91DF91CF91BF91AF919F91F5 +:102260008F917F916F915F914F913F912F910F903F +:102270000FBE0F901F9018951F93CF93DF93CDB78C +:10228000DEB7AA970FB6F894DEBF0FBECDBFEEED56 +:10229000F1E088E08E0F9091F10091938E13FBCFC7 +:1022A0000E94C00C8091E80083FF1FC18091DE0175 +:1022B0009091DF01492F50E04A30510508F015C1D7 +:1022C000FA01EB59FF4F0C943425803881F08238A5 +:1022D00009F00BC18091E2018F708093E900809139 +:1022E000EB0085FB882780F91092E90006C08091F9 +:1022F000DA019091DB01911182609091E800977F63 +:102300009093E8008093F1001092F100C8C0282F4C +:102310002D7F09F0EAC0882319F0823061F0E5C012 +:102320008091E001813009F0E0C0933009F080E055 +:102330008093DB012BC08091E001811127C0809147 +:10234000E2018F7009F4D1C08093E9002091EB0085 +:1023500020FF1CC0933021F48091EB00806214C0F8 +:102360009091EB0090619093EB0021E030E0A901A7 +:1023700002C0440F551F8A95E2F74093EA0010927D +:10238000EA008091EB0088608093EB001092E900F6 +:102390008091E800877F86C08111A7C01091E0017D +:1023A0001F778091E3008078812B8093E3008091F8 +:1023B000E800877F8093E8000E945A0F8091E80030 +:1023C00080FFFCCF8091E30080688093E3001111CF +:1023D00002C082E001C083E08093DD0186C08058A6 +:1023E000823008F082C08091E0019091E1018C3D43 +:1023F00053E0950779F583E08A838AE289834FB7B2 +:10240000F894DE01139620E03EE051E2E32FF0E085 +:1024100050935700E49120FF03C0E295EF703F5FB7 +:10242000EF708E2F90E0EA3010F0C79601C0C09692 +:102430008D939D932F5F243149F74FBF8091E80022 +:10244000877F8093E8006AE270E0CE0101960E94E7 +:10245000610E14C0AE014F5F5F4F6091E2010E94B8 +:10246000A80DBC01009709F440C09091E800977F47 +:102470009093E80089819A810E94C40E8091E800BF +:102480008B778093E80031C0803879F58091E8003F +:10249000877F8093E8008091D9018093F10080913B +:1024A000E8008E778093E8000E945A0F1EC08111C9 +:1024B0001CC09091E0019230C0F48091E800877FC9 +:1024C0008093E8009093D9010E945A0F8091D9011E +:1024D000811106C08091E30087FD02C081E001C048 +:1024E00084E08093DD010E94B10C8091E80083FFBD +:1024F0000AC08091E800877F8093E8008091EB001C +:1025000080628093EB00AA960FB6F894DEBF0FBEF0 +:10251000CDBFDF91CF911F9108950895CF93809102 +:10252000DD018823A1F0C091E900CF709091EC000B +:10253000892F817090FD80E8C82B1092E90080916E +:10254000E80083FD0E943C11CF70C093E900CF9159 +:10255000089590936F0180936E010895E0916E014C +:10256000F0916F01309721F00190F081E02D0994F6 +:1025700080E00895E0916E01F0916F01309721F0B5 +:102580000280F381E02D09940895E0916E01F091AD +:102590006F01309721F00480F581E02D09940895B2 +:1025A00020916C0130916D018217930771F0909327 +:1025B0006D0180936C01E0916E01F0916F01309795 +:1025C00021F00680F781E02D0994089520916A0199 +:1025D00030916B018217930771F090936B01809398 +:1025E0006A01E0916E01F0916F01309721F0008453 +:1025F000F185E02D0994089508950C94FC120E9431 +:10260000381E0E94FE0A0E94BE1E0C9463235F9235 +:102610006F927F928F929F92AF92BF92CF92DF92F2 +:10262000EF92FF920F931F93CF93DF9300D000D0D0 +:102630001F92CDB7DEB70E94430B99E7C92E91E0F8 +:10264000D92E03E010E0AA24A394B12C502E802FA1 +:102650000E94BE0B4C01F601729062906F016826D9 +:10266000792661147104A1F40150110978F78FEFF4 +:1026700089838A831B820E94411E8160782F9D83FB +:102680008C8349815A816B818D810E94B71338C038 +:102690008091C60181FD0E94C70B2BE030E07501DF +:1026A000022E02C0EE0CFF1C0A94E2F7C70186213D +:1026B0009721892B09F129835A828E209F2091E04E +:1026C000892809F490E09B830E94411E8160782F45 +:1026D0009D838C8349815A816B818D810E94B713C0 +:1026E000000F111FF801EF58FE4F80819181E826FD +:1026F000F926F182E08204C02150310980F6B4CF7E +:102700000E949A20109170010E94AE121817D1F009 +:102710000E94AE12809370010F900F900F900F9057 +:102720000F90DF91CF911F910F91FF90EF90DF906D +:10273000CF90BF90AF909F908F907F906F905F9061 +:102740000C94AA0A0F900F900F900F900F90DF91AA +:10275000CF911F910F91FF90EF90DF90CF90BF909E +:10276000AF909F908F907F906F905F900895CF93E0 +:10277000DF93CDB7DEB72B970FB6F894DEBF0FBE51 +:10278000CDBF4F83588769877A878B87DE01119683 +:1027900086E0FD0111928A95E9F785E0FE01379602 +:1027A00001900D928A95E1F749815A816B817C8174 +:1027B0008D819E810E942E1A2B960FB6F894DEBF53 +:1027C0000FBECDBFDF91CF910895CF93882309F439 +:1027D000C2C0C82F823859F40E94AE1281FDBBC01E +:1027E00089E30E94081D0E948B1D89E30CC0833879 +:1027F00079F40E94AE1280FDAEC083E50E94081DF0 +:102800000E948B1D83E50E94251DCF910C948B1D8A +:10281000843859F40E94AE1282FD9DC087E40E9464 +:10282000081D0E948B1D87E4EECF8CEF8C0F813A40 +:1028300048F48C2F0E94CC2281118DC08C2F0E94D5 +:10284000081DE3CF80E28C0F883048F4C77081E028 +:1028500001C0880FCA95EAF70E94441DD6CF8BE5C8 +:102860008C0F833078F4C53A29F0C63A31F083E80A +:1028700090E005C081E890E002C082E890E0CF914E +:102880000C94D01288E58C0F833108F064C0C83AEC +:1028900039F1C93A41F1CA3A49F1CB3A51F1CC3A4E +:1028A00059F1CD3A61F1C03B69F1CE3A71F1CF3ABD +:1028B00079F1C13B81F1C23B89F1C33B91F1C43B4A +:1028C00099F1C53BA1F1C63BA9F1C73BB1F1C83BAA +:1028D000B9F1C93BC1F1CA3BC9F180E090E038C011 +:1028E00082EE90E035C089EE90E032C08AEE90E052 +:1028F0002FC085EB90E02CC086EB90E029C087EBE1 +:1029000090E026C08CEC90E023C08DEC90E020C0DD +:1029100083E891E01DC08AE891E01AC082E991E065 +:1029200017C084E991E014C081E292E011C083E213 +:1029300092E00EC084E292E00BC085E292E008C013 +:1029400086E292E005C087E292E002C08AE292E06D +:10295000CF910C94E612CF910895882309F44BC0CF +:10296000823859F40E94AE1281FF45C089E30E946B +:10297000081D0E948B1D89E30CC0833871F40E94EE +:10298000AE1280FF38C083E50E94081D0E948B1D97 +:1029900083E50E94251D0C948B1D843859F40E94F8 +:1029A000AE1282FF28C087E40E94081D0E948B1D82 +:1029B00087E4EFCF9CEF980F913A58F390E2980F8D +:1029C000983050F4877091E001C0990F8A95EAF72A +:1029D000892F0E944A1DDFCF9BE5980F933020F48A +:1029E00080E090E00C94D012885A833120F480E08B +:1029F00090E00C94E6120895882321F00E94441D73 +:102A00000C948B1D0895882321F00E944A1D0C947C +:102A10008B1D08957F928F929F92AF92BF92CF921B +:102A2000DF92EF92FF920F931F93CF93DF931F924A +:102A3000CDB7DEB77C01C62E772EFC01058102954D +:102A40000F70128111110E94611D0E94011D8823C7 +:102A500079F0112369F080E28C0D883048F082E033 +:102A60000E94EA1C0E94011D91E0D82ED92601C0C7 +:102A7000D12CE72DE295EF70F0E0E159FF4F0C9477 +:102A80003425872D807F072D0F70882311F0029544 +:102A9000007F112389F0002309F499C180E28C0D95 +:102AA000883020F4802F0E94441D03C0802F0E9494 +:102AB000541D0E948B1D8BC18C2D0E94AD140023D0 +:102AC00009F4C3C180E28C0D883020F4802F0E946D +:102AD0004A1D03C0802F0E945A1D0E948B1DB5C144 +:102AE000872D807F972D9F70803211F4892F03C02E +:102AF000892F8295807FCC2021F0F1E0CF16A1F0C4 +:102B00001DC0112339F0002319F1013009F50E948D +:102B1000741D9BC1002319F0013009F496C189830B +:102B20000E94771D898110C1112321F0063008F021 +:102B30008CC10EC0053008F088C106C1112359F0C0 +:102B4000002331F0F701958190FF41C19F7095837B +:102B50000E94FC147AC1002309F4F6C03EC1872DFF +:102B600086958695837090E0009719F0019761F043 +:102B70006CC1112321F08C2D972D937002C080E041 +:102B800090E00E94D01261C1112321F08C2D972D6D +:102B9000937002C080E090E00E94E61256C18C2D36 +:102BA000112319F00E94A21F02C00E940A200E9455 +:102BB0008F204BC1872D837009F052C0111145C180 +:102BC0008C2D829586958770880F880F9C2D9F701D +:102BD000892E912CA12CB12C082E04C0880C991C94 +:102BE000AA1CBB1C0A94D2F7C4FE14C00FE010E06C +:102BF00020E030E0B901A80104C0440F551F661F52 +:102C0000771F8A95D2F7CB01BA01609570958095B0 +:102C1000909503C060E070E0CB01272D26952695A6 +:102C2000237030E02230310569F02330310589F01E +:102C3000682979298A299B292130310571F00E9460 +:102C4000761B03C1682979298A299B290E94921B36 +:102C5000FCC00E94761BC501B4010E945A1BF5C03E +:102C6000112319F0872D817001C08695882309F4FE +:102C7000ECC08C2D829586958770880F880F9C2DCF +:102C80009F70892E912CA12CB12C082E04C0880C89 +:102C9000991CAA1CBB1C0A94D2F7C4FE14C00FE0F6 +:102CA00010E020E030E0B901A80104C0440F551F36 +:102CB000661F771F8A95D2F7CB01BA016095709590 +:102CC0008095909503C060E070E0CB01272D26959C +:102CD00026952370422F50E04230510569F0433071 +:102CE000510589F0682979298A299B2941305105A4 +:102CF00071F00E94501CA9C0682979298A299B2952 +:102D00000E946C1CA2C00E94501CC501B4010E940C +:102D1000341C9BC08C2D90E0FC01E05EF109E53194 +:102D2000F10508F050C0E158FF4F0C9434250C2DEC +:102D30000F70872D8F71112321F00E94CD1B802FE2 +:102D400007CF0E94EE1B802F0E9403157EC0112327 +:102D500041F0053008F079C0872D8F710E94131C57 +:102D600074C0063008F071C0F7CF112339F0872DF9 +:102D70008F710E94CD1B69C01123C9F3872D8F71FC +:102D80000E94EE1B62C0112329F0872D8F710E94D3 +:102D9000B81B5BC00E94AE1B58C0112351F0172D09 +:102DA0001F71812F0E94CD1B63E0812F0E94E11CC7 +:102DB0004CC081E00E94EA1C023008F446C082E068 +:102DC0000E94EA1C42C0112331F0002381F28C2DB5 +:102DD0000E94E5133AC0002389F28C2D0E94AD14A5 +:102DE00034C0472D4F706C2DC7010E94B2050E9460 +:102DF000D21A2BC0111129C0472D4F7050E042301C +:102E00005105B9F04CF44115510581F0413051059F +:102E1000E1F40E948B2319C04330510569F044301E +:102E2000510599F48C2D0E94DD230FC00E9474235C +:102E30000CC00E94A72309C00E94BA2306C0472DD8 +:102E40004F706C2DC7010E941A0ADD20F9F00E9414 +:102E5000DD1C80FD1BC0F70112820E94D71C0E945E +:102E6000CD1BC7010E9455170E94D71C0F90DF9100 +:102E7000CF911F910F91FF90EF90DF90CF90BF9077 +:102E8000AF909F908F907F900C94EE1B0F90DF91EE +:102E9000CF911F910F91FF90EF90DF90CF90BF9057 +:102EA000AF909F908F907F9008950F931F93CF9333 +:102EB000DF93EC01888199812B813C81232BB9F030 +:102EC0009F3F11F48F3F99F0CE010E94470688235F +:102ED00071F0688179818A810E94D31C8C010E94E3 +:102EE000881C0E944F1BB801CE010E940A15DF9179 +:102EF000CF911F910F9108950E94611D0E94711D35 +:102F00000E94361D0E948B1D0E9440210E948F202E +:102F100080E090E00E94D01280E090E00C94E612F5 +:102F20000E94511D0C947C170E94C81C292F2295C9 +:102F30002F7030E02C3031054CF42A3031056CF420 +:102F40002250310922303105A8F407C02C30310558 +:102F500069F02F30310551F00DC0803F69F018F451 +:102F6000803E40F409C0843F29F406C093FB8827C3 +:102F700080F9089580E0089581E00895CF93DF936C +:102F800000D000D01F92CDB7DEB70F900F900F90FA +:102F90000F900F90DF91CF910895CF93DF9300D0E2 +:102FA00000D000D0CDB7DEB726960FB6F894DEBFBE +:102FB0000FBECDBFDF91CF9108951F93CF93DF93C5 +:102FC000C091790116E080917A01C81799F0D0E09C +:102FD0001C9FF0011D9FF00D1124E558FE4F40810C +:102FE000518162817381848195810E94CD172196E0 +:102FF000C770E9CFDF91CF911F9108954091AB0148 +:103000005091AC016091AD017091AE018091AF0122 +:103010009091B0010C94CD178091B00182958F7082 +:1030200009F054C08091AD01882309F44FC080910C +:103030007901A0917A016091AB017091AC0140914E +:10304000AE015091AF01B6E08A1709F43FC090E09D +:1030500041155105C1F17F3F11F46F3FA1F1B89FB8 +:10306000F001B99FF00D1124E558FE4F2181721334 +:103070002AC02081621327C02281211124C023810C +:1030800034812417350710F421503109241B350BE6 +:10309000283C3105C0F42091B0012F7020612093AD +:1030A000B00126E0289FF001299FF00D1124E0587F +:1030B000FE4F80818F70806180838BEA91E00E9457 +:1030C00055170C94DD1701968770BECF0895CF92E7 +:1030D000DF92EF92FF920F931F93CF93DF93CDB7C1 +:1030E000DEB762970FB6F894DEBF0FBECDBF8C017E +:1030F00085E0F801DE011D9601900D928A95E1F7B9 +:10310000D8014C9111965C91119712966C9112977F +:103110001396CD90DC9014973091AB017091AC0177 +:103120008091AE019091AF01009709F46BC17F3F90 +:1031300019F43F3F09F466C1E090AD01EE2009F4B7 +:10314000C0C02091B001C816D90628F0F601E81BCE +:10315000F90BCF0104C0809590958C0D9D1DFF2427 +:10316000F394883C910578F0F12C207F09F0C6C0DB +:103170007C2DD98AC88A89890E94BE178BEA91E082 +:103180000E945517B1C0822F807F09F046C0751389 +:1031900014C0341312C0611110C02F70206120932D +:1031A000B0010E94FE178BEA91E00E9455178091B2 +:1031B000B001D80115968C932EC0CD2819F15F3F30 +:1031C00011F44F3FF9F0F62E61111CC08091790186 +:1031D00020917A0136E0821709F45AC090E0389FB6 +:1031E000F001399FF00D1124E558FE4F71815713FE +:1031F00006C07081471303C07281711103C001962C +:103200008770E9CFF62E662309F418C18091B001CA +:1032100081608093B001F12C11C1751308C0341383 +:1032200006C0611104C08091B001D801C3C04D87B0 +:103230005E878D859E856A8B0E9494176A89882394 +:10324000E1F16623D1F12091B001822F82958F7038 +:1032500090E0029774F08091AB019091AC01988757 +:103260008F831986DB86CA862C87CE0107960E943B +:10327000551786E0F801ABEAB1E001900D928A950E +:10328000E1F70E940C180E94FE17FF24F394D6C0A9 +:103290004D875E878D859E850E94C81C292F2295AB +:1032A0002F7030E0223031050CF0BCC09F7009F067 +:1032B000B6C0805E883008F4C1C0C8010E945517AE +:1032C000E4CFC816D90608F453C0F601E81BF90B81 +:1032D000CF01883C910508F450C0F12C7C2DD98A8F +:1032E000C88A89890E94BE17EBEAF1E086E0DF0117 +:1032F0001D928A95E9F70E94FE17A0C0751314C0AD +:10330000341312C0611110C08091B001F80185839F +:10331000C8010E94551786E0EBEAF1E0DF011D923B +:103320008A95E9F7FE2C8AC04D875E878D859E853C +:103330006A8B0E9494176A89882309F4BECF66239A +:1033400009F4BBCF2091B001822F82958F7090E05D +:1033500002970CF48ECF8091AB019091AC019A83CF +:1033600089831B82DD82CC822E83CE0101967FCFA2 +:10337000809590958C0D9D1DACCFF62E662309F49B +:103380009CCF75132EC034132CC02091B00120FDAA +:103390001FC0822F82958F70D9F0D80115962C937B +:1033A00015978F3049F08F5F982F9295907F822FDD +:1033B0008F70892B15968C93C8010E94551786E053 +:1033C000F801ABEAB1E001900D928A95E1F793CF55 +:1033D00086E0F801ABEAB1E001900D928A95E1F741 +:1033E0002DC04D875E878D859E850E949417811123 +:1033F00040CF8091B00181608093B001C8010E94EC +:1034000055171CC0662309F458CF4D875E878D85FC +:103410009E850E949417882309F44FCF2ACF8111EB +:1034200048CF0CC0243031050CF047CF9F7009F411 +:1034300040CFF8019581907F09F03BCF8F2D6296A8 +:103440000FB6F894DEBF0FBECDBFDF91CF911F91B5 +:103450000F91FF90EF90DF90CF9008951F93CF933F +:10346000DF93CDB7DEB72C970FB6F894DEBF0FBE53 +:10347000CDBF4F83588769877A878B879C87CE011A +:1034800007960E946718882369F08F8198852A859E +:103490003B85232BF1F19F3F09F063C08F3F09F07B +:1034A00060C037C086E0FE013796DE0111960190BC +:1034B0000D928A95E1F76F817885EA85FB853097D3 +:1034C00041F17F3F11F46F3F21F120917A0130E00B +:1034D000C9010196877099274091790150E08417BE +:1034E000950709F447C069837A83FD83EC8396E0EE +:1034F000929FD001939FB00D1124A558BE4FFE019D +:10350000319601900D929A95E1F780937A010E948D +:10351000DD1716E08091790190917A018917C1F148 +:10352000189FC001112485589E4F0E946718882358 +:1035300079F1E09179011E9FF0011124E558FE4FC9 +:103540004081518162817381848195810E94CD1770 +:103550008091790190E00196877099278093790195 +:10356000D9CF4F81588569857A858B859C850E9446 +:10357000CD17CFCF0E94901710927A011092790147 +:10358000EBEAF1E086E0DF011D928A95E9F7C1CF11 +:103590002C960FB6F894DEBF0FBECDBFDF91CF9152 +:1035A0001F910895EF92FF920F931F93CF93DF9394 +:1035B0008C01009709F46CC0F12CEE24E394E8012F +:1035C0002196F8018491843740F4843008F051C08A +:1035D000813081F0823019F15BC0853709F444C035 +:1035E000A8F19CE7980F903708F052C08F770E949F +:1035F000AD1441C00E5F1F4FFE01C49180E28C0FDD +:10360000883048F4C7708E2D01C0880FCA95EAF73C +:103610000E94641D14C08C2F0E94E5132DC00E5F04 +:103620001F4FFE01C49180E28C0F883058F4C770A0 +:103630008E2D01C0880FCA95EAF70E946A1D0E946C +:103640008B1D1AC08C2F0E94AD1416C00E5F1F4F29 +:10365000FE01C491CC2381F08FE99FE00197F1F73F +:1036600000C00000C150F6CF0E5F1F4FFE01F49066 +:1036700003C00E94E5138E018F2D882309F49FCF8C +:10368000EFE9FFE03197F1F700C000008150F5CF7E +:10369000DF91CF911F910F91FF90EF9008950895C2 +:1036A0006093B5017093B6018093B7019093B80110 +:1036B0000C947C170F931F930091B5011091B601E4 +:1036C0002091B7013091B801DC01CB01802B912B07 +:1036D000A22BB32B8093B5019093B601A093B701B1 +:1036E000B093B8011F910F910C947C170F931F9307 +:1036F0000091B5011091B6012091B7013091B80148 +:10370000DC01CB0180239123A223B3238093B50155 +:103710009093B601A093B701B093B8011F910F9198 +:103720000C947C170F931F930091B5011091B60173 +:103730002091B7013091B801DC01CB01802791279E +:10374000A227B3278093B5019093B601A093B70148 +:10375000B093B8011F910F910C947C171092B10196 +:103760001092B2011092B3011092B4010C947C1724 +:1037700041E050E060E070E004C0440F551F661F58 +:10378000771F8A95D2F74093B1015093B2016093AD +:10379000B3017093B4010C947C1741E050E060E0F9 +:1037A00070E004C0440F551F661F771F8A95D2F73B +:1037B0008091B1019091B201A091B301B091B40197 +:1037C000482B592B6A2B7B2B4093B1015093B201AC +:1037D0006093B3017093B4010C947C1741E050E006 +:1037E00060E070E004C0440F551F661F771F8A9584 +:1037F000D2F740955095609570958091B101909168 +:10380000B201A091B301B091B401482359236A23B6 +:103810007B234093B1015093B2016093B301709345 +:10382000B4010C947C1741E050E060E070E004C00B +:10383000440F551F661F771F8A95D2F78091B101FB +:103840009091B201A091B301B091B40148275927DA +:103850006A277B274093B1015093B2016093B30173 +:103860007093B4010C947C170F931F930091B101D6 +:103870001091B2012091B3013091B401DC01CB0170 +:10388000802B912BA22BB32B8093B1019093B2018B +:10389000A093B301B093B4011F910F910C947C17C6 +:1038A0000F931F930091B1011091B2012091B301C8 +:1038B0003091B401DC01CB0180239123A223B323F7 +:1038C0008093B1019093B201A093B301B093B4017E +:1038D0001F910F910C947C170F931F930091B101CE +:1038E0001091B2012091B3013091B401DC01CB0100 +:1038F00080279127A227B3278093B1019093B2012B +:10390000A093B301B093B4011F910F910C947C1755 +:103910000895CF92DF92EF92FF920F931F93CF9370 +:10392000DF938C01C090B501D090B601E090B70153 +:10393000F090B8018091B1019091B201A091B301D2 +:10394000B091B401C82AD92AEA2AFB2ACFE1D0E0F3 +:10395000D701C6010C2E04C0B695A79597958795FB +:103960000A94D2F780FF06C0B8018C2F0E94790814 +:10397000019721F4219760F780E001C08C2FDF913F +:10398000CF911F910F91FF90EF90DF90CF9008950E +:10399000CF93DF93EC010E94891CBE010E9479083D +:1039A000DF91CF910895CB010E94C81C08958091AA +:1039B000B90185958595859508958091B9018770A0 +:1039C000089598E0899F90011124262B2093B90136 +:1039D0000C94CD1B2091B901809582238093B9016D +:1039E000982F977069F430E0482F552747FD509580 +:1039F0002417350729F08595859585950C94EE1B40 +:103A000008959091B901977081E009F480E00895DC +:103A100020910C0130910D01F90132969FEF40E0A9 +:103A20005191581789F09F3F19F4511101C0942FFB +:103A30004F5F4630A9F79F3F39F0F901E90FF11DBB +:103A400097FDFA9582830895089520910C01309195 +:103A50000D01F9013296285F3F4F9081981301C004 +:103A600010823196E217F307C1F7089581E090E0E4 +:103A7000E0910C01F0910D01E80FF91F1082019601 +:103A800088309105A9F708959091C501892B8093FD +:103A9000C501089580959091C50189238093C50142 +:103AA00008951092C50108959091C401892B8093C7 +:103AB000C401089580959091C40189238093C40125 +:103AC00008951092C40108959091C301892B8093A9 +:103AD000C301089580959091C30189238093C30108 +:103AE00008951092C30108958093BA010895109229 +:103AF000BA01089580910C0190910D01FC0131965D +:103B00009C01285F3F4F80E0919191118F5FE217F8 +:103B1000F307D1F70895E0910C01F0910D01809128 +:103B2000C5018083E0910C01F0910D01908180919D +:103B3000C401892B8083E0910C01F0910D019081EB +:103B40008091C301892B80838091BA01882361F021 +:103B5000E0910C01F0910D019081892B80830E94EE +:103B60007A1D81111092BA0180910C0190910D0182 +:103B70000C94BA1220E0009739F0AC014150510981 +:103B8000842395232F5FF7CF822F08958091DD0145 +:103B9000843039F11092C70120E488E190E00FB63B +:103BA000F894A895809360000FBE2093600080E099 +:103BB0000E940D0580E00E94AA0A83B7817F84607D +:103BC00083BF83B7816083BF7894889583B78E7FE6 +:103BD00083BF88E10FB6F894809360001092600074 +:103BE0000FBE0895089580E00E940D050E94C00A4E +:103BF0000E94430B0E94F21D0E94C80B91E08111AC +:103C000001C090E0892F08950E94901780E00E94E3 +:103C10000D050E9463230E94AE120C94AA0A1F9203 +:103C20000F920FB60F9211248F939F93AF93BF9370 +:103C30008091C701811113C08091C8019091C90181 +:103C4000A091CA01B091CB014196A11DB11D8093F5 +:103C5000C8019093C901A093CA01B093CB01BF9151 +:103C6000AF919F918F910F900FBE0F901F9018955D +:103C700082E084BD93E095BD9AEF97BD80936E007E +:103C800008952FB7F8948091C8019091C901A0912F +:103C9000CA01B091CB012FBF0895CF92DF92EF926E +:103CA000FF920F931F932FB7F8944091C801509142 +:103CB000C9016091CA017091CB012FBF6A017B01DC +:103CC000EE24FF248C0120E030E0C016D106E2068D +:103CD000F30610F4415051099A01281B390BC90110 +:103CE0001F910F91FF90EF90DF90CF9008951F925A +:103CF0000F920FB60F9211248F939F93AF93BF93A0 +:103D00008091C8019091C901A091CA01B091CB01E5 +:103D10000196A11DB11D8093C8019093C901A09384 +:103D2000CA01B093CB01BF91AF919F918F910F903A +:103D30000FBE0F901F9018950E94AB0FF8942FEFB5 +:103D400087EA91E6215080409040E1F700C00000F2 +:103D500087E090EBDC018093E7019093E801A0936A +:103D6000E901B093EA019CE088E10FB6F894A895C8 +:103D7000809360000FBE90936000FFCF0E94F61EFC +:103D8000811102C00E94D71E0E94011F8093C601AC +:103D90000E940E1F90E09093D8018093D7010E945B +:103DA000051F682F70E080E090E00C94501B6DEED2 +:103DB0007EEF80E090E00E946E2560E082E090E07F +:103DC0000E945C2560E083E090E00E945C2560E05A +:103DD00084E090E00E945C2560E085E090E00E9435 +:103DE0005C2560E086E090E00C945C2580E090E04B +:103DF0000E94562521E08D3E9E4F09F020E0822F43 +:103E0000089582E090E00C944E2583E090E00C94BD +:103E10004E25682F83E090E00C945C2584E090E0D0 +:103E20000C944E25682F84E090E00C945C2586E08D +:103E300090E00C944E25682F86E090E00C945C2571 +:103E40008091CE0180FF0BC06091110185E0689FD9 +:103E5000B001112475956795759567952BC081FF05 +:103E600009C06091110185E0689FB001112475952A +:103E7000679520C082FF07C06091110185E0689FAF +:103E8000B001112417C09091CF019923D1F0609116 +:103E90001001961788F72091110185E0289F900165 +:103EA0001124929FA001939F500D112470E0CA012C +:103EB0000E9420256038710540F46115710539F0C4 +:103EC00002C065E070E0862F08958FE7089581E0D5 +:103ED00008958091CE0180FF08C060910F0170E0CD +:103EE000759567957595679521C081FF06C06091AE +:103EF0000F0170E07595679519C082FF04C060914D +:103F00000F0170E010C09091CF019923C1F0609132 +:103F10000E019617A0F780910F01899FC00111240F +:103F200070E00E9420256038710528F46115710544 +:103F300021F0862F08958FE7089581E0089561E0CC +:103F400070E0F4CF803F21F40E94201F819504C0CF +:103F5000813F29F40E94201F8093D2010895823F5F +:103F600021F40E94201F819504C0833F29F40E9400 +:103F7000201F8093D1010895893F19F40E94691F81 +:103F800005C08A3F31F40E94691F81958093D30157 +:103F900008958B3F21F40E94691F819504C08C3FD6 +:103FA00029F40E94691F8093D4010895843F21F46D +:103FB0008091D001816017C0853F21F48091D001AC +:103FC000826011C0863F21F48091D00184600BC0D3 +:103FD000873F21F48091D001886005C0883F31F48B +:103FE0008091D00180618093D00108958D3F21F4AC +:103FF0008091CE0181600BC08E3F21F48091CE0173 +:10400000826005C08F3F29F48091CE018460809347 +:10401000CE010895803F39F48091D20187FF6CC0B2 +:104020001092D20169C0813F29F48091D201181603 +:10403000BCF362C09091D101823F29F497FF5CC02C +:104040001092D10159C0833F19F41916CCF354C012 +:10405000893F41F48091D30118160CF04DC01092A5 +:10406000D3014AC08A3F29F48091D30187FF44C01D +:10407000F6CF8B3F39F48091D40187FF3DC0109279 +:10408000D4013AC08C3F29F48091D4011816BCF3B6 +:1040900033C0843F21F48091D0018E7F17C0853FCB +:1040A00021F48091D0018D7F11C0863F21F4809151 +:1040B000D0018B7F0BC0873F21F48091D001877F97 +:1040C00005C0883F31F48091D0018F7E8093D0016C +:1040D00013C08D3F21F48091CE018E7F0BC08E3FA7 +:1040E00021F48091CE018D7F05C08F3F29F480910E +:1040F000CE018B7F8093CE018091D10181110EC0C2 +:104100008091D20181110AC08091D301811106C032 +:104110008091D401811102C01092CF01089580EDE9 +:1041200091E00E94C5120E94411E9093CD018093A0 +:10413000CC0108951F93CF93DF938091CC01909190 +:10414000CD010E944D1EAC019091CF01992321F029 +:104150002091120130E006C0209113018AE0289FCF +:10416000900111244217530708F486C08091D101B1 +:10417000C091D201D091D3011091D401811107C017 +:10418000C11176C0D11174C0111172C075C09F3FAA +:1041900019F09F5F9093CF01181624F40E94201FFE +:1041A0008093D1018091D10187FF05C00E94201F1B +:1041B00081958093D1011C1624F40E94201F8093C6 +:1041C000D2018091D20187FF05C00E94201F8195F6 +:1041D0008093D2016091D101662339F1C091D2015F +:1041E000CC2319F1772767FD7095872F972F0E94B1 +:1041F000312423E333E343E35FE30E9495240E94E9 +:10420000FE236093D1016C2F772767FD7095872F70 +:10421000972F0E94312423E333E343E35FE30E94BB +:1042200095240E94FE236093D2011D1624F40E945F +:10423000691F8093D3018091D30187FF05C00E943D +:10424000691F81958093D301111624F40E94691F80 +:104250008093D4018091D40187FF05C00E94691F1B +:1042600081958093D401DF91CF911F910C948F2081 +:104270009F3F09F08ECF96CFDF91CF911F91089588 +:10428000E0EDF1E085E0DF011D928A95E9F71092FB +:10429000CF011092CE010895833081F128F481304E +:1042A00059F08230D1F00895853009F449C0B8F151 +:1042B000863009F456C0089580911301262F30E00E +:1042C000280F311D2F3F310524F4680F609313012F +:1042D00008958FEF80931301089580911201262F86 +:1042E00030E0280F311D2F3F310524F4680F609313 +:1042F000120108958FEF80931201089580911101AA +:10430000262F30E0280F311D2F3F310524F4680F90 +:104310006093110108958FEF8093110108958091AA +:104320001001262F30E0280F311D2F3F310524F4D6 +:10433000680F6093100108958FEF80931001089526 +:1043400080910F01262F30E0280F311D2F3F3105BE +:1043500024F4680F60930F0108958FEF80930F018D +:10436000089580910E01262F30E0280F311D2F3F38 +:10437000310524F4680F60930E0108958FEF809348 +:104380000E010895833011F128F4813049F0823014 +:1043900091F00895853081F120F18630C1F10895C2 +:1043A00080911301681720F4861B809313010895F0 +:1043B00010921301089580911201681720F4861B52 +:1043C00080931201089510921201089580911101B5 +:1043D000681720F4861B8093110108951092110133 +:1043E000089580911001681720F4861B80931001B6 +:1043F000089510921001089580910F01681720F41C +:10440000861B80930F01089510920F0108958091EB +:104410000E01681720F4861B80930E0108951092F8 +:104420000E0108950F931F938732D8F58E3108F04F +:1044300085C08E3009F46FC098F4873009F459C0F4 +:104440008B3009F48FC0863009F093C08091C6018B +:10445000817F8E7F8093C60181E08093D6018AC0E0 +:10446000863109F47FC068F4803109F082C0809100 +:10447000C60183FB222720F991E0922790FB83F964 +:1044800053C0893109F46EC08B3109F072C080913C +:10449000C60181FB222720F991E0922790FB81F948 +:1044A00043C0883309F45EC050F4893209F45CC01B +:1044B000853309F459C0873209F456C05AC0833491 +:1044C00009F452C028F48A3308F453C0895337C022 +:1044D000883409F04EC00E9490170FEF13ED20E3CF +:1044E000015010402040E1F700C000000E949C1ED7 +:1044F00039C09091C601892F8095817080FB90F919 +:1045000029F0966098609093C60134C0997F977F98 +:104510009093C60127C08091C60182FB222720F913 +:1045200091E0922790FB82F98093C6019923D1F004 +:104530008091C60181608093C60114C08D5141E015 +:1045400050E060E070E08A019B0104C0000F111F81 +:10455000221F331F8A95D2F7C901B8010E94501B50 +:104560000E94901781E006C061E070E080E090E07A +:10457000F5CF80E01F910F91089580E0089580E0CD +:1045800008958E518A3030F4E82FF0E0ED5CFE4F54 +:104590008081089580E00895CF93C82F8091D6013F +:1045A000813069F018F08230C9F183C0E0910C01CC +:1045B000F0910D018081823209F07DC007C0E09149 +:1045C0000C01F0910D018081823261F48C2F0E94E8 +:1045D000BD22811104C08C2F0E9412221DC081E0D7 +:1045E00090E01AC08C2F0E94BF22811114C0C431E8 +:1045F00079F048F4CB3079F0C03109F060C082E046 +:104600008093D60108C0C93219F0C83321F057C0D1 +:104610001092D60154C081E0817053C0C93289F133 +:1046200018F5C43171F1B0F4C73009F046C08EE11D +:104630008093130182E3809312018AE08093110139 +:1046400084E18093100188E080930F0188E28093D9 +:104650000E0133C082EE8C0F863078F58C2F0E94CD +:10466000C1228093D50129C0CE34E9F020F4CB34A7 +:1046700021F56AE013C0C13579F0C235F1F461E08B +:104680000DC08091D501882319F01092D50115C075 +:1046900081E08093D60115C061E006C08091D5010C +:1046A0000E944C210AC06AE08091D5010E94C2217B +:1046B00004C01092D60180E004C081E002C080E016 +:1046C000ABCFCF9108950E94F61E811102C00E94C7 +:1046D000D71E0E94171F8093E60180FF02C08695B7 +:1046E00001C080E00C940D058091E601982F96950D +:1046F000292F30E0233031054CF49F5F990F8170F2 +:10470000892B81608093E6010E941B1F8091E60146 +:1047100086950C940D058091E601982F969591F061 +:104720009158990F8170892B8093E6018E7F91E0DB +:1047300009F490E08091E60190FB80F98093E60116 +:104740000E941B1F8091E60186950C940D058091B7 +:10475000E601982F909590FB80F98093E6010E94E6 +:104760001B1F8091E60180FF02C0869501C080E09A +:104770000C940D059091E601892F86958F5F8F77B8 +:104780009170843028F4880F892B8093E60102C051 +:104790009093E6018091E6018E7F91E009F490E02C +:1047A0008091E60190FB80F98093E6010E941B1F37 +:1047B0008091E60186950C940D052091E601922FDB +:1047C00096958927982F990F822F8170892B809336 +:1047D000E6018E7F91E009F490E08091E60190FB84 +:1047E00080F98093E6010E941B1F8091E601869567 +:1047F0000C940D058091E6018695089504D0689487 +:10480000B1118DC0089570D088F09F5790F0B92FE6 +:104810009927B751A0F0D1F0660F771F881F991F15 +:104820001AF0BA95C9F712C0B13081F077D0B1E073 +:10483000089574C0672F782F8827B85F39F0B93F83 +:10484000CCF3869577956795B395D9F73EF4909517 +:104850008095709561957F4F8F4F9F4F0895E89495 +:1048600009C097FB3EF490958095709561957F4FB8 +:104870008F4F9F4F9923A9F0F92F96E9BB27939566 +:10488000F695879577956795B795F111F8CFFAF476 +:10489000BB0F11F460FF1BC06F5F7F4F8F4F9F4FA7 +:1048A00016C0882311F096E911C0772321F09EE805 +:1048B000872F762F05C0662371F096E8862F70E06B +:1048C00060E02AF09A95660F771F881FDAF7880F45 +:1048D0009695879597F9089557FD9058440F551F61 +:1048E00059F05F3F71F04795880F97FB991F61F072 +:1048F0009F3F79F087950895121613061406551FE9 +:10490000F2CF4695F1DF08C0161617061806991F54 +:10491000F1CF86957105610508940895E894BB2749 +:1049200066277727CB0197F908950BD078C069D017 +:1049300028F06ED018F0952309F05AC05FC01124FA +:10494000EECFCADFA0F3959FD1F3950F50E0551F2E +:10495000629FF001729FBB27F00DB11D639FAA27D4 +:10496000F00DB11DAA1F649F6627B00DA11D661F23 +:10497000829F2227B00DA11D621F739FB00DA11D44 +:10498000621F839FA00D611D221F749F3327A00DFE +:10499000611D231F849F600D211D822F762F6A2F9A +:1049A00011249F5750408AF0E1F088234AF0EE0F1F +:1049B000FF1FBB1F661F771F881F91505040A9F72C +:1049C0009E3F510570F014C0AACF5F3FECF3983EB4 +:1049D000DCF3869577956795B795F795E7959F5F93 +:1049E000C1F7FE2B880F911D9695879597F908952D +:1049F00097F99F6780E870E060E008959FEF80EC92 +:104A0000089500240A941616170618060906089534 +:104A100000240A9412161306140605060895092E9A +:104A20000394000C11F4882352F0BB0F40F4BF2B09 +:104A300011F460FF04C06F5F7F4F8F4F9F4F089549 +:104A400097FB072E16F4009407D077FD09D00E943B +:104A50003A2507FC05D03EF4909581959F4F089527 +:104A6000709561957F4F0895EE0FFF1F0590F491AB +:104A7000E02D0994AA1BBB1B51E107C0AA1FBB1F55 +:104A8000A617B70710F0A61BB70B881F991F5A95DA +:104A9000A9F780959095BC01CD010895F999FECFB5 +:104AA00092BD81BDF89A992780B50895A8E1B0E03C +:104AB00042E050E00C947625262FF999FECF92BD66 +:104AC00081BDF89A019700B4021639F01FBA20BDD3 +:104AD0000FB6F894FA9AF99A0FBE08950196272F07 +:104AE0000E945D250C945C25DC01CB01FC01F99949 +:104AF000FECF06C0F2BDE1BDF89A319600B40D922A +:0C4B000041505040B8F70895F894FFCFE2 +:104B0C00FFDE0B6C0C490C150CE10B01BB012808EA +:104B1C00140A321E1F0F03764F5F6F7F496943796A +:104B2C0009595363404D362609D908A3084F086824 +:0E4B3C000881080102030405060708090000AD +:00000001FF diff --git a/keyboards/planck/keymaps/unicode/keymap.c b/keyboards/planck/keymaps/unicode/keymap.c new file mode 100644 index 0000000000..d73e7e09d4 --- /dev/null +++ b/keyboards/planck/keymaps/unicode/keymap.c @@ -0,0 +1,326 @@ +/* + Copyright + 2015 Jack Humbert + 2016 Francois Marlier + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + + For more info on how this works per OS, see here + https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input +*/ + + +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _PLOVER 5 +#define _ADJUST 16 + +// Macro name shortcuts +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) +#define M_BL 5 +#define PLOVER M(12) +#define EXT_PLV M(13) +#define TOG_OUT M(14) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_TAB, UC_q, UC_w, UC_f, UC_p, UC_g, UC_j, UC_l, UC_u, UC_y, UC_SCLN, UC_BSPC}, + {KC_ESC, UC_a, UC_r, UC_s, UC_t, UC_d, UC_h, UC_n, UC_e, UC_i, UC_o, UC_QUOT}, + {KC_LSFT, UC_z, UC_x, UC_c, UC_v, UC_b, UC_k, UC_m, UC_COMM, UC_DOT, UC_SLSH, KC_ENT}, + {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |TogOut| S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {TOG_OUT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff| | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +#ifdef AUDIO_ENABLE +float tone_startup[][2] = { + {440.0*pow(2.0,(31)/12.0), 12}, + {440.0*pow(2.0,(28)/12.0), 8}, + {440.0*pow(2.0,(19)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, + {440.0*pow(2.0,(28)/12.0), 20} +}; + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); + +float goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + break; + case _COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + break; + case _DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + break; + case _LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case _RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case M_BL: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + case 12: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + break; + case 13: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif + layer_off(_PLOVER); + } + break; + case 14: + if (record->event.pressed) { + return MACRO( D(E), D(R), D(F), D(V), D(O), D(L), U(E), U(R), U(F), U(V), U(O), U(L), END ); + } + break; + } + return MACRO_NONE; +}; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + _delay_ms(20); // stops the tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif +} + +#ifdef AUDIO_ENABLE +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); +} +#endif + + -- cgit v1.2.3