From 27d24faf396367d9f8fadd86324e584b5403d261 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 28 Apr 2016 23:10:40 -0400 Subject: adds condition to one last audio ref in planck default --- keyboard/planck/keymaps/default/keymap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index fa9c3915a8..e120d358a4 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -325,7 +325,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) layer_off(_LOWER); layer_off(_ADJUST); layer_off(_MUSIC); - stop_all_notes(); + #ifdef AUDIO_ENABLE + stop_all_notes(); + #endif layer_on(_PLOVER); if (!eeconfig_is_enabled()) { eeconfig_init(); -- cgit v1.2.1 From 66e0323881a5a3da65e14daeec41a1e9cfbda431 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 29 Apr 2016 12:42:55 -0400 Subject: removes extra voices, updates .hex files --- keyboard/planck/keymaps/default/keymap.c | 2 +- keyboard/planck/planck_pcb_r4.hex | 3159 ++++++++++++------------ keyboard/planck/planck_pcb_r4_w_bootloader.hex | 3159 ++++++++++++------------ 3 files changed, 3177 insertions(+), 3143 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index e120d358a4..e7a9ea9e4c 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -365,7 +365,7 @@ void play_goodbye_tone() } uint8_t starting_note = 0x0C; -int offset = 7; +int offset = 0; void process_action_user(keyrecord_t *record) { diff --git a/keyboard/planck/planck_pcb_r4.hex b/keyboard/planck/planck_pcb_r4.hex index 889af7f225..bd68d9e904 100644 --- a/keyboard/planck/planck_pcb_r4.hex +++ b/keyboard/planck/planck_pcb_r4.hex @@ -1,73 +1,73 @@ -:100000000C94FE040C9442050C9442050C94420599 -:100010000C9442050C9442050C9442050C94420544 -:100020000C9442050C9442050C94A6180C94781973 -:100030000C94DB270C9442050C9442050C94420569 -:100040000C9442050C9442050C9442050C94420514 -:100050000C9442050C9443280C9442050C944205E0 -:100060000C9442050C9442050C9442050C944205F4 -:100070000C9442050C9442050C9442050C944205E4 -:100080000C94D10E0C9442050C9442050C9442053C -:100090000C9442050C9442050C9442050C944205C4 -:1000A0000C9442050C9442050C9442059D05AD0547 -:1000B000BF05CF05D505E405F005F60504060D06D8 -:1000C0001E062E06340664069013901390139013A8 -:1000D000901390139013901390139013A713A713DA -:1000E000A713A713A713A713A713A713A713A71340 -:1000F00090139013901390139013A713A713A713A3 -:10010000A713A713901390139013A713A713A71364 -:10011000E519071AF51A071AF51A4C1A6F1AF51A83 -:10012000C41AD71ADA1DDA1D171E171E711EAF1E4C -:1001300027212721C81E2721C91FC91F8C20A320C2 -:100140002721122107634236B79BD8A71A39685670 -:1001500018AEBAAB558C1D3CB7CC5763BD6DEDFDE9 -:10016000753EF6177231BF000000803F08000000A6 -:10017000BE922449123EABAAAA2ABECDCCCC4C3E9C -:1001800000000080BEABAAAAAA3E00000000BF008B -:100190000000803F0000000000084178D3BB438787 -:1001A000D1133D190E3CC3BD4282AD2B3E68EC829B -:1001B00076BED98FE1A93E4C80EFFFBE01C4FF7F20 -:1001C0003F00000000002B0014001A00080015007A -:1001D00017001C0018000C00120013002A00290050 -:1001E00004001600070009000A000B000D000E00B5 -:1001F0000F0033003400E1001D001B000600190051 -:1002000005001100100036003700380028000530C6 -:10021000E000E200E30003302C002C00043050002A -:10022000510052004F002B0014001A000900130067 -:100230000A000D000F0018001C0033002A002900DE -:10024000040015001600170007000B00110008003D -:100250000C0012003400E1001D001B000600190014 -:1002600005000E0010003600370038002800053069 -:10027000E000E200E30003302C002C0004305000CA -:10028000510052004F002B0034003600370013009D -:100290001C0009000A00060015000F002A002900B2 -:1002A00004001200080018000C0007000B001700E3 -:1002B000110016003800E100330014000D000E009C -:1002C0001B00050010001A0019001D002800053051 -:1002D000E000E200E30003302C002C00043050006A -:1002E000510052004F0035021E021F02200221025F -:1002F0002202230224022502260227022A004C00A1 -:100300003A003B003C003D003E003F002D022E0223 -:100310002F02300231020100400041004200430040 -:10032000440045000100010001000100010001003E -:100330000100010001000100010001000100AB000B -:10034000AA00A900AE0035001E001F0020002100F9 -:100350002200230024002500260027002A004C004C -:100360003A003B003C003D003E003F002D002E00C7 -:100370002F003000310001004000410042004300E6 -:1003800044004500010001000100010001000100DE -:100390000100010001000100010001000100AB00AB -:1003A000AA00A900AE00000000000000000000004C -:1003B000000000000000000000000000000000003D -:1003C000000000000000000000000000000000002D -:1003D000000000000000000000000000000000001D -:1003E000000000000000000000000000000000000D -:1003F0000000000000000330000000000430000096 -:100400000000000000001E001E001E001E001E0056 -:100410001E001E001E001E001E001E001E0000000A -:1004200014001A000800150017001C0018000C002A -:10043000120013002F00000004001600070009003E -:100440000A000B000D000E000F00330034000D30C9 -:10045000000000000600190000000000110010005C +:100000000C94DA040C941E050C941E050C941E0529 +:100010000C941E050C941E050C941E050C941E05D4 +:100020000C941E050C941E050C94B7180C94891999 +:100030000C94EC270C941E050C941E050C941E05C4 +:100040000C941E050C941E050C941E050C941E05A4 +:100050000C941E050C9454280C941E050C941E053B +:100060000C941E050C941E050C941E050C941E0584 +:100070000C941E050C941E050C941E050C941E0574 +:100080000C94AD0E0C941E050C941E050C941E05CC +:100090000C941E050C941E050C941E050C941E0554 +:1000A0000C941E050C941E050C941E0579058905FB +:1000B0009B05AB05B105C005CC05D205E005E905FA +:1000C000FA050A0610064006F619181A061B181A31 +:1000D000061B5D1A801A061BD51AE81AEB1DEB1DCC +:1000E000281E281E821EC01E38213821D91E382104 +:1000F000DA1FDA1F9D20B4203821232107634236FE +:10010000B79BD8A71A39685618AEBAAB558C1D3CA8 +:10011000B7CC5763BD6DEDFD753EF6177231BF006C +:100120000000803F08000000BE922449123EABAAA6 +:10013000AA2ABECDCCCC4C3E00000080BEABAAAA01 +:10014000AA3E00000000BF000000803F0000000049 +:1001500000084178D3BB4387D1133D190E3CC3BD82 +:100160004282AD2B3E68EC8276BED98FE1A93E4C2F +:1001700080EFFFBE01C4FF7F3F00000000002B00A6 +:1001800014001A000800150017001C0018000C00CD +:10019000120013002A0029000400160007000900BD +:1001A0000A000B000D000E000F0033003400E100C8 +:1001B0001D001B000600190005001100100036008C +:1001C0003700380028000530E000E200E30003308B +:1001D0002C002C0004305000510052004F002B0026 +:1001E00014001A00090013000A000D000F00180087 +:1001F0001C0033002A002900040015001600170017 +:1002000007000B00110008000C0012003400E10090 +:100210001D001B000600190005000E00100036002E +:100220003700380028000530E000E200E30003302A +:100230002C002C0004305000510052004F002B00C5 +:1002400034003600370013001C0009000A000600C5 +:1002500015000F002A0029000400120008001800F1 +:100260000C0007000B001700110016003800E10019 +:10027000330014000D000E001B00050010001A00D2 +:1002800019001D0028000530E000E200E300033003 +:100290002C002C0004305000510052004F00350259 +:1002A0001E021F0220022102220223022402250232 +:1002B000260227022A004C003A003B003C003D0089 +:1002C0003E003F002D022E022F02300231020100BB +:1002D000400041004200430044004500010001008D +:1002E0000100010001000100010001000100010006 +:1002F000010001000100AB00AA00A900AE0035001A +:100300001E001F00200021002200230024002500E1 +:10031000260027002A004C003A003B003C003D002C +:100320003E003F002D002E002F0030003100010064 +:10033000400041004200430044004500010001002C +:1003400001000100010001000100010001000100A5 +:10035000010001000100AB00AA00A900AE000000EE +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000003301A +:1003B00000000000043000000000000000001E00EB +:1003C0001E001E001E001E001E001E001E001E003D +:1003D0001E001E001E00000014001A000800150078 +:1003E00017001C0018000C00120013002F00000062 +:1003F00004001600070009000A000B000D000E00A3 +:100400000F00330034000D3000000000060019001A +:1004100000000000110010000000000000000000BB +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C :10046000000000000000000000000000000000008C :10047000000000000000000000000000000000007C :10048000000000000000000000000000000000006C @@ -117,1512 +117,1529 @@ :1007400000000000000000000000000000000000A9 :100750000000000000000000000000000000000099 :100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C00000000000000001000050010001000100D5 -:1007D0000100010001000100010001004C000100C6 -:1007E0000100010007300630135012500030013074 -:1007F00002300C30010001000B300A3009300830A3 -:1008000001000100010001000100010001000100E0 -:1008100001000100010001000100010001000100D0 -:100820000100010001002803540068006500200059 -:1008300050006C0061006E0063006B0020004B00F4 -:100840006500790062006F006100720064000000C2 -:100850002C034F007200740068006F006C00690088 -:100860006E0065006100720020004B006500790099 -:1008700062006F00610072006400730000000403F6 -:10088000090409026D00040100A0FA090400000136 -:1008900003010100092111010001223F0007058128 -:1008A0000308000A090401000103010200092111E3 -:1008B000010001224D000705820308000A09040215 -:1008C0000001030000000921110100012236000788 -:1008D00005830308000A090403000103000000095E -:1008E00021110100012239000705840310000112C3 -:1008F00001100100000008EDFE606001000102002F -:100900000105010906A101050719E029E7150025E0 -:1009100001950875018102050819012905950575DC -:1009200001910295017503910105071900297715B9 -:10093000002501957875018102C005010980A1019A -:10094000850216010026B7001A01002AB7007510AB -:1009500095018100C0050C0901A101850316010064 -:10096000269C021A01002A9C02751095018100C084 -:1009700005010902A1010901A100050919012905C3 -:100980001500250195057501810295017503810109 -:100990000501093009311581257F95027508810609 -:1009A00009381581257F950175088106050C0A38DF -:1009B000021581257F950175088106C0C0050109D2 -:1009C00006A101050719E029E7150025019508751D -:1009D0000181029501750881010508190129059514 -:1009E000057501910295017503910105071900290B -:1009F000FF150025FF950675088100C011241FBE54 -:100A0000CFEFDAE0DEBFCDBF04B603FE24C0809195 -:100A1000190490911A04A0911B04B0911C04873012 -:100A2000904BA740B04BB9F41092190410921A04DD -:100A300010921B0410921C0414BE84B7877F84BFDD -:100A400088E10FB6F89480936000109260000FBEAA -:100A5000E0E0F8E3099513E0A0E0B1E0E4E8F3E6B4 -:100A600002C005900D92A431B107D9F714E0A4E1BA -:100A7000B3E001C01D92A931B107E1F70E94EC1566 -:100A80000C94C0310C940000279A2F988FEF9FEFA1 -:100A900090938700809386008AE08093800089E1AC -:100AA000809381000C94452D282F81110BC08091DB -:100AB0008000877F8093800010928D0010928C00C0 -:100AC0002F9808952F9880918000886080938000EF -:100AD000233019F48FEF9FEF0FC083E090E0821B6B -:100AE0009109880F991F2FEF3FEFA90102C056957A -:100AF00047958A95E2F7CA0190938D0080938C0008 -:100B00000895CF93DF93EC010E94DC28BE0180E0C2 -:100B100090E0DF91CF910C9407250F931F93462F00 -:100B200050E04E30510508F0DEC0DC01FA01EA5A0F -:100B3000FF4F12968C910C948431882309F4D3C012 -:100B400000E010E0980140E064E070E08BE292E0A9 -:100B50000E944F1281E090E00FC0882309F4C3C0C7 -:100B600000E010E0980140E066E070E08BEB91E07F -:100B70000E944F1282E090E00E948105B4C0882359 -:100B800009F4B1C000E010E0980140E068E070E0D6 -:100B90008BEE91E00E944F1284E090E0EDCF88232D -:100BA00011F083E005C083E00CC0882349F084E0A5 -:100BB0000E94842540E164E083E00E94910A93C092 -:100BC00084E00E94A525F6CF882331F085EE0E94AF -:100BD0006E1C0E949C2D87C085EE0E94361D83C02E -:100BE000882309F480C00E94E30D7DC0882309F4A6 -:100BF0007AC00E94DC0D00E010E0980140E065E062 -:100C000070E08BE492E027C0882309F46CC085E093 -:100C10000E94A5250E94040E66C0882309F463C0C3 -:100C200000E010E0980140E068E070E08BE191E0C6 -:100C30000E944F1285E00E94842555C0882309F444 -:100C400052C00E94E21200E010E0980140E068E02B -:100C500070E08BE191E00E944F1245C0882309F4B7 -:100C600042C00E94ED12EFCF8823E9F100E010E0CE -:100C7000980140E066E070E08BE891E00E944F123E -:100C800084E00E94A52583E00E94A52580E10E94C2 -:100C9000A52585E00E94A5250E94040E86E00E94FD -:100CA00084250E94C928811102C00E94A5280E94A3 -:100CB000E12890E090931804809317048068809353 -:100CC00017040E94E5280FC0882369F000E010E0B7 -:100CD000980140E066E070E08BE591E00E944F12E1 -:100CE00086E00E94A52580E090E01F910F91089575 -:100CF0000F931F932FEF89EF90E021508040904099 -:100D0000E1F700C0000000E010E0980140E065E07D -:100D100070E08BE492E00E944F121F910F910895B2 -:100D20000F931F9300E010E0980140E063E070E053 -:100D300083E091E00E944F122FEF82E597E021506F -:100D400080409040E1F700C000001F910F9108958E -:100D5000CF92DF92EF92FF920F931F93CF93DF9387 -:100D6000CDB7DEB7CC58D1090FB6F894DEBF0FBEB1 -:100D7000CDBF2091D10325FFC5C08C01FC0192811C -:100D800080910201992309F460C096E4E0E9F2E061 -:100D9000DE01A95BBF4F01900D929A95E1F7F80132 -:100DA0009081E0910001F0910101E90FF11DEE0F3A -:100DB000FF1F27E430E02C0F3D1FE20FF31F60817F -:100DC0007181680F711D882777FD8095982F0E948B -:100DD000E02E20E030E040E451E40E94452E6B011B -:100DE0007C01F801218184E090E0821B9109BC0123 -:100DF000882777FD8095982F0E94E02E9B01AC01FB -:100E0000C701B6010E94DD2D9B01AC0160E070E0DE -:100E100080E090E40E94F72F20E030E04CE551E4C0 -:100E20000E94942F4FE050E0C457DF4F0FB6F89464 -:100E3000DEBF0FBECDBFDF91CF911F910F91FF900D -:100E4000EF90DF90CF900C94EF1196E4E0E9F2E0A0 -:100E5000DE01119601900D929A95E1F7F8019081CB -:100E6000E0910001F0910101E90FF11DEE0FFF1F6C -:100E700021E030E02C0F3D1FE20FF31F60817181F4 -:100E8000680F711D882777FD8095982F0E94E02EAE -:100E900020E030E040E451E40E94452E6B017C01EB -:100EA000F801218184E090E0821B9109BC01882730 -:100EB00077FD8095982F0E94E02E9B01AC01C70121 -:100EC000B6010E94DD2D9B01AC0160E070E080E086 -:100ED00090E40E94F72F20E030E04CE551E40E94BE -:100EE000942FC457DF4F0FB6F894DEBF0FBECDBFAF -:100EF000DF91CF911F910F91FF90EF90DF90CF90F6 -:100F00000C94370EC457DF4F0FB6F894DEBF0FBEF8 -:100F1000CDBFDF91CF911F910F91FF90EF90DF90A8 -:100F2000CF90089508950E9444056E9A769A0C9485 -:100F300078060C9492070C94A8060895880F991FC0 -:100F4000FC01EA5BFF4F859194910895880F991FEA -:100F5000FC01EA53FE4F8591949108950F931F93DE -:100F6000CF93DF93EC01811520E49207A0F5C11522 -:100F700080E3D80708F0E1C0C83ED105D8F4C03EF0 -:100F8000D10508F0EEC1C83AD10578F4C53AD105CB -:100F900008F074C0C130D10509F46DC008F4DEC199 -:100FA000C430D10508F0DDC1D9C1CB3BD10508F46F -:100FB00070C0D4C1C11590E2D90708F0B9C0C115FD -:100FC00021E0D20708F0CDC1C03FD10508F4C6C169 -:100FD0008E01106506C2C13080E5D80709F4BDC096 -:100FE00068F5C13120E4D20709F4AEC050F4C03135 -:100FF00090E4D90708F0A5C0CF70DD278E01146DED -:10100000F0C1C33120E4D20709F4A4C008F49FC0A2 -:10101000C115D04509F0A2C10E944B210E94040EC7 -:101020000E9490069FEF24E38CE091502040804086 -:10103000E1F700C000000E946828D3C1C11520E676 -:10104000D20730F4C11581E5D80708F48CC02DC152 -:10105000C11590E7D90708F481C1C11520E8D2076E -:1010600008F478C1C11580E9D80708F077C1DF70AE -:101070008E01106AB6C101E010E0B3C1C53AD105D6 -:1010800009F471C1C63AD10509F070C102E810E453 -:10109000A8C1C83AD10509F46CC1C93AD10509F40F -:1010A0006BC1CA3AD10509F46AC1CB3AD10509F43A -:1010B00069C1CC3AD10509F468C1CD3AD10509F42A -:1010C00067C1C03BD10509F466C1CE3AD10509F428 -:1010D00065C1CF3AD10509F464C1C13BD10509F41A -:1010E00063C1C23BD10509F462C1C33BD10509F418 -:1010F00061C1C43BD10509F460C1C53BD10509F408 -:101100005FC1C63BD10509F45EC1C73BD10509F4F7 -:101110005DC1C83BD10509F45CC1C93BD10509F4E7 -:101120005BC1CA3BD10509F45AC100E014E459C1BE -:10113000CE019F700E94A60755C1DD278E01106C5D -:1011400050C100E011ED4DC100E010ED4AC100E0DA -:1011500012ED47C100E013ED44C18091ED038160C1 -:101160008093ED033EC10E94C928811102C00E94F4 -:10117000A5280E94E12890E090931804809317041A -:10118000C23090E5D90721F480911704816086C0B0 -:10119000C43020E5D20721F48091170482607EC01C -:1011A000C63080E5D80721F480911704846076C0AA -:1011B000C83090E5D90719F48091170427C0CA30C8 -:1011C00020E5D20721F480911704806167C0CC30FC -:1011D00080E5D80721F48091170480625FC0CE308B -:1011E00090E5D90721F480911704806457C0C0317D -:1011F00020E5D20721F48091170480684FC0C231E6 -:1012000080E5D80729F4809117048460886046C07F -:10121000C33090E5D90721F4809117048E7F3EC03A -:10122000C53020E5D20721F4809117048D7F36C0A8 -:10123000C73080E5D80721F4809117048B7F2EC03A -:10124000C93090E5D90719F48091170426C0CB3036 -:1012500020E5D20721F4809117048F7E1FC0CD3086 -:1012600080E5D80721F4809117048F7D17C0CF3017 -:1012700090E5D90721F4809117048F7B0FC0C1310D -:1012800020E5D20721F4809117048F7707C0C3317E -:10129000D04531F4809117048B7F877F80931704AA -:1012A000809117040E94E5289CC08D2F99278F708C -:1012B000992781309105D9F49E012370332702C00C -:1012C000880F991F2A95E2F79C688E0144E0000F71 -:1012D000111F4A95E1F700271370802B912B53E0E3 -:1012E000CC0FDD1F5A95E1F7C076DD272FC0823085 -:1012F000910531F4DC2FCC278E01016F106A71C08B -:101300008330910569F4CE018370992701E010E0E4 -:1013100002C0000F111F8A95E2F7C8019C680FC038 -:10132000049709F05EC0CE018370992701E010E0B8 -:1013300002C0000F111F8A95E2F7C8019A6823E0E6 -:10134000CC0FDD1F2A95E1F7C07ED7708C010C2BE6 -:101350001D2B47C0DF708E01106243C000E010E01B -:1013600040C08E013EC001E810E43BC003E810E439 -:1013700038C002EE14E435C009EE14E432C00AEEBF -:1013800014E42FC005EB14E42CC006EB14E429C0D0 -:1013900007EB14E426C00CEC14E423C00DEC14E4B9 -:1013A00020C003E815E41DC00AE815E41AC002E9EC -:1013B00015E417C004E915E414C001E216E411C0F5 -:1013C00003E216E40EC004E216E40BC005E216E4E4 -:1013D00008C006E216E405C007E216E402C00AE20D -:1013E00016E4C801DF91CF911F910F9108959CE001 -:1013F000799FF001112490E3899FE00DF11D1124E4 -:10140000E60FF11DEE0FFF1FEA53FE4F85919491F9 -:10141000803E9105E0F4803C910558F581339105BB -:1014200009F46FC048F48932910509F463C08A3227 -:10143000910509F46DC072C089339105E9F08238D5 -:101440009105D1F08533910509F44DC067C0833E05 -:10145000910581F138F4803E9105B9F0823E910505 -:10146000D9F05CC0863E910561F1873E9105A1F1FE -:1014700055C00E949E0708952091170420FD02C0C8 -:1014800021FF4CC080EE90E049C08091170480FF9E -:10149000F9CF89E390E042C08091170482FF0EC02B -:1014A0008091170484FF03C080E090E037C083EE92 -:1014B00090E034C08091170482FFF2CF82EE90E07A -:1014C0002DC08091170483FF0BC08091170484FD09 -:1014D000EBCF87EE90E022C08091170483FFF5CF19 -:1014E00086EE90E01BC08091170485FF07C089E25B -:1014F00090E014C08091170485FFF9CF85E390E058 -:101500000DC08091170486FF07C08AE290E006C0F4 -:101510008091170486FFF9CF81E390E00E94AE0727 -:101520000895CF92DF92EF92FF920F931F9301E005 -:1015300010E020E030E06801790104C0CC0CDD1C33 -:10154000EE1CFF1C8A95D2F704C0000F111F221F4A -:10155000331F6A95D2F70C291D292E293F29C090E7 -:10156000D103D090D203E090D303F090D403C022F3 -:10157000D122E222F322842FC016D106E206F3061E -:1015800041F41F910F91FF90EF90DF90CF900C945A -:1015900084251F910F91FF90EF90DF90CF900C94D6 -:1015A000A52508950C94D10A5F926F927F928F9235 -:1015B0009F92AF92BF92CF92DF92EF92FF920F93E2 -:1015C0001F93CF93DF93CDB7DEB728970FB6F8946C -:1015D000DEBF0FBECDBFCE0101966C014E0199E07A -:1015E000890E911C20E030E040E050E060E070E0C7 -:1015F00000E010E0E12CF12C6C2C5D2C88E0782EC2 -:10160000AA24A394B12CE6EDF2E0A62DB52D872DEA -:1016100001900D928A95E1F7F601819191916F0108 -:10162000FC01E07FFF27E032F10559F48F70992724 -:10163000F50102C0EE0FFF1F8A95E2F7EE2AFF2A9E -:1016400037C0E033F10559F48F709927F50102C0D6 -:10165000EE0FFF1F8A95E2F70E2B1F2B29C0E034F7 -:10166000F10559F48F709927F50102C0EE0FFF1FA5 -:101670008A95E2F76E2B7F2B1BC0E035F10559F4FC -:101680008F709927F50102C0EE0FFF1F8A95E2F7D0 -:101690004E2B5F2B0DC0E036F10551F48F7099276A -:1016A000F50102C0EE0FFF1F8A95E2F72E2B3F2BAC -:1016B000C814D90409F0A7CF84B19E2D9095892331 -:1016C00084B985B1E82AE5B887B1902F9095892330 -:1016D00087B988B1082B08B98AB1962F90958923CC -:1016E0008AB98BB1682B6BB98DB1942F90958923F2 -:1016F0008DB98EB1482B4EB980B3922F9095892326 -:1017000080BB81B3282B21BB28960FB6F894DEBF8F -:101710000FBECDBFDF91CF911F910F91FF90EF9042 -:10172000DF90CF90BF90AF909F908F907F906F9001 -:101730005F9008955F926F927F928F929F92AF9287 -:10174000BF92CF92DF92EF92FF920F931F93CF93AE -:10175000DF93CDB7DEB768970FB6F894DEBF0FBE44 -:10176000CDBF85B7806885BF85B7806885BF0E947B -:10177000D40ACE0101966C014E0199E1890E911CAB -:1017800020E030E040E050E060E070E000E010E099 -:10179000E12CF12C6C2C5D2C88E1782EAA24A394EA -:1017A000B12CEEEDF2E0A62DB52D872D01900D9216 -:1017B0008A95E1F7F601819191916F01FC01E07F3B -:1017C000FF27E032F10559F48F709927F50102C027 -:1017D000EE0FFF1F8A95E2F7EE2AFF2A37C0E033AB -:1017E000F10559F48F709927F50102C0EE0FFF1F24 -:1017F0008A95E2F70E2B1F2B29C0E034F10559F42E -:101800008F709927F50102C0EE0FFF1F8A95E2F74E -:101810006E2B7F2B1BC0E035F10559F48F70992793 -:10182000F50102C0EE0FFF1F8A95E2F74E2B5F2BEA -:101830000DC0E036F10551F48F709927F50102C013 -:10184000EE0FFF1F8A95E2F72E2B3F2BC814D90409 -:1018500009F0A7CF84B19E2D9095892384B985B1D5 -:10186000E82AE5B887B1902F9095892387B988B188 -:10187000082B08B98AB1962F909589238AB98BB124 -:10188000682B6BB98DB1942F909589238DB98EB14A -:10189000482B4EB980B3922F9095892380BB81B39A -:1018A000282B21BB10921D0310921C0310921503CC -:1018B0001092140310921F0310921E03109217032C -:1018C0001092160310922103109220031092190314 -:1018D00010921803109223031092220310921B03FC -:1018E00010921A0368960FB6F894DEBF0FBECDBFF4 -:1018F000DF91CF911F910F91FF90EF90DF90CF90EC -:10190000BF90AF909F908F907F906F905F900C945E -:1019100093077F928F929F92AF92BF92CF92DF9266 -:10192000EF92FF920F931F93CF93DF93CDB7DEB764 -:10193000A0970FB6F894DEBF0FBECDBF6E0149E190 -:10194000C40ED11C84E1E82E83E0F82E98E0792EB5 -:10195000BC2CAD2C01E010E028E1822E35E0932E66 -:10196000E6EDF2E0AB2DBA2D872D01900D928A9510 -:10197000E1F7F601819191916F019C01207F33275E -:101980002032310591F424B18F709927A80102C04B -:10199000440F551F8A95E2F7CA01922F982B94B9EC -:1019A00095B18095892385B953C02033310591F4D1 -:1019B00027B18F709927F80102C0EE0FFF1F8A959B -:1019C000E2F7CF01922F982B97B998B18095892390 -:1019D00088B93EC02034310591F42AB18F7099271F -:1019E000A80102C0440F551F8A95E2F7CA01922F41 -:1019F000982B9AB99BB1809589238BB929C0203542 -:101A0000310591F42DB18F709927F80102C0EE0FC6 -:101A1000FF1F8A95E2F7CF01922F982B9DB99EB1B7 -:101A2000809589238EB914C02036310589F420B3FE -:101A30008F709927A80102C0440F551F8A95E2F7BD -:101A4000CA01922F982B90BB91B38095892381BBBB -:101A500050EA5A95F1F7BE016F5F7F4F20E030E00A -:101A600040E050E0EEEDF2E0DE011196882D0190AD -:101A70000D928A95E1F7FB0181919191BF01FC01E3 -:101A8000E07FFF27E032F10511F4E3B113C0E0334A -:101A9000F10511F4E6B10EC0E034F10511F4E9B13D -:101AA00009C0E035F10511F4ECB104C0E036F105F0 -:101AB000B9F4EFB1F0E08F70992702C0F595E79582 -:101AC0008A95E2F7E0FD08C0C801042E02C0880F25 -:101AD000991F0A94E2F702C080E090E0282B392B8E -:101AE0004F5F5F4F4C30510509F0BCCFF70180814B -:101AF00091818217930721F03183208390927302A2 -:101B00000E94D40AF2E0EF0EF11C4CE1E41643E02F -:101B1000F40609F025CF80917302882361F181508A -:101B200080937302882339F08FE99FE00197F1F7E2 -:101B300000C0000020C08091140390911503909381 -:101B40001D0380931C0380911603909117039093BB -:101B50001F0380931E0380911803909119039093A3 -:101B600021038093200380911A0390911B0390938B -:101B70002303809322030E94990781E0A0960FB669 -:101B8000F894DEBF0FBECDBFDF91CF911F910F91B3 -:101B9000FF90EF90DF90CF90BF90AF909F908F908D -:101BA0007F900895E82FF0E0EE0FFF1FE45EFC4FFA -:101BB00080819181089508958091020481608093CD -:101BC00002040C94F728809102048E7F8093020413 -:101BD0000C94F7280E94C928811102C00E94A528F0 -:101BE0000E94F328809302043E9A809171008D7FB9 -:101BF0008093710082E0809390008AE1809391004D -:101C000081E080932603089580912603811102C00C -:101C10000E94EA0D10927603109275038091710074 -:101C20008D7F80937100809190008F7780939000DA -:101C3000109238031092370310926F0310927003C2 -:101C4000109271031092720310926E0310926D0342 -:101C5000EDE4F3E0ADE3B3E0119211921192119231 -:101C60001D921D9283E0ED36F807B1F70895CF92EB -:101C7000DF92EF92FF920F931F93CF93DF93209108 -:101C80003703222309F484C06B017C018091260371 -:101C9000811102C00E94EA0D0DE613E0C7E0D0E01A -:101CA000A7019601F80192918291729162918F0140 -:101CB0000E94412E811131C0FE01EE0FFF1FEE0F79 -:101CC000FF1FE35BFC4F1082118212821382DE0140 -:101CD000AA0FBB1FA35CBC4F11961C921E92C7306B -:101CE000D105E9F021964481558166817781408351 -:101CF000518362837383148215821682178212962F -:101D00008D919C91139711969C938E9313961C9290 -:101D10001E92129734961296E2CF219708F6809180 -:101D2000750390917603019797FD05C09093760314 -:101D30008093750304C0109276031092750380910E -:101D400075039091760320917303309174032817E3 -:101D5000390724F01092740310927303892BC1F495 -:101D6000809171008D7F80937100809190008F77BA -:101D70008093900010926F03109270031092710381 -:101D80001092720310926E0310926D03109237033B -:101D9000DF91CF911F910F91FF90EF90DF90CF9047 -:101DA00008951F920F920FB60F9211244F925F92D7 -:101DB0006F927F928F929F92AF92BF92CF92DF925B -:101DC000EF92FF922F933F934F935F936F937F9385 -:101DD0008F939F93AF93BF93CF93DF93EF93FF9333 -:101DE00080913703882309F49BC1C0917503D0917A -:101DF00076031C161D060CF093C1409027035090EB -:101E000028036090290370902A0320E030E0A901A4 -:101E1000C301B2010E94902F18160CF065C0C130AA -:101E2000D10509F452C08091730390917403BE01EF -:101E30000E9470317C0190937403809373038090AF -:101E4000390390903A03A0903B03B0903C0320E00C -:101E500030E040E85FE3C501B4010E94DD2D6093EE -:101E6000390370933A0380933B0390933C03F7014B -:101E7000EE0FFF1FEE0FFF1FE35BFC4FA30192016C -:101E800060817181828193810E94452E20E030E043 -:101E900040E05EE30E94942F9B01AC01C501B401B8 -:101EA0000E94902F18168CF4C7010196BE010E9463 -:101EB00070319093740380937303109239031092DE -:101EC0003A0310923B0310923C03E0917303F091AC -:101ED0007403EE0FFF1FEE0FFF1FE35BFC4F6081EB -:101EE000718182819381D0C0C0906F03D0907003C4 -:101EF000E0907103F090720320E030E0A901C70187 -:101F0000B6010E94412E2197882309F4A2C0FE0148 -:101F1000EE0FFF1FEE0FFF1FE35BFC4F80809180F1 -:101F2000A280B380A5019401C701B6010E94412E91 -:101F300087FF31C0A501940160E070E08CED93EC67 -:101F40000E94452E20E030E040E451E40E94452EFE -:101F500020E030E040E05FE30E94942F9B01AC0161 -:101F600060E070E080E090E40E94F72F9B01AC01FC -:101F7000C501B4010E94942F9B01AC01C701B601B9 -:101F80000E94412E87FF07C0A701960160E070E024 -:101F90008CED93E439C0A5019401C701B6010E94FC -:101FA000902F18160CF055C0A501940160E070E068 -:101FB0008CED93E40E94452E20E030E040E451E4B3 -:101FC0000E94452E20E030E040E05FE30E94942F25 -:101FD0009B01AC0160E070E080E090E40E94F72F8C -:101FE0009B01AC01C501B4010E94942F9B01AC017F -:101FF000C701B6010E94902F18165CF5A701960143 -:1020000060E070E08CED93EC0E94452E20E030E023 -:1020100040E451E40E94452E20E030E040E05FE3E0 -:102020000E94942F9B01AC0160E070E080E090E49E -:102030000E94F72F9B01AC01C701B6010E94942FAB -:1020400060936F0370937003809371039093720396 -:1020500013C0FE01EE0FFF1FEE0FFF1FE35BFC4FEF -:1020600080819181A281B38180936F0390937003EB -:10207000A0937103B093720360916F03709170032A -:102080008091710390917203209124033091250374 -:102090002F3F4FEF340731F02F5F3F4F3093250331 -:1020A000209324030E94F8126B017C0120E034E2AB -:1020B00044EF51E40E94412E87FF08C086EFC82EEE -:1020C00088E2D82E84EFE82E81E4F82E20E030E07C -:1020D00040E051E4C701B6010E94942F9B01AC017E -:1020E00060E074E284E79BE40E94452E6B017C0172 -:1020F0000E94AD2E70939700609396002091740219 -:10210000309175024091760250917702C701B60175 -:102110000E94942F0E94AD2E7093990060939800B6 -:1021200080913803882309F433C1C0903303D090E1 -:102130003403E0903503F090360320E030E0A9014D -:10214000C701B6010E94902F1816D4F58091240380 -:10215000909125038F3F2FEF920729F001969093DE -:10216000250380932403C701B6010E94F81220E0E2 -:1021700030E040E051E40E94942F9B01AC0160E00C -:1021800074E284E79BE40E94452E6B017C010E946F -:10219000AD2E709397006093960020917402309159 -:1021A00075024091760250917702C701B6010E94F4 -:1021B000942F0E94AD2E709399006093980008C0F0 -:1021C0001092970010929600109299001092980029 -:1021D00060912D0370912E036F5F7F4F70932E03DC -:1021E00060932D03209196003091970080E090E05D -:1021F000232BF1F0C0919600D09197000E94DE2E23 -:102200006B017C01BE0180E090E00E94DE2E9B010C -:10221000AC0160912F037091300380913103909154 -:1022200032030E94452E20E03FEF4FE757E410C0F5 -:102230000E94DE2E6B017C0120E030EE4FEF54E473 -:1022400060912F037091300380913103909132039C -:102250000E94942F9B01AC01C701B6010E94902FF0 -:1022600087FD96C080912B038F5F80932B0390E0B6 -:102270002091FE033091FF0382179307A0F0809115 -:102280000904882319F010922B030DC0809171006E -:102290008D7F80937100809190008F778093900064 -:1022A000109238037DC080912C03C0912B038111C3 -:1022B00028C0C0900304D0900404E0900504F0907E -:1022C000060420E030E0A901C701B6010E94902F6A -:1022D0001816BCF481E080932C0310923303109203 -:1022E00034031092350310923603C0922F03D0921C -:1022F0003003E0923103F0923203C150C0932B03BC -:1023000043C010922C031092250310922403E091F5 -:102310000004F091010448E0C49FE00DF11D112478 -:1023200080819181A281B3818093330390933403A0 -:10233000A0933503B093360320E030E040E85EE33D -:1023400064817581868197810E94942F6B017C0145 -:1023500020E030E048EC52E460917802709179021C -:1023600080917A0290917B020E94452E9B01AC01E4 -:10237000C701B6010E94942F60932F03709330031E -:10238000809331039093320310922E0310922D0309 -:102390008091020480FD04C010923803109237032C -:1023A000FF91EF91DF91CF91BF91AF919F918F916D -:1023B0007F916F915F914F913F912F91FF90EF909F -:1023C000DF90CF90BF90AF909F908F907F906F9055 -:1023D0005F904F900F900FBE0F901F901895CF9267 -:1023E000DF92EF92FF92CF93DF936B017C01EA01C2 -:1023F00080912603811102C00E94EA0D809102049F -:1024000080FF46C0809175039091760308970CF089 -:102410003FC0809171008D7F80937100809138035F -:1024200081110E94040E81E08093370310922503EE -:102430001092240320E030E0A901C701B6010E94F8 -:10244000902F1816DCF48091750390917603FC01AF -:10245000EE0FFF1FEE0FFF1FE35BFC4FC082D18228 -:10246000E282F382FC01EE0FFF1FE35CFC4FD1839D -:10247000C0830196909376038093750380917100D9 -:1024800082608093710080919000806880939000BA -:10249000DF91CF91FF90EF90DF90CF9008958F92D2 -:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3 -:1024B0001F93CF93DF93EC017B01D42E4801590188 -:1024C00080912603811102C00E94EA0D80910204CE -:1024D00080FF6BC0809171008D7F8093710080912F -:1024E000370381110E94040E81E080933803D0935A -:1024F0000104C0930004F092FF03E092FE03D09227 -:1025000009048092030490920404A0920504B092FE -:1025100006041092390310923A0310923B03109272 -:102520003C0310922B0388819981AA81BB818093FF -:10253000330390933403A0933503B093360320E024 -:1025400030E040E85EE36C817D818E819F810E9456 -:10255000942F6B017C0120E030E048EC52E4609164 -:1025600078027091790280917A0290917B020E94A8 -:10257000452E9B01AC01C701B6010E94942F6093C8 -:102580002F037093300380933103909332031092A2 -:102590002E0310922D038091710082608093710050 -:1025A00080919000806880939000DF91CF911F917F -:1025B0000F91FF90EF90DF90CF90BF90AF909F90E2 -:1025C0008F9008958091770390E0019665E070E028 -:1025D0000E9470318093770308958091770390E093 -:1025E000019765E070E00E94703180937703089551 -:1025F0008F929F92AF92BF92CF92DF92EF92FF9213 -:10260000CF93DF936B017C01C0912403D09125030C -:10261000BE0180E090E00E94DE2E4B015C01A7012C -:10262000960160E070E08CE594E40E94452E9B01E9 -:10263000AC01C501B4010E94942F0E94B22E4091BA -:102640007703423009F45CC028F4442351F0413050 -:10265000E9F0FBC0433009F481C0443009F4B4C050 -:10266000F4C080E090E0A0E0BFE380937402909318 -:102670007502A0937602B09377021092270310920E -:1026800028031092290310922A03DFC01092270317 -:10269000109228031092290310922A0364317105C5 -:1026A00040F46A307105E0F520E030E040E85EE398 -:1026B0003BC0693C710508F0C0C080E090E00E941A -:1026C000DE2E20E030E040EA51E40E94DC2D20E0E4 -:1026D00030E044E353E40E94452E9B01AC010E948C -:1026E000942F20E030E040E05EE30E94942F9B01B5 -:1026F000AC0160E070E080E09EE30E94DC2D5BC0F6 -:1027000010922703109228031092290310922A0393 -:102710006432710578F4FB01EC59FF4F0C9484315D -:1027200020E030E040E05FE3C701B6010E94942F53 -:102730006B017C0180E090E0A0E0BEE38093740236 -:1027400090937502A0937602B09377027EC0A701A2 -:102750009601C701B6010E94DD2DEACF1092270332 -:10276000109228031092290310922A032AE0269F30 -:10277000A001279F500D1124CA0168EB7BE00E9445 -:102780005C31BC016C5D754077FF03C0719561954C -:102790007109882777FD8095982F0E94E02E2EE3FF -:1027A00033EC4EE259E30E94942F20E030E040ECFD -:1027B0005EE30E94DD2D6093740270937502809336 -:1027C00076029093770241C010922703109228035B -:1027D0001092290310922A03CE0183709927892B26 -:1027E000E1F0BE016170772780E090E00E94DE2E6C -:1027F00020E030E040E05EE30E94942F20E030E0F3 -:1028000040E45FE30E94DD2D6093740270937502D3 -:1028100080937602909377020CC080E090E0A0E075 -:10282000BFE38093740290937502A0937602B093F5 -:102830007702C770DD27CD2B41F4109274021092FD -:1028400075021092760210927702C701B601DF91ED -:10285000CF91FF90EF90DF90CF90BF90AF909F907F -:102860008F900895809188030895CF93DF9300D0CF -:102870001F92CDB7DEB79C0180910E04843019F50C -:1028800093E099833B832A839093E9008FEF9091A3 -:10289000E800815095FD06C095ED9A95F1F700008E -:1028A0008111F5CF8091E80085FF0DC040E050E038 -:1028B00063E070E0CE0101960E9496168091E800D8 -:1028C0008E778093E8000F900F900F90DF91CF915B -:1028D0000895CF93DF9300D01F92CDB7DEB720913C -:1028E0000E04243021F522E029839B838A8383E030 -:1028F0008093E9008FEF9091E800815095FD06C02C -:1029000095ED9A95F1F700008111F5CF8091E800DF -:1029100085FF0DC040E050E063E070E0CE0101961D -:102920000E9496168091E8008E778093E8000F90C1 -:102930000F900F90DF91CF91089520910E042430D5 -:10294000F1F422E02093E9002FEF3091E8002150CC -:1029500035FD06C035ED3A95F1F700002111F5CFB0 -:102960002091E80025FF0BC040E050E065E070E0FA -:102970000E9496168091E8008E778093E800089573 -:10298000CF93DF93EC0190910E04943009F046C090 -:10299000809186028823D9F0809187028823B9F03C -:1029A0009093E9008FEF9091E800815095FD06C06B -:1029B00095E19A95F1F700008111F5CF8091E8003B -:1029C00085FF2CC040E050E060E170E017C081E07E -:1029D0008093E9008FEF9091E800815095FD06C04B -:1029E00095ED9A95F1F700008111F5CF8091E800FF -:1029F00085FF14C040E050E068E070E0CE010E9426 -:102A000096168091E8008E778093E80080E1FE01C1 -:102A1000A8E7B3E001900D928A95E1F7DF91CF919D -:102A2000089580910D04811109C00E942B180E9405 -:102A300088188091E20084608093E20008951092EB -:102A40000D040895089508950C94D02742E061EC98 -:102A500081E00E94A51742E061EC82E00E94A51788 -:102A600042E061EC83E00E94A51742E161EC84E062 -:102A70000C94A51780911004833009F455C030F4EC -:102A8000813071F0823009F48EC008958A3009F4E3 -:102A90007AC08B3009F460C0893009F09CC020C036 -:102AA00080910F04813A09F096C08091E800877FF9 -:102AB0008093E8008091130490911404892B21F4F1 -:102AC00060E188E793E003C060E080E090E070E0C0 -:102AD0000E94E1168091E8008B778093E8000895CA -:102AE00080910F04813209F076C080911304909197 -:102AF0001404009719F0039709F06DC08091E80065 -:102B0000877F8093E8008091E80082FD05C0809176 -:102B10000E048111F8CF5FC08091F100809388038B -:102B20008091E8008B7753C080910F04813A09F0BF -:102B300052C08091130490911404892B09F04BC06A -:102B40008091E800877F8093E8008091E80080FF13 -:102B5000FCCF8091860236C080910F048132D9F576 -:102B60008091130490911404892BA9F58091E800B9 -:102B7000877F8093E8000E94DA1780911104809388 -:102B800086020C944B2180910F04813221F58091B3 -:102B9000E800877F8093E8000E94DA178091120492 -:102BA00080938903089580910F04813AA1F4809164 -:102BB000E800877F8093E8008091E80080FFFCCFE9 -:102BC000809189038093F1008091E8008E77809353 -:102BD000E8000C94DA17089584B7877F84BF88E1F2 -:102BE0000FB6F89480936000109260000FBE90E0E2 -:102BF00080E80FB6F89480936100909361000FBE57 -:102C00000E947D1B0E942B180E9488188091E20070 -:102C100084608093E20078940E940E1B0E947F1BC8 -:102C20008CE792E00E94291B80910E04853069F4A4 -:102C30000E948A2780910C048823B1F30E94B82750 -:102C4000882391F30E948016EFCF0E94871BECCF60 -:102C5000292F332723303105C9F064F421303105A1 -:102C600081F02230310509F043C08DE690E022E882 -:102C700038E042C021323105F1F02232310541F114 -:102C800037C082E190E02FEE38E036C099278130DE -:102C9000910541F08230910541F0892B49F5EEE72D -:102CA000F8E005C0E0E5F8E002C0E6E2F8E0849173 -:102CB00090E09F0121C06430D8F4E62FF0E0EE0FE1 -:102CC000FF1FEE5FFC4F2081318189E090E014C04E -:102CD000643070F470E0FB01EE0FFF1FE650FD4F13 -:102CE00020813181FB01EA50FD4F808190E004C0DA -:102CF00080E090E020E030E0FA0131832083089505 -:102D000080E189BD82E189BD09B400FEFDCF8091DB -:102D1000D8008F7D8093D8008091E00082608093FE -:102D2000E0008091E00081FDFCCF0895CF92DF921A -:102D3000EF92FF920F931F93CF93DF93EC018B01E0 -:102D40006A010E94F917811133C0C114D10439F00E -:102D5000F60180819181081B190BC80FD91FE12C46 -:102D6000F12C0115110519F18091E80085FD16C0BF -:102D70008091E8008E778093E800C114D10449F077 -:102D8000F60180819181E80EF91EF182E08285E0F2 -:102D90000FC00E94F917882321F30AC089918093FC -:102DA000F10001501109FFEFEF1AFF0ADACF80E0BE -:102DB000DF91CF911F910F91FF90EF90DF90CF9017 -:102DC000089520911504309116042617370748F00E -:102DD0006115710539F42091E8002E772093E80001 -:102DE00001C0B90140E061157105A9F120910E04FF -:102DF000222309F443C0253009F442C02091E800A1 -:102E000023FD40C02091E80022FD32C02091E8005F -:102E100020FFE9CF4091F3002091F20030E0342B05 -:102E2000FC01CF016115710559F02830310540F4DE -:102E300081918093F100615071092F5F3F4FF1CF75 -:102E400041E02830310509F040E02091E8002E777C -:102E50002093E800C8CF4111C9CF0AC080910E0469 -:102E6000882361F0853061F08091E80083FD0AC01D -:102E70008091E80082FFF2CF80E0089582E008951B -:102E800083E0089581E0089520911504309116049F -:102E90002617370748F06115710539F42091E800CD -:102EA0002E772093E80001C0B901FC0120E06115F4 -:102EB000710591F180910E04882309F440C085309A -:102EC00009F43FC08091E80083FD3DC08091E80097 -:102ED00082FD2FC08091E80080FFE9CF2091F300B0 -:102EE0008091F20090E0922B6115710559F08830C5 -:102EF000910540F424912093F100319661507109BD -:102F00000196F2CF21E0089709F020E08091E800D7 -:102F10008E778093E800CBCF2111CCCF0AC080916F -:102F20000E04882361F0853061F08091E80083FD14 -:102F30000AC08091E80082FFF2CF80E0089582E02D -:102F4000089583E0089581E00895982F973058F50B -:102F50009093E900981739F07091EC002091ED0002 -:102F60005091F00003C0242F762F50E021FF19C0AC -:102F70003091EB003E7F3093EB003091ED003D7FD0 -:102F80003093ED003091EB0031603093EB007093A3 -:102F9000EC002093ED005093F0002091EE0027FF0D -:102FA00007C09F5FD3CF8F708093E90081E00895C1 -:102FB00080E0089580910F0487FF11C08091E800A0 -:102FC00082FD05C080910E048111F8CF11C080915F -:102FD000E8008B770BC080910E04882349F0809124 -:102FE000E80080FFF8CF8091E8008E778093E800BA -:102FF00008952091E4003091E50095E64091EC00C1 -:10300000842F817040FF22C08091E80080FD1CC0A9 -:1030100080910E04882391F0853091F08091EB002F -:1030200085FD10C04091E4005091E5004217530720 -:1030300029F39A01915011F784E0089582E00895F0 -:1030400083E0089581E0089580E008954091E800CC -:1030500042FFDECF08950E9499180E94A118E0EE69 -:10306000F0E0808181608083E8EDF0E080818F77FF -:10307000808319BCA7EDB0E08C918E7F8C9380810A -:103080008F7E808310920D0408950F931F93CF932A -:10309000DF930E9499180E94A118C8EDD0E08881A2 -:1030A0008F77888388818068888388818F7D8883F3 -:1030B00019BC10920E0410920A0410920C04109283 -:1030C0000B0400EE10E0F80180818B7F8083888103 -:1030D0008160888342E060E080E00E94A517E1EE15 -:1030E000F0E080818E7F8083E2EEF0E0808181607D -:1030F0008083808188608083F80180818E7F8083D7 -:10310000888180618883DF91CF911F910F9108950D -:10311000E8EDF0E080818F7E8083E7EDF0E0808154 -:103120008160808384E082BF81E080930D040C94F1 -:103130004518E8EDF0E080818E7F80831092E200F8 -:1031400008951092DA001092E10008951F920F92F4 -:103150000FB60F9211242F933F934F935F936F936A -:103160007F938F939F93AF93BF93EF93FF93809140 -:10317000E10082FF0BC08091E20082FF07C08091D6 -:10318000E1008B7F8093E1000E940D1B8091DA00AB -:1031900080FF1FC08091D80080FF1BC08091DA00A3 -:1031A0008E7F8093DA008091D90080FF0DC080E18E -:1031B00089BD82E189BD09B400FEFDCF81E0809325 -:1031C0000E040E94111505C019BC10920E040E9435 -:1031D0001F158091E10080FF19C08091E20080FFFF -:1031E00015C08091E2008E7F8093E2008091E20022 -:1031F00080618093E2008091D80080628093D80043 -:1032000019BC85E080930E040E9423158091E10093 -:1032100084FF30C08091E20084FF2CC080E189BD32 -:1032200082E189BD09B400FEFDCF8091D8008F7D79 -:103230008093D8008091E1008F7E8093E10080919F -:10324000E2008F7E8093E2008091E20081608093B3 -:10325000E20080910A04882311F084E007C0809185 -:10326000E30087FD02C081E001C083E080930E048B -:103270000E9424158091E10083FF29C08091E20023 -:1032800083FF25C08091E100877F8093E10082E089 -:1032900080930E0410920A048091E1008E7F809347 -:1032A000E1008091E2008E7F8093E2008091E20055 -:1032B00080618093E20042E060E080E00E94A51718 -:1032C0008091F00088608093F0000E942215FF91A9 -:1032D000EF91BF91AF919F918F917F916F915F918E -:1032E0004F913F912F910F900FBE0F901F90189507 -:1032F0001F920F920FB60F9211242F933F934F936B -:103300005F936F937F938F939F93AF93BF93CF936D -:10331000DF93EF93FF93C091E900CF708091EC00B1 -:10332000D82FD17080FDD0E81092E9008091F00094 -:10333000877F8093F00078940E94BC191092E90076 -:103340008091F00088608093F000CD2BCF70C09307 -:10335000E900FF91EF91DF91CF91BF91AF919F91E4 -:103360008F917F916F915F914F913F912F910F902E -:103370000FBE0F901F9018951F93CF93DF93CDB77B -:10338000DEB7AA970FB6F894DEBF0FBECDBFEFE051 -:10339000F4E088E08E0F9091F10091938E13FBCFB3 -:1033A0000E943A158091E80083FF1FC180910F04AD -:1033B00090911004492F50E04A30510508F015C192 -:1033C000FA01E857FF4F0C948431803881F082383D -:1033D00009F00BC1809113048F708093E9008091F4 -:1033E000EB0085FB882780F91092E90006C08091E8 -:1033F0000B0490910C04911182609091E800977FEA -:103400009093E8008093F1001092F100C8C0282F3B -:103410002D7F09F0EAC0882319F0823061F0E5C001 -:1034200080911104813009F0E0C0933009F080E010 -:1034300080930C042BC080911104811127C08091CE -:1034400013048F7009F4D1C08093E9002091EB0040 -:1034500020FF1CC0933021F48091EB00806214C0E7 -:103460009091EB0090619093EB0021E030E0A90196 -:1034700002C0440F551F8A95E2F74093EA0010926C -:10348000EA008091EB0088608093EB001092E900E5 -:103490008091E800877F86C08111A7C01091110438 -:1034A0001F778091E3008078812B8093E3008091E7 -:1034B000E800877F8093E8000E94DA178091E80097 -:1034C00080FFFCCF8091E30080688093E3001111BE -:1034D00002C082E001C083E080930E0486C0805861 -:1034E000823008F082C080911104909112048C3DCA -:1034F00053E0950779F583E08A838AE289834FB7A1 -:10350000F894DE01139620E03EE051E2E32FF0E074 -:1035100050935700E49120FF03C0E295EF703F5FA6 -:10352000EF708E2F90E0EA3010F0C79601C0C09681 -:103530008D939D932F5F243149F74FBF8091E80011 -:10354000877F8093E8006AE270E0CE0101960E94D6 -:10355000E11614C0AE014F5F5F4F609113040E94EB -:103560002816BC01009709F440C09091E800977FAD -:103570009093E80089819A810E9444178091E80025 -:103580008B778093E80031C0803879F58091E8002E -:10359000877F8093E80080910A048093F1008091F6 -:1035A000E8008E778093E8000E94DA171EC0811130 -:1035B0001CC0909111049230C0F48091E800877F84 -:1035C0008093E80090930A040E94DA1780910A041D -:1035D000811106C08091E30087FD02C081E001C037 -:1035E00084E080930E040E9426158091E80083FFFA -:1035F0000AC08091E800877F8093E8008091EB000B -:1036000080628093EB00AA960FB6F894DEBF0FBEDF -:10361000CDBFDF91CF911F9108950895CF938091F1 -:103620000E048823A1F0C091E900CF709091EC00C6 -:10363000892F817090FD80E8C82B1092E90080915D -:10364000E80083FD0E94BC19CF70C093E900CF91C0 -:10365000089590938F0380938E030895E0918E03D5 -:10366000F0918F03309721F00190F081E02D0994C3 -:1036700080E00895E0918E03F0918F03309721F060 -:103680000280F381E02D09940895E0918E03F0917A -:103690008F03309721F00480F581E02D099408957F -:1036A00020918C0330918D038217930771F09093D2 -:1036B0008D0380938C03E0918E03F0918F033097FC -:1036C00021F00680F781E02D0994089520918A0366 -:1036D00030918B038217930771F090938B03809343 -:1036E0008A03E0918E03F0918F03309721F00084DC -:1036F000F185E02D0994089508950C947C1B0E9497 -:1037000004280E949A0B0E948A280C94452D4F92FF -:103710005F927F928F929F92AF92BF92CF92DF92F1 -:10372000EF92FF920F931F93CF93DF93CDB7DEB746 -:103730002A970FB6F894DEBF0FBECDBF0E94890C4A -:1037400091E9C92E93E0D92E00E010E0AA24A394B9 -:10375000B12C702E802F0E94D20D4C01F6014190A9 -:1037600051906F014826592641145104B1F40F5F5E -:103770001F4F0430110569F78FEF89838A831B82FD -:103780000E940D288160782F9D838C8349815A8106 -:103790006B818D810E94401C3AC08091ED0381FDB8 -:1037A0000E94DB0D20E030E07501022E02C0EE0C1D -:1037B000FF1C0A94E2F7C70184219521892B09F1A6 -:1037C0002E837F828E209F2091E0892809F490E04B -:1037D00098870E940D288160782F9A8789874E816B -:1037E0005F8168858A850E94401C000F111FF801C7 -:1037F000EF56FC4F80819181E826F926F182E08224 -:1038000006C02F5F3F4F2C30310571F6B0CF0E94BC -:10381000762A109190030E942E1B1817D9F00E944F -:103820002E1B809390032A960FB6F894DEBF0FBE2E -:10383000CDBFDF91CF911F910F91FF90EF90DF905F -:10384000CF90BF90AF909F908F907F905F904F9060 -:103850000C94D20A2A960FB6F894DEBF0FBECDBFE5 -:10386000DF91CF911F910F91FF90EF90DF90CF905C -:10387000BF90AF909F908F907F905F904F900895F2 -:10388000CF93DF93CDB7DEB72B970FB6F894DEBF9B -:103890000FBECDBF4F83588769877A878B87DE013C -:1038A000119686E0FD0111928A95E9F785E0FE0107 -:1038B000379601900D928A95E1F749815A816B8183 -:1038C0007C818D819E810E94E5232B960FB6F89412 -:1038D000DEBF0FBECDBFDF91CF910895CF93882378 -:1038E00009F4C2C0C82F823859F40E942E1B81FDF2 -:1038F000BBC089E30E948E260E945B2789E30CC02F -:10390000833879F40E942E1B80FDAEC083E50E94AF -:103910008E260E945B2783E50E94D026CF910C94CF -:103920005B27843859F40E942E1B82FD9DC087E4DA -:103930000E948E260E945B2787E4EECF8CEF8C0FCF -:10394000813A48F48C2F0E94AD2C81118DC08C2FB0 -:103950000E948E26E3CF80E28C0F883048F4C77037 -:1039600081E001C0880FCA95EAF70E941427D6CFDC -:103970008BE58C0F833078F4C53A29F0C63A31F0E4 -:1039800083E890E005C081E890E002C082E890E022 -:10399000CF910C94501B88E58C0F833108F064C0E4 -:1039A000C83A39F1C93A41F1CA3A49F1CB3A51F131 -:1039B000CC3A59F1CD3A61F1C03B69F1CE3A71F19F -:1039C000CF3A79F1C13B81F1C23B89F1C33B91F11F -:1039D000C43B99F1C53BA1F1C63BA9F1C73BB1F18D -:1039E000C83BB9F1C93BC1F1CA3BC9F180E090E0E5 -:1039F00038C082EE90E035C089EE90E032C08AEEA9 -:103A000090E02FC085EB90E02CC086EB90E029C0C1 -:103A100087EB90E026C08CEC90E023C08DEC90E02A -:103A200020C083E891E01DC08AE891E01AC082E9D5 -:103A300091E017C084E991E014C081E292E011C0E6 -:103A400083E292E00EC084E292E00BC085E292E055 -:103A500008C086E292E005C087E292E002C08AE2F6 -:103A600092E0CF910C94661BCF910895882309F4BE -:103A70004BC0823859F40E942E1B81FF45C089E358 -:103A80000E948E260E945B2789E30CC0833871F464 -:103A90000E942E1B80FF38C083E50E948E260E9464 -:103AA0005B2783E50E94D0260C945B27843859F469 -:103AB0000E942E1B82FF28C087E40E948E260E944F -:103AC0005B2787E4EFCF9CEF980F913A58F390E291 -:103AD000980F983050F4877091E001C0990F8A9543 -:103AE000EAF7892F0E941A27DFCF9BE5980F9330C2 -:103AF00020F480E090E00C94501B885A833120F42D -:103B000080E090E00C94661B0895882321F00E94C9 -:103B100014270C945B270895882321F00E941A270C -:103B20000C945B270895BF92CF92DF92EF92FF92A1 -:103B30000F931F93CF93DF9300D000D000D0CDB769 -:103B4000DEB725E0FC01DE01119601900D922A9569 -:103B5000E1F7FC01D08011810281258122952F702F -:103B600043815481452B09F472C31F3F21F4FFEFB9 -:103B7000DF1609F46CC37C012E830E949B07D98257 -:103B80001A8369817A81802F0E948A26182FB92E84 -:103B90000E943F260E9406252E81002319F00E94D4 -:103BA00031272E81EB2DE295EF70F0E0EE56FF4FBE -:103BB0000C9484318B2D807F9B2D9F70F92E882350 -:103BC00019F0F29480EFF822002389F0FF2009F425 -:103BD0007CC280E2810F883020F48F2D0E94142750 -:103BE00003C08F2D0E9424270E945B276EC2812F65 -:103BF0000E94361DFF2009F42AC3105E8F2D183055 -:103C000018F40E941A2702C00E942A2726960FB68F -:103C1000F894DEBF0FBECDBFDF91CF911F910F9102 -:103C2000FF90EF90DF90CF90BF900C945B278B2D8F -:103C3000807F9B2D9F70803211F4892F03C0892FC4 -:103C40008295807F112319F0113011F12BC00023D0 -:103C5000A9F0222389F1213079F526960FB6F89440 -:103C6000DEBF0FBECDBFDF91CF911F910F91FF90AF -:103C7000EF90DF90CF90BF900C944427222319F04F -:103C8000213009F4E4C28E830E9447278E819BC1B4 -:103C9000002321F0263008F0DAC20EC0253008F0EB -:103CA000D6C291C10023C9F0222331F0F7019581DA -:103CB00090FF0BC29F70958326960FB6F894DEBFD7 -:103CC0000FBECDBFDF91CF911F910F91FF90EF906D -:103CD000DF90CF90BF900C94851D222309F473C10F -:103CE00009C22B2D26952695237030E0211531052C -:103CF00021F021303105D1F0AAC2002321F0812F1B -:103D00009B2D937002C080E090E026960FB6F89449 -:103D1000DEBF0FBECDBFDF91CF911F910F91FF90FE -:103D2000EF90DF90CF90BF900C94501B002321F0B8 -:103D3000812F9B2D937002C080E090E026960FB6F5 -:103D4000F894DEBF0FBECDBFDF91CF911F910F91D1 -:103D5000FF90EF90DF90CF90BF900C94661B812F67 -:103D6000002319F00E947E2902C00E94E6292696AF -:103D70000FB6F894DEBF0FBECDBFDF91CF911F917C -:103D80000F91FF90EF90DF90CF90BF900C946B2A33 -:103D90008B2D837009F07BC0011159C2812F829550 -:103DA00086958770880F880F912F9F70C92ED12C10 -:103DB000E12CF12C082E04C0CC0CDD1CEE1CFF1CE9 -:103DC0000A94D2F714FF12C04FE050E060E070E0B8 -:103DD00004C0440F551F661F771F8A95D2F7CB0189 -:103DE000BA01609570958095909503C060E070E091 -:103DF000CB012B2D269526952370422F50E0423083 -:103E00005105D9F04330510569F16C297D298E297E -:103E10009F294130510551F126960FB6F894DEBF27 -:103E20000FBECDBFDF91CF911F910F91FF90EF900B -:103E3000DF90CF90BF900C942D256C297D298E2981 -:103E40009F2926960FB6F894DEBF0FBECDBFDF9137 -:103E5000CF911F910F91FF90EF90DF90CF90BF9087 -:103E60000C9449250E942D25C701B60126960FB650 -:103E7000F894DEBF0FBECDBFDF91CF911F910F91A0 -:103E8000FF90EF90DF90CF90BF900C94112500230E -:103E900019F08B2D817001C08695882309F4D7C154 -:103EA000812F829586958770880F880F912F9F703C -:103EB000C92ED12CE12CF12C082E04C0CC0CDD1C19 -:103EC000EE1CFF1C0A94D2F714FF12C04FE050E022 -:103ED00060E070E004C0440F551F661F771F8A958D -:103EE000D2F7CB01BA01609570958095909503C08B -:103EF00060E070E0CB012B2D269526952370422F94 -:103F000050E042305105D9F04330510569F16C2938 -:103F10007D298E299F294130510551F126960FB6F2 -:103F2000F894DEBF0FBECDBFDF91CF911F910F91EF -:103F3000FF90EF90DF90CF90BF900C9407266C29F4 -:103F40007D298E299F2926960FB6F894DEBF0FBED5 -:103F5000CDBFDF91CF911F910F91FF90EF90DF9038 -:103F6000CF90BF900C9423260E940726C701B6016C -:103F700026960FB6F894DEBF0FBECDBFDF91CF916E -:103F80001F910F91FF90EF90DF90CF90BF900C9416 -:103F9000EB25103F49F118F4103E48F491C0123F50 -:103FA00009F453C0E8F1133F09F464C089C01F70DD -:103FB0008B2D8F71002321F00E948425812F7CCED0 -:103FC0000E94A525812F26960FB6F894DEBF0FBE5E -:103FD000CDBFDF91CF911F910F91FF90EF90DF90B8 -:103FE000CF90BF900C948C1D0023B1F0253008F0C9 -:103FF0002EC18B2D8F7126960FB6F894DEBF0FBEA3 -:10400000CDBFDF91CF911F910F91FF90EF90DF9087 -:10401000CF90BF900C94CA25263008F018C1E9CF84 -:104020000023A9F08B2D8F7126960FB6F894DEBF72 -:104030000FBECDBFDF91CF911F910F91FF90EF90F9 -:10404000DF90CF90BF900C948425002359F38B2DE3 -:104050008F7126960FB6F894DEBF0FBECDBFDF91ED -:10406000CF911F910F91FF90EF90DF90CF90BF9075 -:104070000C94A525002399F08B2D8F7126960FB6F1 -:10408000F894DEBF0FBECDBFDF91CF911F910F918E -:10409000FF90EF90DF90CF90BF900C946F25269605 +:100770000000000000000000000000000000010078 +:100780000050010001000100010001000100010012 +:10079000010001004C00010001000100073006309B +:1007A000135012500030013002300C3001000100B3 +:1007B0000B300A300930083001000100010001004F +:1007C0000100010001000100010001000100010021 +:1007D00001000100010001000100010001002803E7 +:1007E000540068006500200050006C0061006E003D +:1007F00063006B0020004B006500790062006F0011 +:1008000061007200640000002C034F00720074004D +:1008100068006F006C0069006E0065006100720086 +:1008200020004B006500790062006F0061007200DB +:100830006400730000000403090409026D00040150 +:1008400000A0FA09040000010301010009211101BF +:100850000001223F000705810308000A0904010086 +:100860000103010200092111010001224D000705C9 +:10087000820308000A0904020001030000000921A4 +:10088000110100012236000705830308000A09044C +:1008900003000103000000092111010001223900B9 +:1008A000070584031000011201100100000008ED8B +:1008B000FE606001000102000105010906A10105B9 +:1008C0000719E029E7150025019508750181020542 +:1008D0000819012905950575019102950175039186 +:1008E0000105071900297715002501957875018103 +:1008F00002C005010980A101850216010026B7008A +:100900001A01002AB700751095018100C0050C0975 +:1009100001A1018503160100269C021A01002A9CF0 +:1009200002751095018100C005010902A1010901AC +:10093000A100050919012905150025019505750175 +:100940008102950175038101050109300931158185 +:10095000257F95027508810609381581257F950147 +:1009600075088106050C0A38021581257F950175E9 +:10097000088106C0C005010906A101050719E02983 +:10098000E71500250195087501810295017508811B +:100990000105081901290595057501910295017553 +:1009A0000391010507190029FF150025FF9506751C +:1009B000088100C011241FBECFEFDAE0DEBFCDBF3B +:1009C00004B603FE24C08091690490916A04A0914A +:1009D0006B04B0916C048730904BA740B04BB9F4D6 +:1009E0001092690410926A0410926B0410926C04C5 +:1009F00014BE84B7877F84BF88E10FB6F8948093D4 +:100A00006000109260000FBEE0E0F8E3099513E08B +:100A1000A0E0B1E0E2E4F4E602C005900D92A23657 +:100A2000B107D9F714E0A2E6B3E001C01D92A936E0 +:100A3000B107E1F70E94FD150C941F320C940000E1 +:100A4000279A2F988FEF9FEF9093870080938600CF +:100A50008AE08093800089E1809381000C94562D78 +:100A6000282F81110BC080918000877F80938000A8 +:100A700010928D0010928C002F9808952F988091DD +:100A80008000886080938000233019F48FEF9FEFFF +:100A90000FC083E090E0821B9109880F991F2FEF10 +:100AA0003FEFA90102C0569547958A95E2F7CA0122 +:100AB00090938D0080938C000895CF93DF93EC0189 +:100AC0000E94ED28BE0180E090E0DF91CF910C9470 +:100AD00018250F931F93462F50E04E30510508F014 +:100AE000DEC0DC01FA01EA5AFF4F12968C910C9499 +:100AF000E331882309F4D3C000E010E0980140E01E +:100B000064E070E089E292E00E942B1281E090E0C4 +:100B10000FC0882309F4C3C000E010E0980140E052 +:100B200066E070E089EB91E00E942B1282E090E099 +:100B30000E945D05B4C0882309F4B1C000E010E054 +:100B4000980140E068E070E089EE91E00E942B128D +:100B500084E090E0EDCF882311F083E005C083E0CE +:100B60000CC0882349F084E00E94952540E164E0B0 +:100B700083E00E946D0A93C084E00E94B625F6CF00 +:100B8000882331F085EE0E947F1C0E94AD2D87C026 +:100B900085EE0E94471D83C0882309F480C00E940F +:100BA000BF0D7DC0882309F47AC00E94B80D00E013 +:100BB00010E0980140E065E070E089E492E027C031 +:100BC000882309F46CC085E00E94B6250E94E00DE0 +:100BD00066C0882309F463C000E010E0980140E09B +:100BE00068E070E089E191E00E942B1285E00E94AC +:100BF000952555C0882309F452C00E94BE1200E01A +:100C000010E0980140E068E070E089E191E00E9426 +:100C10002B1245C0882309F442C00E94C912EFCFAD +:100C20008823E9F100E010E0980140E066E070E020 +:100C300089E891E00E942B1284E00E94B62583E0AF +:100C40000E94B62580E10E94B62585E00E94B62567 +:100C50000E94E00D86E00E9495250E94DA2881110D +:100C600002C00E94B6280E94F22890E09093680487 +:100C7000809367048068809367040E94F6280FC001 +:100C8000882369F000E010E0980140E066E070E041 +:100C900089E591E00E942B1286E00E94B62580E053 +:100CA00090E01F910F9108950F931F932FEF89EFFD +:100CB00090E0215080409040E1F700C0000000E04B +:100CC00010E0980140E065E070E089E492E00E9465 +:100CD0002B121F910F9108950F931F9300E010E0C6 +:100CE000980140E063E070E081E091E00E942B1207 +:100CF0002FEF82E597E0215080409040E1F700C05F +:100D000000001F910F910895CF92DF92EF92FF9212 +:100D10000F931F93CF93DF93CDB7DEB7CC58D10994 +:100D20000FB6F894DEBF0FBECDBF2091210425FF82 +:100D3000C5C08C01FC01928180910001992309F4C6 +:100D400060C096E4EEE8F2E0DE01A95BBF4F0190DF +:100D50000D929A95E1F7F8019081E0916203F0918C +:100D60006303E90FF11DEE0FFF1F27E430E02C0FA6 +:100D70003D1FE20FF31F60817181680F711D88278D +:100D800077FD8095982F0E94F12E20E030E040E41E +:100D900051E40E94562E6B017C01F801218184E010 +:100DA00090E0821B9109BC01882777FD8095982FE0 +:100DB0000E94F12E9B01AC01C701B6010E94EE2DED +:100DC0009B01AC0160E070E080E090E40E94643040 +:100DD00020E030E04CE551E40E9401304FE050E06B +:100DE000C457DF4F0FB6F894DEBF0FBECDBFDF9103 +:100DF000CF911F910F91FF90EF90DF90CF900C94C7 +:100E0000CB1196E4EEE8F2E0DE01119601900D922E +:100E10009A95E1F7F8019081E0916203F091630304 +:100E2000E90FF11DEE0FFF1F21E030E02C0F3D1FF9 +:100E3000E20FF31F60817181680F711D882777FDB4 +:100E40008095982F0E94F12E20E030E040E451E49C +:100E50000E94562E6B017C01F801218184E090E014 +:100E6000821B9109BC01882777FD8095982F0E94ED +:100E7000F12E9B01AC01C701B6010E94EE2D9B0132 +:100E8000AC0160E070E080E090E40E94643020E01B +:100E900030E04CE551E40E940130C457DF4F0FB6FB +:100EA000F894DEBF0FBECDBFDF91CF911F910F91A0 +:100EB000FF90EF90DF90CF900C94130EC457DF4F4C +:100EC0000FB6F894DEBF0FBECDBFDF91CF911F915B +:100ED0000F91FF90EF90DF90CF90089508950E94BA +:100EE00020056E9A769A0C9454060C946E070C9416 +:100EF00084060895880F991FFC01E250F040859107 +:100F000094910895880F991FFC01E258FE4F859136 +:100F1000949108950F931F93CF93DF93EC01811564 +:100F200020E49207A0F5C11580E3D80708F0E1C0DE +:100F3000C83ED105D8F4C03ED10508F0EEC1C83A8C +:100F4000D10578F4C53AD10508F074C0C130D10597 +:100F500009F46DC008F4DEC1C430D10508F0DDC16C +:100F6000D9C1CB3BD10508F470C0D4C1C11590E202 +:100F7000D90708F0B9C0C11521E0D20708F0CDC1EA +:100F8000C03FD10508F4C6C18E01106506C2C1304C +:100F900080E5D80709F4BDC068F5C13120E4D20767 +:100FA00009F4AEC050F4C03190E4D90708F0A5C0F0 +:100FB000CF70DD278E01146DF0C1C33120E4D2075C +:100FC00009F4A4C008F49FC0C115D04509F0A2C11E +:100FD0000E945C210E94E00D0E946C069FEF24E3BA +:100FE0008CE0915020408040E1F700C000000E945A +:100FF0007928D3C1C11520E6D20730F4C11581E5A7 +:10100000D80708F48CC02DC1C11590E7D90708F4A2 +:1010100081C1C11520E8D20708F478C1C11580E963 +:10102000D80708F077C1DF708E01106AB6C101E001 +:1010300010E0B3C1C53AD10509F471C1C63AD10572 +:1010400009F070C102E810E4A8C1C83AD10509F45A +:101050006CC1C93AD10509F46BC1CA3AD10509F48A +:101060006AC1CB3AD10509F469C1CC3AD10509F47A +:1010700068C1CD3AD10509F467C1C03BD10509F477 +:1010800066C1CE3AD10509F465C1CF3AD10509F45C +:1010900064C1C13BD10509F463C1C23BD10509F468 +:1010A00062C1C33BD10509F461C1C43BD10509F458 +:1010B00060C1C53BD10509F45FC1C63BD10509F448 +:1010C0005EC1C73BD10509F45DC1C83BD10509F438 +:1010D0005CC1C93BD10509F45BC1CA3BD10509F428 +:1010E0005AC100E014E459C1CE019F700E948207EA +:1010F00055C1DD278E01106C50C100E011ED4DC1CE +:1011000000E010ED4AC100E012ED47C100E013ED30 +:1011100044C180913D04816080933D043EC10E94A2 +:10112000DA28811102C00E94B6280E94F22890E0BD +:101130009093680480936704C23090E5D90721F446 +:1011400080916704816086C0C43020E5D20721F415 +:101150008091670482607EC0C63080E5D80721F4A4 +:1011600080916704846076C0C83090E5D90719F48F +:101170008091670427C0CA3020E5D20721F480910E +:101180006704806167C0CC3080E5D80721F4809186 +:10119000670480625FC0CE3090E5D90721F480916A +:1011A0006704806457C0C03120E5D20721F48091E4 +:1011B000670480684FC0C23180E5D80729F4809168 +:1011C00067048460886046C0C33090E5D90721F485 +:1011D000809167048E7F3EC0C53020E5D20721F4A0 +:1011E000809167048D7F36C0C73080E5D80721F431 +:1011F000809167048B7F2EC0C93090E5D90719F420 +:101200008091670426C0CB3020E5D20721F480917D +:1012100067048F7E1FC0CD3080E5D80721F4809110 +:1012200067048F7D17C0CF3090E5D90721F48091F6 +:1012300067048F7B0FC0C13120E5D20721F4809174 +:1012400067048F7707C0C331D04531F480916704BC +:101250008B7F877F80936704809167040E94F628C4 +:101260009CC08D2F99278F70992781309105D9F4D3 +:101270009E012370332702C0880F991F2A95E2F739 +:101280009C688E0144E0000F111F4A95E1F700278A +:101290001370802B912B53E0CC0FDD1F5A95E1F793 +:1012A000C076DD272FC08230910531F4DC2FCC27AA +:1012B0008E01016F106A71C08330910569F4CE010F +:1012C0008370992701E010E002C0000F111F8A957A +:1012D000E2F7C8019C680FC0049709F05EC0CE0118 +:1012E0008370992701E010E002C0000F111F8A955A +:1012F000E2F7C8019A6823E0CC0FDD1F2A95E1F7D9 +:10130000C07ED7708C010C2B1D2B47C0DF708E0167 +:10131000106243C000E010E040C08E013EC001E812 +:1013200010E43BC003E810E438C002EE14E435C01A +:1013300009EE14E432C00AEE14E42FC005EB14E405 +:101340002CC006EB14E429C007EB14E426C00CEC17 +:1013500014E423C00DEC14E420C003E815E41DC020 +:101360000AE815E41AC002E915E417C004E915E417 +:1013700014C001E216E411C003E216E40EC004E258 +:1013800016E40BC005E216E408C006E216E405C048 +:1013900007E216E402C00AE216E4C801DF91CF9129 +:1013A0001F910F9108959CE0799FF001112490E323 +:1013B000899FE00DF11D1124E60FF11DEE0FFF1FB7 +:1013C000E258FE4F85919491803E9105E0F4803C77 +:1013D000910558F58133910509F46FC048F48932BD +:1013E000910509F463C08A32910509F46DC072C099 +:1013F00089339105E9F082389105D1F08533910563 +:1014000009F44DC067C0833E910581F138F4803EF8 +:101410009105B9F0823E9105D9F05CC0863E9105F8 +:1014200061F1873E9105A1F155C00E947A070895A8 +:101430002091670420FD02C021FF4CC080EE90E0A7 +:1014400049C08091670480FFF9CF89E390E042C0F2 +:101450008091670482FF0EC08091670484FF03C0FF +:1014600080E090E037C083EE90E034C08091670464 +:1014700082FFF2CF82EE90E02DC08091670483FF5F +:101480000BC08091670484FDEBCF87EE90E022C013 +:101490008091670483FFF5CF86EE90E01BC08091BA +:1014A000670485FF07C089E290E014C0809167045B +:1014B00085FFF9CF85E390E00DC08091670486FF3A +:1014C00007C08AE290E006C08091670486FFF9CFEA +:1014D00081E390E00E948A070895CF92DF92EF9215 +:1014E000FF920F931F9301E010E020E030E06801CD +:1014F000790104C0CC0CDD1CEE1CFF1C8A95D2F7D0 +:1015000004C0000F111F221F331F6A95D2F70C2948 +:101510001D292E293F29C0902104D0902204E0905B +:101520002304F0902404C022D122E222F322842F4B +:10153000C016D106E206F30641F41F910F91FF9009 +:10154000EF90DF90CF900C9495251F910F91FF9015 +:10155000EF90DF90CF900C94B62508950C94AD0ACF +:101560005F926F927F928F929F92AF92BF92CF9233 +:10157000DF92EF92FF920F931F93CF93DF93CDB73C +:10158000DEB728970FB6F894DEBF0FBECDBFCE01F1 +:1015900001966C014E0199E0890E911C20E030E02B +:1015A00040E050E060E070E000E010E0E12CF12C61 +:1015B0006C2C5D2C88E0782EAA24A394B12CE4ED49 +:1015C000F2E0A62DB52D872D01900D928A95E1F7B9 +:1015D000F601819191916F01FC01E07FFF27E032DC +:1015E000F10559F48F709927F50102C0EE0FFF1F26 +:1015F0008A95E2F7EE2AFF2A37C0E033F10559F465 +:101600008F709927F50102C0EE0FFF1F8A95E2F750 +:101610000E2B1F2B29C0E034F10559F48F70992748 +:10162000F50102C0EE0FFF1F8A95E2F76E2B7F2BAC +:101630001BC0E035F10559F48F709927F50102C000 +:10164000EE0FFF1F8A95E2F74E2B5F2B0DC0E036A1 +:10165000F10551F48F709927F50102C0EE0FFF1FBD +:101660008A95E2F72E2B3F2BC814D90409F0A7CF97 +:1016700084B19E2D9095892384B985B1E82AE5B877 +:1016800087B1902F9095892387B988B1082B08B925 +:101690008AB1962F909589238AB98BB1682B6BB943 +:1016A0008DB1942F909589238DB98EB1482B4EB969 +:1016B00080B3922F9095892380BB81B3282B21BBC7 +:1016C00028960FB6F894DEBF0FBECDBFDF91CF9145 +:1016D0001F910F91FF90EF90DF90CF90BF90AF9050 +:1016E0009F908F907F906F905F9008955F926F9220 +:1016F0007F928F929F92AF92BF92CF92DF92EF92A2 +:10170000FF920F931F93CF93DF93CDB7DEB7689708 +:101710000FB6F894DEBF0FBECDBF85B7806885BF1A +:1017200085B7806885BF0E94B00ACE0101966C0122 +:101730004E0199E1890E911C20E030E040E050E03C +:1017400060E070E000E010E0E12CF12C6C2C5D2CEE +:1017500088E1782EAA24A394B12CECEDF2E0A62D1A +:10176000B52D872D01900D928A95E1F7F6018191B3 +:1017700091916F01FC01E07FFF27E032F10559F400 +:101780008F709927F50102C0EE0FFF1F8A95E2F7CF +:10179000EE2AFF2A37C0E033F10559F48F709927FC +:1017A000F50102C0EE0FFF1F8A95E2F70E2B1F2BEB +:1017B00029C0E034F10559F48F709927F50102C072 +:1017C000EE0FFF1F8A95E2F76E2B7F2B1BC0E035D3 +:1017D000F10559F48F709927F50102C0EE0FFF1F34 +:1017E0008A95E2F74E2B5F2B0DC0E036F10551F4E0 +:1017F0008F709927F50102C0EE0FFF1F8A95E2F75F +:101800002E2B3F2BC814D90409F0A7CF84B19E2DED +:101810009095892384B985B1E82AE5B887B1902FDE +:101820009095892387B988B1082B08B98AB1962F7A +:10183000909589238AB98BB1682B6BB98DB1942FA0 +:10184000909589238DB98EB1482B4EB980B3922FD4 +:101850009095892380BB81B3282B21BB10926D0307 +:1018600010926C03109265031092640310926F0340 +:1018700010926E0310926703109266031092710328 +:101880001092700310926903109268031092730310 +:101890001092720310926B0310926A0368960FB64F +:1018A000F894DEBF0FBECDBFDF91CF911F910F9196 +:1018B000FF90EF90DF90CF90BF90AF909F908F9070 +:1018C0007F906F905F900C946F077F928F929F92A2 +:1018D000AF92BF92CF92DF92EF92FF920F931F933E +:1018E000CF93DF93CDB7DEB7A0970FB6F894DEBFE6 +:1018F0000FBECDBF6E0149E1C40ED11C84E6E82EB7 +:1019000083E0F82E98E0792EBC2CAD2C01E010E09D +:1019100028E1822E35E0932EE4EDF2E0AB2DBA2DD6 +:10192000872D01900D928A95E1F7F60181919191B1 +:101930006F019C01207F33272032310591F424B1BF +:101940008F709927A80102C0440F551F8A95E2F7AE +:10195000CA01922F982B94B995B18095892385B9A6 +:1019600053C02033310591F427B18F709927F801C6 +:1019700002C0EE0FFF1F8A95E2F7CF01922F982B3E +:1019800097B998B18095892388B93EC02034310534 +:1019900091F42AB18F709927A80102C0440F551FF6 +:1019A0008A95E2F7CA01922F982B9AB99BB180953C +:1019B00089238BB929C02035310591F42DB18F7061 +:1019C0009927F80102C0EE0FFF1F8A95E2F7CF01B9 +:1019D000922F982B9DB99EB1809589238EB914C002 +:1019E0002036310589F420B38F709927A80102C0F1 +:1019F000440F551F8A95E2F7CA01922F982B90BB8E +:101A000091B38095892381BB50EA5A95F1F7BE01C5 +:101A10006F5F7F4F20E030E040E050E0ECEDF2E01F +:101A2000DE011196882D01900D928A95E1F7FB0158 +:101A300081919191BF01FC01E07FFF27E032F10528 +:101A400011F4E3B113C0E033F10511F4E6B10EC0B7 +:101A5000E034F10511F4E9B109C0E035F10511F404 +:101A6000ECB104C0E036F105B9F4EFB1F0E08F70ED +:101A7000992702C0F595E7958A95E2F7E0FD08C041 +:101A8000C801042E02C0880F991F0A94E2F702C011 +:101A900080E090E0282B392B4F5F5F4F4C30510591 +:101AA00009F0BCCFF701808191818217930721F063 +:101AB00031832083909271020E94B00AF2E0EF0E0F +:101AC000F11C4CE6E41643E0F40609F025CF8091C2 +:101AD0007102882361F1815080937102882339F06B +:101AE0008FE99FE00197F1F700C0000020C08091CE +:101AF00064039091650390936D0380936C038091D0 +:101B000066039091670390936F0380936E038091B7 +:101B1000680390916903909371038093700380919F +:101B20006A0390916B0390937303809372030E94F6 +:101B3000750781E0A0960FB6F894DEBF0FBECDBF4B +:101B4000DF91CF911F910F91FF90EF90DF90CF9099 +:101B5000BF90AF909F908F907F900895E82FF0E016 +:101B6000EE0FFF1FE459FC4F808191810895089585 +:101B7000809152048160809352040C9408298091D2 +:101B800052048E7F809352040C9408290E94DA2814 +:101B9000811102C00E94B6280E9404298093520439 +:101BA0003E9A809171008D7F8093710082E08093D6 +:101BB00090008AE18093910081E0809376030895FC +:101BC00080917603811102C00E94C60D1092C60357 +:101BD0001092C503809171008D7F80937100809178 +:101BE00090008F7780939000109288031092870363 +:101BF0001092BF031092C0031092C1031092C2034F +:101C00001092BE031092BD03EDE9F3E0ADE8B3E03E +:101C100011921192119211921D921D9283E0ED3B4F +:101C2000F807B1F70895CF92DF92EF92FF920F93EA +:101C30001F93CF93DF9320918703222309F484C05D +:101C40006B017C0180917603811102C00E94C60D58 +:101C50000DEB13E0C7E0D0E0A7019601F8019291E7 +:101C60008291729162918F010E94522E811131C036 +:101C7000FE01EE0FFF1FEE0FFF1FE356FC4F108219 +:101C8000118212821382DE01AA0FBB1FA357BC4F21 +:101C900011961C921E92C730D105E9F0219644811D +:101CA0005581668177814083518362837383148277 +:101CB00015821682178212968D919C911397119618 +:101CC0009C938E9313961C921E92129734961296A2 +:101CD000E2CF219708F68091C5039091C603019742 +:101CE00097FD05C09093C6038093C50304C010926E +:101CF000C6031092C5038091C5039091C60320913D +:101D0000C3033091C4032817390724F01092C40389 +:101D10001092C303892BC1F4809171008D7F809351 +:101D20007100809190008F77809390001092BF0394 +:101D30001092C0031092C1031092C2031092BE030E +:101D40001092BD0310928703DF91CF911F910F91E5 +:101D5000FF90EF90DF90CF9008951F920F920FB6F3 +:101D60000F9211244F925F926F927F928F929F9267 +:101D7000AF92BF92CF92DF92EF92FF922F933F9359 +:101D80004F935F936F937F938F939F93AF93BF9383 +:101D9000CF93DF93EF93FF9380918703882309F418 +:101DA0009BC1C091C503D091C6031C161D060CF043 +:101DB00093C14090770350907803609079037090BE +:101DC0007A0320E030E0A901C301B2010E94FD2F97 +:101DD00018160CF065C0C130D10509F452C08091CD +:101DE000C3039091C403BE010E94CF317C01909344 +:101DF000C4038093C3038090890390908A03A090CA +:101E00008B03B0908C0320E030E040E85FE3C50135 +:101E1000B4010E94EE2D6093890370938A0380932E +:101E20008B0390938C03F701EE0FFF1FEE0FFF1F44 +:101E3000E356FC4FA30192016081718182819381FD +:101E40000E94562E20E030E040E05EE30E94013028 +:101E50009B01AC01C501B4010E94FD2F18168CF442 +:101E6000C7010196BE010E94CF319093C4038093B5 +:101E7000C3031092890310928A0310928B0310926D +:101E80008C03E091C303F091C403EE0FFF1FEE0F2C +:101E9000FF1FE356FC4F6081718182819381D0C026 +:101EA000C090BF03D090C003E090C103F090C20384 +:101EB00020E030E0A901C701B6010E94522E21970F +:101EC000882309F4A2C0FE01EE0FFF1FEE0FFF1FD3 +:101ED000E356FC4F80809180A280B380A5019401DD +:101EE000C701B6010E94522E87FF31C0A50194019F +:101EF00060E070E08CED93EC0E94562E20E030E024 +:101F000040E451E40E94562E20E030E040E05FE3E0 +:101F10000E9401309B01AC0160E070E080E090E441 +:101F20000E9464309B01AC01C501B4010E940130E4 +:101F30009B01AC01C701B6010E94522E87FF07C06A +:101F4000A701960160E070E08CED93E439C0A50133 +:101F50009401C701B6010E94FD2F18160CF055C060 +:101F6000A501940160E070E08CED93E40E94562E90 +:101F700020E030E040E451E40E94562E20E030E0C2 +:101F800040E05FE30E9401309B01AC0160E070E043 +:101F900080E090E40E9464309B01AC01C501B40173 +:101FA0000E9401309B01AC01C701B6010E94FD2FC8 +:101FB00018165CF5A701960160E070E08CED93ECDB +:101FC0000E94562E20E030E040E451E40E94562E5C +:101FD00020E030E040E05FE30E9401309B01AC0173 +:101FE00060E070E080E090E40E9464309B01AC010E +:101FF000C701B6010E9401306093BF037093C00314 +:102000008093C1039093C20313C0FE01EE0FFF1F24 +:10201000EE0FFF1FE356FC4F80819181A281B381B7 +:102020008093BF039093C003A093C103B093C203F6 +:102030006091BF037091C0038091C1039091C2036E +:1020400020917403309175032F3F4FEF340731F027 +:102050002F5F3F4F30937503209374030E94D41277 +:102060006B017C0120E034E244EF51E40E94522EE7 +:1020700087FF08C086EFC82E88E2D82E84EFE82EAE +:1020800081E4F82E20E030E040E051E4C701B601E1 +:102090000E9401309B01AC0160E074E284E79BE4A4 +:1020A0000E94562E6B017C010E94BE2E70939700F9 +:1020B00060939600209172023091730240917402F5 +:1020C00050917502C701B6010E9401300E94BE2ED8 +:1020D000709399006093980080918803882309F495 +:1020E00033C1C0908303D0908403E0908503F090C7 +:1020F000860320E030E0A901C701B6010E94FD2F50 +:102100001816D4F580917403909175038F3F2FEFCB +:10211000920729F001969093750380937403C70189 +:10212000B6010E94D41220E030E040E051E40E9469 +:1021300001309B01AC0160E074E284E79BE40E9403 +:10214000562E6B017C010E94BE2E70939700609307 +:102150009600209172023091730240917402509166 +:102160007502C701B6010E9401300E94BE2E709315 +:1021700099006093980008C0109297001092960002 +:10218000109299001092980060917D0370917E03E7 +:102190006F5F7F4F70937E0360937D032091960065 +:1021A0003091970080E090E0232BF1F0C0919600F1 +:1021B000D09197000E94EF2E6B017C01BE0180E060 +:1021C00090E00E94EF2E9B01AC0160917F03709123 +:1021D000800380918103909182030E94562E20E01B +:1021E0003FEF4FE757E410C00E94EF2E6B017C01D8 +:1021F00020E030EE4FEF54E460917F037091800354 +:1022000080918103909182030E9401309B01AC0177 +:10221000C701B6010E94FD2F87FD96C080917B0308 +:102220008F5F80937B0390E020914E0430914F04A8 +:1022300082179307A0F080915904882319F0109217 +:102240007B030DC0809171008D7F80937100809120 +:1022500090008F7780939000109288037DC08091CA +:102260007C03C0917B03811128C0C0905304D0909F +:102270005404E0905504F090560420E030E0A901A9 +:10228000C701B6010E94FD2F1816BCF481E08093AF +:102290007C031092830310928403109285031092A2 +:1022A0008603C0927F03D0928003E0928103F09274 +:1022B0008203C150C0937B0343C010927C031092F1 +:1022C000750310927403E0915004F091510448E0BA +:1022D000C49FE00DF11D112480819181A281B38101 +:1022E0008093830390938403A0938503B093860324 +:1022F00020E030E040E85EE364817581868197816B +:102300000E9401306B017C0120E030E048EC52E497 +:1023100060917602709177028091780290917902B3 +:102320000E94562E9B01AC01C701B6010E940130EC +:1023300060937F0370938003809381039093820363 +:1023400010927E0310927D038091520480FD04C0A0 +:102350001092880310928703FF91EF91DF91CF9144 +:10236000BF91AF919F918F917F916F915F914F91AD +:102370003F912F91FF90EF90DF90CF90BF90AF9063 +:102380009F908F907F906F905F904F900F900FBEB7 +:102390000F901F901895CF92DF92EF92FF92CF93FC +:1023A000DF936B017C01EA0180917603811102C009 +:1023B0000E94C60D8091520480FF46C08091C503E3 +:1023C0009091C60308970CF03FC0809171008D7FFB +:1023D000809371008091880381110E94E00D81E05B +:1023E00080938703109275031092740320E030E00D +:1023F000A901C701B6010E94FD2F1816DCF48091D7 +:10240000C5039091C603FC01EE0FFF1FEE0FFF1FE7 +:10241000E356FC4FC082D182E282F382FC01EE0FD0 +:10242000FF1FE357FC4FD183C08301969093C603EF +:102430008093C503809171008260809371008091C8 +:102440009000806880939000DF91CF91FF90EF9093 +:10245000DF90CF9008958F929F92AF92BF92CF92CC +:10246000DF92EF92FF920F931F93CF93DF93EC01D4 +:102470007B01D42E4801590180917603811102C05D +:102480000E94C60D8091520480FF6BC08091710044 +:102490008D7F809371008091870381110E94E00DF0 +:1024A00081E080938803D0935104C0935004F0924C +:1024B0004F04E0924E04D0925904809253049092BB +:1024C0005404A0925504B0925604109289031092BD +:1024D0008A0310928B0310928C0310927B038881E5 +:1024E0009981AA81BB818093830390938403A093F5 +:1024F0008503B093860320E030E040E85EE36C8122 +:102500007D818E819F810E9401306B017C0120E0E2 +:1025100030E048EC52E4609176027091770280914D +:102520007802909179020E94562E9B01AC01C7015E +:10253000B6010E94013060937F0370938003809303 +:1025400081039093820310927E0310927D03809109 +:102550007100826080937100809190008068809308 +:102560009000DF91CF911F910F91FF90EF90DF903E +:10257000CF90BF90AF909F908F9008958091C703A8 +:1025800090E0019666E070E00E94CF318093C7032F +:1025900008958091C70390E0019766E070E00E9483 +:1025A000CF318093C70308958F929F92AF92BF92CD +:1025B000CF92DF92EF92FF920F931F93CF93DF930F +:1025C0006B017C01C0917403D0917503BE0180E062 +:1025D00090E00E94EF2E4B015C01A701960160E0A4 +:1025E00070E08CE594E40E94562E9B01AC01C5017D +:1025F000B4010E9401300E94C32E2091C7032330F2 +:1026000009F473C028F4222351F02130E9F02CC1E1 +:10261000243009F4A0C0253009F4E0C025C180E0D1 +:1026200090E0A0E0BFE38093720290937302A093C6 +:102630007402B0937502109277031092780310928F +:10264000790310927A0310C11092770310927803E5 +:102650001092790310927A036431710540F46A3064 +:10266000710560F520E030E040E85EE32BC0693C96 +:10267000710508F0AAC080E090E00E94EF2E20E0F3 +:1026800030E040EA51E40E94ED2D20E030E044E3E8 +:1026900053E40E94562E9B01AC010E94013020E0C1 +:1026A00030E040E05EE30E9401309B01AC0160E05D +:1026B00070E080E09EE30E94ED2D44C020E030E019 +:1026C00040E05FE3C701B6010E9401306B017C016D +:1026D00080E090E0A0E0BEE38093720290937302EA +:1026E000A0937402B0937502BFC01092770310924A +:1026F00078031092790310927A034AE0469F900182 +:10270000479F300D1124C90168EB7BE00E94BB316B +:10271000BC016C5D754077FF03C0719561957109CF +:10272000882777FD8095982F0E94F12E2EE333ECB9 +:102730004EE259E30E94013020E030E040EC5EE3DD +:102740000E94EE2D60937202709373028093740264 +:102750009093750289C010927703109278031092BB +:10276000790310927A03CE0183709927892BE1F0C7 +:10277000BE016170772780E090E00E94EF2E20E09C +:1027800030E040E05EE30E94013020E030E040E4D1 +:102790005FE30E94EE2D6093720270937302809348 +:1027A0007402909375020CC080E090E0A0E0BFE35B +:1027B0008093720290937302A0937402B093750297 +:1027C000C770DD27CD2B09F04FC010927202109216 +:1027D0007302109274021092750246C01092770331 +:1027E000109278031092790310927A0300E010E0BF +:1027F00020E03FE30093720210937302209374026F +:10280000309375026739710578F180E090E00E949D +:10281000EF2E20E030E047E153E40E94ED2D20E070 +:1028200030E04AE754E40E94562E20E030E048E4CD +:1028300052E40E94013020E030E040EA51E40E947E +:10284000332F0E94BE2E660F771F660F771FFB0186 +:10285000EC50FD4F2081318142815381C701B60187 +:102860000E9401306B017C01C701B601DF91CF915D +:102870001F910F91FF90EF90DF90CF90BF90AF909E +:102880009F908F9008958091D8030895CF93DF9300 +:1028900000D01F92CDB7DEB79C0180915E048430DA +:1028A00019F593E099833B832A839093E9008FEF96 +:1028B0009091E800815095FD06C095ED9A95F1F74D +:1028C00000008111F5CF8091E80085FF0DC040E048 +:1028D00050E063E070E0CE0101960E94A71680915F +:1028E000E8008E778093E8000F900F900F90DF91B3 +:1028F000CF910895CF93DF9300D01F92CDB7DEB76D +:1029000020915E04243021F522E029839B838A8371 +:1029100083E08093E9008FEF9091E800815095FD6E +:1029200006C095ED9A95F1F700008111F5CF8091E1 +:10293000E80085FF0DC040E050E063E070E0CE01AC +:1029400001960E94A7168091E8008E778093E80098 +:102950000F900F900F90DF91CF91089520915E041A +:102960002430F1F422E02093E9002FEF3091E800C9 +:10297000215035FD06C035ED3A95F1F700002111E3 +:10298000F5CF2091E80025FF0BC040E050E065E066 +:1029900070E00E94A7168091E8008E778093E8008F +:1029A0000895CF93DF93EC0190915E04943009F089 +:1029B00046C0809184028823D9F0809185028823C3 +:1029C000B9F09093E9008FEF9091E800815095FD68 +:1029D00006C095E19A95F1F700008111F5CF80913D +:1029E000E80085FF2CC040E050E060E170E017C0D7 +:1029F00081E08093E9008FEF9091E800815095FD90 +:102A000006C095ED9A95F1F700008111F5CF809100 +:102A1000E80085FF14C040E050E068E070E0CE01BF +:102A20000E94A7168091E8008E778093E80080E1ED +:102A3000FE01A8ECB3E001900D928A95E1F7DF91D9 +:102A4000CF91089580915D04811109C00E943C18C6 +:102A50000E9499188091E20084608093E2000895BA +:102A600010925D040895089508950C94E12742E0C2 +:102A700061EC81E00E94B61742E061EC82E00E94C6 +:102A8000B61742E061EC83E00E94B61742E161ECC8 +:102A900084E00C94B61780916004833009F455C02B +:102AA00030F4813071F0823009F48EC008958A309C +:102AB00009F47AC08B3009F460C0893009F09CC0F9 +:102AC00020C080915F04813A09F096C08091E800AF +:102AD000877F8093E8008091630490916404892B40 +:102AE00021F460E188EC93E003C060E080E090E0D6 +:102AF00070E00E94F2168091E8008B778093E800E6 +:102B0000089580915F04813209F076C0809163045A +:102B100090916404009719F0039709F06DC08091BB +:102B2000E800877F8093E8008091E80082FD05C07F +:102B300080915E048111F8CF5FC08091F100809395 +:102B4000D8038091E8008B7753C080915F04813A6D +:102B500009F052C08091630490916404892B09F0BC +:102B60004BC08091E800877F8093E8008091E80067 +:102B700080FFFCCF8091840236C080915F04813257 +:102B8000D9F58091630490916404892BA9F5809113 +:102B9000E800877F8093E8000E94EB178091610432 +:102BA000809384020C945C2180915F04813221F532 +:102BB0008091E800877F8093E8000E94EB17809166 +:102BC00062048093D903089580915F04813AA1F44F +:102BD0008091E800877F8093E8008091E80080FF83 +:102BE000FCCF8091D9038093F1008091E8008E772B +:102BF0008093E8000C94EB17089584B7877F84BF17 +:102C000088E10FB6F89480936000109260000FBEC8 +:102C100090E080E80FB6F894809361009093610093 +:102C20000FBE0E948E1B0E943C180E949918809132 +:102C3000E20084608093E20078940E941F1B0E944F +:102C4000901B8AE792E00E943A1B80915E048530D7 +:102C500069F40E949B2780915C048823B1F30E9451 +:102C6000C927882391F30E949116EFCF0E94981BE9 +:102C7000ECCF292F332723303105C9F064F42130FC +:102C8000310581F02230310509F043C08DE690E036 +:102C90002AE338E042C021323105F1F02232310519 +:102CA00041F137C082E190E027EA38E036C0992749 +:102CB0008130910541F08230910541F0892B49F531 +:102CC000E6E3F8E005C0E8E0F8E002C0EEEDF7E08A +:102CD000849190E09F0121C06430D8F4E62FF0E0A9 +:102CE000EE0FFF1FE05BFC4F2081318189E090E017 +:102CF00014C0643070F470E0FB01EE0FFF1FE85B5E +:102D0000FC4F20813181FB01EC5BFC4F808190E026 +:102D100004C080E090E020E030E0FA0131832083BD +:102D2000089580E189BD82E189BD09B400FEFDCF2F +:102D30008091D8008F7D8093D8008091E0008260E0 +:102D40008093E0008091E00081FDFCCF0895CF9258 +:102D5000DF92EF92FF920F931F93CF93DF93EC01DB +:102D60008B016A010E940A18811133C0C114D10479 +:102D700039F0F60180819181081B190BC80FD91F0A +:102D8000E12CF12C0115110519F18091E80085FD68 +:102D900016C08091E8008E778093E800C114D104BA +:102DA00049F0F60180819181E80EF91EF182E082FE +:102DB00085E00FC00E940A18882321F30AC0899178 +:102DC0008093F10001501109FFEFEF1AFF0ADACFEB +:102DD00080E0DF91CF911F910F91FF90EF90DF90F6 +:102DE000CF90089520916504309166042617370727 +:102DF00048F06115710539F42091E8002E77209391 +:102E0000E80001C0B90140E061157105A9F1209108 +:102E10005E04222309F443C0253009F442C0209106 +:102E2000E80023FD40C02091E80022FD32C020913F +:102E3000E80020FFE9CF4091F3002091F20030E05C +:102E4000342BFC01CF016115710559F02830310593 +:102E500040F481918093F100615071092F5F3F4FE1 +:102E6000F1CF41E02830310509F040E02091E80041 +:102E70002E772093E800C8CF4111C9CF0AC08091B6 +:102E80005E04882361F0853061F08091E80083FD65 +:102E90000AC08091E80082FFF2CF80E0089582E0CE +:102EA000089583E0089581E00895209165043091AC +:102EB00066042617370748F06115710539F420912B +:102EC000E8002E772093E80001C0B901FC0120E062 +:102ED0006115710591F180915E04882309F440C069 +:102EE000853009F43FC08091E80083FD3DC08091AA +:102EF000E80082FD2FC08091E80080FFE9CF20919B +:102F0000F3008091F20090E0922B6115710559F069 +:102F10008830910540F424912093F100319661505E +:102F200071090196F2CF21E0089709F020E0809125 +:102F3000E8008E778093E800CBCF2111CCCF0AC078 +:102F400080915E04882361F0853061F08091E80013 +:102F500083FD0AC08091E80082FFF2CF80E00895EF +:102F600082E0089583E0089581E00895982F9730D6 +:102F700058F59093E900981739F07091EC00209182 +:102F8000ED005091F00003C0242F762F50E021FF78 +:102F900019C03091EB003E7F3093EB003091ED0093 +:102FA0003D7F3093ED003091EB0031603093EB00CA +:102FB0007093EC002093ED005093F0002091EE0010 +:102FC00027FF07C09F5FD3CF8F708093E90081E018 +:102FD000089580E0089580915F0487FF11C080917B +:102FE000E80082FD05C080915E048111F8CF11C018 +:102FF0008091E8008B770BC080915E04882349F0B4 +:103000008091E80080FFF8CF8091E8008E77809370 +:10301000E80008952091E4003091E50095E64091A4 +:10302000EC00842F817040FF22C08091E80080FD79 +:103030001CC080915E04882391F0853091F08091CE +:10304000EB0085FD10C04091E4005091E50042176F +:10305000530729F39A01915011F784E0089582E013 +:10306000089583E0089581E0089580E008954091F7 +:10307000E80042FFDECF08950E94AA180E94B2180D +:10308000E0EEF0E0808181608083E8EDF0E0808117 +:103090008F77808319BCA7EDB0E08C918E7F8C93E5 +:1030A00080818F7E808310925D0408950F931F931B +:1030B000CF93DF930E94AA180E94B218C8EDD0E007 +:1030C00088818F77888388818068888388818F7DD5 +:1030D000888319BC10925E0410925A0410925C040A +:1030E00010925B0400EE10E0F80180818B7F8083FA +:1030F00088818160888342E060E080E00E94B617AA +:10310000E1EEF0E080818E7F8083E2EEF0E080816E +:1031100081608083808188608083F80180818E7FD8 +:103120008083888180618883DF91CF911F910F9187 +:103130000895E8EDF0E080818F7E8083E7EDF0E098 +:1031400080818160808384E082BF81E080935D0420 +:103150000C945618E8EDF0E080818E7F8083109209 +:10316000E20008951092DA001092E10008951F9293 +:103170000F920FB60F9211242F933F934F935F93AB +:103180006F937F938F939F93AF93BF93EF93FF932F +:103190008091E10082FF0BC08091E20082FF07C0B6 +:1031A0008091E1008B7F8093E1000E941E1B809143 +:1031B000DA0080FF1FC08091D80080FF1BC0809183 +:1031C000DA008E7F8093DA008091D90080FF0DC0F5 +:1031D00080E189BD82E189BD09B400FEFDCF81E0B7 +:1031E00080935E040E94221505C019BC10925E04F3 +:1031F0000E9430158091E10080FF19C08091E200AB +:1032000080FF15C08091E2008E7F8093E200809164 +:10321000E20080618093E2008091D8008062809318 +:10322000D80019BC85E080935E040E94341580911B +:10323000E10084FF30C08091E20084FF2CC080E177 +:1032400089BD82E189BD09B400FEFDCF8091D8001F +:103250008F7D8093D8008091E1008F7E8093E10084 +:103260008091E2008F7E8093E2008091E200816095 +:103270008093E20080915A04882311F084E007C013 +:103280008091E30087FD02C081E001C083E080936C +:103290005E040E9435158091E10083FF29C0809172 +:1032A000E20083FF25C08091E100877F8093E100E9 +:1032B00082E080935E0410925A048091E1008E7F38 +:1032C0008093E1008091E2008E7F8093E200809104 +:1032D000E20080618093E20042E060E080E00E94D2 +:1032E000B6178091F00088608093F0000E9433153B +:1032F000FF91EF91BF91AF919F918F917F916F91CE +:103300005F914F913F912F910F900FBE0F901F90A3 +:1033100018951F920F920FB60F9211242F933F937F +:103320004F935F936F937F938F939F93AF93BF93CD +:10333000CF93DF93EF93FF93C091E900CF7080911B +:10334000EC00D82FD17080FDD0E81092E900809178 +:10335000F000877F8093F00078940E94CD1910923E +:10336000E9008091F00088608093F000CD2BCF7051 +:10337000C093E900FF91EF91DF91CF91BF91AF91A1 +:103380009F918F917F916F915F914F913F912F917D +:103390000F900FBE0F901F9018951F93CF93DF9340 +:1033A000CDB7DEB7AA970FB6F894DEBF0FBECDBF7C +:1033B000EFE5F4E088E08E0F9091F10091938E1389 +:1033C000FBCF0E944B158091E80083FF1FC18091C5 +:1033D0005F0490916004492F50E04A30510508F095 +:1033E00015C1FA01EC59FF4F0C94E331803881F09C +:1033F000823809F00BC1809163048F708093E900DB +:103400008091EB0085FB882780F91092E90006C0C7 +:1034100080915B0490915C04911182609091E8002E +:10342000977F9093E8008093F1001092F100C8C05C +:10343000282F2D7F09F0EAC0882319F0823061F02F +:10344000E5C080916104813009F0E0C0933009F05B +:1034500080E080935C042BC080916104811127C0BF +:10346000809163048F7009F4D1C08093E9002091AA +:10347000EB0020FF1CC0933021F48091EB008062B0 +:1034800014C09091EB0090619093EB0021E030E04C +:10349000A90102C0440F551F8A95E2F74093EA0044 +:1034A0001092EA008091EB0088608093EB0010920C +:1034B000E9008091E800877F86C08111A7C0109144 +:1034C00061041F778091E3008078812B8093E30073 +:1034D0008091E800877F8093E8000E94EB1780913D +:1034E000E80080FFFCCF8091E30080688093E300D8 +:1034F000111102C082E001C083E080935E0486C0A7 +:103500008058823008F082C08091610490916204FA +:103510008C3D53E0950779F583E08A838AE28983BD +:103520004FB7F894DE01139620E03EE051E2E32F1E +:10353000F0E050935700E49120FF03C0E295EF7054 +:103540003F5FEF708E2F90E0EA3010F0C79601C019 +:10355000C0968D939D932F5F243149F74FBF809183 +:10356000E800877F8093E8006AE270E0CE01019670 +:103570000E94F21614C0AE014F5F5F4F609163046A +:103580000E943916BC01009709F440C09091E800F0 +:10359000977F9093E80089819A810E9455178091C6 +:1035A000E8008B778093E80031C0803879F580910E +:1035B000E800877F8093E80080915A048093F100AF +:1035C0008091E8008E778093E8000E94EB171EC080 +:1035D00081111CC0909161049230C0F48091E80088 +:1035E000877F8093E80090935A040E94EB178091A4 +:1035F0005A04811106C08091E30087FD02C081E07A +:1036000001C084E080935E040E9437158091E80039 +:1036100083FF0AC08091E800877F8093E800809153 +:10362000EB0080628093EB00AA960FB6F894DEBFA1 +:103630000FBECDBFDF91CF911F9108950895CF9315 +:1036400080915E048823A1F0C091E900CF70909131 +:10365000EC00892F817090FD80E8C82B1092E90062 +:103660008091E80083FD0E94CD19CF70C093E900DE +:10367000CF9108959093DF038093DE030895E09146 +:10368000DE03F091DF03309721F00190F081E02D0F +:10369000099480E00895E091DE03F091DF03309714 +:1036A00021F00280F381E02D09940895E091DE037A +:1036B000F091DF03309721F00480F581E02D09942B +:1036C00008952091DC033091DD038217930771F098 +:1036D0009093DD038093DC03E091DE03F091DF0340 +:1036E000309721F00680F781E02D0994089520910C +:1036F000DA033091DB038217930771F09093DB03B9 +:103700008093DA03E091DE03F091DF03309721F03C +:103710000084F185E02D0994089508950C948D1B83 +:103720000E9415280E94760B0E949B280C94562D0F +:103730004F925F927F928F929F92AF92BF92CF9261 +:10374000DF92EF92FF920F931F93CF93DF93CDB74A +:10375000DEB72A970FB6F894DEBF0FBECDBF0E942A +:10376000650C91EEC92E93E0D92E00E010E0AA245A +:10377000A394B12C702E802F0E94AE0D4C01F60147 +:10378000419051906F014826592641145104B1F4DB +:103790000F5F1F4F0430110569F78FEF89838A830C +:1037A0001B820E941E288160782F9D838C83498113 +:1037B0005A816B818D810E94511C3AC080913D04D9 +:1037C00081FD0E94B70D20E030E07501022E02C09D +:1037D000EE0CFF1C0A94E2F7C70184219521892B86 +:1037E00009F12E837F828E209F2091E0892809F4A1 +:1037F00090E098870E941E288160782F9A87898799 +:103800004E815F8168858A850E94511C000F111FBF +:10381000F801EF51FC4F80819181E826F926F18271 +:10382000E08206C02F5F3F4F2C30310571F6B0CFDC +:103830000E94872A1091E0030E943F1B1817D9F0BD +:103840000E943F1B8093E0032A960FB6F894DEBFD8 +:103850000FBECDBFDF91CF911F910F91FF90EF90E1 +:10386000DF90CF90BF90AF909F908F907F905F90B0 +:103870004F900C94AE0A2A960FB6F894DEBF0FBE96 +:10388000CDBFDF91CF911F910F91FF90EF90DF900F +:10389000CF90BF90AF909F908F907F905F904F9010 +:1038A0000895CF93DF93CDB7DEB72B970FB6F8947B +:1038B000DEBF0FBECDBF4F83588769877A878B875E +:1038C000DE01119686E0FD0111928A95E9F785E007 +:1038D000FE01379601900D928A95E1F749815A8150 +:1038E0006B817C818D819E810E94F6232B960FB681 +:1038F000F894DEBF0FBECDBFDF91CF910895CF9377 +:10390000882309F4C2C0C82F823859F40E943F1B93 +:1039100081FDBBC089E30E949F260E946C2789E33A +:103920000CC0833879F40E943F1B80FDAEC083E554 +:103930000E949F260E946C2783E50E94E126CF917A +:103940000C946C27843859F40E943F1B82FD9DC063 +:1039500087E40E949F260E946C2787E4EECF8CEFBD +:103960008C0F813A48F48C2F0E94BE2C81118DC09F +:103970008C2F0E949F26E3CF80E28C0F883048F482 +:10398000C77081E001C0880FCA95EAF70E94252719 +:10399000D6CF8BE58C0F833078F4C53A29F0C63A40 +:1039A00031F083E890E005C081E890E002C082E851 +:1039B00090E0CF910C94611B88E58C0F833108F067 +:1039C00064C0C83A39F1C93A41F1CA3A49F1CB3A2F +:1039D00051F1CC3A59F1CD3A61F1C03B69F1CE3A9F +:1039E00071F1CF3A79F1C13B81F1C23B89F1C33B1F +:1039F00091F1C43B99F1C53BA1F1C63BA9F1C73B8D +:103A0000B1F1C83BB9F1C93BC1F1CA3BC9F180E092 +:103A100090E038C082EE90E035C089EE90E032C090 +:103A20008AEE90E02FC085EB90E02CC086EB90E012 +:103A300029C087EB90E026C08CEC90E023C08DEC91 +:103A400090E020C083E891E01DC08AE891E01AC0B0 +:103A500082E991E017C084E991E014C081E292E02C +:103A600011C083E292E00EC084E292E00BC085E2D6 +:103A700092E008C086E292E005C087E292E002C0D0 +:103A80008AE292E0CF910C94771BCF91089588231E +:103A900009F44BC0823859F40E943F1B81FF45C096 +:103AA00089E30E949F260E946C2789E30CC083381B +:103AB00071F40E943F1B80FF38C083E50E949F265F +:103AC0000E946C2783E50E94E1260C946C278438C1 +:103AD00059F40E943F1B82FF28C087E40E949F2662 +:103AE0000E946C2787E4EFCF9CEF980F913A58F330 +:103AF00090E2980F983050F4877091E001C0990FD0 +:103B00008A95EAF7892F0E942B27DFCF9BE5980F34 +:103B1000933020F480E090E00C94611B885A83314C +:103B200020F480E090E00C94771B0895882321F026 +:103B30000E9425270C946C270895882321F00E9469 +:103B40002B270C946C270895BF92CF92DF92EF92AF +:103B5000FF920F931F93CF93DF9300D000D000D03C +:103B6000CDB7DEB725E0FC01DE01119601900D9284 +:103B70002A95E1F7FC01D0801181028125812295EF +:103B80002F7043815481452B09F472C31F3F21F4E8 +:103B9000FFEFDF1609F46CC37C012E830E947707C8 +:103BA000D9821A8369817A81802F0E949B26182FDF +:103BB000B92E0E9450260E9417252E81002319F04D +:103BC0000E9442272E81EB2DE295EF70F0E0E25942 +:103BD000FF4F0C94E3318B2D807F9B2D9F70F92E2E +:103BE000882319F0F29480EFF822002389F0FF2057 +:103BF00009F47CC280E2810F883020F48F2D0E946E +:103C0000252703C08F2D0E9435270E946C276EC286 +:103C1000812F0E94471DFF2009F42AC3105E8F2DBB +:103C2000183018F40E942B2702C00E943B272696CA +:103C30000FB6F894DEBF0FBECDBFDF91CF911F91BD +:103C40000F91FF90EF90DF90CF90BF900C946C2776 +:103C50008B2D807F9B2D9F70803211F4892F03C0A4 +:103C6000892F8295807F112319F0113011F12BC01B +:103C70000023A9F0222389F1213079F526960FB689 +:103C8000F894DEBF0FBECDBFDF91CF911F910F9192 +:103C9000FF90EF90DF90CF90BF900C945527222398 +:103CA00019F0213009F4E4C28E830E9458278E81D6 +:103CB0009BC1002321F0263008F0DAC20EC0253067 +:103CC00008F0D6C291C10023C9F0222331F0F701D8 +:103CD000958190FF0BC29F70958326960FB6F8943E +:103CE000DEBF0FBECDBFDF91CF911F910F91FF902F +:103CF000EF90DF90CF90BF900C94961D222309F493 +:103D000073C109C22B2D26952695237030E021150D +:103D1000310521F021303105D1F0AAC2002321F074 +:103D2000812F9B2D937002C080E090E026960FB605 +:103D3000F894DEBF0FBECDBFDF91CF911F910F91E1 +:103D4000FF90EF90DF90CF90BF900C94611B002309 +:103D500021F0812F9B2D937002C080E090E0269689 +:103D60000FB6F894DEBF0FBECDBFDF91CF911F918C +:103D70000F91FF90EF90DF90CF90BF900C94771B46 +:103D8000812F002319F00E948F2902C00E94F72979 +:103D900026960FB6F894DEBF0FBECDBFDF91CF9150 +:103DA0001F910F91FF90EF90DF90CF90BF900C94F8 +:103DB0007C2A8B2D837009F07BC0011159C2812FA1 +:103DC000829586958770880F880F912F9F70C92ED6 +:103DD000D12CE12CF12C082E04C0CC0CDD1CEE1CE7 +:103DE000FF1C0A94D2F714FF12C04FE050E060E0CD +:103DF00070E004C0440F551F661F771F8A95D2F7E5 +:103E0000CB01BA01609570958095909503C060E0F4 +:103E100070E0CB012B2D269526952370422F50E084 +:103E200042305105D9F04330510569F16C297D29A3 +:103E30008E299F294130510551F126960FB6F894ED +:103E4000DEBF0FBECDBFDF91CF911F910F91FF90CD +:103E5000EF90DF90CF90BF900C943E256C297D2988 +:103E60008E299F2926960FB6F894DEBF0FBECDBFD0 +:103E7000DF91CF911F910F91FF90EF90DF90CF9046 +:103E8000BF900C945A250E943E25C701B601269684 +:103E90000FB6F894DEBF0FBECDBFDF91CF911F915B +:103EA0000F91FF90EF90DF90CF90BF900C94222560 +:103EB000002319F08B2D817001C08695882309F4A9 +:103EC000D7C1812F829586958770880F880F912F93 +:103ED0009F70C92ED12CE12CF12C082E04C0CC0CE3 +:103EE000DD1CEE1CFF1C0A94D2F714FF12C04FE039 +:103EF00050E060E070E004C0440F551F661F771F5C +:103F00008A95D2F7CB01BA0160957095809590950E +:103F100003C060E070E0CB012B2D26952695237021 +:103F2000422F50E042305105D9F04330510569F13C +:103F30006C297D298E299F294130510551F1269602 +:103F40000FB6F894DEBF0FBECDBFDF91CF911F91AA +:103F50000F91FF90EF90DF90CF90BF900C941826B8 +:103F60006C297D298E299F2926960FB6F894DEBFED +:103F70000FBECDBFDF91CF911F910F91FF90EF90BA +:103F8000DF90CF90BF900C9434260E941826C70172 +:103F9000B60126960FB6F894DEBF0FBECDBFDF91F7 +:103FA000CF911F910F91FF90EF90DF90CF90BF9036 +:103FB0000C94FC25103F49F118F4103E48F491C0D0 +:103FC000123F09F453C0E8F1133F09F464C089C0FB +:103FD0001F708B2D8F71002321F00E949525812F5A +:103FE0007CCE0E94B625812F26960FB6F894DEBFB0 +:103FF0000FBECDBFDF91CF911F910F91FF90EF903A +:10400000DF90CF90BF900C949D1D0023B1F0253020 +:1040100008F02EC18B2D8F7126960FB6F894DEBF57 +:104020000FBECDBFDF91CF911F910F91FF90EF9009 +:10403000DF90CF90BF900C94DB25263008F018C19C +:10404000E9CF0023A9F08B2D8F7126960FB6F89437 +:10405000DEBF0FBECDBFDF91CF911F910F91FF90BB +:10406000EF90DF90CF90BF900C949525002359F3EB +:104070008B2D8F7126960FB6F894DEBF0FBECDBF85 +:10408000DF91CF911F910F91FF90EF90DF90CF9034 +:10409000BF900C94B625002399F08B2D8F71269636 :1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149 -:1040B0000F91FF90EF90DF90CF90BF900C9465250B -:1040C0000023A9F0222309F4ADCF812F26960FB645 -:1040D000F894DEBF0FBECDBFDF91CF911F910F913E -:1040E000FF90EF90DF90CF90BF900C946E1C222336 -:1040F00009F4ADCF812F26960FB6F894DEBF0FBE20 -:10410000CDBFDF91CF911F910F91FF90EF90DF9086 -:10411000CF90BF900C94361D4B2D4F70612FC7016F -:104120000E948D0526960FB6F894DEBF0FBECDBF58 -:10413000DF91CF911F910F91FF90EF90DF90CF9083 -:10414000BF900C948924011182C09B2D9F70492F30 -:1041500050E04230510509F443C0C4F44115510503 -:1041600071F14130510509F072C026960FB6F894EE -:10417000DEBF0FBECDBFDF91CF911F910F91FF909A -:10418000EF90DF90CF90BF900C946D2D4330510590 -:10419000C1F14430510509F05AC0812F26960FB65F -:1041A000F894DEBF0FBECDBFDF91CF911F910F916D -:1041B000FF90EF90DF90CF90BF900C94BF2D26968C +:1040B0000F91FF90EF90DF90CF90BF900C948025F0 +:1040C00026960FB6F894DEBF0FBECDBFDF91CF911D +:1040D0001F910F91FF90EF90DF90CF90BF900C94C5 +:1040E00076250023A9F0222309F4ADCF812F26964F +:1040F0000FB6F894DEBF0FBECDBFDF91CF911F91F9 +:104100000F91FF90EF90DF90CF90BF900C947F1CA9 +:10411000222309F4ADCF812F26960FB6F894DEBF87 +:104120000FBECDBFDF91CF911F910F91FF90EF9008 +:10413000DF90CF90BF900C94471D4B2D4F70612F97 +:10414000C7010E94690526960FB6F894DEBF0FBE20 +:10415000CDBFDF91CF911F910F91FF90EF90DF9036 +:10416000CF90BF900C949A24011182C09B2D9F7018 +:10417000492F50E04230510509F443C0C4F44115C1 +:10418000510571F14130510509F072C026960FB604 +:10419000F894DEBF0FBECDBFDF91CF911F910F917D +:1041A000FF90EF90DF90CF90BF900C947E2D433026 +:1041B0005105C1F14430510509F05AC0812F2696AE :1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128 -:1041D0000F91FF90EF90DF90CF90BF900C94562DF1 +:1041D0000F91FF90EF90DF90CF90BF900C94D02D77 :1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC :1041F0001F910F91FF90EF90DF90CF90BF900C94A4 -:10420000892D26960FB6F894DEBF0FBECDBFDF9185 +:10420000672D26960FB6F894DEBF0FBECDBFDF91A7 :10421000CF911F910F91FF90EF90DF90CF90BF90C3 -:104220000C949C2D4B2D4F70612FC70126960FB615 -:10423000F894DEBF0FBECDBFDF91CF911F910F91DC -:10424000FF90EF90DF90CF90BF900C949D07269643 +:104220000C949A2D26960FB6F894DEBF0FBECDBF24 +:10423000DF91CF911F910F91FF90EF90DF90CF9082 +:10424000BF900C94AD2D4B2D4F70612FC70126965A :104250000FB6F894DEBF0FBECDBFDF91CF911F9197 -:104260000F91FF90EF90DF90CF90BF9008950E9444 -:1042700031270E9441270E9406270E945B270E9447 -:104280001C2B0E946B2A80E090E00E94501B80E073 -:1042900090E00C94661B0E9421270C9437210E9409 -:1042A0007F26292F22952F7030E02C3031054CF4D9 -:1042B0002A3031056CF4225031092230310588F45E -:1042C00007C02C30310549F02F30310531F009C0DD -:1042D000803E48F0803F29F406C093FB882780F990 -:1042E000089580E0089581E00895CF93DF9300D092 -:1042F00000D01F92CDB7DEB70F900F900F900F90A8 -:104300000F90DF91CF910895CF93DF9300D000D02D -:1043100000D0CDB7DEB726960FB6F894DEBF0FBE3D -:10432000CDBFDF91CF9108951F93CF93DF93C091BD -:10433000990316E080919A03C81799F0D0E01C9F6A -:10434000F0011D9FF00D1124E556FC4F4081518175 -:1043500062817381848195810E9484212196C77036 -:10436000E9CFDF91CF911F9108954091CB035091F8 -:10437000CC036091CD037091CE038091CF039091D7 -:10438000D0030C9484218091D00382958F7009F022 -:1043900054C08091CD03882309F44FC080919903C4 -:1043A000A0919A036091CB037091CC034091CE030E -:1043B0005091CF03B6E08A1709F43FC090E0411551 -:1043C0005105C1F17F3F11F46F3FA1F1B89FF0019A -:1043D000B99FF00D1124E556FC4F218172132AC0BC -:1043E0002081621327C02281211124C023813481BE -:1043F0002417350710F421503109241B350B283CB4 -:104400003105C0F42091D0032F7020612093D00398 -:1044100026E0289FF001299FF00D1124E056FC4F63 -:1044200080818F70806180838BEC93E00E94931D6C -:104430000C94942101968770BECF0895CF92DF929D -:10444000EF92FF920F931F93CF93DF93CDB7DEB719 -:1044500062970FB6F894DEBF0FBECDBF8C0185E02A -:10446000F801DE011D9601900D928A95E1F7D801C1 -:104470004C9111965C91119712966C91129713962C -:10448000CD90DC9014973091CB037091CC03809148 -:10449000CE039091CF03009709F46BC17F3F19F4CD -:1044A0003F3F09F466C1E090CD03EE2009F4C0C09F -:1044B0002091D003C816D90628F0F601E81BF90BA5 -:1044C000CF0104C0809590958C0D9D1DFF24F39421 -:1044D000883C910578F0F12C207F09F0C6C07C2D36 -:1044E000D98AC88A89890E9475218BEC93E00E9441 -:1044F000931DB1C0822F807F09F046C0751314C090 -:10450000341312C0611110C02F7020612093D003AA -:104510000E94B5218BEC93E00E94931D8091D00303 -:10452000D80115968C932EC0CD2819F15F3F11F458 -:104530004F3FF9F0F62E61111CC080919903209134 -:104540009A0336E0821709F45AC090E0389FF001D0 -:10455000399FF00D1124E556FC4F7181571306C0A9 -:104560007081471303C07281711103C00196877077 -:10457000E9CFF62E662309F418C18091D00381603B -:104580008093D003F12C11C1751308C0341306C0F9 -:10459000611104C08091D003D801C3C04D875E87EC -:1045A0008D859E856A8B0E944F216A898823E1F15F -:1045B0006623D1F12091D003822F82958F7090E0F5 -:1045C000029774F08091CB039091CC0398878F83EE -:1045D0001986DB86CA862C87CE0107960E94931D1A -:1045E00086E0F801ABECB3E001900D928A95E1F71B -:1045F0000E94C3210E94B521FF24F394D6C04D87A9 -:104600005E878D859E850E947F26292F22952F709B -:1046100030E0223031050CF0BCC09F7009F0B6C00C -:10462000805E883008F4C1C0C8010E94931DE4CFA9 -:10463000C816D90608F453C0F601E81BF90BCF01E0 -:10464000883C910508F450C0F12C7C2DD98AC88A89 -:1046500089890E947521EBECF3E086E0DF011D9271 -:104660008A95E9F70E94B521A0C0751314C03413D0 -:1046700012C0611110C08091D003F8018583C80178 -:104680000E94931D86E0EBECF3E0DF011D928A951A -:10469000E9F7FE2C8AC04D875E878D859E856A8BE3 -:1046A0000E944F216A89882309F4BECF662309F44A -:1046B000BBCF2091D003822F82958F7090E002971C -:1046C0000CF48ECF8091CB039091CC039A83898395 -:1046D0001B82DD82CC822E83CE0101967FCF809516 -:1046E00090958C0D9D1DACCFF62E662309F49CCFC2 -:1046F00075132EC034132CC02091D00320FD1FC091 -:10470000822F82958F70D9F0D80115962C9315972A -:104710008F3049F08F5F982F9295907F822F8F7006 -:10472000892B15968C93C8010E94931D86E0F80191 -:10473000ABECB3E001900D928A95E1F793CF86E060 -:10474000F801ABECB3E001900D928A95E1F72DC032 -:104750004D875E878D859E850E944F21811140CFB8 -:104760008091D00381608093D003C8010E94931D83 -:104770001CC0662309F458CF4D875E878D859E85C2 -:104780000E944F21882309F44FCF2ACF811148CFAF -:104790000CC0243031050CF047CF9F7009F440CF96 -:1047A000F8019581907F09F03BCF8F2D62960FB66F -:1047B000F894DEBF0FBECDBFDF91CF911F910F9157 -:1047C000FF90EF90DF90CF9008951F93CF93DF93EA -:1047D000CDB7DEB72C970FB6F894DEBF0FBECDBFB6 -:1047E0004F83588769877A878B879C87CE01079686 -:1047F0000E941E22882369F08F8198852A853B8537 -:10480000232BF1F19F3F09F063C08F3F09F060C097 -:1048100037C086E0FE013796DE01119601900D92B9 -:104820008A95E1F76F817885EA85FB85309741F1BC -:104830007F3F11F46F3F21F120919A0330E0C901CD -:104840000196877099274091990350E08417950746 -:1048500009F447C069837A83FD83EC8396E0929FD5 -:10486000D001939FB00D1124A556BC4FFE01319687 -:1048700001900D929A95E1F780939A030E949421FA -:1048800016E08091990390919A038917C1F1189FBE -:10489000C001112485569C4F0E941E22882379F165 -:1048A000E09199031E9FF0011124E556FC4F4081D1 -:1048B000518162817381848195810E9484218091DC -:1048C000990390E001968770992780939903D9CF37 -:1048D0004F81588569857A858B859C850E948421C6 -:1048E000CFCF0E944B2110929A0310929903EBECC8 -:1048F000F3E086E0DF011D928A95E9F7C1CF2C969F -:104900000FB6F894DEBF0FBECDBFDF91CF911F91E0 -:104910000895EF92FF920F931F93CF93DF938C0133 -:10492000009709F46CC0F12CEE24E394E801219681 -:10493000F8018491843740F4843008F051C081300C -:1049400081F0823019F15BC0853709F444C0A8F1C9 -:104950009CE7980F903708F052C08F770E94361D61 -:1049600041C00E5F1F4FFE01C49180E28C0F883062 -:1049700048F4C7708E2D01C0880FCA95EAF70E94CF -:10498000342714C08C2F0E946E1C2DC00E5F1F4F49 -:10499000FE01C49180E28C0F883058F4C7708E2DD0 -:1049A00001C0880FCA95EAF70E943A270E945B2748 -:1049B0001AC08C2F0E94361D16C00E5F1F4FFE01BD -:1049C000C491CC2381F08FE99FE00197F1F700C0FB -:1049D0000000C150F6CF0E5F1F4FFE01F49003C0E0 -:1049E0000E946E1C8E018F2D882309F49FCFEFE962 -:1049F000FFE03197F1F700C000008150F5CFDF9163 -:104A0000CF911F910F91FF90EF90089508956093BB -:104A1000D5037093D6038093D7039093D8030C9457 -:104A200037210F931F930091D5031091D603209146 -:104A3000D7033091D803DC01CB01802B912BA22B23 -:104A4000B32B8093D5039093D603A093D703B09351 -:104A5000D8031F910F910C9437210F931F9300914E -:104A6000D5031091D6032091D7033091D803DC01F0 -:104A7000CB0180239123A223B3238093D50390936A -:104A8000D603A093D703B093D8031F910F910C9432 -:104A900037210F931F930091D5031091D6032091D6 -:104AA000D7033091D803DC01CB0180279127A227BF -:104AB000B3278093D5039093D603A093D703B093E5 -:104AC000D8031F910F910C9437211092D1031092AB -:104AD000D2031092D3031092D4030C94372141E0F7 -:104AE00050E060E070E004C0440F551F661F771F60 -:104AF0008A95D2F74093D1035093D2036093D303A6 -:104B00007093D4030C94372141E050E060E070E0F2 -:104B100004C0440F551F661F771F8A95D2F78091F6 -:104B2000D1039091D203A091D303B091D403482B29 -:104B3000592B6A2B7B2B4093D1035093D203609364 -:104B4000D3037093D4030C94372141E050E060E02C -:104B500070E004C0440F551F661F771F8A95D2F777 -:104B600040955095609570958091D1039091D203B6 -:104B7000A091D303B091D403482359236A237B2304 -:104B80004093D1035093D2036093D3037093D40323 -:104B90000C94372141E050E060E070E004C0440F25 -:104BA000551F661F771F8A95D2F78091D103909188 -:104BB000D203A091D303B091D403482759276A2781 -:104BC0007B274093D1035093D2036093D303709318 -:104BD000D4030C9437210F931F930091D1031091AC -:104BE000D2032091D3033091D403DC01CB01802B7D -:104BF000912BA22BB32B8093D1039093D203A0933C -:104C0000D303B093D4031F910F910C9437210F93CA -:104C10001F930091D1031091D2032091D3033091BF -:104C2000D403DC01CB0180239123A223B3238093FF -:104C3000D1039093D203A093D303B093D4031F91D5 -:104C40000F910C9437210F931F930091D103109172 -:104C5000D2032091D3033091D403DC01CB01802710 -:104C60009127A227B3278093D1039093D203A093D7 -:104C7000D303B093D4031F910F910C94372108955F -:104C8000CF92DF92EF92FF920F931F93CF93DF9318 -:104C90008C01C090D503D090D603E090D703F0905C -:104CA000D8038091D1039091D203A091D303B09106 -:104CB000D403C82AD92AEA2AFB2ACFE1D0E0D701B7 -:104CC000C6010C2E04C0B695A795979587950A94B2 -:104CD000D2F780FF06C0B8018C2F0E94F709019718 -:104CE00021F4219760F780E001C08C2FDF91CF91F4 -:104CF0001F910F91FF90EF90DF90CF900895CF9389 -:104D0000DF93EC010E944026BE010E94F709DF916B -:104D1000CF910895CB010E947F260895909186023D -:104D2000992321F090918702911109C02091880266 -:104D300030918902F90132969FEF40E01FC0982F11 -:104D40009695969596959F3050F5E0918802F09152 -:104D50008902E90FF11D877021E030E0A90102C04E -:104D6000440F551F8A95E2F7CA019181892B8183EF -:104D700008959F3F39F04F5F4E3041F051915813E5 -:104D8000F8CF0DC05111F7CF942FF5CF9F3F39F0D9 -:104D9000F901E90FF11D97FDFA95828308950895B1 -:104DA00090918602992321F090918702911109C078 -:104DB0002091880230918902F9013296205F3F4F9D -:104DC0001FC0982F9695969596959F30F0F4E09198 -:104DD0008802F0918902E90FF11D877021E030E02F -:104DE000A90102C0440F551F8A95E2F7CA018095B8 -:104DF00091818923818308953196E217F30729F081 -:104E000090819813F9CF1082F7CF089581E090E058 -:104E1000E0918802F0918902E80FF91F1082019653 -:104E200080319105A9F708959091EC03892B809327 -:104E3000EC03089580959091EC0389238093EC0313 -:104E400008951092EC0308959091EB03892B8093C1 -:104E5000EB03089580959091EB0389238093EB03F6 -:104E600008951092EB0308959091EA03892B8093A3 -:104E7000EA03089580959091EA0389238093EA03D9 -:104E800008951092EA0308958093D903089510922B -:104E9000D90308958091880290918902FC0131968E -:104EA0009C01205F3F4F80E0919191118F5FE2174D -:104EB000F307D1F70895E0918802F091890280917B -:104EC000EC038083E0918802F091890290818091C7 -:104ED000EB03892B8083E0918802F0918902908115 -:104EE0008091EA03892B80838091D903882361F024 -:104EF000E0918802F09189029081892B80830E9441 -:104F00004A2781111092D9038091880290918902D9 -:104F10000C943A1B80910E04843039F11092EE0308 -:104F200020E488E190E00FB6F894A89580936000A3 -:104F30000FBE2093600080E00E94540580E00E9434 -:104F4000D20A83B7817F846083BF83B7816083BFC8 -:104F50007894889583B78E7F83BF88E10FB6F894E5 -:104F600080936000109260000FBE08950895089528 -:104F7000CF9380E00E9454050E94B6270E94890CBE -:104F80000E94B727C0E08C2F0E94D20D892B29F4F4 -:104F9000CF5FC430C1F780E001C081E0CF910895B8 -:104FA0000E944B2180E00E9454050E94452D0E94E2 -:104FB0002E1B0C94D20A1F920F920FB60F9211243F -:104FC0008F939F93AF93BF938091EE03811113C092 -:104FD0008091EF039091F003A091F103B091F2035F -:104FE0004196A11DB11D8093EF039093F003A09310 -:104FF000F103B093F203BF91AF919F918F910F9006 -:105000000FBE0F901F90189582E084BD93E095BD70 -:105010009AEF97BD80936E0008952FB7F894809112 -:10502000EF039091F003A091F103B091F2032FBF31 -:105030000895CF92DF92EF92FF920F931F932FB7B5 -:10504000F8944091EF035091F0036091F103709157 -:10505000F2032FBF6A017B01EE24FF248C0120E0C4 -:1050600030E0C016D106E206F30610F441505109B3 -:105070009A01281B390BC9011F910F91FF90EF90E6 -:10508000DF90CF9008951F920F920FB60F921124C8 -:105090008F939F93AF93BF938091EF039091F00311 -:1050A000A091F103B091F2030196A11DB11D80936F -:1050B000EF039093F003A093F103B093F203BF9139 -:1050C000AF919F918F910F900FBE0F901F901895E9 -:1050D0000E942B18F8942FEF87EA91E62150804028 -:1050E0009040E1F700C0000087E090EBDC01809386 -:1050F000190490931A04A0931B04B0931C049CE021 -:1051000088E10FB6F894A895809360000FBE909345 -:105110006000FFCF0E94C928811102C00E94A5280B -:105120000E94D4288093ED030E94E1288093170405 -:1051300087FB882780F9809387020E94D828682FF0 -:1051400070E080E090E00C9407256DEE7EEF80E04B -:1051500090E00E94AA3160E082E090E00E949831E5 -:1051600060E083E090E00E94983160E084E090E0AD -:105170000E94983160E085E090E00E94983160E004 -:1051800086E090E00E9498316FEF87E090E00C9409 -:10519000983180E090E00E94923121E08D3E9E4F58 -:1051A00009F020E0822F089582E090E00C948A318B -:1051B00083E090E00C948A31682F83E090E00C94B7 -:1051C000983184E090E00C948A31682F84E090E07C -:1051D0000C94983186E090E00C948A31682F86E038 -:1051E00090E00C94983187E090E00C948A31682F1D -:1051F00087E090E00C9498318091F50380FF0BC01C -:1052000060918D0285E0689FB001112475956795C6 -:10521000759567952BC081FF09C060918D0285E06F -:10522000689FB00111247595679520C082FF07C063 -:1052300060918D0285E0689FB001112417C09091A4 -:10524000F6039923D1F060918C02961788F720918C -:105250008D0285E0289F90011124929FA001939FC9 -:10526000500D112470E0CA010E9470316038710540 -:1052700040F46115710539F002C065E070E0862FD9 -:1052800008958FE7089581E008958091F50380FFE8 -:1052900008C060918B0270E075956795759567956C -:1052A00021C081FF06C060918B0270E07595679503 -:1052B00019C082FF04C060918B0270E010C0909111 -:1052C000F6039923C1F060918A029617A0F78091A6 -:1052D0008B02899FC001112470E00E9470316038F8 -:1052E000710528F46115710521F0862F08958FE767 -:1052F000089581E0089561E070E0F4CF803F21F4EB -:105300000E94FC28819504C0813F29F40E94FC285A -:105310008093F9030895823F21F40E94FC2881952F -:1053200004C0833F29F40E94FC288093F803089569 -:10533000893F19F40E94452905C08A3F31F40E9433 -:10534000452981958093FA0308958B3F21F40E94AB -:105350004529819504C08C3F29F40E9445298093FA -:10536000FB030895843F21F48091F703816017C007 -:10537000853F21F48091F703826011C0863F21F4BC -:105380008091F70384600BC0873F21F48091F7037D -:10539000886005C0883F31F48091F7038061809375 -:1053A000F70308958D3F21F48091F50381600BC0D0 -:1053B0008E3F21F48091F503826005C08F3F29F470 -:1053C0008091F50384608093F5030895803F39F45C -:1053D0008091F90387FF6CC01092F90369C0813F87 -:1053E00029F48091F9031816BCF362C09091F80378 -:1053F000823F29F497FF5CC01092F80359C0833FA5 -:1054000019F41916CCF354C0893F41F48091FA0382 -:1054100018160CF04DC01092FA034AC08A3F29F4C6 -:105420008091FA0387FF44C0F6CF8B3F39F4809117 -:10543000FB0387FF3DC01092FB033AC08C3F29F469 -:105440008091FB031816BCF333C0843F21F4809194 -:10545000F7038E7F17C0853F21F48091F7038D7F7E -:1054600011C0863F21F48091F7038B7F0BC0873FEB -:1054700021F48091F703877F05C0883F31F4809144 -:10548000F7038F7E8093F70313C08D3F21F4809143 -:10549000F5038E7F0BC08E3F21F48091F5038D7F45 -:1054A00005C08F3F29F48091F5038B7F8093F5032E -:1054B0008091F80381110EC08091F90381110AC017 -:1054C0008091FA03811106C08091FB03811102C013 -:1054D0001092F603089587EF93E00E94451B0E9407 -:1054E0000D289093F4038093F30308951F93CF93B3 -:1054F000DF938091F3039091F4030E941928AC018B -:105500009091F603992321F020918E0230E006C09D -:1055100020918F028AE0289F90011124421753079F -:1055200008F486C08091F803C091F903D091FA0382 -:105530001091FB03811107C0C11176C0D11174C055 -:10554000111172C075C09F3F19F09F5F9093F603D1 -:10555000181624F40E94FC288093F8038091F80325 -:1055600087FF05C00E94FC2881958093F8031C16D4 -:1055700024F40E94FC288093F9038091F90387FFAB -:1055800005C00E94FC2881958093F9036091F8037F -:10559000662339F1C091F903CC2319F1772767FD10 -:1055A0007095872F972F0E94E02E23E333E343E388 -:1055B0005FE30E94942F0E94AD2E6093F8036C2F3E -:1055C000772767FD7095872F972F0E94E02E23E3A2 -:1055D00033E343E35FE30E94942F0E94AD2E609378 -:1055E000F9031D1624F40E9445298093FA03809143 -:1055F000FA0387FF05C00E94452981958093FA032D -:10560000111624F40E9445298093FB038091FB032B -:1056100087FF05C00E94452981958093FB03DF9198 -:10562000CF911F910C946B2A9F3F09F08ECF96CF9C -:10563000DF91CF911F910895E7EFF3E085E0DF015F -:105640001D928A95E9F71092F6031092F5030895DA -:10565000833081F128F4813059F08230D1F00895FF -:10566000853009F449C0B8F1863009F456C0089570 -:1056700080918F02262F30E0280F311D2F3F3105FA -:1056800024F4680F60938F0208958FEF80938F0248 -:10569000089580918E02262F30E0280F311D2F3F74 -:1056A000310524F4680F60938E0208958FEF809384 -:1056B0008E02089580918D02262F30E0280F311D33 -:1056C0002F3F310524F4680F60938D0208958FEF0A -:1056D00080938D02089580918C02262F30E0280F50 -:1056E000311D2F3F310524F4680F60938C0208951B -:1056F0008FEF80938C02089580918B02262F30E0EB -:10570000280F311D2F3F310524F4680F60938B0261 -:1057100008958FEF80938B02089580918A02262F3F +:104260000F91FF90EF90DF90CF90BF900C94790763 +:1042700026960FB6F894DEBF0FBECDBFDF91CF916B +:104280001F910F91FF90EF90DF90CF90BF90089516 +:104290000E9442270E9452270E9417270E946C27E3 +:1042A0000E942D2B0E947C2A80E090E00E94611BDE +:1042B00080E090E00C94771B0E9432270C944821F8 +:1042C0000E949026292F22952F7030E02C30310546 +:1042D0004CF42A3031056CF422503109223031057A +:1042E00088F407C02C30310549F02F30310531F00A +:1042F00009C0803E48F0803F29F406C093FB882720 +:1043000080F9089580E0089581E00895CF93DF93C8 +:1043100000D000D01F92CDB7DEB70F900F900F9056 +:104320000F900F90DF91CF910895CF93DF9300D03E +:1043300000D000D0CDB7DEB726960FB6F894DEBF1A +:104340000FBECDBFDF91CF9108951F93CF93DF9321 +:10435000C091E90316E08091EA03C81799F0D0E014 +:104360001C9FF0011D9FF00D1124E551FC4F408171 +:10437000518162817381848195810E94952121966A +:10438000C770E9CFDF91CF911F91089540911B0431 +:1043900050911C0460911D0470911E0480911F04B3 +:1043A000909120040C9495218091200482958F7027 +:1043B00009F054C080911D04882309F44FC08091F6 +:1043C000E903A091EA0360911B0470911C044091E1 +:1043D0001E0450911F04B6E08A1709F43FC090E014 +:1043E00041155105C1F17F3F11F46F3FA1F1B89F15 +:1043F000F001B99FF00D1124E551FC4F218172139A +:104400002AC02081621327C02281211124C0238168 +:1044100034812417350710F421503109241B350B42 +:10442000283C3105C0F4209120042F702061209396 +:10443000200426E0289FF001299FF00D1124E0516F +:10444000FC4F80818F70806180838BE194E00E94BB +:10445000A41D0C94A52101968770BECF0895CF921C +:10446000DF92EF92FF920F931F93CF93DF93CDB71D +:10447000DEB762970FB6F894DEBF0FBECDBF8C01DA +:1044800085E0F801DE011D9601900D928A95E1F715 +:10449000D8014C9111965C91119712966C911297DC +:1044A0001396CD90DC90149730911B0470911C04EE +:1044B00080911E0490911F04009709F46BC17F3F07 +:1044C00019F43F3F09F466C1E0901D04EE2009F4A1 +:1044D000C0C020912004C816D90628F0F601E81BB8 +:1044E000F90BCF0104C0809590958C0D9D1DFF2484 +:1044F000F394883C910578F0F12C207F09F0C6C038 +:104500007C2DD98AC88A89890E9486218BE194E012 +:104510000E94A41DB1C0822F807F09F046C0751390 +:1045200014C0341312C0611110C02F702061209389 +:1045300020040E94C6218BE194E00E94A41D80917A +:104540002004D80115968C932EC0CD2819F15F3F19 +:1045500011F44F3FF9F0F62E61111CC08091E90370 +:104560002091EA0336E0821709F45AC090E0389FA0 +:10457000F001399FF00D1124E551FC4F7181571363 +:1045800006C07081471303C07281711103C0019688 +:104590008770E9CFF62E662309F418C180912004B4 +:1045A000816080932004F12C11C1751308C034136D +:1045B00006C0611104C080912004D801C3C04D879A +:1045C0005E878D859E856A8B0E9460216A8988231B +:1045D000E1F16623D1F120912004822F82958F7022 +:1045E00090E0029774F080911B0490911C049887CE +:1045F0008F831986DB86CA862C87CE0107960E9498 +:10460000A41D86E0F801ABE1B4E001900D928A951B +:10461000E1F70E94D4210E94C621FF24F394D6C062 +:104620004D875E878D859E850E949026292F229535 +:104630002F7030E0223031050CF0BCC09F7009F0C3 +:10464000B6C0805E883008F4C1C0C8010E94A41DB5 +:10465000E4CFC816D90608F453C0F601E81BF90BDD +:10466000CF01883C910508F450C0F12C7C2DD98AEB +:10467000C88A89890E948621EBE1F4E086E0DF01A7 +:104680001D928A95E9F70E94C621A0C0751314C037 +:10469000341312C0611110C080912004F801858389 +:1046A000C8010E94A41D86E0EBE1F4E0DF011D9249 +:1046B0008A95E9F7FE2C8AC04D875E878D859E8599 +:1046C0006A8B0E9460216A89882309F4BECF662321 +:1046D00009F4BBCF20912004822F82958F7090E047 +:1046E00002970CF48ECF80911B0490911C049A8346 +:1046F00089831B82DD82CC822E83CE0101967FCFFF +:10470000809590958C0D9D1DACCFF62E662309F4F7 +:104710009CCF75132EC034132CC02091200420FD93 +:104720001FC0822F82958F70D9F0D80115962C93D7 +:1047300015978F3049F08F5F982F9295907F822F39 +:104740008F70892B15968C93C8010E94A41D86E05A +:10475000F801ABE1B4E001900D928A95E1F793CFB7 +:1047600086E0F801ABE1B4E001900D928A95E1F7A3 +:104770002DC04D875E878D859E850E9460218111A9 +:1047800040CF80912004816080932004C8010E9462 +:10479000A41D1CC0662309F458CF4D875E878D8504 +:1047A0009E850E946021882309F44FCF2ACF811172 +:1047B00048CF0CC0243031050CF047CF9F7009F46E +:1047C00040CFF8019581907F09F03BCF8F2D629605 +:1047D0000FB6F894DEBF0FBECDBFDF91CF911F9112 +:1047E0000F91FF90EF90DF90CF9008951F93CF939C +:1047F000DF93CDB7DEB72C970FB6F894DEBF0FBEB0 +:10480000CDBF4F83588769877A878B879C87CE0176 +:1048100007960E942F22882369F08F8198852A8528 +:104820003B85232BF1F19F3F09F063C08F3F09F0D7 +:1048300060C037C086E0FE013796DE011196019018 +:104840000D928A95E1F76F817885EA85FB8530972F +:1048500041F17F3F11F46F3F21F12091EA0330E0F5 +:10486000C9010196877099274091E90350E08417A8 +:10487000950709F447C069837A83FD83EC8396E04A +:10488000929FD001939FB00D1124A551BC4FFE0102 +:10489000319601900D929A95E1F78093EA030E9478 +:1048A000A52116E08091E9039091EA038917C1F1EF +:1048B000189FC001112485519C4F0E942F228823EC +:1048C00079F1E091E9031E9FF0011124E551FC4FBD +:1048D0004081518162817381848195810E949521FB +:1048E0008091E90390E00196877099278093E9030E +:1048F000D9CF4F81588569857A858B859C850E94A3 +:104900009521CFCF0E945C211092EA031092E90317 +:10491000EBE1F4E086E0DF011D928A95E9F7C1CF73 +:104920002C960FB6F894DEBF0FBECDBFDF91CF91AE +:104930001F910895EF92FF920F931F93CF93DF93F0 +:104940008C01009709F46CC0F12CEE24E394E8018B +:104950002196F8018491843740F4843008F051C0E6 +:10496000813081F0823019F15BC0853709F444C091 +:10497000A8F19CE7980F903708F052C08F770E94FB +:10498000471D41C00E5F1F4FFE01C49180E28C0F96 +:10499000883048F4C7708E2D01C0880FCA95EAF799 +:1049A0000E94452714C08C2F0E947F1C2DC00E5FD3 +:1049B0001F4FFE01C49180E28C0F883058F4C770FD +:1049C0008E2D01C0880FCA95EAF70E944B270E94DE +:1049D0006C271AC08C2F0E94471D16C00E5F1F4FF8 +:1049E000FE01C491CC2381F08FE99FE00197F1F79C +:1049F00000C00000C150F6CF0E5F1F4FFE01F490C3 +:104A000003C00E947F1C8E018F2D882309F49FCF45 +:104A1000EFE9FFE03197F1F700C000008150F5CFDA +:104A2000DF91CF911F910F91FF90EF90089508951E +:104A300060932504709326048093270490932804A0 +:104A40000C9448210F931F93009125041091260484 +:104A50002091270430912804DC01CB01802B912B7D +:104A6000A22BB32B8093250490932604A0932704B4 +:104A7000B09328041F910F910C9448210F931F931A +:104A800000912504109126042091270430912804D8 +:104A9000DC01CB0180239123A223B323809325043F +:104AA00090932604A0932704B09328041F910F919C +:104AB0000C9448210F931F93009125041091260414 +:104AC0002091270430912804DC01CB018027912715 +:104AD000A227B3278093250490932604A09327044C +:104AE000B09328041F910F910C9448211092210437 +:104AF0001092220410922304109224040C94482152 +:104B000041E050E060E070E004C0440F551F661FB4 +:104B1000771F8A95D2F74093210450932204609323 +:104B20002304709324040C94482141E050E060E099 +:104B300070E004C0440F551F661F771F8A95D2F797 +:104B40008091210490912204A0912304B091240427 +:104B5000482B592B6A2B7B2B409321045093220422 +:104B600060932304709324040C94482141E050E0A6 +:104B700060E070E004C0440F551F661F771F8A95E0 +:104B8000D2F7409550956095709580912104909151 +:104B90002204A0912304B0912404482359236A23BA +:104BA0007B23409321045093220460932304709349 +:104BB00024040C94482141E050E060E070E004C01F +:104BC000440F551F661F771F8A95D2F780912104E5 +:104BD00090912204A0912304B091240448275927DE +:104BE0006A277B2740932104509322046093230477 +:104BF000709324040C9448210F931F930091210477 +:104C0000109122042091230430912404DC01CB0173 +:104C1000802B912BA22BB32B809321049093220401 +:104C2000A0932304B09324041F910F910C94482166 +:104C30000F931F93009121041091220420912304CB +:104C400030912404DC01CB0180239123A223B323E0 +:104C50008093210490932204A0932304B09324040E +:104C60001F910F910C9448210F931F9300912104E1 +:104C7000109122042091230430912404DC01CB0103 +:104C800080279127A227B3278093210490932204A1 +:104C9000A0932304B09324041F910F910C944821F6 +:104CA0000895CF92DF92EF92FF920F931F93CF93CD +:104CB000DF938C01C0902504D0902604E090270457 +:104CC000F09028048091210490912204A091230463 +:104CD000B0912404C82AD92AEA2AFB2ACFE1D0E0DD +:104CE000D701C6010C2E04C0B695A7959795879558 +:104CF0000A94D2F780FF06C0B8018C2F0E94D30916 +:104D0000019721F4219760F780E001C08C2FDF919B +:104D1000CF911F910F91FF90EF90DF90CF9008956A +:104D2000CF93DF93EC010E945126BE010E94D3096C +:104D3000DF91CF910895CB010E9490260895909124 +:104D40008402992321F090918502911109C020914C +:104D5000860230918702F90132969FEF40E01FC032 +:104D6000982F9695969596959F3050F5E0918602EE +:104D7000F0918702E90FF11D877021E030E0A90171 +:104D800002C0440F551F8A95E2F7CA019181892B11 +:104D9000818308959F3F39F04F5F4E3041F051912C +:104DA0005813F8CF0DC05111F7CF942FF5CF9F3F77 +:104DB00039F0F901E90FF11D97FDFA958283089505 +:104DC000089590918402992321F090918502911188 +:104DD00009C02091860230918702F9013296205F46 +:104DE0003F4F1FC0982F9695969596959F30F0F45B +:104DF000E0918602F0918702E90FF11D877021E0B2 +:104E000030E0A90102C0440F551F8A95E2F7CA019C +:104E1000809591818923818308953196E217F30764 +:104E200029F090819813F9CF1082F7CF089581E08F +:104E300090E0E0918602F0918702E80FF91F10825E +:104E4000019680319105A9F7089590913C04892B32 +:104E500080933C040895809590913C04892380932D +:104E60003C04089510923C04089590913B04892BD2 +:104E700080933B040895809590913B04892380930F +:104E80003B04089510923B04089590913A04892BB5 +:104E900080933A040895809590913A0489238093F1 +:104EA0003A04089510923A040895809329040895CD +:104EB0001092290408958091860290918702FC0146 +:104EC00031969C01205F3F4F80E0919191118F5F5F +:104ED000E217F307D1F70895E0918602F091870277 +:104EE00080913C048083E0918602F091870290815A +:104EF00080913B04892B8083E0918602F0918702A8 +:104F0000908180913A04892B8083809129048823A1 +:104F100061F0E0918602F09187029081892B808375 +:104F20000E945B2781111092290480918602909142 +:104F300087020C944B1B80915E04843039F11092EF +:104F40003E0420E488E190E00FB6F894A8958093A1 +:104F500060000FBE2093600080E00E94300580E07A +:104F60000E94AE0A83B7817F846083BF83B781606C +:104F700083BF7894889583B78E7F83BF88E10FB60F +:104F8000F89480936000109260000FBE0895089519 +:104F90000895CF9380E00E9430050E94C7270E94A9 +:104FA000650C0E94C827C0E08C2F0E94AE0D892B93 +:104FB00029F4CF5FC430C1F780E001C081E0CF9118 +:104FC00008950E945C2180E00E9430050E94562DC9 +:104FD0000E943F1B0C94AE0A1F920F920FB60F92C5 +:104FE00011248F939F93AF93BF9380913E048111BF +:104FF00013C080913F0490914004A0914104B0916E +:1050000042044196A11DB11D80933F04909340043A +:10501000A0934104B0934204BF91AF919F918F91AF +:105020000F900FBE0F901F90189582E084BD93E003 +:1050300095BD9AEF97BD80936E0008952FB7F894B1 +:1050400080913F0490914004A0914104B0914204AA +:105050002FBF0895CF92DF92EF92FF920F931F938D +:105060002FB7F89440913F0450914004609141045F +:10507000709142042FBF6A017B01EE24FF248C0152 +:1050800020E030E0C016D106E206F30610F44150ED +:1050900051099A01281B390BC9011F910F91FF90EB +:1050A000EF90DF90CF9008951F920F920FB60F925E +:1050B00011248F939F93AF93BF9380913F0490915E +:1050C0004004A0914104B09142040196A11DB11D7C +:1050D00080933F0490934004A0934104B093420412 +:1050E000BF91AF919F918F910F900FBE0F901F9026 +:1050F00018950E943C18F8942FEF87EA91E621500A +:1051000080409040E1F700C0000087E090EBDC01B8 +:105110008093690490936A04A0936B04B0936C0429 +:105120009CE088E10FB6F894A895809360000FBECC +:1051300090936000FFCF0E94DA28811102C00E9484 +:10514000B6280E94E52880933D040E94F2288093AF +:10515000670487FB882780F9809385020E94E928ED +:10516000682F70E080E090E00C9418256DEE7EEFE3 +:1051700080E090E00E94093260E082E090E00E94CE +:10518000F73160E083E090E00E94F73160E084E076 +:1051900090E00E94F73160E085E090E00E94F731F6 +:1051A00060E086E090E00E94F7316FEF87E090E0EA +:1051B0000C94F73180E090E00E94F13121E08D3EC7 +:1051C0009E4F09F020E0822F089582E090E00C9439 +:1051D000E93183E090E00C94E931682F83E090E0BE +:1051E0000C94F73184E090E00C94E931682F84E06E +:1051F00090E00C94F73186E090E00C94E931682F50 +:1052000086E090E00C94F73187E090E00C94E9316F +:10521000682F87E090E00C94F7318091450480FF7F +:105220000BC060918B0285E0689FB00111247595D9 +:105230006795759567952BC081FF09C060918B02BA +:1052400085E0689FB00111247595679520C082FFA5 +:1052500007C060918B0285E0689FB001112417C0E0 +:10526000909146049923D1F060918A02961788F7AD +:1052700020918B0285E0289F90011124929FA0012C +:10528000939F500D112470E0CA010E94CF31603805 +:10529000710540F46115710539F002C065E070E0F8 +:1052A000862F08958FE7089581E008958091450441 +:1052B00080FF08C06091890270E0759567957595CB +:1052C000679521C081FF06C06091890270E07595E5 +:1052D000679519C082FF04C06091890270E010C018 +:1052E000909146049923C1F0609188029617A0F727 +:1052F00080918902899FC001112470E00E94CF3102 +:105300006038710528F46115710521F0862F089524 +:105310008FE7089581E0089561E070E0F4CF803F69 +:1053200021F40E940D29819504C0813F29F40E9437 +:105330000D29809349040895823F21F40E940D298C +:10534000819504C0833F29F40E940D29809348046D +:105350000895893F19F40E94562905C08A3F31F407 +:105360000E945629819580934A0408958B3F21F429 +:105370000E945629819504C08C3F29F40E94562929 +:1053800080934B040895843F21F480914704816009 +:1053900017C0853F21F480914704826011C0863F89 +:1053A00021F48091470484600BC0873F21F48091F1 +:1053B0004704886005C0883F31F4809147048061CC +:1053C0008093470408958D3F21F4809145048160C6 +:1053D0000BC08E3F21F480914504826005C08F3F51 +:1053E00029F4809145048460809345040895803FAA +:1053F00039F48091490487FF6CC01092490469C058 +:10540000813F29F4809149041816BCF362C0909141 +:105410004804823F29F497FF5CC01092480459C0A9 +:10542000833F19F41916CCF354C0893F41F480919D +:105430004A0418160CF04DC010924A044AC08A3F24 +:1054400029F480914A0487FF44C0F6CF8B3F39F49A +:1054500080914B0487FF3DC010924B043AC08C3FB3 +:1054600029F480914B041816BCF333C0843F21F417 +:10547000809147048E7F17C0853F21F480914704B7 +:105480008D7F11C0863F21F4809147048B7F0BC034 +:10549000873F21F480914704877F05C0883F31F41E +:1054A000809147048F7E8093470413C08D3F21F481 +:1054B000809145048E7F0BC08E3F21F4809145047E +:1054C0008D7F05C08F3F29F4809145048B7F8093A9 +:1054D00045048091480481110EC0809149048111D6 +:1054E0000AC080914A04811106C080914B04811149 +:1054F00002C010924604089587E494E00E94561B6F +:105500000E941E28909344048093430408951F939F +:10551000CF93DF9380914304909144040E942A2802 +:10552000AC0190914604992321F020918C0230E047 +:1055300006C020918D028AE0289F90011124421715 +:10554000530708F486C080914804C0914904D09163 +:105550004A0410914B04811107C0C11176C0D111CA +:1055600074C0111172C075C09F3F19F09F5F909376 +:105570004604181624F40E940D2980934804809153 +:10558000480487FF05C00E940D2981958093480437 +:105590001C1624F40E940D2980934904809149042B +:1055A00087FF05C00E940D29819580934904609171 +:1055B0004804662339F1C0914904CC2319F17727B7 +:1055C00067FD7095872F972F0E94F12E23E333E319 +:1055D00043E35FE30E9401300E94BE2E60934804C3 +:1055E0006C2F772767FD7095872F972F0E94F12EDC +:1055F00023E333E343E35FE30E9401300E94BE2EC6 +:10560000609349041D1624F40E94562980934A048D +:1056100080914A0487FF05C00E9456298195809396 +:105620004A04111624F40E94562980934B04809159 +:105630004B0487FF05C00E945629819580934B0437 +:10564000DF91CF911F910C947C2A9F3F09F08ECF60 +:1056500096CFDF91CF911F910895E7E4F4E085E0C4 +:10566000DF011D928A95E9F71092460410924504D5 +:105670000895833081F128F4813059F08230D1F0DF +:105680000895853009F449C0B8F1863009F456C050 +:10569000089580918D02262F30E0280F311D2F3F75 +:1056A000310524F4680F60938D0208958FEF809385 +:1056B0008D02089580918C02262F30E0280F311D35 +:1056C0002F3F310524F4680F60938C0208958FEF0B +:1056D00080938C02089580918B02262F30E0280F52 +:1056E000311D2F3F310524F4680F60938B0208951C +:1056F0008FEF80938B02089580918A02262F30E0ED +:10570000280F311D2F3F310524F4680F60938A0262 +:1057100008958FEF80938A02089580918902262F41 :1057200030E0280F311D2F3F310524F4680F6093BE -:105730008A0208958FEF80938A020895833011F1D1 -:1057400028F4813049F0823091F00895853081F15C -:1057500020F18630C1F1089580918F02681720F4FE -:10576000861B80938F02089510928F020895809176 -:105770008E02681720F4861B80938E020895109283 -:105780008E02089580918D02681720F4861B809305 -:105790008D02089510928D02089580918C026817F1 -:1057A00020F4861B80938C02089510928C02089539 -:1057B00080918B02681720F4861B80938B020895DA -:1057C00010928B02089580918A02681720F4861B3C -:1057D00080938A02089510928A0208950F931F936E -:1057E000873208F048C08E3108F094C0803109F447 -:1057F0007EC008F5873009F468C068F4863009F087 -:10580000A4C08091ED03817F8E7F8093ED0381E0C2 -:105810008093FD039BC08B3009F490C08E3009F05B -:1058200094C08091ED0382FB222720F991E092271A -:1058300090FB82F965C0863109F480C060F4813143 -:1058400009F083C00E944B219091870281E0892753 -:105850008093870273C0893109F470C08B3109F0DD -:1058600074C08091ED0381FB222720F991E09227FB -:1058700090FB81F945C0883309F460C050F4893247 -:1058800009F45EC0853309F45BC0873209F458C05F -:105890005CC0833409F454C028F48A3308F455C03A -:1058A000895339C0883409F050C00E944B210E94AE -:1058B00090060FEF13ED20E3015010402040E1F778 -:1058C00000C000000E94682839C09091ED03892F24 -:1058D0008095817080FB90F929F096609860909394 -:1058E000ED0334C0997F977F9093ED0327C080919B -:1058F000ED0383FB222720F991E0922790FB83F9A7 -:105900008093ED039923D1F08091ED038160809322 -:10591000ED0314C08D5141E050E060E070E08A0179 -:105920009B0104C0000F111F221F331F8A95D2F75D -:10593000C901B8010E9407250E944B2181E006C0E1 -:1059400061E070E080E090E0F5CF80E01F910F9182 -:10595000089580E0089580E00895CF93C82F809146 -:10596000FD03813069F018F08230C9F184C0E09104 -:105970008802F09189028081823209F07EC007C0DE -:10598000E0918802F09189028081823261F48C2F4B -:105990000E94A92C811104C08C2F0E94EE2B1DC0E7 -:1059A00081E090E01AC08C2F0E94AB2C811114C0B2 -:1059B000C43179F048F4CB3079F0C03109F061C0DE -:1059C00082E08093FD0308C0C93219F0C83321F08A -:1059D00058C01092FD0355C081E0817054C0C93297 -:1059E00091F120F5C43179F1B0F4C73009F047C026 -:1059F0008EE180938F0282E380938E028AE080930F -:105A00008D0284E180938C0288E080938B0288E28F -:105A100080938A0234C0CE51C63088F5EC2FF0E076 -:105A2000E65FFC4F80818093FC0329C0CE34E9F00F -:105A300020F4CB3421F56AE013C0C13579F0C235CA -:105A4000F1F461E00DC08091FC03882319F01092FD -:105A5000FC0315C081E08093FD0315C061E006C022 -:105A60008091FC030E94282B0AC06AE08091FC030D -:105A70000E949E2B04C01092FD0380E004C081E0D0 -:105A800002C080E0AACFCF9108950E94C928811159 -:105A900002C00E94A5280E94EA288093180480FF73 -:105AA00002C0869501C080E00C94540580911804D2 -:105AB000982F9695292F30E0233031054CF49F5FC5 -:105AC000990F8170892B8160809318040E94EE28C1 -:105AD0008091180486950C94540580911804982F91 -:105AE000969591F09158990F8170892B80931804A5 -:105AF0008E7F91E009F490E08091180490FB80F98A -:105B0000809318040E94EE288091180486950C94C6 -:105B1000540580911804982F909590FB80F98093FC -:105B200018040E94EE288091180480FF02C0869518 -:105B300001C080E00C94540590911804892F86953B -:105B40008F5F8F779170843028F4880F892B809332 -:105B5000180402C090931804809118048E7F91E07D -:105B600009F490E08091180490FB80F98093180468 -:105B70000E94EE288091180486950C94540520917B -:105B80001804922F96958927982F990F822F81704C -:105B9000892B809318048E7F91E009F490E0809126 -:105BA000180490FB80F9809318040E94EE288091DD -:105BB000180486950C9454055058BB27AA270ED07C -:105BC00075C166D130F06BD120F031F49F3F11F4F4 -:105BD0001EF45BC10EF4E095E7FB51C1E92F77D1CC -:105BE00080F3BA17620773078407950718F071F4FA -:105BF0009EF58FC10EF4E0950B2EBA2FA02D0B0150 -:105C0000B90190010C01CA01A0011124FF27591B01 -:105C100099F0593F50F4503E68F11A16F040A22F07 -:105C2000232F342F4427585FF3CF46953795279578 -:105C3000A795F0405395C9F77EF41F16BA0B620B77 -:105C4000730B840BBAF09150A1F0FF0FBB1F661FBE -:105C5000771F881FC2F70EC0BA0F621F731F841F01 -:105C600048F4879577956795B795F7959E3F08F027 -:105C7000B3CF9395880F08F09927EE0F97958795E6 -:105C80000895D9D008F481E008950CD00FC107D150 -:105C900040F0FED030F021F45F3F19F0F0C0511118 -:105CA00039C1F3C014D198F39923C9F35523B1F343 -:105CB000951B550BBB27AA2762177307840738F07B -:105CC0009F5F5F4F220F331F441FAA1FA9F333D0DA -:105CD0000E2E3AF0E0E830D091505040E695001C8E -:105CE000CAF729D0FE2F27D0660F771F881FBB1F4A -:105CF000261737074807AB07B0E809F0BB0B802D24 -:105D0000BF01FF2793585F4F2AF09E3F510568F06F -:105D1000B6C000C15F3FECF3983EDCF38695779503 -:105D20006795B795F7959F5FC9F7880F911D969571 -:105D3000879597F90895E1E0660F771F881FBB1FCD -:105D4000621773078407BA0720F0621B730B840B7A -:105D5000BA0BEE1F88F7E095089504D06894B1114E -:105D6000D9C00895BCD088F09F5790F0B92F9927DB -:105D7000B751A0F0D1F0660F771F881F991F1AF056 -:105D8000BA95C9F712C0B13081F0C3D0B1E008951F -:105D9000C0C0672F782F8827B85F39F0B93FCCF3A0 -:105DA000869577956795B395D9F73EF4909580954C -:105DB000709561957F4F8F4F9F4F0895E89409C06C -:105DC00097FB3EF490958095709561957F4F8F4F2E -:105DD0009F4F9923A9F0F92F96E9BB279395F69544 -:105DE000879577956795B795F111F8CFFAF4BB0FC2 -:105DF00011F460FF1BC06F5F7F4F8F4F9F4F16C026 -:105E0000882311F096E911C0772321F09EE8872FAF -:105E1000762F05C0662371F096E8862F70E060E06B -:105E20002AF09A95660F771F881FDAF7880F9695E4 -:105E3000879597F90895990F0008550FAA0BE0E888 -:105E4000FEEF16161706E807F907C0F0121613063C -:105E5000E407F50798F0621B730B840B950B39F47C -:105E60000A2661F0232B242B252B21F408950A26E2 -:105E700009F4A140A6958FEF811D811D089597F922 -:105E80009F6780E870E060E008959FEF80EC0895E0 -:105E900000240A9416161706180609060895002409 -:105EA0000A9412161306140605060895092E039483 -:105EB000000C11F4882352F0BB0F40F4BF2B11F4F7 -:105EC00060FF04C06F5F7F4F8F4F9F4F089557FD56 -:105ED0009058440F551F59F05F3F71F04795880F58 -:105EE00097FB991F61F09F3F79F0879508951216EF -:105EF00013061406551FF2CF4695F1DF08C016169B -:105F000017061806991FF1CF86957105610508944B -:105F10000895E894BB2766277727CB0197F9089562 -:105F20008ADF08F48FEF08950BD0C0CFB1DF28F0DF -:105F3000B6DF18F0952309F0A2CFA7CF1124EACF3E -:105F4000C6DFA0F3959FD1F3950F50E0551F629FD8 -:105F5000F001729FBB27F00DB11D639FAA27F00DC2 -:105F6000B11DAA1F649F6627B00DA11D661F829FE9 -:105F70002227B00DA11D621F739FB00DA11D621FCE -:105F8000839FA00D611D221F749F3327A00D611DEB -:105F9000231F849F600D211D822F762F6A2F1124CD -:105FA0009F5750408AF0E1F088234AF0EE0FFF1F20 -:105FB000BB1F661F771F881F91505040A9F79E3F57 -:105FC000510570F05CCFA6CF5F3FECF3983EDCF359 -:105FD000869577956795B795F795E7959F5FC1F794 -:105FE000FE2B880F911D9695879597F90895FA01D4 -:105FF000EE0FFF1F30962105310599F161157105EE -:1060000061F48038BFE39B0749F1689490388105BB -:1060100061F08038BFEF9B0741F0992342F5FF3FC5 -:10602000E1053105210511F1E8940894E795D901BE -:10603000AA2329F4AB2FBE2FF85FD0F310C0FF5F67 -:1060400070F4A695E0F7F73950F019F0FF3A38F4FC -:106050009F779F930CD00F9007FC905808953EF0C7 -:1060600014CF60E070E080E89FE308954FE79F77EA -:106070005F934F933F932F939ED02F913F914F91DA -:106080005F9152DF05C019F40EF0F9CE42CFFDCE7C -:1060900026DFC8F39638C0F707F80F92E8942BE391 -:1060A0003AEA48EB5FE74EDF0F920F920F924DB73F -:1060B0005EB70F92C0D0E4E4F1E016D04F915F914B -:1060C000EF91FF91E595EE1FFF1F49F0FE57E06845 -:1060D0004427EE0F441FFA95E1F74195550B32D056 -:1060E0000F9007FE26C00895DF93CF931F930F9361 -:1060F000FF92EF92DF927B018C01689405C0DA2E4B -:10610000EF011EDFFE01E894A5912591359145919F -:106110005591AEF3EF0162DDFE019701A801DA941B -:1061200079F7DF90EF90FF900F911F91CF91DF9162 -:1061300008959B01AC0160E070E080E89FE3A5CD8D -:106140009ECEACC0CCDEE8F39923D9F3940F511D59 -:10615000BBF39150504094F059F0882332F0660F11 -:10616000771F881F91505040C1F79E3F510544F75B -:10617000880F911D9695879597F908955F3FACF02C -:10618000983E9CF0BB27869577956795B79508F460 -:10619000B1609395C1F7BB0F58F711F460FFE8CFDA -:1061A0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C01F -:1061B0006CCE689464CE93DEC8F39923D1F3C6F312 -:1061C000DF93CF931F930F93FF92C92FDD2788236F -:1061D0002AF02197660F771F881FDAF720E030E05A -:1061E00040E85FEB9FE3883920F0803E30F0219655 -:1061F0008F77E3DCECE6F1E003C0DFDCE9E9F1E016 -:1062000073DF8B01BE01EC01FB2E6F577109759591 -:10621000771F880B990BD4DD28E132E741E35FE378 -:106220008FDEAF2D9801AE01FF900F911F91CF919E -:10623000DF91D4DC3BCEFA01DC01AA0FBB1F9B012E -:10624000AC01BF5728F422273327442750781FC0BA -:10625000B75188F4AB2F0024469537952795011C3C -:10626000A395D2F3002069F0220F331F441FB3958A -:10627000DAF30DD0A1CC61307105A0E88A07B946E8 -:1062800030F49B01AC0166277727882790783096F9 -:1062900021F0208331834283538308959F3F31F05F -:1062A000915020F4879577956795B795880F911D44 -:1062B0009695879597F90895AA1BBB1B51E107C0D6 -:1062C000AA1FBB1FA617B70710F0A61BB70B881F86 -:1062D000991F5A95A9F780959095BC01CD01089515 -:1062E00097FB072E16F4009407D077FD09D00E9483 -:1062F0005C3107FC05D03EF4909581959F4F089541 -:10630000709561957F4F0895EE0FFF1F0590F491F2 -:10631000E02D0994F999FECF92BD81BDF89A992795 -:1063200080B50895A8E1B0E042E050E00C94B231AD -:10633000262FF999FECF92BD81BDF89A019700B43E -:10634000021639F01FBA20BD0FB6F894FA9AF99ADE -:106350000FBE08950196272F0E9499310C94983111 -:10636000DC01CB01FC01F999FECF06C0F2BDE1BD15 -:10637000F89A319600B40D9241505040B8F7089504 -:04638000F894FFCFBF -:1063840007000C52D02445000000410000DC44000A -:1063940000004152D0A4440000404100005C44008D -:1063A40000004148F17644000000415C978A4400B3 -:1063B4000000411FD592440000004152D0A4440083 -:1063C4000000415CFFB844000000410AA7CF44002C -:1063D4000000410000DC44000000410AA7CF440053 -:1063E4000000410000DC4400000041000000000007 -:1063F40000804000005C45000040410000000000B7 -:1064040000804052D02445000040410AA7CF4400F8 -:106414000000410000DC44000000410000000000D6 -:1064240000804052D024450000404100000000009C -:1064340000804000005C45000040410AA7CF4400B2 -:106444000000410000DC44000000410000000000A6 -:1064540000804052D024450000404100000000006C -:106464000080400AA74F45000040410AA7CF4400DE -:106474000000410000DC4400000041000000000076 -:1064840000804052D024450000004100000000007C -:106494000080405CFF38450000004100000000001F -:1064A40000804052D02445000000410AA7CF440098 -:1064B4000000410000DC4400000041000000000036 -:1064C40000804052D024450000804153D024450030 -:1064D40000404160970A450000004154D0A44400A4 -:1064E4000000410000DC440000004160970A4500C0 -:1064F40000A041050000003F0000C8423214C0144F -:106504009D14691435140101DA032808140A321E93 -:106514000000020004000500070009000B000C0045 -:106524000E001000110013001500170018001A00C7 -:106534001C001D001F002100230024002600280049 -:1065440029002B002D002F003000320034003500CC -:10655400370039003B00400045002500260061005B -:106564006000200037006400650066006700440096 -:106574004600240047003F4D3639BD0970093A09E9 -:1065840001099408AD08C608DF08010203040506E2 -:0465940007080900EB +:10573000890208958FEF80938902089580918802ED +:10574000262F30E0280F311D2F3F310524F4680F3C +:105750006093880208958FEF8093880208958330C4 +:1057600011F128F4813049F0823091F008958530AC +:1057700081F120F18630C1F1089580918D02681782 +:1057800020F4861B80938D02089510928D02089557 +:1057900080918C02681720F4861B80938C020895F8 +:1057A00010928C02089580918B02681720F4861B5A +:1057B00080938B02089510928B02089580918A0243 +:1057C000681720F4861B80938A02089510928A023B +:1057D000089580918902681720F4861B80938902BE +:1057E000089510928902089580918802681720F424 +:1057F000861B8093880208951092880208950F9363 +:105800001F93873208F048C08E3108F094C0803171 +:1058100009F47EC008F5873009F468C068F4863062 +:1058200009F0A4C080913D04817F8E7F80933D0468 +:1058300081E080934D049BC08B3009F490C08E3082 +:1058400009F094C080913D0482FB222720F991E069 +:10585000922790FB82F965C0863109F480C060F41C +:10586000813109F083C00E945C219091850281E022 +:1058700089278093850273C0893109F470C08B3108 +:1058800009F074C080913D0481FB222720F991E04A +:10589000922790FB81F945C0883309F460C050F429 +:1058A000893209F45EC0853309F45BC0873209F49C +:1058B00058C05CC0833409F454C028F48A3308F417 +:1058C00055C0895339C0883409F050C00E945C210A +:1058D0000E946C060FEF13ED20E3015010402040B2 +:1058E000E1F700C000000E94792839C090913D0482 +:1058F000892F8095817080FB90F929F096609860DF +:1059000090933D0434C0997F977F90933D0427C0C6 +:1059100080913D0483FB222720F991E0922790FBA0 +:1059200083F980933D049923D1F080913D048160F7 +:1059300080933D0414C08D5141E050E060E070E080 +:105940008A019B0104C0000F111F221F331F8A957B +:10595000D2F7C901B8010E9418250E945C2181E09C +:1059600006C061E070E080E090E0F5CF80E01F913C +:105970000F91089580E0089580E00895CF93C82F97 +:1059800080914D04813069F018F08230C9F184C0F3 +:10599000E0918602F09187028081823209F07EC018 +:1059A00007C0E0918602F09187028081823261F423 +:1059B0008C2F0E94BA2C811104C08C2F0E94FF2BC7 +:1059C0001DC081E090E01AC08C2F0E94BC2C811178 +:1059D00014C0C43179F048F4CB3079F0C03109F00B +:1059E00061C082E080934D0408C0C93219F0C83309 +:1059F00021F058C010924D0455C081E0817054C010 +:105A0000C93291F120F5C43179F1B0F4C73009F011 +:105A100047C08EE180938D0282E380938C028AE0FE +:105A200080938B0284E180938A0288E080938902CC +:105A300088E28093880234C0CE51C63088F5EC2FBE +:105A4000F0E0E85AFC4F808180934C0429C0CE34AA +:105A5000E9F020F4CB3421F56AE013C0C13579F0C8 +:105A6000C235F1F461E00DC080914C04882319F037 +:105A700010924C0415C081E080934D0415C061E084 +:105A800006C080914C040E94392B0AC06AE08091C4 +:105A90004C040E94AF2B04C010924D0480E004C05F +:105AA00081E002C080E0AACFCF9108950E94DA2859 +:105AB000811102C00E94B6280E94FB2880936804CE +:105AC00080FF02C0869501C080E00C943005809173 +:105AD0006804982F9695292F30E0233031054CF437 +:105AE0009F5F990F8170892B8160809368040E9469 +:105AF000FF288091680486950C9430058091680495 +:105B0000982F969591F09158990F8170892B8093D9 +:105B100068048E7F91E009F490E08091680490FB26 +:105B200080F9809368040E94FF288091680486951C +:105B30000C94300580916804982F909590FB80F923 +:105B4000809368040E94FF288091680480FF02C04F +:105B5000869501C080E00C94300590916804892FEF +:105B600086958F5F8F779170843028F4880F892B0A +:105B70008093680402C090936804809168048E7FCB +:105B800091E009F490E08091680490FB80F98093A3 +:105B900068040E94FF288091680486950C94300563 +:105BA00020916804922F96958927982F990F822F1C +:105BB0008170892B809368048E7F91E009F490E0D6 +:105BC0008091680490FB80F9809368040E94FF280C +:105BD0008091680486950C9430055058BB27AA27FD +:105BE0000ED0D1C1C2D130F0C7D120F031F49F3FE7 +:105BF00011F41EF4B7C10EF4E095E7FB9FC1E92F45 +:105C0000D3D180F3BA17620773078407950718F09A +:105C100071F49EF5EBC10EF4E0950B2EBA2FA02D7A +:105C20000B01B90190010C01CA01A0011124FF2749 +:105C3000591B99F0593F50F4503E68F11A16F04044 +:105C4000A22F232F342F4427585FF3CF4695379543 +:105C50002795A795F0405395C9F77EF41F16BA0B08 +:105C6000620B730B840BBAF09150A1F0FF0FBB1FB6 +:105C7000661F771F881FC2F70EC0BA0F621F731FFF +:105C8000841F48F4879577956795B795F7959E3F5C +:105C900008F0B3CF9395880F08F09927EE0F9795EA +:105CA0008795089527D108F481E008950CD06BC141 +:105CB00063D140F05AD130F021F45F3F19F03EC17A +:105CC000511195C14FC170D198F39923C9F3552350 +:105CD000B1F3951B550BBB27AA27621773078407DF +:105CE00038F09F5F5F4F220F331F441FAA1FA9F395 +:105CF00033D00E2E3AF0E0E830D091505040E69587 +:105D0000001CCAF729D0FE2F27D0660F771F881FE7 +:105D1000BB1F261737074807AB07B0E809F0BB0BD6 +:105D2000802DBF01FF2793585F4F2AF09E3F5105FA +:105D300068F004C15CC15F3FECF3983EDCF38695EC +:105D400077956795B795F7959F5FC9F7880F911D70 +:105D50009695879597F90895E1E0660F771F881F5C +:105D6000BB1F621773078407BA0720F0621B730B0F +:105D7000840BBA0BEE1F88F7E095089504D0689461 +:105D8000B11135C1089518D188F09F5790F0B92FFF +:105D90009927B751A0F0D1F0660F771F881F991F80 +:105DA0001AF0BA95C9F712C0B13081F01FD1B1E035 +:105DB00008951CC1672F782F8827B85F39F0B93F45 +:105DC000CCF3869577956795B395D9F73EF4909582 +:105DD0008095709561957F4F8F4F9F4F0895E89400 +:105DE00009C097FB3EF490958095709561957F4F23 +:105DF0008F4F9F4F9923A9F0F92F96E9BB279395D1 +:105E0000F695879577956795B795F111F8CFFAF4E0 +:105E1000BB0F11F460FF1BC06F5F7F4F8F4F9F4F11 +:105E200016C0882311F096E911C0772321F09EE86F +:105E3000872F762F05C0662371F096E8862F70E0D5 +:105E400060E02AF09A95660F771F881FDAF7880FAF +:105E50009695879597F9089588D018F011F08CD011 +:105E600038F480C0C4C0E92F9FD0B0F35523C9F3E4 +:105E7000E7FB6217730784079507A8F199F3E92FE9 +:105E8000FF2788232AF03197660F771F881FDAF7DC +:105E9000952F5527442332F091505040220F331F45 +:105EA000441FD2F7BB27E91BF50B621B730B840B56 +:105EB000B109C1F222F4620F731F841FB11D319723 +:105EC0002AF0660F771F881FBB1FEFCF91505040FD +:105ED0005AF041F0882332F0660F771F881F9150E7 +:105EE0005040C1F7939530C08695779567959F5F31 +:105EF000D9F7F8CF990F0008550FAA0BE0E8FEEF8D +:105F000016161706E807F907C0F012161306E4077D +:105F1000F50798F0621B730B840B950B39F40A2676 +:105F200061F0232B242B252B21F408950A2609F454 +:105F3000A140A6958FEF811D811D089597F99F6758 +:105F400080E870E060E008959F3F31F0915020F4C8 +:105F5000879577956795B795880F911D9695879545 +:105F600097F908959FEF80EC089500240A9416167F +:105F7000170618060906089500240A941216130637 +:105F8000140605060895092E0394000C11F48823C5 +:105F900052F0BB0F40F4BF2B11F460FF04C06F5FE1 +:105FA0007F4F8F4F9F4F089557FD9058440F551FB7 +:105FB00059F05F3F71F04795880F97FB991F61F08B +:105FC0009F3F79F087950895121613061406551F02 +:105FD000F2CF4695F1DF08C0161617061806991F6E +:105FE000F1CF86957105610508940895E894BB2763 +:105FF00066277727CB0197F908957CDF08F48FEFA8 +:1060000008950BD0C0CFB1DF28F0B6DF18F095238C +:1060100009F094CFA7CF1124EACFC6DFA0F3959F54 +:10602000D1F3950F50E0551F629FF001729FBB277F +:10603000F00DB11D639FAA27F00DB11DAA1F649F2B +:106040006627B00DA11D661F829F2227B00DA11DDE +:10605000621F739FB00DA11D621F839FA00D611D64 +:10606000221F749F3327A00D611D231F849F600D85 +:10607000211D822F762F6A2F11249F5750408AF0BE +:10608000E1F088234AF0EE0FFF1FBB1F661F771F4A +:10609000881F91505040A9F79E3F510570F04ECF98 +:1060A000A6CF5F3FECF3983EDCF386957795679536 +:1060B000B795F795E7959F5FC1F7FE2B880F911D68 +:1060C0009695879597F90895FA01EE0FFF1F309680 +:1060D0002105310599F16115710561F48038BFE33F +:1060E0009B0749F168949038810561F08038BFEFD3 +:1060F0009B0741F0992342F5FF3FE105310521055A +:1061000011F1E8940894E795D901AA2329F4AB2F5B +:10611000BE2FF85FD0F310C0FF5F70F4A695E0F7D4 +:10612000F73950F019F0FF3A38F49F779F930CD06D +:106130000F9007FC905808953EF014CF60E070E097 +:1061400080E89FE308954FE79F775F934F933F93D6 +:106150002F939ED02F913F914F915F9152DF05C0B9 +:1061600019F40EF0EBCE42CFFDCE26DFC8F3963801 +:10617000C0F707F80F92E8942BE33AEA48EB5FE7A1 +:106180004EDF0F920F920F924DB75EB70F92C0D0B5 +:10619000ECEFF0E016D04F915F91EF91FF91E59514 +:1061A000EE1FFF1F49F0FE57E0684427EE0F441F23 +:1061B000FA95E1F74195550B32D00F9007FE26C0B6 +:1061C0000895DF93CF931F930F93FF92EF92DF9287 +:1061D0007B018C01689405C0DA2EEF011EDFFE0101 +:1061E000E894A5912591359145915591AEF3EF0134 +:1061F00006DDFE019701A801DA9479F7DF90EF90B0 +:10620000FF900F911F91CF91DF9108959B01AC01F9 +:1062100060E070E080E89FE349CD90CE95CECCDE83 +:10622000E8F39923D9F3940F511DBBF391505040DB +:1062300094F059F0882332F0660F771F881F915031 +:106240005040C1F79E3F510544F7880F911D969528 +:10625000879597F908955F3FACF0983E9CF0BB2777 +:10626000869577956795B79508F4B1609395C1F7D2 +:10627000BB0F58F711F460FFE8CF6F5F7F4F8F4F70 +:106280009F4FE3CFB4CE0EF05FCE6CCE689456CE67 +:1062900093DEC8F39923D1F3C6F3DF93CF931F9313 +:1062A0000F93FF92C92FDD2788232AF02197660FCD +:1062B000771F881FDAF720E030E040E85FEB9FE3CC +:1062C000883920F0803E30F021968F7787DCE4E239 +:1062D000F1E003C083DCE1E5F1E073DF8B01BE0197 +:1062E000EC01FB2E6F5771097595771F880B990B81 +:1062F00078DD28E132E741E35FE38FDEAF2D9801DF +:10630000AE01FF900F911F91CF91DF9178DC3BCED2 +:10631000FA01DC01AA0FBB1F9B01AC01BF5728F497 +:1063200022273327442750781FC0B75188F4AB2F5A +:106330000024469537952795011CA395D2F300209C +:1063400069F0220F331F441FB395DAF30DD045CC0B +:1063500061307105A0E88A07B94630F49B01AC01B1 +:106360006627772788279078309621F0208331831D +:10637000428353830895AA1BBB1B51E107C0AA1F88 +:10638000BB1FA617B70710F0A61BB70B881F991FD6 +:106390005A95A9F780959095BC01CD01089597FB7A +:1063A000072E16F4009407D077FD09D00E94BB3168 +:1063B00007FC05D03EF4909581959F4F0895709508 +:1063C00061957F4F0895EE0FFF1F0590F491E02D2A +:1063D0000994F999FECF92BD81BDF89A992780B5AD +:1063E0000895A8E1B0E042E050E00C941132262F6D +:1063F000F999FECF92BD81BDF89A019700B40216BB +:1064000039F01FBA20BD0FB6F894FA9AF99A0FBE68 +:1064100008950196272F0E94F8310C94F731DC0182 +:10642000CB01FC01F999FECF06C0F2BDE1BDF89A9F +:10643000319600B40D9241505040B8F70895F89449 +:02644000FFCF8C +:106442000C52D02445000000410000DC4400000052 +:106452004152D0A4440000404100005C44000000CE +:106462004148F17644000000415C978A44000000F4 +:10647200411FD592440000004152D0A444000000C4 +:10648200415CFFB844000000410AA7CF440000006D +:10649200410000DC44000000410AA7CF4400000094 +:1064A200410000DC440000004100000000000080C8 +:1064B2004000005C450000404100000000000080F8 +:1064C2004052D02445000040410AA7CF44000000BA +:1064D200410000DC44000000410000000000008098 +:1064E2004052D024450000404100000000000080DE +:1064F2004000005C45000040410AA7CF4400000074 +:10650200410000DC44000000410000000000008067 +:106512004052D024450000404100000000000080AD +:10652200400AA74F45000040410AA7CF440000009F +:10653200410000DC44000000410000000000008037 +:106542004052D024450000004100000000000080BD +:10655200405CFF3845000000410000000000008060 +:106562004052D02445000000410AA7CF4400000059 +:10657200410000DC440000004100000000000080F7 +:106582004052D024450000804153D02445000040B1 +:106592004160970A450000004154D0A44400000025 +:1065A200410000DC440000004160970A450000A061 +:1065B20041050000003F0000C8424314D114AE144C +:1065C2007A14461401012A042808140A321E000013 +:1065D200020004000500070009000B000C000E0079 +:1065E2001000110013001500170018001A001C00FB +:1065F2001D001F002100230024002600280029007E +:106602002B002D002F0030003200340035003700FF +:1066120039003B0040004500250026006100600073 +:1066220020003700640065006600670044004600F1 +:10663200240047003149803F5D8B803FF8BF803F97 +:10664200CAE1803F73ED803FCAE1803FF8BF803FDF +:106652005D8B803F3149803F0000803FF16D7F3F7D +:1066620075EA7E3F4C827E3F833F7E3F84287E3F99 +:10667200833F7E3F4C827E3F75EA7E3FF16D7F3FD6 +:106682000000803F3F4D363975092809F208B908E4 +:106692004C0865087E0897080102030405060708EE +:0266A2000900ED :00000001FF diff --git a/keyboard/planck/planck_pcb_r4_w_bootloader.hex b/keyboard/planck/planck_pcb_r4_w_bootloader.hex index f2e9993ac8..140bf415f2 100644 --- a/keyboard/planck/planck_pcb_r4_w_bootloader.hex +++ b/keyboard/planck/planck_pcb_r4_w_bootloader.hex @@ -250,76 +250,76 @@ :107FE4000C94ED3E0C94113F0C94193F0C94213FDA :0C7FF4000C94F23E0C94033F0C94293FC7 :040000030000700089 -:100000000C94FE040C9442050C9442050C94420599 -:100010000C9442050C9442050C9442050C94420544 -:100020000C9442050C9442050C94A6180C94781973 -:100030000C94DB270C9442050C9442050C94420569 -:100040000C9442050C9442050C9442050C94420514 -:100050000C9442050C9443280C9442050C944205E0 -:100060000C9442050C9442050C9442050C944205F4 -:100070000C9442050C9442050C9442050C944205E4 -:100080000C94D10E0C9442050C9442050C9442053C -:100090000C9442050C9442050C9442050C944205C4 -:1000A0000C9442050C9442050C9442059D05AD0547 -:1000B000BF05CF05D505E405F005F60504060D06D8 -:1000C0001E062E06340664069013901390139013A8 -:1000D000901390139013901390139013A713A713DA -:1000E000A713A713A713A713A713A713A713A71340 -:1000F00090139013901390139013A713A713A713A3 -:10010000A713A713901390139013A713A713A71364 -:10011000E519071AF51A071AF51A4C1A6F1AF51A83 -:10012000C41AD71ADA1DDA1D171E171E711EAF1E4C -:1001300027212721C81E2721C91FC91F8C20A320C2 -:100140002721122107634236B79BD8A71A39685670 -:1001500018AEBAAB558C1D3CB7CC5763BD6DEDFDE9 -:10016000753EF6177231BF000000803F08000000A6 -:10017000BE922449123EABAAAA2ABECDCCCC4C3E9C -:1001800000000080BEABAAAAAA3E00000000BF008B -:100190000000803F0000000000084178D3BB438787 -:1001A000D1133D190E3CC3BD4282AD2B3E68EC829B -:1001B00076BED98FE1A93E4C80EFFFBE01C4FF7F20 -:1001C0003F00000000002B0014001A00080015007A -:1001D00017001C0018000C00120013002A00290050 -:1001E00004001600070009000A000B000D000E00B5 -:1001F0000F0033003400E1001D001B000600190051 -:1002000005001100100036003700380028000530C6 -:10021000E000E200E30003302C002C00043050002A -:10022000510052004F002B0014001A000900130067 -:100230000A000D000F0018001C0033002A002900DE -:10024000040015001600170007000B00110008003D -:100250000C0012003400E1001D001B000600190014 -:1002600005000E0010003600370038002800053069 -:10027000E000E200E30003302C002C0004305000CA -:10028000510052004F002B0034003600370013009D -:100290001C0009000A00060015000F002A002900B2 -:1002A00004001200080018000C0007000B001700E3 -:1002B000110016003800E100330014000D000E009C -:1002C0001B00050010001A0019001D002800053051 -:1002D000E000E200E30003302C002C00043050006A -:1002E000510052004F0035021E021F02200221025F -:1002F0002202230224022502260227022A004C00A1 -:100300003A003B003C003D003E003F002D022E0223 -:100310002F02300231020100400041004200430040 -:10032000440045000100010001000100010001003E -:100330000100010001000100010001000100AB000B -:10034000AA00A900AE0035001E001F0020002100F9 -:100350002200230024002500260027002A004C004C -:100360003A003B003C003D003E003F002D002E00C7 -:100370002F003000310001004000410042004300E6 -:1003800044004500010001000100010001000100DE -:100390000100010001000100010001000100AB00AB -:1003A000AA00A900AE00000000000000000000004C -:1003B000000000000000000000000000000000003D -:1003C000000000000000000000000000000000002D -:1003D000000000000000000000000000000000001D -:1003E000000000000000000000000000000000000D -:1003F0000000000000000330000000000430000096 -:100400000000000000001E001E001E001E001E0056 -:100410001E001E001E001E001E001E001E0000000A -:1004200014001A000800150017001C0018000C002A -:10043000120013002F00000004001600070009003E -:100440000A000B000D000E000F00330034000D30C9 -:10045000000000000600190000000000110010005C +:100000000C94DA040C941E050C941E050C941E0529 +:100010000C941E050C941E050C941E050C941E05D4 +:100020000C941E050C941E050C94B7180C94891999 +:100030000C94EC270C941E050C941E050C941E05C4 +:100040000C941E050C941E050C941E050C941E05A4 +:100050000C941E050C9454280C941E050C941E053B +:100060000C941E050C941E050C941E050C941E0584 +:100070000C941E050C941E050C941E050C941E0574 +:100080000C94AD0E0C941E050C941E050C941E05CC +:100090000C941E050C941E050C941E050C941E0554 +:1000A0000C941E050C941E050C941E0579058905FB +:1000B0009B05AB05B105C005CC05D205E005E905FA +:1000C000FA050A0610064006F619181A061B181A31 +:1000D000061B5D1A801A061BD51AE81AEB1DEB1DCC +:1000E000281E281E821EC01E38213821D91E382104 +:1000F000DA1FDA1F9D20B4203821232107634236FE +:10010000B79BD8A71A39685618AEBAAB558C1D3CA8 +:10011000B7CC5763BD6DEDFD753EF6177231BF006C +:100120000000803F08000000BE922449123EABAAA6 +:10013000AA2ABECDCCCC4C3E00000080BEABAAAA01 +:10014000AA3E00000000BF000000803F0000000049 +:1001500000084178D3BB4387D1133D190E3CC3BD82 +:100160004282AD2B3E68EC8276BED98FE1A93E4C2F +:1001700080EFFFBE01C4FF7F3F00000000002B00A6 +:1001800014001A000800150017001C0018000C00CD +:10019000120013002A0029000400160007000900BD +:1001A0000A000B000D000E000F0033003400E100C8 +:1001B0001D001B000600190005001100100036008C +:1001C0003700380028000530E000E200E30003308B +:1001D0002C002C0004305000510052004F002B0026 +:1001E00014001A00090013000A000D000F00180087 +:1001F0001C0033002A002900040015001600170017 +:1002000007000B00110008000C0012003400E10090 +:100210001D001B000600190005000E00100036002E +:100220003700380028000530E000E200E30003302A +:100230002C002C0004305000510052004F002B00C5 +:1002400034003600370013001C0009000A000600C5 +:1002500015000F002A0029000400120008001800F1 +:100260000C0007000B001700110016003800E10019 +:10027000330014000D000E001B00050010001A00D2 +:1002800019001D0028000530E000E200E300033003 +:100290002C002C0004305000510052004F00350259 +:1002A0001E021F0220022102220223022402250232 +:1002B000260227022A004C003A003B003C003D0089 +:1002C0003E003F002D022E022F02300231020100BB +:1002D000400041004200430044004500010001008D +:1002E0000100010001000100010001000100010006 +:1002F000010001000100AB00AA00A900AE0035001A +:100300001E001F00200021002200230024002500E1 +:10031000260027002A004C003A003B003C003D002C +:100320003E003F002D002E002F0030003100010064 +:10033000400041004200430044004500010001002C +:1003400001000100010001000100010001000100A5 +:10035000010001000100AB00AA00A900AE000000EE +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000003301A +:1003B00000000000043000000000000000001E00EB +:1003C0001E001E001E001E001E001E001E001E003D +:1003D0001E001E001E00000014001A000800150078 +:1003E00017001C0018000C00120013002F00000062 +:1003F00004001600070009000A000B000D000E00A3 +:100400000F00330034000D3000000000060019001A +:1004100000000000110010000000000000000000BB +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C :10046000000000000000000000000000000000008C :10047000000000000000000000000000000000007C :10048000000000000000000000000000000000006C @@ -369,1512 +369,1529 @@ :1007400000000000000000000000000000000000A9 :100750000000000000000000000000000000000099 :100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C00000000000000001000050010001000100D5 -:1007D0000100010001000100010001004C000100C6 -:1007E0000100010007300630135012500030013074 -:1007F00002300C30010001000B300A3009300830A3 -:1008000001000100010001000100010001000100E0 -:1008100001000100010001000100010001000100D0 -:100820000100010001002803540068006500200059 -:1008300050006C0061006E0063006B0020004B00F4 -:100840006500790062006F006100720064000000C2 -:100850002C034F007200740068006F006C00690088 -:100860006E0065006100720020004B006500790099 -:1008700062006F00610072006400730000000403F6 -:10088000090409026D00040100A0FA090400000136 -:1008900003010100092111010001223F0007058128 -:1008A0000308000A090401000103010200092111E3 -:1008B000010001224D000705820308000A09040215 -:1008C0000001030000000921110100012236000788 -:1008D00005830308000A090403000103000000095E -:1008E00021110100012239000705840310000112C3 -:1008F00001100100000008EDFE606001000102002F -:100900000105010906A101050719E029E7150025E0 -:1009100001950875018102050819012905950575DC -:1009200001910295017503910105071900297715B9 -:10093000002501957875018102C005010980A1019A -:10094000850216010026B7001A01002AB7007510AB -:1009500095018100C0050C0901A101850316010064 -:10096000269C021A01002A9C02751095018100C084 -:1009700005010902A1010901A100050919012905C3 -:100980001500250195057501810295017503810109 -:100990000501093009311581257F95027508810609 -:1009A00009381581257F950175088106050C0A38DF -:1009B000021581257F950175088106C0C0050109D2 -:1009C00006A101050719E029E7150025019508751D -:1009D0000181029501750881010508190129059514 -:1009E000057501910295017503910105071900290B -:1009F000FF150025FF950675088100C011241FBE54 -:100A0000CFEFDAE0DEBFCDBF04B603FE24C0809195 -:100A1000190490911A04A0911B04B0911C04873012 -:100A2000904BA740B04BB9F41092190410921A04DD -:100A300010921B0410921C0414BE84B7877F84BFDD -:100A400088E10FB6F89480936000109260000FBEAA -:100A5000E0E0F8E3099513E0A0E0B1E0E4E8F3E6B4 -:100A600002C005900D92A431B107D9F714E0A4E1BA -:100A7000B3E001C01D92A931B107E1F70E94EC1566 -:100A80000C94C0310C940000279A2F988FEF9FEFA1 -:100A900090938700809386008AE08093800089E1AC -:100AA000809381000C94452D282F81110BC08091DB -:100AB0008000877F8093800010928D0010928C00C0 -:100AC0002F9808952F9880918000886080938000EF -:100AD000233019F48FEF9FEF0FC083E090E0821B6B -:100AE0009109880F991F2FEF3FEFA90102C056957A -:100AF00047958A95E2F7CA0190938D0080938C0008 -:100B00000895CF93DF93EC010E94DC28BE0180E0C2 -:100B100090E0DF91CF910C9407250F931F93462F00 -:100B200050E04E30510508F0DEC0DC01FA01EA5A0F -:100B3000FF4F12968C910C948431882309F4D3C012 -:100B400000E010E0980140E064E070E08BE292E0A9 -:100B50000E944F1281E090E00FC0882309F4C3C0C7 -:100B600000E010E0980140E066E070E08BEB91E07F -:100B70000E944F1282E090E00E948105B4C0882359 -:100B800009F4B1C000E010E0980140E068E070E0D6 -:100B90008BEE91E00E944F1284E090E0EDCF88232D -:100BA00011F083E005C083E00CC0882349F084E0A5 -:100BB0000E94842540E164E083E00E94910A93C092 -:100BC00084E00E94A525F6CF882331F085EE0E94AF -:100BD0006E1C0E949C2D87C085EE0E94361D83C02E -:100BE000882309F480C00E94E30D7DC0882309F4A6 -:100BF0007AC00E94DC0D00E010E0980140E065E062 -:100C000070E08BE492E027C0882309F46CC085E093 -:100C10000E94A5250E94040E66C0882309F463C0C3 -:100C200000E010E0980140E068E070E08BE191E0C6 -:100C30000E944F1285E00E94842555C0882309F444 -:100C400052C00E94E21200E010E0980140E068E02B -:100C500070E08BE191E00E944F1245C0882309F4B7 -:100C600042C00E94ED12EFCF8823E9F100E010E0CE -:100C7000980140E066E070E08BE891E00E944F123E -:100C800084E00E94A52583E00E94A52580E10E94C2 -:100C9000A52585E00E94A5250E94040E86E00E94FD -:100CA00084250E94C928811102C00E94A5280E94A3 -:100CB000E12890E090931804809317048068809353 -:100CC00017040E94E5280FC0882369F000E010E0B7 -:100CD000980140E066E070E08BE591E00E944F12E1 -:100CE00086E00E94A52580E090E01F910F91089575 -:100CF0000F931F932FEF89EF90E021508040904099 -:100D0000E1F700C0000000E010E0980140E065E07D -:100D100070E08BE492E00E944F121F910F910895B2 -:100D20000F931F9300E010E0980140E063E070E053 -:100D300083E091E00E944F122FEF82E597E021506F -:100D400080409040E1F700C000001F910F9108958E -:100D5000CF92DF92EF92FF920F931F93CF93DF9387 -:100D6000CDB7DEB7CC58D1090FB6F894DEBF0FBEB1 -:100D7000CDBF2091D10325FFC5C08C01FC0192811C -:100D800080910201992309F460C096E4E0E9F2E061 -:100D9000DE01A95BBF4F01900D929A95E1F7F80132 -:100DA0009081E0910001F0910101E90FF11DEE0F3A -:100DB000FF1F27E430E02C0F3D1FE20FF31F60817F -:100DC0007181680F711D882777FD8095982F0E948B -:100DD000E02E20E030E040E451E40E94452E6B011B -:100DE0007C01F801218184E090E0821B9109BC0123 -:100DF000882777FD8095982F0E94E02E9B01AC01FB -:100E0000C701B6010E94DD2D9B01AC0160E070E0DE -:100E100080E090E40E94F72F20E030E04CE551E4C0 -:100E20000E94942F4FE050E0C457DF4F0FB6F89464 -:100E3000DEBF0FBECDBFDF91CF911F910F91FF900D -:100E4000EF90DF90CF900C94EF1196E4E0E9F2E0A0 -:100E5000DE01119601900D929A95E1F7F8019081CB -:100E6000E0910001F0910101E90FF11DEE0FFF1F6C -:100E700021E030E02C0F3D1FE20FF31F60817181F4 -:100E8000680F711D882777FD8095982F0E94E02EAE -:100E900020E030E040E451E40E94452E6B017C01EB -:100EA000F801218184E090E0821B9109BC01882730 -:100EB00077FD8095982F0E94E02E9B01AC01C70121 -:100EC000B6010E94DD2D9B01AC0160E070E080E086 -:100ED00090E40E94F72F20E030E04CE551E40E94BE -:100EE000942FC457DF4F0FB6F894DEBF0FBECDBFAF -:100EF000DF91CF911F910F91FF90EF90DF90CF90F6 -:100F00000C94370EC457DF4F0FB6F894DEBF0FBEF8 -:100F1000CDBFDF91CF911F910F91FF90EF90DF90A8 -:100F2000CF90089508950E9444056E9A769A0C9485 -:100F300078060C9492070C94A8060895880F991FC0 -:100F4000FC01EA5BFF4F859194910895880F991FEA -:100F5000FC01EA53FE4F8591949108950F931F93DE -:100F6000CF93DF93EC01811520E49207A0F5C11522 -:100F700080E3D80708F0E1C0C83ED105D8F4C03EF0 -:100F8000D10508F0EEC1C83AD10578F4C53AD105CB -:100F900008F074C0C130D10509F46DC008F4DEC199 -:100FA000C430D10508F0DDC1D9C1CB3BD10508F46F -:100FB00070C0D4C1C11590E2D90708F0B9C0C115FD -:100FC00021E0D20708F0CDC1C03FD10508F4C6C169 -:100FD0008E01106506C2C13080E5D80709F4BDC096 -:100FE00068F5C13120E4D20709F4AEC050F4C03135 -:100FF00090E4D90708F0A5C0CF70DD278E01146DED -:10100000F0C1C33120E4D20709F4A4C008F49FC0A2 -:10101000C115D04509F0A2C10E944B210E94040EC7 -:101020000E9490069FEF24E38CE091502040804086 -:10103000E1F700C000000E946828D3C1C11520E676 -:10104000D20730F4C11581E5D80708F48CC02DC152 -:10105000C11590E7D90708F481C1C11520E8D2076E -:1010600008F478C1C11580E9D80708F077C1DF70AE -:101070008E01106AB6C101E010E0B3C1C53AD105D6 -:1010800009F471C1C63AD10509F070C102E810E453 -:10109000A8C1C83AD10509F46CC1C93AD10509F40F -:1010A0006BC1CA3AD10509F46AC1CB3AD10509F43A -:1010B00069C1CC3AD10509F468C1CD3AD10509F42A -:1010C00067C1C03BD10509F466C1CE3AD10509F428 -:1010D00065C1CF3AD10509F464C1C13BD10509F41A -:1010E00063C1C23BD10509F462C1C33BD10509F418 -:1010F00061C1C43BD10509F460C1C53BD10509F408 -:101100005FC1C63BD10509F45EC1C73BD10509F4F7 -:101110005DC1C83BD10509F45CC1C93BD10509F4E7 -:101120005BC1CA3BD10509F45AC100E014E459C1BE -:10113000CE019F700E94A60755C1DD278E01106C5D -:1011400050C100E011ED4DC100E010ED4AC100E0DA -:1011500012ED47C100E013ED44C18091ED038160C1 -:101160008093ED033EC10E94C928811102C00E94F4 -:10117000A5280E94E12890E090931804809317041A -:10118000C23090E5D90721F480911704816086C0B0 -:10119000C43020E5D20721F48091170482607EC01C -:1011A000C63080E5D80721F480911704846076C0AA -:1011B000C83090E5D90719F48091170427C0CA30C8 -:1011C00020E5D20721F480911704806167C0CC30FC -:1011D00080E5D80721F48091170480625FC0CE308B -:1011E00090E5D90721F480911704806457C0C0317D -:1011F00020E5D20721F48091170480684FC0C231E6 -:1012000080E5D80729F4809117048460886046C07F -:10121000C33090E5D90721F4809117048E7F3EC03A -:10122000C53020E5D20721F4809117048D7F36C0A8 -:10123000C73080E5D80721F4809117048B7F2EC03A -:10124000C93090E5D90719F48091170426C0CB3036 -:1012500020E5D20721F4809117048F7E1FC0CD3086 -:1012600080E5D80721F4809117048F7D17C0CF3017 -:1012700090E5D90721F4809117048F7B0FC0C1310D -:1012800020E5D20721F4809117048F7707C0C3317E -:10129000D04531F4809117048B7F877F80931704AA -:1012A000809117040E94E5289CC08D2F99278F708C -:1012B000992781309105D9F49E012370332702C00C -:1012C000880F991F2A95E2F79C688E0144E0000F71 -:1012D000111F4A95E1F700271370802B912B53E0E3 -:1012E000CC0FDD1F5A95E1F7C076DD272FC0823085 -:1012F000910531F4DC2FCC278E01016F106A71C08B -:101300008330910569F4CE018370992701E010E0E4 -:1013100002C0000F111F8A95E2F7C8019C680FC038 -:10132000049709F05EC0CE018370992701E010E0B8 -:1013300002C0000F111F8A95E2F7C8019A6823E0E6 -:10134000CC0FDD1F2A95E1F7C07ED7708C010C2BE6 -:101350001D2B47C0DF708E01106243C000E010E01B -:1013600040C08E013EC001E810E43BC003E810E439 -:1013700038C002EE14E435C009EE14E432C00AEEBF -:1013800014E42FC005EB14E42CC006EB14E429C0D0 -:1013900007EB14E426C00CEC14E423C00DEC14E4B9 -:1013A00020C003E815E41DC00AE815E41AC002E9EC -:1013B00015E417C004E915E414C001E216E411C0F5 -:1013C00003E216E40EC004E216E40BC005E216E4E4 -:1013D00008C006E216E405C007E216E402C00AE20D -:1013E00016E4C801DF91CF911F910F9108959CE001 -:1013F000799FF001112490E3899FE00DF11D1124E4 -:10140000E60FF11DEE0FFF1FEA53FE4F85919491F9 -:10141000803E9105E0F4803C910558F581339105BB -:1014200009F46FC048F48932910509F463C08A3227 -:10143000910509F46DC072C089339105E9F08238D5 -:101440009105D1F08533910509F44DC067C0833E05 -:10145000910581F138F4803E9105B9F0823E910505 -:10146000D9F05CC0863E910561F1873E9105A1F1FE -:1014700055C00E949E0708952091170420FD02C0C8 -:1014800021FF4CC080EE90E049C08091170480FF9E -:10149000F9CF89E390E042C08091170482FF0EC02B -:1014A0008091170484FF03C080E090E037C083EE92 -:1014B00090E034C08091170482FFF2CF82EE90E07A -:1014C0002DC08091170483FF0BC08091170484FD09 -:1014D000EBCF87EE90E022C08091170483FFF5CF19 -:1014E00086EE90E01BC08091170485FF07C089E25B -:1014F00090E014C08091170485FFF9CF85E390E058 -:101500000DC08091170486FF07C08AE290E006C0F4 -:101510008091170486FFF9CF81E390E00E94AE0727 -:101520000895CF92DF92EF92FF920F931F9301E005 -:1015300010E020E030E06801790104C0CC0CDD1C33 -:10154000EE1CFF1C8A95D2F704C0000F111F221F4A -:10155000331F6A95D2F70C291D292E293F29C090E7 -:10156000D103D090D203E090D303F090D403C022F3 -:10157000D122E222F322842FC016D106E206F3061E -:1015800041F41F910F91FF90EF90DF90CF900C945A -:1015900084251F910F91FF90EF90DF90CF900C94D6 -:1015A000A52508950C94D10A5F926F927F928F9235 -:1015B0009F92AF92BF92CF92DF92EF92FF920F93E2 -:1015C0001F93CF93DF93CDB7DEB728970FB6F8946C -:1015D000DEBF0FBECDBFCE0101966C014E0199E07A -:1015E000890E911C20E030E040E050E060E070E0C7 -:1015F00000E010E0E12CF12C6C2C5D2C88E0782EC2 -:10160000AA24A394B12CE6EDF2E0A62DB52D872DEA -:1016100001900D928A95E1F7F601819191916F0108 -:10162000FC01E07FFF27E032F10559F48F70992724 -:10163000F50102C0EE0FFF1F8A95E2F7EE2AFF2A9E -:1016400037C0E033F10559F48F709927F50102C0D6 -:10165000EE0FFF1F8A95E2F70E2B1F2B29C0E034F7 -:10166000F10559F48F709927F50102C0EE0FFF1FA5 -:101670008A95E2F76E2B7F2B1BC0E035F10559F4FC -:101680008F709927F50102C0EE0FFF1F8A95E2F7D0 -:101690004E2B5F2B0DC0E036F10551F48F7099276A -:1016A000F50102C0EE0FFF1F8A95E2F72E2B3F2BAC -:1016B000C814D90409F0A7CF84B19E2D9095892331 -:1016C00084B985B1E82AE5B887B1902F9095892330 -:1016D00087B988B1082B08B98AB1962F90958923CC -:1016E0008AB98BB1682B6BB98DB1942F90958923F2 -:1016F0008DB98EB1482B4EB980B3922F9095892326 -:1017000080BB81B3282B21BB28960FB6F894DEBF8F -:101710000FBECDBFDF91CF911F910F91FF90EF9042 -:10172000DF90CF90BF90AF909F908F907F906F9001 -:101730005F9008955F926F927F928F929F92AF9287 -:10174000BF92CF92DF92EF92FF920F931F93CF93AE -:10175000DF93CDB7DEB768970FB6F894DEBF0FBE44 -:10176000CDBF85B7806885BF85B7806885BF0E947B -:10177000D40ACE0101966C014E0199E1890E911CAB -:1017800020E030E040E050E060E070E000E010E099 -:10179000E12CF12C6C2C5D2C88E1782EAA24A394EA -:1017A000B12CEEEDF2E0A62DB52D872D01900D9216 -:1017B0008A95E1F7F601819191916F01FC01E07F3B -:1017C000FF27E032F10559F48F709927F50102C027 -:1017D000EE0FFF1F8A95E2F7EE2AFF2A37C0E033AB -:1017E000F10559F48F709927F50102C0EE0FFF1F24 -:1017F0008A95E2F70E2B1F2B29C0E034F10559F42E -:101800008F709927F50102C0EE0FFF1F8A95E2F74E -:101810006E2B7F2B1BC0E035F10559F48F70992793 -:10182000F50102C0EE0FFF1F8A95E2F74E2B5F2BEA -:101830000DC0E036F10551F48F709927F50102C013 -:10184000EE0FFF1F8A95E2F72E2B3F2BC814D90409 -:1018500009F0A7CF84B19E2D9095892384B985B1D5 -:10186000E82AE5B887B1902F9095892387B988B188 -:10187000082B08B98AB1962F909589238AB98BB124 -:10188000682B6BB98DB1942F909589238DB98EB14A -:10189000482B4EB980B3922F9095892380BB81B39A -:1018A000282B21BB10921D0310921C0310921503CC -:1018B0001092140310921F0310921E03109217032C -:1018C0001092160310922103109220031092190314 -:1018D00010921803109223031092220310921B03FC -:1018E00010921A0368960FB6F894DEBF0FBECDBFF4 -:1018F000DF91CF911F910F91FF90EF90DF90CF90EC -:10190000BF90AF909F908F907F906F905F900C945E -:1019100093077F928F929F92AF92BF92CF92DF9266 -:10192000EF92FF920F931F93CF93DF93CDB7DEB764 -:10193000A0970FB6F894DEBF0FBECDBF6E0149E190 -:10194000C40ED11C84E1E82E83E0F82E98E0792EB5 -:10195000BC2CAD2C01E010E028E1822E35E0932E66 -:10196000E6EDF2E0AB2DBA2D872D01900D928A9510 -:10197000E1F7F601819191916F019C01207F33275E -:101980002032310591F424B18F709927A80102C04B -:10199000440F551F8A95E2F7CA01922F982B94B9EC -:1019A00095B18095892385B953C02033310591F4D1 -:1019B00027B18F709927F80102C0EE0FFF1F8A959B -:1019C000E2F7CF01922F982B97B998B18095892390 -:1019D00088B93EC02034310591F42AB18F7099271F -:1019E000A80102C0440F551F8A95E2F7CA01922F41 -:1019F000982B9AB99BB1809589238BB929C0203542 -:101A0000310591F42DB18F709927F80102C0EE0FC6 -:101A1000FF1F8A95E2F7CF01922F982B9DB99EB1B7 -:101A2000809589238EB914C02036310589F420B3FE -:101A30008F709927A80102C0440F551F8A95E2F7BD -:101A4000CA01922F982B90BB91B38095892381BBBB -:101A500050EA5A95F1F7BE016F5F7F4F20E030E00A -:101A600040E050E0EEEDF2E0DE011196882D0190AD -:101A70000D928A95E1F7FB0181919191BF01FC01E3 -:101A8000E07FFF27E032F10511F4E3B113C0E0334A -:101A9000F10511F4E6B10EC0E034F10511F4E9B13D -:101AA00009C0E035F10511F4ECB104C0E036F105F0 -:101AB000B9F4EFB1F0E08F70992702C0F595E79582 -:101AC0008A95E2F7E0FD08C0C801042E02C0880F25 -:101AD000991F0A94E2F702C080E090E0282B392B8E -:101AE0004F5F5F4F4C30510509F0BCCFF70180814B -:101AF00091818217930721F03183208390927302A2 -:101B00000E94D40AF2E0EF0EF11C4CE1E41643E02F -:101B1000F40609F025CF80917302882361F181508A -:101B200080937302882339F08FE99FE00197F1F7E2 -:101B300000C0000020C08091140390911503909381 -:101B40001D0380931C0380911603909117039093BB -:101B50001F0380931E0380911803909119039093A3 -:101B600021038093200380911A0390911B0390938B -:101B70002303809322030E94990781E0A0960FB669 -:101B8000F894DEBF0FBECDBFDF91CF911F910F91B3 -:101B9000FF90EF90DF90CF90BF90AF909F908F908D -:101BA0007F900895E82FF0E0EE0FFF1FE45EFC4FFA -:101BB00080819181089508958091020481608093CD -:101BC00002040C94F728809102048E7F8093020413 -:101BD0000C94F7280E94C928811102C00E94A528F0 -:101BE0000E94F328809302043E9A809171008D7FB9 -:101BF0008093710082E0809390008AE1809391004D -:101C000081E080932603089580912603811102C00C -:101C10000E94EA0D10927603109275038091710074 -:101C20008D7F80937100809190008F7780939000DA -:101C3000109238031092370310926F0310927003C2 -:101C4000109271031092720310926E0310926D0342 -:101C5000EDE4F3E0ADE3B3E0119211921192119231 -:101C60001D921D9283E0ED36F807B1F70895CF92EB -:101C7000DF92EF92FF920F931F93CF93DF93209108 -:101C80003703222309F484C06B017C018091260371 -:101C9000811102C00E94EA0D0DE613E0C7E0D0E01A -:101CA000A7019601F80192918291729162918F0140 -:101CB0000E94412E811131C0FE01EE0FFF1FEE0F79 -:101CC000FF1FE35BFC4F1082118212821382DE0140 -:101CD000AA0FBB1FA35CBC4F11961C921E92C7306B -:101CE000D105E9F021964481558166817781408351 -:101CF000518362837383148215821682178212962F -:101D00008D919C91139711969C938E9313961C9290 -:101D10001E92129734961296E2CF219708F6809180 -:101D2000750390917603019797FD05C09093760314 -:101D30008093750304C0109276031092750380910E -:101D400075039091760320917303309174032817E3 -:101D5000390724F01092740310927303892BC1F495 -:101D6000809171008D7F80937100809190008F77BA -:101D70008093900010926F03109270031092710381 -:101D80001092720310926E0310926D03109237033B -:101D9000DF91CF911F910F91FF90EF90DF90CF9047 -:101DA00008951F920F920FB60F9211244F925F92D7 -:101DB0006F927F928F929F92AF92BF92CF92DF925B -:101DC000EF92FF922F933F934F935F936F937F9385 -:101DD0008F939F93AF93BF93CF93DF93EF93FF9333 -:101DE00080913703882309F49BC1C0917503D0917A -:101DF00076031C161D060CF093C1409027035090EB -:101E000028036090290370902A0320E030E0A901A4 -:101E1000C301B2010E94902F18160CF065C0C130AA -:101E2000D10509F452C08091730390917403BE01EF -:101E30000E9470317C0190937403809373038090AF -:101E4000390390903A03A0903B03B0903C0320E00C -:101E500030E040E85FE3C501B4010E94DD2D6093EE -:101E6000390370933A0380933B0390933C03F7014B -:101E7000EE0FFF1FEE0FFF1FE35BFC4FA30192016C -:101E800060817181828193810E94452E20E030E043 -:101E900040E05EE30E94942F9B01AC01C501B401B8 -:101EA0000E94902F18168CF4C7010196BE010E9463 -:101EB00070319093740380937303109239031092DE -:101EC0003A0310923B0310923C03E0917303F091AC -:101ED0007403EE0FFF1FEE0FFF1FE35BFC4F6081EB -:101EE000718182819381D0C0C0906F03D0907003C4 -:101EF000E0907103F090720320E030E0A901C70187 -:101F0000B6010E94412E2197882309F4A2C0FE0148 -:101F1000EE0FFF1FEE0FFF1FE35BFC4F80809180F1 -:101F2000A280B380A5019401C701B6010E94412E91 -:101F300087FF31C0A501940160E070E08CED93EC67 -:101F40000E94452E20E030E040E451E40E94452EFE -:101F500020E030E040E05FE30E94942F9B01AC0161 -:101F600060E070E080E090E40E94F72F9B01AC01FC -:101F7000C501B4010E94942F9B01AC01C701B601B9 -:101F80000E94412E87FF07C0A701960160E070E024 -:101F90008CED93E439C0A5019401C701B6010E94FC -:101FA000902F18160CF055C0A501940160E070E068 -:101FB0008CED93E40E94452E20E030E040E451E4B3 -:101FC0000E94452E20E030E040E05FE30E94942F25 -:101FD0009B01AC0160E070E080E090E40E94F72F8C -:101FE0009B01AC01C501B4010E94942F9B01AC017F -:101FF000C701B6010E94902F18165CF5A701960143 -:1020000060E070E08CED93EC0E94452E20E030E023 -:1020100040E451E40E94452E20E030E040E05FE3E0 -:102020000E94942F9B01AC0160E070E080E090E49E -:102030000E94F72F9B01AC01C701B6010E94942FAB -:1020400060936F0370937003809371039093720396 -:1020500013C0FE01EE0FFF1FEE0FFF1FE35BFC4FEF -:1020600080819181A281B38180936F0390937003EB -:10207000A0937103B093720360916F03709170032A -:102080008091710390917203209124033091250374 -:102090002F3F4FEF340731F02F5F3F4F3093250331 -:1020A000209324030E94F8126B017C0120E034E2AB -:1020B00044EF51E40E94412E87FF08C086EFC82EEE -:1020C00088E2D82E84EFE82E81E4F82E20E030E07C -:1020D00040E051E4C701B6010E94942F9B01AC017E -:1020E00060E074E284E79BE40E94452E6B017C0172 -:1020F0000E94AD2E70939700609396002091740219 -:10210000309175024091760250917702C701B60175 -:102110000E94942F0E94AD2E7093990060939800B6 -:1021200080913803882309F433C1C0903303D090E1 -:102130003403E0903503F090360320E030E0A9014D -:10214000C701B6010E94902F1816D4F58091240380 -:10215000909125038F3F2FEF920729F001969093DE -:10216000250380932403C701B6010E94F81220E0E2 -:1021700030E040E051E40E94942F9B01AC0160E00C -:1021800074E284E79BE40E94452E6B017C010E946F -:10219000AD2E709397006093960020917402309159 -:1021A00075024091760250917702C701B6010E94F4 -:1021B000942F0E94AD2E709399006093980008C0F0 -:1021C0001092970010929600109299001092980029 -:1021D00060912D0370912E036F5F7F4F70932E03DC -:1021E00060932D03209196003091970080E090E05D -:1021F000232BF1F0C0919600D09197000E94DE2E23 -:102200006B017C01BE0180E090E00E94DE2E9B010C -:10221000AC0160912F037091300380913103909154 -:1022200032030E94452E20E03FEF4FE757E410C0F5 -:102230000E94DE2E6B017C0120E030EE4FEF54E473 -:1022400060912F037091300380913103909132039C -:102250000E94942F9B01AC01C701B6010E94902FF0 -:1022600087FD96C080912B038F5F80932B0390E0B6 -:102270002091FE033091FF0382179307A0F0809115 -:102280000904882319F010922B030DC0809171006E -:102290008D7F80937100809190008F778093900064 -:1022A000109238037DC080912C03C0912B038111C3 -:1022B00028C0C0900304D0900404E0900504F0907E -:1022C000060420E030E0A901C701B6010E94902F6A -:1022D0001816BCF481E080932C0310923303109203 -:1022E00034031092350310923603C0922F03D0921C -:1022F0003003E0923103F0923203C150C0932B03BC -:1023000043C010922C031092250310922403E091F5 -:102310000004F091010448E0C49FE00DF11D112478 -:1023200080819181A281B3818093330390933403A0 -:10233000A0933503B093360320E030E040E85EE33D -:1023400064817581868197810E94942F6B017C0145 -:1023500020E030E048EC52E460917802709179021C -:1023600080917A0290917B020E94452E9B01AC01E4 -:10237000C701B6010E94942F60932F03709330031E -:10238000809331039093320310922E0310922D0309 -:102390008091020480FD04C010923803109237032C -:1023A000FF91EF91DF91CF91BF91AF919F918F916D -:1023B0007F916F915F914F913F912F91FF90EF909F -:1023C000DF90CF90BF90AF909F908F907F906F9055 -:1023D0005F904F900F900FBE0F901F901895CF9267 -:1023E000DF92EF92FF92CF93DF936B017C01EA01C2 -:1023F00080912603811102C00E94EA0D809102049F -:1024000080FF46C0809175039091760308970CF089 -:102410003FC0809171008D7F80937100809138035F -:1024200081110E94040E81E08093370310922503EE -:102430001092240320E030E0A901C701B6010E94F8 -:10244000902F1816DCF48091750390917603FC01AF -:10245000EE0FFF1FEE0FFF1FE35BFC4FC082D18228 -:10246000E282F382FC01EE0FFF1FE35CFC4FD1839D -:10247000C0830196909376038093750380917100D9 -:1024800082608093710080919000806880939000BA -:10249000DF91CF91FF90EF90DF90CF9008958F92D2 -:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3 -:1024B0001F93CF93DF93EC017B01D42E4801590188 -:1024C00080912603811102C00E94EA0D80910204CE -:1024D00080FF6BC0809171008D7F8093710080912F -:1024E000370381110E94040E81E080933803D0935A -:1024F0000104C0930004F092FF03E092FE03D09227 -:1025000009048092030490920404A0920504B092FE -:1025100006041092390310923A0310923B03109272 -:102520003C0310922B0388819981AA81BB818093FF -:10253000330390933403A0933503B093360320E024 -:1025400030E040E85EE36C817D818E819F810E9456 -:10255000942F6B017C0120E030E048EC52E4609164 -:1025600078027091790280917A0290917B020E94A8 -:10257000452E9B01AC01C701B6010E94942F6093C8 -:102580002F037093300380933103909332031092A2 -:102590002E0310922D038091710082608093710050 -:1025A00080919000806880939000DF91CF911F917F -:1025B0000F91FF90EF90DF90CF90BF90AF909F90E2 -:1025C0008F9008958091770390E0019665E070E028 -:1025D0000E9470318093770308958091770390E093 -:1025E000019765E070E00E94703180937703089551 -:1025F0008F929F92AF92BF92CF92DF92EF92FF9213 -:10260000CF93DF936B017C01C0912403D09125030C -:10261000BE0180E090E00E94DE2E4B015C01A7012C -:10262000960160E070E08CE594E40E94452E9B01E9 -:10263000AC01C501B4010E94942F0E94B22E4091BA -:102640007703423009F45CC028F4442351F0413050 -:10265000E9F0FBC0433009F481C0443009F4B4C050 -:10266000F4C080E090E0A0E0BFE380937402909318 -:102670007502A0937602B09377021092270310920E -:1026800028031092290310922A03DFC01092270317 -:10269000109228031092290310922A0364317105C5 -:1026A00040F46A307105E0F520E030E040E85EE398 -:1026B0003BC0693C710508F0C0C080E090E00E941A -:1026C000DE2E20E030E040EA51E40E94DC2D20E0E4 -:1026D00030E044E353E40E94452E9B01AC010E948C -:1026E000942F20E030E040E05EE30E94942F9B01B5 -:1026F000AC0160E070E080E09EE30E94DC2D5BC0F6 -:1027000010922703109228031092290310922A0393 -:102710006432710578F4FB01EC59FF4F0C9484315D -:1027200020E030E040E05FE3C701B6010E94942F53 -:102730006B017C0180E090E0A0E0BEE38093740236 -:1027400090937502A0937602B09377027EC0A701A2 -:102750009601C701B6010E94DD2DEACF1092270332 -:10276000109228031092290310922A032AE0269F30 -:10277000A001279F500D1124CA0168EB7BE00E9445 -:102780005C31BC016C5D754077FF03C0719561954C -:102790007109882777FD8095982F0E94E02E2EE3FF -:1027A00033EC4EE259E30E94942F20E030E040ECFD -:1027B0005EE30E94DD2D6093740270937502809336 -:1027C00076029093770241C010922703109228035B -:1027D0001092290310922A03CE0183709927892B26 -:1027E000E1F0BE016170772780E090E00E94DE2E6C -:1027F00020E030E040E05EE30E94942F20E030E0F3 -:1028000040E45FE30E94DD2D6093740270937502D3 -:1028100080937602909377020CC080E090E0A0E075 -:10282000BFE38093740290937502A0937602B093F5 -:102830007702C770DD27CD2B41F4109274021092FD -:1028400075021092760210927702C701B601DF91ED -:10285000CF91FF90EF90DF90CF90BF90AF909F907F -:102860008F900895809188030895CF93DF9300D0CF -:102870001F92CDB7DEB79C0180910E04843019F50C -:1028800093E099833B832A839093E9008FEF9091A3 -:10289000E800815095FD06C095ED9A95F1F700008E -:1028A0008111F5CF8091E80085FF0DC040E050E038 -:1028B00063E070E0CE0101960E9496168091E800D8 -:1028C0008E778093E8000F900F900F90DF91CF915B -:1028D0000895CF93DF9300D01F92CDB7DEB720913C -:1028E0000E04243021F522E029839B838A8383E030 -:1028F0008093E9008FEF9091E800815095FD06C02C -:1029000095ED9A95F1F700008111F5CF8091E800DF -:1029100085FF0DC040E050E063E070E0CE0101961D -:102920000E9496168091E8008E778093E8000F90C1 -:102930000F900F90DF91CF91089520910E042430D5 -:10294000F1F422E02093E9002FEF3091E8002150CC -:1029500035FD06C035ED3A95F1F700002111F5CFB0 -:102960002091E80025FF0BC040E050E065E070E0FA -:102970000E9496168091E8008E778093E800089573 -:10298000CF93DF93EC0190910E04943009F046C090 -:10299000809186028823D9F0809187028823B9F03C -:1029A0009093E9008FEF9091E800815095FD06C06B -:1029B00095E19A95F1F700008111F5CF8091E8003B -:1029C00085FF2CC040E050E060E170E017C081E07E -:1029D0008093E9008FEF9091E800815095FD06C04B -:1029E00095ED9A95F1F700008111F5CF8091E800FF -:1029F00085FF14C040E050E068E070E0CE010E9426 -:102A000096168091E8008E778093E80080E1FE01C1 -:102A1000A8E7B3E001900D928A95E1F7DF91CF919D -:102A2000089580910D04811109C00E942B180E9405 -:102A300088188091E20084608093E20008951092EB -:102A40000D040895089508950C94D02742E061EC98 -:102A500081E00E94A51742E061EC82E00E94A51788 -:102A600042E061EC83E00E94A51742E161EC84E062 -:102A70000C94A51780911004833009F455C030F4EC -:102A8000813071F0823009F48EC008958A3009F4E3 -:102A90007AC08B3009F460C0893009F09CC020C036 -:102AA00080910F04813A09F096C08091E800877FF9 -:102AB0008093E8008091130490911404892B21F4F1 -:102AC00060E188E793E003C060E080E090E070E0C0 -:102AD0000E94E1168091E8008B778093E8000895CA -:102AE00080910F04813209F076C080911304909197 -:102AF0001404009719F0039709F06DC08091E80065 -:102B0000877F8093E8008091E80082FD05C0809176 -:102B10000E048111F8CF5FC08091F100809388038B -:102B20008091E8008B7753C080910F04813A09F0BF -:102B300052C08091130490911404892B09F04BC06A -:102B40008091E800877F8093E8008091E80080FF13 -:102B5000FCCF8091860236C080910F048132D9F576 -:102B60008091130490911404892BA9F58091E800B9 -:102B7000877F8093E8000E94DA1780911104809388 -:102B800086020C944B2180910F04813221F58091B3 -:102B9000E800877F8093E8000E94DA178091120492 -:102BA00080938903089580910F04813AA1F4809164 -:102BB000E800877F8093E8008091E80080FFFCCFE9 -:102BC000809189038093F1008091E8008E77809353 -:102BD000E8000C94DA17089584B7877F84BF88E1F2 -:102BE0000FB6F89480936000109260000FBE90E0E2 -:102BF00080E80FB6F89480936100909361000FBE57 -:102C00000E947D1B0E942B180E9488188091E20070 -:102C100084608093E20078940E940E1B0E947F1BC8 -:102C20008CE792E00E94291B80910E04853069F4A4 -:102C30000E948A2780910C048823B1F30E94B82750 -:102C4000882391F30E948016EFCF0E94871BECCF60 -:102C5000292F332723303105C9F064F421303105A1 -:102C600081F02230310509F043C08DE690E022E882 -:102C700038E042C021323105F1F02232310541F114 -:102C800037C082E190E02FEE38E036C099278130DE -:102C9000910541F08230910541F0892B49F5EEE72D -:102CA000F8E005C0E0E5F8E002C0E6E2F8E0849173 -:102CB00090E09F0121C06430D8F4E62FF0E0EE0FE1 -:102CC000FF1FEE5FFC4F2081318189E090E014C04E -:102CD000643070F470E0FB01EE0FFF1FE650FD4F13 -:102CE00020813181FB01EA50FD4F808190E004C0DA -:102CF00080E090E020E030E0FA0131832083089505 -:102D000080E189BD82E189BD09B400FEFDCF8091DB -:102D1000D8008F7D8093D8008091E00082608093FE -:102D2000E0008091E00081FDFCCF0895CF92DF921A -:102D3000EF92FF920F931F93CF93DF93EC018B01E0 -:102D40006A010E94F917811133C0C114D10439F00E -:102D5000F60180819181081B190BC80FD91FE12C46 -:102D6000F12C0115110519F18091E80085FD16C0BF -:102D70008091E8008E778093E800C114D10449F077 -:102D8000F60180819181E80EF91EF182E08285E0F2 -:102D90000FC00E94F917882321F30AC089918093FC -:102DA000F10001501109FFEFEF1AFF0ADACF80E0BE -:102DB000DF91CF911F910F91FF90EF90DF90CF9017 -:102DC000089520911504309116042617370748F00E -:102DD0006115710539F42091E8002E772093E80001 -:102DE00001C0B90140E061157105A9F120910E04FF -:102DF000222309F443C0253009F442C02091E800A1 -:102E000023FD40C02091E80022FD32C02091E8005F -:102E100020FFE9CF4091F3002091F20030E0342B05 -:102E2000FC01CF016115710559F02830310540F4DE -:102E300081918093F100615071092F5F3F4FF1CF75 -:102E400041E02830310509F040E02091E8002E777C -:102E50002093E800C8CF4111C9CF0AC080910E0469 -:102E6000882361F0853061F08091E80083FD0AC01D -:102E70008091E80082FFF2CF80E0089582E008951B -:102E800083E0089581E0089520911504309116049F -:102E90002617370748F06115710539F42091E800CD -:102EA0002E772093E80001C0B901FC0120E06115F4 -:102EB000710591F180910E04882309F440C085309A -:102EC00009F43FC08091E80083FD3DC08091E80097 -:102ED00082FD2FC08091E80080FFE9CF2091F300B0 -:102EE0008091F20090E0922B6115710559F08830C5 -:102EF000910540F424912093F100319661507109BD -:102F00000196F2CF21E0089709F020E08091E800D7 -:102F10008E778093E800CBCF2111CCCF0AC080916F -:102F20000E04882361F0853061F08091E80083FD14 -:102F30000AC08091E80082FFF2CF80E0089582E02D -:102F4000089583E0089581E00895982F973058F50B -:102F50009093E900981739F07091EC002091ED0002 -:102F60005091F00003C0242F762F50E021FF19C0AC -:102F70003091EB003E7F3093EB003091ED003D7FD0 -:102F80003093ED003091EB0031603093EB007093A3 -:102F9000EC002093ED005093F0002091EE0027FF0D -:102FA00007C09F5FD3CF8F708093E90081E00895C1 -:102FB00080E0089580910F0487FF11C08091E800A0 -:102FC00082FD05C080910E048111F8CF11C080915F -:102FD000E8008B770BC080910E04882349F0809124 -:102FE000E80080FFF8CF8091E8008E778093E800BA -:102FF00008952091E4003091E50095E64091EC00C1 -:10300000842F817040FF22C08091E80080FD1CC0A9 -:1030100080910E04882391F0853091F08091EB002F -:1030200085FD10C04091E4005091E5004217530720 -:1030300029F39A01915011F784E0089582E00895F0 -:1030400083E0089581E0089580E008954091E800CC -:1030500042FFDECF08950E9499180E94A118E0EE69 -:10306000F0E0808181608083E8EDF0E080818F77FF -:10307000808319BCA7EDB0E08C918E7F8C9380810A -:103080008F7E808310920D0408950F931F93CF932A -:10309000DF930E9499180E94A118C8EDD0E08881A2 -:1030A0008F77888388818068888388818F7D8883F3 -:1030B00019BC10920E0410920A0410920C04109283 -:1030C0000B0400EE10E0F80180818B7F8083888103 -:1030D0008160888342E060E080E00E94A517E1EE15 -:1030E000F0E080818E7F8083E2EEF0E0808181607D -:1030F0008083808188608083F80180818E7F8083D7 -:10310000888180618883DF91CF911F910F9108950D -:10311000E8EDF0E080818F7E8083E7EDF0E0808154 -:103120008160808384E082BF81E080930D040C94F1 -:103130004518E8EDF0E080818E7F80831092E200F8 -:1031400008951092DA001092E10008951F920F92F4 -:103150000FB60F9211242F933F934F935F936F936A -:103160007F938F939F93AF93BF93EF93FF93809140 -:10317000E10082FF0BC08091E20082FF07C08091D6 -:10318000E1008B7F8093E1000E940D1B8091DA00AB -:1031900080FF1FC08091D80080FF1BC08091DA00A3 -:1031A0008E7F8093DA008091D90080FF0DC080E18E -:1031B00089BD82E189BD09B400FEFDCF81E0809325 -:1031C0000E040E94111505C019BC10920E040E9435 -:1031D0001F158091E10080FF19C08091E20080FFFF -:1031E00015C08091E2008E7F8093E2008091E20022 -:1031F00080618093E2008091D80080628093D80043 -:1032000019BC85E080930E040E9423158091E10093 -:1032100084FF30C08091E20084FF2CC080E189BD32 -:1032200082E189BD09B400FEFDCF8091D8008F7D79 -:103230008093D8008091E1008F7E8093E10080919F -:10324000E2008F7E8093E2008091E20081608093B3 -:10325000E20080910A04882311F084E007C0809185 -:10326000E30087FD02C081E001C083E080930E048B -:103270000E9424158091E10083FF29C08091E20023 -:1032800083FF25C08091E100877F8093E10082E089 -:1032900080930E0410920A048091E1008E7F809347 -:1032A000E1008091E2008E7F8093E2008091E20055 -:1032B00080618093E20042E060E080E00E94A51718 -:1032C0008091F00088608093F0000E942215FF91A9 -:1032D000EF91BF91AF919F918F917F916F915F918E -:1032E0004F913F912F910F900FBE0F901F90189507 -:1032F0001F920F920FB60F9211242F933F934F936B -:103300005F936F937F938F939F93AF93BF93CF936D -:10331000DF93EF93FF93C091E900CF708091EC00B1 -:10332000D82FD17080FDD0E81092E9008091F00094 -:10333000877F8093F00078940E94BC191092E90076 -:103340008091F00088608093F000CD2BCF70C09307 -:10335000E900FF91EF91DF91CF91BF91AF919F91E4 -:103360008F917F916F915F914F913F912F910F902E -:103370000FBE0F901F9018951F93CF93DF93CDB77B -:10338000DEB7AA970FB6F894DEBF0FBECDBFEFE051 -:10339000F4E088E08E0F9091F10091938E13FBCFB3 -:1033A0000E943A158091E80083FF1FC180910F04AD -:1033B00090911004492F50E04A30510508F015C192 -:1033C000FA01E857FF4F0C948431803881F082383D -:1033D00009F00BC1809113048F708093E9008091F4 -:1033E000EB0085FB882780F91092E90006C08091E8 -:1033F0000B0490910C04911182609091E800977FEA -:103400009093E8008093F1001092F100C8C0282F3B -:103410002D7F09F0EAC0882319F0823061F0E5C001 -:1034200080911104813009F0E0C0933009F080E010 -:1034300080930C042BC080911104811127C08091CE -:1034400013048F7009F4D1C08093E9002091EB0040 -:1034500020FF1CC0933021F48091EB00806214C0E7 -:103460009091EB0090619093EB0021E030E0A90196 -:1034700002C0440F551F8A95E2F74093EA0010926C -:10348000EA008091EB0088608093EB001092E900E5 -:103490008091E800877F86C08111A7C01091110438 -:1034A0001F778091E3008078812B8093E3008091E7 -:1034B000E800877F8093E8000E94DA178091E80097 -:1034C00080FFFCCF8091E30080688093E3001111BE -:1034D00002C082E001C083E080930E0486C0805861 -:1034E000823008F082C080911104909112048C3DCA -:1034F00053E0950779F583E08A838AE289834FB7A1 -:10350000F894DE01139620E03EE051E2E32FF0E074 -:1035100050935700E49120FF03C0E295EF703F5FA6 -:10352000EF708E2F90E0EA3010F0C79601C0C09681 -:103530008D939D932F5F243149F74FBF8091E80011 -:10354000877F8093E8006AE270E0CE0101960E94D6 -:10355000E11614C0AE014F5F5F4F609113040E94EB -:103560002816BC01009709F440C09091E800977FAD -:103570009093E80089819A810E9444178091E80025 -:103580008B778093E80031C0803879F58091E8002E -:10359000877F8093E80080910A048093F1008091F6 -:1035A000E8008E778093E8000E94DA171EC0811130 -:1035B0001CC0909111049230C0F48091E800877F84 -:1035C0008093E80090930A040E94DA1780910A041D -:1035D000811106C08091E30087FD02C081E001C037 -:1035E00084E080930E040E9426158091E80083FFFA -:1035F0000AC08091E800877F8093E8008091EB000B -:1036000080628093EB00AA960FB6F894DEBF0FBEDF -:10361000CDBFDF91CF911F9108950895CF938091F1 -:103620000E048823A1F0C091E900CF709091EC00C6 -:10363000892F817090FD80E8C82B1092E90080915D -:10364000E80083FD0E94BC19CF70C093E900CF91C0 -:10365000089590938F0380938E030895E0918E03D5 -:10366000F0918F03309721F00190F081E02D0994C3 -:1036700080E00895E0918E03F0918F03309721F060 -:103680000280F381E02D09940895E0918E03F0917A -:103690008F03309721F00480F581E02D099408957F -:1036A00020918C0330918D038217930771F09093D2 -:1036B0008D0380938C03E0918E03F0918F033097FC -:1036C00021F00680F781E02D0994089520918A0366 -:1036D00030918B038217930771F090938B03809343 -:1036E0008A03E0918E03F0918F03309721F00084DC -:1036F000F185E02D0994089508950C947C1B0E9497 -:1037000004280E949A0B0E948A280C94452D4F92FF -:103710005F927F928F929F92AF92BF92CF92DF92F1 -:10372000EF92FF920F931F93CF93DF93CDB7DEB746 -:103730002A970FB6F894DEBF0FBECDBF0E94890C4A -:1037400091E9C92E93E0D92E00E010E0AA24A394B9 -:10375000B12C702E802F0E94D20D4C01F6014190A9 -:1037600051906F014826592641145104B1F40F5F5E -:103770001F4F0430110569F78FEF89838A831B82FD -:103780000E940D288160782F9D838C8349815A8106 -:103790006B818D810E94401C3AC08091ED0381FDB8 -:1037A0000E94DB0D20E030E07501022E02C0EE0C1D -:1037B000FF1C0A94E2F7C70184219521892B09F1A6 -:1037C0002E837F828E209F2091E0892809F490E04B -:1037D00098870E940D288160782F9A8789874E816B -:1037E0005F8168858A850E94401C000F111FF801C7 -:1037F000EF56FC4F80819181E826F926F182E08224 -:1038000006C02F5F3F4F2C30310571F6B0CF0E94BC -:10381000762A109190030E942E1B1817D9F00E944F -:103820002E1B809390032A960FB6F894DEBF0FBE2E -:10383000CDBFDF91CF911F910F91FF90EF90DF905F -:10384000CF90BF90AF909F908F907F905F904F9060 -:103850000C94D20A2A960FB6F894DEBF0FBECDBFE5 -:10386000DF91CF911F910F91FF90EF90DF90CF905C -:10387000BF90AF909F908F907F905F904F900895F2 -:10388000CF93DF93CDB7DEB72B970FB6F894DEBF9B -:103890000FBECDBF4F83588769877A878B87DE013C -:1038A000119686E0FD0111928A95E9F785E0FE0107 -:1038B000379601900D928A95E1F749815A816B8183 -:1038C0007C818D819E810E94E5232B960FB6F89412 -:1038D000DEBF0FBECDBFDF91CF910895CF93882378 -:1038E00009F4C2C0C82F823859F40E942E1B81FDF2 -:1038F000BBC089E30E948E260E945B2789E30CC02F -:10390000833879F40E942E1B80FDAEC083E50E94AF -:103910008E260E945B2783E50E94D026CF910C94CF -:103920005B27843859F40E942E1B82FD9DC087E4DA -:103930000E948E260E945B2787E4EECF8CEF8C0FCF -:10394000813A48F48C2F0E94AD2C81118DC08C2FB0 -:103950000E948E26E3CF80E28C0F883048F4C77037 -:1039600081E001C0880FCA95EAF70E941427D6CFDC -:103970008BE58C0F833078F4C53A29F0C63A31F0E4 -:1039800083E890E005C081E890E002C082E890E022 -:10399000CF910C94501B88E58C0F833108F064C0E4 -:1039A000C83A39F1C93A41F1CA3A49F1CB3A51F131 -:1039B000CC3A59F1CD3A61F1C03B69F1CE3A71F19F -:1039C000CF3A79F1C13B81F1C23B89F1C33B91F11F -:1039D000C43B99F1C53BA1F1C63BA9F1C73BB1F18D -:1039E000C83BB9F1C93BC1F1CA3BC9F180E090E0E5 -:1039F00038C082EE90E035C089EE90E032C08AEEA9 -:103A000090E02FC085EB90E02CC086EB90E029C0C1 -:103A100087EB90E026C08CEC90E023C08DEC90E02A -:103A200020C083E891E01DC08AE891E01AC082E9D5 -:103A300091E017C084E991E014C081E292E011C0E6 -:103A400083E292E00EC084E292E00BC085E292E055 -:103A500008C086E292E005C087E292E002C08AE2F6 -:103A600092E0CF910C94661BCF910895882309F4BE -:103A70004BC0823859F40E942E1B81FF45C089E358 -:103A80000E948E260E945B2789E30CC0833871F464 -:103A90000E942E1B80FF38C083E50E948E260E9464 -:103AA0005B2783E50E94D0260C945B27843859F469 -:103AB0000E942E1B82FF28C087E40E948E260E944F -:103AC0005B2787E4EFCF9CEF980F913A58F390E291 -:103AD000980F983050F4877091E001C0990F8A9543 -:103AE000EAF7892F0E941A27DFCF9BE5980F9330C2 -:103AF00020F480E090E00C94501B885A833120F42D -:103B000080E090E00C94661B0895882321F00E94C9 -:103B100014270C945B270895882321F00E941A270C -:103B20000C945B270895BF92CF92DF92EF92FF92A1 -:103B30000F931F93CF93DF9300D000D000D0CDB769 -:103B4000DEB725E0FC01DE01119601900D922A9569 -:103B5000E1F7FC01D08011810281258122952F702F -:103B600043815481452B09F472C31F3F21F4FFEFB9 -:103B7000DF1609F46CC37C012E830E949B07D98257 -:103B80001A8369817A81802F0E948A26182FB92E84 -:103B90000E943F260E9406252E81002319F00E94D4 -:103BA00031272E81EB2DE295EF70F0E0EE56FF4FBE -:103BB0000C9484318B2D807F9B2D9F70F92E882350 -:103BC00019F0F29480EFF822002389F0FF2009F425 -:103BD0007CC280E2810F883020F48F2D0E94142750 -:103BE00003C08F2D0E9424270E945B276EC2812F65 -:103BF0000E94361DFF2009F42AC3105E8F2D183055 -:103C000018F40E941A2702C00E942A2726960FB68F -:103C1000F894DEBF0FBECDBFDF91CF911F910F9102 -:103C2000FF90EF90DF90CF90BF900C945B278B2D8F -:103C3000807F9B2D9F70803211F4892F03C0892FC4 -:103C40008295807F112319F0113011F12BC00023D0 -:103C5000A9F0222389F1213079F526960FB6F89440 -:103C6000DEBF0FBECDBFDF91CF911F910F91FF90AF -:103C7000EF90DF90CF90BF900C944427222319F04F -:103C8000213009F4E4C28E830E9447278E819BC1B4 -:103C9000002321F0263008F0DAC20EC0253008F0EB -:103CA000D6C291C10023C9F0222331F0F7019581DA -:103CB00090FF0BC29F70958326960FB6F894DEBFD7 -:103CC0000FBECDBFDF91CF911F910F91FF90EF906D -:103CD000DF90CF90BF900C94851D222309F473C10F -:103CE00009C22B2D26952695237030E0211531052C -:103CF00021F021303105D1F0AAC2002321F0812F1B -:103D00009B2D937002C080E090E026960FB6F89449 -:103D1000DEBF0FBECDBFDF91CF911F910F91FF90FE -:103D2000EF90DF90CF90BF900C94501B002321F0B8 -:103D3000812F9B2D937002C080E090E026960FB6F5 -:103D4000F894DEBF0FBECDBFDF91CF911F910F91D1 -:103D5000FF90EF90DF90CF90BF900C94661B812F67 -:103D6000002319F00E947E2902C00E94E6292696AF -:103D70000FB6F894DEBF0FBECDBFDF91CF911F917C -:103D80000F91FF90EF90DF90CF90BF900C946B2A33 -:103D90008B2D837009F07BC0011159C2812F829550 -:103DA00086958770880F880F912F9F70C92ED12C10 -:103DB000E12CF12C082E04C0CC0CDD1CEE1CFF1CE9 -:103DC0000A94D2F714FF12C04FE050E060E070E0B8 -:103DD00004C0440F551F661F771F8A95D2F7CB0189 -:103DE000BA01609570958095909503C060E070E091 -:103DF000CB012B2D269526952370422F50E0423083 -:103E00005105D9F04330510569F16C297D298E297E -:103E10009F294130510551F126960FB6F894DEBF27 -:103E20000FBECDBFDF91CF911F910F91FF90EF900B -:103E3000DF90CF90BF900C942D256C297D298E2981 -:103E40009F2926960FB6F894DEBF0FBECDBFDF9137 -:103E5000CF911F910F91FF90EF90DF90CF90BF9087 -:103E60000C9449250E942D25C701B60126960FB650 -:103E7000F894DEBF0FBECDBFDF91CF911F910F91A0 -:103E8000FF90EF90DF90CF90BF900C94112500230E -:103E900019F08B2D817001C08695882309F4D7C154 -:103EA000812F829586958770880F880F912F9F703C -:103EB000C92ED12CE12CF12C082E04C0CC0CDD1C19 -:103EC000EE1CFF1C0A94D2F714FF12C04FE050E022 -:103ED00060E070E004C0440F551F661F771F8A958D -:103EE000D2F7CB01BA01609570958095909503C08B -:103EF00060E070E0CB012B2D269526952370422F94 -:103F000050E042305105D9F04330510569F16C2938 -:103F10007D298E299F294130510551F126960FB6F2 -:103F2000F894DEBF0FBECDBFDF91CF911F910F91EF -:103F3000FF90EF90DF90CF90BF900C9407266C29F4 -:103F40007D298E299F2926960FB6F894DEBF0FBED5 -:103F5000CDBFDF91CF911F910F91FF90EF90DF9038 -:103F6000CF90BF900C9423260E940726C701B6016C -:103F700026960FB6F894DEBF0FBECDBFDF91CF916E -:103F80001F910F91FF90EF90DF90CF90BF900C9416 -:103F9000EB25103F49F118F4103E48F491C0123F50 -:103FA00009F453C0E8F1133F09F464C089C01F70DD -:103FB0008B2D8F71002321F00E948425812F7CCED0 -:103FC0000E94A525812F26960FB6F894DEBF0FBE5E -:103FD000CDBFDF91CF911F910F91FF90EF90DF90B8 -:103FE000CF90BF900C948C1D0023B1F0253008F0C9 -:103FF0002EC18B2D8F7126960FB6F894DEBF0FBEA3 -:10400000CDBFDF91CF911F910F91FF90EF90DF9087 -:10401000CF90BF900C94CA25263008F018C1E9CF84 -:104020000023A9F08B2D8F7126960FB6F894DEBF72 -:104030000FBECDBFDF91CF911F910F91FF90EF90F9 -:10404000DF90CF90BF900C948425002359F38B2DE3 -:104050008F7126960FB6F894DEBF0FBECDBFDF91ED -:10406000CF911F910F91FF90EF90DF90CF90BF9075 -:104070000C94A525002399F08B2D8F7126960FB6F1 -:10408000F894DEBF0FBECDBFDF91CF911F910F918E -:10409000FF90EF90DF90CF90BF900C946F25269605 +:100770000000000000000000000000000000010078 +:100780000050010001000100010001000100010012 +:10079000010001004C00010001000100073006309B +:1007A000135012500030013002300C3001000100B3 +:1007B0000B300A300930083001000100010001004F +:1007C0000100010001000100010001000100010021 +:1007D00001000100010001000100010001002803E7 +:1007E000540068006500200050006C0061006E003D +:1007F00063006B0020004B006500790062006F0011 +:1008000061007200640000002C034F00720074004D +:1008100068006F006C0069006E0065006100720086 +:1008200020004B006500790062006F0061007200DB +:100830006400730000000403090409026D00040150 +:1008400000A0FA09040000010301010009211101BF +:100850000001223F000705810308000A0904010086 +:100860000103010200092111010001224D000705C9 +:10087000820308000A0904020001030000000921A4 +:10088000110100012236000705830308000A09044C +:1008900003000103000000092111010001223900B9 +:1008A000070584031000011201100100000008ED8B +:1008B000FE606001000102000105010906A10105B9 +:1008C0000719E029E7150025019508750181020542 +:1008D0000819012905950575019102950175039186 +:1008E0000105071900297715002501957875018103 +:1008F00002C005010980A101850216010026B7008A +:100900001A01002AB700751095018100C0050C0975 +:1009100001A1018503160100269C021A01002A9CF0 +:1009200002751095018100C005010902A1010901AC +:10093000A100050919012905150025019505750175 +:100940008102950175038101050109300931158185 +:10095000257F95027508810609381581257F950147 +:1009600075088106050C0A38021581257F950175E9 +:10097000088106C0C005010906A101050719E02983 +:10098000E71500250195087501810295017508811B +:100990000105081901290595057501910295017553 +:1009A0000391010507190029FF150025FF9506751C +:1009B000088100C011241FBECFEFDAE0DEBFCDBF3B +:1009C00004B603FE24C08091690490916A04A0914A +:1009D0006B04B0916C048730904BA740B04BB9F4D6 +:1009E0001092690410926A0410926B0410926C04C5 +:1009F00014BE84B7877F84BF88E10FB6F8948093D4 +:100A00006000109260000FBEE0E0F8E3099513E08B +:100A1000A0E0B1E0E2E4F4E602C005900D92A23657 +:100A2000B107D9F714E0A2E6B3E001C01D92A936E0 +:100A3000B107E1F70E94FD150C941F320C940000E1 +:100A4000279A2F988FEF9FEF9093870080938600CF +:100A50008AE08093800089E1809381000C94562D78 +:100A6000282F81110BC080918000877F80938000A8 +:100A700010928D0010928C002F9808952F988091DD +:100A80008000886080938000233019F48FEF9FEFFF +:100A90000FC083E090E0821B9109880F991F2FEF10 +:100AA0003FEFA90102C0569547958A95E2F7CA0122 +:100AB00090938D0080938C000895CF93DF93EC0189 +:100AC0000E94ED28BE0180E090E0DF91CF910C9470 +:100AD00018250F931F93462F50E04E30510508F014 +:100AE000DEC0DC01FA01EA5AFF4F12968C910C9499 +:100AF000E331882309F4D3C000E010E0980140E01E +:100B000064E070E089E292E00E942B1281E090E0C4 +:100B10000FC0882309F4C3C000E010E0980140E052 +:100B200066E070E089EB91E00E942B1282E090E099 +:100B30000E945D05B4C0882309F4B1C000E010E054 +:100B4000980140E068E070E089EE91E00E942B128D +:100B500084E090E0EDCF882311F083E005C083E0CE +:100B60000CC0882349F084E00E94952540E164E0B0 +:100B700083E00E946D0A93C084E00E94B625F6CF00 +:100B8000882331F085EE0E947F1C0E94AD2D87C026 +:100B900085EE0E94471D83C0882309F480C00E940F +:100BA000BF0D7DC0882309F47AC00E94B80D00E013 +:100BB00010E0980140E065E070E089E492E027C031 +:100BC000882309F46CC085E00E94B6250E94E00DE0 +:100BD00066C0882309F463C000E010E0980140E09B +:100BE00068E070E089E191E00E942B1285E00E94AC +:100BF000952555C0882309F452C00E94BE1200E01A +:100C000010E0980140E068E070E089E191E00E9426 +:100C10002B1245C0882309F442C00E94C912EFCFAD +:100C20008823E9F100E010E0980140E066E070E020 +:100C300089E891E00E942B1284E00E94B62583E0AF +:100C40000E94B62580E10E94B62585E00E94B62567 +:100C50000E94E00D86E00E9495250E94DA2881110D +:100C600002C00E94B6280E94F22890E09093680487 +:100C7000809367048068809367040E94F6280FC001 +:100C8000882369F000E010E0980140E066E070E041 +:100C900089E591E00E942B1286E00E94B62580E053 +:100CA00090E01F910F9108950F931F932FEF89EFFD +:100CB00090E0215080409040E1F700C0000000E04B +:100CC00010E0980140E065E070E089E492E00E9465 +:100CD0002B121F910F9108950F931F9300E010E0C6 +:100CE000980140E063E070E081E091E00E942B1207 +:100CF0002FEF82E597E0215080409040E1F700C05F +:100D000000001F910F910895CF92DF92EF92FF9212 +:100D10000F931F93CF93DF93CDB7DEB7CC58D10994 +:100D20000FB6F894DEBF0FBECDBF2091210425FF82 +:100D3000C5C08C01FC01928180910001992309F4C6 +:100D400060C096E4EEE8F2E0DE01A95BBF4F0190DF +:100D50000D929A95E1F7F8019081E0916203F0918C +:100D60006303E90FF11DEE0FFF1F27E430E02C0FA6 +:100D70003D1FE20FF31F60817181680F711D88278D +:100D800077FD8095982F0E94F12E20E030E040E41E +:100D900051E40E94562E6B017C01F801218184E010 +:100DA00090E0821B9109BC01882777FD8095982FE0 +:100DB0000E94F12E9B01AC01C701B6010E94EE2DED +:100DC0009B01AC0160E070E080E090E40E94643040 +:100DD00020E030E04CE551E40E9401304FE050E06B +:100DE000C457DF4F0FB6F894DEBF0FBECDBFDF9103 +:100DF000CF911F910F91FF90EF90DF90CF900C94C7 +:100E0000CB1196E4EEE8F2E0DE01119601900D922E +:100E10009A95E1F7F8019081E0916203F091630304 +:100E2000E90FF11DEE0FFF1F21E030E02C0F3D1FF9 +:100E3000E20FF31F60817181680F711D882777FDB4 +:100E40008095982F0E94F12E20E030E040E451E49C +:100E50000E94562E6B017C01F801218184E090E014 +:100E6000821B9109BC01882777FD8095982F0E94ED +:100E7000F12E9B01AC01C701B6010E94EE2D9B0132 +:100E8000AC0160E070E080E090E40E94643020E01B +:100E900030E04CE551E40E940130C457DF4F0FB6FB +:100EA000F894DEBF0FBECDBFDF91CF911F910F91A0 +:100EB000FF90EF90DF90CF900C94130EC457DF4F4C +:100EC0000FB6F894DEBF0FBECDBFDF91CF911F915B +:100ED0000F91FF90EF90DF90CF90089508950E94BA +:100EE00020056E9A769A0C9454060C946E070C9416 +:100EF00084060895880F991FFC01E250F040859107 +:100F000094910895880F991FFC01E258FE4F859136 +:100F1000949108950F931F93CF93DF93EC01811564 +:100F200020E49207A0F5C11580E3D80708F0E1C0DE +:100F3000C83ED105D8F4C03ED10508F0EEC1C83A8C +:100F4000D10578F4C53AD10508F074C0C130D10597 +:100F500009F46DC008F4DEC1C430D10508F0DDC16C +:100F6000D9C1CB3BD10508F470C0D4C1C11590E202 +:100F7000D90708F0B9C0C11521E0D20708F0CDC1EA +:100F8000C03FD10508F4C6C18E01106506C2C1304C +:100F900080E5D80709F4BDC068F5C13120E4D20767 +:100FA00009F4AEC050F4C03190E4D90708F0A5C0F0 +:100FB000CF70DD278E01146DF0C1C33120E4D2075C +:100FC00009F4A4C008F49FC0C115D04509F0A2C11E +:100FD0000E945C210E94E00D0E946C069FEF24E3BA +:100FE0008CE0915020408040E1F700C000000E945A +:100FF0007928D3C1C11520E6D20730F4C11581E5A7 +:10100000D80708F48CC02DC1C11590E7D90708F4A2 +:1010100081C1C11520E8D20708F478C1C11580E963 +:10102000D80708F077C1DF708E01106AB6C101E001 +:1010300010E0B3C1C53AD10509F471C1C63AD10572 +:1010400009F070C102E810E4A8C1C83AD10509F45A +:101050006CC1C93AD10509F46BC1CA3AD10509F48A +:101060006AC1CB3AD10509F469C1CC3AD10509F47A +:1010700068C1CD3AD10509F467C1C03BD10509F477 +:1010800066C1CE3AD10509F465C1CF3AD10509F45C +:1010900064C1C13BD10509F463C1C23BD10509F468 +:1010A00062C1C33BD10509F461C1C43BD10509F458 +:1010B00060C1C53BD10509F45FC1C63BD10509F448 +:1010C0005EC1C73BD10509F45DC1C83BD10509F438 +:1010D0005CC1C93BD10509F45BC1CA3BD10509F428 +:1010E0005AC100E014E459C1CE019F700E948207EA +:1010F00055C1DD278E01106C50C100E011ED4DC1CE +:1011000000E010ED4AC100E012ED47C100E013ED30 +:1011100044C180913D04816080933D043EC10E94A2 +:10112000DA28811102C00E94B6280E94F22890E0BD +:101130009093680480936704C23090E5D90721F446 +:1011400080916704816086C0C43020E5D20721F415 +:101150008091670482607EC0C63080E5D80721F4A4 +:1011600080916704846076C0C83090E5D90719F48F +:101170008091670427C0CA3020E5D20721F480910E +:101180006704806167C0CC3080E5D80721F4809186 +:10119000670480625FC0CE3090E5D90721F480916A +:1011A0006704806457C0C03120E5D20721F48091E4 +:1011B000670480684FC0C23180E5D80729F4809168 +:1011C00067048460886046C0C33090E5D90721F485 +:1011D000809167048E7F3EC0C53020E5D20721F4A0 +:1011E000809167048D7F36C0C73080E5D80721F431 +:1011F000809167048B7F2EC0C93090E5D90719F420 +:101200008091670426C0CB3020E5D20721F480917D +:1012100067048F7E1FC0CD3080E5D80721F4809110 +:1012200067048F7D17C0CF3090E5D90721F48091F6 +:1012300067048F7B0FC0C13120E5D20721F4809174 +:1012400067048F7707C0C331D04531F480916704BC +:101250008B7F877F80936704809167040E94F628C4 +:101260009CC08D2F99278F70992781309105D9F4D3 +:101270009E012370332702C0880F991F2A95E2F739 +:101280009C688E0144E0000F111F4A95E1F700278A +:101290001370802B912B53E0CC0FDD1F5A95E1F793 +:1012A000C076DD272FC08230910531F4DC2FCC27AA +:1012B0008E01016F106A71C08330910569F4CE010F +:1012C0008370992701E010E002C0000F111F8A957A +:1012D000E2F7C8019C680FC0049709F05EC0CE0118 +:1012E0008370992701E010E002C0000F111F8A955A +:1012F000E2F7C8019A6823E0CC0FDD1F2A95E1F7D9 +:10130000C07ED7708C010C2B1D2B47C0DF708E0167 +:10131000106243C000E010E040C08E013EC001E812 +:1013200010E43BC003E810E438C002EE14E435C01A +:1013300009EE14E432C00AEE14E42FC005EB14E405 +:101340002CC006EB14E429C007EB14E426C00CEC17 +:1013500014E423C00DEC14E420C003E815E41DC020 +:101360000AE815E41AC002E915E417C004E915E417 +:1013700014C001E216E411C003E216E40EC004E258 +:1013800016E40BC005E216E408C006E216E405C048 +:1013900007E216E402C00AE216E4C801DF91CF9129 +:1013A0001F910F9108959CE0799FF001112490E323 +:1013B000899FE00DF11D1124E60FF11DEE0FFF1FB7 +:1013C000E258FE4F85919491803E9105E0F4803C77 +:1013D000910558F58133910509F46FC048F48932BD +:1013E000910509F463C08A32910509F46DC072C099 +:1013F00089339105E9F082389105D1F08533910563 +:1014000009F44DC067C0833E910581F138F4803EF8 +:101410009105B9F0823E9105D9F05CC0863E9105F8 +:1014200061F1873E9105A1F155C00E947A070895A8 +:101430002091670420FD02C021FF4CC080EE90E0A7 +:1014400049C08091670480FFF9CF89E390E042C0F2 +:101450008091670482FF0EC08091670484FF03C0FF +:1014600080E090E037C083EE90E034C08091670464 +:1014700082FFF2CF82EE90E02DC08091670483FF5F +:101480000BC08091670484FDEBCF87EE90E022C013 +:101490008091670483FFF5CF86EE90E01BC08091BA +:1014A000670485FF07C089E290E014C0809167045B +:1014B00085FFF9CF85E390E00DC08091670486FF3A +:1014C00007C08AE290E006C08091670486FFF9CFEA +:1014D00081E390E00E948A070895CF92DF92EF9215 +:1014E000FF920F931F9301E010E020E030E06801CD +:1014F000790104C0CC0CDD1CEE1CFF1C8A95D2F7D0 +:1015000004C0000F111F221F331F6A95D2F70C2948 +:101510001D292E293F29C0902104D0902204E0905B +:101520002304F0902404C022D122E222F322842F4B +:10153000C016D106E206F30641F41F910F91FF9009 +:10154000EF90DF90CF900C9495251F910F91FF9015 +:10155000EF90DF90CF900C94B62508950C94AD0ACF +:101560005F926F927F928F929F92AF92BF92CF9233 +:10157000DF92EF92FF920F931F93CF93DF93CDB73C +:10158000DEB728970FB6F894DEBF0FBECDBFCE01F1 +:1015900001966C014E0199E0890E911C20E030E02B +:1015A00040E050E060E070E000E010E0E12CF12C61 +:1015B0006C2C5D2C88E0782EAA24A394B12CE4ED49 +:1015C000F2E0A62DB52D872D01900D928A95E1F7B9 +:1015D000F601819191916F01FC01E07FFF27E032DC +:1015E000F10559F48F709927F50102C0EE0FFF1F26 +:1015F0008A95E2F7EE2AFF2A37C0E033F10559F465 +:101600008F709927F50102C0EE0FFF1F8A95E2F750 +:101610000E2B1F2B29C0E034F10559F48F70992748 +:10162000F50102C0EE0FFF1F8A95E2F76E2B7F2BAC +:101630001BC0E035F10559F48F709927F50102C000 +:10164000EE0FFF1F8A95E2F74E2B5F2B0DC0E036A1 +:10165000F10551F48F709927F50102C0EE0FFF1FBD +:101660008A95E2F72E2B3F2BC814D90409F0A7CF97 +:1016700084B19E2D9095892384B985B1E82AE5B877 +:1016800087B1902F9095892387B988B1082B08B925 +:101690008AB1962F909589238AB98BB1682B6BB943 +:1016A0008DB1942F909589238DB98EB1482B4EB969 +:1016B00080B3922F9095892380BB81B3282B21BBC7 +:1016C00028960FB6F894DEBF0FBECDBFDF91CF9145 +:1016D0001F910F91FF90EF90DF90CF90BF90AF9050 +:1016E0009F908F907F906F905F9008955F926F9220 +:1016F0007F928F929F92AF92BF92CF92DF92EF92A2 +:10170000FF920F931F93CF93DF93CDB7DEB7689708 +:101710000FB6F894DEBF0FBECDBF85B7806885BF1A +:1017200085B7806885BF0E94B00ACE0101966C0122 +:101730004E0199E1890E911C20E030E040E050E03C +:1017400060E070E000E010E0E12CF12C6C2C5D2CEE +:1017500088E1782EAA24A394B12CECEDF2E0A62D1A +:10176000B52D872D01900D928A95E1F7F6018191B3 +:1017700091916F01FC01E07FFF27E032F10559F400 +:101780008F709927F50102C0EE0FFF1F8A95E2F7CF +:10179000EE2AFF2A37C0E033F10559F48F709927FC +:1017A000F50102C0EE0FFF1F8A95E2F70E2B1F2BEB +:1017B00029C0E034F10559F48F709927F50102C072 +:1017C000EE0FFF1F8A95E2F76E2B7F2B1BC0E035D3 +:1017D000F10559F48F709927F50102C0EE0FFF1F34 +:1017E0008A95E2F74E2B5F2B0DC0E036F10551F4E0 +:1017F0008F709927F50102C0EE0FFF1F8A95E2F75F +:101800002E2B3F2BC814D90409F0A7CF84B19E2DED +:101810009095892384B985B1E82AE5B887B1902FDE +:101820009095892387B988B1082B08B98AB1962F7A +:10183000909589238AB98BB1682B6BB98DB1942FA0 +:10184000909589238DB98EB1482B4EB980B3922FD4 +:101850009095892380BB81B3282B21BB10926D0307 +:1018600010926C03109265031092640310926F0340 +:1018700010926E0310926703109266031092710328 +:101880001092700310926903109268031092730310 +:101890001092720310926B0310926A0368960FB64F +:1018A000F894DEBF0FBECDBFDF91CF911F910F9196 +:1018B000FF90EF90DF90CF90BF90AF909F908F9070 +:1018C0007F906F905F900C946F077F928F929F92A2 +:1018D000AF92BF92CF92DF92EF92FF920F931F933E +:1018E000CF93DF93CDB7DEB7A0970FB6F894DEBFE6 +:1018F0000FBECDBF6E0149E1C40ED11C84E6E82EB7 +:1019000083E0F82E98E0792EBC2CAD2C01E010E09D +:1019100028E1822E35E0932EE4EDF2E0AB2DBA2DD6 +:10192000872D01900D928A95E1F7F60181919191B1 +:101930006F019C01207F33272032310591F424B1BF +:101940008F709927A80102C0440F551F8A95E2F7AE +:10195000CA01922F982B94B995B18095892385B9A6 +:1019600053C02033310591F427B18F709927F801C6 +:1019700002C0EE0FFF1F8A95E2F7CF01922F982B3E +:1019800097B998B18095892388B93EC02034310534 +:1019900091F42AB18F709927A80102C0440F551FF6 +:1019A0008A95E2F7CA01922F982B9AB99BB180953C +:1019B00089238BB929C02035310591F42DB18F7061 +:1019C0009927F80102C0EE0FFF1F8A95E2F7CF01B9 +:1019D000922F982B9DB99EB1809589238EB914C002 +:1019E0002036310589F420B38F709927A80102C0F1 +:1019F000440F551F8A95E2F7CA01922F982B90BB8E +:101A000091B38095892381BB50EA5A95F1F7BE01C5 +:101A10006F5F7F4F20E030E040E050E0ECEDF2E01F +:101A2000DE011196882D01900D928A95E1F7FB0158 +:101A300081919191BF01FC01E07FFF27E032F10528 +:101A400011F4E3B113C0E033F10511F4E6B10EC0B7 +:101A5000E034F10511F4E9B109C0E035F10511F404 +:101A6000ECB104C0E036F105B9F4EFB1F0E08F70ED +:101A7000992702C0F595E7958A95E2F7E0FD08C041 +:101A8000C801042E02C0880F991F0A94E2F702C011 +:101A900080E090E0282B392B4F5F5F4F4C30510591 +:101AA00009F0BCCFF701808191818217930721F063 +:101AB00031832083909271020E94B00AF2E0EF0E0F +:101AC000F11C4CE6E41643E0F40609F025CF8091C2 +:101AD0007102882361F1815080937102882339F06B +:101AE0008FE99FE00197F1F700C0000020C08091CE +:101AF00064039091650390936D0380936C038091D0 +:101B000066039091670390936F0380936E038091B7 +:101B1000680390916903909371038093700380919F +:101B20006A0390916B0390937303809372030E94F6 +:101B3000750781E0A0960FB6F894DEBF0FBECDBF4B +:101B4000DF91CF911F910F91FF90EF90DF90CF9099 +:101B5000BF90AF909F908F907F900895E82FF0E016 +:101B6000EE0FFF1FE459FC4F808191810895089585 +:101B7000809152048160809352040C9408298091D2 +:101B800052048E7F809352040C9408290E94DA2814 +:101B9000811102C00E94B6280E9404298093520439 +:101BA0003E9A809171008D7F8093710082E08093D6 +:101BB00090008AE18093910081E0809376030895FC +:101BC00080917603811102C00E94C60D1092C60357 +:101BD0001092C503809171008D7F80937100809178 +:101BE00090008F7780939000109288031092870363 +:101BF0001092BF031092C0031092C1031092C2034F +:101C00001092BE031092BD03EDE9F3E0ADE8B3E03E +:101C100011921192119211921D921D9283E0ED3B4F +:101C2000F807B1F70895CF92DF92EF92FF920F93EA +:101C30001F93CF93DF9320918703222309F484C05D +:101C40006B017C0180917603811102C00E94C60D58 +:101C50000DEB13E0C7E0D0E0A7019601F8019291E7 +:101C60008291729162918F010E94522E811131C036 +:101C7000FE01EE0FFF1FEE0FFF1FE356FC4F108219 +:101C8000118212821382DE01AA0FBB1FA357BC4F21 +:101C900011961C921E92C730D105E9F0219644811D +:101CA0005581668177814083518362837383148277 +:101CB00015821682178212968D919C911397119618 +:101CC0009C938E9313961C921E92129734961296A2 +:101CD000E2CF219708F68091C5039091C603019742 +:101CE00097FD05C09093C6038093C50304C010926E +:101CF000C6031092C5038091C5039091C60320913D +:101D0000C3033091C4032817390724F01092C40389 +:101D10001092C303892BC1F4809171008D7F809351 +:101D20007100809190008F77809390001092BF0394 +:101D30001092C0031092C1031092C2031092BE030E +:101D40001092BD0310928703DF91CF911F910F91E5 +:101D5000FF90EF90DF90CF9008951F920F920FB6F3 +:101D60000F9211244F925F926F927F928F929F9267 +:101D7000AF92BF92CF92DF92EF92FF922F933F9359 +:101D80004F935F936F937F938F939F93AF93BF9383 +:101D9000CF93DF93EF93FF9380918703882309F418 +:101DA0009BC1C091C503D091C6031C161D060CF043 +:101DB00093C14090770350907803609079037090BE +:101DC0007A0320E030E0A901C301B2010E94FD2F97 +:101DD00018160CF065C0C130D10509F452C08091CD +:101DE000C3039091C403BE010E94CF317C01909344 +:101DF000C4038093C3038090890390908A03A090CA +:101E00008B03B0908C0320E030E040E85FE3C50135 +:101E1000B4010E94EE2D6093890370938A0380932E +:101E20008B0390938C03F701EE0FFF1FEE0FFF1F44 +:101E3000E356FC4FA30192016081718182819381FD +:101E40000E94562E20E030E040E05EE30E94013028 +:101E50009B01AC01C501B4010E94FD2F18168CF442 +:101E6000C7010196BE010E94CF319093C4038093B5 +:101E7000C3031092890310928A0310928B0310926D +:101E80008C03E091C303F091C403EE0FFF1FEE0F2C +:101E9000FF1FE356FC4F6081718182819381D0C026 +:101EA000C090BF03D090C003E090C103F090C20384 +:101EB00020E030E0A901C701B6010E94522E21970F +:101EC000882309F4A2C0FE01EE0FFF1FEE0FFF1FD3 +:101ED000E356FC4F80809180A280B380A5019401DD +:101EE000C701B6010E94522E87FF31C0A50194019F +:101EF00060E070E08CED93EC0E94562E20E030E024 +:101F000040E451E40E94562E20E030E040E05FE3E0 +:101F10000E9401309B01AC0160E070E080E090E441 +:101F20000E9464309B01AC01C501B4010E940130E4 +:101F30009B01AC01C701B6010E94522E87FF07C06A +:101F4000A701960160E070E08CED93E439C0A50133 +:101F50009401C701B6010E94FD2F18160CF055C060 +:101F6000A501940160E070E08CED93E40E94562E90 +:101F700020E030E040E451E40E94562E20E030E0C2 +:101F800040E05FE30E9401309B01AC0160E070E043 +:101F900080E090E40E9464309B01AC01C501B40173 +:101FA0000E9401309B01AC01C701B6010E94FD2FC8 +:101FB00018165CF5A701960160E070E08CED93ECDB +:101FC0000E94562E20E030E040E451E40E94562E5C +:101FD00020E030E040E05FE30E9401309B01AC0173 +:101FE00060E070E080E090E40E9464309B01AC010E +:101FF000C701B6010E9401306093BF037093C00314 +:102000008093C1039093C20313C0FE01EE0FFF1F24 +:10201000EE0FFF1FE356FC4F80819181A281B381B7 +:102020008093BF039093C003A093C103B093C203F6 +:102030006091BF037091C0038091C1039091C2036E +:1020400020917403309175032F3F4FEF340731F027 +:102050002F5F3F4F30937503209374030E94D41277 +:102060006B017C0120E034E244EF51E40E94522EE7 +:1020700087FF08C086EFC82E88E2D82E84EFE82EAE +:1020800081E4F82E20E030E040E051E4C701B601E1 +:102090000E9401309B01AC0160E074E284E79BE4A4 +:1020A0000E94562E6B017C010E94BE2E70939700F9 +:1020B00060939600209172023091730240917402F5 +:1020C00050917502C701B6010E9401300E94BE2ED8 +:1020D000709399006093980080918803882309F495 +:1020E00033C1C0908303D0908403E0908503F090C7 +:1020F000860320E030E0A901C701B6010E94FD2F50 +:102100001816D4F580917403909175038F3F2FEFCB +:10211000920729F001969093750380937403C70189 +:10212000B6010E94D41220E030E040E051E40E9469 +:1021300001309B01AC0160E074E284E79BE40E9403 +:10214000562E6B017C010E94BE2E70939700609307 +:102150009600209172023091730240917402509166 +:102160007502C701B6010E9401300E94BE2E709315 +:1021700099006093980008C0109297001092960002 +:10218000109299001092980060917D0370917E03E7 +:102190006F5F7F4F70937E0360937D032091960065 +:1021A0003091970080E090E0232BF1F0C0919600F1 +:1021B000D09197000E94EF2E6B017C01BE0180E060 +:1021C00090E00E94EF2E9B01AC0160917F03709123 +:1021D000800380918103909182030E94562E20E01B +:1021E0003FEF4FE757E410C00E94EF2E6B017C01D8 +:1021F00020E030EE4FEF54E460917F037091800354 +:1022000080918103909182030E9401309B01AC0177 +:10221000C701B6010E94FD2F87FD96C080917B0308 +:102220008F5F80937B0390E020914E0430914F04A8 +:1022300082179307A0F080915904882319F0109217 +:102240007B030DC0809171008D7F80937100809120 +:1022500090008F7780939000109288037DC08091CA +:102260007C03C0917B03811128C0C0905304D0909F +:102270005404E0905504F090560420E030E0A901A9 +:10228000C701B6010E94FD2F1816BCF481E08093AF +:102290007C031092830310928403109285031092A2 +:1022A0008603C0927F03D0928003E0928103F09274 +:1022B0008203C150C0937B0343C010927C031092F1 +:1022C000750310927403E0915004F091510448E0BA +:1022D000C49FE00DF11D112480819181A281B38101 +:1022E0008093830390938403A0938503B093860324 +:1022F00020E030E040E85EE364817581868197816B +:102300000E9401306B017C0120E030E048EC52E497 +:1023100060917602709177028091780290917902B3 +:102320000E94562E9B01AC01C701B6010E940130EC +:1023300060937F0370938003809381039093820363 +:1023400010927E0310927D038091520480FD04C0A0 +:102350001092880310928703FF91EF91DF91CF9144 +:10236000BF91AF919F918F917F916F915F914F91AD +:102370003F912F91FF90EF90DF90CF90BF90AF9063 +:102380009F908F907F906F905F904F900F900FBEB7 +:102390000F901F901895CF92DF92EF92FF92CF93FC +:1023A000DF936B017C01EA0180917603811102C009 +:1023B0000E94C60D8091520480FF46C08091C503E3 +:1023C0009091C60308970CF03FC0809171008D7FFB +:1023D000809371008091880381110E94E00D81E05B +:1023E00080938703109275031092740320E030E00D +:1023F000A901C701B6010E94FD2F1816DCF48091D7 +:10240000C5039091C603FC01EE0FFF1FEE0FFF1FE7 +:10241000E356FC4FC082D182E282F382FC01EE0FD0 +:10242000FF1FE357FC4FD183C08301969093C603EF +:102430008093C503809171008260809371008091C8 +:102440009000806880939000DF91CF91FF90EF9093 +:10245000DF90CF9008958F929F92AF92BF92CF92CC +:10246000DF92EF92FF920F931F93CF93DF93EC01D4 +:102470007B01D42E4801590180917603811102C05D +:102480000E94C60D8091520480FF6BC08091710044 +:102490008D7F809371008091870381110E94E00DF0 +:1024A00081E080938803D0935104C0935004F0924C +:1024B0004F04E0924E04D0925904809253049092BB +:1024C0005404A0925504B0925604109289031092BD +:1024D0008A0310928B0310928C0310927B038881E5 +:1024E0009981AA81BB818093830390938403A093F5 +:1024F0008503B093860320E030E040E85EE36C8122 +:102500007D818E819F810E9401306B017C0120E0E2 +:1025100030E048EC52E4609176027091770280914D +:102520007802909179020E94562E9B01AC01C7015E +:10253000B6010E94013060937F0370938003809303 +:1025400081039093820310927E0310927D03809109 +:102550007100826080937100809190008068809308 +:102560009000DF91CF911F910F91FF90EF90DF903E +:10257000CF90BF90AF909F908F9008958091C703A8 +:1025800090E0019666E070E00E94CF318093C7032F +:1025900008958091C70390E0019766E070E00E9483 +:1025A000CF318093C70308958F929F92AF92BF92CD +:1025B000CF92DF92EF92FF920F931F93CF93DF930F +:1025C0006B017C01C0917403D0917503BE0180E062 +:1025D00090E00E94EF2E4B015C01A701960160E0A4 +:1025E00070E08CE594E40E94562E9B01AC01C5017D +:1025F000B4010E9401300E94C32E2091C7032330F2 +:1026000009F473C028F4222351F02130E9F02CC1E1 +:10261000243009F4A0C0253009F4E0C025C180E0D1 +:1026200090E0A0E0BFE38093720290937302A093C6 +:102630007402B0937502109277031092780310928F +:10264000790310927A0310C11092770310927803E5 +:102650001092790310927A036431710540F46A3064 +:10266000710560F520E030E040E85EE32BC0693C96 +:10267000710508F0AAC080E090E00E94EF2E20E0F3 +:1026800030E040EA51E40E94ED2D20E030E044E3E8 +:1026900053E40E94562E9B01AC010E94013020E0C1 +:1026A00030E040E05EE30E9401309B01AC0160E05D +:1026B00070E080E09EE30E94ED2D44C020E030E019 +:1026C00040E05FE3C701B6010E9401306B017C016D +:1026D00080E090E0A0E0BEE38093720290937302EA +:1026E000A0937402B0937502BFC01092770310924A +:1026F00078031092790310927A034AE0469F900182 +:10270000479F300D1124C90168EB7BE00E94BB316B +:10271000BC016C5D754077FF03C0719561957109CF +:10272000882777FD8095982F0E94F12E2EE333ECB9 +:102730004EE259E30E94013020E030E040EC5EE3DD +:102740000E94EE2D60937202709373028093740264 +:102750009093750289C010927703109278031092BB +:10276000790310927A03CE0183709927892BE1F0C7 +:10277000BE016170772780E090E00E94EF2E20E09C +:1027800030E040E05EE30E94013020E030E040E4D1 +:102790005FE30E94EE2D6093720270937302809348 +:1027A0007402909375020CC080E090E0A0E0BFE35B +:1027B0008093720290937302A0937402B093750297 +:1027C000C770DD27CD2B09F04FC010927202109216 +:1027D0007302109274021092750246C01092770331 +:1027E000109278031092790310927A0300E010E0BF +:1027F00020E03FE30093720210937302209374026F +:10280000309375026739710578F180E090E00E949D +:10281000EF2E20E030E047E153E40E94ED2D20E070 +:1028200030E04AE754E40E94562E20E030E048E4CD +:1028300052E40E94013020E030E040EA51E40E947E +:10284000332F0E94BE2E660F771F660F771FFB0186 +:10285000EC50FD4F2081318142815381C701B60187 +:102860000E9401306B017C01C701B601DF91CF915D +:102870001F910F91FF90EF90DF90CF90BF90AF909E +:102880009F908F9008958091D8030895CF93DF9300 +:1028900000D01F92CDB7DEB79C0180915E048430DA +:1028A00019F593E099833B832A839093E9008FEF96 +:1028B0009091E800815095FD06C095ED9A95F1F74D +:1028C00000008111F5CF8091E80085FF0DC040E048 +:1028D00050E063E070E0CE0101960E94A71680915F +:1028E000E8008E778093E8000F900F900F90DF91B3 +:1028F000CF910895CF93DF9300D01F92CDB7DEB76D +:1029000020915E04243021F522E029839B838A8371 +:1029100083E08093E9008FEF9091E800815095FD6E +:1029200006C095ED9A95F1F700008111F5CF8091E1 +:10293000E80085FF0DC040E050E063E070E0CE01AC +:1029400001960E94A7168091E8008E778093E80098 +:102950000F900F900F90DF91CF91089520915E041A +:102960002430F1F422E02093E9002FEF3091E800C9 +:10297000215035FD06C035ED3A95F1F700002111E3 +:10298000F5CF2091E80025FF0BC040E050E065E066 +:1029900070E00E94A7168091E8008E778093E8008F +:1029A0000895CF93DF93EC0190915E04943009F089 +:1029B00046C0809184028823D9F0809185028823C3 +:1029C000B9F09093E9008FEF9091E800815095FD68 +:1029D00006C095E19A95F1F700008111F5CF80913D +:1029E000E80085FF2CC040E050E060E170E017C0D7 +:1029F00081E08093E9008FEF9091E800815095FD90 +:102A000006C095ED9A95F1F700008111F5CF809100 +:102A1000E80085FF14C040E050E068E070E0CE01BF +:102A20000E94A7168091E8008E778093E80080E1ED +:102A3000FE01A8ECB3E001900D928A95E1F7DF91D9 +:102A4000CF91089580915D04811109C00E943C18C6 +:102A50000E9499188091E20084608093E2000895BA +:102A600010925D040895089508950C94E12742E0C2 +:102A700061EC81E00E94B61742E061EC82E00E94C6 +:102A8000B61742E061EC83E00E94B61742E161ECC8 +:102A900084E00C94B61780916004833009F455C02B +:102AA00030F4813071F0823009F48EC008958A309C +:102AB00009F47AC08B3009F460C0893009F09CC0F9 +:102AC00020C080915F04813A09F096C08091E800AF +:102AD000877F8093E8008091630490916404892B40 +:102AE00021F460E188EC93E003C060E080E090E0D6 +:102AF00070E00E94F2168091E8008B778093E800E6 +:102B0000089580915F04813209F076C0809163045A +:102B100090916404009719F0039709F06DC08091BB +:102B2000E800877F8093E8008091E80082FD05C07F +:102B300080915E048111F8CF5FC08091F100809395 +:102B4000D8038091E8008B7753C080915F04813A6D +:102B500009F052C08091630490916404892B09F0BC +:102B60004BC08091E800877F8093E8008091E80067 +:102B700080FFFCCF8091840236C080915F04813257 +:102B8000D9F58091630490916404892BA9F5809113 +:102B9000E800877F8093E8000E94EB178091610432 +:102BA000809384020C945C2180915F04813221F532 +:102BB0008091E800877F8093E8000E94EB17809166 +:102BC00062048093D903089580915F04813AA1F44F +:102BD0008091E800877F8093E8008091E80080FF83 +:102BE000FCCF8091D9038093F1008091E8008E772B +:102BF0008093E8000C94EB17089584B7877F84BF17 +:102C000088E10FB6F89480936000109260000FBEC8 +:102C100090E080E80FB6F894809361009093610093 +:102C20000FBE0E948E1B0E943C180E949918809132 +:102C3000E20084608093E20078940E941F1B0E944F +:102C4000901B8AE792E00E943A1B80915E048530D7 +:102C500069F40E949B2780915C048823B1F30E9451 +:102C6000C927882391F30E949116EFCF0E94981BE9 +:102C7000ECCF292F332723303105C9F064F42130FC +:102C8000310581F02230310509F043C08DE690E036 +:102C90002AE338E042C021323105F1F02232310519 +:102CA00041F137C082E190E027EA38E036C0992749 +:102CB0008130910541F08230910541F0892B49F531 +:102CC000E6E3F8E005C0E8E0F8E002C0EEEDF7E08A +:102CD000849190E09F0121C06430D8F4E62FF0E0A9 +:102CE000EE0FFF1FE05BFC4F2081318189E090E017 +:102CF00014C0643070F470E0FB01EE0FFF1FE85B5E +:102D0000FC4F20813181FB01EC5BFC4F808190E026 +:102D100004C080E090E020E030E0FA0131832083BD +:102D2000089580E189BD82E189BD09B400FEFDCF2F +:102D30008091D8008F7D8093D8008091E0008260E0 +:102D40008093E0008091E00081FDFCCF0895CF9258 +:102D5000DF92EF92FF920F931F93CF93DF93EC01DB +:102D60008B016A010E940A18811133C0C114D10479 +:102D700039F0F60180819181081B190BC80FD91F0A +:102D8000E12CF12C0115110519F18091E80085FD68 +:102D900016C08091E8008E778093E800C114D104BA +:102DA00049F0F60180819181E80EF91EF182E082FE +:102DB00085E00FC00E940A18882321F30AC0899178 +:102DC0008093F10001501109FFEFEF1AFF0ADACFEB +:102DD00080E0DF91CF911F910F91FF90EF90DF90F6 +:102DE000CF90089520916504309166042617370727 +:102DF00048F06115710539F42091E8002E77209391 +:102E0000E80001C0B90140E061157105A9F1209108 +:102E10005E04222309F443C0253009F442C0209106 +:102E2000E80023FD40C02091E80022FD32C020913F +:102E3000E80020FFE9CF4091F3002091F20030E05C +:102E4000342BFC01CF016115710559F02830310593 +:102E500040F481918093F100615071092F5F3F4FE1 +:102E6000F1CF41E02830310509F040E02091E80041 +:102E70002E772093E800C8CF4111C9CF0AC08091B6 +:102E80005E04882361F0853061F08091E80083FD65 +:102E90000AC08091E80082FFF2CF80E0089582E0CE +:102EA000089583E0089581E00895209165043091AC +:102EB00066042617370748F06115710539F420912B +:102EC000E8002E772093E80001C0B901FC0120E062 +:102ED0006115710591F180915E04882309F440C069 +:102EE000853009F43FC08091E80083FD3DC08091AA +:102EF000E80082FD2FC08091E80080FFE9CF20919B +:102F0000F3008091F20090E0922B6115710559F069 +:102F10008830910540F424912093F100319661505E +:102F200071090196F2CF21E0089709F020E0809125 +:102F3000E8008E778093E800CBCF2111CCCF0AC078 +:102F400080915E04882361F0853061F08091E80013 +:102F500083FD0AC08091E80082FFF2CF80E00895EF +:102F600082E0089583E0089581E00895982F9730D6 +:102F700058F59093E900981739F07091EC00209182 +:102F8000ED005091F00003C0242F762F50E021FF78 +:102F900019C03091EB003E7F3093EB003091ED0093 +:102FA0003D7F3093ED003091EB0031603093EB00CA +:102FB0007093EC002093ED005093F0002091EE0010 +:102FC00027FF07C09F5FD3CF8F708093E90081E018 +:102FD000089580E0089580915F0487FF11C080917B +:102FE000E80082FD05C080915E048111F8CF11C018 +:102FF0008091E8008B770BC080915E04882349F0B4 +:103000008091E80080FFF8CF8091E8008E77809370 +:10301000E80008952091E4003091E50095E64091A4 +:10302000EC00842F817040FF22C08091E80080FD79 +:103030001CC080915E04882391F0853091F08091CE +:10304000EB0085FD10C04091E4005091E50042176F +:10305000530729F39A01915011F784E0089582E013 +:10306000089583E0089581E0089580E008954091F7 +:10307000E80042FFDECF08950E94AA180E94B2180D +:10308000E0EEF0E0808181608083E8EDF0E0808117 +:103090008F77808319BCA7EDB0E08C918E7F8C93E5 +:1030A00080818F7E808310925D0408950F931F931B +:1030B000CF93DF930E94AA180E94B218C8EDD0E007 +:1030C00088818F77888388818068888388818F7DD5 +:1030D000888319BC10925E0410925A0410925C040A +:1030E00010925B0400EE10E0F80180818B7F8083FA +:1030F00088818160888342E060E080E00E94B617AA +:10310000E1EEF0E080818E7F8083E2EEF0E080816E +:1031100081608083808188608083F80180818E7FD8 +:103120008083888180618883DF91CF911F910F9187 +:103130000895E8EDF0E080818F7E8083E7EDF0E098 +:1031400080818160808384E082BF81E080935D0420 +:103150000C945618E8EDF0E080818E7F8083109209 +:10316000E20008951092DA001092E10008951F9293 +:103170000F920FB60F9211242F933F934F935F93AB +:103180006F937F938F939F93AF93BF93EF93FF932F +:103190008091E10082FF0BC08091E20082FF07C0B6 +:1031A0008091E1008B7F8093E1000E941E1B809143 +:1031B000DA0080FF1FC08091D80080FF1BC0809183 +:1031C000DA008E7F8093DA008091D90080FF0DC0F5 +:1031D00080E189BD82E189BD09B400FEFDCF81E0B7 +:1031E00080935E040E94221505C019BC10925E04F3 +:1031F0000E9430158091E10080FF19C08091E200AB +:1032000080FF15C08091E2008E7F8093E200809164 +:10321000E20080618093E2008091D8008062809318 +:10322000D80019BC85E080935E040E94341580911B +:10323000E10084FF30C08091E20084FF2CC080E177 +:1032400089BD82E189BD09B400FEFDCF8091D8001F +:103250008F7D8093D8008091E1008F7E8093E10084 +:103260008091E2008F7E8093E2008091E200816095 +:103270008093E20080915A04882311F084E007C013 +:103280008091E30087FD02C081E001C083E080936C +:103290005E040E9435158091E10083FF29C0809172 +:1032A000E20083FF25C08091E100877F8093E100E9 +:1032B00082E080935E0410925A048091E1008E7F38 +:1032C0008093E1008091E2008E7F8093E200809104 +:1032D000E20080618093E20042E060E080E00E94D2 +:1032E000B6178091F00088608093F0000E9433153B +:1032F000FF91EF91BF91AF919F918F917F916F91CE +:103300005F914F913F912F910F900FBE0F901F90A3 +:1033100018951F920F920FB60F9211242F933F937F +:103320004F935F936F937F938F939F93AF93BF93CD +:10333000CF93DF93EF93FF93C091E900CF7080911B +:10334000EC00D82FD17080FDD0E81092E900809178 +:10335000F000877F8093F00078940E94CD1910923E +:10336000E9008091F00088608093F000CD2BCF7051 +:10337000C093E900FF91EF91DF91CF91BF91AF91A1 +:103380009F918F917F916F915F914F913F912F917D +:103390000F900FBE0F901F9018951F93CF93DF9340 +:1033A000CDB7DEB7AA970FB6F894DEBF0FBECDBF7C +:1033B000EFE5F4E088E08E0F9091F10091938E1389 +:1033C000FBCF0E944B158091E80083FF1FC18091C5 +:1033D0005F0490916004492F50E04A30510508F095 +:1033E00015C1FA01EC59FF4F0C94E331803881F09C +:1033F000823809F00BC1809163048F708093E900DB +:103400008091EB0085FB882780F91092E90006C0C7 +:1034100080915B0490915C04911182609091E8002E +:10342000977F9093E8008093F1001092F100C8C05C +:10343000282F2D7F09F0EAC0882319F0823061F02F +:10344000E5C080916104813009F0E0C0933009F05B +:1034500080E080935C042BC080916104811127C0BF +:10346000809163048F7009F4D1C08093E9002091AA +:10347000EB0020FF1CC0933021F48091EB008062B0 +:1034800014C09091EB0090619093EB0021E030E04C +:10349000A90102C0440F551F8A95E2F74093EA0044 +:1034A0001092EA008091EB0088608093EB0010920C +:1034B000E9008091E800877F86C08111A7C0109144 +:1034C00061041F778091E3008078812B8093E30073 +:1034D0008091E800877F8093E8000E94EB1780913D +:1034E000E80080FFFCCF8091E30080688093E300D8 +:1034F000111102C082E001C083E080935E0486C0A7 +:103500008058823008F082C08091610490916204FA +:103510008C3D53E0950779F583E08A838AE28983BD +:103520004FB7F894DE01139620E03EE051E2E32F1E +:10353000F0E050935700E49120FF03C0E295EF7054 +:103540003F5FEF708E2F90E0EA3010F0C79601C019 +:10355000C0968D939D932F5F243149F74FBF809183 +:10356000E800877F8093E8006AE270E0CE01019670 +:103570000E94F21614C0AE014F5F5F4F609163046A +:103580000E943916BC01009709F440C09091E800F0 +:10359000977F9093E80089819A810E9455178091C6 +:1035A000E8008B778093E80031C0803879F580910E +:1035B000E800877F8093E80080915A048093F100AF +:1035C0008091E8008E778093E8000E94EB171EC080 +:1035D00081111CC0909161049230C0F48091E80088 +:1035E000877F8093E80090935A040E94EB178091A4 +:1035F0005A04811106C08091E30087FD02C081E07A +:1036000001C084E080935E040E9437158091E80039 +:1036100083FF0AC08091E800877F8093E800809153 +:10362000EB0080628093EB00AA960FB6F894DEBFA1 +:103630000FBECDBFDF91CF911F9108950895CF9315 +:1036400080915E048823A1F0C091E900CF70909131 +:10365000EC00892F817090FD80E8C82B1092E90062 +:103660008091E80083FD0E94CD19CF70C093E900DE +:10367000CF9108959093DF038093DE030895E09146 +:10368000DE03F091DF03309721F00190F081E02D0F +:10369000099480E00895E091DE03F091DF03309714 +:1036A00021F00280F381E02D09940895E091DE037A +:1036B000F091DF03309721F00480F581E02D09942B +:1036C00008952091DC033091DD038217930771F098 +:1036D0009093DD038093DC03E091DE03F091DF0340 +:1036E000309721F00680F781E02D0994089520910C +:1036F000DA033091DB038217930771F09093DB03B9 +:103700008093DA03E091DE03F091DF03309721F03C +:103710000084F185E02D0994089508950C948D1B83 +:103720000E9415280E94760B0E949B280C94562D0F +:103730004F925F927F928F929F92AF92BF92CF9261 +:10374000DF92EF92FF920F931F93CF93DF93CDB74A +:10375000DEB72A970FB6F894DEBF0FBECDBF0E942A +:10376000650C91EEC92E93E0D92E00E010E0AA245A +:10377000A394B12C702E802F0E94AE0D4C01F60147 +:10378000419051906F014826592641145104B1F4DB +:103790000F5F1F4F0430110569F78FEF89838A830C +:1037A0001B820E941E288160782F9D838C83498113 +:1037B0005A816B818D810E94511C3AC080913D04D9 +:1037C00081FD0E94B70D20E030E07501022E02C09D +:1037D000EE0CFF1C0A94E2F7C70184219521892B86 +:1037E00009F12E837F828E209F2091E0892809F4A1 +:1037F00090E098870E941E288160782F9A87898799 +:103800004E815F8168858A850E94511C000F111FBF +:10381000F801EF51FC4F80819181E826F926F18271 +:10382000E08206C02F5F3F4F2C30310571F6B0CFDC +:103830000E94872A1091E0030E943F1B1817D9F0BD +:103840000E943F1B8093E0032A960FB6F894DEBFD8 +:103850000FBECDBFDF91CF911F910F91FF90EF90E1 +:10386000DF90CF90BF90AF909F908F907F905F90B0 +:103870004F900C94AE0A2A960FB6F894DEBF0FBE96 +:10388000CDBFDF91CF911F910F91FF90EF90DF900F +:10389000CF90BF90AF909F908F907F905F904F9010 +:1038A0000895CF93DF93CDB7DEB72B970FB6F8947B +:1038B000DEBF0FBECDBF4F83588769877A878B875E +:1038C000DE01119686E0FD0111928A95E9F785E007 +:1038D000FE01379601900D928A95E1F749815A8150 +:1038E0006B817C818D819E810E94F6232B960FB681 +:1038F000F894DEBF0FBECDBFDF91CF910895CF9377 +:10390000882309F4C2C0C82F823859F40E943F1B93 +:1039100081FDBBC089E30E949F260E946C2789E33A +:103920000CC0833879F40E943F1B80FDAEC083E554 +:103930000E949F260E946C2783E50E94E126CF917A +:103940000C946C27843859F40E943F1B82FD9DC063 +:1039500087E40E949F260E946C2787E4EECF8CEFBD +:103960008C0F813A48F48C2F0E94BE2C81118DC09F +:103970008C2F0E949F26E3CF80E28C0F883048F482 +:10398000C77081E001C0880FCA95EAF70E94252719 +:10399000D6CF8BE58C0F833078F4C53A29F0C63A40 +:1039A00031F083E890E005C081E890E002C082E851 +:1039B00090E0CF910C94611B88E58C0F833108F067 +:1039C00064C0C83A39F1C93A41F1CA3A49F1CB3A2F +:1039D00051F1CC3A59F1CD3A61F1C03B69F1CE3A9F +:1039E00071F1CF3A79F1C13B81F1C23B89F1C33B1F +:1039F00091F1C43B99F1C53BA1F1C63BA9F1C73B8D +:103A0000B1F1C83BB9F1C93BC1F1CA3BC9F180E092 +:103A100090E038C082EE90E035C089EE90E032C090 +:103A20008AEE90E02FC085EB90E02CC086EB90E012 +:103A300029C087EB90E026C08CEC90E023C08DEC91 +:103A400090E020C083E891E01DC08AE891E01AC0B0 +:103A500082E991E017C084E991E014C081E292E02C +:103A600011C083E292E00EC084E292E00BC085E2D6 +:103A700092E008C086E292E005C087E292E002C0D0 +:103A80008AE292E0CF910C94771BCF91089588231E +:103A900009F44BC0823859F40E943F1B81FF45C096 +:103AA00089E30E949F260E946C2789E30CC083381B +:103AB00071F40E943F1B80FF38C083E50E949F265F +:103AC0000E946C2783E50E94E1260C946C278438C1 +:103AD00059F40E943F1B82FF28C087E40E949F2662 +:103AE0000E946C2787E4EFCF9CEF980F913A58F330 +:103AF00090E2980F983050F4877091E001C0990FD0 +:103B00008A95EAF7892F0E942B27DFCF9BE5980F34 +:103B1000933020F480E090E00C94611B885A83314C +:103B200020F480E090E00C94771B0895882321F026 +:103B30000E9425270C946C270895882321F00E9469 +:103B40002B270C946C270895BF92CF92DF92EF92AF +:103B5000FF920F931F93CF93DF9300D000D000D03C +:103B6000CDB7DEB725E0FC01DE01119601900D9284 +:103B70002A95E1F7FC01D0801181028125812295EF +:103B80002F7043815481452B09F472C31F3F21F4E8 +:103B9000FFEFDF1609F46CC37C012E830E947707C8 +:103BA000D9821A8369817A81802F0E949B26182FDF +:103BB000B92E0E9450260E9417252E81002319F04D +:103BC0000E9442272E81EB2DE295EF70F0E0E25942 +:103BD000FF4F0C94E3318B2D807F9B2D9F70F92E2E +:103BE000882319F0F29480EFF822002389F0FF2057 +:103BF00009F47CC280E2810F883020F48F2D0E946E +:103C0000252703C08F2D0E9435270E946C276EC286 +:103C1000812F0E94471DFF2009F42AC3105E8F2DBB +:103C2000183018F40E942B2702C00E943B272696CA +:103C30000FB6F894DEBF0FBECDBFDF91CF911F91BD +:103C40000F91FF90EF90DF90CF90BF900C946C2776 +:103C50008B2D807F9B2D9F70803211F4892F03C0A4 +:103C6000892F8295807F112319F0113011F12BC01B +:103C70000023A9F0222389F1213079F526960FB689 +:103C8000F894DEBF0FBECDBFDF91CF911F910F9192 +:103C9000FF90EF90DF90CF90BF900C945527222398 +:103CA00019F0213009F4E4C28E830E9458278E81D6 +:103CB0009BC1002321F0263008F0DAC20EC0253067 +:103CC00008F0D6C291C10023C9F0222331F0F701D8 +:103CD000958190FF0BC29F70958326960FB6F8943E +:103CE000DEBF0FBECDBFDF91CF911F910F91FF902F +:103CF000EF90DF90CF90BF900C94961D222309F493 +:103D000073C109C22B2D26952695237030E021150D +:103D1000310521F021303105D1F0AAC2002321F074 +:103D2000812F9B2D937002C080E090E026960FB605 +:103D3000F894DEBF0FBECDBFDF91CF911F910F91E1 +:103D4000FF90EF90DF90CF90BF900C94611B002309 +:103D500021F0812F9B2D937002C080E090E0269689 +:103D60000FB6F894DEBF0FBECDBFDF91CF911F918C +:103D70000F91FF90EF90DF90CF90BF900C94771B46 +:103D8000812F002319F00E948F2902C00E94F72979 +:103D900026960FB6F894DEBF0FBECDBFDF91CF9150 +:103DA0001F910F91FF90EF90DF90CF90BF900C94F8 +:103DB0007C2A8B2D837009F07BC0011159C2812FA1 +:103DC000829586958770880F880F912F9F70C92ED6 +:103DD000D12CE12CF12C082E04C0CC0CDD1CEE1CE7 +:103DE000FF1C0A94D2F714FF12C04FE050E060E0CD +:103DF00070E004C0440F551F661F771F8A95D2F7E5 +:103E0000CB01BA01609570958095909503C060E0F4 +:103E100070E0CB012B2D269526952370422F50E084 +:103E200042305105D9F04330510569F16C297D29A3 +:103E30008E299F294130510551F126960FB6F894ED +:103E4000DEBF0FBECDBFDF91CF911F910F91FF90CD +:103E5000EF90DF90CF90BF900C943E256C297D2988 +:103E60008E299F2926960FB6F894DEBF0FBECDBFD0 +:103E7000DF91CF911F910F91FF90EF90DF90CF9046 +:103E8000BF900C945A250E943E25C701B601269684 +:103E90000FB6F894DEBF0FBECDBFDF91CF911F915B +:103EA0000F91FF90EF90DF90CF90BF900C94222560 +:103EB000002319F08B2D817001C08695882309F4A9 +:103EC000D7C1812F829586958770880F880F912F93 +:103ED0009F70C92ED12CE12CF12C082E04C0CC0CE3 +:103EE000DD1CEE1CFF1C0A94D2F714FF12C04FE039 +:103EF00050E060E070E004C0440F551F661F771F5C +:103F00008A95D2F7CB01BA0160957095809590950E +:103F100003C060E070E0CB012B2D26952695237021 +:103F2000422F50E042305105D9F04330510569F13C +:103F30006C297D298E299F294130510551F1269602 +:103F40000FB6F894DEBF0FBECDBFDF91CF911F91AA +:103F50000F91FF90EF90DF90CF90BF900C941826B8 +:103F60006C297D298E299F2926960FB6F894DEBFED +:103F70000FBECDBFDF91CF911F910F91FF90EF90BA +:103F8000DF90CF90BF900C9434260E941826C70172 +:103F9000B60126960FB6F894DEBF0FBECDBFDF91F7 +:103FA000CF911F910F91FF90EF90DF90CF90BF9036 +:103FB0000C94FC25103F49F118F4103E48F491C0D0 +:103FC000123F09F453C0E8F1133F09F464C089C0FB +:103FD0001F708B2D8F71002321F00E949525812F5A +:103FE0007CCE0E94B625812F26960FB6F894DEBFB0 +:103FF0000FBECDBFDF91CF911F910F91FF90EF903A +:10400000DF90CF90BF900C949D1D0023B1F0253020 +:1040100008F02EC18B2D8F7126960FB6F894DEBF57 +:104020000FBECDBFDF91CF911F910F91FF90EF9009 +:10403000DF90CF90BF900C94DB25263008F018C19C +:10404000E9CF0023A9F08B2D8F7126960FB6F89437 +:10405000DEBF0FBECDBFDF91CF911F910F91FF90BB +:10406000EF90DF90CF90BF900C949525002359F3EB +:104070008B2D8F7126960FB6F894DEBF0FBECDBF85 +:10408000DF91CF911F910F91FF90EF90DF90CF9034 +:10409000BF900C94B625002399F08B2D8F71269636 :1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149 -:1040B0000F91FF90EF90DF90CF90BF900C9465250B -:1040C0000023A9F0222309F4ADCF812F26960FB645 -:1040D000F894DEBF0FBECDBFDF91CF911F910F913E -:1040E000FF90EF90DF90CF90BF900C946E1C222336 -:1040F00009F4ADCF812F26960FB6F894DEBF0FBE20 -:10410000CDBFDF91CF911F910F91FF90EF90DF9086 -:10411000CF90BF900C94361D4B2D4F70612FC7016F -:104120000E948D0526960FB6F894DEBF0FBECDBF58 -:10413000DF91CF911F910F91FF90EF90DF90CF9083 -:10414000BF900C948924011182C09B2D9F70492F30 -:1041500050E04230510509F443C0C4F44115510503 -:1041600071F14130510509F072C026960FB6F894EE -:10417000DEBF0FBECDBFDF91CF911F910F91FF909A -:10418000EF90DF90CF90BF900C946D2D4330510590 -:10419000C1F14430510509F05AC0812F26960FB65F -:1041A000F894DEBF0FBECDBFDF91CF911F910F916D -:1041B000FF90EF90DF90CF90BF900C94BF2D26968C +:1040B0000F91FF90EF90DF90CF90BF900C948025F0 +:1040C00026960FB6F894DEBF0FBECDBFDF91CF911D +:1040D0001F910F91FF90EF90DF90CF90BF900C94C5 +:1040E00076250023A9F0222309F4ADCF812F26964F +:1040F0000FB6F894DEBF0FBECDBFDF91CF911F91F9 +:104100000F91FF90EF90DF90CF90BF900C947F1CA9 +:10411000222309F4ADCF812F26960FB6F894DEBF87 +:104120000FBECDBFDF91CF911F910F91FF90EF9008 +:10413000DF90CF90BF900C94471D4B2D4F70612F97 +:10414000C7010E94690526960FB6F894DEBF0FBE20 +:10415000CDBFDF91CF911F910F91FF90EF90DF9036 +:10416000CF90BF900C949A24011182C09B2D9F7018 +:10417000492F50E04230510509F443C0C4F44115C1 +:10418000510571F14130510509F072C026960FB604 +:10419000F894DEBF0FBECDBFDF91CF911F910F917D +:1041A000FF90EF90DF90CF90BF900C947E2D433026 +:1041B0005105C1F14430510509F05AC0812F2696AE :1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128 -:1041D0000F91FF90EF90DF90CF90BF900C94562DF1 +:1041D0000F91FF90EF90DF90CF90BF900C94D02D77 :1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC :1041F0001F910F91FF90EF90DF90CF90BF900C94A4 -:10420000892D26960FB6F894DEBF0FBECDBFDF9185 +:10420000672D26960FB6F894DEBF0FBECDBFDF91A7 :10421000CF911F910F91FF90EF90DF90CF90BF90C3 -:104220000C949C2D4B2D4F70612FC70126960FB615 -:10423000F894DEBF0FBECDBFDF91CF911F910F91DC -:10424000FF90EF90DF90CF90BF900C949D07269643 +:104220000C949A2D26960FB6F894DEBF0FBECDBF24 +:10423000DF91CF911F910F91FF90EF90DF90CF9082 +:10424000BF900C94AD2D4B2D4F70612FC70126965A :104250000FB6F894DEBF0FBECDBFDF91CF911F9197 -:104260000F91FF90EF90DF90CF90BF9008950E9444 -:1042700031270E9441270E9406270E945B270E9447 -:104280001C2B0E946B2A80E090E00E94501B80E073 -:1042900090E00C94661B0E9421270C9437210E9409 -:1042A0007F26292F22952F7030E02C3031054CF4D9 -:1042B0002A3031056CF4225031092230310588F45E -:1042C00007C02C30310549F02F30310531F009C0DD -:1042D000803E48F0803F29F406C093FB882780F990 -:1042E000089580E0089581E00895CF93DF9300D092 -:1042F00000D01F92CDB7DEB70F900F900F900F90A8 -:104300000F90DF91CF910895CF93DF9300D000D02D -:1043100000D0CDB7DEB726960FB6F894DEBF0FBE3D -:10432000CDBFDF91CF9108951F93CF93DF93C091BD -:10433000990316E080919A03C81799F0D0E01C9F6A -:10434000F0011D9FF00D1124E556FC4F4081518175 -:1043500062817381848195810E9484212196C77036 -:10436000E9CFDF91CF911F9108954091CB035091F8 -:10437000CC036091CD037091CE038091CF039091D7 -:10438000D0030C9484218091D00382958F7009F022 -:1043900054C08091CD03882309F44FC080919903C4 -:1043A000A0919A036091CB037091CC034091CE030E -:1043B0005091CF03B6E08A1709F43FC090E0411551 -:1043C0005105C1F17F3F11F46F3FA1F1B89FF0019A -:1043D000B99FF00D1124E556FC4F218172132AC0BC -:1043E0002081621327C02281211124C023813481BE -:1043F0002417350710F421503109241B350B283CB4 -:104400003105C0F42091D0032F7020612093D00398 -:1044100026E0289FF001299FF00D1124E056FC4F63 -:1044200080818F70806180838BEC93E00E94931D6C -:104430000C94942101968770BECF0895CF92DF929D -:10444000EF92FF920F931F93CF93DF93CDB7DEB719 -:1044500062970FB6F894DEBF0FBECDBF8C0185E02A -:10446000F801DE011D9601900D928A95E1F7D801C1 -:104470004C9111965C91119712966C91129713962C -:10448000CD90DC9014973091CB037091CC03809148 -:10449000CE039091CF03009709F46BC17F3F19F4CD -:1044A0003F3F09F466C1E090CD03EE2009F4C0C09F -:1044B0002091D003C816D90628F0F601E81BF90BA5 -:1044C000CF0104C0809590958C0D9D1DFF24F39421 -:1044D000883C910578F0F12C207F09F0C6C07C2D36 -:1044E000D98AC88A89890E9475218BEC93E00E9441 -:1044F000931DB1C0822F807F09F046C0751314C090 -:10450000341312C0611110C02F7020612093D003AA -:104510000E94B5218BEC93E00E94931D8091D00303 -:10452000D80115968C932EC0CD2819F15F3F11F458 -:104530004F3FF9F0F62E61111CC080919903209134 -:104540009A0336E0821709F45AC090E0389FF001D0 -:10455000399FF00D1124E556FC4F7181571306C0A9 -:104560007081471303C07281711103C00196877077 -:10457000E9CFF62E662309F418C18091D00381603B -:104580008093D003F12C11C1751308C0341306C0F9 -:10459000611104C08091D003D801C3C04D875E87EC -:1045A0008D859E856A8B0E944F216A898823E1F15F -:1045B0006623D1F12091D003822F82958F7090E0F5 -:1045C000029774F08091CB039091CC0398878F83EE -:1045D0001986DB86CA862C87CE0107960E94931D1A -:1045E00086E0F801ABECB3E001900D928A95E1F71B -:1045F0000E94C3210E94B521FF24F394D6C04D87A9 -:104600005E878D859E850E947F26292F22952F709B -:1046100030E0223031050CF0BCC09F7009F0B6C00C -:10462000805E883008F4C1C0C8010E94931DE4CFA9 -:10463000C816D90608F453C0F601E81BF90BCF01E0 -:10464000883C910508F450C0F12C7C2DD98AC88A89 -:1046500089890E947521EBECF3E086E0DF011D9271 -:104660008A95E9F70E94B521A0C0751314C03413D0 -:1046700012C0611110C08091D003F8018583C80178 -:104680000E94931D86E0EBECF3E0DF011D928A951A -:10469000E9F7FE2C8AC04D875E878D859E856A8BE3 -:1046A0000E944F216A89882309F4BECF662309F44A -:1046B000BBCF2091D003822F82958F7090E002971C -:1046C0000CF48ECF8091CB039091CC039A83898395 -:1046D0001B82DD82CC822E83CE0101967FCF809516 -:1046E00090958C0D9D1DACCFF62E662309F49CCFC2 -:1046F00075132EC034132CC02091D00320FD1FC091 -:10470000822F82958F70D9F0D80115962C9315972A -:104710008F3049F08F5F982F9295907F822F8F7006 -:10472000892B15968C93C8010E94931D86E0F80191 -:10473000ABECB3E001900D928A95E1F793CF86E060 -:10474000F801ABECB3E001900D928A95E1F72DC032 -:104750004D875E878D859E850E944F21811140CFB8 -:104760008091D00381608093D003C8010E94931D83 -:104770001CC0662309F458CF4D875E878D859E85C2 -:104780000E944F21882309F44FCF2ACF811148CFAF -:104790000CC0243031050CF047CF9F7009F440CF96 -:1047A000F8019581907F09F03BCF8F2D62960FB66F -:1047B000F894DEBF0FBECDBFDF91CF911F910F9157 -:1047C000FF90EF90DF90CF9008951F93CF93DF93EA -:1047D000CDB7DEB72C970FB6F894DEBF0FBECDBFB6 -:1047E0004F83588769877A878B879C87CE01079686 -:1047F0000E941E22882369F08F8198852A853B8537 -:10480000232BF1F19F3F09F063C08F3F09F060C097 -:1048100037C086E0FE013796DE01119601900D92B9 -:104820008A95E1F76F817885EA85FB85309741F1BC -:104830007F3F11F46F3F21F120919A0330E0C901CD -:104840000196877099274091990350E08417950746 -:1048500009F447C069837A83FD83EC8396E0929FD5 -:10486000D001939FB00D1124A556BC4FFE01319687 -:1048700001900D929A95E1F780939A030E949421FA -:1048800016E08091990390919A038917C1F1189FBE -:10489000C001112485569C4F0E941E22882379F165 -:1048A000E09199031E9FF0011124E556FC4F4081D1 -:1048B000518162817381848195810E9484218091DC -:1048C000990390E001968770992780939903D9CF37 -:1048D0004F81588569857A858B859C850E948421C6 -:1048E000CFCF0E944B2110929A0310929903EBECC8 -:1048F000F3E086E0DF011D928A95E9F7C1CF2C969F -:104900000FB6F894DEBF0FBECDBFDF91CF911F91E0 -:104910000895EF92FF920F931F93CF93DF938C0133 -:10492000009709F46CC0F12CEE24E394E801219681 -:10493000F8018491843740F4843008F051C081300C -:1049400081F0823019F15BC0853709F444C0A8F1C9 -:104950009CE7980F903708F052C08F770E94361D61 -:1049600041C00E5F1F4FFE01C49180E28C0F883062 -:1049700048F4C7708E2D01C0880FCA95EAF70E94CF -:10498000342714C08C2F0E946E1C2DC00E5F1F4F49 -:10499000FE01C49180E28C0F883058F4C7708E2DD0 -:1049A00001C0880FCA95EAF70E943A270E945B2748 -:1049B0001AC08C2F0E94361D16C00E5F1F4FFE01BD -:1049C000C491CC2381F08FE99FE00197F1F700C0FB -:1049D0000000C150F6CF0E5F1F4FFE01F49003C0E0 -:1049E0000E946E1C8E018F2D882309F49FCFEFE962 -:1049F000FFE03197F1F700C000008150F5CFDF9163 -:104A0000CF911F910F91FF90EF90089508956093BB -:104A1000D5037093D6038093D7039093D8030C9457 -:104A200037210F931F930091D5031091D603209146 -:104A3000D7033091D803DC01CB01802B912BA22B23 -:104A4000B32B8093D5039093D603A093D703B09351 -:104A5000D8031F910F910C9437210F931F9300914E -:104A6000D5031091D6032091D7033091D803DC01F0 -:104A7000CB0180239123A223B3238093D50390936A -:104A8000D603A093D703B093D8031F910F910C9432 -:104A900037210F931F930091D5031091D6032091D6 -:104AA000D7033091D803DC01CB0180279127A227BF -:104AB000B3278093D5039093D603A093D703B093E5 -:104AC000D8031F910F910C9437211092D1031092AB -:104AD000D2031092D3031092D4030C94372141E0F7 -:104AE00050E060E070E004C0440F551F661F771F60 -:104AF0008A95D2F74093D1035093D2036093D303A6 -:104B00007093D4030C94372141E050E060E070E0F2 -:104B100004C0440F551F661F771F8A95D2F78091F6 -:104B2000D1039091D203A091D303B091D403482B29 -:104B3000592B6A2B7B2B4093D1035093D203609364 -:104B4000D3037093D4030C94372141E050E060E02C -:104B500070E004C0440F551F661F771F8A95D2F777 -:104B600040955095609570958091D1039091D203B6 -:104B7000A091D303B091D403482359236A237B2304 -:104B80004093D1035093D2036093D3037093D40323 -:104B90000C94372141E050E060E070E004C0440F25 -:104BA000551F661F771F8A95D2F78091D103909188 -:104BB000D203A091D303B091D403482759276A2781 -:104BC0007B274093D1035093D2036093D303709318 -:104BD000D4030C9437210F931F930091D1031091AC -:104BE000D2032091D3033091D403DC01CB01802B7D -:104BF000912BA22BB32B8093D1039093D203A0933C -:104C0000D303B093D4031F910F910C9437210F93CA -:104C10001F930091D1031091D2032091D3033091BF -:104C2000D403DC01CB0180239123A223B3238093FF -:104C3000D1039093D203A093D303B093D4031F91D5 -:104C40000F910C9437210F931F930091D103109172 -:104C5000D2032091D3033091D403DC01CB01802710 -:104C60009127A227B3278093D1039093D203A093D7 -:104C7000D303B093D4031F910F910C94372108955F -:104C8000CF92DF92EF92FF920F931F93CF93DF9318 -:104C90008C01C090D503D090D603E090D703F0905C -:104CA000D8038091D1039091D203A091D303B09106 -:104CB000D403C82AD92AEA2AFB2ACFE1D0E0D701B7 -:104CC000C6010C2E04C0B695A795979587950A94B2 -:104CD000D2F780FF06C0B8018C2F0E94F709019718 -:104CE00021F4219760F780E001C08C2FDF91CF91F4 -:104CF0001F910F91FF90EF90DF90CF900895CF9389 -:104D0000DF93EC010E944026BE010E94F709DF916B -:104D1000CF910895CB010E947F260895909186023D -:104D2000992321F090918702911109C02091880266 -:104D300030918902F90132969FEF40E01FC0982F11 -:104D40009695969596959F3050F5E0918802F09152 -:104D50008902E90FF11D877021E030E0A90102C04E -:104D6000440F551F8A95E2F7CA019181892B8183EF -:104D700008959F3F39F04F5F4E3041F051915813E5 -:104D8000F8CF0DC05111F7CF942FF5CF9F3F39F0D9 -:104D9000F901E90FF11D97FDFA95828308950895B1 -:104DA00090918602992321F090918702911109C078 -:104DB0002091880230918902F9013296205F3F4F9D -:104DC0001FC0982F9695969596959F30F0F4E09198 -:104DD0008802F0918902E90FF11D877021E030E02F -:104DE000A90102C0440F551F8A95E2F7CA018095B8 -:104DF00091818923818308953196E217F30729F081 -:104E000090819813F9CF1082F7CF089581E090E058 -:104E1000E0918802F0918902E80FF91F1082019653 -:104E200080319105A9F708959091EC03892B809327 -:104E3000EC03089580959091EC0389238093EC0313 -:104E400008951092EC0308959091EB03892B8093C1 -:104E5000EB03089580959091EB0389238093EB03F6 -:104E600008951092EB0308959091EA03892B8093A3 -:104E7000EA03089580959091EA0389238093EA03D9 -:104E800008951092EA0308958093D903089510922B -:104E9000D90308958091880290918902FC0131968E -:104EA0009C01205F3F4F80E0919191118F5FE2174D -:104EB000F307D1F70895E0918802F091890280917B -:104EC000EC038083E0918802F091890290818091C7 -:104ED000EB03892B8083E0918802F0918902908115 -:104EE0008091EA03892B80838091D903882361F024 -:104EF000E0918802F09189029081892B80830E9441 -:104F00004A2781111092D9038091880290918902D9 -:104F10000C943A1B80910E04843039F11092EE0308 -:104F200020E488E190E00FB6F894A89580936000A3 -:104F30000FBE2093600080E00E94540580E00E9434 -:104F4000D20A83B7817F846083BF83B7816083BFC8 -:104F50007894889583B78E7F83BF88E10FB6F894E5 -:104F600080936000109260000FBE08950895089528 -:104F7000CF9380E00E9454050E94B6270E94890CBE -:104F80000E94B727C0E08C2F0E94D20D892B29F4F4 -:104F9000CF5FC430C1F780E001C081E0CF910895B8 -:104FA0000E944B2180E00E9454050E94452D0E94E2 -:104FB0002E1B0C94D20A1F920F920FB60F9211243F -:104FC0008F939F93AF93BF938091EE03811113C092 -:104FD0008091EF039091F003A091F103B091F2035F -:104FE0004196A11DB11D8093EF039093F003A09310 -:104FF000F103B093F203BF91AF919F918F910F9006 -:105000000FBE0F901F90189582E084BD93E095BD70 -:105010009AEF97BD80936E0008952FB7F894809112 -:10502000EF039091F003A091F103B091F2032FBF31 -:105030000895CF92DF92EF92FF920F931F932FB7B5 -:10504000F8944091EF035091F0036091F103709157 -:10505000F2032FBF6A017B01EE24FF248C0120E0C4 -:1050600030E0C016D106E206F30610F441505109B3 -:105070009A01281B390BC9011F910F91FF90EF90E6 -:10508000DF90CF9008951F920F920FB60F921124C8 -:105090008F939F93AF93BF938091EF039091F00311 -:1050A000A091F103B091F2030196A11DB11D80936F -:1050B000EF039093F003A093F103B093F203BF9139 -:1050C000AF919F918F910F900FBE0F901F901895E9 -:1050D0000E942B18F8942FEF87EA91E62150804028 -:1050E0009040E1F700C0000087E090EBDC01809386 -:1050F000190490931A04A0931B04B0931C049CE021 -:1051000088E10FB6F894A895809360000FBE909345 -:105110006000FFCF0E94C928811102C00E94A5280B -:105120000E94D4288093ED030E94E1288093170405 -:1051300087FB882780F9809387020E94D828682FF0 -:1051400070E080E090E00C9407256DEE7EEF80E04B -:1051500090E00E94AA3160E082E090E00E949831E5 -:1051600060E083E090E00E94983160E084E090E0AD -:105170000E94983160E085E090E00E94983160E004 -:1051800086E090E00E9498316FEF87E090E00C9409 -:10519000983180E090E00E94923121E08D3E9E4F58 -:1051A00009F020E0822F089582E090E00C948A318B -:1051B00083E090E00C948A31682F83E090E00C94B7 -:1051C000983184E090E00C948A31682F84E090E07C -:1051D0000C94983186E090E00C948A31682F86E038 -:1051E00090E00C94983187E090E00C948A31682F1D -:1051F00087E090E00C9498318091F50380FF0BC01C -:1052000060918D0285E0689FB001112475956795C6 -:10521000759567952BC081FF09C060918D0285E06F -:10522000689FB00111247595679520C082FF07C063 -:1052300060918D0285E0689FB001112417C09091A4 -:10524000F6039923D1F060918C02961788F720918C -:105250008D0285E0289F90011124929FA001939FC9 -:10526000500D112470E0CA010E9470316038710540 -:1052700040F46115710539F002C065E070E0862FD9 -:1052800008958FE7089581E008958091F50380FFE8 -:1052900008C060918B0270E075956795759567956C -:1052A00021C081FF06C060918B0270E07595679503 -:1052B00019C082FF04C060918B0270E010C0909111 -:1052C000F6039923C1F060918A029617A0F78091A6 -:1052D0008B02899FC001112470E00E9470316038F8 -:1052E000710528F46115710521F0862F08958FE767 -:1052F000089581E0089561E070E0F4CF803F21F4EB -:105300000E94FC28819504C0813F29F40E94FC285A -:105310008093F9030895823F21F40E94FC2881952F -:1053200004C0833F29F40E94FC288093F803089569 -:10533000893F19F40E94452905C08A3F31F40E9433 -:10534000452981958093FA0308958B3F21F40E94AB -:105350004529819504C08C3F29F40E9445298093FA -:10536000FB030895843F21F48091F703816017C007 -:10537000853F21F48091F703826011C0863F21F4BC -:105380008091F70384600BC0873F21F48091F7037D -:10539000886005C0883F31F48091F7038061809375 -:1053A000F70308958D3F21F48091F50381600BC0D0 -:1053B0008E3F21F48091F503826005C08F3F29F470 -:1053C0008091F50384608093F5030895803F39F45C -:1053D0008091F90387FF6CC01092F90369C0813F87 -:1053E00029F48091F9031816BCF362C09091F80378 -:1053F000823F29F497FF5CC01092F80359C0833FA5 -:1054000019F41916CCF354C0893F41F48091FA0382 -:1054100018160CF04DC01092FA034AC08A3F29F4C6 -:105420008091FA0387FF44C0F6CF8B3F39F4809117 -:10543000FB0387FF3DC01092FB033AC08C3F29F469 -:105440008091FB031816BCF333C0843F21F4809194 -:10545000F7038E7F17C0853F21F48091F7038D7F7E -:1054600011C0863F21F48091F7038B7F0BC0873FEB -:1054700021F48091F703877F05C0883F31F4809144 -:10548000F7038F7E8093F70313C08D3F21F4809143 -:10549000F5038E7F0BC08E3F21F48091F5038D7F45 -:1054A00005C08F3F29F48091F5038B7F8093F5032E -:1054B0008091F80381110EC08091F90381110AC017 -:1054C0008091FA03811106C08091FB03811102C013 -:1054D0001092F603089587EF93E00E94451B0E9407 -:1054E0000D289093F4038093F30308951F93CF93B3 -:1054F000DF938091F3039091F4030E941928AC018B -:105500009091F603992321F020918E0230E006C09D -:1055100020918F028AE0289F90011124421753079F -:1055200008F486C08091F803C091F903D091FA0382 -:105530001091FB03811107C0C11176C0D11174C055 -:10554000111172C075C09F3F19F09F5F9093F603D1 -:10555000181624F40E94FC288093F8038091F80325 -:1055600087FF05C00E94FC2881958093F8031C16D4 -:1055700024F40E94FC288093F9038091F90387FFAB -:1055800005C00E94FC2881958093F9036091F8037F -:10559000662339F1C091F903CC2319F1772767FD10 -:1055A0007095872F972F0E94E02E23E333E343E388 -:1055B0005FE30E94942F0E94AD2E6093F8036C2F3E -:1055C000772767FD7095872F972F0E94E02E23E3A2 -:1055D00033E343E35FE30E94942F0E94AD2E609378 -:1055E000F9031D1624F40E9445298093FA03809143 -:1055F000FA0387FF05C00E94452981958093FA032D -:10560000111624F40E9445298093FB038091FB032B -:1056100087FF05C00E94452981958093FB03DF9198 -:10562000CF911F910C946B2A9F3F09F08ECF96CF9C -:10563000DF91CF911F910895E7EFF3E085E0DF015F -:105640001D928A95E9F71092F6031092F5030895DA -:10565000833081F128F4813059F08230D1F00895FF -:10566000853009F449C0B8F1863009F456C0089570 -:1056700080918F02262F30E0280F311D2F3F3105FA -:1056800024F4680F60938F0208958FEF80938F0248 -:10569000089580918E02262F30E0280F311D2F3F74 -:1056A000310524F4680F60938E0208958FEF809384 -:1056B0008E02089580918D02262F30E0280F311D33 -:1056C0002F3F310524F4680F60938D0208958FEF0A -:1056D00080938D02089580918C02262F30E0280F50 -:1056E000311D2F3F310524F4680F60938C0208951B -:1056F0008FEF80938C02089580918B02262F30E0EB -:10570000280F311D2F3F310524F4680F60938B0261 -:1057100008958FEF80938B02089580918A02262F3F +:104260000F91FF90EF90DF90CF90BF900C94790763 +:1042700026960FB6F894DEBF0FBECDBFDF91CF916B +:104280001F910F91FF90EF90DF90CF90BF90089516 +:104290000E9442270E9452270E9417270E946C27E3 +:1042A0000E942D2B0E947C2A80E090E00E94611BDE +:1042B00080E090E00C94771B0E9432270C944821F8 +:1042C0000E949026292F22952F7030E02C30310546 +:1042D0004CF42A3031056CF422503109223031057A +:1042E00088F407C02C30310549F02F30310531F00A +:1042F00009C0803E48F0803F29F406C093FB882720 +:1043000080F9089580E0089581E00895CF93DF93C8 +:1043100000D000D01F92CDB7DEB70F900F900F9056 +:104320000F900F90DF91CF910895CF93DF9300D03E +:1043300000D000D0CDB7DEB726960FB6F894DEBF1A +:104340000FBECDBFDF91CF9108951F93CF93DF9321 +:10435000C091E90316E08091EA03C81799F0D0E014 +:104360001C9FF0011D9FF00D1124E551FC4F408171 +:10437000518162817381848195810E94952121966A +:10438000C770E9CFDF91CF911F91089540911B0431 +:1043900050911C0460911D0470911E0480911F04B3 +:1043A000909120040C9495218091200482958F7027 +:1043B00009F054C080911D04882309F44FC08091F6 +:1043C000E903A091EA0360911B0470911C044091E1 +:1043D0001E0450911F04B6E08A1709F43FC090E014 +:1043E00041155105C1F17F3F11F46F3FA1F1B89F15 +:1043F000F001B99FF00D1124E551FC4F218172139A +:104400002AC02081621327C02281211124C0238168 +:1044100034812417350710F421503109241B350B42 +:10442000283C3105C0F4209120042F702061209396 +:10443000200426E0289FF001299FF00D1124E0516F +:10444000FC4F80818F70806180838BE194E00E94BB +:10445000A41D0C94A52101968770BECF0895CF921C +:10446000DF92EF92FF920F931F93CF93DF93CDB71D +:10447000DEB762970FB6F894DEBF0FBECDBF8C01DA +:1044800085E0F801DE011D9601900D928A95E1F715 +:10449000D8014C9111965C91119712966C911297DC +:1044A0001396CD90DC90149730911B0470911C04EE +:1044B00080911E0490911F04009709F46BC17F3F07 +:1044C00019F43F3F09F466C1E0901D04EE2009F4A1 +:1044D000C0C020912004C816D90628F0F601E81BB8 +:1044E000F90BCF0104C0809590958C0D9D1DFF2484 +:1044F000F394883C910578F0F12C207F09F0C6C038 +:104500007C2DD98AC88A89890E9486218BE194E012 +:104510000E94A41DB1C0822F807F09F046C0751390 +:1045200014C0341312C0611110C02F702061209389 +:1045300020040E94C6218BE194E00E94A41D80917A +:104540002004D80115968C932EC0CD2819F15F3F19 +:1045500011F44F3FF9F0F62E61111CC08091E90370 +:104560002091EA0336E0821709F45AC090E0389FA0 +:10457000F001399FF00D1124E551FC4F7181571363 +:1045800006C07081471303C07281711103C0019688 +:104590008770E9CFF62E662309F418C180912004B4 +:1045A000816080932004F12C11C1751308C034136D +:1045B00006C0611104C080912004D801C3C04D879A +:1045C0005E878D859E856A8B0E9460216A8988231B +:1045D000E1F16623D1F120912004822F82958F7022 +:1045E00090E0029774F080911B0490911C049887CE +:1045F0008F831986DB86CA862C87CE0107960E9498 +:10460000A41D86E0F801ABE1B4E001900D928A951B +:10461000E1F70E94D4210E94C621FF24F394D6C062 +:104620004D875E878D859E850E949026292F229535 +:104630002F7030E0223031050CF0BCC09F7009F0C3 +:10464000B6C0805E883008F4C1C0C8010E94A41DB5 +:10465000E4CFC816D90608F453C0F601E81BF90BDD +:10466000CF01883C910508F450C0F12C7C2DD98AEB +:10467000C88A89890E948621EBE1F4E086E0DF01A7 +:104680001D928A95E9F70E94C621A0C0751314C037 +:10469000341312C0611110C080912004F801858389 +:1046A000C8010E94A41D86E0EBE1F4E0DF011D9249 +:1046B0008A95E9F7FE2C8AC04D875E878D859E8599 +:1046C0006A8B0E9460216A89882309F4BECF662321 +:1046D00009F4BBCF20912004822F82958F7090E047 +:1046E00002970CF48ECF80911B0490911C049A8346 +:1046F00089831B82DD82CC822E83CE0101967FCFFF +:10470000809590958C0D9D1DACCFF62E662309F4F7 +:104710009CCF75132EC034132CC02091200420FD93 +:104720001FC0822F82958F70D9F0D80115962C93D7 +:1047300015978F3049F08F5F982F9295907F822F39 +:104740008F70892B15968C93C8010E94A41D86E05A +:10475000F801ABE1B4E001900D928A95E1F793CFB7 +:1047600086E0F801ABE1B4E001900D928A95E1F7A3 +:104770002DC04D875E878D859E850E9460218111A9 +:1047800040CF80912004816080932004C8010E9462 +:10479000A41D1CC0662309F458CF4D875E878D8504 +:1047A0009E850E946021882309F44FCF2ACF811172 +:1047B00048CF0CC0243031050CF047CF9F7009F46E +:1047C00040CFF8019581907F09F03BCF8F2D629605 +:1047D0000FB6F894DEBF0FBECDBFDF91CF911F9112 +:1047E0000F91FF90EF90DF90CF9008951F93CF939C +:1047F000DF93CDB7DEB72C970FB6F894DEBF0FBEB0 +:10480000CDBF4F83588769877A878B879C87CE0176 +:1048100007960E942F22882369F08F8198852A8528 +:104820003B85232BF1F19F3F09F063C08F3F09F0D7 +:1048300060C037C086E0FE013796DE011196019018 +:104840000D928A95E1F76F817885EA85FB8530972F +:1048500041F17F3F11F46F3F21F12091EA0330E0F5 +:10486000C9010196877099274091E90350E08417A8 +:10487000950709F447C069837A83FD83EC8396E04A +:10488000929FD001939FB00D1124A551BC4FFE0102 +:10489000319601900D929A95E1F78093EA030E9478 +:1048A000A52116E08091E9039091EA038917C1F1EF +:1048B000189FC001112485519C4F0E942F228823EC +:1048C00079F1E091E9031E9FF0011124E551FC4FBD +:1048D0004081518162817381848195810E949521FB +:1048E0008091E90390E00196877099278093E9030E +:1048F000D9CF4F81588569857A858B859C850E94A3 +:104900009521CFCF0E945C211092EA031092E90317 +:10491000EBE1F4E086E0DF011D928A95E9F7C1CF73 +:104920002C960FB6F894DEBF0FBECDBFDF91CF91AE +:104930001F910895EF92FF920F931F93CF93DF93F0 +:104940008C01009709F46CC0F12CEE24E394E8018B +:104950002196F8018491843740F4843008F051C0E6 +:10496000813081F0823019F15BC0853709F444C091 +:10497000A8F19CE7980F903708F052C08F770E94FB +:10498000471D41C00E5F1F4FFE01C49180E28C0F96 +:10499000883048F4C7708E2D01C0880FCA95EAF799 +:1049A0000E94452714C08C2F0E947F1C2DC00E5FD3 +:1049B0001F4FFE01C49180E28C0F883058F4C770FD +:1049C0008E2D01C0880FCA95EAF70E944B270E94DE +:1049D0006C271AC08C2F0E94471D16C00E5F1F4FF8 +:1049E000FE01C491CC2381F08FE99FE00197F1F79C +:1049F00000C00000C150F6CF0E5F1F4FFE01F490C3 +:104A000003C00E947F1C8E018F2D882309F49FCF45 +:104A1000EFE9FFE03197F1F700C000008150F5CFDA +:104A2000DF91CF911F910F91FF90EF90089508951E +:104A300060932504709326048093270490932804A0 +:104A40000C9448210F931F93009125041091260484 +:104A50002091270430912804DC01CB01802B912B7D +:104A6000A22BB32B8093250490932604A0932704B4 +:104A7000B09328041F910F910C9448210F931F931A +:104A800000912504109126042091270430912804D8 +:104A9000DC01CB0180239123A223B323809325043F +:104AA00090932604A0932704B09328041F910F919C +:104AB0000C9448210F931F93009125041091260414 +:104AC0002091270430912804DC01CB018027912715 +:104AD000A227B3278093250490932604A09327044C +:104AE000B09328041F910F910C9448211092210437 +:104AF0001092220410922304109224040C94482152 +:104B000041E050E060E070E004C0440F551F661FB4 +:104B1000771F8A95D2F74093210450932204609323 +:104B20002304709324040C94482141E050E060E099 +:104B300070E004C0440F551F661F771F8A95D2F797 +:104B40008091210490912204A0912304B091240427 +:104B5000482B592B6A2B7B2B409321045093220422 +:104B600060932304709324040C94482141E050E0A6 +:104B700060E070E004C0440F551F661F771F8A95E0 +:104B8000D2F7409550956095709580912104909151 +:104B90002204A0912304B0912404482359236A23BA +:104BA0007B23409321045093220460932304709349 +:104BB00024040C94482141E050E060E070E004C01F +:104BC000440F551F661F771F8A95D2F780912104E5 +:104BD00090912204A0912304B091240448275927DE +:104BE0006A277B2740932104509322046093230477 +:104BF000709324040C9448210F931F930091210477 +:104C0000109122042091230430912404DC01CB0173 +:104C1000802B912BA22BB32B809321049093220401 +:104C2000A0932304B09324041F910F910C94482166 +:104C30000F931F93009121041091220420912304CB +:104C400030912404DC01CB0180239123A223B323E0 +:104C50008093210490932204A0932304B09324040E +:104C60001F910F910C9448210F931F9300912104E1 +:104C7000109122042091230430912404DC01CB0103 +:104C800080279127A227B3278093210490932204A1 +:104C9000A0932304B09324041F910F910C944821F6 +:104CA0000895CF92DF92EF92FF920F931F93CF93CD +:104CB000DF938C01C0902504D0902604E090270457 +:104CC000F09028048091210490912204A091230463 +:104CD000B0912404C82AD92AEA2AFB2ACFE1D0E0DD +:104CE000D701C6010C2E04C0B695A7959795879558 +:104CF0000A94D2F780FF06C0B8018C2F0E94D30916 +:104D0000019721F4219760F780E001C08C2FDF919B +:104D1000CF911F910F91FF90EF90DF90CF9008956A +:104D2000CF93DF93EC010E945126BE010E94D3096C +:104D3000DF91CF910895CB010E9490260895909124 +:104D40008402992321F090918502911109C020914C +:104D5000860230918702F90132969FEF40E01FC032 +:104D6000982F9695969596959F3050F5E0918602EE +:104D7000F0918702E90FF11D877021E030E0A90171 +:104D800002C0440F551F8A95E2F7CA019181892B11 +:104D9000818308959F3F39F04F5F4E3041F051912C +:104DA0005813F8CF0DC05111F7CF942FF5CF9F3F77 +:104DB00039F0F901E90FF11D97FDFA958283089505 +:104DC000089590918402992321F090918502911188 +:104DD00009C02091860230918702F9013296205F46 +:104DE0003F4F1FC0982F9695969596959F30F0F45B +:104DF000E0918602F0918702E90FF11D877021E0B2 +:104E000030E0A90102C0440F551F8A95E2F7CA019C +:104E1000809591818923818308953196E217F30764 +:104E200029F090819813F9CF1082F7CF089581E08F +:104E300090E0E0918602F0918702E80FF91F10825E +:104E4000019680319105A9F7089590913C04892B32 +:104E500080933C040895809590913C04892380932D +:104E60003C04089510923C04089590913B04892BD2 +:104E700080933B040895809590913B04892380930F +:104E80003B04089510923B04089590913A04892BB5 +:104E900080933A040895809590913A0489238093F1 +:104EA0003A04089510923A040895809329040895CD +:104EB0001092290408958091860290918702FC0146 +:104EC00031969C01205F3F4F80E0919191118F5F5F +:104ED000E217F307D1F70895E0918602F091870277 +:104EE00080913C048083E0918602F091870290815A +:104EF00080913B04892B8083E0918602F0918702A8 +:104F0000908180913A04892B8083809129048823A1 +:104F100061F0E0918602F09187029081892B808375 +:104F20000E945B2781111092290480918602909142 +:104F300087020C944B1B80915E04843039F11092EF +:104F40003E0420E488E190E00FB6F894A8958093A1 +:104F500060000FBE2093600080E00E94300580E07A +:104F60000E94AE0A83B7817F846083BF83B781606C +:104F700083BF7894889583B78E7F83BF88E10FB60F +:104F8000F89480936000109260000FBE0895089519 +:104F90000895CF9380E00E9430050E94C7270E94A9 +:104FA000650C0E94C827C0E08C2F0E94AE0D892B93 +:104FB00029F4CF5FC430C1F780E001C081E0CF9118 +:104FC00008950E945C2180E00E9430050E94562DC9 +:104FD0000E943F1B0C94AE0A1F920F920FB60F92C5 +:104FE00011248F939F93AF93BF9380913E048111BF +:104FF00013C080913F0490914004A0914104B0916E +:1050000042044196A11DB11D80933F04909340043A +:10501000A0934104B0934204BF91AF919F918F91AF +:105020000F900FBE0F901F90189582E084BD93E003 +:1050300095BD9AEF97BD80936E0008952FB7F894B1 +:1050400080913F0490914004A0914104B0914204AA +:105050002FBF0895CF92DF92EF92FF920F931F938D +:105060002FB7F89440913F0450914004609141045F +:10507000709142042FBF6A017B01EE24FF248C0152 +:1050800020E030E0C016D106E206F30610F44150ED +:1050900051099A01281B390BC9011F910F91FF90EB +:1050A000EF90DF90CF9008951F920F920FB60F925E +:1050B00011248F939F93AF93BF9380913F0490915E +:1050C0004004A0914104B09142040196A11DB11D7C +:1050D00080933F0490934004A0934104B093420412 +:1050E000BF91AF919F918F910F900FBE0F901F9026 +:1050F00018950E943C18F8942FEF87EA91E621500A +:1051000080409040E1F700C0000087E090EBDC01B8 +:105110008093690490936A04A0936B04B0936C0429 +:105120009CE088E10FB6F894A895809360000FBECC +:1051300090936000FFCF0E94DA28811102C00E9484 +:10514000B6280E94E52880933D040E94F2288093AF +:10515000670487FB882780F9809385020E94E928ED +:10516000682F70E080E090E00C9418256DEE7EEFE3 +:1051700080E090E00E94093260E082E090E00E94CE +:10518000F73160E083E090E00E94F73160E084E076 +:1051900090E00E94F73160E085E090E00E94F731F6 +:1051A00060E086E090E00E94F7316FEF87E090E0EA +:1051B0000C94F73180E090E00E94F13121E08D3EC7 +:1051C0009E4F09F020E0822F089582E090E00C9439 +:1051D000E93183E090E00C94E931682F83E090E0BE +:1051E0000C94F73184E090E00C94E931682F84E06E +:1051F00090E00C94F73186E090E00C94E931682F50 +:1052000086E090E00C94F73187E090E00C94E9316F +:10521000682F87E090E00C94F7318091450480FF7F +:105220000BC060918B0285E0689FB00111247595D9 +:105230006795759567952BC081FF09C060918B02BA +:1052400085E0689FB00111247595679520C082FFA5 +:1052500007C060918B0285E0689FB001112417C0E0 +:10526000909146049923D1F060918A02961788F7AD +:1052700020918B0285E0289F90011124929FA0012C +:10528000939F500D112470E0CA010E94CF31603805 +:10529000710540F46115710539F002C065E070E0F8 +:1052A000862F08958FE7089581E008958091450441 +:1052B00080FF08C06091890270E0759567957595CB +:1052C000679521C081FF06C06091890270E07595E5 +:1052D000679519C082FF04C06091890270E010C018 +:1052E000909146049923C1F0609188029617A0F727 +:1052F00080918902899FC001112470E00E94CF3102 +:105300006038710528F46115710521F0862F089524 +:105310008FE7089581E0089561E070E0F4CF803F69 +:1053200021F40E940D29819504C0813F29F40E9437 +:105330000D29809349040895823F21F40E940D298C +:10534000819504C0833F29F40E940D29809348046D +:105350000895893F19F40E94562905C08A3F31F407 +:105360000E945629819580934A0408958B3F21F429 +:105370000E945629819504C08C3F29F40E94562929 +:1053800080934B040895843F21F480914704816009 +:1053900017C0853F21F480914704826011C0863F89 +:1053A00021F48091470484600BC0873F21F48091F1 +:1053B0004704886005C0883F31F4809147048061CC +:1053C0008093470408958D3F21F4809145048160C6 +:1053D0000BC08E3F21F480914504826005C08F3F51 +:1053E00029F4809145048460809345040895803FAA +:1053F00039F48091490487FF6CC01092490469C058 +:10540000813F29F4809149041816BCF362C0909141 +:105410004804823F29F497FF5CC01092480459C0A9 +:10542000833F19F41916CCF354C0893F41F480919D +:105430004A0418160CF04DC010924A044AC08A3F24 +:1054400029F480914A0487FF44C0F6CF8B3F39F49A +:1054500080914B0487FF3DC010924B043AC08C3FB3 +:1054600029F480914B041816BCF333C0843F21F417 +:10547000809147048E7F17C0853F21F480914704B7 +:105480008D7F11C0863F21F4809147048B7F0BC034 +:10549000873F21F480914704877F05C0883F31F41E +:1054A000809147048F7E8093470413C08D3F21F481 +:1054B000809145048E7F0BC08E3F21F4809145047E +:1054C0008D7F05C08F3F29F4809145048B7F8093A9 +:1054D00045048091480481110EC0809149048111D6 +:1054E0000AC080914A04811106C080914B04811149 +:1054F00002C010924604089587E494E00E94561B6F +:105500000E941E28909344048093430408951F939F +:10551000CF93DF9380914304909144040E942A2802 +:10552000AC0190914604992321F020918C0230E047 +:1055300006C020918D028AE0289F90011124421715 +:10554000530708F486C080914804C0914904D09163 +:105550004A0410914B04811107C0C11176C0D111CA +:1055600074C0111172C075C09F3F19F09F5F909376 +:105570004604181624F40E940D2980934804809153 +:10558000480487FF05C00E940D2981958093480437 +:105590001C1624F40E940D2980934904809149042B +:1055A00087FF05C00E940D29819580934904609171 +:1055B0004804662339F1C0914904CC2319F17727B7 +:1055C00067FD7095872F972F0E94F12E23E333E319 +:1055D00043E35FE30E9401300E94BE2E60934804C3 +:1055E0006C2F772767FD7095872F972F0E94F12EDC +:1055F00023E333E343E35FE30E9401300E94BE2EC6 +:10560000609349041D1624F40E94562980934A048D +:1056100080914A0487FF05C00E9456298195809396 +:105620004A04111624F40E94562980934B04809159 +:105630004B0487FF05C00E945629819580934B0437 +:10564000DF91CF911F910C947C2A9F3F09F08ECF60 +:1056500096CFDF91CF911F910895E7E4F4E085E0C4 +:10566000DF011D928A95E9F71092460410924504D5 +:105670000895833081F128F4813059F08230D1F0DF +:105680000895853009F449C0B8F1863009F456C050 +:10569000089580918D02262F30E0280F311D2F3F75 +:1056A000310524F4680F60938D0208958FEF809385 +:1056B0008D02089580918C02262F30E0280F311D35 +:1056C0002F3F310524F4680F60938C0208958FEF0B +:1056D00080938C02089580918B02262F30E0280F52 +:1056E000311D2F3F310524F4680F60938B0208951C +:1056F0008FEF80938B02089580918A02262F30E0ED +:10570000280F311D2F3F310524F4680F60938A0262 +:1057100008958FEF80938A02089580918902262F41 :1057200030E0280F311D2F3F310524F4680F6093BE -:105730008A0208958FEF80938A020895833011F1D1 -:1057400028F4813049F0823091F00895853081F15C -:1057500020F18630C1F1089580918F02681720F4FE -:10576000861B80938F02089510928F020895809176 -:105770008E02681720F4861B80938E020895109283 -:105780008E02089580918D02681720F4861B809305 -:105790008D02089510928D02089580918C026817F1 -:1057A00020F4861B80938C02089510928C02089539 -:1057B00080918B02681720F4861B80938B020895DA -:1057C00010928B02089580918A02681720F4861B3C -:1057D00080938A02089510928A0208950F931F936E -:1057E000873208F048C08E3108F094C0803109F447 -:1057F0007EC008F5873009F468C068F4863009F087 -:10580000A4C08091ED03817F8E7F8093ED0381E0C2 -:105810008093FD039BC08B3009F490C08E3009F05B -:1058200094C08091ED0382FB222720F991E092271A -:1058300090FB82F965C0863109F480C060F4813143 -:1058400009F083C00E944B219091870281E0892753 -:105850008093870273C0893109F470C08B3109F0DD -:1058600074C08091ED0381FB222720F991E09227FB -:1058700090FB81F945C0883309F460C050F4893247 -:1058800009F45EC0853309F45BC0873209F458C05F -:105890005CC0833409F454C028F48A3308F455C03A -:1058A000895339C0883409F050C00E944B210E94AE -:1058B00090060FEF13ED20E3015010402040E1F778 -:1058C00000C000000E94682839C09091ED03892F24 -:1058D0008095817080FB90F929F096609860909394 -:1058E000ED0334C0997F977F9093ED0327C080919B -:1058F000ED0383FB222720F991E0922790FB83F9A7 -:105900008093ED039923D1F08091ED038160809322 -:10591000ED0314C08D5141E050E060E070E08A0179 -:105920009B0104C0000F111F221F331F8A95D2F75D -:10593000C901B8010E9407250E944B2181E006C0E1 -:1059400061E070E080E090E0F5CF80E01F910F9182 -:10595000089580E0089580E00895CF93C82F809146 -:10596000FD03813069F018F08230C9F184C0E09104 -:105970008802F09189028081823209F07EC007C0DE -:10598000E0918802F09189028081823261F48C2F4B -:105990000E94A92C811104C08C2F0E94EE2B1DC0E7 -:1059A00081E090E01AC08C2F0E94AB2C811114C0B2 -:1059B000C43179F048F4CB3079F0C03109F061C0DE -:1059C00082E08093FD0308C0C93219F0C83321F08A -:1059D00058C01092FD0355C081E0817054C0C93297 -:1059E00091F120F5C43179F1B0F4C73009F047C026 -:1059F0008EE180938F0282E380938E028AE080930F -:105A00008D0284E180938C0288E080938B0288E28F -:105A100080938A0234C0CE51C63088F5EC2FF0E076 -:105A2000E65FFC4F80818093FC0329C0CE34E9F00F -:105A300020F4CB3421F56AE013C0C13579F0C235CA -:105A4000F1F461E00DC08091FC03882319F01092FD -:105A5000FC0315C081E08093FD0315C061E006C022 -:105A60008091FC030E94282B0AC06AE08091FC030D -:105A70000E949E2B04C01092FD0380E004C081E0D0 -:105A800002C080E0AACFCF9108950E94C928811159 -:105A900002C00E94A5280E94EA288093180480FF73 -:105AA00002C0869501C080E00C94540580911804D2 -:105AB000982F9695292F30E0233031054CF49F5FC5 -:105AC000990F8170892B8160809318040E94EE28C1 -:105AD0008091180486950C94540580911804982F91 -:105AE000969591F09158990F8170892B80931804A5 -:105AF0008E7F91E009F490E08091180490FB80F98A -:105B0000809318040E94EE288091180486950C94C6 -:105B1000540580911804982F909590FB80F98093FC -:105B200018040E94EE288091180480FF02C0869518 -:105B300001C080E00C94540590911804892F86953B -:105B40008F5F8F779170843028F4880F892B809332 -:105B5000180402C090931804809118048E7F91E07D -:105B600009F490E08091180490FB80F98093180468 -:105B70000E94EE288091180486950C94540520917B -:105B80001804922F96958927982F990F822F81704C -:105B9000892B809318048E7F91E009F490E0809126 -:105BA000180490FB80F9809318040E94EE288091DD -:105BB000180486950C9454055058BB27AA270ED07C -:105BC00075C166D130F06BD120F031F49F3F11F4F4 -:105BD0001EF45BC10EF4E095E7FB51C1E92F77D1CC -:105BE00080F3BA17620773078407950718F071F4FA -:105BF0009EF58FC10EF4E0950B2EBA2FA02D0B0150 -:105C0000B90190010C01CA01A0011124FF27591B01 -:105C100099F0593F50F4503E68F11A16F040A22F07 -:105C2000232F342F4427585FF3CF46953795279578 -:105C3000A795F0405395C9F77EF41F16BA0B620B77 -:105C4000730B840BBAF09150A1F0FF0FBB1F661FBE -:105C5000771F881FC2F70EC0BA0F621F731F841F01 -:105C600048F4879577956795B795F7959E3F08F027 -:105C7000B3CF9395880F08F09927EE0F97958795E6 -:105C80000895D9D008F481E008950CD00FC107D150 -:105C900040F0FED030F021F45F3F19F0F0C0511118 -:105CA00039C1F3C014D198F39923C9F35523B1F343 -:105CB000951B550BBB27AA2762177307840738F07B -:105CC0009F5F5F4F220F331F441FAA1FA9F333D0DA -:105CD0000E2E3AF0E0E830D091505040E695001C8E -:105CE000CAF729D0FE2F27D0660F771F881FBB1F4A -:105CF000261737074807AB07B0E809F0BB0B802D24 -:105D0000BF01FF2793585F4F2AF09E3F510568F06F -:105D1000B6C000C15F3FECF3983EDCF38695779503 -:105D20006795B795F7959F5FC9F7880F911D969571 -:105D3000879597F90895E1E0660F771F881FBB1FCD -:105D4000621773078407BA0720F0621B730B840B7A -:105D5000BA0BEE1F88F7E095089504D06894B1114E -:105D6000D9C00895BCD088F09F5790F0B92F9927DB -:105D7000B751A0F0D1F0660F771F881F991F1AF056 -:105D8000BA95C9F712C0B13081F0C3D0B1E008951F -:105D9000C0C0672F782F8827B85F39F0B93FCCF3A0 -:105DA000869577956795B395D9F73EF4909580954C -:105DB000709561957F4F8F4F9F4F0895E89409C06C -:105DC00097FB3EF490958095709561957F4F8F4F2E -:105DD0009F4F9923A9F0F92F96E9BB279395F69544 -:105DE000879577956795B795F111F8CFFAF4BB0FC2 -:105DF00011F460FF1BC06F5F7F4F8F4F9F4F16C026 -:105E0000882311F096E911C0772321F09EE8872FAF -:105E1000762F05C0662371F096E8862F70E060E06B -:105E20002AF09A95660F771F881FDAF7880F9695E4 -:105E3000879597F90895990F0008550FAA0BE0E888 -:105E4000FEEF16161706E807F907C0F0121613063C -:105E5000E407F50798F0621B730B840B950B39F47C -:105E60000A2661F0232B242B252B21F408950A26E2 -:105E700009F4A140A6958FEF811D811D089597F922 -:105E80009F6780E870E060E008959FEF80EC0895E0 -:105E900000240A9416161706180609060895002409 -:105EA0000A9412161306140605060895092E039483 -:105EB000000C11F4882352F0BB0F40F4BF2B11F4F7 -:105EC00060FF04C06F5F7F4F8F4F9F4F089557FD56 -:105ED0009058440F551F59F05F3F71F04795880F58 -:105EE00097FB991F61F09F3F79F0879508951216EF -:105EF00013061406551FF2CF4695F1DF08C016169B -:105F000017061806991FF1CF86957105610508944B -:105F10000895E894BB2766277727CB0197F9089562 -:105F20008ADF08F48FEF08950BD0C0CFB1DF28F0DF -:105F3000B6DF18F0952309F0A2CFA7CF1124EACF3E -:105F4000C6DFA0F3959FD1F3950F50E0551F629FD8 -:105F5000F001729FBB27F00DB11D639FAA27F00DC2 -:105F6000B11DAA1F649F6627B00DA11D661F829FE9 -:105F70002227B00DA11D621F739FB00DA11D621FCE -:105F8000839FA00D611D221F749F3327A00D611DEB -:105F9000231F849F600D211D822F762F6A2F1124CD -:105FA0009F5750408AF0E1F088234AF0EE0FFF1F20 -:105FB000BB1F661F771F881F91505040A9F79E3F57 -:105FC000510570F05CCFA6CF5F3FECF3983EDCF359 -:105FD000869577956795B795F795E7959F5FC1F794 -:105FE000FE2B880F911D9695879597F90895FA01D4 -:105FF000EE0FFF1F30962105310599F161157105EE -:1060000061F48038BFE39B0749F1689490388105BB -:1060100061F08038BFEF9B0741F0992342F5FF3FC5 -:10602000E1053105210511F1E8940894E795D901BE -:10603000AA2329F4AB2FBE2FF85FD0F310C0FF5F67 -:1060400070F4A695E0F7F73950F019F0FF3A38F4FC -:106050009F779F930CD00F9007FC905808953EF0C7 -:1060600014CF60E070E080E89FE308954FE79F77EA -:106070005F934F933F932F939ED02F913F914F91DA -:106080005F9152DF05C019F40EF0F9CE42CFFDCE7C -:1060900026DFC8F39638C0F707F80F92E8942BE391 -:1060A0003AEA48EB5FE74EDF0F920F920F924DB73F -:1060B0005EB70F92C0D0E4E4F1E016D04F915F914B -:1060C000EF91FF91E595EE1FFF1F49F0FE57E06845 -:1060D0004427EE0F441FFA95E1F74195550B32D056 -:1060E0000F9007FE26C00895DF93CF931F930F9361 -:1060F000FF92EF92DF927B018C01689405C0DA2E4B -:10610000EF011EDFFE01E894A5912591359145919F -:106110005591AEF3EF0162DDFE019701A801DA941B -:1061200079F7DF90EF90FF900F911F91CF91DF9162 -:1061300008959B01AC0160E070E080E89FE3A5CD8D -:106140009ECEACC0CCDEE8F39923D9F3940F511D59 -:10615000BBF39150504094F059F0882332F0660F11 -:10616000771F881F91505040C1F79E3F510544F75B -:10617000880F911D9695879597F908955F3FACF02C -:10618000983E9CF0BB27869577956795B79508F460 -:10619000B1609395C1F7BB0F58F711F460FFE8CFDA -:1061A0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C01F -:1061B0006CCE689464CE93DEC8F39923D1F3C6F312 -:1061C000DF93CF931F930F93FF92C92FDD2788236F -:1061D0002AF02197660F771F881FDAF720E030E05A -:1061E00040E85FEB9FE3883920F0803E30F0219655 -:1061F0008F77E3DCECE6F1E003C0DFDCE9E9F1E016 -:1062000073DF8B01BE01EC01FB2E6F577109759591 -:10621000771F880B990BD4DD28E132E741E35FE378 -:106220008FDEAF2D9801AE01FF900F911F91CF919E -:10623000DF91D4DC3BCEFA01DC01AA0FBB1F9B012E -:10624000AC01BF5728F422273327442750781FC0BA -:10625000B75188F4AB2F0024469537952795011C3C -:10626000A395D2F3002069F0220F331F441FB3958A -:10627000DAF30DD0A1CC61307105A0E88A07B946E8 -:1062800030F49B01AC0166277727882790783096F9 -:1062900021F0208331834283538308959F3F31F05F -:1062A000915020F4879577956795B795880F911D44 -:1062B0009695879597F90895AA1BBB1B51E107C0D6 -:1062C000AA1FBB1FA617B70710F0A61BB70B881F86 -:1062D000991F5A95A9F780959095BC01CD01089515 -:1062E00097FB072E16F4009407D077FD09D00E9483 -:1062F0005C3107FC05D03EF4909581959F4F089541 -:10630000709561957F4F0895EE0FFF1F0590F491F2 -:10631000E02D0994F999FECF92BD81BDF89A992795 -:1063200080B50895A8E1B0E042E050E00C94B231AD -:10633000262FF999FECF92BD81BDF89A019700B43E -:10634000021639F01FBA20BD0FB6F894FA9AF99ADE -:106350000FBE08950196272F0E9499310C94983111 -:10636000DC01CB01FC01F999FECF06C0F2BDE1BD15 -:10637000F89A319600B40D9241505040B8F7089504 -:04638000F894FFCFBF -:1063840007000C52D02445000000410000DC44000A -:1063940000004152D0A4440000404100005C44008D -:1063A40000004148F17644000000415C978A4400B3 -:1063B4000000411FD592440000004152D0A4440083 -:1063C4000000415CFFB844000000410AA7CF44002C -:1063D4000000410000DC44000000410AA7CF440053 -:1063E4000000410000DC4400000041000000000007 -:1063F40000804000005C45000040410000000000B7 -:1064040000804052D02445000040410AA7CF4400F8 -:106414000000410000DC44000000410000000000D6 -:1064240000804052D024450000404100000000009C -:1064340000804000005C45000040410AA7CF4400B2 -:106444000000410000DC44000000410000000000A6 -:1064540000804052D024450000404100000000006C -:106464000080400AA74F45000040410AA7CF4400DE -:106474000000410000DC4400000041000000000076 -:1064840000804052D024450000004100000000007C -:106494000080405CFF38450000004100000000001F -:1064A40000804052D02445000000410AA7CF440098 -:1064B4000000410000DC4400000041000000000036 -:1064C40000804052D024450000804153D024450030 -:1064D40000404160970A450000004154D0A44400A4 -:1064E4000000410000DC440000004160970A4500C0 -:1064F40000A041050000003F0000C8423214C0144F -:106504009D14691435140101DA032808140A321E93 -:106514000000020004000500070009000B000C0045 -:106524000E001000110013001500170018001A00C7 -:106534001C001D001F002100230024002600280049 -:1065440029002B002D002F003000320034003500CC -:10655400370039003B00400045002500260061005B -:106564006000200037006400650066006700440096 -:106574004600240047003F4D3639BD0970093A09E9 -:1065840001099408AD08C608DF08010203040506E2 -:0465940007080900EB +:10573000890208958FEF80938902089580918802ED +:10574000262F30E0280F311D2F3F310524F4680F3C +:105750006093880208958FEF8093880208958330C4 +:1057600011F128F4813049F0823091F008958530AC +:1057700081F120F18630C1F1089580918D02681782 +:1057800020F4861B80938D02089510928D02089557 +:1057900080918C02681720F4861B80938C020895F8 +:1057A00010928C02089580918B02681720F4861B5A +:1057B00080938B02089510928B02089580918A0243 +:1057C000681720F4861B80938A02089510928A023B +:1057D000089580918902681720F4861B80938902BE +:1057E000089510928902089580918802681720F424 +:1057F000861B8093880208951092880208950F9363 +:105800001F93873208F048C08E3108F094C0803171 +:1058100009F47EC008F5873009F468C068F4863062 +:1058200009F0A4C080913D04817F8E7F80933D0468 +:1058300081E080934D049BC08B3009F490C08E3082 +:1058400009F094C080913D0482FB222720F991E069 +:10585000922790FB82F965C0863109F480C060F41C +:10586000813109F083C00E945C219091850281E022 +:1058700089278093850273C0893109F470C08B3108 +:1058800009F074C080913D0481FB222720F991E04A +:10589000922790FB81F945C0883309F460C050F429 +:1058A000893209F45EC0853309F45BC0873209F49C +:1058B00058C05CC0833409F454C028F48A3308F417 +:1058C00055C0895339C0883409F050C00E945C210A +:1058D0000E946C060FEF13ED20E3015010402040B2 +:1058E000E1F700C000000E94792839C090913D0482 +:1058F000892F8095817080FB90F929F096609860DF +:1059000090933D0434C0997F977F90933D0427C0C6 +:1059100080913D0483FB222720F991E0922790FBA0 +:1059200083F980933D049923D1F080913D048160F7 +:1059300080933D0414C08D5141E050E060E070E080 +:105940008A019B0104C0000F111F221F331F8A957B +:10595000D2F7C901B8010E9418250E945C2181E09C +:1059600006C061E070E080E090E0F5CF80E01F913C +:105970000F91089580E0089580E00895CF93C82F97 +:1059800080914D04813069F018F08230C9F184C0F3 +:10599000E0918602F09187028081823209F07EC018 +:1059A00007C0E0918602F09187028081823261F423 +:1059B0008C2F0E94BA2C811104C08C2F0E94FF2BC7 +:1059C0001DC081E090E01AC08C2F0E94BC2C811178 +:1059D00014C0C43179F048F4CB3079F0C03109F00B +:1059E00061C082E080934D0408C0C93219F0C83309 +:1059F00021F058C010924D0455C081E0817054C010 +:105A0000C93291F120F5C43179F1B0F4C73009F011 +:105A100047C08EE180938D0282E380938C028AE0FE +:105A200080938B0284E180938A0288E080938902CC +:105A300088E28093880234C0CE51C63088F5EC2FBE +:105A4000F0E0E85AFC4F808180934C0429C0CE34AA +:105A5000E9F020F4CB3421F56AE013C0C13579F0C8 +:105A6000C235F1F461E00DC080914C04882319F037 +:105A700010924C0415C081E080934D0415C061E084 +:105A800006C080914C040E94392B0AC06AE08091C4 +:105A90004C040E94AF2B04C010924D0480E004C05F +:105AA00081E002C080E0AACFCF9108950E94DA2859 +:105AB000811102C00E94B6280E94FB2880936804CE +:105AC00080FF02C0869501C080E00C943005809173 +:105AD0006804982F9695292F30E0233031054CF437 +:105AE0009F5F990F8170892B8160809368040E9469 +:105AF000FF288091680486950C9430058091680495 +:105B0000982F969591F09158990F8170892B8093D9 +:105B100068048E7F91E009F490E08091680490FB26 +:105B200080F9809368040E94FF288091680486951C +:105B30000C94300580916804982F909590FB80F923 +:105B4000809368040E94FF288091680480FF02C04F +:105B5000869501C080E00C94300590916804892FEF +:105B600086958F5F8F779170843028F4880F892B0A +:105B70008093680402C090936804809168048E7FCB +:105B800091E009F490E08091680490FB80F98093A3 +:105B900068040E94FF288091680486950C94300563 +:105BA00020916804922F96958927982F990F822F1C +:105BB0008170892B809368048E7F91E009F490E0D6 +:105BC0008091680490FB80F9809368040E94FF280C +:105BD0008091680486950C9430055058BB27AA27FD +:105BE0000ED0D1C1C2D130F0C7D120F031F49F3FE7 +:105BF00011F41EF4B7C10EF4E095E7FB9FC1E92F45 +:105C0000D3D180F3BA17620773078407950718F09A +:105C100071F49EF5EBC10EF4E0950B2EBA2FA02D7A +:105C20000B01B90190010C01CA01A0011124FF2749 +:105C3000591B99F0593F50F4503E68F11A16F04044 +:105C4000A22F232F342F4427585FF3CF4695379543 +:105C50002795A795F0405395C9F77EF41F16BA0B08 +:105C6000620B730B840BBAF09150A1F0FF0FBB1FB6 +:105C7000661F771F881FC2F70EC0BA0F621F731FFF +:105C8000841F48F4879577956795B795F7959E3F5C +:105C900008F0B3CF9395880F08F09927EE0F9795EA +:105CA0008795089527D108F481E008950CD06BC141 +:105CB00063D140F05AD130F021F45F3F19F03EC17A +:105CC000511195C14FC170D198F39923C9F3552350 +:105CD000B1F3951B550BBB27AA27621773078407DF +:105CE00038F09F5F5F4F220F331F441FAA1FA9F395 +:105CF00033D00E2E3AF0E0E830D091505040E69587 +:105D0000001CCAF729D0FE2F27D0660F771F881FE7 +:105D1000BB1F261737074807AB07B0E809F0BB0BD6 +:105D2000802DBF01FF2793585F4F2AF09E3F5105FA +:105D300068F004C15CC15F3FECF3983EDCF38695EC +:105D400077956795B795F7959F5FC9F7880F911D70 +:105D50009695879597F90895E1E0660F771F881F5C +:105D6000BB1F621773078407BA0720F0621B730B0F +:105D7000840BBA0BEE1F88F7E095089504D0689461 +:105D8000B11135C1089518D188F09F5790F0B92FFF +:105D90009927B751A0F0D1F0660F771F881F991F80 +:105DA0001AF0BA95C9F712C0B13081F01FD1B1E035 +:105DB00008951CC1672F782F8827B85F39F0B93F45 +:105DC000CCF3869577956795B395D9F73EF4909582 +:105DD0008095709561957F4F8F4F9F4F0895E89400 +:105DE00009C097FB3EF490958095709561957F4F23 +:105DF0008F4F9F4F9923A9F0F92F96E9BB279395D1 +:105E0000F695879577956795B795F111F8CFFAF4E0 +:105E1000BB0F11F460FF1BC06F5F7F4F8F4F9F4F11 +:105E200016C0882311F096E911C0772321F09EE86F +:105E3000872F762F05C0662371F096E8862F70E0D5 +:105E400060E02AF09A95660F771F881FDAF7880FAF +:105E50009695879597F9089588D018F011F08CD011 +:105E600038F480C0C4C0E92F9FD0B0F35523C9F3E4 +:105E7000E7FB6217730784079507A8F199F3E92FE9 +:105E8000FF2788232AF03197660F771F881FDAF7DC +:105E9000952F5527442332F091505040220F331F45 +:105EA000441FD2F7BB27E91BF50B621B730B840B56 +:105EB000B109C1F222F4620F731F841FB11D319723 +:105EC0002AF0660F771F881FBB1FEFCF91505040FD +:105ED0005AF041F0882332F0660F771F881F9150E7 +:105EE0005040C1F7939530C08695779567959F5F31 +:105EF000D9F7F8CF990F0008550FAA0BE0E8FEEF8D +:105F000016161706E807F907C0F012161306E4077D +:105F1000F50798F0621B730B840B950B39F40A2676 +:105F200061F0232B242B252B21F408950A2609F454 +:105F3000A140A6958FEF811D811D089597F99F6758 +:105F400080E870E060E008959F3F31F0915020F4C8 +:105F5000879577956795B795880F911D9695879545 +:105F600097F908959FEF80EC089500240A9416167F +:105F7000170618060906089500240A941216130637 +:105F8000140605060895092E0394000C11F48823C5 +:105F900052F0BB0F40F4BF2B11F460FF04C06F5FE1 +:105FA0007F4F8F4F9F4F089557FD9058440F551FB7 +:105FB00059F05F3F71F04795880F97FB991F61F08B +:105FC0009F3F79F087950895121613061406551F02 +:105FD000F2CF4695F1DF08C0161617061806991F6E +:105FE000F1CF86957105610508940895E894BB2763 +:105FF00066277727CB0197F908957CDF08F48FEFA8 +:1060000008950BD0C0CFB1DF28F0B6DF18F095238C +:1060100009F094CFA7CF1124EACFC6DFA0F3959F54 +:10602000D1F3950F50E0551F629FF001729FBB277F +:10603000F00DB11D639FAA27F00DB11DAA1F649F2B +:106040006627B00DA11D661F829F2227B00DA11DDE +:10605000621F739FB00DA11D621F839FA00D611D64 +:10606000221F749F3327A00D611D231F849F600D85 +:10607000211D822F762F6A2F11249F5750408AF0BE +:10608000E1F088234AF0EE0FFF1FBB1F661F771F4A +:10609000881F91505040A9F79E3F510570F04ECF98 +:1060A000A6CF5F3FECF3983EDCF386957795679536 +:1060B000B795F795E7959F5FC1F7FE2B880F911D68 +:1060C0009695879597F90895FA01EE0FFF1F309680 +:1060D0002105310599F16115710561F48038BFE33F +:1060E0009B0749F168949038810561F08038BFEFD3 +:1060F0009B0741F0992342F5FF3FE105310521055A +:1061000011F1E8940894E795D901AA2329F4AB2F5B +:10611000BE2FF85FD0F310C0FF5F70F4A695E0F7D4 +:10612000F73950F019F0FF3A38F49F779F930CD06D +:106130000F9007FC905808953EF014CF60E070E097 +:1061400080E89FE308954FE79F775F934F933F93D6 +:106150002F939ED02F913F914F915F9152DF05C0B9 +:1061600019F40EF0EBCE42CFFDCE26DFC8F3963801 +:10617000C0F707F80F92E8942BE33AEA48EB5FE7A1 +:106180004EDF0F920F920F924DB75EB70F92C0D0B5 +:10619000ECEFF0E016D04F915F91EF91FF91E59514 +:1061A000EE1FFF1F49F0FE57E0684427EE0F441F23 +:1061B000FA95E1F74195550B32D00F9007FE26C0B6 +:1061C0000895DF93CF931F930F93FF92EF92DF9287 +:1061D0007B018C01689405C0DA2EEF011EDFFE0101 +:1061E000E894A5912591359145915591AEF3EF0134 +:1061F00006DDFE019701A801DA9479F7DF90EF90B0 +:10620000FF900F911F91CF91DF9108959B01AC01F9 +:1062100060E070E080E89FE349CD90CE95CECCDE83 +:10622000E8F39923D9F3940F511DBBF391505040DB +:1062300094F059F0882332F0660F771F881F915031 +:106240005040C1F79E3F510544F7880F911D969528 +:10625000879597F908955F3FACF0983E9CF0BB2777 +:10626000869577956795B79508F4B1609395C1F7D2 +:10627000BB0F58F711F460FFE8CF6F5F7F4F8F4F70 +:106280009F4FE3CFB4CE0EF05FCE6CCE689456CE67 +:1062900093DEC8F39923D1F3C6F3DF93CF931F9313 +:1062A0000F93FF92C92FDD2788232AF02197660FCD +:1062B000771F881FDAF720E030E040E85FEB9FE3CC +:1062C000883920F0803E30F021968F7787DCE4E239 +:1062D000F1E003C083DCE1E5F1E073DF8B01BE0197 +:1062E000EC01FB2E6F5771097595771F880B990B81 +:1062F00078DD28E132E741E35FE38FDEAF2D9801DF +:10630000AE01FF900F911F91CF91DF9178DC3BCED2 +:10631000FA01DC01AA0FBB1F9B01AC01BF5728F497 +:1063200022273327442750781FC0B75188F4AB2F5A +:106330000024469537952795011CA395D2F300209C +:1063400069F0220F331F441FB395DAF30DD045CC0B +:1063500061307105A0E88A07B94630F49B01AC01B1 +:106360006627772788279078309621F0208331831D +:10637000428353830895AA1BBB1B51E107C0AA1F88 +:10638000BB1FA617B70710F0A61BB70B881F991FD6 +:106390005A95A9F780959095BC01CD01089597FB7A +:1063A000072E16F4009407D077FD09D00E94BB3168 +:1063B00007FC05D03EF4909581959F4F0895709508 +:1063C00061957F4F0895EE0FFF1F0590F491E02D2A +:1063D0000994F999FECF92BD81BDF89A992780B5AD +:1063E0000895A8E1B0E042E050E00C941132262F6D +:1063F000F999FECF92BD81BDF89A019700B40216BB +:1064000039F01FBA20BD0FB6F894FA9AF99A0FBE68 +:1064100008950196272F0E94F8310C94F731DC0182 +:10642000CB01FC01F999FECF06C0F2BDE1BDF89A9F +:10643000319600B40D9241505040B8F70895F89449 +:02644000FFCF8C +:106442000C52D02445000000410000DC4400000052 +:106452004152D0A4440000404100005C44000000CE +:106462004148F17644000000415C978A44000000F4 +:10647200411FD592440000004152D0A444000000C4 +:10648200415CFFB844000000410AA7CF440000006D +:10649200410000DC44000000410AA7CF4400000094 +:1064A200410000DC440000004100000000000080C8 +:1064B2004000005C450000404100000000000080F8 +:1064C2004052D02445000040410AA7CF44000000BA +:1064D200410000DC44000000410000000000008098 +:1064E2004052D024450000404100000000000080DE +:1064F2004000005C45000040410AA7CF4400000074 +:10650200410000DC44000000410000000000008067 +:106512004052D024450000404100000000000080AD +:10652200400AA74F45000040410AA7CF440000009F +:10653200410000DC44000000410000000000008037 +:106542004052D024450000004100000000000080BD +:10655200405CFF3845000000410000000000008060 +:106562004052D02445000000410AA7CF4400000059 +:10657200410000DC440000004100000000000080F7 +:106582004052D024450000804153D02445000040B1 +:106592004160970A450000004154D0A44400000025 +:1065A200410000DC440000004160970A450000A061 +:1065B20041050000003F0000C8424314D114AE144C +:1065C2007A14461401012A042808140A321E000013 +:1065D200020004000500070009000B000C000E0079 +:1065E2001000110013001500170018001A001C00FB +:1065F2001D001F002100230024002600280029007E +:106602002B002D002F0030003200340035003700FF +:1066120039003B0040004500250026006100600073 +:1066220020003700640065006600670044004600F1 +:10663200240047003149803F5D8B803FF8BF803F97 +:10664200CAE1803F73ED803FCAE1803FF8BF803FDF +:106652005D8B803F3149803F0000803FF16D7F3F7D +:1066620075EA7E3F4C827E3F833F7E3F84287E3F99 +:10667200833F7E3F4C827E3F75EA7E3FF16D7F3FD6 +:106682000000803F3F4D363975092809F208B908E4 +:106692004C0865087E0897080102030405060708EE +:0266A2000900ED :00000001FF -- cgit v1.2.1 From 9ab7098c834ffe601ad5c39759acfddabbd6373f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 29 Apr 2016 21:21:08 -0400 Subject: fixes plover start sound --- keyboard/planck/keymaps/default/keymap.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index e7a9ea9e4c..ac4937b69e 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -319,15 +319,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 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_off(_MUSIC); - #ifdef AUDIO_ENABLE - stop_all_notes(); - #endif layer_on(_PLOVER); if (!eeconfig_is_enabled()) { eeconfig_init(); -- cgit v1.2.1 From 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 29 Apr 2016 22:19:40 -0400 Subject: moves backlight functionality to keyboard files and updates template makefile previously there were two backlight.c files (bad) --- keyboard/planck/Makefile | 4 --- keyboard/planck/backlight.c | 61 --------------------------------------------- keyboard/planck/planck.c | 61 +++++++++++++++++++++++++++++++++++++++++++++ keyboard/planck/planck.h | 1 + 4 files changed, 62 insertions(+), 65 deletions(-) delete mode 100644 keyboard/planck/backlight.c (limited to 'keyboard/planck') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 01d9e3ce9a..c0c6201cba 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -171,10 +171,6 @@ endif endif -ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) - SRC := backlight.c $(SRC) -endif - # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/planck/backlight.c b/keyboard/planck/backlight.c deleted file mode 100644 index f69364b2af..0000000000 --- a/keyboard/planck/backlight.c +++ /dev/null @@ -1,61 +0,0 @@ - -#include -#include "backlight.h" - -#define CHANNEL OCR1C - -void backlight_init_ports() -{ - - // Setup PB7 as output and output low. - DDRB |= (1<<7); - PORTB &= ~(1<<7); - - // Use full 16-bit resolution. - ICR1 = 0xFFFF; - - // I could write a wall of text here to explain... but TL;DW - // Go read the ATmega32u4 datasheet. - // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on - - // Pin PB7 = OCR1C (Timer 1, Channel C) - // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 - // (i.e. start high, go low when counter matches.) - // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 - // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 - - TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; - TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; - - backlight_init(); -} - -void backlight_set(uint8_t level) -{ - if ( level == 0 ) - { - // Turn off PWM control on PB7, revert to output low. - TCCR1A &= ~(_BV(COM1C1)); - CHANNEL = 0x0; - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - } - else if ( level == BACKLIGHT_LEVELS ) - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF; - } - else - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } -} \ No newline at end of file diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index 4b39cf1e8b..6558501504 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -32,3 +32,64 @@ void matrix_scan_kb(void) { void process_action_kb(keyrecord_t *record) { process_action_user(record); } + +#ifdef BACKLIGHT_ENABLE +#define CHANNEL OCR1C + +void backlight_init_ports() +{ + + // Setup PB7 as output and output low. + DDRB |= (1<<7); + PORTB &= ~(1<<7); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); +} + +void backlight_set(uint8_t level) +{ + if ( level == 0 ) + { + // Turn off PWM control on PB7, revert to output low. + TCCR1A &= ~(_BV(COM1C1)); + CHANNEL = 0x0; + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + } + else if ( level == BACKLIGHT_LEVELS ) + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +#endif \ No newline at end of file diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index edcb5fbff6..c5b59d9998 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -10,6 +10,7 @@ #include "rgblight.h" #endif #include +#include #ifdef MIDI_ENABLE #include #endif -- cgit v1.2.1 From 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Tue, 3 May 2016 12:56:40 -0500 Subject: Clarified audio.c (#302) * Updated personal layouts * tweaked personal * Nightly - Audio Cleanup Refactored the LUTs. Abstracted some of the registers out of audio to use more functional names. Split audio into audio and audio_pwm. WIP * nightly - collapsed code * Added check for note playing to LEDs --- keyboard/planck/keymaps/pvc/config.h | 2 +- keyboard/planck/keymaps/pvc/keymap.c | 4 ++-- keyboard/planck/keymaps/pvc/makefile.mk | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/pvc/config.h b/keyboard/planck/keymaps/pvc/config.h index 7d64f09773..d435cc795c 100644 --- a/keyboard/planck/keymaps/pvc/config.h +++ b/keyboard/planck/keymaps/pvc/config.h @@ -73,7 +73,7 @@ along with this program. If not, see . */ /* disable debug print */ -//#define NO_DEBUG +#define NO_DEBUG /* disable print */ //#define NO_PRINT diff --git a/keyboard/planck/keymaps/pvc/keymap.c b/keyboard/planck/keymaps/pvc/keymap.c index 27850b2154..830b00a4c4 100644 --- a/keyboard/planck/keymaps/pvc/keymap.c +++ b/keyboard/planck/keymaps/pvc/keymap.c @@ -96,7 +96,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [LAYER_QWERTY] = { /* 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_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, + { 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 }, { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, }, @@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [LAYER_COLEMAK] = { /* COLEMAK */ { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_ESC }, - { KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, + { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, }, diff --git a/keyboard/planck/keymaps/pvc/makefile.mk b/keyboard/planck/keymaps/pvc/makefile.mk index 4b9e34c53f..b3f1b9e51c 100644 --- a/keyboard/planck/keymaps/pvc/makefile.mk +++ b/keyboard/planck/keymaps/pvc/makefile.mk @@ -4,6 +4,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = yes # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode @@ -13,4 +14,4 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -CONFIG_H = keymaps/$(KEYMAP)/config.h +CONFIG_H = keymaps/$(KEYMAP)/config.h \ No newline at end of file -- cgit v1.2.1 From 3f02637f4dd765803671c2611191beb096d60b36 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 9 May 2016 13:17:15 -0400 Subject: Backlight Breathing for Planck and Atomic * Updated personal layouts * tweaked personal * Nightly - Audio Cleanup Refactored the LUTs. Abstracted some of the registers out of audio to use more functional names. Split audio into audio and audio_pwm. WIP * nightly - collapsed code * Added check for note playing to LEDs * Usability tweaks * TWEAE * nightly added extra kcs to keymap common * turned on Plank audio * Added backlight breathing to atomic * reverted accidental merge * adds backlight pulse to planck --- keyboard/planck/keymaps/experimental/README.md | 2 + keyboard/planck/keymaps/experimental/keymap.c | 383 +++++++++++++++++++++++ keyboard/planck/keymaps/experimental/makefile.mk | 2 + keyboard/planck/keymaps/pvc/keymap.c | 13 +- keyboard/planck/keymaps/pvc/makefile.mk | 6 +- keyboard/planck/planck.c | 221 ++++++++++++- keyboard/planck/planck.h | 18 ++ 7 files changed, 635 insertions(+), 10 deletions(-) create mode 100644 keyboard/planck/keymaps/experimental/README.md create mode 100644 keyboard/planck/keymaps/experimental/keymap.c create mode 100644 keyboard/planck/keymaps/experimental/makefile.mk (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/experimental/README.md b/keyboard/planck/keymaps/experimental/README.md new file mode 100644 index 0000000000..de9680b498 --- /dev/null +++ b/keyboard/planck/keymaps/experimental/README.md @@ -0,0 +1,2 @@ +# The Default Planck Layout + diff --git a/keyboard/planck/keymaps/experimental/keymap.c b/keyboard/planck/keymaps/experimental/keymap.c new file mode 100644 index 0000000000..fc3ac4a97e --- /dev/null +++ b/keyboard/planck/keymaps/experimental/keymap.c @@ -0,0 +1,383 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#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 _MUSIC 5 +#define _PLOVER 6 +#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 AUD_OFF M(6) +#define AUD_ON M(7) +#define MUS_OFF M(8) +#define MUS_ON M(9) +#define VC_IN M(10) +#define VC_DE M(11) +#define PLOVER M(12) +#define EXT_PLV M(13) + +// 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, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, 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} +}, + +/* 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} +}, + +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | 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}, + {XXXXXXX, 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}, + {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, VC_DE, VC_IN, MUS_ON, MUS_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 music_scale[][2] = SONG(MUSIC_SCALE_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); + breathing_speed_set(2); + breathing_pulse(); + 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); + breathing_speed_set(2); + breathing_pulse(); + 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 6: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + case 7: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_on(); + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif + } + break; + case 8: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + layer_off(_MUSIC); + stop_all_notes(); + #endif + } + break; + case 9: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(music_scale, false, 0); + layer_on(_MUSIC); + #endif + } + break; + case 10: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + case 11: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + 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_off(_MUSIC); + 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; + + } + 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); +} + +uint8_t starting_note = 0x0C; +int offset = 0; + +void process_action_user(keyrecord_t *record) { + + if (IS_LAYER_ON(_MUSIC)) { + if (record->event.pressed) { + play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + } else { + stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + } + } + +} +#endif diff --git a/keyboard/planck/keymaps/experimental/makefile.mk b/keyboard/planck/keymaps/experimental/makefile.mk new file mode 100644 index 0000000000..99fbfbd0bb --- /dev/null +++ b/keyboard/planck/keymaps/experimental/makefile.mk @@ -0,0 +1,2 @@ +AUDIO_ENABLE = yes +NKRO_ENABLE = yes \ No newline at end of file diff --git a/keyboard/planck/keymaps/pvc/keymap.c b/keyboard/planck/keymaps/pvc/keymap.c index 830b00a4c4..177f04484d 100644 --- a/keyboard/planck/keymaps/pvc/keymap.c +++ b/keyboard/planck/keymaps/pvc/keymap.c @@ -38,6 +38,7 @@ #define MACRO_AUDIO_OFF 17 #define MACRO_INC_VOICE 18 #define MACRO_DEC_VOICE 19 +#define MACRO_BACKLIGHT 20 #define M_QWRTY M(MACRO_QWERTY) #define M_COLMK M(MACRO_COLEMAK) @@ -53,6 +54,7 @@ #define TMPO_UP M(MACRO_TEMPO_U) #define TMPO_DN M(MACRO_TEMPO_D) #define TMPO_DF M(MACRO_TONE_DEFAULT) +#define M_BACKL M(MACRO_BACKLIGHT) #define MUS_ON M(MACRO_MUSIC_ON) @@ -217,7 +219,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [LAYER_ADJUST] = { /* ADJUST */ { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF }, { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, RESET, _______, M_MOUSE, _______, _______, _______, _______ }, + { _______, _______, _______, _______, M_BACKL, RESET, _______, M_MOUSE, _______, _______, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, VC_UP, VC_DOWN, _______, _______ }, }, @@ -337,6 +339,15 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; + +#ifdef BACKLIGHT_ENABLE + case MACRO_BACKLIGHT: + if (record->event.pressed) + { + backlight_step(); + } +#endif + #ifdef MOUSEKEY_ENABLE case MACRO_MOUSE: diff --git a/keyboard/planck/keymaps/pvc/makefile.mk b/keyboard/planck/keymaps/pvc/makefile.mk index b3f1b9e51c..f7798b09d5 100644 --- a/keyboard/planck/keymaps/pvc/makefile.mk +++ b/keyboard/planck/keymaps/pvc/makefile.mk @@ -1,12 +1,12 @@ BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) +CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 +AUDIO_ENABLE = yes # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index 6558501504..446353dbf5 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -9,6 +9,9 @@ void matrix_scan_user(void) {} __attribute__ ((weak)) void process_action_user(keyrecord_t *record) {} +__attribute__ ((weak)) +void led_set_user(uint8_t usb_led) {} + void matrix_init_kb(void) { #ifdef BACKLIGHT_ENABLE backlight_init_ports(); @@ -33,8 +36,22 @@ void process_action_kb(keyrecord_t *record) { process_action_user(record); } +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} + #ifdef BACKLIGHT_ENABLE #define CHANNEL OCR1C +#define BREATHING_NO_HALT 0 +#define BREATHING_HALT_OFF 1 +#define BREATHING_HALT_ON 2 + +static uint8_t breath_intensity; +static uint8_t breath_speed; +static uint16_t breathing_index; +static uint8_t breathing_halt; void backlight_init_ports() { @@ -60,22 +77,22 @@ void backlight_init_ports() TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; backlight_init(); + breathing_defaults(); } void backlight_set(uint8_t level) { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + if ( level == 0 ) { // Turn off PWM control on PB7, revert to output low. TCCR1A &= ~(_BV(COM1C1)); CHANNEL = 0x0; - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); } else if ( level == BACKLIGHT_LEVELS ) { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); // Turn on PWM control of PB7 TCCR1A |= _BV(COM1C1); // Set the brightness @@ -83,13 +100,205 @@ void backlight_set(uint8_t level) } else { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); // Turn on PWM control of PB7 TCCR1A |= _BV(COM1C1); // Set the brightness CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); } + breathing_intensity_default(); +} + + +void breathing_enable(void) +{ + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint (brightest point) + breathing_index = 0x20 << breath_speed; + } + + breathing_halt = BREATHING_NO_HALT; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); +} + +void breathing_pulse(void) +{ + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint + 1 (brightest point) + breathing_index = 0x21 << breath_speed; + } + + breathing_halt = BREATHING_HALT_ON; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); } +void breathing_disable(void) +{ + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + backlight_set(get_backlight_level()); +} + +void breathing_self_disable(void) +{ + if (get_backlight_level() == 0) + { + breathing_halt = BREATHING_HALT_OFF; + } + else + { + breathing_halt = BREATHING_HALT_ON; + } + + //backlight_set(get_backlight_level()); +} + +void breathing_toggle(void) +{ + if (!is_breathing()) + { + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint + 1 (brightest point) + breathing_index = 0x21 << breath_speed; + } + + breathing_halt = BREATHING_NO_HALT; + } + + // Toggle breathing interrupt + TIMSK1 ^= _BV(OCIE1A); + + // Restore backlight level + if (!is_breathing()) + { + backlight_set(get_backlight_level()); + } +} + +bool is_breathing(void) +{ + return (TIMSK1 && _BV(OCIE1A)); +} + +void breathing_intensity_default(void) +{ + //breath_intensity = (uint8_t)((uint16_t)100 * (uint16_t)get_backlight_level() / (uint16_t)BACKLIGHT_LEVELS); + breath_intensity = ((BACKLIGHT_LEVELS - get_backlight_level()) * ((BACKLIGHT_LEVELS + 1) / 2)); +} + +void breathing_intensity_set(uint8_t value) +{ + breath_intensity = value; +} + +void breathing_speed_default(void) +{ + breath_speed = 4; +} + +void breathing_speed_set(uint8_t value) +{ + bool is_breathing_now = is_breathing(); + uint8_t old_breath_speed = breath_speed; + + if (is_breathing_now) + { + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + } + + breath_speed = value; + + if (is_breathing_now) + { + // Adjust index to account for new speed + breathing_index = (( (uint8_t)( (breathing_index) >> old_breath_speed ) ) & 0x3F) << breath_speed; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); + } + +} + +void breathing_speed_inc(uint8_t value) +{ + if ((uint16_t)(breath_speed - value) > 10 ) + { + breathing_speed_set(0); + } + else + { + breathing_speed_set(breath_speed - value); + } +} + +void breathing_speed_dec(uint8_t value) +{ + if ((uint16_t)(breath_speed + value) > 10 ) + { + breathing_speed_set(10); + } + else + { + breathing_speed_set(breath_speed + value); + } +} + +void breathing_defaults(void) +{ + breathing_intensity_default(); + breathing_speed_default(); + breathing_halt = BREATHING_NO_HALT; +} + +/* Breathing Sleep LED brighness(PWM On period) table + * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle + * + * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63 + * (0..63).each {|x| p ((sin(x/64.0*PI)**8)*255).to_i } + */ +static const uint8_t breathing_table[64] PROGMEM = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 6, 10, + 15, 23, 32, 44, 58, 74, 93, 113, 135, 157, 179, 199, 218, 233, 245, 252, +255, 252, 245, 233, 218, 199, 179, 157, 135, 113, 93, 74, 58, 44, 32, 23, + 15, 10, 6, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +ISR(TIMER1_COMPA_vect) +{ + // CHANNEL = (pgm_read_byte(&breathing_table[ ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F ] )) * breath_intensity; + + + uint8_t local_index = ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F; + + if (((breathing_halt == BREATHING_HALT_ON) && (local_index == 0x20)) || ((breathing_halt == BREATHING_HALT_OFF) && (local_index == 0x3F))) + { + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + } + + CHANNEL = (uint16_t)(((uint16_t)pgm_read_byte(&breathing_table[local_index]) * 257)) >> breath_intensity; + +} + + + #endif \ No newline at end of file diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index c5b59d9998..cfd4956bf1 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -45,4 +45,22 @@ void matrix_init_user(void); void matrix_scan_user(void); void process_action_user(keyrecord_t *record); +void led_set_user(uint8_t usb_led); +void backlight_init_ports(void); + +void breathing_enable(void); +void breathing_pulse(void); +void breathing_disable(void); +void breathing_self_disable(void); +void breathing_toggle(void); +bool is_breathing(void); + + +void breathing_defaults(void); +void breathing_intensity_default(void); +void breathing_speed_default(void); +void breathing_speed_set(uint8_t value); +void breathing_speed_inc(uint8_t value); +void breathing_speed_dec(uint8_t value); + #endif -- cgit v1.2.1 From 69f05e1afd2e046938209e00db62d18efead4932 Mon Sep 17 00:00:00 2001 From: cwhits Date: Thu, 12 May 2016 15:08:53 -0400 Subject: [planck] adds button for toggling output in plover app (#323) * [planck] toggle plover output in app when toggling plover layer on keyboard * [planck] moved plover toggle to separate key * [planck] renamed toggle button --- keyboard/planck/keymaps/default/keymap.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index ac4937b69e..56f20a3b99 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -38,6 +38,7 @@ extern keymap_config_t keymap_config; #define VC_DE M(11) #define PLOVER M(12) #define EXT_PLV M(13) +#define TOG_OUT M(14) // Fillers to make layering more clear #define _______ KC_TRNS @@ -151,7 +152,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | S | T | P | H | * | * | F | P | L | T | D | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | S | K | W | R | * | * | R | B | G | S | Z | + * |TogOut| S | K | W | R | * | * | R | B | G | S | Z | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Exit | | | A | O | | E | U | | | | * `-----------------------------------------------------------------------------------' @@ -160,7 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_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}, - {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {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} }, @@ -343,7 +344,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 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; }; -- cgit v1.2.1 From c7d2c79d34501480147f8aa6221e1d46ce473af6 Mon Sep 17 00:00:00 2001 From: Jacob Bilger Date: Sat, 14 May 2016 21:11:33 -0400 Subject: adds Bilger321's planck keymap --- keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG | Bin 0 -> 17292 bytes keyboard/planck/keymaps/Jacob/keymap.c | 56 + keyboard/planck/keymaps/Jacob/planck.hex | 1151 +++++++++++++++++++++ keyboard/planck/keymaps/Jacob/readme.md | 1 + 4 files changed, 1208 insertions(+) create mode 100644 keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG create mode 100644 keyboard/planck/keymaps/Jacob/keymap.c create mode 100644 keyboard/planck/keymaps/Jacob/planck.hex create mode 100644 keyboard/planck/keymaps/Jacob/readme.md (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG b/keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG new file mode 100644 index 0000000000..40f0b89429 Binary files /dev/null and b/keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG differ diff --git a/keyboard/planck/keymaps/Jacob/keymap.c b/keyboard/planck/keymaps/Jacob/keymap.c new file mode 100644 index 0000000000..5e6e8498e2 --- /dev/null +++ b/keyboard/planck/keymaps/Jacob/keymap.c @@ -0,0 +1,56 @@ +#include "planck.h" +#include "action_layer.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +//Simple Keymap where CTRL, WINKEY, and ALT keys are placed in a more familiar location for Windows users. +//Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +#define _QW 0 +#define _LW 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* 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, MT(MOD_RSFT, KC_ENT)}, + {KC_LCTL, KC_LGUI, KC_LALT, M(0), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + }, + [_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/Jacob/planck.hex b/keyboard/planck/keymaps/Jacob/planck.hex new file mode 100644 index 0000000000..3ea701202c --- /dev/null +++ b/keyboard/planck/keymaps/Jacob/planck.hex @@ -0,0 +1,1151 @@ +:100000000C94A8010C94EC010C94EC010C94EC0100 +:100010000C94EC010C94EC010C94EC010C94EC01AC +:100020000C94EC010C94EC010C94410D0C94050D16 +:100030000C94C11B0C94EC010C94EC010C94EC019D +:100040000C94EC010C94EC010C94EC010C94EC017C +:100050000C94EC010C94841C0C94EC010C94EC01B9 +:100060000C94EC010C94EC010C94EC010C94EC015C +:100070000C94EC010C94EC010C94EC010C94EC014C +:100080000C94EC010C94EC010C94EC010C94EC013C +:100090000C94EC010C94EC010C94EC010C94EC012C +:1000A0000C94EC010C94EC010C94EC012B0014006A +:1000B0001A000800150017001C0018000C001200A0 +:1000C00013002A00290004001600070009000A0096 +:1000D0000B000D000E000F0033003400E1001D0086 +:1000E0001B00060019000500110010003600370043 +:1000F00038002872E000E300E200003001522C00DA +:100100002C0002525000510052004F0035021E02D6 +:100110001F022002210222022302240225022602BB +:1001200027024C0001000100010001000100010054 +:1001300001002D022E022F023002310201000100C7 +:1001400001000100010001000100010001002F0079 +:100150003000010001000100010001000100010068 +:1001600001000100010001000100010035001E0036 +:100170001F0020002100220023002400250026006B +:1001800027004C0001003A003B003C003D003E00CF +:100190003F002D002E002F003000310001004000F4 +:1001A00041004200430044004500010001000100FD +:1001B0000100010001000100010001000100010037 +:1001C0000100010001000100010001000501090614 +:1001D000A101050719E029E715002501950875011A +:1001E0008102950175088101050819012905950508 +:1001F000750191029501750391010507190029FF09 +:10020000150025FF950675088100C005010902A1AA +:10021000010901A10005091901290515002501950C +:1002200005750181029501750381010501093009F8 +:10023000311581257F9502750881060938158125BC +:100240007F950175088106050C0A38021581257F06 +:10025000950175088106C0C005010980A1018502CC +:1002600016010026B7001A01002AB7007510950183 +:100270008100C0050C0901A1018503160100269C1F +:10028000021A01002A9C02751095018100C012011A +:10029000100100000008EDFE606001000102000195 +:1002A00009025400030100A0FA090400000103013F +:1002B0000100092111010001223F00070581030807 +:1002C000000A0904010001030102000921110100D3 +:1002D00001224D000705820308000A0904020001FB +:1002E00003000000092111010001223600070583E7 +:1002F0000308000A040309042C034F007200740071 +:1003000068006F006C0069006E006500610072009B +:1003100020004B006500790062006F0061007200F0 +:10032000640073000000280354006800650020008A +:1003300050006C0061006E0063006B0020004B00F9 +:100340006500790062006F006100720064000000C7 +:1003500011241FBECFEFDAE0DEBFCDBF04B603FE2F +:1003600024C08091ED019091EE01A091EF01B09138 +:10037000F0018750904BA740B04BB9F41092ED01BB +:100380001092EE011092EF011092F00114BE84B7AA +:10039000877F84BF88E10FB6F89480936000109245 +:1003A00060000FBEE0E0F8E3099511E0A0E0B1E0E5 +:1003B000EAE7F7E402C005900D92A435B107D9F73A +:1003C00011E0A4E5B1E001C01D92AD3EB107E1F737 +:1003D0000E9441090C94BB230C940000FC0166238D +:1003E00061F48281882331F085EE0E947D110E94A4 +:1003F000BC2103C085EE0E942A1180E090E00895A0 +:1004000008950895089508950E94010208950E9494 +:10041000020208950E940302089584E0809355012A +:1004200008950E949C2123E030E0281B3109220F0F +:10043000331F2093540108950E9411020E940D025F +:10044000109256010895982F2F98882351F4809187 +:100450008000877F8093800010928D0010928C0026 +:1004600020C0833041F480918000886080938000B8 +:100470008FEF9FEF12C08091800088608093800092 +:1004800023E030E0291B3109220F331F8FEF9FEF4C +:1004900002C0969587952A95E2F790938D008093F8 +:1004A0008C000E9411020895279A2F988FEF9FEFDA +:1004B00090938700809386008AE08093800089E192 +:1004C000809381000E942A220E941C0208950E94AB +:1004D00054026E9A769A0E94000208950895E62FBB +:1004E000F0E0EE0FFF1F98E1799F90011124E20FD9 +:1004F000F31F90E6899FC0011124E80FF91FE4550E +:10050000FF4F25913491C9010895FC01EE0FFF1FA3 +:10051000E45BFF4F25913491C9010895FC01EE0F72 +:10052000FF1FE453FE4F25913491C9010895CF93E5 +:10053000DF93EC0180E4C030D807A0F590E3C03031 +:10054000D90708F005C1C83ED105E8F4C03ED10581 +:1005500008F069C0C83AD10588F4C53AD10508F059 +:1005600064C0C130D10509F4E8C0C130D10508F438 +:1005700014C2C430D10508F410C255C0CB3BD1051C +:1005800008F00BC261C080E2C030D80708F0DBC0C1 +:1005900091E0C030D90708F0D3C0C03FD10508F4BE +:1005A000FCC1C8C080E5C130D80709F4F4C090E5AB +:1005B000C230D907F0F480E4C131D80709F4D4C0BF +:1005C00090E4C231D90730F480E4C031D80708F490 +:1005D000C3C0C7C090E4C331D90709F4CBC080E4DD +:1005E000C331D80708F4C3C0C050D04509F0D5C105 +:1005F000C4C080E6C030D80730F491E5C030D907D8 +:1006000008F05EC1CEC080E7C030D80708F4C5C18D +:1006100090E8C030D90708F4B8C180E9C030D807E5 +:1006200008F0BBC1B6C19E01BAC1C53AD10519F4E3 +:1006300081E890E47DC0C63AD10519F083E890E4E2 +:1006400077C082E890E474C0C83AD10519F482EE0C +:1006500094E46EC0C93AD10519F489EE94E468C0F7 +:10066000CA3AD10519F48AEE94E462C0CB3AD105B6 +:1006700019F485EB94E45CC0CC3AD10519F486EB0F +:1006800094E456C0CD3AD10519F487EB94E450C0F8 +:10069000C03BD10519F48CEC94E44AC0CE3AD105A4 +:1006A00019F48DEC94E444C0CF3AD10519F483E8F1 +:1006B00095E43EC0C13BD10519F48AE895E438C001 +:1006C000C23BD10519F482E995E432C0C33BD105A0 +:1006D00019F484E995E42CC0C43BD10519F481E2F6 +:1006E00096E426C0C53BD10519F483E296E420C008 +:1006F000C63BD10519F484E296E41AC0C73BD10584 +:1007000019F485E296E414C0C83BD10519F486E2D9 +:1007100096E40EC0C93BD10519F487E296E408C0FF +:10072000CA3BD10519F080E094E402C08AE296E465 +:100730009C0135C19E01306532C121E030E02FC1FE +:100740009E013F712CC1CE019F700E948E0228C174 +:100750009E013070306C23C19E012F703070346D5B +:100760001EC120E031ED1BC120E030ED18C120E0BA +:1007700032ED15C120E033ED12C10E94171184EC57 +:1007800099E020E931E0F9013197F1F70197D9F7C4 +:100790000E94A91C04C18091CD0181608093CD018C +:1007A000FEC00E94051D882311F40E94101D0E94A6 +:1007B000F61C8093EB011092EC0190E5C230D90752 +:1007C00011F4816076C090E5C430D90711F48260DD +:1007D00070C090E5C630D90711F484606AC090E516 +:1007E000C830D90711F4886064C090E5CA30D907D1 +:1007F00011F480615EC090E5CC30D90711F48062BD +:1008000058C090E5CE30D90711F4806452C090E50D +:10081000C031D90711F480684CC090E5C231D907C6 +:1008200011F48C6046C080E5C330D80721F4809174 +:10083000EB018E7F3EC090E5C530D90721F4809151 +:10084000EB018D7F36C080E5C730D80721F4809159 +:10085000EB018B7F2EC090E5C930D90721F4809140 +:10086000EB01877F26C080E5CB30D80721F480914B +:10087000EB018F7E1EC090E5CD30D90721F4809129 +:10088000EB018F7D16C080E5CF30D80721F4809131 +:10089000EB018F7B0EC090E5C131D90721F4809127 +:1008A000EB018F7706C0C351D04529F48091EB014D +:1008B000837F8093EB018091EB010E94EB1C6FC062 +:1008C0004D2F55274F70507041305105F9F49E015E +:1008D000A4E0220F331FAA95E1F720703370CE01F8 +:1008E000F3E0880F991FFA95E1F780769070282B36 +:1008F000392B3C68C370D07002C0440F551FCA9595 +:10090000E2F74F715070242B352B49C0423051050E +:1009100029F43C2F2227216F306A41C04330510512 +:1009200051F49E0173E0220F331F7A95E1F7207E88 +:1009300037703C680CC044305105B9F49E0163E047 +:10094000220F331F6A95E1F7207E37703A68C37033 +:10095000D07081E090E002C0880F991FCA95E2F73D +:100960008F719070282B392B1AC04530510529F40E +:100970003C2F2227246F306A12C04630510579F48B +:10098000CF71D0703C2F222702C09E013F70306291 +:1009900006C09E013F70306A02C020E030E0C9010D +:1009A000DF91CF9108950E946F02803E9105F0F48F +:1009B000803C910588F58133910509F475C0823337 +:1009C000910548F48932910509F464C08A32910591 +:1009D00009F07BC06EC08933910509F18238910519 +:1009E000F1F08533910509F070C04FC0833E910549 +:1009F00061F1843E910540F4803E9105B9F0823E5C +:100A0000910509F062C01CC0863E910551F1873EF8 +:100A1000910509F05AC02AC00E94850208952091CC +:100A2000EB0120FD0AC021FD08C04CC08091EB0104 +:100A300080FF03C089E390E045C080EE90E042C0B3 +:100A40008091EB0182FD08C004C08091EB0182FF20 +:100A500003C082EE90E036C084FD11C083EE90E0CA +:100A600031C08091EB0183FD08C004C08091EB018F +:100A700083FF03C086EE90E025C084FF03C080E0C2 +:100A800090E020C087EE90E01DC08091EB0185FFD3 +:100A900005C007C08091EB0185FF03C085E390E0AE +:100AA00011C089E290E00EC08091EB0186FF05C085 +:100AB00007C08091EB0186FF03C081E390E002C094 +:100AC0008AE290E00E94970208950E94970208959A +:100AD0000E940A020895E82FF0E0EE0FFF1FE95A86 +:100AE000FE4F80819181089508954F925F926F9299 +:100AF0007F928F929F92AF92BF92CF92DF92EF92AE +:100B0000FF920F931F93DF93CF93CDB7DEB7289754 +:100B10000FB6F894DEBF0FBECDBFAE014F5F5F4F83 +:100B200060E070E0EE24FF24CC24DD24AA24BB2462 +:100B3000882499242A0101E010E029E0622E712C1A +:100B40006C0E7D1ED201E4E3F1E088E001900D928D +:100B50008150E1F7FA01808191819C01207F307002 +:100B60002032310559F48F709070980102C0220F25 +:100B7000331F8A95E2F7622B732B37C02033310580 +:100B800059F48F709070F80102C0EE0FFF1F8A9524 +:100B9000E2F7EE2AFF2A29C02034310559F48F707C +:100BA0009070980102C0220F331F8A95E2F7C22A83 +:100BB000D32A1BC02035310559F48F709070F8018D +:100BC00002C0EE0FFF1F8A95E2F7AE2ABF2A0DC0C2 +:100BD0002036310551F48F709070980102C0220FB9 +:100BE000331F8A95E2F7822A932A4E5F5F4F46159C +:100BF000570509F0A7CF24B1962F862F8095822321 +:100C000084B985B1982B95B927B19E2D8E2D8095ED +:100C1000822387B988B1982B98B92AB19C2D8C2D45 +:100C2000809582238AB98BB1982B9BB92DB19A2DCF +:100C30008A2D809582238DB98EB1982B9EB920B3D1 +:100C4000982D882D8095822380BB81B3982B91BBF2 +:100C500028960FB6F894DEBF0FBECDBFCF91DF91BF +:100C60001F910F91FF90EF90DF90CF90BF90AF90CA +:100C70009F908F907F906F905F904F9008954F92CC +:100C80005F926F927F928F929F92AF92BF92CF921C +:100C9000DF92EF92FF920F931F93DF93CF93CDB725 +:100CA000DEB768970FB6F894DEBF0FBECDBF85B72D +:100CB000806885BF85B7806885BF0E947505AE01D5 +:100CC0004F5F5F4F60E070E0EE24FF24CC24DD2412 +:100CD000AA24BB24882499242A0101E010E039E1E8 +:100CE000632E712C6C0E7D1ED201ECE3F1E088E1E5 +:100CF00001900D928150E1F7FA01808191819C0170 +:100D0000207F30702032310559F48F709070980137 +:100D100002C0220F331F8A95E2F7622B732B37C074 +:100D20002033310559F48F709070F80102C0EE0F36 +:100D3000FF1F8A95E2F7EE2AFF2A29C020343105E9 +:100D400059F48F709070980102C0220F331F8A955A +:100D5000E2F7C22AD32A1BC02035310559F48F701F +:100D60009070F80102C0EE0FFF1F8A95E2F7AE2ADD +:100D7000BF2A0DC02036310551F48F709070980154 +:100D800002C0220F331F8A95E2F7822A932A4E5F10 +:100D90005F4F4615570509F0A7CF24B1962F862F30 +:100DA0008095822384B985B1982B95B927B19E2D62 +:100DB0008E2D8095822387B988B1982B98B92AB156 +:100DC0009C2D8C2D809582238AB98BB1982B9BB951 +:100DD0002DB19A2D8A2D809582238DB98EB1982BB5 +:100DE0009EB920B3982D882D8095822380BB81B336 +:100DF000982B91BB80E090E0FC01E95AFE4F1182F4 +:100E00001082FC01E15AFE4F118210820296883056 +:100E1000910591F70E94670268960FB6F894DEBFBD +:100E20000FBECDBFCF91DF911F910F91FF90EF903B +:100E3000DF90CF90BF90AF909F908F907F906F90FA +:100E40005F904F9008954F925F926F927F928F9232 +:100E50009F92AF92BF92CF92DF92EF92FF920F9349 +:100E60001F93DF93CF93CDB7DEB7A0970FB6F8945B +:100E7000DEBF0FBECDBF909000016E010894C11C73 +:100E8000D11CEFE5AE2EE1E0BE2EC6015C2C892E12 +:100E900071E0E72EF12C60EA462E59E0652E712CA8 +:100EA0006C0E7D1E852D982DDC01E4E1F1E088E0DB +:100EB00001900D928150E1F7F60120813181C90145 +:100EC000807F90708032910589F484B12F703070EA +:100ED000A70102C0440F551F2A95E2F79A01842BFF +:100EE00084B985B12095282325B94FC08033910559 +:100EF00089F487B12F703070F70102C0EE0FFF1F29 +:100F00002A95E2F79F018E2B87B988B12095282377 +:100F100028B93BC08034910589F48AB12F703070B4 +:100F2000A70102C0440F551F2A95E2F79A01842BAE +:100F30008AB98BB1209528232BB927C0803591051C +:100F400089F48DB12F703070F70102C0EE0FFF1FD2 +:100F50002A95E2F79F018E2B8DB98EB1209528231B +:100F60002EB913C08036910581F480B32F70307094 +:100F7000A70102C0440F551F2A95E2F79A01842B5E +:100F800080BB81B32095282321BB842D8A95F1F75E +:100F9000830160E070E040E050E0D301ECE1F1E07B +:100FA00088E101900D928150E1F7F80120813181B3 +:100FB000C901807F90708032910511F483B113C014 +:100FC0008033910511F486B10EC08034910511F47F +:100FD00089B109C08035910511F48CB104C0803607 +:100FE0009105B9F48FB190E02F70307002C09595E3 +:100FF00087952A95E2F780FF03C080E090E007C064 +:10100000C701062E02C0880F991F0A94E2F7482BE9 +:10101000592B6F5F7F4F0E5F1F4F6C30710509F0CA +:10102000BCCFF501808191818417950721F0518310 +:10103000408345E0942E0E94750542E050E0C40EC6 +:10104000D51EA40EB51EC614D70409F02BCF90925E +:101050000001992059F1892D815080930001882346 +:1010600029F080EA9FE00197F1F720C080915F01AD +:101070009091600190935801809357018091610194 +:101080009091620190935A0180935901809163017C +:101090009091640190935C0180935B018091650164 +:1010A0009091660190935E0180935D010E9404021D +:1010B00081E0A0960FB6F894DEBF0FBECDBFCF91F2 +:1010C000DF911F910F91FF90EF90DF90CF90BF9035 +:1010D000AF909F908F907F906F905F904F9008950A +:1010E0001092E1010895089508958091680108958E +:1010F000DF93CF9300D00F92CDB7DEB7AC018091D4 +:10110000E201843029F583E08093E9002FEF95ED2B +:1011100005C0892F8A95F1F7222329F08091E800F4 +:10112000215085FFF6CF8091E80085FF11C05B83D9 +:101130004A8383E08983CE01019663E070E040E05A +:1011400050E00E94A70B8091E8008E778093E80022 +:101150000F900F900F90CF91DF910895DF93CF9371 +:1011600000D00F92CDB7DEB7AC018091E2018430A0 +:1011700029F583E08093E9002FEF95ED05C0892FD5 +:101180008A95F1F7222329F08091E800215085FF0C +:10119000F6CF8091E80085FF11C05B834A8382E02F +:1011A0008983CE01019663E070E040E050E00E9448 +:1011B000A70B8091E8008E778093E8000F900F9046 +:1011C0000F90CF91DF910895AC018091E2018430BE +:1011D00001F582E08093E9002FEF95ED05C0892F9E +:1011E0008A95F1F7222329F08091E800215085FFAC +:1011F000F6CF8091E80085FF0CC0CA0165E070E081 +:1012000040E050E00E94A70B8091E8008E77809329 +:10121000E80008950F931F93182F092F8091E20182 +:10122000843061F581E08093E9009FEF25ED05C0F2 +:10123000822F8A95F1F7992329F08091E800915047 +:1012400085FFF6CF8091E80085FF18C0812F902F91 +:1012500068E070E040E050E00E94A70B8091E80059 +:101260008E778093E800A9E6B1E0212F302FC901E5 +:10127000FC0188E001900D928150E1F71F910F91E0 +:10128000089584B7877F84BF88E10FB6F894809370 +:101290006000109260000FBE80E090E020E80FB682 +:1012A000F89420936100809361000FBE0E94F30FB9 +:1012B0000E94850C0E94E60C8091E200846080937D +:1012C000E20078940E94840F0E94A81082E091E0CE +:1012D0000E949A0F0CC00E94F61B8091E0018823A7 +:1012E00031F00E94221C882311F00E94BC0A8091D8 +:1012F000E201853081F30E94F90FF9CF8091E1017D +:10130000882349F40E94850C0E94E60C8091E2003B +:1013100084608093E20008958091E401833009F4B1 +:1013200055C0843030F4813071F0823009F0AFC0A4 +:1013300096C08A3009F483C08B3009F468C08930C4 +:1013400009F0A5C020C08091E301813A09F09FC057 +:101350008091E800877F8093E8008091E701909179 +:10136000E801892B21F489E691E068E003C080E080 +:1013700090E060E070E00E94D20A8091E8008B77F4 +:101380008093E80008958091E301813209F07FC0E5 +:101390008091E7019091E801892B09F078C0809154 +:1013A000E800877F8093E80005C08091E2018823F0 +:1013B00009F46DC08091E80082FFF7CF8091F100C1 +:1013C000809368018091E8008B771CC08091E301D5 +:1013D000813A09F05CC08091E7019091E801892B86 +:1013E00009F055C08091E800877F8093E8008091E4 +:1013F000E80080FFFCCF809101018093F100809193 +:10140000E8008E778093E8000E94320C0895809166 +:10141000E3018132E1F58091E7019091E801892BA8 +:10142000B1F58091E800877F8093E8000E94320C3C +:101430008091E501809301010E9417110895809128 +:10144000E301813221F58091E800877F8093E800F5 +:101450000E94320C8091E60180936701089580918B +:10146000E301813AA1F48091E800877F8093E8004E +:101470008091E80080FFFCCF809167018093F100AC +:101480008091E8008E778093E8000E94320C0895E6 +:1014900081E061EC42E00E94FA0B82E061EC42E004 +:1014A0000E94FA0B83E061EC42E00E94FA0B08957F +:1014B0000E94EA1B0895DA019330C1F0943030F4B1 +:1014C000913051F0923009F04FC00BC0913221F1B0 +:1014D000923209F049C032C0EEE8F2E022E130E099 +:1014E00047C0E0EAF2E024E530E042C0813051F04C +:1014F000813020F0823009F037C008C0E4EFF2E01C +:10150000849107C0E8EFF2E0849103C0E6E2F3E0E3 +:101510008491282F30E02CC0613041F0613018F008 +:10152000623011F508C0E2EBF2E002C0EBECF2E051 +:1015300029E030E01DC0E4EEF2E0FACF613051F076 +:10154000613018F0623081F40AC0ECECF1E02FE376 +:1015500030E00EC0EBE0F2E02DE430E009C0E8E559 +:10156000F2E026E330E004C0E0E0F0E020E030E02C +:10157000ED93FC93C901089580E189BD82E189BDA5 +:1015800009B400FEFDCF8091D8008F7D8093D800F4 +:101590008091E00082608093E0008091E00081FD16 +:1015A000FCCF08959C014091E9015091EA01461752 +:1015B000570718F4F90190E043C06115710511F067 +:1015C000AB01F8CF8091E8008E778093E80040E08F +:1015D00050E0F0CF8091E201882309F447C08530C4 +:1015E00009F446C08091E80083FD44C08091E80082 +:1015F00082FD36C08091E80080FF22C08091F30018 +:101600009091F200782F60E0292F30E0262B372BC5 +:1016100007C081918093F100415050402F5F3F4FB0 +:101620004115510519F02830310598F390E0283024 +:10163000310509F491E08091E8008E778093E8000D +:101640004115510539F6992329F60AC08091E20126 +:10165000882361F0853061F08091E80083FD0AC045 +:101660008091E80082FFF2CF80E0089582E0089543 +:1016700083E0089581E008959C014091E901509133 +:10168000EA014617570718F4F90190E044C06115C4 +:10169000710511F0AB01F8CF8091E8008E7780934F +:1016A000E80040E050E0F0CF8091E201882309F4A7 +:1016B00048C0853009F447C08091E80083FD45C0EB +:1016C0008091E80082FD37C08091E80080FF23C050 +:1016D0008091F3009091F200782F60E0292F30E0A4 +:1016E000262B372B08C084918093F100319641500E +:1016F00050402F5F3F4F4115510519F028303105FB +:1017000090F390E02830310509F491E08091E800F1 +:101710008E778093E8004115510531F6992321F623 +:101720000AC08091E201882361F0853061F08091E8 +:10173000E80083FD0AC08091E80082FFF2CF80E0DC +:10174000089582E0089583E0089581E00895BF92AE +:10175000CF92DF92EF92FF920F931F93CF93DF937D +:10176000182F092F7B016A010E94530CB82E882381 +:10177000B1F5812F902F9C01E901C114D10439F0FA +:10178000F60180819181E81AF90AC80FD91F00E09B +:1017900010E022C08091E80085FD16C08091E8002D +:1017A0008E778093E800C114D10449F0F60180815E +:1017B0009181800F911F9183808385E011C00E94E9 +:1017C000530C882349F00CC089918093F100089450 +:1017D000E108F1080F5F1F4FE114F104D9F68B2DDA +:1017E000DF91CF911F910F91FF90EF90DF90CF90FD +:1017F000BF900895382F282F2EC0822F8F7080938E +:10180000E900231721F4762F942F50E006C0709141 +:10181000EC009091ED005091F00091FF1BC0809181 +:10182000EB008E7F8093EB008091ED008D7F8093A5 +:10183000ED008091EB0081608093EB007093EC00F1 +:101840009093ED005093F0008091EE0087FD02C070 +:1018500080E008952F5F273080F23F703093E900D9 +:1018600081E008958091E30188239CF404C0809175 +:10187000E2018823B9F08091E80082FFF8CF8091DF +:10188000E8008B778093E80008958091E201882337 +:1018900049F08091E80080FFF8CF8091E8008E77D2 +:1018A0008093E80008954091E4005091E50024E61B +:1018B0008091EC0080FF24C08091E80080FD1EC074 +:1018C0008091E201882311F482E00895853011F4BB +:1018D00083E008958091EB0085FF02C081E00895C8 +:1018E0008091E4009091E5008417950709F3222385 +:1018F00011F484E008952150AC01DACF80E008951E +:101900008091E80082FFDCCFF9CF0E94F80C0E94A2 +:10191000000DE0EEF0E0808181608083A8EDB0E012 +:101920008C918F778C9319BCE7EDF0E080818E7FEE +:1019300080838C918F7E8C931092E1010895EF92B9 +:10194000FF920F931F930E94F80C0E94000D08ED68 +:1019500010E0F80180818F778083808180688083A8 +:1019600080818F7D808319BC1092E2011092DE018C +:101970001092E0011092DF0180EEE82EF12CF701C9 +:1019800080818B7F8083F80180818160808380E00B +:1019900060E042E00E94FA0BE1EEF0E080818E7F91 +:1019A0008083E2EEF0E080818160808380818860C6 +:1019B0008083F70180818E7F8083F8018081806140 +:1019C00080831F910F91FF90EF900895E8EDF0E074 +:1019D00080818F7E8083E7EDF0E08081816080836D +:1019E00084E082BF81E08093E1010E949F0C089512 +:1019F000E8EDF0E080818E7F80831092E200089510 +:101A00001092DA001092E10008951F920F920FB623 +:101A10000F9211241F932F933F934F935F936F93D4 +:101A20007F938F939F93AF93BF93EF93FF93109107 +:101A3000E9008091EC001092E9008091F000877F2E +:101A40008093F00078940E94130E1092E900809128 +:101A5000F00088608093F0001F701093E900FF9100 +:101A6000EF91BF91AF919F918F917F916F915F9116 +:101A70004F913F912F911F910F900FBE0F901F908C +:101A800018951F920F920FB60F9211242F933F9328 +:101A90004F935F936F937F938F939F93AF93BF9376 +:101AA000EF93FF938091E10082FF0BC08091E200F1 +:101AB00082FF07C08091E1008B7F8093E1000E944C +:101AC000830F8091DA0080FF1FC08091D80080FFD3 +:101AD0001BC08091DA008E7F8093DA008091D9005C +:101AE00080FF0DC080E189BD82E189BD09B400FE9F +:101AF000FDCF81E08093E2010E947E0905C019BC00 +:101B00001092E2010E9470088091E10080FF19C0EC +:101B10008091E20080FF15C08091E2008E7F80936B +:101B2000E2008091E20080618093E2008091D80021 +:101B300080628093D80019BC85E08093E2010E9406 +:101B400074088091E10084FF30C08091E20084FF3E +:101B50002CC080E189BD82E189BD09B400FEFDCFC2 +:101B60008091D8008F7D8093D8008091E1008F7E96 +:101B70008093E1008091E2008F7E8093E20080916B +:101B8000E20081608093E2008091DE01882311F001 +:101B900084E007C08091E30087FD02C081E001C0BE +:101BA00083E08093E2010E94580A8091E10083FF64 +:101BB00029C08091E20083FF25C08091E100877FEA +:101BC0008093E10082E08093E2011092DE01809137 +:101BD000E1008E7F8093E1008091E2008E7F809310 +:101BE000E2008091E20080618093E20080E060E0AA +:101BF00042E00E94FA0B8091F00088608093F00030 +:101C00000E947308FF91EF91BF91AF919F918F91C7 +:101C10007F916F915F914F913F912F910F900FBEE8 +:101C20000F901F9018951F93DF93CF93CDB7DEB71A +:101C3000AC970FB6F894DEBF0FBECDBFE3EEF1E078 +:101C40008091F100819321E0EB3EF207C9F70E94F9 +:101C50008C098091E80083FF3EC18091E3013091BF +:101C6000E401353009F487C0363040F43130C9F131 +:101C7000313070F0333009F02EC133C0383009F400 +:101C8000F9C0393009F409C1363009F024C197C0D0 +:101C9000803821F0823809F01EC108C09091DF0120 +:101CA0008091E001882399F0926011C08091E70152 +:101CB0008F708093E9008091EB0090E025E096958D +:101CC00087952A95E1F7982F91701092E9008091FD +:101CD000E800877F8093E8009093F1001092F10074 +:101CE000D4C0882319F0823009F0F5C090E08F71DC +:101CF0009070009721F0029709F0EDC00CC0809120 +:101D0000E501813009F0E7C01092E001333069F558 +:101D10008093E0012AC08091E501882331F520916C +:101D2000E7012F7009F4D7C02093E9008091EB0000 +:101D300080FF1BC0333021F48091EB00806213C020 +:101D40008091EB0080618093EB0081E090E002C025 +:101D5000880F991F2A95E2F78093EA001092EA0013 +:101D60008091EB0088608093EB001092E9008091F5 +:101D7000E800877F8DC0882309F0ADC01091E50190 +:101D80001F778091E3008078812B8093E30080911E +:101D9000E800877F8093E8000E94320C8091E80081 +:101DA00080FFFCCF8091E30080688093E3001123E3 +:101DB00011F482E001C083E08093E2018CC080587E +:101DC000823008F088C08091E5019091E60123E01F +:101DD0008C3D920709F034C083E08C838AE28B83C8 +:101DE0007FB7F894DE0115966EE040E050E011E216 +:101DF000E62FF0E010935700849140FF03C08295D6 +:101E00008F706F5F8F70282F30E08A3018F0C90113 +:101E1000C79602C0C901C0968D939D934F5F5F4FD7 +:101E20004431510529F77FBF8091E800877F809377 +:101E3000E800CE0103966AE270E00E94D20A14C064 +:101E40006091E701AE014F5F5F4F0E945B0ABC01EA +:101E5000009709F440C08091E800877F8093E800F4 +:101E600089819A810E943C0B8091E8008B77809356 +:101E7000E80031C0803879F58091E800877F809351 +:101E8000E8008091DE018093F1008091E8008E7778 +:101E90008093E8000E94320C1EC08823E1F49091E8 +:101EA000E5019230C0F48091E800877F8093E800DC +:101EB0009093DE010E94320C8091DE01882331F480 +:101EC0008091E30087FD02C081E001C084E080933F +:101ED000E2010E94480A8091E80083FF0AC08091D5 +:101EE000E800877F8093E8008091EB008062809318 +:101EF000EB00AC960FB6F894DEBF0FBECDBFCF910E +:101F0000DF911F91089508951F938091E201882326 +:101F100079F01091E9008091EC001092E900809135 +:101F2000E80083FF02C00E94130E1F701093E900A7 +:101F30001F91089590937601809375010895E09123 +:101F40007501F0917601309711F480E008950190C9 +:101F5000F081E02D09950895E0917501F0917601E9 +:101F6000309721F00280F381E02D09950895E091EA +:101F70007501F0917601309721F00480F581E02D14 +:101F8000099508959C01809173019091740128171F +:101F9000390779F03093740120937301E091750152 +:101FA000F0917601309729F00680F781E02DC90184 +:101FB000099508959C0180917101909172012817F3 +:101FC000390779F03093720120937101E091750126 +:101FD000F0917601309729F00084F185E02DC90158 +:101FE0000995089508950E94F20F08950E946805CA +:101FF00008952F923F925F926F927F928F929F925D +:10200000AF92BF92CF92DF92EF92FF920F931F9306 +:10201000DF93CF93CDB7DEB72A970FB6F894DEBF24 +:102020000FBECDBF0E94230728E7822E21E0922E0B +:10203000AA24BB2491E0292E312C5A2C8A2D0E94EF +:102040006B056C01F401E080F180E826F926E114CB +:10205000F104E1F18091CD0181FF02C00E9474057D +:1020600000E010E03101002E02C0660C771C0A94DB +:10207000E2F7C3018E219F21892B19F10E944C1C8C +:102080009C0109835A821B82C620D720CD2811F0DB +:1020900081E08B83C9018160782F9D838C83498186 +:1020A0005A816B818D810E941C15F501EE0FFF1F77 +:1020B000E858FE4F80819181862597259183808302 +:1020C00021C00F5F1F4F0C30110561F60894A11C51 +:1020D000B11C82E090E0880E991E94E0A916B1042C +:1020E00009F0ABCF0E944C1C2FEF2E832F83188654 +:1020F0008160782F9A8789874FEF5FEF60E08A854C +:102100000E941C150E94B41E109177010E949F0F1F +:10211000181731F00E949F0F809377010E94F60FED +:102120002A960FB6F894DEBF0FBECDBFCF91DF91D8 +:102130001F910F91FF90EF90DF90CF90BF90AF90E5 +:102140009F908F907F906F905F903F902F90089519 +:102150000E94431C0E943F060E94CD1C0E942A221E +:102160000895DF93CF9300D000D00F92CDB7DEB7A4 +:102170000F900F900F900F900F90CF91DF910895D7 +:10218000DF93CF9300D000D000D0CDB7DEB7269636 +:102190000FB6F894DEBF0FBECDBFCF91DF9108958B +:1021A0000E94DA19482F892F82958F70282F30E0EE +:1021B0002C3031054CF42A3031056CF4225030407B +:1021C00022303105E8F407C02C30310579F02F308A +:1021D0003105B1F40BC0403F39F0413F18F4403EA7 +:1021E00078F402C0443F61F481E008959F70892F24 +:1021F00090E023E0969587952A95E1F78170089500 +:1022000080E008950E94431B0E94531B0E94181BEC +:102210000E946B1B0E949D1E0E94A91E80E090E000 +:102220000E94C20F80E090E00E94DA0F08950E94A1 +:10223000331B0E9402110895882321F00E942C1B59 +:102240000E946B1B0895882321F00E94261B0E9488 +:102250006B1B0895282F882309F44EC0823859F447 +:102260000E949F0F81FF48C089E30E94E71A0E94E5 +:102270006B1B89E30CC0833869F40E949F0F80FFB9 +:102280003BC083E50E94E71A0E946B1B83E50E9416 +:10229000051B1FC0843859F40E949F0F82FF2CC079 +:1022A00087E40E94E71A0E946B1B87E4F0CF8450FA +:1022B000813A10F4822FEBCF822F805E883060F459 +:1022C000277081E090E001C0880F2A95EAF70E940C +:1022D0002C1B0E946B1B0895822F855A833028F493 +:1022E00080E090E00E94C20F0895285A233120F424 +:1022F00080E090E00E94DA0F08951F93182F882342 +:1023000009F4D0C0823859F40E949F0F81FDCAC0E1 +:1023100089E30E94E71A0E946B1B89E30CC0833893 +:1023200079F40E949F0F80FDBDC083E50E94E71AEB +:102330000E946B1B83E50E94051B0E946B1BB2C0B1 +:10234000843859F40E949F0F82FDACC087E40E943C +:10235000E71A0E946B1B87E4EECF8450813A50F459 +:10236000812F0E94D020882309F09CC0812F0E94D9 +:10237000E71AE3CF812F805E883050F4177081E038 +:1023800090E001C0880F1A95EAF70E94261BD5CF6E +:10239000812F855A8330A0F4153A19F481E890E032 +:1023A0000CC0163A19F482E890E007C0173A19F009 +:1023B00080E090E002C083E890E00E94C20F72C00B +:1023C000812F885A833108F06DC0183A19F482EED3 +:1023D00090E066C0193A19F489EE90E061C01A3AAB +:1023E00019F48AEE90E05CC01B3A19F485EB90E09A +:1023F00057C01C3A19F486EB90E052C01B3B19F40D +:1024000083EB90E04DC01C3B19F484EB90E048C096 +:102410001D3A19F487EB90E043C0103B19F48CECA3 +:1024200090E03EC01E3A19F48DEC90E039C01F3A9E +:1024300019F483E891E034C0113B19F48AE891E083 +:102440002FC0123B19F482E991E02AC0133B19F422 +:1024500084E991E025C0143B19F481E292E020C0A8 +:10246000153B19F483E292E01BC0163B19F484E299 +:1024700092E016C0173B19F485E292E011C0183BB8 +:1024800019F486E292E00CC0193B19F487E292E05D +:1024900007C01A3B19F080E090E002C08AE292E0A7 +:1024A0000E94DA0F1F9108959F92AF92BF92CF9230 +:1024B000DF92EF92FF920F931F93DF93CF93CDB7ED +:1024C000DEB72A970FB6F894DEBF0FBECDBF5C0112 +:1024D000DE011196FC0185E001900D928150E1F73B +:1024E0000B81F501F580F2944FE0F422DE0116969F +:1024F000FE01319685E001900D928150E1F73E8119 +:102500002F8189859A85892B09F484C22F3F09F090 +:1025100070C23F3F09F06DC27DC20E94431B0E9402 +:10252000E11A882379F0002369F08C2D805E8830D1 +:1025300048F082E00E949C1B0E94E11A9924939427 +:10254000982601C099248D2D82958F7090E085305A +:10255000910509F4B5C08630910554F48430910595 +:102560000CF08FC02D2D207F02970CF049C017C0B2 +:102570008C30910544F48A3091050CF072C10897B3 +:1025800009F023C2A9C08D30910509F4EDC18D3049 +:1025900091050CF4DFC10F9709F017C20FC28D2D02 +:1025A0008F70222311F4182F03C0182F1295107F5B +:1025B000002389F0112309F4B9C18C2D805E883085 +:1025C00020F4812F0E94261B03C0812F0E94361BFE +:1025D0000E946B1BABC18C2D0E942A11112309F4A0 +:1025E000F4C1F0E2CF0E27E02C1520F0812F0E94DD +:1025F0002C1B03C0812F0E943C1B0E946B1BE5C15A +:102600008D2D8F70203211F4182F03C0182F1295C2 +:10261000107FCC2021F081E0C81609F514C00023FA +:1026200049F0FF2031F1E1E0FE1619F5812F0E94FB +:10263000561BCBC1FF2021F0F1E0FF1609F4C5C104 +:102640000E94591B30C1002329F025E02F1508F402 +:10265000BCC10FC084E08F1508F4B7C124C10023AA +:1026600061F0FF2031F0F501858180FF5FC18F703F +:102670008583812F0E942311A8C1FF2009F413C173 +:1026800060C18D2D86958695837090E0009721F02E +:10269000019709F09AC10AC0002319F0C60193708E +:1026A00002C080E090E00E94C20F8FC1002319F0A9 +:1026B000C601937002C080E090E00E94DA0F85C1ED +:1026C000002321F08C2D0E94AB1D03C08C2D0E9495 +:1026D000151E0E94A91E79C18D2D837009F05EC060 +:1026E000002309F072C12C2D229526952770220F08 +:1026F000220F8C2D8F70E82EFF2400E010E0022EB8 +:1027000004C0EE0CFF1C001F111F0A94D2F7C4FC7A +:1027100005C060E070E080E090E00FC06FE070E026 +:1027200080E090E004C0660F771F881F991F2A95EC +:10273000D2F76095709580959095D694D694F3E0F5 +:10274000DF224D2D50E041305105A9F042305105B6 +:102750001CF4452B49F039C14230510589F0433012 +:10276000510509F032C113C06E297F29802B912BAE +:102770000E94B21A2AC16E297F29802B912B0BC08F +:102780006E297F29802B912B0E94A11A1EC10E94C5 +:10279000B21AC801B7010E94C31A17C190E0002302 +:1027A00011F496958795817009F40FC12C2D22950F +:1027B00026952770220F220F8C2D8F70E82EFF2474 +:1027C00000E010E0022E04C0EE0CFF1C001F111FE1 +:1027D0000A94D2F7C4FC05C060E070E080E090E0AD +:1027E0000FC06FE070E080E090E004C0660F771FDC +:1027F000881F991F2A95D2F76095709580959095BE +:10280000D694D69423E0D2224D2D50E0413051058C +:10281000A9F0423051051CF4452B49F0D6C0423096 +:10282000510589F04330510509F0CFC013C06E291E +:102830007F29802B912B0E94051AC7C06E297F2902 +:10284000802B912B0BC06E297F29802B912B0E940E +:10285000F419BBC00E94051AC801B7010E94161ADC +:10286000B4C081EFC81699F18C1540F0E0EECE1699 +:1028700008F458C0FFEEFC1558F419C023EFC21637 +:1028800081F1C21648F184EFC81609F04BC033C07D +:102890001C2D1F708D2D8F71002319F00E94631A5B +:1028A000E8CE0E94431A812F0E941C118EC0002383 +:1028B00029F0E4E0EF1508F488C004C0F5E0FF1546 +:1028C00008F483C08D2D8F710E94271A7EC08D2D34 +:1028D0008F710023E1F130C08D2D8F71002361F1E4 +:1028E00036C0002329F08D2D8F710E947F1A6DC094 +:1028F0000E948F1A6AC0002351F01D2D1F71812F75 +:102900000E94631A812F63E00E94B51B5EC081E0C4 +:102910000E949C1B21E02F1508F057C082E00E9406 +:102920009C1B53C0002359F0FF2021F08C2D0E94E6 +:102930007D114BC08D2D8F710E94631A46C0FF2000 +:1029400021F08C2D0E942A1140C08D2D8F710E9484 +:10295000431A3BC08FE0D822C5016C2D4D2D0E943B +:10296000EE010E94181931C0002379F5EFE0DE2254 +:102970004D2D50E042305105B9F0433051053CF443 +:102980004115510559F041305105F9F40AC0433061 +:10299000510569F044305105C1F40CC00E94152264 +:1029A00014C00E94F82111C00E94E3210EC00E94B1 +:1029B000BC210BC08C2D0E94A02107C0FFE0DF22AC +:1029C000C5016C2D4D2D0E946E02992019F10E94B7 +:1029D000DD1A80FD1FC0F50112820E94D71A0E94E5 +:1029E000631AC5010E9454120E94D71A0E94431A0A +:1029F00011C0C5010E94070269817A81802F0E945F +:102A0000E5196C010E9492190E949119002309F4A2 +:102A100086CD83CD2A960FB6F894DEBF0FBECDBF0C +:102A2000CF91DF911F910F91FF90EF90DF90CF90AA +:102A3000BF90AF909F900895DF93CF93CDB7DEB74F +:102A40002B970FB6F894DEBF0FBECDBF342F4F8348 +:102A5000252F588769877A878B87472F582FFE0144 +:102A6000319686E0DF011D928A95E9F76B83398301 +:102A70002A834C835D83432F522F8D819E810E9438 +:102A800059182B960FB6F894DEBF0FBECDBFCF916D +:102A9000DF9108950F931F930091870115C010E0F7 +:102AA000F801EE0FFF1FE00FF11FEE0FFF1FE857B9 +:102AB000FE4F4081518162817381848195810E94A2 +:102AC000C0100F5F1F4F077080918601081739F7FC +:102AD0001F910F9108954091800150918101609163 +:102AE00082017091830180918401909185010E94FF +:102AF000C01008950F931F93CF93DF9380918501AA +:102B000082958F7009F06DC080918201882309F44D +:102B100068C06091870100918601409183015091C6 +:102B200084011091810170918001EA01C095D095D6 +:102B300055C04115510509F44FC01F3F49F480E0CD +:102B400090E07F3F11F481E090E0882309F044C0D9 +:102B5000262F30E0F901EE0FFF1FE20FF31FDF0118 +:102B6000AA0FBB1FA857BE4F11968C91119718172B +:102B700099F58C91781781F5EE0FFF1FE657FE4F00 +:102B80008081882349F513968D919C911497841721 +:102B9000950718F0841B950B02C08C0F9D1F883C75 +:102BA0009105D0F4809185018F70806180938501BB +:102BB000F901EE0FFF1FE20FF31FEE0FFF1FE357A8 +:102BC000FE4F80818F708061808380E891E00E9459 +:102BD00054120E944A1505C06F5F6770601709F0B4 +:102BE000A8CFDF91CF911F910F910895DF92EF92BF +:102BF000FF920F931F93DF93CF93CDB7DEB76B9701 +:102C00000FB6F894DEBF0FBECDBF8C01DC0112966B +:102C1000DC9012974C9111965C9111971396ED9060 +:102C2000FC9014972091830130918401609181017F +:102C3000709180012115310509F4DBC16F3F09F066 +:102C400003C27F3F09F000C2D4C1E216F30640F090 +:102C5000C701821B930B883C910508F0EEC008C0A9 +:102C6000209530952E0D3F1D283C310508F0E5C01C +:102C700080918501807F09F095C06F3F09F0EAC11E +:102C80007F3F09F0E7C115C0741799F4DD2089F47E +:102C9000809185018F708061809385010E946B1502 +:102CA00080E891E00E94541280918501F8018583AB +:102CB000BCC1FD82EC825A834983DB82DE01169619 +:102CC000FE01319685E001900D928150E1F7688513 +:102CD000DE011B96FE01369685E001900D92815033 +:102CE000E1F72C853B858E859F85892B09F451C0A2 +:102CF0002F3F09F0B3C13F3F09F0B0C14AC0FD8288 +:102D0000EC825A834983DB82DE011B96FE013196F9 +:102D100085E001900D928150E1F7FC847B856D8503 +:102D200080918701909186011FC0282F30E0F90122 +:102D3000EE0FFF1FE20FF31FDF01AA0FBB1FA85703 +:102D4000BE4F11968C911197F81651F48C9178170B +:102D500039F4EE0FFF1FE657FE4F80816817C9F464 +:102D60002F5F3F4F822F87708917F9F68DC19F70B3 +:102D700059F0442349F459C19F7031F0D801159698 +:102D80008C91807F09F451C1405E483008F44DC1F8 +:102D900048C1DD2009F449C180918501816080939B +:102DA000850143C16F3F09F05DC17F3F09F05AC102 +:102DB00014C0741791F4DD2081F480918501F8012D +:102DC0008583C8010E945412A0E8B1E0F80186E0B2 +:102DD00001900D928150E1F720C15A834983898186 +:102DE0009A810E94D010882309F41BC1DD2009F4C8 +:102DF00018C130918501832F82958F7090E00297E2 +:102E00009CF09091810120918001FE01709686E0F6 +:102E1000DF011D928A95E9F7998B288BFC8AEB8A52 +:102E20003D8BCF010E945412A0E8B1E0F80186E08A +:102E300001900D928150E1F7EEC080918501807F75 +:102E4000A9F47E2DFD82EC825A834983DB826D2DAD +:102E50008D810E94B11000E811E0C8010E94541257 +:102E600086E0F80111928A95E9F7C0C06F3F09F03A +:102E7000FDC07F3F09F0FAC014C0741791F4DD2043 +:102E800081F480918501D80115968C93C8010E9428 +:102E90005412E0E8F1E086E0DF011D928A95E9F73F +:102EA000BEC05A83498389819A810E94D0108823A9 +:102EB00009F4B7C0DD2009F4B4C030918501832F37 +:102EC00082958F7090E002979CF090918101209103 +:102ED0008001FE01769686E0DF011D928A95E9F772 +:102EE0009F8B2E8BFA8EE98E3B8FCF010E9454125E +:102EF000A0E8B1E0F80186E001900D928150E1F781 +:102F00008AC06F3F09F0B6C07F3F09F0B3C071C0FF +:102F1000E216F30640F0C701821B930B883C910533 +:102F200008F053C008C0209530952E0D3F1D283C59 +:102F3000310508F04AC0DD2009F473C06F3F09F085 +:102F40009FC07F3F09F09CC029C0741739F590914C +:102F5000850190FD1AC0892F82958F70B1F0F8011C +:102F600095838F3031F08F5F8295807F9F70982B93 +:102F70009583C8010E945412A0E8B1E0F80186E0F0 +:102F800001900D928150E1F748C0A0E8B1E0F8014E +:102F900086E001900D928150E1F741C05A83498348 +:102FA00089819A810E94D010882349F0A0E8B1E07D +:102FB000F80186E001900D928150E1F72CC08091DC +:102FC00085018160809385012CC07E2DFD82EC827D +:102FD0005A834983DB826D2D8D810E94B110E0E818 +:102FE000F1E086E0DF011D928A95E9F70E946B15FA +:102FF0001CC0DD20B1F05A83498389819A810E94E7 +:10300000D010882371F0A0E8B1E0F80186E00190CB +:103010000D928150E1F70E947A150E946B1581E0B4 +:1030200005C0C8010E945412FACF80E06B960FB61B +:10303000F894DEBF0FBECDBFCF91DF911F910F91EE +:10304000FF90EF90DF90089580918201882309F42A +:1030500058CFFBCD651709F02CCE16CE613009F4A0 +:1030600098CE4DCE651709F0B8CEA3CE651709F0FE +:1030700018CF03CF80918201882309F0BACF48CFBF +:10308000651709F08BCF61CF5A83498389819A8173 +:103090000E94DA19482F892F82958F70282F30E0EF +:1030A000223031050CF463CE243031050CF0B9CF59 +:1030B00063CE0F931F93DF93CF93CDB7DEB72C97DB +:1030C0000FB6F894DEBF0FBECDBF4F835887698718 +:1030D0007A878B879C878E01095F1F4FC8010E94EA +:1030E000F6158823D9F028853F818A859B85892B11 +:1030F00009F46BC02F3F49F480E090E03F3F11F4AA +:1031000081E090E0882309F060C04F81588569858F +:103110007A858B859C850E94C01057C0DE01119670 +:10312000F80186E001900D928150E1F7F981EA8182 +:103130004C815D814115510509F447C0EF3F09F00D +:103140004CC0FF3F09F049C040C0F983EA835D836A +:103150004C83F901EE0FFF1FE20FF31FEE0FFF1F6D +:10316000E857FE4FDE01119686E00D9001928150E6 +:10317000E1F7609386010E944A1527C0919FC00124 +:10318000112488579E4F0E94F615882309F445C0E4 +:103190008091870190E0FC01EE0FFF1FE80FF91FFF +:1031A000EE0FFF1FE857FE4F40815181628173810E +:1031B000848195810E94C0108091870190E00196E2 +:1031C000877090708093870101C016E0909187010D +:1031D00080918601981791F620C080918601282F52 +:1031E00030E02F5F3F4FB901677070702150304061 +:1031F0008091870190E06817790709F0A6CF0E94B7 +:1032000017111092860110928701E0E8F1E086E044 +:10321000DF011D928A95E9F7D8CF2C960FB6F89466 +:10322000DEBF0FBECDBFCF91DF911F910F910895EB +:10323000CF92DF92EF92FF921F93CF93DF93EC0137 +:10324000009709F466C010E090EAC92E9FE0D92EDD +:1032500081E0E82EF12CFE0121969491943748F4F8 +:10326000943008F044C0913079F0923009F051C0A8 +:103270001BC0953709F437C0953750F1892F845812 +:10328000803708F046C037C0FE0121969491892FFF +:10329000805E883060F597708E2D01C0880F9A95FA +:1032A000EAF70E94461B0FC0FE0121969491892FD8 +:1032B000805E883058F497708E2D01C0880F9A95E3 +:1032C000EAF70E944C1B0E946B1B19C0892F15C086 +:1032D000FE01249104C0C6010197F1F72150222379 +:1032E000D1F721960CC0FE012196149108C0892FB8 +:1032F0000E947D1104C0892F8F770E942A11212FEF +:1033000004C0C6010197F1F72150222309F4A3CF8D +:10331000F8CFDF91CF911F91FF90EF90DF90CF908A +:10332000089508950895AF92BF92DF92EF92FF92B1 +:103330000F931F93CF93DF935C01E090B801F0905F +:10334000B9010091BA011091BB018091BC0190912B +:10335000BD01A091BE01B091BF01E82AF92A0A2B54 +:103360001B2BCFE1D0E0DC2ED801C7010C2E04C00E +:10337000B695A795979587950A94D2F78170907026 +:10338000892B39F08C2FB5010E94D304813091052F +:1033900031F421978FEFCF3FD80729F7DD248D2D0A +:1033A000DF91CF911F910F91FF90EF90DF90BF9031 +:1033B000AF9008950F931F938C010E949319B80149 +:1033C0000E94D3041F910F910895CB010E94DA1936 +:1033D00008956093BC017093BD018093BE019093EA +:1033E000BF010E94021108959B01AC016091BC01D4 +:1033F0007091BD018091BE019091BF01622773273A +:10340000842795270E94E91908959B01AC016091DA +:10341000BC017091BD018091BE019091BF016223FA +:103420007323842395230E94E91908959B01AC011D +:103430006091BC017091BD018091BE019091BF016E +:10344000622B732B842B952B0E94E919089521E0A0 +:1034500030E040E050E004C0220F331F441F551FEE +:103460008A95D2F78091BC019091BD01A091BE01D7 +:10347000B091BF01282739274A275B27CA01B90124 +:103480000E94E919089521E030E040E050E004C0D6 +:10349000220F331F441F551F8A95D2F72095309570 +:1034A000409550958091BC019091BD01A091BE01C5 +:1034B000B091BF01282339234A235B23CA01B901F4 +:1034C0000E94E919089521E030E040E050E004C096 +:1034D000220F331F441F551F8A95D2F78091BC01DC +:1034E0009091BD01A091BE01B091BF01282B392B55 +:1034F0004A2B5B2BCA01B9010E94E919089521E00A +:1035000030E040E050E004C0220F331F441F551F3D +:103510008A95D2F7CA01B9010E94E919089560E0BD +:1035200070E080E090E00E94E91908956093B8018E +:103530007093B9018093BA019093BB010E9402116C +:1035400008959B01AC016091B8017091B90180911F +:10355000BA019091BB0162277327842795270E94A7 +:10356000961A08959B01AC016091B8017091B90160 +:103570008091BA019091BB01622373238423952328 +:103580000E94961A08959B01AC016091B801709158 +:10359000B9018091BA019091BB01622B732B842BEE +:1035A000952B0E94961A08950E94961A089580916C +:1035B000CC0185958595859508958091CC0187707E +:1035C00008958091CC01877009F081E00895382F2B +:1035D000A0910C01B0910D01FD0120E08FEF9281CF +:1035E000931791F08F3F19F4992309F4822F2F5FDD +:1035F00031962630A1F78F3F39F0992787FD9095B6 +:10360000A80FB91F12963C930895982F20E030E040 +:10361000E0910C01F0910D01E20FF31F82818917F7 +:1036200009F412822F5F3F4F2630310589F7089544 +:1036300081E090E0E0910C01F0910D01E80FF91F9D +:103640001082019688309105A9F708959091C801DC +:10365000982B9093C801089580959091C801982364 +:103660009093C80108951092C80108959091CB01DC +:10367000982B9093CB01089580959091CB0198233E +:103680009093CB0108951092CB0108959091CA01B7 +:10369000982B9093CA01089580959091CA01982320 +:1036A0009093CA0108951092CA0108958093C901A8 +:1036B00008951092C9010895E0910C01F0910D0157 +:1036C00020E091E0818181112F5F9F5F31969830DA +:1036D000C9F7822F0895E0910C01F0910D018091BE +:1036E000C8018083E0910C01F0910D0180819091DF +:1036F000CB01892B8083E0910C01F0910D01808139 +:103700009091CA01892B80839091C901992369F016 +:10371000E0910C01F0910D018081892B80830E9442 +:103720005C1B882311F00E94591B80910C01909121 +:103730000D010E94AC0F08952091CC01482F4095B7 +:1037400042234093CC01842F877071F430E0842FA2 +:10375000992787FD90952817390731F0842F859593 +:10376000859585950E94431A0895982F990F990F72 +:10377000990F962B9093CC010E94631A0895089597 +:1037800008951F920F920FB60F9211248F939F935B +:10379000AF93BF938091CE01882399F48091CF019C +:1037A0009091D001A091D101B091D2014196A11D7B +:1037B000B11D8093CF019093D001A093D101B0931C +:1037C000D201BF91AF919F918F910F900FBE0F903B +:1037D0001F9018950E94171180E00E9423020E94FA +:1037E0002A220E949F0F0E94680508958091E2019D +:1037F000843039F11092CE0120E488E190E00FB6D8 +:10380000F894A895809360000FBE2093600080E03C +:103810000E94230280E00E94680583B7817F846054 +:1038200083BF83B7816083BF7894889583B78E7F89 +:1038300083BF88E10FB6F894809360001092600017 +:103840000FBE089580E00E9423020E94BF1B0E94C9 +:1038500023070E94C01B80E00E946B05892B81F426 +:1038600081E00E946B05892B59F482E00E946B0570 +:10387000892B31F483E00E946B0520E0892B09F04D +:1038800021E0822F089582E084BD93E095BD9AEFF8 +:1038900097BD80936E0008958FB7F8942091CF0163 +:1038A0003091D0014091D1015091D2018FBFC90117 +:1038B0000895EF92FF920F931F93BC018FB7F89476 +:1038C000E090CF01F090D0010091D1011091D20190 +:1038D0008FBFA801970140705070CB01A0E0B0E00D +:1038E000281739074A075B0720F09701261B370B7B +:1038F00005C09B01209530952E0D3F1DC9011F91DC +:103900000F91FF90EF9008951F920F920FB60F92B4 +:1039100011248F939F93AF93BF938091CF01909188 +:10392000D001A091D101B091D2010196A11DB11D8C +:103930008093CF019093D001A093D101B093D20195 +:10394000BF91AF919F918F910F900FBE0F901F90DD +:1039500018950E94850CF89480E29EE420E931E0FD +:10396000F9013197F1F70197D9F787E090EBA7E0DC +:10397000B0EB8093ED019093EE01A093EF01B09333 +:10398000F0012CE088E190E00FB6F894A8958093C0 +:1039900060000FBE20936000FFCF0E94051D8823AA +:1039A00011F40E94101D0E94001D8093CD010E9401 +:1039B000F61C8093EB010E94FB1C90E0A0E0B0E0BD +:1039C000BC01CD010E94D41A0895682F86E090E0D2 +:1039D0000E9493230895682F84E090E00E9493232F +:1039E000089586E090E00E948523089584E090E0A9 +:1039F0000E948523089583E090E00E948523089526 +:103A000082E090E00E948523089580E090E00E948B +:103A10008D2320E08D5E9E4F09F421E0822F0895D2 +:103A200080E090E06DEE7EEF0E94A52382E090E0C2 +:103A300060E00E94932383E090E060E00E94932383 +:103A400084E090E060E00E94932385E090E060E0F5 +:103A50000E94932386E090E060E00E949323089503 +:103A60008091D90180FF0BC09091100185E0989F53 +:103A7000C0011124959587959595879530C081FF54 +:103A800009C09091100185E0989FC001112495957F +:103A9000879525C082FF03C0909110010DC08091D1 +:103AA000D801882319F485E090E008956091110110 +:103AB00090911001861728F085E0989FC00111248D +:103AC0000EC0899F90011124C901880F991F880F8A +:103AD000991F820F931F70E00E945E23CB018038F4 +:103AE000910510F08FE70895009709F481E008959B +:103AF0008091D90180FF05C080911201869586953D +:103B000018C081FF04C080911201869512C082FF07 +:103B100003C0809112010DC02091D801222319F415 +:103B200081E090E0089560911301809112012617C1 +:103B300010F090E007C0289FC001112470E00E949F +:103B40005E23CB018038910510F08FE70895009730 +:103B500009F481E00895803F21F40E94301D819591 +:103B600004C0813F29F40E94301D8093D50108953F +:103B7000823F21F40E94301D819504C0833F29F4C7 +:103B80000E94301D8093D4010895893F19F40E944A +:103B9000781D05C08A3F31F40E94781D819580937D +:103BA000D60108958B3F21F40E94781D819504C0B1 +:103BB0008C3F29F40E94781D8093D7010895843F9B +:103BC00021F48091D301816017C0853F21F4809159 +:103BD000D301826011C0863F21F48091D3018460BB +:103BE0000BC0873F21F48091D301886005C0883FD6 +:103BF00031F48091D30180618093D30108958D3F8A +:103C000021F48091D901816005C08E3F31F480910B +:103C1000D90182608093D90108958F3F29F4809162 +:103C2000D90184608093D9010895803F29F480915F +:103C3000D50187FF6FC007C0813F41F48091D50156 +:103C400018160CF067C01092D50164C0823F29F4A9 +:103C50008091D40187FF5EC007C0833F41F480910B +:103C6000D40118160CF056C01092D40153C0893FED +:103C700029F48091D60118163CF04CC08A3F39F4E3 +:103C80008091D60187FF46C01092D60143C08B3F7A +:103C900029F48091D70187FF3DC006C08C3F39F4DD +:103CA0008091D7011816B4F51092D70133C0843F24 +:103CB00021F48091D3018E7F05C0853F31F480913E +:103CC000D3018D7F8093D30125C0863F21F480915D +:103CD000D3018B7FF7CF873F21F48091D301877F7A +:103CE000F1CF883F21F48091D3018F7EEBCF8D3FC0 +:103CF00021F48091D9018E7F0BC08E3F21F48091F9 +:103D0000D9018D7F05C08F3F29F48091D9018B7F28 +:103D10008093D9018091D401882371F48091D501D9 +:103D2000882351F48091D601882331F48091D70102 +:103D3000882311F41092D8010895E3EDF1E085E0B5 +:103D4000DF011D928A95E9F71092D8011092D901EE +:103D5000089583ED91E00E94B70F0E944C1C909350 +:103D6000DB018093DA0108951F938091DA0190912D +:103D7000DB010E94591CAC012091D801222321F0C3 +:103D800080910F0190E006C090910E018AE0989F0B +:103D9000C00111244817590708F485C09091D40137 +:103DA000992369F48091D501882349F48091D60143 +:103DB000882329F48091D701882309F474C02F3F08 +:103DC00019F02F5F2093D801191624F40E94301D9A +:103DD0008093D4018091D40187FF05C00E94301DDB +:103DE00081958093D4018091D501181624F40E9406 +:103DF000301D8093D5018091D50187FF05C00E94B9 +:103E0000301D81958093D5016091D401662339F1ED +:103E10001091D501112319F1772767FD7095872F30 +:103E2000972F0E946F2223E333E343E35FE30E9473 +:103E3000D3220E943C226093D401612F772767FD33 +:103E40007095872F972F0E946F2223E333E343E37C +:103E50005FE30E94D3220E943C226093D5018091AF +:103E6000D601181624F40E94781D8093D601809103 +:103E7000D60187FF05C00E94781D81958093D601E9 +:103E80008091D701181624F40E94781D8093D701E1 +:103E90008091D70187FF05C00E94781D819580938E +:103EA000D7010E94A91E1F91089580E0089580E027 +:103EB0000895833099F1843030F4813069F0823094 +:103EC00009F06FC01AC0853009F44AC08530B8F1D6 +:103ED000863009F066C055C020910E01822F90E017 +:103EE000860F911D8F3F910520F4260F20930E0120 +:103EF00008958FEF80930E01089520910F01822F76 +:103F000090E0860F911D8F3F910520F4260F20939E +:103F10000F0108958FEF80930F01089520911001F4 +:103F2000822F90E0860F911D8F3F910520F4260F80 +:103F30002093100108958FEF809310010895209130 +:103F40001101822F90E0860F911D8F3F910520F483 +:103F5000260F2093110108958FEF8093110108958A +:103F600020911201822F90E0860F911D8F3F9105C5 +:103F700020F4260F2093120108958FEF80931201F1 +:103F8000089520911301822F90E0860F911D8F3F9D +:103F9000910520F4260F2093130108958FEF80934D +:103FA00013010895833031F1843030F4813061F0B1 +:103FB000823009F04AC013C0853091F1853028F174 +:103FC000863009F042C037C080910E01681720F496 +:103FD000861B80930E01089510920E010895809122 +:103FE0000F01681720F4861B80930F01089510922B +:103FF0000F01089580911001681720F4861B8093AB +:104000001001089510921001089580911101681710 +:1040100020F4861B809311010895109211010895D8 +:1040200080911201681720F4861B80931201089575 +:1040300010921201089580911301681720F4861BD5 +:1040400080931301089510921301089521E030E048 +:1040500040E050E004C0220F331F441F551F8A95D3 +:10406000D2F7CA01B9010E94D41A0E94171108950B +:104070008732F8F48E3108F08AC08E3009F463C0BC +:104080008F3048F4873009F445C08B3009F486C07E +:10409000863039F528C0863109F480C0873118F49C +:1040A0008031F9F45CC0893109F478C08B31C9F4EE +:1040B00040C0883309F472C0893348F4893209F466 +:1040C00068C0853309F465C0873259F462C083340F +:1040D00009F45FC0843418F48A3318F056C0883469 +:1040E00059F080E008958091CD01807F8093CD01CB +:1040F00081E08093DC0108950E94171180E197E22E +:1041000020E931E0F9013197F1F70197D9F70E94E1 +:10411000A91C42C09091CD01892F809581709E7F0E +:10412000982B882311F09E6001C0917F9093CD0160 +:1041300033C08091CD01982F969590959170292F3D +:10414000220F8D7F19C08091CD01982F969596955D +:1041500090959170292F220F220F8B7F0DC0809197 +:10416000CD01982F96959695969590959170292FBB +:10417000220F220F220F877F822B8093CD0199235C +:1041800069F081608093CD0107C0895303C08D51D0 +:1041900001C080E00E94262081E0089581E008951A +:1041A0001F93182F8091DC01813079F0813020F04D +:1041B000823009F0BCC037C0E0910C01F0910D01D4 +:1041C0008081823209F0B5C007C0E0910C01F09106 +:1041D0000D018081823249F4812F0E94551F88236E +:1041E000F9F4812F0E943820A5C0812F0E94571F0B +:1041F0008823B1F4143161F0153128F41B3081F0BB +:10420000103141F40AC0193219F0183319F408C0FA +:104210001092DC0180E090E08DC082E08093DC01B0 +:1042200081E090E087C0193201F11A3270F4143144 +:10423000E1F0153120F4173009F064C065C0812F1A +:104240008E51863008F05EC01BC01E3409F455C084 +:104250001F3420F41B3409F055C049C0113509F44E +:1042600042C0123509F04EC03AC08091DD0188236A +:1042700019F01092DD0146C081E08093DC015AC044 +:104280001232F9F0133260F41F3199F0103218F441 +:104290001E3109F510C0103281F01132E1F40FC067 +:1042A000143299F0143278F0153289F0163299F4FC +:1042B00010C082E011C081E00FC083E00DC084E037 +:1042C0000BC085E009C086E007C087E005C088E034 +:1042D00003C089E001C080E08093DD0113C08091BC +:1042E000DD0161E007C08091DD0161E009C08091DE +:1042F000DD016AE00E94591F05C08091DD016AE07E +:104300000E94D21F81E016C08EE180930E0182E3ED +:1043100080930F018AE08093100184E18093110162 +:1043200088E08093120188E280931301EBCF109212 +:10433000DC0180E01F9108958091EC01869508953D +:104340009091EC01292F26952827220F9170922B0E +:104350009093EC0120E09E7F09F021E08091EC0138 +:104360008E7F822B8093EC010E94E51C8091EC01F2 +:1043700086950E94230208958091EC01282F2695AE +:104380002F5F2F77922F990F8170892B8093EC01EB +:1043900030E0243031051CF081708093EC0190E016 +:1043A0008091EC018E7F09F091E08091EC018E7F8D +:1043B000892B8093EC010E94E51C8091EC0186958D +:1043C0000E94230208958091EC01982F909591709E +:1043D0008E7F892B8093EC010E94E51C8091EC017B +:1043E00080FD02C080E001C086950E9423020895EE +:1043F0008091EC01982F969591F09158990F8170CA +:10440000892B8093EC0190E08E7F09F091E0809100 +:10441000EC018E7F892B8093EC010E94E51C80913A +:10442000EC0186950E94230208952091EC012695C7 +:10443000822F90E0039744F4822F8F5F880F816072 +:104440008093EC010E94E51C8091EC0186950E940E +:10445000230208950E94051D882311F40E94101D57 +:104460000E94F11C8093EC0180FD02C080E001C03D +:1044700086950E942302089504D06894B1118DC0DE +:10448000089570D088F09F5790F0B92F9927B751B1 +:10449000A0F0D1F0660F771F881F991F1AF0BA9508 +:1044A000C9F712C0B13081F077D0B1E0089574C07F +:1044B000672F782F8827B85F39F0B93FCCF38695FE +:1044C00077956795B395D9F73EF49095809570955B +:1044D00061957F4F8F4F9F4F0895E89409C097FBD8 +:1044E0003EF490958095709561957F4F8F4F9F4FCB +:1044F0009923A9F0F92F96E9BB279395F69587950F +:1045000077956795B795F111F8CFFAF4BB0F11F4D1 +:1045100060FF1BC06F5F7F4F8F4F9F4F16C0882378 +:1045200011F096E911C0772321F09EE8872F762FAE +:1045300005C0662371F096E8862F70E060E02AF0EF +:104540009A95660F771F881FDAF7880F96958795DB +:1045500097F9089557FD9058440F551F59F05F3F44 +:1045600071F04795880F97FB991F61F09F3F79F095 +:1045700087950895121613061406551FF2CF469517 +:10458000F1DF08C0161617061806991FF1CF869599 +:104590007105610508940895E894BB27662777277D +:1045A000CB0197F908950BD078C069D028F06ED070 +:1045B00018F0952309F05AC05FC01124EECFCADF6E +:1045C000A0F3959FD1F3950F50E0551F629FF00126 +:1045D000729FBB27F00DB11D639FAA27F00DB11D7F +:1045E000AA1F649F6627B00DA11D661F829F222708 +:1045F000B00DA11D621F739FB00DA11D621F839F8F +:10460000A00D611D221F749F3327A00D611D231F64 +:10461000849F600D211D822F762F6A2F11249F57B2 +:1046200050408AF0E1F088234AF0EE0FFF1FBB1FD5 +:10463000661F771F881F91505040A9F79E3F510574 +:1046400070F014C0AACF5F3FECF3983EDCF3869580 +:1046500077956795B795F795E7959F5FC1F7FE2B1F +:10466000880F911D9695879597F9089597F99F67FB +:1046700080E870E060E008959FEF80EC08950024EA +:104680000A941616170618060906089500240A94B7 +:1046900012161306140605060895092E0394000C3D +:1046A00011F4882352F0BB0F40F4BF2B11F460FFCC +:1046B00004C06F5F7F4F8F4F9F4F089597FB092E68 +:1046C00007260AD077FD04D00CD006D000201AF4BB +:1046D000709561957F4F0895F6F7909581959F4F5E +:1046E0000895AA1BBB1B51E107C0AA1FBB1FA61739 +:1046F000B70710F0A61BB70B881F991F5A95A9F78B +:1047000080959095BC01CD010895F999FECF92BD99 +:1047100081BDF89A992780B50895A8E1B0E042E0FC +:1047200050E00C94AD23262FF999FECF92BD81BDA8 +:10473000F89A019700B4021639F01FBA20BD0FB6DF +:10474000F894FA9AF99A0FBE08950196272F0E94BD +:1047500094230C949323DC01CB01FC01F999FECF47 +:1047600006C0F2BDE1BDF89A319600B40D924150F9 +:0A4770005040B8F70895F894FFCF09 +:10477A00050175080A09E408AE087808C0011E3266 +:10478A000A14082840004500250026006100600040 +:10479A002000370064006500660067004400460098 +:1047AA002400470040004500250026006100600003 +:1047BA002000370064006500660067004400460078 +:0447CA002400470080 +:00000001FF diff --git a/keyboard/planck/keymaps/Jacob/readme.md b/keyboard/planck/keymaps/Jacob/readme.md new file mode 100644 index 0000000000..2a4be4ebce --- /dev/null +++ b/keyboard/planck/keymaps/Jacob/readme.md @@ -0,0 +1 @@ +Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. \ No newline at end of file -- cgit v1.2.1 From 1a8c0dd22d6a2255511d0db6a456315541b5815b Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Sun, 15 May 2016 00:27:32 -0400 Subject: Leader key implementation (#326) * implements leader key for planck experimental * allows override of leader timeout * adds ability to use the leader key in seq * fixes leader keycode * adds chording prototype * fixes keycode detection * moves music mode to quantum.c * disables chording by default * updates process_action functions to return bool --- keyboard/planck/keymaps/experimental/keymap.c | 48 +++++++++++++++++---------- keyboard/planck/planck.c | 8 +++-- keyboard/planck/planck.h | 16 ++------- 3 files changed, 37 insertions(+), 35 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/experimental/keymap.c b/keyboard/planck/keymaps/experimental/keymap.c index fc3ac4a97e..8dc158c73f 100644 --- a/keyboard/planck/keymaps/experimental/keymap.c +++ b/keyboard/planck/keymaps/experimental/keymap.c @@ -6,6 +6,7 @@ #ifdef AUDIO_ENABLE #include "audio.h" #endif + #include "eeconfig.h" extern keymap_config_t keymap_config; @@ -78,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, 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} + {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak @@ -291,7 +292,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 8: if (record->event.pressed) { #ifdef AUDIO_ENABLE - layer_off(_MUSIC); + music_activated = false; stop_all_notes(); #endif } @@ -300,7 +301,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(music_scale, false, 0); - layer_on(_MUSIC); + music_activated = true; #endif } break; @@ -360,24 +361,35 @@ void matrix_init_user(void) { } #ifdef AUDIO_ENABLE -void play_goodbye_tone() -{ - PLAY_NOTE_ARRAY(goodbye, false, 0); - _delay_ms(150); -} + void play_goodbye_tone(void) + { + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); + } +#endif -uint8_t starting_note = 0x0C; -int offset = 0; +LEADER_EXTERNS(); -void process_action_user(keyrecord_t *record) { +#define LEADER_TIMEOUT 300 - if (IS_LAYER_ON(_MUSIC)) { - if (record->event.pressed) { - play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); - } else { - stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); +void matrix_scan_user(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + SEQ_ONE_KEY(KC_F) { + register_code(KC_S); + unregister_code(KC_S); + } + SEQ_TWO_KEYS(KC_A, KC_S) { + register_code(KC_H); + unregister_code(KC_H); + } + SEQ_THREE_KEYS(KC_A, KC_S, KC_D) { + register_code(KC_LGUI); + register_code(KC_S); + unregister_code(KC_S); + unregister_code(KC_LGUI); } } - } -#endif diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index 446353dbf5..da7b3a1702 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -7,7 +7,9 @@ __attribute__ ((weak)) void matrix_scan_user(void) {} __attribute__ ((weak)) -void process_action_user(keyrecord_t *record) {} +bool process_action_user(keyrecord_t *record) { + return true; +} __attribute__ ((weak)) void led_set_user(uint8_t usb_led) {} @@ -32,8 +34,8 @@ void matrix_scan_kb(void) { matrix_scan_user(); } -void process_action_kb(keyrecord_t *record) { - process_action_user(record); +bool process_action_kb(keyrecord_t *record) { + return process_action_user(record); } void led_set_kb(uint8_t usb_led) { diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index cfd4956bf1..8aec6b2627 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -1,19 +1,7 @@ #ifndef PLANCK_H #define PLANCK_H -#include "matrix.h" -#include "keymap_common.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif -#ifdef RGBLIGHT_ENABLE - #include "rgblight.h" -#endif -#include -#include -#ifdef MIDI_ENABLE - #include -#endif +#include "quantum.h" #define PLANCK_MIT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ @@ -43,7 +31,7 @@ void matrix_init_user(void); void matrix_scan_user(void); -void process_action_user(keyrecord_t *record); +bool process_action_user(keyrecord_t *record); void led_set_user(uint8_t usb_led); void backlight_init_ports(void); -- cgit v1.2.1 From 15719f3574c6274ee0f3ec87431927c5a523aa3e Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 15 May 2016 00:40:59 -0400 Subject: adds a sequencer to the music mode (#330) * implements leader key for planck experimental * allows override of leader timeout * adds ability to use the leader key in seq * fixes leader keycode * adds chording prototype * fixes keycode detection * moves music mode to quantum.c * disables chording by default * adds music sequencer functionality * implements audio/music functions in quantum.c * Merge branch 'master' into process-record --- keyboard/planck/keymaps/experimental/keymap.c | 72 ++------------------------- 1 file changed, 3 insertions(+), 69 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/experimental/keymap.c b/keyboard/planck/keymaps/experimental/keymap.c index 8dc158c73f..8bc7334c9a 100644 --- a/keyboard/planck/keymaps/experimental/keymap.c +++ b/keyboard/planck/keymaps/experimental/keymap.c @@ -20,8 +20,7 @@ extern keymap_config_t keymap_config; #define _DVORAK 2 #define _LOWER 3 #define _RAISE 4 -#define _MUSIC 5 -#define _PLOVER 6 +#define _PLOVER 5 #define _ADJUST 16 // Macro name shortcuts @@ -31,12 +30,6 @@ extern keymap_config_t keymap_config; #define LOWER M(_LOWER) #define RAISE M(_RAISE) #define M_BL 5 -#define AUD_OFF M(6) -#define AUD_ON M(7) -#define MUS_OFF M(8) -#define MUS_ON M(9) -#define VC_IN M(10) -#define VC_DE M(11) #define PLOVER M(12) #define EXT_PLV M(13) @@ -136,16 +129,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, -/* Music (reserved for process_action_user) - * - */ -[_MUSIC] = { - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} -}, - /* Plover layer (http://opensteno.org) * ,-----------------------------------------------------------------------------------. * | # | # | # | # | # | # | # | # | # | # | # | # | @@ -178,8 +161,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, - {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -205,7 +188,6 @@ float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -274,53 +256,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) unregister_code(KC_RSFT); } break; - case 6: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - audio_off(); - #endif - } - break; - case 7: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - audio_on(); - PLAY_NOTE_ARRAY(tone_startup, false, 0); - #endif - } - break; - case 8: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - music_activated = false; - stop_all_notes(); - #endif - } - break; - case 9: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(music_scale, false, 0); - music_activated = true; - #endif - } - break; - case 10: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - voice_iterate(); - PLAY_NOTE_ARRAY(music_scale, false, 0); - #endif - } - break; - case 11: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - voice_deiterate(); - PLAY_NOTE_ARRAY(music_scale, false, 0); - #endif - } - break; case 12: if (record->event.pressed) { #ifdef AUDIO_ENABLE @@ -330,7 +265,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) layer_off(_RAISE); layer_off(_LOWER); layer_off(_ADJUST); - layer_off(_MUSIC); layer_on(_PLOVER); if (!eeconfig_is_enabled()) { eeconfig_init(); -- cgit v1.2.1 From fde477a927edc6b4207a6968d44aeed021e8b300 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 15 May 2016 00:51:06 -0400 Subject: updates midi functionality (#331) * implements leader key for planck experimental * allows override of leader timeout * adds ability to use the leader key in seq * fixes leader keycode * adds chording prototype * fixes keycode detection * moves music mode to quantum.c * disables chording by default * adds music sequencer functionality * implements audio/music functions in quantum.c * splits up process_action to allow independent processing of actions * moves midi stuff to quantum.c * adds additional scales for midi --- keyboard/planck/keymaps/experimental/keymap.c | 6 +++++- keyboard/planck/keymaps/experimental/makefile.mk | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/experimental/keymap.c b/keyboard/planck/keymaps/experimental/keymap.c index 8bc7334c9a..2f8a0510a8 100644 --- a/keyboard/planck/keymaps/experimental/keymap.c +++ b/keyboard/planck/keymaps/experimental/keymap.c @@ -162,7 +162,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -227,8 +227,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _LOWER: if (record->event.pressed) { layer_on(_LOWER); + #ifdef BACKLIGHT_ENABLE breathing_speed_set(2); breathing_pulse(); + #endif update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); @@ -238,8 +240,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _RAISE: if (record->event.pressed) { layer_on(_RAISE); + #ifdef BACKLIGHT_ENABLE breathing_speed_set(2); breathing_pulse(); + #endif update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); diff --git a/keyboard/planck/keymaps/experimental/makefile.mk b/keyboard/planck/keymaps/experimental/makefile.mk index 99fbfbd0bb..6c1e05b65a 100644 --- a/keyboard/planck/keymaps/experimental/makefile.mk +++ b/keyboard/planck/keymaps/experimental/makefile.mk @@ -1,2 +1,5 @@ AUDIO_ENABLE = yes -NKRO_ENABLE = yes \ No newline at end of file +NKRO_ENABLE = yes +MIDI_ENABLE = yes +BACKLIGHT_ENABLE = no +COMMAND_ENABLE = no \ No newline at end of file -- cgit v1.2.1 From e2aa980ad5d92f76dadf1de9dbadb9eacbddd5df Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 15 May 2016 01:07:48 -0400 Subject: cleans up default keymaps (olkb) --- keyboard/planck/keymaps/default/keymap.c | 86 ++------------------------------ 1 file changed, 3 insertions(+), 83 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 56f20a3b99..79bf62436a 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -19,8 +19,7 @@ extern keymap_config_t keymap_config; #define _DVORAK 2 #define _LOWER 3 #define _RAISE 4 -#define _MUSIC 5 -#define _PLOVER 6 +#define _PLOVER 5 #define _ADJUST 16 // Macro name shortcuts @@ -30,12 +29,6 @@ extern keymap_config_t keymap_config; #define LOWER M(_LOWER) #define RAISE M(_RAISE) #define M_BL 5 -#define AUD_OFF M(6) -#define AUD_ON M(7) -#define MUS_OFF M(8) -#define MUS_ON M(9) -#define VC_IN M(10) -#define VC_DE M(11) #define PLOVER M(12) #define EXT_PLV M(13) #define TOG_OUT M(14) @@ -136,16 +129,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, -/* Music (reserved for process_action_user) - * - */ -[_MUSIC] = { - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} -}, - /* Plover layer (http://opensteno.org) * ,-----------------------------------------------------------------------------------. * | # | # | # | # | # | # | # | # | # | # | # | # | @@ -178,8 +161,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, - {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -205,7 +188,6 @@ float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -270,53 +252,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) unregister_code(KC_RSFT); } break; - case 6: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - audio_off(); - #endif - } - break; - case 7: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - audio_on(); - PLAY_NOTE_ARRAY(tone_startup, false, 0); - #endif - } - break; - case 8: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - layer_off(_MUSIC); - stop_all_notes(); - #endif - } - break; - case 9: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(music_scale, false, 0); - layer_on(_MUSIC); - #endif - } - break; - case 10: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - voice_iterate(); - PLAY_NOTE_ARRAY(music_scale, false, 0); - #endif - } - break; - case 11: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - voice_deiterate(); - PLAY_NOTE_ARRAY(music_scale, false, 0); - #endif - } - break; case 12: if (record->event.pressed) { #ifdef AUDIO_ENABLE @@ -366,19 +301,4 @@ void play_goodbye_tone() PLAY_NOTE_ARRAY(goodbye, false, 0); _delay_ms(150); } - -uint8_t starting_note = 0x0C; -int offset = 0; - -void process_action_user(keyrecord_t *record) { - - if (IS_LAYER_ON(_MUSIC)) { - if (record->event.pressed) { - play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); - } else { - stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); - } - } - -} #endif -- cgit v1.2.1 From b79400e0e9080112fbdcf9ae1672297286b7938a Mon Sep 17 00:00:00 2001 From: Jacob Bilger Date: Sun, 15 May 2016 01:22:51 -0400 Subject: Folders for each keymap.c file (#332) * Add folders to keymaps * test * test --- keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG | Bin 17292 -> 0 bytes keyboard/planck/keymaps/Jacob/keymap.c | 56 - keyboard/planck/keymaps/Jacob/planck.hex | 1151 -------------------- keyboard/planck/keymaps/Jacob/readme.md | 1 - keyboard/planck/keymaps/alexey.c | 51 - keyboard/planck/keymaps/alexey/alexey.c | 51 + keyboard/planck/keymaps/angerthosenear.c | 50 - .../planck/keymaps/angerthosenear/angerthosenear.c | 50 + keyboard/planck/keymaps/austin.c | 50 - keyboard/planck/keymaps/austin/austin.c | 50 + keyboard/planck/keymaps/bone2planck.c | 112 -- keyboard/planck/keymaps/bone2planck/bone2planck.c | 112 ++ keyboard/planck/keymaps/brandon.c | 134 --- keyboard/planck/keymaps/brandon/brandon.c | 134 +++ keyboard/planck/keymaps/charlie.c | 54 - keyboard/planck/keymaps/charlie/charlie.c | 54 + keyboard/planck/keymaps/daniel.c | 48 - keyboard/planck/keymaps/daniel/daniel.c | 48 + keyboard/planck/keymaps/david.c | 76 -- keyboard/planck/keymaps/david/david.c | 76 ++ keyboard/planck/keymaps/dzobert.c | 49 - keyboard/planck/keymaps/dzobert/dzobert.c | 49 + keyboard/planck/keymaps/gabriel.c | 108 -- keyboard/planck/keymaps/gabriel/gabriel.c | 108 ++ keyboard/planck/keymaps/jacob/Keyboard Layout.PNG | Bin 0 -> 17292 bytes keyboard/planck/keymaps/jacob/keymap.c | 56 + keyboard/planck/keymaps/jacob/readme.md | 1 + keyboard/planck/keymaps/joe.c | 88 -- keyboard/planck/keymaps/joe/joe.c | 88 ++ keyboard/planck/keymaps/kyle.c | 49 - keyboard/planck/keymaps/kyle/kyle.c | 49 + keyboard/planck/keymaps/leo.c | 46 - keyboard/planck/keymaps/leo/leo.c | 46 + keyboard/planck/keymaps/lucas.c | 163 --- keyboard/planck/keymaps/lucas/lucas.c | 163 +++ keyboard/planck/keymaps/lukas.c | 64 -- keyboard/planck/keymaps/lukas/lukas.c | 64 ++ keyboard/planck/keymaps/max.c | 49 - keyboard/planck/keymaps/max/max.c | 49 + keyboard/planck/keymaps/mollat.c | 149 --- keyboard/planck/keymaps/mollat/mollat.c | 149 +++ keyboard/planck/keymaps/monkey.c | 76 -- keyboard/planck/keymaps/monkey/monkey.c | 76 ++ keyboard/planck/keymaps/nico.c | 69 -- keyboard/planck/keymaps/nico/nico.c | 69 ++ keyboard/planck/keymaps/numpad.c | 26 - keyboard/planck/keymaps/numpad/numpad.c | 26 + keyboard/planck/keymaps/tak3over.c | 130 --- keyboard/planck/keymaps/tak3over/tak3over.c | 130 +++ 49 files changed, 1698 insertions(+), 2849 deletions(-) delete mode 100644 keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG delete mode 100644 keyboard/planck/keymaps/Jacob/keymap.c delete mode 100644 keyboard/planck/keymaps/Jacob/planck.hex delete mode 100644 keyboard/planck/keymaps/Jacob/readme.md delete mode 100644 keyboard/planck/keymaps/alexey.c create mode 100644 keyboard/planck/keymaps/alexey/alexey.c delete mode 100644 keyboard/planck/keymaps/angerthosenear.c create mode 100644 keyboard/planck/keymaps/angerthosenear/angerthosenear.c delete mode 100644 keyboard/planck/keymaps/austin.c create mode 100644 keyboard/planck/keymaps/austin/austin.c delete mode 100644 keyboard/planck/keymaps/bone2planck.c create mode 100644 keyboard/planck/keymaps/bone2planck/bone2planck.c delete mode 100644 keyboard/planck/keymaps/brandon.c create mode 100644 keyboard/planck/keymaps/brandon/brandon.c delete mode 100644 keyboard/planck/keymaps/charlie.c create mode 100644 keyboard/planck/keymaps/charlie/charlie.c delete mode 100644 keyboard/planck/keymaps/daniel.c create mode 100644 keyboard/planck/keymaps/daniel/daniel.c delete mode 100644 keyboard/planck/keymaps/david.c create mode 100644 keyboard/planck/keymaps/david/david.c delete mode 100644 keyboard/planck/keymaps/dzobert.c create mode 100644 keyboard/planck/keymaps/dzobert/dzobert.c delete mode 100644 keyboard/planck/keymaps/gabriel.c create mode 100644 keyboard/planck/keymaps/gabriel/gabriel.c create mode 100644 keyboard/planck/keymaps/jacob/Keyboard Layout.PNG create mode 100644 keyboard/planck/keymaps/jacob/keymap.c create mode 100644 keyboard/planck/keymaps/jacob/readme.md delete mode 100644 keyboard/planck/keymaps/joe.c create mode 100644 keyboard/planck/keymaps/joe/joe.c delete mode 100644 keyboard/planck/keymaps/kyle.c create mode 100644 keyboard/planck/keymaps/kyle/kyle.c delete mode 100644 keyboard/planck/keymaps/leo.c create mode 100644 keyboard/planck/keymaps/leo/leo.c delete mode 100644 keyboard/planck/keymaps/lucas.c create mode 100644 keyboard/planck/keymaps/lucas/lucas.c delete mode 100644 keyboard/planck/keymaps/lukas.c create mode 100644 keyboard/planck/keymaps/lukas/lukas.c delete mode 100644 keyboard/planck/keymaps/max.c create mode 100644 keyboard/planck/keymaps/max/max.c delete mode 100644 keyboard/planck/keymaps/mollat.c create mode 100644 keyboard/planck/keymaps/mollat/mollat.c delete mode 100644 keyboard/planck/keymaps/monkey.c create mode 100644 keyboard/planck/keymaps/monkey/monkey.c delete mode 100644 keyboard/planck/keymaps/nico.c create mode 100644 keyboard/planck/keymaps/nico/nico.c delete mode 100644 keyboard/planck/keymaps/numpad.c create mode 100644 keyboard/planck/keymaps/numpad/numpad.c delete mode 100644 keyboard/planck/keymaps/tak3over.c create mode 100644 keyboard/planck/keymaps/tak3over/tak3over.c (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG b/keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG deleted file mode 100644 index 40f0b89429..0000000000 Binary files a/keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG and /dev/null differ diff --git a/keyboard/planck/keymaps/Jacob/keymap.c b/keyboard/planck/keymaps/Jacob/keymap.c deleted file mode 100644 index 5e6e8498e2..0000000000 --- a/keyboard/planck/keymaps/Jacob/keymap.c +++ /dev/null @@ -1,56 +0,0 @@ -#include "planck.h" -#include "action_layer.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -//Simple Keymap where CTRL, WINKEY, and ALT keys are placed in a more familiar location for Windows users. -//Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -#define _QW 0 -#define _LW 1 -#define _RS 2 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* 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, MT(MOD_RSFT, KC_ENT)}, - {KC_LCTL, KC_LGUI, KC_LALT, M(0), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - }, - [_RS] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - }, - [_LW] = { /* LOWER */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - } -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/Jacob/planck.hex b/keyboard/planck/keymaps/Jacob/planck.hex deleted file mode 100644 index 3ea701202c..0000000000 --- a/keyboard/planck/keymaps/Jacob/planck.hex +++ /dev/null @@ -1,1151 +0,0 @@ -:100000000C94A8010C94EC010C94EC010C94EC0100 -:100010000C94EC010C94EC010C94EC010C94EC01AC -:100020000C94EC010C94EC010C94410D0C94050D16 -:100030000C94C11B0C94EC010C94EC010C94EC019D -:100040000C94EC010C94EC010C94EC010C94EC017C -:100050000C94EC010C94841C0C94EC010C94EC01B9 -:100060000C94EC010C94EC010C94EC010C94EC015C -:100070000C94EC010C94EC010C94EC010C94EC014C -:100080000C94EC010C94EC010C94EC010C94EC013C -:100090000C94EC010C94EC010C94EC010C94EC012C -:1000A0000C94EC010C94EC010C94EC012B0014006A -:1000B0001A000800150017001C0018000C001200A0 -:1000C00013002A00290004001600070009000A0096 -:1000D0000B000D000E000F0033003400E1001D0086 -:1000E0001B00060019000500110010003600370043 -:1000F00038002872E000E300E200003001522C00DA -:100100002C0002525000510052004F0035021E02D6 -:100110001F022002210222022302240225022602BB -:1001200027024C0001000100010001000100010054 -:1001300001002D022E022F023002310201000100C7 -:1001400001000100010001000100010001002F0079 -:100150003000010001000100010001000100010068 -:1001600001000100010001000100010035001E0036 -:100170001F0020002100220023002400250026006B -:1001800027004C0001003A003B003C003D003E00CF -:100190003F002D002E002F003000310001004000F4 -:1001A00041004200430044004500010001000100FD -:1001B0000100010001000100010001000100010037 -:1001C0000100010001000100010001000501090614 -:1001D000A101050719E029E715002501950875011A -:1001E0008102950175088101050819012905950508 -:1001F000750191029501750391010507190029FF09 -:10020000150025FF950675088100C005010902A1AA -:10021000010901A10005091901290515002501950C -:1002200005750181029501750381010501093009F8 -:10023000311581257F9502750881060938158125BC -:100240007F950175088106050C0A38021581257F06 -:10025000950175088106C0C005010980A1018502CC -:1002600016010026B7001A01002AB7007510950183 -:100270008100C0050C0901A1018503160100269C1F -:10028000021A01002A9C02751095018100C012011A -:10029000100100000008EDFE606001000102000195 -:1002A00009025400030100A0FA090400000103013F -:1002B0000100092111010001223F00070581030807 -:1002C000000A0904010001030102000921110100D3 -:1002D00001224D000705820308000A0904020001FB -:1002E00003000000092111010001223600070583E7 -:1002F0000308000A040309042C034F007200740071 -:1003000068006F006C0069006E006500610072009B -:1003100020004B006500790062006F0061007200F0 -:10032000640073000000280354006800650020008A -:1003300050006C0061006E0063006B0020004B00F9 -:100340006500790062006F006100720064000000C7 -:1003500011241FBECFEFDAE0DEBFCDBF04B603FE2F -:1003600024C08091ED019091EE01A091EF01B09138 -:10037000F0018750904BA740B04BB9F41092ED01BB -:100380001092EE011092EF011092F00114BE84B7AA -:10039000877F84BF88E10FB6F89480936000109245 -:1003A00060000FBEE0E0F8E3099511E0A0E0B1E0E5 -:1003B000EAE7F7E402C005900D92A435B107D9F73A -:1003C00011E0A4E5B1E001C01D92AD3EB107E1F737 -:1003D0000E9441090C94BB230C940000FC0166238D -:1003E00061F48281882331F085EE0E947D110E94A4 -:1003F000BC2103C085EE0E942A1180E090E00895A0 -:1004000008950895089508950E94010208950E9494 -:10041000020208950E940302089584E0809355012A -:1004200008950E949C2123E030E0281B3109220F0F -:10043000331F2093540108950E9411020E940D025F -:10044000109256010895982F2F98882351F4809187 -:100450008000877F8093800010928D0010928C0026 -:1004600020C0833041F480918000886080938000B8 -:100470008FEF9FEF12C08091800088608093800092 -:1004800023E030E0291B3109220F331F8FEF9FEF4C -:1004900002C0969587952A95E2F790938D008093F8 -:1004A0008C000E9411020895279A2F988FEF9FEFDA -:1004B00090938700809386008AE08093800089E192 -:1004C000809381000E942A220E941C0208950E94AB -:1004D00054026E9A769A0E94000208950895E62FBB -:1004E000F0E0EE0FFF1F98E1799F90011124E20FD9 -:1004F000F31F90E6899FC0011124E80FF91FE4550E -:10050000FF4F25913491C9010895FC01EE0FFF1FA3 -:10051000E45BFF4F25913491C9010895FC01EE0F72 -:10052000FF1FE453FE4F25913491C9010895CF93E5 -:10053000DF93EC0180E4C030D807A0F590E3C03031 -:10054000D90708F005C1C83ED105E8F4C03ED10581 -:1005500008F069C0C83AD10588F4C53AD10508F059 -:1005600064C0C130D10509F4E8C0C130D10508F438 -:1005700014C2C430D10508F410C255C0CB3BD1051C -:1005800008F00BC261C080E2C030D80708F0DBC0C1 -:1005900091E0C030D90708F0D3C0C03FD10508F4BE -:1005A000FCC1C8C080E5C130D80709F4F4C090E5AB -:1005B000C230D907F0F480E4C131D80709F4D4C0BF -:1005C00090E4C231D90730F480E4C031D80708F490 -:1005D000C3C0C7C090E4C331D90709F4CBC080E4DD -:1005E000C331D80708F4C3C0C050D04509F0D5C105 -:1005F000C4C080E6C030D80730F491E5C030D907D8 -:1006000008F05EC1CEC080E7C030D80708F4C5C18D -:1006100090E8C030D90708F4B8C180E9C030D807E5 -:1006200008F0BBC1B6C19E01BAC1C53AD10519F4E3 -:1006300081E890E47DC0C63AD10519F083E890E4E2 -:1006400077C082E890E474C0C83AD10519F482EE0C -:1006500094E46EC0C93AD10519F489EE94E468C0F7 -:10066000CA3AD10519F48AEE94E462C0CB3AD105B6 -:1006700019F485EB94E45CC0CC3AD10519F486EB0F -:1006800094E456C0CD3AD10519F487EB94E450C0F8 -:10069000C03BD10519F48CEC94E44AC0CE3AD105A4 -:1006A00019F48DEC94E444C0CF3AD10519F483E8F1 -:1006B00095E43EC0C13BD10519F48AE895E438C001 -:1006C000C23BD10519F482E995E432C0C33BD105A0 -:1006D00019F484E995E42CC0C43BD10519F481E2F6 -:1006E00096E426C0C53BD10519F483E296E420C008 -:1006F000C63BD10519F484E296E41AC0C73BD10584 -:1007000019F485E296E414C0C83BD10519F486E2D9 -:1007100096E40EC0C93BD10519F487E296E408C0FF -:10072000CA3BD10519F080E094E402C08AE296E465 -:100730009C0135C19E01306532C121E030E02FC1FE -:100740009E013F712CC1CE019F700E948E0228C174 -:100750009E013070306C23C19E012F703070346D5B -:100760001EC120E031ED1BC120E030ED18C120E0BA -:1007700032ED15C120E033ED12C10E94171184EC57 -:1007800099E020E931E0F9013197F1F70197D9F7C4 -:100790000E94A91C04C18091CD0181608093CD018C -:1007A000FEC00E94051D882311F40E94101D0E94A6 -:1007B000F61C8093EB011092EC0190E5C230D90752 -:1007C00011F4816076C090E5C430D90711F48260DD -:1007D00070C090E5C630D90711F484606AC090E516 -:1007E000C830D90711F4886064C090E5CA30D907D1 -:1007F00011F480615EC090E5CC30D90711F48062BD -:1008000058C090E5CE30D90711F4806452C090E50D -:10081000C031D90711F480684CC090E5C231D907C6 -:1008200011F48C6046C080E5C330D80721F4809174 -:10083000EB018E7F3EC090E5C530D90721F4809151 -:10084000EB018D7F36C080E5C730D80721F4809159 -:10085000EB018B7F2EC090E5C930D90721F4809140 -:10086000EB01877F26C080E5CB30D80721F480914B -:10087000EB018F7E1EC090E5CD30D90721F4809129 -:10088000EB018F7D16C080E5CF30D80721F4809131 -:10089000EB018F7B0EC090E5C131D90721F4809127 -:1008A000EB018F7706C0C351D04529F48091EB014D -:1008B000837F8093EB018091EB010E94EB1C6FC062 -:1008C0004D2F55274F70507041305105F9F49E015E -:1008D000A4E0220F331FAA95E1F720703370CE01F8 -:1008E000F3E0880F991FFA95E1F780769070282B36 -:1008F000392B3C68C370D07002C0440F551FCA9595 -:10090000E2F74F715070242B352B49C0423051050E -:1009100029F43C2F2227216F306A41C04330510512 -:1009200051F49E0173E0220F331F7A95E1F7207E88 -:1009300037703C680CC044305105B9F49E0163E047 -:10094000220F331F6A95E1F7207E37703A68C37033 -:10095000D07081E090E002C0880F991FCA95E2F73D -:100960008F719070282B392B1AC04530510529F40E -:100970003C2F2227246F306A12C04630510579F48B -:10098000CF71D0703C2F222702C09E013F70306291 -:1009900006C09E013F70306A02C020E030E0C9010D -:1009A000DF91CF9108950E946F02803E9105F0F48F -:1009B000803C910588F58133910509F475C0823337 -:1009C000910548F48932910509F464C08A32910591 -:1009D00009F07BC06EC08933910509F18238910519 -:1009E000F1F08533910509F070C04FC0833E910549 -:1009F00061F1843E910540F4803E9105B9F0823E5C -:100A0000910509F062C01CC0863E910551F1873EF8 -:100A1000910509F05AC02AC00E94850208952091CC -:100A2000EB0120FD0AC021FD08C04CC08091EB0104 -:100A300080FF03C089E390E045C080EE90E042C0B3 -:100A40008091EB0182FD08C004C08091EB0182FF20 -:100A500003C082EE90E036C084FD11C083EE90E0CA -:100A600031C08091EB0183FD08C004C08091EB018F -:100A700083FF03C086EE90E025C084FF03C080E0C2 -:100A800090E020C087EE90E01DC08091EB0185FFD3 -:100A900005C007C08091EB0185FF03C085E390E0AE -:100AA00011C089E290E00EC08091EB0186FF05C085 -:100AB00007C08091EB0186FF03C081E390E002C094 -:100AC0008AE290E00E94970208950E94970208959A -:100AD0000E940A020895E82FF0E0EE0FFF1FE95A86 -:100AE000FE4F80819181089508954F925F926F9299 -:100AF0007F928F929F92AF92BF92CF92DF92EF92AE -:100B0000FF920F931F93DF93CF93CDB7DEB7289754 -:100B10000FB6F894DEBF0FBECDBFAE014F5F5F4F83 -:100B200060E070E0EE24FF24CC24DD24AA24BB2462 -:100B3000882499242A0101E010E029E0622E712C1A -:100B40006C0E7D1ED201E4E3F1E088E001900D928D -:100B50008150E1F7FA01808191819C01207F307002 -:100B60002032310559F48F709070980102C0220F25 -:100B7000331F8A95E2F7622B732B37C02033310580 -:100B800059F48F709070F80102C0EE0FFF1F8A9524 -:100B9000E2F7EE2AFF2A29C02034310559F48F707C -:100BA0009070980102C0220F331F8A95E2F7C22A83 -:100BB000D32A1BC02035310559F48F709070F8018D -:100BC00002C0EE0FFF1F8A95E2F7AE2ABF2A0DC0C2 -:100BD0002036310551F48F709070980102C0220FB9 -:100BE000331F8A95E2F7822A932A4E5F5F4F46159C -:100BF000570509F0A7CF24B1962F862F8095822321 -:100C000084B985B1982B95B927B19E2D8E2D8095ED -:100C1000822387B988B1982B98B92AB19C2D8C2D45 -:100C2000809582238AB98BB1982B9BB92DB19A2DCF -:100C30008A2D809582238DB98EB1982B9EB920B3D1 -:100C4000982D882D8095822380BB81B3982B91BBF2 -:100C500028960FB6F894DEBF0FBECDBFCF91DF91BF -:100C60001F910F91FF90EF90DF90CF90BF90AF90CA -:100C70009F908F907F906F905F904F9008954F92CC -:100C80005F926F927F928F929F92AF92BF92CF921C -:100C9000DF92EF92FF920F931F93DF93CF93CDB725 -:100CA000DEB768970FB6F894DEBF0FBECDBF85B72D -:100CB000806885BF85B7806885BF0E947505AE01D5 -:100CC0004F5F5F4F60E070E0EE24FF24CC24DD2412 -:100CD000AA24BB24882499242A0101E010E039E1E8 -:100CE000632E712C6C0E7D1ED201ECE3F1E088E1E5 -:100CF00001900D928150E1F7FA01808191819C0170 -:100D0000207F30702032310559F48F709070980137 -:100D100002C0220F331F8A95E2F7622B732B37C074 -:100D20002033310559F48F709070F80102C0EE0F36 -:100D3000FF1F8A95E2F7EE2AFF2A29C020343105E9 -:100D400059F48F709070980102C0220F331F8A955A -:100D5000E2F7C22AD32A1BC02035310559F48F701F -:100D60009070F80102C0EE0FFF1F8A95E2F7AE2ADD -:100D7000BF2A0DC02036310551F48F709070980154 -:100D800002C0220F331F8A95E2F7822A932A4E5F10 -:100D90005F4F4615570509F0A7CF24B1962F862F30 -:100DA0008095822384B985B1982B95B927B19E2D62 -:100DB0008E2D8095822387B988B1982B98B92AB156 -:100DC0009C2D8C2D809582238AB98BB1982B9BB951 -:100DD0002DB19A2D8A2D809582238DB98EB1982BB5 -:100DE0009EB920B3982D882D8095822380BB81B336 -:100DF000982B91BB80E090E0FC01E95AFE4F1182F4 -:100E00001082FC01E15AFE4F118210820296883056 -:100E1000910591F70E94670268960FB6F894DEBFBD -:100E20000FBECDBFCF91DF911F910F91FF90EF903B -:100E3000DF90CF90BF90AF909F908F907F906F90FA -:100E40005F904F9008954F925F926F927F928F9232 -:100E50009F92AF92BF92CF92DF92EF92FF920F9349 -:100E60001F93DF93CF93CDB7DEB7A0970FB6F8945B -:100E7000DEBF0FBECDBF909000016E010894C11C73 -:100E8000D11CEFE5AE2EE1E0BE2EC6015C2C892E12 -:100E900071E0E72EF12C60EA462E59E0652E712CA8 -:100EA0006C0E7D1E852D982DDC01E4E1F1E088E0DB -:100EB00001900D928150E1F7F60120813181C90145 -:100EC000807F90708032910589F484B12F703070EA -:100ED000A70102C0440F551F2A95E2F79A01842BFF -:100EE00084B985B12095282325B94FC08033910559 -:100EF00089F487B12F703070F70102C0EE0FFF1F29 -:100F00002A95E2F79F018E2B87B988B12095282377 -:100F100028B93BC08034910589F48AB12F703070B4 -:100F2000A70102C0440F551F2A95E2F79A01842BAE -:100F30008AB98BB1209528232BB927C0803591051C -:100F400089F48DB12F703070F70102C0EE0FFF1FD2 -:100F50002A95E2F79F018E2B8DB98EB1209528231B -:100F60002EB913C08036910581F480B32F70307094 -:100F7000A70102C0440F551F2A95E2F79A01842B5E -:100F800080BB81B32095282321BB842D8A95F1F75E -:100F9000830160E070E040E050E0D301ECE1F1E07B -:100FA00088E101900D928150E1F7F80120813181B3 -:100FB000C901807F90708032910511F483B113C014 -:100FC0008033910511F486B10EC08034910511F47F -:100FD00089B109C08035910511F48CB104C0803607 -:100FE0009105B9F48FB190E02F70307002C09595E3 -:100FF00087952A95E2F780FF03C080E090E007C064 -:10100000C701062E02C0880F991F0A94E2F7482BE9 -:10101000592B6F5F7F4F0E5F1F4F6C30710509F0CA -:10102000BCCFF501808191818417950721F0518310 -:10103000408345E0942E0E94750542E050E0C40EC6 -:10104000D51EA40EB51EC614D70409F02BCF90925E -:101050000001992059F1892D815080930001882346 -:1010600029F080EA9FE00197F1F720C080915F01AD -:101070009091600190935801809357018091610194 -:101080009091620190935A0180935901809163017C -:101090009091640190935C0180935B018091650164 -:1010A0009091660190935E0180935D010E9404021D -:1010B00081E0A0960FB6F894DEBF0FBECDBFCF91F2 -:1010C000DF911F910F91FF90EF90DF90CF90BF9035 -:1010D000AF909F908F907F906F905F904F9008950A -:1010E0001092E1010895089508958091680108958E -:1010F000DF93CF9300D00F92CDB7DEB7AC018091D4 -:10110000E201843029F583E08093E9002FEF95ED2B -:1011100005C0892F8A95F1F7222329F08091E800F4 -:10112000215085FFF6CF8091E80085FF11C05B83D9 -:101130004A8383E08983CE01019663E070E040E05A -:1011400050E00E94A70B8091E8008E778093E80022 -:101150000F900F900F90CF91DF910895DF93CF9371 -:1011600000D00F92CDB7DEB7AC018091E2018430A0 -:1011700029F583E08093E9002FEF95ED05C0892FD5 -:101180008A95F1F7222329F08091E800215085FF0C -:10119000F6CF8091E80085FF11C05B834A8382E02F -:1011A0008983CE01019663E070E040E050E00E9448 -:1011B000A70B8091E8008E778093E8000F900F9046 -:1011C0000F90CF91DF910895AC018091E2018430BE -:1011D00001F582E08093E9002FEF95ED05C0892F9E -:1011E0008A95F1F7222329F08091E800215085FFAC -:1011F000F6CF8091E80085FF0CC0CA0165E070E081 -:1012000040E050E00E94A70B8091E8008E77809329 -:10121000E80008950F931F93182F092F8091E20182 -:10122000843061F581E08093E9009FEF25ED05C0F2 -:10123000822F8A95F1F7992329F08091E800915047 -:1012400085FFF6CF8091E80085FF18C0812F902F91 -:1012500068E070E040E050E00E94A70B8091E80059 -:101260008E778093E800A9E6B1E0212F302FC901E5 -:10127000FC0188E001900D928150E1F71F910F91E0 -:10128000089584B7877F84BF88E10FB6F894809370 -:101290006000109260000FBE80E090E020E80FB682 -:1012A000F89420936100809361000FBE0E94F30FB9 -:1012B0000E94850C0E94E60C8091E200846080937D -:1012C000E20078940E94840F0E94A81082E091E0CE -:1012D0000E949A0F0CC00E94F61B8091E0018823A7 -:1012E00031F00E94221C882311F00E94BC0A8091D8 -:1012F000E201853081F30E94F90FF9CF8091E1017D -:10130000882349F40E94850C0E94E60C8091E2003B -:1013100084608093E20008958091E401833009F4B1 -:1013200055C0843030F4813071F0823009F0AFC0A4 -:1013300096C08A3009F483C08B3009F468C08930C4 -:1013400009F0A5C020C08091E301813A09F09FC057 -:101350008091E800877F8093E8008091E701909179 -:10136000E801892B21F489E691E068E003C080E080 -:1013700090E060E070E00E94D20A8091E8008B77F4 -:101380008093E80008958091E301813209F07FC0E5 -:101390008091E7019091E801892B09F078C0809154 -:1013A000E800877F8093E80005C08091E2018823F0 -:1013B00009F46DC08091E80082FFF7CF8091F100C1 -:1013C000809368018091E8008B771CC08091E301D5 -:1013D000813A09F05CC08091E7019091E801892B86 -:1013E00009F055C08091E800877F8093E8008091E4 -:1013F000E80080FFFCCF809101018093F100809193 -:10140000E8008E778093E8000E94320C0895809166 -:10141000E3018132E1F58091E7019091E801892BA8 -:10142000B1F58091E800877F8093E8000E94320C3C -:101430008091E501809301010E9417110895809128 -:10144000E301813221F58091E800877F8093E800F5 -:101450000E94320C8091E60180936701089580918B -:10146000E301813AA1F48091E800877F8093E8004E -:101470008091E80080FFFCCF809167018093F100AC -:101480008091E8008E778093E8000E94320C0895E6 -:1014900081E061EC42E00E94FA0B82E061EC42E004 -:1014A0000E94FA0B83E061EC42E00E94FA0B08957F -:1014B0000E94EA1B0895DA019330C1F0943030F4B1 -:1014C000913051F0923009F04FC00BC0913221F1B0 -:1014D000923209F049C032C0EEE8F2E022E130E099 -:1014E00047C0E0EAF2E024E530E042C0813051F04C -:1014F000813020F0823009F037C008C0E4EFF2E01C -:10150000849107C0E8EFF2E0849103C0E6E2F3E0E3 -:101510008491282F30E02CC0613041F0613018F008 -:10152000623011F508C0E2EBF2E002C0EBECF2E051 -:1015300029E030E01DC0E4EEF2E0FACF613051F076 -:10154000613018F0623081F40AC0ECECF1E02FE376 -:1015500030E00EC0EBE0F2E02DE430E009C0E8E559 -:10156000F2E026E330E004C0E0E0F0E020E030E02C -:10157000ED93FC93C901089580E189BD82E189BDA5 -:1015800009B400FEFDCF8091D8008F7D8093D800F4 -:101590008091E00082608093E0008091E00081FD16 -:1015A000FCCF08959C014091E9015091EA01461752 -:1015B000570718F4F90190E043C06115710511F067 -:1015C000AB01F8CF8091E8008E778093E80040E08F -:1015D00050E0F0CF8091E201882309F447C08530C4 -:1015E00009F446C08091E80083FD44C08091E80082 -:1015F00082FD36C08091E80080FF22C08091F30018 -:101600009091F200782F60E0292F30E0262B372BC5 -:1016100007C081918093F100415050402F5F3F4FB0 -:101620004115510519F02830310598F390E0283024 -:10163000310509F491E08091E8008E778093E8000D -:101640004115510539F6992329F60AC08091E20126 -:10165000882361F0853061F08091E80083FD0AC045 -:101660008091E80082FFF2CF80E0089582E0089543 -:1016700083E0089581E008959C014091E901509133 -:10168000EA014617570718F4F90190E044C06115C4 -:10169000710511F0AB01F8CF8091E8008E7780934F -:1016A000E80040E050E0F0CF8091E201882309F4A7 -:1016B00048C0853009F447C08091E80083FD45C0EB -:1016C0008091E80082FD37C08091E80080FF23C050 -:1016D0008091F3009091F200782F60E0292F30E0A4 -:1016E000262B372B08C084918093F100319641500E -:1016F00050402F5F3F4F4115510519F028303105FB -:1017000090F390E02830310509F491E08091E800F1 -:101710008E778093E8004115510531F6992321F623 -:101720000AC08091E201882361F0853061F08091E8 -:10173000E80083FD0AC08091E80082FFF2CF80E0DC -:10174000089582E0089583E0089581E00895BF92AE -:10175000CF92DF92EF92FF920F931F93CF93DF937D -:10176000182F092F7B016A010E94530CB82E882381 -:10177000B1F5812F902F9C01E901C114D10439F0FA -:10178000F60180819181E81AF90AC80FD91F00E09B -:1017900010E022C08091E80085FD16C08091E8002D -:1017A0008E778093E800C114D10449F0F60180815E -:1017B0009181800F911F9183808385E011C00E94E9 -:1017C000530C882349F00CC089918093F100089450 -:1017D000E108F1080F5F1F4FE114F104D9F68B2DDA -:1017E000DF91CF911F910F91FF90EF90DF90CF90FD -:1017F000BF900895382F282F2EC0822F8F7080938E -:10180000E900231721F4762F942F50E006C0709141 -:10181000EC009091ED005091F00091FF1BC0809181 -:10182000EB008E7F8093EB008091ED008D7F8093A5 -:10183000ED008091EB0081608093EB007093EC00F1 -:101840009093ED005093F0008091EE0087FD02C070 -:1018500080E008952F5F273080F23F703093E900D9 -:1018600081E008958091E30188239CF404C0809175 -:10187000E2018823B9F08091E80082FFF8CF8091DF -:10188000E8008B778093E80008958091E201882337 -:1018900049F08091E80080FFF8CF8091E8008E77D2 -:1018A0008093E80008954091E4005091E50024E61B -:1018B0008091EC0080FF24C08091E80080FD1EC074 -:1018C0008091E201882311F482E00895853011F4BB -:1018D00083E008958091EB0085FF02C081E00895C8 -:1018E0008091E4009091E5008417950709F3222385 -:1018F00011F484E008952150AC01DACF80E008951E -:101900008091E80082FFDCCFF9CF0E94F80C0E94A2 -:10191000000DE0EEF0E0808181608083A8EDB0E012 -:101920008C918F778C9319BCE7EDF0E080818E7FEE -:1019300080838C918F7E8C931092E1010895EF92B9 -:10194000FF920F931F930E94F80C0E94000D08ED68 -:1019500010E0F80180818F778083808180688083A8 -:1019600080818F7D808319BC1092E2011092DE018C -:101970001092E0011092DF0180EEE82EF12CF701C9 -:1019800080818B7F8083F80180818160808380E00B -:1019900060E042E00E94FA0BE1EEF0E080818E7F91 -:1019A0008083E2EEF0E080818160808380818860C6 -:1019B0008083F70180818E7F8083F8018081806140 -:1019C00080831F910F91FF90EF900895E8EDF0E074 -:1019D00080818F7E8083E7EDF0E08081816080836D -:1019E00084E082BF81E08093E1010E949F0C089512 -:1019F000E8EDF0E080818E7F80831092E200089510 -:101A00001092DA001092E10008951F920F920FB623 -:101A10000F9211241F932F933F934F935F936F93D4 -:101A20007F938F939F93AF93BF93EF93FF93109107 -:101A3000E9008091EC001092E9008091F000877F2E -:101A40008093F00078940E94130E1092E900809128 -:101A5000F00088608093F0001F701093E900FF9100 -:101A6000EF91BF91AF919F918F917F916F915F9116 -:101A70004F913F912F911F910F900FBE0F901F908C -:101A800018951F920F920FB60F9211242F933F9328 -:101A90004F935F936F937F938F939F93AF93BF9376 -:101AA000EF93FF938091E10082FF0BC08091E200F1 -:101AB00082FF07C08091E1008B7F8093E1000E944C -:101AC000830F8091DA0080FF1FC08091D80080FFD3 -:101AD0001BC08091DA008E7F8093DA008091D9005C -:101AE00080FF0DC080E189BD82E189BD09B400FE9F -:101AF000FDCF81E08093E2010E947E0905C019BC00 -:101B00001092E2010E9470088091E10080FF19C0EC -:101B10008091E20080FF15C08091E2008E7F80936B -:101B2000E2008091E20080618093E2008091D80021 -:101B300080628093D80019BC85E08093E2010E9406 -:101B400074088091E10084FF30C08091E20084FF3E -:101B50002CC080E189BD82E189BD09B400FEFDCFC2 -:101B60008091D8008F7D8093D8008091E1008F7E96 -:101B70008093E1008091E2008F7E8093E20080916B -:101B8000E20081608093E2008091DE01882311F001 -:101B900084E007C08091E30087FD02C081E001C0BE -:101BA00083E08093E2010E94580A8091E10083FF64 -:101BB00029C08091E20083FF25C08091E100877FEA -:101BC0008093E10082E08093E2011092DE01809137 -:101BD000E1008E7F8093E1008091E2008E7F809310 -:101BE000E2008091E20080618093E20080E060E0AA -:101BF00042E00E94FA0B8091F00088608093F00030 -:101C00000E947308FF91EF91BF91AF919F918F91C7 -:101C10007F916F915F914F913F912F910F900FBEE8 -:101C20000F901F9018951F93DF93CF93CDB7DEB71A -:101C3000AC970FB6F894DEBF0FBECDBFE3EEF1E078 -:101C40008091F100819321E0EB3EF207C9F70E94F9 -:101C50008C098091E80083FF3EC18091E3013091BF -:101C6000E401353009F487C0363040F43130C9F131 -:101C7000313070F0333009F02EC133C0383009F400 -:101C8000F9C0393009F409C1363009F024C197C0D0 -:101C9000803821F0823809F01EC108C09091DF0120 -:101CA0008091E001882399F0926011C08091E70152 -:101CB0008F708093E9008091EB0090E025E096958D -:101CC00087952A95E1F7982F91701092E9008091FD -:101CD000E800877F8093E8009093F1001092F10074 -:101CE000D4C0882319F0823009F0F5C090E08F71DC -:101CF0009070009721F0029709F0EDC00CC0809120 -:101D0000E501813009F0E7C01092E001333069F558 -:101D10008093E0012AC08091E501882331F520916C -:101D2000E7012F7009F4D7C02093E9008091EB0000 -:101D300080FF1BC0333021F48091EB00806213C020 -:101D40008091EB0080618093EB0081E090E002C025 -:101D5000880F991F2A95E2F78093EA001092EA0013 -:101D60008091EB0088608093EB001092E9008091F5 -:101D7000E800877F8DC0882309F0ADC01091E50190 -:101D80001F778091E3008078812B8093E30080911E -:101D9000E800877F8093E8000E94320C8091E80081 -:101DA00080FFFCCF8091E30080688093E3001123E3 -:101DB00011F482E001C083E08093E2018CC080587E -:101DC000823008F088C08091E5019091E60123E01F -:101DD0008C3D920709F034C083E08C838AE28B83C8 -:101DE0007FB7F894DE0115966EE040E050E011E216 -:101DF000E62FF0E010935700849140FF03C08295D6 -:101E00008F706F5F8F70282F30E08A3018F0C90113 -:101E1000C79602C0C901C0968D939D934F5F5F4FD7 -:101E20004431510529F77FBF8091E800877F809377 -:101E3000E800CE0103966AE270E00E94D20A14C064 -:101E40006091E701AE014F5F5F4F0E945B0ABC01EA -:101E5000009709F440C08091E800877F8093E800F4 -:101E600089819A810E943C0B8091E8008B77809356 -:101E7000E80031C0803879F58091E800877F809351 -:101E8000E8008091DE018093F1008091E8008E7778 -:101E90008093E8000E94320C1EC08823E1F49091E8 -:101EA000E5019230C0F48091E800877F8093E800DC -:101EB0009093DE010E94320C8091DE01882331F480 -:101EC0008091E30087FD02C081E001C084E080933F -:101ED000E2010E94480A8091E80083FF0AC08091D5 -:101EE000E800877F8093E8008091EB008062809318 -:101EF000EB00AC960FB6F894DEBF0FBECDBFCF910E -:101F0000DF911F91089508951F938091E201882326 -:101F100079F01091E9008091EC001092E900809135 -:101F2000E80083FF02C00E94130E1F701093E900A7 -:101F30001F91089590937601809375010895E09123 -:101F40007501F0917601309711F480E008950190C9 -:101F5000F081E02D09950895E0917501F0917601E9 -:101F6000309721F00280F381E02D09950895E091EA -:101F70007501F0917601309721F00480F581E02D14 -:101F8000099508959C01809173019091740128171F -:101F9000390779F03093740120937301E091750152 -:101FA000F0917601309729F00680F781E02DC90184 -:101FB000099508959C0180917101909172012817F3 -:101FC000390779F03093720120937101E091750126 -:101FD000F0917601309729F00084F185E02DC90158 -:101FE0000995089508950E94F20F08950E946805CA -:101FF00008952F923F925F926F927F928F929F925D -:10200000AF92BF92CF92DF92EF92FF920F931F9306 -:10201000DF93CF93CDB7DEB72A970FB6F894DEBF24 -:102020000FBECDBF0E94230728E7822E21E0922E0B -:10203000AA24BB2491E0292E312C5A2C8A2D0E94EF -:102040006B056C01F401E080F180E826F926E114CB -:10205000F104E1F18091CD0181FF02C00E9474057D -:1020600000E010E03101002E02C0660C771C0A94DB -:10207000E2F7C3018E219F21892B19F10E944C1C8C -:102080009C0109835A821B82C620D720CD2811F0DB -:1020900081E08B83C9018160782F9D838C83498186 -:1020A0005A816B818D810E941C15F501EE0FFF1F77 -:1020B000E858FE4F80819181862597259183808302 -:1020C00021C00F5F1F4F0C30110561F60894A11C51 -:1020D000B11C82E090E0880E991E94E0A916B1042C -:1020E00009F0ABCF0E944C1C2FEF2E832F83188654 -:1020F0008160782F9A8789874FEF5FEF60E08A854C -:102100000E941C150E94B41E109177010E949F0F1F -:10211000181731F00E949F0F809377010E94F60FED -:102120002A960FB6F894DEBF0FBECDBFCF91DF91D8 -:102130001F910F91FF90EF90DF90CF90BF90AF90E5 -:102140009F908F907F906F905F903F902F90089519 -:102150000E94431C0E943F060E94CD1C0E942A221E -:102160000895DF93CF9300D000D00F92CDB7DEB7A4 -:102170000F900F900F900F900F90CF91DF910895D7 -:10218000DF93CF9300D000D000D0CDB7DEB7269636 -:102190000FB6F894DEBF0FBECDBFCF91DF9108958B -:1021A0000E94DA19482F892F82958F70282F30E0EE -:1021B0002C3031054CF42A3031056CF4225030407B -:1021C00022303105E8F407C02C30310579F02F308A -:1021D0003105B1F40BC0403F39F0413F18F4403EA7 -:1021E00078F402C0443F61F481E008959F70892F24 -:1021F00090E023E0969587952A95E1F78170089500 -:1022000080E008950E94431B0E94531B0E94181BEC -:102210000E946B1B0E949D1E0E94A91E80E090E000 -:102220000E94C20F80E090E00E94DA0F08950E94A1 -:10223000331B0E9402110895882321F00E942C1B59 -:102240000E946B1B0895882321F00E94261B0E9488 -:102250006B1B0895282F882309F44EC0823859F447 -:102260000E949F0F81FF48C089E30E94E71A0E94E5 -:102270006B1B89E30CC0833869F40E949F0F80FFB9 -:102280003BC083E50E94E71A0E946B1B83E50E9416 -:10229000051B1FC0843859F40E949F0F82FF2CC079 -:1022A00087E40E94E71A0E946B1B87E4F0CF8450FA -:1022B000813A10F4822FEBCF822F805E883060F459 -:1022C000277081E090E001C0880F2A95EAF70E940C -:1022D0002C1B0E946B1B0895822F855A833028F493 -:1022E00080E090E00E94C20F0895285A233120F424 -:1022F00080E090E00E94DA0F08951F93182F882342 -:1023000009F4D0C0823859F40E949F0F81FDCAC0E1 -:1023100089E30E94E71A0E946B1B89E30CC0833893 -:1023200079F40E949F0F80FDBDC083E50E94E71AEB -:102330000E946B1B83E50E94051B0E946B1BB2C0B1 -:10234000843859F40E949F0F82FDACC087E40E943C -:10235000E71A0E946B1B87E4EECF8450813A50F459 -:10236000812F0E94D020882309F09CC0812F0E94D9 -:10237000E71AE3CF812F805E883050F4177081E038 -:1023800090E001C0880F1A95EAF70E94261BD5CF6E -:10239000812F855A8330A0F4153A19F481E890E032 -:1023A0000CC0163A19F482E890E007C0173A19F009 -:1023B00080E090E002C083E890E00E94C20F72C00B -:1023C000812F885A833108F06DC0183A19F482EED3 -:1023D00090E066C0193A19F489EE90E061C01A3AAB -:1023E00019F48AEE90E05CC01B3A19F485EB90E09A -:1023F00057C01C3A19F486EB90E052C01B3B19F40D -:1024000083EB90E04DC01C3B19F484EB90E048C096 -:102410001D3A19F487EB90E043C0103B19F48CECA3 -:1024200090E03EC01E3A19F48DEC90E039C01F3A9E -:1024300019F483E891E034C0113B19F48AE891E083 -:102440002FC0123B19F482E991E02AC0133B19F422 -:1024500084E991E025C0143B19F481E292E020C0A8 -:10246000153B19F483E292E01BC0163B19F484E299 -:1024700092E016C0173B19F485E292E011C0183BB8 -:1024800019F486E292E00CC0193B19F487E292E05D -:1024900007C01A3B19F080E090E002C08AE292E0A7 -:1024A0000E94DA0F1F9108959F92AF92BF92CF9230 -:1024B000DF92EF92FF920F931F93DF93CF93CDB7ED -:1024C000DEB72A970FB6F894DEBF0FBECDBF5C0112 -:1024D000DE011196FC0185E001900D928150E1F73B -:1024E0000B81F501F580F2944FE0F422DE0116969F -:1024F000FE01319685E001900D928150E1F73E8119 -:102500002F8189859A85892B09F484C22F3F09F090 -:1025100070C23F3F09F06DC27DC20E94431B0E9402 -:10252000E11A882379F0002369F08C2D805E8830D1 -:1025300048F082E00E949C1B0E94E11A9924939427 -:10254000982601C099248D2D82958F7090E085305A -:10255000910509F4B5C08630910554F48430910595 -:102560000CF08FC02D2D207F02970CF049C017C0B2 -:102570008C30910544F48A3091050CF072C10897B3 -:1025800009F023C2A9C08D30910509F4EDC18D3049 -:1025900091050CF4DFC10F9709F017C20FC28D2D02 -:1025A0008F70222311F4182F03C0182F1295107F5B -:1025B000002389F0112309F4B9C18C2D805E883085 -:1025C00020F4812F0E94261B03C0812F0E94361BFE -:1025D0000E946B1BABC18C2D0E942A11112309F4A0 -:1025E000F4C1F0E2CF0E27E02C1520F0812F0E94DD -:1025F0002C1B03C0812F0E943C1B0E946B1BE5C15A -:102600008D2D8F70203211F4182F03C0182F1295C2 -:10261000107FCC2021F081E0C81609F514C00023FA -:1026200049F0FF2031F1E1E0FE1619F5812F0E94FB -:10263000561BCBC1FF2021F0F1E0FF1609F4C5C104 -:102640000E94591B30C1002329F025E02F1508F402 -:10265000BCC10FC084E08F1508F4B7C124C10023AA -:1026600061F0FF2031F0F501858180FF5FC18F703F -:102670008583812F0E942311A8C1FF2009F413C173 -:1026800060C18D2D86958695837090E0009721F02E -:10269000019709F09AC10AC0002319F0C60193708E -:1026A00002C080E090E00E94C20F8FC1002319F0A9 -:1026B000C601937002C080E090E00E94DA0F85C1ED -:1026C000002321F08C2D0E94AB1D03C08C2D0E9495 -:1026D000151E0E94A91E79C18D2D837009F05EC060 -:1026E000002309F072C12C2D229526952770220F08 -:1026F000220F8C2D8F70E82EFF2400E010E0022EB8 -:1027000004C0EE0CFF1C001F111F0A94D2F7C4FC7A -:1027100005C060E070E080E090E00FC06FE070E026 -:1027200080E090E004C0660F771F881F991F2A95EC -:10273000D2F76095709580959095D694D694F3E0F5 -:10274000DF224D2D50E041305105A9F042305105B6 -:102750001CF4452B49F039C14230510589F0433012 -:10276000510509F032C113C06E297F29802B912BAE -:102770000E94B21A2AC16E297F29802B912B0BC08F -:102780006E297F29802B912B0E94A11A1EC10E94C5 -:10279000B21AC801B7010E94C31A17C190E0002302 -:1027A00011F496958795817009F40FC12C2D22950F -:1027B00026952770220F220F8C2D8F70E82EFF2474 -:1027C00000E010E0022E04C0EE0CFF1C001F111FE1 -:1027D0000A94D2F7C4FC05C060E070E080E090E0AD -:1027E0000FC06FE070E080E090E004C0660F771FDC -:1027F000881F991F2A95D2F76095709580959095BE -:10280000D694D69423E0D2224D2D50E0413051058C -:10281000A9F0423051051CF4452B49F0D6C0423096 -:10282000510589F04330510509F0CFC013C06E291E -:102830007F29802B912B0E94051AC7C06E297F2902 -:10284000802B912B0BC06E297F29802B912B0E940E -:10285000F419BBC00E94051AC801B7010E94161ADC -:10286000B4C081EFC81699F18C1540F0E0EECE1699 -:1028700008F458C0FFEEFC1558F419C023EFC21637 -:1028800081F1C21648F184EFC81609F04BC033C07D -:102890001C2D1F708D2D8F71002319F00E94631A5B -:1028A000E8CE0E94431A812F0E941C118EC0002383 -:1028B00029F0E4E0EF1508F488C004C0F5E0FF1546 -:1028C00008F483C08D2D8F710E94271A7EC08D2D34 -:1028D0008F710023E1F130C08D2D8F71002361F1E4 -:1028E00036C0002329F08D2D8F710E947F1A6DC094 -:1028F0000E948F1A6AC0002351F01D2D1F71812F75 -:102900000E94631A812F63E00E94B51B5EC081E0C4 -:102910000E949C1B21E02F1508F057C082E00E9406 -:102920009C1B53C0002359F0FF2021F08C2D0E94E6 -:102930007D114BC08D2D8F710E94631A46C0FF2000 -:1029400021F08C2D0E942A1140C08D2D8F710E9484 -:10295000431A3BC08FE0D822C5016C2D4D2D0E943B -:10296000EE010E94181931C0002379F5EFE0DE2254 -:102970004D2D50E042305105B9F0433051053CF443 -:102980004115510559F041305105F9F40AC0433061 -:10299000510569F044305105C1F40CC00E94152264 -:1029A00014C00E94F82111C00E94E3210EC00E94B1 -:1029B000BC210BC08C2D0E94A02107C0FFE0DF22AC -:1029C000C5016C2D4D2D0E946E02992019F10E94B7 -:1029D000DD1A80FD1FC0F50112820E94D71A0E94E5 -:1029E000631AC5010E9454120E94D71A0E94431A0A -:1029F00011C0C5010E94070269817A81802F0E945F -:102A0000E5196C010E9492190E949119002309F4A2 -:102A100086CD83CD2A960FB6F894DEBF0FBECDBF0C -:102A2000CF91DF911F910F91FF90EF90DF90CF90AA -:102A3000BF90AF909F900895DF93CF93CDB7DEB74F -:102A40002B970FB6F894DEBF0FBECDBF342F4F8348 -:102A5000252F588769877A878B87472F582FFE0144 -:102A6000319686E0DF011D928A95E9F76B83398301 -:102A70002A834C835D83432F522F8D819E810E9438 -:102A800059182B960FB6F894DEBF0FBECDBFCF916D -:102A9000DF9108950F931F930091870115C010E0F7 -:102AA000F801EE0FFF1FE00FF11FEE0FFF1FE857B9 -:102AB000FE4F4081518162817381848195810E94A2 -:102AC000C0100F5F1F4F077080918601081739F7FC -:102AD0001F910F9108954091800150918101609163 -:102AE00082017091830180918401909185010E94FF -:102AF000C01008950F931F93CF93DF9380918501AA -:102B000082958F7009F06DC080918201882309F44D -:102B100068C06091870100918601409183015091C6 -:102B200084011091810170918001EA01C095D095D6 -:102B300055C04115510509F44FC01F3F49F480E0CD -:102B400090E07F3F11F481E090E0882309F044C0D9 -:102B5000262F30E0F901EE0FFF1FE20FF31FDF0118 -:102B6000AA0FBB1FA857BE4F11968C91119718172B -:102B700099F58C91781781F5EE0FFF1FE657FE4F00 -:102B80008081882349F513968D919C911497841721 -:102B9000950718F0841B950B02C08C0F9D1F883C75 -:102BA0009105D0F4809185018F70806180938501BB -:102BB000F901EE0FFF1FE20FF31FEE0FFF1FE357A8 -:102BC000FE4F80818F708061808380E891E00E9459 -:102BD00054120E944A1505C06F5F6770601709F0B4 -:102BE000A8CFDF91CF911F910F910895DF92EF92BF -:102BF000FF920F931F93DF93CF93CDB7DEB76B9701 -:102C00000FB6F894DEBF0FBECDBF8C01DC0112966B -:102C1000DC9012974C9111965C9111971396ED9060 -:102C2000FC9014972091830130918401609181017F -:102C3000709180012115310509F4DBC16F3F09F066 -:102C400003C27F3F09F000C2D4C1E216F30640F090 -:102C5000C701821B930B883C910508F0EEC008C0A9 -:102C6000209530952E0D3F1D283C310508F0E5C01C -:102C700080918501807F09F095C06F3F09F0EAC11E -:102C80007F3F09F0E7C115C0741799F4DD2089F47E -:102C9000809185018F708061809385010E946B1502 -:102CA00080E891E00E94541280918501F8018583AB -:102CB000BCC1FD82EC825A834983DB82DE01169619 -:102CC000FE01319685E001900D928150E1F7688513 -:102CD000DE011B96FE01369685E001900D92815033 -:102CE000E1F72C853B858E859F85892B09F451C0A2 -:102CF0002F3F09F0B3C13F3F09F0B0C14AC0FD8288 -:102D0000EC825A834983DB82DE011B96FE013196F9 -:102D100085E001900D928150E1F7FC847B856D8503 -:102D200080918701909186011FC0282F30E0F90122 -:102D3000EE0FFF1FE20FF31FDF01AA0FBB1FA85703 -:102D4000BE4F11968C911197F81651F48C9178170B -:102D500039F4EE0FFF1FE657FE4F80816817C9F464 -:102D60002F5F3F4F822F87708917F9F68DC19F70B3 -:102D700059F0442349F459C19F7031F0D801159698 -:102D80008C91807F09F451C1405E483008F44DC1F8 -:102D900048C1DD2009F449C180918501816080939B -:102DA000850143C16F3F09F05DC17F3F09F05AC102 -:102DB00014C0741791F4DD2081F480918501F8012D -:102DC0008583C8010E945412A0E8B1E0F80186E0B2 -:102DD00001900D928150E1F720C15A834983898186 -:102DE0009A810E94D010882309F41BC1DD2009F4C8 -:102DF00018C130918501832F82958F7090E00297E2 -:102E00009CF09091810120918001FE01709686E0F6 -:102E1000DF011D928A95E9F7998B288BFC8AEB8A52 -:102E20003D8BCF010E945412A0E8B1E0F80186E08A -:102E300001900D928150E1F7EEC080918501807F75 -:102E4000A9F47E2DFD82EC825A834983DB826D2DAD -:102E50008D810E94B11000E811E0C8010E94541257 -:102E600086E0F80111928A95E9F7C0C06F3F09F03A -:102E7000FDC07F3F09F0FAC014C0741791F4DD2043 -:102E800081F480918501D80115968C93C8010E9428 -:102E90005412E0E8F1E086E0DF011D928A95E9F73F -:102EA000BEC05A83498389819A810E94D0108823A9 -:102EB00009F4B7C0DD2009F4B4C030918501832F37 -:102EC00082958F7090E002979CF090918101209103 -:102ED0008001FE01769686E0DF011D928A95E9F772 -:102EE0009F8B2E8BFA8EE98E3B8FCF010E9454125E -:102EF000A0E8B1E0F80186E001900D928150E1F781 -:102F00008AC06F3F09F0B6C07F3F09F0B3C071C0FF -:102F1000E216F30640F0C701821B930B883C910533 -:102F200008F053C008C0209530952E0D3F1D283C59 -:102F3000310508F04AC0DD2009F473C06F3F09F085 -:102F40009FC07F3F09F09CC029C0741739F590914C -:102F5000850190FD1AC0892F82958F70B1F0F8011C -:102F600095838F3031F08F5F8295807F9F70982B93 -:102F70009583C8010E945412A0E8B1E0F80186E0F0 -:102F800001900D928150E1F748C0A0E8B1E0F8014E -:102F900086E001900D928150E1F741C05A83498348 -:102FA00089819A810E94D010882349F0A0E8B1E07D -:102FB000F80186E001900D928150E1F72CC08091DC -:102FC00085018160809385012CC07E2DFD82EC827D -:102FD0005A834983DB826D2D8D810E94B110E0E818 -:102FE000F1E086E0DF011D928A95E9F70E946B15FA -:102FF0001CC0DD20B1F05A83498389819A810E94E7 -:10300000D010882371F0A0E8B1E0F80186E00190CB -:103010000D928150E1F70E947A150E946B1581E0B4 -:1030200005C0C8010E945412FACF80E06B960FB61B -:10303000F894DEBF0FBECDBFCF91DF911F910F91EE -:10304000FF90EF90DF90089580918201882309F42A -:1030500058CFFBCD651709F02CCE16CE613009F4A0 -:1030600098CE4DCE651709F0B8CEA3CE651709F0FE -:1030700018CF03CF80918201882309F0BACF48CFBF -:10308000651709F08BCF61CF5A83498389819A8173 -:103090000E94DA19482F892F82958F70282F30E0EF -:1030A000223031050CF463CE243031050CF0B9CF59 -:1030B00063CE0F931F93DF93CF93CDB7DEB72C97DB -:1030C0000FB6F894DEBF0FBECDBF4F835887698718 -:1030D0007A878B879C878E01095F1F4FC8010E94EA -:1030E000F6158823D9F028853F818A859B85892B11 -:1030F00009F46BC02F3F49F480E090E03F3F11F4AA -:1031000081E090E0882309F060C04F81588569858F -:103110007A858B859C850E94C01057C0DE01119670 -:10312000F80186E001900D928150E1F7F981EA8182 -:103130004C815D814115510509F447C0EF3F09F00D -:103140004CC0FF3F09F049C040C0F983EA835D836A -:103150004C83F901EE0FFF1FE20FF31FEE0FFF1F6D -:10316000E857FE4FDE01119686E00D9001928150E6 -:10317000E1F7609386010E944A1527C0919FC00124 -:10318000112488579E4F0E94F615882309F445C0E4 -:103190008091870190E0FC01EE0FFF1FE80FF91FFF -:1031A000EE0FFF1FE857FE4F40815181628173810E -:1031B000848195810E94C0108091870190E00196E2 -:1031C000877090708093870101C016E0909187010D -:1031D00080918601981791F620C080918601282F52 -:1031E00030E02F5F3F4FB901677070702150304061 -:1031F0008091870190E06817790709F0A6CF0E94B7 -:1032000017111092860110928701E0E8F1E086E044 -:10321000DF011D928A95E9F7D8CF2C960FB6F89466 -:10322000DEBF0FBECDBFCF91DF911F910F910895EB -:10323000CF92DF92EF92FF921F93CF93DF93EC0137 -:10324000009709F466C010E090EAC92E9FE0D92EDD -:1032500081E0E82EF12CFE0121969491943748F4F8 -:10326000943008F044C0913079F0923009F051C0A8 -:103270001BC0953709F437C0953750F1892F845812 -:10328000803708F046C037C0FE0121969491892FFF -:10329000805E883060F597708E2D01C0880F9A95FA -:1032A000EAF70E94461B0FC0FE0121969491892FD8 -:1032B000805E883058F497708E2D01C0880F9A95E3 -:1032C000EAF70E944C1B0E946B1B19C0892F15C086 -:1032D000FE01249104C0C6010197F1F72150222379 -:1032E000D1F721960CC0FE012196149108C0892FB8 -:1032F0000E947D1104C0892F8F770E942A11212FEF -:1033000004C0C6010197F1F72150222309F4A3CF8D -:10331000F8CFDF91CF911F91FF90EF90DF90CF908A -:10332000089508950895AF92BF92DF92EF92FF92B1 -:103330000F931F93CF93DF935C01E090B801F0905F -:10334000B9010091BA011091BB018091BC0190912B -:10335000BD01A091BE01B091BF01E82AF92A0A2B54 -:103360001B2BCFE1D0E0DC2ED801C7010C2E04C00E -:10337000B695A795979587950A94D2F78170907026 -:10338000892B39F08C2FB5010E94D304813091052F -:1033900031F421978FEFCF3FD80729F7DD248D2D0A -:1033A000DF91CF911F910F91FF90EF90DF90BF9031 -:1033B000AF9008950F931F938C010E949319B80149 -:1033C0000E94D3041F910F910895CB010E94DA1936 -:1033D00008956093BC017093BD018093BE019093EA -:1033E000BF010E94021108959B01AC016091BC01D4 -:1033F0007091BD018091BE019091BF01622773273A -:10340000842795270E94E91908959B01AC016091DA -:10341000BC017091BD018091BE019091BF016223FA -:103420007323842395230E94E91908959B01AC011D -:103430006091BC017091BD018091BE019091BF016E -:10344000622B732B842B952B0E94E919089521E0A0 -:1034500030E040E050E004C0220F331F441F551FEE -:103460008A95D2F78091BC019091BD01A091BE01D7 -:10347000B091BF01282739274A275B27CA01B90124 -:103480000E94E919089521E030E040E050E004C0D6 -:10349000220F331F441F551F8A95D2F72095309570 -:1034A000409550958091BC019091BD01A091BE01C5 -:1034B000B091BF01282339234A235B23CA01B901F4 -:1034C0000E94E919089521E030E040E050E004C096 -:1034D000220F331F441F551F8A95D2F78091BC01DC -:1034E0009091BD01A091BE01B091BF01282B392B55 -:1034F0004A2B5B2BCA01B9010E94E919089521E00A -:1035000030E040E050E004C0220F331F441F551F3D -:103510008A95D2F7CA01B9010E94E919089560E0BD -:1035200070E080E090E00E94E91908956093B8018E -:103530007093B9018093BA019093BB010E9402116C -:1035400008959B01AC016091B8017091B90180911F -:10355000BA019091BB0162277327842795270E94A7 -:10356000961A08959B01AC016091B8017091B90160 -:103570008091BA019091BB01622373238423952328 -:103580000E94961A08959B01AC016091B801709158 -:10359000B9018091BA019091BB01622B732B842BEE -:1035A000952B0E94961A08950E94961A089580916C -:1035B000CC0185958595859508958091CC0187707E -:1035C00008958091CC01877009F081E00895382F2B -:1035D000A0910C01B0910D01FD0120E08FEF9281CF -:1035E000931791F08F3F19F4992309F4822F2F5FDD -:1035F00031962630A1F78F3F39F0992787FD9095B6 -:10360000A80FB91F12963C930895982F20E030E040 -:10361000E0910C01F0910D01E20FF31F82818917F7 -:1036200009F412822F5F3F4F2630310589F7089544 -:1036300081E090E0E0910C01F0910D01E80FF91F9D -:103640001082019688309105A9F708959091C801DC -:10365000982B9093C801089580959091C801982364 -:103660009093C80108951092C80108959091CB01DC -:10367000982B9093CB01089580959091CB0198233E -:103680009093CB0108951092CB0108959091CA01B7 -:10369000982B9093CA01089580959091CA01982320 -:1036A0009093CA0108951092CA0108958093C901A8 -:1036B00008951092C9010895E0910C01F0910D0157 -:1036C00020E091E0818181112F5F9F5F31969830DA -:1036D000C9F7822F0895E0910C01F0910D018091BE -:1036E000C8018083E0910C01F0910D0180819091DF -:1036F000CB01892B8083E0910C01F0910D01808139 -:103700009091CA01892B80839091C901992369F016 -:10371000E0910C01F0910D018081892B80830E9442 -:103720005C1B882311F00E94591B80910C01909121 -:103730000D010E94AC0F08952091CC01482F4095B7 -:1037400042234093CC01842F877071F430E0842FA2 -:10375000992787FD90952817390731F0842F859593 -:10376000859585950E94431A0895982F990F990F72 -:10377000990F962B9093CC010E94631A0895089597 -:1037800008951F920F920FB60F9211248F939F935B -:10379000AF93BF938091CE01882399F48091CF019C -:1037A0009091D001A091D101B091D2014196A11D7B -:1037B000B11D8093CF019093D001A093D101B0931C -:1037C000D201BF91AF919F918F910F900FBE0F903B -:1037D0001F9018950E94171180E00E9423020E94FA -:1037E0002A220E949F0F0E94680508958091E2019D -:1037F000843039F11092CE0120E488E190E00FB6D8 -:10380000F894A895809360000FBE2093600080E03C -:103810000E94230280E00E94680583B7817F846054 -:1038200083BF83B7816083BF7894889583B78E7F89 -:1038300083BF88E10FB6F894809360001092600017 -:103840000FBE089580E00E9423020E94BF1B0E94C9 -:1038500023070E94C01B80E00E946B05892B81F426 -:1038600081E00E946B05892B59F482E00E946B0570 -:10387000892B31F483E00E946B0520E0892B09F04D -:1038800021E0822F089582E084BD93E095BD9AEFF8 -:1038900097BD80936E0008958FB7F8942091CF0163 -:1038A0003091D0014091D1015091D2018FBFC90117 -:1038B0000895EF92FF920F931F93BC018FB7F89476 -:1038C000E090CF01F090D0010091D1011091D20190 -:1038D0008FBFA801970140705070CB01A0E0B0E00D -:1038E000281739074A075B0720F09701261B370B7B -:1038F00005C09B01209530952E0D3F1DC9011F91DC -:103900000F91FF90EF9008951F920F920FB60F92B4 -:1039100011248F939F93AF93BF938091CF01909188 -:10392000D001A091D101B091D2010196A11DB11D8C -:103930008093CF019093D001A093D101B093D20195 -:10394000BF91AF919F918F910F900FBE0F901F90DD -:1039500018950E94850CF89480E29EE420E931E0FD -:10396000F9013197F1F70197D9F787E090EBA7E0DC -:10397000B0EB8093ED019093EE01A093EF01B09333 -:10398000F0012CE088E190E00FB6F894A8958093C0 -:1039900060000FBE20936000FFCF0E94051D8823AA -:1039A00011F40E94101D0E94001D8093CD010E9401 -:1039B000F61C8093EB010E94FB1C90E0A0E0B0E0BD -:1039C000BC01CD010E94D41A0895682F86E090E0D2 -:1039D0000E9493230895682F84E090E00E9493232F -:1039E000089586E090E00E948523089584E090E0A9 -:1039F0000E948523089583E090E00E948523089526 -:103A000082E090E00E948523089580E090E00E948B -:103A10008D2320E08D5E9E4F09F421E0822F0895D2 -:103A200080E090E06DEE7EEF0E94A52382E090E0C2 -:103A300060E00E94932383E090E060E00E94932383 -:103A400084E090E060E00E94932385E090E060E0F5 -:103A50000E94932386E090E060E00E949323089503 -:103A60008091D90180FF0BC09091100185E0989F53 -:103A7000C0011124959587959595879530C081FF54 -:103A800009C09091100185E0989FC001112495957F -:103A9000879525C082FF03C0909110010DC08091D1 -:103AA000D801882319F485E090E008956091110110 -:103AB00090911001861728F085E0989FC00111248D -:103AC0000EC0899F90011124C901880F991F880F8A -:103AD000991F820F931F70E00E945E23CB018038F4 -:103AE000910510F08FE70895009709F481E008959B -:103AF0008091D90180FF05C080911201869586953D -:103B000018C081FF04C080911201869512C082FF07 -:103B100003C0809112010DC02091D801222319F415 -:103B200081E090E0089560911301809112012617C1 -:103B300010F090E007C0289FC001112470E00E949F -:103B40005E23CB018038910510F08FE70895009730 -:103B500009F481E00895803F21F40E94301D819591 -:103B600004C0813F29F40E94301D8093D50108953F -:103B7000823F21F40E94301D819504C0833F29F4C7 -:103B80000E94301D8093D4010895893F19F40E944A -:103B9000781D05C08A3F31F40E94781D819580937D -:103BA000D60108958B3F21F40E94781D819504C0B1 -:103BB0008C3F29F40E94781D8093D7010895843F9B -:103BC00021F48091D301816017C0853F21F4809159 -:103BD000D301826011C0863F21F48091D3018460BB -:103BE0000BC0873F21F48091D301886005C0883FD6 -:103BF00031F48091D30180618093D30108958D3F8A -:103C000021F48091D901816005C08E3F31F480910B -:103C1000D90182608093D90108958F3F29F4809162 -:103C2000D90184608093D9010895803F29F480915F -:103C3000D50187FF6FC007C0813F41F48091D50156 -:103C400018160CF067C01092D50164C0823F29F4A9 -:103C50008091D40187FF5EC007C0833F41F480910B -:103C6000D40118160CF056C01092D40153C0893FED -:103C700029F48091D60118163CF04CC08A3F39F4E3 -:103C80008091D60187FF46C01092D60143C08B3F7A -:103C900029F48091D70187FF3DC006C08C3F39F4DD -:103CA0008091D7011816B4F51092D70133C0843F24 -:103CB00021F48091D3018E7F05C0853F31F480913E -:103CC000D3018D7F8093D30125C0863F21F480915D -:103CD000D3018B7FF7CF873F21F48091D301877F7A -:103CE000F1CF883F21F48091D3018F7EEBCF8D3FC0 -:103CF00021F48091D9018E7F0BC08E3F21F48091F9 -:103D0000D9018D7F05C08F3F29F48091D9018B7F28 -:103D10008093D9018091D401882371F48091D501D9 -:103D2000882351F48091D601882331F48091D70102 -:103D3000882311F41092D8010895E3EDF1E085E0B5 -:103D4000DF011D928A95E9F71092D8011092D901EE -:103D5000089583ED91E00E94B70F0E944C1C909350 -:103D6000DB018093DA0108951F938091DA0190912D -:103D7000DB010E94591CAC012091D801222321F0C3 -:103D800080910F0190E006C090910E018AE0989F0B -:103D9000C00111244817590708F485C09091D40137 -:103DA000992369F48091D501882349F48091D60143 -:103DB000882329F48091D701882309F474C02F3F08 -:103DC00019F02F5F2093D801191624F40E94301D9A -:103DD0008093D4018091D40187FF05C00E94301DDB -:103DE00081958093D4018091D501181624F40E9406 -:103DF000301D8093D5018091D50187FF05C00E94B9 -:103E0000301D81958093D5016091D401662339F1ED -:103E10001091D501112319F1772767FD7095872F30 -:103E2000972F0E946F2223E333E343E35FE30E9473 -:103E3000D3220E943C226093D401612F772767FD33 -:103E40007095872F972F0E946F2223E333E343E37C -:103E50005FE30E94D3220E943C226093D5018091AF -:103E6000D601181624F40E94781D8093D601809103 -:103E7000D60187FF05C00E94781D81958093D601E9 -:103E80008091D701181624F40E94781D8093D701E1 -:103E90008091D70187FF05C00E94781D819580938E -:103EA000D7010E94A91E1F91089580E0089580E027 -:103EB0000895833099F1843030F4813069F0823094 -:103EC00009F06FC01AC0853009F44AC08530B8F1D6 -:103ED000863009F066C055C020910E01822F90E017 -:103EE000860F911D8F3F910520F4260F20930E0120 -:103EF00008958FEF80930E01089520910F01822F76 -:103F000090E0860F911D8F3F910520F4260F20939E -:103F10000F0108958FEF80930F01089520911001F4 -:103F2000822F90E0860F911D8F3F910520F4260F80 -:103F30002093100108958FEF809310010895209130 -:103F40001101822F90E0860F911D8F3F910520F483 -:103F5000260F2093110108958FEF8093110108958A -:103F600020911201822F90E0860F911D8F3F9105C5 -:103F700020F4260F2093120108958FEF80931201F1 -:103F8000089520911301822F90E0860F911D8F3F9D -:103F9000910520F4260F2093130108958FEF80934D -:103FA00013010895833031F1843030F4813061F0B1 -:103FB000823009F04AC013C0853091F1853028F174 -:103FC000863009F042C037C080910E01681720F496 -:103FD000861B80930E01089510920E010895809122 -:103FE0000F01681720F4861B80930F01089510922B -:103FF0000F01089580911001681720F4861B8093AB -:104000001001089510921001089580911101681710 -:1040100020F4861B809311010895109211010895D8 -:1040200080911201681720F4861B80931201089575 -:1040300010921201089580911301681720F4861BD5 -:1040400080931301089510921301089521E030E048 -:1040500040E050E004C0220F331F441F551F8A95D3 -:10406000D2F7CA01B9010E94D41A0E94171108950B -:104070008732F8F48E3108F08AC08E3009F463C0BC -:104080008F3048F4873009F445C08B3009F486C07E -:10409000863039F528C0863109F480C0873118F49C -:1040A0008031F9F45CC0893109F478C08B31C9F4EE -:1040B00040C0883309F472C0893348F4893209F466 -:1040C00068C0853309F465C0873259F462C083340F -:1040D00009F45FC0843418F48A3318F056C0883469 -:1040E00059F080E008958091CD01807F8093CD01CB -:1040F00081E08093DC0108950E94171180E197E22E -:1041000020E931E0F9013197F1F70197D9F70E94E1 -:10411000A91C42C09091CD01892F809581709E7F0E -:10412000982B882311F09E6001C0917F9093CD0160 -:1041300033C08091CD01982F969590959170292F3D -:10414000220F8D7F19C08091CD01982F969596955D -:1041500090959170292F220F220F8B7F0DC0809197 -:10416000CD01982F96959695969590959170292FBB -:10417000220F220F220F877F822B8093CD0199235C -:1041800069F081608093CD0107C0895303C08D51D0 -:1041900001C080E00E94262081E0089581E008951A -:1041A0001F93182F8091DC01813079F0813020F04D -:1041B000823009F0BCC037C0E0910C01F0910D01D4 -:1041C0008081823209F0B5C007C0E0910C01F09106 -:1041D0000D018081823249F4812F0E94551F88236E -:1041E000F9F4812F0E943820A5C0812F0E94571F0B -:1041F0008823B1F4143161F0153128F41B3081F0BB -:10420000103141F40AC0193219F0183319F408C0FA -:104210001092DC0180E090E08DC082E08093DC01B0 -:1042200081E090E087C0193201F11A3270F4143144 -:10423000E1F0153120F4173009F064C065C0812F1A -:104240008E51863008F05EC01BC01E3409F455C084 -:104250001F3420F41B3409F055C049C0113509F44E -:1042600042C0123509F04EC03AC08091DD0188236A -:1042700019F01092DD0146C081E08093DC015AC044 -:104280001232F9F0133260F41F3199F0103218F441 -:104290001E3109F510C0103281F01132E1F40FC067 -:1042A000143299F0143278F0153289F0163299F4FC -:1042B00010C082E011C081E00FC083E00DC084E037 -:1042C0000BC085E009C086E007C087E005C088E034 -:1042D00003C089E001C080E08093DD0113C08091BC -:1042E000DD0161E007C08091DD0161E009C08091DE -:1042F000DD016AE00E94591F05C08091DD016AE07E -:104300000E94D21F81E016C08EE180930E0182E3ED -:1043100080930F018AE08093100184E18093110162 -:1043200088E08093120188E280931301EBCF109212 -:10433000DC0180E01F9108958091EC01869508953D -:104340009091EC01292F26952827220F9170922B0E -:104350009093EC0120E09E7F09F021E08091EC0138 -:104360008E7F822B8093EC010E94E51C8091EC01F2 -:1043700086950E94230208958091EC01282F2695AE -:104380002F5F2F77922F990F8170892B8093EC01EB -:1043900030E0243031051CF081708093EC0190E016 -:1043A0008091EC018E7F09F091E08091EC018E7F8D -:1043B000892B8093EC010E94E51C8091EC0186958D -:1043C0000E94230208958091EC01982F909591709E -:1043D0008E7F892B8093EC010E94E51C8091EC017B -:1043E00080FD02C080E001C086950E9423020895EE -:1043F0008091EC01982F969591F09158990F8170CA -:10440000892B8093EC0190E08E7F09F091E0809100 -:10441000EC018E7F892B8093EC010E94E51C80913A -:10442000EC0186950E94230208952091EC012695C7 -:10443000822F90E0039744F4822F8F5F880F816072 -:104440008093EC010E94E51C8091EC0186950E940E -:10445000230208950E94051D882311F40E94101D57 -:104460000E94F11C8093EC0180FD02C080E001C03D -:1044700086950E942302089504D06894B1118DC0DE -:10448000089570D088F09F5790F0B92F9927B751B1 -:10449000A0F0D1F0660F771F881F991F1AF0BA9508 -:1044A000C9F712C0B13081F077D0B1E0089574C07F -:1044B000672F782F8827B85F39F0B93FCCF38695FE -:1044C00077956795B395D9F73EF49095809570955B -:1044D00061957F4F8F4F9F4F0895E89409C097FBD8 -:1044E0003EF490958095709561957F4F8F4F9F4FCB -:1044F0009923A9F0F92F96E9BB279395F69587950F -:1045000077956795B795F111F8CFFAF4BB0F11F4D1 -:1045100060FF1BC06F5F7F4F8F4F9F4F16C0882378 -:1045200011F096E911C0772321F09EE8872F762FAE -:1045300005C0662371F096E8862F70E060E02AF0EF -:104540009A95660F771F881FDAF7880F96958795DB -:1045500097F9089557FD9058440F551F59F05F3F44 -:1045600071F04795880F97FB991F61F09F3F79F095 -:1045700087950895121613061406551FF2CF469517 -:10458000F1DF08C0161617061806991FF1CF869599 -:104590007105610508940895E894BB27662777277D -:1045A000CB0197F908950BD078C069D028F06ED070 -:1045B00018F0952309F05AC05FC01124EECFCADF6E -:1045C000A0F3959FD1F3950F50E0551F629FF00126 -:1045D000729FBB27F00DB11D639FAA27F00DB11D7F -:1045E000AA1F649F6627B00DA11D661F829F222708 -:1045F000B00DA11D621F739FB00DA11D621F839F8F -:10460000A00D611D221F749F3327A00D611D231F64 -:10461000849F600D211D822F762F6A2F11249F57B2 -:1046200050408AF0E1F088234AF0EE0FFF1FBB1FD5 -:10463000661F771F881F91505040A9F79E3F510574 -:1046400070F014C0AACF5F3FECF3983EDCF3869580 -:1046500077956795B795F795E7959F5FC1F7FE2B1F -:10466000880F911D9695879597F9089597F99F67FB -:1046700080E870E060E008959FEF80EC08950024EA -:104680000A941616170618060906089500240A94B7 -:1046900012161306140605060895092E0394000C3D -:1046A00011F4882352F0BB0F40F4BF2B11F460FFCC -:1046B00004C06F5F7F4F8F4F9F4F089597FB092E68 -:1046C00007260AD077FD04D00CD006D000201AF4BB -:1046D000709561957F4F0895F6F7909581959F4F5E -:1046E0000895AA1BBB1B51E107C0AA1FBB1FA61739 -:1046F000B70710F0A61BB70B881F991F5A95A9F78B -:1047000080959095BC01CD010895F999FECF92BD99 -:1047100081BDF89A992780B50895A8E1B0E042E0FC -:1047200050E00C94AD23262FF999FECF92BD81BDA8 -:10473000F89A019700B4021639F01FBA20BD0FB6DF -:10474000F894FA9AF99A0FBE08950196272F0E94BD -:1047500094230C949323DC01CB01FC01F999FECF47 -:1047600006C0F2BDE1BDF89A319600B40D924150F9 -:0A4770005040B8F70895F894FFCF09 -:10477A00050175080A09E408AE087808C0011E3266 -:10478A000A14082840004500250026006100600040 -:10479A002000370064006500660067004400460098 -:1047AA002400470040004500250026006100600003 -:1047BA002000370064006500660067004400460078 -:0447CA002400470080 -:00000001FF diff --git a/keyboard/planck/keymaps/Jacob/readme.md b/keyboard/planck/keymaps/Jacob/readme.md deleted file mode 100644 index 2a4be4ebce..0000000000 --- a/keyboard/planck/keymaps/Jacob/readme.md +++ /dev/null @@ -1 +0,0 @@ -Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. \ No newline at end of file diff --git a/keyboard/planck/keymaps/alexey.c b/keyboard/planck/keymaps/alexey.c deleted file mode 100644 index 89af4112c6..0000000000 --- a/keyboard/planck/keymaps/alexey.c +++ /dev/null @@ -1,51 +0,0 @@ -#include "keymap_common.h" -#include "planck.h" -#include "backlight.h" - -#define _QW 0 -#define _LW 1 -#define _RS 2 - -// This layout tries to imitate the Atreus keyboard - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* 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, MO(_LW)}, - {KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS}, - {M(0), KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_SPC, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT, KC_TRNS} -}, -[_RS] = { /* RAISE */ - {KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS}, - {KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS}, - {KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_EQL, KC_TRNS} -}, -[_LW] = { /* LOWER */ - {KC_TRNS, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_DELETE, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_F11, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_TRNS} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - backlight_step(); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; - diff --git a/keyboard/planck/keymaps/alexey/alexey.c b/keyboard/planck/keymaps/alexey/alexey.c new file mode 100644 index 0000000000..89af4112c6 --- /dev/null +++ b/keyboard/planck/keymaps/alexey/alexey.c @@ -0,0 +1,51 @@ +#include "keymap_common.h" +#include "planck.h" +#include "backlight.h" + +#define _QW 0 +#define _LW 1 +#define _RS 2 + +// This layout tries to imitate the Atreus keyboard + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* 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, MO(_LW)}, + {KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS}, + {M(0), KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_SPC, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT, KC_TRNS} +}, +[_RS] = { /* RAISE */ + {KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS}, + {KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS}, + {KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_EQL, KC_TRNS} +}, +[_LW] = { /* LOWER */ + {KC_TRNS, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {KC_TRNS, KC_DELETE, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_F11, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_TRNS} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + backlight_step(); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + diff --git a/keyboard/planck/keymaps/angerthosenear.c b/keyboard/planck/keymaps/angerthosenear.c deleted file mode 100644 index cdf60632e4..0000000000 --- a/keyboard/planck/keymaps/angerthosenear.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, - {KC_LCTL, KC_LGUI, KC_LALT, BL_STEP, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* WASD + NumPad */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_PMNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PPLS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_PENT, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_SPC, KC_P0, FUNC(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[2] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_DEL}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} -} -}; - - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/angerthosenear/angerthosenear.c b/keyboard/planck/keymaps/angerthosenear/angerthosenear.c new file mode 100644 index 0000000000..cdf60632e4 --- /dev/null +++ b/keyboard/planck/keymaps/angerthosenear/angerthosenear.c @@ -0,0 +1,50 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, + {KC_LCTL, KC_LGUI, KC_LALT, BL_STEP, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* WASD + NumPad */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_PMNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PPLS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_PENT, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_SPC, KC_P0, FUNC(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[2] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS}, + {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_DEL}, + {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} +} +}; + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/austin.c b/keyboard/planck/keymaps/austin.c deleted file mode 100644 index 49fc98a587..0000000000 --- a/keyboard/planck/keymaps/austin.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* 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}, - {BL_STEP, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* 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_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/austin/austin.c b/keyboard/planck/keymaps/austin/austin.c new file mode 100644 index 0000000000..49fc98a587 --- /dev/null +++ b/keyboard/planck/keymaps/austin/austin.c @@ -0,0 +1,50 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* 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}, + {BL_STEP, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_FN3, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* 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_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/bone2planck.c b/keyboard/planck/keymaps/bone2planck.c deleted file mode 100644 index a99e7719f9..0000000000 --- a/keyboard/planck/keymaps/bone2planck.c +++ /dev/null @@ -1,112 +0,0 @@ - -#include "planck.h" -#ifdef BACKLIGHT_ENABLE -#include "backlight.h" -#endif -#include "..\..\quantum\keymap_extras\keymap_german.h" - -/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout. - It has Umlauts and "ß" as it is optimized for a mix of German & English. - My favourite features are the placement of the special characters often used for programming right on the home row - and the number & navigation block combo, so you never have to move your hands from their home position. - - Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone -*/ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Bone2 - * ,-----------------------------------------------------------------------------------. - * | Q | J | D | U | A | X | P | H | L | M | W | ẞ | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | M1 | C | T | I | E | O | B | N | R | S | G | M1 | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [0] = { - { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, - { MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, MO(1) }, - { DE_S, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, DE_S }, - { KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), KC_SPC, KC_SPC, MO(2), MO(3), KC_ESC, KC_TAB, KC_ENT } - }, - - /* M1 Special Characters - * ,-----------------------------------------------------------------------------------. - * | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | M1 | \ | / | { | } | * | ? | ( | ) | - | : | M1 | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | # | $ | | | ~ | € | + | % | " | ' | ; | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [1] = { - { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, KC_NO }, - { KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, KC_TRNS }, - { KC_NO , DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_NO }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } - }, - - /* Navigation & Number Blocks - * ,-----------------------------------------------------------------------------------. - * | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [2] = { - { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO }, - { KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_NO }, - { DE_S, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, KC_0, DE_1, DE_2, DE_3, DE_SCLN, DE_S }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } - }, - - /* Function & Media Keys - * ,-----------------------------------------------------------------------------------. - * | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | | Space | | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [3] = { - { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO }, - { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO }, - { KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, KC_TRNS}, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - } -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch (id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); -#ifdef BACKLIGHT_ENABLE - backlight_step(); -#endif - } - else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/bone2planck/bone2planck.c b/keyboard/planck/keymaps/bone2planck/bone2planck.c new file mode 100644 index 0000000000..a99e7719f9 --- /dev/null +++ b/keyboard/planck/keymaps/bone2planck/bone2planck.c @@ -0,0 +1,112 @@ + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE +#include "backlight.h" +#endif +#include "..\..\quantum\keymap_extras\keymap_german.h" + +/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout. + It has Umlauts and "ß" as it is optimized for a mix of German & English. + My favourite features are the placement of the special characters often used for programming right on the home row + and the number & navigation block combo, so you never have to move your hands from their home position. + + Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Bone2 + * ,-----------------------------------------------------------------------------------. + * | Q | J | D | U | A | X | P | H | L | M | W | ẞ | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | M1 | C | T | I | E | O | B | N | R | S | G | M1 | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [0] = { + { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, + { MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, MO(1) }, + { DE_S, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, DE_S }, + { KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), KC_SPC, KC_SPC, MO(2), MO(3), KC_ESC, KC_TAB, KC_ENT } + }, + + /* M1 Special Characters + * ,-----------------------------------------------------------------------------------. + * | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | M1 | \ | / | { | } | * | ? | ( | ) | - | : | M1 | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | # | $ | | | ~ | € | + | % | " | ' | ; | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [1] = { + { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, KC_NO }, + { KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, KC_TRNS }, + { KC_NO , DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_NO }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } + }, + + /* Navigation & Number Blocks + * ,-----------------------------------------------------------------------------------. + * | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [2] = { + { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO }, + { KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_NO }, + { DE_S, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, KC_0, DE_1, DE_2, DE_3, DE_SCLN, DE_S }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } + }, + + /* Function & Media Keys + * ,-----------------------------------------------------------------------------------. + * | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | | Space | | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [3] = { + { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO }, + { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO }, + { KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, KC_TRNS}, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch (id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); +#ifdef BACKLIGHT_ENABLE + backlight_step(); +#endif + } + else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/brandon.c b/keyboard/planck/keymaps/brandon.c deleted file mode 100644 index 2b89f86db2..0000000000 --- a/keyboard/planck/keymaps/brandon.c +++ /dev/null @@ -1,134 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "planck.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -// 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 _QW 0 -#define _CM 1 -#define _TK 2 -#define _LW 3 -#define _RS 4 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* Qwerty */ -/* MIT Layout (QWERTY layer) - * - * ,-----------------------------------------------------------------------. - * | esc | q | w | e | r | t | y | u | i | o | p | bspc| - * |-----------------------------------------------------------------------| - * | tab | a | s | d | f | g | h | j | k | l | ; | ' | - * |-----------------------------------------------------------------------| - * |shift| z | x | c | v | b | n | m | , | . | / |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| - * `-----------------------------------------------------------------------' - */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, 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, MT(MOD_LSFT, KC_ENT) }, - {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_CM] = { /* Colemak */ -/* MIT Layout (Colemak layer) - * - * ,-----------------------------------------------------------------------. - * | esc | q | w | f | p | g | j | l | u | y | ; | bspc| - * |-----------------------------------------------------------------------| - * | tab | a | r | s | t | d | h | n | e | i | o | ' | - * |-----------------------------------------------------------------------| - * |shift| z | x | c | v | b | k | m | , | . | / |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| - * `-----------------------------------------------------------------------' - */ - {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_LSFT, KC_ENT)}, - {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_RS] = { /* RAISE */ -/* MIT Layout (RAISE layer) - * - * ,-----------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | bspc| - * |-----------------------------------------------------------------------| - * | tab | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |-----------------------------------------------------------------------| - * |shift| F7 | F8 | F9 | F10 | F11 | F12 | QW | CM | BL | RST |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | del |lower| spc |raise|next |vold |volu |PLAY | - * `-----------------------------------------------------------------------' - */ - - {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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[_LW] = { /* LOWER */ -/* MIT Layout (Colemak layer) - * - * ,-----------------------------------------------------------------------. - * | esc | q | w | f | p | g | j | l | u | y | ; | bspc| - * |-----------------------------------------------------------------------| - * | tab | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |-----------------------------------------------------------------------| - * |shift| F7 | F8 | F9 | F10 | F11 | F12 | QW | CM | BL | RST |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | TK |lower| spc |raise|next |vold |volu |PLAY | - * `-----------------------------------------------------------------------' - */ - {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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[_TK] = { /* Ten Key*/ -/* MIT Layout (Ten Key layer) - * - * ,-----------------------------------------------------------------------. - * | esc | F9 | F10 | F11 | F12 | PGUP| % | / | 7 | 8 | 9 | bspc| - * |-----------------------------------------------------------------------| - * | tab | F5 | F6 | F7 | F8 | PGDN| HOME| * | 4 | 5 | 6 | \ | - * |-----------------------------------------------------------------------| - * |shift| F1 | F2 | F3 | F4 | DEL | END | 0 | 1 | 2 | 3 |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| - * `-----------------------------------------------------------------------' - */ - {KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGUP, KC_PERC, KC_SLSH, KC_7, KC_8, KC_9, KC_BSPC}, - {KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PGDN, KC_HOME, KC_ASTR, KC_4, KC_5, KC_6, KC_PIPE}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_END, KC_0, KC_1, KC_2, KC_3, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -} - -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/brandon/brandon.c b/keyboard/planck/keymaps/brandon/brandon.c new file mode 100644 index 0000000000..2b89f86db2 --- /dev/null +++ b/keyboard/planck/keymaps/brandon/brandon.c @@ -0,0 +1,134 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// 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 _QW 0 +#define _CM 1 +#define _TK 2 +#define _LW 3 +#define _RS 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ +/* MIT Layout (QWERTY layer) + * + * ,-----------------------------------------------------------------------. + * | esc | q | w | e | r | t | y | u | i | o | p | bspc| + * |-----------------------------------------------------------------------| + * | tab | a | s | d | f | g | h | j | k | l | ; | ' | + * |-----------------------------------------------------------------------| + * |shift| z | x | c | v | b | n | m | , | . | / |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, 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, MT(MOD_LSFT, KC_ENT) }, + {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_CM] = { /* Colemak */ +/* MIT Layout (Colemak layer) + * + * ,-----------------------------------------------------------------------. + * | esc | q | w | f | p | g | j | l | u | y | ; | bspc| + * |-----------------------------------------------------------------------| + * | tab | a | r | s | t | d | h | n | e | i | o | ' | + * |-----------------------------------------------------------------------| + * |shift| z | x | c | v | b | k | m | , | . | / |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ + {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_LSFT, KC_ENT)}, + {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS] = { /* RAISE */ +/* MIT Layout (RAISE layer) + * + * ,-----------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | bspc| + * |-----------------------------------------------------------------------| + * | tab | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |-----------------------------------------------------------------------| + * |shift| F7 | F8 | F9 | F10 | F11 | F12 | QW | CM | BL | RST |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | del |lower| spc |raise|next |vold |volu |PLAY | + * `-----------------------------------------------------------------------' + */ + + {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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_LW] = { /* LOWER */ +/* MIT Layout (Colemak layer) + * + * ,-----------------------------------------------------------------------. + * | esc | q | w | f | p | g | j | l | u | y | ; | bspc| + * |-----------------------------------------------------------------------| + * | tab | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |-----------------------------------------------------------------------| + * |shift| F7 | F8 | F9 | F10 | F11 | F12 | QW | CM | BL | RST |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|next |vold |volu |PLAY | + * `-----------------------------------------------------------------------' + */ + {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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_TK] = { /* Ten Key*/ +/* MIT Layout (Ten Key layer) + * + * ,-----------------------------------------------------------------------. + * | esc | F9 | F10 | F11 | F12 | PGUP| % | / | 7 | 8 | 9 | bspc| + * |-----------------------------------------------------------------------| + * | tab | F5 | F6 | F7 | F8 | PGDN| HOME| * | 4 | 5 | 6 | \ | + * |-----------------------------------------------------------------------| + * |shift| F1 | F2 | F3 | F4 | DEL | END | 0 | 1 | 2 | 3 |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ + {KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGUP, KC_PERC, KC_SLSH, KC_7, KC_8, KC_9, KC_BSPC}, + {KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PGDN, KC_HOME, KC_ASTR, KC_4, KC_5, KC_6, KC_PIPE}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_END, KC_0, KC_1, KC_2, KC_3, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +} + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/charlie.c b/keyboard/planck/keymaps/charlie.c deleted file mode 100644 index 88f454d789..0000000000 --- a/keyboard/planck/keymaps/charlie.c +++ /dev/null @@ -1,54 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { /* Native */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, FUNC(2)}, - {KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_DEL, KC_LCTL, KC_NO, KC_LSFT, KC_LALT, KC_SPC, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - [1] = { /* QWERTY->PHOTOSHOP */ - {KC_DELETE, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, FUNC(1)}, - {KC_O, KC_G, KC_S, KC_U, KC_T, FUNC(27), KC_F21, KC_F10, KC_F11, KC_F7, KC_F8, KC_F9}, - {KC_TAB, FUNC(4), FUNC(5), FUNC(6), KC_F1, FUNC(7), KC_F18, KC_F19, KC_F23, KC_F20, KC_F22, FUNC(9)}, - {KC_COMM, KC_DOT, KC_R, FUNC(11), FUNC(3), KC_SPC, FUNC(12), KC_F2, FUNC(8), KC_F3, KC_F14} - }, - [2] = { /* 2: FUNC(3 PHOTOSHOP */ - {KC_ESC, FUNC(25), FUNC(26), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, FUNC(19), FUNC(20), FUNC(21)}, - {KC_C, KC_NO, FUNC(22), FUNC(5), KC_NO, FUNC(23), KC_NO, KC_NO, KC_NO, KC_NO, FUNC(13), KC_NO}, - {FUNC(14), FUNC(15), FUNC(16), FUNC(17), FUNC(3), KC_SPC, FUNC(18), KC_NO, KC_NO, KC_F24, KC_NO} - } -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_DEFAULT_LAYER_SET(0), // set Qwerty layout - [2] = ACTION_DEFAULT_LAYER_SET(1), // set Photoshop presets - [3] = ACTION_LAYER_MOMENTARY(2), // Photoshop function layer - - [4] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F9), // photo folder AHK - [5] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_I), // select inverse - [6] = ACTION_MODS_KEY(MOD_LSFT, KC_M), // marquee select - [7] = ACTION_MODS_KEY(MOD_LALT, KC_BSPC), // fill - [8] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_X), // warp - [9] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT | MOD_LSFT, KC_F12), // merge all new layer - [10] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS), // zoom out - [11] = ACTION_MODS_KEY(MOD_LCTL, KC_H), // RBG sliders - [12] = ACTION_MODS_KEY(MOD_LCTL, KC_S), // save - [13] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F5), // layer mask from transparancy - [14] = ACTION_MODS_KEY(MOD_LCTL, KC_F2), // stroke - [15] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_F2), // stroke layer - [16] = ACTION_MODS_KEY(MOD_LCTL, KC_0), // zoom 0 - [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_H), // HSV sliders - [18] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_S), // save as - [19] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F7), // gaussian blur - [20] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F8), // motion blur - [21] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_X), // liquify filter - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // prev layer blending - [23] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_BSPC), // KC_NOrmal layer blending - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // next layer blending - [25] = ACTION_MODS_KEY(MOD_LCTL, KC_Z), // step back - [26] = ACTION_MODS_KEY(MOD_LCTL, KC_Y), // step forward - [27] = ACTION_MODS_KEY(MOD_LCTL, KC_R), // rasterize - -}; diff --git a/keyboard/planck/keymaps/charlie/charlie.c b/keyboard/planck/keymaps/charlie/charlie.c new file mode 100644 index 0000000000..88f454d789 --- /dev/null +++ b/keyboard/planck/keymaps/charlie/charlie.c @@ -0,0 +1,54 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Native */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, FUNC(2)}, + {KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_DEL, KC_LCTL, KC_NO, KC_LSFT, KC_LALT, KC_SPC, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + [1] = { /* QWERTY->PHOTOSHOP */ + {KC_DELETE, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, FUNC(1)}, + {KC_O, KC_G, KC_S, KC_U, KC_T, FUNC(27), KC_F21, KC_F10, KC_F11, KC_F7, KC_F8, KC_F9}, + {KC_TAB, FUNC(4), FUNC(5), FUNC(6), KC_F1, FUNC(7), KC_F18, KC_F19, KC_F23, KC_F20, KC_F22, FUNC(9)}, + {KC_COMM, KC_DOT, KC_R, FUNC(11), FUNC(3), KC_SPC, FUNC(12), KC_F2, FUNC(8), KC_F3, KC_F14} + }, + [2] = { /* 2: FUNC(3 PHOTOSHOP */ + {KC_ESC, FUNC(25), FUNC(26), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, FUNC(19), FUNC(20), FUNC(21)}, + {KC_C, KC_NO, FUNC(22), FUNC(5), KC_NO, FUNC(23), KC_NO, KC_NO, KC_NO, KC_NO, FUNC(13), KC_NO}, + {FUNC(14), FUNC(15), FUNC(16), FUNC(17), FUNC(3), KC_SPC, FUNC(18), KC_NO, KC_NO, KC_F24, KC_NO} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_DEFAULT_LAYER_SET(0), // set Qwerty layout + [2] = ACTION_DEFAULT_LAYER_SET(1), // set Photoshop presets + [3] = ACTION_LAYER_MOMENTARY(2), // Photoshop function layer + + [4] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F9), // photo folder AHK + [5] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_I), // select inverse + [6] = ACTION_MODS_KEY(MOD_LSFT, KC_M), // marquee select + [7] = ACTION_MODS_KEY(MOD_LALT, KC_BSPC), // fill + [8] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_X), // warp + [9] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT | MOD_LSFT, KC_F12), // merge all new layer + [10] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS), // zoom out + [11] = ACTION_MODS_KEY(MOD_LCTL, KC_H), // RBG sliders + [12] = ACTION_MODS_KEY(MOD_LCTL, KC_S), // save + [13] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F5), // layer mask from transparancy + [14] = ACTION_MODS_KEY(MOD_LCTL, KC_F2), // stroke + [15] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_F2), // stroke layer + [16] = ACTION_MODS_KEY(MOD_LCTL, KC_0), // zoom 0 + [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_H), // HSV sliders + [18] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_S), // save as + [19] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F7), // gaussian blur + [20] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F8), // motion blur + [21] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_X), // liquify filter + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // prev layer blending + [23] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_BSPC), // KC_NOrmal layer blending + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // next layer blending + [25] = ACTION_MODS_KEY(MOD_LCTL, KC_Z), // step back + [26] = ACTION_MODS_KEY(MOD_LCTL, KC_Y), // step forward + [27] = ACTION_MODS_KEY(MOD_LCTL, KC_R), // rasterize + +}; diff --git a/keyboard/planck/keymaps/daniel.c b/keyboard/planck/keymaps/daniel.c deleted file mode 100644 index 234e48ff4a..0000000000 --- a/keyboard/planck/keymaps/daniel.c +++ /dev/null @@ -1,48 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, 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_RSFT}, - {FUNC(3), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* RAISE */ - {KC_GRV, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_EQL}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, S(KC_MINS), KC_BSLS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[2] = { /* LOWER */ - {S(KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, S(KC_EQL)}, - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_ENT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, - {KC_TAB, 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_RSFT}, - {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -} -}; - - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(1), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(2), // to LOWER - [3] = ACTION_LAYER_MOMENTARY(3) // to LOWER -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/daniel/daniel.c b/keyboard/planck/keymaps/daniel/daniel.c new file mode 100644 index 0000000000..234e48ff4a --- /dev/null +++ b/keyboard/planck/keymaps/daniel/daniel.c @@ -0,0 +1,48 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, 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_RSFT}, + {FUNC(3), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* RAISE */ + {KC_GRV, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_EQL}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, S(KC_MINS), KC_BSLS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[2] = { /* LOWER */ + {S(KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, S(KC_EQL)}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_ENT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, + {KC_TAB, 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_RSFT}, + {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +} +}; + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(2), // to LOWER + [3] = ACTION_LAYER_MOMENTARY(3) // to LOWER +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/david.c b/keyboard/planck/keymaps/david.c deleted file mode 100644 index f483084801..0000000000 --- a/keyboard/planck/keymaps/david.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "keymap_common.h" -#include "beeps.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_A, KC_S, KC_D, KC_F, KC_G, KC_ENT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ESC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {M(10), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* 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_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - if (record->event.pressed) { - switch(id) { - case 0: - true_note(12, 12, 20); - break; - case 1: - true_note(14, 14, 20); - break; - case 2: - true_note(16, 16, 20); - break; - case 3: - true_note(17, 17, 20); - break; - case 4: - true_note(19, 19, 20); - break; - case 5: - true_note(21, 21, 20); - break; - case 6: - true_note(23, 23, 20); - break; - case 7: - true_note(24, 24, 20); - break; - case 10: - - break; - } - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/david/david.c b/keyboard/planck/keymaps/david/david.c new file mode 100644 index 0000000000..f483084801 --- /dev/null +++ b/keyboard/planck/keymaps/david/david.c @@ -0,0 +1,76 @@ +#include "keymap_common.h" +#include "beeps.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_ENT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ESC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {M(10), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* 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_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + if (record->event.pressed) { + switch(id) { + case 0: + true_note(12, 12, 20); + break; + case 1: + true_note(14, 14, 20); + break; + case 2: + true_note(16, 16, 20); + break; + case 3: + true_note(17, 17, 20); + break; + case 4: + true_note(19, 19, 20); + break; + case 5: + true_note(21, 21, 20); + break; + case 6: + true_note(23, 23, 20); + break; + case 7: + true_note(24, 24, 20); + break; + case 10: + + break; + } + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/dzobert.c b/keyboard/planck/keymaps/dzobert.c deleted file mode 100644 index 665e9c20b6..0000000000 --- a/keyboard/planck/keymaps/dzobert.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB}, - {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_BSPC}, - {KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN4, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TAB}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_BSPC}, - {KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_DEL}, - {KC_TRNS, KC_GRV, KC_MINS, KC_EQL, KC_QUOT, S(KC_QUOT), S(KC_LBRC), S(KC_RBRC), KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_HOME, KC_PGUP, KC_PGDN, KC_END} -}, -[3] = { /* LOWER */ - {KC_POWER,KC_PSCR, KC_SLCK, KC_PAUSE, KC_NLCK, KC_EXECUTE, KC_MENU, KC_APP, KC_7, KC_8, KC_9, KC_KP_SLASH}, - {KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_CAPS, KC_CANCEL, KC_UNDO, KC_AGAIN, KC_4, KC_5, KC_6, KC_KP_ASTERISK}, - {KC_TRNS, KC_INSERT,KC_CUT, KC_COPY, KC_PASTE, KC_BSLS, KC_9, KC_0, KC_1, KC_2, KC_3, KC_KP_MINUS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/dzobert/dzobert.c b/keyboard/planck/keymaps/dzobert/dzobert.c new file mode 100644 index 0000000000..665e9c20b6 --- /dev/null +++ b/keyboard/planck/keymaps/dzobert/dzobert.c @@ -0,0 +1,49 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB}, + {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_BSPC}, + {KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_FN4, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TAB}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_BSPC}, + {KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_FN3, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* RAISE */ + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_DEL}, + {KC_TRNS, KC_GRV, KC_MINS, KC_EQL, KC_QUOT, S(KC_QUOT), S(KC_LBRC), S(KC_RBRC), KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_HOME, KC_PGUP, KC_PGDN, KC_END} +}, +[3] = { /* LOWER */ + {KC_POWER,KC_PSCR, KC_SLCK, KC_PAUSE, KC_NLCK, KC_EXECUTE, KC_MENU, KC_APP, KC_7, KC_8, KC_9, KC_KP_SLASH}, + {KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_CAPS, KC_CANCEL, KC_UNDO, KC_AGAIN, KC_4, KC_5, KC_6, KC_KP_ASTERISK}, + {KC_TRNS, KC_INSERT,KC_CUT, KC_COPY, KC_PASTE, KC_BSLS, KC_9, KC_0, KC_1, KC_2, KC_3, KC_KP_MINUS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/gabriel.c b/keyboard/planck/keymaps/gabriel.c deleted file mode 100644 index 805484488b..0000000000 --- a/keyboard/planck/keymaps/gabriel.c +++ /dev/null @@ -1,108 +0,0 @@ -#include "planck.h" - -// 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 _QW 0 -#define _LW 1 -#define _RS 2 -#define _FN 3 - -// This a slightly modified 'default' keymap that's closer to the Mac keyboard layout. I like the position -// of 'esc' and 'tab' better this way. I also got rid of the backlighting control key and the dvorak and -// colemak layers. I added an 'fn' layer that makes the 'bspc' a forward delete (like on OSX). -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* MIT Layout (QWERTY layer) - * - * ,-----------------------------------------------------------------------. - * | esc | q | w | e | r | t | y | u | i | o | p | bspc| - * |-----------------------------------------------------------------------| - * | tab | a | s | d | f | g | h | j | k | l | ; | ' | - * |-----------------------------------------------------------------------| - * |shift| z | x | c | v | b | n | m | , | . | / |enter| - * |-----------------------------------------------------------------------| - * | fn | ctl | alt | cmd |lower| spc |raise|left |down | up |right| - * `-----------------------------------------------------------------------' - */ -[_QW] = { /* QWERTY */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, 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 }, - {MO(_FN), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -/* MIT Layout (Raised layer) - * - * ,-----------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | - * |-----------------------------------------------------------------------| - * | | F1 | F2 | F3 | F4 | F5 | F6 | - | + | [ | ] | | | - * |-----------------------------------------------------------------------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------' - */ -[_RS] = { /* 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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_PLUS, KC_LBRC, KC_RBRC, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -/* MIT Layout (Lowered layer) - * - * ,-----------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | - * |-----------------------------------------------------------------------| - * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | { | } | \ | - * |-----------------------------------------------------------------------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------' - */ -[_LW] = { /* 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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_EQL, KC_LCBR, KC_RCBR, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -/* MIT Layout (FN layer) - * - * ,-----------------------------------------------------------------------. - * | | | | | | | | | | | | del | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | |home |pgdn |pgup | end | - * `-----------------------------------------------------------------------' - */ -[_FN] = { /* FUNCTION */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DELT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - backlight_step(); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/gabriel/gabriel.c b/keyboard/planck/keymaps/gabriel/gabriel.c new file mode 100644 index 0000000000..805484488b --- /dev/null +++ b/keyboard/planck/keymaps/gabriel/gabriel.c @@ -0,0 +1,108 @@ +#include "planck.h" + +// 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 _QW 0 +#define _LW 1 +#define _RS 2 +#define _FN 3 + +// This a slightly modified 'default' keymap that's closer to the Mac keyboard layout. I like the position +// of 'esc' and 'tab' better this way. I also got rid of the backlighting control key and the dvorak and +// colemak layers. I added an 'fn' layer that makes the 'bspc' a forward delete (like on OSX). +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* MIT Layout (QWERTY layer) + * + * ,-----------------------------------------------------------------------. + * | esc | q | w | e | r | t | y | u | i | o | p | bspc| + * |-----------------------------------------------------------------------| + * | tab | a | s | d | f | g | h | j | k | l | ; | ' | + * |-----------------------------------------------------------------------| + * |shift| z | x | c | v | b | n | m | , | . | / |enter| + * |-----------------------------------------------------------------------| + * | fn | ctl | alt | cmd |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ +[_QW] = { /* QWERTY */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, 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 }, + {MO(_FN), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +/* MIT Layout (Raised layer) + * + * ,-----------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |-----------------------------------------------------------------------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | - | + | [ | ] | | | + * |-----------------------------------------------------------------------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------' + */ +[_RS] = { /* 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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_PLUS, KC_LBRC, KC_RBRC, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +/* MIT Layout (Lowered layer) + * + * ,-----------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * |-----------------------------------------------------------------------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | { | } | \ | + * |-----------------------------------------------------------------------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------' + */ +[_LW] = { /* 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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_EQL, KC_LCBR, KC_RCBR, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +/* MIT Layout (FN layer) + * + * ,-----------------------------------------------------------------------. + * | | | | | | | | | | | | del | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | |home |pgdn |pgup | end | + * `-----------------------------------------------------------------------' + */ +[_FN] = { /* FUNCTION */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DELT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + backlight_step(); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/jacob/Keyboard Layout.PNG b/keyboard/planck/keymaps/jacob/Keyboard Layout.PNG new file mode 100644 index 0000000000..40f0b89429 Binary files /dev/null and b/keyboard/planck/keymaps/jacob/Keyboard Layout.PNG differ diff --git a/keyboard/planck/keymaps/jacob/keymap.c b/keyboard/planck/keymaps/jacob/keymap.c new file mode 100644 index 0000000000..5e6e8498e2 --- /dev/null +++ b/keyboard/planck/keymaps/jacob/keymap.c @@ -0,0 +1,56 @@ +#include "planck.h" +#include "action_layer.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +//Simple Keymap where CTRL, WINKEY, and ALT keys are placed in a more familiar location for Windows users. +//Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +#define _QW 0 +#define _LW 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* 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, MT(MOD_RSFT, KC_ENT)}, + {KC_LCTL, KC_LGUI, KC_LALT, M(0), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + }, + [_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/jacob/readme.md b/keyboard/planck/keymaps/jacob/readme.md new file mode 100644 index 0000000000..2a4be4ebce --- /dev/null +++ b/keyboard/planck/keymaps/jacob/readme.md @@ -0,0 +1 @@ +Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. \ No newline at end of file diff --git a/keyboard/planck/keymaps/joe.c b/keyboard/planck/keymaps/joe.c deleted file mode 100644 index 5b7bbe2bbb..0000000000 --- a/keyboard/planck/keymaps/joe.c +++ /dev/null @@ -1,88 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { /* Joe colemak */ - {F(3), KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS}, - {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT }, - {F(15), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, - {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} - }, - [1] = { /* Joe soft Colemak */ - {F(3), CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_MINS}, - {KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_ENT }, - {F(15), CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, - {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} - }, - [2] = { /* Joe NUMPAD */ - {F(3), KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, LSFT(KC_9), LSFT(KC_0), KC_PSLS, KC_P7, KC_P8, KC_P9 }, - {KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, LSFT(KC_5), KC_PEQL, KC_PAST, KC_P4, KC_P5, KC_P6 }, - {F(15), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PCMM, KC_PMNS, KC_P1, KC_P2, KC_P3 }, - {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_TRNS, KC_TRNS, F(2), KC_PPLS, KC_P0, KC_PDOT, KC_PENT} - }, - [3] = { /* Joe 1337 haxOr5*/ - {F(3), KC_Q, KC_W, KC_F, KC_P, KC_6, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS}, - {KC_BSPC, KC_4, KC_R, KC_5, KC_7, KC_D, KC_H, KC_N, KC_3, KC_1, KC_0, KC_ENT }, - {F(15), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, - {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} - }, - [4] = { /* Joe LOWER fn1 */ - {KC_GRV, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(3), M(2), M(1), M(0) }, - {KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS}, - {KC_BSLS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LBRC, KC_RBRC, KC_PGUP, KC_EQL }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), KC_TRNS, KC_TRNS, F(2), KC_NO, KC_HOME, KC_PGDN, KC_END } - }, - [5] = { /* Joe UPPER fn2 */ - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 }, - {KC_DEL, KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, KC_WH_U, KC_BTN4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO }, - {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_L, KC_WH_D, KC_WH_R, KC_NO, KC_NO, LCTL(KC_PGUP), LCTL(LALT(KC_UP)), LCTL(KC_PGDN) }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), KC_NO, KC_NO, F(2), KC_NO, LCTL(LALT(KC_LEFT)), LCTL(LALT(KC_DOWN)), LCTL(LALT(KC_RGHT))} - }, - [6] = { /* Joe SPECIAL fn3 */ - {KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, - {KC_NO, KC_MPLY, KC_MPRV, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET }, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, - {F(6), F(7), F(8), F(9), F(1), KC_TRNS, KC_TRNS, F(2), KC_POWER, KC_WAKE, KC_SLEP, LCTL(LALT(KC_L))} - } -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(4), // fn1 - [2] = ACTION_LAYER_MOMENTARY(5), // fn2 - - /* ESC on tap, fn3 on hold */ - [3] = ACTION_LAYER_TAP_KEY(6, KC_ESC), - - /* toggle layers */ - [6] = ACTION_DEFAULT_LAYER_SET(0), - [7] = ACTION_DEFAULT_LAYER_SET(1), - [8] = ACTION_DEFAULT_LAYER_SET(2), - [9] = ACTION_DEFAULT_LAYER_SET(3), - - /* tab on tap, shift on hold */ - [15] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch (id) { - case 0: - /* :) */ - return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), END ); - break; - case 1: - /* :( */ - return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), UP(KC_LSFT), END ); - break; - case 2: - /* (: | :) */ - return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_9), TYPE(KC_SCLN), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END ); - break; - case 3: - /* :( | ): */ - return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_0), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END ); - break; - default: - break; - } - return MACRO_NONE; -} diff --git a/keyboard/planck/keymaps/joe/joe.c b/keyboard/planck/keymaps/joe/joe.c new file mode 100644 index 0000000000..5b7bbe2bbb --- /dev/null +++ b/keyboard/planck/keymaps/joe/joe.c @@ -0,0 +1,88 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Joe colemak */ + {F(3), KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS}, + {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT }, + {F(15), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, + {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} + }, + [1] = { /* Joe soft Colemak */ + {F(3), CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_MINS}, + {KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_ENT }, + {F(15), CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, + {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} + }, + [2] = { /* Joe NUMPAD */ + {F(3), KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, LSFT(KC_9), LSFT(KC_0), KC_PSLS, KC_P7, KC_P8, KC_P9 }, + {KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, LSFT(KC_5), KC_PEQL, KC_PAST, KC_P4, KC_P5, KC_P6 }, + {F(15), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PCMM, KC_PMNS, KC_P1, KC_P2, KC_P3 }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_TRNS, KC_TRNS, F(2), KC_PPLS, KC_P0, KC_PDOT, KC_PENT} + }, + [3] = { /* Joe 1337 haxOr5*/ + {F(3), KC_Q, KC_W, KC_F, KC_P, KC_6, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS}, + {KC_BSPC, KC_4, KC_R, KC_5, KC_7, KC_D, KC_H, KC_N, KC_3, KC_1, KC_0, KC_ENT }, + {F(15), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, + {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} + }, + [4] = { /* Joe LOWER fn1 */ + {KC_GRV, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(3), M(2), M(1), M(0) }, + {KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS}, + {KC_BSLS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LBRC, KC_RBRC, KC_PGUP, KC_EQL }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), KC_TRNS, KC_TRNS, F(2), KC_NO, KC_HOME, KC_PGDN, KC_END } + }, + [5] = { /* Joe UPPER fn2 */ + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 }, + {KC_DEL, KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, KC_WH_U, KC_BTN4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO }, + {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_L, KC_WH_D, KC_WH_R, KC_NO, KC_NO, LCTL(KC_PGUP), LCTL(LALT(KC_UP)), LCTL(KC_PGDN) }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), KC_NO, KC_NO, F(2), KC_NO, LCTL(LALT(KC_LEFT)), LCTL(LALT(KC_DOWN)), LCTL(LALT(KC_RGHT))} + }, + [6] = { /* Joe SPECIAL fn3 */ + {KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, + {KC_NO, KC_MPLY, KC_MPRV, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET }, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, + {F(6), F(7), F(8), F(9), F(1), KC_TRNS, KC_TRNS, F(2), KC_POWER, KC_WAKE, KC_SLEP, LCTL(LALT(KC_L))} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(4), // fn1 + [2] = ACTION_LAYER_MOMENTARY(5), // fn2 + + /* ESC on tap, fn3 on hold */ + [3] = ACTION_LAYER_TAP_KEY(6, KC_ESC), + + /* toggle layers */ + [6] = ACTION_DEFAULT_LAYER_SET(0), + [7] = ACTION_DEFAULT_LAYER_SET(1), + [8] = ACTION_DEFAULT_LAYER_SET(2), + [9] = ACTION_DEFAULT_LAYER_SET(3), + + /* tab on tap, shift on hold */ + [15] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch (id) { + case 0: + /* :) */ + return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), END ); + break; + case 1: + /* :( */ + return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), UP(KC_LSFT), END ); + break; + case 2: + /* (: | :) */ + return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_9), TYPE(KC_SCLN), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END ); + break; + case 3: + /* :( | ): */ + return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_0), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END ); + break; + default: + break; + } + return MACRO_NONE; +} diff --git a/keyboard/planck/keymaps/kyle.c b/keyboard/planck/keymaps/kyle.c deleted file mode 100644 index da32b74f96..0000000000 --- a/keyboard/planck/keymaps/kyle.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, 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}, - {KC_RCTL, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* 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_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), LSFT(RSFT(KC_D)), KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/kyle/kyle.c b/keyboard/planck/keymaps/kyle/kyle.c new file mode 100644 index 0000000000..da32b74f96 --- /dev/null +++ b/keyboard/planck/keymaps/kyle/kyle.c @@ -0,0 +1,49 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, 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}, + {KC_RCTL, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* 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_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), LSFT(RSFT(KC_D)), KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/leo.c b/keyboard/planck/keymaps/leo.c deleted file mode 100644 index 6d66441822..0000000000 --- a/keyboard/planck/keymaps/leo.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* BASE */ - {KC_ESC, KC_LBRC, KC_QUOT, KC_SCLN, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT}, - {KC_LSFT, KC_DOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_COMM}, - {KC_LCTL, KC_LALT, KC_LGUI, FUNC(3), FUNC(2), KC_SPC, KC_SPC, FUNC(1), FUNC(3), KC_RGUI, KC_RALT, KC_RCTL} -}, -[2] = { /* RAISE */ - {RALT(KC_RBRC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, S(KC_RBRC)}, - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[3] = { /* LOWER */ - {S(KC_EQL),S(KC_1),S(KC_2),S(KC_3),RALT(KC_5),S(KC_5), S(KC_6), S(KC_7),RALT(KC_7),RALT(KC_0),S(KC_0), KC_MINS}, - {KC_TRNS,RALT(KC_2),S(KC_SLSH),KC_NUBS,S(KC_NUBS),RALT(KC_MINS),RALT(KC_NUBS), KC_NUHS, S(KC_8), S(KC_9), S(KC_MINS), KC_SLSH}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RALT(KC_8), RALT(KC_9), KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[4] = { /* META */ - {KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_DEL}, - {KC_TRNS, KC_RGHT, KC_DOWN, KC_LEFT, KC_PGUP, KC_TRNS, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_PGDN, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - [3] = ACTION_LAYER_MOMENTARY(4), // to META - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/leo/leo.c b/keyboard/planck/keymaps/leo/leo.c new file mode 100644 index 0000000000..6d66441822 --- /dev/null +++ b/keyboard/planck/keymaps/leo/leo.c @@ -0,0 +1,46 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* BASE */ + {KC_ESC, KC_LBRC, KC_QUOT, KC_SCLN, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT}, + {KC_LSFT, KC_DOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_COMM}, + {KC_LCTL, KC_LALT, KC_LGUI, FUNC(3), FUNC(2), KC_SPC, KC_SPC, FUNC(1), FUNC(3), KC_RGUI, KC_RALT, KC_RCTL} +}, +[2] = { /* RAISE */ + {RALT(KC_RBRC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, S(KC_RBRC)}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[3] = { /* LOWER */ + {S(KC_EQL),S(KC_1),S(KC_2),S(KC_3),RALT(KC_5),S(KC_5), S(KC_6), S(KC_7),RALT(KC_7),RALT(KC_0),S(KC_0), KC_MINS}, + {KC_TRNS,RALT(KC_2),S(KC_SLSH),KC_NUBS,S(KC_NUBS),RALT(KC_MINS),RALT(KC_NUBS), KC_NUHS, S(KC_8), S(KC_9), S(KC_MINS), KC_SLSH}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RALT(KC_8), RALT(KC_9), KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[4] = { /* META */ + {KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_DEL}, + {KC_TRNS, KC_RGHT, KC_DOWN, KC_LEFT, KC_PGUP, KC_TRNS, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_PGDN, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + [3] = ACTION_LAYER_MOMENTARY(4), // to META + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/lucas.c b/keyboard/planck/keymaps/lucas.c deleted file mode 100644 index 27672e1bbc..0000000000 --- a/keyboard/planck/keymaps/lucas.c +++ /dev/null @@ -1,163 +0,0 @@ -/* -This is the keymap of /u/deepshitgoeshere! -Layer 1 exists so I can have the symbol positions of QWERTY while having my system in german. -The second layer has all the german umlauts I need and with capital and small letters on the -same layer there is no need to press shift+lower. -This keymap is made to work with software implemented QWERTZ. -The "Gaming" layer is mainly customized for CS:GO. -If you have any question about this keymap feel free to shoot me a message on reddit! -*/ - -#include "keymap_common.h" -#include "keymap_extras/keymap_german.h" -#include "backlight.h" -#include "debug.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Colemak - * ,-----------------------------------------------------------------------. - * | Esc | q | w | f | p | g | j | l | u | y | ; | - | - * |-----------------------------------------------------------------------| - * | BS | a | r | s | t | d | h | n | e | i | o | ' | - * |-----------------------------------------------------------------------| - * | SFT | z | x | c | v | b | k | m | , | . | / | Ent | - * |-----------------------------------------------------------------------| - * | CTL | GUI | Tab | ALT |Lower| Space |Raise|Left |Down | Up |Right| - * `-----------------------------------------------------------------------' - */ - {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Z, DE_SCLN, DE_MINS}, - {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, DE_QUOT}, - {M(0), KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, DE_COMM, DE_DOT, DE_SLSH, KC_ENT}, - {KC_LCTL, KC_LGUI, KC_TAB, KC_LALT, F(2), F(3), F(3), F(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[1] = { /* Symbols - * ,-----------------------------------------------------------------------. - * | | | | | | | | | | | : | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | " | - * |-----------------------------------------------------------------------| - * | | | | | | | | | < | > | ? | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------' - */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DOT, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DQOT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(1), DE_MORE, DE_QST, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[2] = { /* Raise - * ,-----------------------------------------------------------------------. - * | | Ä | | | | | | | Ü | Ö | |Game | - * |-----------------------------------------------------------------------| - * | Del | ä | | ß | | | | | ü | ö | |FVol+| - * |-----------------------------------------------------------------------| - * | | | | | | | | |Stop | Prv | Nxt |FVol-| - * |-----------------------------------------------------------------------| - * |LCTL |LGUI | Tab |LALT |Lower| Space | |Mute |Vol- |Vol+ | P/P | - * `-----------------------------------------------------------------------' - */ - {KC_NO, S(DE_AE), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, S(DE_UE), S(DE_OE), KC_NO, F(4)}, - {KC_DEL, DE_AE, KC_NO, DE_SS, KC_NO, KC_NO, KC_NO, KC_NO, DE_UE, DE_OE, KC_NO, RALT(KC_F12)}, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPRV, KC_MNXT, RALT(KC_F11)}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* Lower - * ,-----------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | + | - * |-----------------------------------------------------------------------| - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | - * |-----------------------------------------------------------------------| - * | | | | | | [ | ] | { | } | € | | \ | Ent | - * |-----------------------------------------------------------------------| - * |LCTL |LGUI | Tab |LALT | | Space |Raise|Home |PgDn |PgUp | End | - * `-----------------------------------------------------------------------' - */ - {DE_TILD, DE_EXLM, DE_AT, DE_HASH, DE_DLR, DE_PERC, DE_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, DE_PLUS}, - {DE_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_EQL}, - {KC_NO, KC_NO, KC_NO, DE_PIPE, DE_LBRC, DE_RBRC, DE_LCBR, DE_RCBR, DE_EURO, KC_NO, DE_BSLS, KC_ENT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} -}, -[4] = { /* Function - * ,-----------------------------------------------------------------------. - * | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | - * |-----------------------------------------------------------------------| - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |-----------------------------------------------------------------------| - * | | | | | | KP- | KP+ | | | | |Reset| - * |-----------------------------------------------------------------------| - * | |Light|BL DN|BL UP| | | | |Mute |Vol- |Vol+ | P/P | - * `-----------------------------------------------------------------------' - */ - {KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24}, - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PMNS, KC_PPLS, KC_NO, KC_NO, KC_NO, RESET, KC_NO}, - {KC_NO, BL_TOGG, BL_DEC, BL_INC, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[5] = { /* Gaming - * ,-----------------------------------------------------------------------. - * | Buy | ESC | q | w | e | r | t | y | u | i | o | p | - * |-----------------------------------------------------------------------| - * | ENT | BS | a | s | d | f | g | h | j | k | l | ; | - * |-----------------------------------------------------------------------| - * | CTL | SFT | z | x | c | v | b | n | m | , | Up | / | - * |-----------------------------------------------------------------------| - * | | | Tab | ALT | | Space |CrJmp| GUI |Left |Down |Right| - * `-----------------------------------------------------------------------' - */ - {MO(6), KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, F(4)}, - {KC_ENT, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_SCLN}, - {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, DE_DOT, KC_UP, DE_SLSH}, - {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT} -}, -[6] = { /* Gaming - /* CS:GO buy binds - * ,-----------------------------------------------------------------------. - * | | | | | | | | | 7 | 8 | 9 | | - * |-----------------------------------------------------------------------| - * | BS | | | | | | | | 6 | 5 | 4 | End | - * |-----------------------------------------------------------------------| - * | CTL | SFT | | | | | | | 1 | 2 | 3 |Pgdn | - * |-----------------------------------------------------------------------| - * | | | Tab | ALT | | Space |CrJmp| | 0 | KP+ |PEnt | - * `-----------------------------------------------------------------------' - */ - {KC_TRNS, KC_NO, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_P7, KC_P8, KC_P9, KC_NO}, - {KC_BSPC, KC_NO, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_P4, KC_P5, KC_P6, KC_END}, - {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_P1, KC_P2, KC_P3, KC_PGDN}, - {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_NO, KC_P0, KC_PDOT, KC_PENT} -}, -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - [3] = ACTION_LAYER_TAP_KEY(4,KC_SPC), // to Function - [4] = ACTION_LAYER_TOGGLE(5), // toggle Gaming - [5] = ACTION_MODS_TAP_KEY(KC_LSFT, KC_CAPS), //Shift on press, Caps on tap -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case 0: // M(0) - if (record->event.pressed) { - register_code(KC_LSFT); - layer_on(1); - } else { - layer_off(1); - unregister_code(KC_LSFT); - } - break; - case 1: // M(1) - if (record->event.pressed) { - unregister_code(KC_LSFT); - register_code(DE_MORE); - } else { - unregister_code(DE_MORE); - } - break; - } - return MACRO_NONE; - -}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/lucas/lucas.c b/keyboard/planck/keymaps/lucas/lucas.c new file mode 100644 index 0000000000..27672e1bbc --- /dev/null +++ b/keyboard/planck/keymaps/lucas/lucas.c @@ -0,0 +1,163 @@ +/* +This is the keymap of /u/deepshitgoeshere! +Layer 1 exists so I can have the symbol positions of QWERTY while having my system in german. +The second layer has all the german umlauts I need and with capital and small letters on the +same layer there is no need to press shift+lower. +This keymap is made to work with software implemented QWERTZ. +The "Gaming" layer is mainly customized for CS:GO. +If you have any question about this keymap feel free to shoot me a message on reddit! +*/ + +#include "keymap_common.h" +#include "keymap_extras/keymap_german.h" +#include "backlight.h" +#include "debug.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Colemak + * ,-----------------------------------------------------------------------. + * | Esc | q | w | f | p | g | j | l | u | y | ; | - | + * |-----------------------------------------------------------------------| + * | BS | a | r | s | t | d | h | n | e | i | o | ' | + * |-----------------------------------------------------------------------| + * | SFT | z | x | c | v | b | k | m | , | . | / | Ent | + * |-----------------------------------------------------------------------| + * | CTL | GUI | Tab | ALT |Lower| Space |Raise|Left |Down | Up |Right| + * `-----------------------------------------------------------------------' + */ + {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Z, DE_SCLN, DE_MINS}, + {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, DE_QUOT}, + {M(0), KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, DE_COMM, DE_DOT, DE_SLSH, KC_ENT}, + {KC_LCTL, KC_LGUI, KC_TAB, KC_LALT, F(2), F(3), F(3), F(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[1] = { /* Symbols + * ,-----------------------------------------------------------------------. + * | | | | | | | | | | | : | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | " | + * |-----------------------------------------------------------------------| + * | | | | | | | | | < | > | ? | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------' + */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DOT, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DQOT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(1), DE_MORE, DE_QST, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[2] = { /* Raise + * ,-----------------------------------------------------------------------. + * | | Ä | | | | | | | Ü | Ö | |Game | + * |-----------------------------------------------------------------------| + * | Del | ä | | ß | | | | | ü | ö | |FVol+| + * |-----------------------------------------------------------------------| + * | | | | | | | | |Stop | Prv | Nxt |FVol-| + * |-----------------------------------------------------------------------| + * |LCTL |LGUI | Tab |LALT |Lower| Space | |Mute |Vol- |Vol+ | P/P | + * `-----------------------------------------------------------------------' + */ + {KC_NO, S(DE_AE), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, S(DE_UE), S(DE_OE), KC_NO, F(4)}, + {KC_DEL, DE_AE, KC_NO, DE_SS, KC_NO, KC_NO, KC_NO, KC_NO, DE_UE, DE_OE, KC_NO, RALT(KC_F12)}, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPRV, KC_MNXT, RALT(KC_F11)}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* Lower + * ,-----------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | + | + * |-----------------------------------------------------------------------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | + * |-----------------------------------------------------------------------| + * | | | | | | [ | ] | { | } | € | | \ | Ent | + * |-----------------------------------------------------------------------| + * |LCTL |LGUI | Tab |LALT | | Space |Raise|Home |PgDn |PgUp | End | + * `-----------------------------------------------------------------------' + */ + {DE_TILD, DE_EXLM, DE_AT, DE_HASH, DE_DLR, DE_PERC, DE_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, DE_PLUS}, + {DE_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_EQL}, + {KC_NO, KC_NO, KC_NO, DE_PIPE, DE_LBRC, DE_RBRC, DE_LCBR, DE_RCBR, DE_EURO, KC_NO, DE_BSLS, KC_ENT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} +}, +[4] = { /* Function + * ,-----------------------------------------------------------------------. + * | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | + * |-----------------------------------------------------------------------| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-----------------------------------------------------------------------| + * | | | | | | KP- | KP+ | | | | |Reset| + * |-----------------------------------------------------------------------| + * | |Light|BL DN|BL UP| | | | |Mute |Vol- |Vol+ | P/P | + * `-----------------------------------------------------------------------' + */ + {KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PMNS, KC_PPLS, KC_NO, KC_NO, KC_NO, RESET, KC_NO}, + {KC_NO, BL_TOGG, BL_DEC, BL_INC, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[5] = { /* Gaming + * ,-----------------------------------------------------------------------. + * | Buy | ESC | q | w | e | r | t | y | u | i | o | p | + * |-----------------------------------------------------------------------| + * | ENT | BS | a | s | d | f | g | h | j | k | l | ; | + * |-----------------------------------------------------------------------| + * | CTL | SFT | z | x | c | v | b | n | m | , | Up | / | + * |-----------------------------------------------------------------------| + * | | | Tab | ALT | | Space |CrJmp| GUI |Left |Down |Right| + * `-----------------------------------------------------------------------' + */ + {MO(6), KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, F(4)}, + {KC_ENT, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_SCLN}, + {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, DE_DOT, KC_UP, DE_SLSH}, + {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT} +}, +[6] = { /* Gaming + /* CS:GO buy binds + * ,-----------------------------------------------------------------------. + * | | | | | | | | | 7 | 8 | 9 | | + * |-----------------------------------------------------------------------| + * | BS | | | | | | | | 6 | 5 | 4 | End | + * |-----------------------------------------------------------------------| + * | CTL | SFT | | | | | | | 1 | 2 | 3 |Pgdn | + * |-----------------------------------------------------------------------| + * | | | Tab | ALT | | Space |CrJmp| | 0 | KP+ |PEnt | + * `-----------------------------------------------------------------------' + */ + {KC_TRNS, KC_NO, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_P7, KC_P8, KC_P9, KC_NO}, + {KC_BSPC, KC_NO, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_P4, KC_P5, KC_P6, KC_END}, + {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_P1, KC_P2, KC_P3, KC_PGDN}, + {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_NO, KC_P0, KC_PDOT, KC_PENT} +}, +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + [3] = ACTION_LAYER_TAP_KEY(4,KC_SPC), // to Function + [4] = ACTION_LAYER_TOGGLE(5), // toggle Gaming + [5] = ACTION_MODS_TAP_KEY(KC_LSFT, KC_CAPS), //Shift on press, Caps on tap +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: // M(0) + if (record->event.pressed) { + register_code(KC_LSFT); + layer_on(1); + } else { + layer_off(1); + unregister_code(KC_LSFT); + } + break; + case 1: // M(1) + if (record->event.pressed) { + unregister_code(KC_LSFT); + register_code(DE_MORE); + } else { + unregister_code(DE_MORE); + } + break; + } + return MACRO_NONE; + +}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/lukas.c b/keyboard/planck/keymaps/lukas.c deleted file mode 100644 index 6fd95378b1..0000000000 --- a/keyboard/planck/keymaps/lukas.c +++ /dev/null @@ -1,64 +0,0 @@ -#include "planck.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -// This simple keymap is optimized for xmonad users using super as their modifier key. -// M(1) makes it possible to change virtual screens and swap windows between them. - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -#define _QW 0 -#define _LW 1 -#define _RS 2 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* 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 }, - {KC_LCTL, KC_LALT, KC_LGUI, M(1), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - }, - [_RS] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - }, - [_LW] = { /* 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - } -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - case 1: - if (record->event.pressed) { - register_code(KC_LGUI); - layer_on(_RS); - } else { - unregister_code(KC_LGUI); - layer_off(_RS); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/lukas/lukas.c b/keyboard/planck/keymaps/lukas/lukas.c new file mode 100644 index 0000000000..6fd95378b1 --- /dev/null +++ b/keyboard/planck/keymaps/lukas/lukas.c @@ -0,0 +1,64 @@ +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// This simple keymap is optimized for xmonad users using super as their modifier key. +// M(1) makes it possible to change virtual screens and swap windows between them. + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +#define _QW 0 +#define _LW 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* 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 }, + {KC_LCTL, KC_LALT, KC_LGUI, M(1), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + }, + [_LW] = { /* 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + case 1: + if (record->event.pressed) { + register_code(KC_LGUI); + layer_on(_RS); + } else { + unregister_code(KC_LGUI); + layer_off(_RS); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/max.c b/keyboard/planck/keymaps/max.c deleted file mode 100644 index 7fb29bc7a4..0000000000 --- a/keyboard/planck/keymaps/max.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT }, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, - {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT }, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, - {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* 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_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TRNS}, - {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_BSLS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), KC_TRNS}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, S(KC_BSLS)}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/max/max.c b/keyboard/planck/keymaps/max/max.c new file mode 100644 index 0000000000..7fb29bc7a4 --- /dev/null +++ b/keyboard/planck/keymaps/max/max.c @@ -0,0 +1,49 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT }, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, + {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT }, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, + {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* 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_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_BSLS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), KC_TRNS}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, S(KC_BSLS)}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/mollat.c b/keyboard/planck/keymaps/mollat.c deleted file mode 100644 index e7c71efd47..0000000000 --- a/keyboard/planck/keymaps/mollat.c +++ /dev/null @@ -1,149 +0,0 @@ -// -// This layout is based on the following needs: -// -// should be as close as possible to querty/us-international layout (using international/AltGr as o/s driver) -// added german umlauts at known places from de-layout -// all movement keys should be at known places from vi/bash (eg HJKL for cursor keys) -// Fn layer (at CapsLock place like the Pok3r does) for missing keys -// additional layer for tmux window switching -// -// This is work in Progress! If you have suggestions write me at github.com/mollat/qmk_firmware/ and check -// this fork for updates as I probably won't bother jack with my pull requests frequently. -// - -#include "planck.h" - -#define _QWERTY 0 -#define _HIGH 1 -#define _LOW 2 -#define _FN 3 -#define _TMUX 4 -#define _LCTL 5 -#define _MOUSE 6 -#define __________ KC_NO // just for easy reading - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[_QWERTY] = { /* Qwerty */ - { LT(_MOUSE, KC_ESC),KC_Q,KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, - { LT(_FN, KC_TAB),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, SFT_T(KC_ENT)}, - { __________, __________, KC_LGUI, KC_LALT, KC_LCTL,LT(_TMUX, KC_SPC),LT(_HIGH, KC_SPC),MO(_LOW),KC_RALT,KC_RGUI, __________, __________ } -}, - -// missing keys regarding to the form factor -// keeping the dot and comma for typing faster IP addresses and (german) float values -// putting the backslash on the slash's place -[_HIGH] = { - { KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS }, - { __________, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL }, - { __________, __________, __________, __________, __________, __________, __________, __________, KC_COMM, KC_DOT, KC_BSLS, LSFT(KC_BSLS)}, - { __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________ } -}, - -// classic Fn-Layer triggered with 'CapsLock-key' like on Pok3r -// SPC and ENT are doubled for using repeat (which I switched off, see https://github.com/tmk/tmk_keyboard/issues/287) -// '€' sign is on the '5' position as this is the usual AltGr place on the US Internation layout -// home/end at the 'a' and 'e' position like in bash -// ins at 'i' -// del besides backspace (had no better place for it because of the umlauts) -// pg-down at 'f' (forward in vi), pg-up at 'b' (back in 'vi') -// -[_FN] = { - { __________, __________, __________, KC_END, __________, __________, __________, __________, KC_INS, __________, KC_DEL, RALT(KC_Y) }, - { KC_TRNS, __________, RALT(KC_S), __________, KC_PGDN, RALT(KC_5), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, RALT(KC_P), RALT(KC_Q) }, - { __________, KC_HOME, __________, __________, __________, KC_PGUP, __________, __________, __________, __________, __________, KC_ENT }, - { RESET, __________, __________, __________, __________, KC_SPC, KC_SPC, __________, __________, __________, __________, __________ } -}, - -// function key layer and some shift + (missing key at the small form factor) -[_LOW] = { - { KC_TILD, __________, __________, __________, __________, __________, __________, __________, __________, KC_LCBR, KC_RCBR, KC_UNDS }, - { __________, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_PLUS }, - { __________, __________, __________, __________, __________, KC_F9, KC_F10, KC_F11, KC_F12, __________, __________, __________ }, - { __________, __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________ } -}, - -// most macros will switch tmux screens -// two macros are for vi's save/quit at 'w' and 'q' -[_TMUX] = { - { __________, M(14), M(13), __________, __________, __________, __________, __________, __________, __________, M(11), __________ }, - { M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), __________, __________ }, - { __________, __________, __________, M(12), __________, __________, M(10), __________, __________, __________, __________, __________ }, - { __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________, __________ } -}, - -// mouse movement can be improved (e.g. can't press hj at once), but I will use this seldom, so I stick with hjkl keys. -[_MOUSE] = { - { KC_TRNS, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________ }, - { __________, __________, __________, __________, KC_WH_D, __________, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, __________, __________ }, - { __________, __________, __________, __________, __________, KC_WH_U, __________, __________, __________, __________, __________, __________ }, - { __________, __________, __________, KC_ACL2, KC_ACL1, KC_ACL0, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, __________, __________, __________ } -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [_LCTL] = ACTION_MODS_TAP_KEY(KC_LCTL, M(12)), // does not work -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case 0: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_0), END ); - break; - case 1: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_1), END ); - break; - case 2: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_2), END ); - break; - case 3: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_3), END ); - break; - case 4: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_4), END ); - break; - case 5: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_5), END ); - break; - case 6: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_6), END ); - break; - case 7: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_7), END ); - break; - case 8: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_8), END ); - break; - case 9: - // tmux last window - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_L), END ); - break; - // tmux next window - case 10: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_N), END ); - break; - // tmux previous window - case 11: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_P), END ); - break; - // tmux new window - case 12: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_C), END ); - break; - case 13: - // vi save document - return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_W), TYPE(KC_ENT), END ); - break; - case 14: - // vi quit - return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_Q), TYPE(KC_ENT), END ); - break; - // tmux press ctrl-b - case 15: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), END ); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/mollat/mollat.c b/keyboard/planck/keymaps/mollat/mollat.c new file mode 100644 index 0000000000..e7c71efd47 --- /dev/null +++ b/keyboard/planck/keymaps/mollat/mollat.c @@ -0,0 +1,149 @@ +// +// This layout is based on the following needs: +// +// should be as close as possible to querty/us-international layout (using international/AltGr as o/s driver) +// added german umlauts at known places from de-layout +// all movement keys should be at known places from vi/bash (eg HJKL for cursor keys) +// Fn layer (at CapsLock place like the Pok3r does) for missing keys +// additional layer for tmux window switching +// +// This is work in Progress! If you have suggestions write me at github.com/mollat/qmk_firmware/ and check +// this fork for updates as I probably won't bother jack with my pull requests frequently. +// + +#include "planck.h" + +#define _QWERTY 0 +#define _HIGH 1 +#define _LOW 2 +#define _FN 3 +#define _TMUX 4 +#define _LCTL 5 +#define _MOUSE 6 +#define __________ KC_NO // just for easy reading + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QWERTY] = { /* Qwerty */ + { LT(_MOUSE, KC_ESC),KC_Q,KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, + { LT(_FN, KC_TAB),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, SFT_T(KC_ENT)}, + { __________, __________, KC_LGUI, KC_LALT, KC_LCTL,LT(_TMUX, KC_SPC),LT(_HIGH, KC_SPC),MO(_LOW),KC_RALT,KC_RGUI, __________, __________ } +}, + +// missing keys regarding to the form factor +// keeping the dot and comma for typing faster IP addresses and (german) float values +// putting the backslash on the slash's place +[_HIGH] = { + { KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS }, + { __________, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL }, + { __________, __________, __________, __________, __________, __________, __________, __________, KC_COMM, KC_DOT, KC_BSLS, LSFT(KC_BSLS)}, + { __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________ } +}, + +// classic Fn-Layer triggered with 'CapsLock-key' like on Pok3r +// SPC and ENT are doubled for using repeat (which I switched off, see https://github.com/tmk/tmk_keyboard/issues/287) +// '€' sign is on the '5' position as this is the usual AltGr place on the US Internation layout +// home/end at the 'a' and 'e' position like in bash +// ins at 'i' +// del besides backspace (had no better place for it because of the umlauts) +// pg-down at 'f' (forward in vi), pg-up at 'b' (back in 'vi') +// +[_FN] = { + { __________, __________, __________, KC_END, __________, __________, __________, __________, KC_INS, __________, KC_DEL, RALT(KC_Y) }, + { KC_TRNS, __________, RALT(KC_S), __________, KC_PGDN, RALT(KC_5), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, RALT(KC_P), RALT(KC_Q) }, + { __________, KC_HOME, __________, __________, __________, KC_PGUP, __________, __________, __________, __________, __________, KC_ENT }, + { RESET, __________, __________, __________, __________, KC_SPC, KC_SPC, __________, __________, __________, __________, __________ } +}, + +// function key layer and some shift + (missing key at the small form factor) +[_LOW] = { + { KC_TILD, __________, __________, __________, __________, __________, __________, __________, __________, KC_LCBR, KC_RCBR, KC_UNDS }, + { __________, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_PLUS }, + { __________, __________, __________, __________, __________, KC_F9, KC_F10, KC_F11, KC_F12, __________, __________, __________ }, + { __________, __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________ } +}, + +// most macros will switch tmux screens +// two macros are for vi's save/quit at 'w' and 'q' +[_TMUX] = { + { __________, M(14), M(13), __________, __________, __________, __________, __________, __________, __________, M(11), __________ }, + { M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), __________, __________ }, + { __________, __________, __________, M(12), __________, __________, M(10), __________, __________, __________, __________, __________ }, + { __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________, __________ } +}, + +// mouse movement can be improved (e.g. can't press hj at once), but I will use this seldom, so I stick with hjkl keys. +[_MOUSE] = { + { KC_TRNS, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________ }, + { __________, __________, __________, __________, KC_WH_D, __________, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, __________, __________ }, + { __________, __________, __________, __________, __________, KC_WH_U, __________, __________, __________, __________, __________, __________ }, + { __________, __________, __________, KC_ACL2, KC_ACL1, KC_ACL0, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, __________, __________, __________ } +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [_LCTL] = ACTION_MODS_TAP_KEY(KC_LCTL, M(12)), // does not work +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_0), END ); + break; + case 1: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_1), END ); + break; + case 2: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_2), END ); + break; + case 3: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_3), END ); + break; + case 4: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_4), END ); + break; + case 5: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_5), END ); + break; + case 6: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_6), END ); + break; + case 7: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_7), END ); + break; + case 8: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_8), END ); + break; + case 9: + // tmux last window + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_L), END ); + break; + // tmux next window + case 10: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_N), END ); + break; + // tmux previous window + case 11: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_P), END ); + break; + // tmux new window + case 12: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_C), END ); + break; + case 13: + // vi save document + return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_W), TYPE(KC_ENT), END ); + break; + case 14: + // vi quit + return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_Q), TYPE(KC_ENT), END ); + break; + // tmux press ctrl-b + case 15: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), END ); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/monkey.c b/keyboard/planck/keymaps/monkey.c deleted file mode 100644 index 21a2c146ab..0000000000 --- a/keyboard/planck/keymaps/monkey.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "keymap_common.h" -#include "backlight.h" -#include "debug.h" - -#define COLEMAK_LAYER 0 -#define QWERTY_LAYER 1 -#define LOWER_LAYER 2 -#define UPPER_LAYER 3 -#define SPACEFN_LAYER 4 -#define TENKEY_LAYER 5 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[COLEMAK_LAYER] = { /* Colemak */ - {KC_TAB, UNI(0x1961), KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {FUNC(5), KC_ESC, KC_LGUI, KC_LALT, FUNC(1), FUNC(6), FUNC(6), FUNC(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[QWERTY_LAYER] = { /* 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_LCTL, 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}, - {FUNC(5), KC_ESC, KC_LGUI, KC_LALT, FUNC(1), FUNC(6), FUNC(6), FUNC(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[LOWER_LAYER] = { /* LOWER */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, DEBUG, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} -}, -[UPPER_LAYER] = { /* RAISE */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_DELETE}, - {KC_CALC, FUNC(3), FUNC(4), RESET, DEBUG, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[SPACEFN_LAYER] = { /* SpaceFN */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS}, - {KC_TRNS, FUNC(3), FUNC(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[TENKEY_LAYER] = { /* TENKEY */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_BSPC}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_NLCK}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_PDOT, KC_ENT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_KEY(LOWER_LAYER, KC_BSPC), // Tap for backspace, hold for LOWER - [2] = ACTION_LAYER_TAP_KEY(UPPER_LAYER, KC_ENT), // Tap for enter, hold for RAISE - - [3] = ACTION_DEFAULT_LAYER_SET(COLEMAK_LAYER), - [4] = ACTION_DEFAULT_LAYER_SET(QWERTY_LAYER), - [5] = ACTION_LAYER_TOGGLE(TENKEY_LAYER), - - [6] = ACTION_LAYER_TAP_KEY(SPACEFN_LAYER, KC_SPC), // Tap for space, hold for SpaceFN -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - backlight_step(); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/monkey/monkey.c b/keyboard/planck/keymaps/monkey/monkey.c new file mode 100644 index 0000000000..21a2c146ab --- /dev/null +++ b/keyboard/planck/keymaps/monkey/monkey.c @@ -0,0 +1,76 @@ +#include "keymap_common.h" +#include "backlight.h" +#include "debug.h" + +#define COLEMAK_LAYER 0 +#define QWERTY_LAYER 1 +#define LOWER_LAYER 2 +#define UPPER_LAYER 3 +#define SPACEFN_LAYER 4 +#define TENKEY_LAYER 5 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[COLEMAK_LAYER] = { /* Colemak */ + {KC_TAB, UNI(0x1961), KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {FUNC(5), KC_ESC, KC_LGUI, KC_LALT, FUNC(1), FUNC(6), FUNC(6), FUNC(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[QWERTY_LAYER] = { /* 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_LCTL, 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}, + {FUNC(5), KC_ESC, KC_LGUI, KC_LALT, FUNC(1), FUNC(6), FUNC(6), FUNC(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[LOWER_LAYER] = { /* LOWER */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE}, + {KC_TRNS, FUNC(3), FUNC(4), RESET, DEBUG, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} +}, +[UPPER_LAYER] = { /* RAISE */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_DELETE}, + {KC_CALC, FUNC(3), FUNC(4), RESET, DEBUG, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[SPACEFN_LAYER] = { /* SpaceFN */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS}, + {KC_TRNS, FUNC(3), FUNC(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[TENKEY_LAYER] = { /* TENKEY */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_BSPC}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_NLCK}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_PDOT, KC_ENT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_KEY(LOWER_LAYER, KC_BSPC), // Tap for backspace, hold for LOWER + [2] = ACTION_LAYER_TAP_KEY(UPPER_LAYER, KC_ENT), // Tap for enter, hold for RAISE + + [3] = ACTION_DEFAULT_LAYER_SET(COLEMAK_LAYER), + [4] = ACTION_DEFAULT_LAYER_SET(QWERTY_LAYER), + [5] = ACTION_LAYER_TOGGLE(TENKEY_LAYER), + + [6] = ACTION_LAYER_TAP_KEY(SPACEFN_LAYER, KC_SPC), // Tap for space, hold for SpaceFN +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + backlight_step(); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/nico.c b/keyboard/planck/keymaps/nico.c deleted file mode 100644 index e81fd80a44..0000000000 --- a/keyboard/planck/keymaps/nico.c +++ /dev/null @@ -1,69 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "planck.h" -#include "backlight.h" - -// 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 _QW 0 -#define _CM 1 -#define _DV 2 -#define _LW 3 -#define _RS 4 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* 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_LCTL, 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(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_CM] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_DV] = { /* 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_LCTL, 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(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_RS] = { /* 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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[_LW] = { /* 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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_KEY(MO(_LW), KC_BSPC), // Tap for backspace, hold for LOWER - [2] = ACTION_LAYER_TAP_KEY(MO(_RS), KC_ENT), // Tap for enter, hold for RAISE -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - backlight_step(); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/nico/nico.c b/keyboard/planck/keymaps/nico/nico.c new file mode 100644 index 0000000000..e81fd80a44 --- /dev/null +++ b/keyboard/planck/keymaps/nico/nico.c @@ -0,0 +1,69 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#include "backlight.h" + +// 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 _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* 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_LCTL, 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(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_CM] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_DV] = { /* 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_LCTL, 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(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS] = { /* 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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_LW] = { /* 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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_KEY(MO(_LW), KC_BSPC), // Tap for backspace, hold for LOWER + [2] = ACTION_LAYER_TAP_KEY(MO(_RS), KC_ENT), // Tap for enter, hold for RAISE +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + backlight_step(); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/numpad.c b/keyboard/planck/keymaps/numpad.c deleted file mode 100644 index 7de4372ab0..0000000000 --- a/keyboard/planck/keymaps/numpad.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_MINUS, KC_KP_PLUS, KC_KP_PLUS, KC_KP_ENTER, KC_KP_ENTER}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_ASTERISK, KC_KP_9, KC_KP_6, KC_KP_3, KC_KP_DOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_SLASH, KC_KP_8, KC_KP_5, KC_KP_2, KC_KP_0}, - {BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_SPC, KC_NUMLOCK, KC_KP_7, KC_KP_4, KC_KP_1, KC_KP_0} - // Space is repeated to accommadate for both spacebar wiring positions -} -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/numpad/numpad.c b/keyboard/planck/keymaps/numpad/numpad.c new file mode 100644 index 0000000000..7de4372ab0 --- /dev/null +++ b/keyboard/planck/keymaps/numpad/numpad.c @@ -0,0 +1,26 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_MINUS, KC_KP_PLUS, KC_KP_PLUS, KC_KP_ENTER, KC_KP_ENTER}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_ASTERISK, KC_KP_9, KC_KP_6, KC_KP_3, KC_KP_DOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_SLASH, KC_KP_8, KC_KP_5, KC_KP_2, KC_KP_0}, + {BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_SPC, KC_NUMLOCK, KC_KP_7, KC_KP_4, KC_KP_1, KC_KP_0} + // Space is repeated to accommadate for both spacebar wiring positions +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/tak3over.c b/keyboard/planck/keymaps/tak3over.c deleted file mode 100644 index 7d8243dfac..0000000000 --- a/keyboard/planck/keymaps/tak3over.c +++ /dev/null @@ -1,130 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. -// -//Dropped the Dvorak layer and added two my layer buttons. Both Raise and lower can be accessed from either side now. - -#include "planck.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -// 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 _QW 0 -#define _CM 1 -#define _LW 2 -#define _RS 3 -#define _FN 4 - -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 | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QW] = { - {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 }, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), 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 | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right - * `-----------------------------------------------------------------------------------' - */ -[_CM] = { - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_RS] = { - {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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | Reset| Ins | Home | PGUP |Colemk| Left | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Brite| Del | End | PGDN |Qwerty| Del | _ | + | { | } |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_LW] = { - {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_TRNS, RESET, KC_INS, KC_HOME, KC_PGUP, DF(_CM), KC_LEFT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), KC_DEL, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -/* Function - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | GUI | X | C | V | Z | Left | Down | Up |Right | Del | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * |Shift | Ctrl | X | C | V | Z | Next | Mute | Vol- | Vol+ | Play |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_FN] = { - {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_TRNS, KC_RGUI, KC_X, KC_C, KC_V, KC_Z, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_BSLS}, - {KC_TRNS, KC_RCTL, KC_X, KC_C, KC_V, KC_Z, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/tak3over/tak3over.c b/keyboard/planck/keymaps/tak3over/tak3over.c new file mode 100644 index 0000000000..7d8243dfac --- /dev/null +++ b/keyboard/planck/keymaps/tak3over/tak3over.c @@ -0,0 +1,130 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. +// +//Dropped the Dvorak layer and added two my layer buttons. Both Raise and lower can be accessed from either side now. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// 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 _QW 0 +#define _CM 1 +#define _LW 2 +#define _RS 3 +#define _FN 4 + +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 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { + {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 }, + {KC_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), 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 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {KC_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { + {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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | Reset| Ins | Home | PGUP |Colemk| Left | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Brite| Del | End | PGDN |Qwerty| Del | _ | + | { | } |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {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_TRNS, RESET, KC_INS, KC_HOME, KC_PGUP, DF(_CM), KC_LEFT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), KC_DEL, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +/* Function + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | GUI | X | C | V | Z | Left | Down | Up |Right | Del | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |Shift | Ctrl | X | C | V | Z | Next | Mute | Vol- | Vol+ | Play |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_FN] = { + {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_TRNS, KC_RGUI, KC_X, KC_C, KC_V, KC_Z, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_BSLS}, + {KC_TRNS, KC_RCTL, KC_X, KC_C, KC_V, KC_Z, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; -- cgit v1.2.1 From 2425fd295af80a8e8c4f962085bca4a61d2a00db Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 16 May 2016 23:08:16 -0400 Subject: fixes default planck keymap --- keyboard/planck/keymaps/default/keymap.c | 1 - 1 file changed, 1 deletion(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 79bf62436a..43f570532b 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -261,7 +261,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) layer_off(_RAISE); layer_off(_LOWER); layer_off(_ADJUST); - layer_off(_MUSIC); layer_on(_PLOVER); if (!eeconfig_is_enabled()) { eeconfig_init(); -- cgit v1.2.1 From fe9b1482fd34a1c07afca0433e4bf5eb6229cf22 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 17 May 2016 22:17:23 -0400 Subject: adds KC_NUBS, KC_NUHS and shifted versions to default keymaps --- keyboard/planck/keymaps/default/keymap.c | 8 ++++---- keyboard/planck/keymaps/experimental/keymap.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 43f570532b..36d496416e 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -107,7 +107,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_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_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, @@ -117,7 +117,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -125,7 +125,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_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_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, diff --git a/keyboard/planck/keymaps/experimental/keymap.c b/keyboard/planck/keymaps/experimental/keymap.c index 2f8a0510a8..4b9c15e084 100644 --- a/keyboard/planck/keymaps/experimental/keymap.c +++ b/keyboard/planck/keymaps/experimental/keymap.c @@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -107,7 +107,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_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_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, @@ -117,7 +117,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -125,7 +125,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_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_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUHS, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, -- cgit v1.2.1 From b732b79b49b098dba8e14493c745075f336747d8 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 18 May 2016 23:47:16 -0400 Subject: adapts unicode to quantum.c (#333) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Unicode to have unicode input you need to: - set your OS input method to UNICODE if needed - enable unicode in your makefile - copy the action_function from keyboard/planck/keymaps/unicode/unicode.c to your keymap.c set the target OS method in your keymap.c: void matrix_init_user() { set_unicode_mode(UC_OSX); } you can then switch when you want with: set_unicode_mode(UC_OSX); set_unicode_mode(UC_LNX); set_unicode_mode(UC_WIN); put some unicode codes in your keymap like so: UC(0x0061) I did change the bit mask in quantum/keymap_common.c and .h I’m afraid we will need uint32 to get a total support for all unicode tables or relocate the handler as @mbarkhau did. * rearranges keycode values, hooks-up unicode * removes extra lalt ref * adds unicode shortcuts and example --- keyboard/planck/keymaps/unicode/keymap.c | 326 ++++++++++++++++++++++++++++ keyboard/planck/keymaps/unicode/makefile.mk | 1 + 2 files changed, 327 insertions(+) create mode 100644 keyboard/planck/keymaps/unicode/keymap.c create mode 100644 keyboard/planck/keymaps/unicode/makefile.mk (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/unicode/keymap.c b/keyboard/planck/keymaps/unicode/keymap.c new file mode 100644 index 0000000000..d73e7e09d4 --- /dev/null +++ b/keyboard/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 + + diff --git a/keyboard/planck/keymaps/unicode/makefile.mk b/keyboard/planck/keymaps/unicode/makefile.mk new file mode 100644 index 0000000000..9b27b08bed --- /dev/null +++ b/keyboard/planck/keymaps/unicode/makefile.mk @@ -0,0 +1 @@ +UNICODE_ENABLE = yes # Unicode -- cgit v1.2.1 From d66aa0abf96b5e887250cf0a7fa5e575f18c5a91 Mon Sep 17 00:00:00 2001 From: Peter Date: Fri, 20 May 2016 17:14:08 +0200 Subject: adds petereichinger's planck keymap (#340) * Add custom keymap * A little readme and remove old layout comments --- keyboard/planck/keymaps/pete/README.md | 14 ++ keyboard/planck/keymaps/pete/keymap.c | 223 +++++++++++++++++++++++++++++++ keyboard/planck/keymaps/pete/makefile.mk | 2 + 3 files changed, 239 insertions(+) create mode 100644 keyboard/planck/keymaps/pete/README.md create mode 100644 keyboard/planck/keymaps/pete/keymap.c create mode 100644 keyboard/planck/keymaps/pete/makefile.mk (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/pete/README.md b/keyboard/planck/keymaps/pete/README.md new file mode 100644 index 0000000000..3cf594f3a9 --- /dev/null +++ b/keyboard/planck/keymaps/pete/README.md @@ -0,0 +1,14 @@ +# Planck Layout by Pete + +This layout is based on the default layout but uses a FN key in the bottom left corner instead of the shift / backlight key. +On the FN layer you can do the following things + +- Step through back light +- Put a mac to sleep +- The Fxx keys in a block to click with the right hand +- The delete key in the upper right corner +- Quick access to screenshot functions +- Control volume and media playback +- Home/PgDown/PgUp/End buttons where the arrow keys are + +Pressing the lower and raise buttons allows to reset and change from QWERT to Colemak or Dvorak. diff --git a/keyboard/planck/keymaps/pete/keymap.c b/keyboard/planck/keymaps/pete/keymap.c new file mode 100644 index 0000000000..57cab65a31 --- /dev/null +++ b/keyboard/planck/keymaps/pete/keymap.c @@ -0,0 +1,223 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#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 _FCT 5 +#define _SETUP 6 +#define _MICMUTE 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 FCT M(_FCT) +#define MICMUTE M(_MICMUTE) + +#define MACPRNT LGUI(LSFT(KC_3)) +#define MACPRNT2 LGUI(LSFT(KC_4)) +#define CYCLWIN LGUI(KC_GRV) +#define MAC_SLEP LSFT(LCTL(KC_POWER)) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_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 }, + {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +[_COLEMAK] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +[_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 }, + {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +[_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_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +[_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_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +[_FCT] = { /* Function */ + {BL_STEP, MAC_SLEP,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_DELT}, + {_______, MICMUTE, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, MACPRNT}, + {_______, CYCLWIN, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, MACPRNT2}, + {FCT, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDOWN,KC_PGUP,KC_END } +}, + +[_SETUP] = { /* Setup */ + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______} +} +}; + +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 music_scale[][2] = SONG(MUSIC_SCALE_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, _SETUP); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _SETUP); + } + break; + case _RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _SETUP); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _SETUP); + } + break; + case _FCT: + if (record->event.pressed) { + layer_on(_FCT); + } else { + layer_off(_FCT); + } + break; + case _MICMUTE: + if (record->event.pressed) { + register_code(KC_RSFT); + register_code(KC_RCTL); + register_code(KC_RALT); + register_code(KC_RGUI); + } else { + unregister_code(KC_RSFT); + unregister_code(KC_RCTL); + unregister_code(KC_RALT); + unregister_code(KC_RGUI); + } + 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); +} + +uint8_t starting_note = 0x0C; +int offset = 0; + +void process_action_user(keyrecord_t *record) { + + if (IS_LAYER_ON(_MUSIC)) { + if (record->event.pressed) { + play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + } else { + stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + } + } + +} +#endif diff --git a/keyboard/planck/keymaps/pete/makefile.mk b/keyboard/planck/keymaps/pete/makefile.mk new file mode 100644 index 0000000000..812264cb35 --- /dev/null +++ b/keyboard/planck/keymaps/pete/makefile.mk @@ -0,0 +1,2 @@ +AUDIO_ENABLE = no +NKRO_ENABLE = yes \ No newline at end of file -- cgit v1.2.1 From aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Mon, 23 May 2016 20:42:21 -0700 Subject: Optimize matrix scanning (#343) --- keyboard/planck/config.h | 7 ++++--- keyboard/planck/keymaps/pvc/config.h | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h index 7d64f09773..b648931081 100644 --- a/keyboard/planck/config.h +++ b/keyboard/planck/config.h @@ -33,8 +33,9 @@ along with this program. If not, see . #define MATRIX_COLS 12 /* Planck PCB default pin-out */ -#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } -#define ROWS (int []){ D0, D5, B5, B6 } +#define MATRIX_ROW_PINS { D0, D5, B5, B6 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define UNUSED_PINS /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW @@ -46,7 +47,7 @@ along with this program. If not, see . #define BACKLIGHT_LEVELS 3 /* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 +#define DEBOUNCING_DELAY 5 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboard/planck/keymaps/pvc/config.h b/keyboard/planck/keymaps/pvc/config.h index d435cc795c..b8960038ab 100644 --- a/keyboard/planck/keymaps/pvc/config.h +++ b/keyboard/planck/keymaps/pvc/config.h @@ -33,8 +33,9 @@ along with this program. If not, see . #define MATRIX_COLS 12 /* Planck PCB default pin-out */ -#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } -#define ROWS (int []){ D0, D5, B5, B6 } +#define MATRIX_ROW_PINS { D0, D5, B5, B6 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define UNUSED_PINS /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW @@ -46,7 +47,7 @@ along with this program. If not, see . #define BACKLIGHT_LEVELS 3 /* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 +#define DEBOUNCING_DELAY 5 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE -- cgit v1.2.1 From 287eb7ad148abc8fe3fb014218d71e205fd9131d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 24 May 2016 11:56:53 -0400 Subject: Converted audio play functions to *_user (#349) * Updated personal layouts * tweaked personal * Nightly - Audio Cleanup Refactored the LUTs. Abstracted some of the registers out of audio to use more functional names. Split audio into audio and audio_pwm. WIP * nightly - collapsed code * Added check for note playing to LEDs * Usability tweaks * TWEAE * nightly added extra kcs to keymap common * turned on Plank audio * Added backlight breathing to atomic * reverted accidental merge * Added music and audio toggles to Quantum.c * Redid the audio callbacks * Adjusted default planck layout to use the user tone naming * tabs to spaces * Rewrote the ALL recipe to allow for faster parallel make * tabs to spaces * Renamed custom event functions to be 'startup_user' and 'shutdown_user'. Also moved the prototypes around. * Tweaked pvc atomic layout to work with the pvc planck. * updates midi scale calling --- keyboard/planck/keymaps/default/keymap.c | 43 +++-- keyboard/planck/keymaps/pvc/config.h | 2 +- keyboard/planck/keymaps/pvc/keymap.c | 291 ++++++++++++------------------- 3 files changed, 140 insertions(+), 196 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 36d496416e..3d62898171 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -174,21 +174,16 @@ 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_startup[][2] = SONG(STARTUP_SOUND); 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 music_scale[][2] = SONG(MUSIC_SCALE_SOUND); -float goodbye[][2] = SONG(GOODBYE_SOUND); +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -288,16 +283,34 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; 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 + startup_user(); + #endif } #ifdef AUDIO_ENABLE -void play_goodbye_tone() + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() { - PLAY_NOTE_ARRAY(goodbye, false, 0); - _delay_ms(150); + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); } + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + #endif diff --git a/keyboard/planck/keymaps/pvc/config.h b/keyboard/planck/keymaps/pvc/config.h index b8960038ab..b648931081 100644 --- a/keyboard/planck/keymaps/pvc/config.h +++ b/keyboard/planck/keymaps/pvc/config.h @@ -74,7 +74,7 @@ along with this program. If not, see . */ /* disable debug print */ -#define NO_DEBUG +//#define NO_DEBUG /* disable print */ //#define NO_PRINT diff --git a/keyboard/planck/keymaps/pvc/keymap.c b/keyboard/planck/keymaps/pvc/keymap.c index 177f04484d..2fc5f0da16 100644 --- a/keyboard/planck/keymaps/pvc/keymap.c +++ b/keyboard/planck/keymaps/pvc/keymap.c @@ -8,43 +8,44 @@ #include "song_list.h" #endif -#define LAYER_QWERTY 0 -#define LAYER_COLEMAK 1 -#define LAYER_DVORAK 2 -#define LAYER_LOWER 3 -#define LAYER_RAISE 4 -#define LAYER_FUNCTION 5 -#define LAYER_MOUSE 6 -#define LAYER_MUSIC 7 -#define LAYER_ADJUST 8 - -#define MACRO_QWERTY 0 -#define MACRO_COLEMAK 1 -#define MACRO_DVORAK 2 -#define MACRO_LOWER 3 -#define MACRO_RAISE 4 -#define MACRO_FUNCTION 5 -#define MACRO_MOUSE 6 -#define MACRO_TIMBRE_1 7 -#define MACRO_TIMBRE_2 8 -#define MACRO_TIMBRE_3 9 -#define MACRO_TIMBRE_4 10 -#define MACRO_TEMPO_U 11 -#define MACRO_TEMPO_D 12 -#define MACRO_TONE_DEFAULT 13 -#define MACRO_MUSIC_ON 14 -#define MACRO_MUSIC_OFF 15 -#define MACRO_AUDIO_ON 16 -#define MACRO_AUDIO_OFF 17 -#define MACRO_INC_VOICE 18 -#define MACRO_DEC_VOICE 19 -#define MACRO_BACKLIGHT 20 +#define LAYER_QWERTY 0 +#define LAYER_COLEMAK 1 +#define LAYER_DVORAK 2 +#define LAYER_UPPER 3 +#define LAYER_LOWER 4 +#define LAYER_FUNCTION 5 +#define LAYER_MOUSE 6 +#define LAYER_ADJUST 7 + +#define MACRO_QWERTY 0 +#define MACRO_COLEMAK 1 +#define MACRO_DVORAK 2 +#define MACRO_UPPER 3 +#define MACRO_LOWER 4 +#define MACRO_FUNCTION 5 +#define MACRO_MOUSE 6 +#define MACRO_TIMBRE_1 7 +#define MACRO_TIMBRE_2 8 +#define MACRO_TIMBRE_3 9 +#define MACRO_TIMBRE_4 10 +#define MACRO_TEMPO_U 11 +#define MACRO_TEMPO_D 12 +#define MACRO_TONE_DEFAULT 13 +#define MACRO_MUSIC_TOGGLE 14 +#define MACRO_AUDIO_TOGGLE 16 +#define MACRO_INC_VOICE 18 +#define MACRO_DEC_VOICE 19 +#define MACRO_BACKLIGHT 20 +#define MACRO_BREATH_TOGGLE 21 +#define MACRO_BREATH_SPEED_INC 23 +#define MACRO_BREATH_SPEED_DEC 24 +#define MACRO_BREATH_DEFAULT 25 #define M_QWRTY M(MACRO_QWERTY) #define M_COLMK M(MACRO_COLEMAK) #define M_DVORK M(MACRO_DVORAK) +#define M_UPPER M(MACRO_UPPER) #define M_LOWER M(MACRO_LOWER) -#define M_RAISE M(MACRO_RAISE) #define M_FUNCT M(MACRO_FUNCTION) #define M_MOUSE M(MACRO_MOUSE) #define TIMBR_1 M(MACRO_TIMBRE_1) @@ -55,12 +56,12 @@ #define TMPO_DN M(MACRO_TEMPO_D) #define TMPO_DF M(MACRO_TONE_DEFAULT) #define M_BACKL M(MACRO_BACKLIGHT) +#define M_BRTOG M(MACRO_BREATH_TOGGLE) +#define M_BSPDU M(MACRO_BREATH_SPEED_INC) +#define M_BSPDD M(MACRO_BREATH_SPEED_DEC) +#define M_BDFLT M(MACRO_BREATH_DEFAULT) -#define MUS_ON M(MACRO_MUSIC_ON) -#define MUS_OFF M(MACRO_MUSIC_OFF) -#define AUD_OFF M(MACRO_AUDIO_OFF) -#define AUD_ON M(MACRO_AUDIO_ON) #define VC_UP M(MACRO_INC_VOICE) #define VC_DOWN M(MACRO_DEC_VOICE) @@ -76,6 +77,7 @@ #define SC_ACLS LALT(KC_F4) #define SC_CCLS LCTL(KC_F4) +#define OS_SHFT KC_FN0 #define _______ KC_TRNS #define XXXXXXX KC_NO @@ -90,17 +92,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | ENTER | + * | LSHIFT | Z | X | C | V | B | N | M | , | . | UP | ENTER | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | + * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | SHIFT | LEFT | DOWN | RIGHT | * '-----------------------------------------------------------------------------------------------------------' */ - [LAYER_QWERTY] = { /* 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 }, + [LAYER_QWERTY] = { // 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 }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT }, }, /* COLEMAK @@ -109,77 +111,77 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * | BACKSP | A | R | S | T | D | H | N | E | I | O | ' | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | ENTER | + * | LSHIFT | Z | X | C | V | B | K | M | , | . | UP | ENTER | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | + * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | SHIFT | LEFT | DOWN | RIGHT | * '-----------------------------------------------------------------------------------------------------------' */ - [LAYER_COLEMAK] = { /* COLEMAK */ + [LAYER_COLEMAK] = { // COLEMAK { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_ESC }, { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT }, }, /* DVORAK * .-----------------------------------------------------------------------------------------------------------. * | TAB | ' | , | . | P | Y | F | G | C | R | L | BACKSP | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | ESC | A | O | E | U | I | D | H | T | N | S | ' | + * | ESC | A | O | E | U | I | D | H | T | N | S | / | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | ENTER | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | + * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | * '-----------------------------------------------------------------------------------------------------------' */ - [LAYER_DVORAK] = { /* DVORAK */ + [LAYER_DVORAK] = { // 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 }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, }, -/* Raise +/* UPPER * .-----------------------------------------------------------------------------------------------------------. - * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | DEL | + * | PRINT | F1 | F2 | F3 | F4 | NUM LK | / | 7 | 8 | 9 | - | DEL | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | XXXXXX | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | [ | ] | \ | + * | CAP LK | F5 | F6 | F7 | F8 | SCR LK | * | 4 | 5 | 6 | + | INS | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LSHIFT | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ENTER | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISE | BACKSP | BACKSP | LOWER | PG UP | PG DN | HOME | END | + * | | F9 | F10 | F11 | F12 | PAUSE | | 1 | 2 | 3 | ENTER | HOME | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | | | | | 0 | 0 | | RALT | . | ENTER | END | * '-----------------------------------------------------------------------------------------------------------' */ - [LAYER_RAISE] = { /* RAISED */ - { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, - { XXXXXXX, 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, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, - { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END }, + [LAYER_UPPER] = { // UPPER + { KC_PSCR, KC_F1, KC_F2, KC_F3, KC_F4, KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_DEL }, + { KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_SLCK, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_INS }, + { _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, KC_HOME }, + { _______, _______, _______, _______, _______, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, KC_END }, }, - -/* LOWERED +/* LOWER * .-----------------------------------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | INS | + * | | $ | { | [ | ( | % | # | ) | ] | } | @ | PG UP | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | XXXXXX | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * | | ^ | * | + | - | ; | : | _ | ' | " | ` | PG DN | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LSHIFT | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ENTER | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISE | BACKSP | BACKSP | LOWER | PG UP | PG DN | HOME | END | + * | | | | & | ! | ~ | / | \ | = | < | > | ? | HOME | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | | | | | | | | | | | END | * '-----------------------------------------------------------------------------------------------------------' */ - [LAYER_LOWER] = { /* LOWERED */ - { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_INS }, - { XXXXXXX, 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, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, - { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END }, + [LAYER_LOWER] = { // LOWER + { _______, KC_DLR, KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT, KC_PGUP }, + { _______, KC_CIRC, KC_ASTR, KC_PPLS, KC_PMNS, KC_SCLN, KC_COLN, KC_UNDS, KC_QUOT, KC_DQT, KC_GRV, KC_PGDN }, + { _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SLSH, KC_BSLS, KC_EQL, KC_LT, KC_GT, KC_QUES, KC_HOME }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END }, }, + /* FUNCTION * .-----------------------------------------------------------------------------------------------------------. * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | PAUSE | @@ -188,10 +190,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MUTE | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISE | PLAY | PLAY | LOWER | VOL UP | VOL DN | NEXT | PREV | + * | LCTRL | LWIN | FN | LALT | UPPER | PLAY | PLAY | LOWER | VOL UP | VOL DN | NEXT | PREV | * '-----------------------------------------------------------------------------------------------------------' */ - [LAYER_FUNCTION] = { /* FUNCTION */ + [LAYER_FUNCTION] = { // FUNCTION { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PAUS }, { KC_CAPS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_PSCR }, { KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE }, @@ -200,7 +202,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef MOUSEKEY_ENABLE - [LAYER_MOUSE] = { /* MOUSE */ + [LAYER_MOUSE] = { // MOUSE { KC_ESC, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC }, { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, { _______, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, KC_WH_D }, @@ -209,21 +211,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #endif - [LAYER_MUSIC] = { /* MUSIC */ - { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, - { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, - { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, - { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_RAISE, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, - }, - - [LAYER_ADJUST] = { /* ADJUST */ - { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF }, + [LAYER_ADJUST] = { // ADJUST + { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, _______, MU_TOG, AU_TOG }, { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, M_BACKL, RESET, _______, M_MOUSE, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, VC_UP, VC_DOWN, _______, _______ }, + { _______, _______, _______, _______, M_BACKL, RESET, _______, M_MOUSE, _______, _______, MUV_IN, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MUV_DE, _______ }, }, - /* [LAYER_EMPTY] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, @@ -263,6 +257,7 @@ void persistant_default_layer_set(uint16_t default_layer) } const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MODS_ONESHOT(MOD_LSFT), }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) @@ -306,25 +301,25 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { layer_on(LAYER_LOWER); - update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } else { layer_off(LAYER_LOWER); - update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } break; - case MACRO_RAISE: + case MACRO_UPPER: if (record->event.pressed) { - layer_on(LAYER_RAISE); - update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + layer_on(LAYER_UPPER); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } else { - layer_off(LAYER_RAISE); - update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + layer_off(LAYER_UPPER); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } break; @@ -393,65 +388,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; - case MACRO_AUDIO_OFF: - if (record->event.pressed) - { - #ifdef AUDIO_ENABLE - audio_off(); - #endif - } - break; - - case MACRO_AUDIO_ON: - if (record->event.pressed) - { - #ifdef AUDIO_ENABLE - audio_on(); - PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); - #endif - } - break; - - case MACRO_MUSIC_ON: - if (record->event.pressed) - { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); - layer_on(LAYER_MUSIC); - #endif - } - break; - - case MACRO_MUSIC_OFF: - if (record->event.pressed) - { - #ifdef AUDIO_ENABLE - layer_off(LAYER_MUSIC); - stop_all_notes(); - #endif - } - break; - - case MACRO_INC_VOICE: - if (record->event.pressed) - { - #ifdef AUDIO_ENABLE - voice_iterate(); - PLAY_NOTE_ARRAY(music_scale, false, STACCATO); - #endif - } - break; - - case MACRO_DEC_VOICE: - if (record->event.pressed) - { - #ifdef AUDIO_ENABLE - voice_deiterate(); - PLAY_NOTE_ARRAY(music_scale, false, STACCATO); - #endif - } - break; - #endif /* AUDIO_ENABLE */ default: @@ -464,31 +400,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef AUDIO_ENABLE - -void process_action_user(keyrecord_t *record) -{ - - uint8_t starting_note = 0x0C; - int offset = 7; - - if (IS_LAYER_ON(LAYER_MUSIC)) - { - if (record->event.pressed) - { - play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); - } - else - { - stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); - } - } -} - - void matrix_init_user(void) { set_voice(default_voice); - play_startup_tone(); + startup_user(); println("Matrix Init"); } @@ -532,16 +447,32 @@ void led_set_user(uint8_t usb_led) } -void play_startup_tone() +void startup_user() { _delay_ms(10); // gets rid of tick PLAY_NOTE_ARRAY(tone_my_startup, false, STACCATO); } -void play_goodbye_tone() +void shutdown_user() { PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO); - _delay_ms(1000); + _delay_ms(2000); + stop_all_notes(); +} + +void audio_on_user(void) +{ + PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); +} + +void music_on_user(void) +{ + PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, STACCATO); } #endif /* AUDIO_ENABLE */ \ No newline at end of file -- cgit v1.2.1