diff options
Diffstat (limited to 'keyboard/ergodox_ez/keymaps/alexjj')
-rw-r--r-- | keyboard/ergodox_ez/keymaps/alexjj/keymap.c | 238 | ||||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/alexjj/keymap.hex | 1136 | ||||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/alexjj/readme.md | 136 | ||||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/alexjj/rl-layout.jpg | bin | 0 -> 833107 bytes |
4 files changed, 1510 insertions, 0 deletions
diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c new file mode 100644 index 0000000000..b60a559898 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c @@ -0,0 +1,238 @@ +#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 +#define UNIC 3 // unicode entry layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1! | 2@ | 3# | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | -_ | += | BkSp | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | |\ | + * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| + * | Win | A | S | D | F | G |------| |------| H | J | K | L | :; | '" | + * |--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| + * | LShift |Z/Alt | X | C | V | B | | | | N | M | , | . | Alt | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | COPY | PASTE| Left | Right| | Down | Up |Hyper | `~ | RCtrl | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * Hyper = Ctrl+Super+Alt+Shift | ~L3 | F5 | | F2 | ~L2 | + * ,------|------|------| |------+------+------. + * | | | PgUp | | Ins | | | + * | Enter| BkSp |------| |------| ~L1 |Space | + * | | | PgDn | | Del | | | + * `--------------------' `--------------------' + */ +// 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_6, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_HOME, + KC_LCTRL, LCTL(KC_C), LCTL(KC_V), KC_LEFT,KC_RGHT, + KC_FN3, KC_F5, + KC_PGUP, + KC_SPC,KC_BSPC,KC_PGDN, + // right hand + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, + KC_END, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_DOWN,KC_UP, ALL_T(KC_NO),KC_GRV, KC_RCTRL, + KC_F2, KC_FN2, + KC_INS, + KC_DELT,KC_FN1, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |PrintScr| + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | £ | | | | | | . | 0 | = |Alt+F4| + * `----------------------------------' `----------------------------------' + * ↑ ,-------------. ,-------------. + * THERE! | | | | | | + * ,------|------|------| |------+------+------. + * CAD = Ctrl + Alt + Delete | | | | | | | | + * | | |------| |------| | | + * | | | | | CAD | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + 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,M(3),KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS, + 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, LALT(KC_F4), + KC_TRNS, KC_TRNS, + KC_TRNS, + LCTL(LALT(KC_DEL)), KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | TEENSY | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolDn |VolUp | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + RESET, 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_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +/* Keymap 3: Unicode Entry + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Alt | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | + | + | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Alt | | | E | | | | | | | 7 | 8 | 9 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Alt | A | | D | F | |------| |------| | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Alt | | | C | | B | | | | | 1 | 2 | 3 | + | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Alt | Alt | Alt | | | | 0 | 0 | 0 | + | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * WINDOWS ONLY SETUP!! | ~L3 | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | Alt | Alt |------| |------| Alt | Alt | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[UNIC] = KEYMAP( // layer 3 : Unicode Entry + // left hand + KC_LALT, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, + KC_LALT, KC_TRNS, KC_TRNS, KC_E, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LALT, KC_A, KC_TRNS, KC_D, KC_F, KC_TRNS, + KC_LALT, KC_TRNS, KC_TRNS, KC_C, KC_TRNS, KC_B, KC_TRNS, + KC_LALT, KC_LALT, KC_LALT, KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_LALT,KC_LALT, KC_TRNS, + // right hand + KC_P7, KC_P8, KC_P9, KC_P0, KC_PPLS,KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TRNS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_TRNS, + KC_P0, KC_P0, KC_P0, KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS,KC_LALT, KC_LALT + ), +}; + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) + [2] = ACTION_LAYER_TAP_TOGGLE(MDIA), // FN2 - Momentary Layer 2 (Media) + [3] = ACTION_LAYER_TAP_TOGGLE(UNIC) // FN3 - Momentary Layer 3 (Unicode entry) +}; + +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); + } + case 3: // this would trigger when you hit a key mapped as M(3) + if (record->event.pressed) { + return MACRO( I(255), D(LALT), T(PPLS), T(P0), T(P0), T(A), T(P3), U(LALT), END ); + } + 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; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex new file mode 100644 index 0000000000..aadc3550d6 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex @@ -0,0 +1,1136 @@ +:100000000C94C9020C9410030C9410030C9410036C
+:100010000C9410030C9410030C9410030C94100314
+:100020000C9410030C9410030C943A0C0C940C0DCB
+:100030000C9410030C9410030C9410030C941003F4
+:100040000C9410030C9480210C9410030C94100356
+:100050000C9410030C94121B0C9410030C941003BA
+:100060000C9410030C9410030C9410030C941003C4
+:100070000C9410030C9410030C9410030C941003B4
+:100080000C9410030C9410030C9410030C941003A4
+:100090000C9410030C9410030C9410030C94100394
+:1000A0000C9410030C9410030C941003790D9B0D09
+:1000B0008E0E9B0D8E0EE00D030E8E0E580E6B0EE7
+:1000C0005511551184118411C71101120E140E140B
+:1000D0001A120E140F130F13E2130E140E14F91349
+:1000E00075FF01E20157025701620262016202627A
+:1000F00001040204015B025B02E2000000F0A1F0D7
+:10010000A2F0A329002B00E300E100E00000001EA4
+:1001100000140004001D7406014E001F001A001692
+:10012000001B0019012A00200008000700060050EB
+:10013000002C0021001500090019004F004B00227F
+:100140000017000A0005000000C30023002F000074
+:10015000004A0000003E002400300000004D000076
+:10016000003B0025001C000B0011000000C200260F
+:100170000018000D0010005100490027000C000E6F
+:10018000003600520028002D0012000F003700003A
+:100190007FC1002E0013003300380035004C002AC8
+:1001A0000031003400E500E400000001000100011E
+:1001B000000100010000003A001E0220022202039A
+:1001C0003001003B001F0221022302010001003C1C
+:1001D000002F0226022F00010001003D00300227FF
+:1001E000023000010001003E0031023500350200FE
+:1001F0000001003F0001000000010000000100407C
+:100200000001000000010000000100410052005107
+:10021000002402000001004200240021001E000111
+:100220000001004300250022001F003700010044A8
+:100230000026002300200027000100450025022E93
+:100240000231002E004C0546000100010001003D76
+:100250000400000050010001000100010000000145
+:10026000000100010001000100010001000100F295
+:10027000000100010001000100F000F1000100F4A4
+:1002800000010001000100F3000100F50001000180
+:100290000001000100010000000100010001000058
+:1002A0000001000000010001000100000001000049
+:1002B0000001000100010001000100000001000137
+:1002C00000010001000100AA00010001000100017D
+:1002D00000AC00A900B600010001000100AB00A8BD
+:1002E0000001000100010001000100010001000106
+:1002F000000100AE00010001000000E200E200E2A7
+:1003000000E200E20000005900010004000100E2E8
+:100310000001005A00010001000100E200E2005B60
+:10032000000800070006000100E2005C000100096F
+:10033000000100010001005D000100010005000056
+:100340000001005E00010000000100000001005FEC
+:100350000001000000010000000100600001000138
+:100360000001000000010061005F005C00590062B4
+:10037000000100620060005D005A006200E2005768
+:100380000061005E005B006200E20057005700570A
+:1003900000570057000100010001000100010001A9
+:1003A00000000016034500720067006F0044006FF4
+:1003B000007800200045005A000000160345007236
+:1003C0000067006F0044006F007800200045005A6D
+:1003D0000000000403090409026D00040100A0FAF2
+:1003E000090400000103010100092111010001229B
+:1003F0003F000705810308000A0904010001030109
+:100400000200092111010001224D000705820308A5
+:10041000000A090402000103000000092111010083
+:10042000012236000705830308000A0904030001BE
+:100430000300000009211101000122390007058491
+:10044000031000011201100100000008EDFE071367
+:1004500001000102000105010906A101050719E0DB
+:1004600029E7150025019508750181020508190184
+:1004700029059505750191029501750391010507FF
+:100480001900297715002501957875018102C005AD
+:10049000010980A101850216010026B7001A01009A
+:1004A0002AB700751095018100C0050C0901A10152
+:1004B0008503160100269C021A01002A9C02751071
+:1004C00095018100C005010902A1010901A10005F2
+:1004D0000919012905150025019505750181029568
+:1004E00001750381010501093009311581257F95C9
+:1004F000027508810609381581257F9501750881E7
+:1005000006050C0A38021581257F950175088106BC
+:10051000C0C005010906A101050719E029E715007A
+:10052000250195087501810295017508810105086D
+:100530001901290595057501910295017503910130
+:100540000507190029FF150025FF9506750881008C
+:10055000C0000000000000000000000001020406CE
+:100560000A0F17202C3A4A5D71879DB3C7DAE9F567
+:10057000FCFFFCF5E9DAC7B39D87715D4A3A2C2090
+:10058000170F0A060402010000000000000000002E
+:10059000000011241FBECFEFDAE0DEBFCDBF04B6EE
+:1005A00003FE27C08091ED019091EE01A091EF0133
+:1005B000B091F0018730904BA740B04BD1F410922E
+:1005C000ED011092EE011092EF011092F00114BEB5
+:1005D00084B7877F84BF0FB6F894A8958091600098
+:1005E000886180936000109260000FBEE0E0FFE33E
+:1005F000099511E0A0E0B1E0E2EAF6E402C005905E
+:100600000D92A433B107D9F721E0A4E3B1E001C012
+:100610001D92AD3EB207E1F70E9481090C944F2371
+:100620000C940000CF93DF93EC01662319F0633044
+:1006300059F00DC08A81882321F085EE0E94EF0FCA
+:1006400003C085EE0E94B7108A81811103C080E04B
+:1006500090E002C080EE90E0DF91CF910895089580
+:100660006091B1017091B2018091B3019091B40198
+:100670000E943F1A56985E9825982D9826982E9895
+:1006800027982F98823039F0833041F0813041F43F
+:10069000259A2D9A0895269A2E9A0895279A2F9A88
+:1006A00008950C94300356985E9825982D982698B6
+:1006B0002E9827982F988FEF90E090938900809341
+:1006C000880090938B0080938A0090938D00809394
+:1006D0008C00259A2D9A2FEF80E792E021508040E0
+:1006E0009040E1F700C00000269A2E9A2FEF80E795
+:1006F00092E0215080409040E1F700C00000279A2E
+:100700002F9A2FEF80E792E0215080409040E1F750
+:1007100000C0000025982D982FEF80E792E021502F
+:1007200080409040E1F700C0000026982E982FEFFF
+:1007300080E792E0215080409040E1F700C0000047
+:1007400027982F9856985E9825982D9826982E9839
+:1007500027982F98089589EA8093800089E08093F4
+:10076000810024982C983F988AB18F748AB96E982A
+:10077000479A8BB1806B8BB9769A0E9453030C9485
+:100780002F0380E2809300018091340181110EC01B
+:100790000E94100481E0809334012FEF83ED90E3F9
+:1007A000215080409040E1F700C0000080E40E94AA
+:1007B00016048093000181112EC00E944004809392
+:1007C0000001811128C00E94400480930001811122
+:1007D00022C08FE30E9440048093000181111BC05E
+:1007E0000E94380480E40E94160480930001811165
+:1007F00012C08CE00E9440048093000181110BC064
+:100800000E94400480930001811105C08FE30E9483
+:100810004004809300010E943804809100010895F3
+:100820001092B9008AE08093B800089594EA9093FA
+:10083000BC009091BC0097FFFCCF9091B900987FCD
+:10084000983021F0903111F081E008958093BB0041
+:1008500084E88093BC008091BC0087FFFCCF80912E
+:10086000B900887F883111F0803471F780E00895F5
+:1008700084E98093BC008091BC0084FDFCCF089586
+:100880008093BB0084E88093BC008091BC0087FF0C
+:10089000FCCF9091B900987F81E0983209F480E014
+:1008A000089584E88093BC008091BC0087FFFCCF52
+:1008B0008091BB00089580910001811115C080E4F2
+:1008C0000E9416048093000181110CC082E10E94F5
+:1008D000400480930001811105C08FEF0E94400405
+:1008E000809300010E94380484B1807F84B985B16F
+:1008F000807F85B98AB1837F8AB98BB1837F8BB9B9
+:100900003E98469808950E94C103809300010E947A
+:100910005B0480B38C7080BB81B3836F81BBE4E4E4
+:10092000F1E0A6E3B1E011921D9281E0E235F80713
+:10093000D1F70C94AB039F92AF92BF92CF92DF920C
+:10094000EF92FF920F931F93CF93DF93809100015B
+:10095000882379F0809135018F5F80933501811173
+:1009600008C00E94C10380930001811102C00E944F
+:10097000530386E3E82E81E0F82E8701C0E0D0E043
+:10098000BB24B39492E0A92ECC24C394D12CC730BD
+:10099000D10500F580910001811164C080E40E94BE
+:1009A000160480930001811112C082E10E9440046C
+:1009B0008093000181110BC0C6010C2E01C0880F6D
+:1009C0000A94EAF780950E944004809300010E94F7
+:1009D000380448C0CA30A1F028F4C83059F0C930F2
+:1009E00061F005C0CC3089F070F0CD3089F0209AEC
+:1009F000289810C0219A29980DC0229A2A980AC0D6
+:100A0000239A2B9807C0529A01C0539A5B9802C050
+:100A10003E9A4698E0EAEA95F1F78FB181708B250E
+:100A2000799902C032E001C030E0832B7C9902C08A
+:100A300034E001C030E0832B7D9902C028E001C082
+:100A400020E0822B7E9902C090E101C090E0892BCA
+:100A50009FB19095991F9927991F9295990F907E14
+:100A6000892B0FC08091000181114AC080E40E944F
+:100A7000160480930001882381F1912C0E94380490
+:100A8000892DD8019C91981719F08C93A09201019F
+:100A90000E945B0421960F5F1F4FCE30D10509F0F5
+:100AA00076CF80910101882369F181508093010103
+:100AB000882339F0EFE9FFE03197F1F700C000003B
+:100AC00021C0E4E4F1E0D7018D917D018193B4E48C
+:100AD000EB16B1E0FB06B9F715C083E10E944004B4
+:100AE000809300018111C9CF81E40E941604809394
+:100AF00000018111C2CF0E945104982E9094BECF64
+:100B000080E0BFCF0E94510381E0DF91CF911F9120
+:100B10000F91FF90EF90DF90CF90BF90AF909F909C
+:100B20000895E82FF0E0EC5BFE4F80810895089572
+:100B30008B3B910580F4883A910548F5853A9105FB
+:100B4000D8F48430910508F0B2C0019709F06EC066
+:100B500081E090E00895803E910508F467C0883EEA
+:100B6000910508F4A4C09C01205F310920313105B2
+:100B700008F05CC090650895853A910509F459C064
+:100B8000863A910509F058C082E890E40895883AC1
+:100B9000910509F454C0893A910509F453C08A3A81
+:100BA000910509F452C08B3A910509F451C08C3A71
+:100BB000910509F450C08D3A910509F44FC0803B6E
+:100BC000910509F44EC08E3A910509F44DC08F3A53
+:100BD000910509F44CC0813B910509F44BC0823B5F
+:100BE000910509F44AC0833B910509F449C0843B4F
+:100BF000910509F448C0853B910509F447C0863B3F
+:100C0000910509F446C0873B910509F445C0883B2E
+:100C1000910509F444C0893B910509F443C08A3B1E
+:100C2000910509F442C080E094E4089580E090E0EA
+:100C3000089581E890E4089583E890E4089582EEB1
+:100C400094E4089589EE94E408958AEE94E4089576
+:100C500085EB94E4089586EB94E4089587EB94E49F
+:100C600008958CEC94E408958DEC94E4089583E861
+:100C700095E408958AE895E4089582E995E4089555
+:100C800084E995E4089581E296E4089583E296E488
+:100C9000089584E296E4089585E296E4089586E254
+:100CA00096E4089587E296E408958AE296E408952A
+:100CB000089524E5829FC0011124FC0126E0729F63
+:100CC000E00DF11D1124E60FF11DEE0FFF1FED5F8A
+:100CD000FE4F859194910895880F991FFC01E55866
+:100CE000F040859194910895880F991FFC01E5507B
+:100CF000FF4F85919491089524E5829FC0011124AE
+:100D0000FC0146E0749FE00DF11D1124E60FF11D7A
+:100D1000EE0FFF1FED5FFE4F859194919C013A9578
+:100D200021154FE1340708F425C13F512115304109
+:100D300020F49F700E94740608959C013053211581
+:100D4000304118F49927906C0895811520E5920799
+:100D500069F40E9430144FEF84E39CE041508040DE
+:100D60009040E1F700C000000C94371B813020E573
+:100D7000920731F48091CC0181608093CC01089579
+:100D80009C0130552115304108F05CC0292F3327D4
+:100D90002F70332721303105E9F4AC0164E0440FB2
+:100DA000551F6A95E1F744275370BC01637077279C
+:100DB00002C0220F331F6A95E2F73C68242B352BC3
+:100DC00073E0880F991F7A95E1F780769927822B37
+:100DD000932B08952230310529F4982F8827816FAD
+:100DE000906A089523303105A1F4AC0133E0440F3B
+:100DF000551F3A95E1F7407E57708370992721E09F
+:100E000030E002C0220F331F8A95E2F7C9019C68C7
+:100E100016C02430310531F5AC0123E0440F551FD5
+:100E20002A95E1F7407E57708370992721E030E0E2
+:100E300002C0220F331F8A95E2F7C9019A68842BFA
+:100E4000952B08959C0130572115304118F49F705F
+:100E5000906208959C0130582115304118F49F701C
+:100E6000906A0895803E9105E0F4803C910558F524
+:100E70008133910509F46FC048F48932910509F472
+:100E800063C08A32910509F46DC072C0893391053F
+:100E9000E9F082389105D1F08533910509F44DC010
+:100EA00067C0833E910581F138F4803E9105B9F029
+:100EB000823E9105D9F05CC0863E910561F1873E86
+:100EC0009105A1F155C00E946C0608952091DE01A4
+:100ED00020FD02C021FF4CC080EE90E049C080910F
+:100EE000DE0180FFF9CF89E390E042C08091DE010E
+:100EF00082FF0EC08091DE0184FF03C080E090E09D
+:100F000037C083EE90E034C08091DE0182FFF2CFE3
+:100F100082EE90E02DC08091DE0183FF0BC08091B6
+:100F2000DE0184FDEBCF87EE90E022C08091DE01F0
+:100F300083FFF5CF86EE90E01BC08091DE0185FF38
+:100F400007C089E290E014C08091DE0185FFF9CFEF
+:100F500085E390E00DC08091DE0186FF07C08AE244
+:100F600090E006C08091DE0186FFF9CF81E390E03A
+:100F70000E949805089508950C94BB078091620122
+:100F80000895CF93DF9300D01F92CDB7DEB79C01B9
+:100F90008091E401843019F593E099833B832A839F
+:100FA0009093E9008FEF9091E800815095FD06C085
+:100FB00095ED9A95F1F700008111F5CF8091E80049
+:100FC00085FF0DC040E050E063E070E0CE01019687
+:100FD0000E942E0A8091E8008E778093E8000F909F
+:100FE0000F900F90DF91CF910895CF93DF9300D0B2
+:100FF0001F92CDB7DEB72091E401243021F522E025
+:1010000029839B838A8383E08093E9008FEF90910B
+:10101000E800815095FD06C095ED9A95F1F7000026
+:101020008111F5CF8091E80085FF0DC040E050E0D0
+:1010300063E070E0CE0101960E942E0A8091E800E4
+:101040008E778093E8000F900F900F90DF91CF91F3
+:1010500008959C018091E4018430F9F482E080934A
+:10106000E9009FEF8091E800915085FD06C085ED75
+:101070008A95F1F700009111F5CF8091E80085FF86
+:101080000CC040E050E065E070E0C9010E942E0A0B
+:101090008091E8008E778093E8000895CF93DF93E6
+:1010A000EC018091E401843009F046C090910C017C
+:1010B0009923D9F090910D019923B9F08093E9001B
+:1010C0008FEF9091E800815095FD06C095E19A95CB
+:1010D000F1F700008111F5CF8091E80085FF2CC069
+:1010E00040E050E060E170E017C081E08093E900EB
+:1010F0008FEF9091E800815095FD06C095ED9A958F
+:10110000F1F700008111F5CF8091E80085FF14C050
+:1011100040E050E068E070E0CE010E942E0A80912D
+:10112000E8008E778093E80080E1FE01A2E5B1E05F
+:1011300001900D928A95E1F7DF91CF91089580910A
+:10114000E301811109C00E94BF0B0E941C0C809119
+:10115000E20084608093E20008951092E301089514
+:1011600008950C946D210E94CD1A0E9473210E9453
+:10117000C70E0C94BC0742E061EC81E00E94380B82
+:1011800042E061EC82E00E94380B42E061EC83E0D7
+:101190000E94380B42E161EC84E00C94380B8091A2
+:1011A000E601833009F455C030F4813071F08230AB
+:1011B00009F48EC008958A3009F47AC08B3009F49E
+:1011C00060C0893009F09CC020C08091E501813A5F
+:1011D00009F096C08091E800877F8093E8008091B5
+:1011E000E9019091EA01892B21F460E182E591E027
+:1011F00003C060E080E090E070E00E94790A809196
+:10120000E8008B778093E80008958091E5018132B2
+:1012100009F076C08091E9019091EA01009719F0F8
+:10122000039709F06DC08091E800877F8093E80004
+:101230008091E80082FD05C08091E4018111F8CF22
+:101240005FC08091F100809362018091E8008B770C
+:1012500053C08091E501813A09F052C08091E901C3
+:101260009091EA01892B09F04BC08091E800877FBB
+:101270008093E8008091E80080FFFCCF80910C0112
+:1012800036C08091E5018132D9F58091E9019091D4
+:10129000EA01892BA9F58091E800877F8093E80017
+:1012A0000E946D0B8091E70180930C010C94301427
+:1012B0008091E501813221F58091E800877F80935C
+:1012C000E8000E946D0B8091E8018093630108950E
+:1012D0008091E501813AA1F48091E800877F8093B5
+:1012E000E8008091E80080FFFCCF8091630180934B
+:1012F000F1008091E8008E778093E8000C946D0BEC
+:10130000089584B7877F84BF0FB6F894A89580911D
+:101310006000886180936000109260000FBE90E0D2
+:1013200080E80FB6F89480936100909361000FBE3F
+:101330000E94160F0E94BF0B0E941C0C8091E200BD
+:1013400084608093E20078940E94A70E0E94180F98
+:1013500082E091E00E94C20E0E945B218091E40134
+:10136000853069F40E948F1A8091E2018823B1F3DD
+:101370000E94B91A882391F30E94180AEFCF0E94A5
+:101380001E0FECCF292F332723303105C9F060F42D
+:101390002130310581F02230310509F041C08DE660
+:1013A00090E027ED33E040C021323105E1F02232F8
+:1013B000310531F135C082E190E024E434E034C0FD
+:1013C00099278130910549F028F0029749F5E3EA21
+:1013D000F3E005C0E3EDF3E002C0EBEBF3E0849152
+:1013E00090E09F0121C06430D8F4E62FF0E0EE0FCA
+:1013F000FF1FEE5DFE4F2081318189E090E014C037
+:10140000643070F470E0FB01EE0FFF1FE65EFE4FEC
+:1014100020813181FB01EA5EFE4F808190E004C0B3
+:1014200080E090E020E030E0FA01318320830895ED
+:1014300080E189BD82E189BD09B400FEFDCF8091C4
+:10144000D8008F7D8093D8008091E00082608093E7
+:10145000E0008091E00081FDFCCF0895CF92DF9203
+:10146000EF92FF920F931F93CF93DF93EC018B01C9
+:101470006A010E948C0B811133C0C114D10439F070
+:10148000F60180819181081B190BC80FD91FE12C2F
+:10149000F12C0115110519F18091E80085FD16C0A8
+:1014A0008091E8008E778093E800C114D10449F060
+:1014B000F60180819181E80EF91EF182E08285E0DB
+:1014C0000FC00E948C0B882321F30AC0899180935E
+:1014D000F10001501109FFEFEF1AFF0ADACF80E0A7
+:1014E000DF91CF911F910F91FF90EF90DF90CF9000
+:1014F00008952091EB013091EC012617370748F051
+:101500006115710539F42091E8002E772093E800E9
+:1015100001C0B901FC0120E06115710579F18091EC
+:10152000E4018823F1F18530F1F18091E80083FD39
+:101530003CC08091E80082FD2EC08091E80080FFD1
+:10154000EBCF2091F3008091F20090E0922B611597
+:10155000710551F08830910538F421912093F10004
+:10156000615071090196F3CF21E0089709F020E05E
+:101570008091E8008E778093E800CECF2111CFCF05
+:101580000AC08091E401882361F0853061F0809188
+:10159000E80083FD0AC08091E80082FFF2CF80E07E
+:1015A000089582E0089583E0089581E008952091F0
+:1015B000EB013091EC012617370748F061157105F2
+:1015C00039F42091E8002E772093E80001C0B9019A
+:1015D000FC0120E06115710591F18091E4018823FF
+:1015E00009F440C0853009F43FC08091E80083FDD4
+:1015F0003DC08091E80082FD2FC08091E80080FF0F
+:10160000E9CF2091F3008091F20090E0922B6115D8
+:10161000710559F08830910540F424912093F10030
+:101620003196615071090196F2CF21E0089709F0D7
+:1016300020E08091E8008E778093E800CBCF2111E5
+:10164000CCCF0AC08091E401882361F0853061F03D
+:101650008091E80083FD0AC08091E80082FFF2CF0C
+:1016600080E0089582E0089583E0089581E0089580
+:10167000982F973068F59093E900981739F070919A
+:10168000EC002091ED005091F00003C0242F762F44
+:1016900050E021FD02C09F5FECCF3091EB003E7F18
+:1016A0003093EB003091ED003D7F3093ED003091B1
+:1016B000EB0031603093EB007093EC002093ED0071
+:1016C0005093F0002091EE0027FDE5CF80E00895D3
+:1016D0008F708093E90081E008958091E50187FF94
+:1016E00011C08091E80082FD05C08091E401811164
+:1016F000F8CF11C08091E8008B770BC08091E40196
+:10170000882349F08091E80080FFF8CF8091E800BD
+:101710008E778093E80008952091E4003091E500F1
+:1017200095E64091EC00842F817040FF23C08091AA
+:10173000E80080FD1DC08091E401882399F0853088
+:1017400099F08091EB0085FD11C04091E40050912B
+:10175000E5002417350729F3915011F09A01E1CFE4
+:1017600084E0089582E0089583E0089581E008957B
+:1017700080E008954091E80042FFDDCF08950E9487
+:101780002D0C0E94350CE0EEF0E0808181608083BA
+:10179000E8EDF0E080818F77808319BCA7EDB0E0A1
+:1017A0008C918E7F8C9380818F7E80831092E30159
+:1017B00008950F931F93CF93DF930E942D0C0E94E7
+:1017C000350CC8EDD0E088818F7788838881806868
+:1017D000888388818F7D888319BC1092E4011092E0
+:1017E000E0011092E2011092E10100EE10E0F80138
+:1017F00080818B7F808388818160888342E060E084
+:1018000080E00E94380BE1EEF0E080818E7F8083E3
+:10181000E2EEF0E080818160808380818860808357
+:10182000F80180818E7F8083888180618883DF9149
+:10183000CF911F910F910895E8EDF0E080818F7EA8
+:101840008083E7EDF0E080818160808384E082BF67
+:1018500081E08093E3010C94D90BE8EDF0E0808106
+:101860008E7F80831092E20008951092DA00109229
+:10187000E10008951F920F920FB60F9211242F933B
+:101880003F934F935F936F937F938F939F93AF9308
+:10189000BF93EF93FF938091E10082FF0BC0809193
+:1018A000E20082FF07C08091E1008B7F8093E1001E
+:1018B0000E94A60E8091DA0080FF1FC08091D800A0
+:1018C00080FF1BC08091DA008E7F8093DA008091C8
+:1018D000D90080FF0DC080E189BD82E189BD09B4D6
+:1018E00000FEFDCF81E08093E4010E949F0805C0C7
+:1018F00019BC1092E4010E94AD088091E10080FFC4
+:1019000019C08091E20080FF15C08091E2008E7FB7
+:101910008093E2008091E20080618093E2008091F8
+:10192000D80080628093D80019BC85E08093E401E0
+:101930000E94B1088091E10084FF30C08091E200F4
+:1019400084FF2CC080E189BD82E189BD09B400FE1D
+:10195000FDCF8091D8008F7D8093D8008091E100E9
+:101960008F7E8093E1008091E2008F7E8093E20081
+:101970008091E20081608093E2008091E001882301
+:1019800011F084E007C08091E30087FD02C081E090
+:1019900001C083E08093E4010E94B3088091E100DC
+:1019A00083FF29C08091E20083FF25C08091E10080
+:1019B000877F8093E10082E08093E4011092E00150
+:1019C0008091E1008E7F8093E1008091E2008E7F24
+:1019D0008093E2008091E20080618093E20042E027
+:1019E00060E080E00E94380B8091F0008860809376
+:1019F000F0000E94B008FF91EF91BF91AF919F91CD
+:101A00008F917F916F915F914F913F912F910F90A7
+:101A10000FBE0F901F9018951F920F920FB60F9246
+:101A200011242F933F934F935F936F937F938F93E3
+:101A30009F93AF93BF93CF93DF93EF93FF93C091A7
+:101A4000E900CF708091EC00D82FD17080FDD0E8F4
+:101A50001092E9008091F000877F8093F0007894E5
+:101A60000E94500D1092E9008091F00088608093F0
+:101A7000F000CD2BCF70C093E900FF91EF91DF9183
+:101A8000CF91BF91AF919F918F917F916F915F9116
+:101A90004F913F912F910F900FBE0F901F9018956F
+:101AA0001F93CF93DF93CDB7DEB7AA970FB6F89405
+:101AB000DEBF0FBECDBFE5EEF1E08091F100819376
+:101AC00021E0ED3EF207C9F70E94CF088091E800BF
+:101AD00083FF24C18091E5019091E601492F50E0F8
+:101AE0004A30510508F01AC1FA01EA5AFF4F0C9426
+:101AF0000423803881F0823809F010C18091E90117
+:101B00008F708093E9008091EB0085FB882780F936
+:101B10001092E90006C08091E1019091E2019111DB
+:101B200082609091E800977F9093E8008093F100A5
+:101B30001092F100C8C0282F2D7F09F0EFC0882334
+:101B400019F0823061F0EAC08091E701813009F03C
+:101B5000E5C0933009F080E08093E2012BC08091D2
+:101B6000E701811127C08091E9018F7009F4D6C087
+:101B70008093E9002091EB0020FF1CC0933021F4FA
+:101B80008091EB00806214C09091EB009061909383
+:101B9000EB0021E030E0A90102C0440F551F8A95F7
+:101BA000E2F74093EA001092EA008091EB0088602F
+:101BB0008093EB001092E9008091E800877F86C057
+:101BC0008111ACC01091E7011F778091E30080780C
+:101BD000812B8093E3008091E800877F8093E80069
+:101BE0000E946D0B8091E80080FFFCCF8091E300A4
+:101BF00080688093E300111102C082E001C083E09D
+:101C00008093E4018BC08058823008F087C08091B7
+:101C1000E7019091E8018C3D53E0950779F583E069
+:101C20008A838AE289834FB7F894DE01139620E015
+:101C30003EE051E2E32FF0E050935700E49120FFA3
+:101C400003C0E295EF703F5FEF708E2F90E0EA30B7
+:101C500010F0C79601C0C0968D939D932F5F2431DD
+:101C600049F74FBF8091E800877F8093E8006AE2E0
+:101C700070E0CE0101960E94790A14C0AE014F5F58
+:101C80005F4F6091E9010E94C209BC01892B09F4F0
+:101C900045C09091E800977F9093E80089819A81F0
+:101CA0000E94D70A8091E8008B778093E80036C0C5
+:101CB0008038A1F58091E800877F8093E8008091CB
+:101CC000E0018093F1008091E8008E778093E80036
+:101CD0000E946D0B23C0811121C08091E70190917A
+:101CE000E80199270297D4F48091E800877F8093D8
+:101CF000E8008091E7018093E0010E946D0B8091E4
+:101D0000E001811106C08091E30087FD02C081E0FF
+:101D100001C084E08093E4010E94BB088091E80048
+:101D200083FF0AC08091E800877F8093E80080915C
+:101D3000EB0080628093EB00AA960FB6F894DEBFAA
+:101D40000FBECDBFDF91CF911F9108950895CF931E
+:101D50008091E4018823A1F0C091E900CF709091B7
+:101D6000EC00892F817090FD80E8C82B1092E9006B
+:101D70008091E80083FD0E94500DCF70C093E90070
+:101D8000CF91089590936901809368010895E0913F
+:101D90006801F0916901309721F00190F081E02D08
+:101DA000099480E00895E0916801F091690130970D
+:101DB00021F00280F381E02D09940895E0916801FB
+:101DC000F0916901309721F00480F581E02D0994AC
+:101DD000089520916601309167012817390771F045
+:101DE0009093670180936601E0916801F091690129
+:101DF000309721F00680F781E02D09940895209115
+:101E00006401309165012817390771F090936501DD
+:101E100080936401E0916801F0916901309721F0AD
+:101E20000084F185E02D0994089508950C94150F10
+:101E30000E94D31A0E9483040C94991BCF92DF92C4
+:101E4000EF92FF920F931F93CF93DF93CDB7DEB73F
+:101E50002B970FB6F894DEBF0FBECDBF0E949B0438
+:101E60008BE6C82E81E0D82E00E010E0E02E802F17
+:101E70000E949105F60141916F01F82EF426B1F40C
+:101E80000F5F1F4F0E30110589F78FEF89838A830B
+:101E90001B820E94DC1A8160782F9D838C8349818C
+:101EA0005A816B818D810E94C10F40C09091CC01FD
+:101EB00091FF04C08B870E9497058B8520E030E05E
+:101EC0004F2D50E0922FBA01022E02C075956795F2
+:101ED0000A94E2F760FF24C02E83EF8221E030E015
+:101EE000690102C0CC0CDD1C9A95E2F790E08C21D0
+:101EF0009D21892B09F420E028870E94DC1A81604B
+:101F0000782F9A8789874E815F8168858A850E94AC
+:101F1000C10FF801E559FE4F8081C826C08206C076
+:101F20002F5F3F4F2630310569F6AACF0E94801EF1
+:101F30000E94C70E90916A018917A1F00E94C70EF6
+:101F400080936A012B960FB6F894DEBF0FBECDBF0B
+:101F5000DF91CF911F910F91FF90EF90DF90CF9085
+:101F60000C94BC072B960FB6F894DEBF0FBECDBF06
+:101F7000DF91CF911F910F91FF90EF90DF90CF9065
+:101F80000895CF93DF93CDB7DEB72B970FB6F894B4
+:101F9000DEBF0FBECDBF4F83588769877A878B8797
+:101FA000DE01119686E0FD0111928A95E9F785E040
+:101FB000FE01379601900D928A95E1F749815A8189
+:101FC0006B817C818D819E810E94C4162B960FB6F9
+:101FD000F894DEBF0FBECDBFDF91CF910895CF93B0
+:101FE000C82F882309F4C1C0823859F40E94C70E53
+:101FF00081FDBBC089E30E9461190E94191A89E31F
+:102000000CC0833879F40E94C70E80FDAEC083E512
+:102010000E9461190E94191A83E50E94A019CF91AC
+:102020000C94191A843859F40E94C70E82FD9DC081
+:1020300087E40E9461190E94191A87E4EECF8CEFA1
+:102040008C0F813A48F48C2F0E94C02081118DC0E2
+:102050008C2F0E946119E3CF80E28C0F883048F406
+:10206000C77081E001C0880FCA95EAF70E94E219A3
+:10207000D6CF8BE58C0F833078F4C53A29F0C63A79
+:1020800031F083E890E005C081E890E002C082E88A
+:1020900090E0CF910C94E90E88E58C0F833108F025
+:1020A00064C0C83A39F1C93A41F1CA3A49F1CB3A68
+:1020B00051F1CC3A59F1CD3A61F1C03B69F1CE3AD8
+:1020C00071F1CF3A79F1C13B81F1C23B89F1C33B58
+:1020D00091F1C43B99F1C53BA1F1C63BA9F1C73BC6
+:1020E000B1F1C83BB9F1C93BC1F1CA3BC9F180E0CC
+:1020F00090E038C082EE90E035C089EE90E032C0CA
+:102100008AEE90E02FC085EB90E02CC086EB90E04B
+:1021100029C087EB90E026C08CEC90E023C08DECCA
+:1021200090E020C083E891E01DC08AE891E01AC0E9
+:1021300082E991E017C084E991E014C081E292E065
+:1021400011C083E292E00EC084E292E00BC085E20F
+:1021500092E008C086E292E005C087E292E002C009
+:102160008AE292E0CF910C94FF0ECF9108958823DC
+:1021700009F44BC0823859F40E94C70E81FF45C054
+:1021800089E30E9461190E94191A89E30CC08338FF
+:1021900071F40E94C70E80FF38C083E50E94611968
+:1021A0000E94191A83E50E94A0190C94191A843808
+:1021B00059F40E94C70E82FF28C087E40E9461196B
+:1021C0000E94191A87E4EFCF9CEF980F913A58F3C9
+:1021D00090E2980F983050F4877091E001C0990F09
+:1021E0008A95EAF7892F0E94E819DFCF9BE5980FBF
+:1021F000933020F480E090E00C94E90E885A83310B
+:1022000020F480E090E00C94FF0E0895882321F0E4
+:102210000E94E2190C94191A0895882321F00E9453
+:10222000E8190C94191A0895BF92CF92DF92EF9299
+:10223000FF920F931F93CF93DF9300D000D000D075
+:10224000CDB7DEB77C0185E0F701DE011196019084
+:102250000D928A95E1F7F70183819481892B09F426
+:10226000DDC2908181818F3F19F49F3F09F4D6C26E
+:10227000F7010281258122952F7099838A838981B4
+:102280009A812E830E942019182FB92E0E941F199F
+:102290000E94E617EB2DE295EF704E2F50E0FA0109
+:1022A000E05AFF4F2E810C9404238B2D807F9B2DB1
+:1022B0009F70F92E882319F0F29480EFF822002302
+:1022C00049F0FF2009F457C28F2D0E94F2190E9495
|