Merge branch 'master' of github.com:jackhumbert/qmk_firmware

Conflicts:
	keyboard/ergodox_ez/keymaps/keymap_default.c
pull/73/head
dragon788 9 years ago
commit d1f8d0104b

@ -1,6 +1,30 @@
# Some tips on navigating the Quantum codebase # Getting started
## These are the keycodes you're looking for There are two main ways you could customize the ErgoDox EZ.
## The Easy Way: Use an existing firmware file and just flash it
1. Download and install the [Teensy Loader](https://www.pjrc.com/teensy/loader.html)
2. Find a firmware file you like. You can find a few if these in the keymaps subdirectory right here. The file you need ends with .hex, and you can look at its .c counterpart (or its PNG image) to see what you'll be getting. You can also use the [Massdrop configurator](https://keyboard-configurator.massdrop.com/ext/ergodox) to create a firmware Hex file you like.
3. Download the firmware file
4. Connect the keyboard, press its Reset button (gently insert a paperclip into the hole in the top-right corner) and flash it using the Teensy loader you installed on step 1 and the firmware you downloaded.
## More technical: create your own totally custom firmware by editing the source files.
This requires a little bit of familiarity with coding.
1. Go to https://github.com/jackhumbert/qmk_firmware and read the Readme at the base of this repository, top to bottom. Then come back here :)
2. Clone the repository (download it)
3. Set up a build environment as per https://www.pjrc.com/teensy/gcc.html
4. Copy `keymaps/keymap_default.c` into `keymaps/keymaps_your_name.c` (for example, `keymaps/keymap_german.c`)
5. Edit this file, changing keycodes to your liking (see "Finding the keycodes you need" below). Try to edit the comments as well, so the "text graphics" represent your layout correctly.
6. Compile your firmware by running `make clean` followed by `make KEYMAP=your_name`. Note that you must omit the `keymap_` prefix for your filename in this command -- for example, `make KEYMAP=german`. This will result in a hex file, which will always be called `ergodox_ez.hex`, regardless of your keymap name.
6. Flash this hex file using the [Teensy loader](https://www.pjrc.com/teensy/loader.html) as described in step 4 in the "Easy Way" above.
7. Submit your work as a pull request to this repository, so others can also use it. :)
Good luck! :)
## Finding the keycodes you need
Let's say you want a certain key in your layout to send a colon; to figure out what keycode to use to make it do that, you're going to need `quantum/keymap_common.h`. Let's say you want a certain key in your layout to send a colon; to figure out what keycode to use to make it do that, you're going to need `quantum/keymap_common.h`.

@ -2,7 +2,6 @@
#include "debug.h" #include "debug.h"
#include "action_layer.h" #include "action_layer.h"
// TODO: Define layer names that make sense for the ErgoDox EZ.
#define BASE 0 // default layer #define BASE 0 // default layer
#define SYMB 1 // symbols #define SYMB 1 // symbols
#define MDIA 2 // media keys #define MDIA 2 // media keys
@ -120,7 +119,7 @@ KEYMAP(
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, 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_BTN1, KC_BTN3, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_BTN1, KC_BTN2, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS,

@ -0,0 +1,1467 @@
:100000000C9403070C9447070C9447070C9447077C
:100010000C9447070C9447070C9447070C94470728
:100020000C9447070C9447070C9432120C94041359
:100030000C9447070C9447070C9447070C94470708
:100040000C9447070C94DC2B0C9447070C9447073F
:100050000C9447070C94E3210C9447070C94470732
:100060000C9447070C9447070C9447070C944707D8
:100070000C9447070C9447070C9447070C944707C8
:100080000C9447070C9447070C9447070C944707B8
:100090000C9447070C9447070C9447070C944707A8
:1000A0000C9447070C9447070C94470769138B136C
:1000B00076148B137614CD13F0137614451458145C
:1000C000A617A617D417D41717185318541A541A6A
:1000D0006B18541A621962192E1A541A541A421AB9
:1000E0000000F0A12E004C002A00E1003581000044
:1000F0001E00140004001D7134004D001F001A0082
:1001000016001B00E1042A0020000800070006007A
:1001100050002C0021001500090019004F004A0072
:10012000220017000A000500000065745000015409
:100130000000007F0000E3004F0001540000007742
:100140000000E20023001C000B00110000002971D8
:10015000240018000D00100052004B0025000C0078
:100160000E00360051002800260012000F00370054
:100170002F002B00270013003382387130004E000F
:100180002D0031003400E500C10000000100010035
:1001900001000100010000003A001E0220022202BC
:1001A000010001003B001F022102230201000100A7
:1001B0003C002F0226022F00010001003D0030020A
:1001C00027023000010001003E00310235003502F7
:1001D000000001000100010000000100000001001A
:1001E0000100010000000100000001003F0052007A
:1001F00051002402000001004000240021001E00E4
:10020000010001004100250022001F00370001000D
:1002100042002600230020002700010043002502A1
:100220002E0231002E0001004400450001000100B3
:1002300001000000010001000100010001000000B8
:1002400001000100010001000100010001000100A6
:10025000F2000100010001000100F000F1000100C6
:10026000F400010001000100F3000100F5000100AD
:100270000100010001000100000001000100010077
:100280000000010000000100010001000000010069
:100290000000010001000100010001000000010058
:1002A0000100010001000100A9000100010001009E
:1002B0000100AC00AA00B600010001000100AB0083
:1002C000A80001000100010001000100010001007F
:1002D00001000100AE000100010000000A0025300D
:1002E000313662003A200025303258000A722F63FE
:1002F0002030313233343536373839414243444582
:10030000460A000A002530325800626F756E636538
:10031000213A20006C6566742073696465206174FD
:100320007461636865640A006C656674207369644F
:1003300065206E6F7420726573706F6E64696E678E
:100340000A00747279696E6720746F207265736534
:1003500074206D637032333031380A000A444542EC
:1003600055473A20656E61626C65642E0A005B73C6
:100370005D004B6579626F617264207374617274A1
:100380002E0A005B575D005B535D005B525D005BB6
:10039000445D005B435D0016034500720067006F1B
:1003A0000044006F007800200045005A000000164D
:1003B000034500720067006F0044006F0078002062
:1003C0000045005A0000000403090409028D0005DD
:1003D0000100A0FA09040000010301010009211134
:1003E000010001223F000705810308000A090401FA
:1003F000000103010200092111010001224D000743
:1004000005820308000A0904020001030000000934
:1004100021110100012236000705830308000A09A3
:100420000403000203000000092111010001222041
:1004300000070584032000010705040320000109CB
:100440000404000103000000092111010001223908
:1004500000070585031000011201100100000008CB
:10046000EDFE071301000102000105010906A101CB
:10047000050719E029E71500250195087501810296
:100480000508190129059505750191029501750366
:100490009101050719002977150025019578750147
:1004A0008102C00631FF0974A1010975150025FFFD
:1004B0009520750881020976150025FF952075089D
:1004C0009102C005010980A101850216010026B72D
:1004D000001A01002AB700751095018100C0050CB3
:1004E0000901A1018503160100269C021A01002AB8
:1004F0009C02751095018100C005010902A1010946
:1005000001A10005091901290515002501950575A9
:100510000181029501750381010501093009311539
:1005200081257F95027508810609381581257F95FB
:100530000175088106050C0A38021581257F950191
:1005400075088106C0C005010906A101050719E06B
:1005500029E71500250195087501810295017508A7
:10056000810105081901290595057501910295017B
:10057000750391010507190029FF150025FF950650
:1005800075088100C00A002530325820006B65795B
:10059000626F6172645F7265706F72743A20000AF4
:1005A0000025303258006B6579626F6172645F7349
:1005B00065745F6C65643A200064656C5F6B657997
:1005C0005F6269743A2063616E27742064656C3AD7
:1005D00020253032580A006164645F6B65795F6280
:1005E00069743A2063616E2774206164643A20253F
:1005F0003032580A00646F6E652E0A00626F6F67B2
:100600006D61676963207363616E3A202E2E2E2020
:1006100000290A002575002F002575005D2800259A
:10062000640020002564002000256400200025646B
:10063000007C0025303258006D6F7573656B6579ED
:10064000205B62746E7C782079207620685D287249
:1006500065702F61636C293A205B006D6B5F776872
:1006600065656C5F74696D655F746F5F6D6178203F
:100670003D2025640A006D6B5F776865656C5F6D72
:1006800061785F7370656564203D2025640A006DA4
:100690006B5F74696D655F746F5F6D6178203D207D
:1006A00025640A006D6B5F6D61785F7370656564CA
:1006B000203D2025640A006D6B5F696E746572765B
:1006C000616C203D2025640A006D6B5F64656C6180
:1006D00079203D2025640A006D6B5F776865656C45
:1006E0005F74696D655F746F5F6D6178203D202573
:1006F000640A006D6B5F776865656C5F6D61785F3C
:100700007370656564203D2025640A006D6B5F741D
:10071000696D655F746F5F6D6178203D2025640AA7
:10072000006D6B5F6D61785F7370656564203D205F
:1007300025640A006D6B5F696E74657276616C206A
:100740003D2025640A006D6B5F64656C6179203D16
:100750002025640A000A00257500363A207768656E
:10076000656C5F74696D655F746F5F6D61783A2069
:10077000000A00257500353A20776865656C5F6D65
:1007800061785F73706565643A20000A0025750022
:10079000343A2074696D655F746F5F6D61783A20DB
:1007A000000A00257500333A206D61785F7370652B
:1007B00065643A20000A00257500323A20696E749B
:1007C000657276616C286D73293A20000A002575E0
:1007D00000313A2064656C6179282A31306D7329C3
:1007E0003A20000A092D2056616C756573202D0A88
:1007F000004D3E004D25643E20003F00736574208F
:1008000064656661756C740A00433E200077686514
:1008100072652064656C74613A20637572736F72DF
:100820003D25642C20776865656C3D25640A536519
:100830006520687474703A2F2F656E2E77696B6926
:1008400070656469612E6F72672F77696B692F4DD0
:100850006F7573655F6B6579730A000A092D204D0A
:100860006F7573656B6579202D0A4553432F713A77
:1008700009717569740A313A0964656C6179282ACD
:1008800031306D73290A323A09696E746572766186
:100890006C286D73290A333A096D61785F7370654E
:1008A00065640A343A0974696D655F746F5F6D61E0
:1008B000780A353A09776865656C5F6D61785F73B2
:1008C000706565640A363A09776865656C5F7469B6
:1008D0006D655F746F5F6D61780A0A703A097072B6
:1008E000696E742076616C7565730A643A09736584
:1008F000742064656661756C74730A75703A092BAF
:10090000310A646F776E3A092D310A706775703A53
:10091000092B31300A7067646F776E3A092D3130D8
:100920000A0A7370656564203D2064656C746120FB
:100930002A206D61785F7370656564202A202872B3
:100940006570656174202F2074696D655F746F5FD9
:100950006D6178290A003F004D3E2000433E200093
:100960004C25640A000A092D20436F6E736F6C6575
:10097000202D0A4553432F713A09717569740A6D28
:100980003A096D6F7573656B65790A000A092D2048
:100990004D61676963202D0A643A09646562756771
:1009A0000A783A096465627567206D6174726978C6
:1009B0000A6B3A096465627567206B6579626F61DD
:1009C00072640A6D3A096465627567206D6F7573AC
:1009D000650A763A0976657273696F6E0A733A0929
:1009E0007374617475730A633A09636F6E736F6C25
:1009F00065206D6F64650A302D343A096C61796544
:100A000072302D34284631302D4634290A50617514
:100A1000733A09626F6F746C6F616465720A653A4C
:100A200009656570726F6D0A6E3A094E4B524F0A36
:100A30007A3A09736C656570204C4544207465737F
:100A4000740A000A002575002E6E6B726F3A200042
:100A50000A002575002E737761705F6261636B73A6
:100A60006C6173685F6261636B73706163653A2088
:100A7000000A002575002E737761705F67726176DA
:100A8000655F6573633A20000A002575002E6E6F5E
:100A90005F6775693A20000A002575002E7377613B
:100AA000705F72616C745F726775693A20000A004A
:100AB0002575002E737761705F6C616C745F6C6775
:100AC00075693A20000A002575002E636170736C09
:100AD0006F636B5F746F5F636F6E74726F6C3A20DD
:100AE000000A002575002E737761705F636F6E7466
:100AF000726F6C5F636170736C6F636B3A20000A96
:100B00000025303258006B65796D61705F636F6EE0
:100B10006669672E7261773A20000A002575002EFB
:100B20006D6F7573653A20000A002575002E6B65A0
:100B300079626F6172643A20000A002575002E6D9B
:100B400061747269783A20000A002575002E656E7E
:100B500061626C653A20000A0025303258006465F5
:100B60006275675F636F6E6669672E7261773A20A0
:100B7000000A0025750064656661756C745F6C61C0
:100B80007965723A20003F004E4B524F3A206F6613
:100B9000660A004E4B524F3A206F6E0A0074696D20
:100BA00065725F636F756E743A202530346C580A35
:100BB000006B6579626F6172645F6E6B726F3A2071
:100BC00025580A006B6579626F6172645F69646CB5
:100BD000653A2025580A006B6579626F6172645F1F
:100BE00070726F746F636F6C3A2025580A00686FDB
:100BF00073745F6B6579626F6172645F6C65647357
:100C000028293A2025580A000A092D2053746174B6
:100C10007573202D0A004743433A20342E382E3274
:100C2000204156522D4C4942433A20312E382E3025
:100C3000204156525F415243483A20617672350A4C
:100C4000004F5054494F4E533A204C554641204294
:100C50004F4F544D41474943204D4F5553454B4508
:100C6000592045585452414B455920434F4E534FFC
:100C70004C4520434F4D4D414E44204E4B524F204A
:100C80003531320A004255494C443A2034663435F5
:100C90003533632D6469727479202830333A3430E7
:100CA0003A353320446563203138203230313529DC
:100CB0000A005649443A2030784645454428457252
:100CC000676F446F7820455A29205049443A2030B4
:100CD0007831333037284572676F446F7820455A32
:100CE00029205645523A203078303030310A0044BD
:100CF0004553433A20742E6D2E6B2E206B6579621E
:100D00006F617264206669726D7761726520666FCB
:100D100072204572676F646F780A000A092D2056A9
:100D2000657273696F6E202D0A000A6D6F757365A9
:100D30003A206F66660A000A6D6F7573653A206F18
:100D40006E0A000A6B6579626F6172643A206F66A1
:100D5000660A000A6B6579626F6172643A206F6E91
:100D60000A000A6D61747269783A206F66660A003B
:100D70000A6D61747269783A206F6E0A000A6465C0
:100D80006275673A206F6E0A000A64656275673A99
:100D9000206F66660A000A0A626F6F746C6F616486
:100DA00065722E2E2E2000433E20006565636F6E17
:100DB0006669673A0A00536C656570204C454420AB
:100DC000746573740A000000000000000000000059
:100DD00000010204060A0F17202C3A4A5D71879D14
:100DE000B3C7DAE9F5FCFFFCF5E9DAC7B39D877113
:100DF0005D4A3A2C20170F0A060402010000000089
:100E000000000000000011241FBECFEFDAE0DEBFBB
:100E1000CDBF04B603FE24C08091F9019091FA0180
:100E2000A091FB01B091FC018730904BA740B04BE3
:100E3000B9F41092F9011092FA011092FB0110928C
:100E4000FC0114BE84B7877F84BF88E10FB6F89495
:100E500080936000109260000FBEE0E0FFE3099510
:100E600011E0A0E0B1E0E4E5FBE502C005900D92E1
:100E7000AA33B107D9F711E0AAE3B1E001C01D928E
:100E8000A93FB107E1F70E946C0F0C94A82D0C94B8
:100E90000000FF93EF93E0913A01F0913B0130970E
:100EA00009F00995EF91FF910895FC01859180303B
:100EB00011F0EFDFFBCF0895FF27E0E230E247FFBC
:100EC0000CC0419597FF09C0EDE260957095809543
:100ED0009095611D711D811D911D27FF02C02195F7
:100EE00030E350E2AA27660F771F881F991FAA1FB9
:100EF000A41710F0A41B63955A95A9F7AA3008F01F
:100F0000A95FA05DAF93F39561157105810591050A
:100F100041F7ED3211F4EF93F395F21718F43F9384
:100F2000F395FBCF8F91B5DFFA95E1F70895E9913D
:100F3000F9918591803021F0853219F0AADFF9CF3F
:100F4000089520E0E89455915532C1F3503311F4DF
:100F5000689455915A3348F4505390F3220F022E5F
:100F6000220F220F200D250FF4CF0EF42195899129
:100F70009991533619F3533729F1533559F1BC017F
:100F800088279927E8945C3621F48991999168948F
:100F90005591543639F446EF7EF077FF0DC08FEF50
:100FA0009FEF0AC055374AE039F0583540E121F04B
:100FB000523642E009F00895FF93EF937DDFEF9101
:100FC000FF91B7CFFF93EF93FC0181918030B9F38C
:100FD00060DFFBCFFF93EF9368DFF1CFDF93CF9319
:100FE000CDB7DEB72596A3DFCF91DF9108956111CC
:100FF0000BC0FC018281882321F085EE0E943A1605
:1010000003C085EE0E94021780E090E008950895E5
:101010006091BC017091BD018091BE019091BF01B2
:101020000E94E72056985E9825982D9826982E982D
:1010300027982F98813019F0823021F00895259A51
:101040002D9A0895269A2E9A089588E098E0892B83
:1010500011F00C940808089556985E9825982D98DC
:1010600026982E9827982F988FEF90E090938900DC
:101070008093880090938B0080938A0090938D00DA
:1010800080938C00569A5E9A259A2D9A269A2E9ACB
:10109000279A2F9A2FE782E490E1215080409040D8
:1010A000E1F700C0000056985E9825982D98269884
:1010B0002E9827982F98089589EA8093800089E0D8
:1010C0008093810024982C983F988AB18F748AB9B4
:1010D0006E98479A8BB1806B8BB9769A0E942C08D8
:1010E00087E098E0892B11F00C940708089580E2BE
:1010F0008093000180913C0181110EC00E94C608BE
:1011000081E080933C012FEF83ED90E321508040FC
:101110009040E1F700C0000080E40E94CC0880937A
:10112000000181112EC00E94F608809300018111F8
:1011300028C00E94F60880930001811122C08FE32D
:101140000E94F6088093000181111BC00E94EE08E6
:1011500080E40E94CC0880930001811112C08CE0D1
:101160000E94F6088093000181110BC00E94F608CE
:1011700080930001811105C08FE30E94F6088093DF
:1011800000010E94EE088091000108951092B900BC
:101190008AE08093B800089594EA9093BC009091FF
:1011A000BC0097FFFCCF9091B900987F983021F058
:1011B000903111F081E008958093BB0084E8809322
:1011C000BC008091BC0087FFFCCF8091B900887F74
:1011D000883111F0803471F780E0089584E98093BC
:1011E000BC008091BC0084FDFCCF08958093BB00BF
:1011F00084E88093BC008091BC0087FFFCCF909175
:10120000B900987F81E0983209F480E0089584E87D
:101210008093BC008091BC0087FFFCCF8091BB0015
:10122000089580910001811115C080E40E94CC08CE
:101230008093000181110CC082E10E94F608809326
:101240000001811105C08FEF0E94F6088093000114
:101250000E94EE0884B1807F84B985B1807F85B912
:101260008AB1837F8AB98BB1837F8BB93E984698C8
:1012700008950E947708809300010E94110980B3AD
:101280008C7080BB81B3836F81BBECE4F1E0AEE393
:10129000B1E011921D9281E0EA35F807D1F78CE5B3
:1012A00098E0892B11F00C945C0808959F92AF92FE
:1012B000BF92CF92DF92EF92FF920F931F93CF9343
:1012C000DF93809100018823E1F080913D018F5FE1
:1012D00080933D01811115C082E493E00E9455077F
:1012E0000E94770880930001882329F088E293E028
:1012F0000E94550706C084E193E00E9455070E94B2
:101300002C080EE311E0C0E0D0E0BB24B39482E0EF
:10131000A82ECC24C394D12C25E0E22E23E0F22E7B
:10132000C73000F580910001811162C080E40E9405
:10133000CC0880930001811112C082E10E94F6085E
:101340008093000181110BC0C6010C2E01C0880FD3
:101350000A94EAF780950E94F608809300010E94A3
:10136000EE0846C0CA30A1F028F4C83059F0C930A0
:1013700061F005C0CC3089F070F0CD3089F0209A52
:10138000289810C0219A29980DC0229A2A980AC03C
:10139000239A2B9807C0529A01C0539A5B9802C0B7
:1013A0003E9A4698E0EAEA95F1F78FB1799985C0BF
:1013B00092E081708B25892B7C9B02C090E001C05C
:1013C00094E0892B7D9B02C090E001C098E0892BBE
:1013D0007E9B02C090E001C090E1892B9FB1909567
:1013E000991F9927991F9295990F907E892B10C06C
:1013F00080910001811176C080E40E94CC08809326
:101400000001882309F45BC0912C0E94EE08892D0D
:10141000F8019081981739F1808380910101882328
:1014200001F18091D70180FF04C08AE093E00E941F
:1014300055078091D70180FF0CC0809101011F9258
:101440008F93FF92EF920E94EE070F900F900F90F4
:101450000F908091D70180FF04C083E093E00E9449
:101460005507A09201010E94110921960F5F1F4F9D
:10147000CE30D10509F054CF809101018823B1F01D
:10148000815080930101882339F08FE99FE0019713
:10149000F1F700C000000AC0ACE4B1E0EEE3F1E017
:1014A00081918D9391E0EC34F907D1F785E298E0D2
:1014B000892BD1F00E94250817C090E07ACF83E1F4
:1014C0000E94F6088093000181119ECF81E40E9462
:1014D000CC0880930001811197CF0E940709982EB4
:1014E000909493CF80E094CF81E0DF91CF911F91D2
:1014F0000F91FF90EF90DF90CF90BF90AF909F90B3
:101500000895E82FF0E0E45BFE4F80810895CF92CC
:10151000DF92EF92FF920F931F93CF93DF938CEEA6
:1015200092E00E9455073CE4E32E31E0F32EC0E048
:10153000D0E047EEC42E42E0D42E0EED12E0DF9351
:10154000CF93DF92CF920E94EE0784EE92E00E944A
:101550005507F70181917F0190E00E944C219F93F4
:101560008F931F930F930E94EE078CED92E00E94E1
:10157000550721968DB79EB708960FB6F8949EBF73
:101580000FBE8DBFCE30D105D1F6DF91CF911F9127
:101590000F91FF90EF90DF90CF9008958B3B9105D6
:1015A00078F4883A910540F5853A9105D0F4843075
:1015B000910508F0B1C08130910509F4ADC06BC050
:1015C000803E910508F467C0883E910508F4A4C0E8
:1015D0009C01205F31092031310508F05CC0906525
:1015E0000895853A910509F459C0863A910509F4A0
:1015F00058C083E890E40895883A910509F454C0EE
:10160000893A910509F453C08A3A910509F452C008
:101610008B3A910509F451C08C3A910509F450C0F8
:101620008D3A910509F44FC0803B910509F44EC0F5
:101630008E3A910509F44DC08F3A910509F44CC0DA
:10164000813B910509F44BC0823B910509F44AC0E6
:10165000833B910509F449C0843B910509F448C0D6
:10166000853B910509F447C0863B910509F446C0C6
:10167000873B910509F445C0883B910509F444C0B6
:10168000893B910509F443C08A3B910509F042C0AA
:101690008AE296E4089580E090E0089581E890E47D
:1016A000089582E890E4089582EE94E4089589EE26
:1016B00094E408958AEE94E4089585EB94E4089503
:1016C00086EB94E4089587EB94E408958CEC94E41D
:1016D00008958DEC94E4089583E895E408958AE8EC
:1016E00095E4089582E995E4089584E995E40895E0
:1016F00081E296E4089583E296E4089584E296E414
:10170000089585E296E4089586E296E4089587E2D6
:1017100096E4089580E094E40895089596E0799F12
:10172000F001112494E5899FE00DF11D1124E60FCD
:10173000F11DEE0FFF1FEC51FF4F8591949108951D
:10174000880F991F805A9040FC01859194910895CB
:10175000880F991F80529F4FFC01859194910895A5
:1017600026E0729FF001112444E5849FE00DF11DF5
:101770001124E60FF11DEE0FFF1FEC51FF4F2591D5
:101780003491C9019A9581159F4110F4C9010895BA
:10179000C90190528115904128F4C9019F700E949F
:1017A000A80B0895C90190538115904120F4C901F7
:1017B0009927906C0895211580E5380769F40E94F7
:1017C000751A9FEF24E34CE0915020404040E1F730
:1017D00000C000000C940822213080E5380751F445
:1017E0008CE593E00E9455078091D701816080933A
:1017F000D7010895C90190558115904108F050C056
:10180000832F99278F70992781309105D9F4A901E9
:101810004370552702C0880F991F4A95E2F79C68CC
:10182000A90164E0440F551F6A95E1F744275370FE
:10183000842B952B73E0220F331F7A95E1F72076E6
:1018400033271DC08230910529F4922F8827816F9C
:10185000906A089583309105A9F4A9014370552732
:1018600081E090E002C0880F991F4A95E2F79C68DA
:1018700043E0220F331F4A95E1F7207E3770822B19
:10188000932B08950497F1F4A9014370552781E043
:1018900090E002C0880F991F4A95E2F79A68E8CF56
:1018A000C90190578115904120F4C9019F70906241
:1018B0000895C90190588115904120F4C9019F7085
:1018C000906A0895203E3105E0F4203C310558F53A
:1018D0002133310509F470C048F42932310509F487
:1018E00064C02A32310509F46EC074C02933310551
:1018F000F1F022383105D9F02533310509F44EC015
:1019000069C0233E310589F138F4203E3105C1F02C
:10191000223E3105E1F05EC0263E310569F1273EE9
:101920003105A9F157C0C9010E94A00B089580910B
:10193000EA0180FD02C081FF4DC080EE90E04BC007
:101940008091EA0180FFF9CF89E390E044C0809163
:10195000EA0182FF0EC08091EA0184FF03C080E0AB
:1019600090E039C083EE90E036C08091EA0182FFBA
:10197000F2CF82EE90E02FC08091EA0183FF0BC08E
:101980008091EA0184FDEBCF87EE90E024C0809146
:10199000EA0183FFF5CF86EE90E01DC08091EA0159
:1019A00085FF07C089E290E016C08091EA0185FFBB
:1019B000F9CF85E390E00FC08091EA0186FF07C070
:1019C0008AE290E008C08091EA0186FFF9CF81E3C6
:1019D00090E001C0C9010E94CE0A08950895809147
:1019E0006D0108959FB7F89410925C019FBF90918C
:1019F000F001943009F058C09091E9009F70209157
:101A0000EC0020FF02C020E801C020E0292B94E078
:101A10009093E9009091EB0090FF43C09091EE000D
:101A200097FF3FC090915A01992321F09091E800CF
:101A300095FF37C010925A0196E03091E80035FDCD
:101A400015C03091F001343061F53091EB0035FD77
:101A500028C0915021F481E080935A0122C0EFE91F
:101A6000FFE03197F1F700C00000E7CF8093F1006D
:101A70008091E80085FD0AC08091E80080FFFCCFDE
:101A80008091E8008E778093E80006C08FB7F894C5
:101A900091E090935C018FBF2F702093E90080E06C
:101AA00008952F702093E9008FEF0895CF93DF936F
:101AB00000D01F92CDB7DEB72091F001243019F588
:101AC00023E029839B838A832093E9008FEF909101
:101AD000E800815095FD06C095ED9A95F1F700005C
:101AE0008111F5CF8091E80085FF0DC040E050E006
:101AF00063E070E0CE0101960E9425108091E8001D
:101B00008E778093E8000F900F900F90DF91CF9128
:101B10000895CF93DF9300D01F92CDB7DEB7209109
:101B2000F001243021F522E029839B838A8383E01E
:101B30008093E9008FEF9091E800815095FD06C0F9
:101B400095ED9A95F1F700008111F5CF8091E800AD
:101B500085FF0DC040E050E063E070E0CE010196EB
:101B60000E9425108091E8008E778093E8000F9006
:101B70000F900F90DF91CF9108952091F0012430C4
:101B8000F1F422E02093E9002FEF3091E80021509A
:101B900035FD06C035ED3A95F1F700002111F5CF7E
:101BA0002091E80025FF0BC040E050E065E070E0C8
:101BB0000E9425108091E8008E778093E8000895B8
:101BC000CF93DF93EC018091F001843009F047C09E
:101BD00080910C018823E1F080910D018823C1F0F0
:101BE00085E08093E9008FEF9091E800815095FDAA
:101BF00006C095E19A95F1F700008111F5CF80912B
:101C0000E80085FF2CC040E050E060E170E017C0C4
:101C100081E08093E9008FEF9091E800815095FD7D
:101C200006C095ED9A95F1F700008111F5CF8091EE
:101C3000E80085FF14C040E050E068E070E0CE01AD
:101C40000E9425108091E8008E778093E80080E163
:101C5000FE01ADE5B1E001900D928A95E1F7DF91CB
:101C6000CF91089583E993E00E9455078091EF0199
:101C7000811109C00E94B7110E9414128091E200E4
:101C800084608093E20008958FE893E00E945507F6
:101C90001092EF0108958BE893E00C94550787E8C4
:101CA00093E00E9455070C94C92B83E893E00E94AF
:101CB00055070E94A3210E94CF2B0E94B0140C94C0
:101CC000EE0C80915B018F5F80935B0162E30E9469
:101CD0003D2D911135C010925B0180915C018823EC
:101CE00079F18091F001843049F58091E9008F709D
:101CF0009091EC0090FF02C090E801C090E0982B1A
:101D000084E08093E9008091EB0080FF14C0809113
:101D1000EE0087FF10C08091E80085FF03C010929D
:101D2000F100F9CF8091E80080FF05C08091E800C4
:101D30008E778093E8009F709093E90010925C0189
:101D4000089542E061EC81E00E94311142E061ECD3
:101D500082E00E94311142E061EC83E00E94311187
:101D600042E261EC84E00E94311142E161EC85E0E5
:101D70000C9431118091F201833009F455C030F494
:101D8000813071F0823009F48EC008958A3009F4F0
:101D90007AC08B3009F460C0893009F09CC020C043
:101DA0008091F101813A09F096C08091E800877F27
:101DB0008093E8008091F5019091F601892B21F044
:101DC00060E080E090E003C060E18DE591E070E0CC
:101DD0000E946E108091E8008B778093E800089550
:101DE0008091F101813209F076C08091F5019091E6
:101DF000F601009719F0049709F06DC08091E80092
:101E0000877F8093E8008091E80082FD05C0809183
:101E1000F0018111F8CF5FC08091F10080936D01D6
:101E20008091E8008B7753C08091F101813A09F0ED
:101E300052C08091F5019091F601892B09F04BC0B9
:101E40008091E800877F8093E8008091E80080FF20
:101E5000FCCF80910C0136C08091F1018132D9F51F
:101E60008091F5019091F601892BA9F58091E80008
:101E7000877F8093E8000E9466118091F301809330
:101E80000C010C94751A8091F101813221F5809139
:101E9000E800877F8093E8000E9466118091F4013A
:101EA00080936E0108958091F101813AA1F48091AF
:101EB000E800877F8093E8008091E80080FFFCCFF6
:101EC00080916E018093F1008091E8008E7780937D
:101ED000E8000C946611089584B7877F84BF88E179
:101EE0000FB6F89480936000109260000FBE90E0EF
:101EF00080E80FB6F89480936100909361000FBE64
:101F00000E9439150E94B7110E9414128091E200BC
:101F100084608093E20082EF9CE00E94E22078944B
:101F20000E948E140E943B1582E091E00E94AB1447
:101F30000E94B72B82E793E00E9455078091F00141
:101F4000853089F48EE693E00E9455070E94662151
:101F50008091EE01882391F30E948E21882371F3F2
:101F60000E940F10EBCF0E946915E8CF292F33276D
:101F700023303105A9F06CF42130310509F442C059
:101F80002230310509F043C08DE890E02BEC33E0BE
:101F900042C021323105C9F02232310519F137C072
:101FA00099278130910541F08230910541F0892BCC
:101FB00071F5E7ECF3E005C0EFEAF3E002C0E7E912
:101FC000F3E0849190E09F0126C0653000F5E62F94
:101FD000F0E0EE0FFF1FEB5DFE4F2081318189E0C5
:101FE00090E019C0653098F4E62FF0E0DF01AA0F09
:101FF000BB1FA55EBE4F2D913C91EA5EFE4F8081D6
:1020000090E009C082E190E028E534E004C080E07F
:1020100090E020E030E0FA0131832083089580E1F0
:1020200089BD82E189BD09B400FEFDCF8091D80051
:102030008F7D8093D8008091E00082608093E000E3
:102040008091E00081FDFCCF0895CF92DF92EF9266
:10205000FF920F931F93CF93DF937C018B01EA01D3
:102060000E948711811131C0209731F088819981B8
:10207000081B190BE80EF91EC12CD12C01151105F6
:1020800019F18091E80085FD14C08091E8008E77F9
:102090008093E800209741F0888199818C0D9D1DE7
:1020A0009983888385E011C00E948711882331F3CA
:1020B0000CC0F70181917F018093F100015011095B
:1020C000FFEFCF1ADF0ADACF80E0DF91CF911F91C7
:1020D0000F91FF90EF90DF90CF9008952091F7013E
:1020E0003091F8012617370748F06115710539F46A
:1020F0002091E8002E772093E80001C0B901FC018F
:1021000020E061157105B9F18091F001882309F48F
:1021100040C0853009F43FC08091E80083FD3DC098
:102120008091E80082FF06C08091E80082FF26C00F
:1021300080E008958091E80080FFE3CF2091F300D4
:102140008091F20090E0922B6115710551F088307A
:10215000910538F421912093F100615071090196A5
:10216000F3CF21E0089709F020E08091E8008E7716
:102170008093E800C6CF2111C7CFD6CF8091F00160
:10218000882339F0853039F08091E80083FFCCCF87
:1021900004C082E0089583E0089581E008952091CD
:1021A000F7013091F8012617370748F061157105DE
:1021B00039F42091E8002E772093E80001C0B9019E
:1021C000FC0120E061157105C1F18091F0018823C7
:1021D00009F441C0853009F440C08091E80083FDD6
:1021E0003EC08091E80082FF06C08091E80082FF37
:1021F00027C080E008958091E80080FFE3CF209120
:10220000F3008091F20090E0922B6115710559F076
:102210008830910540F424912093F100319661506B
:1022200071090196F2CF21E0089709F020E0809132
:10223000E8008E778093E800C5CF2111C6CFD5CFB7
:102240008091F001882339F0853039F08091E800E1
:1022500083FFCBCF04C082E0089583E0089581E03E
:102260000895982F973058F59093E900981739F012
:102270007091EC002091ED005091F00003C0242FEC
:10228000762F50E021FF19C03091EB003E7F309354
:10229000EB003091ED003D7F3093ED003091EB008D
:1022A00031603093EB007093EC002093ED0050937D
:1022B000F0002091EE0027FF07C09F5FD3CF8F7003
:1022C0008093E90081E0089580E008958091F10114
:1022D00087FD05C08091E80080FF0EC012C080918C
:1022E000E80082FD05C08091F0018111F8CF0895CA
:1022F0008091E8008B7708C08091F0018111EACFCE
:1023000008958091E8008E778093E8000895809189
:10231000E4009091E50045E62091EC0020FF21C00B
:102320002091E80020FD21C02091F001222389F0B6
:10233000253089F02091EB0025FD0FC02091E400AD
:102340003091E5002817390739F3415041F0C901B0
:10235000E3CF82E0089583E0089581E0089584E06A
:1023600008952091E80022FFDFCF80E008950E94C9
:1023700025120E942D12E0EEF0E0808181608083C2
:10238000E8EDF0E080818F77808319BCA7EDB0E0A5
:102390008C918E7F8C9380818F7E80831092EF0151
:1023A00008950F931F93CF93DF930E9425120E94ED
:1023B0002D12C8EDD0E088818F778883888180686E
:1023C000888388818F7D888319BC1092F0011092D8
:1023D000EC011092EE011092ED0100EE10E0F80118
:1023E00080818B7F808388818160888342E060E088
:1023F00080E00E943111E1EEF0E080818E7F8083E9
:10240000E2EEF0E08081816080838081886080835B
:10241000F80180818E7F8083888180618883DF914D
:10242000CF911F910F910895E8EDF0E080818F7EAC
:102430008083E7EDF0E080818160808384E082BF6B
:1024400081E08093EF010C94D111E8EDF0E0808100
:102450008E7F80831092E20008951092DA0010922D
:10246000E10008951F920F920FB60F9211242F933F
:102470003F934F935F936F937F938F939F93AF930C
:10248000BF93EF93FF938091E10082FF0BC0809197
:10249000E20082FF07C08091E1008B7F8093E10022
:1024A0000E94610E8091DA0080FF1FC08091D800E9
:1024B00080FF1BC08091DA008E7F8093DA008091CC
:1024C000D90080FF0DC080E189BD82E189BD09B4DA
:1024D00000FEFDCF81E08093F0010E94320E05C026
:1024E00019BC1092F0010E94440E8091E10080FF1F
:1024F00019C08091E20080FF15C08091E2008E7FBC
:102500008093E2008091E20080618093E2008091FC
:10251000D80080628093D80019BC85E08093F001D8
:102520000E944F0E8091E10084FF30C08091E20054
:1025300084FF2CC080E189BD82E189BD09B400FE21
:10254000FDCF8091D8008F7D8093D8008091E100ED
:102550008F7E8093E1008091E2008F7E8093E20085
:102560008091E20081608093E2008091EC018823F9
:1025700011F084E007C08091E30087FF02C083E090
:1025800001C081E08093F0010E94550E8091E1002E
:1025900083FF29C08091E20083FF25C08091E10084
:1025A000877F8093E10082E08093F0011092EC013C
:1025B0008091E1008E7F8093E1008091E2008E7F28
:1025C0008093E2008091E20080618093E20042E02B
:1025D00060E080E00E9431118091F000886080937B
:1025E000F0000E944B0EFF91EF91BF91AF919F9130
:1025F0008F917F916F915F914F913F912F910F90AC
:102600000FBE0F901F9018951F920F920FB60F924A
:1026100011242F933F934F935F936F937F938F93E7
:102620009F93AF93BF93CF93EF93FF93C091E90034
:10263000CF708091EC001092E9008091F000877FCC
:102640008093F00078940E9440131092E9008091EA
:10265000F00088608093F000C093E900FF91EF9153
:10266000CF91BF91AF919F918F917F916F915F912A
:102670004F913F912F910F900FBE0F901F90189583
:102680001F93CF93DF93CDB7DEB7AA970FB6F89419
:10269000DEBF0FBECDBFE1EFF1E08091F10081938D
:1026A00021E0E93FF207C9F70E94BA0E8091E800E5
:1026B00083FF1CC12091F1013091F201832F90E042
:1026C0008A30910508F012C1FC01EA5AFF4F0C94C0
:1026D0005D2D203881F0223809F008C18091F50184
:1026E0008F708093E9008091EB0085FB882780F94B
:1026F0001092E90006C08091ED019091EE019111D8
:1027000082609091E800977F9093E8008093F100B9
:102710001092F100C5C0822F8D7F09F0E7C02223FF
:1027200019F0223061F0E2C08091F301813009F0AC
:10273000DDC0333009F080E08093EE0128C0809145
:10274000F301811124C02091F5012F7009F4CEC04E
:102750002093E9008091EB0080FF19C08091EB008D
:10276000333011F4806211C080618093EB0081E00E
:1027700090E0022E01C0880F0A94EAF78093EA00E5
:102780001092EA008091EB0088608093EB00109239
:10279000E9008091E800877F86C02111A7C01091D1
:1027A000F3011F778091E3008078812B8093E30011
:1027B0008091E800877F8093E8000E9466118091F5
:1027C000E80080FFFCCF8091E30080688093E30005
:1027D000112311F083E001C082E08093F00186C0F4
:1027E0002058223008F082C08091F3019091F401CA
:1027F0008C3D23E0920779F583E08A838AE289831E
:102800004FB7F894DE01139620E03EE051E2E32F4B
:10281000F0E050935700E49120FF03C0E295EF7081
:102820003F5FEF708E2F90E0EA3010F0C79601C046
:10283000C0968D939D932F5F243149F74FBF8091B0
:10284000E800877F8093E8006AE270E0CE0101969D
:102850000E946E1014C0AE014F5F5F4F6091F50192
:102860000E94B60F009709F441C02091E800277F2D
:102870002093E800BC0189819A810E94CF10809149
:10288000E8008B778093E80031C0203879F580919B
:10289000E800877F8093E8008091EC018093F1004D
:1028A0008091E8008E778093E8000E9466111EC038
:1028B00021111CC09091F3019230C0F48091E80086
:1028C000877F8093E8009093EC010E9466118091CD
:1028D000EC01811104C08091E30087FF02C084E015
:1028E00001C081E08093F0010E94A10E8091E80078
:1028F00083FF0AC08091E800877F8093E800809181
:10290000EB0080628093EB00AA960FB6F894DEBFCE
:102910000FBECDBFDF91CF911F910895CF938091CE
:10292000F0018823B1F08091E9008F709091EC0064
:1029300090FF02C090E801C090E0C92FC82B109210
:10294000E9008091E80083FD0E944013CF70C0939E
:10295000E900CF91089590937401809373010895D5
:10296000E0917301F0917401309721F00190F081B2
:10297000E02D099480E00895FF920F931F93CF9369
:10298000DF938C01E0917301F0917401309799F11C
:102990000280F381E02D09958091D70182FF2BC041
:1029A00080FF04C08DE895E00E945507E80180E1B2
:1029B000F82E07E815E08091D70180FF0BC08881D1
:1029C0001F928F931F930F930E94EE070F900F900B
:1029D0000F900F90FA942196F110EDCF8091D701CE
:1029E00080FF09C085E895E0DF91CF911F910F919D
:1029F000FF900C945507DF91CF911F910F91FF909D
:102A00000895E0917301F0917401309721F00480F2
:102A1000F581E02D099408952091710130917201A2
:102A20008217930771F09093720180937101E09186
:102A30007301F0917401309721F00680F781E02D49
:102A40000994089520916F013091700182179307C6
:102A500071F09093700180936F01E0917301F09198
:102A60007401309721F00084F185E02D09940895D8
:102A700008950C9438150E94A5210E9439090C94E0
:102A80006B22CF93C82F8091D70182FF1EC080FF99
:102A900004C086EA95E00E9455078091D70180FF27
:102AA0000CC01F92CF9321EA35E03F932F930E94F1
:102AB000EE070F900F900F900F908091D70180FF3D
:102AC00004C08FE995E00E9455078C2FCF910C949C
:102AD000EE0CCF92DF92EF92FF920F931F93CF9362
:102AE000DF93CDB7DEB72B970FB6F894DEBF0FBEDE
:102AF000CDBF0E94560936E7E32E31E0F32E00E009
:102B000010E0C02E802F0E94810AF701D1907F0132
:102B1000D826B1F40F5F1F4F0E30110591F78FEFDC
:102B200089838A831B820E94AE218160782F9D83D6
:102B30008C8349815A816B818D810E940C1641C022
:102B40009091D70191FF04C08B870E94870A8B85E3
:102B500020E030E04D2D50E0922FBA01022E02C04D
:102B6000759567950A94E2F760FF25C02E83CF82A2
:102B7000EE24E394F12C02C0EE0CFF1C9A95E2F7D0
:102B800090E08E219F2121E0892B09F420E0288705
:102B90000E94AE218160782F9A8789874E815F815C
:102BA00068858A850E940C16F801EA58FE4F8081DC
:102BB0008E25808306C02F5F3F4F2630310561F69A
:102BC000A9CF0E94D925109175010E94B014181741
:102BD000A1F00E94B014809375012B960FB6F89463
:102BE000DEBF0FBECDBFDF91CF911F910F91FF9040
:102BF000EF90DF90CF900C9441152B960FB6F89480
:102C0000DEBF0FBECDBFDF91CF911F910F91FF901F
:102C1000EF90DF90CF900895CF93DF93CDB7DEB7DD
:102C20002B970FB6F894DEBF0FBECDBF4F835887EA
:102C300069877A878B87DE01119686E0FD01119204
:102C40008A95E9F785E0FE01379601900D928A9505
:102C5000E1F749815A816B817C818D819E810E943F
:102C6000411D2B960FB6F894DEBF0FBECDBFDF918E
:102C7000CF910895CF93C82F882309F4C1C082381B
:102C800059F40E94B01481FDBBC089E30E94E01F8B
:102C90000E94BC2089E30CC0833879F40E94B014F0
:102CA00080FDAEC083E50E94E01F0E94BC2083E54A
:102CB0000E943120CF910C94BC20843859F40E949A
:102CC000B01482FD9DC087E40E94E01F0E94BC20DA
:102CD00087E4EECF8CEF8C0F813A48F48C2F0E9462
:102CE000622A81118DC08C2F0E94E01FE3CF80E209
:102CF0008C0F883048F4C77081E001C0880FCA95F6
:102D0000EAF70E948320D6CF8BE58C0F833078F4CE
:102D1000C53A29F0C63A31F482E890E005C081E86E
:102D200090E002C083E890E0CF910C940C1588E508
:102D30008C0F833108F064C0C83A39F1C93A41F1C7
:102D4000CA3A49F1CB3A51F1CC3A59F1CD3A61F155
:102D5000C03B69F1CE3A71F1CF3A79F1C13B81F1D3
:102D6000C23B89F1C33B91F1C43B99F1C53BA1F151
:102D7000C63BA9F1C73BB1F1C83BB9F1C93BC1F1B1
:102D8000CA3BC9F58AE292E038C082EE90E035C0D5
:102D900089EE90E032C08AEE90E02FC085EB90E0A3
:102DA0002CC086EB90E029C087EB90E026C08CEC2D
:102DB00090E023C08DEC90E020C083E891E01DC03E
:102DC0008AE891E01AC082E991E017C084E991E0B5
:102DD00014C081E292E011C083E292E00EC084E26E
:102DE00092E00BC085E292E008C086E292E005C066
:102DF00087E292E002C080E090E0CF910C9422152F
:102E0000CF910895882309F44BC0823859F40E9469
:102E1000B01481FF45C089E30E94E01F0E94BC20DE
:102E200089E30CC0833871F40E94B01480FF38C06D
:102E300083E50E94E01F0E94BC2083E50E943120B0
:102E40000C94BC20843859F40E94B01482FF28C02E
:102E500087E40E94E01F0E94BC2087E4EFCF9CEF34
:102E6000980F913A58F390E2980F983050F4877089
:102E700091E001C0990F8A95EAF7892F0E94892075
:102E8000DFCF9BE5980F933020F480E090E00C9426
:102E90000C15885A833120F480E090E00C942215C0
:102EA0000895882321F00E9483200C94BC2008956B
:102EB000882321F00E9489200C94BC200895CF9291
:102EC000DF92EF92FF920F931F93CF93DF93CDB7D3
:102ED000DEB728970FB6F894DEBF0FBECDBF8C01CA
:102EE00085E0F801DE01119601900D928A95E1F7D7
:102EF000F80140813181F280258122952F708381F4
:102F00009481892B31F03F3F31F481E04F3F19F438
:102F100003C081E001C080E080FDC6C249833A83DE
:102F200089819A812F830E949E1F9E8388870E9499
:102F30009D1F0E94701E4E81E42FE295EF70F0E01D
:102F4000E05AFF4F2F8168850C945D2D842F807F80
:102F5000142F1F70882311F01295107FFF2059F055
:102F6000112309F456C2812F68870E9493200E9482
:102F7000BC2068854EC2862F0E940217112309F4D7
:102F800093C2812F0E94992028960FB6F894DEBF35
:102F90000FBECDBFDF91CF911F910F91FF90EF90AA
:102FA000DF90CF900C94BC20342F307F842F8F7013
:102FB000303211F08295807F662319F0613019F16B
:102FC0002CC0FF20B1F0222309F494C1213009F074
:102FD00091C128960FB6F894DEBF0FBECDBFDF912A
:102FE000CF911F910F91FF90EF90DF90CF900C94B5
:102FF000A320222319F0213009F456C28E830E94A7
:10300000A6208E818AC1FF2021F0263008F04CC214
:1030100071C1253008F048C280C1FF2021F0222371
:1030200009F468C1F6C1222309F477C106C2242F2E
:1030300026952695237030E02115310521F02130A9
:103040003105C9F031C2FF2021F0862F942F9370F3
:1030500002C080E090E028960FB6F894DEBF0FBE65
:10306000CDBFDF91CF911F910F91FF90EF90DF9037
:10307000CF900C940C15FF2021F0862F942F937085
:1030800002C080E090E028960FB6F894DEBF0FBE35
:10309000CDBFDF91CF911F910F91FF90EF90DF9007
:1030A000CF900C942215862FFF2019F00E945F24E8
:1030B00002C00E94C72428960FB6F894DEBF0FBE48
:1030C000CDBFDF91CF911F910F91FF90EF90DF90D7
:1030D000CF900C944C25842F837009F076C0F110AA
:1030E000E3C1262F229526952770220F220F862FC7
:1030F0008F70C82ED12CE12CF12C022E04C0CC0CE8
:10310000DD1CEE1CFF1C0A94D2F764FF10C06FE0B8
:1031100070E080E090E004C0660F771F881F991F61
:103120002A95D2F7609570958095909503C060E0E0
:1031300070E0CB01242F269526952370422F50E076
:1031400042305105D1F04330510559F16C297D29A8
:103150008E299F294130510541F128960FB6F894E8
:10316000DEBF0FBECDBFDF91CF911F910F91FF90BA
:10317000EF90DF90CF900C94951E6C297D298E29BD
:103180009F2928960FB6F894DEBF0FBECDBFDF9102
:10319000CF911F910F91FF90EF90DF90CF900C9403
:1031A000AF1E0E94951EC701B60128960FB6F8946F
:1031B000DEBF0FBECDBFDF91CF911F910F91FF906A
:1031C000EF90DF90CF900C947B1EFF2019F0842F9E
:1031D000817001C08695882309F466C1262F229547
:1031E00026952770220F220F862F8F70C82ED12C84
:1031F000E12CF12C022E04C0CC0CDD1CEE1CFF1CBB
:103200000A94D2F764FF10C06FE070E080E090E0B5
:1032100004C0660F771F881F991F2A95D2F7609503
:1032200070958095909503C060E070E0CB01242FED
:10323000269526952370422F50E042305105D1F05B
:103240004330510559F16C297D298E299F29413040
:10325000510541F128960FB6F894DEBF0FBECDBFE1
:10326000DF91CF911F910F91FF90EF90DF90CF9062
:103270000C94691F6C297D298E299F2928960FB6E9
:10328000F894DEBF0FBECDBFDF91CF911F910F919C
:10329000FF90EF90DF90CF900C94831F0E94691FE6
:1032A000C701B60128960FB6F894DEBF0FBECDBF9A
:1032B000DF91CF911F910F91FF90EF90DF90CF9012
:1032C0000C944F1F603FC9F118F4603E50F49CC04D
:1032D000623F09F461C008F44BC0633F09F470C059
:1032E00093C0162F1F70842F8F71FF2099F00E94BA
:1032F000E81E812F28960FB6F894DEBF0FBECDBF13
:10330000DF91CF911F910F91FF90EF90DF90CF90C1
:103310000C9451170E94091F812F28960FB6F8941C
:10332000DEBF0FBECDBFDF91CF911F910F91FF90F8
:10333000EF90DF90CF900C945817FF20A9F0253024
:1033400008F0B2C0842F8F7128960FB6F894DEBFB4
:103350000FBECDBFDF91CF911F910F91FF90EF90E6
:10336000DF90CF900C942E1F263008F09DC0EACF3E
:10337000FF20A1F0842F8F7128960FB6F894DEBF3E
:103380000FBECDBFDF91CF911F910F91FF90EF90B6
:10339000DF90CF900C94E81EFF2061F3842F8F7193
:1033A00028960FB6F894DEBF0FBECDBFDF91CF9148
:1033B0001F910F91FF90EF90DF90CF900C94091F19
:1033C000FF2091F0842F8F7128960FB6F894DEBFFE
:1033D0000FBECDBFDF91CF911F910F91FF90EF9066
:1033E000DF90CF900C94D31E28960FB6F894DEBFD2
:1033F0000FBECDBFDF91CF911F910F91FF90EF9046
:10340000DF90CF900C94C91EFF20A1F0222309F475
:10341000B1CF862F28960FB6F894DEBF0FBECDBF72
:10342000DF91CF911F910F91FF90EF90DF90CF90A0
:103430000C943A16222309F4B1CF862F28960FB6A2
:10344000F894DEBF0FBECDBFDF91CF911F910F91DA
:10345000FF90EF90DF90CF900C9402174F70C8014F
:103460000E94F70728960FB6F894DEBF0FBECDBFB7
:10347000DF91CF911F910F91FF90EF90DF90CF9050
:103480000C94EE1D4F70C80128960FB6F894DEBF5D
:103490000FBECDBFDF91CF911F910F91FF90EF90A5
:1034A000DF90CF900C948D0B28960FB6F894DEBF6A
:1034B0000FBECDBFDF91CF911F910F91FF90EF9085
:1034C000DF90CF9008950E94A0200E9475200E9456
:1034D000BC200E947A260E944C2580E090E00E9449
:1034E0000C1580E090E00C9422150E9490200C9422
:1034F000631A0E949E1F292F22952F7030E02C30D6
:1035000031054CF42A3031056CF422503109223057
:10351000310590F407C02C30310551F02F303105C2
:1035200039F00AC0803E10F0803F31F481E0089508
:1035300093FB882780F9089580E00895CF93DF9367
:1035400000D000D01F92CDB7DEB70F900F900F9034
:103550000F900F90DF91CF910895CF93DF9300D01C
:1035600000D000D0CDB7DEB726960FB6F894DEBFF8
:103570000FBECDBFDF91CF9108951F93CF93DF93FF
:10358000C091840116E080918501C81799F0D0E0C0
:103590001C9FF0011D9FF00D1124EA57FE4F408142
:1035A000518162817381848195810E94AD1A219637
:1035B000C770E9CFDF91CF911F9108954091B60177
:1035C0005091B7016091B8017091B9018091BA0131
:1035D0009091BB010C94AD1ACF938091BB01829561
:1035E0008F7009F05FC08091B801882309F45AC038
:1035F00020918401A09185016091B6017091B7017D
:103600008091B9019091BA0131E06F3F09F030E04B
:10361000B32FC6E02A1709F445C0009721F07F3F79
:1036200021F44B2F03C041E001C040E030E040FDF9
:1036300035C0C29FF001C39FF00D1124EA57FE4F21
:10364000418174132BC04081641328C04281411111
:1036500025C0438154814817590710F4415051093E
:10366000481B590B483C5105C8F48091BB018F7031
:1036700080618093BB0186E0829FF001839FF00D03
:103680001124E557FE4F80818F708061808386EB27
:1036900091E00E945F17CF910C94BD1A2F5F3F4FAE
:1036A0002770B8CFCF910895CF92DF92EF92FF921B
:1036B0000F931F93CF93DF93CDB7DEB762970FB60B
:1036C000F894DEBF0FBECDBF8C0185E0F801DE01AE
:1036D0001D9601900D928A95E1F7D8014C911196B3
:1036E0005C91119712966C9112971396ED90FC9045
:1036F00014977091B601E091B7012091B901309112
:10370000BA012115310531F0EF3F31F481E07F3FFF
:1037100019F403C081E001C080E0B82FB170CB2E56
:1037200080FD6CC1D090B801DD2009F4F5C0F091A6
:10373000BB01E216F30638F0C701821B930B883CED
:10374000910548F09BC0209530952E0D3F1D283CDB
:10375000310508F093C08F2F807F09F052C0E51328
:1037600014C0741312C0D62E61110FC0FF70F06127
:10377000F093BB010E94DE1A86EB91E00E945F1776
:103780008091BB01F80185836CC1EF2831F05F3F68
:1037900031F481E04F3F19F403C081E001C080E0C3
:1037A00080FD03C081E0862701C080E0F82FF17022
:1037B000FF2E80FF1CC0809184012091850136E09E
:1037C000821709F428C190E0389FF001399FF00D6D
:1037D0001124EA57FE4F7181571306C070814713B9
:1037E00003C07281671303C001968770E9CFD62E9C
:1037F000662309F436C18091BB0181608093BB01CF
:1038000053C0E51308C0741306C0611104C0D80189
:103810001596FC93AEC04D875E878D859E856A8B1D
:103820000E94791A6A89882329F1D62E662311F11C
:103830002091BB01822F82958F7090E002970CF44B
:1038400060C08091B6019091B70198878F831986E7
:10385000FB86EA862C87CE01079651C0E51731F129
:103860004D875E878D859E856A8B0E94791A6A894D
:1038700081112EC0C8010E945F17A4C08F2F807FC6
:1038800069F77E2DF98AE88A89890E949E1A86EB5B
:1038900091E00E945F17E6EBF1E086E0DF011D9208
:1038A0008A95E9F70E94DE1AD12CDBC07413D8CFB9
:1038B0006111D6CFD8011596FC93C8010E945F17FD
:1038C000E6EBF1E086E0DF011D928A95E9F7C9C0D9
:1038D000D62E662379F22091BB01822F82958F70BC
:1038E00090E0029774F08091B6019091B7019A83AD
:1038F00089831B82FD82EC822E83CE0101960E9479
:103900005F1786E0F801A6EBB1E001900D928A9571
:10391000E1F70E94EC1A6FC0E216F30628F0C70127
:10392000821B930B9C0104C0209530952E0D3F1DEA
:10393000283C310508F052C0D62E662309F49ACFF0
:10394000E5132CC074132AC08091BB0180FD1DC0FB
:10395000982F92959F70C9F0D80115968C93159762
:103960009F3039F09F5F9295907F8F70892B1596CD
:103970008C93C8010E945F1786E0F801A6EBB1E0C6
:1039800001900D928A95E1F736C086E0F801A6EB2A
:10399000B1E001900D928A95E1F763C04D875E8793
:1039A0008D859E850E94791A882379F086E0F8013A
:1039B000A6EBB1E001900D928A95E1F70E94EC1A16
:1039C0000E94DE1ADD24D3944CC08091BB0181603B
:1039D0008093BB01C8010E945F1743C07E2DF98A06
:1039E000E88A89890E949E1AE6EBF1E086E0DF0111
:1039F0001D928A95E9F70E94DE1A33C0662309F406
:103A000039CF4D875E878D859E850E94791A8823E0
:103A100009F430CFCBCF4D875E878D859E850E9480
:103A20009E1F292F22952F7030E0223031052CF473
:103A30009F7041F0811106C00CC0243031052CF478
:103A40009F7049F4805E883020F0C8010E945F17A3
:103A5000CF2CDC2C06C0D80115969C91907F91F755
:103A6000F8CF8D2D62960FB6F894DEBF0FBECDBF96
:103A7000DF91CF911F910F91FF90EF90DF90CF904A
:103A800008951F93CF93DF93CDB7DEB72C970FB672
:103A9000F894DEBF0FBECDBF4F83588769877A8702
:103AA0008B879C87CE0107960E94541B8823C1F008
:103AB0002F8138858A859B85892B31F03F3F11F016
:103AC00080E003C02F3FE1F781E0811147C04F81C3
:103AD000588569857A858B859C850E94AD1A3EC084
:103AE00086E0FE013796DE01119601900D928A95CF
:103AF000E1F7FF81E8854A855B854115510531F085
:103B0000EF3F31F481E0FF3F19F403C081E001C0D1
:103B100080E080FD23C02091850130E0C90101963D
:103B2000877099276091840170E086179707F1F1FB
:103B3000F983EA835D834C8396E0929FD001939F43
:103B4000B00D1124AA57BE4FFE01319601900D927F
:103B50009A95E1F7809385010E94BD1A16E0809145
:103B6000840190918501891779F1189FC001112472
:103B70008A579E4F0E94541B882331F1E0918401A3
:103B80001E9FF0011124EA57FE4F4081518162814E
:103B90007381848195810E94AD1A8091840190E0A7
:103BA00001968770992780938401D9CF0E94751A56
:103BB0001092850110928401E6EBF1E086E0DF01CE
:103BC0001D928A95E9F7CACF2C960FB6F894DEBFFE
:103BD0000FBECDBFDF91CF911F910895EF92FF925D
:103BE0000F931F93CF93DF939C01009709F471C04B
:103BF000F12CEE24E394E9012196F90184918437B4
:103C000040F4843008F056C0813081F0823021F1D8
:103C100060C0853709F449C0C0F19CE7980F903720
:103C200008F057C08F770E94021746C089010E5FC7
:103C30001F4FFE01849190E2980F983050F48770E6
:103C4000FE2D01C0FF0F8A95EAF78F2F0E94932067
:103C500015C00E943A1614C089010E5F1F4FFE0165
:103C6000849190E2980F983068F48770FE2D01C01F
:103C7000FF0F8A95EAF78F2F0E9499200E94BC209F
:103C8000E8011AC00E940217FBCF2E5F3F4FFE01D2
:103C9000C491CC2341F08FE99FE00197F1F700C078
:103CA0000000C150F6CFE90107C0FE01F490E90120
:103CB000229602C00E943A168F2D882341F0EFE928
:103CC000FFE03197F1F700C000008150F6CF9E0170
:103CD00092CFDF91CF911F910F91FF90EF900895B8
:103CE00008956093C0017093C1018093C2019093C5
:103CF000C3010C94631A0F931F930091C00110919C
:103D0000C1012091C2013091C301062B172B282B32
:103D1000392B0093C0011093C1012093C20130934D
:103D2000C3011F910F910C94631A0F931F9300917D
:103D3000C0011091C1012091C2013091C30106233D
:103D40001723282339230093C0011093C101209326
:103D5000C2013093C3011F910F910C94631A0F930A
:103D60001F930091C0011091C1012091C2013091B7
:103D7000C30106271727282739270093C00110936E
:103D8000C1012093C2013093C3011F910F910C9484
:103D9000631A1092BC011092BD011092BE011092E4
:103DA000BF010C94631A41E050E060E070E004C091
:103DB000440F551F661F771F8A95D2F74093BC01A9
:103DC0005093BD016093BE017093BF010C94631AC0
:103DD00041E050E060E070E004C0440F551F661FF2
:103DE000771F8A95D2F78091BC019091BD01A09177
:103DF000BE01B091BF01842B952BA62BB72B8093CE
:103E0000BC019093BD01A093BE01B093BF010C947F
:103E1000631A41E050E060E070E004C0440F551FB9
:103E2000661F771F8A95D2F74095509560957095DB
:103E30008091BC019091BD01A091BE01B091BF01E4
:103E400084239523A623B7238093BC019093BD01BF
:103E5000A093BE01B093BF010C94631A41E050E0FF
:103E600060E070E004C0440F551F661F771F8A95FD
:103E7000D2F78091BC019091BD01A091BE01B0919B
:103E8000BF0184279527A627B7278093BC0190936D
:103E9000BD01A093BE01B093BF010C94631A0F93B0
:103EA0001F930091BC011091BD012091BE01309182
:103EB000BF01062B172B282B392B0093BC01109325
:103EC000BD012093BE013093BF011F910F910C944F
:103ED000631A0F931F930091BC011091BD012091B3
:103EE000BE013091BF0106231723282339230093F5
:103EF000BC011093BD012093BE013093BF011F91FF
:103F00000F910C94631A0F931F930091BC011091B1
:103F1000BD012091BE013091BF0106271727282738
:103F200039270093BC011093BD012093BE0130934B
:103F3000BF011F910F910C94631A0895CF92DF92E5
:103F4000EF92FF920F931F93CF93DF93EC01C090FA
:103F5000C001D090C101E090C201F090C3018091F6
:103F6000BC019091BD01A091BE01B091BF01C82AD2
:103F7000D92AEA2AFB2A0FE110E0B701A601002E98
:103F800004C076956795579547950A94D2F740FFF8
:103F900007C0BE01802F0E94B00B8130910539F41B
:103FA0000150110950F7BE0180E00E94B00BDF9173
:103FB000CF911F910F91FF90EF90DF90CF900895D8
:103FC00090910C01992361F190910D01992341F198
:103FD000982F9695969596959F3088F4E0910E01CE
:103FE000F0910F01E90FF11D877021E030E001C071
:103FF000220F8A95EAF78181822B8183089590911F
:10400000D70190FF2DC01F928F9387ED95E09F936E
:104010008F930E94EE070F900F900F900F900895CE
:1040200040910E0150910F0120E030E09FEFFA0126
:10403000E20FF31F6281681799F09F3F19F4611135
:1040400001C0922F2F5F3F4F2E30310581F79F3FE8
:1040500039F0FA01E90FF11D97FDFA958283089571
:10406000089590910C01992369F190910D01992384
:1040700049F1982F9695969596959F3090F4E091FA
:104080000E01F0910F01E90FF11D877021E030E082
:1040900001C0220F8A95EAF7209581812823218388
:1040A00008959091D70190FF1FC01F928F9389EBC5
:1040B00095E09F938F930E94EE070F900F900F90C3
:1040C0000F90089540910E0150910F0120E030E0D3
:1040D000FA01E20FF31F9281981301C012822F5F41
:1040E0003F4F2E303105A1F7089581E090E0E09137
:1040F0000E01F0910F01E80FF91F10820196803137
:104100009105A9F708959091D601982B9093D60127
:10411000089580959091D60198239093D6010895A3
:104120001092D60108959091D501982B9093D501C6
:10413000089580959091D50198239093D501089585
:104140001092D50108958093C40108951092C4017E
:10415000089540910E0150910F0120E030E080E081
:10416000FA01E20FF31F918191118F5F2F5F3F4F93
:104170002F303105A9F70895E0910E01F0910F015C
:104180008091D6018083E0910E01F0910F01808132
:104190009091D501892B80839091C401992361F07E
:1041A000E0910E01F0910F018081892B80830E94A4
:1041B000A92081111092C40180910E0190910F01EC
:1041C0000C94BC1490933B0180933A010895CF92D4
:1041D000DF92EF92FF920F931F936C01EE24FF2466
:1041E000C114D104E104F10421F46B017C0180E0ED
:1041F00001C080E133272F2D1E2D0D2D0115110536
:104200002105310519F0885F680179019701860160
:10421000A4E03695279517950795AA95D1F701152E
:1042200011052105310519F08C5F680179019701AD
:104230008601F2E03695279517950795FA95D1F7FF
:10424000011511052105310519F08E5F680179010D
:10425000B701A6017695679557954795452B462B4F
:10426000472B09F08F5F1F910F91FF90EF90DF9028
:10427000CF9008958295982F9C7C96959695837300
:1042800044E0849F90011124922B892F8A7A86958D
:104290009575990F892B08951F93CF93DF931F92E4
:1042A000CDB7DEB799830E943A21182F9981892FC3
:1042B0000E943A21212F30E0322F2227A901482BDA
:1042C000CA010F90DF91CF911F9108958091F00165
:1042D000843009F11092D80120E488E190E00FB613
:1042E000F894A895809360000FBE2093600083B778
:1042F000817F846083BF83B7816083BF7894889512
:1043000083B78E7F83BF88E10FB6F89480936000F7
:10431000109260000FBE089508950895CF930E94F3
:104320008C210E9456090E948D21C0E08C2F0E9492
:10433000810A811105C0CF5FCE30C1F780E001C096
:1043400081E0CF9108950C94751A82E084BD93E0CA
:1043500095BD9AEF97BD80936E0008952FB7F8949E
:104360008091D9019091DA01A091DB01B091DC013B
:104370002FBF0895CF92DF92EF92FF920F931F937A
:104380002FB7F8944091D9015091DA016091DB0187
:104390007091DC012FBF6A017B01EE24FF248C01A8
:1043A00020E030E0C016D106E206F30610F44150DA
:1043B0005109481B590BCA011F910F91FF90EF90B3
:1043C000DF90CF9008951F920F920FB60F92112495
:1043D0008F939F93AF93BF938091D9019091DA010E
:1043E000A091DB01B091DC010196A11DB11D80936C
:1043F000D9019093DA01A093DB01B093DC01BF9166
:10440000AF919F918F910F900FBE0F901F901895B5
:104410000E94B711F8942FEF87EA91E6215080406F
:104420009040E1F700C0000087E090EBDC01809352
:10443000F9019093FA01A093FB01B093FC012CE0E9
:1044400088E190E00FB6F894A895809360000FBEC5
:1044500020936000FFCFEF92FF920F931F93CF93B3
:10446000DF93E82EF12C8F2D0E94810AC0E0D0E06E
:10447000082F10E098010C2E02C0359527950A945C
:10448000E2F720FD05C02196C630D10599F709C095
:104490006C2F7F2D80E00E948E0BE812F4CF81E01C
:1044A00005C0F3948EE0F812DECF80E0DF91CF916B
:1044B0001F910F91FF90EF900895CF93C82F8CE23A
:1044C0000E942B22882321F08C2FCF910C942B2239
:1044D00080E0CF910895CF930E94B823811102C04C
:1044E0000E949E238CEF95E00E945507C5E6C150BF
:1044F00049F00E9456098FE39CE90197F1F700C04B
:104500000000F5CF85EF95E00E94550789E20E94F3
:104510005D22811111C18AE20E945D2281110E94F7
:104520009E2385E00E945D2281110E9408220E9444
:10453000C3238093D70187E00E945D22882399F1ED
:104540008BE10E945D22882351F09091D70191FB6D
:10455000882780F921E0822780FB91F922C08EE034
:104560000E945D22882351F09091D70192FB882709
:1045700080F921E0822780FB92F913C080E10E943C
:104580005D229091D701882341F093FB882780F921
:1045900021E0822780FB93F904C0892F809580FB5E
:1045A00090F99093D7018091D7010E94C7230E9470
:1045B000D5238093EA0180EE0E945D22882341F09A
:1045C0008091EA01982F909590FB80F98093EA0101
:1045D00089E30E945D22882359F09091EA0191FBC2
:1045E000882780F921E0822780FB91F99093EA01E6
:1045F00082EE0E945D22882359F09091EA0192FB9D
:10460000882780F921E0822780FB92F99093EA01C4
:1046100086EE0E945D22882359F09091EA0193FB77
:10462000882780F921E0822780FB93F99093EA01A3
:1046300083EE0E945D22882359F09091EA0194FB59
:10464000882780F921E0822780FB94F99093EA0182
:1046500085E30E945D22882359F09091EA0195FB41
:10466000882780F921E0822780FB95F99093EA0161
:1046700081E30E945D22882359F09091EA0196FB24
:10468000882780F921E0822780FB96F99093EA0140
:1046900081E10E945D22882359F09091EA0197FB05
:1046A000882780F921E0822780FB97F99093EA011F
:1046B0008091EA010E94D9238091EA0187FB882733
:1046C00080F980930D0187E20E945D22C82F8EE160
:1046D0000E945D228111C2608FE10E945D228111E2
:1046E000C46080E20E945D228111C86081E20E9464
:1046F0005D228111C06182E20E945D228111C0624F
:1047000083E20E945D228111C06484E20E945D22E6
:10471000882311F0C06802C0CC2329F08C2F0E949E
:10472000D0236C2F03C00E94CC23682F70E080E060
:1047300090E0CF910C94711ECF9108956DEE7EEFB5
:1047400080E090E00E94932D60E082E090E00E9483
:10475000852D60E083E090E00E94852D60E084E09C
:1047600090E00E94852D60E085E090E00C94852D1E
:1047700080E090E00E947F2D21E08D3E9E4F09F069
:1047800020E0822F089582E090E00C94772D682F2E
:1047900082E090E00C94852D83E090E00C94772DDE
:1047A000682F83E090E00C94852D84E090E00C94D9
:1047B000772D682F84E090E00C94852D8091DF01A7
:1047C00080FF0BC06091130185E0689FB001112448
:1047D00075956795759567952AC081FF09C06091A9
:1047E000130185E0689FB0011124759567951FC07E
:1047F00082FF07C06091130185E0689FB00111241A
:1048000016C04091E0014423C9F06091120146179F
:1048100088F72091130185E0289F90011124429F81
:10482000C001439F900D112470E00E94492D603813
:10483000710540F46115710539F002C065E070E062
:10484000862F08958FE7089581E008958091DF0114
:1048500080FF08C06091110170E0759567957595AE
:10486000679521C081FF06C06091110170E07595C8
:10487000679519C082FF04C06091110170E010C0FB
:104880008091E0018823C1F0609110018617A0F7A4
:1048900090911101989FC001112470E00E94492D50
:1048A0006038710528F46115710521F0862F08958F
:1048B0008FE7089581E0089561E070E0F4CF803FD4
:1048C00021F40E94DE23819504C0813F29F40E94D7
:1048D000DE238093E3010895823F21F40E94DE23CA
:1048E000819504C0833F29F40E94DE238093E20176
:1048F0000895893F19F40E94262405C08A3F31F4A7
:104900000E94262481958093E40108958B3F21F431
:104910000E942624819504C08C3F29F40E942624FD
:104920008093E5010895843F21F48091E101816045
:1049300017C0853F21F48091E101826011C0863F5C
:1049400021F48091E10184600BC0873F21F48091C4
:10495000E101886005C0883F31F48091E101806108
:104960008093E10108958D3F21F48091DF01816002
:104970000BC08E3F21F48091DF01826005C08F3F24
:1049800029F48091DF0184608093DF010895803FE6
:1049900039F48091E30187FF6CC01092E30169C094
:1049A000813F29F48091E3011816BCF362C0909115
:1049B000E201823F29F497FF5CC01092E20159C0E6
:1049C000833F19F41916CCF354C0893F41F4809108
:1049D000E40118160CF04DC01092E4014AC08A3F61
:1049E00029F48091E40187FF44C0F6CF8B3F39F46E
:1049F0008091E50187FF3DC01092E5013AC08C3FF0
:104A000029F48091E5011816BCF333C0843F21F4EA
:104A10008091E1018E7F17C0853F21F48091E101F3
:104A20008D7F11C0863F21F48091E1018B7F0BC007
:104A3000873F21F48091E101877F05C0883F31F4F1
:104A40008091E1018F7E8093E10113C08D3F21F4BD
:104A50008091DF018E7F0BC08E3F21F48091DF01BA
:104A60008D7F05C08F3F29F48091DF018B7F80937C
:104A7000DF018091E20181110EC08091E30181117B
:104A80000AC08091E401811106C08091E501811185
:104A900002C01092E00108958091D70183FF7EC08B
:104AA00088E396E00E9455078091E1011F928F9361
:104AB00083E396E09F938F930E94EE0781E396E055
:104AC0000E9455072091E201822F992787FD90953A
:104AD0009F932F938EE296E09F938F930E94EE0711
:104AE0008CE296E00E9455072091E301822F9927DE
:104AF00087FD90959F932F9389E296E09F938F93E4
:104B00000E94EE0787E296E00E9455072091E4019B
:104B1000822F992787FD90959F932F9384E296E0AB
:104B20009F938F930E94EE0782E296E00E945507C2
:104B30002091E501822F992787FD90959F932F93D0
:104B40008FE196E09F938F930E94EE078CE196E0B1
:104B50000E9455078091E0011F928F9389E196E0B2
:104B60009F938F930E94EE0787E196E00E9455077E
:104B70008091DF011F928F9384E196E09F938F9342
:104B80000E94EE0781E196E00E9455078DB79EB71F
:104B90004C960FB6F8949EBF0FBE8DBF81EE91E08C
:104BA0000E9401150E94AE219093DE018093DD01E9
:104BB00008951F93CF93DF938091DD019091DE01E3
:104BC0000E94BA214091E001442321F02091140178
:104BD00030E006C0209115015AE0259F9001112474
:104BE0008217930708F482C08091E2011091E301DB
:104BF000D091E401C091E501811107C0111105C0F8
:104C0000D11103C0CC2309F471C04F3F19F04F5F9D
:104C10004093E001181624F40E94DE238093E20101
:104C20008091E20187FF05C00E94DE238195809379
:104C3000E201111624F40E94DE238093E3018091A7
:104C4000E30187FF05C00E94DE2381958093E30185
:104C50006091E201662339F11091E301112319F10A
:104C6000772767FD7095872F972F0E944E2C23E39F
:104C700033E343E35FE30E94B22C0E941B2C60935A
:104C8000E201612F772767FD7095872F972F0E948C
:104C90004E2C23E333E343E35FE30E94B22C0E94F4
:104CA0001B2C6093E3011D1624F40E94262480939C
:104CB000E4018091E40187FF05C00E9426248195CC
:104CC0008093E4011C1624F40E9426248093E501BD
:104CD0008091E50187FF05C00E942624819580937D
:104CE000E501DF91CF911F910C944C25DF91CF917D
:104CF0001F910895E1EEF1E085E0DF011D928A95B4
:104D0000E9F71092E0011092DF0108958BE598E039
:104D10000E9455071F9281E08F931F9285E08F9329
:104D20008DE098E09F938F930E94EE070F900F9075
:104D30000F900F900F900F9008958330E9F128F4B1
:104D4000813061F0823009F10895853009F462C044
:104D500008F449C0863009F474C008952091150103
:104D6000862F90E0820F911D8F3F910520F4620FF6
:104D70006093150103C08FEF809315018091150199
:104D80001F928F9386E497E072C020911401862FC2
:104D900090E0820F911D8F3F910520F4620F609388
:104DA000140103C08FEF80931401809114011F92AE
:104DB0008F9384E397E05BC020911301862F90E0EE
:104DC000820F911D8F3F910520F4620F60931301B4
:104DD00003C08FEF80931301809113011F928F9373
:104DE00081E297E044C020911201862F90E0820F6B
:104DF000911D8F3F910520F4620F6093120103C053
:104E00008FEF80931201809112011F928F938CE09B
:104E100097E02DC020911101862F90E0820F911D07
:104E20008F3F910520F4620F6093110103C08FEF53
:104E300080931101809111011F928F9383EF96E06F
:104E400016C020911001862F90E0820F911D8F3F98
:104E5000910520F4620F6093100103C08FEF8093DF
:104E60001001809110011F928F9388ED96E09F931F
:104E70008F930E94EE070F900F900F900F90089560
:104E8000833081F128F4813059F08230D1F00895D7
:104E9000853009F449C0B8F1863009F456C0089548
:104EA00080911501681720F4861B8093150102C0BC
:104EB00010921501809115011F928F9389EC96E055
:104EC00054C080911401681720F4861B809314014C
:104ED00002C010921401809114011F928F9387EBEE
:104EE00096E043C080911301681720F4861B8093DD
:104EF000130102C010921301809113011F928F932E
:104F000084EA96E032C080911201681720F4861B73
:104F10008093120102C010921201809112011F921F
:104F20008F938FE896E021C080911101681720F4DB
:104F3000861B8093110102C0109211018091110112
:104F40001F928F9386E796E010C08091100168173A
:104F500020F4861B8093100102C0109210018091F2
:104F600010011F928F938BE596E09F938F930E9481
:104F7000EE070F900F900F900F900895CF93C82FCA
:104F80001F928F9320E639E03F932F930E94EE0704
:104F900061E070E080E090E004C0660F771F881F3A
:104FA000991FCA95D2F70E94711E0F900F900F9013
:104FB0000F90CF910C94751ACF938D3109F465C081
:104FC000B0F58E3009F4CBC100F5873009F49BC1F0
:104FD000A8F4863009F06AC28091D701817F8E7F64
:104FE0008093D70185E699E00E94550787EA9DE006
:104FF0000E94550781E08093E70180C1883009F461
:105000004FC08B3009F47CC151C2863109F4EDC127
:1050100038F4803109F4B6C1813109F42DC246C299
:10502000893109F4CBC18B3109F486C13FC2853384
:1050300009F434C248F4873209F430C208F430C2AB
:10504000893209F42BC232C2833438F48A3308F02F
:1050500029C2883309F454C129C2833409F41EC219
:10506000883409F023C20E94751A86E99DE00E94E7
:1050700055079FEF23ED80E3915020408040E1F7FA
:1050800000C000000E94082239C186EB9DE00E940A
:1050900055070E94D52B0E94B0140E94EE0C2EC121
:1050A0008BEA9DE00E94550786E79BE00E9455072A
:1050B0000E94CC231F928F9383E79BE09F938F9353
:1050C0000E94EE0781E79BE00E9455070E94C323E0
:1050D000C82F8EE59BE00E9455071F92CF9329E5CC
:1050E0003BE03F932F930E94EE0787E59BE00E94F1
:1050F00055078DE49BE00E9455078C2F81701F920D
:105100008F932AE43BE03F932F930E94EE0788E4BD
:105110009BE00E9455078EE39BE00E945507C1FB70
:10512000882780F91F928F932BE33BE03F932F93C7
:105130000E94EE0789E39BE00E9455078DE29BE009
:105140000E945507C2FB882780F91F928F932AE29D
:105150003BE03F932F930E94EE0788E29BE00E9482
:1051600055078FE19BE00E945507C3FBCC27C0F990
:105170001F92CF938CE19BE09F938F930E94EE0749
:105180008AE19BE00E9455070E94D523C82F86E044
:105190009BE00E9455071F92CF9321E03BE03F9395
:1051A0002F930E94EE078FEF9AE00E94550786EE3C
:1051B0009AE00E9455078C2F81701F928F9323EEE7
:1051C0003AE03F932F930E94EE078DB79EB78096EB
:1051D0000FB6F8949EBF0FBE8DBF81EE9AE00E947D
:1051E00055078AEC9AE00E945507C1FB882780F991
:1051F0001F928F9327EC3AE03F932F930E94EE0784
:1052000085EC9AE00E94550783EB9AE00E945507CF
:10521000C2FB882780F91F928F9320EB3AE03F93DF
:105220002F930E94EE078EEA9AE00E9455078CE9C0
:105230009AE00E945507C3FB882780F91F928F933D
:1052400029E93AE03F932F930E94EE0787E99AE01D
:105250000E9455078DE89AE00E945507C4FB8827F5
:1052600080F91F928F932AE83AE03F932F930E9490
:10527000EE0788E89AE00E94550786E79AE00E94C8
:105280005507C5FB882780F91F928F9323E73AE0E3
:105290003F932F930E94EE0781E79AE00E94550703
:1052A00085E59AE00E945507C6FB882780F91F9282
:1052B0008F9322E53AE03F932F930E94EE0780E51B
:1052C0009AE00E94550788E49AE00E945507C7FBC0
:1052D000CC27C0F91F92CF9385E49AE09F938F93D8
:1052E0000E94EE0783E49AE00E9455078DB79EB7AF
:1052F0004C960FB6F8949EBF0FBE8DBFC1E0DBC0C9
:105300008CE899E058C08091D701C82FC17080FF08
:1053100009C089E89DE00E9455078091D701817FEF
:105320008E7F44C08DE79DE00E9455078091D70194
:1053300081608093D701E2CF8091D70181FBCC2798
:10534000C0F991E0C927C0FB81F98093D701CC2334
:1053500019F080E79DE025C082E69DE02CC0809199
:10536000D70182FBCC27C0F991E0C927C0FB82F9A5
:105370008093D701CC2319F083E59DE012C083E42C
:105380009DE019C08091D70183FBCC27C0F991E043
:10539000C927C0FB83F98093D701CC2351F087E361
:1053A0009DE00E9455078091D70181608093D701CD
:1053B00082C08AE29DE00E945507A0CF8BE19DE06C
:1053C0000E9455078FEE9CE00E94550782EB9CE0FF
:1053D0000E94550785E89CE00E94550781E49CE007
:1053E0000E94550786E19CE0E6CF88E09CE00E94A1
:1053F00055070E94B0141F928F938EEE9BE09F93EF
:105400008F930E94EE0780910C011F928F9387ED7E
:105410009BE09F938F930E94EE0780916E011F92F5
:105420008F9384EC9BE09F938F930E94EE07809173
:105430000D011F928F9381EB9BE09F938F930E94AE
:10544000EE078091D9019091DA01A091DB01B09132
:10545000DC01BF93AF939F938F938DE99BE09F9364
:105460008F930E94EE078DB79EB746960FB6F894BD
:105470009EBF0FBE8DBF42CF0E94751AC0910D0115
:1054800081E0C827C0930D01CC2329F083E99BE07C
:105490000E94550710C088E89BE08DCF80E003C0D4
:1054A0008D5101C089530E94BE2728CF86E89BE01A
:1054B0000E945507C0E08C2FCF91089580E0089599
:1054C00080E00895CF93C82F8091E701813081F06B
:1054D00020F0823009F44CC042C1A0910E01B0917D
:1054E0000F018C91813169F0823209F03AC109C013
:1054F000A0910E01B0910F018C91813111F0823297
:1055000049F48C2F0E945E2A81112FC08C2F0E949B
:10551000DC272CC08C2F0E94602A811126C0C43148
:10552000E1F070F4CB3081F0C031D1F40E948626D6
:1055300088E599E00E94550782E08093E70115C055
:10554000C93259F0C83361F485E699E00E945507E5
:105550008CE599E00E94550708C01092E70103C14D
:1055600086E599E00E945507FEC081E08170FDC08C
:10557000C43220F5CE3108F0C0C0CB3099F1C8F468
:10558000C73009F0D2C08AE08093150194E190936E
:10559000140193E0909313018093120188E08093AB
:1055A000110188E2809310018CEF97E00E9455076B
:1055B000BFC0C33149F1C431C1F0B7C0CB3409F425
:1055C000A9C028F4C93289F0C83361F0AEC0C13532
:1055D00009F49EC0C23509F499C0CE3409F0A5C0C3
:1055E0006AE09EC00E948626A3C08091E6018823BF
:1055F00019F01092E6019CC089E098E00E945507DE
:1056000081E08093E701B1C083EE97E00E945507E7
:1056100081ED97E00E945507809115011F928F93AD
:105620008EEC97E09F938F930E94EE078CEC97E0AF
:105630000E9455078AEB97E00E945507809114015C
:105640001F928F9387EB97E09F938F930E94EE07B3
:1056500085EB97E00E94550786EA97E00E94550780
:10566000809113011F928F9383EA97E09F938F930A
:105670000E94EE0781EA97E00E94550780E997E0D3
:105680000E945507809112011F928F938DE897E039
:105690009F938F930E94EE078BE897E00E94550737
:1056A00086E797E00E945507809111011F928F9322
:1056B00083E797E09F938F930E94EE0781E797E03F
:1056C0000E9455078AE597E00E94550780911001D6
:1056D0001F928F9387E597E09F938F930E94EE0729
:1056E00085E597E00E9455078DB79EB748960FB69F
:1056F000F8949EBF0FBE8DBF1BC0CE51EC2FF0E0C3
:10570000E15DFE4F80818093E60112C061E003C03D
:1057100061E006C06AE08091E6010E949D2608C013
:105720008091E6010E94402703C08AEF97E013C0F2
:105730008091E601882369F01F928F9384EF97E0B0
:105740009F938F930E94EE070F900F900F900F90F2
:1057500004C081EF97E00E94550781E006C01092D7
:10576000E70180E002C080E001CFCF910895E1E839
:10577000F0E08081886080838081816080838FB742
:10578000F89493E09093890090ED909388008FBFF8
:105790000895EFE6F0E08081826080830895EFE66F
:1057A000F0E080818D7F80830895EFE6F0E08081D6
:1057B00092E08927808308951F920F920FB60F926F
:1057C00011242F933F934F935F936F937F938F9306
:1057D0009F93AF93BF93EF93FF938091E8019091D4
:1057E000E90101969093E9018093E801811103C0DA
:1057F00082E00E94EE0CE091E901E695E695F0E08A
:10580000EA53F24FE4918091E8018E1303C080E0E7
:105810000E94EE0CFF91EF91BF91AF919F918F91FC
:105820007F916F915F914F913F912F910F900FBE9C
:105830000F901F90189504D06894B1118DC00895F1
:1058400070D088F09F5790F0B92F9927B751A0F0EA
:10585000D1F0660F771F881F991F1AF0BA95C9F704
:1058600012C0B13081F077D0B1E0089574C0672FD5
:10587000782F8827B85F39F0B93FCCF386957795B4
:105880006795B395D9F73EF490958095709561959D
:105890007F4F8F4F9F4F0895E89409C097FB3EF4C8
:1058A00090958095709561957F4F8F4F9F4F99236D
:1058B000A9F0F92F96E9BB279395F69587957795EB
:1058C0006795B795F111F8CFFAF4BB0F11F460FFAB
:1058D0001BC06F5F7F4F8F4F9F4F16C0882311F003
:1058E00096E911C0772321F09EE8872F762F05C017
:1058F000662371F096E8862F70E060E02AF09A95B2
:10590000660F771F881FDAF7880F9695879597F9A6
:10591000089557FD9058440F551F59F05F3F71F09F
:105920004795880F97FB991F61F09F3F79F0879506
:105930000895121613061406551FF2CF4695F1DF8F
:1059400008C0161617061806991FF1CF869571051F
:10595000610508940895E894BB2766277727CB0153
:1059600097F908950BD078C069D028F06ED018F060
:10597000952309F05AC05FC01124EECFCADFA0F30F
:10598000959FD1F3950F50E0551F629FF001729FD4
:10599000BB27F00DB11D639FAA27F00DB11DAA1FF3
:1059A000649F6627B00DA11D661F829F2227B00D40
:1059B000A11D621F739FB00DA11D621F839FA00DCB
:1059C000611D221F749F3327A00D611D231F849F1B
:1059D000600D211D822F762F6A2F11249F57504072
:1059E0008AF0E1F088234AF0EE0FFF1FBB1F661F0D
:1059F000771F881F91505040A9F79E3F510570F0C6
:105A000014C0AACF5F3FECF3983EDCF38695779500
:105A10006795B795F795E7959F5FC1F7FE2B880FC0
:105A2000911D9695879597F9089597F99F6780E856
:105A300070E060E008959FEF80EC089500240A94E0
:105A40001616170618060906089500240A94121659
:105A50001306140605060895092E0394000C11F48C
:105A6000882352F0BB0F40F4BF2B11F460FF04C039
:105A70006F5F7F4F8F4F9F4F0895991B79E004C050
:105A8000991F961708F0961B881F7A95C9F780957D
:105A9000089597FB072E16F4009407D077FD09D0E0
:105AA0000E94632D07FC05D03EF4909581959F4F91
:105AB0000895709561957F4F0895EE0FFF1F059033
:105AC000F491E02D0994AA1BBB1B51E107C0AA1F4A
:105AD000BB1FA617B70710F0A61BB70B881F991F8F
:105AE0005A95A9F780959095BC01CD010895F99933
:105AF000FECF92BD81BDF89A992780B50895A8E19F
:105B0000B0E042E050E00C949A2D262FF999FECF98
:105B10001FBA92BD81BD20BD0FB6F894FA9AF99ACA
:105B20000FBE019608950E94852D272F0C94862D77
:105B3000DC01CB01FC01F999FECF06C0F2BDE1BD4D
:105B4000F89A319600B40D9241505040B8F708953C
:045B5000F894FFCFF7
:105B54002002EF0CE00DBD0D890D560D0101C501AC
:105B640028080A03140A3F4D3620394605F904C3B0
:105B740004A3046A04DD03F6030F042804480401A3
:0A5B840002030405060708090000EB
:00000001FF

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 KiB

@ -0,0 +1,187 @@
// Netable differences vs. the default firmware for the ErgoDox EZ:
// 1. The Cmd key is now on the right side, making Cmd+Space easier.
// 2. The media keys work on OSX (But not on Windows).
#include "ergodox_ez.h"
#include "debug.h"
#include "action_layer.h"
#define BASE 0 // default layer
#define SYMB 1 // symbols
#define MDIA 2 // media keys
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui |
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
* | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | App | LGui | | Alt |Ctrl/Esc|
* ,------|------|------| |------+--------+------.
* | | | Home | | PgUp | | |
* | Space|Backsp|------| |------| Tab |Enter |
* | |ace | End | | PgDn | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
ALT_T(KC_APP), KC_LGUI,
KC_HOME,
KC_SPC,KC_BSPC,KC_END,
// right hand
KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_LGUI,
MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1,
KC_LALT, CTL_T(KC_ESC),
KC_PGUP,
KC_PGDN,KC_TAB, KC_ENT
),
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | . | 0 | = | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 2: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | MsUp | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | Prev | Next | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | |Brwser|
* | | |------| |------| |Back |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// MEDIA AND MOUSE
KEYMAP(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
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_MPLY,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_WBAK
),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
};
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);
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};
// Runs just one time when the keyboard initializes.
void * matrix_init_user(void) {
};
// Runs constantly in the background, in a loop.
void * matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
// TODO: Make this relevant to the ErgoDox EZ.
case 1:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
default:
// none
break;
}
};

@ -0,0 +1,1467 @@
:100000000C9403070C9447070C9447070C9447077C
:100010000C9447070C9447070C9447070C94470728
:100020000C9447070C9447070C9432120C94041359
:100030000C9447070C9447070C9447070C94470708
:100040000C9447070C94DC2B0C9447070C9447073F
:100050000C9447070C94E3210C9447070C94470732
:100060000C9447070C9447070C9447070C944707D8
:100070000C9447070C9447070C9447070C944707C8
:100080000C9447070C9447070C9447070C944707B8
:100090000C9447070C9447070C9447070C944707A8
:1000A0000C9447070C9447070C94470769138B136C
:1000B00076148B137614CD13F0137614451458145C
:1000C000A617A617D417D41717185318541A541A6A
:1000D0006B18541A621962192E1A541A541A421AB9
:1000E0000000F0A12E004C002A00E1003581000044
:1000F0001E00140004001D7134004D001F001A0082
:1001000016001B00E1042A0020000800070006007A
:1001100050002C0021001500090019004F004A0072
:10012000220017000A000500000065745000015409
:100130000000007F0000E3004F0001540000007742
:100140000000E20023001C000B00110000002971D8
:10015000240018000D00100052004B0025000C0078
:100160000E00360051002800260012000F00370054
:100170002F002B00270013003382387130004E000F
:100180002D003100E300E500C10000000100010086
:1001900001000100010000003A001E0220022202BC
:1001A000010001003B001F022102230201000100A7
:1001B0003C002F0226022F00010001003D0030020A
:1001C00027023000010001003E00310235003502F7
:1001D000000001000100010000000100000001001A
:1001E0000100010000000100000001003F0052007A
:1001F00051002402000001004000240021001E00E4
:10020000010001004100250022001F00370001000D
:1002100042002600230020002700010043002502A1
:100220002E0231002E0001004400450001000100B3
:1002300001000000010001000100010001000000B8
:1002400001000100010001000100010001000100A6
:10025000F2000100010001000100F000F1000100C6
:10026000F400010001000100F3000100F5000100AD
:100270000100010001000100000001000100010077
:100280000000010000000100010001000000010069
:100290000000010001000100010001000000010058
:1002A0000100010001000100A9000100010001009E
:1002B0000100AC00AA00B600010001000100AB0083
:1002C000A80001000100010001000100010001007F
:1002D00001000100AE000100010000000A0025300D
:1002E000313662003A200025303258000A722F63FE
:1002F0002030313233343536373839414243444582
:10030000460A000A002530325800626F756E636538
:10031000213A20006C6566742073696465206174FD
:100320007461636865640A006C656674207369644F
:1003300065206E6F7420726573706F6E64696E678E
:100340000A00747279696E6720746F207265736534
:1003500074206D637032333031380A000A444542EC
:1003600055473A20656E61626C65642E0A005B73C6
:100370005D004B6579626F617264207374617274A1
:100380002E0A005B575D005B535D005B525D005BB6
:10039000445D005B435D0016034500720067006F1B
:1003A0000044006F007800200045005A000000164D
:1003B000034500720067006F0044006F0078002062
:1003C0000045005A0000000403090409028D0005DD
:1003D0000100A0FA09040000010301010009211134
:1003E000010001223F000705810308000A090401FA
:1003F000000103010200092111010001224D000743
:1004000005820308000A0904020001030000000934
:1004100021110100012236000705830308000A09A3
:100420000403000203000000092111010001222041
:1004300000070584032000010705040320000109CB
:100440000404000103000000092111010001223908
:1004500000070585031000011201100100000008CB
:10046000EDFE071301000102000105010906A101CB
:10047000050719E029E71500250195087501810296
:100480000508190129059505750191029501750366
:100490009101050719002977150025019578750147
:1004A0008102C00631FF0974A1010975150025FFFD
:1004B0009520750881020976150025FF952075089D
:1004C0009102C005010980A101850216010026B72D
:1004D000001A01002AB700751095018100C0050CB3
:1004E0000901A1018503160100269C021A01002AB8
:1004F0009C02751095018100C005010902A1010946
:1005000001A10005091901290515002501950575A9
:100510000181029501750381010501093009311539
:1005200081257F95027508810609381581257F95FB
:100530000175088106050C0A38021581257F950191
:1005400075088106C0C005010906A101050719E06B
:1005500029E71500250195087501810295017508A7
:10056000810105081901290595057501910295017B
:10057000750391010507190029FF150025FF950650
:1005800075088100C00A002530325820006B65795B
:10059000626F6172645F7265706F72743A20000AF4
:1005A0000025303258006B6579626F6172645F7349
:1005B00065745F6C65643A200064656C5F6B657997
:1005C0005F6269743A2063616E27742064656C3AD7
:1005D00020253032580A006164645F6B65795F6280
:1005E00069743A2063616E2774206164643A20253F
:1005F0003032580A00646F6E652E0A00626F6F67B2
:100600006D61676963207363616E3A202E2E2E2020
:1006100000290A002575002F002575005D2800259A
:10062000640020002564002000256400200025646B
:10063000007C0025303258006D6F7573656B6579ED
:10064000205B62746E7C782079207620685D287249
:1006500065702F61636C293A205B006D6B5F776872
:1006600065656C5F74696D655F746F5F6D6178203F
:100670003D2025640A006D6B5F776865656C5F6D72
:1006800061785F7370656564203D2025640A006DA4
:100690006B5F74696D655F746F5F6D6178203D207D
:1006A00025640A006D6B5F6D61785F7370656564CA
:1006B000203D2025640A006D6B5F696E746572765B
:1006C000616C203D2025640A006D6B5F64656C6180
:1006D00079203D2025640A006D6B5F776865656C45
:1006E0005F74696D655F746F5F6D6178203D202573
:1006F000640A006D6B5F776865656C5F6D61785F3C
:100700007370656564203D2025640A006D6B5F741D
:10071000696D655F746F5F6D6178203D2025640AA7
:10072000006D6B5F6D61785F7370656564203D205F
:1007300025640A006D6B5F696E74657276616C206A
:100740003D2025640A006D6B5F64656C6179203D16
:100750002025640A000A00257500363A207768656E
:10076000656C5F74696D655F746F5F6D61783A2069
:10077000000A00257500353A20776865656C5F6D65
:1007800061785F73706565643A20000A0025750022
:10079000343A2074696D655F746F5F6D61783A20DB
:1007A000000A00257500333A206D61785F7370652B
:1007B00065643A20000A00257500323A20696E749B
:1007C000657276616C286D73293A20000A002575E0
:1007D00000313A2064656C6179282A31306D7329C3
:1007E0003A20000A092D2056616C756573202D0A88
:1007F000004D3E004D25643E20003F00736574208F
:1008000064656661756C740A00433E200077686514
:1008100072652064656C74613A20637572736F72DF
:100820003D25642C20776865656C3D25640A536519
:100830006520687474703A2F2F656E2E77696B6926
:1008400070656469612E6F72672F77696B692F4DD0
:100850006F7573655F6B6579730A000A092D204D0A
:100860006F7573656B6579202D0A4553432F713A77
:1008700009717569740A313A0964656C6179282ACD
:1008800031306D73290A323A09696E746572766186
:100890006C286D73290A333A096D61785F7370654E
:1008A00065640A343A0974696D655F746F5F6D61E0
:1008B000780A353A09776865656C5F6D61785F73B2
:1008C000706565640A363A09776865656C5F7469B6
:1008D0006D655F746F5F6D61780A0A703A097072B6
:1008E000696E742076616C7565730A643A09736584
:1008F000742064656661756C74730A75703A092BAF
:10090000310A646F776E3A092D310A706775703A53
:10091000092B31300A7067646F776E3A092D3130D8
:100920000A0A7370656564203D2064656C746120FB
:100930002A206D61785F7370656564202A202872B3
:100940006570656174202F2074696D655F746F5FD9
:100950006D6178290A003F004D3E2000433E200093
:100960004C25640A000A092D20436F6E736F6C6575
:10097000202D0A4553432F713A09717569740A6D28
:100980003A096D6F7573656B65790A000A092D2048
:100990004D61676963202D0A643A09646562756771
:1009A0000A783A096465627567206D6174726978C6
:1009B0000A6B3A096465627567206B6579626F61DD
:1009C00072640A6D3A096465627567206D6F7573AC
:1009D000650A763A0976657273696F6E0A733A0929
:1009E0007374617475730A633A09636F6E736F6C25
:1009F00065206D6F64650A302D343A096C61796544
:100A000072302D34284631302D4634290A50617514
:100A1000733A09626F6F746C6F616465720A653A4C
:100A200009656570726F6D0A6E3A094E4B524F0A36
:100A30007A3A09736C656570204C4544207465737F
:100A4000740A000A002575002E6E6B726F3A200042
:100A50000A002575002E737761705F6261636B73A6
:100A60006C6173685F6261636B73706163653A2088
:100A7000000A002575002E737761705F67726176DA
:100A8000655F6573633A20000A002575002E6E6F5E
:100A90005F6775693A20000A002575002E7377613B
:100AA000705F72616C745F726775693A20000A004A
:100AB0002575002E737761705F6C616C745F6C6775
:100AC00075693A20000A002575002E636170736C09
:100AD0006F636B5F746F5F636F6E74726F6C3A20DD
:100AE000000A002575002E737761705F636F6E7466
:100AF000726F6C5F636170736C6F636B3A20000A96
:100B00000025303258006B65796D61705F636F6EE0
:100B10006669672E7261773A20000A002575002EFB
:100B20006D6F7573653A20000A002575002E6B65A0
:100B300079626F6172643A20000A002575002E6D9B
:100B400061747269783A20000A002575002E656E7E
:100B500061626C653A20000A0025303258006465F5
:100B60006275675F636F6E6669672E7261773A20A0
:100B7000000A0025750064656661756C745F6C61C0
:100B80007965723A20003F004E4B524F3A206F6613
:100B9000660A004E4B524F3A206F6E0A0074696D20
:100BA00065725F636F756E743A202530346C580A35
:100BB000006B6579626F6172645F6E6B726F3A2071
:100BC00025580A006B6579626F6172645F69646CB5
:100BD000653A2025580A006B6579626F6172645F1F
:100BE00070726F746F636F6C3A2025580A00686FDB
:100BF00073745F6B6579626F6172645F6C65647357
:100C000028293A2025580A000A092D2053746174B6
:100C10007573202D0A004743433A20342E382E3274
:100C2000204156522D4C4942433A20312E382E3025
:100C3000204156525F415243483A20617672350A4C
:100C4000004F5054494F4E533A204C554641204294
:100C50004F4F544D41474943204D4F5553454B4508
:100C6000592045585452414B455920434F4E534FFC
:100C70004C4520434F4D4D414E44204E4B524F204A
:100C80003531320A004255494C443A2063376334C7
:100C90003134622D6469727479202830343A3038E6
:100CA0003A303820446563203138203230313529DC
:100CB0000A005649443A2030784645454428457252
:100CC000676F446F7820455A29205049443A2030B4
:100CD0007831333037284572676F446F7820455A32
:100CE00029205645523A203078303030310A0044BD
:100CF0004553433A20742E6D2E6B2E206B6579621E
:100D00006F617264206669726D7761726520666FCB
:100D100072204572676F646F780A000A092D2056A9
:100D2000657273696F6E202D0A000A6D6F757365A9
:100D30003A206F66660A000A6D6F7573653A206F18
:100D40006E0A000A6B6579626F6172643A206F66A1
:100D5000660A000A6B6579626F6172643A206F6E91
:100D60000A000A6D61747269783A206F66660A003B
:100D70000A6D61747269783A206F6E0A000A6465C0
:100D80006275673A206F6E0A000A64656275673A99
:100D9000206F66660A000A0A626F6F746C6F616486
:100DA00065722E2E2E2000433E20006565636F6E17
:100DB0006669673A0A00536C656570204C454420AB
:100DC000746573740A000000000000000000000059
:100DD00000010204060A0F17202C3A4A5D71879D14
:100DE000B3C7DAE9F5FCFFFCF5E9DAC7B39D877113
:100DF0005D4A3A2C20170F0A060402010000000089
:100E000000000000000011241FBECFEFDAE0DEBFBB
:100E1000CDBF04B603FE24C08091F9019091FA0180
:100E2000A091FB01B091FC018730904BA740B04BE3
:100E3000B9F41092F9011092FA011092FB0110928C
:100E4000FC0114BE84B7877F84BF88E10FB6F89495
:100E500080936000109260000FBEE0E0FFE3099510
:100E600011E0A0E0B1E0E4E5FBE502C005900D92E1
:100E7000AA33B107D9F711E0AAE3B1E001C01D928E
:100E8000A93FB107E1F70E946C0F0C94A82D0C94B8
:100E90000000FF93EF93E0913A01F0913B0130970E
:100EA00009F00995EF91FF910895FC01859180303B
:100EB00011F0EFDFFBCF0895FF27E0E230E247FFBC
:100EC0000CC0419597FF09C0EDE260957095809543
:100ED0009095611D711D811D911D27FF02C02195F7
:100EE00030E350E2AA27660F771F881F991FAA1FB9
:100EF000A41710F0A41B63955A95A9F7AA3008F01F
:100F0000A95FA05DAF93F39561157105810591050A
:100F100041F7ED3211F4EF93F395F21718F43F9384
:100F2000F395FBCF8F91B5DFFA95E1F70895E9913D
:100F3000F9918591803021F0853219F0AADFF9CF3F
:100F4000089520E0E89455915532C1F3503311F4DF
:100F5000689455915A3348F4505390F3220F022E5F
:100F6000220F220F200D250FF4CF0EF42195899129
:100F70009991533619F3533729F1533559F1BC017F
:100F800088279927E8945C3621F48991999168948F
:100F90005591543639F446EF7EF077FF0DC08FEF50
:100FA0009FEF0AC055374AE039F0583540E121F04B
:100FB000523642E009F00895FF93EF937DDFEF9101
:100FC000FF91B7CFFF93EF93FC0181918030B9F38C
:100FD00060DFFBCFFF93EF9368DFF1CFDF93CF9319
:100FE000CDB7DEB72596A3DFCF91DF9108956111CC
:100FF0000BC0FC018281882321F085EE0E943A1605
:1010000003C085EE0E94021780E090E008950895E5
:101010006091BC017091BD018091BE019091BF01B2
:101020000E94E72056985E9825982D9826982E982D
:1010300027982F98813019F0823021F00895259A51
:101040002D9A0895269A2E9A089588E098E0892B83
:1010500011F00C940808089556985E9825982D98DC
:1010600026982E9827982F988FEF90E090938900DC
:101070008093880090938B0080938A0090938D00DA
:1010800080938C00569A5E9A259A2D9A269A2E9ACB
:10109000279A2F9A2FE782E490E1215080409040D8
:1010A000E1F700C0000056985E9825982D98269884
:1010B0002E9827982F98089589EA8093800089E0D8
:1010C0008093810024982C983F988AB18F748AB9B4
:1010D0006E98479A8BB1806B8BB9769A0E942C08D8
:1010E00087E098E0892B11F00C940708089580E2BE
:1010F0008093000180913C0181110EC00E94C608BE
:1011000081E080933C012FEF83ED90E321508040FC
:101110009040E1F700C0000080E40E94CC0880937A
:10112000000181112EC00E94F608809300018111F8
:1011300028C00E94F60880930001811122C08FE32D
:101140000E94F6088093000181111BC00E94EE08E6
:1011500080E40E94CC0880930001811112C08CE0D1
:101160000E94F6088093000181110BC00E94F608CE
:1011700080930001811105C08FE30E94F6088093DF
:1011800000010E94EE088091000108951092B900BC
:101190008AE08093B800089594EA9093BC009091FF
:1011A000BC0097FFFCCF9091B900987F983021F058
:1011B000903111F081E008958093BB0084E8809322
:1011C000BC008091BC0087FFFCCF8091B900887F74
:1011D000883111F0803471F780E0089584E98093BC
:1011E000BC008091BC0084FDFCCF08958093BB00BF
:1011F00084E88093BC008091BC0087FFFCCF909175
:10120000B900987F81E0983209F480E0089584E87D
:101210008093BC008091BC0087FFFCCF8091BB0015
:10122000089580910001811115C080E40E94CC08CE
:101230008093000181110CC082E10E94F608809326
:101240000001811105C08FEF0E94F6088093000114
:101250000E94EE0884B1807F84B985B1807F85B912
:101260008AB1837F8AB98BB1837F8BB93E984698C8
:1012700008950E947708809300010E94110980B3AD
:101280008C7080BB81B3836F81BBECE4F1E0AEE393
:10129000B1E011921D9281E0EA35F807D1F78CE5B3
:1012A00098E0892B11F00C945C0808959F92AF92FE
:1012B000BF92CF92DF92EF92FF920F931F93CF9343
:1012C000DF93809100018823E1F080913D018F5FE1
:1012D00080933D01811115C082E493E00E9455077F
:1012E0000E94770880930001882329F088E293E028
:1012F0000E94550706C084E193E00E9455070E94B2
:101300002C080EE311E0C0E0D0E0BB24B39482E0EF
:10131000A82ECC24C394D12C25E0E22E23E0F22E7B
:10132000C73000F580910001811162C080E40E9405
:10133000CC0880930001811112C082E10E94F6085E
:101340008093000181110BC0C6010C2E01C0880FD3
:101350000A94EAF780950E94F608809300010E94A3
:10136000EE0846C0CA30A1F028F4C83059F0C930A0
:1013700061F005C0CC3089F070F0CD3089F0209A52
:10138000289810C0219A29980DC0229A2A980AC03C
:10139000239A2B9807C0529A01C0539A5B9802C0B7
:1013A0003E9A4698E0EAEA95F1F78FB1799985C0BF
:1013B00092E081708B25892B7C9B02C090E001C05C
:1013C00094E0892B7D9B02C090E001C098E0892BBE
:1013D0007E9B02C090E001C090E1892B9FB1909567
:1013E000991F9927991F9295990F907E892B10C06C
:1013F00080910001811176C080E40E94CC08809326
:101400000001882309F45BC0912C0E94EE08892D0D
:10141000F8019081981739F1808380910101882328
:1014200001F18091D70180FF04C08AE093E00E941F
:1014300055078091D70180FF0CC0809101011F9258
:101440008F93FF92EF920E94EE070F900F900F90F4
:101450000F908091D70180FF04C083E093E00E9449
:101460005507A09201010E94110921960F5F1F4F9D
:10147000CE30D10509F054CF809101018823B1F01D
:10148000815080930101882339F08FE99FE0019713
:10149000F1F700C000000AC0ACE4B1E0EEE3F1E017
:1014A00081918D9391E0EC34F907D1F785E298E0D2
:1014B000892BD1F00E94250817C090E07ACF83E1F4
:1014C0000E94F6088093000181119ECF81E40E9462
:1014D000CC0880930001811197CF0E940709982EB4
:1014E000909493CF80E094CF81E0DF91CF911F91D2
:1014F0000F91FF90EF90DF90CF90BF90AF909F90B3
:101500000895E82FF0E0E45BFE4F80810895CF92CC
:10151000DF92EF92FF920F931F93CF93DF938CEEA6
:1015200092E00E9455073CE4E32E31E0F32EC0E048
:10153000D0E047EEC42E42E0D42E0EED12E0DF9351
:10154000CF93DF92CF920E94EE0784EE92E00E944A
:101550005507F70181917F0190E00E944C219F93F4
:101560008F931F930F930E94EE078CED92E00E94E1
:10157000550721968DB79EB708960FB6F8949EBF73
:101580000FBE8DBFCE30D105D1F6DF91CF911F9127
:101590000F91FF90EF90DF90CF9008958B3B9105D6
:1015A00078F4883A910540F5853A9105D0F4843075
:1015B000910508F0B1C08130910509F4ADC06BC050
:1015C000803E910508F467C0883E910508F4A4C0E8
:1015D0009C01205F31092031310508F05CC0906525
:1015E0000895853A910509F459C0863A910509F4A0
:1015F00058C083E890E40895883A910509F454C0EE
:10160000893A910509F453C08A3A910509F452C008
:101610008B3A910509F451C08C3A910509F450C0F8
:101620008D3A910509F44FC0803B910509F44EC0F5
:101630008E3A910509F44DC08F3A910509F44CC0DA
:10164000813B910509F44BC0823B910509F44AC0E6
:10165000833B910509F449C0843B910509F448C0D6
:10166000853B910509F447C0863B910509F446C0C6
:10167000873B910509F445C0883B910509F444C0B6
:10168000893B910509F443C08A3B910509F042C0AA
:101690008AE296E4089580E090E0089581E890E47D
:1016A000089582E890E4089582EE94E4089589EE26
:1016B00094E408958AEE94E4089585EB94E4089503
:1016C00086EB94E4089587EB94E408958CEC94E41D
:1016D00008958DEC94E4089583E895E408958AE8EC
:1016E00095E4089582E995E4089584E995E40895E0
:1016F00081E296E4089583E296E4089584E296E414
:10170000089585E296E4089586E296E4089587E2D6
:1017100096E4089580E094E40895089596E0799F12
:10172000F001112494E5899FE00DF11D1124E60FCD
:10173000F11DEE0FFF1FEC51FF4F8591949108951D
:10174000880F991F805A9040FC01859194910895CB
:10175000880F991F80529F4FFC01859194910895A5
:1017600026E0729FF001112444E5849FE00DF11DF5
:101770001124E60FF11DEE0FFF1FEC51FF4F2591D5
:101780003491C9019A9581159F4110F4C9010895BA
:10179000C90190528115904128F4C9019F700E949F
:1017A000A80B0895C90190538115904120F4C901F7
:1017B0009927906C0895211580E5380769F40E94F7
:1017C000751A9FEF24E34CE0915020404040E1F730
:1017D00000C000000C940822213080E5380751F445
:1017E0008CE593E00E9455078091D701816080933A
:1017F000D7010895C90190558115904108F050C056
:10180000832F99278F70992781309105D9F4A901E9
:101810004370552702C0880F991F4A95E2F79C68CC
:10182000A90164E0440F551F6A95E1F744275370FE
:10183000842B952B73E0220F331F7A95E1F72076E6
:1018400033271DC08230910529F4922F8827816F9C
:10185000906A089583309105A9F4A9014370552732
:1018600081E090E002C0880F991F4A95E2F79C68DA
:1018700043E0220F331F4A95E1F7207E3770822B19
:10188000932B08950497F1F4A9014370552781E043
:1018900090E002C0880F991F4A95E2F79A68E8CF56
:1018A000C90190578115904120F4C9019F70906241
:1018B0000895C90190588115904120F4C9019F7085
:1018C000906A0895203E3105E0F4203C310558F53A
:1018D0002133310509F470C048F42932310509F487
:1018E00064C02A32310509F46EC074C02933310551
:1018F000F1F022383105D9F02533310509F44EC015
:1019000069C0233E310589F138F4203E3105C1F02C
:10191000223E3105E1F05EC0263E310569F1273EE9
:101920003105A9F157C0C9010E94A00B089580910B
:10193000EA0180FD02C081FF4DC080EE90E04BC007
:101940008091EA0180FFF9CF89E390E044C0809163
:10195000EA0182FF0EC08091EA0184FF03C080E0AB
:1019600090E039C083EE90E036C08091EA0182FFBA
:10197000F2CF82EE90E02FC08091EA0183FF0BC08E
:101980008091EA0184FDEBCF87EE90E024C0809146
:10199000EA0183FFF5CF86EE90E01DC08091EA0159
:1019A00085FF07C089E290E016C08091EA0185FFBB
:1019B000F9CF85E390E00FC08091EA0186FF07C070
:1019C0008AE290E008C08091EA0186FFF9CF81E3C6
:1019D00090E001C0C9010E94CE0A08950895809147
:1019E0006D0108959FB7F89410925C019FBF90918C
:1019F000F001943009F058C09091E9009F70209157
:101A0000EC0020FF02C020E801C020E0292B94E078
:101A10009093E9009091EB0090FF43C09091EE000D
:101A200097FF3FC090915A01992321F09091E800CF
:101A300095FF37C010925A0196E03091E80035FDCD
:101A400015C03091F001343061F53091EB0035FD77
:101A500028C0915021F481E080935A0122C0EFE91F
:101A6000FFE03197F1F700C00000E7CF8093F1006D
:101A70008091E80085FD0AC08091E80080FFFCCFDE
:101A80008091E8008E778093E80006C08FB7F894C5
:101A900091E090935C018FBF2F702093E90080E06C
:101AA00008952F702093E9008FEF0895CF93DF936F
:101AB00000D01F92CDB7DEB72091F001243019F588
:101AC00023E029839B838A832093E9008FEF909101
:101AD000E800815095FD06C095ED9A95F1F700005C
:101AE0008111F5CF8091E80085FF0DC040E050E006
:101AF00063E070E0CE0101960E9425108091E8001D
:101B00008E778093E8000F900F900F90DF91CF9128
:101B10000895CF93DF9300D01F92CDB7DEB7209109
:101B2000F001243021F522E029839B838A8383E01E
:101B30008093E9008FEF9091E800815095FD06C0F9
:101B400095ED9A95F1F700008111F5CF8091E800AD
:101B500085FF0DC040E050E063E070E0CE010196EB
:101B60000E9425108091E8008E778093E8000F9006
:101B70000F900F90DF91CF9108952091F0012430C4
:101B8000F1F422E02093E9002FEF3091E80021509A
:101B900035FD06C035ED3A95F1F700002111F5CF7E
:101BA0002091E80025FF0BC040E050E065E070E0C8
:101BB0000E9425108091E8008E778093E8000895B8
:101BC000CF93DF93EC018091F001843009F047C09E
:101BD00080910C018823E1F080910D018823C1F0F0
:101BE00085E08093E9008FEF9091E800815095FDAA
:101BF00006C095E19A95F1F700008111F5CF80912B
:101C0000E80085FF2CC040E050E060E170E017C0C4
:101C100081E08093E9008FEF9091E800815095FD7D
:101C200006C095ED9A95F1F700008111F5CF8091EE
:101C3000E80085FF14C040E050E068E070E0CE01AD
:101C40000E9425108091E8008E778093E80080E163
:101C5000FE01ADE5B1E001900D928A95E1F7DF91CB
:101C6000CF91089583E993E00E9455078091EF0199
:101C7000811109C00E94B7110E9414128091E200E4
:101C800084608093E20008958FE893E00E945507F6
:101C90001092EF0108958BE893E00C94550787E8C4
:101CA00093E00E9455070C94C92B83E893E00E94AF
:101CB00055070E94A3210E94CF2B0E94B0140C94C0
:101CC000EE0C80915B018F5F80935B0162E30E9469
:101CD0003D2D911135C010925B0180915C018823EC
:101CE00079F18091F001843049F58091E9008F709D
:101CF0009091EC0090FF02C090E801C090E0982B1A
:101D000084E08093E9008091EB0080FF14C0809113
:101D1000EE0087FF10C08091E80085FF03C010929D
:101D2000F100F9CF8091E80080FF05C08091E800C4
:101D30008E778093E8009F709093E90010925C0189
:101D4000089542E061EC81E00E94311142E061ECD3
:101D500082E00E94311142E061EC83E00E94311187
:101D600042E261EC84E00E94311142E161EC85E0E5
:101D70000C9431118091F201833009F455C030F494
:101D8000813071F0823009F48EC008958A3009F4F0
:101D90007AC08B3009F460C0893009F09CC020C043
:101DA0008091F101813A09F096C08091E800877F27
:101DB0008093E8008091F5019091F601892B21F044
:101DC00060E080E090E003C060E18DE591E070E0CC
:101DD0000E946E108091E8008B778093E800089550
:101DE0008091F101813209F076C08091F5019091E6
:101DF000F601009719F0049709F06DC08091E80092
:101E0000877F8093E8008091E80082FD05C0809183
:101E1000F0018111F8CF5FC08091F10080936D01D6
:101E20008091E8008B7753C08091F101813A09F0ED
:101E300052C08091F5019091F601892B09F04BC0B9
:101E40008091E800877F8093E8008091E80080FF20
:101E5000FCCF80910C0136C08091F1018132D9F51F
:101E60008091F5019091F601892BA9F58091E80008
:101E7000877F8093E8000E9466118091F301809330
:101E80000C010C94751A8091F101813221F5809139
:101E9000E800877F8093E8000E9466118091F4013A
:101EA00080936E0108958091F101813AA1F48091AF
:101EB000E800877F8093E8008091E80080FFFCCFF6
:101EC00080916E018093F1008091E8008E7780937D
:101ED000E8000C946611089584B7877F84BF88E179
:101EE0000FB6F89480936000109260000FBE90E0EF
:101EF00080E80FB6F89480936100909361000FBE64
:101F00000E9439150E94B7110E9414128091E200BC
:101F100084608093E20082EF9CE00E94E22078944B
:101F20000E948E140E943B1582E091E00E94AB1447
:101F30000E94B72B82E793E00E9455078091F00141
:101F4000853089F48EE693E00E9455070E94662151
:101F50008091EE01882391F30E948E21882371F3F2
:101F60000E940F10EBCF0E946915E8CF292F33276D
:101F700023303105A9F06CF42130310509F442C059
:101F80002230310509F043C08DE890E02BEC33E0BE
:101F900042C021323105C9F02232310519F137C072
:101FA00099278130910541F08230910541F0892BCC
:101FB00071F5E7ECF3E005C0EFEAF3E002C0E7E912
:101FC000F3E0849190E09F0126C0653000F5E62F94
:101FD000F0E0EE0FFF1FEB5DFE4F2081318189E0C5
:101FE00090E019C0653098F4E62FF0E0DF01AA0F09
:101FF000BB1FA55EBE4F2D913C91EA5EFE4F8081D6
:1020000090E009C082E190E028E534E004C080E07F
:1020100090E020E030E0FA0131832083089580E1F0
:1020200089BD82E189BD09B400FEFDCF8091D80051
:102030008F7D8093D8008091E00082608093E000E3
:102040008091E00081FDFCCF0895CF92DF92EF9266
:10205000FF920F931F93CF93DF937C018B01EA01D3
:102060000E948711811131C0209731F088819981B8
:10207000081B190BE80EF91EC12CD12C01151105F6
:1020800019F18091E80085FD14C08091E8008E77F9
:102090008093E800209741F0888199818C0D9D1DE7
:1020A0009983888385E011C00E948711882331F3CA
:1020B0000CC0F70181917F018093F100015011095B
:1020C000FFEFCF1ADF0ADACF80E0DF91CF911F91C7
:1020D0000F91FF90EF90DF90CF9008952091F7013E
:1020E0003091F8012617370748F06115710539F46A
:1020F0002091E8002E772093E80001C0B901FC018F
:1021000020E061157105B9F18091F001882309F48F
:1021100040C0853009F43FC08091E80083FD3DC098
:102120008091E80082FF06C08091E80082FF26C00F
:1021300080E008958091E80080FFE3CF2091F300D4
:102140008091F20090E0922B6115710551F088307A
:10215000910538F421912093F100615071090196A5
:10216000F3CF21E0089709F020E08091E8008E7716
:102170008093E800C6CF2111C7CFD6CF8091F00160
:10218000882339F0853039F08091E80083FFCCCF87
:1021900004C082E0089583E0089581E008952091CD
:1021A000F7013091F8012617370748F061157105DE
:1021B00039F42091E8002E772093E80001C0B9019E
:1021C000FC0120E061157105C1F18091F0018823C7
:1021D00009F441C0853009F440C08091E80083FDD6
:1021E0003EC08091E80082FF06C08091E80082FF37
:1021F00027C080E008958091E80080FFE3CF209120
:10220000F3008091F20090E0922B6115710559F076
:102210008830910540F424912093F100319661506B
:1022200071090196F2CF21E0089709F020E0809132
:10223000E8008E778093E800C5CF2111C6CFD5CFB7
:102240008091F001882339F0853039F08091E800E1
:1022500083FFCBCF04C082E0089583E0089581E03E
:102260000895982F973058F59093E900981739F012
:102270007091EC002091ED005091F00003C0242FEC
:10228000762F50E021FF19C03091EB003E7F309354
:10229000EB003091ED003D7F3093ED003091EB008D
:1022A00031603093EB007093EC002093ED0050937D
:1022B000F0002091EE0027FF07C09F5FD3CF8F7003
:1022C0008093E90081E0089580E008958091F10114
:1022D00087FD05C08091E80080FF0EC012C080918C
:1022E000E80082FD05C08091F0018111F8CF0895CA
:1022F0008091E8008B7708C08091F0018111EACFCE
:1023000008958091E8008E778093E8000895809189
:10231000E4009091E50045E62091EC0020FF21C00B
:102320002091E80020FD21C02091F001222389F0B6
:10233000253089F02091EB0025FD0FC02091E400AD
:102340003091E5002817390739F3415041F0C901B0
:10235000E3CF82E0089583E0089581E0089584E06A
:1023600008952091E80022FFDFCF80E008950E94C9
:1023700025120E942D12E0EEF0E0808181608083C2
:10238000E8EDF0E080818F77808319BCA7EDB0E0A5
:102390008C918E7F8C9380818F7E80831092EF0151
:1023A00008950F931F93CF93DF930E9425120E94ED
:1023B0002D12C8EDD0E088818F778883888180686E
:1023C000888388818F7D888319BC1092F0011092D8
:1023D000EC011092EE011092ED0100EE10E0F80118
:1023E00080818B7F808388818160888342E060E088
:1023F00080E00E943111E1EEF0E080818E7F8083E9
:10240000E2EEF0E08081816080838081886080835B
:10241000F80180818E7F8083888180618883DF914D
:10242000CF911F910F910895E8EDF0E080818F7EAC
:102430008083E7EDF0E080818160808384E082BF6B
:1024400081E08093EF010C94D111E8EDF0E0808100
:102450008E7F80831092E20008951092DA0010922D
:10246000E10008951F920F920FB60F9211242F933F
:102470003F934F935F936F937F938F939F93AF930C
:10248000BF93EF93FF938091E10082FF0BC0809197
:10249000E20082FF07C08091E1008B7F8093E10022
:1024A0000E94610E8091DA0080FF1FC08091D800E9
:1024B00080FF1BC08091DA008E7F8093DA008091CC
:1024C000D90080FF0DC080E189BD82E189BD09B4DA
:1024D00000FEFDCF81E08093F0010E94320E05C026
:1024E00019BC1092F0010E94440E8091E10080FF1F
:1024F00019C08091E20080FF15C08091E2008E7FBC
:102500008093E2008091E20080618093E2008091FC
:10251000D80080628093D80019BC85E08093F001D8
:102520000E944F0E8091E10084FF30C08091E20054
:1025300084FF2CC080E189BD82E189BD09B400FE21
:10254000FDCF8091D8008F7D8093D8008091E100ED
:102550008F7E8093E1008091E2008F7E8093E20085
:102560008091E20081608093E2008091EC018823F9
:1025700011F084E007C08091E30087FF02C083E090
:1025800001C081E08093F0010E94550E8091E1002E
:1025900083FF29C08091E20083FF25C08091E10084
:1025A000877F8093E10082E08093F0011092EC013C
:1025B0008091E1008E7F8093E1008091E2008E7F28
:1025C0008093E2008091E20080618093E20042E02B
:1025D00060E080E00E9431118091F000886080937B
:1025E000F0000E944B0EFF91EF91BF91AF919F9130
:1025F0008F917F916F915F914F913F912F910F90AC
:102600000FBE0F901F9018951F920F920FB60F924A
:1026100011242F933F934F935F936F937F938F93E7
:102620009F93AF93BF93CF93EF93FF93C091E90034
:10263000CF708091EC001092E9008091F000877FCC
:102640008093F00078940E9440131092E9008091EA
:10265000F00088608093F000C093E900FF91EF9153
:10266000CF91BF91AF919F918F917F916F915F912A
:102670004F913F912F910F900FBE0F901F90189583
:102680001F93CF93DF93CDB7DEB7AA970FB6F89419
:10269000DEBF0FBECDBFE1EFF1E08091F10081938D
:1026A00021E0E93FF207C9F70E94BA0E8091E800E5
:1026B00083FF1CC12091F1013091F201832F90E042
:1026C0008A30910508F012C1FC01EA5AFF4F0C94C0
:1026D0005D2D203881F0223809F008C18091F50184
:1026E0008F708093E9008091EB0085FB882780F94B
:1026F0001092E90006C08091ED019091EE019111D8
:1027000082609091E800977F9093E8008093F100B9
:102710001092F100C5C0822F8D7F09F0E7C02223FF
:1027200019F0223061F0E2C08091F301813009F0AC
:10273000DDC0333009F080E08093EE0128C0809145
:10274000F301811124C02091F5012F7009F4CEC04E
:102750002093E9008091EB0080FF19C08091EB008D
:10276000333011F4806211C080618093EB0081E00E
:1027700090E0022E01C0880F0A94EAF78093EA00E5
:102780001092EA008091EB0088608093EB00109239
:10279000E9008091E800877F86C02111A7C01091D1
:1027A000F3011F778091E3008078812B8093E30011
:1027B0008091E800877F8093E8000E9466118091F5
:1027C000E80080FFFCCF8091E30080688093E30005
:1027D000112311F083E001C082E08093F00186C0F4
:1027E0002058223008F082C08091F3019091F401CA
:1027F0008C3D23E0920779F583E08A838AE289831E
:102800004FB7F894DE01139620E03EE051E2E32F4B
:10281000F0E050935700E49120FF03C0E295EF7081
:102820003F5FEF708E2F90E0EA3010F0C79601C046
:10283000C0968D939D932F5F243149F74FBF8091B0
:10284000E800877F8093E8006AE270E0CE0101969D
:102850000E946E1014C0AE014F5F5F4F6091F50192
:102860000E94B60F009709F441C02091E800277F2D
:102870002093E800BC0189819A810E94CF10809149
:10288000E8008B778093E80031C0203879F580919B
:10289000E800877F8093E8008091EC018093F1004D
:1028A0008091E8008E778093E8000E9466111EC038
:1028B00021111CC09091F3019230C0F48091E80086
:1028C000877F8093E8009093EC010E9466118091CD
:1028D000EC01811104C08091E30087FF02C084E015
:1028E00001C081E08093F0010E94A10E8091E80078
:1028F00083FF0AC08091E800877F8093E800809181
:10290000EB0080628093EB00AA960FB6F894DEBFCE
:102910000FBECDBFDF91CF911F910895CF938091CE
:10292000F0018823B1F08091E9008F709091EC0064
:1029300090FF02C090E801C090E0C92FC82B109210
:10294000E9008091E80083FD0E944013CF70C0939E
:10295000E900CF91089590937401809373010895D5
:10296000E0917301F0917401309721F00190F081B2
:10297000E02D099480E00895FF920F931F93CF9369
:10298000DF938C01E0917301F0917401309799F11C
:102990000280F381E02D09958091D70182FF2BC041
:1029A00080FF04C08DE895E00E945507E80180E1B2
:1029B000F82E07E815E08091D70180FF0BC08881D1
:1029C0001F928F931F930F930E94EE070F900F900B
:1029D0000F900F90FA942196F110EDCF8091D701CE
:1029E00080FF09C085E895E0DF91CF911F910F919D
:1029F000FF900C945507DF91CF911F910F91FF909D
:102A00000895E0917301F0917401309721F00480F2
:102A1000F581E02D099408952091710130917201A2
:102A20008217930771F09093720180937101E09186
:102A30007301F0917401309721F00680F781E02D49
:102A40000994089520916F013091700182179307C6
:102A500071F09093700180936F01E0917301F09198
:102A60007401309721F00084F185E02D09940895D8
:102A700008950C9438150E94A5210E9439090C94E0
:102A80006B22CF93C82F8091D70182FF1EC080FF99
:102A900004C086EA95E00E9455078091D70180FF27
:102AA0000CC01F92CF9321EA35E03F932F930E94F1
:102AB000EE070F900F900F900F908091D70180FF3D
:102AC00004C08FE995E00E9455078C2FCF910C949C
:102AD000EE0CCF92DF92EF92FF920F931F93CF9362
:102AE000DF93CDB7DEB72B970FB6F894DEBF0FBEDE
:102AF000CDBF0E94560936E7E32E31E0F32E00E009
:102B000010E0C02E802F0E94810AF701D1907F0132
:102B1000D826B1F40F5F1F4F0E30110591F78FEFDC
:102B200089838A831B820E94AE218160782F9D83D6
:102B30008C8349815A816B818D810E940C1641C022
:102B40009091D70191FF04C08B870E94870A8B85E3
:102B500020E030E04D2D50E0922FBA01022E02C04D
:102B6000759567950A94E2F760FF25C02E83CF82A2
:102B7000EE24E394F12C02C0EE0CFF1C9A95E2F7D0
:102B800090E08E219F2121E0892B09F420E0288705
:102B90000E94AE218160782F9A8789874E815F815C
:102BA00068858A850E940C16F801EA58FE4F8081DC
:102BB0008E25808306C02F5F3F4F2630310561F69A
:102BC000A9CF0E94D925109175010E94B014181741
:102BD000A1F00E94B014809375012B960FB6F89463
:102BE000DEBF0FBECDBFDF91CF911F910F91FF9040
:102BF000EF90DF90CF900C9441152B960FB6F89480
:102C0000DEBF0FBECDBFDF91CF911F910F91FF901F
:102C1000EF90DF90CF900895CF93DF93CDB7DEB7DD
:102C20002B970FB6F894DEBF0FBECDBF4F835887EA
:102C300069877A878B87DE01119686E0FD01119204
:102C40008A95E9F785E0FE01379601900D928A9505
:102C5000E1F749815A816B817C818D819E810E943F
:102C6000411D2B960FB6F894DEBF0FBECDBFDF918E
:102C7000CF910895CF93C82F882309F4C1C082381B
:102C800059F40E94B01481FDBBC089E30E94E01F8B
:102C90000E94BC2089E30CC0833879F40E94B014F0
:102CA00080FDAEC083E50E94E01F0E94BC2083E54A
:102CB0000E943120CF910C94BC20843859F40E949A
:102CC000B01482FD9DC087E40E94E01F0E94BC20DA
:102CD00087E4EECF8CEF8C0F813A48F48C2F0E9462
:102CE000622A81118DC08C2F0E94E01FE3CF80E209
:102CF0008C0F883048F4C77081E001C0880FCA95F6
:102D0000EAF70E948320D6CF8BE58C0F833078F4CE
:102D1000C53A29F0C63A31F482E890E005C081E86E
:102D200090E002C083E890E0CF910C940C1588E508
:102D30008C0F833108F064C0C83A39F1C93A41F1C7
:102D4000CA3A49F1CB3A51F1CC3A59F1CD3A61F155
:102D5000C03B69F1CE3A71F1CF3A79F1C13B81F1D3
:102D6000C23B89F1C33B91F1C43B99F1C53BA1F151
:102D7000C63BA9F1C73BB1F1C83BB9F1C93BC1F1B1
:102D8000CA3BC9F58AE292E038C082EE90E035C0D5
:102D900089EE90E032C08AEE90E02FC085EB90E0A3
:102DA0002CC086EB90E029C087EB90E026C08CEC2D
:102DB00090E023C08DEC90E020C083E891E01DC03E
:102DC0008AE891E01AC082E991E017C084E991E0B5
:102DD00014C081E292E011C083E292E00EC084E26E
:102DE00092E00BC085E292E008C086E292E005C066
:102DF00087E292E002C080E090E0CF910C9422152F
:102E0000CF910895882309F44BC0823859F40E9469
:102E1000B01481FF45C089E30E94E01F0E94BC20DE
:102E200089E30CC0833871F40E94B01480FF38C06D
:102E300083E50E94E01F0E94BC2083E50E943120B0
:102E40000C94BC20843859F40E94B01482FF28C02E
:102E500087E40E94E01F0E94BC2087E4EFCF9CEF34
:102E6000980F913A58F390E2980F983050F4877089
:102E700091E001C0990F8A95EAF7892F0E94892075
:102E8000DFCF9BE5980F933020F480E090E00C9426
:102E90000C15885A833120F480E090E00C942215C0
:102EA0000895882321F00E9483200C94BC2008956B
:102EB000882321F00E9489200C94BC200895CF9291
:102EC000DF92EF92FF920F931F93CF93DF93CDB7D3
:102ED000DEB728970FB6F894DEBF0FBECDBF8C01CA
:102EE00085E0F801DE01119601900D928A95E1F7D7
:102EF000F80140813181F280258122952F708381F4
:102F00009481892B31F03F3F31F481E04F3F19F438
:102F100003C081E001C080E080FDC6C249833A83DE
:102F200089819A812F830E949E1F9E8388870E9499
:102F30009D1F0E94701E4E81E42FE295EF70F0E01D
:102F4000E05AFF4F2F8168850C945D2D842F807F80
:102F5000142F1F70882311F01295107FFF2059F055
:102F6000112309F456C2812F68870E9493200E9482
:102F7000BC2068854EC2862F0E940217112309F4D7
:102F800093C2812F0E94992028960FB6F894DEBF35
:102F90000FBECDBFDF91CF911F910F91FF90EF90AA
:102FA000DF90CF900C94BC20342F307F842F8F7013
:102FB000303211F08295807F662319F0613019F16B
:102FC0002CC0FF20B1F0222309F494C1213009F074
:102FD00091C128960FB6F894DEBF0FBECDBFDF912A
:102FE000CF911F910F91FF90EF90DF90CF900C94B5
:102FF000A320222319F0213009F456C28E830E94A7
:10300000A6208E818AC1FF2021F0263008F04CC214
:1030100071C1253008F048C280C1FF2021F0222371
:1030200009F468C1F6C1222309F477C106C2242F2E
:1030300026952695237030E02115310521F02130A9
:103040003105C9F031C2FF2021F0862F942F9370F3
:1030500002C080E090E028960FB6F894DEBF0FBE65
:10306000CDBFDF91CF911F910F91FF90EF90DF9037
:10307000CF900C940C15FF2021F0862F942F937085
:1030800002C080E090E028960FB6F894DEBF0FBE35
:10309000CDBFDF91CF911F910F91FF90EF90DF9007
:1030A000CF900C942215862FFF2019F00E945F24E8
:1030B00002C00E94C72428960FB6F894DEBF0FBE48
:1030C000CDBFDF91CF911F910F91FF90EF90DF90D7
:1030D000CF900C944C25842F837009F076C0F110AA
:1030E000E3C1262F229526952770220F220F862FC7
:1030F0008F70C82ED12CE12CF12C022E04C0CC0CE8
:10310000DD1CEE1CFF1C0A94D2F764FF10C06FE0B8
:1031100070E080E090E004C0660F771F881F991F61
:103120002A95D2F7609570958095909503C060E0E0
:1031300070E0CB01242F269526952370422F50E076
:1031400042305105D1F04330510559F16C297D29A8
:103150008E299F294130510541F128960FB6F894E8
:10316000DEBF0FBECDBFDF91CF911F910F91FF90BA
:10317000EF90DF90CF900C94951E6C297D298E29BD
:103180009F2928960FB6F894DEBF0FBECDBFDF9102
:10319000CF911F910F91FF90EF90DF90CF900C9403
:1031A000AF1E0E94951EC701B60128960FB6F8946F
:1031B000DEBF0FBECDBFDF91CF911F910F91FF906A
:1031C000EF90DF90CF900C947B1EFF2019F0842F9E
:1031D000817001C08695882309F466C1262F229547
:1031E00026952770220F220F862F8F70C82ED12C84
:1031F000E12CF12C022E04C0CC0CDD1CEE1CFF1CBB
:103200000A94D2F764FF10C06FE070E080E090E0B5
:1032100004C0660F771F881F991F2A95D2F7609503
:1032200070958095909503C060E070E0CB01242FED
:10323000269526952370422F50E042305105D1F05B
:103240004330510559F16C297D298E299F29413040
:10325000510541F128960FB6F894DEBF0FBECDBFE1
:10326000DF91CF911F910F91FF90EF90DF90CF9062
:103270000C94691F6C297D298E299F2928960FB6E9
:10328000F894DEBF0FBECDBFDF91CF911F910F919C
:10329000FF90EF90DF90CF900C94831F0E94691FE6
:1032A000C701B60128960FB6F894DEBF0FBECDBF9A
:1032B000DF91CF911F910F91FF90EF90DF90CF9012
:1032C0000C944F1F603FC9F118F4603E50F49CC04D
:1032D000623F09F461C008F44BC0633F09F470C059
:1032E00093C0162F1F70842F8F71FF2099F00E94BA
:1032F000E81E812F28960FB6F894DEBF0FBECDBF13
:10330000DF91CF911F910F91FF90EF90DF90CF90C1
:103310000C9451170E94091F812F28960FB6F8941C
:10332000DEBF0FBECDBFDF91CF911F910F91FF90F8
:10333000EF90DF90CF900C945817FF20A9F0253024
:1033400008F0B2C0842F8F7128960FB6F894DEBFB4
:103350000FBECDBFDF91CF911F910F91FF90EF90E6
:10336000DF90CF900C942E1F263008F09DC0EACF3E
:10337000FF20A1F0842F8F7128960FB6F894DEBF3E
:103380000FBECDBFDF91CF911F910F91FF90EF90B6
:10339000DF90CF900C94E81EFF2061F3842F8F7193
:1033A00028960FB6F894DEBF0FBECDBFDF91CF9148
:1033B0001F910F91FF90EF90DF90CF900C94091F19
:1033C000FF2091F0842F8F7128960FB6F894DEBFFE
:1033D0000FBECDBFDF91CF911F910F91FF90EF9066
:1033E000DF90CF900C94D31E28960FB6F894DEBFD2
:1033F0000FBECDBFDF91CF911F910F91FF90EF9046
:10340000DF90CF900C94C91EFF20A1F0222309F475
:10341000B1CF862F28960FB6F894DEBF0FBECDBF72
:10342000DF91CF911F910F91FF90EF90DF90CF90A0
:103430000C943A16222309F4B1CF862F28960FB6A2
:10344000F894DEBF0FBECDBFDF91CF911F910F91DA
:10345000FF90EF90DF90CF900C9402174F70C8014F
:103460000E94F70728960FB6F894DEBF0FBECDBFB7
:10347000DF91CF911F910F91FF90EF90DF90CF9050
:103480000C94EE1D4F70C80128960FB6F894DEBF5D
:103490000FBECDBFDF91CF911F910F91FF90EF90A5
:1034A000DF90CF900C948D0B28960FB6F894DEBF6A
:1034B0000FBECDBFDF91CF911F910F91FF90EF9085
:1034C000DF90CF9008950E94A0200E9475200E9456
:1034D000BC200E947A260E944C2580E090E00E9449
:1034E0000C1580E090E00C9422150E9490200C9422
:1034F000631A0E949E1F292F22952F7030E02C30D6
:1035000031054CF42A3031056CF422503109223057
:10351000310590F407C02C30310551F02F303105C2
:1035200039F00AC0803E10F0803F31F481E0089508
:1035300093FB882780F9089580E00895CF93DF9367
:1035400000D000D01F92CDB7DEB70F900F900F9034
:103550000F900F90DF91CF910895CF93DF9300D01C
:1035600000D000D0CDB7DEB726960FB6F894DEBFF8
:103570000FBECDBFDF91CF9108951F93CF93DF93FF
:10358000C091840116E080918501C81799F0D0E0C0
:103590001C9FF0011D9FF00D1124EA57FE4F408142
:1035A000518162817381848195810E94AD1A219637
:1035B000C770E9CFDF91CF911F9108954091B60177
:1035C0005091B7016091B8017091B9018091BA0131
:1035D0009091BB010C94AD1ACF938091BB01829561
:1035E0008F7009F05FC08091B801882309F45AC038
:1035F00020918401A09185016091B6017091B7017D
:103600008091B9019091BA0131E06F3F09F030E04B
:10361000B32FC6E02A1709F445C0009721F07F3F79
:1036200021F44B2F03C041E001C040E030E040FDF9
:1036300035C0C29FF001C39FF00D1124EA57FE4F21
:10364000418174132BC04081641328C04281411111
:1036500025C0438154814817590710F4415051093E
:10366000481B590B483C5105C8F48091BB018F7031
:1036700080618093BB0186E0829FF001839FF00D03
:103680001124E557FE4F80818F708061808386EB27
:1036900091E00E945F17CF910C94BD1A2F5F3F4FAE
:1036A0002770B8CFCF910895CF92DF92EF92FF921B
:1036B0000F931F93CF93DF93CDB7DEB762970FB60B
:1036C000F894DEBF0FBECDBF8C0185E0F801DE01AE
:1036D0001D9601900D928A95E1F7D8014C911196B3
:1036E0005C91119712966C9112971396ED90FC9045
:1036F00014977091B601E091B7012091B901309112
:10370000BA012115310531F0EF3F31F481E07F3FFF
:1037100019F403C081E001C080E0B82FB170CB2E56
:1037200080FD6CC1D090B801DD2009F4F5C0F091A6
:10373000BB01E216F30638F0C701821B930B883CED
:10374000910548F09BC0209530952E0D3F1D283CDB
:10375000310508F093C08F2F807F09F052C0E51328
:1037600014C0741312C0D62E61110FC0FF70F06127
:10377000F093BB010E94DE1A86EB91E00E945F1776
:103780008091BB01F80185836CC1EF2831F05F3F68
:1037900031F481E04F3F19F403C081E001C080E0C3
:1037A00080FD03C081E0862701C080E0F82FF17022
:1037B000FF2E80FF1CC0809184012091850136E09E
:1037C000821709F428C190E0389FF001399FF00D6D
:1037D0001124EA57FE4F7181571306C070814713B9
:1037E00003C07281671303C001968770E9CFD62E9C
:1037F000662309F436C18091BB0181608093BB01CF
:1038000053C0E51308C0741306C0611104C0D80189
:103810001596FC93AEC04D875E878D859E856A8B1D
:103820000E94791A6A89882329F1D62E662311F11C
:103830002091BB01822F82958F7090E002970CF44B
:1038400060C08091B6019091B70198878F831986E7
:10385000FB86EA862C87CE01079651C0E51731F129
:103860004D875E878D859E856A8B0E94791A6A894D
:1038700081112EC0C8010E945F17A4C08F2F807FC6
:1038800069F77E2DF98AE88A89890E949E1A86EB5B
:1038900091E00E945F17E6EBF1E086E0DF011D9208
:1038A0008A95E9F70E94DE1AD12CDBC07413D8CFB9
:1038B0006111D6CFD8011596FC93C8010E945F17FD
:1038C000E6EBF1E086E0DF011D928A95E9F7C9C0D9
:1038D000D62E662379F22091BB01822F82958F70BC
:1038E00090E0029774F08091B6019091B7019A83AD
:1038F00089831B82FD82EC822E83CE0101960E9479
:103900005F1786E0F801A6EBB1E001900D928A9571
:10391000E1F70E94EC1A6FC0E216F30628F0C70127
:10392000821B930B9C0104C0209530952E0D3F1DEA
:10393000283C310508F052C0D62E662309F49ACFF0
:10394000E5132CC074132AC08091BB0180FD1DC0FB
:10395000982F92959F70C9F0D80115968C93159762
:103960009F3039F09F5F9295907F8F70892B1596CD
:103970008C93C8010E945F1786E0F801A6EBB1E0C6
:1039800001900D928A95E1F736C086E0F801A6EB2A
:10399000B1E001900D928A95E1F763C04D875E8793
:1039A0008D859E850E94791A882379F086E0F8013A
:1039B000A6EBB1E001900D928A95E1F70E94EC1A16
:1039C0000E94DE1ADD24D3944CC08091BB0181603B
:1039D0008093BB01C8010E945F1743C07E2DF98A06
:1039E000E88A89890E949E1AE6EBF1E086E0DF0111
:1039F0001D928A95E9F70E94DE1A33C0662309F406
:103A000039CF4D875E878D859E850E94791A8823E0
:103A100009F430CFCBCF4D875E878D859E850E9480
:103A20009E1F292F22952F7030E0223031052CF473
:103A30009F7041F0811106C00CC0243031052CF478
:103A40009F7049F4805E883020F0C8010E945F17A3
:103A5000CF2CDC2C06C0D80115969C91907F91F755
:103A6000F8CF8D2D62960FB6F894DEBF0FBECDBF96
:103A7000DF91CF911F910F91FF90EF90DF90CF904A
:103A800008951F93CF93DF93CDB7DEB72C970FB672
:103A9000F894DEBF0FBECDBF4F83588769877A8702
:103AA0008B879C87CE0107960E94541B8823C1F008
:103AB0002F8138858A859B85892B31F03F3F11F016
:103AC00080E003C02F3FE1F781E0811147C04F81C3
:103AD000588569857A858B859C850E94AD1A3EC084
:103AE00086E0FE013796DE01119601900D928A95CF
:103AF000E1F7FF81E8854A855B854115510531F085
:103B0000EF3F31F481E0FF3F19F403C081E001C0D1
:103B100080E080FD23C02091850130E0C90101963D
:103B2000877099276091840170E086179707F1F1FB
:103B3000F983EA835D834C8396E0929FD001939F43
:103B4000B00D1124AA57BE4FFE01319601900D927F
:103B50009A95E1F7809385010E94BD1A16E0809145
:103B6000840190918501891779F1189FC001112472
:103B70008A579E4F0E94541B882331F1E0918401A3
:103B80001E9FF0011124EA57FE4F4081518162814E
:103B90007381848195810E94AD1A8091840190E0A7
:103BA00001968770992780938401D9CF0E94751A56
:103BB0001092850110928401E6EBF1E086E0DF01CE
:103BC0001D928A95E9F7CACF2C960FB6F894DEBFFE
:103BD0000FBECDBFDF91CF911F910895EF92FF925D
:103BE0000F931F93CF93DF939C01009709F471C04B
:103BF000F12CEE24E394E9012196F90184918437B4
:103C000040F4843008F056C0813081F0823021F1D8
:103C100060C0853709F449C0C0F19CE7980F903720
:103C200008F057C08F770E94021746C089010E5FC7
:103C30001F4FFE01849190E2980F983050F48770E6
:103C4000FE2D01C0FF0F8A95EAF78F2F0E94932067
:103C500015C00E943A1614C089010E5F1F4FFE0165
:103C6000849190E2980F983068F48770FE2D01C01F
:103C7000FF0F8A95EAF78F2F0E9499200E94BC209F
:103C8000E8011AC00E940217FBCF2E5F3F4FFE01D2
:103C9000C491CC2341F08FE99FE00197F1F700C078
:103CA0000000C150F6CFE90107C0FE01F490E90120
:103CB000229602C00E943A168F2D882341F0EFE928
:103CC000FFE03197F1F700C000008150F6CF9E0170
:103CD00092CFDF91CF911F910F91FF90EF900895B8
:103CE00008956093C0017093C1018093C2019093C5
:103CF000C3010C94631A0F931F930091C00110919C
:103D0000C1012091C2013091C301062B172B282B32
:103D1000392B0093C0011093C1012093C20130934D
:103D2000C3011F910F910C94631A0F931F9300917D
:103D3000C0011091C1012091C2013091C30106233D
:103D40001723282339230093C0011093C101209326
:103D5000C2013093C3011F910F910C94631A0F930A
:103D60001F930091C0011091C1012091C2013091B7
:103D7000C30106271727282739270093C00110936E
:103D8000C1012093C2013093C3011F910F910C9484
:103D9000631A1092BC011092BD011092BE011092E4
:103DA000BF010C94631A41E050E060E070E004C091
:103DB000440F551F661F771F8A95D2F74093BC01A9
:103DC0005093BD016093BE017093BF010C94631AC0
:103DD00041E050E060E070E004C0440F551F661FF2
:103DE000771F8A95D2F78091BC019091BD01A09177
:103DF000BE01B091BF01842B952BA62BB72B8093CE
:103E0000BC019093BD01A093BE01B093BF010C947F
:103E1000631A41E050E060E070E004C0440F551FB9
:103E2000661F771F8A95D2F74095509560957095DB
:103E30008091BC019091BD01A091BE01B091BF01E4
:103E400084239523A623B7238093BC019093BD01BF
:103E5000A093BE01B093BF010C94631A41E050E0FF
:103E600060E070E004C0440F551F661F771F8A95FD
:103E7000D2F78091BC019091BD01A091BE01B0919B
:103E8000BF0184279527A627B7278093BC0190936D
:103E9000BD01A093BE01B093BF010C94631A0F93B0
:103EA0001F930091BC011091BD012091BE01309182
:103EB000BF01062B172B282B392B0093BC01109325
:103EC000BD012093BE013093BF011F910F910C944F
:103ED000631A0F931F930091BC011091BD012091B3
:103EE000BE013091BF0106231723282339230093F5
:103EF000BC011093BD012093BE013093BF011F91FF
:103F00000F910C94631A0F931F930091BC011091B1
:103F1000BD012091BE013091BF0106271727282738
:103F200039270093BC011093BD012093BE0130934B
:103F3000BF011F910F910C94631A0895CF92DF92E5
:103F4000EF92FF920F931F93CF93DF93EC01C090FA
:103F5000C001D090C101E090C201F090C3018091F6
:103F6000BC019091BD01A091BE01B091BF01C82AD2
:103F7000D92AEA2AFB2A0FE110E0B701A601002E98
:103F800004C076956795579547950A94D2F740FFF8
:103F900007C0BE01802F0E94B00B8130910539F41B
:103FA0000150110950F7BE0180E00E94B00BDF9173
:103FB000CF911F910F91FF90EF90DF90CF900895D8
:103FC00090910C01992361F190910D01992341F198
:103FD000982F9695969596959F3088F4E0910E01CE
:103FE000F0910F01E90FF11D877021E030E001C071
:103FF000220F8A95EAF78181822B8183089590911F
:10400000D70190FF2DC01F928F9387ED95E09F936E
:104010008F930E94EE070F900F900F900F900895CE
:1040200040910E0150910F0120E030E09FEFFA0126
:10403000E20FF31F6281681799F09F3F19F4611135
:1040400001C0922F2F5F3F4F2E30310581F79F3FE8
:1040500039F0FA01E90FF11D97FDFA958283089571
:10406000089590910C01992369F190910D01992384
:1040700049F1982F9695969596959F3090F4E091FA
:104080000E01F0910F01E90FF11D877021E030E082
:1040900001C0220F8A95EAF7209581812823218388
:1040A00008959091D70190FF1FC01F928F9389EBC5
:1040B00095E09F938F930E94EE070F900F900F90C3
:1040C0000F90089540910E0150910F0120E030E0D3
:1040D000FA01E20FF31F9281981301C012822F5F41
:1040E0003F4F2E303105A1F7089581E090E0E09137
:1040F0000E01F0910F01E80FF91F10820196803137
:104100009105A9F708959091D601982B9093D60127
:10411000089580959091D60198239093D6010895A3
:104120001092D60108959091D501982B9093D501C6
:10413000089580959091D50198239093D501089585
:104140001092D50108958093C40108951092C4017E
:10415000089540910E0150910F0120E030E080E081
:10416000FA01E20FF31F918191118F5F2F5F3F4F93
:104170002F303105A9F70895E0910E01F0910F015C
:104180008091D6018083E0910E01F0910F01808132
:104190009091D501892B80839091C401992361F07E
:1041A000E0910E01F0910F018081892B80830E94A4
:1041B000A92081111092C40180910E0190910F01EC
:1041C0000C94BC1490933B0180933A010895CF92D4
:1041D000DF92EF92FF920F931F936C01EE24FF2466
:1041E000C114D104E104F10421F46B017C0180E0ED
:1041F00001C080E133272F2D1E2D0D2D0115110536
:104200002105310519F0885F680179019701860160
:10421000A4E03695279517950795AA95D1F701152E
:1042200011052105310519F08C5F680179019701AD
:104230008601F2E03695279517950795FA95D1F7FF
:10424000011511052105310519F08E5F680179010D
:10425000B701A6017695679557954795452B462B4F
:10426000472B09F08F5F1F910F91FF90EF90DF9028
:10427000CF9008958295982F9C7C96959695837300
:1042800044E0849F90011124922B892F8A7A86958D
:104290009575990F892B08951F93CF93DF931F92E4
:1042A000CDB7DEB799830E943A21182F9981892FC3
:1042B0000E943A21212F30E0322F2227A901482BDA
:1042C000CA010F90DF91CF911F9108958091F00165
:1042D000843009F11092D80120E488E190E00FB613
:1042E000F894A895809360000FBE2093600083B778
:1042F000817F846083BF83B7816083BF7894889512
:1043000083B78E7F83BF88E10FB6F89480936000F7
:10431000109260000FBE089508950895CF930E94F3
:104320008C210E9456090E948D21C0E08C2F0E9492
:10433000810A811105C0CF5FCE30C1F780E001C096
:1043400081E0CF9108950C94751A82E084BD93E0CA
:1043500095BD9AEF97BD80936E0008952FB7F8949E
:104360008091D9019091DA01A091DB01B091DC013B
:104370002FBF0895CF92DF92EF92FF920F931F937A
:104380002FB7F8944091D9015091DA016091DB0187
:104390007091DC012FBF6A017B01EE24FF248C01A8
:1043A00020E030E0C016D106E206F30610F44150DA
:1043B0005109481B590BCA011F910F91FF90EF90B3
:1043C000DF90CF9008951F920F920FB60F92112495
:1043D0008F939F93AF93BF938091D9019091DA010E
:1043E000A091DB01B091DC010196A11DB11D80936C
:1043F000D9019093DA01A093DB01B093DC01BF9166
:10440000AF919F918F910F900FBE0F901F901895B5
:104410000E94B711F8942FEF87EA91E6215080406F
:104420009040E1F700C0000087E090EBDC01809352
:10443000F9019093FA01A093FB01B093FC012CE0E9
:1044400088E190E00FB6F894A895809360000FBEC5
:1044500020936000FFCFEF92FF920F931F93CF93B3
:10446000DF93E82EF12C8F2D0E94810AC0E0D0E06E
:10447000082F10E098010C2E02C0359527950A945C
:10448000E2F720FD05C02196C630D10599F709C095
:104490006C2F7F2D80E00E948E0BE812F4CF81E01C
:1044A00005C0F3948EE0F812DECF80E0DF91CF916B
:1044B0001F910F91FF90EF900895CF93C82F8CE23A
:1044C0000E942B22882321F08C2FCF910C942B2239
:1044D00080E0CF910895CF930E94B823811102C04C
:1044E0000E949E238CEF95E00E945507C5E6C150BF
:1044F00049F00E9456098FE39CE90197F1F700C04B
:104500000000F5CF85EF95E00E94550789E20E94F3
:104510005D22811111C18AE20E945D2281110E94F7
:104520009E2385E00E945D2281110E9408220E9444
:10453000C3238093D70187E00E945D22882399F1ED
:104540008BE10E945D22882351F09091D70191FB6D
:10455000882780F921E0822780FB91F922C08EE034
:104560000E945D22882351F09091D70192FB882709
:1045700080F921E0822780FB92F913C080E10E943C
:104580005D229091D701882341F093FB882780F921
:1045900021E0822780FB93F904C0892F809580FB5E
:1045A00090F99093D7018091D7010E94C7230E9470
:1045B000D5238093EA0180EE0E945D22882341F09A
:1045C0008091EA01982F909590FB80F98093EA0101
:1045D00089E30E945D22882359F09091EA0191FBC2
:1045E000882780F921E0822780FB91F99093EA01E6
:1045F00082EE0E945D22882359F09091EA0192FB9D
:10460000882780F921E0822780FB92F99093EA01C4
:1046100086EE0E945D22882359F09091EA0193FB77
:10462000882780F921E0822780FB93F99093EA01A3
:1046300083EE0E945D22882359F09091EA0194FB59
:10464000882780F921E0822780FB94F99093EA0182
:1046500085E30E945D22882359F09091EA0195FB41
:10466000882780F921E0822780FB95F99093EA0161
:1046700081E30E945D22882359F09091EA0196FB24
:10468000882780F921E0822780FB96F99093EA0140
:1046900081E10E945D22882359F09091EA0197FB05
:1046A000882780F921E0822780FB97F99093EA011F
:1046B0008091EA010E94D9238091EA0187FB882733
:1046C00080F980930D0187E20E945D22C82F8EE160
:1046D0000E945D228111C2608FE10E945D228111E2
:1046E000C46080E20E945D228111C86081E20E9464
:1046F0005D228111C06182E20E945D228111C0624F
:1047000083E20E945D228111C06484E20E945D22E6
:10471000882311F0C06802C0CC2329F08C2F0E949E
:10472000D0236C2F03C00E94CC23682F70E080E060
:1047300090E0CF910C94711ECF9108956DEE7EEFB5
:1047400080E090E00E94932D60E082E090E00E9483
:10475000852D60E083E090E00E94852D60E084E09C
:1047600090E00E94852D60E085E090E00C94852D1E
:1047700080E090E00E947F2D21E08D3E9E4F09F069
:1047800020E0822F089582E090E00C94772D682F2E
:1047900082E090E00C94852D83E090E00C94772DDE
:1047A000682F83E090E00C94852D84E090E00C94D9
:1047B000772D682F84E090E00C94852D8091DF01A7
:1047C00080FF0BC06091130185E0689FB001112448
:1047D00075956795759567952AC081FF09C06091A9
:1047E000130185E0689FB0011124759567951FC07E
:1047F00082FF07C06091130185E0689FB00111241A
:1048000016C04091E0014423C9F06091120146179F
:1048100088F72091130185E0289F90011124429F81
:10482000C001439F900D112470E00E94492D603813
:10483000710540F46115710539F002C065E070E062
:10484000862F08958FE7089581E008958091DF0114
:1048500080FF08C06091110170E0759567957595AE
:10486000679521C081FF06C06091110170E07595C8
:10487000679519C082FF04C06091110170E010C0FB
:104880008091E0018823C1F0609110018617A0F7A4
:1048900090911101989FC001112470E00E94492D50
:1048A0006038710528F46115710521F0862F08958F
:1048B0008FE7089581E0089561E070E0F4CF803FD4
:1048C00021F40E94DE23819504C0813F29F40E94D7
:1048D000DE238093E3010895823F21F40E94DE23CA
:1048E000819504C0833F29F40E94DE238093E20176
:1048F0000895893F19F40E94262405C08A3F31F4A7
:104900000E94262481958093E40108958B3F21F431
:104910000E942624819504C08C3F29F40E942624FD
:104920008093E5010895843F21F48091E101816045
:1049300017C0853F21F48091E101826011C0863F5C
:1049400021F48091E10184600BC0873F21F48091C4
:10495000E101886005C0883F31F48091E101806108
:104960008093E10108958D3F21F48091DF01816002
:104970000BC08E3F21F48091DF01826005C08F3F24
:1049800029F48091DF0184608093DF010895803FE6
:1049900039F48091E30187FF6CC01092E30169C094
:1049A000813F29F48091E3011816BCF362C0909115
:1049B000E201823F29F497FF5CC01092E20159C0E6
:1049C000833F19F41916CCF354C0893F41F4809108
:1049D000E40118160CF04DC01092E4014AC08A3F61
:1049E00029F48091E40187FF44C0F6CF8B3F39F46E
:1049F0008091E50187FF3DC01092E5013AC08C3FF0
:104A000029F48091E5011816BCF333C0843F21F4EA
:104A10008091E1018E7F17C0853F21F48091E101F3
:104A20008D7F11C0863F21F48091E1018B7F0BC007
:104A3000873F21F48091E101877F05C0883F31F4F1
:104A40008091E1018F7E8093E10113C08D3F21F4BD
:104A50008091DF018E7F0BC08E3F21F48091DF01BA
:104A60008D7F05C08F3F29F48091DF018B7F80937C
:104A7000DF018091E20181110EC08091E30181117B
:104A80000AC08091E401811106C08091E501811185
:104A900002C01092E00108958091D70183FF7EC08B
:104AA00088E396E00E9455078091E1011F928F9361
:104AB00083E396E09F938F930E94EE0781E396E055
:104AC0000E9455072091E201822F992787FD90953A
:104AD0009F932F938EE296E09F938F930E94EE0711
:104AE0008CE296E00E9455072091E301822F9927DE
:104AF00087FD90959F932F9389E296E09F938F93E4
:104B00000E94EE0787E296E00E9455072091E4019B
:104B1000822F992787FD90959F932F9384E296E0AB
:104B20009F938F930E94EE0782E296E00E945507C2
:104B30002091E501822F992787FD90959F932F93D0
:104B40008FE196E09F938F930E94EE078CE196E0B1
:104B50000E9455078091E0011F928F9389E196E0B2
:104B60009F938F930E94EE0787E196E00E9455077E
:104B70008091DF011F928F9384E196E09F938F9342
:104B80000E94EE0781E196E00E9455078DB79EB71F
:104B90004C960FB6F8949EBF0FBE8DBF81EE91E08C
:104BA0000E9401150E94AE219093DE018093DD01E9
:104BB00008951F93CF93DF938091DD019091DE01E3
:104BC0000E94BA214091E001442321F02091140178
:104BD00030E006C0209115015AE0259F9001112474
:104BE0008217930708F482C08091E2011091E301DB
:104BF000D091E401C091E501811107C0111105C0F8
:104C0000D11103C0CC2309F471C04F3F19F04F5F9D
:104C10004093E001181624F40E94DE238093E20101
:104C20008091E20187FF05C00E94DE238195809379
:104C3000E201111624F40E94DE238093E3018091A7
:104C4000E30187FF05C00E94DE2381958093E30185
:104C50006091E201662339F11091E301112319F10A
:104C6000772767FD7095872F972F0E944E2C23E39F
:104C700033E343E35FE30E94B22C0E941B2C60935A
:104C8000E201612F772767FD7095872F972F0E948C
:104C90004E2C23E333E343E35FE30E94B22C0E94F4
:104CA0001B2C6093E3011D1624F40E94262480939C
:104CB000E4018091E40187FF05C00E9426248195CC
:104CC0008093E4011C1624F40E9426248093E501BD
:104CD0008091E50187FF05C00E942624819580937D
:104CE000E501DF91CF911F910C944C25DF91CF917D
:104CF0001F910895E1EEF1E085E0DF011D928A95B4
:104D0000E9F71092E0011092DF0108958BE598E039
:104D10000E9455071F9281E08F931F9285E08F9329
:104D20008DE098E09F938F930E94EE070F900F9075
:104D30000F900F900F900F9008958330E9F128F4B1
:104D4000813061F0823009F10895853009F462C044
:104D500008F449C0863009F474C008952091150103
:104D6000862F90E0820F911D8F3F910520F4620FF6
:104D70006093150103C08FEF809315018091150199
:104D80001F928F9386E497E072C020911401862FC2
:104D900090E0820F911D8F3F910520F4620F609388
:104DA000140103C08FEF80931401809114011F92AE
:104DB0008F9384E397E05BC020911301862F90E0EE
:104DC000820F911D8F3F910520F4620F60931301B4
:104DD00003C08FEF80931301809113011F928F9373
:104DE00081E297E044C020911201862F90E0820F6B
:104DF000911D8F3F910520F4620F6093120103C053
:104E00008FEF80931201809112011F928F938CE09B
:104E100097E02DC020911101862F90E0820F911D07
:104E20008F3F910520F4620F6093110103C08FEF53
:104E300080931101809111011F928F9383EF96E06F
:104E400016C020911001862F90E0820F911D8F3F98
:104E5000910520F4620F6093100103C08FEF8093DF
:104E60001001809110011F928F9388ED96E09F931F
:104E70008F930E94EE070F900F900F900F90089560
:104E8000833081F128F4813059F08230D1F00895D7
:104E9000853009F449C0B8F1863009F456C0089548
:104EA00080911501681720F4861B8093150102C0BC
:104EB00010921501809115011F928F9389EC96E055
:104EC00054C080911401681720F4861B809314014C
:104ED00002C010921401809114011F928F9387EBEE
:104EE00096E043C080911301681720F4861B8093DD
:104EF000130102C010921301809113011F928F932E
:104F000084EA96E032C080911201681720F4861B73
:104F10008093120102C010921201809112011F921F
:104F20008F938FE896E021C080911101681720F4DB
:104F3000861B8093110102C0109211018091110112
:104F40001F928F9386E796E010C08091100168173A
:104F500020F4861B8093100102C0109210018091F2
:104F600010011F928F938BE596E09F938F930E9481
:104F7000EE070F900F900F900F900895CF93C82FCA
:104F80001F928F9320E639E03F932F930E94EE0704
:104F900061E070E080E090E004C0660F771F881F3A
:104FA000991FCA95D2F70E94711E0F900F900F9013
:104FB0000F90CF910C94751ACF938D3109F465C081
:104FC000B0F58E3009F4CBC100F5873009F49BC1F0
:104FD000A8F4863009F06AC28091D701817F8E7F64
:104FE0008093D70185E699E00E94550787EA9DE006
:104FF0000E94550781E08093E70180C1883009F461
:105000004FC08B3009F47CC151C2863109F4EDC127
:1050100038F4803109F4B6C1813109F42DC246C299
:10502000893109F4CBC18B3109F486C13FC2853384
:1050300009F434C248F4873209F430C208F430C2AB
:10504000893209F42BC232C2833438F48A3308F02F
:1050500029C2883309F454C129C2833409F41EC219
:10506000883409F023C20E94751A86E99DE00E94E7
:1050700055079FEF23ED80E3915020408040E1F7FA
:1050800000C000000E94082239C186EB9DE00E940A
:1050900055070E94D52B0E94B0140E94EE0C2EC121
:1050A0008BEA9DE00E94550786E79BE00E9455072A
:1050B0000E94CC231F928F9383E79BE09F938F9353
:1050C0000E94EE0781E79BE00E9455070E94C323E0
:1050D000C82F8EE59BE00E9455071F92CF9329E5CC
:1050E0003BE03F932F930E94EE0787E59BE00E94F1
:1050F00055078DE49BE00E9455078C2F81701F920D
:105100008F932AE43BE03F932F930E94EE0788E4BD
:105110009BE00E9455078EE39BE00E945507C1FB70
:10512000882780F91F928F932BE33BE03F932F93C7
:105130000E94EE0789E39BE00E9455078DE29BE009
:105140000E945507C2FB882780F91F928F932AE29D
:105150003BE03F932F930E94EE0788E29BE00E9482
:1051600055078FE19BE00E945507C3FBCC27C0F990
:105170001F92CF938CE19BE09F938F930E94EE0749
:105180008AE19BE00E9455070E94D523C82F86E044
:105190009BE00E9455071F92CF9321E03BE03F9395
:1051A0002F930E94EE078FEF9AE00E94550786EE3C
:1051B0009AE00E9455078C2F81701F928F9323EEE7
:1051C0003AE03F932F930E94EE078DB79EB78096EB
:1051D0000FB6F8949EBF0FBE8DBF81EE9AE00E947D
:1051E00055078AEC9AE00E945507C1FB882780F991
:1051F0001F928F9327EC3AE03F932F930E94EE0784
:1052000085EC9AE00E94550783EB9AE00E945507CF
:10521000C2FB882780F91F928F9320EB3AE03F93DF
:105220002F930E94EE078EEA9AE00E9455078CE9C0
:105230009AE00E945507C3FB882780F91F928F933D
:1052400029E93AE03F932F930E94EE0787E99AE01D
:105250000E9455078DE89AE00E945507C4FB8827F5
:1052600080F91F928F932AE83AE03F932F930E9490
:10527000EE0788E89AE00E94550786E79AE00E94C8
:105280005507C5FB882780F91F928F9323E73AE0E3
:105290003F932F930E94EE0781E79AE00E94550703
:1052A00085E59AE00E945507C6FB882780F91F9282
:1052B0008F9322E53AE03F932F930E94EE0780E51B
:1052C0009AE00E94550788E49AE00E945507C7FBC0
:1052D000CC27C0F91F92CF9385E49AE09F938F93D8
:1052E0000E94EE0783E49AE00E9455078DB79EB7AF
:1052F0004C960FB6F8949EBF0FBE8DBFC1E0DBC0C9
:105300008CE899E058C08091D701C82FC17080FF08
:1053100009C089E89DE00E9455078091D701817FEF
:105320008E7F44C08DE79DE00E9455078091D70194
:1053300081608093D701E2CF8091D70181FBCC2798
:10534000C0F991E0C927C0FB81F98093D701CC2334
:1053500019F080E79DE025C082E69DE02CC0809199
:10536000D70182FBCC27C0F991E0C927C0FB82F9A5
:105370008093D701CC2319F083E59DE012C083E42C
:105380009DE019C08091D70183FBCC27C0F991E043
:10539000C927C0FB83F98093D701CC2351F087E361
:1053A0009DE00E9455078091D70181608093D701CD
:1053B00082C08AE29DE00E945507A0CF8BE19DE06C
:1053C0000E9455078FEE9CE00E94550782EB9CE0FF
:1053D0000E94550785E89CE00E94550781E49CE007
:1053E0000E94550786E19CE0E6CF88E09CE00E94A1
:1053F00055070E94B0141F928F938EEE9BE09F93EF
:105400008F930E94EE0780910C011F928F9387ED7E
:105410009BE09F938F930E94EE0780916E011F92F5
:105420008F9384EC9BE09F938F930E94EE07809173
:105430000D011F928F9381EB9BE09F938F930E94AE
:10544000EE078091D9019091DA01A091DB01B09132
:10545000DC01BF93AF939F938F938DE99BE09F9364
:105460008F930E94EE078DB79EB746960FB6F894BD
:105470009EBF0FBE8DBF42CF0E94751AC0910D0115
:1054800081E0C827C0930D01CC2329F083E99BE07C
:105490000E94550710C088E89BE08DCF80E003C0D4
:1054A0008D5101C089530E94BE2728CF86E89BE01A
:1054B0000E945507C0E08C2FCF91089580E0089599
:1054C00080E00895CF93C82F8091E701813081F06B
:1054D00020F0823009F44CC042C1A0910E01B0917D
:1054E0000F018C91813169F0823209F03AC109C013
:1054F000A0910E01B0910F018C91813111F0823297
:1055000049F48C2F0E945E2A81112FC08C2F0E949B
:10551000DC272CC08C2F0E94602A811126C0C43148
:10552000E1F070F4CB3081F0C031D1F40E948626D6
:1055300088E599E00E94550782E08093E70115C055
:10554000C93259F0C83361F485E699E00E945507E5
:105550008CE599E00E94550708C01092E70103C14D
:1055600086E599E00E945507FEC081E08170FDC08C
:10557000C43220F5CE3108F0C0C0CB3099F1C8F468
:10558000C73009F0D2C08AE08093150194E190936E
:10559000140193E0909313018093120188E08093AB
:1055A000110188E2809310018CEF97E00E9455076B
:1055B000BFC0C33149F1C431C1F0B7C0CB3409F425
:1055C000A9C028F4C93289F0C83361F0AEC0C13532
:1055D00009F49EC0C23509F499C0CE3409F0A5C0C3
:1055E0006AE09EC00E948626A3C08091E6018823BF
:1055F00019F01092E6019CC089E098E00E945507DE
:1056000081E08093E701B1C083EE97E00E945507E7
:1056100081ED97E00E945507809115011F928F93AD
:105620008EEC97E09F938F930E94EE078CEC97E0AF
:105630000E9455078AEB97E00E945507809114015C
:105640001F928F9387EB97E09F938F930E94EE07B3
:1056500085EB97E00E94550786EA97E00E94550780
:10566000809113011F928F9383EA97E09F938F930A
:105670000E94EE0781EA97E00E94550780E997E0D3
:105680000E945507809112011F928F938DE897E039
:105690009F938F930E94EE078BE897E00E94550737
:1056A00086E797E00E945507809111011F928F9322
:1056B00083E797E09F938F930E94EE0781E797E03F
:1056C0000E9455078AE597E00E94550780911001D6
:1056D0001F928F9387E597E09F938F930E94EE0729
:1056E00085E597E00E9455078DB79EB748960FB69F
:1056F000F8949EBF0FBE8DBF1BC0CE51EC2FF0E0C3
:10570000E15DFE4F80818093E60112C061E003C03D
:1057100061E006C06AE08091E6010E949D2608C013
:105720008091E6010E94402703C08AEF97E013C0F2
:105730008091E601882369F01F928F9384EF97E0B0
:105740009F938F930E94EE070F900F900F900F90F2
:1057500004C081EF97E00E94550781E006C01092D7
:10576000E70180E002C080E001CFCF910895E1E839
:10577000F0E08081886080838081816080838FB742
:10578000F89493E09093890090ED909388008FBFF8
:105790000895EFE6F0E08081826080830895EFE66F
:1057A000F0E080818D7F80830895EFE6F0E08081D6
:1057B00092E08927808308951F920F920FB60F926F
:1057C00011242F933F934F935F936F937F938F9306
:1057D0009F93AF93BF93EF93FF938091E8019091D4
:1057E000E90101969093E9018093E801811103C0DA
:1057F00082E00E94EE0CE091E901E695E695F0E08A
:10580000EA53F24FE4918091E8018E1303C080E0E7
:105810000E94EE0CFF91EF91BF91AF919F918F91FC
:105820007F916F915F914F913F912F910F900FBE9C
:105830000F901F90189504D06894B1118DC00895F1
:1058400070D088F09F5790F0B92F9927B751A0F0EA
:10585000D1F0660F771F881F991F1AF0BA95C9F704
:1058600012C0B13081F077D0B1E0089574C0672FD5
:10587000782F8827B85F39F0B93FCCF386957795B4
:105880006795B395D9F73EF490958095709561959D
:105890007F4F8F4F9F4F0895E89409C097FB3EF4C8
:1058A00090958095709561957F4F8F4F9F4F99236D
:1058B000A9F0F92F96E9BB279395F69587957795EB
:1058C0006795B795F111F8CFFAF4BB0F11F460FFAB
:1058D0001BC06F5F7F4F8F4F9F4F16C0882311F003
:1058E00096E911C0772321F09EE8872F762F05C017
:1058F000662371F096E8862F70E060E02AF09A95B2
:10590000660F771F881FDAF7880F9695879597F9A6
:10591000089557FD9058440F551F59F05F3F71F09F
:105920004795880F97FB991F61F09F3F79F0879506
:105930000895121613061406551FF2CF4695F1DF8F
:1059400008C0161617061806991FF1CF869571051F
:10595000610508940895E894BB2766277727CB0153
:1059600097F908950BD078C069D028F06ED018F060
:10597000952309F05AC05FC01124EECFCADFA0F30F
:10598000959FD1F3950F50E0551F629FF001729FD4
:10599000BB27F00DB11D639FAA27F00DB11DAA1FF3
:1059A000649F6627B00DA11D661F829F2227B00D40
:1059B000A11D621F739FB00DA11D621F839FA00DCB
:1059C000611D221F749F3327A00D611D231F849F1B
:1059D000600D211D822F762F6A2F11249F57504072
:1059E0008AF0E1F088234AF0EE0FFF1FBB1F661F0D
:1059F000771F881F91505040A9F79E3F510570F0C6
:105A000014C0AACF5F3FECF3983EDCF38695779500
:105A10006795B795F795E7959F5FC1F7FE2B880FC0
:105A2000911D9695879597F9089597F99F6780E856
:105A300070E060E008959FEF80EC089500240A94E0
:105A40001616170618060906089500240A94121659
:105A50001306140605060895092E0394000C11F48C
:105A6000882352F0BB0F40F4BF2B11F460FF04C039
:105A70006F5F7F4F8F4F9F4F0895991B79E004C050
:105A8000991F961708F0961B881F7A95C9F780957D
:105A9000089597FB072E16F4009407D077FD09D0E0
:105AA0000E94632D07FC05D03EF4909581959F4F91
:105AB0000895709561957F4F0895EE0FFF1F059033
:105AC000F491E02D0994AA1BBB1B51E107C0AA1F4A
:105AD000BB1FA617B70710F0A61BB70B881F991F8F
:105AE0005A95A9F780959095BC01CD010895F99933
:105AF000FECF92BD81BDF89A992780B50895A8E19F
:105B0000B0E042E050E00C949A2D262FF999FECF98
:105B10001FBA92BD81BD20BD0FB6F894FA9AF99ACA
:105B20000FBE019608950E94852D272F0C94862D77
:105B3000DC01CB01FC01F999FECF06C0F2BDE1BD4D
:105B4000F89A319600B40D9241505040B8F708953C
:045B5000F894FFCFF7
:105B54002002EF0CE00DBD0D890D560D0101C501AC
:105B640028080A03140A3F4D3620394605F904C3B0
:105B740004A3046A04DD03F6030F042804480401A3
:0A5B840002030405060708090000EB
:00000001FF

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 KiB

@ -0,0 +1,185 @@
#include "ergodox_ez.h"
#include "debug.h"
#include "action_layer.h"
#include "keymap_extras/keymap_german.h"
// Layer names
#define BASE 0 // default layer
#define SYMB 1 // symbol layer
#define MDIA 2 // media keys
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ^ | 1 | 2 | 3 | 4 | 5 | Play | | Next | 6 | 7 | 8 | 9 | 0 | ß |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Del | Q | W | E | R | T | L1 | | L2 | Z | U | I | O | P | Ü |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Caps | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä/L2 |
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
* | LShift | Y | X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | </L1 |#/Ctrl| ´ | - | + | | Right| Down | Up | Left | ~L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | App | LGui | | Alt |Ctrl/Esc|
* ,------+------+------| |------+--------+------.
* | | | Home | | PgUp | | |
* | Space|Backsp|------| |------| Tab |Enter |
* | |ace | End | | PgDn | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY,
KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
LT(SYMB,DE_LESS),CTL_T(DE_HASH), DE_ACUT, DE_MINS, DE_PLUS,
ALT_T(KC_APP), KC_LGUI,
KC_HOME,
KC_SPC,KC_BSPC,KC_END,
// right hand
KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
TG(2), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE,
KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE),
MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(DE_MINS), KC_RSFT,
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_FN1,
KC_LALT,CTL_T(KC_ESC),
KC_PGUP,
KC_PGDN,KC_TAB, KC_ENT
),
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | . | 0 | = | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_TRNS,DE_EXLM,DE_AT, DE_LCBR,DE_RCBR,DE_PIPE,KC_TRNS,
KC_TRNS,DE_HASH,DE_DLR, DE_LPRN,DE_RPRN,DE_GRV,
KC_TRNS,DE_PERC,DE_CIRC,DE_LBRC,DE_RBRC,DE_TILD,KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, KC_UP, KC_7, KC_8, KC_9, DE_ASTR, KC_F12,
KC_DOWN, KC_4, KC_5, KC_6, DE_PLUS, KC_TRNS,
KC_TRNS, DE_AMPR, KC_1, KC_2, KC_3, DE_BSLS, KC_TRNS,
KC_TRNS,KC_DOT, KC_0, DE_EQL, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 2: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | Lclk | MsUp | Rclk | | | | | |VolDwn| Mute |VolUp | | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------| |------| | Prev | Stop | Play | Next | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | |WhRght|WhDown| WhUp |WhLeft|WhClk | | | |BwSrch|BwBack|BwHome|BwRefr|BwFwd | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | |MsAcl0|MsAcl1|MsAcl2| | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | |Brwser|Brwser|
* | Lclk | Rclk |------| |------|Back |Forwd |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// MEDIA AND MOUSE
[MDIA] = KEYMAP(
KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS,
KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS,
KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5,
KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS,
KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_BTN1, KC_BTN2, KC_TRNS,
// right hand
KC_TRNS, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11,
KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12,
KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS,
KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_WBAK, KC_WFWD
),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
};
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);
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};
// Runs just one time when the keyboard initializes.
void * matrix_init_user(void) {
};
// Runs constantly in the background, in a loop.
void * matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
case SYMB:
ergodox_right_led_1_on();
break;
case MDIA:
ergodox_right_led_2_on();
break;
default:
ergodox_board_led_off();
break;
}
};

@ -0,0 +1,185 @@
#include "ergodox_ez.h"
#include "debug.h"
#include "action_layer.h"
// TODO: Define layer names that make sense for the ErgoDox EZ.
#define BASE 0 // default layer
#define SYMB 1 // symbols
#define MDIA 2 // media keys
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' |
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
* | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | App | LGui | | Alt |Ctrl/Esc|
* ,------|------|------| |------+--------+------.
* | | | Home | | PgUp | | |
* | Space|Backsp|------| |------| Tab |Enter |
* | |ace | End | | PgDn | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO,
KC_NO, KC_LCTL, KC_LALT,KC_LGUI, MO(2),
ALT_T(KC_APP), KC_LGUI,
KC_HOME,
KC_SPC,KC_SPC,KC_END,
// right hand
KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO,
KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_NO, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_ENT,
MO(1), KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,
KC_NO, KC_NO,
KC_PGUP,
KC_PGDN, KC_SPC,KC_SPC
),
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | . | 0 | = | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS,
KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 2: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | MsUp | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | Prev | Next | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | |Brwser|
* | | |------| |------| |Back |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// MEDIA AND MOUSE
KEYMAP(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS,
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS,
KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
};
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);
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};
// Runs just one time when the keyboard initializes.
void * matrix_init_user(void) {
};
// Runs constantly in the background, in a loop.
void * matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
// TODO: Make this relevant to the ErgoDox EZ.
case 1:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
default:
// none
break;
}
};

@ -0,0 +1,241 @@
// Netable differences vs. the default firmware for the ErgoDox EZ:
// 1. The Cmd key is now on the right side, making Cmd+Space easier.
// 2. The media keys work on OSX (But not on Windows).
#include "ergodox_ez.h"
#include "debug.h"
#include "action_layer.h"
#include "keymap_extras/keymap_german.h"
#define BASE 0 // default layer
#define SYMB 1 // symbols
#define MDIA 2 // media keys
#define CRSR 3 // media keys
#define NUMB 4 // number keys
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 |Lctrl | |Rctrl | 6 | 7 | 8 | 9 | 0 | ß |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | L3 | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/L2 |
* |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------|
* | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |</L1| ^° |AltShf| Left | Right| | Up | Down | CMD-SHIFT | + | #/L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | L1 | LGui | | Alt |Ctrl/Esc|
* ,------|------|------| |------+--------+------.
* | | | Home | | PgUp | | |
* | Space|Backsp|------| |------| Enter | Space|
* | |ace | End | | PgDn | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LCTL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI,
TG(3), KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT,
LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
TG(2), MEH_T(KC_NO),
KC_HOME,
KC_SPC,KC_BSPC,KC_END,
// right hand
KC_RCTL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
KC_RGUI, KC_Y, KC_U, KC_I, KC_O, KC_P, DE_UE,
KC_H, KC_J, KC_K, KC_L, KC_SCLN,LT(MDIA,DE_AE),
KC_RALT,KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
KC_UP, KC_DOWN,LGUI(KC_LSFT),KC_RBRC, LT(SYMB,KC_BSLS),
ALL_T(DE_ACUT), TG(4),
KC_PGUP,
KC_PGDN,KC_ENT, KC_SPC
),
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | ! | ? | | | | | \ | [ | ] | | | # | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | ^ | % | | | ~ | | | | & | < | > | " | ' | ? |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | . | ! | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_TRNS,KC_GRV,LSFT(KC_GRV),DE_EXLM,DE_QST,KC_TRNS,KC_TRNS,
KC_TRNS,DE_HASH,DE_DLR, LALT(LSFT(KC_7)),DE_SLSH,KC_DOT,
KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,LALT(KC_7),LALT(KC_N),KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_DEL,KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12,
DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS,
KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST,
KC_TRNS,KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 2: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | Play |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | MsUp | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | Prev | Next | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | |Brwser|
* | | |------| |------| |Back |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// MEDIA AND MOUSE
KEYMAP(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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,
KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS,
KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_WBAK
),
// Cursor layer
KEYMAP(
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_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
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_UP, KC_TRNS,
KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
//number pad
KEYMAP(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, 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,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12,
KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, KC_TRNS,
KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS,
KC_0,KC_DOT, KC_0, KC_EQL, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols)
[2] = ACTION_LAYER_TAP_TOGGLE(CRSR) // FN2 - Momentary Layer 2 (Cursors)
};
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);
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};
// Runs just one time when the keyboard initializes.
void * matrix_init_user(void) {
};
// Runs constantly in the background, in a loop.
void * matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
// TODO: Make this relevant to the ErgoDox EZ.
case 1:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
case 3:
ergodox_right_led_3_on();
break;
case 4:
ergodox_right_led_1_on();
ergodox_right_led_3_on();
ergodox_board_led_on();
break;
default:
// none
break;
}
};

@ -0,0 +1,1489 @@
:100000000C94AC070C94F0070C94F0070C94F007D8
:100010000C94F0070C94F0070C94F0070C94F00784
:100020000C94F0070C94F0070C94E8120C94BA139B
:100030000C94F0070C94F0070C94F0070C94F00764
:100040000C94F0070C94922C0C94F0070C94F0078D
:100050000C94F0070C948A220C94F0070C94F0078F
:100060000C94F0070C94F0070C94F0070C94F00734
:100070000C94F0070C94F0070C94F0070C94F00724
:100080000C94F0070C94F0070C94F0070C94F00714
:100090000C94F0070C94F0070C94F0070C94F00704
:1000A0000C94F0070C94F0070C94F00727144914F3
:1000B0003715491437158E14B1143715061519154F
:1000C000601860188F188F18D31811192B1B2B1B51
:1000D0002A192B1B2B1A2B1AFF1A2B1B2B1B161B37
:1000E0000000F0A1F0A329002B000354E1003581AA
:1000F00000001E00140004001D7164004D001F006C
:100100001A0016001B00E1042A0020000800070066
:10011000060050002C0021001500090019004F00B6
:100120004A00220017000A00050000000254E00007
:10013000E3000000E20000000077E400E7000000B8
:10014000E60000002E7F23001C000B0011000000C1
:100150000454240018000D00100052004B0025002C
:100160000C000E00360051002C00260012000F007B
:100170003700E108280027001300330038713000F1
:100180004E002D002F003482E50031810000010077
:10019000010001000100010000003A0035003100BB
:1001A0000100010001003B00350221026400010052
:1001B0004C003C001E0224062202010001003D000A
:1001C0002D0224022404010001003E00010037003A
:1001D0001104000001000100010000000100000006
:1001E00001000100010000000100000001003F00CB
:1001F00024062402230200000100400022042502FC
:1002000035000100010041002304260235023700B9
:1002100001004200240425041F021E0201004300C5
:1002200031002604310201000100440045000100B4
:100230002D02010000000100010001000100010089
:1002400000000100010001000100010001000100A7
:100250000100F2000100010001000100F000F100C6
:100260000100F400010001000100F3000100F500AD
:100270000100010001000100010000000100010077
:100280000100000001000000010001000100000069
:100290000100000001000100010001000100000058
:1002A0000100010001000100A800A90001000100F7
:1002B00001000100AC00AA00B6000100010001002D
:1002C000AB0050000100010001000100520051008C
:1002D0000100AE000100010001004F00000001001C
:1002E0000100010001000100000001000100010007
:1002F00001000100010001000100010001000100F6
:1003000001000100010001000100010001000100E5
:1003100001000100010001000100010001000100D5
:1003200001000000010001000100000001000000C8
:1003300001000100010000000100000001000100B7
:1003400001000100010000000100010001000100A6
:100350000100010001000100010001000100010095
:100360000100010001000100010050000100010036
:1003700001000100520051000100010001000100D4
:1003800001004F0000000100010001000100010018
:100390000000010001000100010001000100010056
:1003A0000100500001000100010001005200510055
:1003B0000100F4000100010001004F000100F50000
:1003C0000100010001000100010000000100010026
:1003D0000100000001000000010001000100000018
:1003E0000100000001003F00520051002402000003
:1003F00001004000240021001E0001000100410016
:10040000250022001F0037000100420026002300C3
:10041000200027000100430025022E0231002E009B
:1004200001004400450001000100010000000A0035
:100430002530313662003A200025303258000A72E9
:100440002F63203031323334353637383941424327
:100450004445460A000A002530325800626F756E26
:100460006365213A20006C656674207369646520B9
:1004700061747461636865640A006C6566742073F6
:10048000696465206E6F7420726573706F6E646945
:100490006E670A00747279696E6720746F207265E6
:1004A000736574206D637032333031380A000A444A
:1004B000454255473A20656E61626C65642E0A00BC
:1004C0005B735D004B6579626F6172642073746168
:1004D00072742E0A005B575D005B535D005B525DDA
:1004E000005B445D005B435D0016034500720067DE
:1004F000006F0044006F007800200045005A0000A3
:100500000016034500720067006F0044006F00781A
:1005100000200045005A0000000403090409028D70
:1005200000050100A0FA090400000103010100090F
:100530002111010001223F000705810308000A097B
:100540000401000103010200092111010001224DF3
:10055000000705820308000A0904020001030000E5
:10056000000921110100012236000705830308005C
:100570000A0904030002030000000921110100011F
:100580002220000705840320000107050403200042
:100590000109040400010300000009211101000108
:1005A0002239000705850310000112011001000027
:1005B0000008EDFE07130100010200010501090614
:1005C000A101050719E029E7150025019508750126
:1005D000810205081901290595057501910295010A
:1005E00075039101050719002977150025019578F4
:1005F00075018102C00631FF0974A101097515005A
:1006000025FF9520750881020976150025FF9520A4
:1006100075089102C005010980A10185021601003B
:1006200026B7001A01002AB700751095018100C095
:10063000050C0901A1018503160100269C021A017F
:10064000002A9C02751095018100C005010902A1D4
:10065000010901A1000509190129051500250195C8
:1006600005750181029501750381010501093009B4
:10067000311581257F950275088106093815812578
:100680007F950175088106050C0A38021581257FC2
:10069000950175088106C0C005010906A10105077D
:1006A00019E029E7150025019508750181029501DA
:1006B0007508810105081901290595057501910243
:1006C0009501750391010507190029FF150025FF04
:1006D000950675088100C00A002530325820006B4D
:1006E0006579626F6172645F7265706F72743A20CF
:1006F000000A0025303258006B6579626F617264C0
:100700005F7365745F6C65643A200064656C5F6B51
:1007100065795F6269743A2063616E27742064654D
:100720006C3A20253032580A006164645F6B657949
:100730005F6269743A2063616E2774206164643A71
:1007400020253032580A00646F6E652E0A00626FF1
:100750006F676D61676963207363616E3A202E2E47
:100760002E2000290A002575002F002575005D2820
:10077000002564002000256400200025640020007E
:100780002564007C0025303258006D6F7573656BF1
:100790006579205B62746E7C782079207620685DB4
:1007A000287265702F61636C293A205B006D6B5F66
:1007B000776865656C5F74696D655F746F5F6D61A7
:1007C00078203D2025640A006D6B5F776865656C55
:1007D0005F6D61785F7370656564203D2025640AF4
:1007E000006D6B5F74696D655F746F5F6D6178201C
:1007F0003D2025640A006D6B5F6D61785F737065E5
:100800006564203D2025640A006D6B5F696E746528
:100810007276616C203D2025640A006D6B5F646513
:100820006C6179203D2025640A006D6B5F776865F7
:10083000656C5F74696D655F746F5F6D6178203D95
:100840002025640A006D6B5F776865656C5F6D617C
:10085000785F7370656564203D2025640A006D6BC8
:100860005F74696D655F746F5F6D6178203D2025F1
:10087000640A006D6B5F6D61785F737065656420FD
:100880003D2025640A006D6B5F696E746572766148
:100890006C203D2025640A006D6B5F64656C617996
:1008A000203D2025640A000A00257500363A20778D
:1008B0006865656C5F74696D655F746F5F6D6178A5
:1008C0003A20000A00257500353A20776865656C86
:1008D0005F6D61785F73706565643A20000A00257A
:1008E0007500343A2074696D655F746F5F6D61786F
:1008F0003A20000A00257500333A206D61785F7355
:10090000706565643A20000A00257500323A206956
:100910006E74657276616C286D73293A20000A0046
:10092000257500313A2064656C6179282A31306D73
:1009300073293A20000A092D2056616C75657320D1
:100940002D0A004D3E004D25643E20003F0073659A
:10095000742064656661756C740A00433E200077FC
:10096000686572652064656C74613A2063757273A2
:100970006F723D25642C20776865656C3D25640A9F
:1009800053656520687474703A2F2F656E2E7769F1
:100990006B6970656469612E6F72672F77696B6927
:1009A0002F4D6F7573655F6B6579730A000A092DAA
:1009B000204D6F7573656B6579202D0A4553432F64
:1009C000713A09717569740A313A0964656C617923
:1009D000282A31306D73290A323A09696E746572BA
:1009E00076616C286D73290A333A096D61785F73FB
:1009F000706565640A343A0974696D655F746F5F88
:100A00006D61780A353A09776865656C5F6D617864
:100A10005F73706565640A363A09776865656C5F6F
:100A200074696D655F746F5F6D61780A0A703A0969
:100A30007072696E742076616C7565730A643A0928
:100A40007365742064656661756C74730A75703AB9
:100A5000092B310A646F776E3A092D310A70677578
:100A6000703A092B31300A7067646F776E3A092D3E
:100A700031300A0A7370656564203D2064656C74CA
:100A800061202A206D61785F7370656564202A207B
:100A900028726570656174202F2074696D655F74BC
:100AA0006F5F6D6178290A003F004D3E2000433E94
:100AB00020004C25640A000A092D20436F6E736FD5
:100AC0006C65202D0A4553432F713A09717569747D
:100AD0000A6D3A096D6F7573656B65790A000A09CD
:100AE0002D204D61676963202D0A643A09646562AF
:100AF00075670A783A096465627567206D6174727A
:100B000069780A6B3A096465627567206B6579627A
:100B10006F6172640A6D3A096465627567206D6F72
:100B20007573650A763A0976657273696F6E0A7332
:100B30003A097374617475730A633A09636F6E736B
:100B40006F6C65206D6F64650A302D343A096C61F5
:100B5000796572302D34284631302D4634290A50BB
:100B60006175733A09626F6F746C6F616465720AC4
:100B7000653A09656570726F6D0A6E3A094E4B529F
:100B80004F0A7A3A09736C656570204C45442074AD
:100B90006573740A000A002575002E6E6B726F3A39
:100BA00020000A002575002E737761705F62616313
:100BB0006B736C6173685F6261636B7370616365B3
:100BC0003A20000A002575002E737761705F677206
:100BD0006176655F6573633A20000A002575002E13
:100BE0006E6F5F6775693A20000A002575002E73E5
:100BF0007761705F72616C745F726775693A20002B
:100C00000A002575002E737761705F6C616C745FEC
:100C10006C6775693A20000A002575002E636170C3
:100C2000736C6F636B5F746F5F636F6E74726F6C06
:100C30003A20000A002575002E737761705F636F9C
:100C40006E74726F6C5F636170736C6F636B3A206C
:100C5000000A0025303258006B65796D61705F6362
:100C60006F6E6669672E7261773A20000A002575FB
:100C7000002E6D6F7573653A20000A002575002EF1
:100C80006B6579626F6172643A20000A0025750015
:100C90002E6D61747269783A20000A002575002E65
:100CA000656E61626C653A20000A0025303258009A
:100CB00064656275675F636F6E6669672E726177E0
:100CC0003A20000A0025750064656661756C745FE2
:100CD0006C617965723A20003F004E4B524F3A20CA
:100CE0006F66660A004E4B524F3A206F6E0A0074D0
:100CF000696D65725F636F756E743A202530346C70
:100D0000580A006B6579626F6172645F6E6B726F17
:100D10003A2025580A006B6579626F6172645F69D9
:100D2000646C653A2025580A006B6579626F6172C0
:100D3000645F70726F746F636F6C3A2025580A009D
:100D4000686F73745F6B6579626F6172645F6C6505
:100D5000647328293A2025580A000A092D20537463
:100D600061747573202D0A004743433A20342E39AD
:100D70002E33204156522D4C4942433A20312E38D1
:100D80002E31204156525F415243483A20617672DB
:100D9000350A004F5054494F4E533A204C55464166
:100DA00020424F4F544D41474943204D4F555345E5
:100DB0004B45592045585452414B455920434F4EBD
:100DC000534F4C4520434F4D4D414E44204E4B52C6
:100DD0004F203531320A004255494C443A203337CE
:100DE00030653930322D6469727479202832333A93
:100DF00033343A3037204465632032322032303188
:100E000035290A005649443A203078464545442859
:100E10004572676F446F7820455A29205049443AFB
:100E200020307831333037284572676F446F78202F
:100E3000455A29205645523A203078303030310A10
:100E400000444553433A20742E6D2E6B2E206B6563
:100E500079626F617264206669726D776172652074
:100E6000666F72204572676F646F780A000A092DF9
:100E70002056657273696F6E202D0A000A6D6F75BA
:100E800073653A206F66660A000A6D6F7573653A7E
:100E9000206F6E0A000A6B6579626F6172643A2096
:100EA0006F66660A000A6B6579626F6172643A2048
:100EB0006F6E0A000A6D61747269783A206F666617
:100EC0000A000A6D61747269783A206F6E0A000A2E
:100ED00064656275673A206F6E0A000A6465627520
:100EE000673A206F66660A000A0A626F6F746C6F59
:100EF000616465722E2E2E2000433E2000656563DE
:100F00006F6E6669673A0A00536C656570204C45E0
:100F10004420746573740A000000000000000000A3
:100F2000000000010204060A0F17202C3A4A5D71E6
:100F3000879DB3C7DAE9F5FCFFFCF5E9DAC7B39D95
:100F400087715D4A3A2C20170F0A0604020100003F
:100F5000000000000000000011241FBECFEFDAE007
:100F6000DEBFCDBF04B603FE24C08091F90190918D
:100F7000FA01A091FB01B091FC018730904BA74092
:100F8000B04BB9F41092F9011092FA011092FB01E2
:100F90001092FC0114BE84B7877F84BF88E10FB62E
:100FA000F89480936000109260000FBEE0E0FFE3D1
:100FB000099511E0A0E0B1E0E0ECFCE502C005908D
:100FC0000D92AA33B107D9F711E0AAE3B1E001C04D
:100FD0001D92A93FB107E1F70E9420100C945E2EEC
:100FE0000C940000FF93EF93E0913A01F0913B01E4
:100FF000309709F00995EF91FF910895FC018591D3
:10100000803011F0EFDFFBCF0895FF27E0E230E200
:1010100047FF0CC0419597FF09C0EDE260957095C0
:1010200080959095611D711D811D911D27FF02C046
:10103000219530E350E2AA27660F771F881F991F7A
:10104000AA1FA41710F0A41B63955A95A9F7AA30FC
:1010500008F0A95FA05DAF93F39561157105810557
:10106000910541F7ED3211F4EF93F395F21718F46F
:101070003F93F395FBCF8F91B5DFFA95E1F7089594
:10108000E991F9918591803021F0853219F0AADF3C
:10109000F9CF089520E0E89455915532C1F35033CB
:1010A00011F4689455915A3348F4505390F3220F39
:1010B000022E220F220F200D250FF4CF0EF42195C2
:1010C00089919991533619F3533729F1533559F1D1
:1010D000BC0188279927E8945C3621F4899199917D
:1010E00068945591543639F446EF7EF077FF0DC081
:1010F0008FEF9FEF0AC055374AE039F0583540E18D
:1011000021F0523642E009F00895FF93EF937DDF1E
:10111000EF91FF91B7CFFF93EF93FC018191803066
:10112000B9F360DFFBCFFF93EF9368DFF1CFDF937D
:10113000CF93CDB7DEB72596A3DFCF91DF9108958A
:1011400061110BC0FC018281882321F085EE0E9491
:10115000FD1603C085EE0E94C51780E090E008955B
:1011600008956091BC017091BD018091BE01909184
:10117000BF010E948D2156985E9825982D9826983B
:101180002E9827982F98823061F018F4813031F032
:101190000895833049F0843051F00895259A2D9AAE
:1011A0000895269A2E9A0895279A2F9A0895259A97
:1011B0002D9A279A2F9A569A5E9A089581EB98E075
:1011C000892B11F00C94B108089556985E982598D3
:1011D0002D9826982E9827982F988FEF90E090932F
:1011E00089008093880090938B0080938A0090936D
:1011F0008D0080938C00569A5E9A259A2D9A269A95
:101200002E9A279A2F9A2FE782E490E1215080406E
:101210009040E1F700C0000056985E9825982D9800
:1012200026982E9827982F98089589EA8093800011
:1012300089E08093810024982C983F988AB18F741C
:101240008AB96E98479A8BB1806B8BB9769A0E9457
:10125000E50880EB98E0892B11F00C94B008089514
:1012600080E28093000180913C0181110EC00E94B8
:101270007F0981E080933C012FEF83ED90E32150C3
:1012800080409040E1F700C0000080E40E948509A2
:101290008093000181112EC00E94AF09809300014C
:1012A000811128C00E94AF0980930001811122C0E2
:1012B0008FE30E94AF098093000181111BC00E943F
:1012C000A70980E40E94850980930001811112C062
:1012D0008CE00E94AF098093000181110BC00E9435
:1012E000AF0980930001811105C08FE30E94AF090F
:1012F000809300010E94A709809100010895109237
:10130000B9008AE08093B800089594EA9093BC00F5
:101310009091BC0097FFFCCF9091B900987F9830D6
:1013200021F0903111F081E008958093BB0084E8B2
:101330008093BC008091BC0087FFFCCF8091B900F6
:10134000887F883111F0803471F780E0089584E956
:101350008093BC008091BC0084FDFCCF08958093F5
:10136000BB0084E88093BC008091BC0087FFFCCF69
:101370009091B900987F81E0983209F480E0089557
:1013800084E88093BC008091BC0087FFFCCF8091F3
:10139000BB00089580910001811115C080E40E9476
:1013A00085098093000181110CC082E10E94AF0980
:1013B00080930001811105C08FEF0E94AF098093D7
:1013C00000010E94A70984B1807F84B985B1807F24
:1013D00085B98AB1837F8AB98BB1837F8BB93E98F7
:1013E000469808950E943009809300010E94CA091E
:1013F00080B38C7080BB81B3836F81BBAEE3B1E0FF
:10140000ECE4F1E08EE08E0F11921D928E13FCCF72
:1014100085E199E0892B11F00C94150908959F92AC
:10142000AF92BF92CF92DF92EF92FF920F931F93F2
:10143000CF93DF93809100018823E1F080913D01FB
:101440008F5F80933D01811115C084E994E00E9473
:10145000FE070E94300980930001882329F08AE763
:1014600094E00E94FE0706C086E694E00E94FE0714
:101470000E94E5080EE311E0C0E0D0E0BB24B39485
:1014800082E0A82ECC24C394D12C27E5E22E24E0C0
:10149000F22EC730D10500F580910001811164C0A2
:1014A00080E40E94850980930001811112C082E1CD
:1014B0000E94AF098093000181110BC0C6010C2E60
:1014C00001C0880F0A94EAF780950E94AF098093C3
:1014D00000010E94A70948C0CA30A1F028F4C83012
:1014E00059F0C93061F005C0CC3089F070F0CD30D2
:1014F00089F0209A289810C0219A29980DC0229A24
:101500002A980AC0239A2B9807C0529A01C0539A6E
:101510005B9802C03E9A469890EA9A95F1F79FB17F
:10152000799902C082E001C080E091709B25982BE0
:101530007C9902C084E001C080E0892B7D9902C0C3
:1015400038E001C030E0832B7E9902C020E101C069
:1015500020E0822B9FB19095991F9927991F929512
:10156000990F907E892B10C080910001811174C069
:1015700080E40E94850980930001882309F459C002
:10158000912C0E94A709892DF8019081981739F1B3
:10159000808380910101882301F18091D70180FF30
:1015A00004C08CE594E00E94FE078091D70180FF83
:1015B0000CC0809101011F928F93FF92EF920E94C5
:1015C00097080F900F900F900F908091D70180FF98
:1015D00004C085E594E00E94FE07A09201010E94EC
:1015E000CA0921960F5F1F4FCE30D10509F051CFA8
:1015F000809101018823B1F08150809301018823FB
:1016000039F08FE99FE00197F1F700C000000AC0B0
:10161000ACE4B1E0EEE3F1E0CF01825F91919D9304
:101620008E13FCCF8EED98E0892BC1F00E94DE086E
:1016300015C083E10E94AF09809300018111A0CF02
:1016400081E40E94850980930001811199CF0E9455
:10165000C009982E909495CF80E096CF81E0DF91DD
:10166000CF911F910F91FF90EF90DF90CF90BF909F
:10167000AF909F900895E82FF0E0E45BFE4F8081EB
:101680000895CF92DF92EF92FF920F931F93CF9323
:10169000DF938EE394E00E94FE078CE4E82E81E065
:1016A000F82EC0E0D0E099E3C92E94E0D92E00E3F3
:1016B00014E0DF93CF93DF92CF920E94970886E3E6
:1016C00094E00E94FE07F70181917F0190E00E9463
:1016D000F3219F938F931F930F930E9497088EE29D
:1016E00094E00E94FE0721968DB79EB708960FB62C
:1016F000F8949EBF0FBE8DBFCE30D105D1F6DF91DD
:10170000CF911F910F91FF90EF90DF90CF900895B0
:101710008B3B910578F4883A910540F5853A91051F
:10172000D0F48430910508F0B1C08130910509F4FE
:10173000ADC06BC0803E910508F467C0883E91053E
:1017400008F4A4C09C01205F31092031310508F064
:101750005CC090650895853A910509F459C0863AB0
:10176000910509F058C082E890E40895883A9105FF
:1017700009F454C0893A910509F453C08A3A910595
:1017800009F452C08B3A910509F451C08C3A910585
:1017900009F450C08D3A910509F44FC0803B910582
:1017A00009F44EC08E3A910509F44DC08F3A910567
:1017B00009F44CC0813B910509F44BC0823B910573
:1017C00009F44AC0833B910509F449C0843B910563
:1017D00009F448C0853B910509F447C0863B910553
:1017E00009F446C0873B910509F445C0883B910543
:1017F00009F444C0893B910509F443C08A3B910533
:1018000009F442C080E094E4089580E090E00895F7
:1018100081E890E4089583E890E4089582EE94E4EA
:10182000089589EE94E408958AEE94E4089585EB92
:1018300094E4089586EB94E4089587EB94E4089586
:101840008CEC94E408958DEC94E4089583E895E499
:1018500008958AE895E4089582E995E4089584E975
:1018600095E4089581E296E4089583E296E408956C
:1018700084E296E4089585E296E4089586E296E48B
:10188000089587E296E408958AE296E4089508951B
:1018900096E0799FF001112494E5899FE00DF11DF8
:1018A0001124E60FF11DEE0FFF1FEA51FF4F859146
:1018B00094910895880F991FFC01E05AF04085919A
:1018C00094910895880F991FFC01E052FF4F859174
:1018D0009491089526E0729FF001112444E5849FBD
:1018E000E00DF11D1124E60FF11DEE0FFF1FEA516F
:1018F000FF4F859194919C013A9521154FE1340752
:1019000008F41EC13F512115304120F49F700E9400
:10191000620C08959C0130532115304118F4992729
:10192000906C0895811520E5920769F40E944D1B83
:101930004FEF84E39CE0415080409040E1F700C0CD
:1019400000000C94AF22813020E5920751F48EEA1A
:1019500094E00E94FE078091D70181608093D701B7
:1019600008959C0130552115304108F051C0292FB0
:1019700033272F70332721303105D9F4AC01437060
:10198000552702C0220F331F4A95E2F73C68AC018D
:1019900064E0440F551F6A95E1F744275370242BE8
:1019A000352B73E0880F991F7A95E1F78076992798
:1019B0001DC02230310529F4982F8827816F906A45
:1019C000089523303105A9F4AC014370552721E077
:1019D00030E002C0220F331F4A95E2F73C6843E033
:1019E000880F991F4A95E1F7807E9770822B932B81
:1019F000089524303105E1F4AC014370552721E00E
:101A000030E002C0220F331F4A95E2F73A68E7CF71
:101A10009C0130572115304118F49F709062089551
:101A20009C0130582115304118F49F70906A089538
:101A3000803E9105E0F4803C910558F58133910595
:101A400009F46FC048F48932910509F463C08A3201
:101A5000910509F46DC072C089339105E9F08238AF
:101A60009105D1F08533910509F44DC067C0833EDF
:101A7000910581F138F4803E9105B9F0823E9105DF
:101A8000D9F05CC0863E910561F1873E9105A1F1D8
:101A900055C00E945A0C08952091EA0120FD02C011
:101AA00021FF4CC080EE90E049C08091EA0180FFA8
:101AB000F9CF89E390E042C08091EA0182FF0EC035
:101AC0008091EA0184FF03C080E090E037C083EE9C
:101AD00090E034C08091EA0182FFF2CF82EE90E084
:101AE0002DC08091EA0183FF0BC08091EA0184FD43
:101AF000EBCF87EE90E022C08091EA0183FFF5CF23
:101B000086EE90E01BC08091EA0185FF07C089E264
:101B100090E014C08091EA0185FFF9CF85E390E061
:101B20000DC08091EA0186FF07C08AE290E006C0FE
:101B30008091EA0186FFF9CF81E390E00E94880B53
:101B40000895089580916D0108959FB7F8941092BB
:101B50005C019FBF9091F001943009F057C09091C3
:101B6000E9009F703091EC00232F217030FD20E8B8
:101B7000922B24E02093E9002091EB0020FF43C04A
:101B80002091EE0027FF3FC020915A01222321F02F
:101B90002091E80025FF37C010925A0126E03091CD
:101BA000E80035FD15C03091F001343061F5309119
:101BB000EB0035FD28C0215021F481E080935A01CB
:101BC00022C0EFE9FFE03197F1F700C00000E7CF56
:101BD0008093F1008091E80085FD0AC08091E800C3
:101BE00080FFFCCF8091E8008E778093E80006C0EC
:101BF0008FB7F89421E020935C018FBF9F70909382
:101C0000E90080E008959F709093E9008FEF0895B8
:101C1000CF93DF9300D01F92CDB7DEB79C018091A8
:101C2000F001843019F593E099833B832A839093E4
:101C3000E9008FEF9091E800815095FD06C095ED89
:101C40009A95F1F700008111F5CF8091E80085FFAA
:101C50000DC040E050E063E070E0CE0101960E94CC
:101C6000D8108091E8008E778093E8000F900F9055
:101C70000F90DF91CF910895CF93DF9300D01F9203
:101C8000CDB7DEB72091F001243021F522E0298381
:101C90009B838A8383E08093E9008FEF9091E80033
:101CA000815095FD06C095ED9A95F1F700008111E0
:101CB000F5CF8091E80085FF0DC040E050E063E083
:101CC00070E0CE0101960E94D8108091E8008E77D6
:101CD0008093E8000F900F900F90DF91CF910895BF
:101CE0002091F0012430F1F422E02093E9002FEF5D
:101CF0003091E800215035FD06C035ED3A95F1F7F9
:101D000000002111F5CF2091E80025FF0BC040E035
:101D100050E065E070E00E94D8108091E8008E7776
:101D20008093E8000895CF93DF932091F001243051
:101D300009F048C0EC0180910C018823E1F080910A
:101D40000D018823C1F085E08093E9008FEF909129
:101D5000E800815095FD06C095E19A95F1F70000E5
:101D60008111F5CF8091E80085FF2CC040E050E064
:101D700060E170E017C081E08093E9008FEF9091FF
:101D8000E800815095FD06C095ED9A95F1F70000A9
:101D90008111F5CF8091E80085FF14C040E050E04C
:101DA00068E070E0CE010E94D8108091E8008E7744
:101DB0008093E80080E1FE01ADE5B1E001900D9275
:101DC0008A95E1F7DF91CF91089585EE94E00E9426
:101DD000FE078091EF01811109C00E946D120E94DF
:101DE000CA128091E20084608093E200089581EE3F
:101DF00094E00E94FE071092EF0108958DED94E0AB
:101E00000C94FE0789ED94E00E94FE070C947F2C51
:101E100085ED94E00E94FE070E9449220E94852CD5
:101E20000E946F150C94A10D20915B012F5F822FF2
:101E300062E30E94F32D992319F020935B0108952A
:101E400010925B0180915C01882371F18091F00117
:101E5000843041F58091E9008F702091EC00922F41
:101E6000917020FD90E8892B94E09093E900909187
:101E7000EB0090FF14C09091EE0097FF10C090917E
:101E8000E80095FF03C01092F100F9CF9091E800AF
:101E900090FF05C09091E8009E779093E8008F70C6
:101EA0008093E90010925C01089542E061EC81E0CA
:101EB0000E94E71142E061EC82E00E94E71142E0FB
:101EC00061EC83E00E94E71142E261EC84E00E9451
:101ED000E71142E161EC85E00C94E7118091F20199
:101EE000833009F455C030F4813071F0823009F448
:101EF0008EC008958A3009F47AC08B3009F460C02E
:101F0000893009F09CC020C08091F101813A09F02C
:101F100096C08091E800877F8093E8008091F5016A
:101F20009091F601892B21F460E18DE591E003C0E9
:101F300060E080E090E070E00E9423118091E80072
:101F40008B778093E80008958091F101813209F048
:101F500076C08091F5019091F601009719F00497F1
:101F600009F06DC08091E800877F8093E800809140
:101F7000E80082FD05C08091F0018111F8CF5FC0BB
:101F80008091F10080936D018091E8008B7753C0C0
:101F90008091F101813A09F052C08091F501909150
:101FA000F601892B09F04BC08091E800877F809370
:101FB000E8008091E80080FFFCCF80910C0136C0E2
:101FC0008091F1018132D9F58091F5019091F6016E
:101FD000892BA9F58091E800877F8093E8000E9413
:101FE0001C128091F30180930C010C944D1B809185
:101FF000F101813221F58091E800877F8093E8002C
:102000000E941C128091F40180936E0108958091CA
:10201000F101813AA1F48091E800877F8093E80084
:102020008091E80080FFFCCF80916E018093F100E9
:102030008091E8008E778093E8000C941C1208953C
:1020400084B7877F84BF88E10FB6F89480936000DF
:10205000109260000FBE90E080E80FB6F894809375
:102060006100909361000FBE0E94FC150E946D12EA
:102070000E94CA128091E20084608093E20085EAA7
:102080009DE00E94882178940E944F150E94FE15C1
:1020900082E091E00E946A150E946D2C84EC94E02D
:1020A0000E94FE078091F001853089F480EC94E075
:1020B0000E94FE070E940D228091EE01882391F379
:1020C0000E943522882371F30E94C210EBCF0E9438
:1020D0002C16E8CF292F332723303105C9F064F4BB
:1020E0002130310581F02230310509F043C08DE8FF
:1020F00090E02DE135E042C021323105F1F022328D
:10210000310541F137C082E190E02AEA35E036C07E
:1021100099278130910541F08230910541F0892B5A
:1021200049F5E9E1F5E005C0E1E0F5E002C0E9EEDE
:10213000F4E0849190E09F0121C06530D8F4E62F4F
:10214000F0E0EE0FFF1FEB5DFE4F2081318189E053
:1021500090E014C0653070F470E0FB01EE0FFF1FDB
:10216000E55EFE4F20813181FB01EA5EFE4F8081FA
:1021700090E004C080E090E020E030E0FA0131839C
:102180002083089580E189BD82E189BD09B400FE04
:10219000FDCF8091D8008F7D8093D8008091E000A2
:1021A00082608093E0008091E00081FDFCCF089583
:1021B000CF92DF92EF92FF920F931F93CF93DF9313
:1021C000EC018B016A010E943B12811133C0C114E2
:1021D000D10439F0F60180819181081B190BC80FD9
:1021E000D91FE12CF12C0115110519F18091E8009E
:1021F00085FD16C08091E8008E778093E800C114B9
:10220000D10449F0F60180819181E80EF91EF18236
:10221000E08285E00FC00E943B12882321F30AC0B0
:1022200089918093F10001501109FFEFEF1AFF0A25
:10223000DACF80E0DF91CF911F910F91FF90EF9067
:10224000DF90CF9008952091F7013091F801261783
:10225000370748F06115710539F42091E8002E77B1
:102260002093E80001C0B90140E061157105A9F1B2
:102270002091F001222309F443C0253009F442C023
:102280002091E80023FD40C02091E80022FD32C0EB
:102290002091E80020FFE9CF4091F3002091F20067
:1022A00030E0342BFC01CF016115710559F0283065
:1022B000310540F481918093F100615071092F5FE5
:1022C0003F4FF1CF41E02830310509F040E0209147
:1022D000E8002E772093E800C8CF4111C9CF0AC08B
:1022E0008091F001882361F0853061F08091E800F1
:1022F00083FD0AC08091E80082FFF2CF80E008955C
:1023000082E0089583E0089581E008952091F70127
:102310003091F8012617370748F06115710539F437
:102320002091E8002E772093E80001C0B901FC015C
:1023300020E06115710591F18091F001882309F485
:1023400040C0853009F43FC08091E80083FD3DC066
:102350008091E80082FD2FC08091E80080FFE9CFE6
:102360002091F3008091F20090E0922B61157105AD
:1023700059F08830910540F424912093F100319672
:10238000615071090196F2CF21E0089709F020E031
:102390008091E8008E778093E800CBCF2111CCCFDD
:1023A0000AC08091F001882361F0853061F080914E
:1023B000E80083FD0AC08091E80082FFF2CF80E050
:1023C000089582E0089583E0089581E00895982FAC
:1023D000973058F59093E900981739F07091EC0018
:1023E0002091ED005091F00003C0242F762F50E093
:1023F00021FF19C03091EB003E7F3093EB0030910C
:10240000ED003D7F3093ED003091EB003160309373
:10241000EB007093EC002093ED005093F0002091BE
:10242000EE0027FF07C09F5FD3CF8F708093E90036
:1024300081E0089580E008958091F10187FF11C047
:102440008091E80082FD05C08091F0018111F8CFF4
:1024500011C08091E8008B770BC08091F001882338
:1024600049F08091E80080FFF8CF8091E8008E77F6
:102470008093E80008952091E4003091E50095E60E
:102480004091EC00842F817040FF22C08091E800D1
:1024900080FD1CC08091F001882391F0853091F07F
:1024A0008091EB0085FD10C04091E4005091E50063
:1024B0004217530729F39A01915011F784E00895C8
:1024C00082E0089583E0089581E0089580E0089512
:1024D0004091E80042FFDECF08950E94DB120E9487
:1024E000E312E0EEF0E0808181608083E8EDF0E0CF
:1024F00080818F77808319BCA7EDB0E08C918E7FAF
:102500008C9380818F7E80831092EF0108950F93CA
:102510001F93CF93DF930E94DB120E94E312C8ED5A
:10252000D0E088818F7788838881806888838881DC
:102530008F7D888319BC1092F0011092EC011092EB
:10254000EE011092ED0100EE10E0F80180818B7F2A
:10255000808388818160888342E060E080E00E941F
:10256000E711E1EEF0E080818E7F8083E2EEF0E023
:10257000808181608083808188608083F801808190
:102580008E7F8083888180618883DF91CF911F91C6
:102590000F910895E8EDF0E080818F7E8083E7ED74
:1025A000F0E080818160808384E082BF81E080935D
:1025B000EF010C948712E8EDF0E080818E7F80833C
:1025C0001092E20008951092DA001092E10008954E
:1025D0001F920F920FB60F9211242F933F934F9398
:1025E0005F936F937F938F939F93AF93BF93EF937B
:1025F000FF938091E10082FF0BC08091E20082FF97
:1026000007C08091E1008B7F8093E1000E94140F4E
:102610008091DA0080FF1FC08091D80080FF1BC02E
:102620008091DA008E7F8093DA008091D90080FF5C
:102630000DC080E189BD82E189BD09B400FEFDCFF6
:1026400081E08093F0010E94E50E05C019BC109254
:10265000F0010E94F70E8091E10080FF19C0809187
:10266000E20080FF15C08091E2008E7F8093E2003F
:102670008091E20080618093E2008091D8008062C6
:102680008093D80019BC85E08093F0010E94020F6E
:102690008091E10084FF30C08091E20084FF2CC073
:1026A00080E189BD82E189BD09B400FEFDCF809142
:1026B000D8008F7D8093D8008091E1008F7E809339
:1026C000E1008091E2008F7E8093E2008091E20041
:1026D00081608093E2008091EC01882311F084E016
:1026E00007C08091E30087FD02C081E001C083E064
:1026F0008093F0010E94080F8091E10083FF29C0C0
:102700008091E20083FF25C08091E100877F809364
:10271000E10082E08093F0011092EC018091E100F1
:102720008E7F8093E1008091E2008E7F8093E200B3
:102730008091E20080618093E20042E060E080E00E
:102740000E94E7118091F00088608093F0000E9461
:10275000FE0EFF91EF91BF91AF919F918F917F916D
:102760006F915F914F913F912F910F900FBE0F90FE
:102770001F9018951F920F920FB60F9211242F934E
:102780003F934F935F936F937F938F939F93AF93F9
:10279000BF93CF93DF93EF93FF93C091E900CF7086
:1027A0008091EC00D82FD17080FDD0E81092E90024
:1027B0008091F000877F8093F00078940E94FE1350
:1027C0001092E9008091F00088608093F000CD2B9A
:1027D000CF70C093E900FF91EF91DF91CF91BF914E
:1027E000AF919F918F917F916F915F914F913F91A9
:1027F0002F910F900FBE0F901F9018951F93CF939E
:10280000DF93CDB7DEB7AA970FB6F894DEBF0FBE41
:10281000CDBFE1EFF1E088E08E0F9091F100919350
:102820008E13FBCF0E946E0F8091E80083FF1FC1C3
:102830008091F1019091F201492F50E04A30510509
:1028400008F015C1FA01EA5AFF4F0C94132E803894
:1028500081F0823809F00BC18091F5018F7080936F
:10286000E9008091EB0085FB882780F91092E90050
:1028700006C08091ED019091EE01911182609091DE
:10288000E800977F9093E8008093F1001092F100A8
:10289000C8C0282F2D7F09F0EAC0882319F08230A4
:1028A00061F0E5C08091F301813009F0E0C0933020
:1028B00009F080E08093EE012BC08091F30181113B
:1028C00027C08091F5018F7009F4D1C08093E90091
:1028D0002091EB0020FF1CC0933021F48091EB008D
:1028E000806214C09091EB0090619093EB0021E026
:1028F00030E0A90102C0440F551F8A95E2F74093CA
:10290000EA001092EA008091EB0088608093EB006F
:102910001092E9008091E800877F86C08111A7C0EE
:102920001091F3011F778091E3008078812B8093D1
:10293000E3008091E800877F8093E8000E941C12EA
:102940008091E80080FFFCCF8091E3008068809355
:10295000E300111102C082E001C083E08093F00126
:1029600086C08058823008F082C08091F301909137
:10297000F4018C3D53E0950779F583E08A838AE280
:1029800089834FB7F894DE01139620E03EE051E2D0
:10299000E32FF0E050935700E49120FF03C0E2954D
:1029A000EF703F5FEF708E2F90E0EA3010F0C79627
:1029B00001C0C0968D939D932F5F243149F74FBF7F
:1029C0008091E800877F8093E8006AE270E0CE01A2
:1029D00001960E94231114C0AE014F5F5F4F6091BA
:1029E000F5010E946A10BC01892B09F440C0909146
:1029F000E800977F9093E80089819A810E94861170
:102A00008091E8008B778093E80031C0803879F5B9
:102A10008091E800877F8093E8008091EC018093AB
:102A2000F1008091E8008E778093E8000E941C12EC
:102A30001EC081111CC09091F3019230C0F48091AE
:102A4000E800877F8093E8009093EC010E941C12BD
:102A50008091EC01811106C08091E30087FD02C0E6
:102A600081E001C084E08093F0010E94550F8091C5
:102A7000E80083FF0AC08091E800877F8093E80028
:102A80008091EB0080628093EB00AA960FB6F894D9
:102A9000DEBF0FBECDBFDF91CF911F910895CF93C1
:102AA0008091F0018823A1F0C091E900CF7090914E
:102AB000EC00892F817090FD80E8C82B1092E9000E
:102AC0008091E80083FD0E94FE13CF70C093E9005F
:102AD000CF91089590937401809373010895E091CC
:102AE0007301F0917401309721F00190F081E02D95
:102AF000099480E00895EF92FF920F931F93CF9374
:102B0000DF93E0917301F09174013097B1F18C0182
:102B10000280F381E02D09958091D70182FF2DC0BD
:102B200080FF04C08FED96E00E94FE07E80110E1EF
:102B300089EDE82E86E0F82E8091D70180FF0BC04A
:102B400088811F928F93FF92EF920E9497080F90B7
:102B50000F900F900F90115021961111EDCF809191
:102B6000D70180FF0AC087ED96E0DF91CF911F91DA
:102B70000F91FF90EF900C94FE07DF91CF911F9182
:102B80000F91FF90EF900895E0917301F09174011F
:102B9000309721F00480F581E02D0994089520916B
:102BA0007101309172018217930771F09093720155
:102BB00080937101E0917301F0917401309721F0DD
:102BC0000680F781E02D0994089520916F013091DE
:102BD00070018217930771F09093700180936F01D9
:102BE000E0917301F0917401309721F00084F18538
:102BF000E02D0994089508950C94FB150E944B2232
:102C00000E94F2090C941123CF93C82F8091D70111
:102C100082FF1EC080FF04C088EF96E00E94FE077E
:102C20008091D70180FF0CC01F92CF9383EF96E075
:102C30009F938F930E9497080F900F900F900F9083
:102C40008091D70180FF04C081EF96E00E94FE07CB
:102C50008C2FCF910C94A10DCF92DF92EF92FF9227
:102C60000F931F93CF93DF93CDB7DEB72B970FB69C
:102C7000F894DEBF0FBECDBF0E940F0A86E7C82EB4
:102C800081E0D82E00E010E0E02E802F0E943B0B68
:102C9000F60141916F01F42EF826B1F40F5F1F4F3A
:102CA0000E30110589F78FEF89838A831B820E947A
:102CB00054228160782F9D838C8349815A816B8156
:102CC0008D810E94CF1640C09091D70191FF04C022
:102CD0008B870E94410B8B8520E030E04F2D50E028
:102CE000922FBA01022E02C0759567950A94E2F7F9
:102CF00060FF24C02E83EF8221E030E0690102C032
:102D0000CC0CDD1C9A95E2F790E08C219D21892B5B
:102D100009F420E028870E9454228160782F9A8746
:102D200089874E815F8168858A850E94CF16F80168
:102D3000EA58FE4F8081C826C08206C02F5F3F4FF1
:102D40002630310569F6AACF0E94822610917501BE
:102D50000E946F151817A1F00E946F1580937501DE
:102D60002B960FB6F894DEBF0FBECDBFDF91CF918B
:102D70001F910F91FF90EF90DF90CF900C9404166D
:102D80002B960FB6F894DEBF0FBECDBFDF91CF916B
:102D90001F910F91FF90EF90DF90CF900895CF9308
:102DA000DF93CDB7DEB72B970FB6F894DEBF0FBE1B
:102DB000CDBF4F83588769877A878B87DE0111964D
:102DC00086E0FD0111928A95E9F785E0FE013796CC
:102DD00001900D928A95E1F749815A816B817C813E
:102DE0008D819E810E94E71D2B960FB6F894DEBF61
:102DF0000FBECDBFDF91CF910895CF93882309F403
:102E0000C2C0C82F823859F40E946F1581FDBBC023
:102E100089E30E9483200E94622189E30CC08338E9
:102E200079F40E946F1580FDAEC083E50E94832077
:102E30000E94622183E50E94D620CF910C946221EA
:102E4000843859F40E946F1582FD9DC087E40E946A
:102E500083200E94622187E4EECF8CEF8C0F813AB1
:102E600048F48C2F0E94152B81118DC08C2F0E944D
:102E70008320E3CF80E28C0F883048F4C77081E074
:102E800001C0880FCA95EAF70E942B21D6CF8BE5A7
:102E90008C0F833078F4C53A29F0C63A31F083E8D4
:102EA00090E005C081E890E002C082E890E0CF9118
:102EB0000C94CF1588E58C0F833108F064C0C83AB4
:102EC00039F1C93A41F1CA3A49F1CB3A51F1CC3A18
:102ED00059F1CD3A61F1C03B69F1CE3A71F1CF3A87
:102EE00079F1C13B81F1C23B89F1C33B91F1C43B14
:102EF00099F1C53BA1F1C63BA9F1C73BB1F1C83B74
:102F0000B9F1C93BC1F1CA3BC9F180E090E038C0DA
:102F100082EE90E035C089EE90E032C08AEE90E01B
:102F20002FC085EB90E02CC086EB90E029C087EBAA
:102F300090E026C08CEC90E023C08DEC90E020C0A7
:102F400083E891E01DC08AE891E01AC082E991E02F
:102F500017C084E991E014C081E292E011C083E2DD
:102F600092E00EC084E292E00BC085E292E008C0DD
:102F700086E292E005C087E292E002C08AE292E037
:102F8000CF910C94E515CF910895882309F44BC097
:102F9000823859F40E946F1581FF45C089E30E9471
:102FA00083200E94622189E30CC0833871F40E945F
:102FB0006F1580FF38C083E50E9483200E94622144
:102FC00083E50E94D6200C946221843859F40E9433
:102FD0006F1582FF28C087E40E9483200E9462212F
:102FE00087E4EFCF9CEF980F913A58F390E2980F57
:102FF000983050F4877091E001C0990F8A95EAF7F4
:10300000892F0E943121DFCF9BE5980F933020F468
:1030100080E090E00C94CF15885A833120F480E052
:1030200090E00C94E5150895882321F00E942B214F
:103030000C9462210895882321F00E9431210C9480
:1030400062210895BF92CF92DF92EF92FF920F9389
:103050001F93CF93DF9300D000D000D0CDB7DEB761
:1030600025E0FC01DE01119601900D922A95E1F711
:10307000FC01408131810281258122952F7063817D
:103080007481672B09F4E7C23F3F19F44F3F09F4FD
:10309000E2C27C0149833A8389819A812E830E940E
:1030A0004220182FB92E0E9441200E94081FEB2DAC
:1030B000E295EF70F0E0E05AFF4F2E810C94132E52
:1030C0008B2D807F9B2D9F70F92E882319F0F29411
:1030D00080EFF822002349F0FF2009F469C28F2D08
:1030E0000E943B210E94622163C2812F0E94C5176A
:1030F000FF2009F4B0C28F2D0E94412126960FB601
:10310000F894DEBF0FBECDBFDF91CF911F910F911D
:10311000FF90EF90DF90CF90BF900C9462213B2DF9
:10312000307F8B2D8F70303211F08295807F11238C
:1031300019F0113021F12DC00023B9F0222309F438
:10314000A1C1213009F09EC126960FB6F894DEBFCA
:103150000FBECDBFDF91CF911F910F91FF90EF90E8
:10316000DF90CF90BF900C944B21222319F0213097
:1031700009F471C28E830E944E218E8197C1002373
:1031800021F0263008F067C27DC1253008F063C207
:103190008DC1002321F0222309F474C109C2222326
:1031A00009F484C11AC22B2D26952695237030E090
:1031B0002115310521F021303105D1F04CC2002319
:1031C00021F0812F9B2D937002C080E090E0269625
:1031D0000FB6F894DEBF0FBECDBFDF91CF911F9128
:1031E0000F91FF90EF90DF90CF90BF900C94CF1590
:1031F000002321F0812F9B2D937002C080E090E08E
:1032000026960FB6F894DEBF0FBECDBFDF91CF91EB
:103210001F910F91FF90EF90DF90CF90BF900C9493
:10322000E515812F002319F00E94082502C00E9495
:10323000702526960FB6F894DEBF0FBECDBFDF9186
:10324000CF911F910F91FF90EF90DF90CF90BF90A3
:103250000C94F5258B2D837009F07BC00111FBC107
:10326000812F829586958770880F880F912F9F7088
:10327000C92ED12CE12CF12C082E04C0CC0CDD1C65
:10328000EE1CFF1C0A94D2F714FF12C04FE050E06E
:1032900060E070E004C0440F551F661F771F8A95D9
:1032A000D2F7CB01BA01609570958095909503C0D7
:1032B00060E070E0CB012B2D269526952370422FE0
:1032C00050E042305105D9F04330510569F16C2985
:1032D0007D298E299F294130510551F126960FB63F
:1032E000F894DEBF0FBECDBFDF91CF911F910F913C
:1032F000FF90EF90DF90CF90BF900C942F1F6C2920
:103300007D298E299F2926960FB6F894DEBF0FBE21
:10331000CDBFDF91CF911F910F91FF90EF90DF9084
:10332000CF90BF900C944B1F0E942F1FC701B60176
:1033300026960FB6F894DEBF0FBECDBFDF91CF91BA
:103340001F910F91FF90EF90DF90CF90BF900C9462
:10335000131F002319F08B2D817001C086958823DF
:1033600009F479C1812F829586958770880F880F1F
:10337000912F9F70C92ED12CE12CF12C082E04C066
:10338000CC0CDD1CEE1CFF1C0A94D2F714FF12C0FB
:103390004FE050E060E070E004C0440F551F661F2E
:1033A000771F8A95D2F7CB01BA0160957095809509
:1033B000909503C060E070E0CB012B2D26952695FB
:1033C0002370422F50E042305105D9F0433051056F
:1033D00069F16C297D298E299F294130510551F1D0
:1033E00026960FB6F894DEBF0FBECDBFDF91CF910A
:1033F0001F910F91FF90EF90DF90CF90BF900C94B2
:1034000009206C297D298E299F2926960FB6F894CC
:10341000DEBF0FBECDBFDF91CF911F910F91FF9007
:10342000EF90DF90CF90BF900C9425200E94092050
:10343000C701B60126960FB6F894DEBF0FBECDBF0A
:10344000DF91CF911F910F91FF90EF90DF90CF9080
:10345000BF900C94ED1F103FD1F118F4103E50F4C2
:10346000A2C0123F09F464C008F44DC0133F09F430
:1034700074C099C01F708B2D8F710023A1F00E9422
:10348000861F812F26960FB6F894DEBF0FBECDBFE4
:10349000DF91CF911F910F91FF90EF90DF90CF9030
:1034A000BF900C9414180E94A71F812F26960FB668
:1034B000F894DEBF0FBECDBFDF91CF911F910F916A
:1034C000FF90EF90DF90CF90BF900C941B180023DB
:1034D000B1F0253008F0BFC08B2D8F7126960FB646
:1034E000F894DEBF0FBECDBFDF91CF911F910F913A
:1034F000FF90EF90DF90CF90BF900C94CC1F2630C0
:1035000008F0A9C0E9CF0023A9F08B2D8F71269672
:103510000FB6F894DEBF0FBECDBFDF91CF911F91E4
:103520000F91FF90EF90DF90CF90BF900C94861F8B
:10353000002359F38B2D8F7126960FB6F894DEBFBA
:103540000FBECDBFDF91CF911F910F91FF90EF90F4
:10355000DF90CF90BF900C94A71F002399F08B2D84
:103560008F7126960FB6F894DEBF0FBECDBFDF91E8
:10357000CF911F910F91FF90EF90DF90CF90BF9070
:103580000C94711F26960FB6F894DEBF0FBECDBF08
:10359000DF91CF911F910F91FF90EF90DF90CF902F
:1035A000BF900C94671F0023A9F0222309F4ADCF2C
:1035B000812F26960FB6F894DEBF0FBECDBFDF91E8
:1035C000CF911F910F91FF90EF90DF90CF90BF9020
:1035D0000C94FD16222309F4ADCF812F26960FB649
:1035E000F894DEBF0FBECDBFDF91CF911F910F9139
:1035F000FF90EF90DF90CF90BF900C94C5174B2DAC
:103600004F70612FC7010E94A00826960FB6F8944C
:10361000DEBF0FBECDBFDF91CF911F910F91FF9005
:10362000EF90DF90CF90BF900C948B1E4B2D4F707E
:10363000612FC70126960FB6F894DEBF0FBECDBF2F
:10364000DF91CF911F910F91FF90EF90DF90CF907E
:10365000BF900C94470C26960FB6F894DEBF0FBEB1
:10366000CDBFDF91CF911F910F91FF90EF90DF9031
:10367000CF90BF9008950E9448210E941D210E9472
:1036800062210E9428270E94F52580E090E00E9498
:10369000CF1580E090E00C94E5150E9438210C9441
:1036A0003B1B0E944220292F22952F7030E02C30A6
:1036B00031054CF42A3031056CF4225031092230A6
:1036C000310588F407C02C30310549F02F30310521
:1036D00031F009C0803E48F0803F29F406C093FBDA
:1036E000882780F9089580E0089581E00895CF93B8
:1036F000DF9300D000D01F92CDB7DEB70F900F90B0
:103700000F900F900F90DF91CF910895CF93DF939B
:1037100000D000D000D0CDB7DEB726960FB6F89413
:10372000DEBF0FBECDBFDF91CF9108951F93CF9322
:10373000DF93C091840116E080918501C81799F04C
:10374000D0E01C9FF0011D9FF00D1124EA57FE4FA1
:103750004081518162817381848195810E94861BA1
:103760002196C770E9CFDF91CF911F9108954091C5
:10377000B6015091B7016091B8017091B901809183
:10378000BA019091BB010C94861B8091BB0182957C
:103790008F7009F054C08091B801882309F44FC09C
:1037A00080918401A09185016091B6017091B7016B
:1037B0004091B9015091BA01B6E08A1709F43FC0AF
:1037C00090E041155105C1F17F3F11F46F3FA1F128
:1037D000B89FF001B99FF00D1124EA57FE4F2181E7
:1037E00072132AC02081621327C02281211124C0B4
:1037F000238134812417350710F421503109241B0B
:10380000350B283C3105C0F42091BB012F7020619D
:103810002093BB0126E0289FF001299FF00D112481
:10382000E557FE4F80818F708061808386EB91E049
:103830000E9422180C94961B01968770BECF0895A3
:10384000CF92DF92EF92FF920F931F93CF93DF936C
:10385000CDB7DEB762970FB6F894DEBF0FBECDBF0F
:103860008C0185E0F801DE011D9601900D928A958C
:10387000E1F7D8014C9111965C91119712966C91D9
:1038800012971396CD90DC9014973091B6017091F9
:10389000B7018091B9019091BA01009709F46BC109
:1038A0007F3F19F43F3F09F466C1E090B801EE2074
:1038B00009F4C0C02091BB01C816D90628F0F60152
:1038C000E81BF90BCF0104C0809590958C0D9D1DD0
:1038D000FF24F394883C910578F0F12C207F09F0C7
:1038E000C6C07C2DD98AC88A89890E94771B86EB3D
:1038F00091E00E942218B1C0822F807F09F046C05B
:10390000751314C0341312C0611110C02F702061E0
:103910002093BB010E94B71B86EB91E00E94221806
:103920008091BB01D80115968C932EC0CD2819F13A
:103930005F3F11F44F3FF9F0F62E61111CC08091EA
:1039400084012091850136E0821709F45AC090E085
:10395000389FF001399FF00D1124EA57FE4F718115
:10396000571306C07081471303C07281711103C0E1
:1039700001968770E9CFF62E662309F418C180916D
:10398000BB0181608093BB01F12C11C1751308C08C
:10399000341306C0611104C08091BB01D801C3C0BB
:1039A0004D875E878D859E856A8B0E94511B6A8933
:1039B0008823E1F16623D1F12091BB01822F82950A
:1039C0008F7090E0029774F08091B6019091B701EA
:1039D00098878F831986DB86CA862C87CE01079647
:1039E0000E94221886E0F801A6EBB1E001900D924A
:1039F0008A95E1F70E94C51B0E94B71BFF24F39430
:103A0000D6C04D875E878D859E850E944220292FD6
:103A100022952F7030E0223031050CF0BCC09F7031
:103A200009F0B6C0805E883008F4C1C0C8010E94A9
:103A30002218E4CFC816D90608F453C0F601E81BD3
:103A4000F90BCF01883C910508F450C0F12C7C2D76
:103A5000D98AC88A89890E94771BE6EBF1E086E063
:103A6000DF011D928A95E9F70E94B71BA0C075136C
:103A700014C0341312C0611110C08091BB01F80151
:103A80008583C8010E94221886E0E6EBF1E0DF01A1
:103A90001D928A95E9F7FE2C8AC04D875E878D8539
:103AA0009E856A8B0E94511B6A89882309F4BECFC8
:103AB000662309F4BBCF2091BB01822F82958F70C2
:103AC00090E002970CF48ECF8091B6019091B701EF
:103AD0009A8389831B82DD82CC822E83CE0101965C
:103AE0007FCF809590958C0D9D1DACCFF62E6623D3
:103AF00009F49CCF75132EC034132CC02091BB0148
:103B000020FD1FC0822F82958F70D9F0D8011596A5
:103B10002C9315978F3049F08F5F982F9295907F57
:103B2000822F8F70892B15968C93C8010E942218C2
:103B300086E0F801A6EBB1E001900D928A95E1F7DD
:103B400093CF86E0F801A6EBB1E001900D928A9543
:103B5000E1F72DC04D875E878D859E850E94511BA4
:103B6000811140CF8091BB0181608093BB01C8016E
:103B70000E9422181CC0662309F458CF4D875E8727
:103B80008D859E850E94511B882309F44FCF2ACF33
:103B9000811148CF0CC0243031050CF047CF9F7005
:103BA00009F440CFF8019581907F09F03BCF8F2D2C
:103BB00062960FB6F894DEBF0FBECDBFDF91CF91F6
:103BC0001F910F91FF90EF90DF90CF9008951F937A
:103BD000CF93DF93CDB7DEB72C970FB6F894DEBF47
:103BE0000FBECDBF4F83588769877A878B879C87A5
:103BF000CE0107960E94201C882369F08F8198854A
:103C00002A853B85232BF1F19F3F09F063C08F3F4D
:103C100009F060C037C086E0FE013796DE011196DC
:103C200001900D928A95E1F76F817885EA85FB8591
:103C3000309741F17F3F11F46F3F21F120918501D1
:103C400030E0C9010196877099274091840150E0C6
:103C50008417950709F447C069837A83FD83EC8351
:103C600096E0929FD001939FB00D1124AA57BE4FAA
:103C7000FE01319601900D929A95E1F780938501AE
:103C80000E94961B16E0809184019091850189170E
:103C9000C1F1189FC00111248A579E4F0E94201C19
:103CA000882379F1E09184011E9FF0011124EA57E5
:103CB000FE4F4081518162817381848195810E9490
:103CC000861B8091840190E00196877099278093EC
:103CD0008401D9CF4F81588569857A858B859C85EC
:103CE0000E94861BCFCF0E944D1B1092850110921F
:103CF0008401E6EBF1E086E0DF011D928A95E9F7A9
:103D0000C1CF2C960FB6F894DEBF0FBECDBFDF91AA
:103D1000CF911F910895EF92FF920F931F93CF932E
:103D2000DF938C01892B09F46CC0F12CEE24E39411
:103D3000E8012196F8018491843740F4843008F03A
:103D400051C0813081F0823019F15BC0853709F4B0
:103D500044C0A8F19CE7980F903708F052C08F77C5
:103D60000E94C51741C00E5F1F4FFE01C49180E243
:103D70008C0F883048F4C7708E2D01C0880FCA950B
:103D8000EAF70E943B2114C08C2F0E94FD162DC023
:103D90000E5F1F4FFE01C49180E28C0F883058F4F3
:103DA000C7708E2D01C0880FCA95EAF70E94412185
:103DB0000E9462211AC08C2F0E94C51716C00E5F88
:103DC0001F4FFE01C491CC2381F08FE99FE0019742
:103DD000F1F700C00000C150F6CF0E5F1F4FFE018B
:103DE000F49003C00E94FD168E018F2D882309F4E4
:103DF0009FCFEFE9FFE03197F1F700C0000081505D
:103E0000F5CFDF91CF911F910F91FF90EF90089523
:103E100008956093C0017093C1018093C201909393
:103E2000C3010C943B1B0F931F930091C001109191
:103E3000C1012091C2013091C301DC01CB01802B73
:103E4000912BA22BB32B8093C0019093C101A0931F
:103E5000C201B093C3011F910F910C943B1B0F93B0
:103E60001F930091C0011091C1012091C2013091B6
:103E7000C301DC01CB0180239123A223B3238093D0
:103E8000C0019093C101A093C201B093C3011F91DF
:103E90000F910C943B1B0F931F930091C001109145
:103EA000C1012091C2013091C301DC01CB01802707
:103EB0009127A227B3278093C0019093C101A093BB
:103EC000C201B093C3011F910F910C943B1B109240
:103ED000BC011092BD011092BE011092BF010C9462
:103EE0003B1B41E050E060E070E004C0440F551F10
:103EF000661F771F8A95D2F74093BC015093BD018E
:103F00006093BE017093BF010C943B1B41E050E0F5
:103F100060E070E004C0440F551F661F771F8A954C
:103F2000D2F78091BC019091BD01A091BE01B091EA
:103F3000BF01482B592B6A2B7B2B4093BC0150931C
:103F4000BD016093BE017093BF010C943B1B41E027
:103F500050E060E070E004C0440F551F661F771FFB
:103F60008A95D2F740955095609570958091BC01E7
:103F70009091BD01A091BE01B091BF01482359238A
:103F80006A237B234093BC015093BD016093BE0123
:103F90007093BF010C943B1B41E050E060E070E087
:103FA00004C0440F551F661F771F8A95D2F7809172
:103FB000BC019091BD01A091BE01B091BF01482705
:103FC00059276A277B274093BC015093BD0160931A
:103FD000BE017093BF010C943B1B0F931F93009184
:103FE000BC011091BD012091BE013091BF01DC01E7
:103FF000CB01802B912BA22BB32B8093BC019093F0
:10400000BD01A093BE01B093BF011F910F910C940D
:104010003B1B0F931F930091BC011091BD01209198
:10402000BE013091BF01DC01CB0180239123A2238B
:10403000B3238093BC019093BD01A093BE01B093C4
:10404000BF011F910F910C943B1B0F931F93009185
:10405000BC011091BD012091BE013091BF01DC0176
:10406000CB0180279127A227B3278093BC0190938F
:10407000BD01A093BE01B093BF011F910F910C949D
:104080003B1B0895CF92DF92EF92FF920F931F9305
:10409000CF93DF938C01C090C001D090C101E0901C
:1040A000C201F090C3014091BC015091BD016091EB
:1040B000BE017091BF01C42AD52AE62AF72ACFE1B2
:1040C000D0E0D701C6010C2E04C0B695A7959795F0
:1040D00087950A94D2F780FF07C0B8018C2F0E9401
:1040E0006A0C8130910531F4219758F7B80180E0CE
:1040F0000E946A0CDF91CF911F910F91FF90EF907A
:10410000DF90CF90089590910C01992321F0909128
:104110000D01911109C020910E0130910F01F9019B
:1041200032969FEF40E030C0982F969596959695E1
:104130009F30A0F4E0910E01F0910F01E90FF11D05
:10414000877021E030E0A90102C0440F551F8A9515
:10415000E2F7CA019181892B818308959091D7015B
:1041600090FF23C01F928F9389E297E09F938F93D4
:104170000E9497080F900F900F900F9008959F3F07
:1041800039F04F5F4E3041F051915813F8CF0DC0C8
:104190005111F7CF942FF5CF9F3F39F0F901E90F77
:1041A000F11D97FDFA9582830895089590910C0171
:1041B000992321F090910D01911109C020910E01D8
:1041C00030910F01F9013296205F3F4F30C0982F98
:1041D0009695969596959F30A8F4E0910E01F091F2
:1041E0000F01E90FF11D877021E030E0A90102C045
:1041F000440F551F8A95E2F7CA0180959181892362
:10420000818308959091D70190FF16C01F928F93DC
:104210008BE097E09F938F930E9497080F900F90E9
:104220000F900F9008953196E217F30729F09081CF
:104230009813F9CF1082F7CF089581E090E0E091D4
:104240000E01F0910F01E80FF91F108201968031E5
:104250009105A9F708959091D601892B8093D601F5
:10426000089580959091D60189238093D601089571
:104270001092D60108959091D501892B8093D50194
:10428000089580959091D50189238093D501089553
:104290001092D50108958093C40108951092C4012D
:1042A000089580910E0190910F01FC0131969C01BF
:1042B000205F3F4F80E0919191118F5FE217F307EC
:1042C000D1F70895E0910E01F0910F018091D60190
:1042D0008083E0910E01F0910F0190818091D501D2
:1042E000892B80838091C401882361F0E0910E01C5
:1042F000F0910F019081892B80830E9451218111BF
:104300001092C40180910E0190910F010C947B15C5
:1043100090933B0180933A010895CF92DF92EF9200
:10432000FF926C01EE24FF24C114D104E104F104D6
:1043300021F0C701B60120E101C020E0C72ED82E30
:10434000E92EFF24C114D104E104F10419F0285F1F
:10435000C701B6016B017C0154E0F694E794D79451
:10436000C7945A95D1F7C114D104E104F10419F0AE
:104370002C5FC701B6016B017C0142E0F694E79423
:10438000D794C7944A95D1F7C114D104E104F1043C
:1043900019F02E5FC701B601DC01CB01B695A795D8
:1043A00097958795892B8A2B8B2B09F02F5F822F6E
:1043B000FF90EF90DF90CF9008958295982F9C7C8E
:1043C000392F36953695282F237344E0249FC0015A
:1043D0001124932F982B292F2A7A2695892F8575BA
:1043E000880F822B08951F93CF93DF931F92CDB731
:1043F000DEB799830E94DD21182F9981892F0E94B1
:10440000DD21212F30E0322F2227A901482BCA01BC
:104410000F90DF91CF911F9108958091F00184302A
:1044200009F11092D80120E488E190E00FB6F894E9
:10443000A895809360000FBE2093600083B7817FB2
:10444000846083BF83B7816083BF7894889583B786
:104450008E7F83BF88E10FB6F8948093600010923E
:1044600060000FBE089508950895CF930E943322EF
:104470000E940F0A0E943422C0E08C2F0E943B0B46
:10448000811104C0CF5FCE30C1F701C081E0CF9170
:1044900008950C944D1B82E084BD93E095BD9AEF86
:1044A00097BD80936E0008952FB7F8948091D9013D
:1044B0009091DA01A091DB01B091DC012FBF08954A
:1044C000CF92DF92EF92FF920F931F932FB7F89442
:1044D0004091D9015091DA016091DB017091DC01CA
:1044E0002FBF6A017B01EE24FF248C0120E030E025
:1044F000C016D106E206F30610F4415051099A01A4
:10450000281B390BC9011F910F91FF90EF90DF908D
:10451000CF9008951F920F920FB60F9211248F9390
:104520009F93AF93BF938091D9019091DA01A091AD
:10453000DB01B091DC010196A11DB11D8093D90171
:104540009093DA01A093DB01B093DC01BF91AF91AE
:104550009F918F910F900FBE0F901F9018950E9402
:104560006D12F8942FEF87EA91E621508040904039
:10457000E1F700C0000087E090EBDC018093F901D7
:104580009093FA01A093FB01B093FC019CE088E1B9
:104590000FB6F894A895809360000FBE90936000CA
:1045A000FFCFEF92FF920F931F93CF93DF93D82FFC
:1045B000C0E08C2F0E943B0B00E010E0E82EF12CB5
:1045C000C701002E02C0959587950A94E2F780FDF9
:1045D00006C00F5F1F4F0630110591F709C0602F0D
:1045E0007C2F80E00E94480CD813F3CF81E004C0F8
:1045F000CF5FCE30F1F680E0DF91CF911F910F9128
:10460000FF90EF900895CF93C82F8CE20E94D122A3
:10461000882321F08C2FCF910C94D12280E0CF9170
:104620000895CF930E946024811102C00E94462405
:104630008EE497E00E94FE07C5E6C15049F00E9453
:104640000F0A8FE39CE90197F1F700C00000F5CF56
:1046500087E497E00E94FE0789E20E94032381110C
:1046600013C18AE20E94032381110E94462485E03F
:104670000E94032381110E94AF220E946B24809329
:10468000D70187E00E9403238823A9F18BE10E94D0
:104690000323882351F08091D70181FB222720F941
:1046A00091E0922790FB81F90EC08EE00E940323D7
:1046B000882361F08091D70182FB222720F991E0C5
:1046C000922790FB82F98093D70115C080E10E9468
:1046D00003239091D701882341F093FB222720F9EF
:1046E00081E0822780FB93F904C0892F809580FBAD
:1046F00090F99093D7018091D7010E946F240E9476
:104700007D248093EA0180EE0E940323882341F0F8
:104710008091EA01982F909590FB80F98093EA01AF
:1047200089E30E940323882359F08091EA0181FBE9
:10473000222720F991E0922790FB81F98093EA01EA
:1047400082EE0E940323882359F08091EA0182FBC4
:10475000222720F991E0922790FB82F98093EA01C9
:1047600086EE0E940323882359F08091EA0183FB9F
:10477000222720F991E0922790FB83F98093EA01A8
:1047800083EE0E940323882359F08091EA0184FB81
:10479000222720F991E0922790FB84F98093EA0187
:1047A00085E30E940323882359F08091EA0185FB69
:1047B000222720F991E0922790FB85F98093EA0166
:1047C00081E30E940323882359F08091EA0186FB4C
:1047D000222720F991E0922790FB86F98093EA0145
:1047E00081E10E940323882359F08091EA0187FB2D
:1047F000222720F991E0922790FB87F98093EA0124
:104800008091EA010E9481248091EA0187FB882738
:1048100080F980930D0187E20E940323C82F8EE167
:104820000E9403238111C2608FE10E940323811142
:10483000C46080E20E9403238111C86081E20E946B
:1048400003238111C06182E20E9403238111C062AF
:1048500083E20E9403238111C06484E20E94032347
:10486000882311F0C06802C0CC2329F08C2F0E944D
:1048700078246C2F03C00E947424682F70E080E0BD
:1048800090E0CF910C94091FCF9108956DEE7EEFCB
:1048900080E090E00E94492E60E082E090E00E947B
:1048A0003B2E60E083E090E00E943B2E60E084E0DD
:1048B00090E00E943B2E60E085E090E00C943B2E5F
:1048C00080E090E00E94352E21E08D3E9E4F09F061
:1048D00020E0822F089582E090E00C942D2E682F26
:1048E00082E090E00C943B2E83E090E00C942D2E1F
:1048F000682F83E090E00C943B2E84E090E00C94D1
:104900002D2E682F84E090E00C943B2E8091DF01E7
:1049100080FF0BC06091130185E0689FB0011124F6
:1049200075956795759567952BC081FF09C0609156
:10493000130185E0689FB00111247595679520C02B
:1049400082FF07C06091130185E0689FB0011124C8
:1049500017C09091E0019923D1F060911201961750
:1049600088F72091130185E0289F90011124929FE0
:10497000A001939F500D112470E0CA010E94FF2DE9
:104980006038710540F46115710539F002C065E0C9
:1049900070E0862F08958FE7089581E00895809153
:1049A000DF0180FF08C06091110170E07595679587
:1049B0007595679521C081FF06C06091110170E077
:1049C0007595679519C082FF04C06091110170E070
:1049D00010C09091E0019923C1F0609110019617E9
:1049E000A0F780911101899FC001112470E00E94FD
:1049F000FF2D6038710528F46115710521F0862FAF
:104A000008958FE7089581E0089561E070E0F4CFA4
:104A1000803F21F40E948624819504C0813F29F4BF
:104A20000E9486248093E3010895823F21F40E942E
:104A30008624819504C0833F29F40E9486248093B4
:104A4000E2010895893F19F40E94CF2405C08A3FEE
:104A500031F40E94CF2481958093E40108958B3F27
:104A600021F40E94CF24819504C08C3F29F40E9438
:104A7000CF248093E5010895843F21F48091E101E2
:104A8000816017C0853F21F48091E101826011C0EF
:104A9000863F21F48091E10184600BC0873F21F4BF
:104AA0008091E101886005C0883F31F48091E10187
:104AB00080618093E10108958D3F21F48091DF01B1
:104AC00081600BC08E3F21F48091DF01826005C0C0
:104AD0008F3F29F48091DF0184608093DF01089586
:104AE000803F39F48091E30187FF6CC01092E301AD
:104AF00069C0813F29F48091E3011816BCF362C0BC
:104B00009091E201823F29F497FF5CC01092E2018C
:104B100059C0833F19F41916CCF354C0893F41F4AE
:104B20008091E40118160CF04DC01092E4014AC0C7
:104B30008A3F29F48091E40187FF44C0F6CF8B3F80
:104B400039F48091E50187FF3DC01092E5013AC03C
:104B50008C3F29F48091E5011816BCF333C0843FE3
:104B600021F48091E1018E7F17C0853F21F480916F
:104B7000E1018D7F11C0863F21F48091E1018B7F9F
:104B80000BC0873F21F48091E101877F05C0883FFA
:104B900031F48091E1018F7E8093E10113C08D3F5C
:104BA00021F48091DF018E7F0BC08E3F21F4809134
:104BB000DF018D7F05C08F3F29F48091DF018B7F5E
:104BC0008093DF018091E20181110EC08091E301A9
:104BD00081110AC08091E401811106C08091E50134
:104BE000811102C01092E00108958091D70183FFE6
:104BF0007EC08AE897E00E94FE078091E1011F9243
:104C00008F9385E897E09F938F930E94970883E89E
:104C100097E00E94FE078091E201282F332727FDAD
:104C200030953F938F9380E897E09F938F930E94F6
:104C300097088EE797E00E94FE078091E301282FF6
:104C4000332727FD30953F938F938BE797E09F9312
:104C50008F930E94970889E797E00E94FE07809152
:104C6000E401282F332727FD30953F938F9386E764
:104C700097E09F938F930E94970884E797E00E94A4
:104C8000FE078091E501282F332727FD30953F93BC
:104C90008F9381E797E09F938F930E9497088EE60A
:104CA00097E00E94FE078091E0011F928F938BE6B0
:104CB00097E09F938F930E94970889E697E00E9460
:104CC000FE078091DF011F928F9386E697E09F9306
:104CD0008F930E94970883E697E00E94FE078DB7A6
:104CE0009EB74C960FB6F8949EBF0FBE8DBF81EE57
:104CF00091E00E94C4150E9454229093DE0180939B
:104D0000DD0108951F93CF93DF938091DD01909192
:104D1000DE010E946022AC019091E001992321F014
:104D20002091140130E006C0209115018AE0289FEF
:104D3000900111244217530708F486C08091E201C4
:104D4000C091E301D091E4011091E501811107C008
:104D5000C11176C0D11174C0111172C075C09F3FCE
:104D600019F09F5F9093E001181624F40E948624A6
:104D70008093E2018091E20187FF05C00E948624B2
:104D800081958093E2011C1624F40E94862480936E
:104D9000E3018091E30187FF05C00E94862481958D
:104DA0008093E3016091E201662339F1C091E30150
:104DB000CC2319F1772767FD7095872F972F0E94D5
:104DC000042D23E333E343E35FE30E94682D0E9455
:104DD000D12C6093E2016C2F772767FD7095872FA8
:104DE000972F0E94042D23E333E343E35FE30E9404
:104DF000682D0E94D12C6093E3011D1624F40E94BB
:104E0000CF248093E4018091E40187FF05C00E94D4
:104E1000CF2481958093E401111624F40E94CF24BD
:104E20008093E5018091E50187FF05C00E94CF24B2
:104E300081958093E501DF91CF911F910C94F52529
:104E40009F3F09F08ECF96CFDF91CF911F910895AC
:104E5000E1EEF1E085E0DF011D928A95E9F710921D
:104E6000E0011092DF0108958DEA99E00E94FE07AB
:104E70001F9281E08F931F9285E08F938FE599E0D9
:104E80009F938F930E9497080F900F900F900F9011
:104E90000F900F9008958330E9F128F4813061F08C
:104EA000823009F10895853009F462C008F449C0E0
:104EB000863009F474C0089580911501262F30E0E2
:104EC000280F311D2F3F310524F4680F6093150121
:104ED00003C08FEF80931501809115011F928F936E
:104EE00088E998E072C080911401262F30E0280FE5
:104EF000311D2F3F310524F4680F6093140103C066
:104F00008FEF80931401809114011F928F9386E894
:104F100098E05BC080911301262F30E0280F311DEF
:104F20002F3F310524F4680F6093130103C08FEF06
:104F300080931301809113011F928F9383E798E070
:104F400044C080911201262F30E0280F311D2F3FE1
:104F5000310524F4680F6093120103C08FEF809332
:104F60001201809112011F928F938EE598E02DC05F
:104F700080911101262F30E0280F311D2F3F310580
:104F800024F4680F6093110103C08FEF8093110127
:104F9000809111011F928F9385E498E016C0809153
:104FA0001001262F30E0280F311D2F3F310524F44A
:104FB000680F6093100103C08FEF80931001809100
:104FC00010011F928F938AE298E09F938F930E9423
:104FD00097080F900F900F900F900895833081F1F4
:104FE00028F4813059F08230D1F00895853009F4E9
:104FF00049C0B8F1863009F456C008958091150172
:10500000681720F4861B8093150102C010921501C9
:10501000809115011F928F938BE198E054C080918D
:105020001401681720F4861B8093140102C01092AB
:105030001401809114011F928F9389E098E043C07E
:1050400080911301681720F4861B8093130102C01E
:1050500010921301809113011F928F9386EF97E0B6
:1050600032C080911201681720F4861B80931201D0
:1050700002C010921201809112011F928F9381EE53
:1050800097E021C080911101681720F4861B80935E
:10509000110102C010921101809111011F928F9392
:1050A00088EC97E010C080911001681720F4861BEF
:1050B0008093100102C010921001809110011F9284
:1050C0008F938DEA97E09F938F930E9497080F909C
:1050D0000F900F900F900895CF93C82F1F928F932A
:1050E00082EB9AE09F938F930E94970881E090E073
:1050F000A0E0B0E0BC01CD0104C0660F771F881F9F
:10510000991FCA95D2F70E94091F0F900F900F9018
:105110000F90CF910C944D1BCF938D3109F465C046
:10512000B0F58E3009F4CCC100F5873009F49BC18D
:10513000A8F4863009F06DC28091D701817F8E7FFF
:105140008093D70187EB9AE00E94FE0789EF9EE0EB
:105150000E94FE0781E08093E70180C1883009F456
:105160004FC08B3009F47CC154C2863109F4F0C1C0
:1051700038F4803109F4B8C1813109F430C249C230
:10518000893109F4CEC18B3109F486C142C285331D
:1051900009F437C248F4873209F433C208F433C241
:1051A000893209F42EC235C2833438F48A3308F0C8
:1051B0002CC2883309F454C12CC2833409F421C2AF
:1051C000883409F026C20E944D1B88EE9EE00E94A2
:1051D000FE079FEF23ED80E3915020408040E1F7F0
:1051E00000C000000E94AF2239C188E09FE00E9409
:1051F000FE070E948B2C0E946F150E94A10D2EC1EC
:105200008DEF9EE00E94FE0788EC9CE00E94FE0766
:105210000E9474241F928F9385EC9CE09F938F9340
:105220000E94970883EC9CE00E94FE070E946B247A
:10523000C82F80EB9CE00E94FE071F92CF938BEA61
:105240009CE09F938F930E94970889EA9CE00E94BC
:10525000FE078FE99CE00E94FE078C2F81701F9251
:105260008F938CE99CE09F938F930E9497088AE923
:105270009CE00E94FE0780E99CE00E94FE07C1FBC3
:10528000882780F91F928F938DE89CE09F938F93DE
:105290000E9497088BE89CE00E94FE078FE79CE045
:1052A0000E94FE07C2FB882780F91F928F938CE72C
:1052B0009CE09F938F930E9497088AE79CE00E944E
:1052C000FE0781E79CE00E94FE07C3FBCC27C0F9E4
:1052D0001F92CF938EE69CE09F938F930E94970836
:1052E0008CE69CE00E94FE070E947D24C82F88E582
:1052F0009CE00E94FE071F92CF9383E59CE09F9362
:105300008F930E94970881E59CE00E94FE0788E346
:105310009CE00E94FE078C2F81701F928F9385E383
:105320009CE09F938F930E9497088DB79EB78096BD
:105330000FB6F8949EBF0FBE8DBF83E39CE00E9422
:10534000FE078CE19CE00E94FE07C1FB882780F9E4
:105350001F928F9389E19CE09F938F930E949708FF
:1053600087E19CE00E94FE0785E09CE00E94FE072A
:10537000C2FB882780F91F928F9382E09CE09F9365
:105380008F930E94970880E09CE00E94FE078EEEBB
:105390009BE00E94FE07C3FB882780F91F928F9332
:1053A0008BEE9BE09F938F930E94970889EE9BE082
:1053B0000E94FE078FED9BE00E94FE07C4FB88273A
:1053C00080F91F928F938CED9BE09F938F930E94A7
:1053D00097088AED9BE00E94FE0788EC9BE00E9404
:1053E000FE07C5FB882780F91F928F9385EC9BE011
:1053F0009F938F930E94970883EC9BE00E94FE0787
:1054000087EA9BE00E94FE07C6FB882780F91F926F
:105410008F9384EA9BE09F938F930E94970882EA80
:105420009BE00E94FE078AE99BE00E94FE07C7FB03
:10543000CC27C0F91F92CF9387E99BE09F938F936E
:105440000E94970885E99BE00E94FE078DB79EB7F2
:105450004C960FB6F8949EBF0FBE8DBFC1E0DEC064
:105460008EED9AE05BC08091D701C82FC17080FF9C
:1054700009C08BED9EE00E94FE078091D701817FDD
:105480008E7F47C08FEC9EE00E94FE078091D7017F
:1054900081608093D701E2CF9091D70191FBCC2717
:1054A000C0F981E0C827892FC0FB81F98093D7011B
:1054B000CC2319F082EC9EE027C084EB9EE02EC046
:1054C0009091D70192FBCC27C0F981E0C827892FA2
:1054D000C0FB82F98093D701CC2319F085EA9EE0C6
:1054E00013C085E99EE01AC09091D70193FBCC27A9
:1054F000C0F981E0C827892FC0FB83F98093D701C9
:10550000CC2351F089E89EE00E94FE078091D701EC
:1055100081608093D70182C08CE79EE00E94FE07E5
:105520009DCF8DE69EE00E94FE0781E49EE00E94F2
:10553000FE0784E09EE00E94FE0787ED9DE00E944A
:10554000FE0783E99DE00E94FE0788E69DE0E6CF26
:105550008AE59DE00E94FE070E946F151F928F93BF
:1055600080E49DE09F938F930E94970880910C01A7
:105570001F928F9389E29DE09F938F930E949708DB
:1055800080916E011F928F9386E19DE09F938F9390
:105590000E94970880910D011F928F9383E09DE0F8
:1055A0009F938F930E9497088091D9019091DA017F
:1055B000A091DB01B091DC01BF93AF939F938F93D8
:1055C0008FEE9CE09F938F930E9497088DB79EB7B4
:1055D00046960FB6F8949EBF0FBE8DBF3FCF0E9478
:1055E0004D1BC0910D0181E0C827C0930D01CC2354
:1055F00029F085EE9CE00E94FE0710C08AED9CE039
:105600008DCF80E003C08D5101C089530E946C286A
:1056100025CF88ED9CE00E94FE07C0E08C2FCF9143
:10562000089580E0089580E00895CF93C82F809179
:10563000E701813081F020F0823009F44FC045C18C
:10564000E0910E01F0910F018081813169F0823289
:1056500009F03DC109C0E0910E01F0910F01808178
:10566000813111F0823261F48C2F0E94112B811153
:1056700004C08C2F0E948C282FC081E090E02CC0A9
:105680008C2F0E94132B811126C0C431E1F070F4DD
:10569000CB3081F0C031D1F40E9434278AEA9AE0FD
:1056A0000E94FE0782E08093E70115C0C93259F0DD
:1056B000C83361F487EB9AE00E94FE078EEA9AE015
:1056C0000E94FE0708C01092E70103C188EA9AE031
:1056D0000E94FE07FEC081E08170FDC0C43220F54B
:1056E000CE3108F0C0C0CB3099F1C8F4C73009F012
:1056F000D2C08AE08093150194E19093140193E065
:10570000909313018093120188E08093110188E245
:10571000809310018EE499E00E94FE07BFC0C33160
:1057200049F1C431C1F0B7C0CB3409F4A9C028F4A1
:10573000C93289F0C83361F0AEC0C13509F49EC0EA
:10574000C23509F499C0CE3409F0A5C06AE09EC004
:105750000E943427A3C08091E601882319F010929B
:10576000E6019CC08BE599E00E94FE0781E08093F2
:10577000E701B1C085E399E00E94FE0783E299E06A
:105780000E94FE07809115011F928F9380E299E09D
:105790009F938F930E9497088EE199E00E94FE07E5
:1057A0008CE099E00E94FE07809114011F928F9374
:1057B00089E099E09F938F930E94970887E099E092
:1057C0000E94FE0788EF98E00E94FE078091130177
:1057D0001F928F9385EF98E09F938F930E94970875
:1057E00083EF98E00E94FE0782EE98E00E94FE0799
:1057F000809112011F928F938FED98E09F938F936A
:105800000E9497088DED98E00E94FE0788EC98E0D2
:105810000E94FE07809111011F928F9385EC98E002
:105820009F938F930E94970883EC98E00E94FE0755
:105830008CEA98E00E94FE07809110011F928F93DE
:1058400089EA98E09F938F930E94970887EA98E0EF
:105850000E94FE078DB79EB748960FB6F8949EBF7C
:105860000FBE8DBF1BC0CE51EC2FF0E0E15DFE4FAF
:1058700080818093E60112C061E003C061E006C050
:105880006AE08091E6010E944B2708C08091E60102
:105890000E94EE2703C08CE499E013C08091E601DA
:1058A000882369F01F928F9386E499E09F938F93EA
:1058B0000E9497080F900F900F900F9004C083E400
:1058C00099E00E94FE0781E006C01092E70180E0A7
:1058D00002C080E001CFCF910895E1E8F0E080813F
:1058E000886080838081816080838FB7F89493E0A3
:1058F0009093890090ED909388008FBF0895EFE614
:10590000F0E08081826080830895EFE6F0E080819E
:105910008D7F80830895EFE6F0E0908182E0892713
:10592000808308951F920F920FB60F9211242F9328
:105930003F934F935F936F937F938F939F93AF9317
:10594000BF93EF93FF938091E8019091E901019655
:105950009093E9018093E801811103C082E00E94E5
:10596000A10DE091E901E695E695F0E0E85EF04FE3
:10597000E4918091E8018E1303C080E00E94A10DA4
:10598000FF91EF91BF91AF919F918F917F916F9117
:105990005F914F913F912F910F900FBE0F901F90ED
:1059A000189504D06894B1118DC0089570D088F016
:1059B0009F5790F0B92F9927B751A0F0D1F0660FFB
:1059C000771F881F991F1AF0BA95C9F712C0B13016
:1059D00081F077D0B1E0089574C0672F782F8827C1
:1059E000B85F39F0B93FCCF3869577956795B39555
:1059F000D9F73EF490958095709561957F4F8F4FC4
:105A00009F4F0895E89409C097FB3EF490958095C8
:105A1000709561957F4F8F4F9F4F9923A9F0F92F74
:105A200096E9BB279395F695879577956795B795F2
:105A3000F111F8CFFAF4BB0F11F460FF1BC06F5FD8
:105A40007F4F8F4F9F4F16C0882311F096E911C0EA
:105A5000772321F09EE8872F762F05C0662371F00B
:105A600096E8862F70E060E02AF09A95660F771F1F
:105A7000881FDAF7880F9695879597F9089557FD4F
:105A80009058440F551F59F05F3F71F04795880FAC
:105A900097FB991F61F09F3F79F087950895121643
:105AA00013061406551FF2CF4695F1DF08C01616EF
:105AB00017061806991FF1CF8695710561050894A0
:105AC0000895E894BB2766277727CB0197F90895B7
:105AD0000BD078C069D028F06ED018F0952309F06B
:105AE0005AC05FC01124EECFCADFA0F3959FD1F357
:105AF000950F50E0551F629FF001729FBB27F00D7C
:105B0000B11D639FAA27F00DB11DAA1F649F6627D0
:105B1000B00DA11D661F829F2227B00DA11D621F1F
:105B2000739FB00DA11D621F839FA00D611D221FD9
:105B3000749F3327A00D611D231F849F600D211DBD
:105B4000822F762F6A2F11249F5750408AF0E1F060
:105B500088234AF0EE0FFF1FBB1F661F771F881FA9
:105B600091505040A9F79E3F510570F014C0AACF44
:105B70005F3FECF3983EDCF3869577956795B79594
:105B8000F795E7959F5FC1F7FE2B880F911D9695BE
:105B9000879597F9089597F99F6780E870E060E02E
:105BA00008959FEF80EC089500240A9416161706B6
:105BB00018060906089500240A94121613061406FE
:105BC00005060895092E0394000C11F4882352F061
:105BD000BB0F40F4BF2B11F460FF04C06F5F7F4F19
:105BE0008F4F9F4F0895991B79E004C0991F961716
:105BF00008F0961B881F7A95C9F78095089597FB42
:105C0000072E16F4009407D077FD09D00E94192EB4
:105C100007FC05D03EF4909581959F4F08957095AF
:105C200061957F4F0895EE0FFF1F0590F491E02DD1
:105C30000994AA1BBB1B51E107C0AA1FBB1FA617D3
:105C4000B70710F0A61BB70B881F991F5A95A9F725
:105C500080959095BC01CD010895F999FECF92BD34
:105C600081BDF89A992780B50895A8E1B0E042E097
:105C700050E00C94502E262FF999FECF1FBA92BDFA
:105C800081BD20BD0FB6F894FA9AF99A0FBE01961D
:105C900008950E943B2E272F0C943C2EDC01CB0153
:105CA000FC01F999FECF06C0F2BDE1BDF89A31962C
:105CB00000B40D9241505040B8F70895F894FFCFCA
:105CC0002002A20D930E700E3C0E080E0101C501BC
:105CD00028080A03140A3F4D36203998064B06154A
:105CE00006F505BC052F05480561057A059A0501ED
:0A5CF000020304050607080900007E
:00000001FF

@ -0,0 +1,27 @@
#Ergodox EZ für OSX
Dies ist nur ein kleiner Tweak der bestehenden firmware für das ErgoDox-EZ-Keyboard. Leider passte das layout nicht wirklich für OSX, deswegen habe ich einige Anpassungen gemacht. Dabei wurden folgende features umgesetzt:
- Die Umlaute sollten an einigermassen sinnvollen Plätzen liegen
- der Umstieg sollte dadurch erleichtert werden, dass einige Tasten an ihren "normalen" Platz zurückgewandert sind. Z.B. ESC, Tab,...
- die Leertaste lässt sich jetzt mit beiden Daumen bedienen
- die CMD- und Alt-Tasten sind in der Mitte einfach erreichbar.
- es gibt eine neue Layer für die Nutzung der Cursortasten, dort sind sie etwas einfacher angeordnet und sind z.B. auch für Spiele nutzbar
- Die Symbollayer wurde dahingehend angepasst, dass die klammern, etc nun auf beiden hälften der Tastatur zu finden sind
- der Zehnerblock wurde in eine eigene Layer umgezogen
- die Meh und Hyper-Tasten wurden in die Daumenblöcke umgezogen
------------------------------
# ErgoDox EZ for OSX
This is only a little tweak of the existing default layout for the ErgoDox keyboard. Unfortunately the default layout did not work well with german OSX, so I created som adjustments. These were the features added and changed:
- the umlaut-keys should be at their useful place more or less
- the switching should be made more easy so some other keys (like tab, esc) were moved to their default place
- the space key can now be used with both hands
- the CMD- and ALT-Keys moved to the middle, can be reached more easily.
- there is a new layer for using the cursor-keys, placed like on the default keyboard. This makes them useable for games also
- the symbollayer now has only symbols
- the number block was moved to a special layer
- meh and hyper went down to the thumb block

Binary file not shown.

After

Width:  |  Height:  |  Size: 738 KiB

@ -0,0 +1,191 @@
// Netable differences vs. the default firmware for the ErgoDox EZ:
// 1. The Cmd key is now on the right side, making Cmd+Space easier.
// 2. The media keys work on OSX (But not on Windows).
// Wanted to map default layer of my EZ to my existing Kinesis Mapping.
// Only default layer was remapped all others layers are standard Ergodox EZ
// Very personal mapping of-course, but who knows a starting point for others.
#include "ergodox_ez.h"
#include "debug.h"
#include "action_layer.h"
#define BASE 0 // default layer
#define SYMB 1 // symbols
#define MDIA 2 // media keys
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | CapsL | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | TAB | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | ESC | A | S | D | F | G |------| |------| H | J | K | L |; / L2| '" |
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
* | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |AltShf|Grv/L1| '" | Left | Right| | Up | Down | [ | ] | ~L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | LGui | App | | Ctrl/Esc | RGui |
* ,------|------|------| |------+--------+------.
* | | | Home | | = | | |
* | Backs|Delete|------| |------| Enter |Space |
* | pace | | End | | TAB | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_CAPSLOCK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
LALT(KC_LSFT), LT(SYMB,KC_GRV),KC_QUOT,KC_LEFT,KC_RGHT,
KC_LGUI, ALT_T(KC_APP),
KC_HOME,
KC_BSPC,KC_DELT,KC_END,
// right hand
KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOTE,
MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1,
CTL_T(KC_ESC), KC_LGUI,
KC_EQL,
KC_TAB, KC_ENT, KC_SPC
),
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | . | 0 | = | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 2: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | MsUp | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | Prev | Next | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | |Brwser|
* | | |------| |------| |Back |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// MEDIA AND MOUSE
KEYMAP(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
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_MPLY,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_WBAK
),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
};
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);
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};
// Runs just one time when the keyboard initializes.
void * matrix_init_user(void) {
};
// Runs constantly in the background, in a loop.
void * matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
// TODO: Make this relevant to the ErgoDox EZ.
case 1:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
default:
// none
break;
}
};

@ -0,0 +1,139 @@
#include "ergodox_ez.h"
#include "debug.h"
#include "action_layer.h"
#include "keymap_extras/keymap_neo2.h"
// Layer names
#define BASE 0 // default layer
#define MDIA 1 // media keys
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ^ | 1 | 2 | 3 | 4 | 5 | Play | | Next | 6 | 7 | 8 | 9 | 0 |BackSpce|
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Del | X | V | L | C | W | L1 | | L1 | K | H | G | F | Q | ß |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Caps | U | I | A | E | O |------| |------| S | N | R | T | D | Y |
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
* | LShift |Ü/Ctrl| Ö/C-S| Ä/Alt| P | Z | | | | B | M | , | . | J | RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | L1 | Home | PgDn | PgUp | End | | Right| Down | Up | Left | Esc |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | App | LGui | | Alt |Ctrl/Esc|
* ,------+------+------| |------+--------+------.
* | | |NeoL2 | |NeoL2 | | |
* | Tab |Backsp|------| |------| Space |Enter |
* | |ace |NeoL1 | |NeoL1 | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY,
KC_DELT, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, TG(1),
KC_CAPS, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O,
KC_LSFT, CTL_T(NEO_UE), C_S_T(NEO_OE), ALT_T(NEO_AE), NEO_P, NEO_Z, ALL_T(KC_NO),
DE_LESS, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
ALT_T(KC_APP),KC_LGUI,
NEO_L2_L,
KC_TAB,KC_BSPC,NEO_L1_L,
// right hand
KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
TG(1), NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS,
NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_Y,
MEH_T(KC_NO),NEO_B, NEO_M, KC_COMM, KC_DOT, NEO_J, KC_RSFT,
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ESC,
KC_LALT,CTL_T(KC_ESC),
NEO_L2_R,
NEO_L1_R,KC_SPC, KC_ENT
),
/* Keymap 1: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | Lclk | MsUp | Rclk | | | | | |VolDwn| Mute |VolUp | | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------| |------| | Prev | Stop | Play | Next | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | |WhRght|WhDown| WhUp |WhLeft|WhClk | | | |BwSrch|BwBack|BwHome|BwRefr|BwFwd | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | |MsAcl0|MsAcl1|MsAcl2| | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | |Brwser|Brwser|
* | Lclk | Rclk |------| |------|Back |Forwd |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// MEDIA AND MOUSE
[MDIA] = KEYMAP(
KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS,
KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS,
KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5,
KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS,
KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_BTN1, KC_BTN2, KC_TRNS,
// right hand
KC_TRNS, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11,
KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12,
KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS,
KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_WBAK, KC_WFWD
),
};
const uint16_t PROGMEM fn_actions[] = {
/* [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) */
};
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);
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};
// Runs just one time when the keyboard initializes.
void * matrix_init_user(void) {
};
// Runs constantly in the background, in a loop.
void * matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
case MDIA:
ergodox_right_led_2_on();
break;
default:
ergodox_board_led_off();
break;
}
};

@ -0,0 +1,366 @@
#include "ergodox_ez.h"
#include "debug.h"
#include "action_layer.h"
// README
// This keyboard layout is based on the [Workman Dead layout](https://github.com/ojbucao/Workman/tree/master/mac#workman-dead-for-programmers), which uses the comma as a dead key to trigger a second layer.
// Since I have more keys at my disposal on the ErgoDox, I moved the dead key to the bottom right. There are still a lot of
// blanks so still discovering what I like.
// If you aren't familiar with a dead key, the idea is that you tap the dead key which switches the layout. the next key you hit
// triggers the key you pressed AND switches the layout back to the original. For now I do this with a super kludgey macro and I
// look forward to learning about a more elegant way to do the same thing. Until then, this will have to do.
// TODO: Define layer names that make sense for the ErgoDox EZ.
#define BASE 0 // default layer
#define SYMB 1 // symbols
#define MDIA 2 // media keys
#define DEAD 3 // dead version of the symbols layer
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Tab | Q | D | R | W | B | L1 | | L1 | J | F | U | P | ; | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Hyper | A | S | H | T | G |------| |------| Y | N | E | O | I | ' |
* |--------+------+------+------+------+------| | | Meh |------+------+------+------+------+--------|
* | LShift | Z | X | M | C | V | | | | K | L | , | . |//Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | CTRL | OPT | CMD | | Left | Down | Up | Right| L3 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+--------+------.
* | | | Home | | PgUp | | |
* |Bckspc| Space|------| |------| Space |Enter |
* | | | End | | PgDn | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, TG(1),
ALL_T(KC_ESC), KC_A, KC_S, KC_H, KC_T, KC_G,
KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_NO,
KC_NO, KC_NO, KC_LCTL,KC_LALT,KC_LGUI,
KC_NO, KC_NO,
KC_HOME,
KC_BSPC,KC_SPC,KC_END,
// right hand
KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
TG(1), KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS,
KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT,
MEH_T(KC_NO),KC_K, KC_L, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, KC_FN4,
KC_NO, KC_NO,
KC_PGUP,
KC_PGDN,KC_SPC,KC_ENT
),
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | % | & | ? | + | @ | | | | $ | _ | [ | ] | ! | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | / | ( | = | 0 | { |------| |------| } | 1 | * | ) | - | " |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | 6 | 7 | 8 | 9 | | | | | | \ | 2 | 3 | 4 | 5 | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_TRNS, KC_PERC, KC_AMPR, LSFT(KC_SLSH), LSFT(KC_EQL), KC_AT, KC_TRNS,
KC_TRNS, KC_SLSH, KC_LPRN, KC_EQL, KC_0, LSFT(KC_LBRC),
KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_PIPE, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, KC_DLR, KC_UNDERSCORE, KC_LBRC, KC_RBRC, KC_EXLM, KC_F12,
KC_RCBR, KC_1, KC_ASTR, KC_RPRN, KC_MINS, KC_QUOT,
KC_TRNS, KC_SLSH, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 2: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | MsUp | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | Prev | Next | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | |Brwser|
* | | |------| |------| |Back |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// MEDIA AND MOUSE
[MDIA] = KEYMAP(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
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_MPLY,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_WBAK
),
/* Keymap 4: Dead Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | % | & | ? | + | @ | | | | $ | _ | [ | ] | ! | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | / | ( | = | 0 | { |------| |------| } | 1 | * | ) | - | " |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | 6 | 7 | 8 | 9 | | | | | | \ | 2 | 3 | 4 | 5 | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// SYMBOLS
[DEAD] = KEYMAP(
// left hand
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_TRNS, M(100), M(101), M(102), M(103), M(104), KC_TRNS,
KC_TRNS, M(109), M(110), M(111), M(112), M(113),
KC_TRNS, M(120), M(121), M(122), M(123), M(124), KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, M(105), M(106), M(107), M(108), M(130), KC_F12,
M(114), M(115), M(116), M(117), M(118), M(119),
KC_TRNS, M(125), M(126), M(127), M(128), M(129), 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_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols)
[2] = ACTION_LAYER_ON(BASE,0), // FN2 - Go back to the base layer
[3] = ACTION_LAYER_ON(DEAD,0),
[4] = ACTION_LAYER_TOGGLE(DEAD),
};
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);
} else {
unregister_code(KC_RSFT);
}
break;
case 100:
layer_clear();
return MACRODOWN(D(LSFT), T(5), U(LSFT), T(FN4), END);
break;
case 101:
layer_clear();
return MACRODOWN(D(LSFT), T(7), U(LSFT), T(FN4), END);
break;
case 102:
layer_clear();
return MACRODOWN(D(LSFT), T(SLSH), U(LSFT), T(FN4), END);
break;
case 103:
layer_clear();
return MACRODOWN(D(LSFT), T(EQL), U(LSFT), T(FN4), END);
break;
case 104:
layer_clear();
return MACRODOWN(D(LSFT), T(2), U(LSFT), T(FN4), END);
break;
case 105:
layer_clear();
return MACRODOWN(D(LSFT), T(4), U(LSFT), T(FN4), END);
break;
case 106:
layer_clear();
return MACRODOWN(D(LSFT), T(MINS), U(LSFT), T(FN4), END);
break;
case 107:
layer_clear();
return MACRODOWN(T(LBRC), T(FN4), END);
break;
case 108:
layer_clear();
return MACRODOWN(T(RBRC), T(FN4), END);
break;
case 130:
layer_clear();
return MACRODOWN(D(LSFT), T(1), U(LSFT), T(FN4), END);
break;
case 109:
layer_clear();
return MACRODOWN(T(SLSH), T(FN4), END);
break;
case 110:
layer_clear();
return MACRODOWN(D(LSFT), T(9), U(LSFT), T(FN4), END);
break;
case 111:
layer_clear();
return MACRODOWN(T(EQL), T(FN4), END);
break;
case 112:
layer_clear();
return MACRODOWN(T(0), T(FN4), END);
break;
case 113:
layer_clear();
return MACRODOWN(D(LSFT), T(LBRC), U(LSFT), T(FN4), END);
break;
case 114:
layer_clear();
return MACRODOWN(D(LSFT), T(RBRC), U(LSFT), T(FN4), END);
break;
case 115:
layer_clear();
return MACRODOWN(T(1), T(FN4), END);
break;
case 116:
layer_clear();
return MACRODOWN(D(LSFT), T(8), U(LSFT), T(FN4), END);
break;
case 117:
layer_clear();
return MACRODOWN(D(LSFT), T(0), U(LSFT), T(FN4), END);
break;
case 118:
layer_clear();
return MACRODOWN(T(MINS), T(FN4), END);
break;
case 119:
layer_clear();
return MACRODOWN(D(LSFT), T(QUOT), U(LSFT), T(FN4), END);
break;
case 120:
layer_clear();
return MACRODOWN(T(6), T(FN4), END);
break;
case 121:
layer_clear();
return MACRODOWN(T(7), T(FN4), END);
break;
case 122:
layer_clear();
return MACRODOWN(T(8), T(FN4), END);
break;
case 123:
layer_clear();
return MACRODOWN(T(9), T(FN4), END);
break;
case 124:
layer_clear();
return MACRODOWN(D(LSFT), T(BSLS), U(LSFT), T(FN4), END);
break;
case 125:
layer_clear();
return MACRODOWN(T(BSLS), T(FN4), END);
break;
case 126:
layer_clear();
return MACRODOWN(T(2), T(FN4), END);
break;
case 127:
layer_clear();
return MACRODOWN(T(3), T(FN4), END);
break;
case 128:
layer_clear();
return MACRODOWN(T(4), T(FN4), END);
break;
case 129:
layer_clear();
return MACRODOWN(T(5), T(FN4), END);
break;
default:
return MACRO_NONE;
}
};
// Runs just one time when the keyboard initializes.
void * matrix_init_user(void) {
};
// Runs constantly in the background, in a loop.
void * matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
// TODO: Make this relevant to the ErgoDox EZ.
case 1:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
default:
// none
break;
}
};

@ -191,6 +191,7 @@ extern const uint16_t fn_actions[];
#define SFT_T(kc) MT(0x2, kc) #define SFT_T(kc) MT(0x2, kc)
#define ALT_T(kc) MT(0x4, kc) #define ALT_T(kc) MT(0x4, kc)
#define GUI_T(kc) MT(0x8, kc) #define GUI_T(kc) MT(0x8, kc)
#define C_S_T(kc) MT(0x3, kc) // Control + Shift e.g. for gnome-terminal
#define MEH_T(kc) MT(0x7, kc) // Meh is a less hyper version of the Hyper key -- doesn't include Win or Cmd, so just alt+shift+ctrl #define MEH_T(kc) MT(0x7, kc) // Meh is a less hyper version of the Hyper key -- doesn't include Win or Cmd, so just alt+shift+ctrl
#define ALL_T(kc) MT(0xF, kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/ #define ALL_T(kc) MT(0xF, kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/

@ -0,0 +1,60 @@
#ifndef KEYMAP_GERMAN
#define KEYMAP_GERMAN
#include "keymap_common.h"
// Alt gr
#define ALGR(kc) kc | 0x1400
#define DE_ALGR KC_RALT
// normal characters
#define DE_Z KC_Y
#define DE_Y KC_Z
#define DE_SS KC_MINS
#define DE_AE KC_QUOT
#define DE_UE KC_LBRC
#define DE_OE KC_SCLN
#define DE_CIRC KC_GRAVE // accent circumflex ^ and ring °
#define DE_ACUT KC_EQL // accent acute ´ and grave `
#define DE_PLUS KC_RBRC // + and * and ~
#define DE_HASH KC_BSLS // # and '
#define DE_LESS KC_NUBS // < and > and |
#define DE_MINS KC_SLSH // - and _
// shifted characters
#define DE_RING LSFT(DE_CIRC) // °
#define DE_EXLM LSFT(KC_1) // !
#define DE_DQOT LSFT(KC_2) // "
#define DE_PARA LSFT(KC_3) // §
#define DE_DLR LSFT(KC_4) // $
#define DE_PERC LSFT(KC_5) // %
#define DE_AMPR LSFT(KC_6) // &
#define DE_SLSH LSFT(KC_7) // /
#define DE_LPRN LSFT(KC_8) // (
#define DE_RPRN LSFT(KC_9) // )
#define DE_EQL LSFT(KC_0) // =
#define DE_QST LSFT(DE_SS) // ?
#define DE_GRV LSFT(DE_ACUT) // `
#define DE_ASTR LSFT(DE_PLUS) // *
#define DE_QUOT LSFT(DE_HASH) // '
#define DE_MORE LSFT(DE_LESS) // >
#define DE_COLN LSFT(KC_DOT) // :
#define DE_SCLN LSFT(KC_COMM) // ;
#define DE_UNDS LSFT(DE_MINS) // _
// Alt Gr-ed characters
#define DE_SQ2 ALGR(KC_2) // ²
#define DE_SQ3 ALGR(KC_3) // ³
#define DE_LCBR ALGR(KC_7) // {
#define DE_LBRC ALGR(KC_8) // [
#define DE_RBRC ALGR(KC_9) // ]
#define DE_RCBR ALGR(KC_0) // }
#define DE_BSLS ALGR(DE_SS) // backslash
#define DE_AT ALGR(KC_Q) // @
#define DE_EURO ALGR(KC_E) // €
#define DE_TILD ALGR(DE_PLUS) // ~
#define DE_PIPE ALGR(DE_LESS) // |
#endif

@ -0,0 +1,44 @@
#ifndef KEYMAP_NEO2
#define KEYMAP_NEO2
#include "keymap_common.h"
#include "keymap_extras/keymap_german.h"
#define NEO_A KC_D
#define NEO_B KC_N
#define NEO_C KC_R
#define NEO_D DE_OE
#define NEO_E KC_F
#define NEO_F KC_O
#define NEO_G KC_I
#define NEO_H KC_U
#define NEO_I KC_S
#define NEO_J DE_MINS
#define NEO_K DE_Z
#define NEO_L KC_E
#define NEO_M KC_M
#define NEO_N KC_J
#define NEO_O KC_G
#define NEO_P KC_V
#define NEO_Q KC_P
#define NEO_R KC_K
#define NEO_S KC_H
#define NEO_T KC_L
#define NEO_U KC_A
#define NEO_V KC_W
#define NEO_W KC_T
#define NEO_X KC_Q
#define NEO_Y DE_AE
#define NEO_Z KC_B
#define NEO_AE KC_C
#define NEO_OE KC_X
#define NEO_UE DE_Y
#define NEO_SS DE_UE
#define NEO_L1_L KC_CAPS
#define NEO_L1_R DE_HASH
#define NEO_L2_L DE_LESS
#define NEO_L2_R DE_ALGR
#endif
Loading…
Cancel
Save