From abc3cd4d72ebd7627ebb78a78ad88827fbe4d5f9 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sun, 31 Jul 2016 03:04:37 -0700 Subject: [PATCH 01/34] Update readme.md --- keyboards/planck/keymaps/jeebak/readme.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index eb8104379d..25fbc5e67e 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -7,7 +7,7 @@ the exact changes. The diagrams in this README shows the highlights of the changes from the default mappings. I also decided to change all calls to `persistant_default_layer_set()` to -`update_tri_layer()` since this is my personal perference. +`default_layer_set()` since this is my personal perference. ## Base Layers (Qwerty/Colemak/Dvorak) These base layers are mostly the same as the default mappings. The interesting @@ -69,11 +69,12 @@ keys at the far left are for quick access to beginning and end of line in vim. as the modifier, with the `IJKL` home row keys representing the inverted-T of the arrow keys. All of the default TouchCursor keymappings for the right hand are represented below. My personalizations include all of the keys shown for -the left hand. Having the `Alt` and `Shift` keys readily accessible from the -home row allows quick word jumps and highlighting when used in conjunction with -the arrow keys. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and -`KC_AGAIN` keycodes have been mapped but they don't seem to work on Mac. -Presumably they'll work under Windows. +the left hand. Having the `Alt` and `Shift` keys (as well as the `Control` key +from the base layers) readily accessible from the home row allows quick word +jumps and highlighting when used in conjunction with the arrow keys. The +`KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN` keycodes have +been mapped but they don't seem to work on Mac. Presumably they'll work under +Windows. ``` ,-----------------------------------------------------------------------------------. | | | |Shift | GUI | ~ |Insert| Home | Up | End | Bksp | | From fdd89e7f0d50f619e8608a4448449a3a627f1da1 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sun, 31 Jul 2016 17:16:25 -0700 Subject: [PATCH 02/34] Add Alt-Tab, Cmd-Tab, and Ctl-Tab Macros to TouchCursor layer, swap LGUI and LSFT --- keyboards/planck/keymaps/jeebak/keymap.c | 35 ++++++++++++++++++++--- keyboards/planck/keymaps/jeebak/readme.md | 16 ++++++++--- 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index ec142ecbb5..ef4de074fc 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -24,6 +24,7 @@ extern keymap_config_t keymap_config; #define _MOUSE 7 #define _ADJUST 16 +// Keycodes enum planck_keycodes { QWERTY = SAFE_RANGE, COLEMAK, @@ -35,16 +36,25 @@ enum planck_keycodes { EXT_PLV }; +enum macro_keycodes { + KC_ALT_TAB, + KC_CMD_TAB, + KC_CTL_TAB, +}; + // Fillers to make layering more clear #define _______ KC_TRNS #define XXXXXXX KC_NO // Custom macros #define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl -#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor -// ^-- Requires KC_TRNS / _______ for the trigger key in the destination layer #define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift +// Requires KC_TRNS/_______ for the trigger key in the destination layer +#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor. #define LT_ML LT(_MOUSE, KC_A) // L-ayer T-ap M-ouse C-ursor (on A) +#define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab +#define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab +#define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -140,7 +150,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations * ,-----------------------------------------------------------------------------------. - * | | | |Shift | GUI | ~ |Insert| Home | Up | End | Bksp | | + * |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | * |------+------+------+------+------+-------------+------+------+------+------+------| * | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | | * |------+------+------+------+------+------|------+------+------+------+------+------| @@ -154,7 +164,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_TOUCHCURSOR] = { - {_______, _______, _______, KC_LSFT, KC_LGUI, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______}, + {ALT_TAB, CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______}, {_______, KC_LALT, KC_SPC, _______, KC_FIND,KC_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, {_______, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} @@ -330,6 +340,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } +/* + * Macro definition + */ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch (id) { + case KC_ALT_TAB: + return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); + case KC_CMD_TAB: + return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); + case KC_CTL_TAB: + return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END )); + } + + return MACRO_NONE; +} + void matrix_init_user(void) { #ifdef AUDIO_ENABLE startup_user(); diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index 25fbc5e67e..f7daf53d84 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -9,6 +9,11 @@ changes from the default mappings. I also decided to change all calls to `persistant_default_layer_set()` to `default_layer_set()` since this is my personal perference. +## Macros +``` +#define ALT_TAB M(KC_ALT_TAB) +``` + ## Base Layers (Qwerty/Colemak/Dvorak) These base layers are mostly the same as the default mappings. The interesting changes are shown below. The `Ctrl/Esc`, mapped using `CTL_T(KC_ESC)` will emit @@ -72,12 +77,15 @@ are represented below. My personalizations include all of the keys shown for the left hand. Having the `Alt` and `Shift` keys (as well as the `Control` key from the base layers) readily accessible from the home row allows quick word jumps and highlighting when used in conjunction with the arrow keys. The -`KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN` keycodes have -been mapped but they don't seem to work on Mac. Presumably they'll work under -Windows. +`AltTab` macro is not only useful under Windows, but also under Mac when used +with alternative switchers like [HyperSwitch](https://bahoom.com/hyperswitch). +The `CmdTab` and `CtlTab` sequences are duplicated for easy access while in +this layer. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN` +keycodes have been mapped but they don't seem to work on Mac. Presumably +they'll work under Windows. ``` ,-----------------------------------------------------------------------------------. - | | | |Shift | GUI | ~ |Insert| Home | Up | End | Bksp | | + |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | |------+------+------+------+------+-------------+------+------+------+------+------| | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | | |------+------+------+------+------+------|------+------+------+------+------+------| From 16f4a3178459305fd517d23f028812620e64c18f Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Mon, 1 Aug 2016 15:28:05 -0700 Subject: [PATCH 03/34] Number layer tweaks --- keyboards/planck/keymaps/jeebak/keymap.c | 8 ++++---- keyboards/planck/keymaps/jeebak/readme.md | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index ef4de074fc..e39887394e 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -134,17 +134,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | $ | 4 | 5 | 6 | . | + | * | 4 | 5 | 6 | - | | | + * | $ | 4 | 5 | 6 | . | + | . | 4 | 5 | 6 | * | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | = | 7 | 8 | 9 | 0 | - | / | 1 | 2 | 3 | . | \ | + * | = | 7 | 8 | 9 | 0 | - | . | 1 | 2 | 3 | / | \ | * |------+------+------+------+------+------+------+------+------+------+------+------| * |Brite | | | | | | | Prev | Stop | Slct | Mute | * `-----------------------------------------------------------------------------------' */ [_RAISE] = { {KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_DLR, KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_ASTR, KC_4, KC_5, KC_6, KC_MINS, KC_PIPE}, - {KC_EQL, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_BSLS}, + {KC_DLR, KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_DOT, KC_4, KC_5, KC_6, KC_ASTR, KC_PIPE}, + {KC_EQL, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DOT, KC_1, KC_2, KC_3, KC_SLSH, KC_BSLS}, {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE} }, diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index f7daf53d84..de2096954b 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -61,9 +61,9 @@ keys at the far left are for quick access to beginning and end of line in vim. ,-----------------------------------------------------------------------------------. | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | |------+------+------+------+------+-------------+------+------+------+------+------| - | $ | 4 | 5 | 6 | . | + | * | 4 | 5 | 6 | - | | | + | $ | 4 | 5 | 6 | . | + | . | 4 | 5 | 6 | * | | | |------+------+------+------+------+------|------+------+------+------+------+------| - | = | 7 | 8 | 9 | 0 | - | / | 1 | 2 | 3 | . | \ | + | = | 7 | 8 | 9 | 0 | - | . | 1 | 2 | 3 | / | \ | |------+------+------+------+------+------+------+------+------+------+------+------| |Brite | | | | | | | Prev | Stop | Slct | Mute | `-----------------------------------------------------------------------------------' From 9a4e72fa7175f0ef3b31c6a6036ac1a5010dc6c1 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Mon, 1 Aug 2016 22:02:39 -0700 Subject: [PATCH 04/34] Add CmdSlash to TouchCursor Layer --- keyboards/planck/keymaps/jeebak/keymap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index e39887394e..0a6b9cfa0f 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -40,6 +40,7 @@ enum macro_keycodes { KC_ALT_TAB, KC_CMD_TAB, KC_CTL_TAB, + KC_CMD_SLSH, }; // Fillers to make layering more clear @@ -55,6 +56,7 @@ enum macro_keycodes { #define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab #define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab #define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab +#define CMD_SLSH M(KC_CMD_SLSH) // Macro for Cmd-Slash (personal shortcut to toggle iTerm2 visibility) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -166,7 +168,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_TOUCHCURSOR] = { {ALT_TAB, CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______}, {_______, KC_LALT, KC_SPC, _______, KC_FIND,KC_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, - {_______, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, _______, _______}, + {_______, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, CMD_SLSH,_______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -352,6 +354,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); case KC_CTL_TAB: return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END )); + case KC_CMD_SLSH: + return (record->event.pressed ? MACRO( D(LGUI), D(SLSH),END ) : MACRO( U(SLSH),END )); } return MACRO_NONE; From 7db1d7902bfb7044b899859d95846fa92bad61db Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Wed, 3 Aug 2016 20:00:54 -0700 Subject: [PATCH 05/34] Workaround for KC_COPY, etc. based on current AG_NORM/AG_SWAP setting --- keyboards/planck/keymaps/jeebak/keymap.c | 47 +++++++++++++++++++++-- keyboards/planck/keymaps/jeebak/readme.md | 12 +++--- 2 files changed, 50 insertions(+), 9 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 0a6b9cfa0f..25918dc985 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -41,6 +41,12 @@ enum macro_keycodes { KC_CMD_TAB, KC_CTL_TAB, KC_CMD_SLSH, + KC_AG_FIND, + KC_AG_AGAIN, + KC_AG_UNDO, + KC_AG_CUT, + KC_AG_COPY, + KC_AG_PASTE, }; // Fillers to make layering more clear @@ -57,6 +63,12 @@ enum macro_keycodes { #define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab #define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab #define CMD_SLSH M(KC_CMD_SLSH) // Macro for Cmd-Slash (personal shortcut to toggle iTerm2 visibility) +#define AG_FIND M(KC_AG_FIND) // Macros for Cmd-[x] vs Ctrl-[x] based on current AG_NORM or AG_SWAP settings +#define AG_AGAIN M(KC_AG_AGAIN) +#define AG_UNDO M(KC_AG_UNDO) +#define AG_CUT M(KC_AG_CUT) +#define AG_COPY M(KC_AG_COPY) +#define AG_PASTE M(KC_AG_PASTE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -167,8 +179,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_TOUCHCURSOR] = { {ALT_TAB, CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______}, - {_______, KC_LALT, KC_SPC, _______, KC_FIND,KC_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, - {_______, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, CMD_SLSH,_______}, + {_______, KC_LALT, KC_SPC, _______, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, + {_______, AG_UNDO, AG_CUT, AG_COPY, AG_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, CMD_SLSH,_______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -347,15 +359,42 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { */ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + + bool use_cmd = true; // Use, for example, Cmd-Tab, Cmd-C, Cmd-V, etc. + // Compare to MAGIC_SWAP_ALT_GUI and MAGIC_UNSWAP_ALT_GUI configs, set in: + // quantum/quantum.c + if(keymap_config.swap_lalt_lgui == 1 && keymap_config.swap_ralt_rgui == 1) { + use_cmd = false; // ... or, Alt-Tab, Ctrl-C, Ctrl-V, etc. + } + switch (id) { case KC_ALT_TAB: - return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); + if(use_cmd) { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); } + else { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); } case KC_CMD_TAB: - return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); + if(use_cmd) { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); } + else { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); } + case KC_CTL_TAB: return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END )); case KC_CMD_SLSH: return (record->event.pressed ? MACRO( D(LGUI), D(SLSH),END ) : MACRO( U(SLSH),END )); + + case KC_AG_FIND: + return use_cmd ? MACRODOWN( D(LGUI), T(F), END ) : MACRODOWN( D(LCTRL), T(F), END ); + case KC_AG_AGAIN: + return use_cmd ? MACRODOWN( D(LGUI), T(G), END ) : MACRODOWN( D(LCTRL), T(G), END ); + case KC_AG_UNDO: + return use_cmd ? MACRODOWN( D(LGUI), T(Z), END ) : MACRODOWN( D(LCTRL), T(Z), END ); + case KC_AG_CUT: + return use_cmd ? MACRODOWN( D(LGUI), T(X), END ) : MACRODOWN( D(LCTRL), T(X), END ); + case KC_AG_COPY: + return use_cmd ? MACRODOWN( D(LGUI), T(C), END ) : MACRODOWN( D(LCTRL), T(C), END ); + case KC_AG_PASTE: + return use_cmd ? MACRODOWN( D(LGUI), T(V), END ) : MACRODOWN( D(LCTRL), T(V), END ); } return MACRO_NONE; diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index de2096954b..094bc2a0ed 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -77,15 +77,17 @@ are represented below. My personalizations include all of the keys shown for the left hand. Having the `Alt` and `Shift` keys (as well as the `Control` key from the base layers) readily accessible from the home row allows quick word jumps and highlighting when used in conjunction with the arrow keys. The -`AltTab` macro is not only useful under Windows, but also under Mac when used +`Alt-Tab` macro is not only useful under Windows, but also under Mac when used with alternative switchers like [HyperSwitch](https://bahoom.com/hyperswitch). -The `CmdTab` and `CtlTab` sequences are duplicated for easy access while in +The `Cmd-Tab` and `Ctrl-Tab` sequences are duplicated for easy access while in this layer. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN` -keycodes have been mapped but they don't seem to work on Mac. Presumably -they'll work under Windows. +keycodes do not seem to work. There are macros in place that'll "automatically" +choose the correct version (`Cmd-Tab` vs. `Alt-Tab`, `Cmd-C` vs. `Ctrl-C`, +etc.) depending on which layout you've currently selected (`AG_NORM` or +`AG_SWAP`) in the `_ADJUST` layer. ``` ,-----------------------------------------------------------------------------------. - |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | + |CmdTab|AltTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | |------+------+------+------+------+-------------+------+------+------+------+------| | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | | |------+------+------+------+------+------|------+------+------+------+------+------| From 36abd4463fec1623e7eb590bb7960c6655cf2b70 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Thu, 4 Aug 2016 14:26:03 -0700 Subject: [PATCH 06/34] Revert swapp of AltTab/CmdTab in readme. Layout did not change --- keyboards/planck/keymaps/jeebak/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index 094bc2a0ed..48eb23264f 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -87,7 +87,7 @@ etc.) depending on which layout you've currently selected (`AG_NORM` or `AG_SWAP`) in the `_ADJUST` layer. ``` ,-----------------------------------------------------------------------------------. - |CmdTab|AltTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | + |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | |------+------+------+------+------+-------------+------+------+------+------+------| | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | | |------+------+------+------+------+------|------+------+------+------+------+------| From 545925fb1b92252fe0bad5a675727d52bea161ef Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Fri, 5 Aug 2016 23:19:12 -0400 Subject: [PATCH 07/34] remove orphaned clueboard files --- keyboards/clueboard2/Makefile | 71 ------------------------------- keyboards/clueboard2/clueboard2.c | 63 --------------------------- 2 files changed, 134 deletions(-) delete mode 100644 keyboards/clueboard2/Makefile delete mode 100644 keyboards/clueboard2/clueboard2.c diff --git a/keyboards/clueboard2/Makefile b/keyboards/clueboard2/Makefile deleted file mode 100644 index e9367a90d0..0000000000 --- a/keyboards/clueboard2/Makefile +++ /dev/null @@ -1,71 +0,0 @@ - - -# MCU name -#MCU = at90usb1287 -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 - - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= yes # Console for debug(+400) -COMMAND_ENABLE ?= yes # Commands for debug and configuration -NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality (+4870) -BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150) -MIDI_ENABLE ?= no # MIDI controls -AUDIO_ENABLE ?= no -UNICODE_ENABLE ?= no # Unicode -BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID - -ifndef QUANTUM_DIR - include ../../Makefile -endif diff --git a/keyboards/clueboard2/clueboard2.c b/keyboards/clueboard2/clueboard2.c deleted file mode 100644 index d78ffed9ba..0000000000 --- a/keyboards/clueboard2/clueboard2.c +++ /dev/null @@ -1,63 +0,0 @@ -#include "clueboard2.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - matrix_init_user(); - led_init_ports(); - - // JTAG disable for PORT F. write JTD bit twice within four cycles. - MCUCR |= (1< Date: Fri, 5 Aug 2016 23:31:35 -0700 Subject: [PATCH 08/34] Mouse layer updates - Rename to MOUSECURSOR - Use "d" key, since middle finger is stronger than pinky - Shuffle some mouse buttons around --- keyboards/planck/keymaps/jeebak/keymap.c | 32 +++++++++++------------ keyboards/planck/keymaps/jeebak/readme.md | 14 +++++----- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 25918dc985..4a3cc2d562 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -21,7 +21,7 @@ extern keymap_config_t keymap_config; #define _RAISE 4 #define _PLOVER 5 #define _TOUCHCURSOR 6 -#define _MOUSE 7 +#define _MOUSECURSOR 7 #define _ADJUST 16 // Keycodes @@ -57,8 +57,8 @@ enum macro_keycodes { #define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl #define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift // Requires KC_TRNS/_______ for the trigger key in the destination layer -#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor. -#define LT_ML LT(_MOUSE, KC_A) // L-ayer T-ap M-ouse C-ursor (on A) +#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor +#define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor #define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab #define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab #define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab @@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------------. * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| - * | Ctrl/Esc | ML/A | S | D | F | G | H | J | K | L | ; | " | + * | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L | ; | " | * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| @@ -85,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTY] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {CTL_ESC, LT_ML, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {CTL_ESC, KC_A, KC_S, LT_MC(KC_D),KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, @@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------------. * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| - * | Ctrl/Esc | ML/A | R | S | T | D | H | N | E | I | O | " | + * | Ctrl/Esc | A | R | MC/S | T | D | H | N | E | I | O | " | * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | Z | X | C | V | B | K | M | , | . | / |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| @@ -103,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_COLEMAK] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {CTL_ESC, LT_ML, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {CTL_ESC, KC_A, KC_R, LT_MC(KC_S),KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, @@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------------. * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| - * | Ctrl/Esc | ML/A | O | E | U | I | D | H | T | N | S | / | + * | Ctrl/Esc | A | O | MC/E | U | I | D | H | T | N | S | / | * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | ; | Q | J | K | X | B | M | W | V | Z |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| @@ -121,7 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_DVORAK] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {CTL_ESC, LT_ML, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {CTL_ESC, KC_A, KC_O, LT_MC(KC_E),KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT}, {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, @@ -186,20 +186,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Mouse Layer * ,-----------------------------------------------------------------------------------. - * | | |ACCL0 |ACCL1 |ACCL2 |ACCL2 | |WHL_L | Up |WHL_R | BTN2 | | + * | | |ACCL0 | |ACCL1 | | |WHL_L | Up |WHL_R | BTN2 | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | BTN3 | BTN1 | BTN4 |WHL_Up| Left | Down |Right | | | + * | |ACCL2 | BTN2 | | BTN1 | |WHL_Up| Left | Down |Right | BTN4 | BTN5 | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | BTN2 | BTN5 |WHL_Dn| BTN1 | | | | | + * | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_MOUSE] = { - {_______, _______, KC_ACL0, KC_ACL1, KC_ACL2, KC_ACL2, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______}, - {_______, _______, _______, KC_BTN3, KC_BTN1, KC_BTN4, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______}, - {_______, _______, _______, _______, KC_BTN2, KC_BTN5, KC_WH_D, KC_BTN1, _______, _______, _______, _______}, +[_MOUSECURSOR] = { + {_______, _______, KC_ACL0, _______, KC_ACL1, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______}, + {_______, KC_ACL2, KC_BTN2, _______, KC_BTN1, _______, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN4, KC_BTN5}, + {_______, _______, _______, _______, KC_BTN3, _______, KC_WH_D, KC_BTN1, _______, _______, KC_BTN3, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index 48eb23264f..0f2c9e26d2 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -99,19 +99,19 @@ etc.) depending on which layout you've currently selected (`AG_NORM` or ## Mouse Layer The Mouse layer, closely mimics the layout/behaviour of the TouchCursor layer. -The `A` key is used to activate this layer. All 16 keycodes for the mouse from -the `doc/keycode.txt` file are represented, and logically located, IMHO. The -left and right click buttons are duplicated; on the right hand side, for a -quick click here and there, and again on the left hand side for when the +The `D` key (on QWERTY) is used to activate this layer. All 16 keycodes for the +mouse from the `doc/keycode.txt` file are represented, and logically located, +IMHO. The left and right click buttons are duplicated; on the right hand side, +for a quick click here and there, and again on the left hand side for when the buttons need to be held for dragging things or highlighting text, thus allowing the right hand to be free to use the up/down/left/right actions. ``` ,-----------------------------------------------------------------------------------. - | | |ACCL0 |ACCL1 |ACCL2 |ACCL2 | |WHL_L | Up |WHL_R | BTN2 | | + | | |ACCL0 | |ACCL1 | | |WHL_L | Up |WHL_R | BTN2 | | |------+------+------+------+------+-------------+------+------+------+------+------| - | | | | BTN3 | BTN1 | BTN4 |WHL_Up| Left | Down |Right | | | + | |ACCL2 | BTN2 | | BTN1 | |WHL_Up| Left | Down |Right | BTN4 | BTN5 | |------+------+------+------+------+------|------+------+------+------+------+------| - | | | | | BTN2 | BTN5 |WHL_Dn| BTN1 | | | | | + | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | | |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | | `-----------------------------------------------------------------------------------' From 96ed96f924d7df610465b567e5127e73e99a368d Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sat, 6 Aug 2016 00:01:12 -0700 Subject: [PATCH 09/34] Fix KC_ALT_TAB/KC_CMD_TAB logic --- keyboards/planck/keymaps/jeebak/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 4a3cc2d562..3b51e34e38 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -372,11 +372,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) switch (id) { case KC_ALT_TAB: - if(use_cmd) { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); } - else { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); } - case KC_CMD_TAB: if(use_cmd) { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); } else { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); } + case KC_CMD_TAB: + if(use_cmd) { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); } + else { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); } case KC_CTL_TAB: return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END )); From 57218827cbdb6e9510147239f69b8aa62e28cd14 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sat, 6 Aug 2016 00:08:42 -0700 Subject: [PATCH 10/34] Move KC_ACL1 button --- keyboards/planck/keymaps/jeebak/keymap.c | 8 ++++---- keyboards/planck/keymaps/jeebak/readme.md | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 3b51e34e38..c5761b2d1d 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -186,9 +186,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Mouse Layer * ,-----------------------------------------------------------------------------------. - * | | |ACCL0 | |ACCL1 | | |WHL_L | Up |WHL_R | BTN2 | | + * | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | |ACCL2 | BTN2 | | BTN1 | |WHL_Up| Left | Down |Right | BTN4 | BTN5 | + * | |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -197,8 +197,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_MOUSECURSOR] = { - {_______, _______, KC_ACL0, _______, KC_ACL1, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______}, - {_______, KC_ACL2, KC_BTN2, _______, KC_BTN1, _______, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN4, KC_BTN5}, + {_______, _______, KC_ACL0, _______, _______, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______}, + {_______, KC_ACL2, KC_BTN2, _______, KC_BTN1, KC_ACL1, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN4, KC_BTN5}, {_______, _______, _______, _______, KC_BTN3, _______, KC_WH_D, KC_BTN1, _______, _______, KC_BTN3, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index 0f2c9e26d2..359aacff97 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -107,9 +107,9 @@ buttons need to be held for dragging things or highlighting text, thus allowing the right hand to be free to use the up/down/left/right actions. ``` ,-----------------------------------------------------------------------------------. - | | |ACCL0 | |ACCL1 | | |WHL_L | Up |WHL_R | BTN2 | | + | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | | |------+------+------+------+------+-------------+------+------+------+------+------| - | |ACCL2 | BTN2 | | BTN1 | |WHL_Up| Left | Down |Right | BTN4 | BTN5 | + | |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 | |------+------+------+------+------+------|------+------+------+------+------+------| | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | | |------+------+------+------+------+------+------+------+------+------+------+------| From bda4d15ffa5a7390591b2f4edb05ed568a1c708a Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sat, 6 Aug 2016 11:59:57 -0700 Subject: [PATCH 11/34] Add Virtual Desktop Switching macros to TouchCursor layer --- keyboards/planck/keymaps/jeebak/keymap.c | 13 +++++++++++-- keyboards/planck/keymaps/jeebak/readme.md | 5 +++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index c5761b2d1d..aa5c415938 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -47,6 +47,8 @@ enum macro_keycodes { KC_AG_CUT, KC_AG_COPY, KC_AG_PASTE, + KC_AG_DESK_L, + KC_AG_DESK_R, }; // Fillers to make layering more clear @@ -69,6 +71,8 @@ enum macro_keycodes { #define AG_CUT M(KC_AG_CUT) #define AG_COPY M(KC_AG_COPY) #define AG_PASTE M(KC_AG_PASTE) +#define AG_D_L M(KC_AG_DESK_L) // For Virtual Desktop Switching: Left, and +#define AG_D_R M(KC_AG_DESK_R) // Right const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -166,7 +170,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | | + * | | Alt |Space | | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R| * |------+------+------+------+------+------|------+------+------+------+------+------| * | | Undo | Cut | Copy |Paste | ` | PgDn | Del | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -179,7 +183,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_TOUCHCURSOR] = { {ALT_TAB, CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______}, - {_______, KC_LALT, KC_SPC, _______, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, + {_______, KC_LALT, KC_SPC, _______, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, AG_D_L, AG_D_R }, {_______, AG_UNDO, AG_CUT, AG_COPY, AG_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, CMD_SLSH,_______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -395,6 +399,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return use_cmd ? MACRODOWN( D(LGUI), T(C), END ) : MACRODOWN( D(LCTRL), T(C), END ); case KC_AG_PASTE: return use_cmd ? MACRODOWN( D(LGUI), T(V), END ) : MACRODOWN( D(LCTRL), T(V), END ); + + case KC_AG_DESK_L: + return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(SCLN), END ) : MACRODOWN( D(LALT), D(LCTRL), T(SCLN), END ); + case KC_AG_DESK_R: + return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(QUOT), END ) : MACRODOWN( D(LALT), D(LCTRL), T(QUOT), END ); } return MACRO_NONE; diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index 359aacff97..28ae34f475 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -84,12 +84,13 @@ this layer. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN` keycodes do not seem to work. There are macros in place that'll "automatically" choose the correct version (`Cmd-Tab` vs. `Alt-Tab`, `Cmd-C` vs. `Ctrl-C`, etc.) depending on which layout you've currently selected (`AG_NORM` or -`AG_SWAP`) in the `_ADJUST` layer. +`AG_SWAP`) in the `_ADJUST` layer. The `Desk_L` and `Desk_R` macros are what I +use to switch between Virtual Desktops Left/Right. ``` ,-----------------------------------------------------------------------------------. |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | |------+------+------+------+------+-------------+------+------+------+------+------| - | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | | + | | Alt |Space | | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R| |------+------+------+------+------+------|------+------+------+------+------+------| | | Undo | Cut | Copy |Paste | ` | PgDn | Del | | | | | |------+------+------+------+------+------+------+------+------+------+------+------| From 68e287013b42cea53a1834c141bdf2c0802da3af Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sat, 6 Aug 2016 13:36:26 -0700 Subject: [PATCH 12/34] Add Tab Close, New, Reopen macros to TouchCursor layer --- keyboards/planck/keymaps/jeebak/keymap.c | 21 +++++++++++++++++---- keyboards/planck/keymaps/jeebak/readme.md | 8 +++++--- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index aa5c415938..7dc8760ec4 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -49,6 +49,9 @@ enum macro_keycodes { KC_AG_PASTE, KC_AG_DESK_L, KC_AG_DESK_R, + KC_AG_TAB_C, + KC_AG_TAB_N, + KC_AG_TAB_R, }; // Fillers to make layering more clear @@ -73,6 +76,9 @@ enum macro_keycodes { #define AG_PASTE M(KC_AG_PASTE) #define AG_D_L M(KC_AG_DESK_L) // For Virtual Desktop Switching: Left, and #define AG_D_R M(KC_AG_DESK_R) // Right +#define AG_T_C M(KC_AG_TAB_C) // For Chrome, etc. Tab Close, +#define AG_T_N M(KC_AG_TAB_N) // Tab New, and +#define AG_T_R M(KC_AG_TAB_R) // Tab Reopen Closed const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -170,9 +176,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | Alt |Space | | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R| + * | | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R| * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | Undo | Cut | Copy |Paste | ` | PgDn | Del | | | | | + * | | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -183,8 +189,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_TOUCHCURSOR] = { {ALT_TAB, CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______}, - {_______, KC_LALT, KC_SPC, _______, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, AG_D_L, AG_D_R }, - {_______, AG_UNDO, AG_CUT, AG_COPY, AG_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, CMD_SLSH,_______}, + {_______, KC_LALT, KC_SPC, AG_T_C, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, AG_D_L, AG_D_R }, + {_______, AG_UNDO, AG_CUT, AG_COPY, AG_PASTE,KC_GRV, KC_PGDN, KC_DEL, AG_T_N, AG_T_R, CMD_SLSH,_______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -404,6 +410,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(SCLN), END ) : MACRODOWN( D(LALT), D(LCTRL), T(SCLN), END ); case KC_AG_DESK_R: return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(QUOT), END ) : MACRODOWN( D(LALT), D(LCTRL), T(QUOT), END ); + + case KC_AG_TAB_C: + return use_cmd ? MACRODOWN( D(LGUI), T(W), END ) : MACRODOWN( D(LCTRL), T(W), END ); + case KC_AG_TAB_N: + return use_cmd ? MACRODOWN( D(LGUI), T(T), END ) : MACRODOWN( D(LCTRL), T(T), END ); + case KC_AG_TAB_R: + return use_cmd ? MACRODOWN( D(LGUI), D(LSHIFT), T(T), END ) : MACRODOWN( D(LCTRL), D(LSHIFT), T(T), END ); } return MACRO_NONE; diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index 28ae34f475..b43f8a2fba 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -85,14 +85,16 @@ keycodes do not seem to work. There are macros in place that'll "automatically" choose the correct version (`Cmd-Tab` vs. `Alt-Tab`, `Cmd-C` vs. `Ctrl-C`, etc.) depending on which layout you've currently selected (`AG_NORM` or `AG_SWAP`) in the `_ADJUST` layer. The `Desk_L` and `Desk_R` macros are what I -use to switch between Virtual Desktops Left/Right. +use to switch between Virtual Desktops Left/Right. The `Tab_C`, `Tab_N` and +`Tab_R` are for "Close Tab," "New Tab" and "Reopen Closed Tab" for apps such as +Google Chrome. ``` ,-----------------------------------------------------------------------------------. |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | |------+------+------+------+------+-------------+------+------+------+------+------| - | | Alt |Space | | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R| + | | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R| |------+------+------+------+------+------|------+------+------+------+------+------| - | | Undo | Cut | Copy |Paste | ` | PgDn | Del | | | | | + | | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| | |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | | `-----------------------------------------------------------------------------------' From c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Mon Sep 17 00:00:00 2001 From: kuel Date: Sun, 7 Aug 2016 11:01:12 -0500 Subject: [PATCH 13/34] Add keymap_russian.h, a software implementation of Russian rename keymap_cyrillic.h to keymap_unicode_cyrillic.h changed CY_RUBLE and CY_NUMERO to CY_RUBL and CY_NMRO in keymap_unicode_cyrillic.h --- quantum/keymap_extras/keymap_russian.h | 79 +++++++++++++++++++ ...p_cyrillic.h => keymap_unicode_cyrillic.h} | 6 +- 2 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 quantum/keymap_extras/keymap_russian.h rename quantum/keymap_extras/{keymap_cyrillic.h => keymap_unicode_cyrillic.h} (97%) diff --git a/quantum/keymap_extras/keymap_russian.h b/quantum/keymap_extras/keymap_russian.h new file mode 100644 index 0000000000..efb63a5cc2 --- /dev/null +++ b/quantum/keymap_extras/keymap_russian.h @@ -0,0 +1,79 @@ +#ifndef KEYMAP_RUSSIAN_H +#define KEYMAP_RUSSIAN_H + +#include "keymap.h" + +// rename ruble and numero in keymap_cyrillic.c + +// Normal Chracters // reg SHIFT +#define RU_A KC_F // а and А +#define RU_BE KC_COMM // б and Б +#define RU_VE KC_D // в and В +#define RU_GHE KC_U // г and Г +#define RU_DE KC_L // д and Д +#define RU_IE KC_T // е and Е +#define RU_IO KC_GRV // ё and Ё +#define RU_ZHE KC_SCLN // ж and Ж +#define RU_ZE KC_P // з and З +#define RU_I KC_B // и and И +#define RU_SRT_I KC_Q // й and Й +#define RU_KA KC_R // к and К +#define RU_EL KC_K // л and Л +#define RU_EM KC_V // м and М +#define RU_EN KC_Y // н and Н +#define RU_O KC_J // о and О +#define RU_PE KC_G // п and П +#define RU_ER KC_H // р and Р +#define RU_ES KC_C // с and С +#define RU_TE KC_N // т and Т +#define RU_U KC_E // у and У +#define RU_EF KC_A // ф and Ф +#define RU_HA KC_LBRC // х and Х +#define RU_TSE KC_W // ц and Ц +#define RU_CHE KC_X // ч and Ч +#define RU_SHA KC_I // ш and Ш +#define RU_SHCHA KC_O // щ and Щ +#define RU_HSIGN KC_RBRC // ъ and Ъ +#define RU_YERU KC_S // ы and Ы +#define RU_SSIGN KC_M // ь and Ь +#define RU_E KC_QUOT // э and Э +#define RU_YU KC_DOT // ю and Ю +#define RU_YA KC_Z // я and Я + +#define RU_1 KC_1 // 1 and ! +#define RU_2 KC_2 // 2 and " +#define RU_3 KC_3 // 3 and № +#define RU_4 KC_4 // 4 and ; +#define RU_5 KC_5 // 5 and % +#define RU_6 KC_6 // 6 and : +#define RU_7 KC_7 // 7 and ? +#define RU_8 KC_8 // 8 and * +#define RU_9 KC_9 // 9 and ( +#define RU_0 KC_0 // 0 and ) + +#define RU_MINS KC_MINS // - and _ +#define RU_EQL KC_EQL // = and + +#define RU_BSLS KC_BSLS // \ and / +#define RU_DOT KC_SLSH // . and , + +// Shifted Chracters +#define RU_EXLM LSFT(RU_1) // ! +#define RU_DQUT LSFT(RU_2) // " +#define RU_NMRO LSFT(RU_3) // № +#define RU_SCLN LSFT(RU_4) // ; +#define RU_PERC LSFT(RU_5) // % +#define RU_COLN LSFT(RU_6) // : +#define RU_QUES LSFT(RU_7) // ? +#define RU_ASTR LSFT(RU_8) // * +#define RU_LPRN LSFT(RU_9) // ( +#define RU_RPRN LSFT(RU_0) // ) + +#define RU_UNDR LSFT(RU_MINS) // _ +#define RU_PLUS LSFT(RU_EQL) // + +#define RU_SLSH LSFT(RU_BSLS) // / +#define RU_COMM LSFT(RU_DOT) // , + +// Alt Gr-ed characters +#define RU_RUBL RALT(RU_8) // ₽ + +#endif diff --git a/quantum/keymap_extras/keymap_cyrillic.h b/quantum/keymap_extras/keymap_unicode_cyrillic.h similarity index 97% rename from quantum/keymap_extras/keymap_cyrillic.h rename to quantum/keymap_extras/keymap_unicode_cyrillic.h index d5390afff5..a40626d911 100644 --- a/quantum/keymap_extras/keymap_cyrillic.h +++ b/quantum/keymap_extras/keymap_unicode_cyrillic.h @@ -6,6 +6,8 @@ /* * This is based off of * https://en.wikipedia.org/wiki/Cyrillic_script + * + * Unicode is iffy, a software implementation is preferred */ // Capital Char russian/ukrainian/bulgarian @@ -153,8 +155,8 @@ #define CY_thsign UC(0x1c86) // ᲆ CYRILLIC SMALL LETTER TALL HARD SIGN #define CY_YERUBY UC(0xa650) // Ꙑ CYRILLIC CAPITAL LETTER YERU WITH BACK YER #define CY_yeruby UC(0xa651) // ꙑ CYRILLIC SMALL LETTER YERU WITH BACK YER -#define CY_RUBLE UC(0x20bd) // ₽ -#define CY_NUMERO UC(0x2116) // № +#define CY_RUBL UC(0x20bd) // ₽ +#define CY_NMRO UC(0x2116) // № // The letters Zje and Sje are made for other letters and accent marks From 2a0121a78643b1dc774d82352f8c9e246010803e Mon Sep 17 00:00:00 2001 From: kuel Date: Sun, 7 Aug 2016 11:07:38 -0500 Subject: [PATCH 14/34] Removed unnecessary comment --- quantum/keymap_extras/keymap_russian.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/quantum/keymap_extras/keymap_russian.h b/quantum/keymap_extras/keymap_russian.h index efb63a5cc2..237e9abde3 100644 --- a/quantum/keymap_extras/keymap_russian.h +++ b/quantum/keymap_extras/keymap_russian.h @@ -3,8 +3,6 @@ #include "keymap.h" -// rename ruble and numero in keymap_cyrillic.c - // Normal Chracters // reg SHIFT #define RU_A KC_F // а and А #define RU_BE KC_COMM // б and Б From 3d86e5b7a796e8d574107109708ed873405a77dc Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sun, 7 Aug 2016 11:05:10 -0700 Subject: [PATCH 15/34] Tap for Tab, hold for Hyper --- keyboards/planck/keymaps/jeebak/keymap.c | 13 ++++--- keyboards/planck/keymaps/jeebak/readme.md | 46 ++++++++++++----------- 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 7dc8760ec4..8541ecd8d5 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -61,6 +61,7 @@ enum macro_keycodes { // Custom macros #define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl #define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift +#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper // Requires KC_TRNS/_______ for the trigger key in the destination layer #define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor #define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor @@ -84,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * | Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| * | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L | ; | " | * |----------+------+------+------+------+------|------+------+------+------+------+--------| @@ -94,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------------' */ [_QWERTY] = { - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {CTL_ESC, KC_A, KC_S, LT_MC(KC_D),KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} @@ -102,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Colemak * ,-----------------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * | Hyper/Tab| Q | W | F | P | G | J | L | U | Y | ; | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| * | Ctrl/Esc | A | R | MC/S | T | D | H | N | E | I | O | " | * |----------+------+------+------+------+------|------+------+------+------+------+--------| @@ -112,7 +113,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------------' */ [_COLEMAK] = { - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {CTL_ESC, KC_A, KC_R, LT_MC(KC_S),KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} @@ -120,7 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Dvorak * ,-----------------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * | Hyper/Tab| " | , | . | P | Y | F | G | C | R | L | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| * | Ctrl/Esc | A | O | MC/E | U | I | D | H | T | N | S | / | * |----------+------+------+------+------+------|------+------+------+------+------+--------| @@ -130,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------------' */ [_DVORAK] = { - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {CTL_ESC, KC_A, KC_O, LT_MC(KC_E),KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT}, {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index b43f8a2fba..8635679047 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -16,32 +16,36 @@ I also decided to change all calls to `persistant_default_layer_set()` to ## Base Layers (Qwerty/Colemak/Dvorak) These base layers are mostly the same as the default mappings. The interesting -changes are shown below. The `Ctrl/Esc`, mapped using `CTL_T(KC_ESC)` will emit -an `Escape` when tapped, and act as a `Control` key when held. A `TODO` item is -to see if it can also act as a `CapsLock` when double-tapped. The right shift -key acts as `Enter` when tapped, and as a `Shift` key when held. The arrow -keys, which have been moved to the +changes are shown below. + +- The `Ctrl/Esc`, will emit an `Escape` when tapped, and act as a `Control` key when held. +- The `Sft/Ent` as `Enter` and `Shift`, and +- The `Hyper/Tab` as `Tab` and `Hyper` + +A `TODO` item is to see if it can also act as a `CapsLock` when double-tapped. +The arrow keys, which have been moved to the [TouchCursor](http://martin-stone.github.io/touchcursor/) layer, have been -replaced with the Media keys as shown. The `ML/A` key activates the Mouse layer -when held, and emits an `A` when tapped. +replaced with the Media keys as shown. The `MC/kc` key activates the +`MouseCursor` layer when held, and emits the corresponding `kc` for its layer, +when tapped. ``` ,-----------------------------------------------------------------------------------------. - | | | | | | | | | | | | | + | Hyper/Tab| | | | | | | | | | | | |----------+------+------+------+------+-------------+------+------+------+------+--------| - | Ctrl/Esc | ML/A | | | | | | | | | | | + | Ctrl/Esc | | |MC/kc | | | | | | | | | |----------+------+------+------+------+------|------+------+------+------+------+--------| | | | | | | | | | | | |Sft/Ent | |----------+------+------+------+------+------+------+------+------+------+------+--------| | PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play | `-----------------------------------------------------------------------------------------' -``` - +``` + ## Lower Layer (Symbols and Function Keys) The symbols and functions keys are essentially the same as the default mapping. The most notable changes are that the symbol keys from the `RAISE` layer have been moved here. The remaining Media keys replace those that are now on the base layers. The `BACKLIT` key has also been moved here. -``` +``` ,-----------------------------------------------------------------------------------. | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | |------+------+------+------+------+-------------+------+------+------+------+------| @@ -51,13 +55,13 @@ base layers. The `BACKLIT` key has also been moved here. |------+------+------+------+------+------+------+------+------+------+------+------| |Brite | | | | | | | Prev | Stop | Slct | Mute | `-----------------------------------------------------------------------------------' -``` - +``` + ## Raise Layer (Numbers and Arithmetic Operators) All of the numbers and arithmetic operators are available on this layer. Some keys are duplicated for the convenience of their positions. The `0` and `$` keys at the far left are for quick access to beginning and end of line in vim. -``` +``` ,-----------------------------------------------------------------------------------. | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | |------+------+------+------+------+-------------+------+------+------+------+------| @@ -67,8 +71,8 @@ keys at the far left are for quick access to beginning and end of line in vim. |------+------+------+------+------+------+------+------+------+------+------+------| |Brite | | | | | | | Prev | Stop | Slct | Mute | `-----------------------------------------------------------------------------------' -``` - +``` + ## TouchCursor layer plus personal customizations [TouchCursor](http://martin-stone.github.io/touchcursor/) uses the `Space` key as the modifier, with the `IJKL` home row keys representing the inverted-T of @@ -88,7 +92,7 @@ etc.) depending on which layout you've currently selected (`AG_NORM` or use to switch between Virtual Desktops Left/Right. The `Tab_C`, `Tab_N` and `Tab_R` are for "Close Tab," "New Tab" and "Reopen Closed Tab" for apps such as Google Chrome. -``` +``` ,-----------------------------------------------------------------------------------. |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | |------+------+------+------+------+-------------+------+------+------+------+------| @@ -98,7 +102,7 @@ Google Chrome. |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | | `-----------------------------------------------------------------------------------' -``` +``` ## Mouse Layer The Mouse layer, closely mimics the layout/behaviour of the TouchCursor layer. @@ -108,7 +112,7 @@ IMHO. The left and right click buttons are duplicated; on the right hand side, for a quick click here and there, and again on the left hand side for when the buttons need to be held for dragging things or highlighting text, thus allowing the right hand to be free to use the up/down/left/right actions. -``` +``` ,-----------------------------------------------------------------------------------. | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | | |------+------+------+------+------+-------------+------+------+------+------+------| @@ -118,4 +122,4 @@ the right hand to be free to use the up/down/left/right actions. |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | | `-----------------------------------------------------------------------------------' -``` +``` From ef83f1d04f4cf85c1922632b8a759fe67a5b24cb Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sun, 7 Aug 2016 12:44:45 -0700 Subject: [PATCH 16/34] Tap for ;, hold for GUI, tap for ", hold for Alt --- keyboards/planck/keymaps/jeebak/keymap.c | 6 ++++-- keyboards/planck/keymaps/jeebak/readme.md | 10 ++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 8541ecd8d5..cb7ccb5884 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -62,6 +62,8 @@ enum macro_keycodes { #define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl #define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift #define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper +#define GUI_SEM GUI_T(KC_SCLN) // Tap for Semicolon, hold for GUI +#define ALT_QUO ALT_T(KC_QUOT) // Tap for Quote, hold for Alt // Requires KC_TRNS/_______ for the trigger key in the destination layer #define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor #define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor @@ -87,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------------. * | Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| - * | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L | ; | " | + * | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L |GUI/; | Alt/" | * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| @@ -96,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTY] = { {HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {CTL_ESC, KC_A, KC_S, LT_MC(KC_D),KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {CTL_ESC, KC_A, KC_S, LT_MC(KC_D),KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, GUI_SEM, ALT_QUO}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index 8635679047..e1dd1dca51 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -18,9 +18,11 @@ I also decided to change all calls to `persistant_default_layer_set()` to These base layers are mostly the same as the default mappings. The interesting changes are shown below. -- The `Ctrl/Esc`, will emit an `Escape` when tapped, and act as a `Control` key when held. -- The `Sft/Ent` as `Enter` and `Shift`, and -- The `Hyper/Tab` as `Tab` and `Hyper` +- The `Ctrl/Esc`, will emit an `Escape` when tapped, and act as a `Control` key when held, +- `GUI/;` as `;` and `GUI`, +- `Alt/"` as `"` and `Alt`, +- `Sft/Ent` as `Enter` and `Shift`, and +- `Hyper/Tab` as `Tab` and `Hyper` A `TODO` item is to see if it can also act as a `CapsLock` when double-tapped. The arrow keys, which have been moved to the @@ -32,7 +34,7 @@ when tapped. ,-----------------------------------------------------------------------------------------. | Hyper/Tab| | | | | | | | | | | | |----------+------+------+------+------+-------------+------+------+------+------+--------| - | Ctrl/Esc | | |MC/kc | | | | | | | | | + | Ctrl/Esc | | |MC/kc | | | | | | |GUI/; | Alt/" | |----------+------+------+------+------+------|------+------+------+------+------+--------| | | | | | | | | | | | |Sft/Ent | |----------+------+------+------+------+------+------+------+------+------+------+--------| From 8fab141a024fd55a28366958716f4be1a10f9c03 Mon Sep 17 00:00:00 2001 From: di0ib Date: Sun, 7 Aug 2016 20:58:59 -1000 Subject: [PATCH 17/34] Convert hex to bin For flashing via alternative methods like LUFA MassStorage bootloader. --- tmk_core/avr.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 6c03e1650e..b48173341a 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -138,6 +138,11 @@ else endif dfu-programmer $(MCU) reset +# Convert hex to bin. +flashbin: $(BUILD_DIR)/$(TARGET).hex + $(OBJCOPY) -Iihex -Obinary $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin + $(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin; + $(COPY) $(BUILD_DIR)/$(TARGET).bin FLASH.bin; # Generate avr-gdb config/init file which does the following: # define the reset signal, load the target file, connect to target, and set From f41c2e6863f2ebf55311051cdead743683846a49 Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Mon, 8 Aug 2016 17:53:08 +0200 Subject: [PATCH 18/34] Update TMK_README.md updated link to non-existent build.md file --- doc/TMK_README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/TMK_README.md b/doc/TMK_README.md index f3d96717a8..0c75a0e279 100644 --- a/doc/TMK_README.md +++ b/doc/TMK_README.md @@ -113,7 +113,7 @@ Third party libraries like LUFA, PJRC and V-USB have their own license respectiv Build Firmware and Program Controller ------------------------------------- -See [doc/build.md](tmk_core/doc/build.md), or the readme in the particular keyboards/* folder. +See [doc/BUILD_GUIDE.md](tmk_core/doc/BUILD_GUIDE.md), or the readme in the particular keyboards/* folder. From 76cd7c5444471c7fbf0f648088cac13f4c79af57 Mon Sep 17 00:00:00 2001 From: Corey Finley Date: Fri, 5 Aug 2016 09:08:55 -0400 Subject: [PATCH 19/34] Adds keymap based on Kinesis advantage --- keyboards/preonic/keymaps/kinesis/Makefile | 27 ++++ keyboards/preonic/keymaps/kinesis/config.h | 92 +++++++++++++ keyboards/preonic/keymaps/kinesis/keymap.c | 144 ++++++++++++++++++++ keyboards/preonic/keymaps/kinesis/readme.md | 1 + 4 files changed, 264 insertions(+) create mode 100644 keyboards/preonic/keymaps/kinesis/Makefile create mode 100644 keyboards/preonic/keymaps/kinesis/config.h create mode 100644 keyboards/preonic/keymaps/kinesis/keymap.c create mode 100644 keyboards/preonic/keymaps/kinesis/readme.md diff --git a/keyboards/preonic/keymaps/kinesis/Makefile b/keyboards/preonic/keymaps/kinesis/Makefile new file mode 100644 index 0000000000..6c8d2897cd --- /dev/null +++ b/keyboards/preonic/keymaps/kinesis/Makefile @@ -0,0 +1,27 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +TAP_DANCE_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/preonic/keymaps/kinesis/config.h b/keyboards/preonic/keymaps/kinesis/config.h new file mode 100644 index 0000000000..086baa84ff --- /dev/null +++ b/keyboards/preonic/keymaps/kinesis/config.h @@ -0,0 +1,92 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6061 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Preonic Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 12 + +/* Planck PCB default pin-out */ +#define MATRIX_ROW_PINS { D2, D5, B5, B6, D3 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define UNUSED_PINS + +#define BACKLIGHT_PIN B7 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D1 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +#define TAPPING_TERM 200 + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/preonic/keymaps/kinesis/keymap.c b/keyboards/preonic/keymaps/kinesis/keymap.c new file mode 100644 index 0000000000..1cd6eb9938 --- /dev/null +++ b/keyboards/preonic/keymaps/kinesis/keymap.c @@ -0,0 +1,144 @@ +#include "preonic.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef AUDIO_ENABLE +#include "audio.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _FN 1 +#define _ULCK 2 + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define HYP_TIC ALL_T(KC_GRV) +#define EQ_LOCK TD(TD_EQ_LOCK) +#define MIN_ULK TD(TD_MIN_ULOCK) + +//Tap Dance Declarations +enum { + TD_EQ_LOCK = 0, + TD_MIN_ULOCK +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | \ | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | FN | ` | Alt | LGUI | Back | ESC |ENTER | SPCE | RGUI | [ | ] | FN | + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = { + {EQ_LOCK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, MIN_ULK }, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS }, + {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, + {KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC }, + {MO(_FN), HYP_TIC, KC_LALT, KC_LGUI, KC_BSPC, KC_ESC, KC_ENT, KC_SPC, KC_RGUI, KC_LBRC, KC_RBRC, MO(_FN) } + }, + + /* Fn + * ,-----------------------------------------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | VOL- | VOL+ | MUTE |BLtogg| | LEFT | DOWN | UP | RGHT | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | BL- | BL+ |Aud on|AudOff|AGnorm|AGswap| | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|MusOff| | |PLY/PS| | PREV | NEXT | | + * `-----------------------------------------------------------------------------------' + */ + [_FN] = { + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______ }, + {_______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______ }, + {_______, KC_VOLD, KC_VOLU, KC_MUTE, BL_TOGG, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______ }, + {_______, BL_DEC, BL_INC, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______ }, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, KC_MPLY, _______, KC_MPRV, KC_MNXT, _______ } + } + +}; + +float tone_startup[][2] = { + {NOTE_B5, 20}, + {NOTE_B6, 8}, + {NOTE_DS6, 20}, + {NOTE_B6, 8} +}; + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +/*bool process_record_user(uint16_t keycode, keyrecord_t *record) {*/ + /*return true;*/ + /*[>switch (keycode) {<]*/ + /*[>case QWERTY:<]*/ + /*[>return true;<]*/ + /*[>}<]*/ +/*};*/ + +void matrix_init_user(void) { + startup_user(); +} + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + + +const qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for equal, twice for hyper + X (alfred lock) + [TD_EQ_LOCK] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, HYPR(KC_X)), + //Tap once for minus, twice for time.heals.nothing + [TD_MIN_ULOCK] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, M(_ULCK)) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _ULCK: + if (record->event.pressed) { + /* time.heals.nothing */ + return MACRO( I(220), T(T), T(I), T(M), T(E), T(DOT), T(H), T(E), T(A), T(L), T(S), T(DOT), T(N), T(O), T(T), T(H), T(I), T(N), T(G), END); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/preonic/keymaps/kinesis/readme.md b/keyboards/preonic/keymaps/kinesis/readme.md new file mode 100644 index 0000000000..e911968dd9 --- /dev/null +++ b/keyboards/preonic/keymaps/kinesis/readme.md @@ -0,0 +1 @@ +# The default Preonic layout - largely based on the Planck's \ No newline at end of file From e85bf50e1acb9d5d3117e8b57ab6178eba00debb Mon Sep 17 00:00:00 2001 From: skullY Date: Mon, 8 Aug 2016 13:43:24 -0700 Subject: [PATCH 20/34] Clueboard: Add some readme.md files and do some minor cleanup. --- keyboards/clueboard/Makefile | 2 +- keyboards/clueboard/config.h | 3 - keyboards/clueboard/keymaps/default/keymap.c | 8 -- keyboards/clueboard/keymaps/skully/readme.md | 5 ++ keyboards/clueboard/readme.md | 95 +++++++++++++++++++- keyboards/clueboard/rev2/config.h | 2 +- 6 files changed, 101 insertions(+), 14 deletions(-) create mode 100644 keyboards/clueboard/keymaps/skully/readme.md diff --git a/keyboards/clueboard/Makefile b/keyboards/clueboard/Makefile index ccc01ea9a7..e6b13f955a 100644 --- a/keyboards/clueboard/Makefile +++ b/keyboards/clueboard/Makefile @@ -90,7 +90,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options -# comment out to disable the options. +# change to no to disable the options. # BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) diff --git a/keyboards/clueboard/config.h b/keyboards/clueboard/config.h index ceac80795b..ad68323856 100644 --- a/keyboards/clueboard/config.h +++ b/keyboards/clueboard/config.h @@ -29,9 +29,6 @@ along with this program. If not, see . /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 diff --git a/keyboards/clueboard/keymaps/default/keymap.c b/keyboards/clueboard/keymaps/default/keymap.c index 896bc7ebcc..01f158bf0f 100644 --- a/keyboards/clueboard/keymaps/default/keymap.c +++ b/keyboards/clueboard/keymaps/default/keymap.c @@ -66,19 +66,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------------------------' */ [_RS] = KEYMAP( - #ifdef RGBLIGHT_ENABLE KC_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, RGB_TOG, RGB_VAI, \ KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, \ KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), RGB_SAI, \ KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI), - #else - KC_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,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, MO(_RS),KC_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, MO(_FL), KC_TRNS, KC_TRNS, KC_TRNS), - #endif }; enum function_id { diff --git a/keyboards/clueboard/keymaps/skully/readme.md b/keyboards/clueboard/keymaps/skully/readme.md new file mode 100644 index 0000000000..20ac1e4f83 --- /dev/null +++ b/keyboards/clueboard/keymaps/skully/readme.md @@ -0,0 +1,5 @@ +# The Maximized Clueboard Layout + +This layout is what I (@skullydazed) use on my personal Clueboards. I mostly use it for programming, CAD, and general typing. + +The most notable change from the default layout is putting Ctrl on the Capslock key. I also swap Alt and Cmd because I mostly use a Mac day to day. diff --git a/keyboards/clueboard/readme.md b/keyboards/clueboard/readme.md index aa301f020c..6c29c09eca 100644 --- a/keyboards/clueboard/readme.md +++ b/keyboards/clueboard/readme.md @@ -1,4 +1,97 @@ Clueboard keyboard firmware ====================== -TODO: to be updated. +DIY/Assembled compact 66% keyboard by [Clueboard](http://clueboard.co). + +For the full Quantum Mechanical Keyboard feature list, see [the parent readme.md](/readme.md). + +## First Time Setup + +Download or clone the whole firmware and navigate to the keyboards/clueboard directory. Once your dev env is setup, you'll be able to generate the default .hex: + +``` +$ make +``` + +You will see a lot of output and if everything worked correctly you will see something similar to this: + +``` +Size after: + text data bss dec hex filename + 0 19992 0 19992 4e18 clueboard_rev2_default.hex +``` + +At this point you can press RESET on your Clueboard and flash your keyboard with this command: + +``` +$ make dfu +``` + +If you would like to use one of the alternative keymaps, or create your own, see below. + +## Clueboard 1.0 + +If you have a first generation Clueboard (one with a black PCB) you will need to use the revision 1 code. To do so add `SUBPROJECT=rev1` to your make command, like this: + +``` +$ make SUBPROJECT=rev1 +``` + +And when flashing your keyboard: + +``` +$ make SUBPROJECT=rev1 dfu +``` + +If you are flashing an alternative layout to your rev1, include both `SUBPROJECT=rev1` and `KEYMAP=` in your command, for example when flashing max: + +``` +$ make SUBPROJECT=rev1 KEYMAP=max dfu +``` + +## Alternate Keymaps + +There are many alternative and user-contributed layouts available in the [keymaps/](keymaps/) directory. To compile and flash an alternative you will want to add `KEYMAP=` to your command: + +``` +$ make KEYMAP=skully +``` + +And when flashing your keyboard, put `KEYMAP=` between "make" and "dfu": + +``` +$ make KEYMAP=skully dfu +``` + +### Notable Layouts + +These layouts are notable for one reason or another. If you are looking for ideas or inspiration you should look at these first: + +* [keymaps/default](keymaps/default) - The default Clueboard layout +* [keymaps/max](keymaps/max) - A maximised layout that makes use of every key and feature of the Clueboard 2.0 PCB. +* [keymaps/skully](keymaps/skully) - The layout that @skullydazed uses on his own Clueboards. + +## Create Your Own Keymap + +There are a lot of possibilities when creating your own keymap, and the primary documentation for doing that is [Customizing Your Keymap](/readme.md##customizing-your-keymap) in the main readme.md. As a way to get started, here is the procedure I recommend: + +* Copy `[keymaps/default](keymaps/default/)` to `keymaps/`. +* Compile the firmware (`$ make KEYMAP=`) +* Flash the firmware (`$ make KEYMAP= dfu`) +* Make sure everything works like the default keyboard +* Modify `keymaps//readme.md` to tell others about your layout. +* Modify `keymaps//keymap.c` to reflect your desired layout. +* Compile your new custom firmware (`$ make KEYMAP=`) +** If you have warnings you may flash without fixing them, but something may not work right. +** If you have any errors you must fix them before continuing. +* Flash the firmware (`$ make KEYMAP= dfu`) + +## Share Your Keymap + +Got your layout dialed in? Please share it with the world so we can benefit from your work! Simply submit a pull request with your layout and we'll include it in the official repository. Please use the following guidelines when putting together your pull request: + +* Include a readme.md that states what your primary keyboard use is, how your layout differs from the default, and highlights anything you think makes your layout particularly great. +* If your layout requires certain features (EG, RGB underlight or backlighting) ensure you have a Makefile and config.h that reflects that +* If your layout requires special hardware to be added, please describe that in the readme.md + +TODO: Write up or link quick how-to on creating and submitting a PR. (Pull requests accepted. :) diff --git a/keyboards/clueboard/rev2/config.h b/keyboards/clueboard/rev2/config.h index 02982ff299..15ca4ece86 100644 --- a/keyboards/clueboard/rev2/config.h +++ b/keyboards/clueboard/rev2/config.h @@ -36,4 +36,4 @@ #define RGBLIGHT_SAT_STEP 17 #define RGBLIGHT_VAL_STEP 17 -#endif \ No newline at end of file +#endif From d561f63bd14b8ea2e6d8b26a1ba46a1e8503c5bd Mon Sep 17 00:00:00 2001 From: skullY Date: Mon, 8 Aug 2016 13:46:55 -0700 Subject: [PATCH 21/34] Clueboard: Fix the title in keymaps/skully/readme.md --- keyboards/clueboard/keymaps/skully/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/clueboard/keymaps/skully/readme.md b/keyboards/clueboard/keymaps/skully/readme.md index 20ac1e4f83..c1182123d9 100644 --- a/keyboards/clueboard/keymaps/skully/readme.md +++ b/keyboards/clueboard/keymaps/skully/readme.md @@ -1,4 +1,4 @@ -# The Maximized Clueboard Layout +# skullY's Clueboard Layout This layout is what I (@skullydazed) use on my personal Clueboards. I mostly use it for programming, CAD, and general typing. From adad05c3fbd511e77a77484945fa2f675d6abf8b Mon Sep 17 00:00:00 2001 From: skullY Date: Mon, 8 Aug 2016 16:11:54 -0700 Subject: [PATCH 22/34] Add support for the cluecard --- keyboards/cluecard/Makefile | 76 +++++++++ keyboards/cluecard/cluecard.c | 98 +++++++++++ keyboards/cluecard/cluecard.h | 22 +++ keyboards/cluecard/config.h | 167 +++++++++++++++++++ keyboards/cluecard/keymaps/default/Makefile | 21 +++ keyboards/cluecard/keymaps/default/config.h | 8 + keyboards/cluecard/keymaps/default/keymap.c | 63 +++++++ keyboards/cluecard/keymaps/default/readme.md | 1 + keyboards/cluecard/readme.md | 28 ++++ 9 files changed, 484 insertions(+) create mode 100644 keyboards/cluecard/Makefile create mode 100644 keyboards/cluecard/cluecard.c create mode 100644 keyboards/cluecard/cluecard.h create mode 100644 keyboards/cluecard/config.h create mode 100644 keyboards/cluecard/keymaps/default/Makefile create mode 100644 keyboards/cluecard/keymaps/default/config.h create mode 100644 keyboards/cluecard/keymaps/default/keymap.c create mode 100644 keyboards/cluecard/keymaps/default/readme.md create mode 100644 keyboards/cluecard/readme.md diff --git a/keyboards/cluecard/Makefile b/keyboards/cluecard/Makefile new file mode 100644 index 0000000000..029d0b9670 --- /dev/null +++ b/keyboards/cluecard/Makefile @@ -0,0 +1,76 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= yes # Audio output on port C6 + +ifndef QUANTUM_DIR + include ../../Makefile +endif + + diff --git a/keyboards/cluecard/cluecard.c b/keyboards/cluecard/cluecard.c new file mode 100644 index 0000000000..81db252d28 --- /dev/null +++ b/keyboards/cluecard/cluecard.c @@ -0,0 +1,98 @@ +#include "cluecard.h" +#define BL_RED OCR1B +#define BL_GREEN OCR1A +#define BL_BLUE OCR1C + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} + +void backlight_init_ports(void) +{ + // Set B5, B6, and B7 as output + DDRB |= (1<<7)|(1<<6)|(1<<5); + + // Setup PWM + ICR1 = 0xFFFF; + TCCR1A = 0b10101010; + TCCR1B = 0b00011001; + + BL_RED = 0xFFFF; + BL_GREEN = 0xFFFF; + BL_BLUE = 0xFFFF; +} + +void backlight_set(uint8_t level) +{ + // Set the RGB color + switch (level) + { + case 0: + // Off + BL_RED = 0xFFFF; + BL_GREEN = 0xFFFF; + BL_BLUE = 0xFFFF; + break; + case 1: + // Red + BL_RED = 0x0000; + BL_GREEN = 0xFFFF; + BL_BLUE = 0xFFFF; + break; + case 2: + // Green + BL_RED = 0xFFFF; + BL_GREEN = 0x0000; + BL_BLUE = 0xFFFF; + break; + case 3: + // Blue + BL_RED = 0xFFFF; + BL_GREEN = 0xFFFF; + BL_BLUE = 0x0000; + break; + case 4: + // Magenta + BL_RED = 0x4000; + BL_GREEN = 0x4000; + BL_BLUE = 0x4000; + break; + case 5: + // Purple + BL_RED = 0x0000; + BL_GREEN = 0xFFFF; + BL_BLUE = 0x0000; + break; + case 6: + // Yellow + BL_RED = 0x0000; + BL_GREEN = 0x0000; + BL_BLUE = 0xFFFF; + break; + default: + xprintf("Unknown level: %d\n", level); + } +} diff --git a/keyboards/cluecard/cluecard.h b/keyboards/cluecard/cluecard.h new file mode 100644 index 0000000000..3342a08233 --- /dev/null +++ b/keyboards/cluecard/cluecard.h @@ -0,0 +1,22 @@ +#ifndef CLUECARD_H +#define CLUECARD_H + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, \ + k10, k12, \ + k20, k21, k22, \ + k11, \ + k30, k31, k32 \ +) { \ + { k00, k01, k02, }, \ + { k10, k11, k12, }, \ + { k20, k21, k22, }, \ + { k30, k31, k32, } \ +} + +#endif diff --git a/keyboards/cluecard/config.h b/keyboards/cluecard/config.h new file mode 100644 index 0000000000..765347b131 --- /dev/null +++ b/keyboards/cluecard/config.h @@ -0,0 +1,167 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xC1ED +#define PRODUCT_ID 0x2330 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Clueboard +#define PRODUCT ATMEGA32U4 Firmware Dev Kit +#define DESCRIPTION A small board to help you hack on QMK. + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 3 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F0, F5, F4, B4 } +#define MATRIX_COL_PINS { F1, F7, F6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 20 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 6 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* Underlight configuration + */ +#define RGB_DI_PIN E6 +//#define RGBLIGHT_TIMER +#define RGBLED_NUM 4 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/cluecard/keymaps/default/Makefile b/keyboards/cluecard/keymaps/default/Makefile new file mode 100644 index 0000000000..8ee841da02 --- /dev/null +++ b/keyboards/cluecard/keymaps/default/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/cluecard/keymaps/default/config.h b/keyboards/cluecard/keymaps/default/config.h new file mode 100644 index 0000000000..8893d122e0 --- /dev/null +++ b/keyboards/cluecard/keymaps/default/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif diff --git a/keyboards/cluecard/keymaps/default/keymap.c b/keyboards/cluecard/keymaps/default/keymap.c new file mode 100644 index 0000000000..517afe867b --- /dev/null +++ b/keyboards/cluecard/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +#include "cluecard.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP( + RGB_TOG, RGB_SAI, RGB_VAI, \ + RGB_HUD, RGB_HUI, \ + RGB_MOD, RGB_SAD, RGB_VAD, \ + BL_STEP, \ + F(0), F(1), F(2) \ + ) +}; + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(0), + [1] = ACTION_FUNCTION(1), + [2] = ACTION_FUNCTION(2) +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + if (record->event.pressed) { + switch (id) { + case 0: + PLAY_NOTE_ARRAY(tone_startup, false, 0); + break; + case 1: + PLAY_NOTE_ARRAY(music_scale, false, 0); + break; + case 2: + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + break; + } + } +}; + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { +} diff --git a/keyboards/cluecard/keymaps/default/readme.md b/keyboards/cluecard/keymaps/default/readme.md new file mode 100644 index 0000000000..9e3b97beac --- /dev/null +++ b/keyboards/cluecard/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for cluecard diff --git a/keyboards/cluecard/readme.md b/keyboards/cluecard/readme.md new file mode 100644 index 0000000000..ae1afbbfdd --- /dev/null +++ b/keyboards/cluecard/readme.md @@ -0,0 +1,28 @@ +cluecard keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/cluecard folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default + +To build with the default keymap, simply run `make`. + +### Other Keymaps + +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `keymap` option like: + +``` +$ make keymap=[default|jack|] +``` + +Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` From ca3278cc356038ecdaf96fe12025b43c18692976 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Tue, 9 Aug 2016 09:31:56 -0700 Subject: [PATCH 23/34] adds Xyverz's keymaps (#615) * Adding my own keymaps to the following keyboards: Planck, Preonic, Atreus, Ergodox * Delete dvorak.png Not reflective of my layout. * Delete readme.md file cleanup, removing file that doesn't apply to my layout. * Delete old_keymap.c file cleanup * Delete README.md file clean up. * Delete README.md file cleanup * Delete keymap.c file cleanup * Changed behavior of _DVORAK layout's KC_RSFT to SFT_T(KC_ENT) for flexibility's sake. Updated the rest of the keymap to reflect the current (as of 19:37 on 08 Aug 2018) default layout and default makefile. --- keyboards/atreus/keymaps/xyverz/keymap.c | 89 +++++ keyboards/planck/keymaps/xyverz/keymap.c | 314 +++++++++++++++++ keyboards/planck/keymaps/xyverz/makefile.mk | 25 ++ keyboards/preonic/keymaps/xyverz/keymap.c | 342 +++++++++++++++++++ keyboards/preonic/keymaps/xyverz/makefile.mk | 1 + 5 files changed, 771 insertions(+) create mode 100644 keyboards/atreus/keymaps/xyverz/keymap.c create mode 100644 keyboards/planck/keymaps/xyverz/keymap.c create mode 100644 keyboards/planck/keymaps/xyverz/makefile.mk create mode 100644 keyboards/preonic/keymaps/xyverz/keymap.c create mode 100644 keyboards/preonic/keymaps/xyverz/makefile.mk diff --git a/keyboards/atreus/keymaps/xyverz/keymap.c b/keyboards/atreus/keymaps/xyverz/keymap.c new file mode 100644 index 0000000000..447fbcf10f --- /dev/null +++ b/keyboards/atreus/keymaps/xyverz/keymap.c @@ -0,0 +1,89 @@ +// This is the personal keymap of Ian Sterling (@xyverz). It is based on the keymap by +// Chris Gerber (@gerbercj), with the addition of persistent layers like the Planck and +// Preonic keyboards by Jack Humbert. + +#include "atreus.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _DV 0 +#define _QW 1 +#define _CM 2 +#define _L1 3 +#define _L2 4 + +// Macro name shortcuts +#define DVORAK M(_DV) +#define QWERTY M(_QW) +#define COLEMAK M(_CM) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_DV] = { /* Dvorak */ + {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L }, + {KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S }, + {SFT_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, CTL_T(KC_DEL), KC_B, KC_M, KC_W, KC_V, SFT_T(KC_Z) }, + {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_EQL} + }, + [_QW] = { /* Qwerty */ + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P }, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, + {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_DEL), KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, + {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT} + }, + [_CM] = { /* Colemak */ + {KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, + {KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O }, + {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_DEL), KC_K, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, + {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT} + }, + [_L1] = { /* LAYER 1 */ + {KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0 }, + {KC_TAB, KC_INS, KC_UP, KC_DEL, KC_HOME, KC_NO, KC_PGUP, KC_MUTE, KC_VOLD, KC_VOLU, KC_EQL }, + {KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_LCTL, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, KC_BSLS}, + {KC_TRNS, KC_GRV, KC_LGUI, KC_TRNS, KC_DEL, KC_LALT, KC_SPC, KC_TRNS, KC_LBRC, KC_RBRC, KC_ENT } + }, + [_L2] = { /* LAYER 2 */ + {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_NO, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 }, + {KC_TRNS, KC_TRNS, DVORAK, QWERTY, COLEMAK, KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_F11, KC_F12 }, + {KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS, KC_BSPC, KC_LALT, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, RESET } + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _DV: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_DV); + } + break; + case _QW: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_QW); + } + break; + case _CM: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_CM); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/planck/keymaps/xyverz/keymap.c b/keyboards/planck/keymaps/xyverz/keymap.c new file mode 100644 index 0000000000..90529428da --- /dev/null +++ b/keyboards/planck/keymaps/xyverz/keymap.c @@ -0,0 +1,314 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _PLOVER 5 +#define _ADJUST 16 + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, + LOWER, + RAISE, + BACKLIT, + EXT_PLV +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | / | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | - | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT)}, + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | Mute | Vol- | Vol+ | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______}, + {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, + {BACKLIT, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | Prev | Play | Next | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______}, + {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______}, + {BACKLIT, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |TogOut| S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + return false; + break; + case PLOVER: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif + layer_off(_PLOVER); + } + return false; + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + +#endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/xyverz/makefile.mk b/keyboards/planck/keymaps/xyverz/makefile.mk new file mode 100644 index 0000000000..0f4953888d --- /dev/null +++ b/keyboards/planck/keymaps/xyverz/makefile.mk @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/preonic/keymaps/xyverz/keymap.c b/keyboards/preonic/keymaps/xyverz/keymap.c new file mode 100644 index 0000000000..adc7392e5c --- /dev/null +++ b/keyboards/preonic/keymaps/xyverz/keymap.c @@ -0,0 +1,342 @@ +#include "preonic.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _MUSIC 5 +#define _ADJUST 16 + +// Macro name shortcuts +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) +#define M_BL 5 +#define AUD_OFF M(6) +#define AUD_ON M(7) +#define MUS_OFF M(8) +#define MUS_ON M(9) +#define VC_IN M(10) +#define VC_DE M(11) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | - | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | Left |Right |Lower | Space |Raise | Up | Down | GUI |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, + {KC_MINS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_SPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | / | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | - | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | Left |Right |Lower | Space |Raise | Up | Down | GUI |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT}, + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_SPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | Mute | Vol- | Vol+ | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| | Home | End | | Ins | | PgUp | PgDN | |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, + {M(M_BL), _______, KC_HOME, KC_END, _______, KC_INS, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | Prev | Play | Next | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| | Home | End | | Ins | | PgUp | PgDN | |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______}, + {M(M_BL), _______, KC_HOME, KC_END, _______, KC_INS, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} +}, + +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Musoff|Mus on| | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +#ifdef AUDIO_ENABLE +float start_up[][2] = { + {440.0*pow(2.0,(14)/12.0), 20}, + {440.0*pow(2.0,(26)/12.0), 8}, + {440.0*pow(2.0,(18)/12.0), 20}, + {440.0*pow(2.0,(26)/12.0), 8} +}; + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); + +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +float goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + break; + case _COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + break; + case _DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + break; + case _LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case _RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case M_BL: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + case 6: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + case 7: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_on(); + PLAY_NOTE_ARRAY(start_up, false, 0); + #endif + } + break; + case 8: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + layer_off(_MUSIC); + stop_all_notes(); + #endif + } + break; + case 9: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(music_scale, false, 0); + layer_on(_MUSIC); + #endif + } + break; + case 10: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + case 11: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(start_up, false, 0); + #endif +} + +#ifdef AUDIO_ENABLE + +uint8_t starting_note = 0x0C; +int offset = 7; + +void process_action_user(keyrecord_t *record) { + + if (IS_LAYER_ON(_MUSIC)) { + if (record->event.pressed) { + play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + } else { + stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + } + } + +} + +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); +} + +#endif \ No newline at end of file diff --git a/keyboards/preonic/keymaps/xyverz/makefile.mk b/keyboards/preonic/keymaps/xyverz/makefile.mk new file mode 100644 index 0000000000..628167ff66 --- /dev/null +++ b/keyboards/preonic/keymaps/xyverz/makefile.mk @@ -0,0 +1 @@ +AUDIO_ENABLE = yes \ No newline at end of file From 2a160bbbe3ad496dd688f4399ab2b8d127c0b8a7 Mon Sep 17 00:00:00 2001 From: Callum Oakley Date: Tue, 9 Aug 2016 17:33:07 +0100 Subject: [PATCH 24/34] Update keymap. (#616) * changed order of bottom row of symbol layer to ease acess to brackets * updated readme.md to reflect keymap changes --- keyboards/planck/keymaps/callum/keymap.c | 4 ++-- keyboards/planck/keymaps/callum/readme.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/planck/keymaps/callum/keymap.c b/keyboards/planck/keymaps/callum/keymap.c index a747dcb159..ed187df1da 100644 --- a/keyboards/planck/keymaps/callum/keymap.c +++ b/keyboards/planck/keymaps/callum/keymap.c @@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------------------------------. * | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | ~ | | | + | [ | { | } | ] | = | \ | ` | | + * | | ~ | ` | + | = | | | \ | [ | ] | { | } | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -79,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_SYMB] = { {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ESC }, {KC_DEL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, - {_______, KC_TILD, KC_PIPE, KC_PLUS, KC_LBRC, KC_LCBR, KC_RCBR, KC_RBRC, KC_EQL, KC_BSLS, KC_GRV, _______}, + {_______, KC_TILD, KC_GRV, KC_PLUS, KC_EQL, KC_PIPE, KC_BSLS, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, diff --git a/keyboards/planck/keymaps/callum/readme.md b/keyboards/planck/keymaps/callum/readme.md index d4f3449f15..030def7f77 100644 --- a/keyboards/planck/keymaps/callum/readme.md +++ b/keyboards/planck/keymaps/callum/readme.md @@ -31,9 +31,9 @@ On *macOS* I recommend using [Karabiner](https://pqrs.org/osx/karabiner/) and ti None of the modifiers are overwritten so that `shift-alt-arrows` etc work as expected. ## The `SYMB` layer -![](http://i.imgur.com/iuU144Y.png) +![](http://i.imgur.com/thh1ne2.png) -The symbol layer has all the numbers and their usual corresponding symbols in the first two rows, with the symbols on the home row since I use them more frequently than the numbers. The third row contains all the remaining symbols, with brackets in the centre; then normally shifted symbols to the left, and non shifted to the right, in order of most to least used. +The symbol layer has all the numbers and their usual corresponding symbols in the first two rows, with the symbols on the home row since I use them more frequently than the numbers. The third row contains all the remaining symbols, arranged roughly so that the most used symbols are accessible with the strongest fingers. `esc` and `del` are repeated here since I wanted to be able to reach either, one handed, with either hand. From 6975135f545d08955ed26ef046a0333e291af716 Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Wed, 10 Aug 2016 11:40:51 +0200 Subject: [PATCH 25/34] updated reference Build setup links to main readme now. --- doc/TMK_README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/TMK_README.md b/doc/TMK_README.md index 0c75a0e279..e3438eda2b 100644 --- a/doc/TMK_README.md +++ b/doc/TMK_README.md @@ -113,7 +113,7 @@ Third party libraries like LUFA, PJRC and V-USB have their own license respectiv Build Firmware and Program Controller ------------------------------------- -See [doc/BUILD_GUIDE.md](tmk_core/doc/BUILD_GUIDE.md), or the readme in the particular keyboards/* folder. +See [build environment setup](/readme.md#build-environment-setup), or the readme in the particular keyboards/* folder. From a41a53baadf14b50d63fc9424aca67e7bde193f3 Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 11 Aug 2016 09:13:38 +0200 Subject: [PATCH 26/34] Fix dead link in keycode.txt The link to the HID Usage tables was outdated and dead, so I replaced it. --- doc/keycode.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/keycode.txt b/doc/keycode.txt index c1134f9bf2..5a42c50bfb 100644 --- a/doc/keycode.txt +++ b/doc/keycode.txt @@ -2,7 +2,7 @@ Keycode Symbol Table ==================== Keycodes are defined in `common/keycode.h`. Range of 00-A4 and E0-E7 are identical with HID Usage: - + Virtual keycodes are defined out of above range to support special actions. From 56f86413e0d7606030cad68257a5d6287c9fd35f Mon Sep 17 00:00:00 2001 From: Elliot DeNolf Date: Thu, 11 Aug 2016 09:54:02 -0600 Subject: [PATCH 27/34] Add denolfe satan keymap --- keyboards/satan/keymaps/denolfe/Makefile | 20 ++ keyboards/satan/keymaps/denolfe/README.md | 12 ++ .../satan/keymaps/denolfe/keyboard-layout.png | Bin 0 -> 31762 bytes keyboards/satan/keymaps/denolfe/keymap.c | 171 ++++++++++++++++++ 4 files changed, 203 insertions(+) create mode 100644 keyboards/satan/keymaps/denolfe/Makefile create mode 100644 keyboards/satan/keymaps/denolfe/README.md create mode 100644 keyboards/satan/keymaps/denolfe/keyboard-layout.png create mode 100644 keyboards/satan/keymaps/denolfe/keymap.c diff --git a/keyboards/satan/keymaps/denolfe/Makefile b/keyboards/satan/keymaps/denolfe/Makefile new file mode 100644 index 0000000000..c4adab737c --- /dev/null +++ b/keyboards/satan/keymaps/denolfe/Makefile @@ -0,0 +1,20 @@ + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150) +MIDI_ENABLE ?= no # MIDI controls +AUDIO_ENABLE ?= no +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/satan/keymaps/denolfe/README.md b/keyboards/satan/keymaps/denolfe/README.md new file mode 100644 index 0000000000..30b94fcdd2 --- /dev/null +++ b/keyboards/satan/keymaps/denolfe/README.md @@ -0,0 +1,12 @@ +# denolfe's Layout +Customized Satan keymap + +![Layout](keyboard-layout.png "Practical Keymap") + +## Programming Instructions: +`cd` into keymap directory, `make dfu` + +## Features +- Movement keys with CapsLock + h, j, k, l +- Media Keys +- Backlight control diff --git a/keyboards/satan/keymaps/denolfe/keyboard-layout.png b/keyboards/satan/keymaps/denolfe/keyboard-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d6ad57fb5b180334aefc429430fa867258cd6a GIT binary patch literal 31762 zcmeAS@N?(olHy`uVBq!ia0y~yV76mmU{vB@V_;yga9|f?U{GN2ba4!+hA%hH{}16yH~yT>zlpTH($S1{oM1=^0^ z{fdPlD}#bIrJOv$akMRn`3i%n18)ElHDN{L{{R1?|NZ&we{*NCdR@%EtgEZ`TOCPH ze|c%C=*x%BD5}AF9b`-xK5fpuZMHIMYgSxbU0vPzpru~60o!tJTAXl`M0FdOcVlVe z{kq@2+w$+%mEOCxHM@M8W^mifTo!gT$2jmF@niO={{6V$o<(r}+^46f_s?w*>A>*t z3dW2F)8p$DKPrlV%|{Lpg?my8A3L|#YRY05Zt%#N2ifls-{@sD2+oh$V3fK9Em(_U znCEqzKQq(#=|y+>sjS>$EIlX}_@isnq3`nflgmC#?(JBK|hDnXSWF zdd-73ZZ~s3=uIh#2&TqG}mqu^TTlII!X+Psjac|cyY5Vv z376S*-C@f;pY-)UK`E{^0)j8Eub=NT%f$24RPE_2b5_^)d-vShmaCn7tY@O{Y_mYU z)oWFqsw49jEO~Y@Zp(CDDFwdV4NbqzF2ubnO+7q&%XHqb1Zknd8FNlf^|Fo>oX@Sl zCqQrSm!Ql$I|>^&{rmY`zEtr-eEnb5AKQKXHzplT>9_qhVN>d9v8-!zEQ_D~d_F(i zetAq;MDMqx|C<;)k0=&;$gnME{HFhH{eufn_dVJ1=)zvMMPHXmSD&3>sJu8JQgA+( zsMd+w`TJuvZf#CIEp~HX?e1H~!Fwt`_DpU2d8kj;`byjqAyqFCC3}v^u_YH>S6NQc z_F27TeK$cHa_{UgTpSQ7Jb$V8bTKUvQPZp|C#)_#HW4{B%es7B!wyyZ(%08Q?H9#J zZWOx3y(Qc+baQJ7!S*8yC7+0{nFRRGHzmh?v-xpUmt+136!p}Blcl2gl+(qB`x zH(n@xeeI-jzm3xRz29b8{p8!0b$8d+E!o%gR5N*kIIW%>I(48!P2 zvHrNdRV%Mtk+1&~_;*eD`+GtAYJT>-z3{gwe&+?bmaEm@-e}rZeVHKaZxdK9Y&&(i zv)+w2o$B)@9BgJkZTWo8;$OEI*<~KAwB2QQNm2aRuj6vnK67KDmib7=`hE`WLC-&0@ze!qWu`n*cFxff<-$**5mmKNO?zjM=C{Wae;!?PC6 zI`#gmwfSLoX}g*ock2KD)!aPw(59WeUn9J09=QoT@~JUUOme<)V`K8v=CWIv%U61` z@JZL%rJfS0e9*}LWX0k>uC@FxBoYdv#LK&{=M;Zd3|kd(5ev4%&V)W%G7?j=$7jAwC<^scM5{!O1RK1urI?ws;X_(oiJoTO+eyyuIdN{w(|YeNjukIGysWx%9o^grNMK ze{Ag4e|~%n+EtSIltW=r!(sM)|9)jln&r&c^Xt{>EP-a@=~}jDPd7Z+e)!nT9|s!S zHg`_F9rE2MvHnW&dE4b-CExE==j*>Z|4Z8bo0oX0i*m#6X}ZyAcjaQ`e@x`gjo4GM zQ7XXk!2_T8+OJo4&3d+4Mz*L?A>q*stI}0j+#D7KH@D}+g$ru;Adtbx~Va>BqkQabx}73vH_2(^gz9>)}?o-ysoS|M#oatmiv<_7^F3v05uy z^&FK;(K@iw?C+1M+}+U~E0PQq^CY?N*M6THC2DTzr}Fsl`n^7nbz}eTdU8mnmsR*j z#maAS?YjHpcLx1z?>xfVUH5oithDZj`7h;pA^Y@Cl_=SL*zMLUrOGZ} zv*A;(eBFzL4(n>G5?t z!{*=V?^SlMF^Ke=ZRXo3cRW7%>#pMG=ZbD5wx2v}eqZPLyy|r^1qWF_z1e(T%iu-S zLVl(jbv(;oNAE9Elznr~`hCb`MZOgk4_n2jEZ+A2-|y3+;W3KyYd&>u;7c_42R;GUqfY%VkFSr(u>a8h@%B%1 zF~3FgUa_SoKRVL+>J;0WYh`b5g?dfX$-EV_PuZ^H*uj%7E?a|^dL4UOD7ApOy;JjS z;#vQhA}gHN`IOH1u~%>BBfpwC9sC{4zhwLb+T>e5Zb~~lE6eZ4kH`I@8yV|@f9~6n z#JYd~?{~XHyI$G-exs}#wPnKh`}Ouq`FlA`-z{TtbaY7k_2uPmB|lII-(MN5{?+&M zv$IcojL!w6aFrR)jb*wM?Og*Z1e1^Vo%;Fb&F1q{nweX}RtBYB&yrfim#{iw>Lt;q zo@?&sxA$frNk81i+jXU(=H8n*}cXPf7TS-w+njyT%-w$J91$IdsKPCH5F|GmZC zJIAJSlh?}w|CkfFn;oB?n(CZczssxS1gnnHtLD&5f#xGqm4grcoXV~JHsa`^x_RH; z-qxO@c$T;Re%0%>O(!^m*bb?!t9#lc+N9;qjW1dHesCB@61z<$K;PU$;Un zwdZAoj_1DnXIaGl-a73v`|g#O;d(kc2W}pE^>$wMyO+yO1>F0nJ^ivr&(|GZhf_@A zm+u$s`eYmO=z83V2#->Muq(!fL8&tpk{KT>Ejrf8ziD3Dxj8F6IRC8r^XJc$efqz2 z{)nBa-2eaI?oTr(O16qT4zV-2cUmIn$EN;Z zxZ`jCcgv}>$6qm-O|@QWv4P!6|Ij9nbVkms8ygn3KQ#L7|L2DGxs`c+YKo7$_4jG0 z&n=mBr}TR4DaNC6Lc#s=)vDVi6DwslH6E0H%*4lXAc-UB!G@$Zk((Rj<`%VHO*8-c zV=A}yObPi19_!=x$4$%^2yuD!(RfM9jEX;}QWu@g1C@_T-*5D@9zQybSz2Lx{7#v> zmM=G|*yUY#@>e$YTUYfF_F@SoV+Fezvkm2v1bMor*8lstJj$hQeygEKHCOP@eF{bv zFW4u}*WdTU>1^$dt_kPb-Bv|EO60g;_-AL`-(M^D9=LgJe%F#&c1zBjJv8@X@ZCEy zc^}T2-`7Z1TEw8ny;$*)u*FB~&dFdRdl7$4rxih8LW0&VNhcf%j zO0>LQ_crzMK{hM3sx=~tR#j(Budmq4G2=y|^qa4SrAdqUb_y*|Qn%$1bblcDuv$P~ z*z#dr;fuRRIlg)CFKR4N78QJKqgJ^@|8QJH;gM&R!Qzp>r)o#6t=7N0KBln$heFbZ z>v7eFj~>e=t=spd`|y!gYvIS0R*HX5O+96Qgi-UxszzO=h&9c7I;J&z*z@&Tbk@U5 zoj;a*suljuq3A1>`R?wnQtbkZ;6?ns9(qii3eg`}=XCI&`uBGG{Y~rSZwE~%Z8WKfl>g&2I8 z6uDpyLI5l-}(Rlxc5pvJvH_6{S0x{UsF%Jin_&p)E0jh zrDK%z^?J!HuSHCMPql8^aa`TTf{$|eh{5#ulLMA=ZF$(?voP} zvjREnk2e`T%Y9So|MYi~zQ(?zkL3U8^=yymXp5h7s@-j8go=v-Bln^YTkluDw{?xV zFfHfxaV0UaZ4;{cY>!6VITR{&<8|_->l^%0vl7p*nn)|G(PcJk3-goB<1z$I~rxe68pKaxXlXhDs^R?Uc-Jf56uQF>Rvz-aw zqLbU|YT7r-{$pKd+PI$4{^O10{;T;7I^H^`;@p(%BDdLZx&D{QdP`ecFUGT zzh+qY^gHVmJ>12#WY^82>HYE54;xgL{CecYqd(mxt0{J2(w`Ho>|%n9OVm~E&%NBS zjBmvUlqjROmmbGYOga~^0@lZ1dA(;%KK9V+Akhj7+-z+m#wm$p6+2j z>9u^`)feORc9$(!FW7!0aREbdq(z~J%&rzMkif-5i3<`8A}l)ly`OGA?6&&wrMNBA zPp^}Gk$pt5P(tHCjF_K{P`lnjp%>Xl61NmcXh`sg`8|3Z^z+Szi?6``-jvP$OA6FA z<1(1u3hJ?VuVDElRVbk=!^Xwd+&cNkju1QRoGn&5Z(XZ*zPZ)7&rL?Cy^-lm>cb<7 zg)fA(Kmu;u?Tt+b6CSGA=}kR9>SQ{E^7_?>-`&|6yv%pDTK2Uy6QlF@UQK;_aPPD5 zb#HHPKYgTAIQ7g7!%c~Y*>?W5R8I#GJo^!kYfj?GV|1p9HWyQt@NP4W7ZlarSg zKR>rSOWGiz;mga*$6enZ+`Gtm9jF`pZpUN3pYQAcYxhc`#3^fcYqn^+I-S?0V>zV3(P*Oif*(~h2sJD71N zex=o$r|Ve{*2sqMY`Qq@XOL%2%q<7@4UR$v4-ZQ=3+LX_Y<^Mqbe3^?-=1%`vYFI3 zM{G>`^q`sl6lhq%C1_7Y;q+Tq|IdowX|S{T46lquz_&Za{;KCKpU+Vik1d(_?^s&k zqWGP2Ry7>`{cg8^8;|571A)><%!{m&j&Q6DT-+8@b~80H!{kQz-&?QO@BcUHU^Bb- z+gn?gR(^hFlz-1=rd{o>JC)Dpy3O_5U!47K;S#ir;CL ze{T)P!KKsVwEq7*UoWD@Z}Y+7<)x+FhBHfgKEJ-UcCwspmB;$Hy;mX(v#w}tY zURa+P_;5yY-^8@Dvranm+b;Qawe)(dc&3aLYjnfk?xLHk8Z)+bA345s?;pR86>QC~ z*6;tfO6^d5-A`4qBkGa0-QxPw*ySo5djP*+enqOwIn}DudT(#_>9^bOuY0q#=4X+q ze==kK{Mv7YH>JPqe-^IySNBq|($iaO-CaJ-HpyJ%zEMY2n|H#G9U;^E_IKS2V{{O3>nDqOS#X&sXlqL#>Mq9exV(F%_1`8cM6aFp4RuV;Pf=z zt{)1jA0Kt=_xT=SKf-Roa?_DThJ}CSEd{$kKi?J^g*yr*qFNyVMT)2RA4Tmfda6^^ zaxc8}tNz}#pW;EORBo9P_p;4me@;D(->jo34f61nX?_XGq6U3Oo?rI257oY0u&m$e zmB#d0yw6Nyzd6PI1`Tvf)d~$-nW(1jEZZk}scT-%C(oyQ=G1<>d1;|@dxU_z3-5%! zitDlEn(jO+EnZ(=-~Y$UTCM5^N1*(K%Y~1RophJ4U9usgsJ?aGzpZ6&qg1)YynNm_ zU%a?KfbH19dA8N3npnB7%roxkR9nn$^`vR;gllY@9zXc7a``+VmqUV@hF^aieW*Ua zW>Lra6BCuo1?L~>hz)saboHIj*I!%1mwod6Yqzdw=B4xtUnl+8ab<&F!tsee5||Dy z>3HFIxQ#b9%XG)}l3Uy>eNQzdtoeWV>i)PwS1Cyej|JX8HYpv%kK&n#FVE5&yT@io5pb+%$51vuMt% zX%#oP7p=0G!BlO1asLL5lvf|K*Y9wv5pZ=4k?-ei-}B;C{IY^+E93TCoC&e3Umwn_ zVyE|YrSOeHWjhbuLtfTFECoiBdHemU9p~*>Qntj(_jIJ7+01v#ZpSIuMPweY+pJ-o z){&BEDz(zQL&`yK$p=N#<0)SP+xKqEy}j&P*n!WUcu1kmJ*xD9K znol}jBJhb*SWV+ma?$&l@zsj1VuEr4p*j-^`u#U--X33VcvUyz_Y<#|Dt3ChZ?_*- z3lmm<)O@*aLQ)Gy)5|YrbNP7s79E|(^=A2v^82+{9T^lV3Ox;*)|utqk(k}V|K{tL z%l_Ij)AVAa-1_BoEj}=)EOhA<(yQM2@A{uU>2vc0=Loa~vlenNykQG!pIRQ=AHVZL z-W$`y_bhwl)ja2%D`fsHy)jab+tFRVcFV3^3==1=aPLwSPmwaqnbB3Tcz)u<)v>$F zmMN@w^|jl1-Yc)uJvE`meZG@b@tk+DMpl7KSH>K#@YtDi#bL`Wmq(8; z#l6|ETU4|)St3*a*6Gyid|yl-O|ak*Nzmg~=j(Ky9>Dp<^pQc71&;_18@Kw$!j&~; zH!?~iZgqbvy1A9Pw%0<1kC}DG=|i2)k1nW&FxB>2^oa2>vo;?*v{u2+W9PxW>_@vq zjaPJi34Oe-b7%4MWj@DOL~mdBtKj9OrL9~GV$#ldR*PP-F7%Ljb%o)#`0wd{HkG>F z7AkyuliZ(|7am>cCwns_Os)E0{HZSq^;vOsb^rX#cYZnX*w0m9L!-FmuN`yNSA2Xl z^A*q6?*T&Zk~JbXE!p*3<)>!XkAQUnzDuW zW8tf!zS?7Z`OaNl>Mg$W*{tj<_1D)#DjTPto8mXuO44@OwanS^JEOMe>F&7s`)2z5 zsmy#94s-vs?Y8>#=~Kxn``4TPoGQH<8h-N0$;nf5)aO+!imCtmHB9E{>u^2x_WC~` z+jp5iyHk9A>f=6Zz3jiQ{vB8!W06;WWkukrw2E1#*~|K*%_>E<%x0bJ^Z3}+@Oa%F z#?Ly{=LM)=f2cR<*4FITVfELZ{@i-~AiMmUcg)4}W|?N6`tb1Z(+kf0XLspZ*?-U$ zf77~AV0pr#_`4O4dpAm$KeCfkJAXRDu%}({qfbce?A^>dc43fp#H~0 z_R@GBv9e39%MMSvy*{S%t&9EdN8S2Q-fTYKccsZwOD1W~0lPpM#=lRe$FFL&&?$Nu z*KzvVxw^Nl9|g)Y4th2Vvl-pnnjQZ5c+Bsq+IRQxSSKZ$Jlpj3_4U(hA~%QZ=gvOI z=cJc#VGF-dOU#DOO#36NV=OGi!p8LXd$MaylgXU$ z1nb;izu)h_%Fxwl_Qr9G#@-)OwKu-GU;jT=(0{_dz29zWdlaYWL{E=V;PjrR6S!^n zn@y*Uu1SC4wtDjGK{Nl8%l`ILeP^3_HnZ_2Io2f1|NVY{d~6!m&J9l0e?A^(&+Y4Z z`g`m3FE1~%{^d$`TN$)eN%Es+R*>5(;}n;cbvZXTNq&|5!d>_F=>%DwNe}LKi|GbU zub*Xi;rRNP^?N>b$&_4h%v$5H%1X?4gT|8TM#JdezrcR4ES!FuQ+>{YC$2|CAOHXN z`~Cb}VcWg(EinfcWXh{>?3{FR1*iRy{+Nh6hd|SE1>sk?0^RQTx9^vI)ZBb<&WdTD ze;?+v_PN{NW+*a!!}6-*%ebH0mbNk2b@6;;TrF!;vB9cvZSwKHtOI}F?S8++tyhY1 z#nOU_HyNbOr&zDd`}+EN`1J3Vt1nDoUY(k_PVS|Wo$E=~_Rk-W%TK@TXYK1NwoG33 z+o2^LUsg`l4qvrJbIl1C)7J9`6%Xy6ab@D9<`*%0tG+6^*91Kj2%KnH{A@+&3(%wz zsI_5Q_-6O}eQpb1h_`oqNH}x2OW~NcOHbj-lqq6jT~g-v>VD_CR^)hI{*bL7^QH6X z{ELg-Pj5Ufw_5Lv&7Tj4dy@pF{+`M`eaoW$*vh9Db|}lKNWADn7T*ciAxTjlpjN7B&{Q8iR#XwZr{puTc<+C_MD`nMBKk zTSgfd7F=Loz@M1M@*z6R41 z?SFklwZpEoW$Ls3oXRa+_2^#LtE;O|cL*vwy>@?@@=ZHDX=lX3qY{mxnbF^RDvm0C z>rOZyb9Ghd)lqvq9Nn& zIMDFj)GW^BXU=M_k2_|${r-=w(}Vp#?aA>za(wmPOD9vgKXN+hO|I*Zmr+{O{P$%? zo&Bd1%DWf5e^Y%VNwwp=`Td&7pT3_^D(X1DqwsOizT_&olH2nSSLq8pYMvlFhp*-C zqYnwHk~?oDT$=f$OX%Z8MRBVqS5^jJ{WtyZx7+8rieFFQ=HvMma^T(%>B)9QUwwt- zWs6j$IGUI63W8YcO4i2izSd>SVfEzDJ+3$A2fVB=g*@;`UV8Tl*F3(R4bE>~ADq{0 zmU~O0f5{?St0z@|zg`!0EDg(5_nnnebAB=3&IfZ6`}r?@d(hzM*Yne3zsc7Z6SQR= z9p=xrt==Z}Suuac%a@L)QYZaj(VXrH$|9ZBH6QZTqb66}?VkKxq|*>awV^y;Vm)C{s`z7sV@7MB(KGH!GYz`dHer&wzjjYunUGR z30Jx*cSNu7zu%+xjx#`g@U2G`K2EuNq&#Q0x$&8ewj0;ER6n%4=;I%DguV5k07v)Z zFPoJ6ZGx7rbbWj9r47IBmkCU1+w<;*eAb-4H*Cq?H(PyIO}mJ5IY7`ugUMl=)a*0_ zCdxn2QTlJt#UHkW(n5{%z9v2w5Y$|J?FbJx>p(Ls~eXuO_KPfc52}h{)eof1}S5jNnO=!p~7dJsM2%)xM+Lgi*sxHWu-nIboKU~Wx^R;w)%Ay zeDTA4jTaM&-kNE?Og| z{%@LQu$#N_X1&AxF%d5%j8ZzTtceVc+Lp8O)xTG(*H5uo8?|*(pRDz}Uy=Lk{))(H zg|C}aD!sSnfxF(7_P%Qio!K2NJN?&2ZB4nf#Pih`XJLPVqN)1val6XiuJSAO**aa9 z$MWx~r>Q-gV)eeP4_xeaa+&XJ&_I>eT`~S|agW>zd-nUzHsf{faVq_>b^7J~zrMUw zUOuPj)Vfd0{pMK}{W+C8HR<244~O}m-m88e`dI0i ze$U6Zx3~Ad*)cI|PW#hnX#7V%X-eg1s4q3mr@pRdbPKzbkBY?FHs zayRShs@B|TTfY9B%58Dv<*Ds=%c6Dur0TbA?E7Kiv}E?0AWqLm%9CUqXP9PB>yfvQ zW8;xfI4)a0r)Zsg#RJCD1{RJM&QFiGAAS^aK-GKNi35$yp;0OwcXt#%e)6E1KkS@T z%Axo3E1yY98Ya1982y^6Exo4t<&(JmoKAXAjvcC7KDX?a9@FcswQ>7DYfqnUcq%)3 z^UrhZWA4}g-}~jw&ER#r-&q}8npXi@ackFztL01zbIkMSN%7pTd@h@L zVL{`s^1W4Guf&>n2whztAHO#0(8c2qDvk)cM_gpwoZE80k>i}I%nUi(DiH~vkDp(! z-ydgb)~P-J=C<>%f7d-NdS~Kfl0LuoTi`akHyaL%bZq?8$#MS4$;nr>whA+Tx^*pQ z-)HS`Jwf>wqJcUx*AlZ*FRb7D$g4)-`t1CDE8lzujV*4=y?v$Wkgxe&6?fUv5VKgP z*SqW9x;|QbRYsEgbGE+BpQ6ua%}=LJk5x;bTY7EXuLlv2joxdo+uD?*GIyNkD9lr@w7Fw@dmy0^SAlf zQuF8Iajm7C`?GIvTN_jN^Ql%&&uQD|=jZExzgs?k;?#vc%)ZO+|Ca3tTNkskLm}+M zq)1)1$Tia%8CpT>F4ET?{ujHeBvAamlUvNIU!X+|Og#qH9QtZ!tV& zq4o2%==`al&sm?pq4M&2T%np>2Zu5*Q=dfG&F^>1z z>pIZ7uCw<&3cYJK++a;gNxFDseay;&9d&=JrmpH}J*DAZGa+`<^|)$D>C4S3b`tD| zV?54Yi7tIGVP&3R=MR-8M(tl7)l54ZmHQ7aE`NVdOMZu2uM}v6`)fVVJhP{E=}cQb zSMNU%x2Iy`CGSpAUzZmc6~z^(Tq7;Nl`zt)pv$m-}^bB>Nw# z`~CKL*xh~iKWm5YvbB@QNpu&^?6i`Z5mKb6)qa%oO=j1sm_jwX3AvyFqe4c_B^`ef z;-{T-5C8v2Zhpa<7uVxlm#%ZK{O4sV_h?C2N5qdL+U0=1x3u3KVb45zL%IE`^4(7wLy|<%fwy_mA(qs6PnKDt$Nd4J8AaKGxcZso_L;^l(!OAg*G zK5wga=<$-HjXXC?q}p#Y9@O73*Vb;Xb$QtADU4r4wZl$abeCW2;rQvE{Pwq>e$R{F z8DPJt(&OP_hU$Z?;w$!gc{DnwJh_qFAL`3veg4M!n8G;%iR~#n9|ZW%HuH7O_H`5b z1NPjfnfJ;U6fZjdgQ2NmitY0YZ0&cZYKNcmxTW9efAFTt$AWn=w;w+)kNf(2@BNP# zI)5bWZZu~9ojbYj{ohlqW_$ks`~7NzN-%qt!K1~@oUNxdxTM2m^BO|bmTc;ku?(8~ zqBWFFW@pv+yXB{^$Jej@_9Njw*POVP!=O3h#hFfZXO=ELtTyje+m#LN@^uk!TN~#& z)XaID^>>T$?flXct-RL{FmebKEuJe=u;!G)Q^DWW1w17)`r~&Nwf;Duc4I-$*-z>7 zDwn-lt@f?&$5!!9{~3Ev|DPu~Va~?nQU)je^kkBs#fSBlc}ptgR=i2)0uqLimL3@OocYOK`Ra9ntsfw`}NZ8#CATJV>5po z`6)O5$wz}b_om!^WqvPiS4rl={z>c4A4oEuw_&qx*QL3Ah01+J6Msbb)cEkTslC2_ zG4b+Nc^09ILc-NLO;fbjeOnas%hW;U-L=e3%!}i1|MOn5H$(rw#;16u!WnYydyXHs z-*;!)1MzkhI~BXUjbg8=>l$UVk~gpDDZ1Erl1Z;|uNP=Cvr)Ud3DnTx-of&16`#zr z=g&{`n%`NlZi+!^gvX|)Kc`x2`#g5KTm%n!!Z#8gEl=2g;9GF{g!@5y zeqS6PozA@pnh+J!cHHMKBh-#0P*}NM8g(u1xyR#TWa|8>H)dM(6R_Dt2PGCXOnieGq)> zK76!W+jxhb_l_w2e1`=Y-e zkINh7+%U+zy=`sC`Z(L&UCCd}I{RCXePPbwK6>-2%BiEB_t&Y7T9sC+1?u^IF-w>XZ_!VU{@Z;-eaF5jt5Wv=ef@lXeb~!9(4yJD z-)`&QITjrx-Py0&rtncPa#u;FV)maem;JTMZ#+Bx-XUdm&J^wKG7^srV!-3Xt=&7W zZ2fsuvD1G?*q7|}vesoMpzE1~mix^ukk0qaRk52U(R8H!$Z<1`U$P0glaFWeKV5V< zli3WEdHF0VQ9`TbgTS?e;M?H{LIaeI{9spwJTQIpfWsE_fQ*~|-a zr(D}Fv&De=Uor(AkA&BWmi9=`um88xXO@ZQ(%m;p6kH=_seI)0z8raFG4qYc5b;~9 zr*sR~W+Z4YQhGGOLWQsSGQ;oiys!E~^B?>QS~aQk%X-j02HC53_g0s$jM-VVgDE0F zy0f3v%_FagFCkh(Ec}*m&!N5E&je2Wn;P9W({hPutZ|`-%&i9B{Sb%Oy?wf+?8=J3 zqBDlaPs~i8C%KM64CM4iL64eOTB08cn0Fsok=?M>TWi@a)mzOhcVw(??)RuUvoOE> zY+WJP6MsQ7E4L!0JNsM9I<+@wimO*i?~*PAbu$1od2HVz0Io6ov-O&Kea6B+;QO_Q=x}U7W>q8CeZW=bIz7}CmEskTaKxfjd=$0QXd=FJ>dBF^?LlL z^Y;HE*6n&QtGy%q<)x*;ljN>MiG17`**<0U2L|tI*6aP3ruxVTwLe_EuAuh_Y)``a zjIZk-On8v{hIi_Z7R{QF*QZ=+G^WQ&E!g{Jll!u37vg4`q+Eah_eS>JU8R?{=f@wc z6|2w+U8NEpU%NG?=Ht=K&3u#guMAy1ZATT_yq*0pkrd#w&zTXyop zDed(u>Ol*p!cHt*E66DFf-m;)o#6>GQalQ$s50XXPceel6m>bs@3Zz z*?zmB{P?%)-UY#W@w^xR7(TtU=7NMMd(MO(5orNs5vO@3EwqG=mmEG6*3dlj#hd)Q zyF%rv-xz|Hz&^R)%&q573JA%6fA%GLeaI2@ znJv5WJ3T_cLw?{s;1Mf(`}ljc-(z=vI;H*ey#4=>cFvfJhpjc4lSFIXu zRrttdW$f;4a|#Y|ZYp~lb?_kn*;%HO?f?C7ez)tj-p+5gvXwQbXFpZj!=YpM@5kdy z3!T}wo@Grw73^=Ty8T|&>I45k-O`xiv!-!fd~c+M<{t=oz4w8F^_uTtKmSiE`guKZ zhU$g5#H`!(v0K8+j-=nO{T`~4@$JpcqL)jjui86Z*1BxU`+dLHF+@78l&}A@@mKI- zH(pTlGxh7Mt4+P@ZL7ac*?i9G^yH6!ZmiaLG`Tm1@1y051{L}hobCo+afE-IW%PYziW9G5LWQTO}p@FzoE|23r&=Ruol+NAS5JZog!Ma3B(?FJ1kC^_oy{W7WK)s>Tz zKfgR4cXDM=+*2v-}`l1$@_bEg}(`1T^779rMN-i&$rw8UdyIxhihE| z?d+PmjNM2i_0i`O%Ka;@L@tqD^j=}^w=V5<0gsP=y&f;`>GXW5wc;b@N1HP)DwSTT zJUh$u>DKFUr_Xkrzn#Bd_vxvrpBEjU^Z%G+$D?J=r$lu#F2{j(9(`y&yeRCNy8k>K z&>$$ESJJD1RUP~?+x_i+x-8uVn$#^i$SVHB&)i7y`ku8_ddbS#_S#*7Mxc^c<)`_pgTJ|$OYW7gNbZ0`^ ztp$$EuJ;_84k_6=o@9O0%-*fh!BGG8YPi=jqtsI;7C1IDsoOc8c)HYHRY+dI@l7Yo zzGA(ryp^*(WDm@>t=V*$Axw7TBxZx7p6ye#tz~A^&HiST+xX_y^1VT?S8K2fuhjB8 z^8D}j`{9D}E;f@o{U6E6yEyOr`z?BF`oaFsFR#bNJvo%QYO!1IBr)A64kefU|9-7L zb$0)sPp7Z0+9RC$}Vbq4pZ>V~U5n#`5l@uTMRS@W!V zDVew7@wHdWkGOA-S*c_Ps_(s&_rBlvdr9u?ZAHf<(^qUUcd2XY`q82&-odYww|s8d zEF~*;nSutdLS{$atbYFsMU^ju`92&g5pdwWas(c~F&<$pdN*A{9JtzRPXQ`OGu%~MysH>^KjEbf2uuw8!I_j}d; z6Xj2|vU>fI;bVNlymR-@XS1(9dz&LCTa+3cAMu_|F?>~sxjGY*(=4v!9ZW2KU%$M( z{B%z7xsQ8~t8?rO5|o$8YxuVB&!^K`wj#eL2{1Bo?*Dj9daJwJp-J4`Y94nF&$C$4 z2HNlt8z^+;AzR{!r%U}0hRfPiY`DbASH0n9L9>f&(*DS0>e`Q*4;}ckfs^0zvb$X6 zl7!DH^S?;Vur6O`^W}nbmeQ+hYiCy(@>wm3x#(p3*0uWPf<}Xa4o)fUi|6F#^V|J! z=-t0VUS-Acu$>c5J-4_Wm%{I?r~mfTZ{DY$mLD|DzNXRCCZh4hR7dN<{TInUzTc~U zKlhuRv%YD2s{RtCcl-bU%c>U*`o1my{yIMsXA$m;J646Rb_>$ew`xCQ|L@0QtG)dE z9SV!=E*$*z^>ym{z27Ds=CeNIeKBgkXKSyIXo_!5fP#`e2fNbo$^I9m9M)MDDNT;d zxB?mmZ>_o2{cV#Y^O1$TVFmZuZk^t{E~jGhw@skYd4cfio!1-wn_qspVZ|g{;rZ_J zwIO0U5fAoX)lpo^<}jt8B|$0C>BYwS|Np$+-zX5@y1eM=sjSZiPrUY==`FgM>3Qq4 z-|i*ZqTm2wd~|_Ldq+O=+oy5iHJ9~xmmJPp7MA8)Ghtb4OvsX5ise&R=FJS5^Y{J4 zSq;h}6P4P}mUv8bUT0QPcS>_PN6}?}n~z7{aGU*MHIveh-sUs+k5Sc^48{!2>4}R) z0&U->uFnnH+VgGE-kb{zg&EDFceXcvD_XC;FLOFuP~vr8?#)VeHg^v6dVSqHc}F5Q zyHbL3;_9%qUqTaBsK~7B^4+mR`|+2{{>x+9-aObAb?fxnWp66_zim3qmly3=z4Pi6 z+4mRY%5EIY)qa$vzx~tmL)D#TWy<+sN7U~YUbC3WvYr2Ngzul({$)}J+8lD09p1}* zlHc#iLBS;zbM_10Kj>*2y)7qj_J^EmuPGV}%?><#|73aX?{7s$0`M3=GTCKmSt~CX_Tvwf*Dsx== zcVK~t!u&TT4Z(pM^4Z;d)$Bd04?itF_x60JYIDk=h8;FM)3a}WYv9@c`J6Rq-K3Mc z*26dTZ-Nh9T(#rstfHCQ<=(o=%yM72!quctdbjSu!h1Ygoz8vjX%mh|UCvYpo`2*U zr;OUPmnUca(23o(C19qsdEOMaUa5&+QZAJV?q~mbaAS?a^ppJWW*#V9^JDT429}O5 z4;JZ0&;R-Px%bMTr6DfbA7`57&QhvAE>q0&bkm87E!XpsH`LE$Rx9+7ndN-{-7HXh zjZJ0~@4H_r_qck0JovOq&3D!XGdt4{$E5Q;j&_O0f)^I9>hRoI^t9%h%$?^EJC8PV zAGjkVe@b+YtbKVf3TJTY9{fAcLWQr{dHU~3AVY1V{?!&gKR5T4|Ag;tskfI| z?2QkZZ{k)X@b~3~h0O;#{c8$Vzn@!vFEiC^n(l%Nt~CO-Qie$_yBe}jOi*lHq?>qZ zb@rnJN0W9~{%jSG3vl6g*g@fF#9-idi9<%bz*TekwD}wFyLECEY?Wuf`>>g0m znmWDY>x&7exA3fdbzM>X7`sjAs*u3y(%cX4OHNEZ*ScR&ArzyB1p zSkf%_mdMX}y)!zzX0K7RJ2^QcWJ=bixw|^}znueZoNV&rXkU|dcGj^Ymkb3O429S#o0Pn*#|`Is8mJ&gX8w8+L$`*ZY9N6Ry>7 zU9T>7)|)iSaEj}a?~f|~e!V``*|zA(i3|PTuPcgo`d4u99*R4$gF$YiL`u^a zhibp?C;h}DubFS>zwi71uMGJO-fDSvmMSwFkHNmXj_olok2#x{9ofFO z>TA&7jT%i)mg(%99K}3Q*>1<|v7cqQAgC#<9khNTwG6`Jcw5-aQCtk>7p2G3itGQR7O>Z@tmhMy$deqX-2&|B~JoJ858L_v<12ReQ{uoF!W zG~)Z_bS-F?1^>EDu(be3f0xv~33QiTx=+%+ZjZ%9#U;BF&mDNV2ei*H>OxC@yOBd* z!NlL76}n;t!9VNNN;9+XPE@gDxKesORvpy12CdYc>y>us;O2`ftUCBP&TmLO465z5 zRNsJRl(Y>kBF`RKoZQfw+}T}h|MQ9PRJY1cC)H0gvdaimS-CIzS8`%%-;W1P;WDQ? zN>+um$FgJ|S9r>`>F&%^*A&H-Ru&{&*e}C0Z{@uO_3NGW+-jP(U3&Ma^cMGL4GwcL zf$A?W5_`TlSj{cEIYoDo^STcgp6*jSwKY2YWVNNSYmGzHrJoy5Y%274_wV<6ee=5| zle-ShD?BD?lyybJ@uq@(!~{3V57{5Amu#Kwkz3v`QGIXAtRE`xK00#9tyJJR`S=K{ z#pA21LW47vw>@dQl@KO-B>n2DP@}>}E?0L7=sMifRZ_ZPo%HCU>4By{Ix#x}9zMMq z9v}L$+QYKzaNLY1opQ|D9sHL>7yHx%^)e=&ew+};&Nun(q&eJuQ}<2Njc&Vjw&cWA zz2&k^2^U+cYrf13S-!X6;Meo^|JR7^^r-oA)8ji+xPk8H@Kt;=zp@<-;$KhDzHImP z>+9>wzb0?|@J2vhU{$+Zm4{r-2S?GHKS5g*dRr~j(Z*(t{x zk1SU(C>4;mh`+%<`A5Q4#)o0ThmtoVU>Bq0* zTVC5P?`WLjJwYx(XnMEu z)MHl`2d~@FE4?fyC}gkI8`1EccU)?O#MOlV-f(%;Tr|nwx-96y0_))J*=DzNXPZs@ zk+OI#$DY^Ie<m9 zVS2*5S`*Y`v9dktVz+~DXP1{@)V7?N6Gbj4Jmr$D;S_x}fqSyloK2h0S*<=GCm-Vc zXz}%3R&QFb2+7nmg-o`X|LWVz9&p z+B@&Ro}ewv*By1hU&Zc5`=2Yp{wsGX{wdrG>bJQ1_Wl0<({64~U#%hV544`UN_yTx6WOAp zrTw6j9a2wDQU!JND?!WlE-rFC)_;fhP@Dy?khqhx+mdSu|C4X{3lz2LI%h#tIIi7r6;p4{@ z7SZ;foonXouAboC)i-@dAm8$qL}8svhfYn?m0tB@7u$^^)io1dwFwx_@t-4*@#vyr zc#)nV-{J;i-rtGw(>l-gSv~E_KE-9WENQ;dyD5j7t7~?ZzFy|{iSu@v<1Ou1%Xj78 z+~oRpvb1&Cnp=-KlCmDHTYBW9rbe|T`++wbkIQAfPwo^_b&?e;JvFt4UEyE8(kgz| zSCh2+mhWoiGMGN~<)-jeyEQJdBnbWvxhyC@=TTehb4la06}4|8rW|mR{MTO+qI2j# zdg77eOC5vvq^W-VsK>Yei*rrR)p>o5C){pog#QvXzNKx$E6{!Wd7W{o-pQ|L}J5 zclKvi6oHgUHLsWtAA5wXCRh}1)am~vCoHAgv&N&w$9a};(iSzBTixG`Y||#JDAP+| zO4FI)oDy@~xmarJ`ZOW=-#L#~yMkr}_AxAZ_;`n(%#>~xN9XS!Vp%|oUD+nKF?Afy zco@)pGC7!~(?7@O=XwQ@>Sc;&ISr$PmEO8m&y+Kk_?UR)I2+F~$@Xn8uD6v<_;DkF zwKrGcqvFSl9P0kA7bh-Le#>bw%U+4E)A{U#Pa!ge9x_!-eD+*E%qn(`E3f$+1euvO zVf*edzb|uM_$C{i)7}p9`kVNJnF{OvYFqTWu1^t~|KjGF6JnEpO!zUQtt3XB@04r% z<&yhK3zNNO@JgugEpB&?E=YE^_Nd9(&~(gf!jB0*GFm1tU*sX+Az;Jk{@MMAV&MwO zpm|-&e4Wnz2OhdNW;PsAH@G@Wa|UP}mFH90^;4bmg!g9h6uDYeXWFm1w* zBVx>8nS;JyOPfn9UKZSHa0Crgv$p53clzfTI)G*FfRzz%z=jMNzqwYS*VaTT*Z%sl z@o0?D^`EDuSfeip$mJz83YM5P9%(<~u0C(i6w&LQ%|#P0RKDcjwO^61)A{aA1aBp8MQneG{+h;(rnU(`A`)2U`ht^B zr@DUXM1=_o6$g9Y<%7mn&6n+&0-92aD>$6rbeW;kzhIYXkP#>{1Rtn|K;!RN<m!akUlh!G7p+pVbLOiw=692B zANXhx^>|^ggwa(sA^G50{43&wzgIWgPA_ZN*^tVDOuwCU3c9U_xz=?$9HTje(pEZG<({Wb+OS};p=jkdA7== z=e8<%_FhQTmwuWwyDYomh9qUxM@Zk>e%zl|G*IeFPfA0*w(a&AhxUXqk_s zbb`mD$qB8XjZHyO>tZama}K+StYysZ;CI>y9sj+*FWD*_e(%z1=jH4FDE|NRx!)w`#)agy2kXu1|J7)Qu9^ZWVp+9jo8`^|4QuyVK9e{l zx<@kRxYD=VxwN{)s5bE;@jKXpe;sIA06#Z*J;-mxx(PV@8NKAl4|OC+wUd5H4aq?2iSO} zA~sK&;&bM}xyH3AK{24E`Ds-gGPSp|x4-LjeiX2r?Z$pCy*nH0U%E{Hy$Mv{UD%uY z_MeS0Lc^QPDz#hn&erB{Ma!4_b0SBciP!mlcrCf{<8G^e*VjG z9fv@@mP@-zvscFN-}l^X_fG?#of{l}zFa>4RG_OMR7{d^`Jxw~xb zoT5{jjp_4RG{en)efzEV^wVm`x_mF@1A3kPns3y8SJq;mC2h=!{Ix&VDh| zwjd7mzJM!h)(YJ^y<6*H#=WxJxuC@|J6|rF{lxzN&+~ehCcj%C_I~T%->DP69r}0W z<>lq4v)AucV`k%-aC39|`>r1fx;Y;n9K5tC)mwG>yOMnhPn+&JR2}P+)ec_fqnXmA zaMJ%mkz($9&}vjwVFSygBOG5hg9U%SRgc@hJSNWc_mGbrvpVIL_jI+xn(7(VwLhOue|6)6Y4)`xA}b;{r=9xf zV|VP{`Y(>BSRZ};3;7&uCqW~o%a-@E7v;Et)9${h@-Ab)A{EYm>8s=li7Nz(|g;zibtIVTD%LVeS3R*b*H$n z_){*&hjyzM?5)u?5Ge_{;Dxol0 zfBU~Br&6!UNM`u0K0FTl6QWCA`#gvRct;-R(>EG(=7>Iy6aJ^e5+} zFDn93Im+m{qSKlkd%+FYv{9RvWOz=*(_X-z#%H@1|jWP%Cl0)le zSAkYGi%gW4`Mk5>p_6&(2U&ipj2jyko?7UC#{b@y%*kDU6x6H#{`xBCW%`@5Z>Q@O zuA;Y_&)e;ma^897mTK(VEz{?gE!_L>D#LMJ>yIZ35Bu#dxYKcbhoEi=>+M@5$-c{? zpku6-4{8>zXPltDWTndFHUIwp)|Lj%K1>uAx~MWi=fqT>O&Zf{pDo$@X0vCY?xMXJ z`qCy2GPe>~zvp(W-g_szA^+7C2P>P@Rm$0qnnTQUGF(?he|>dz=BsI*ho}9QTX+a` zaNN?XvDI(4?!NRYA^uK7@0MM{{x%njG`Y;*|NVY{I_Ok{$ur#g<@Rc??JK&O>4jw+ z*E#0x(>Ugu;N@&V4^R63j1-iY%X{Fq^kR+rPX*Q|uao@)ugpI=S^aeN`@PHkj1D<+ zO*x&{eJQT&w))Oe=(Hr{*t^25)2n$u_|BE`I5K&5(PkyPmwlU${bk>wz$@+aG2iZ6 z)`EzQNw4yHk1S4~d+pJMM$pXL-|IiE1BLFeZ-mYhmoiP$2z2^(D_j5I{geECmU}*( z(!ScrHRUwl<%@CuzZrki-&~=>*Xg{O$aRFmjlC& zEO%<vFt=h?I_}l&0TYcW1X`fe_r0`Q*mgXyv)3*C_}3u=1!Bpqy%l31&yp0-c;Ch(*N$R(yM~EKtrnq9be{@ z-O4QEn7Byv^YioJ)4A2|i@l%ovF?oF@c_N1fxwPX4?@Zbz2H>@2#rid9hF z1~kv!XeQ=bqcPpG_)^^NQhynt_Fbk2{vG|dR602B)Mm-{FWP$}uDmgKeRxvi*<1uKJ}9yKdxuoe}sKo*6nR;txR=4zPzzSle(|iyZjLlJJvdRdQ6e$sl9=Yr&l_!>l9XB zb;Y+wy>p2S`$kYXe{xoqee{G)FDGyZe&Lg~;`p`lb3*^q35w2T4~;w|gQl(xUbp$Y zUG!XqnbW5)Up33Bbk&;3&2GQGycFIRq2+q*eN(5g+`O7kCs~i#FKJAE7rn0rv?@gN z%1`h1n1#}ZU0bKD&T!hEa#HBvRNft5WRk7_)t*pn-*F+wVEv0t;(t#iyb<0Sv{uD# z$4O~-w&Wz{#Dkyj6rW$&$y@&a!S|OP{)-qV{A%>v=R4c1=s_d9*ZR1~9_g5U1L93N>I{3u|zuhg5 zf0|+SS%gE-!*Y|7!TVOr`j;ERZ`2<5t(~H6`_Xa#p}VEFRbK+a0~7RSo9EBFQ+(cb zp+1A<+AE3rzozC@x#jIiR{ePL{Q2-c4kbI#fmPEQny>DyE(aax@Mi!2e?}!Q0-h@L zOPPA{+5ain>J+v*Y;EjC1s{PQb$@<*d{u2RM}PmHO;ze|LO1Vl@>KtL@ZS81%I;dB zi3fa3H$_QQT`@ecXf9vp>hSgRiYx@LI*Djhz7LQvdRb&Kck1)c=k511NIKMmW{^X_ z=ygpLlsVkzD(EsbdRxv)AEtESBkYrH7eyu7TNTXksgc=vM@NcPb-mus1bqRy8+_fW zFTx8uejG5H@p;4a3yOCpfab^r?wAXHJ2aQCS~ZFDv5nHPf@SM>JmNa|12jS-zDVi3 z-S0If`S)TrtiO6?&eRq5vPHTvI|9{!~7D-hXBiduWX#0LKv3|W}(vO6# zqSNQpeLAVG70SHuKQo_2!u2epIYNK_?0UU!GU!YPW`3Ime%yyoeZI9dyWF+8phzOj zx{${(?4(b5oVDVEy`ff}{7Rf2mb-qx+kJIq)-pL+<~5hgmTYHSJVQWmrOCuc%ZiWk z2p{(~zq>?C@Dq7rOiip`?xA)82+t*JtYFj<=68{(p+7G8O zqu@%($<~c~($CM!5`6urTR)8b@sZXaTk`Hkt=(|=;}J!p?f2_;Cv1G!sXnhm<>SFa z{LgZhtW~xZ`@TT2mh17tm4CNc6>#jlwl;eClS7C24LEihn7Ku+d-752^NkxDldmRy zzE}M|Hzn&DD4n?Zq^B+o6Ozy1QaE~wImkG!_G{?M$j!@Utto6&k(qMj>W!n_;;X+4 zd~MwPXidhXA1vLLu}6;I6lUJ^ddXUr+n>HHeJznN_mbe!mgcr*p@y>?7Ax)wXX?Hc zEnZr!sKow9@m0s}IRb^p9&rU7@v*Tgn32`b?-$}C!aXrxxLv1N@Xp4`ce`<@@?Dw z{a&@QZJx@htw~3@wq9txvfZlm)eH%vkh#0wxbD9+gLCbw8&QuY+pJJH!+)G*=SzGnKnt)yDiT?_M6iw5t*}LYok^&^EotZcz!(OOJIA>6fG4e04k`?f&~%rsJiF{KaB_Pkq>s8SEP-G#@nF6Tag9&g<;% zTa&IbvWq@=Cm|&N+2E6RP0r2hi>-~CJ_$HFbaBm*u+Wd-Jkqs%C8x{rmKk~d=gsfe zEdCbhu+M9%Rx6i}Y>_4JF)iz$G{KKI)92T+Ea#q8RdQl#R=@uvi!7yCOTE{*2sM-_ zTVz-`3SPXrLRelVr9t>kT=iSitpQE8D($jm5hzws|O+ENfFH1Grv!?V$v-FkjXgtM;fl86Q_?}^z9&~DKWdma$-lI@n0Mx?(A8lN zG9LQexcId?wrHVkff?vjC%>zQ_Bk%O4)%lABW5Q)p}rOUowZTBo_O`uCDikGXr**B ze*{g|U3ERF@NmX=hlWK`9}TazcdZI%=hFDG#2{C$np%`kV5SQ=;2D`2U{Ta4{pl_L`7!QcTwzixah-Ew(Zz|^uDI5S zI?D*P?_*f<^6`#G0h6mDe5Oe$d^{PHSW~;54YU;0=X?7Ozm6&0e9K?%YyAZtdfwv5 zoYU;bJK@KRD`|aGL94uzr9PFMc`;+=F$GSi=S*q|uhv_-6xsA#tH|Kf+!<@!>7RG| z{`4=P(MZrpafiEq-u@jrmMqBKv4+i~Mk(9sGq3tb#gB%)PF4mb2|mda z1m)doatW80MFkHBLz zlPCV1n9n=m$B(eYcVdv?(7$tDEH=FeT1fTMuzBLd7p`uPtnzML5HH%ut75k^qtw?3 zG<=-VH0gQLBP+!qJt3C!bDbW8RuZoe^qbe+rOjun-6H?%5<_Rd{@179j)PpVtlA+) z-32n(oRrcsQBc}IB3Ixb<7c`#XdsY=3l)Rk+Jzm;+KL9 z?!2P4vMP2v(+Yb(O@fbx*Lc*RjD}xsJv`UC{FLqYJIc%F*X;rg6V1D|=(BQc(aRj+ z(_QP>JZctYTR+wXM;Y%Sa7yXh@^ar%4yP|l9J`M7f|hAcP;_2W{{CLj${^Lp0asL~ z7dqZx&^B>+l-w%0=q3lqE0<67zHaf@=~3hJT~}!S9aTHfF~k4=zOM((EP+M|3pI|F z+L)}nA(P9{>E9<6*M0*O_*Ml^miK_|JaXKB|Anu*g)?Sb%&{t6CA25?^t4?Io~)j; zS~b zjoP}VAtk0TqqV4bgP@9?WkyM?5-4fBI5g>c5kzmX#olj?3j3A$iuv26&2lDy&bngb zlhOG7X0!i<4@I$MF@-Op7;6Govw75PS!KMPOBrNy?+=h`wZF^wU9Qy({d*+w-NS;9 zkB)-Qz1sQn*=$vP{qtNA$3)x1G|bth9Uo0@cDt?$9>3Ppsnk_pC#>}Jlx_RvY6i5ur@r3K-+%JLLg%H`-`@r8EK1eRX?1(CVY=y| z4T{H19Udj$VY!&g03K@oa;(&8NsNl!vftD6+J&blo||RroppU(Zm;p#e@FkNI{#0S zJ_8zK>$#U4s14SkaJg|IbFx(PE{-PNB9-lq?*9*IChG6|vB)I%R>-L-n#rv*te$Lg zny|zzU|mLUd+YrY1_lP{t)4E9A!bP$;+%s+p=UcWyiq@jPW6oaNl?5+~8OU+@+yMH_=SJ=Mc z^Zok&xpNyjzBHVesu8#-;C7di-IUWknwjgH`Xo^gztLW2@nsc%-E)8DnIA-~K7Lf^ z+rQ0~8GU5=ZqeH4?S8+$z15yy|8J+z#~+XTr_0$^t>``b<1X~fl*aD&u6p*l$D4Td z{?4|mtzx`6%QRbUZ}oS*DON8-8RMRKg-(}`+`Db>iuZp`Oyvq+zvoles&{)npW|M% zbKU7L%F|za+3e{E^}lny=+jB{<*^4YWv+j}|9{-EUTO9GeLt6Vt=OJ-H%f2ckEENs zN>{Im+Un(J^>PW*)wK~Do%a3xc6-Y=?_>IQ>*DwCvzmD3{LBci4BH-a((lEqtE;be z`dyE!UJE*B;F|D!m!xM~-_D$4W?$`|~zEc)+(L{mqSyMyaPn zN^?G54UeB|sM2yPu6NkraS5`N>L8q zbg5~R_@z_T-`=d;#+dNlajDl-rmf-ETBZLS=-6H?MGOn&Bg1R_(vH z-R=szZ*rbAf4+Wv{ok#iePE!OFxRdh6}h_~Z+W;u%%TF+eF|9}mK*+ryFAtA+l^$S z>Tfwazg+TW)!rp*T~;D0dMQ;uwrtbfA4@hf=CDlqeN;UD#Iv)rpMtteD}$G>`p++A z;&Ipf@r`#Y7WV~hJAD79UEEtymPm)&!k+$%-Fl}e*B)SGPtgtwdwgv7`+eH?Yd-fX z{Ca8QQTp%i_xn#Dw#$bFUQ%>!JK@MKs{&eDy~(j#O!rD$yn51f-j9vBg? z=T~w6b-pX?Uc|-q%_p|_tf|&kRu&Dfm3eWu-wDj$lzN)$gm8-cmh4YYPF`9YZC?5N z?e?j`<^O&@U)>z{?95DM^E(C3FOH}isv1T|KJ4I=vDm;6_i#^@ukPpO!y%de84|Z9 zpJM}^1qqs^?>3#TAFl^m&i%`L4rr5gyx>*e*=Cy3fB$?w{|Pi6af0L2>1Q9c!Ua+o z`~IJps4SZ4n02$){N9f4FHfF6)x3E}PG?GQ%mFTsvxUcH!#zqnS!DjQ)iNG=^0?nV ztd`ARYmRK~my4`HSs&x3>&0G)XfBeu{qM_V|1O`>S64h21W$;OSv~jNNw;-Jj7n~E z|DNN>Q^+2q^waUn9qykWwZhFJ%s=MEJT+SAeeLIaCxdwoex-+x#IK97d}X;zis56S z+QJ*KM1!WsAC3t7A8|VXnt2Fyw&0thy*G05+<-MZ>^`3{zO*jZ`stH& zCA(b=kB`Rfx;0Plk#XT87tx!ZJwFt7HP|(Wta`G0anQ>{-7zaqT~uAI_vo?vx2OP<^HL#F72;%+6oyu}Jup!~vckfHMShQ#Ju>P$k!d0U)w$>#NUhqm>v;OJ zGczx(kGG#`k}0&iQwF_4sm)N6kkq)BE{P2w%D*u(tShhLf3n5v!xv1T)r8#z{vwN|!p!x2pvm zWF@v_XX@vQiQLsS8`kqKssI1?d-%)w9+u5>%I_4mgZ9B_Nlng}oa0}5c%RORwv0Hf zN6lXhZ+sx900#>3E@1vn-k{a$dnu7LCrH@$C+r+jz=n17iZuw1%8?`8g*YwQ~xbCyVF z3T=FtW^$_Q#}eyvQtIm-%<#Tb-dKP9;lZ@jIaj8J~` z``g>XfYt{)Lhjsb*gsibMzJF~tT4-W)#7uVy-iZx(q>7F1ze820n7`t8j8IfOE2HQ zv6ern`G$wN#Lk0mkK(?TJWX+}(F$3ypl^%Mz5`bZKLswloh;=nn`#@Ymk?KcEUMY8o0 z58G|os@NWS*S)&7c6HxI-+kc>ZH`NxZ@KJuddY8(zjgoq{0v$ZveN1M)CYe` zY!vK{9NVvU)-=b3>qL$YC_WZ4p3`iVje$ovZ_vyQf>Iw3^1jb|FI>=aa4yS_$?yJg zYrCZhRzi=US=V{~+S=%=XE&Ym@o@fM#;&4&liULH{w{`j$}cSS)M5F+HZJ(@XYn z?(_2dwcEF3UUr+yGyTVdCnj$scmDtPJJ>Di5ZiM34T?!7DJKL#t+p*WH-k)N-Qyms z70Ps6*qD4g*8cEZ%ehvilho%`9Fn>zTsoIC=cSU}$`1Z7P0_o|^Y5+s^7u~G{ETXs z>6a2!a(I@kKF@EKGqLgQ0=5;5SqEC!ESA4ew>z;9w6r~HgKy1)Y|sSCM9=--yL&Bu z#`VdT{*W&GaMn2Su*AoM_huv>ZaewlVDnYM^E=M7{I~mdBbjyf!-?_NSBLADI;PF( z?kbyaFBhqb=(Gij{Wt|W~PfsZYYfpP}`8|T;uT1 zA;+F4(<*eX6`N9YN}@IRvMr8a<~hMl%67HCz64&+art_& zv3JLhIIB*7nVQc&Hw>I=3NA3tx%v6LeSGexvUz|0)PNR{gAPc}npzLKyk>Qnu4@Nq z_hPBwv-SJ`X=Qx5u`zjVXVs6=yt%vU1&%iLfObqB=Ck%$d*Z-GcM~4>kBRvL-&id# z>bZEa@k%W@@d&m?{FZz3?! zNQc7g3ywu|>oz7f^W-ptZv|5`Ibf+8^N2bAh}!%`8fRV}aEqzYk3FKUx35wyM?%p~ z!2-0fx#-g5#g=`Hf_rDw#e>$fT9vHW z_2&!dq{^zVuQ>ec+O*=&k&(?p42^%E-*NLin-7N6y=;*7Qq(QiQS8gE>NWA2*&{&N1u9k)z)) zxz;>-G&^0&yhlLZyt-skC%+UI`;MrsS*&yJhb&*&YU}bk;;Q?U=N}I9hqucm@SoS+ zen$y(9-(I5jqA*tE^p6||M~Ozd~SjHE_-$2_Czf6nVF>HZ!Ub}j?nzj)nO-(bP9t` z5f5hJt31vtZ8qgtuk_>}ExdWxKpE*ugCcK%A7>wEHTS`T!NO`j0x1)3JPBs;tqG`; zfra0)!owUN5B}qoNomkx<%Y?}Ji5hnpG*yp3rykI@7?o5<&~=55%!napcXNsu#!`UZ9v4tf|O(2 zcODC?U5XS3N94myg~`m1%M5#qPrVCHnR}Qw=bSP7dyY7W^8I`SBFta9nAD}hDM<_uavKepxGc6%f|@BYDA;7nn#tkH+BNBYrW z%cT##N~+kgt`F;Me!sN)$C0Dv=S}h?6zvRxKAjYN(Npkf;;FX3x)N(Pl(R11rFd8K z-4S*^+n}EpI2DVRdQBCXCRi7@zi#iX`_0XAkNj%x)&H+`WstA=;8=QrS?&c}i-h{_ ztLx+UGkh#GV7hzb$BPcOTN>iGU3deSuQ*(gI`QPd4n?~;!5%e2g|ljE-H>BN;-h1f zbkOd1JDWD8=v9X;&)4t&7j*7@kEHRG%iY0e=Tuien(>P5z}Z=* z-m#}xE9V~O6linZC4GXS!(mQme{nhg6PAT1PoKVR8uxID`HSV**VnxgU{6?>b92*f z1E!`K?-ukdP=CJYl=?@*m9^J=c>|aOuQ{l(s|kO6I7ewxO`?^u9jmfk;fK8?Lh~(t zJezrpH~EPAspi6>+b{3@TRqVy;k1e8QBGki_C*%2T8#ohw-rwCWS$eumEG}=?Qd_% z-?keC?Yu(seU#UC-xtn#cfjq@W@#V9ay|b~ujX+7_$Ug#BQa?uBWST>$pJO94&L=Q z6h2-why|@sEnszXc25!nUx=uZ(Qr<8ZuI(dy5dpAc`}BX5`NZMvagwkN6ii2LCf=SR+<#h7hjrJoUcT|HqKvAC4PD-+lt1Rs|<6at+vO_jZT~K=330U*!dGP z?<5>?KiuQ=2xQpeg~}T_z~Kg7`RuBH;>jJ*0PBYWW^vh*ueCt~mnwE~)%^PxgDNbA zt!yvu7=fJd`(oq171r@n1m(Za@cONG@EKoDOykMBq7uA!dq945=*xt$9t8jfsyj%WUfng_BO*_4IN!PX;Bt3CU6l9}|zL%RcGkO**V?=22tf zqXG)yo*x-6Jan4CRe)Pf*AWI#lKW!bC8uUQF-b_C_c9OYco~@vlM)rM`>%k4qrW?D z!pWVfZ71_oudR&^w<>?P=AVjP^!B`|x3*?`?<{&6lVM}EKIITwXFppsC{8CJ*#b%> z;(HY)7kh(JRPf!H5|#DqLD^)&kBYapfBHa9X}lt}pg1~09~J^fpdoM!Jp`bsP+@ZM zX;7^7{MhlrBQ744mlQvKyjA@Jax-Voj~z#$9+UW3XdTD$O%CEKrq^*gGo%)<6@@Uz zT-DF1_$3Xp(WT`_&Yc~BQs#L&N4rG3uL|r#TC6)E=B3}IACLR(pUkiSH?fUZ`k0sa z=jZ3A2QBqFDOdd_&|zKXGb#|j?HXA%Y0@om@Vn`v*5-?tMGj_Kb@YK34c^HE1Rv+cY}kqVNHwF0=A^3pq8j? zG@_kbmIrF*Ix0VW06Nq{>y}_U`^D9lmU=H&v2_)c|HG#u@axC#_xm3&;1Yew_)|M@ zk&9xbk)V9i;svK3we?0Y%y9yh`zxd#%n1s(`^CKMbu*~H#Os!~K~U=>XX%wK3pSMq z%5%>W%M!jLAitm2=}YdjGc%1UKc)Qqb~``RWNq~JJkW4?Z-;>ntB%}Jun?rpA!UhwGtZVFur*g4cuX9gPdk@uB_S+*#7!+{ z!VeY;&IvzS+-t6_jaL8v`~LqWuH9lmD}$CY{XQXZlW``aWYpfOtzX{U3YD}UUnub3(CS_jAbja&+Syr4InM6;{Z2bPwsb1!8rQ$|$9g0|^AVus$xoI} zj|-Zps4mp9#lmMv#sA&!_az@u-y(OY3tTv#hy(9@P_cXWo459&0Q{_k;{2&I_Hk|~ zeR=8W|E=Z6*L1QZN*s^Bn8PHtGrRSGlgCV@Z70nISh=-zc{(PXT7CH^C*N+9gWbNT zreq55Z`!J`qW3IkqlC-H3iUUxAA6pii!6Ruf4gPo-TQX$&b{8TIY>if+ZT>->oqTD zPl>=$2j+^dlpBXUw@jZ_XZbGs{_VNsWnv#q~gc z^{M|UCvBg;&6(JH^U0*%pE)w}^7?-(UTdd2olPrV^gbhU+sji?RtMHz&1#(cwX&+p zi2qb|bM4&B6DdZgUu^sIKI+fQ-RxhMr z8wl`-_dE>9uhtk)E+ekSx zFtP|Zzz7}gfFBWT%PNtC1a9nMXg&YzJY#hO0~3b=jF`r%QKQ3r*#=37BPXumQ2OWR z4YqLeKqjANTJ|AxYm{)U;gfUc`kubakVCdn;6r$Vh0Lkbr@Jc~Uz#5;+~>YHu>O0) zJ&;a>D^4^0dUX9_Mv2^|x{_<@`T71b$2Z>5J*y0J4cJ}(I9~YlpZl?6o%AQJ`T9zq zjAi&vzk9dNMM<#!TT2{@fsLlzJ#Na9JZwfYeYQMZzwY%n--nNL&!!p6^R=&j{ITL} x>}45bpD8@(Z}5B3bNun=!-o&c$Mx@Lu)X+cT}tks8w?B#44$rjF6*2UngEu(U>N`a literal 0 HcmV?d00001 diff --git a/keyboards/satan/keymaps/denolfe/keymap.c b/keyboards/satan/keymaps/denolfe/keymap.c new file mode 100644 index 0000000000..2f6c8d8f4f --- /dev/null +++ b/keyboards/satan/keymaps/denolfe/keymap.c @@ -0,0 +1,171 @@ +#include "satan.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +#endif + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _SL 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,-----------------------------------------------------------. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | + * |-----------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | + * `-----------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ + MO(_FL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RGUI, KC_RCTL), + + /* Keymap _FL: Function Layer + * ,-----------------------------------------------------------. + * | | | | | | | | | | | | | | RESET| + * |-----------------------------------------------------------| + * | | | | | | | | | | | |BL-|BL+|BL | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ +[_FL] = KEYMAP( + #ifdef RGBLIGHT_ENABLE + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ + KC_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, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #else + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, KC_END, KC_MPRV, KC_MNXT, KC_MPLY, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, KC_HOME, LCTL(KC_LEFT), LCTL(KC_END), LCTL(KC_RIGHT), KC_TRNS, RESET, \ + KC_TRNS, KC_TRNS, F(9), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #endif + +[_SL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, LSFT(KC_END), KC_MPRV, KC_MNXT, KC_MPLY, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_UP), LSFT(KC_RIGHT), KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, LSFT(KC_HOME), LCTL(LSFT(KC_LEFT)), LCTL(LSFT(KC_END)), LCTL(LSFT(KC_RIGHT)), KC_TRNS, RESET, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; + +enum function_id { + SHIFT_ESC, + #ifdef RGBLIGHT_ENABLE + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL + #endif +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), + #ifdef RGBLIGHT_ENABLE + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + #endif + [9] = ACTION_LAYER_MODS(2, MOD_LSFT) +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + //led operations + #ifdef RGBLIGHT_ENABLE + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + #endif + } +} From e692ebf86a962e90c51302e7b17a953ea2858f79 Mon Sep 17 00:00:00 2001 From: shela Date: Fri, 12 Aug 2016 20:38:26 +0900 Subject: [PATCH 28/34] fix typo --- quantum/keymap.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/quantum/keymap.h b/quantum/keymap.h index a158651839..f2d94d75c3 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -156,16 +156,16 @@ enum quantum_keycodes { BL_INC, BL_TOGG, BL_STEP, - - // RGB functionality - RGB_TOG, - RGB_MOD, - RGB_HUI, - RGB_HUD, - RGB_SAI, - RGB_SAD, - RGB_VAI, - RGB_VAD, + + // RGB functionality + RGB_TOG, + RGB_MOD, + RGB_HUI, + RGB_HUD, + RGB_SAI, + RGB_SAD, + RGB_VAI, + RGB_VAD, // Left shift, open paren KC_LSPO, @@ -309,7 +309,7 @@ enum quantum_keycodes { #define OSL(layer) (layer | QK_ONE_SHOT_LAYER) // One-shot mod -#define OSM(layer) (layer | QK_ONE_SHOT_MOD) +#define OSM(mod) (mod | QK_ONE_SHOT_MOD) // M-od, T-ap - 256 keycode max #define MT(mod, kc) (kc | QK_MOD_TAP | ((mod & 0xF) << 8)) From 1c8d64d3b3664ef7d62ea12f8fd510231a7ec54e Mon Sep 17 00:00:00 2001 From: shela Date: Fri, 12 Aug 2016 21:24:43 +0900 Subject: [PATCH 29/34] add my keymap --- keyboards/hhkb/keymaps/shela/Makefile | 1 + .../hhkb/keymaps/shela/action_pseudo_lut.c | 142 ++++++++++++++ .../hhkb/keymaps/shela/action_pseudo_lut.h | 15 ++ keyboards/hhkb/keymaps/shela/config.h | 12 ++ keyboards/hhkb/keymaps/shela/keymap.c | 179 ++++++++++++++++++ keyboards/hhkb/keymaps/shela/keymap_jis2us.h | 32 ++++ keyboards/hhkb/keymaps/shela/readme.md | 14 ++ 7 files changed, 395 insertions(+) create mode 100644 keyboards/hhkb/keymaps/shela/Makefile create mode 100644 keyboards/hhkb/keymaps/shela/action_pseudo_lut.c create mode 100644 keyboards/hhkb/keymaps/shela/action_pseudo_lut.h create mode 100644 keyboards/hhkb/keymaps/shela/config.h create mode 100644 keyboards/hhkb/keymaps/shela/keymap.c create mode 100644 keyboards/hhkb/keymaps/shela/keymap_jis2us.h create mode 100644 keyboards/hhkb/keymaps/shela/readme.md diff --git a/keyboards/hhkb/keymaps/shela/Makefile b/keyboards/hhkb/keymaps/shela/Makefile new file mode 100644 index 0000000000..d0586bda68 --- /dev/null +++ b/keyboards/hhkb/keymaps/shela/Makefile @@ -0,0 +1 @@ +SRC += action_pseudo_lut.c diff --git a/keyboards/hhkb/keymaps/shela/action_pseudo_lut.c b/keyboards/hhkb/keymaps/shela/action_pseudo_lut.c new file mode 100644 index 0000000000..b205968c7b --- /dev/null +++ b/keyboards/hhkb/keymaps/shela/action_pseudo_lut.c @@ -0,0 +1,142 @@ +#include "quantum.h" +#include "action_pseudo_lut.h" + +static uint8_t send_key_shift_bit[SHIFT_BIT_SIZE]; + +/* + * Pseudo layout action. + * This action converts a keycode in order to output the character according to the keymap you specified + * still your keyboard layout recognized wrongly on your OS. + * Memo: Using other layer keymap to get keycode + */ +void action_pseudo_lut(keyrecord_t *record, uint8_t base_keymap_id, const uint16_t (*keymap)[2]) { + static uint8_t prev_shift; + uint16_t keycode; + uint16_t pseudo_keycode; + + /* get keycode from keymap you specified */ + keycode = keymap_key_to_keycode(base_keymap_id, record->event.key); + + prev_shift = keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + + if (record->event.pressed) { + /* when magic commands entered, keycode does not converted */ + if (IS_COMMAND()) { + if (prev_shift) { + add_shift_bit(keycode); + } + register_code(keycode); + return; + } + + if (prev_shift) { + pseudo_keycode = convert_keycode(keymap, keycode, true); + dprintf("pressed: %02X, converted: %04X\n", keycode, pseudo_keycode); + add_shift_bit(keycode); + + if (IS_LSFT(pseudo_keycode)) { + register_code(QK_LSFT ^ pseudo_keycode); + } else { + /* delete shift mod temporarily */ + del_mods(prev_shift); + send_keyboard_report(); + register_code(pseudo_keycode); + add_mods(prev_shift); + send_keyboard_report(); + } + } else { + pseudo_keycode = convert_keycode(keymap, keycode, false); + dprintf("pressed: %02X, converted: %04X\n", keycode, pseudo_keycode); + + if (IS_LSFT(pseudo_keycode)) { + add_weak_mods(MOD_BIT(KC_LSFT)); + send_keyboard_report(); + register_code(QK_LSFT ^ pseudo_keycode); + /* on Windows, prevent key repeat to avoid unintended output */ + unregister_code(QK_LSFT ^ pseudo_keycode); + del_weak_mods(MOD_BIT(KC_LSFT)); + send_keyboard_report(); + } else { + register_code(pseudo_keycode); + } + } + } else { + if (get_shift_bit(keycode)) { + del_shift_bit(keycode); + pseudo_keycode = convert_keycode(keymap, keycode, true); + } else { + pseudo_keycode = convert_keycode(keymap, keycode, false); + } + dprintf("released: %02X, converted: %04X\n", keycode, pseudo_keycode); + + if (IS_LSFT(pseudo_keycode)) { + unregister_code(QK_LSFT ^ pseudo_keycode); + } else { + unregister_code(pseudo_keycode); + } + } +} + +uint16_t convert_keycode(const uint16_t (*keymap)[2], uint16_t keycode, bool shift_modded) +{ + uint16_t pseudo_keycode; + + switch (keycode) { + case KC_A ... KC_CAPSLOCK: +#if defined(__AVR__) + if (shift_modded) { + pseudo_keycode = pgm_read_word(&keymap[keycode][1]); + } else { + pseudo_keycode = pgm_read_word(&keymap[keycode][0]); + } +#else + if (shift_modded) { + pseudo_keycode = keymap[keycode][1]; + } else { + pseudo_keycode = keymap[keycode][0]; + } +#endif + /* if undefined, use got keycode as it is */ + if (pseudo_keycode == 0x00) { + if (shift_modded) { + pseudo_keycode = S(keycode); + } else { + pseudo_keycode = keycode; + } + } + break; + default: + if (shift_modded) { + pseudo_keycode = S(keycode); + } else { + pseudo_keycode = keycode; + } + break; + } + return pseudo_keycode; +} + +uint8_t get_shift_bit(uint16_t keycode) { + if ((keycode >> 3) < SHIFT_BIT_SIZE) { + return send_key_shift_bit[keycode >> 3] & (1 << (keycode & 7)); + } else { + dprintf("get_shift_bit: Can't get shift bit. keycode: %02X\n", keycode); + return 0; + } +} + +void add_shift_bit(uint16_t keycode) { + if ((keycode >> 3) < SHIFT_BIT_SIZE) { + send_key_shift_bit[keycode >> 3] |= (1 << (keycode & 7)); + } else { + dprintf("add_shift_bit: Can't add shift bit. keycode: %02X\n", keycode); + } +} + +void del_shift_bit(uint16_t keycode) { + if ((keycode >> 3) < SHIFT_BIT_SIZE) { + send_key_shift_bit[keycode >> 3] &= ~(1 << (keycode & 7)); + } else { + dprintf("del_shift_bit: Can't delete shift bit. keycode: %02X\n", keycode); + } +} diff --git a/keyboards/hhkb/keymaps/shela/action_pseudo_lut.h b/keyboards/hhkb/keymaps/shela/action_pseudo_lut.h new file mode 100644 index 0000000000..681252440f --- /dev/null +++ b/keyboards/hhkb/keymaps/shela/action_pseudo_lut.h @@ -0,0 +1,15 @@ +#ifndef ACTION_PSEUDO_LUT_H +#define ACTION_PSEUDO_LUT_H + +#define SHIFT_BIT_SIZE (0xE7 / 8 + 1) // 1bit per 1key + +#define IS_LSFT(kc) ((QK_LSFT & (kc)) == QK_LSFT) + +void action_pseudo_lut(keyrecord_t *, uint8_t, const uint16_t (*)[2]); +uint16_t convert_keycode(const uint16_t (*)[2], uint16_t, bool); + +uint8_t get_shift_bit(uint16_t); +void add_shift_bit(uint16_t); +void del_shift_bit(uint16_t); + +#endif diff --git a/keyboards/hhkb/keymaps/shela/config.h b/keyboards/hhkb/keymaps/shela/config.h new file mode 100644 index 0000000000..08cc1fb46e --- /dev/null +++ b/keyboards/hhkb/keymaps/shela/config.h @@ -0,0 +1,12 @@ +#ifndef CONFIG_SHELA_H +#define CONFIG_SHELA_H + +#include "../../config.h" + +#undef TAPPING_TERM +#define TAPPING_TERM 230 + +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 2000 + +#endif diff --git a/keyboards/hhkb/keymaps/shela/keymap.c b/keyboards/hhkb/keymaps/shela/keymap.c new file mode 100644 index 0000000000..c286b99de8 --- /dev/null +++ b/keyboards/hhkb/keymaps/shela/keymap.c @@ -0,0 +1,179 @@ +/* + * HHKB Pro 2 US Layout for shela + */ +#include "hhkb.h" +#include "keymap_jis2us.h" +#include "action_pseudo_lut.h" + +enum keymap_layout { + BASE = 0, + PSEUDO_US, + DVORAK, + MOUSE, + TENKEY, + HHKB, + SPACE_FN, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Layer 0: Default Layer + * ,-----------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | ` | BSp | + * |-----------------------------------------------------------------------------------------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | + * |-----------------------------------------------------------------------------------------| + * | Control | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-----------------------------------------------------------------------------------------| + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | + * `-----------------------------------------------------------------------------------------' + * |LAlt | LGui | SpaceFN | RGui |RAlt | + * `-----------------------------------------------------------------' + */ + [BASE] = + KEYMAP(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_GRV, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, \ + KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENT, \ + OSM(MOD_LSFT),KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,KC_FN0, \ + KC_LALT,KC_LGUI, KC_FN2, KC_RGUI,KC_RALT), + + /* Layer 1: Pseudo US Layout Layer */ + [PSEUDO_US] = + KEYMAP(KC_ESC, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_BSPC, \ + KC_TAB, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, \ + KC_LCTL,KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_ENT, \ + OSM(MOD_LSFT),KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_RSFT,KC_FN0, \ + KC_LGUI,KC_FN3, KC_FN2, KC_FN4 ,KC_RGUI), + + /* Layer 2: Dvorak Layer + * ,-----------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | [ | ] | ` | BSp | + * |-----------------------------------------------------------------------------------------| + * | Tab | ' | , | . | P | Y | F | G | C | R | L | / | = | \ | + * |-----------------------------------------------------------------------------------------| + * | Control | A | O | E | U | I | D | H | T | N | S | - | Enter | + * |-----------------------------------------------------------------------------------------| + * | Shift | ; | Q | J | K | X | B | M | W | V | Z | Shift | Fn0 | + * `-----------------------------------------------------------------------------------------' + * |LAlt | LGui | SpaceFN | RGui |RAlt | + * `-----------------------------------------------------------------' + */ + [DVORAK] = + KEYMAP(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC,KC_RBRC,KC_GRV, KC_BSPC, \ + KC_TAB, KC_QUOT,KC_COMM,KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,KC_EQL, KC_BSLS, \ + KC_LCTL,KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,KC_ENT, \ + KC_LSFT,KC_SCLN,KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,KC_FN0, \ + KC_LALT,KC_LGUI, KC_FN2, KC_RGUI,KC_RALT), + + /* Layer 3: Mouse layer + * ,-----------------------------------------------------------------------------------------. + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | | + * |-----------------------------------------------------------------------------------------| + * | | | | | | | MwL | MwD | MwU | MwR | | | | | + * |-----------------------------------------------------------------------------------------| + * | | | | | | | McL | McD | McU | McR | | | | + * |-----------------------------------------------------------------------------------------| + * | | | | | | | Mb1 | Mb2 | Mb3 | | | | Fn0 | + * `-----------------------------------------------------------------------------------------' + * | | | Mb1 | | | + * `-----------------------------------------------------------------' + */ + [MOUSE] = + KEYMAP(KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_TRNS, \ + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_L,KC_WH_D,KC_WH_U,KC_WH_R,KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R,KC_NO, KC_NO, KC_TRNS, \ + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1,KC_BTN2,KC_BTN3,KC_NO, KC_NO, KC_TRNS,KC_FN0, \ + KC_TRNS,KC_TRNS, KC_BTN1, KC_TRNS,KC_TRNS), + + /* Layer 4: Tenkey layer + * ,-----------------------------------------------------------------------------------------. + * | Esc | | | | | | | | | | / | * | - | | BSp | + * |-----------------------------------------------------------------------------------------| + * | | | | | | | | | | 7 | 8 | 9 | + | | + * |-----------------------------------------------------------------------------------------| + * | | | | | | | | | | 4 | 5 | 6 | Enter | + * |-----------------------------------------------------------------------------------------| + * | | | | | | | | | 1 | 2 | 3 | + | Fn0 | + * `-----------------------------------------------------------------------------------------' + * | | | SpaceFN | 0 | . | + * `-----------------------------------------------------------------' + */ + [TENKEY] = + KEYMAP(KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSLS,KC_PAST,KC_PMNS,KC_NO, KC_BSPC, \ + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_7,KC_KP_8,KC_KP_9,KC_PPLS,KC_NO, \ + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_4,KC_KP_5,KC_KP_6,KC_PENT, \ + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_1,KC_KP_2,KC_KP_3,KC_PPLS,KC_FN0, \ + KC_TRNS,KC_TRNS, KC_FN2, KC_KP_0,KC_PDOT), + + /* Layer 5: HHKB mode (HHKB Fn) + * ,-----------------------------------------------------------------------------------------. + * | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + * |-----------------------------------------------------------------------------------------| + * | Caps | Fn5 | Fn6 | Fn7 | Fn8 | Fn9 | | | Psc | Slk | Pus | Up | | BSp | + * |-----------------------------------------------------------------------------------------| + * | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | + * |-----------------------------------------------------------------------------------------| + * | | | | | | | + | - | End | PgD | Dow | | | + * `-----------------------------------------------------------------------------------------' + * | | | | | | + * `-----------------------------------------------------------------' + */ + [HHKB] = + KEYMAP(KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \ + KC_CAPS,KC_FN5, KC_FN6, KC_FN7, KC_FN8, KC_FN9, KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS,KC_UP, KC_TRNS,KC_BSPC, \ + KC_TRNS,KC_VOLD,KC_VOLU,KC_MUTE,KC_TRNS,KC_TRNS,KC_PAST,KC_PSLS,KC_HOME,KC_PGUP,KC_LEFT,KC_RGHT,KC_PENT, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PPLS,KC_PMNS,KC_END, KC_PGDN,KC_DOWN,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS), + + /* Layer 6: SpaceFN + * ,-----------------------------------------------------------------------------------------. + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | Del | + * |-----------------------------------------------------------------------------------------| + * | | End | Up | Hom | | | | Hom | Up | End | Psc | Slk | Pau | Ins | + * |-----------------------------------------------------------------------------------------| + * | | Lef | Dow | Rig | PgU | | PgU | Lef | Dow | Rig | | | | + * |-----------------------------------------------------------------------------------------| + * | | | | PgD | | Spc | PgD | ` | ~ | | | | | + * `-----------------------------------------------------------------------------------------' + * | | | | | | + * `-----------------------------------------------------------------' + */ + [SPACE_FN] = + KEYMAP(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_DEL, \ + KC_TRNS,KC_END, KC_UP, KC_HOME,KC_NO, KC_NO, KC_NO, KC_HOME,KC_UP, KC_END, KC_PSCR,KC_SLCK,KC_PAUS,KC_INS, \ + KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_PGUP,KC_NO, KC_PGUP,KC_LEFT,KC_DOWN,KC_RGHT,KC_NO, KC_NO, KC_TRNS, \ + KC_TRNS,KC_NO, KC_NO, KC_PGDN,KC_NO, KC_SPC, KC_PGDN,KC_GRV, KC_TILD,KC_NO, KC_NO, KC_TRNS,KC_NO, \ + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS), +}; + +/* + * user defined action function + */ +enum function_id { + PSEUDO_US_FUNCTION, +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + + switch (id) { + case PSEUDO_US_FUNCTION: + action_pseudo_lut(record, BASE, keymap_jis2us); + break; + } +} + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(HHKB), + [1] = ACTION_FUNCTION(PSEUDO_US_FUNCTION), + [2] = ACTION_LAYER_TAP_KEY(SPACE_FN, KC_SPACE), + [3] = ACTION_MODS_TAP_KEY(MOD_LALT, KC_MHEN), + [4] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_KANA), + [5] = ACTION_DEFAULT_LAYER_SET(BASE), + [6] = ACTION_DEFAULT_LAYER_SET(PSEUDO_US), + [7] = ACTION_DEFAULT_LAYER_SET(MOUSE), + [8] = ACTION_DEFAULT_LAYER_SET(TENKEY), + [9] = ACTION_DEFAULT_LAYER_SET(DVORAK), +}; diff --git a/keyboards/hhkb/keymaps/shela/keymap_jis2us.h b/keyboards/hhkb/keymaps/shela/keymap_jis2us.h new file mode 100644 index 0000000000..cf2bd4f0e8 --- /dev/null +++ b/keyboards/hhkb/keymaps/shela/keymap_jis2us.h @@ -0,0 +1,32 @@ +#ifndef KEYMAP_JIS2US_H +#define KEYMAP_JIS2US_H + +/* keymap for convert from JIS to US */ +const uint16_t PROGMEM keymap_jis2us[][2] = { + [KC_A ... KC_CAPS] = { 0x00, 0x00 }, /* default value */ + + [KC_1] = { KC_1, KC_EXLM }, /* 1 and ! -> 1 and ! */ + [KC_2] = { KC_2, KC_LBRC }, /* 2 and " -> 2 and @ */ + [KC_3] = { KC_3, KC_HASH }, /* 3 and # -> 3 and # */ + [KC_4] = { KC_4, KC_DLR }, /* 4 and $ -> 4 and $ */ + [KC_5] = { KC_5, KC_PERC }, /* 5 and % -> 5 and % */ + [KC_6] = { KC_6, KC_EQL }, /* 6 and & -> 6 and ^ */ + [KC_7] = { KC_7, KC_CIRC }, /* 7 and ' -> 7 and & */ + [KC_8] = { KC_8, KC_DQT }, /* 8 and ( -> 8 and * */ + [KC_9] = { KC_9, KC_ASTR }, /* 9 and ) -> 9 and ( */ + [KC_0] = { KC_0, KC_LPRN }, /* 0 and (no assign) -> 0 and ) */ + [KC_MINS] = { KC_MINS, S(KC_RO) }, /* - and = -> - and _ */ + [KC_EQL] = { KC_UNDS, KC_COLN }, /* ^ and ~ -> = and + */ + [KC_LBRC] = { KC_RBRC, KC_RCBR }, /* @ and ` -> [ and { */ + [KC_RBRC] = { KC_BSLS, KC_PIPE }, /* [ and { -> ] and } */ + [KC_BSLS] = { KC_JYEN, S(KC_JYEN) }, /* ] and } -> / and | */ + [KC_NUHS] = { KC_NUHS, S(KC_NUHS) }, /* (no assign) */ + [KC_SCLN] = { KC_SCLN, KC_QUOT }, /* ; and + -> ; and : */ + [KC_QUOT] = { KC_AMPR, KC_AT }, /* : and * -> ' and " */ + [KC_GRV] = { KC_LCBR, KC_PLUS }, /* (no assign) -> ` and ~ */ + [KC_COMM] = { KC_COMM, KC_LT }, /* , and < -> , and < */ + [KC_DOT] = { KC_DOT, KC_GT }, /* . and > -> . and > */ + [KC_SLSH] = { KC_SLSH, KC_QUES }, /* / and ? -> / and ? */ +}; + +#endif diff --git a/keyboards/hhkb/keymaps/shela/readme.md b/keyboards/hhkb/keymaps/shela/readme.md new file mode 100644 index 0000000000..cf5f291697 --- /dev/null +++ b/keyboards/hhkb/keymaps/shela/readme.md @@ -0,0 +1,14 @@ +# Shela's HHKB Layout + +Layer 0: US Layout +Layer 1: Pseudo US Layout +Layer 2: Dvorak Layout +Layer 3: Mouse +Layer 4: Tenkey +Layer 5: HHKB Fn Key +Layer 6: SpaceFN + +## Pseudo US Layout + +On japanese Windows, HHKB Professional 2 US layout model recognized wrongly as JIS layout without changing OS settings. +But, you can use HHKB like a US layout keyboard as it is. From c9272fee083d274c11bab0d8ec5520b54961f7fa Mon Sep 17 00:00:00 2001 From: shela Date: Fri, 12 Aug 2016 21:33:32 +0900 Subject: [PATCH 30/34] add new line --- keyboards/hhkb/keymaps/shela/readme.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/keyboards/hhkb/keymaps/shela/readme.md b/keyboards/hhkb/keymaps/shela/readme.md index cf5f291697..2317e880f2 100644 --- a/keyboards/hhkb/keymaps/shela/readme.md +++ b/keyboards/hhkb/keymaps/shela/readme.md @@ -1,12 +1,12 @@ # Shela's HHKB Layout -Layer 0: US Layout -Layer 1: Pseudo US Layout -Layer 2: Dvorak Layout -Layer 3: Mouse -Layer 4: Tenkey -Layer 5: HHKB Fn Key -Layer 6: SpaceFN +Layer 0: US Layout +Layer 1: Pseudo US Layout +Layer 2: Dvorak Layout +Layer 3: Mouse +Layer 4: Tenkey +Layer 5: HHKB Fn Key +Layer 6: SpaceFN ## Pseudo US Layout From 11e23fd3fdbe86ff85b2be7783c46d4360b07360 Mon Sep 17 00:00:00 2001 From: shela Date: Fri, 12 Aug 2016 21:45:36 +0900 Subject: [PATCH 31/34] add new line --- keyboards/hhkb/keymaps/shela/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/hhkb/keymaps/shela/readme.md b/keyboards/hhkb/keymaps/shela/readme.md index 2317e880f2..5a06a83632 100644 --- a/keyboards/hhkb/keymaps/shela/readme.md +++ b/keyboards/hhkb/keymaps/shela/readme.md @@ -10,5 +10,5 @@ Layer 6: SpaceFN ## Pseudo US Layout -On japanese Windows, HHKB Professional 2 US layout model recognized wrongly as JIS layout without changing OS settings. +On japanese Windows, HHKB Professional 2 US layout model recognized wrongly as JIS layout without changing OS settings. But, you can use HHKB like a US layout keyboard as it is. From b98d47abe544c68ffba745b6643a777f8f61a03c Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Fri, 12 Aug 2016 16:36:07 +0200 Subject: [PATCH 32/34] ergodox: Update my keymap to v1.5 Major changes include: * The **1HAND** layer has been removed. * A `Delete` key is now available on the right thumb cluster. * The **ADORE** layer received a major update, see the updated layout image. * It is now possible to enable automatic logging for the **ADORE** layer, by setting the `ADORE_AUTOLOG` makefile variable to `yes` when compiling the keymap. It is off by default. * The `~` key and the `Media Next/Prev` key have been swapped on the **base** layer. * On the **ARROW** layer, `Backspace` has been replaced by `Enter`. * There is some experimental support for entering Unicode symbols. Signed-off-by: Gergely Nagy --- keyboards/ergodox/keymaps/algernon/Makefile | 7 + .../keymaps/algernon/images/adore-layer.png | Bin 95615 -> 93748 bytes .../keymaps/algernon/images/base-layer.png | Bin 95654 -> 95222 bytes .../algernon/images/one-handed-layer.png | Bin 91140 -> 0 bytes keyboards/ergodox/keymaps/algernon/keymap.c | 2422 ++++++++--------- keyboards/ergodox/keymaps/algernon/readme.md | 52 +- 6 files changed, 1244 insertions(+), 1237 deletions(-) delete mode 100644 keyboards/ergodox/keymaps/algernon/images/one-handed-layer.png diff --git a/keyboards/ergodox/keymaps/algernon/Makefile b/keyboards/ergodox/keymaps/algernon/Makefile index 6bf3976b9d..00194857ac 100644 --- a/keyboards/ergodox/keymaps/algernon/Makefile +++ b/keyboards/ergodox/keymaps/algernon/Makefile @@ -8,10 +8,17 @@ CONSOLE_ENABLE = no TAP_DANCE_ENABLE = yes KEYLOGGER_ENABLE ?= yes +ADORE_AUTOLOG ?= no + ifeq (${FORCE_NKRO},yes) OPT_DEFS += -DFORCE_NKRO endif +ifeq (${ADORE_AUTOLOG},yes) +KEYLOGGER_ENABLE = yes +OPT_DEFS += -DADORE_AUTOLOG +endif + ifeq (${KEYLOGGER_ENABLE},yes) OPT_DEFS += -DKEYLOGGER_ENABLE CONSOLE_ENABLE = yes diff --git a/keyboards/ergodox/keymaps/algernon/images/adore-layer.png b/keyboards/ergodox/keymaps/algernon/images/adore-layer.png index 3df68ea53da8a4be15cfbfe4dac5f0623bc0d0ad..44ad8a1eb7560b552aa6010b2051fcabb00f01cd 100644 GIT binary patch literal 93748 zcmeAS@N?(olHy`uVBq!ia0y~yU@>H1U|hk$#=yW3A6>VQfkA=6)5S5QBJNErdq{}8 z_&=5<8XlV$x*f^Wxskmnp~vu8lkUc&_q2}*S>M>*bWF(lTioOuqSdY&T$0~(s+Kv- zn)1~C^B?g>-S=Pv zla)zVBorMu1ejVFuuwAvJ-oaQ-QJ$RFhFC%tXZ$#J$@{FcA~`pf4}p0?cQx&^!%J} zhah&XEewhZk}OF{Ngw|Gt*-fYGu^W2&i;CPgYb1R++1Qh8j`G@f>@jl^~)3vo9b^o zot>R`i#O=>?5X^GNlfUKG*&l)Eb?Tzac$D|_3_QANlV1_<6zy=4Xv3|pnA5Mj{}J{)A@S|x-%aKic+CQ5|e zV?0rl$noapX7+^(7jp3Pi-$QTE&cQ7kAR2>%eVR}uu;(1ouJJmviaoI%_-uFA2=D6 z3|E*7FxhbQ$k|FoZ_9C-2v_1VjLB~Lespl*|56_Vn-rW;!tM&^<8|{1Xz-O%#?LF>n+W=?eC(f1NLWyNkTetQvO8_1E++iFFB^_^t9}-(6|&7xI0et#;sdkr;cseViIE^ z%_$vi{iNueSIUO9s?M{1dG}RJ6lqw(gD^HihDl^|gXw6t~BBJVQ1Ixd{eyzI}>^5PR~(+WwSLLj9oX^ zoVb~?>MF?FSIZe6GZcJ!;`x}vY||AsUa6E!$IC50-d*+nVY(_iC6`B7zV3_6ozG9j zU6M{5jc-$Q+ses!Sir;A=g95d75ix)38%)F%1($aF^_HF5-U82Tm#fwhYeR&}$XJ6Oz;6cJWtDtW$j1BP=iGfr$ROgJs(vcIzV(9y2M4^uQh zu%SZ$sLY)sg>Kxqk#M+;*J`4KaP?QG2R)J>PE6;Y{QJB6{{;$9v?BsU%r|gO6cnF1|7^GT z;1Y*jgW?BUNnx|08lii%a{ z2?V$**vkIiwe9#}W%jF!9={3YkmZ}ZMM_Co_T`Lz&yFLmTPrFQ^p_A=kbLRQO z{dW$&%)Xel@x=SQ{!(Erfr*ZfyCMZ9B=aatIWptQdiirQ77hCQ{)#!Cp4Qp7f7gt) zffpCe*jA>y>dNZ&j?2pp7rOJy{CzGzH`&bc=#53p{!DAR7?ljyoVt6=cv`A{OMAO= z#T}=uy&H_BE?pKq7VN-((z57AhRtQAidzCKEG!8(HY8@9KXPKv+?4yjzH+>~?7o(* z{?6X+CfBYP3uCWoy;5^YO$d?Xcpi^lJZSe~zv@ytG}wK$XedyzSwQ4#lY1Iycv-?u*`dZc5h7wQGefIzleM8+h3$Hzs3j2Iu&A+8SONF*Na};oBB%AF#%HWh_miGT2 zuk;2L3yH&NXPq9K<+{8VeU-GW?CPq-8)s(5OnbMLTihW3iAT=P63^u`eDe&=j^->X zw_Ppdq0$z*^LE9tuyrw#cdhu{QtwMeN+ojVOuM_l!@qrPZ|_Hu3(iHeoET@zSU!04 z=u~P*AtrC5`24Peq3KglkNYkY?8qIROftOP4P(NK0Gn+_mDz z>yJk@{#fSQDk&=;ZJP5$fT>B~#;3LRaW1h}qo(ERzO4N_FLcgCLqX?{4E5Q^nav`a zd^g!EFMfSx_KvR_aoS=z*(VpWUVYKSZw3y;@mp%yIF2b zb1Z6nUElrwzHvpsLZweTJc_G5-~5iav!{|-@8*}}Bi^5{#TR{Bv3st{?}PLD-`{&W zT5ZkqIFt+{7H+JU4-V8fd}gaPbzMtL z<&u}{TW&Fu`!P zOfthl!`T~cm*}Ns2QTGvJ2SI6E55Gt#O8EEV*`QR>*K{`K)z42XSn3d@uHhyqQoyH z_ph527IYq|`20*%>dN=*lJnm{U^ZRhY3+nB-*odU%k+*VjJ`-J;QUeqQe{-`QOA1WYGNe0{a@*Xq^5f-S0chDTT~zM5xSEpzT?sOR!G zDr~!r`sV&l?ChUEU*06vRV{qC&P9Kp=e4nQ7b;dPzob?@-R4E@+x#1;yHigDXF3GzQCeQ z-qM{5_1FxS*muN+NAoD83OzpZ?{9=fp3FSkx*n%{_wG1;;NADzui(tG&LbP1NX+)& z*?6Dt^(1$dw$h)sGp@bzO4?KLQAYdvpC(~-{zo@ItDkuMsH>{BCG&k^*{fSA81?=XAqKgmYXsD!Q#v* z|9ecQS(p9`P{l3fN~+InQ?b|K@0%x|II?q>#P9Rb*A4VE1o-9t^md7^ zPJGw1^us4D9gSmZLeBH&Ih9V~5a@KQbrfMKQ8diE({p6Ofpro$s&KmC)$Imj9PLM2|_%m{6n&7?_w*^$YrXRbyqFcgbi?-hU-TD~~ zsjV$b)cRgtQhi*YVL4Ia@ab!g=TnOfU*DF$P=7b+&1}K0m*M^0m(phl_)5y1?CgxV zTd#61|L$Vp&X4czT5oXnK3&T1u+>l3_3~wzCMC0XM=#GkUij-v=DNzX>mT~KzGN?- zWtzhG_e*Z^&2QlmA7@LaPoF(|_P!*QQ2kHWk6M^!&WTbw{QR|A#w}jj1;(+v zE?T@e)zVG#c-+pjnmsDwpPbn?*C#yelGu}K`R2{rjXQ$vb#{DzDP|(OtK-(9n#g$* z>tznU{ZRbE!dhdo-9(A`3sP=-8l@+xsHrWATwN8hIZ3>$F6>Oe_Z3&d#gn(^yzc+@ zcGrTR<+*~JGOXhE)-_(JT+Mp)hD%b%J0(O_$faud=+V8!+3Uk*NbO;GdMYd=FeC1S zh)vZWhHkMJ(@!qQYdCx7#8L0%hUo`W-rT5hxxjFmi&N3Cr+v-8Nk1cM6&Zc<&tHo8 z;;-`SneO3Y;k!oNkOpu6U-VIj1*e;+4a@I-6_xZftrj zzR7m+wX4tVI5{~dPC3`6aoEU6XoZq8hfgK@P~c-$?3Q}bo=>NpX^ff zR`(vM_;o!t=U=5!+uIoC+de7=6D4MO_H2DU{n5e0)iZ1g=k3$G808<^6T7fWeBGRS z4tIBVn}5$0Zn^)7SjS4={&tUK;xzOLnC>O@`IG3j-uaF9PCs9L z_R0mZ0~OWPi!UD9s1cx-t=6xkI(4^Im~f;*o9?eu0h6@f921q^y=K4P=GDpP{UVO! z_TIEREVwVVC^b_}RaN%=qe~Aa1lvX~Snro~ru^O17q>4k-1F{w18Fywhp+$L z4Or09e@=xh+c~z)^U!UHkkui~-<00-i*j>pt9|zBtad?B@ZMX~WFt<^;};AKnN|H) zPxPIs*5Q+$v!X?Xgo6cz1zGvSL;uRGa=nymlvJuP$(dt@B%>JfiNc;qpXVs4NPj;6 zc=^Un?+bQ_o;jbIut8q(+xe)LbD!0^FFiI%O`3Cmmvp(l%YxHQE4AJVbS|8EWJTb1 z7QVlAo^N}rlPr8o(7iUwrtxZNZNhb~3gCjw)>u4U>7+f{JZf7ZH}0 zNfM#izaKoAsA2MNom!tvM?-O5`jVwfAFfsl-Ke3`b30h>*J++LG249g_g>-MP%Q4_ zcGF1o!kU%8wEa7eT<}TK*q_*VY=Q6or1TFtXZDl@>EGv2HQe=7uj`9Xwek(SJE4aB zMyo!v8aOc-U*r)86qq0TN{r)t{L%xv6L|%<3dCP|{CN7qsrt*i5|j*&9G|5k#PrO` zLAW#VW%3j?A!X}_`FeM@ZareAF-ZiuLsYxHZd`=w2jxrXI;AcX4R2} z&h4vY64GBvq;2=s=nOn(Zoe+JuIbj-(+O|8=4!<3&g7|lQs$hMpX9Xm|Jbx`%5rsKP)t=+e3jax9q#h|j_bxpcWuAuf2b65a@1E( zU3H{<#q?e8k8+&hxq4gT>(4hzLWd<*O!jeV5D;KyR5Co`5Evs_Q`{vWw0L=Tq0Zm; z{(Gwau)JnIu4wqpmMt%4*`}k;@n=nsGVHbWN<8@YbU|6T?Vp+F^>)rnR%n=qHDw;gfA@LAUZ=mc9HP_d3}Ba#iGPow=Spy3yMf z)c^mN!2TlCZ-0N%&!>gE_SiLizFPUkNGj0MtDxolv0mwmTQY;!d5Q5%6hHb&{E@Kg z%J=enYuYsSoJ*P>AhbB}@~ay=((L=>{xg4eT7KZ{RoTmGtq+czRKBsPR#(k;Mt7L* z?b%o2lnhNKOC+!QvH0zh`5Qm9$4P9;6)p3h*S&JOy=+%jko({LhWi-YJQBWr|9P52 z+NSOFj~Dw=%)G9y>wB_9h2?r~*GKhl3e#7=+Qt`~6T1C;dD7hcj~1`o+Gec(RpvT< zLZ;;ZXPdh{cw%iFK*MAQrf@`9cNRW=;rZ@aUtPBN!cW_KUE1UB&Y2`4-d^f_T=CO) zkKso)_G5W~vTbhRq7~S6lL1pV~4%j9a0wZ@v{9-_A|*&a3P?7{&7G z?9^*MNgIp}+4v<|Z*8@co2T2_-hX7m<5?bj*|x#oWJ_OrDZYK}lC)v>CduHUtRU+U ztuTj<8ZG7rzZQ#UY<$2medi&+UC#{W>=Bw;b1K5b?z;Rv$L^oX7Q1U|YFL);Iy=vt z^XF%AhwbveJ&%=v!)v?$+~cS29sclZzWRyyJrY&A^V^NSX3e}>Uc=Zk;lP{am$qI= z59KJ&KGHR>aYp%bCO+M$#w9;kw#e9CN%(!`@2(^3R`XhYmj3kQYl!yz^Lk2#JZ0RR zpmJPUG2yMsu}ON&fr~?fV{U8{Z#LH#mrX4#J~hoS_`!oY()an^Ht*PevEug^ORwuc zx9pve?<8}X;t?~PeIC3sV^0uAy z_%T6c=izq|1(Qx66y&pf8(PA5b35b1_3ski-`m^d(R1TQ#+LsZHLd<#VD6PNYh9jh zr=oJ?@%sJwkFLB-mM}|^d1Dm2G_`A=qe@$vkn>O8``h?~e|X+xi)T<)F-U%%x29*` z`MC!#spm`TR2Om|j5j&l@?md5(a$MtE7!-q`tU0LL$QcXER%oUzgDMI??uNq?fkGV z#BMRC-R_Pf7p_Z(^b07k^z=5EPL?Rlzn}P!f3M-U6MR0oH@KX)uW#yJ-o9eO>e<0= zQ&xAsT085}kyE@eZ7%EMpQlTe&mEfDT}`0QER3d^~n+a{=}ELHgD zY&2(ec-z{wy!nfZbSF$(=5S}KhK2R5!zUGAFSH8e|KA+{f$!Xx6+5E?);K)WF;G!a zRr=>FG$;F7!`ii4oJoFXZXBFlI9>1X&5N9Ve0`B2omC&i|1?!8tEssObRN{&EZlSR z;oKbWlef38->DtGI&59*xBKNsr+<~2btgp0@P{YQWNTONW^j_tNqVdH!oZrN>q^KP zZkcwryVga~-utBO97KYzF8%jz=01jfzEVZu*W`Ye%If9a@AiDoC(x$x0U8{RT?BL?l*PJF!YdgkV-SvvEw3y3!{i3%^0yAzb=RTKvt2KFlTk6es zn#W=^R|zU{KHhwKmM0He;gPG|Gc3!QuC2YrtK4pUyfVbiGPx@4TiX z9FgIha>Vwzs|z*z2ED94w(>-cs4)NaS)qyf`e(EM{csTY{QJq1kRx$@F86F!{bns@ zsk!ri-oE#{qyDN4_idUqd9q;jN2X8D3d02_E_PLYXRO%H_wx2W z!`FhHiM1+h-V=?5l4h^r{T)FVxIe(`Oe9`ONf;G%(P44#g)3i+9i2@ zk}+G1j=p2om?$y7q2}{5(LYi%{vEfEjX5cv ze7e*(rL*kiqj2ZbpVn%(-icA>>iqcUZFPm|irf{pn^yk+^Mtjca>ok2Z(AowoWH-X zY5M*x?2DeO_Z>d1EI(0#;ojaV&i!tss&~^5_s?st-uFk#s_e)A(%2&2gp#e<|KGT7 zC@(s4@WRs1r|)P#L3HhFcQH{I;bft$V71|Of;9W3rzSG-j7jmRao z`!ShsXG%C3n50V9dhl4T>AW&gVp_s<&EIX?N>wLHEc@cJY}*k9!%tyfkGx);-;>t3 zJO5gA>b=0YWGM}9ovQ!?ziW?ISmnblwyOIqjq#|BsJ z8>|a9=kMDjUw`!1e@n^L$?~6GEn3;ItD*RIi{y?CrTj_pdmH_)dfi#8(Ryl%h)jV{ z=fdsQE0h!+I3y$)l?;2hH|(-}diV4H4U4WD+}SO`xc-vrh3ua-HDM1gfBlklZtAhE ze&#Q0$^<(XO3yo{m&?&Pal(v-XM1NQUOT@zaBom)bLiF7w}-De?>+wI(AwSG1NMbf zu9>q_$klkR@uBT%NoVzl(mHE_J$+x-oxC--`BxeGG2myKh*E>agwz+@B{A`H%ZcgjKt>dh%a? zVFP2W82-0k)*nh2pD6Jw+1r$p(dobr4uQ_Zn3}H>&zUcOVHE!A^1h9)KHOBjKEroi z^tPX3zrV}hKmNV>*26n}p9=~K3|2(H-1P0G$PK}#UQ?VC`V%8IRN1|=+tXh9`FiRW zf0Z`Jbq}y7ese`Znrfu(k#zpMp+fX!D;HlIBj;-2? zYGRkAw>o~fc|S2d|NP%sTUXuZxN+;|!snkVKdk)pagBJeZB3)(M2TgeShhNI2r%tZ za!_eo*CDyz=KdU|l65BgmhIYlAbomFvf0jKH)>SaUduYG^ST~261}*(R{yS*_qI#B z*3@>@2J%e*7UT49&(Dv4o)%xpjuz+lt37q$X|yos#?uPPDFHJ*csQ*Bd4v{U+Ado7 z_Wcpp~gt%u4yuY`nGqaiP z;rrLuAI9!7IrjGxw^oRG&Hs6dvJHIS{foz3p{%=|}na1D+~vdKp2HpnRvw z`q_t|M2w4ThB2=?%(&Xg;}>X z7e_8X-MuEH>3!?e*9_VzPH#fC>qUKi(U>;Z>f!cY>5aKJjdFGu9nJVBtTZFvX-YPO za`^6!BLbIRuLMmI&H%NZ&ou7(X4ZM+M~nZr!#Aw2tn2;8%(kHL_BM+hrP|x{yd%7xeC-j#@{w|TdC#t%q`| zW>4LBu5NYxlNs~#eN~R=HTO((OjR;edEsK{(W4f-|KPz5&TgCiE_ctdz1pR@z=mN8 z#1kz?erRiPrPkCQWZK#CqoO8s3CFqp)#)bxIR(#{E1oLdsE_7_jUGMR;_(j;9<~q_ zuIaK|?3a60`(D3HZD08M$swn%ubj$nXLqh?K}F3UqdlLVhG@PH(4F+#XI*hu%v&L$ z%~uP{kDvViuX%4X^Y+jMj*U!{`fomwO6HDyBW*40eD~J#V+UuyuwKW%D9?3aR%=#- zU9IJwPt}5*iWwoIVI3Yki54@rOp#D&^Ar`kAu&;6R%Go{^UTc58yk~Y&&gS}wC*nF zcDZJ8wByK+mepHx)NgKlZP>It=J@{qY7aJ_FG~FNWcn^z_3VtLqpMIb(h4;)7%rvtN!0uX|c?IB@a9M?VfF0bOl=OFz3zL?p(fd z|Nnp1RbO5lylI(p!=Ojfn9a}6&%?*(jKH!#<w+yCv50#Ggq!tI`&cp49QuW}oRqfg(4bTAe_#i4sCz zW=W{9#h;pNdFEMl;!~>wTr&lx{#)_tNz0#BuEd`Y4{Jm%YO%aC<)YgC7LDuiiBGbo zPw?qEbhIq#`nF#yqK*nb*WYt!n{59_?~JoLe0lM-R-((>z(v& zO_r9*u^$UGo}6Ihkqr^!a#X#S%BrNVA0KOk?b>qk zm~biY$D=t#y&GF~zA>w_FREGj>BZfJ+aqhI>?{Pu!ETl0o|z(wLeA_DE?*K!_c zRIBst?a5a!E>`>8YbU%YM*MftR&S2ZhtYq{OMdK=aJQC$}<&lxq6cvw~UB3$o>YYWjzZvHK{`dEL#=T!Gd9m4w)QzxgLqm<|Z93QeXVmB4+0hufIxO*6k7SbvkJ|SuD}#T0JTCw7$H(N1$-38lczkO= zyx90Wwj~_{o~!qFZb`aK<=;Y$9Bp-fB0gB-MWjS*@mY+ukGwO^1ywj2Txs( zk=K!<>IOZfeZHI0V6+ofB7HwyFBUVgL7waM{~iM{`?e*jAgJnyx=TbvLhe-pVJu z%7*LW_n%8mPN}=`y#DW3@jG|!e0X=)I%GuvqyK!nvl}Mos!LiFD4d$Ay}a!8L?Pj& zKIP@*Ix#yY9G>96&F=B?jjuYUb}sbYUnsoT!2XHZwe@Sex2@glYTWA4;~#J;@%7RP z^7FEG?<`DDvaqmv5`PeHsyV*s8iCNz2C);vGN{$d)xfM+gO?4 zX6JyL*UyAcoM*%5?|+r~@E_^=J$c?IT2ADtXI@;&9aZ+W>%Ljefp@0a8$RB#l&xC+ z!}VuGZLE>lx%|7msdw3wbv}0f=z66w(WA$|!M1)X)BCnp>fi3y)i){H#~y69W{ecL zrY_t(QG%V%?&-F^Em`GS%EF6dme&5L?YHj|FMoKe;==>ms4bkw&z^X;N!jqmAtMC^ z2A$ilUa#MO?C*piel|V5N}fxnFPv(dAknrh_sp-FY^7629=Okk$Ui# zdFu{i!(Csk^rbovipc)DoVq6VJA>hR`?M&ZnRU#Cg_;s_5q-bEA39n-;q*zdWcSnW zeR^EG#R{KGZ%BW9tT*Gv2E~aIGw-$Q@Bbq-+dTgn-T7Evg|)-hFj&tq-aI$Qn$!A8 z@Lk0XJhRWFDl01sN=bEX&Ay&Bb*^l9+p<_|!XlgM!0B&4%VK4EJL+Rnm5se$`sWBhlbq{%%3UOrsea zQaJ6_M_m=z%CkaW_!SXb*je&)F}e`{@e$N#NYRfU|{Q;a7|teIs6ioUZApZ0EWig+Yl z@3ydJr`Lv!8y#crRA0#r5WB8C@6`j>kKLbmH#n)eeB5djqjbMTW6F_^KaV-&-0vND zxAJr65raFrQmP+V)0{kdl8?_%{&8Ng;)j9Uy?Z+i%hN(l{_P5wX7=^2-=P*6t3N!9 zx&CP>Nh<2g6VLq6SabhJ!|u2p(bFHz5PHL1UH$W}Uy{r9$r(-u9tj$Vb{=d<+HUao z##+|5L6MF3I#MJbD_|9Sr++2CXxkJwal(mu~(X zt14MNy>&l6Uo++Tzf+&@oq2H^r~fwNi4tvlcvqEfjpezx=6Siq-F%Z--?P>^C1w2f zi{Z8RR0f5~=E)MTI(U=}d%TlUrq%s;QI~ULi`46|**~>{1h-9oae>!2EJQ~r`Iz}z z&@3;HZrD^09_6ZjeFI^qB#A)Vy{@NU`ta;^T+r3ha7NHTwe#Qt8G|26*IMo#zc;r| z%Vq7l0O8Jq{z-rA>NO_`3ti0ms z>qovCv9FS~cI}kg#~60EMdI%>(^tQ*KdP&p_Gt37X>FkOgzC3FfBA&RZkzn4^p}m_ z+Ph75tDO#hJ2tCYU+40C{RY8ViAtvXKi+gzX}ec(O!i=gJk=9|*+l z{nxN>uYKOcGk;9}uQRC8PTlM2HhDWJE%)qttD-4ymk{&Sjl=4%bkXkGJsZ!@;lCfF zd3}bjhnm~@eQzH`uav4Pk?mmRUapvPc>Rv@*K;lJvhD*dhA6zN+|r^Tq%8dG{QZ6H z;m!TqD?EN)bV)LpJ2l$-##_}A>&`0uu8nhBJpa8uH~)qG4&yYx*p4XE{U+7ZA4(@& z_3hv+EDX@N6tFul^_`oLrftuG9To4Sa^B`VoT0tFD{I#TiQ-x1PPaW5KM1}$-GfKj zdZxaCve4lZd~S*5K^=<%t0 z%sY1d7x=Y?N3do2M(&Sirxx|zY?&azFL&?og@<=Pez__9<&Bv@_w=&|*RBvhR@NEz zvj()(<0=4+PBFVAWmL>RqF@-er=sthz1dWr#)Cdj z!5&!?msBGYG->ie4{zae7NdY!y=!&f$jUsNp*=mybJqlkSAJ^qtDb7uX~$o4(EYmp zocMtNwYGmZq!z2?svEMcQkg6;L5%5{g5eRT1`nRMD#zB_wk^o|oFB0GYI%}l-UOL_ z5)SJOXA1}^8*g~Svx~9W`tg^Kv)LZzW~72+!ddWK)O;gDlLsf&R(`R49I|ig7atzC zgg22=9luOZH*K4oQ8)95f?-?lo3l%ImHys1e@FgW#!ElgB7B7xG5XHhx=K&QEzR}m zmboczkINFGQ>UB{uid@K`-I8nU#)y04yd8dUbqMF?TZ?n%oY&iVEXT=%r_9>(bpzju z;MI(Ekyf*Bf3nH@ay)wLnXey?f>sy2mQ*ra({bd4PlCbb&LakToq?Z<%crvS$#pmw z<|k&(f3)wF{L+uS8;a%%w6Ym^oq6h#)U*DkM5A?>a{fi7V=scLPCns2({bbici1Wy z4gn@LhXc1fdmd|Fd;Ik9@eH#hg?Di~nl?+9CtWy}s^$<^EL>CEbwOf5{yrm)S_ww? z^z_ZQoK=pQivGF3r;>F)+x!!ol8^H%RJ`(Vao_LSopxV2<4?|w+qY+5&4;Ftb`KtH zMZ-Gg(Uy@Ju6}DKXWsf#8RqC#_~t{chUbTuUj;} zgiFZA8BP{?%AL@1Vp5GU_aWFbL@UyI$ zd*sFYP`OxfzvIUqIu?A^IuPp}x5CHMc7n)yuKRP8Qr3z1OMg`P2pVPU_2BvVYl6h2 zA9Xjjh7`H+CXwzihFN!_*Rgub5VT=BG`T8AudV>4J(}h)MZ-2QI zUwDF(^UR^PKG(V5)&^`zvV1ekhF@Ra#_2(ysheBe?uvZ}dOT2*=0)A|z&!1f<;rZ2 z98Rp?QT~w2?eD&u;G`L79)3!ZZ9?{$Wqn5`IQQhP?5!cX#;PBzx7D%t1mzfop?wZ``=`;%=XzmewVajvaNJ z-_H4M2;O`=SX@YXbKS>_h6%U5r|sR5%d?gB^b>B2&LaXms-mDJ@%0DpIxTuRb6bkOU)(Q?k3DbiGu3UidzXLZ%T6oH^Zs!S)7!gGgnF)s>NvNl2d_tQ*&J zjR{v zrEgeT9WYz|YmHp2N6(WbDmSdHidG%jSJzw^y8qCk`bA$teWz5_Fse_KSaiV0iG$JU z00*eNImp-jZf6c(&8lBbf{z!Us&72%pD)3f`B3TSGm%p8BF3V=o1igwxn%BG;iE^~ z7C(P6Z%4^np{!rmj=YLoJ@L4!sdD&_+ldvP`%EWJ*gEfFRKzwG&_J5Kp+`@e?f%0r z>K0$z6JFe{Zm9A?$x+KtNZHm_cCmZ^v1@CiFQ&aX|3NQU>?fD!b2o0sHijKVk2K2K z&K;Vd=xmU4!{FU5U0=qYfSEzs%egxZmv!0ileS~H%DnIBI?d05pYL;j;g8M=VyJMdwcGH)9S=zaI^|{CSLPP zb9j78_qLPRZ%6K?2d^G=#o2#3v?_P?2Rl14;dU0u3%eeMf(p#GH?hyEK_ekD-{0T& z*N>a?zsuXqbLo4@LMl zD=I2lRDN2r@`2b^*=b3VGBP~&_V#}3woaD#t`~dsR-^snqs_-PLYG@rt)IbPzP@Qu z(z?|K`x+*D@Wcu({nWysn4kqJMLfFtk6+Sb{`mZ(@rRXBoVC|=ru<2~SfpwgF@JjU z8MWgQvwwPVbO!DY)y?6#*&=jLwcz{1*b@1xyy@HKn_m5}Y?~~2aO6x@1B=vhA0AE% z#ob&kNgfw8t5z&Ib0om81G3%ay7Q!;s|`LWX=rqK@O<9ww3y8$$>WCQ5-CLojttiW zw>)_?%lP+My1r9syOU&=t!Bt|_0yrhlldP!dC}5xgk?%z1egCgd(+q1?ka5$KR`$S z6@;8iJkBZ^d@h@$8@+9T?}PIiVaw(m%~h{N-4=7pFKODnBlk7p4|vX$_#+X-2^zWP z2aQ~_m*=ki1RA+Eydjogc`WCePf|rl+40#Yw#SGWTCdm55B1;ETa|uodY=c+;fLx% zhYNUIrziBPw5?vPJx%vkPZKM5ci(bLmSabcE-L<>c1LkWk{&7Ix}?d~s2EYxtT?N5g}hY;Nd^ z2Ss;mOqg_c&%-IVBU!D=j%FR1x3-|T*tzECp%pjR_F6s=-FwzMyL{1y%M~rHtt)vg zL|0~d^mIO5m$o+KR`{21yn+>f-)DRH`aR^}k+u#sa+2f&5vgWXN+opoH_9N0N)1+alL) zu^AR+dS25m)U>XBks$5(VDImG#gdOAZ|?7xx3ja0sI+o=T6Gn9?~&K*@DEt`9yz~U ze{6q`dt;GmZ^NROF8g-W@{1qWJ@sMwGLf5KOjs`k1udy8UDIr9og1o~am#}zOwo5@ z-;*gNOFUn*C2zQX=;A%M$&m^|hfCgbY<1y~kVg3P+fLQo?8v?sPOVvoEUt{;pulXP3sN))GPe&Q1OE?;MzAn!O?MFq=vCwVvDc+bv(M>&m;B zANRPM%~ZubK|?gv<=D<(!4r=kE?iXIeroBCHxtkN+x0w^|N5b6+qbIRpIRUCNA-B^ zzB8S#woUeUwDe*yr;_0pmcCVjOhPUW(w&NqrK~HD9Mi~EX;V-X(mB#mXnCCBn!x6h zn#aVPl8)@_ckQ3Q`|+i%-YcTF>V=()VNEx^d2CtD-Hsy$GP(OoRpYr!j%vv}Rn_RT zbuM(@?6zKM$>xnAcH7h^#^$GX@>^>+&22omEqa5yaOX$J7A);dVd$)~lqb)(R++!9 zDs4-4r?wTjBt^8%_waUd;9zn|;&AkoN}Zz87L&|Ss={_O=hBPnS4laFDs3iP&aYyf zDA88!dSX{lw6;r<#5-nD&TC#tF7EEhmzH>PaB? z5=CFdCrTWvc0V%3N2P5>#v~o51A90GIuqmmlxD_yCY>;4o1opP7+x>fx$yLD?e&{n zl044L*KvLSbf&k)gJo4KlKL7l=WLty<4{rAT&qr|ym?w3&ocr$y?s;Cli*vL&M6z7 z=Ll}U>$M58si`2^>&cwXgm%dL7a#rnBye{Fe4ipMGmg_ooO4p{J3iLU#Ym&cwppoIdqpFA2 z1y$~NQuZj@|J(ij{r*jlj?FJP`*y{y8`qtZ_H=i*&dpcdVX-=HqXz4Rd&l>;Kf1-c z<5}3%{)rMg#fmmIG6x@vtqPq!_u_n1d5N?JWRk+}GyPxpgN=L47Swed!z{($^?aN0MbO;sw0?%ud!{^=IBKJO+;VC3_Pm%g zYTG3o-hqn>P{U(=r^!T#pzWup7z^It6?Eck|Dp*JYZjWn7d|-6W}De7{~PA22G6p( z?+P7wQ-1#KiN8(r|6ZKd`BCt&gx=zV*Nz>FQCp#|Aj0LRUjE$X)!VE<&VBp#y|`9s zp!NIO2_@%+0S&3<8Y)@Sefwkz3JXIwYQMUb+LHT+H83!6lZxSt{aQUQnBGTC-TXs4 zcA-O3j?97ph4v$Pv7YJI^KaZJ2%nf%zh5rC=g|Dm*NXp6n43PSI)U4Buk$Z0;r$iz z>HN`eHvd2WF6o~3(Jxz-tM>-JepUQ!!`kRCpy7k3$_K=b7D3lDirERmTP4Jm0`E3`jyFJQKHndAz;V{c7s$BKf zts7aYVG(L<)qXPjmOc9Q{e5!aLMPWJg%h8B6DoW3@$78#2a|m5-S(K||5Z)zmkAc0 z8T)Emtje)H?n^ICouJ)s@^`9$bocA}_~#uxXZUZ28SSs~-c$XZuUE>n$$j#z6&JT| zb>(-Rez;8W>6`hW7HK;B=GBY;*GpV+{JJ5`+vv;mv-%tVdug82d&;p3ICXU#ccpvo}q#xwz;!%A;2IVJ6> z{LIDs>i6oi4<CFpTdi>V+KQN+M(=ieWJmMF@Be@5a{KPP$FE+Uy8ESjr9)oXZo6WO6Y5?;_itBy z4bGmvWQs~EsBf0f^2EyRWT9W;=f%6^jdX0;Hkb)H^BHd2c68sp=82NpTJ<-k&W>Hy z5>k0hDSq~%9QB9UE&Kj=G;EzDQO7IgwTruDz73!M`5G;&DDBR`_4Bs;E&cYU(BgTx z>Rh9E>Em-wo;$wb%j&wTdo7B#dS7a0(RAk!U}_Sa@LEDuefO4$64PXuBa}fqfVSNc z`|Xm%F;B}x3{>UwxK4LaX?roDOKE~fkH5jD_(UDchQyhsZ^AdfySuyi`RNTlJl=a= zO}}~IQtkCMk&{)0o%_l>?tMg#pRi4an z!8*}Byw@+BQgN~U!+-Z$+`~0|KkGRDXr=8vdN}A|N7V=MU2A8yWnW)+a+>P2*DWhD z?boQLCzZUt75ezC%F9fyC2Gq(KCOzk{ypbJ;_51G!QFFPY;zh9i2YHuHVc&0y20xZ zwC%Lp*6ZmheUt`w&!1^w3dEc|MjTHE&R=2E&c-Aqrt(gLF< zPC6AUySh`yV0r5)hZ%QwBqgWMb`>oveRGqud&gSCx6AunCSFqAR5Sn7o38HW*mH9> z1Ufg(xU9#j+#3`$;q+0~Z8zWSk}j0}ou+^Ea6A9ml}cNEIRu!L6c22Bd$O=6DS5rj za}lxbQy<%Tlnh;}7P^Wo?mfc6#Wm^aERVcwTfyDT>ouP4nzUB;r`%i*9KzrX$X z@R0f17H!7uclv5Rt^N1=#SfK|`*reia&i${vqan7+1l>+H_YB_vVPN(;+T>con85} zXD5o^j`vhylh0cAcV2$|(imom(lXUOy^dSGOcUNeNr_VD$kDYl6b#RgYn(j$RmA~5 zoz(M-y4gdP9Cbau!0T&PLBXVF5q}g7IRgbJo|yaAD<R@Hs-QLzHit{(1I0D z9?Nx|Gt!?XOxOIicN1^v>(qVUO4ST!I80L$hAd>yaiNM^@cBy;QbxS@|J*p2vFn9a#BB-H z=STO&Joi#mId~h9b2+8Lf-h>8s~>XN6*~*KZQ%6Q&BQ}f>KMvMF9b?q(9Z) z8INs$*|*`fdhfFCbxoZ|ezeSx*>;jc(Qwu@z24B{eFtA}K40=y&rSQh_~w%nk973( zOnExX!!O%*acPBVlks}(R+;dH!kq_$Z2x?k>X^`dPRqC6!_)0hyUJ?26}`TXcFM>+ zoNzggb^e4}X@P&Q_`dI4ny7JP-QMc&QMR3dTT(nVE?qK6dKYu$fBm&y&G>(BazFZZ z6ve(deN|6U<=A$)r3DY(#uk@ZPuhtE z+Rb{DOXQrAg`%e5NBKz)Vm7no-{NXzvdva@?}e~YG?UUVDR)z!1NmVbu1+)l`OVZejkdr~`& z7`%>l?-gdc*4eO5h3)pIW3N0ODuUNBq@|uty4lFA@#wK~tKNy12f)Ew0AK#QtVXb9 zjdr9N_x;7fod?zCe5t)2nzFB}lKc9t(uDl=vl{-}O&cFx zi}d7OJ*87ovwVV4OGBW*h1Mf40=DtB>C9-l<-2bZ%S1<&wyzT$=^ws{8T$zI(P{( z;9U;0k{F7QvDFwhOqlWZ+}GDHuC5StYj0T)`1)E${eQXY!-opAm6(dn^39HEAJU!- zo^YT3=g(#S6+7n?Eeu-vYKBQ7pO=XK+1vXza(y^@|X=vC?Z|_lryn zoGxgUztz+BxH)JgmT`KL##H+~#p>I1;(Ao~|L1d8SD$?Ah}7fR0-Z+;c6x6yJ0U*f zV`|cz|BsW^jvc!_rBhM&{3NrMhChPfXkGU0xKB^Mbf8+B;BL12bCNuG5?-pXHUGUc zQ8~gSkxA~(K3?(g@GHNcN%PD!i)`#gPL=wq9MLO}H{Y}S*#6u@Ip>Uv4!a~tNG8-C`K5i4LvJL>22t%0!>OJz)-}vJ6D79HJt87IN&mqUWy2YLLDpaAzjR4Ynz876 zfOJbkrQn6BM8@3jz5T?E zGh@PeJw@<3u&la3q38bh91p977JNEUdL=((;_v#mzm^t${1SWP=1tBEZhMr#&UH!Z zxPIHjTd4U+M))2nr@l8X4~35UEZnrftmB9Pi?FB?i;fiILX~6t%jFX)CcoeK_Mhm< z8{VLaROiWy&y>cAL8pa#=Kl2Iac6fASr;RGS*`WJ?iD}t5+8PNe7Z|bC`o*xgiF$l z8YLMK6Aoc^|08|Ow*@z;vBXA~AKl^jxbuibjqg$M{Cj(v;+xmB?<;$Ci)XI&w?nJ8 zc5h7nEVw1}KF8lG_N2GJ;x`t)t(*LNa(=_q*DV9U+CQ6_-dCrca#m>zv2m;tU^?dPpwW5p%4QR`Gn`JF<>vM*@9CS=dE|m$ z(h6nm4C~Imxjqhs8;uQFOfn}a)fjG@aCD!i$kmO4`{c`7Z@8+kO_Z=IvwkctzBpMr z-urI!gU#L?-e;ob?oKe0v)RMW&+qTU8`n_icvwLAbKmZTDHRV`?ur_3U<1wjv85(S z+&Ib-D&BlV;L3zfZo$sPqysB0oeuDT>ajBmr1B@bBnfmLyzS`|(BRSIuMmCutqMpa zv1y^}cC{a3znyMa-i;FFJW=hb3LR)5$S+KO67g zeTKb;GouuRoWC<1d*XNMio*S*cn>wU-=dkBqF11Xst7gqp zn;Z6`Oz7ngC1>G%NB3==EOGJT`+&W9g*lP+3|CiQJvOz2JLCW3?K_IzG2XdjcegNC z>$*_q!nsE#Bqv3h7O_wB&7dO;&oIp{b_9kyqMwbVV=MKfyLM}-)hn(-uln5%8 z1nrmRS^2Z;rLtSXHQn++6UkfbZ{_{ z5OSWU(k4=E4obwj2b?y~UHZ%zR4CZL;o8`}ZSsXOp_O~rD+o1v@MxBJ*@eZQSZ@%t z;c&!$y;9DZZ1Z1D4cs$Jf8M=+(%TQ6Pde-`+;K$U=F2T}T~Zu8WfT=0S-=@L#`|N8g zc#p~4YK!!}oqT5D+Xw*i zuB%2o`^&7k6jwWMNIMr5TxvbF?8h}1CnLi%%l5cPEo-(_ebjL#OXAkX`+KUJw=v&J z_-vm z#>W>b4~B$f|Kpt~;r8N?OOga*h>$0T2M;4C6b(YBs|X$5<44785bv=oG!=3p2oBZAO&l8^;);{6! ziMQd6ufHf^T9YlYYL?^IpP+rV3Kg#FeP&9`SGc-muFA(+nYN1XgNKe!EGQ~e6LS6% z2O8343Gh@=R4{}lqS#3uJg=1uXKdY{_e=D@&2RS0Za#;XTu7*Rs^4NK`)kIk(<^h^ z^L{C?QnfR3>`l)s5O?U)t*DwpD!nrrK5_omJ-j^UWqTA?06Zv#)$# ze>7HG{iwRGF7IK#QI5q>T!$w|_8!x@GA|8D>M7kaO4G15wYtO4~P{ zR!p0m-J_ebaeaWs2jA<*IDS|${O)^qxN$3cVsdiwwd;N04GNp36dI3p9+}V}+~b-w z$D*Do_t$o}BmY)^_<82|n`xi+ZYYvPUG;P0)~#80&1Z@xupB#Dd_5sMo%?vq&dwtY z6KsW@gZO^$H>v?m1_ynSdI?(7;gaOBng0W5e(ldwsm&)%kBRNNvA^;;+rB^lyyx62 zlM+1@V)EPj_;xj+tm!v-4Htu^(h@pxOt?Jc}~^K3e5wZF}--FPN_ zdJKC+sj$-LTKM9f$szh%Hg0X*+pH{8{4{8_cxsZzsaVNVA6VzOBzauUUm~jLz!9L< zCi0u%{+uLVl{T3qvz^Co?9%zRv}88>{aGI3yO&th&2UmzGW2QO)R)_FaijS9->l{G zcb!ih5$Ks|DdwY@DyG&ook|G=+nMcPxm9prWZ|WQ&m|w z7=x7@ZhQK4ZriZ!$1{;^Wy6+*YJ0Byeo=nnbFIeBY5zg_jMB-&a{!SkAgzS+ZgI%~%I60VX&1hW;ZS zULHqYh|RrN{)}bH>bRRPe!aNVu+6aR(t8yB=JP~}xlGoJf={2zcy-_8@Gj;`rB zEau#*lG=H7PH_U4#1Bv&5{Wa|!+Q!e$(Zc%Ksmi-f`q)#s8BGCVKD$FVfwhyR$6EZugam5*IJ#2QDwO1vTkh&Tlz7Y4YU4m!DX7?Ao>3|}D((ViQ#%!HKx<(g!Lu4a$!{H1MbDLGwPUtxOtYA&bC-t|Xo)vk*~ zD$bNxJgeO4_{8RboprLx-xTh;2zM@&jtiM3u)zg%e1qU||K#Ws>t}4uZ%#R*BJ_B& z_7eeS3GFn{DUoU=d8Y*>T)n0on*6)m^1+mP@lTqKE2Ya0Xl~!UqBdH(Q?Xs*c98h* znrtQSt=?D8omTDvd1vjiwV>iVqJMtC`l`J>`A=_c{P`xxJ*no$gq9;qSgx!H6Ml1z zN7MFA*hFo?=?|Vf;i;~!-m2o(%*Gp_`+)t*hyPJtt6r}?{Z!b!!2XZGw|93}mu;Ls z=?kMKXXlErm0~$LXRF!E%albkxm;rQvs9<6-&hHnwK~ARG%M-n&*p-&uNRif3+`5$ zD3PS>^@)S=rJ}-=BNe~zd-JTgFBAQ5pN6C|XbUEncRyo~9T%ED5S;^e&?CdvgJ`GuIewu_8HD|)z({GxY znQbU8X~^~a8foj2#Bl$qcK6=%c?a~C|FT`H$p%4_GZ=ybhxz>EV zefsvKjU666Yu0UeB5~k`;qC7F{|`O7uAiTu7}4z}Q}BkTZ^;psBgc;&+U($X@mJ}$ z8NRZe2cb@*;7CNZ}YpwyB@!2OJ4L<+*`y&rHy5;T6kICc|Bj|H7v0z9;$9h zOO`KB{_^7Dja{YMw|M?a-b+2D6u(fZ>6Q1&3sZ&NHyW3Swed(cB_3{TWS#SBTdap? zdTgm8s0mW?);MIIfC9@AM+c2g$C(n39_YGo-M94qb%Y^j-q{%a-}_r%q^>dY5f46^ z^Z)N>3+_(EZN9IP%r+*y5zBqGYQ^sS=avW6HvHN(<+@75&eYpM#$rFNxzv<}<_Gc~ zH!w{Xj~b`KuTs(TmubR8#KO#SgjD7#^5*IzH8=9in(&&##6v^;ona&l0hzq)Ni zS873l!Jj{Wc2v0}y>;xtnNau{l=vci-j3yckY zo~Q4#bOld@nr%$VarWeJeyx3r-3L=W>gQ&;ia$S)>aupm$z_M_v=3paZ1{7+w+EL8}oA(?_)tqhANM_f?5O&q?nvM zdoCRKs1dhNXV&*uIVQ0sqCU4hTa=gS3O_zK(bz&lrmLit$+xL}(HrxxJNG{i=Xdz3 zx3-}8yCna(&&zO243V*GuLbK{~*H@>;3v}soH zZ*}CDAuc%1Y(1Lu>j=XwBg3?*`Avcoe_Mv1U3*K${=UtLzh__d z{Cv$(bmPW~KWkMS(n2#1$!eXGD{J_^;B9A52~~o9ZNHmjz89P!7kxdQPP^PuePmhw%z~E_1~VKzH9fX z+)@^D7Ro!ZszpLJx+yKwR(Nsh>1i5|LZxz}z13Z>2=J7@xz(`a$n=UYFDBm74!ij< z(3A6{ho9FYzDbiV9d7dcragVv?o&5QV+E_X9XflK_v2IU#cA8kf`Vf6WA)bF?L6fF zSWrxC*|Z}8OO`1bs!iKHYim$u{NCG!Zbx6&$2(^gak(elxUn+Md5v~wB9AQZL{F7A z#TS9GP6v!Y&5I>Dt#&GHOV4ZSq+M2LyWp0Tl9IH9nO#lKVgKPoNtL!qYfi-2f4;xp z>}B7y&&L)e{0yop6@>-O?EWJGX{jlC*Ei>D_x#D^va9hp(&FjNt7bUG(5(CBnwdv_ zR6f(V@?~wS+5J<>V%NVuRTXj$KjIT`Ps+3B#0ifr85fy^kDqfrDU|Blu<7Hh9p(S^ zTlD5N{r&y@@bTm9+Wzho#vX&QR2M^GL_Wt#|z<&D?R~kGZvQ^378}Km6Wg$R~5}Y-;L;^0@ix)jhdq zRgS$sUVnIDaQjAsiiLIoQ8lulQo|`*#W2F`(6L@=!-5A6CGYRa_La@k2-q-zW$)tH zrN{mA63)&ty|E#Yd6sGRG2TmW_&&Vx|1$gfk428WCj}+EY$Ycaz6)XbR8g_w#l3|^ zntIhLoAiro z+lICozJ7+=OeaeiZoK&6{fqw9`(2}66(mi#=aMABGQUtOTD$Y$g_M;wIsQt!CtVSe zFAHO_W^T^i9>A9NO6^Gb`nW^uC%%fk9kj{v4`?4%@ZI#~Duz#9=_?s7xx&qO%TGzS zeu7y`gQ38NV?I2|4>GuB&dmR~V8&UI4({y3QOTgSj4fYzeoj*oa&FqUHB3m^%1Uao zny-_G2gjbhdjr=*7;;v*Z}!SDs{ixDu&KFu=WCCren}^;#=9hWyxyuTfgk&SBPBw_J8SjE|04XL82Zj93KR-R34d~csU_vYQ1cW2JdeE&Ikv+?(NpRLQ^ z*?u>FKF?Y5r2d|*ntGg^QC;PFBBtrZcfb=y1~dy!m@_E~}+&njV=R8op=mgIHgot80_vC%$nF zbf~>QGwnypQnAHL=I`xzf81xXQp=QS5m&Ezv)TDA+Ak~|2U`nZUcJGlr$LOP!z(Eu zWMxP8sTUU)tIqc|k#{JW@9QFeyW_XlPTRmzm9~4|tD@HMUfrtMzHrj1{#6qsu3X%@ zhDS4ULI3vc)`k~C9Z{&>I`5Z2(xb;(H&-9Yaf?ecOE5d^ zogNzQ<)e1scC?mjl&SW&m$KD`AJ*zSR0Y~io}kY5Dl4xbY{s1L*FAq-Fw|8uoZ~ui zelm*$<61$1sYfJCv!+bQ=6b3te34z?X1egzGB!FPT6-Xde;jqhLBb)HyJadG3M zowDqTy1KlzzrVSb{MUP7lGU;98M}My&8;b-UEAc2yt=wtP*n7&O50+FPk(zDlpmO} zxTqSs#09&2VRZR+)8*^N+=&uOZ#sLHO}{P1&EWNIYM#2`9nJ>9-$71E5|R4R!f&=_ zhhNz2p1=IHXLc|9UX|JP-Yz9mO8F+=`byBr_`>ptK0W(%k_8hc&o8`VWQ=8 z@AxE*kZE&X?bu;4hvV|~jS@Qz?=BA$Ub)NP#ib?WWxLRmu3e4+n>?<-=+BodC?LE8idAiwgRe{p=&n<+`**i*TedG_d^n0{thUsh1 zK=y5}>tA{F#M$Ow-nvj&$b3=QTB|UlYav35qs?n?XTQGI%dz*|tddm`W_>-LKMi~0 zUR^iRaJ{GSqN*t2p#-CwgCLV>VxLg1@5;U-2AlW;ggto{|Gwdqq%kWg`--nm(u)gs zK!gUvj3XM`xocYuH!(Y((XBO=Hcsm~@+e59P0;)AB)*cCl#7d8WjYt0&um_r#3Iqi z#nIuD)Uj)sLFdBt;TDO9-*>Dko;x+*@Z(vY^}=7B6(>vll4`G-(B{cw8?ms92W*8; zQixI4MNb~9{XQpcqkAQL_>|dS79Y@@qLq0wYR>O653Sqb9bDkrskndM@%(0F2Cr>Q$6#Ew@;dgxY)~0SJtoJFTbZ|jka}QsnD)x z=jWgAw9US?=-@9SCN?LB5FzI$rmdblwR;mxCmvbQ@2B*x)8+Q-ou7R-zR}iX@_SdL zp?<7K(s;s*86CdC_aS;~$Iv(aORuSaPz0*lFd{1qyR;Sa_inI? zBEeVxwxGe9RpOQgK1n-@Q%-(Y-LBB}>cEXl z+UBOrvbV~b>H{X&6v*vZY@p9y&G*JFV9D1xUYy=9gPf9hI`nLF&W}D=1MU&7!KhMTEa%-$cO#7Mr#P zA))3LWu?O&#UZ6CZ5-KNzN&_+K3_j^t?JuNP(g4<_+o^Rqkg%b#8lHU({VJHBC6oKF%lv4;wqpwv7SJ*_?|%lW<`Le4FVI znwa6w*6!IeRXhCA#^Z9#s@7f3xhDJ8HCmUNgv2k`n}0kmW-7=0)YH=*_F2E1@WkAz zZQGY5A!mE;g-=x{Mhm$9?N@~ zd*W($M@e>i^1MBs>-5O&%Bs-gs}|q;o3vDUDJbdQc%5l)bgFtq-hLhRW@i<)RIayI zSBsnN|D<`#EK~8i+5dm$OuzrxG&L44Z*of2*yAC>qy6gY63@v}bA_G#xfLf%?2kHY ztJLz(sPmvVm+}FQ7ov=6hF{Vp)eL7Gxo~*J7WX6-b#?BY>Oz_8pPw@fDU4sK65Hym z!q!^#Wz}V-$!vBBOM@K)6^pn(WtS{6i#pQG%p~~Wd4B8pJ*D0g3!Zj-DPNqp!e#x| z?CaMmgch&5Xe+zu#6*dwVu?bB=bjFDy6=ZY=kpEE=Seb_D;`j3+dU!d9{*$spCk== z-CK7v`;SPNWK5V)t)%?!>lSIoYr5Ju!`DS_b_-K!_ux78dc*g#Q!`?=CoXL({``4D z@Pz&g=jJ|m9K6$I!5S8(y9q`!C+sa2cVcc95D|#*G+tGGJNs9}%Y3)P0iAJ@l9HzL zj(jl54E!3JB-HH5W9zftC+WpOE*)m&1-eW=Ng3VijX`V1RN9OmyS+_+Gf_fNP|)dJ zXU~r7!MERiyA`}?{gMnZa26F?IjQvbnp=A&P3-E>+kWW&eJdtMKZc8S`Z_u;&-&i3 zkd;eaI_vs@ZI|x%bSxCw>*8bO@-1kRN>~5n9q)bDt?ZMOS1-IT@pzsDquT*PmKjG1 zc=XHf#0FpYQnj1ST5tO^uSkBL%h!#rcZDSb^~=wAPqTaSZK_w%vXxFrF&=xHe(lXK zUjA;^yVr-7^{$Z5oqOb%TxTK+&(kkKRtNvx=U@Hd-0%N~XKr3DP<*&|#*Zh(5+BYV zl-s=0cG`|*lO+~6NhNyTi|oI7EbO@HRl{T<=kUW5S`)#QfI;WN{SOx$i}JK{II3-7 z#B_Fd*&*iqy-ilV`5!ti6;)kL5qdnW?CXYavt3N~t}MEDXqmbD!yodQavP`5>CesH ztbb_Ui4|2liznQ;9d6Y5(9b*Mg?HZO{40&R%clzoC7-_5JLA_Ih=>VZPpjVZcJan9POvCs&Z_`#_vfE{~dR{zt?{1Ld?ET z#yMVpIOo@VSnAYrb+0e4kaKM3mCRnxo+6p-pd|lGQU0l6mg;R*?~S(~;&>s+sH$?T z;YHdcuBut{J>;s3MgFc!*}UHU_KDnYQ(vUMc6N&kGgC9k>-S$L`?cd%QI(}rQiV%n zmethHH>do#aW?w;q43jnht9?BPrP$@@~NsMA?I4}({DRv6b+}Xk8Kldc3Y*tf8C9SU8S$5uPl4_N3y5lg`Y~^hI88=@%^27WJTTP z^AjcBNi;64Jz<%)P04W6W#bF`irs&(v+VE>V6W0TaoYXVycCx9_DEY(yE=#7b!kr- zdTO+l7gV#XQa0?db2sb^{OOVDSH-rkKAZ8MkJrJ?_G`YJ*fAwqJKLx;QBnKZ-ru`Q ze0IBjo~sLg8V^Y&DOf>?cK^{ zK|(j0nwYk{7iw-kDQ>$+4^$9Tq&x_H8FJ2Wvuo0fF5eSpPc^NdFCVo%b1l2+sT7M1 z{~5Zvy98v!*yQ71uL|`^dT}a7he!E=5YyF(5^nPs&p5JTg7D$f+=jXN2fyY#p~lH9Ym_QC7-?6>aR*frzGg{eCuB-{?DB7#${GjPIeZP$b?e~z!! z>lF=`PZL@!b1?h*x&`6qKON!{Ro43^@4@zTVfCMh%V!)ZD7|pA;@;K0_vZ9JfAIBt zdgNA{x1Hi2zU)|TIw7Lo*Qj%${pLRkJBX>Yn2lEk6c)OukPLvzYHw#w#!Q)C{LglqeAoWqMP6TUMeX-+!IoqE8i5ZVMNxwAnoH zNjj1I~R0R_R4%+m*;(VCu~WVR5f z=agR=bq0R+=y_FCTVcfBF(*0gwMD0UoWxYCR3T?og`JXa4(uFPN`w|CX6r_z_75BFz(_-4Ji;Mp6^BXKjP7Cf%K{?DrW{XonWYqziRo?d0x8R(ZZp^@*;M)B|W?u)yBi~riO_eo98;&<8*CtvmC zaY#x@OHI0R<<03_*(T7-r$|VrtI5JE!ufy&YU}_5J-V~m{lk+_ z{WeMVrq{gsIrJ{CoD;X`SI(keH~MnEeKnDL`pw1d>gl->($6eTUcIt<$M=oZ8{Zdn zwfNsTTlgdG;Pw@wp{M6o>|ClJ$i8h(+#Bx~I2{*F+7YBZx zeaEOh^X|#5pQmrgxKuL7s?_WCx*fG{4T1&COuf?PVnuycwZBZJteLv)THh9K@sCN% z>ni@QNk4V`G^qG|+P3g=c~<~uac!pH|uX#H(C|Pw||13O#+8dvy#Ctn*!;+ z`BrhBSD*RLNgQ<>`|g!jiDQE~t&el7KU|!_IivW4dHD+On^t&3>&onO;v_*d~)3Iyo>!gcwj_%kQS*crK z%4Rn8W!K)tx@I*WwX6DHwAQ}H6(+OX%7!w6kZ{GndAQ)1F^mTKQ|=RT-_JgcVxl(ImyR*CT67v ztF&EIlGNx_f9de>X1AEG(VRb7w`bo@W^r+LIAVE9Q0Q=y|NjRGpc>(Ky6@qyYi++T zjmX=)zGUr{+ZIzVcYE^GM*6H{S}^Hs-RysBH)ecGD#^LM(P!tPMM^J~*Du#I{Z=(^ zQmp>pSA9n|2uN7&wB+F8Ikfg|zV6{yQBhhNDjn-?gcYt36^;ESZ99GX{PqbC1o{Oe zLp^(<+e;3f@m#+ky~e+0^S|sf|1$W3u1#+>b9*4%i?!;$?bi-^g^9& zoZ4j0{rP@Q6(v8d(67ZT&g>eL=?Gw49rp zT8oo3j`ZXwvwZ1eczQ&jurFwquyg;niMQWeR}pe%neQ7SAI;ghG3hRs&FB5g4L7`3 z__NvF{>$4k>!#)=+h4a%zU`dy;%Ojj$%UQoJbI#k-R=22{oHOA-{xJs1s|T<$7CJ8 z*#1^lP*X?8<*wiLgOk*o-~D|&-FZcQY;DZWGS=<)ZnGX2_FLhVWMlu^a!ck#Hf6Tn zBd6YnC7o|nIa62Hw>WEM)&4u&+OJr$yN{eWd#>$fj??sYg&#hC3=~ZdmsVyq?6Gk_JKsJ&(2vJ9YJz7^(dv!|pgKbP?wk2m)m~bB6L%;x zo@AfAH2K>!j!OSM^+nZ6ORFlK%JzO)X)W~l_51zD7VFzFMQwTU!+CL4@2L%oJi5KZ z^*#UlA2-klI$Sh&Z$+5Za~Hn%?dxk>7MAmsY99;r?73f-d(gW${?NwY<4ZUMFD+N< zEUf%4s@c2ENr*aR?a*!!TEym{@cYC$w^5DZ?-PKxZ_0xAx3|?)`hJ$ffJsZy z;rMNrIg4LN%vmAGz37$ds`F~A`rn>Ov(Ky-lB-OVDO>Lyl*v}SM{=j_MB^$;z1EHM zFUWQ}7Sw${Y<}s%u7wAA`JNv6@%m5vkBn=_e_WScD(Z8mGE~(t>drNp^>$yS*uKap z2(n)<&kgB3V)5y9U`+ULtC(Fyod0+1x9-ccStix#$n$uM<@w~lk1nmBT5|X2d+QIc zrd+?Uue7@SP|!;Ko#J6vIJfO$y_noqurXQ9Foq>y@$skoX6@abyf^gx&6koH*EcdV zH8Gh^I<+;8`_re5=9-d3co9{RUAlAqx}&qtT=is7(!I4UCwdyQvZ<};myO@=lwDW)AG>k-op~LeJe4J- zo=FpKWY$`^&{@$(qe9d>ZVBl>lbMDC!@3yggKhBZS?og`IcJaA}nxTxean%RLJB~>) ze_orY@xRe-TwGf3lf=O6_I-Mhj-P~W;3uQ_x@xO)F+aFh+r_-S!4Uc}57OsJcs=dN z2Gw1*Le6oax$jqaCB6BZtk2dj-P7@*;7oO<-L|(sW4*Ri{@T7@;PPL#8k5(`J@XCa zO3oyIoTHjimt1_+gU3s2*SE)|K}*`7?wVG{>$2w0zqe+&jT=!15 zEMQsqF!17znr}X;LW_5-5U8}Y^kSFVwU2yPqueBaM!tCD? zf4xZTczuugu)5FDD~il2%yqj|IoI1;NlpJ})oXeGU&D&muU2J6s2PT|25&v~D^`m1a< z7hf-Paf#UceDCk0({uwA6CYNI+}E7>W}<}U%9kDQFYww~Z4EC>R4h}?cP}Vunfh+M z`FrKRzTNA+{TSaqa4zCgpDe-0bZR?jn&P%Vg3#gI0PS}kdA=LBhIKt)7FfBU^?cdC zE1rA)JO~J|>yggSY@W>i-Fw@HKjm-Pct75snk^`m_jbO9*{ojaw-Y6le%x@o`{wl9 z&Yo4%wUe)2Oy_k>nh+EmH@n9*UVqh+`!^DkZR5@csLCp$se*_m{5^ zuCli!e0+5D#ogW8eTACm8Ha!?lyyD7VY*#x*K4V`^(XYa z@>jju-1#EexN~8NNk`@UL=T>({X2F@{IC3GKS@<=-^PIL?mRKFT1B&K7jG&qstPqf zxT|aV@_Fh)&0Y?6-|rOv_;gyo@cof=!OM%5zVg{^{pI%FOy+%a|Ffz2%xE|{S>5}| z!nFZGj3XE3Po1M`c;(6x1#9;7viI(n<6^Jm zTuY07!o1^j`ep&ig9{U92}o?KF)ROZqh7|(aqSAL717%ppMBdTb5pDo+-WkeY31W_ zP1+$W;r~r_`%QCj@{tu@WBoQu(Qw6i)9h;r_x4nJ`1q78=UDaCRdJee+8KxSaeJ4T z%{&so8+BD`Qn7`ldRtaNu`{SmZN%i0w1Q^^*I7_OQh(ya`7_7549`C}^iNsh&$sR! zKhNFM$_T9$787y~neUq||NBqt=8Bv@1}*Kb54O&HukfsGw#ioU$r7^;Wp^B#dE~;v znNQ4qgC@H&%v@G^C7qdXFVD%zc}!qm*A$mHpZRukJ$YoK{m(s25pq6$Ecv2Dqf{Tm zWQkwW3`N;p(^TBz+@`rC#Ml&wOzeI2_@L-#fw1k{mMMg)8oGSGxkb&etGnCa@z&)V z^8e?#w76&br5JQFx*T*>Pps99nkXUEX!t8L#-@U&@!>*=Pv=Tn%yo3FUx`aBkenI#(W0}%Zg!Z8TUr|1 zrp?BxzeU7E6VBavX;J*mzop$Z>6-TYEU}3PRob?_-!B-IF67)EwyIOb&BcYquBM#z z6=#s%bhR(+$L^@A9uzU$`24}aX2YVdOfF`tmLE1hQ8-Z}r!;YX`-F)T6OFIC=Vh^3 z9XonhU*W*VV|PEeB*w{olkss1aG4RBKP^Vy%Y$c~-y^o)4JYhohuMAGz@F!x7uV-oEiiH8gS$_K z7A}02`f=mQbYWAgyDO?zW~T4lHsiXI$6CC;yX|?=hLn>+vsK!5-e}p=;2wbbMje!`^k}ce$L1FjhNaT7c847;T9i! zBK`6y_6XCDqB3#$*7Y;u0~C(c?GO0MuOTMykTTy_TmJV$_x1;$rgob>pVh{@?)V+c zZb1==C9h&qK;Acgl@{N-S5992X2-9KrE5GtHs*@HUF$c`hI75Jy5E#L6_0y2F;5ZG zT+C+{`7~sYV{hZyMHZ_}Q~lRJd6L2-V`ZtUH) zUZiyW@|)dRixc~f6sX_g`YlwNaGG};XdeYXRSo?ZvGMzitDj$9U$?0Gyx%Tm11%v*NN;Y-)Hk4Mbe?qAYT5Pg z`#ai>Sw{t>e~%CQcInle^^Y8veCqY`m-5qc_X2VlZO`&z9Ez2h_UUNB*d(sKTCr93!PCcTq zLSst*Ih7#KAmz9z+D%0X7Yey|tx`6;v@XVN{l3`JwMmEC?hA%K-<9Rb6Zlqj(P7VR zL6d}?`i%l(y&jf1@kqvWkYg+}t03zY-GhZ!P=Lrye|kZ;z_9 z$+^Yv1g%dvEvLh)ynq!nuh+QBEH`RZMaL`V8(l{P9v+^&;#-oC^X%_;IMy0l<^I?w9=7I`wjQ-SRmS3l}bwF#J;3(zfdSj@^f^Ofjtdd7b;g z+qb&1nt@WCh3=cvemuNk81e5dU*ywY6O;{gzODLy#o*$;!|}lEfL9y{YNfXw-r?dK5=q# zVoKZdq0e`6(5910;S4`K7*jQ_=^Z#1& zqHi8N-FtV{e%j<4cs50U^SM>)Dyk3eo~5!X`uIMjo85~Ve(f_p`{AUQuA8TQwc!2! znQE>a9}9(S_k`*&D<9yv0a{bhyvWNnCfKcCPWNZdqMr<2wPv>aj(XLY3D)LBtF&GG z?s9daMAh}vbKke#*%##b)IHRL=hcg-u(l~W7mnY)Jy+tzD*eefbzaJgO6k=eTwiq) zyu3(gZ&Gry;jhMz9o=t3JaestJumX6$@cMHI(_@Jw^vNa)wt^5vc!{{zHcahALpvl zwvO%5{X;jR1y07TU2fMhYTUQQA^ocQAhBd8}L%(Q5d#A3Hzp(5Xfds3Bt zF(~~84TW#>;92~>bCt5;mo?L8PvcrCt@_(*`$P$`qn;X*Z$9ypDY-hme|vwd&~drW zh3Py~Uu}K)TtvG%B{g+X>1#6%{>#rlPCB#3N5*1;+IXO zZ(-DI!UU!N4JajQyTb@+O>kPwl{5`9c3zC#-O zkX1H<7ZEGGIyR^q&5Fy5)?v`N8NO@okpguFw>RFLorx)Xb9^^kUl;3mUT$x$+p-sq z;Z>ey|EG1l(0DDQw)gkZYZgMvzdxClyj_)FoqKy;$AnvfVTX?wotwVzNWcmm%d3Tj zg%*O#)+ZYlJ>KWPRxPM>en$t#%1ivJCqzq|7o<#_bhx`dokfE2yt2Y48P!*_lDdx= z?BWl&?7<^glT$sr_Wb#rK5vCrapwzF=F~SCggla8RW#>FrD689$&2`My5p`+l-OH! zZ&|jpx=NnQ+NjbsDQi}$xNXn-we9+~wbFuBb4_2SC>rXtE%_tirvEkjqU#ghrgiG< zVts-MEFy{l!p}4=UYqjDgGc!{gXzR02D|#tswawtdGI$}LG0a^??Pp~O5{!pekevc%M$q!OX#bNazW=fjfO z79T$0_)DgMYpGY%HnHdX?sn)#Z!7TQX`S&g7t~0TgsyO#apc39-9fRSr3t6y&Uq=n ziaQ@^GpEu|Sg3hl*16sJOjTP~#xx$1WX!&0TUsbD_3QV+)5mvh5)M^g znEmh1&p9_PFJ9bd4T>&|g-Ty8dLFTzm{Dz8zE5*nt*YyRld*hHkIXPkW)l(?-k5pH zy6Ekv_n`tWzFw=)y!l{d@bZ>J7Z!=PzVDWL6*k$kr`A6I(7Ua#AHIFu?DzdnXPE8o zL$?p7PI)^~!qCw0#qV<_S8}gzxg?zdUrAMTXwwAkkiw(4uP>jZ5n@&L+WWoNXSV4P zUzbeXkq?T6PL;M3kT_VLt<-5)`>RCpyUU`tU+?@}7V&NBmh@@6Wt0q8Y)m}dws64$ zhVFN>yG{huPCGj#_}1M0%hS`7&V=VHSy@SOi|b9I=EsvaPF8$)dtE?8OzZx_+3z;ECr#kk_T`lCS%>y*b05fyJWeZ35AeN~ds zVMCvvd7zR+o@tR=QpcWUCw?-#leX>qs`8w<||z_xA%pGgdBX76VrCO8~`t1T47rhlYc%`s9DA1 z-$U^?k>7=D{`>{aG-TX-92V=I6!N@4%Jw?@WQleA`R_0(9{>#z`6?T_Lg(cI~P7%5x87;C+kH)cD2v1 zOf}VyHS*3boh#hz$y0i)Z`RtJyIUj$w=P~gOGe(_AyBr!H1**&&{9TeP#2OdJUnV@ zcSOMv_5xSFt@Ec|_SO@6{8!Sr;PP4X#s6!+Pwo8ndHelGM-Dbuym>nPs#thob&=id z6)J5Uzr6y#S9P(k=Q0m#U$}RfteRoix|q)6a@9Oj-mHlG`}*RBL}gJI@y(sZ&(A%2 z)M_mBaC6R0qdSGiWhX5XHSB>b+*-(BQTo&7+oLSiy`cUq=TkAzBv#4Se~`@R6vDb;*OtF z{V#6w6LNqTX}M~4N}c5nbYn|r6J>&d8<_G=j|_dZcF^jN<0ylwmI z{5^us$9oTN=N5nTXJxR&|5vN!Lc`Cc3r~ct36t{J6JPeObkm#Z*VjZU-)?YLVS8E{ zvGrHAN!Af}kCcgPiw-Yzu1~n)e0b^pceTZ;QrB}MUiRJjWAjAhiSm|W^&dY%^ftf9 zh|jv8kFrv1W#y{ppp{}NDJce>3(Y?0ZBqw_xW>iPIcARo9=*S@_Zj<)uI`J47Z|p@ zy?)#ENNjb?Inb&k)0&@|ZViGL_!!j;w;aB9bK28uBC6R-H`iwW1Wn0%^z6O8?crSU zxC80Z=8qoU&OiR-|6l&?B`+2%y|F3x^v@inNzg@RCvNPCpC6)`#-xYNn zS>XEW#KqvE+)wYXDqL7pnf!7(Xwlib9f(C|w;cH!#KgpuijS9F;oJT%>#gaAwJM7` zgmqpnO>w-^+`Hm(W796+vrB2e`I zeNlGT;_RirO*hzT0zm?YEV;X3j}Irqbqq_V8R#%SRSen%w^|Av$=$F_o{aiL<+%C8SMFJJua>r~~gyR8j#;=F3N{r8>KGP#{^VQP%bvOOQ$ zb{|>4P2O_8uV&}PFV8;p_a6W6@p(_2k=-_3A?Fs*@}P74wrYlRj{9v^pLv9#?*6of zlm7ij_n6ze{w|B%V4W$gX8+gV-pt>UyN-Onz*Ak#Yup*w=lAVt_KR!2_fuxgVP1U1 zu)6p{b4GEszoxod#oH)3$#S2hg3i!b9viVH!2m`^HNy~wz^7_gBDDGcZrIw87v1j3^L*pw zH=b&S4fXxM#ee-TR(QAj`$D5R)7Ssu;f$_3c>MkP3p~|ohNlE2e)!tS7q&|`f|sTEpNx;) z?~^n|IoK3DgW@)SU9CacjR>88X@b|(*B$?_`{&+bwG<&|>mM_ZT;Pjd9-St{{G#r* z?vJvgY**Gs@8>yQ{QP{vlNGxseDKcvDpnpZ(;3)T;oEtn;JZZdrTO4wASCir&aFZ4 z0}GQ+QUz1#@7hyqHN80gYo2}lG3ij0i}{M>(yULvBnd6P5~AdqRI}-kaL=ytDO1c1 z)Xmw?R+%6DDJyPcr3SLU4xE)=PMdjzA+K+B_g?GsAzlel0Rau)Vv`CCelEIvW7j8z z$r3(EJB;eCRE2?ZlC$oTow9BXf&tQuYKB+bu6+IW2|24!rG^kuy zvEb9I7Vl5zcIhn<);;m^s7hOfirdk|q9;cL@0izV1l4WOoAlsFLD4TkHN!b=e%~C` z3{w<~{`2}IG5p`L)^uOYFJ&ncjd+gp^X0xE`ScME1Ev=6$RvB#nyLO<_lTbV`$hECk(hW-MBu~>l`dUJHoTZJe}2DW|J~+;f8QP4@$m5#(}w1?hMf-;68P?%Q)y#P*!en4 z&9LFPx=l;;KlR5AHl9a;3hQ{PrE1FN`<**pw#4e>l}>OKdTyt~2cS-masl=0&a2X~(q5WjsfGbgq(Ag?J@XqLqu zZ}BxZ_T3dV45<&xa}+7vtPff(zT#h3K{IGfS%}GW?vWK0XPQn;ICf;~!4AvI7cJKH zdU06a>yc79_Oh1!quc-AhG_?Lj_|%{esjenC+?GK+4_Hs>)-u2S-3Ey!pTox)owOd z(u#X6bIz-|C-KN$FtYKeO(KG{q;#&!Iv4??30wyzV@=Nac3acUH$$4sbFx6V$({9xBEP;D$8s;_1kQ+xSmC8&zxVpKCc)gS)k`4feYo1b1vtH1V+H_B1( z_PRT1@h_ux{-4fL^Y@dq#rNZaEpG0ME>GBPkn-y?2Ot0BsgB*!Pe7}kCMz43splT= zxxVbtm6gI7S6A_-?f=I(%VeJ?x3I;PWni~I3^*=z|BOmo8G|t_CfrhAEVKKru`XYv z+5NbmI6?2%CL7|>uG-pR3C?|nRL#^i>3QEa; zc;9|FxplGDg4Z#^rlo5|uBJ~`Hk>1^ddpt*d9t+=WTmNUZ1qCXF9%fGm?q5G)9T5i z-gxerJhZDrRIgq*E&=H|`x@wY_&Dp;48zWc9|9h-OE9_}@Z~V* z42&!6Rak%jkJ`#r?kRhBo{uBtaqA)qGl!zJgGKx?r;#mCg*q$jDV$xc4jHIrWLy!6^9Y0CaNHFJ&>3yV&c zn0NTz3R~mOh0dofosvRC{{Qa%-@d;72V3|3m^XoIXB-j8hG(scl3$O{Niw<};A8Sh znlf3UwX*WYhlfHcYh(MT3tg+qxnt0&IPJXJt9GZpBOh*vEWF(}^T>sTnR65kySlnA z6i4vu%-_${D{cC1MVL=g$5wb+x3T(L_`HWf`GAU>BvWXATpyR#`Ob&(A}zD6wjW+m z{=fUzS)1@jlRSAg)|jaoelcY|{kF4D#&)TGBd-cCsM9{pSmjvzX}beAxu1Wyb>+Iv zx`~kGE3Yj)e{Eg;;-YmN*TSohQ;lYR`29?!#oax+)7)m=%rEAFpoIsZvi82ov`)bU z7LLYQa-9p02Odyy+ZpQe0knF{QpmY~b9;JflF;GJKW@Ld8z`h~Yb;wU|Drj5`oFG@ z4<7y5M^xN)au#jgoM<-t!qRM+nwlD$yxCn$0*xCVe;4`j zHN!bgQ{_Q5y*X&Nr?f-a22czB$_m%OTC>2~oW3IkAC9hL+zyI;WoxITKb6n?d*+xh zb!wX*K7Za{{FXuILT=+7IxLeV^qg0CGJ~h5XB{}#YsA#kzy;cS!_=W=uDE^K6%!%n z)QY>;<{V8=7CM|eLHm_Qp8t`F5?u*fDupLYoJ(GQb8_DV34Xsify3;4hh_J^zv3h3 zE)DU|>g2DoNB#A`TRSBMY}%w+nf_I2mx{Y@>6sZvE?hN8Nt9r8TfoHRlk_6r;>wk+ zK_Q^^QL~i|znGU-L@B8m+T=1y{{`-F7#^3gt){#|q`%5pUxm?-iXJBnt$Kd7V74o)Q z8npTHJSf!C3$|a+_Knq^dE~d?EA%RWgKyt4Ku zI3(B@LA!WX&Ds@a)VXl|M$nkln?#n(8AmQGoSLNs8c^?w-d)nXe*JnrT_zDRv83ng z-gb0!teU3!uf$u(>CmB4&HctsH5L!M5>CVqug=RwQ3Iqb~blPtc)U2oY9%C}Rq zmGCbI@J#yh=BBVL+x>pOz4_NCzwkS~Df_a%#l#Q7*Ve^m7jKTA65p`sj!j91G=IK) z{_@`!A31J5*|Vh9`k}lOOT08_FrWKMZ2o20i4x2G<{mmT(|BX@aXuNV5{|;cLJ8P_ zg~$2n%gbb4^BM&UpGlj~qXq{Oilhj5|9ve&!9Y2-56y zbieoF(&dfj)x}dz9ND3J=>7}v6r(O^fq~iHc%P&dMy%XdIY8w`y041i2_9G1)*!U? z0dHUFm&E0NeRXw)Nv2R-)UHz>E=pKN&aC*_s2H)Q!m#T5yWGh~6sl)(bqB;ad^39e zO83*ZZ*BPr3^jjp+`k%hF4Qib%DLFI({Z+ul8#%yT<`Jf^-d`>^n?1IJo-C-mq*Io zJ(ZsgvaV>^$t$3v}?`-~c_Wivr zjQ7vgGYhNv9C&havLoN}wd)ODeSfo0Z03;y`D=Y&mZ)|*#?P2-lG$WA`OwD;cek!N z;&o?kYvgHZug7!uS$%)?bmx&1eF?|D8!@d@nlNF4!r8Baf`T(XpK$Hmv!bf@-(6E1 zTYcgBe?OO>7WDQ>+L2}Wb$FYf>#s#rVnx*(<-M;C6Y?K$6 zF-=<>Dw6o|(F~#4PvVZ+9p8I7Ovxalw)kn1&|%RpTPn9Ln~1X=`Uva zCB3-VR>ZelNXU75Rc1)iRI_Xmw)&E{yq5%pqNksXVUo|+f2r=xVJo{_$~cYZ`RNOf z6B1|6aXT>Sd(y>4t`#5Vvr5=6^1E3b_|bO7Eylg#XW9R%K0Q^SYR@)V!f&?UX7;Do zLZa~~d3bV$U9_*7;V%BSZTaGBobFncnpVfl7dBlzn{nkt#BtAa^K82hxBolv=H})lz0&gPfvFWM?sd#L zd{V_N^@QfCN9*{G8`K>s4cm6&q_Lv0x-fcY(+58#f}()cufn^G0ZPhPpgbYrS|lA!M7yPKF=-HetEuvQ;#fAKA`j~$8_qE9kZ%L%k68#x2?Uk?(XSFE~kBx zEEs1Ua-VS|fMbevzVOT=f8$CyU~2&u6mOT`x0~tfE7KD7C9}RxojbP^vd&@2gs=Jg z{_;J1cua5eteG=A>+e=?Um~1)$8B9)!wI*qCWkM~<$a!>mW;XZVZoK1*Kdc;nBH#7 zK3PCSFimxq>h*SAA!Tb@=C{`6E&KhxYMp@Y&We6*YFF1#Qg?G^_r6URt1C-Fw_JV9 z+M1T~bVlIz=;|LoDi&|J(35Tb?ZD~V+z%D+efX-WYOE1|>@v5LfT*bIM9C}_^Ab1l zx;DWAF~+WW3PD!7y1d15=N-@YEqx!kaV5)4%d{yoyaTlN+5Y*vH_>QjVdiVOmeva8 z1NV1*3i+(K^3tsbIrnC~^59u~KCor^+OzvEUKjav6S^J$%f^%GlUMs~dUZVX#=Jee zo9EAe{3c}O$zq?R45rmrG$u>jN_<^%T4}Pxl%IP7|33S1eFFQOWA6U^b(^y^H+|M? zcDnX{cfQK6d-wePA6e?2Zi}xw79OuV`JBV^JC_9Jy5E0Y5?xhQ@cdE!#SbxjFS?iL zwqK6Paf)+W7BXvV?&k>G&c0gr;DDG26+wx6`>w@%zMUwsEJ?U%^QH%{pSNGjje701 zp7}Tbf*mV34kjjk*tl@IwhEi-=RZFx?{D&*?OLehx^9{HVn6X)J3@~c>7Q@Oww}DS zqvwNwe8tov$ptl%!S~M{u>F2Vd7@;@q|org9jzN18DwP@KQ(C??yuMDt$rA z(d=f+bQ%^ubGdVGul~DN#oLX8C#Rh^=v*kd#V09)eeGx6ZXeLD+~fxb8Y?Pq&CaL_ z_I~bo>EPt!{xZk@e2+g`e!o^d)b7UC>iG{B8|ZAfba9g1_R{vFaewbs3zkNkUS)iB zuDjsng~B%#5APaPhl(pjCm9_M30ZRf(niLA8n;8k8xP5KI&Kfrj0q0hsOK&5``7Qt z+-W+mEWMKgZrD6s_Omi?+0_Ln&zT-fVR}{aHlf(zqMCm0bGawaW(&%^=)LgZlKv%8 zZ@-`x_NV<1y9F;OGa09!n=+~3(nSYv&%{Z_*4Jaq)-AT$zCO?D;MDt*A3SDmVT%@C z_IFu}_e6;=eU??B?nx50eXIJ8EZ8qy=__~>JbQWZ_%vlht2=k)_Uqm5IPt;5eYvXd z`*a~^>k3OqUn??2sCi$5Ui3B|f18gjQ%v+PY!`cVE&G8<*u1I_UvBgoxp#4r)$aeBHcjt%Uh}ecL+P9&!S6ez{#rRFMR=`x_hXUc z&7Jk#I%>h0B5sT4$*xxQ)4Jy!zvS#Pp_cYv2kx)8i9fc({Plw`FE3x(QDn9yj<;q9 zuiFA8CYL)GZ%GLYH}@}()0F<->Z*F;jM>54$Gy88KK=Z?Bc$}j#f_6bM^9Rk(X;A% z(7qWz*w0&s7G0I=Obqe9B$L{I#9&q2w4f!6eleIHOcy?Re4BgH9Lst(e!ofqPVKML zL*{$(yiId}j!?O(8*)f+JzZ?vS(0|QL;Pvi0{xBCCKOHdge-+Hyl0c{(Q|RJySJ#w zGTxZN)ROE8?8URe5DE|Xb8@KtQs$rh*A$M?mlxF!kCeCTzR?dYKo zy*&-QEE&G4pPKqAYmCmWf5RafDs%FLnYT+!?#mxjO6PUIVmNzF&&kh=Ytf;#tAFj; zmzQwU>RpH9j3Wgsy65j@D;k2%3{W+6**ZN&r7ivbv{%)jxH}E))#_MvI>vkIE?oCz z>xqm$d&}-Gtkaw_bss)ank=#CR<|e5^5q)a?OtefI(qVG8XXGryn0B<*l3e)#*M|3 zgRP!C5mC>B~p{TRNCY~)cx8m#NoJ?WQVy5S(3%KIyPH?j5d^Vn#p>Hb_71r9` z=aTw#)`a+grWJjK9Gn|t<096bE}mVk=+x!3%BL>EYhBQjcIA_KpvCtw_WPqfcmit~ z0-@np_l#|?$03!rIGsR8KIO?0B{5GvJ#)FzyC$`D&GiG@f~GQ_>J*fc>eBSL&A%Zd z6ml^6UG)Ff?c2APEOAK@at^6B>|A*G2bp9PSLC`++G4qci_ekq=})71kyqrhudkcR;djdQfVlDkRi@9+&rd&gYenE< zgSYc~J9xBJwKS%4Ki#LWX>C|dd)DVTjfra)9B9e5o)l<(Y8K1Fl$ByEojlBJm@%#kZQ?^M<(1BzBpU&mPN^P&|Yv18-nB}Pl8Fve}^>^Qb?#kWN*<4goi>_-g$h5zHF8V z-^orjQLXkb+$b4duHyYv^RUyYmfP9D81e|7SyA3>tR=cX%itKNU0z_g|9(k$nv z`p<2O1UKq7Efv#v?;6(UsU;j^y-&8LcB;JWM)gBS@0WR}#0D%Vt)BZocUp%?6#LW| zkxI=+GOoM2cPzVb(dOIDDLpyo?<;RQ@Ai2vs8L_7q-GdXoj>D90k6I9ylw7D0;|h) zwVk^%K70&2?ilFJIr*l}NfA-0JmW;Ui4q$(Zmh_9^|_<}{i3k#a=Gcp``*s@eeJ)4 z;v1z&p!EA?(S-jK)Y+;^{;arKdG7aXmD-HW{{Qo=7VVGnt==;C@#*?0Ujl#K2*)uljFWwb!s7-)V`}%{ZPlBHMsA>eCk)!G3X>C$F5~>r-7_Dk7`3^VL(b-At6%&RAC#r5rj_^1Cvhu3Ss&~$cPfL0ZeOkJIRowKyU0+qU zt1+wT{D6yzBi`7kAKf&Rml*54PbSiz!r@aa#Z6)I0(-!E}W zN=l04V-ElQ=y^69llL^8iCT%gQYIXmkH678T|F^8!Od@-WL;g{in~X*?h*Hzu*C9n z&ZBo(-s`?q8@XGREl_#namCW>h^gz9ns}3EuD=|Vcb!+8xb5{C`v8rZyT4TRuc%fk ze{>eqlL)&ZK3RgR@zTj$B{!XpeF~GD^LC#2xU9aX;^MKryXJ5&dX;+G&&4fP{zLFh z@mF2nm!yd(uZh)ha+)$dq_k8g!1LOb*porV3mxx$`2Km)zu8`!&PCk|P&%h^pXd4M z0@2LE`OCjgUsZ82=If!3;#AdO&G)Wl^CE+6b_H9vdoA1573SwBxM@d-S4`MIv?)am@;MFj3XBoE(H;RZ#qbM^%DK1F4hLB8TJ^9-Bs0`Eb-3iR%6|aBLxgPvUjw89XhDe#>Y0( zNic)Ctdd7V*KT*0V${j6SwiQ*x#?M2IN?p23MYPvsZP5t9in)g2FWJtK6 zo{q`GQ{QY?2&c;4eByI5H2mquC!b9d_oWIQo~(Rk<388#t}~AmqZFVYRP%dD;5N_-e?Kp$U^F9eOTc>Ku8u%{5NIwfo3| z%{Qi47%3<){QUVdsL9*wgqw8o(xv=YWo_SO_U`+2$=?3_*)6XOtgov~ofEQp$*R>- zf%|$^-~R3)s^7Ji?u#eJskM?_?t zxE806YVgWWzHjy3F0Ft4aM7gICUwp^F3n$N3+cJKU9?{mm!hvUN5j#?HIS8!ZP9`S z4psFh|BJp%5;|;gP2^_!;+=sJ(4=*z?;SW z;-~MOHV<)2xN{@$(j))b0*4ANPbqI{SaCi2vFhGqJ(7o2+8lMXJ~e3wbvg=L$a>GX zWiHWdJ!M+VlI-gzWzO7|)SM`(WOY4c<3i8LYCkF+V~=d(SobAtV(rQ$S0S-9sS3u&dxVUq`YiQO zs_jjje6r_r^eX+GRrfcCe|$c_o-4d_`J%mQrGDIrCJDpY7I*oE}7ShxazDhSO-lIimp48=KVO|S+FRjha_)dwrK3pakp;bf z4$E?D3rdK(OIltpt~+@U(&Je)<;RxrAXDY;eR0eeKi--eQu@_*S&iiNGBss`1Kf!R z?NZ%YG*s$e-IhFb^K|GQm#TRj7F~N5d^(u#*Qa64W^C{Cy#wE}0oe;0xyI}oX_v`l(rk>fn zV+YH1qppi9(%n~bbDN|z`T2>pRb1Mvdq-7z z?dvJWm!_YeH`QyIP~pUhxsyEBMt!_B-KR7(-uvX$D8YRnzOMZ<@8XYKyBGSIc}Bb5 zyW8oUow?Yp_t0NKd!-n)g|E18&-N^ytii(fJ7?WK&3DytCG&kjshdymOVNFe_7L9< zuj(S#)wg^0bn)(5T=Vc~xA@1){`Q{T%LMhU*nOqDSH*jtj9lK!KKG!>qtHHmqF25+ZOoNc3?`lw#cdiveE$c4k~uIvggr zV8x_s*K^lzTax9{Zo$GDIlb}9>a*S5XLsx<<S(8yhBGi(Pf=-_GLn z!jFd}JJ&>P%aMGy<1ydLTEVZ6SOc#vT%4I~n&@~%#GzMud2z#+sl^!&u7}w^6`eIP zJVHr!rGioOoVObo<{K@a{VDa#56K`uP9@`>FI%q!1$}+7DnolOH`mz{rwkW6_V-CG zUSIe5`Zje>cQ2=A?e^#85}_(y@mEHSXE=@W$)mDR3*Y)X@ zSBvgH_P@$lTK72*Jc#0UukV?25N~+VR5M|hxC;{}Nd66&_Py!Z#WhU9H*35qy_^2- z6-;q{zy5Q(SLIoamm4nXf4kX}?0B)(47616-PbSQuDzIcWWfpUq*S~ANvcuXa+aFk zk(u=T!$ap82LA#zL)!Lj>RKV5JIh7qre|B)UKy!(a=RllJ=OX-S1d@LrL1u(^Y4+W zu!m<|mkFgjpM7zu@8?Z6+&6z7^{^~rVywHz@$tLf@83bN|yf23i+--YY{5A~e5r)G1A=W@UB?~^3Fr~mJC<88jMI^A}8g=7Ehm=FaWdxWI@6JTQ$&$*sfzO7+TZ^cbMSs?i=Vp6u%ssc zz@P3(YkTKCne554Jf3&Ey@pYz<8dw5JHnm2u3x_0Zg_W+#FIOBi@bH*djD;|tVkpjm+&Q07t93Q^Awa=bCb>e=p$ATL-KEF`t(i)*|zO?0(^g1*1 zKY<2nhF|P%PdTl=>Ac(fWgXQ@f#0jDyc-up3pE#ctcm(-D`jeQO>okyWv;8LtzRvC zc-tEm$~6^`RImxkD|@jmrV(jD7mySIVhs! z==zTK^UojOt-aoSFK|`Tqcc05b=$Y8vY+VFms(KR+~5^E(?`|gtd85>yjN30?(TUi zbj)@ibNKpa$^Yl=4%lCpDH(n$eqq_YrtbZ3-5U0bJLRbGuDSi(Uo$A}-JP9NwITyN zuSK4geswJ_s*iQ=Hs2+zH?@?MnDl!r!o!TN1{J2Anxc7W`ak9SZjmb|Ob(Blx+JbV zx8EuEej)4s*~J3d)63iw7U;YE{as$txxV+f+{(Ih6AsVz*wGz5SwQw3_k68DPEGfs zi|;>r@6y>BbusSo?Rk!;*%~LUnwDW^)pmVh=;lpEC$<&bD14ytr*=<{oVMi7Oa4mk zQ>HLXIea5{zj5b7%_p+&!&Bz>J_~_l)f4fTFE5Q2YF3Z1rq-QmAjz}b5 zJaODpXDaWq`*A^KVYi#CT%(pe6Y)Ooq0?#eHuA_P(Tm5WgHqa5J@2k(H#RKq?hkQn zJi)WKg*B=#IOK1auT_xe)dkyf1*M`auQzN~E_%1e{=>g^_l-X;M;D&I;1XkJE^_Z) zT*U5oJa*AVOxgS2KFzrtc3xCuMnUOuxhtKUrp-0m|9)-Xq<#1Pe{!@vvQ0xZNGncc zll|A&&F|hUm2zOq=y>D>gUXzvaE#uT}`JbeR3~w)}35z5f39CWnQEZCz9qeyPjE zny>U-3}4)=jr?iFoN;pnyI-&8pSa7e+Khc~-hWo>?R*X;C7PBV?k-$hXE?Zn|Jf~l z=fULabW>~RuQShWmy~Hv^5PG7t@i!d&RLtMshjA3M9(#D#+eP0XVbjPyuNrI_gds! zvsTGeS?tD4AecJRdPT5~=% z@m)fdGOu!*LbKGgZoBjSxU5?qX*(%4VcNfIAD^Xp&DOSk9~;o~*WKUixOdYZug|F$ z1ScL=WA3Fdx<5bvyx~!Io`<*o zkrRQ@6F2?V6SygG{bltY!_~5E_iFbh^*qh9*%Lti@5NOGA7IC-QTqP*2XpMlU9qqHQlt>UhajMuB`0BN`v(s zlN4tQ-hQOk!e$kAGvmAbQq^_N%xg|hJ!5&tQ)yjKRMAvVo}=pQ=@2YP*G~ zU-w@1uTVqwd;gs#Oq_BEtQ)l43 zr8Zn&{6Le;m;Y^D{iY+>wfe@T)*=@Xaq-3Z_xH^(E0}v#cctV}j^6H4%T*fo`z5C9 zJ@pn8w=Ro2`onYghUDye%|$P|Q|ljHKHvBFG3&>Sn?_6_T3c)X@b7r|OJK`BRUv)f z?A{Y6PPuQJa^q;+$*bklNdH*ArF`PsrQ7*ieUdD! ztYUY>KWRLhvx=Mf@Y((@8@{h*2ek~}+J3*&%oZ8_vEu$E{gtBYdu)WG%y+NUDc(2f zTh86!h#a?14xiV?O_K>?RdfxkZ z{BNAjbl~}=5DM{Nh%zqV$marn48)*Lj?OA9d|S zTAlc+O_x_JFP`XHV)JDGX8uPP9`gM7S^4-&{LP3T7uN=Q(b z!a8+wdUW0H9;>a)DnW;*c7NKdUK)K$|qW~nhRZ)zuTpCE4$=#aO&|79UD|X zHLWYtoqg#3b*rvJf|A8tJ{ARUSd?;}Y&9%88LDO|Bgr~%FQ}aV&Nojsy6?-n5wv-T9xY>@F(;IBZqJuKijxX_dVF`{-#Z7ca@@GU+cDTU_^@ zPfz{UpO?=+bMSt3-M;R+=h@)fA$6a2ick9Zi92_~7IjfaN4pu{!`$!Go>x;*i93|f z`QIfbXUpYR!JeV=@;BDJDEPnH(8Jq%^1eHDHi`2?D`v;mm6OEakT1ksMHTz9~Y~6Q0u0m@p2Q*^tI>SE-6%+`upxS_f5^Z zO3hm50#ZUlLPYk}yxcPN+0C75n)_Q8tA=NusoV5H;@|HmnO*mytfqZmwj}Ar2i+f4 zuH|2TK40%~qrm#s7Cm1bubuk$q6=95=B@9)wmm{!y7ZXJm1j%ue}AwmYe2D$F0Hw|o-!9#5cTzK)(&I7ponU2xu*)1_=cSE{ z3XPTeo%i}~C|b5eWp;8@yso!H_{Tb}mA4+IUEi+~Hnnli-zSHUFDZWH`0rj&3R~=x z3ICs%`kZ2Q5EK%bx$vs%!(UVQAFrPNKPY$c^NuxltN*r4JS_Ei>wnn;`<7TQ)xW+` zcK`7s>d_5ai+p76pPKmW)Vrlz>f&|YtI8IeKbvZklAeAzj8EX#rFz}Nzr1a4Y9r67 z1yu*`>tUVUw&Q4=Ut?lJyT+#`B@PYqGmrO%Pkp-S#5vRH4`r{;LxH22Gw@&&vzrRZ!OLXhH8*y3}1u{)C>w~yQTQ3NHsK;b7y#$ z=Uun^50*(ge>~8kR`KVeSjF4@zc*UHl)6^)II2{rTJgK?JKxEZD(}fv-%4BLacZW( z#f86Q6kOKD+}-D{6nV(0X2}blT`xLL8P7Mnd?wDz(DYJm$&}7T`k>9FzaJ*2y4!2K zQqn%IB5S(p?$W)Xk%8TP--=xJ{JO~cXOd8JQxnshh>W?>M{h0;3NbR>SFD@4Cu*HM z4+GbB*jj*V^AEq;n*QP3ZCUN7`zk*Eyw=fGWb?gs4)4=GucP)Aag#wc@7Id%=G01k zor_r^ohuKYJv--Awc_&4PruJ)@AFcP)LoK)^!dCW8~a28)0a$I?USUjbVOBOCx4HZ2U z{5E&m`ks)kshd7TpV|?$uSe3Jx#Ugr37%i4RvmNgvy)xEVd@_P-OUn;8`r7ZZ&6o& zx=*6uJDZCuYtm8iyM+&()l{$C)qV%wFFv++igHt5itUZ>TF3e|Z2tv*EKZ)C z{akwDC!HnW6$Uoi_Q&T>4({1%1-z78IWD(#tktnpHJkxR_Yee9)+{;ZLU+^#9BU-zird%E6D-JP#8 zem>|@4c5$jtIpk@d^OxwKUUuczyxsF_bIvEe_c^b0yW5keRk=w$ zqSfK$1G9`YZT)oL9rJ;%Fwp8_R9 z<(K*1-74#ONo`J1YQQ<3T^iNbHk?cn)-4h2Va=q zo)xL{=gd)hvh2-f%X^wH-)w4;o~sAyE`E3a6Jh55Onm0jBXeCgm1QigyT`41Bf@K) z8{6*)+1Q1Z)d&7`2d$G=o)VKPAKiKMYa##d8^1O*2Wh%&6Q3-><<988fvfS-!Ca;N z8+?*pBs6G>9Mn)@%YBmn%`zg_^Xj&<`9Y?e_c{I0y6d*^^6vi{|6gTjp7i=@6nFok zz;gfj)AnUqPnvjt67!L3Zu6|ppINwAs}o}q5xAMtZ>DZf8QPs*8g+1GMX_ig#z z8QY(%GTv5xeWPIY41t-GCT|jdc-3WH$-nK9UVLvnK#k#9V)g5E-m?nszFF_Sy!492 z`_@T?4x;nE$!?7;Dm~by{o`;+_hpv8N&l|yYOl@NI^oJb*>4-S9*;OH2MsYU%n;*H zX8f2xlnmQEh90lihG%z)3 zD0L}lDJjTusyMt*VO+xERCQZrwr=Hp`^s|9qV0EbZyq}H{o})G>+k2z%-lKMI{n{& znM?5#iauqW2nx;cxe;Ub^7iSh?9k%lnZC8j%RiRyk>Xh!mi@tG-Xi}$yUX1Z7Fehr zoMfjtRqBble4_N{1yNO!Q|^7Zm2UcXf>r#qE$?}*2P_euC@!uSb6|RKZOJZimouW% zGbJxNFPa-vqQ9ia-Aklz`EvDbH8DE7<}RJKI_OvGdaEY~CU5>j|YV+ z)wr#m8oFv?**BTZDPOSv*ub0df z@5nRrlGiKSZwii2W=7jebUr)NTAytF`OTHL(*KW@&E2_Z-mcFzg+k7cqMqnSbUIi% znwHlkSav>S;r2-qpELJJ#D)aM+b8Pnbiz%PHiaymeEi3YHqp;hICNLL&F0>e61r-u zj+V1U>ynrcs^ZnjkB{~09Cewms@*zm`=@__>w}&D+67pva`B#cXQZ=H{msj|06Q@d*8&qbz| zd3P+bXBYkWy5y=;cFvO%6KDKBk~sHWt3%gB+1!f!(Qi>-95R3b288U z6H(eF8@W#Cq|(uuZeH4QrMMwFjOkb`6h2HBk9lww6 z-x!;|&Z6_;hT_tHe<~~HSeLKcRr~uJ@9j;U*M4wcTe<9TM*0u#Yo*V+_9w_1hc_*K zb&K=iu9*CV>Mn62;TaPogjI#Qi+%EYw|kXMQTgXt$lm)WFDK(f+J}>&KXZ~}{(qVJ zuUz}4*xi>qrW8gdRck)ow{2B&&SNj>9rpd((%y;u(h1Fc>?Qr?#J^|Vm9uWwbNxT> zZFlI6v-HXQ7pW7{4!`zR3XF+4vq=2RMRUXL{NGmjzl;=N6_JtYsTAHUc-ykU)ODrj zQZC-j3wixt-Bft#d9yk=qNK^rsaq#}wpni1?dq6Izj*5}3hk4)I%gp?+NpZRwmAt-jPxJ7y-h*`?T&z4kOb+tNs^4>eze@O$3;Ro62FcwJ)OD z_N9hErQbsz!ECRlPnrAm?7=;RXAjGA;{t|FYF_oz2}{rH5NMg-h(Ei_#Wd z5fu91Q=(+6pt&P(*4>%K;$NcH)y=e>a<|DNHeKhB^liy>*ZTQC%(uNhBl`8q+~?hs zC4{ak)gSa?ImNkZ=VxZ`4@E+UImKqS=vioYI!>!DIhA`NXzG;j)%P!*Tp}m@ zhwkT6HcdWptJUsargDt+lvzrFFaF>D<+|kEmY73RUajKT#WvMTx2fu=liv42jkse+ zWYqs`x6at?wo>JniGz&hGmRHg0)2Ixq^l%d_UPOyDUp z5C6NGjJrR`a9qFKwr{}#hGgctRmI+2F0XGcRj%24ww&E)d;YdH{uQzo^Uitj96ac` zV}HU0LT!(k|Wnzkq_pEM*K8*TRaGp>87>k|ellgx0Udr1k8CQLM)w*Vlj!FJK znPT;r%^F(Gw+dUHH5%Amvip##Df!5kJ95>k5G@`_BbH$IKT2wAy{=3+e(Rp1^Q%2q z*Qa}YZnz{L7q8;(;lXkFbior(qqWje?yaq@Grq5Jnm+IGnpv7pcoutjJ9|vH5t@8X zUwK3BZL=Rgen@PI30=AR;+FY;w+6LrP4F;2ddJk2<=&K~XA8c*3f+=%k*S?uKJ9he zzNZ>W&DR9?@+*J-CooZB33o`uI=B1p=E_PXroNle`s<|nrH9Yg-Y@$4@O|x#{fxg@ z`gL>9i(UVipA)^{hQap-_iykvZ(bW!`26Q1m9`_HhvGK~H5N5xz58#&%Vf5zDI|a=kN+ z+|93OF~KF|^)mN>TYQo0CY^Zxnm_c_u@LF~cbr6(s&2>YADvL$yR+Ccx$5z2i#754 zm>OIX zb~ox=7N~qb8~d_v_4)l9W!v|v>h6X#EV>?GX;}0gS#a6h%C&BPx$iC4w~tQAzgf~c zu}Vw0m-$Fo_m_iqZ_7=E4c5H13#fiGMSI`T$Bb$f?&@1JGczj^*T^sP%}^^`_Bu@X zi@+)Etr;@u_chp)XJ1}&-20~5|DA!XRp!epTVJt>&o*HXaO7_+;Q8=5<^R!j(q^xSMPb%6r@xAo4*7SB4iMf`W6z5F7!}R>z z+~k+4mX?+gzou`CQce$-z z>S-xH^yY8*Ube^CcYkB_1OfT3JvORh_48T|I25MvEtL&ynXqTx2i=F$EaJFto#F4Y zOTSRGHSoL?V|27wV~nCqGgH3Bl^M5>>05Vw_;o1DB=b_s(*A%aS2xe~?|QTN_5JBz zih@qxGJgFqUj5pQhu8Gp%}RRSGi~)B>DzZg-|zVKNBVZ*jp$38tj~+98>+11_}4U* zV~TJ{@pJZRlO_B%98f7cIMbu&xP1MbOvj#&(dw^kH9sDADQ(!p_*P!kDPvQV>r}Sm zm(F*}c)oDDbm+%pFBR*=f4P%l-tRS$a_G*gsH}Lg#YCg(@m>3aU&M=wiv>kRTUFOT zdttUg%{p{F)63K;Q!*dCe0uQEr`Oy%v#RY^<$G-?Jh6G{nm$ACP(w$dMS5DaB(Q#tdk3!*; zloSOerKX9#@9*)&hOlNvXRKQNkdyz}mPPCTRBvn&oO?Jbt$T~%3cJ1XyUSlO)ZcI0 ze0-`!&E%^mioT{itK9qkcdgZMI06_iNtwa;@1Mw-~PJC#P>soNeiRZKlhL0M7T1 zEnfS0hhMyEtI08``r5^^1-)-pXkG;!c)E1EX+`Yzyt^9`*SXL2wax6DqOm2TF8gq2 z?6vm~e$Cfk7_{=BGyj%kd)x1i9Bm5fqf1`Ov>cy*tAF!L)gLeH_ZnoSytbMy6>Z)m zy59CWukGfaCs(cr3ER9y@K>_u!YPaR&3KM|dU`stMRIAM&#U*#l@%kr!lzENEUl=n zY*H~V(#Mqdf&c~ zoN&+X|FLO(Q;n~bKx!G$V~AQtXis}kpQ6T!cbc<>59Ae!->KX;=OJtMsUXvJ(eBgF z{IsjFVlKI~DnI#C>bC$ln+w&yKPT>7wAE8e!6ioJ*p&(9TV8tF&OK;mTQpPs&p-VJ z50~S&9wolnGU?MB&p*Y#f{SeaCkS_6v)&pUwJve?jtebv92^46n`Z3VxKjA5`n}Z+ z%a^A&&sh;1pV?gT!^7^==hXr-ZxcBrzGJloW%Suy+LI>XjJ*-@~N=kU9K+$-7Nxdcqm zxBK@*r0mV9wy4X=Kk3DWxU$TAHRzEC1Xf)Nu+H-#!$E}SA>tCE`_nIokwRGCVNrkbCOHv*l6n@!r zf#ZYd`qR(Lg;*B5*CYgGAj@io?ZIpwtp?0hmEzu(tOIJez< z7jnLR>D-&!zWV?9`8@x|jzZ=7gHc?ICce)2>|6gO_lfqZEh{dC7`qFFYl}D*KB(9g z=N&5aMtZ+dzo3M@PmjRUqrx8@6(4mP27dUoM*5iF5w?kvOqP!xhkmxc`+0Nn+6i;# z^4i509v%MEjzm#D8+oP5&2~vhhv2&t|zVLD@5s}q`GS`{^{d+b! z;F(=^_&SXb2k%U_s9h#uXE$$0#Y&#j)4m*BzdwB=@2@$LwjV#Yc}M(y?Am7ODi)~t zT*@o<)2CItGp8?Fx+p;7OW$oFUC~Wv&srDESQ^Y4y|CI*Q$KhgM@ouwU7ej($%}@S zo{_trM|Ws_{=)KTcjx@vs&pBfi3fwUSNOekk`nx`e=_xZocYSm$oD+O&o2vpJ-PD8 z_0!D%*f?aAnqKrPckixC{+w^-zE11&t!FB2l@*q|wrzH?E*3iMsNHD4fsg6lp|s3> z9tZkFuGjy`oP63ndCHV25B62RPn(_7C05{WbatYSVW#7SlaG29US*s5UDIXPKeu~_ zp59zAUD7(Vw$5AlLguE0!J%F2UR>K~%k-Bg-$7I9@rRc_7yju7lqFwwUikd;_Xz z`V3X;$^NXeS1R5fJapG zVzkK7Eg$-1F6zE=&yO?`bB|S?uMcwY#$q(15u>DUfzOu@Ef9yVWBT#$h zpeK*5I8`}X#~ojZ%4KR7BL zpR#=JyI(byla43^Itk@f?>((}@za7285LLNMC^((6qEB+IsBZRdB*Jn&!#J_J(sVZ zxM$1e=QlW)?LW`Em#4_|huKoE<eE$rg#{uQMeup%f^@cQp^p51#b)6Vx?t+w~7ocZZmV$D_?;nmZ=i)I?n z*!_%aQm~`ankRli`zK6eera*zuwGC_+q8WZK3DPzH7EKzWK8{oT}%+2Ep{2!bucF3FkEn|(ZzbZaC-uK|9rL`)K-homoYa|7g%A^%fU+us4V{`h8 zH*H~yOnq7W3TGys4t2h^W0FWp8h#9@8qD zw@M_*Q<}vw;7sg%efNnHE^!m=8upcNSxsHs|8d`4>u6QImn*KiIF&Amei;4UW!^94 zh*kG4KAIJ`ywR!k*ptlMzlDZ-dx9kcz=MY0>eX4hUPKgaG=CA<)7g3OHM=-8$kx_9s1kI(-I8D@sAYxIikUG{g4 z_~JkB4;fn&ZsPD3Q=Qr4Bw?GTUiSXv!IO*26^(*&5;a*hdfmELSAW@^wPddD@eApj zBqP)NgHyWRDKw?L7N6MhHfH<(YgsN5QokFY#QaIW=UKCVm;IkVdkpjb)TyYpJ-q2T zw{-fSeU{wz`FqYhTktJst>E>yZSPt|7*1S#@nUB2h2?^dN&BKV&Dyv^u6Ek$&{tW@wm)3ubmDja zT-V18`hj0$mtOXXSe>-XXv;m>z&n4X8|pV(CWX$tuBL8y=J4r@TP-^ikMZny&3!G_ z{P#O6J@?$MvlSsat6r@;KYj7D>@P1aX2k9CFVBjs4vM*HbYaF)Em!v?Q?@k+tvs@w ze}&8I31)Uvv(_G!QV?M*dg7zDTfdW;t4cEE+< zr>Cag_*A$t_T<7fI;_j~SNCu(Jy&Hujk6+1(YNPzTi(%wwdG1CA;{oV8u=CCHh=^vWdQIzb04rq^?w6Qf-*- z>-}t<^J_~B3yJ>nU+&ZS!lS=0N*6!P+Uco$==|+qcaLkwUOjwYJ7b+s&0_An@BczH zOf4oZygzByz4_tNUz0Ug_i6l*J|MUv`rfkL=cey|Cwr$frtjA=voB8y68%r#*G!8) z8R@=RvG@h+xf52mxCF}ovR@R`k2o0gb-SnO>;<=u#`+6sY8?Vag{6qbm7W6%?M&HS z1(Up0*d|Igc_?W9t*<=6zBX#>p;m5jgOV2kdrIFsc7HX}ni8dPDmx}bBUf?B#0dVT zV~*05QR!`K40C6G+fb2dwJv39^0zZ`RvafyA0O`bOZ>!rur=r$Y%M^nfXtijJ9oT9 zL^Lk$EH?P`S^MIqyXPxjG;W&|Ec*1%Trz@-+ zTLTMCGXs}YJI)euN&52Q663$HWiA(uU0vD~dplmvHf7TdziT?F_ufMOb!$?jLi;wv zJiX5lG*9ID%E#+IKV3Jwwp@0)^1h9|wykrHWE?1;Vm(=+q-pcN=l5fR^quYtDF~iX zY|h`>T@lNyXW8reUEkfn3-6qi2ud(U*| z{jJ=&4H?QJ^10Hy0!prZa}>R=WtGj+evx{?Eus53bHu(H%M*#+{~W7pc5q!*n<4&6 zzf|?YNz=$x)22>UtWD0ISjU)a^11t}nec)=)nE9;R4*uhYkRBF>0kC%sAWf-`K1gG z^X54w=jQ1iYd9Ef_;6+4jIZx_A34AJ;lbQ;NhsxOjHrjc;>(Xg&pa*(Nb4!F&98XG zsZxLUL|W5ImzX0i=4la=z8&SB%&%B^-{6_vr?cC|XUscs$<_14B~^(hXD(^KEZ>r+ zdR*7AH}Y49>bE^#3(eJLcuAB?RdO~qHdg6|FFm(#W7U;ohfH_=_*E`{_p?#mpNczy ze{H>G1xxf_SnggLTzw+-p4jpgSKhmyI?3ba@M?1mXei_N_GulC&a<3Ka@VihRyqF$ zllRK+21_-!JaVzvygcv4q5X_fQiZQ?6<`0ksKaZWaK_zR87o%L{g^O)vIMW`Z-zTF zk4RV+sVrKYZ20cuN8XMVe`iJg{92Tf8k@3QKiN6LfX%)vwF{u1k}y zbe^`V^=a1bjD`yvXFP^q~ejo47m3QXO`>ouxG~IN| zQ?37O8(uz6{XTo=>zcq<3hIV$_SNKEVo*0c(=f5!Zzkik=GB)DEt}jTsOi+ zg=%s&ntfWAwbE@0hP{xi)x#*2Phy}4y4a(5S3;=ijpNeXIK5_j`C6PG{PV#&kvh4E$jmwjLPedbqj zAG>pVS>Nuql^?kTnI87;eHg0$w>^kIuRiYL1Em(1Spip$&*y$xWvcY4>r8jW&hj^U zZhw0A>{dP2mw9@Ne$wOm!{>6H3%z}K6CI*7xW(rled|11QSH_?6{okBJ9b&K_CA@n zs6%|!<(KoA+@{!CsqpLDgd~5?@>Mjvrs+M~@R5>&Lc>xgUq78of~+n)(=@Y{mcNlT zb$jQ$+~|CFOixD5Ypvr6x3}ef`1sK*J}{ zD_>k#D7b8|D6_tmpZVe^f9IacVrMm5vvk!;J*mwxx|)|aoId=!LpNOWY1&is=b-Vf zjGLR>R;RuCqWt2zI#d36i>|-B+ctigaO;-%?7F>8m7o0|K4icBXyr%Qv&Sx6iOBk| z$8lUJ)8)R^R&H0HJ$oFED$V^8xy~!M{n{Jp_~VIxe|>#%Z?AQqynWyG_EV+1#9itp zerDgv@b%TLi&=NMSN>JnzSv>EwA0>0rBkHbrmdb5WTd7Qe*OHd@1;+_>^Z#LSR&9R zd40TwZ9fN3kwf+gP*Ek6`}%g#@t=>XZC_t^b-vp;St3p0toSy`1j`*+Z(DU+WP<%R zYl~U^Tzodud0vNwkh)#`w1xT+tMckJFFkOZx5(htTYsJGHI3_ywwk;^p8e8WSzw;F?{chor{W#$w-JnWG4-6TuAw=}OG2^?vRt%zBxO$KIGxqZ z+A4Pa+pFy%s=O1HKVLCp#&YF*oi5WRo_Ibzxb};XyCrLu$$nEm7mEqcjs{QWTTr+` z-)_!j=D)v9kDA|~m!8QJ87UeNmKk}(EB7t;rPB&b8Y)YUO+0c>wY*+Sc!FulPOl>p zFW;W2&Dnl4cIMtMQg+eNC$HI_mHj(g?M2*$vl>^|E?V`h^5xB=Hm5^2TL-^qs`Bfs zxRSop>&fH(nZ6R9zwRa*wNGAht#9kMuTECHnf)Ao-iO{ZH98kxy#N~5Juq!^&j0G2 zw`)G`o%i>8&)TR5Ds7S;pIUQ48RS(D_w9odK0LcC)9BdDrs!EG)&Fh3;yMkUn^Sc| zdn1{+9^Sim@7|A^h;@Y^E~E9|3A`Cjamd z^Zt7weP`B-doEVKKOD}k3Hto`^TmbE>^{DyF1?JqvdyP=d-J>2m4@8=rM<(IdpWj7 z<(kCms;y#vV)U_U>aBf?UrBCW^DiymZjxv$=omTo(*EtI1v3g*e#EUmsJMNHWBQ%f zg^B*%%P;@oz8iVt^39y`GxKHZSlu0@n2za$dS2Zhw05gi{%pH4{w3lM-}fk)Wa}JW z%slJx?K2{bnTvM@o}TjI-i)J`99&$7)>!YI6IHQ(Tb!Hn%;|nE6TTST`zw6rkde8$ zcwk^)#HXx2Pw%izAy>1uy7?bHIk6?kbI;zh-j5AT-BXr(Wh%}8Zyq?MEa6p@=6+$v zNs#H57rmjgKW(gXw_euz@P(6LQ9sYFhU4$VCbzjLw5oqyrCj3mSM_Z7#P9EtW{KzT zt7UoeAZS?tXmo31a=O`}Ln%JtM*>?tdiF543relAFLLYn_wmb@Bh&i3d&?$!^mode zJG!~CDJdxhL_~Cy=eNJJT$(XAXz4P?68$9)GJTYr<^^wxS$g(tIRB{Gt_q9peLUU!c%l@vwyu#b z+4Wkdb&*%!ypt_wjtdvvm#&g5d9<@4U)4K!fr#Ly88z8g%Jx=CZkafLf7m$}!LO04 zxRQ0XuWu4z?c&%_%5|}=cX~wE;RB4mxqP~jtJv794qjib_frYfk}`PsH<7{ZcSPBHNdxN1ciJi*S6? zQ?1U+`;5XCPCu~FN8*Or1=SMK|ZD;_J+U$sT&>MHl?eSV^Q9RhD2|ohXO1)d9Ur&u8ol19I`YxR4ISX)08b`?`OsxTgjsq zC!z8A(%iZrzF(8N_uh;-cI3!|CnqQW$S4wcw@-J*M9D3df0CZ>{qbb7zd^zQhAsK` z?=3NN>~w1ON;N$sRDCGkKda5Oxb$6&X4IAs=F#sDMa)i3)zY|hNkB-Yk7dT^(;OyS zmafvQIngx9W6MhAI>As~oj_+f>C-V$S>l)Wyf81|uDfl)adsAK!wIKb1y-A;OkW*X z@IvEHiX6uzY5&dz89cu{Zttx&kE{EcYEyjMf7jQYndydc(E*2CtS?`>G{g1zjR*E6 zRzg#?bcNrk2C)b0sr|2+ceJjXso*4fmqopttEu+?U7beh*-65u0Wo_k;qj`UmZN7bmwCoSJjr>BOKkg7ag8(#ZY1& z+a*D<+?^d$KCAAC3g~2(bgih1koJ+h$mhuTsHVz$fw|bDKPRH%Pox+fVV!q;v$K-R zc6DBX^z(u0liH5hvz9YB>NmgPwYR>;b@S%U7gtsaZw_5{X??tX$(tL3Px>5ZAKos1 zYSNO0j&G-EY*}$FOj&28c+J;{D^W)FCA_U`ua|Gy@GLI8Z0UgsOSN7a3Uof?F!Xm$ zUi7@*gQs?vij;4!wa@8B5zgT0OKxobZgp!5pUdlO+f@IZIl6C^SNESMhd+E!`E)4w z(zDqndiVaXWA!#%uyw}FnVq%2zinLhe&6rBCCis98yN}dm+W7&xpLjwYR4z7i_Lxp zeK1^haC1hqUeM`V&MQMe^X?bl=1kqCzI6WA*CLuBFFt*ellkW#Z^FMed%f<{I+s6k zHWM2Y{!72iJ5;*lp>bJeTyyj~ub1ZQ4-0NEWvW@9p6&9s+#Z}scz&PV{^FbsESu!? zG!zKg9Lt~k;#|q5`)iY{PflBvDei6XW3Tg$Pe*eKWfpvo86wT))n) zLiX~tv<<=g%a6M}oESZOb4`wSx8`;R@EFD;--M~VX3hO(Hf8CmrO6`egpa*?{5DX% zXKsw3-L0^5E?-|Q_rGu~a=vxj#(fiRq^xve*4O86`Tp+czp`aXXC#|V9N73|PMDoN z7q-G*q;x~sFW129r%st}Xm{?}Dq+y{^g!Z;`@K)%d|X1a1U-6w?NV{7I-Bjx^lAr7 z;H*}!*t0spnoNg9xppc}wB5A6JT~UV++Pn)dATi-+#FMSB;xxV%_EcJW!!%)XVz)k zu_mZDc;<6gKAn=o`kUL0+QpRCS3Km{Vazn=NWt8jPgU9^i;qGYd#jA~a@d^@%`P`) z$++zBsOgwa=-Hbmf+MPTKQDhc`}yuEjdnx;Y?m zCR@iz#@id444%2wmHHp%eY)6xmI-HVRNk@X!)LE6E3WPN$3}3{jnmJnB&Qt+ z30->d>)-Z^DpP{mU**ZLdWUu$D!7)^5wgfbbW=?3wfo=n45uYHzFza;LE_y%(wFub zl)X2d{rThfr`8)QK0dO#`sL-P0Fi*qrDE&S-s)tyyx1Ibw{8Z)g8VJ|>YVCDob#_IUT<+nY{sFPyOMSWoH9h~4(m-_=Zy zuGtuvA)6Pa7{BA*mCOV$FD{5_a_0yoTiq0R*|ziQ!^@_Nni#)cvQ1l3lDhN7 z-{0S_m$sM*`P+PCnY2G|N%)`3A^n;qb58I~T_vT+x$XLCgR6Ca?|TMZihssgZ~xJ= z_IWk;#-yWMZZ|Bm6=j7lwOjn2d?RwnqM&ZB)ZPQDl)YVB*;?EC4jez;%vl~Kr0Kd# z$FqNW*R$mJ_x38}&YSsh`D>nu^W3%e?((XhZy_}QSFXIx#B-P8UfK7DoS*V^)y}|z zpyR&pua(!GII{Cik&o<3*VbbG z-i_nJvd%*{_SZV7N=-Gbys2HDns~HN`^L|_Nh(|J{rJXH)D;@>@r~}HUnNl%sb3@K z?1^a$f0xyM^6+hkcgyeZ3fyrcB+e{y)url+o5_j0YN{VbS*7X)thl*yy{fc{C-b&s z)k_Q?zYDf+*k7yAHMfRqrO58Gw@G^!^xFRY4r*R!Cck)HHFcF#s;H^-*$XZ6%&wlE zz$MBVE4EzjYWC}&H_I(=Ou2MXQzz87x7}mf?#IR-4>|j~gns6_%HjEfvA+KC>-!LRzH6>2PrCGdkC5u3_`BUF58r-tHt=m} z%8_r6D=R+lE|K}QK>x-5_p|FoR>!~StN*?#vVEy&R!?k!NcoYr$4ejPE;TvIGL<)S zo!y_k{Im0gem!Ybe$WR>;;+xFGJf}Uj+s!iol1P|TU`~^uVr&3%`RQOyxc$Wn05X} zsdpB7T-%?wDnH2M2#7O^6qni*vb1;4Qm&uVKb;c%dnzs_s${l`>u+86V#AN8CtLi# z>9CiNd&;6sY4=U{e0FBDzFPDCU*C@X{>IJA8;^;6nt%UNizRcwjjF$Ah0Yd6E)|Ql z+F~rJ_qONt!H6GLk=B>kem*+deP-Jv9XU<)`6UvdReGD#&nLaOu<*x+k0ITQj5zqa zL;|K{-_)$lNILv7^@7@mSMx*`Pg|8@>HSjbTwI2*|M{hcr>{QS-sNid)>QA(ZViiy z8LqcaFxx~f=~jI@f3;T)bjbGHTQ+H)E~S?Po@1lC9tLZx!-$KVIIir(_x@@wz=zc-G80=Cz_4lUxG>7f-)v;g`dk zbOCLYmEdUkedFCldg9Y3tN3E$gs(xu&vu)d?iDF;QE&OO}ow2u1N4e?ozf8N1uC7Dda&OBl6HL^1U_E_R zp z`R0GDbn2D0*7xjN{>3_7*qke%tXnom$Klu3qLNIx2FHsjSEafR8YZ6k_+;hLu=|jTW|F%H@)v< zWM*@iA3RArLQeY743_TxrSp@oE&j?Kx$fQh{DX^v>gGx){JJ~oid|Qn^!^_fHnuh& zuC4g?;rmyYutp)zK-2S||HSJjyxgX}K-Fd2HGlp*O{JEl>%^14vM{Nu9FU&(wW)&T zbZB_zq)n`Hf8@-?ncnSEFS=f6dHGdImQeG*jY`wrUG}$6Rb01D;8|3Ck>;D?V?C0k zZ(iLgjXAevLuI@L(={cBp3Q$wy{{sWj-?7c~gk$TUNzQ zj$ZY1m-4yx<=ojJ7;UE~R@$i(ell-Mrv2@%npIb$o~X(@Zrygw=xWeiZl(TZI=RO> zx*Hl8wtahMyL!TwZ^zEBO38k|nmx5lIYQR-_%V)a_4;83O{Ed1b7l*yS^YicsJwge z#$T-YJ1Gq=R6;(t+^P>?+WjHy+dZJ-Pl2d zc(s9%LxGyA;hD(zsT)Ovtu$57Hf?vy-5#Oe9OUz&fBqTfM9;!7*Pk5C3f@=mFt-cd zi^y5&709r8KWEZQ?sZWa=j^Hu28-}IpLdL#C?&YJ`rvi8K<6$0KJzVcigbO_`gE7L zi0{W^*9#-|*V*nWf8Y1`c>m+Y)0;ouxN92de}!+NzMS0E4~7nDzCZHI#Vnm?>298U z=_m`|(p{m0WUI;dDEX%E^+hc0`co2~&FIUJeAdtD z?XR%gqw@$~uc3yT2=ngN4gZ(%_C_sEU2=T8{*k1B9*e8Z@BTk-%$~8~iwa-;4gTE! z{yiLTX9=C(UGR{}`r+T2h;=Jge-k*Ly+SnA%O?NU`>bt-Ry%gJYV^!EJN(mC>cC>D zdGqE4tX@4cS1nT^V4?5JIrIM?HIrD9Uhw9Ip-;V6-*b5p>vRuE{oEw))21sz!jw%G zvNJKQDZaU5mvw9IuGFt@Qda7(OIVr3Wqgn+eE!o_o4mS%z!Nm$y@7G-+zu{W+!K?v z#NGW^hz7(pssN~g){UuApGnY(|UB7)hyYMyFt?Y-SCg=6K&sEb{ zn+aM5d+yD{dsUq7*)Hu%`;Nzb?djy3{8Y}6a-7<`Q4Yh&`&T9NM+%hpdbJa}c&b3}UgL+x_#~=9< z|3C4f@MHF^2aYJNy?CO*^$9a~pVF#GhO}PM?~U)SzV6-s@x$7)27mAMmF~(ob*$je zDVuGPzY>#Nnr}$l;so2@>_Rd~kyq@*)JrPn59Th!Td zrYOF7)vBYBpE)b1;9t{Yoy{?-r?2c`Zh!dlX=8$Ri9XBeD-RwdJbC_nv2#0L#ILAz zeFlq57ELnZ&2Cq6_egK_&ou(_}A0Kl4cK*m;k!jxBcg!jDgRKRqU$^Fx!sjZ>sP>IY?v%j z6IsAw!6ei8U)jO3Cq?_$$r%aF%V&$MdgJ<2)=V#D=dW}8Gk<(^Fq3<6o5%S5`wp>% zrkZM7PhZNNzOg7=?AuwP+y0l^zjw(-S{Q9#f8yVl2c0Epd!-gUe>_7cG*nCU(c{No z=jBZc$+)mKxqAARkkD0IENZNT6^k~?vCPd|ce*1%O5x?}*IDfX&yM+h;>|6{JpAj6 zj41cl^JmYd<_USnoxP}iMI)6{^45b{yQY~{Lbiy_p8Mvyo`~(G$}6eUm>zdU1%ExB zccy5nQu?Rvs~MI7yPmF6Ty#q0*`m7G(4!Qs{ z&ob^+KI8y}usLX~V#mz%`TcX14+ySkX5i$!-1g$DUc1YQDKiC^p@w^8Xv#p`11Km_H7R-1<=UFo8_y&SoJ&+Tji6b zC9&zo5|8%t*TPJD#^qv*=5yJt%p{!fV!Sq#7;ZqZf)Ysf6FH3q{bk}YTnc8I)`F~>3zum8m z9zK8Fc{6#jfz?J$@9ztQzr6_mZp7PbSev)R-e%tm3B9LbNw>eSR9x#8Q9Nj|^NjGm zuYONf+BYqIRV!P3=bg!P6NeWrW*+^iiwkDGe*3o9{`vF{Pi^Bnx;&kBm(t2kb;aqV zDyylnsr%16;y$_g!;Al}GE3L7FO=IFyy${K;YrY1x$DMytGuVJ3je-jk>`qtGn18E zkNKP|we$`Rj^LcOI(mPH$j&1dj3);#aQht18@(Cp1NMZXL;cRHTFs#R(#;-$Mpz#@`WbjHuemVYJ(H^#kfGI;sznv$*JN$vw|qO6S1 zjxok9T4BE_W@(9((y=>=U8mRzK1PERvnJD=BRf3R=kd=5CFbq}FD@>=xTj>kqxaQ! zbFCywST>4J6S-!Sf0ehi-SiZ=`0?mv!!?;*_Y~YG$r=ky zys$8D#zxK8`_9fb-@NBnzI;Gu+rv}SRyjqKc{G>{|5_cJp=^*=$fw+@bN9=u*~QM^ zW~VIw`D>B~=rEh}=li!>f1hbIxolS3HBmuhRW9AlKY6@`UZDhrxm4oDi&p&5^wBDS+i!1 zOG=8$Gv71U1huZ+cp;^{G$WU{R&Dmy-FZQiXM3H023l7(&$nhVx8K)$+fx2s*?(+? z=(k0=J9pe#Az%0JXL_{B(f0=hA8-_~#0W9^CGB{!<)a@cVQzDA*bwqJHz+nbFzfIf zVcY0$E5GeM7ps5#is{QAZwvV3%1S5SjGw--IxYV~TJ3|Llp|a6T8{d=Uw_%O zQh4w3YZ^D79iOmt)ov@932Ype))W49n!aRjdln7pmk4L@tWxFheE5HT?XpzqJKEvv z6ciO1`c^@i15^06b;O$s-clMO$-8vfbk|mDm zkx{>A?Qt@dI)2?^--LIpon@Eq_s)3MlKO;|bJxC&YlQh^ty-q(MjI_!we6|4?R?eL zsB3-^LH;LFl5)i~A8UE|wYnu+*mfwL?2w7BaPNCj_U?_2O2oQ#a|QI23Z$%>{7%`- z3O*jea(BPD_Kv5kEE7O|&%TD+iU&M-w$Bc-Q|M!GKM=#Bk^i@IhD~6e=|qMpZc3)x zZ`~<7yLSI$7rSLO)nd~>Ya4F!S9xZ8i#7XO?BUn<=Q!TlQ}o$XQ%3w-MH zOmk~I6yE*4XZkg3x{+$64b#VqfzQe=Km5wdE5LPp-Fz{JM-@#=vwj`BrqtV|HC3!t zRcdpK!dKoI*Z2gvRNF5|l}U&)05BHk}(5?+jhJ`exhw z68)A+Lven`?@2c|rS7VfDPPW|ZxdqNe`rsL)>e*Jp^x*DGrPFHo}Chqy?o+y0dUX% z>dbq|&ysS_6n%Zm9H_IjB}n^AmgL219)}w9>$Uwag;mvb7mKPNnrWf0FT)5b5!1jW z;^Q@+4M7RdibYH(;(!S^Pvoko#YOr2GpB)J0_PDJ%bN zb#`XZ&gH#(mM>S|R~3+Ez_NFti9=5BWJB*zN9HFJ5ALjZxKM4;vXenqgS`D}A1@I8 z(bU|&Feubn?g8ij|H57+P4>@^v*g_0C!2d~i(^=r*fQI7TO;%ji?pSj^jspkG-gM& zBDdGAD}J&cyJOqDc8PD^|IMXaOt;|UBUc_d8;Rie)=RoqDBk6E-8oIrYhkCkPVm~d zJ({QQ#PhpJUFj%zdc{C-(V2iOiA)y>L0?z9J6~K{c~^sNt(eBT3krs6r}U<+3i_R~ zBF-^V^x2;pId{D&54M{>e(*fn+-I)Yr+sm9AIy_hO1++*XE5CcG<7f5wlCV+EPI{# zH1B_B@74S%T$;9c`T3x&i-NdsHC(&yyJ4CAp{+~y1{AD#cE#kvec^p}rZ2gdEdB6H zX{X}Of$W=%Vz zHC4&7sk!;%H|I#JT;WT5HCC^%{K@b8f-~Os{5;do9@i(`;}lH%S2ai5>Td7>rPXa) z&m3F)_ppoa#ouQHZ`obzo4L+>>D$e@x6PWTtriW93dvkGF=gS?Rl2|OU)uI${+_cl zs&n~1%?Hy~Pis28{xPV$k^+@iU%q@i2TC^A6cpwp*vjqdso&Pb_Zt3g(sCEfQK^-FI+OHMjbt1I44PP$WcTGyiNjl{d1&*f@EzvQpvn)h%00*37ND7!o>pfAFglXe){OpPbH=Cb7sX;Emzfu$+wgi&MsT&BqiAPW|DkNhJicTVyDef z)x8i?a3ZzSqqKI~>L;6AT9vpeq3t$dP*pcGZFc`u^Hc^e_8F$hD)Z~i$!cde323LR^2(1Yhp>u!|B1bI%SQDd(!mxww=EgW+c>+ zqucqTrtCtM?9Py|xW(>HpCu;USnYVC@y_3sA3iZLF&|M{n6lHWMdsxn38nOtYnO*# zZ@b=MQL>Jsdt1!0Nt_oyd=-2BWk%HeWhWvJ7Jc1)JSETloSa48j02$U2YEZQvOa#e z59*I?2ldDD%$L?Ufcj%1ENr||Eh;}Vw{!2-TOIN^xy_Z-rTxB^LyWVjv*zo$J_GieFoWL%|%WE|Pl{dx9?AdeXevD^i{;yXOMJE<~>Blx6 z_v+SjuT1loC$rAXFl>H$?tV_|mb|ocb2^`-KC|whF!{`D?$sBUcnZhttr9IPES&K> zq%H65i{iFSjhd51rq%IUPR)B}D*L{5%2xk4QO7MsM_zoLx$n9ScMPQjLE~3{?*BXZ zo8RT((ucXaO{XJf$z-~$xS9pp*`EC8TIW0emnIiwZ|_binY+?tXNqh1n;RPsEBX9% zg%lm4py_b!b5ie(-5Zn>L_y1K?nW}?pLry+ZDM>ueX`1y_1Ws)7a8AaHMmb(r8Sl7 zI@jJua9q6 z^uGGYh&PJIW5YJ-u=w=>D*|T}iPRbKo2*LZ|9!LEa>mzCN$>szXJ7vK`1s?s6>r_X z8flm={k-Dzo04hkc1LnAZ3wt>^(OCHpGRL0wjDh4Yg&-ui(N1MSzpQIbUe}4y}lqQ zvUkD{xe2FbS5I|*atgG8lP*|3Pkg2{@-<3qoh#{2K*3Rd&SSVb-k$gX`U(tb|cVcIH{AKQN}^$1+W zIX6#iYW9OwAQAQHm4~iJ&oNVoSY>Cv%0c}|MD?T3Tvs`~UvbWyY_ah|nx(zv)ZA&F z+Ra9B(arC&O1Dse|i3-$3NMRnr#fJf0VxQjBPXbzs8plBI4r7C%H4L z?zeDX7w}w?uxRcQXD6|>!S4T;D%*N|ZrY;X5yR!(l`U|WTXTKR(xB!)Pn0?M1%3n5O^b z&gEx)N*nBIjAEzvZO%*=jQhQ2)-~8AO2xECX?cdr1UEufZft&D_w|O> z#kF@WQw!c)vdP<-^)BhrS5Uz?9n_A}v&`Ld8RU0WjtiXHOM_ns*D7`m82yP5JjKKKYf)G`knQk*l7Gthl(QUS^MO zf!7At|4Z*UTjZ)U9tWMgrDF5*R(h0+o14+XYqh_>ZM@AZYb8?q`&;To_BjW3G#ad} z@AA62zutaZ-r9{J@2;$KddxOL*shjXfdw@VKBJUtX_rv{nH@0SrUq1C5p6DJl{L5UDwusgm;_a>8ro*XP@QpNshAk!0>3d z>6)im$4ptP_HC43d+5)EU-RuaCd^!KnB>Kseo@i#@}Zx9k1hjkM!D!VTPIwT>vh_- zLlgh0Jun5ucercAWQlcF#e439;yaRK!jAhBK9uxy3AbOLd}8kEd8cIU<{oT$#q@vu z+yLn*`kUJ~oz-p42A#asBHnrD=AoqzswN6q`#&{)l=S?hQ;g<{HJ7KED%G{A-JIgx zxPUR~M3CuvkKSp_y42t7XYE0+6zBQfuR>sCy z{_CuOmK6@{gO9ypt&|NRQJ!Wf$>&I?TZVv~I5w0@|-ZLK*8b>)UJnM5h30j}9 z%iVRVSm>;*2^VIs7QJ;s9<-*ZUjLa+(C!Hb<|eG%^=6|%N#?uo=jBRvUD_rdJ)J_G zk3Ekr+~n1Ka5JCc+aykh<2xDt)Yx3K){v7hQhPb1p;U86M6LVtbj-$E-a9TDjo6PVsbT_Wj17-Gt4>PXea#fek^$!h^M5AZ+4}q1->rK&CjL$c@X^S7E!Jf>SIYTW zadL3c_4=R@bpvkyP1qbxH54rPEe@7N2uy z_vXHborSU&mTi@Z-WJ!qf4}%N{kP2*0%oqvi~hU2;L$q&{|heLvg!ym2Q8~G>|aq5F-Kis|VqN}KKKN%hvEu!|z6{A{ z`jt7yw4}P-7H=^U+WGa%mn+^6c5HgOO4D6yQ_R!MG_%O0KWd<)D6DkAlSh4y$URli zKtUPDg-nswTl?=lo$z8=s+aEX|58@+cf=M8n|(?#j)=c=f6CHT3mB97Yd)N=6unWo zs$rrN|JVG!pZntuSlg#0{Y#EDNc7N-=8;u-;r`Ot?yHWFrp=#)pvttoGtvIV0-zvN6uC%y`D=jR7daXfz#X^zFnKGd$`5tI$pcV)w5%@s+vtTgW<*A zz{r&ccVFJEyscUzPkx{5`?D|l?s*DM`V|zqG_lW2Q1KDR;?UWjKK^VAaC=w#ea4vu zZY`#}9F(6g1Fed=xICD5-Iu;!kIsAlIN$bJW9^j%;k(^t{Psxy(kJv-FSCJ7Yvv_Z zrCyHYmnPpXux?7Tc@~rHBmUwobD)oSbM(4d%^K@Z3qIi3!3A1XH+ANtzfU*{SkAaL zoZz;a8E19v_*XPMOyAFJxTs_0K{j0u0>c7b|pGR`}{sr|a zxM!IafC3{%8JLgH(QkNZQ9G7 zc2B;w{g-L;^0`X)Kx>(tFHc*O)^p%zX;MQ*(Vd$`rH7(Kg?~PIvTRHGr0b7BJ#KbT zkNaHA$9bUkW}1@2quNi}`yby_d^FkTS3-a1D~6qCKGozH?@r$Q>X_XP@!Zo#_w9KG z+7$QkV4c-!p4b1*rM**L`P_TK+I5mrZ+{9|u`J%;)4KWksgK{^-0R2`?I=6{K56-; z>H8&8LT~jYtX!r4fA2Q76T5Z_E;_q%f>y%GXIoZybf&Gn{y5~;-HhvgGJ5~Nt}2%J zwBBP&j%NDL?;##OSEoJwwNKf`rfR3KyZU5Q^_xv*}F_1|8ZG(S%ob;Xkn}A!pmlF z*GQTRn|+$%78HNH`I6>|ps7yF)9=1az0j$kXvMYf-n98f`@fx))VWtR^XsnS%?vzU zoQD^@2;g}kb;?ZJdt2P0)%WKdeX}vpXUF?a*W(-CIhbwp?cc67<<1PY6I-76Y3S&r zsP}ot+o(BBxx~^D&hb9EZk9t?ndPn0TOHcsZpu1q);VOoZ3CSVarM>bj(+aL&iq@9 zlf!z$O{b}SINhgo=ARnJ6s3dRl^g*p{%&#iHb|OqW8;ZSTa;^U1$2V9|EU!H{A~WA zbGgo?D&l{y{oiJ9Se>Tx?f=}pAflnR=ftGx zW?K~%6=%$yqW5auQYpdr>rNkVpPlEzboZVukG$a(dwLe&OG&pp>`?`wi7wuUU_FV)(+%kAcN;j$gOH3h8|!OORIPCDWqZJsCe!P_?ejEu*u_Ac|U zFRzQd_~ioHyZ-MQ_S|3A~X>iY}X8#`ZHmF4c2E!=w~(m?dxBA-xea;*N@Jcfz=DKo3Cuh=hf zFm(2lsNL`6bN)Tn+7~gSqmFs|gYCV|7uL*tI=kMH!A$1{=rl{^rhhwExja&ibTd`r z63KdY&E?wCpwkB=PkQVvP;Pzww0`@+H5+-~|48Y1p>jG@%cbPiRgYCyjM|06|CBdw zG1LflpMO=SQ}+Lin=Rm-6rg#9JFK8mv?pRAq`9@VNHe}|2${9ny!)t;Bao$IRZ za4$L2xG~_P`?X(AYLgQ)-njbAzu{A2y(xsZ?=@q+w$m+sxl@O0`QIG-{r>BL8P(B? zm$atqFlEXL z!>luUOXPM4H#V9w&5<^XJ0xEpcl6Qu>g4nHUT0jknvj_s5qx6VR*SDI;!cM~nMYr~ zws@1o)sS%GbfNH#;kFe@bLaNGvd&co?ZQnB*wXK`ba$l2 zt@M*ie13gm346b@%{RDeV~KD!S7w8ZZ84u>(MNHs&ToGURVQUOELqPlntvjvV$r;r zk%w3$w&(0UbxYE24ePYJiANS`r_~q8Xs-O}vtMCZ@;1j(*jj++>t9^9W=g;8y`jL7 zDevul7F(gZ!|m_CUzsQu^ueHX(Y!A&Ld$lYa{awz!OH!7u6lu2uHEEan{Rm`Yz#hO{}P_FgUK}+$yvBMA6hYY0#n9cMS~chIbOh zeoBCPBC<>(N_Lf>QfhuToKn#e4UH5e^@U>g>-M)aIjK(5e|y*@*lt!m*Y0mI>DyMV-*e^a zsxN}h95XHj&HT1hzd9YXWWV`6PxTFhX#3=4?-S0n&D05hIrn2sk|movduN^-i(kz4 zzOa{UGv6&NHGQ#nMwJz_*VJhfZ~dzZI{Rw-hY#QFKu16O+ivEosxt-EZYrSK%~P$Z z99+BcG97Aji9fe_pV*7!fWW1x^3ArpOI#Wz@0xnSeP_%w&ihrC??e(mUeHpt4mDlE znDlbxDpTW0!E0Q8i1x`YAAcvD-dpgdLh#-0<)-thml>D6IdiP~z5MZcvfFRp*?UZY=~zrI%jv5> zepG-C04wQk>$|rpPwaJ^@B7b(mm7a|%jc95GK6dUSc3cJKXe z^BpM-o$Wp=Q`MKBE8|K(<&=MWTdq%OeEb(q*V!SNt7ZnoJ5P_kZ^qy*g zemHymor38zKAd6v@w@ur<)55sUlpqJxl;DYP552x9lE(;^M*}^r$b#^*-ov>a``r0 z?^ET|uBN2|Z*Nz!Tb1)&`#hxsT6O4o{G5aL**|?aJd1I{U;A0=UkmI&&BEhB|8uX*+FG~!*d>Or+*8M2 z$-Z^S4Bm4?tnqf6hDMROhnz`};Rb32rMe*;K|eEhhie#SWct&92w0*;Dz%oy^Sas`{7BJJsOE zz4u~8&<4dz-}`pXJkvJIJ>S!@=Q?QiXO1kRUy{Xdo{#?uSuB{+lpP*!k~YsfvPe+0 z>ge4icP4Bx(&%a|>a8v-oD;{^xh-(vJsj?cWgS8nS3*jy&>RIot2=5?o**wj@M zzf@>$4>9HTeL0o&^wlTpr8`~hR)<81OwYWK)bOQ4s)(cW^@#vNIdh3+E>hcM1H{I~=Q*+~$4_(lauC5QNYMtP<QDDzo8&`|dN# z^EhlmcV&B8TKm?d6zIiOtmwRVJ6OxpqsBirq(!xM!?Ri0*H3-Cv|95=UTFQZIHj#q zrmhSq3)#Q))tq=YgG*gO@)aBTnNl1*mpr&4xW7Y6Vf8&X+hoP*-6t8G_bQ&gB6gPf z!oFJN-z5=;VyAlXcJawNdTiK!@7Da<>CIPfE8l4QcfGUp@}?I|-a6r`C954*d32^M z?pSy8@ZO0R_N`mHR#`XvG zp0u`|nKH@d`svf4Z|a@%%Rc?NvsR0Rl~vJk?!~OEU9qW-@elgbQ@C|| z+TPx^W&N>n!|GV?(AOWABnB)rRLpu)up%blUHR7hdp75?R%Utce=yzKs%KtxU`OSq zrK`TDH8#0~gnha@OX16#SMl%NmTV4+$Z|QeWa3%1GdFKceDyU=M9!*fg2K)V5gV_s znYP;e$diZfK3*!4x^zrJ>i+JV%sYE!?dQJlS~kJ<^wnqAL>BRw2)$i$pmOWEo*Nyr zE-k*3WV=mms)F4u`QLuw9KS!fPPV>v)YEcD!!uiI0v zy_u6YbNx3?@6hzegW9fc7GGK?$Y!8I~VHob|+Tc`@PKm^2DdF z-t=!(+MFGBpXtnoiCeGByz`q(QD| zGiERdPY_tZYQOaIy12bk#co<3FKqo*zES4kVpgB63*GdU7sltatj=AYVP3{1Q~PpR zYt8d>a|^#u;MyI(tM+W-(NMWQolsBamQ4a0ho9*e>m^9 z=y-`?;nkw4cJcRZF71qLK4hxe?KbCxMZ4|tQyXn}ium8VBH3x1eX8nQ%&KFL{PiB_ zU*7#-?p@X!+bsO{$genWpC0x|zWiv%V~qn}=H_g>aC+eZ)~Ugp8q$kvU;VK2Y2e(# z0?J}6rTf%{6PR?}8uqQYByMvnGuG-}M>cz_)mv`em~*k$y6pS+AS+O3LwPG_dxNOqaFit(Qj%ZjDH zB$MB5eX#TSyyWa7$LtdF=J&$s&@em;r|xU%tZ?eE>EIlfGPct%xM z?Hl(o-NV)$MiblZcQ%Bll{y#ov1#*bxhxZ7eYNw>8qIlP``CmNnD+TKG)wHWbG~D* zc7SD%Q$yKj%^8kmYxwzphJI?@`_6a2O;p#@+j@y7zs~*eJbTfrug_oThn~r? zLXX6S?f0hp`&+&9>BzfQJ^iR(Oms|&jNMGdA2*{?CM?zJynIpbaWlW2hEZTnr@mG4 zI`bg?ztDb7H&I~@6 z(&bRGAxe!&``WfQn`2Z;_>as#=6dDd?M7qKAMa8u<>uYu{9aceH{bq}_a0@<4ZEMY zlqb&iI>>!(Z^5@IpYP9P5YF&svFNxsEp77gLo72IZnM1Lwq`X3Epc$YTfc4QUx(6T z{eO+cH%`?0_`Q93iHpkyrnJqh-Ddx~M9WKDGa8&y(k9IM)6qCDdXw7xQzDwTw~2i^ zuX40oe@&Tg=^D(6oW{`3 z#IMX=8RqBwd1{eWa7S6tGgeFei~ki>X8roHd}l?yBfm&y&y3w>?D002q!agNKVEY` zUgMV&FvzIgq#RiFPyEph+uG1cR)YI~38U*{uwQnd^BzyJP*C-D9n^X5w}Cy%OJ zxNqwn7PQR1NK07IaY=VTeMFe|)l;XuYIdtc3FRy->b$h-n(iL=uqG|nzm36C-{<(3 zEV^c`q~xUYV&&ASQxhK_>#azcCdhw&TkhspZw@Z_xoU-xdQn^G5V`c%Dtzr{f%w=w*At^Q6=&z*vfoVtrQJB968s=1{4 zVfzG!oyQ$_m`3Y8Zv8s7;?2h6E@Di*Q<=<<9z7bdA)(Rtbm-oTN^6#{my&vK`yp=E zCgX<>q{E*pT3Fmz`1I9`gCFzK?}WbeIaJzmimy4u)JpYdDx1yz$L2im#1y_5d zn(C;B)7;!*_nFL3otieocUs!k6w{e!PW(1x65ZeC2sF zbIMB*35kw*yOiIaJ7l?ZlX!`htl9mQ)6ZyFhGh1p1t=Vz>el#j%H>F<-F~ah7e^!? zX;{bjD13r~`C-mlvTaKEW^rppJ=Tt9V{qawp{g)RP zozL*Uj@#ihzdw=5XMwKp0|mF}d9iZR!U;@rf(mef71!J@MCcb$QZt>C{PmAz?EU zj4JOJO=ZdC=93j|+;$=1e2M;w&muCr|M&WxICIA3c%Q6mWt6k{v`bvd(`qeZZmi8R zky^7mShJFS+toArNhP1Fr35YZD5~+7_fJoI8u;z*hJSkn7i^lJ>0UF*|N4u#397HG ztGQfma_mh$VfX8+rQwf99-Ky>N-C!UyG}LWRNws;vv)GgkPApr(W%?Zb z{Q5ZJHoS8^y^s6HJDAAF2_Nk7iT6!_0z5dL7uw54L9k+9e5eac^=XIDwCE1CHw zLi2>f$|EZOZW_FE)I8Vjm*U}a@5QYUKgVgSrab!d#B{=y6_92oMR%V@bsj%L)FWBkszg&xXeWA;XTk=>^vvp#22>74Bp?%S?pwuVjq?i4a zRq~d{tg9re_Im1gEwmru!O*$U$AK(1lw6UV^Z_pa+xEFd%%ganFO42Tha$VTAE$!@t1r1Jz zzZ+(L*t1Q3!6jSwX{(dlkKC@AJ~=~us>q~u7vD{OdSg~d)AGD`JqzzLyPiDvHh=!% zRXaB-c@(~0m9xiGU+m+>tUa558}X%OeK@o>_JXBPXZ_Us8mC^o_^-g1wr!hw&+pSL zGa9yY76=@^-SYDnsMV9j^hI^vK8H(wZzcyb8P>Y6_a9UKVpNi*_{weCn$q%*eb)k4 zSPXH<7E%+;Yw>K4@~$vri{{&~=8K7mu8{*vYYBqT=IIrEg@5U;a+nsIWD4 z<*oPIgf><@jJzTC8&b=H_XHKVnGrlydOl{V?tiC%FP83aL z;uHDsv-nHiNng#w>+18h{_a?m>U^`r{d@{%Vfv--3mw-l_uGShX|#|b~;EN0JT*0SEXRoUaINSOE4`n&fp zE_*A#RHI++&5n?xk@KToysxrY?0ngw*L(|h z-RjshCAouRa#!WPAOG@yDDIWdxOnF5c8-96%v&dPX5ZvKn(EflE78`_aIE|Aq<5}? zmjV-+Wu#P!qg^g}^_J*QTgxlfUAQ)^`^AflJ!SQAYZvoRHM_vyDzEX{BkuUC%T>Ia z;_hxv=bz%W)c17gDWl7?b@Z}beq8FgwEM@0lRklmu5Xyq`^NkI-z6v3JzZtW-1jC> zb4H=k<2gInQm2^myqJ*t>cR~Mo)@c*&AQ7v!&r|gn7#elq6I~hlX^L)cYTf6=G?3o zyDQ=HGT%2IPrUiLzqfK4FwR##;K(z7w$M8PP&3n~q3oCD3`gq{{$umEte*Zbheu?` z0{L49mdv$|z9h9}!t&UF@-pVRcdv*4^Lu%1OSYt(%35vpi&t`I%DQU(u2{-!SQvY|DA5PxO zbLzy33p0*5>8}#3lH9W3jO~P;69%jzymKNnp3c_^eH|71>r_pl{kn+Xw>HPr9~ zr|dk2iKSDjcpfTln}71+=hLoc2iELkosp<4+-stwvAgHg)2QfTRqnn`2d~A{M;e(t za+_J2#_e#B=hw!opHA`YC@nQpJHr0>zEd-qfz?2B$F_G9A5Y?&78)>tyFqk&@;`iH(1z&Dy!Zt;+rW$+YCBr=}_yoSR== z-tlQ8sKhL1k~xy`-k+g=KBoa=Kj($%RlgopJ~+Vmr*g@?~X9 z@8!5naAN%W-m#BcRBBDIThjY`dk-!8@aSlF#WT6h$Eze4sjN7~(|oY$L*TmCsS}pI zS}GrOLDNa=+01Eitt*m7uoCgik;5451L&Wvewu+I92R>r$p}UO7-^% zn@;@W*tGC}(cR>Q22#BgXCwca`xEji`81K-e|m3# zsxaOO=a=;yT(IJoQr8v_oi*1K6CLDFNQ-T}KGSdS$(Ao?WIpOUdbzHRV~gChFFH?b zms*MLrnFc)>+8vTc`gaBShKD$qeEiqix7R~|Ho4_M7KmtO-r1x^wpoApIf);o8MP+ zkc^P8|Fbdnbf{4No0_j4?ac~zyB{g9d^F<$gJg);c`tX5?~kVH8XnS`de1&FG4aRg zIo(^&Z?QhVVzGks-Slgln08AEF8LT7lzL>x!oPRU`F(1=sa7ku)k#gqSK4e-%+fO( zCMsH1WO%vv@Ag)j_cN8PX12V(#ijp}I`>{1`q@q7G-xaX^?Kg^VSMn=m{ILQ2}?$y zbLK(g^m9iRy|b?lNea3i^!2Fp(@6~+tc+czZh{8_Zmc|*w@c9U@6<{Dsa%XUo8)tD z%=7FL?>4+OwI*=w)IWP;mWx|o{rk9j_mz!V&4TI1=MTo~iC0NpdwO!)7nwa1X7wpL zw>|jr@$rtY*P=i6R|nZ>87}O*pjX~{Os8z);$yeArIb!t_y6g>pgmhOLvF+sWy`Xx zuz5Li_v!3XwO8MEEjW^Jy=ZEQMi;-lXrzr}qY=xE4Ps@j3@_u>{75n>dw;KY#}12_ z9R-Z%bv7j2d!J`BFOAz$yL{0bW3GRDP1Kw(`EHt+x7N=yWoOls5H+PH4ewR|E}YPO zc{AU)OgB7srv9b9H;O84zP-Jz-Xt!wrleI${xGQA+Th>NEb*tr05n!QYXZYk*~z;1 zUR_;nn7%}aKlb&#b9b}T-LFm)*<)iCe95?o*>GW`BeoxZE zf`VuAIbD_0GQN7q+z5YTvHOY60PwZZP@|Bh(?2fM4eKV)uV^q!_8SbTKa z%Djh3^Ge|CbMxY&FMD|yR{`m_v)()%l-XXG?pG}UgsnK)@T076Kxlh96N$E zb0Swxj61ek$}%V@=)%_Q@R)rylIv~Xq!+i}z4|+1uDpkSvy4Z^^H{f)|ICiqoIEs1 zY|)dd!)r?g6~sFg=T6RQHGchVo{QaCF>WO{^+Opg7xpTo&%TgwzEoc$`T0pxv65F; zIH&8y9_kQO{_v`H=GI-}zE2lCKEqT|9>xEn#42ZBu>MSgxd)rBMZI$C^UQo1X=eOF zWAdZE@7bp^&Cc~Z{a=^0oL{@sc)iUEfrDyX(>A?p4Nj>6g^ACBR3@1t1(KrjCqT)j zU_Qg!8$kxmK^x@dKCM2izdvPVmVv~ZuICr;Zmr_x5#x5_&54~Uaqh_Hf3u}^%dF~m zB(5n*Ofhm?Y_7DB^O#SSWV+G0&IL{zf;d?#?=UIs?Fp~b6=PhoYL%AYg^JRP`9dGv z!sjzwQc_SC_PV%2Fn7wUgaFS2rTp0r=Q;EXVpLyS9}iqG=}rG+v(l*%-!COie-@wL zqLIAl47Y!&zQ>o+o4fRs3Iru2G{i2gw_URG>Ry9cIvUq!BpOBwSf=d=&J_#ii2G$H zspx3r`AlH0bba>56KXqNeA_4qTMMA5w%)gsFW9m(=o$M~+3e`mFE#|N+>*I7>uJ@u zNn+W4CE`m9ML+{B;qxr)+Bgju)gH((@+Iv!-rb+Z1ZvT`H0(PQq-zqn>7L-PwJF=* zfBkaNqWBrlxp}tPmxHcW1#3lXtTp0nJR!)uV#}e$?@V5MUP*U1Yct*K=M%PxW&ZSw&>AvO3S6|8mCQX_(tE-h;{LxFv zYTIk43$FNY3(0+>v+d8%FEf`VwCSF{dhA=DS8v#x9b%w)w+joM3m+Zfw5g6a5Ig@; zMbCHs>Y`rGDUE`bw@RnWg#SvtTG07Qq4d(io(bvKR=0fEpnUr3wWR+(GQsCknph&O zSx&v(7p%$MrxX7B`}=-IX0`{Nb?vVgF4_No^&huDDYx^itm`2&FEbj-ISK?0TgUud z<{0u zpP%XP(%padwfuiE(?{`#_?l^5mFv#W)@ov%!kBnIXsVYZ+t>G(pExV^r5kTrXgX71 zNr=*ea__K9r++A{vG!OoHRzz{pU*dcH+}fAgLj2o`B&E=lN{}{ZKI3K z&X*IOYOzXa3O_x6akuLBRaa)UHoPy84m;8NHavJ<{8D4ZuQ_6WrW&!Vob!6hgtWkt z5)(dIE0r}l`O*QbOYiXCvfF(0cau!p3)%DYUoM-Yx=&0vfyu|g3snAwK+4~l3~%pD zVq^NdOn>*3JRkdzxrX_mgOzBDqg+xmASdULykwl-u<)Bq)mDCMdH%^jZ3qVk9*YG%$>+P`DjzX)J@kW zP5ojtEq;wdS(%xVvU02G>s`x5eK$pMa$PX4Jod}E1(;mMvU$mwwMaeW)gP*-m>< z>o645I$Ujh`f(DI&w{Ih5gU_OyXqoZS%nwhd1aki98qrP&i7@l>*0r!B@c03o3>Od zvth>Bw2iZW?=bT>O4}6jR`9y)!GBuYD=MlCUZ&1DXTiR6zPwY2*T>mXFH?1_>-=8K z5)lzukbi$)#s80|g=AU6-~T=t?s{X7zF$USLAErD28U&Nk>A>*D|ates-5!t{)?6~ zXM9TD+z5Q3dFAZ81rE`XOC{4Lvj!&5cKd#4s-4xQnAmS8T_(D!PCl8F_EQ>{WD zyINJ_o=qBeGUe;yJ5F%+KYF=*e%W&qyJ?^T;sDF684T=(vm`X)`#}5$nvAP+AJ@O* z|MEg;ONIjXHHN7?oqwa_^bha4ow@qloGHKK@1}3eUg^cy%C(n~)9L%+y{&ETA70G~ zS!u3dtnD7LiA_t?X~x7`r=Co{F=J}<>ggYEB=~ZZe>hE(DD<(N9r?R%i)ct`tLjdTiO*QOOLsYSgU0R}I4k-Y*bVm_ zpSJ!CxN4ZqP;1%O-95SE*v=}&jV~_FTxdMYu*N~2Wkr;q{^RG5B{@D#cU(GwO)m+SEYI{Ncl=UVqVnXwmC9l(=1)F zz@$ZgVsAVSN#y(&w?f!yP1e?^lGF2R;+7v@yX*``Iy3TTMp0O zZK-3bbhkS-ySa5zi{q;p@Z##eF^p-NoLPxb^%$2a4nmc8q*U74r@6H-Zzg8RM;&>fQTJPF7DY zTi*Oa?A=VgmQwX8S^I_ACpawotp7HzeA_|JDMvqC{#cS2e&a)3igU)+kXq%9`s-dr z-T&AuR@Qpeis$WpcCMZ8Ii|kqQJZtphP`#ZeADX}sX5-~4@O)5Oj4XRdv^EA;N_2A z-sbZb+c>4F{_oq zFQP44tz3Y4(ShX3rIKosStlk7J$&!H&N*f0tpAq-OS&dRtqTfBd)OTnD3x})XzDT7 zRMp3A-#%M#ADSz<{P)s1=UPtkys?SuI>e z{Wq5B`yM)+ZOq1fmw#3`mtJu)s1;zqcwgawBhURA?C)5?#l2HQS=r0e#&7@WMr>fX zK6AT*$$`J01h}+9q)$w`%2dB}{`Id$GLfq$xh}jq_37J;ttn@unjLkX?MYmD>xR3} zlvffwCrb2g-C;#pD(7P)$ZFSgP?$_0N4w}wW z@3ly-K9~6SP=wC!H$raTxQ=X^z1a2tyT1>_&q&L6dj55O^>sSa+WRNdxZiTm^5(KC z`qsMJpIiPsI34MM($RGN__?5TbRmOj%ZvZF@BdR1bE}tIdHjo@srB}EW}A|h{wgUl zmb`Y~`sH1b28$9U=Oy{(Yi#YSJ-b`w#k($XS5I4YG|Ew4X8Gc5T8qZifWPw$ou;jMJ!RsJ-R1gu`+la)v8@ifll|htLQtP6|#C$``_4xHdd>-JX$)p^2Wyu{f~UVG&c)b2YG#b6>GTl z_&XoXqrXz7a#&olo~|1leLlUf`V`9yhu@&J9N$du+eE1yV2LthjFPyxP9d_^&gMz@ zNvDHX7hc_(B5Sx{y?5!ub#c}&Q`lCN9G$mx)xm@VQ#6AM^5f1j?a$M``cm-uqNT57 z=hyZwp01~?W+IV)$3jqfS83VSZr?H)%M}yi+V;ovDJ)&|ZPzs+VJ%K6vz&;@cl-6P zSaD8x%rRBTX7hod^G#c0lA8`XELA?6KJ(UuguHcZ+Htn6#_6XQgq$k)cik(e;=fjm z?Yg>|)4%RH<;850naRPw_tT!}|89%6R)2fb7_@Rr_RcJmNQ0_^%bhio-nqWIsdJIF z>bZ>1`XlV@TpNEj&fB`qO(bIH>$x&IdlwpSQxi>2i4pi`qQ_*P7Ls(mvuIC2bohjK zM~}}ebXwlhB>u+kl9he-oovtoAb!y5g!wz4O#}^`xN!tja>A#MzpXgZ5)g2!bm=*j zkl*edZ`zMBZi-sf#_oCfZ07OLhp#Y*h>1OVaK>KY%>I4H+OGzc-f(!%J?HOpy$9#k z-hXi9(N2q*@hz#l`I0KG_f>qnRro^Y(M*9=%axbQK1)tF5_q@1=}-AZ|6O9NM*Ex; zzP-Ku{N>W0d(4~~N^<{|oZVT)$a870hL-ul+bt7&|J|wV%KW_CGGf1?uy&kOTVeQB z7Tvz3qRH3Z$bWeJ@AZY1m#5~m?fSms$6vwrX{+a2mmmAzyYA4|W+&BH?TaS8Pqk{_ zd3dwINE)$ncffD#Q7oJN>Rqy?@uSHS+HxmFYUGt|d9t=>O1` zxqm;!EcweV-5u387;LJ(78J@ZKG{=xQhmd(=OHzQzxyTbSf0A7XMVC!{agxHEsrQC z+m*~>zt|(;@wG?4e(`nMSsK@3xBT)l-^2H=&Z=U*Abn=V8YAVZKPSYbZ=7%E`cU65 zbL`>#yfx1oKK=1NE-0dLT)3Zi(@pca=UNsm32|xlwqHHJCbXrz%!Q-2$N%|HZ>BX> zi(Mle%#Rgq4a#HPwFt^Qp)4pFR4^YWpF3q8xwS7ws~eThfjHOdlPn z_M7(j_ZP2;r5mfRrwV>Ch;Hzo%p0*Oh4XdXmK(t*%pqMrw}xhkd4-QRgI5#TIW~MT z($H4c)#dd*E}i?XZr7#2OQ#pC;R*U8Z?}N|&(wF8%^4+XbIzP`o5B0=B50uVYz$Nht^9TG;p2+D_vc?o%5`1OpV7f-yZdU~svWDOWUplHHvPMog7A!Oc%yR)B8a(pT-d7<Ut&R6R{IZx<4|NBL2TH?-G3(jrG-f6WX zKc8ji%YBQCXB2+%5#ta~jSqMfTsM>P{QDog&AV9>&aW)GW23|K-LLD=>-$f*%_l8i z?)rGTlWo|)??!QZS4$@;h5UFHp*gL-P_q8VVfhdLe!t)R&h_@s9UnbrFbHS3gQm~> z)MmGXO1Imp4&AC=t$p3yhc7QKw%wMpcJ*|_qJ;SAE5B^=;{@_{N-aTd?)z76lYJPT}5Tv>D_=UB*CrqAvc&0?$;`hJBmnkGCB`JOS z?zOpJYqgKT%!aaB>g&y@ILzW8F#eZFNDTVhl{p5agX?S0Qx#6WkY(XO1GUQWACE;n|39xCmlvDzrn z;rgtg>07J0FX+Z}Mz@s zdupA0{2*zwO<9dFc%&*E)Z5mM__@fZfzzOInxcdC|1F=rr>!Y(se8RKj&17n36nWf zQzraauDrMBN$|`D`L}&u%>rTGp+P_E1J_PvL3zES1P z%YCJrc89E=w}pGLo7;j70qx)KNj5)tFzdkW)7pLu76f#M=Jy=Bmb*XUZ=24a-|@nN zQc>~Smp%N;RqrSGUqnjh?e9g~+qkq-f8DvgCFbhPqdP@3wq9>}cXXyt0GpfZR?heD zwM9~utD0R|G~?zAH|zIJQBd|*H_}@X$mW(gRZ#zKovL&9shj^o>lSbDSz4}~x~>pX z7&cz>ZD^KQTm5gxcTkuzax$)RU#|aJzW$G)oW%S7o#F0PE}de6QhOtHl!ShNcU;i> zCBH~o!CfeN+Nvc#{+}^-JCR~kW2VTsk=Mn1rO4q>@6hIxEvxU{@7nPpV9(#^ z>(0Fxv3lvo&n062c70EmsjkS&O?bF&ZT#a|J0ffhs#dtmyqPUN$QoPRTV@?J^_)tKyGF;Z?r534vWm?CTVu(|%>tQ``69{=KebfsR-x;c1y_lHxZk7H#wU4FcZ zmn|jrZxi3ESt5US<)(h}oYVc1c~ivGV=NsEtee%ocpu;Vy?i2rrk=4<&JhC^77KnE zi^Y{67qOlH_txS}8h6~EXr`p(^(_1zM?SB!u3A*TKj2RBeSeSh8pmJP%lAoM-u<|} zdHO}eQ}Ta*w_EOZ-Mc^Age_#rGDW2``<||HTYT`D_18(SgSLrJtq4#!d}|G#dq||% zr`_*dU;Wgw+5gwPX5WtK92F8hVu5CxzRi2r!4all>E4`fw_l}6Lb-~qOQ-iqyorY{ zk9)tIt;nm^7zc_`!^I`1|Q z)k~k2)u90<7d~oSercF^+-}LTWuFe6%-xjxon^I|+poTe5{{MoADBz&YG@fNr3u|! zTlKDZ&(F)n5#Jrf{(baPS|=6#I4mSEvB68VdH;Ty{53Ycwd|i9zW;t5-=?rG-5~9L zt-$v)uXXEea#MCnNvX8gH#?+dwhAtOKE3-*dt@!QL2`=;caxW`&W=xZ3mq~i?B~&P zt>rsycls#$%zFIAgNlg{lX^W$HM?geD%fc1)VOZTX33ih8xIE5XR@8#9JQ4rP9Qta zXMrALm72zkjqfHt7BWZ`RSO6WIwEo2)$XKG>Bq(H6TUp=J+v_WvVHM~gU58%RG0Uh z*l=Utu9D4^XK>H%e~C` zJooXNTBi+Y^XFF;1YF+F`MrI0!LKiwHlNQJ|M~g2Uk=o`T+j+(k@H5+H-C6{m6cw|oGs!0!)9n3j6;a{y(_3B%n|Ihx&{cqQI^*{L!-*Wu3 z-SOe+%p9BD&()Xc?vws~KK8(u`nt~lcWh;aU!}wcxE-H($L3G^ylm@jVcu6)Fsz*M zeB~jbJ6qK~bwYN2+jnx=wzDxEcGV&eZtXRb;{40>y0_biLr+{*(?{c}(d=ofK41FW+Mw`qLP0XqHjW8)%$)DuRW0`Ul)foOb#ME*aBK0Ocm8DZ zCGBE;Fw4_)oy;}2X)8IE_aFOb8*G?Ta5lZ)NcGyD*?p^zyC&Xczj<_YymeBz{SM8TRa;a1N9GA>1x?nK*)xA#tuOj`YxeSw%Wv8i-alm5t0i6Nw#Pz~RZUnxEa`rc zsf~?{e(%YGGR@uf>Vp17W|j#vdTM`v>ns;%=e0d{5;SvvfF(*7)E~XI@^POrXc%!; z8^h9_m;KaOP4eDFx9)tbWOM2ChNx9xVPT+-r^gYSuWG`lO4wBR-rUw;bS`(F8@|x- zjUcaOIf@i62FgyRNhV*%IJs%2IcK2PD-ci|bwaC=S zhtZWe(NE}S&-{PdP0h`@QR{XUXV`^cH)gvxT$i&x$ZyW^zi{GBr z?C;KGLzHLcJ5(JjaDEB|A6J^-z4?e02R)ST-bI#;f?>bpZjkQT#> zQ(vWv&vcak>-=wCD3Zpza{q(kud}4~%01t7{`QuTy8?IPUnB$wbVv&qv@+-(O8#4Z zb88H*r;kIxgvaMOr}o7dmzwkauTWM}%4!k`v08L_W}(j7Bg&^k!hgMcA;GmEWZANt zXO2~T{Cj_c_1boUpMTE({c7qs=WhA?l|^f8RvcL3IoahKYxFWJhKTG-o)jywA`7Q}pj{uhZ&MaV3`zD*Z7xkBV6Jui$XR?C&}&E}2z} zwQW^y*Z7dN-oO=~%s;+VKHd)n%4UhZ*qij2a?%JT%bE$N;3 z|8by8>-Fsux0b2>yOt#Q02R=Trg3^w;P?4&r_G4a4b=?&(|cs!j#b&}v#&4S1X{zT-L&vo zM-D7rSCq5!)`pTNH=j0NT-f~G+x^X1uhOlYQ&%3(NlUt58UIfE=%rA$fRi(APlsCd z-P3$sx0mbo_Iz>BO8<=A^O@x&K?UIfVNgBVA~hepJ|RP$Wlfdj>hSf)=1lamDak!v zrM&#;G3R);1@8TFO5Dl8|9|Cimhzj;($%;e?CI&xa+`zWhf>hulRb~qHz%A9`uf~^ z`o=duEES)f-1>8$MfJYB>c93(IPv_~Q!gK>$oP1)ohm)UbiX{j>r z%djx1fLW8;It(mDitKlPI9W8+PXGD&`Nwx}5AkkV{QjNpf#oOJAZx#CehWUk2d?m= zdKlOZqj+rZ&j4kD3soEezpUT3T{_fU7jO52Z ze8jl5zOY?*-}rH_iqgz|ZY?^Yo+peixP3dJ>-nejK2=~rjyjis zTJ8kBU#3^pUVIUA=`YXQd27<)tFO;$*p!GE?UX;%lzNEwMBwiytCe!@iK{bNq?rHy z@wor-cIJFX(;xmfHYT@obO?#-ozFTM`Lr5b{M5{5U^lF(uG>)#?%~W=ayZBpl@YM` z(?reSWgSO7l9H6>_3>_x_PSIcz_wZPX%+L6x;hDo`?p^nTCS?_qQ`B{*%OW~4JNkp zbwc-VVd2o_$@5uY$l~!l@!b=dGqcsMb|{>_y29}A!}t1Ib#u?y&VCeg>79l}iAdUH z)`bU)R!r$@7Qa?4=dtd<>G@^C^JS~%zqz^DeaiHJ#SIF3{da%^b_RoRfeR=l*FaLT z!(z@mb-&;4I33Vq7@PAt@y2e)sTVu6ngz3V%KUv?efa#=(tyRkU!P)?iCpD(Vp^H$6ZU9klknygWCSsfXTK0fxd zuGqr#SAVyR+8b zzP^d!!VBIDvwU7$H|J~AO*nXK!{v12O^F847Y@d&O7cgq+GTsRrb(D7WRdGr;nVp) zgNjnXI~zDT`10zqAGOV0xyoqKj}wL~{{9sZ()h0NV#kZM3zOD-IrjjTsZldX0@GKH z2_A~NKL2LjIKNV_&9+44Ph_USft-yA4&1L&XPik}GWTSYt@qX0`~ER55j>PM?~h`J z7Spx!=O3QEE0wzQR>}Se5HK*{kTFZWI{9-UKBJ$XL`FvlI`03yj z?FTC5=lYoNPX=)x zQfc3RYID{4c)gb&uC!G=dGdtgqTjW>8LwtOdJRq!x5PoU==z_}E*gPq(LH_*V#%w+ z)*b@2wr}faa%>Kq^w3M)giU!>uN#Yo$cyXSr@OCwz3$HPcZOAqIn^(3mW^5!B*td0 z_JEgZ%GoC;ine~<@i1WJ9{o?AyTn!7`xkj-yDf-nd*JZBM1M_=mv#?m&U8)8&Y&Ah zi#R*Y=Sl5T1C><^{t7-&aQi*GSk4f{J@A?(W1&CyG-h_b2NUPbE!ZvmI<#6=NjpsF z-<8>CUtCw`V>DaiH@nCnW#y`{6AQyMRHo0}q0K2@_e1f7ZxHfZd-p;7lT&Ifa%_UUm(be0u$!k4HY3g4<7T zCxiAaKHu|s1(Bx&)eCZ|HN!d$h~2?DP<{WJ=VXKlg$6-m25rOux3sC z1xMYjA$JRGWPgVy=B&J>A1CX{WxZz(J+cg1KL3%C@*y`KXNLxp6W1cLmQ)AU zsD#F-SvWk~l$v$;_oUWW+R;e~8zYXS&u^~lohxYvTHUF3fJI8^fdZSoFeJY`C}j#^ z_ve<{H0jUgeHW7V@~pkc(tD9(s*jqNkH_vsno_zuE}ctJa#=cs#p6^-)r6&4Sy`(D z^q(GM+2h%;X@-!nux!-2vbhF9ENrtEO}yv&@!?_v2^|iuDT)W~Z@wgWX>Y{GqZx^| zKJ!a29e)VVDAFtz9S?a|)%Zek=>!1QwfTVAMtohvPz!N;^j-tq0#%KP4V;bDnPs!FasnR`y8 zr!Hk&s+sBZT}i{?*~WKgy4El24$|g|3An$rWQpZGp?&P2G_l~X5GaYvt(LO{b6q(u z_!;Y#oalV0|M6}?ZA_2*UxmFrUV9ncHl@71&Haz-yqAwm@d zWE<57XNtD&xYO}swY!7fcb#mf<;Dv&G)0Sc$~!fu%B7ps?p!b8ziy)fXf51Ni{O)& zC7*u=k3RbxkOi&VY8R6~4QUhjx`BqHX9&v4^(|Kll@L)CH7GT4HgJ)(Mf3!Gdvn@q+Z;w|quHGN*-A^CuYsb^+z@) zAD1$Bu$#?U;n83u4O#eYePuUO<_?i*QWp!?WKUb2GBc_|gVoBGRo~|NUWLXy7#IVqiCvYVG$2kJ%eEE>m!L`B{bS$H(LHk1sYBMp&ra zTYP#_T$@{d!?hG4J+(%!<5iNG%Z&w>1a%y6KYVQ3Dmh=q`Bz$4G@>&PHnE!NhL=_u zYnh~#%za@Yy?E8Bjz`MJ7kvBf?6Khaw3XT0VvcpoXBgD~tN9q2dbe9`PR2eFh&y(; zHZ)7*J$%#*&a^%UX0v$cH>Nu#YFE(D%W3w#elS2H;DZrp`c={(ejcbuKfrQF-NE{T$eE7r?!%{Jn{B}nQnZ(`$lji( z=Y6bpg2&4rE0-G!t_$-tF}V?R_3zI|#(UfkOnkcPVuoYjOhLoR>mt@oO3gaBaIwK` z9S+`aG2feXg5TFK7A`6(a{16ys=vqlcugwA?t*>>cEdZ5kGezChOy9sUDaN(@w-Yi z^M0$IP2S6M_WiUqA!e8Mrt56lRPWf})abC($!J#k)~t=UeZD_E#!}PBVB0NnCgS^v zLeFxOt7;*cXE~(pc&@7Vao^?MOoi#9E6{`h(6>4-0X1Gj~I z?J$`CM3*V-^wqoBizi;t4=9q}dyr=@qth9)0NrBGE7!u}%^@3Ynq?|A8cysIzc(vz zpB^N#P1-<-&bj}5DyXkv(3qy|pr{OML&kVDhoychHoN~!)3<%4_A+kImx(-+)qI8K z%Wm`e%Aq{}2&8b+^=N38(B+t)e-^^`b#5qIk?HshQU%_*bb3d?!h>_<{X2|=;x3q; zt@#kT$GxE`cZ%*8$k7b%KlMV^rYlq@{#sLTY~tw`KO7+8`@s;@E!oKV@ExQT+VGr3 zV{+4_$LZ(hbRG|UHc9oh@=q%j6_o<7z0Ys_Jd>v8;MlQci%CxHw>_7wgI}HqmhV0A z?d@$>POT`AwNrkj%8U zmBIG$6NOE6JB22@wcU98&HHuT;oH$$BQ~XUa=hD^nw32>@f~OzzE1o;o{7 zEwI2>Xu$y%-8&h_e?h7ppS^{kD(21J_M?2J%dc%e>At|1zw6X|jmIx`ms=|@j8E9R zv2G{0Qt9APKDF4d$iqAhZ zosLYt{QCCw%@?k@W$VsgBs4MLZJ6Pn^^+F0zGJn$Ei)%O+xXn$L~s^h1Ur)tY_89O zSb-ZGliB-Zt<{c62@5xC1~2=-SGs$~&uz9Irz~!5PUkNwE2|2Bw0xm%W_Hb=#jvQT$Vx+`OQ_YUkx$mDAhR?7toV2ET4%Hn zn&GfpdBN4Jz?c}G%{O@#UzCs&7Z2BJlDIZ)>eSNy{rms7SMA+*_uxZDNYMlfc#w@? tm+o_RSQ_NG{Ic$g%gfKZUyJ)&Z~R4H1U|hk$#=yW3A6>VQfkA=6)5S5QBJNErYemR$ zv45UUEJ8^U4MH(pEZ3D9r!cuTiA8l;voeWjUV5O%DdP3Yokva`F7962&?sn=AlAk#U`e;+?Q+^%P4W+rH6W>!#G*tmD^ z-aygC$8Z?n)F5!8!@E7Pz_AOgXmMmGaLrg!;W|FeuzrWw_mxPChKRGvdwtzA& z7dSbXak#j;KK%Rp`;Rx9&lf%6;O72(daCyIMNO>Sr`#NaTCg}9>K9R_^YiW9YierN z%jj?`=il42rM2Z3o1z1U08XJ?xy%#?Vk>NRD;(n(81FjT>{@-%+< zP@rVELK`lEW@f`5K?Nb_e|Ac|oY(``slmu_1wT&hI~5#eN<4d{d1*3sA8sgM={U0C z1E0gQZs&ya^K3bIc#fQ$tbR0fLgdP0z0!y8-sV)5x=m?)uE#$c+S&vN5i_p5#P7cBce zeWr-7zrVXvjLsw>p#%SPm#e$?$!yrVz1=y_-E`}^ITlS1Y;T__i|(0IpcacrgAR5a z0cX_Y<0q)KG%OTU5ITH;V{*-Aw+2C`)#q4NrzRdbdPG6jl(qC#c6!F<7ZshZbuodS-SmAhj=8T$092hZGvi@T;Z zFw7R%-f}P8*!0s|>6(ixmc8NNnYyUwghjoTMCF}3S4!STEj5`aG3`R-NjGT9bUM%^ zuwcg7ra8XLqHLI4k|Juv4R{!q`^`1#NnrNQy|N;3nV5-hhv547g&X~CnX?zq|1sJ9 z{9)7hx zl-x3@*q-@$;~as`g)a4;OlF*lEL&U@bX8fWi=A_PvFfQumHgktHybuNot(Dzp>45U z(Z>m$QD%u@M}sGJ-M!J`e51SKNbLdUuoazEFB%UPw5^W3xwwDR%9Sr8cK(;#Cik0v zo)pkUtY#5BP;tcclp7B5|i_@ zZIY4}ZLB`>HSmblSXK=RF* z=Yjk09G&@k;+}{nTaowl`^*@VFeth12 zv!+YzXiw?ufUR}4Eb}d!J@-~Welb}+>UfS<*G5(Lc`Q*Pp!7LqH*dPm={SqZPbzBu z5od05ST9zzwLM$F^+LhYolmj`y>pLSl-W+kla4`&Fu}0lYf7Ie)Yln z-`@i_cnHdFIUUoQ?-VlC!`u7t&1UwESMJN-UKb;1s<_EV_}Thj+V#(_>h}KB_D$Qq zF5+p!)Hdgk^IvD5`q>@Z?#-{5;KP!a%XMg@e0%Ecl$Bw*AHSaZdMxC0O77ePj%(Z! zw!OW6NL-?gQ|6t{LP9~8*D|H-wO3V^RzfN(d%C)5 zz3o1cuKnUU4jvvIArmIcI5~(gMMqaWPJOX8=k%tvs(ww1rX|GeRE zd!LzymU6~fR89H4J;c9kro|cM>)&23Yz0xuhCw@%4?Im_C!+ZNWkE;(o`Z8FiP1R|6vg3{TDxZkud)ot6gvnkk zI=eMNev7k`5X;s7lAi%(>{4?7YNWWJ z^GL<-Z>CbFU&4MrjnVtCk@3ryo52Oeq5EAA?4CJ2L+J5^KG{2A?fSR3AJ_l)PviAd za01A8x+5*p@`_h_(S!8)4)xtQ->$cIFP~t&{@1|< z2b4KSZ}a@~HUkx536*T)F<~nVJ4gQ_pNT;84>nQDbq(WOusNv;`7g zoTA3BzuVOv?CA0o+>&^BNted+nb8|$L={+;I5`M+CcZOdIP89g-#_T#3QxZHGuM`Q z2)^^-5!)X7`~OS{cR718+07p(N<5QG7Vb=ZF>giAPnRT(+xy)%>sbpeE?lhUcG-D) zo8LSuzVh!iS)oTKNhn*D9$IPtFJN{2vY@3tzhz4=`i8dWJEiFS>#Y4P@bMY1O_$iw z6+4SBZb#JVmE*?s1szt8j9yZbLztXO_ZEqb}li}Js6Ih*bnrK~ecU;drR=UT;z<*Vi~ z7bR+%9TqF|YI(5OS9yAd-Id@_jqS~*e7Y;xtfMP)w_iDK=q0;&N=kT{3R^tS0{{96 zyYk8m8|HZS2>QNOwU=2&$+*Po}s%gJ$KI?zs&vQ?B z`pO~au3(G!f7@pFgNG!Zem9OX`~KIY@P%iRf#aJrfnytr|G&G+ZG3Ir)thW9wbIIC z#j~AxIt%|kFkB=3OZc8`E#G#f)(hD$WkT|v=}zrRc;azPT{*C*>@nY(H|9>gHiAlq zH|E`l+gnu_DVcMBy=C0j(>VpDrAKdV&9;BFK4iDbYacbCFK-@IzR9^iNw#NkU~`o6 zu?6oWp30}3WZ2OiJ)_SsVf&Pfs+xf)0^S)90`C%8{4QnRMxN>CvuJZpC z7E>m9^aMVAwdnk(pEE8$lIDrpFY-H$HR;*b$CJKDs<{NWxd+wQT;q}I<-Ywb!!^mp z#ic4lX_-KeEj$^WtdoO>N@we2SMQ3K` z_53)cf`d|lhGr8bChb0fs0))kduGh|{^H_x*=7E5EuWrht<>D2kRT;z%XfT|>#kIz z54;;BrFWM6bz`)>mtI`8+}8F)vhBiE-q%@Zg9?aNv~AF%axfPo?g?QhVD1pW;yY2 zl1<}ke8G`oB7(CU#&XlXME+|xu1oF z<%Cyy?UY1G$%ChvJ}Uh%3KAB27`9ADtL$}W*Znf~O?T>+_**{C%Ynnp;x*z)A^Xpq=?!NY()XmC<^ZpjgM<4S$ z+7X+bIJc2SO~~1}b7S7&^&Is-7=r8L7OeK(wD!1oa`>88jjP4w4&A#a*FWFJWqRJ( z!iQgC!O_81IQb}ts?g!2nA`~Gqmv}G!&nboy(+tQ|GSpR&uU5E@2xE;Ki$4>Z{2~T zr_&9qme}7a{pR+ewcSed%=A~wgi2nW30xDgSK@P;p7TPd`IpMS+6p_XyY>cnatS2| zw$IZDS!ePu>WB8VJ@r#GCrmiRvM=P)itzOtYai)+iQYKDJXm=*!?DYkh3&eJFLwBO zW~NQ%NzFS~H_kf2q?vOuw5=;9(R^LR&6Izovtnhd^DYVHWuNJb{Psa>wsx@b$&)WT zIy_rr{pvP3gwI{F;`l`ElP?R3H?{TpK68D&a`pR*^2R zwzryvJxR&yg`Q7w@0aUTGZfqQp3#4OS4H7>Ml0X{oUC3R-?{fM(_NbL`qZ6iu@|3j z|9K+*j&ZQNDky9}#`cH(NW747W$k5;UH#V0D*GgM=e8evacimi^vJz+kMkoo5aTRE#dpV+=8MKr|bDuiiU=A_rGTJ_PyP` zu>8E@irD=kd2!Y2Cdbw27;-y>t&eRwe>&XlYgTDu`t+X$mP&?pj%WSU&R47mj|nmP zc8=@7!2_ZN+HV>ev&9$3H1D$d*|uKj{(1xH`Y*?)H&-okIQb}QvcwwReLRzQln1Ve z+o_hLdQV`4<9V5+p255VTx_%!O*L-s)Z*qU7r>D;DN&VwOk)RYIbn( zwa(tWtFG*-^9wV{l~w{L6+zwXZpJAVZkm;Tf|GlHe*b73VVWQk!}aXBk-?3Ap5M=P z9JjLutG+CpWn`$AbG!Gqc=N^DizQpjI*wfMNxHHoT&Vruo-@^t=ZWw=?%wFUKK^L` zW3~rxcbmVswbPtW{%-qX_NLAw6POAnP1I#_NeW<}$ilc$#ciwA(ZW|A8nbF+x!w6# z4jXP)4hjywxTVrmhm+&cw<+xZjJQ`%%fIfazmKu(-=dWo;oFp=wm#YaX^IEWS(Ua| zyxb;rH~vVM`OfRUdENiz6X}gAZs+f~PMnvR&vLtcx0TkPWf^yHdf(xW#K(clN-F2xIbwcb+PVkJzIE$o zdzV%jO_Z4B+0%Y~-Qmq%s$WjUifAj#B?L5{Hx}fwvea}|UFf{`$31Vs8826FSA4~N z(^aKSF+hE03xlEpE0ar-N8_R`MlH`o3{~9Zp9}r?x_|%2Umt^WKFn_T@#4G0rp%qU z#Q0-PuZu8$Dc0_FO$>kVVpZLb%@bn1Y>)f!bS8HB@O*QAcFe^f-nPE4pT0@S^i2W{JvFoOGFdyU=lZlL;-Ay57g>U( za(k=#0`@%QnD0B=Y+>r@X>;yA>rzs?&;-)E8I%2{FfHy zN;txj_FXT=@xq1qJ9_%#PCr{zGFQsO%j3Y4DqX{mN93Lqh26iluy<|E@0$8`x0(8# z^Xo(|mpJg3@Xz@8aewO@B_U^N{(wlQ1_1*#rfGgjcWkP17cYkMpl<=Op>0{>#%U=rAeMVWopMR983;a{;mD+=BFPxCQ5k42x}&;O+T}5apqo~CCy%i}zRv0Cqtw=v%fJ6C7d(C#yCw36^7NgD{C0(LwMo9!irceeMacG@+{+Z| z|1rJz`Pbp*7k(u}lgSe0e(?uZ)hT~?b~5;hejrb6xQ@fkUt4`&S%b5a*(RUdFY&Sm z?n-Uk)Gse~XK#nIcbJl*8DH*k-s`vR_Qg-XQM&bC`hSOcd*1E&1P+n>?GqS4AtC?@ z5uMj|ET*@&9y$89+OXs_*U7+VvxB$&GvO`k+j%jmqW;L9?jyU?^#hi@TmH7yskm## z&QJ4=#W$3lh}cv8i|IbQ&+*Iq-#@xC%lF6Iugh<%tC)v5ESL~G%_nKYZOC@IpHnPa!qvFoa4wx!)3Hqk#atf!|Oxg7m}LBP(S z7kg{$Y_!9FM1-EuQ!*_1%61hrBJQl5a8kwX%x(^yf6L^L$=~dJ>3b{jN8i`&wG z5;<41y4&SLwyxT4iQT!kx20`gC$d>BNnz&gDF5u^uL2!;+N!_35zKMa7CL~&S_TI^DQ}$GUZ`)n8HEQau7ngRjOI^uN`XcA3(q_<^ zSh76j@`3;cWi^A}JN=4F=DzOVGDT#~_t_0@d-pxvHm$}sYlF(NPfP#3o4J!C?(FP> z@N06vb8YqB-sskR&M(lZ$oWVGGzZ|**`PXE!hPD>#;IFPZ-^aSeEPbguBqtRwl5Q} z$kr5dS+8I8c#2`hrTy0D^8d*muj4+o8g_@cpg2-o^DY6Pi0N~ zUU5F79TRnTOWeMBGjd|KQgO^{&o7l-Ldt2eCpSg5$gTC@G4ovde)mGP&!tzaEv~QR zj*kAy!=lJK<(r+RCg;WJdP@0n;ii|1wyZq!_pFSeNb>X<&h1ZLk-CbqU~YW{n{&V{-= zLgoo5u%xtuycsOD?br(2*AHJjg4t zm(G}-t)gfcx2KwyKfkixx9&<$Y+^n? z4bNWj`v3aZL0Jro*T(*SuGhG>*_MxO-GPR!-Nth#FI+wS2b15o?AX?2yc73V1ilmB z{Ghgd$Cu=*$|5r^mI=k~b^OY~=yc!$M}$#lVn)u)nthh3mFML@L@qu5(0GOVxx71_ z#k0#EJrDlva$fV+xv9rC1p7!k6)#}sMZ+l@)E+4to;j$O{H^!RwW%&i z5|@P~ZwW=c>3(^ma`n!~XSZ%=+kD`v_UEmkg4gYrytS$N#bI1Gvu`eYnbTMEsX|U= zf}M#5dc>0Z0FP0y5stNme`Rf;_?ph^7p4Y~?OSzBcc=c}F94&nG=<$W6_rqowm+57N ztXrtNB(RHrw^s!0VhTGO*SbjZoTOlsaA)M}m$?&Waw`ZqxA9F` zlw2RSp5veG|0@aCHu76)dmfZ}ZMH~y*$-dGUbCy6M>3ureYid(EPf?pk6GEqVyy_S z4d)NclZbuD{pDY&T)E$|wuzGstiLQdxX<41pcA9|L@PJ^8@## zRQ~uX*XWup_UPYX_K5ujf88$zt@--J$c=Go=aC5ug_pj#v2?HZ!+)LZY@7Wqx39^X z@P6-vSTEUxsaA?wrVWDGpk{K~uaW~#it7&@yEg5&Y4+Cx@`<_0&34*i3o5Sir{9ox zEy#7IXY-c<@MwCI{fYXDp2<;xNY5qSsp#HRg#Mv zPPrt_IMC^RUH|B!tKAolE$4OnBH8%y^ReW^i+Cq(DxMl0a;TTtoHuRmvME}iCjL9$ znG$TT>wj^GaV1QVnjzS^(0~2HU7&Q~0ZJDtyLO%2c4g-z51zZfx))}77OEZl`1$z8 zjI&B_;+NiU+<9wF?VVLS9$me9eZ$6$jMgoe7MD5h;jL7E8FfBj#_aAGB}1PFD;XcN zC%o!ddE?u0Go6U7412A=w(Xz4e~IkwY5Be}_ll1uT+2M{wrYw%lI+w|Lftb3-rwKV zDrx_xq1rs}z-AvwpC3=fL)I+(|IfD8s^P*vucdn5re=vxl=xM{8!}x$frY1&VWLEv zOSt(>m!z6Qx{tnUn|xdO{Ud*Q{+$C~6rBa?ew%sK{Ie9_JoWRh4Xrmq`UB1^yCM-vHFgKcdrB$rLE-V*tHN=Af?cv-AVV-4$vKTnHI{w#A`_O11rOVXQ5rzKcJ z)P$Vd{H82QHh*(RVEOj>W;04})tqois@b*4r`7cu=f~YuUoWgH&)@Rvo%NrMnZn!j zKRmlEv)0fZO{OzUTDt51`X$MZ& zEjGwMYO|-aqIYTV^xB;GuC4Rpj%h3~nkZpZvPeXBcV++j0)rP54z9WUMKRrXYZBKA zJ_gZE-Yc2c%<$={cXAHAcA8sfLU(ts>t!X^0!5`m3IBwZBQl&qUM0n^EEDWhTy{NJ z64XdyWeS=oA+EpI?Z;sWQ{gW0VwbyCufo$B&rV~2t_8R*Z~2R9{e6`cQ`bjZ%Xf*F zi?AMj{5br~J}dh=$D{kExhnHc zBV(AvQuphnx`l;>f}P#JX_}aNbN3p5H_1!cc{ZK@|9+QW6|%Bvb@=*4 z9ut*jelRTGJ>R~*?_e|g<2N@qfB5p{NSCN~z}~7-o61ite}8{>FDNkhe*evT*KV<= zIrFVbwcPsU{yyCOvp)XeVa3JmT;h5?H#es*PCnju^VGEH`4hX2yfFWuWR@4U|K6>8 z_qd+>o4Wt}bZ(|q$ziqj!l$c#m44B#TYI+GJxNZVH zs0Yu`O_?6V9$_fF=#>0b8JP+D0~FU-)JV8`PcvzqZMRL+L{aN&xWv+1s%=L!Vsgam z?%xx*x@yh_&{5klr`s1XyMQXij%e<%SotSTLzsz@b+lLPYIx#y0 zq|I_1c9*>k*qRl3?j9?**n@L(t#9nBwVpF)&WE?#?qohL|MsAZf zRQ><=d%fGuqBqt-6D8Ki9ew=w_Y|MH-cDb)+258=xPF%}-QTRax%uqz@BZ_TDH$62 zu9bgsKA&G*{p%a9eSFR;ZBHjk^uNFFuAiUpvagm~yu5skWu45?Q&S9YRUEoL0a93< zNxGlEN?vQqx`w*g-!recOG=AJ33qPvHaj-MLr}@khoz?Mtk%|K?wd=mFosDBDXXfo z?q46*>ugXW7XHJGqX&+MLG{YnP*okb-(_lK~oWH>u0IcMR~e~0Vk7ad;k&0_y&rZ;bYK9)2WRe34Tt*UW9V zH#{mjqa@m$(5+JrNoD%IsS^-C^cW8-|TNx^0WTU0hd=VYc#pyyXL~I z4iBEhn9d^t$4l-2Gq&xK=_|<;!AD?S&{_tfa(`9w`1zpoS*DKkU%Dj8` zioLDU{CC0KX%a%scl|Cct1jR2_9AnA&Yh0C+1HaU|NQLszFJaRB3;*l<+iyQV>BfoG9Q$9-KAFBNCCNbO@qvTscdkt= zo9kD9=7>gorTo7;k9&nw=j<>$bol;a-}cEnL@z}Zs<1^z{QC8)DK)zG=hNvN+}z4S z%FgF!8K?89`Oo|FQUBk+e>03yyOKP5*2V5FiguB(JiP79nHh%6udlCne|~PRWz(bM z^7Sqb4h-%Ex%c+`Ouk?7^_6J5cR+wZQgX8WqsbG`1pb}rgy|d6mP1@ z_ZVv=@PKk6ukS3`qj#$>?kL&z^Ei(|Z6SEX=i=do9a4Li^)a_3F&G-&HaE>K+CF)M zPmlBM?a8m#?@u~?wEI_?>fTq}M{|;r-lU(OpK#`f;*LUP3DZ^Ak3MS6e)wdHyZ+uU zYuE61F3i8(wnl%8nv#&SM6Hrxi=j~!=hCtq#ob4EHtd_b=it51z8;KejkF3zYpfv+`3bAfQ@aPCuc5x{&1H5=k;x8-mMGu zDt?yjoTQU;pZPk!jIz+-2HQ{#1L4hcmrQ+M$nzqa?d*Q7BXc`1Zhp^t(t{`M*N2JW z8}e!`7Tv2kv1NwYXSJlHNrtD^+kC&@J^h}m9(#6={PI1V9}XIg`2c`wAbGwlpDSedxlwsf!y7_-ASpZlP+ya{jn#?wD!uS-RneD-1a-(Uy#(Q z_2O=_!L@bqeLH?w^!zUDy0`14a)U>Y|BJm9-=*a4`F?2(-jG+e-De)ZU4QFp@dr0{ zCd=o~3*kKTZf?S2D=`HjXZHs@k-ixl^VhwZGa)v~qi1$~`y!{Gr#5Wb7I7}?ZfNZKrn6J<_mF{bEbQP2~g~p=QRTd5ORFJ+J)1tKA-XdG)Ja*@+T| zRNRtcWYn(zmshcikf(KxTv4mo?`5xURLwXN zD!R%048!ce_QUSqlOI1bjo5$eNccpr37re|x3#U%7wt5Bz1mM=OPyw$_-Z$mHbt4Q z^)sCsXG#biZg}-lCrUGX%_|;;P!$#(2FBz`5{$ScR@ zbJx2D#n{~Pm078~XVP@>S=yaPcAU&rtQ05{e`{6w_}SLylYTo$H#*siXqEb=Xzf07 zCvRq~q~X`CAMGbf1T9Qev2^OL4KB^8JuAM+TUtn2=a1YkzCUdHb?^2VEwx{=X!a{X zsf3?uM^0?dzi?r<+4t9*W#(VG5;DhLw#O#Y?^61%tj%+u%r_P?eoB6dX z)rm9zIWhL!;1S;W(-$=I_T-u2rFH=YmJkk!*+)A1{T=_hwSV~KtHk!@_Xby^$CrP- zKJ;PLoS$lvzW0=b9t#^8uD`da?(dnG?@o4h&ImZn{xAKXL!Nm0x_qCNRVjriWo*G+b=E@bp>$%F6 zJLkx`CB#_O%U(0Pw&DELXkXJ@kDki4`<;(#CI{@9B|cGtt!z_3f}2WPqpZUtPDUq( zbe109Bm>v{`<+iZdRkgcO!tQWiITowAMP~8)+H&$KPl#JHN*99@=pIl85eypDN%%Z z%KFbkW*+&g+~?=nyUw5IyrJZ$%^kkl%#7(N+VL94!d}ff5mJ^~uGV%c&?QNrbK%Fu zqET;VuS$Mx-NkuRHLaoc=O@-(HTQ$eSlAA`WHdaTEfBf)#|;S;byY=O)6n<~)wTJl zxxCTV)i<7>I;tHmE!6xz<rs6#tnP zSMfSJ66V}MwYE07(`uT*mag~vPt5q*D)#$X*TM<0No+R+7ym9?nP zvjkF;8>V$-I47lutX=X}W%I03rrTPJt7h@NXnewA4J;}%U6Fz;p*wItdZnoCyaQ&m08@F!Fx{~i? zxGm_q%d$<~9z05hUw%F4Jo1C({_XASFYcI_S>G#AwCn=I>MNXqISk4z^Eck-W;IB9 zBNe)hZ&{p`O1JZ=BW!6dNfNu42UdgTsKgk()eX~rlsJ5Ec==<^qD+3R^Dp!@pLuQk zXP#yW9_Q&)H0*iFzA=~c=#6DjZ@RC>2V3r3_qFBR?h{%5N4|Qz^G`Z=>4Ny?HD6zL zg{~Bw>M$?HdfUEboZv?OO5sH_j_%u6draVKE0cs_8L!q4%dV=>1BV~H)`+{y{Wna{ zs4}c=Laa-Y#3J*FK28k+6PQ2_Vyg^s=s#+_F>{K2j15=8^-1Dd(Oz5`rPCBmmUqn5 zF3r2sAPSDqWmhC-d+;#V=@^OoshG3Uz+uymsUW%MtY>3)8+vC2UVS@iK9HR}Aky z9(H#3d$!FzM>4Lg5M1@Uu6fqI_*0&xb4zy?J>odzCwJ)H-s(#6-zPacJ^H%czn%KK)y9d;Bq1*JPKMQ9s^ZwRijG^z2#7GZ8zX!*`MyRFCJ>sI=`o zeq+t?S+A4gS7zHL^F_HNNeJi8+jj5xp5r%eCU4C7wW&XU>5CiBo6jdde8p-}_D&+? z_f(%8t(G^Bq!VVIJ9*MG=9qKTtTXGBwr*;hJ6AR*r|6T@X^)<}yUP!sKhHne>|fru zn-Uw}FE(5oUA-oHJKw!~_x7l;F)NvBN@{kViO*d2u4v}1?VC0=_3o8jQ~W9YYld@@ zimJ+iYxm|&mjC-qS1lyFOV!`WH)}oEkDhm(dxe==9LzW(tU3?!b-&wOBi9xFnMwKB z@sJ-(-t+I8WX>0y75u}4r?{VSip*wB!((FJNiMGLi_Y(`+fnn^D68`7p;?yM6OMb@ zDqo)=Kj*@%6EPiEfT?}jnnRcO|37#^SKH@Sddo8r)ng1^ zeK$=eN~pa}sWMr2Ym;u;#`pVA$e;5&_u{v2{F;0Fq~0el{`lFT-Ztv`{#7E`wtu%8 z5m(Bp$ovm?w?bmH3V-Cpi8y^#OZX-AdF6p`ZGR!-JAE=d{P8dKF-I2e-^6JE}g z;M}AOlTC|v`QiMxSG)6627q1q!nsM4jgcp zV^evlgzM!+BW3+RfB$wKxxnn~9Ih&K7_`yBsX@R%glU>zk_1=nS&o59?rDxe7P%Rn=Uu&oGG1(!N(^?wJ<0i zNc|34p0iH0`0-Sk-3=G!ED8~7&SeZsI+J!%r7c=Cd=GEs@m}LMd$#Sldgr5_$)P3l z=T6DCoh+4f=ve0w1H~V+W=-3aJe#}o;hQ%-PrbJ-NH}=N=u5{pt)oX=7DulSyQ4V6 z%jU-A>(|Bazl~#?uC(l~)55*!KeAO^jwh5}e%H~}^@!Kv@jcgtZc}fa$V^ucojmE3 zXIKC6t^1oFK6tZ4Exhy^`+cT|zAjvMvcp^F&fSyuFHllYety%7?1cqq7uQLwj{Pd| z?u=v=XkzM*;02eY8NVf#b{;YKZrKW691Y1_X@;|BBIWb1fEhk3j)XynL z_dlOMtK`9yqP6Kk&OSFRCQ7KW%=hTw=XjD4ESY~!lLu_T=tDdzbWPs&1!=frN5+LJCF6B8p4z0e@*>zf6( z7Dj6dEAQ%w)QNR3SfCImq^zqd`Z4h0ovUl6o~}4~s!96$I%QSOnaT!ha;}{0c;nGC zWlD*Q%kl%)u5s~A)jEA@-H+Mk6Q)c#CMaQMW_hJVS;#r;ol+_X<6Z$gew7efTz9;R zW7dATrCn1G-QBSJ#rI(QIrr+K)*E`?Kjo72qC4T6cw$Fn^u@O-zkWOTHcgSe9b;tZ zstMsXFNlA-(FK9BtODp`nMjujAZb zp^3S=>*Egw2L~5^jNw?bCU?SVL*t1Dw@u^8e#tv^|E#}8f~=>e8_Dfp%Xs;8F8dCX z#FOsznO+lp{e7LYiZU2yADdc*}P%<)=Md3 z9Y+if9CuLSWE2K1);9QV=q22F@L%4!;;u>Hy1}bwe7$L%gr~Iy^YGbvqNxg)YeDe?&osuU9YBvXV=hl+esJW z`E7C@#@zU`ZQ7IFzg*77d);|{dd`XMb6uv}=}otCNjh;OM3TD|4Hw;aU;O<>9H=gM6}q}TbaVLOiR!l_{;zl5 z!=ibu>QQuXn&-mOr4z1B=~Qf)!1sRYt&K-Z%%+_>{!L}m>$PV-CZ@Y?FgCbR#{Dfr z$xtb7zf)cW@w7YDiM$->$+-6^}S8LM4Ox;FLZOJ|if#yv}~^yyx?sidrI zn0iWtg@xt7<;%iHyF`r{cC`tg6#LRIZ-4B`$;mrkdrb99(zqJ$k|gm?dSZ~#M2Vn9 zo|`xrFDp5yv}Jz0zN}QVbKw;Uhm|UAL4RFU+RWnDZ#u=bR=ahLs*p2>qVE08B74J^ z`!8(h-W}yz#-LVx=3}$yrtZDz=}8t=R*!D`H9veY!`=JIlfXH5y*5EM`V>ZcO_|fV z@YD3;EA%#;UtGtr!p3IOUa>b}lf=2VrF{~gDDmup<%O9N&mO8>nj|0qTDH6>VUnvN z!X?Q$s_Qz>l&(!b!{~KpSCEIir$2~F|N7eC#HI1}@9!JmJ$Ba#pWAtL zVNcS$z(;c~ZBF;sOAC(T zS?~qC^+Uch@m;o(uS(mUw?@x=RJN=$x%F0M&BE>P7w>3pTC;XdPiNzrTVB52kKdG+ zo;m!tY5v!feMcr3w@PBuA}$4 z%^GeVJ!gEA_PRFPy1l_#|h#VY;H>Yp=x$b^1PEQNJQNPtBefleg z*uz`hCUG)49gyJI@b?$oW8vZ9uHZJ)6shFT6D7PNglEoODl9iH>{k#xfSeYL%Ayn8E+gP$a5|Mu{kZ_8>P{?*uL&+N)bnNGpauXJBsoxFX& zUW`raoyyp&yZW={>;G15`>SdSX&pH|6Rd%;%wIS z^fLBVmy@sdZawZ0w>xF2iY92{)=GK76+^GiVy@ZpKkH5ye3v+I$%9Ar$c>x2-%90r zd?Ertt#qeT1}Z{_XLNLDc(0U=PMxj>-g=^R!7z5>B@Tj{Q9}p zyrs*D^dO}IaxvfqGG&jxYpmI!o|AzR)GnNgBXLNsGT@$`OPNw^`k>Qz-tK!p` zy}!rqF3Vl!!=rjj^?YFC79|!A#$3S#8^fcI^aRhF`+8!jpQ6xViyPUOPn`q}0sGhP z&bY3%)Y8!F@4^WlJh@e!sZ&%zwt;8D6@`>12cMaHBq2R%!(rRg-#@v2eShoJ=EI#= zw2-zLWEt$vs=v&|YrRcO({bKWzxQ|gt=avG%P!88`1D0E)0HEmo55Pxxifi6)|=2< za~8ey0rd)I?4MHACpl5#R-e~0&GlEd&NIAd!qIuK?kdj<8=hY6)P0SIX0*-Bj$Zii z|AObYB(5%0yZT%~VW9o>10w&H`tFO)r_1L{`c06XD)o%UuVy~@mA$cA~(yn2l`)gi?{l>++|Qn-@T?HZ%x&P zpNA{ubZlqKff}pzEFs$`YvlF>_3o|NK6%FHIYJT=D?a-06rVe$BII0`>{(`LrffHL zhg#6BsPi-SdTm{oax>YO z+`Cx(u+V1K>qotp7ruBQ@8Rj`YCM1a#TAYHp1ZjxN}N(Ow6V2)xVgfHYl{BVmHtar zmluQ|&r;&{xycyXXt2BR=&55?leONwx=}oNT0wO3E+6?`rBtu9s`-cBbagiRo}07b zk)oqdX1J7c@1)5SPoLzx7WrnEd=2yOXaBm|`Q>K?xn_a(*{e7;Cz$vuD3g%*gn1%T7KoFE3(mmFe{@LI!8D#BaxIwjDXq zVY|Do^wpV-GpvhedgkjZ3OQS+_Gz7R-{tr!M_fR8%mc3U9W0;^}43$r-4XTe6~>Y z(rX)gc&2q7n^9hDZQ{=%u=4(Vn@XXc%#;}`~ zVUpRn%s0w|cX!yQB?^YCEG-^H)$9p-E46FGg_adp7~EEtebg0LbZ?Jy?fbU2cV1N| z?aLpT%=x@)t$0E*KTVC;)hkwmBT6!dI zjSgrK&$V&pjX34nop09lrLGn1RJ47jGEqQ*WeKR|lvyw(s0-AEIuy^-S@`x%WY3!` zoWj%eTol^&1Th1m1(1N>9Bs?rULg=x>1v4EfT`C59?iK7)th8;&HILA+EI`SfJrDEFK$o@mB-6s#KC>f?a zW({f)FwkL2^6aU9-=3V*9>=k(@YDvbOvSk#JgG++l015*rJhRox-t2~k2l7;Rb7eQ zQA(YH@WsV#Z@&33n6Abu3P%rt|Nfvn|Vt z{mt!;$?M-Iy}!5DCF#OU3Adketzy5u{+4?BsJU@(zhv>@-M+v-3flxv9TDgjnX1fk zMx1e@3fty@yvHIFC8oJ2T`4R)_;R{_Vs^Uv?EZ5?o;}-gZ)+9#ru1doCf9K!U7HG8 z+Z*BuTid&9Wv*hUw})F!l8{VxNaNNs>wXHmI2>YHxiYh3rxcfab+pBer)N|wzdWqZ zu&Gr4zWu__=)g4&4}IQ07J4K&dj`YtDAUB;wSG+=E0$eb6cijRSp1Vq=B@05gy}!U zSjy(-C;zYO=;~4uYWCn+`+J(6XvdKsEm6muKi^omGyb`*w@RDd+^$!k_E#K7hIi5i z-TXCuGIHP*vKgW4WTwemG$Vtp7ssb(KPQw<{CM)Ab@T7@Uuw-O3~Jb) zTa_keub%f-f&IdyNs|O>Un+fiRv5Z{wQuUXd@mcznKxC{Oef~48^-CY3OyFSrX|!o z_e1T+1A#h!3ysX~*`?d0cVu)L8M-vMxNQwH;Nve*soz(AceDn1_6RP` zTJ-*u>xu_|S>tSLdM?htetgdC<$)VQIPX~2GHU%IQortqHoH&GRe)0Q?{=I zwddxYxF9xBV*UZ}zG?GG=9bDP2fAhoNOn&Ax-;$3TU96FMKd-lPb-sd5i(u9;OGa& z9b1a!&HDaG-aj|LXV=`?!WYv+Id+%uHk<1hznZQla-d`5=@nevIX)-Wy*YOzq4{s? ze!G;UoL$Z{C6pAGCxNCB1etD4kcd5f?dOEfi-+2c3{?)z_wTs?+LsZc)p_uPRs9o= zX+E=BK3JDOc=D#_SA1=2qH)>*+xj}@D%Z^!3upNHY%^9il)KaSK&rF1`{*;>)de3; z)V;Y?bw$NYuydm1w>3|CR!`?vTF0F~+hFEro;wB;CD_;^#6P+uMaXq7^tLxFkzL3c z=)-WhqwDy>?HB4p8MgJ!?|TuRKLIp3bY@n|)W7bBF0W>q#rrZjBiQKVbR`4hRfm+M zg*SP>Nbt83c2>C%(j%b2q5?{R&9ZMi(~~^jF_|`kc2P(;oK$IhXuBYm+sSbDHkG!n z6Dw{n;K^gLzw9T;>COE&AY+{*x6{p+NuV7p#clSfNgh80vy{EOgp`%Em~Q{S)0h0b zFX{Is*;^|VD3hn->2-WepsAtIGD zvQ}SU*G_9NUCAgVB`%eqJM)N#ujfI2SFPlaj|JY@^stueC#B51b>~0-=QW^V_r%=f zJIuAMV!xA4NLqe#R@{ALg2Y^}5cdNUV>Mzn&B*al5kju@etfU9a5H`1^ENS@cUkwg zrp_ZL<{i1vqJBS8@>bG%?@IX0>EoFa-^#wN2wEzZ=EK>L9(eigAtjOI?#MTS?j6ZSErqJR%wf|ajX(xYIAnb>AZMpFAv-K&+e=5-Iw%})Kvw~r!G9wY`gW1 zlAESpsajj$6tRmP;NaI^B)M1|v=DtGcxJEXUSX@$mFY(kKJm}9>ag$s&l!DtPR8rY zV)0jU9A-*59eDjCE~8;YBb4 zuj4?=HBPFuy;~u*PHmz@+u>;{!c0Yu4mzER;6Xs;`q*y%p241#OyZv7g(i__ln~ToZ5{#^q0T_b##SwE2@@ zAmr@#jB}~q#WEqwN^XH!0!LX4&McZyE+`SSLr6{Lw`}UGtB3Y}o^H4}vs$ONOt>#^ z{yP=(X0-YKJ z1R5D8O1LIuT~b;-8{`^8hKUkNR{LFCTarL4MvgVxss?%I8#>vGbloglxLt@%Kw*oT zP_lSx(g_{m$FV6qi|!p?oS|6$F2HM_x~VDeoBD0r{;)G0Q&%~7@ZL3s*uMCbm>Q)b z%Nrl}`FMFfd~@R5H1+fM52^a=?XY_OEX8AHXQGLKi;2pYgI$sdt|rM}l$@B?EX`Lp z+~v$7HATtb^~~KGv-scl>lv%p<>X$UQhCGN`a(+M3ebG&iM8sJ>_A-zrv?w6)JYOW zZyq`oFAYjITYBt9lGyK}H|J#w=wk_4tq2TvJA1!tCyBLUB5N*KM#YI^Q2*r}+$ zUa<4yN%=^AouxiJGgFf?lnjl8B+kr@^z7+jadUGzATfWD*K?uyPY?gQ@0Oxu6r#d* z`SADCSrL}D#cpg9B^>(9rdpb7nqKvVOtTyAv(LRfq3cM(@9F73N)Gt9Z%g(&t#_w% zW3%p7}Gcghz0-cUCC62vFU&9M2O@oqiP95nmxwc$+ci9;w z;buXJziR6a&Qrc_$24Q&krQ4CGrEo>yfsp4PEDzJQvR^ytVhy{j-F8CUo|$$&7h?S zDdt*#;uTLF`SE1tn%gNMDXtejd^{0enJZ{e)`_~&gX1#ff4SZ1`L-rsTrpIzad$xzUJJN#)XF( zCQ68Ui9b^{h>#4PB(di2B-hWy(cb^|{qM0BR(^f?-RV~mmW$1goxSguo^+v1h`Hw0 zuWl6~=NU&j>gAgg=Y?+kQOF@PN2c@0h5ffzdMXGVW>_%E!^t5H6iF&=8+WNpl$hq4 zWRP8d`;YWIoBAe6`*R1T960&mL_Eje-QUc^ra#VYH!}Rv9=}b+Z9N~afTV2uUH7KS zwK1QH%~{r1_iRvKUvYo-tRn$}l6AJT6JK2E-D72>)Ev8ZSJ`#Rceb)`Dr0%oRhR7g z_;!6y&2Ki|z1hvIc||or!NG<9N(?^j*tv4$^{rl+@A9YBsI|$|s)@|FI8&nNi_}Zd zvIic}GJz*IxLclyEIr2H)q7Ltr%%t8EhaTr7faUc|8jKS;@<@ccO4@lBWHfutSsbQ z|0C5q=}FNB*O;0~ZrsJsH#z6TEIRhRNWpMMkyBOLmdPGGrxgt!B_&OmHm%F*>#75{ zqW->${cE3lSJi;&@ui=yH*DM3R=e(wOA z{K#pldL(C>Pm+QEyt6pC?u*#-&p>I>ql){d8;=x}o@-6KJ3H~zB-=e!*Ve?$xm~vDYrprMY9&LR_9F@Z z`uckvi-LqM1qFZoKS^~;0@50*sYZq>EYVJZ;C)|0O}>jb7@Zt~SUQeO5b^VD;XJE3 zZA$0DmKkR+dGb7Swv6@kQfd2lcuJ0E&%U|RiI*Ojy|8#A9;ehiw=+;-z3?qQt|zKS zKE6o?Ov(3)?EieXn)Tg>$1UMal#xjA^mj{*4Rt>F@cgxpy$nh?B{$NqZvwAyu=(p2 zCCJpmkgGm1SzcgPuukuh3AfzeD=Sa9e2(uM-yeGk&#Uva(v(5jaOJNlF;7m+Ix@q2 z8~397$3F^5uDb1+cdz!4cgl=OM*;*TL{HZ&D?6%Hyr=6xK~V|AUB5+l->NLND?i$N zTd?S7orNvztRkyQ^Usg|9oxP?D2y#*CC@~OD5kU}kH7)pR>Wco8k>$%c97B`1gFwq)=7vx{4Jg{R6f^#%>$!wGlKs5GVeCmDqN z=-?6UJb3T3pyV=eVd=AdP57EL6@weqN`_mM4ShaM6%hd))K^QtYrAaqH2O4 zXck>SLCCr8Z-WQV;U7=#Z}>gq-gfCl%J&L+MYO`0gv0X;BqoBJL2WNjE}Nburotva zapJ@y50s639FtO14K_`Zh~(r^GPJ8+mRDq(6Z~8n&A(Qo*or8`9|=bUO~y9e5J3iwD2+x8gzghhpRHlLcgDzf=YCC7 z17)GZCil6wdT|Ia9pVt^RP33!(ffr{l7=FiLC6`cDEqiy%EXGE=Ux>bGk+N2MUxxcu(FKH3-bt`PI*ko+5$?o{M z|Gk#l|DW)EOi52jsa4at)0sNEPchvud(W;P+~0p4UD^Gipg2f-_Th52@8(PEHq^B9 zsj8_d*eUXvuD;H++tk^Qe|PAUtPiOc78ZxDT?_LybxShIy25d_cE6+Vd;O+vH8wc15xif?~D)z{PK`eCj6iTCeXyi&V`IuAAn6%`3ZU@WHkHEp8A?(+9- z^XJQ}<^H+*X0u@u;v~^Md-qm)^02vN1sMei&D?*fpW{Hx9? zZ3`z{_t%>!@#~@cR!+uZ(8j=@m7e0@6=2TCbM*h$9-1hUA7^vC!_02Z<(uE8w*0U- z;^uyMuY==BE2nESdi#$g^v*2q$z7>(Z2$TB3$D+Iv)J`2ju^NLEWI|< z$Z(0<6_ZaAod@eQ<cZor+u8+Rc?_$!{in-M{o=jJc+dc=FMl|F)HL zI*(lNO+LHzN0OPZO53*F?JooT*PhxJ``ooV@#|L2^`0BDPH)?prt@O=+$C#X zY4OQoWq!ZdTOMP5573fB5HWXAvzL}obLid8>HJJgOa-s5Xv(V0+{cAj_N3{o()O}; zQYiDnhRNrSOqhS(L)oc8;70?)M2SzYIh~5T^z2hWXL?#bx@MCjwD2P?Eae7I4!>Pz`eiG7q)Mg-}h^i?(_EI=lzebi+;Yi#nb!E zz1=g73{?~i%l>T@KDd2d(zO{kqrR6e4FT=8o(G;7yy&>J=eFmzyt`d|b;*Hiaw<39 z_B-Tvr4D6%6kqK@iO?1%KPAJShpbu60tzf8pmF`!0OK6lg_f@2LdvVJX<6>CyD6)? zygwz=@<;X|CLXIz^R%s2-LF7hQIU>9&~eV>W#DjB(wW{Ik`M zUe8=S@$fCK_T_qx>tj!EVN-uxCZu{SCuovHS z`s-daD9(LoULrJUvan&{Cj%vr7vuI;ww5v17UnJgvDPN4Uc_j<11O=SbgHy%-fTQg z|7KGYEBEOO%C}aF2n+Y-?TspIPtf|9;2$3!U$ebhGN#L;oMY-Y4exMeMJu+|v&-B= zLPXw2$``(06tLJU_sN#clh*}us;VA6{`l7Yg9Qa)`>%SGUSppqA;jbdZD{E9LYG(V zI>K->SAAyiLd!ayo9Dl-{&_Vj`OVtqJNqN&&i`lGBoh{v^*>Bdp;*i8IiF}czx9FY zGrj!X=^OjC*aC{qsD<{-y;~;mE$@8a<^=YY={nc{&2GD~@ux*l@Z}2|vy=CF@`U!B zO)~Sg6>k3ewo3L@()s-AiT3$*8)IVwpMsXYS?f+bl5u;RZdb(=$K&7bro0e*8+z;K zZ?_{y_8(g8-e0jkBDLLJ^~g~rO-0AD>n@uTE?v7f@B6x53RTw z{8uXF?M0*7-qWwk7Jk?q!NSV=ags!)=E{!#u4n7g*2Ww={e>(2!h>UbUwe3ZJ>%ff zmj0UE(RpOT)ZHGEP7MMN96{6H#q)zB&MfohnIPNw(NI`f*5bowB_11@FB6XhOca%T zo&M*0{@LnSg8Q6ly2{r&z& zN4t}+&P>?)I`lE9xjU=L>g(!5x1wqvW?H;$QC+@l*`r501tKDED@&V`go5vUtDA(i6*;FH+?$m}BzjTn`tJ!d6TDp(jzA2kGZvQ^3PSR8Fv;)^2yvgo0_^IKW@5u zc2Dj}m1Fad|39$sa{I=LPf4*0On!qFQ(b5cnjo<*POoE!oTm2c7OUIKd}kY^oDlf( z>MHj)vv(Q+8z!vzBEI+x+FCBQ%rf?hYwAc#x#snpKsf*!+fuGwZ$67&Huni_^WX_q z^nWYF)Y1^aqBHS`KzHw*Q!CH)1!VCga2n2@l$7JGX1HjP^25Jt&DZ@ERN9_+NaGjB zTJ6>;9Q^$5eH%7x_#&k0#WD4%SP5t{WNP)tceXZCR|VJPYqEY(HT+loS3Ya|>el1w z^G|RY8P4rp`e~zW=Nqq};+h+gf^T?uw%u*Ao#oNfaee)T8}5JCC2T2XRP!3B0f=~=vC_haO)y`u8(xo?$$Tkl1_44UTPCCkO!S3%g%-cxVfSI(2%q+vK(n&wBo?}N5%qY7cgnD z1+WD6>{!qs(P78jw1HcxFmjp#( zb|~s-KQ|@n@?&o8lUprWzb?v-RCr`;;rDBim!;vM!-osse>g56C-+jJ=+=(8Mr!)M z(;BDDoY^;}L#8wFQutqWcLj?}Mf_Q?t<8|$zu({UpA$&)8%*j=qEk~(!UATIAplg2Z{A3uKFI+JNw`>Z11#_c7Zlh-^ua-lk7 zk!So~yULTR{Cbw?C-2<$<>_nYcxlg&?RI}QEz$2{diDRE$X#`9Q^xtF&zSbf8@qN1 zJQ7+xYgV6)gj<8)ik5~IDr~M(yLK$^k+Y53bkk)sqs#W2E?YLPohVWDy)$Q`MAY=t zlV{JG6Yr_gerG9Hr=x7_NnMuG=g(iqY>V32`08PK^TwD-_G&sevaZEdPm~BZJTpy6 z>Q7Crsp`6e8B>ml2+L*0t~*!=noM}{`z9_fRN#!s>=L~nE=F9PTGY(=;p z-f2$R?&BiukTTmhMEbT==fd*&C&W4zrtZA6*F7XJzBB%%q0nIygQ7>738r6_-0#bE zCifp%ao_?+^Th?49Di&6z7f(E>2$olZ2o24V{>QEZvOVxTEWO^_Hpl`qT+%F2kKlx zq~!(mxAXs=uF~JJuv2CF)@1S4n>#zQW!o=!Sto+A}Ywau^vK zU)*0`f8^dJ=2&;$%U7zOyhte1jqAL$mVIN^RjngOju>=4)M%)&S3bZ|!NVBn$usf0 zh+r_@IdwxD&IY;PK~708g7mCaj!o5`eqp=6 z{qonIyQTT7Jk9>kYPunDI!694+mY)QLdx$SiGF#rGPgGO_PnMIw+zLC50{*qzVArD z3LVL-oSd8%Vv6#Up1rGl=JDJ7YL;5)_s*`aNm_pcnqmTFSyX3FQNHnUZx4g=16dZA zxWz7agV#)ysM^k$CDp0e)SG+$=J#`1&!W~ZR+*eoX|qsan;XCE$-KA6cwC=PbPky*e=kd=^rh6C z*o}hG+j1Vxk+>Jc^!+r40aKTNz|9^Xt{tazgH+(0^RE1i6t#*)Rrv}lrq z(tAyxq>R@`*L13|)s_fdR2MpX{qvLANuRVenf%@rX{aCj^78V;Nt2pfZ{_@yb$>i+ZgbUl1h-g-de~5V8%UaZmTD8{w`1Lzfl51+;-CvJtGVeYRT7B<|(D$<(229@&Ark$* z#8<^|neS}1CH^Y2);~XKe)LKBqwf2T$2870g(GQs)m=KZI0I~GY9 zTzjH*;)L7t9qTxFI6tlt68RPu6wzVJUZ$*atH^di%hD1}MZ>(_y;Wu3j`u9)sxJGV z8*QHJ7Va~%T5Ii-l#-g-sAQzEXQt4zm%5qrgaWSYQMa^|JYpi0w#=J_XZ7jO z%bq=cW^*3fwzg*Zskh%s5?aipw^x30Vat&VLXC>g6%0BbUeG>kZp<{x)q%6qu~}Wo z**|-Vu8?z!?b2nFB(}XVy|i^&u34Zbk6^9REN`U~Pfzk5pS54-`u@WzY^ENGM&082 z*K&V4Sq5DBQ~Tn=!WjmMOp6vTUTw0voM-jvqbhD4;pX<)#nU`_)C{l0oSu{0t!y~Q zwQqhh%a>+`$r86NPu;tCy3%ChK9?kcg%5onE&8-(;^vz!s)jBfv|Yb`wb{Aq=AjGs zBxKYKr|HM{xy#pzOnIZhxb@D^~CGi?eCpyF*9N&U?Dv(F2XlOFzDrb|8jv_rjM+CvrO$)wK$S>McF)`Q^*h$;yT$TbF)JkYt?AVbHm7@5zHIZmoVs`mrua z|L2K$B?%q=`}tZNtHUNnmoJ?zAHLqPH`c1!@KpbF??FYOW}{X$HMOMAr{^oJi?}pmgq|g^mX~xHz^PNPl-r)ni{t#IN1=3__Hy&oa%B@QFtc zSFb_m!;`ryvf^vz9I3uhe7>h)IjF4>?4kX>9TW{y&WnA&o7sOv!YHL+*DKeSSHIQ#sI586^<7cN zkp;f1YTnv)o9U;fE37)s%fYjy$6G}SA1}Mo*RxUJYgwH>`R?q)+mfzcrM@;7)kr2Ja(an9n!q@zo z)w-2!l9MH7&1!=-mO$x#Hec48sVU4M`6vtXeTvZG$+K2mnLcOp z`seGdUl22djt$20Q-QfFL|BEY=`QP~6ZS(ZESNU6iURr4HBEy}mVJF)%R=?X} z-aq5S#$R5mDhxUw?$p#wpJCYf&@#5bA5}|v`trkH|=)toQ;g1jEpwcISSR? z|DwI@-=<5#NfBQZ)u#*1K6_=C}kpF&XbiQQM?sqi@dY)~1IzKV^lvT~AgW+6)Vc*S6 zJ$Oppm-uD-B!xVPm@HI1=}MH==2Mo2S1RZ46m@er&7lD*Msrm=7cBkSc`P}D5-bF84-iWLCv%$Vh^_rrm9pOi&O+GCsbXc3|#*2`1X~9X!+w~h$JvzI@RGU5FNwg&6S>=T8BNu*49aV9= zs=V}PkoWW+dB#Bcz8Yj-S);loVD$iKYYIr8uV#9xiQ(oSJQi6>3 z^`}>b`Xps|#o9=?9Z+S-nJ7^ezj(%x6;p%{A7}S{wC?y;*;|P}R-aei6&E}GS1L(hIrStVXSotJ!zYHHe#mC|<@EF4YZVXU z?7X3ayC}Q4+h2lM{pvOJ4aQ>E5Q`bIA`1a%G z?UxsV^U~gzyFXs2e}CxCcJW2g)8jnuZsrx9S0lh}|4&SIo&Sff9X?4{Y=jPnt>e#s z#xT+N%odX9Qiz_bl$><4+1}mBFSsXP+;RBo9F}`K zo_rHY7p|`R_QP1hvf8T2$$78hw48q$c78#DUR#$eVL89|1Ix9w@vCnt-|n;c9XGSU z%nFn$Cw3Png|OaCFPO7vPUi7``S$Z0laHU8ZJw`ZZJsf?$VGD#FIQFbEa7Nxfs-ef zwj5EYtoxB^datrv%@0zRK0ev0pWyKS_FgqDP)eNvs=SKVD^8Y}cX(EH63d-lhRG7) z%3?1n?oZu+?!k4{`;VS~w>vr|KJ3x0*SB{`*R6iLyZea6yjgv{^7Vb~c2&`niwrvh z9g`+B@%`B+UViVceEawKZ(aMIvVNqU(*SqRt18E&0()O+*! zPOFVip9qyUik3R32tDpODzzw7XtC#HHHnX}E@xcX)tYwQ)}5{F>7Dx?vn+Vk{pXcD zG2Ay@FoDIS%i;1e-`1GLesir@RjZe7-K+fh59^)_r40A%AJ6^tvFO}Bp`BYS?ml@U zbTv)*>alC9H|swaei^Eley=jUwkCFh#F2A%O78dm`21vk=!VR@YfQ~_e!A}H-~kux zi}XMtvPjCn>&c~Pzn;LwZi-e`Qo8T=9-aBuwfOv>op01V=e@kVJUcJPMgdeC%QRkG z?9RQ@?d%N0!{Wm5Sw zE5_5hCvXMEhK7xo!kBB@$04|28^2?Ugwqg_oIHv|G&@v=3m@jUhlp! z=xg06w(QrZe9mwBIXgxya;w_6U%IaguL~dESn@82=S}(SRhz6Y&zKW~6wI@(Y|>U+ z|8tSop{@4i?+&^rA4~prFn(^OZA{&XY=8hYS0kSGb-8 zr;9yC1!{(?6bk&Ev|s*r-MVqA#qXEx-;!QM2T!b9p`?0n&GWRyv8T)8W-ltTn<%t% zk6DFz$(x@3^^ro!;lK1UH`$szQZx?v#`5RMY5yfQlCh6>?_!MlsrIy^^OWw1yQ{Aq zk+ZM0;p*lR5D;i!U0~s5*?5nLA%LFV-^MjMuhm^a#+M))FJfZacw=b-l zVVB4zRIRdT%^IHWFqOok{n`^hg?3p@KGhlaq((`#$nxS^HMzjk$FHk&Zp=Mzruk@* zUykgO+Wp~zofkiDV~IJnLq+xXn~NLUk53JmJLAS4W!Cd&tN4!px9ZE5j_Ed^Ketu7 z`kqE__q*6H*OYu_7&3m%y6$}Gjq8qep{}|GrfOzWUv|k$wDZRQX{!6KmUO@W_rrM2 zFLxg^FoFXp>&SyXNyfPf3Xi0oa&#sJ1t(-^-1_pa zZ+E)i!L4uieqS1K?q>L|@T}ZlCr_%bI;*y-ckPjz?+d)ERnA7W=oQAExx8`9mXKd3 zUa$2&ryis&491uu@Dy|F2k`}vW89;y2$I5MOePjxCjl3Hq_-X^wH`T3jf9pRJY zT(;hH0q2PLb$^A<@A+uL_FcZI{<~zuzrA^G86GRb#;24Ed-t!mZ~0aF`thZy z-a8(illx)(bH*x_W1lzAb8a`2EqFg+V#L3@MQHun$oCvd8?Mz2$t5l`;1uc5kj-_4aXg-;p2B ze&>I-EM!{;9PQF>i$kHvFW8QaQ`E&;_#t;rJN?r%Kj)O=?p99iwZIPkStsFkL+u5)6X+#hD92d~pT#deq}U7u$r)uW-U>zd)x z;<6%iU*EEKhi^s7KRD7Uysq?+zcEu!gPOpC$GJ-D0!w)Ou5_>lK7~}LWyfy%-<{v( zzO3))yR9qZqW?dsQA&UEX_f((b=d9W*JU~#Eoy!r-hSyx)|~|#oh=RjS$!9`oAuN1 zpYew*R$>3RtDZe(=G%^G`|sdH(Tn*YN#emr8H{=RKl5Io@^ox4AZ)-c$EIiHisnkBF9DbY0|O(s7@p z9UKd0%T52CWmbQ@U(EJ-YU<+T>E}4OILj`th{@izV*^KZ@MQrp(Zq`vcD&o}_0#r8 z5{m@mUuB1~NgdfDnQkHJ@gX~H5;s46{w(3qg4qI+(cJm#S8cd@_oG^IsZfJQ_l|9a z&txPdBPAE~?@iynTkPliu6<8xlmtC_w$|48PLfc0GVAN=jn5sV(tKtm&Qt!jYVsbF z=c*;0uXW~@e>xUA_sEXF3mq#eFKK67+Q4ZSv5A3ue_TiJX|siyidM((UC(T2e_wgy&a*@7#U8!6pZ?*}kIZ`w?yrL1wWbOk z&R$ixBDs8$gk!)oDd z=3Qg?ewsJ7ySAYAMx{{)^W8JUFD~Lx-6O`0V*9;4cD9%PR}~A%HsYTv(ULmZv6fo z$0KVk5;$?MVuk@3u3!n{`I#f;;NZgyYXRhfO&gU3s2 z*R#i4gO;?v+%>6^)n(0}ZAr72D{Oq>j^x3~60^hW(#vgX+wStI8R{rbQcj<7q#$F~ z=d+-Wz9Y+wBOerQaP6LSJNS;{58=*-xzY#bE@4tF?eFP4denIN>Io95OI0<_oOgFA z>2Z3ivA@@o=fRhq`#(H6qrS2Bec6v+KNgl>kE?h*)BNI!I@eQ7Pdio>FQ4PDV$`{C zTK{@!p~ruYe!lVJwthv@E#XOT-k+`DH~+TB)2mPOmg=h`(zkcqaH=_0m%kpePMNg}=ttwb`ZN?n`kjWlAkml?1^K;$qtd(8k zC*u`%^TVvRRlZufCMqB|oR;dGICW~Hbk&zhllEkNTy)CVx;)oCWQuC_y?lo~mCan; z9akQGm@75eR!G@inftEw_on%7Uqi!!nqo6=3rb0+D*n!1n?LE_v%dA-evEG)I2W<0 zPnO_gI<*~C9vlaCV3Gs0-+AQuZ`>B%mB1{p@&VuMw|7oHu6X(H;er~8v+LhCJZAsy zz02Tl`CB&LkH0>da`bQ6;xD3o_EhgT4<5msoV`}Ri|i)GJuNC(w+q~mRB%w+Z^h|( zUnTV5vxkEG)q8VREIt)f1ZnbStGE>w3UYOGUD#S|9&nXMH#Q_RrTmp&OG}Hgfx(5O z440%YZ*PmwZNJyM?r+|;OBd$KonGhrx=^Q5_S%}r|smmTgt=AD{rCYYPU6uAD}zB&F&!gtPzJUQp<$5Q8{fX++q%X*G( zx3ANFXk7E4pytc1<8iu@uX+|uu~7!c&n+hJimB74H7LpTxb;p|`uf#5AVA>HU*E;aw1Q95`~*h^AETO~$#NkJ=cE^R**>(K{r0@E zWY51B62=n)ch@oR`SDWdN^Zs4Rg)L&I;*y*_pD0Ws^DYUy_T;ZzivCCkaGIesSgh} z^Lr`i*Ay>I>zCMJ#r8PqOzxthJ&DX2pJBkl&&bYK} z?JJ+%>Q8R(&14QcQ!V`Xc>nPwo|9ERU5L_HsebIyI=dN13dA?9+j?51E&IpE%RLQp z0trIS)lo&$jsyfxdbFoz&b__zy28~fZmzky?F8G0DQDA^jGPWD-*HNa*nHC_G5P;L zcdM+UR~+|N@!nade|chVU@d3_am}N-A3v75CRuRz+?zMK_}f=d*YeX5rq?HTCMX%M zIDd6@c=EeDJ3Tx-KRyu%dEM=#v)q4v-;pCOD}B`rLz=_3wmsqTJJ-2T>dGAfO zAy53fqTU*!2%EbprLWQn}iaPeN_&V`PqCqYwj83CDLZ6R}y%rMWFn>2ay zSHmA!i&Z`)-P)4rlavur4bE#)VRHPvf-4?^2H5vXG|uEZ@!fp)+e+=JMT-Ri>Ytd+_Ap_6Fz*jfPl zUT*e&B?}{&!}sR4ooEX`-N(klzO(ntikdktF0;?Zs<`?2nSJ_Hr1E#l6tU!Qb22Sz zpRp(@FEaf6^k-i8i3Fj;d*APui%J)AZjM^jsp1wAB4Rh^zv?={B{6!sFTVFms;C|m zG2Hn4!a`@mqN_|U=DXaQ^CvuZUbNwAtGR8%n>RVDciM3oZMvws(3+{KNhbdev;Pzk zv83|{Lt0#1Bfg}a`g%~Mja}qmtN~L`Lomk`6CvmK)m%4o-fd#ElQ)!0|0c7=vj5n> z87;STrL0ZQ=h&ufVszPd^G<4V|Bm-*A|lVCTc>sOuzsHI+0r&^`pIKzvwg3;DA{{z z>9ToGZzTyi^C{~8i4*qhQFLxw5cv1nkMkRT?`hcaE4FTT5$7i^{YOtuP7d>46ZC1t zqNbWDBBGw1OSY6uG?bK(>6x&hpgS>e=ejFb<3XbhKd+m+Y`<8ZmHEQ2KlS+{(ToZ+ z`EGIjZC*(dr+GBaoSW#i`PkOJ@?G-fHap&XSe^3nQe`@P{r)B%!^slw9Om9mVUb`o z6yIC+NC(<)>pObqlcdb@6Wguo{#exX z$y$fq+f!M5lhbSVlsNU-YYMdPEjV^0tk7bWX{!IaEn7@@PRD{*mHvgxc^y)3h4;;GTr9oa^SI}`NE7L= zx3`zw=2?@++>x_+=j~(XPMte&W%@DC8L6v^V=s{36eVULyC)UY)5^QB_Sm zIZ0K*Bx6Fz(Z{Fvy6et6zpF@c@9(m!GL3;VPyEO&)>2AN);(6|@1))NaLtBAZGr*YccUx}uxGDS1wQ8L+M@Dm%sgY4o>4Y0;!TgslT?(3G zQ^~~0$e3~EMbwYqzgJ)XVXqr`S$wj@s>5q$v&}qmVZo{_El>-mRnj;u;oY5`8JCuD z&N9ng<@ol7oKWtwEf4+X+r?_RzvAe;Xly37KQ-mRmwa6gJ$J~WsVxS-wT>N7Y1{VY z;NnD{bu)m7F}ib~D4iefus=6k0k_f;oEY zA%6G%Ltpa!dqUUoTM8Xsvi_HU--L5(UwvHE^W^#cxH#8%pQH@$$sj`BM#}AgEQdko zL%xu^mzQ-O5xB|*S_pCVnAk=2ORLvEpC@{}YPHuNubm%P6wOgVES2KdFlV?}cmC}8 zR>NBRMTc}YZg5Y^kaf1)sZpe8X(@Sm`M&JXrBiY??YXl;v-CISf~ghfUfsXEn0?=! zeX`5yvmFDfRoWoyr(Om0F413nY}L9SzYbh?6S}&Vf4|Pl?nMp1_FKDtKk4P`b<(Ps z@qYhIC0CBZ&QRSwp*C!84T2lmFxO8_xs?-D(>?V@j?%3g*F1Rk{&v~s!L#=C)05ww z&aDp#`WYxH)NHkD(rn$i`QJW&{i?z?>(%K56R%IlTim_kKdg@b=E0+zyuxMOj~^91 z`|@Rk9_`F;3Ws~27fiLcvNSLP{GtD3;VUmLW#_($ z+9R|ynm_64s?d(k&P1WZ*|R{SVr~w6jDgr!OihY@eDzOkXZ*`TA!lDk*Bo!o&V}wf zeTyQa6V}JB+OdzFTK`UaeiUXwecc`zZ?HA?%JP)l}QX z|DWS9V7lk-@Wj;XitSO*5;W-r%O*-F-MH~>PVM{kIeq;OA@S!6Rp!(;8H6OsuPT~z zBNn^d4hBsEZez?+>RebZJ=>GV)jOwmSEnZr z@2c6JJiJ=043i~9s}`;|s4`3F*tv9lTJo`;i4iefM=m6JwNRzaY&x%; zsPX}h5GRKeA?GW$t)4u&dk=m4G~=R2uB)|i=R#fEu2-)sg;Levb%spm!UCp>A7(pw z16`Qg&glmioi9snTlD#aqMTdI-FHFL*B!hmD!noFwAi`Mg?d}=NP!!r4J%aIPE>bw zm@&8~t@x9)`of$$?M{710vJ;c&MM&Ubc{EBe$P~{Q+8F@0s$WD?H!vTE1`n3qE&c& ziw4U?RyhAE&QpWLn&7RoVbV_tO%FhKYEBXBO%Iv3~bZ7qY>S~z0Tjo@! zVePMyB}aB+^sED_|@7{5s>&&a}j04E4p(>es zm!<~2jEGKYG#A$q-svP7Ui0_wDxOxa<9W4(`?lm2bcW_T@c1FbwUi9bJi_xzLVRpv*6*IOKO>yc=D^e9Q??pKjThqp$W1^Z?A|C={; zdb45t{?;2eB6MPQ1iXp@EiH0o>*?TLb3%I23br28ouCG!G(#59ze56#w0oOf^1vy+UAzP&$r@}$DDi3Y~8N(m9MdTNGO=2@=Wt}Z@H zV-=(Fs+f67hJ0_m4j&JWKP;WS&mq8L!)f8d*UQd!tdh;Xcy7nL?OIw3pMGN4!3dgt zvSxaxX4u8W_3_Sw-ycp$>o1C(&Jy}`<94^3N`_zRz67Q0eB#mbyZZaFj9! zY=6rA)FJTm_l3^wNrzfEJNo+8U0QR`aE+e$WQnYEQl+;h-4<{y{pLFLw6Ka>VWObi z+gjK`xN<$u_`_P(-#hKH%mj3X-= zf>?^&`i@l8|0>zC&shRe(1#R z5@BZNo8q#jNil12=3Ta3LVuqeExyrxI`m1BkaM-x6oe0sz2X;tc;@2cibrp!ht9s> zleB_O)%*xYh8Uy&1PPTtdpd(J?m1k#D=a+EyXtHjs6RVNI*G-kyJ5LU&z0Wj4`1)}e|UCF73NrvTMK2a zJlx$EWnXnFOH-5E^HQy5cY1$T@u`_@PjbuzJwbbr6>F6?uRs28lk<9~)cQ!zU0m%R zJX~Kr*2Fe+ZZF>~5mLC4k@e_O4fmbS%wjLo~)9E{d=muX5GAg zLQ$yslhvEKweyb(PHI{d^hA8R!X9s?KYwactwq1GH6QHQbGKShPNrkRf(EUmceaI$ zotO7d{kQG=+NT*&>l3Hm=kDT~7$4K}Ausmf^K{Rq3Sr~sgAIG;?iP@fX_~NLRp-AI z^YR~UX`eWE?pc*K^QkFI^LO$FLdKXKlkS8q*S$99Hvj*IRj;RO2haB83BT|-U6QdD zgle7x{b^g=V-)jbjy)@!BoWZG>N|R4=i5h zE9q@enI1DqL-)n;TM|zY$?)JriKyDyl`%aH+XO#|bRL{2aq9WOYip$i4|GLajFMqo?cYkB zUylxJ<^K6uy)68xpWn@nsI59rUzsb!Nll-`dvP_>jTbR_&LK$$dbl!Mj<%+sv3-)B z`uMHl_r;$dL>Jti++XSXW>(gW%BCX==13^dmu&x0zjFJ$VwJY=IN^6w1V3mn%~LY8 zP;V>Rx@v3qvh}w+rW&U`K6CIe2Oq!lZ9DS^^CB+?{JynH@aQS`XSe1S6=`n0d2fb= z;BkIgr`s(oK6Rgcud^*Zbh*fEc978Gr=_Cu(tC5`g>{O|wwVe!v&=ss)p_t=(N*!I z^Y))nY2)hdGWK2Jm?UFe%H!`-E%W=|jrMK2w;uhSF7EOF+q0!?oq?5qUf2JWzxFSm z_1XT(Pkc9~h(|1yUKHNC;nL1KZ7(!BCswOED;fN;7t|Q@ zRcLknpIx$_-FuGy*PYS2qyD>dU7A?k&lkmiw!T+TTO092=ZT)J`u1?GtvAb-E_pC9 zI?wUaGT)B(3*`#muPFfg`tTL|iIP4^7OQ!GK7Uf9q-H3Rknw!6{bY$xKXyLlGxg}X zEx$|F{OcZ0{{9My?tQ+8`Zetz)pPGJKV31^OzZn0t4#-{O`DcbZTILdw4%sh-)HERt8BCbNrY=hfE0o&Q$MVO;E@ zcinwq9d}VtWz!K2J)J}K)x1ZfSKGVqJ=Pl{ILVVIG~tPx1f#F=15TmGcRGVB9@_tJ z=igq}f8fEYpF3k1+dX-1s~nq?xcEZhgR_^8bFYmls$ROnY__tQ*~>0Zp6}-(Ea!K4 z@>Kq@6mphR?!Ui~t@Go_>GKn=%w4=hM)D`?&y1_k z`GV(t%rncF)bGi2n~i6p#Cw_By_NqZn|H@oGhSEy_UV<(l5q(WiTcN-S#wxLCtW+kq<{|rhM+4ab&`ECikQh$xl97Ur{ma>gqChbJ5zM60YTa$x^6 z?vP}lYtX6KKk@kcfXPQ@{CTAk6TIARUgZQ}AVl+LOT9M+|CnE$hEXJmakwm>jO_b~nv;kJ{=vjEj#Le1>FY z@yQZVSETwo1rt~}KrS@rfAUR4wfZUhVmbHC=RWR8tvTv$;dP&ysi$o;_s)s& zNn&ViZGCZXx9Yd0^S&<0TJudcJ-N74X#MIF*~|$-hqEu-eiz{@v^ev<+Ks(tqFa-* zt7C&qJ$jBGvu{Xre(&~QI{))7o3!-!R-x73zr1MF-=2TH$4AI=agd7J(+L+3N0&e7 z?$m#9bN)Ujm$eb=PiUtfI3bz#zW0xQRqvk7r!LO;GQaL%U;eeEH-{?YCU#m)o!sro zvwmfpHK>g*$&zK&8TfMs>r}>5SdDicrH;p-9@{tRZDzYX>Onn_bJ0<$hORX=jX1*{D zd@2T7bEV4GvvtBnS?zs?e|@(`11C;SE&kaRqV?@(X}q$9jf`q* z>kQ)@lVkN?HJy}|ZS?wAI$Q3Xapc3StR2a24WOlTTufKJCx+eA?*8<7;-{NNCvVQ* zS>1g7S>K&`O54L{vF)p`HQHDC(s$0^zXper7hf#Bp};fy+m`F!ye)USY`ytp(cJRo zdB?wm&p&i>^6?AnV%g7By=6AZzI7=3^Z6?q=k%VPC=nMv@jBZ9mA2~(w%^@2OU2En z#>D9IW)sDwQYvj~EGx}8cCvyN+pJ_Hf!0O~3DSXaDbo zso&4ViH7>=sTuBBCHHQQU;@h9jNZYE{x? zZ!}e%oo%&Y(vIh0mWO*hdA>h5x7LWMr{Oh+L1$oK)szcs?(b?1xvKnYR@J)Z*D2gZ z)m@kNUOM^i?l;h4xLY}kZrw1o6?%MVsg8;FoHrkSe|qQr{qe)yzb*gFnI@MYbeJ($ zpfhm!?PQ6XVD;H9Y?CFnF+TO^;mWZPI@~Dk|1|n3kA!O5%!>&JzT9iR@OYi#jo*ja zY`$L(|M2y5aOILdQ+0Lm$r61JPnLrwa-Rz%2!V2H8Q-<~2`%wKRhwCbzM z_T?HkwfCA;Sj(P1c~qrs+m>S!B}9L15bHds(w3@cHGiS8W9Wn@>mDEPKm7d0#^k4G zXPZyo9j>)->GNIN)r6W^wz{T(cZF~^)-gX?`d_5fS>$R%pwjjJ&vu7?Dj)w)|Ni`; zNz0chE(+smv#}2><1Km4TLjuw@XlraZBXV92e~cFujkMmo1Xkjg7Z@<)_>UrE^kXx z{dT;L1m}XRDwSiaN>_jQ#lHUGlbMq<>T-*HDr>mdzRN#am#KDp-JSN>rT>gTi*8T& zneAF=)R_pHUup(z8p#X!VpsWE&63&eoWbszUpi^`%lMb&{*-rGtQ0t9db{{8z5~he zIu4)pIPVE{d#|bDt$a5_Fo7k;wZXH8OQ=~ZF84=)VbJwI9paO(@8DW{`TXu(;Z}Dy z&X%77D#FaQ4;*}Uwd07#&51qj^Qt+x??-gJ_0Cb{tk#*FB`OIY7x4*ys_;hpn$4`Cp z1!TmY9ay#K-rAxzN%y1`?WWt0a2PPXQaYgG=IY0zWqWT?w0qC2|5mTIe~Rn$-f8RF z_aVHzZN>Fjpd7NIeXEr2O2?!>&o^2dF8MET$NmlD=LvSde;Kd&|24hl=eqK~9K+6s zzutgS8_(K_5?4EUK(%myQ&LLo&K|qJyS&}kY(cC$+bDK;H@GehNU`;|F&5*bDsQSyq zCrhk5d`_i}S>l$Gp_Z^@$ljLKlOxze-?fUCHg4UfDE8#(!3>iH?&n#4R9Y≷#RH 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 diff --git a/keyboards/ergodox/keymaps/algernon/images/base-layer.png b/keyboards/ergodox/keymaps/algernon/images/base-layer.png index 7b25a05b3afa30354fa240925b959233b88fea96..da159fbe2ec5e8e084fee3b9ae934b8c1f5aadab 100644 GIT binary patch literal 95222 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 literal 95654 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

S=yaPb{xx9+*$lx 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 Q0|Nttr>mdKI;Vst0EB`?PXGV_ diff --git a/keyboards/ergodox/keymaps/algernon/images/one-handed-layer.png b/keyboards/ergodox/keymaps/algernon/images/one-handed-layer.png deleted file mode 100644 index 698d11e5f20d199dd3a200d6a4dc14924ee4d888..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91140 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 gZR@H#t@qD9e;event.pressed) - return MACRO_NONE; - - layer_off (HUN); - - if (keyboard_report->mods & MOD_BIT (KC_LSFT)) { - hold_shift = 1; - need_shift = 1; - unregister_code (KC_LSFT); - } - if ((get_oneshot_mods () & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out ()) { - need_shift = 1; - hold_shift = 0; - unregister_code (KC_LSFT); - } - - clear_oneshot_mods (); - - register_code (KC_RALT); - unregister_code (KC_RALT); - if (accent == (KC_DQT)) { - register_code (KC_RSFT); - } - register_code (accent); - unregister_code (accent); - if (need_shift && accent != (KC_DQT)) { - register_code (KC_RSFT); - } else if (accent == (KC_DQT) && !need_shift) { - unregister_code (KC_RSFT); - } - register_code (hun_char); - unregister_code (hun_char); - if (need_shift || accent == (KC_DQT)) - unregister_code (KC_RSFT); - if (hold_shift) - register_code (KC_LSFT); - - return MACRO_NONE; -} - -void ang_handle_kf (keyrecord_t *record, uint8_t id) -{ - uint8_t code = id - KF_1; - - if (record->event.pressed) { - kf_timers[code] = timer_read (); - } else { - uint8_t kc; - - if (timer_elapsed (kf_timers[code]) > TAPPING_TERM) { - // Long press - kc = KC_F1 + code; - } else { - if (id == KF_11) - kc = KC_EQL; - else - kc = KC_1 + code; - } - - register_code (kc); - unregister_code (kc); - } -} - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case A_ESC: - if (record->event.pressed) { - if ((get_oneshot_mods ()) && !has_oneshot_mods_timed_out ()) { - clear_oneshot_mods (); - } else { - register_code (KC_ESC); - } - layer_off (HUN); - } else { - unregister_code (KC_ESC); - } - break; - - case A_MPN: - if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || - ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { - int oneshot = ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out()); - - if (oneshot) - clear_oneshot_mods (); - unregister_code (KC_LSFT); - - register_code (KC_MPRV); - unregister_code (KC_MPRV); - - if (!oneshot) - register_code (KC_LSFT); - } else { - return MACRO (T(MNXT), END); - } - } - break; - - /* Hungarian layer */ - case HU_AA: - return ang_do_hun (record, KC_QUOT, KC_A); - case HU_OO: - return ang_do_hun (record, KC_QUOT, KC_O); - case HU_EE: - return ang_do_hun (record, KC_QUOT, KC_E); - case HU_UU: - return ang_do_hun (record, KC_QUOT, KC_U); - case HU_II: - return ang_do_hun (record, KC_QUOT, KC_I); - case HU_OE: - return ang_do_hun (record, KC_DQT, KC_O); - case HU_UE: - return ang_do_hun (record, KC_DQT, KC_U); - case HU_OEE: - return ang_do_hun (record, KC_EQL, KC_O); - case HU_UEE: - return ang_do_hun (record, KC_EQL, KC_U); - - /* Mouse movement */ - case A_MUL: - if (record->event.pressed) { - mousekey_on(KC_MS_UP); - mousekey_on(KC_MS_LEFT); - } else { - mousekey_off(KC_MS_UP); - mousekey_off(KC_MS_LEFT); - } - mousekey_send(); - break; - - case A_MUR: - if (record->event.pressed) { - mousekey_on(KC_MS_UP); - mousekey_on(KC_MS_RIGHT); - } else { - mousekey_off(KC_MS_UP); - mousekey_off(KC_MS_RIGHT); - } - mousekey_send(); - break; - - case A_MDL: - if (record->event.pressed) { - mousekey_on(KC_MS_DOWN); - mousekey_on(KC_MS_LEFT); - } else { - mousekey_off(KC_MS_DOWN); - mousekey_off(KC_MS_LEFT); - } - mousekey_send(); - break; - - case A_MDR: - if (record->event.pressed) { - mousekey_on(KC_MS_DOWN); - mousekey_on(KC_MS_RIGHT); - } else { - mousekey_off(KC_MS_DOWN); - mousekey_off(KC_MS_RIGHT); - } - mousekey_send(); - break; - - /* Plover base */ - case A_PLVR: - toggle_steno(record->event.pressed); - break; - - /* GUI & AppSel */ - case A_GUI: - if (record->event.pressed) { - register_code (KC_LGUI); - if (record->tap.count && !record->tap.interrupted) { - if (record->tap.count >= 2) { - register_code (KC_W); - layer_on (APPSEL); - set_oneshot_layer (APPSEL, ONESHOT_START); - } - } else { - record->tap.count = 0; - } - gui_timer = 0; - } else { - if (record->tap.count >= 2) - { - unregister_code (KC_W); - clear_oneshot_layer_state (ONESHOT_PRESSED); - } - gui_timer = timer_read (); - } - break; - - case APP_SLK: - return MACRODOWN(T(S), T(L), T(A), T(C), T(K), T(ENT), END); - - case APP_EMCS: - return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(ENT), END); - - case APP_TERM: - return MACRODOWN(T(T), T(E), T(R), T(M), T(ENT), END); - - case APP_CHRM: - return MACRODOWN(T(C), T(H), T(R), T(O), T(M), T(ENT), END); - - case APP_MSIC: - return MACRODOWN(T(R), T(H), T(Y), T(T), T(H), T(M), T(B), T(O), T(X), T(ENT), END); - - /* Function keys */ - case KF_1 ... KF_11: - ang_handle_kf (record, id); - break; - - /* 1HAND layout */ - case OH_BASE: - if (record->event.pressed) { - oh_base_timer = timer_read (); - } else { - if (timer_elapsed (oh_base_timer) > TAPPING_TERM) { - layer_clear (); - } else { - return MACRO (T(APP), END); - } - } - break; - - case OH_BSSPC: - if (record->event.pressed) { - oh_bsspc_timer = timer_read (); - } else { - if (timer_elapsed (oh_bsspc_timer) > TAPPING_TERM) { - return MACRO (T(BSPC), END); - } else { - return MACRO (T(SPC), END); - } - } - break; - - case OH_ENTSFT: - if (record->event.pressed) { - oh_entsft_timer = timer_read (); - } else { - if (timer_elapsed (oh_entsft_timer) > TAPPING_TERM) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT)) - unregister_code (KC_LSFT); - else - register_code (KC_LSFT); - } else { - return MACRO (T(ENT), END); - } - } - break; - - case OH_LEFT: - if (record->event.pressed) { - layer_move (OHLFT); - oh_left_blink = 1; - oh_left_blink_timer = timer_read (); - ergodox_right_led_1_on (); - } - break; - - case OH_RIGHT: - if (record->event.pressed) { - layer_move (OHRGT); - oh_right_blink = 1; - oh_right_blink_timer = timer_read (); - ergodox_right_led_3_on (); - } - break; - } - return MACRO_NONE; -}; - -uint8_t is_adore = 0; - -// Runs just one time when the keyboard initializes. -void matrix_init_user(void) { - uint8_t dl; - - ergodox_led_all_on(); - for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { - ergodox_led_all_set (i); - wait_ms (5); - } - wait_ms(1000); - for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { - ergodox_led_all_set (i); - wait_ms (10); - } - ergodox_led_all_off(); - - if (!eeconfig_is_enabled()) - eeconfig_init(); - dl = eeconfig_read_default_layer (); - if (dl == (1UL << ADORE)) - is_adore = 1; -}; - -LEADER_EXTERNS(); - -void ang_do_unicode (void) { - register_code (KC_RCTL); - register_code (KC_RSFT); - register_code (KC_U); - unregister_code (KC_U); - unregister_code (KC_RSFT); - unregister_code (KC_RCTL); - wait_ms (100); -} - -void ang_tap (uint16_t codes[]) { - for (int i = 0; codes[i] != 0; i++) { - register_code (codes[i]); - unregister_code (codes[i]); - wait_ms (50); - } -} - -#define TAP_ONCE(code) \ - register_code (code); \ - unregister_code (code) - -void ang_tap_dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_RSFT); - register_code (KC_SCLN); - } else if (state->count == 2) { - register_code (KC_SCLN); - } -} - -void ang_tap_dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_SCLN); - unregister_code (KC_RSFT); - } else if (state->count == 2) { - unregister_code (KC_SCLN); - } -} - -void ang_tap_dance_mns_finished (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_MINS); - } else if (state->count == 2) { - register_code (KC_RSFT); - register_code (KC_MINS); - } -} - -void ang_tap_dance_mns_reset (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_MINS); - } else if (state->count == 2) { - unregister_code (KC_RSFT); - unregister_code (KC_MINS); - } -} - -typedef struct { - bool layer_toggle; - bool sticky; - bool finished_once; -} td_ta_state_t; - -void ang_tap_dance_ta_finished (qk_tap_dance_state_t *state, void *user_data) { - td_ta_state_t *td_ta = (td_ta_state_t *) user_data; - - if (td_ta->finished_once) { - return; - } - - if (td_ta->sticky) { - td_ta->sticky = false; - td_ta->layer_toggle = false; - layer_off (ARRW); - return; - } - - td_ta->finished_once = true; - if (state->count == 1 && !state->pressed) { - register_code (KC_TAB); - td_ta->sticky = false; - td_ta->layer_toggle = false; - } else { - td_ta->layer_toggle = true; - layer_on (ARRW); - td_ta->sticky = (state->count == 2); - } -} - -void ang_tap_dance_ta_reset (qk_tap_dance_state_t *state, void *user_data) { - td_ta_state_t *td_ta = (td_ta_state_t *) user_data; - - if (!td_ta->layer_toggle) - unregister_code (KC_TAB); - if (!td_ta->sticky) - layer_off (ARRW); - - td_ta->finished_once = false; -} - -const qk_tap_dance_action_t tap_dance_actions[] = { - [CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_cln_finished, ang_tap_dance_cln_reset) - ,[CT_MNS] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_mns_finished, ang_tap_dance_mns_reset) - ,[CT_TA] = { - .fn = { NULL, ang_tap_dance_ta_finished, ang_tap_dance_ta_reset }, - .user_data = (void *)&((td_ta_state_t) { false, false, false }) - } -}; - -// Runs constantly in the background, in a loop. -void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); - - if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM) - unregister_code (KC_LGUI); - - if (layer != OHLFT) - oh_left_blink = 0; - if (layer != OHRGT) - oh_right_blink = 0; - - if (layer == HUN) { - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - } else if (layer == NMDIA) { - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - } else if (layer == PLVR) { - ergodox_right_led_1_on (); - ergodox_right_led_2_on (); - ergodox_right_led_3_on (); - } else if (layer == ADORE) { - ergodox_right_led_1_on (); - ergodox_right_led_2_on (); - ergodox_right_led_3_on (); - - ergodox_right_led_2_set (LED_BRIGHTNESS_HI); - } - - if (layer == OHLFT || layer == OHRGT) { - ergodox_right_led_2_on(); - - if (oh_left_blink) { - if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL) { - if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) == 0) - ergodox_right_led_1_off (); - } - if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL * 2) { - ergodox_right_led_1_on (); - oh_left_blink_timer = timer_read (); - } - } - - if (oh_right_blink) { - if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL) { - if ((keyboard_report->mods & MOD_BIT(KC_LCTRL)) == 0) - ergodox_right_led_3_off (); - } - if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL * 2) { - ergodox_right_led_3_on (); - oh_right_blink_timer = timer_read (); - } - } - } - - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || - ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { - ergodox_right_led_1_set (LED_BRIGHTNESS_HI); - ergodox_right_led_1_on (); - } else { - ergodox_right_led_1_set (LED_BRIGHTNESS_LO); - if (layer != OHLFT && layer != NMDIA && layer != PLVR && layer != ADORE) - ergodox_right_led_1_off (); - } - - if (keyboard_report->mods & MOD_BIT(KC_LALT) || - ((get_oneshot_mods() & MOD_BIT(KC_LALT)) && !has_oneshot_mods_timed_out())) { - ergodox_right_led_2_set (LED_BRIGHTNESS_HI); - ergodox_right_led_2_on (); - } else { - ergodox_right_led_2_set (LED_BRIGHTNESS_LO); - if (layer != OHRGT && layer != HUN && layer != OHLFT && layer != NMDIA && layer != PLVR && layer != ADORE) - ergodox_right_led_2_off (); - } - - if (keyboard_report->mods & MOD_BIT(KC_LCTRL) || - ((get_oneshot_mods() & MOD_BIT(KC_LCTRL)) && !has_oneshot_mods_timed_out())) { - ergodox_right_led_3_set (LED_BRIGHTNESS_HI); - ergodox_right_led_3_on (); - } else { - ergodox_right_led_3_set (LED_BRIGHTNESS_LO); - if (layer != OHRGT && layer != HUN && layer != PLVR && layer != ADORE) - ergodox_right_led_3_off (); - } - - LEADER_DICTIONARY() { - leading = false; - leader_end (); - -#if KEYLOGGER_ENABLE - SEQ_ONE_KEY (KC_D) { - ergodox_led_all_on(); - wait_ms(100); - ergodox_led_all_off(); - log_enable = !log_enable; - } -#endif - - SEQ_ONE_KEY (KC_T) { - time_travel = !time_travel; - } - - SEQ_ONE_KEY (KC_U) { - ang_do_unicode (); - } - - SEQ_ONE_KEY (KC_V) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ (" QMK_VERSION "/" KEYMAP_VERSION ")"); - } - - SEQ_ONE_KEY (KC_L) { - /* λ */ - ang_do_unicode (); - - uint16_t codes[] = {KC_0, KC_3, KC_B, KC_B, KC_ENT, 0}; - ang_tap (codes); - } - - SEQ_ONE_KEY (KC_Y) { - uint16_t codes[] = {KC_BSLS, KC_O, KC_SLSH, 0}; - ang_tap (codes); - } - - SEQ_ONE_KEY (KC_S) { - ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); - TAP_ONCE (KC_BSLS); - register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT); - ang_do_unicode (); TAP_ONCE (KC_3); TAP_ONCE (KC_0); TAP_ONCE (KC_C); TAP_ONCE (KC_4); TAP_ONCE (KC_SPC); - register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT); - TAP_ONCE (KC_SLSH); - ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); - } - - SEQ_TWO_KEYS (KC_W, KC_M) { - register_code (KC_LALT); - register_code (KC_F2); - unregister_code (KC_F2); - unregister_code (KC_LALT); - - wait_ms (1000); - - uint16_t codes[] = {KC_M, KC_A, KC_X, KC_MINS, KC_F, KC_O, KC_C, KC_U, KC_S, KC_E, KC_D, KC_ENT, 0}; - ang_tap (codes); - register_code (KC_LGUI); - register_code (KC_UP); - unregister_code (KC_UP); - unregister_code (KC_LGUI); - } - - SEQ_ONE_KEY (KC_A) { - if (is_adore == 0) { - default_layer_and (0); - default_layer_or ((1UL << ADORE)); - eeconfig_update_default_layer ((1UL << ADORE)); - is_adore = 1; - - ergodox_led_all_off (); - ergodox_right_led_3_on (); - wait_ms (100); - ergodox_right_led_2_on (); - wait_ms (100); - ergodox_right_led_3_off (); - ergodox_right_led_1_on (); - wait_ms (100); - ergodox_right_led_2_off (); - wait_ms (100); - ergodox_right_led_1_off (); - } else { - is_adore = 0; - default_layer_and (0); - default_layer_or (1UL << BASE); - eeconfig_update_default_layer ((1UL << BASE)); - - ergodox_led_all_off (); - ergodox_right_led_1_on (); - wait_ms (100); - ergodox_right_led_2_on (); - wait_ms (100); - ergodox_right_led_1_off (); - ergodox_right_led_3_on (); - wait_ms (100); - ergodox_right_led_2_off (); - wait_ms (100); - ergodox_right_led_3_off (); - } - } - } -} - -static uint16_t last4[4]; - -bool process_record_user (uint16_t keycode, keyrecord_t *record) { -#if KEYLOGGER_ENABLE - uint8_t layer = biton32(layer_state); - - if (log_enable && layer == BASE) { - xprintf ("KL: col=%d, row=%d\n", record->event.key.col, - record->event.key.row); - } -#endif - - if (time_travel && !record->event.pressed) { - uint8_t p; - - // shift cache one to the left - for (p = 0; p < 3; p++) { - last4[p] = last4[p + 1]; - } - last4[3] = keycode; - - if (last4[0] == KC_D && last4[1] == KC_A && last4[2] == KC_T && last4[3] == KC_E) { - uint16_t codes[] = {KC_E, KC_SPC, KC_MINS, KC_D, KC_SPC, KC_QUOT, 0}; - ang_tap (codes); - register_code (KC_RSFT); - register_code (KC_EQL); - unregister_code (KC_EQL); - unregister_code (KC_RSFT); - - uint16_t codes2[] = {KC_4, KC_SPC, KC_D, KC_A, KC_Y, KC_S, KC_QUOT, 0}; - ang_tap (codes2); - - return false; - } - } - - return true; -} + +/* Layers */ + +enum { + BASE = 0, + ADORE, + ARRW, + APPSEL, + HUN, + NMDIA, + PLVR, +}; + +/* Macros */ + +enum { + NONE = 0, + // Buttons that do extra stuff + A_GUI, + A_PLVR, + A_ESC, + A_MPN, + + // Function / number keys + KF_1, // 1, F1 + KF_2, // 2, F2 + KF_3, // ... + KF_4, + KF_5, + KF_6, + KF_7, + KF_8, + KF_9, + KF_10, + KF_11, // =, F11 + + // Application select keys + APP_SLK, // Slack + APP_EMCS, // Emacs + APP_TERM, // Terminal + APP_CHRM, // Chrome + APP_MSIC, // Music + + // Diagonal mouse movement + A_MUL, + A_MUR, + A_MDL, + A_MDR, + + // Hungarian layer keys + HU_AA, // Á + HU_OO, // Ó + HU_EE, // É + HU_UU, // Ú + HU_II, // Í + HU_OE, // Ö + HU_UE, // Ü + HU_OEE, // Ő + HU_UEE, // Ű +}; + +/* Fn keys */ + +enum { + F_BSE = 0, + F_HUN, + F_GUI, + F_SFT, + F_ALT, + F_CTRL +}; + +/* Custom keycodes */ + +enum { + CT_CLN = 0, + CT_MNS, + CT_TA, + CT_LBP, + CT_RBP +}; + +/* States & timers */ + +uint16_t gui_timer = 0; + +uint16_t kf_timers[12]; + +#if KEYLOGGER_ENABLE +bool log_enable = false; +#endif + +bool time_travel = false; + +/* The Keymap */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Keymap 0: Base Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | Next/Prev | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | ~ | ' | , | . | P | Y | [ | | ] | F | G | C | R | L | \ | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Tab/ARROW | A | O | E | U | I |------| |------| D | H | T | N | S | = / Arrow | + * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| + * | Play/Pause| / | Q | J | K | X | | | | B | M | W | V | Z | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | : | | - | | | | | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | LAlt | GUI | | MDIA | Del | + * ,------|------|------| |------+------+------. + * | | | Ctrl | | LEAD | | | + * |Backsp|LShift|------| |------| Enter| Space| + * | | | ESC | | HUN | | | + * `--------------------' `--------------------' + */ +[BASE] = KEYMAP( +// left hand + M(A_MPN) ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) +,KC_GRV ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC +,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I +,KC_MPLY ,KC_SLSH ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) + + ,F(F_ALT),F(F_GUI) + ,F(F_CTRL) + ,KC_BSPC,F(F_SFT),M(A_ESC) + + // right hand + ,KC_APP ,M(KF_6),M(KF_7) ,M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS + ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL + ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP + ,TD(CT_MNS),KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,OSL(NMDIA),KC_DEL + ,KC_LEAD + ,F(F_HUN) ,KC_ENT ,KC_SPC + ), + +/* Keymap 1: Adore layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | Play/Pause| 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | `~ | X | W | K | L | M | ( | | ) | F | H | C | P | Y | \ | + * |-----------+------+------+------+------+------| [ | | ] |------+------+------+------+------+-----------| + * | Tab/Arrow | A | O | E | I | U |------| |------| D | R | T | N | S | = | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | Z | Q | ' | , | . | : | | - | B | G | V | J | / | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | LAlt | GUI | | MDIA | Del | + * ,------|------|------| |------+------+------. + * | | | Ctrl | | HUN | | | + * |Backsp|LShift|------| |------| Enter| Space| + * | | | ESC | | LEAD | | | + * `--------------------' `--------------------' + */ +[ADORE] = KEYMAP( +// left hand + KC_MPLY ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) +,KC_GRV ,KC_X ,KC_W ,KC_K ,KC_L ,KC_M ,TD(CT_LBP) +,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_I ,KC_U +,KC_NO ,KC_Z ,KC_Q ,KC_QUOT,KC_COMM,KC_DOT ,TD(CT_CLN) +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,F(F_ALT),F(F_GUI) + ,F(F_CTRL) + ,KC_BSPC,F(F_SFT),M(A_ESC) + + // right hand + ,KC_APP ,M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,TD(CT_RBP),KC_F ,KC_H ,KC_C ,KC_P ,KC_Y ,KC_BSLS + ,KC_D ,KC_R ,KC_T ,KC_N ,KC_S ,KC_EQL + ,TD(CT_MNS),KC_B ,KC_G ,KC_V ,KC_J ,KC_SLSH ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,OSL(NMDIA),KC_DEL + ,F(F_HUN) + ,KC_LEAD ,KC_ENT ,KC_SPC + ), + +/* Keymap 2: Arrow layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | Home | Up | End | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | Left | Down | Rght | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | Enter| |------| |------| PgUp | PgDn | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[ARRW] = KEYMAP( +// left 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_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_ENT ,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_HOME ,KC_UP ,KC_END ,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_PGUP ,KC_PGDN + ), + +/* Keymap 3: Application select layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | |Music |Slack |Emacs |Term |Chrome| | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[APPSEL] = KEYMAP( +// left hand + KC_TRNS ,M(APP_MSIC),M(APP_SLK),M(APP_EMCS),M(APP_TERM),M(APP_CHRM),KC_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_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_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 + ), + + +/* Keymap 4: Hungarian Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | Ő | | Ű | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | Á | Ó | É | Ú | Í |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | Ö | | Ü | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | BASE | | | + * `--------------------' `--------------------' + */ + +[HUN] = KEYMAP( +// left hand + KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,M(HU_OEE),KC_NO ,M(HU_UEE),KC_NO ,KC_NO +,KC_NO ,M(HU_AA),M(HU_OO) ,M(HU_EE),M(HU_UU) ,M(HU_II) +,KC_NO ,KC_NO ,M(HU_OE) ,KC_NO ,M(HU_UE) ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_TRNS ,KC_TRNS + + // right hand + ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,F(F_BSE),KC_TRNS ,KC_TRNS + ), + +/* Keymap 5: Navigation & Media layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | MS Slow | | | | | |ScrLCK| |ScrLCK| | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | MS Normal | | Home | Up | PgUp | | | |Scroll| |MsUpL | MsUp |MsUpR | |PrintScreen| + * |-----------+------+------+------+------+------| | | Up |------+------+------+------+------+-----------| + * | MS Fast | | Left | Down | Right| |------| |------| |MsLeft| MsDn |MsRght| | | + * |-----------+------+------+------+------+------| | |Scroll|------+------+------+------+------+-----------| + * | Play/Pause| | End | Down | PgDn | | | | Down | |MsDnL | MsDn |MsDnR | | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Mute | VlUp | | BASE | MClk | + * ,------|------|------| |------+------+------. + * | | | VlDn | | Prev |Left |Right | + * | SPC | Enter|------| |------| Click| Click| + * | | | ESC | | Next | | | + * `--------------------' `--------------------' + */ +[NMDIA] = KEYMAP( +// left hand + KC_ACL0 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,LGUI(KC_L) +,KC_ACL1 ,KC_NO ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,KC_NO +,KC_ACL2 ,KC_NO ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_NO +,KC_MPLY ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_MUTE ,KC_VOLU + ,KC_VOLD + ,KC_SPC,KC_ENTER,M(A_ESC) + + // right hand + ,LGUI(KC_L),KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_WH_U ,KC_NO ,M(A_MUL),KC_MS_U ,M(A_MUR),KC_NO ,KC_PSCR + ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO + ,KC_WH_D ,KC_NO ,M(A_MDL),KC_MS_D ,M(A_MDR),KC_NO ,KC_MSTP + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_TRNS ,KC_MS_BTN3 + ,KC_MPRV + ,KC_MNXT ,KC_BTN1 ,KC_BTN2 + ), + +/* Keymap 6: Steno for Plover + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | BASE | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | # | # | # | # | # | # | | # | # | # | # | # | # | # | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | T | P | H | |------| |------| | F | P | L | T | D | + * |--------+ S +------+------+------+ * | * | | * | * +------+------+------+------+--------| + * | | | K | W | R | | | | | | R | B | G | S | Z | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | A | O |------| |------| E | U | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[PLVR] = KEYMAP( +// left hand +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(A_PLVR), +KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, +KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, +KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + PV_A, PV_O, KC_NO, + + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, + PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, + PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO,PV_E, PV_U + ), + +}; + +const uint16_t PROGMEM fn_actions[] = { + [F_BSE] = ACTION_LAYER_CLEAR(ON_PRESS) + ,[F_HUN] = ACTION_LAYER_INVERT(HUN, ON_PRESS) + ,[F_GUI] = ACTION_MACRO_TAP(A_GUI) + ,[F_SFT] = ACTION_MODS_ONESHOT (MOD_LSFT) + ,[F_ALT] = ACTION_MODS_ONESHOT (MOD_LALT) + ,[F_CTRL] = ACTION_MODS_ONESHOT (MOD_LCTL) +}; + +void toggle_steno(int pressed) +{ + uint8_t layer = biton32(layer_state); + + if (pressed) { + if (layer != PLVR) layer_on(PLVR); else layer_off(PLVR); + + register_code(PV_LP); + register_code(PV_LH); + register_code(PV_LR); + register_code(PV_O); + register_code(PV_RL); + register_code(PV_RG); + } else { + unregister_code(PV_LP); + unregister_code(PV_LH); + unregister_code(PV_LR); + unregister_code(PV_O); + unregister_code(PV_RL); + unregister_code(PV_RG); + } +} + +macro_t *ang_do_hun (keyrecord_t *record, uint16_t accent, uint16_t hun_char) +{ + uint8_t need_shift = 0; + uint8_t hold_shift = 0; + + if (!record->event.pressed) + return MACRO_NONE; + + layer_off (HUN); + + if (keyboard_report->mods & MOD_BIT (KC_LSFT)) { + hold_shift = 1; + need_shift = 1; + unregister_code (KC_LSFT); + } + if ((get_oneshot_mods () & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out ()) { + need_shift = 1; + hold_shift = 0; + unregister_code (KC_LSFT); + } + + clear_oneshot_mods (); + + register_code (KC_RALT); + unregister_code (KC_RALT); + if (accent == (KC_DQT)) { + register_code (KC_RSFT); + } + register_code (accent); + unregister_code (accent); + if (need_shift && accent != (KC_DQT)) { + register_code (KC_RSFT); + } else if (accent == (KC_DQT) && !need_shift) { + unregister_code (KC_RSFT); + } + register_code (hun_char); + unregister_code (hun_char); + if (need_shift || accent == (KC_DQT)) + unregister_code (KC_RSFT); + if (hold_shift) + register_code (KC_LSFT); + + return MACRO_NONE; +} + +void ang_handle_kf (keyrecord_t *record, uint8_t id) +{ + uint8_t code = id - KF_1; + + if (record->event.pressed) { + kf_timers[code] = timer_read (); + } else { + uint8_t kc; + + if (timer_elapsed (kf_timers[code]) > TAPPING_TERM) { + // Long press + kc = KC_F1 + code; + } else { + if (id == KF_11) + kc = KC_EQL; + else + kc = KC_1 + code; + } + + register_code (kc); + unregister_code (kc); + } +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case A_ESC: + if (record->event.pressed) { + if ((get_oneshot_mods ()) && !has_oneshot_mods_timed_out ()) { + clear_oneshot_mods (); + } else { + register_code (KC_ESC); + } + layer_off (HUN); + } else { + unregister_code (KC_ESC); + } + break; + + case A_MPN: + if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || + ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { + int oneshot = ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out()); + + if (oneshot) + clear_oneshot_mods (); + unregister_code (KC_LSFT); + + register_code (KC_MPRV); + unregister_code (KC_MPRV); + + if (!oneshot) + register_code (KC_LSFT); + } else { + return MACRO (T(MNXT), END); + } + } + break; + + /* Hungarian layer */ + case HU_AA: + return ang_do_hun (record, KC_QUOT, KC_A); + case HU_OO: + return ang_do_hun (record, KC_QUOT, KC_O); + case HU_EE: + return ang_do_hun (record, KC_QUOT, KC_E); + case HU_UU: + return ang_do_hun (record, KC_QUOT, KC_U); + case HU_II: + return ang_do_hun (record, KC_QUOT, KC_I); + case HU_OE: + return ang_do_hun (record, KC_DQT, KC_O); + case HU_UE: + return ang_do_hun (record, KC_DQT, KC_U); + case HU_OEE: + return ang_do_hun (record, KC_EQL, KC_O); + case HU_UEE: + return ang_do_hun (record, KC_EQL, KC_U); + + /* Mouse movement */ + case A_MUL: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); + } + mousekey_send(); + break; + + case A_MUR: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); + } + mousekey_send(); + break; + + case A_MDL: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); + } + mousekey_send(); + break; + + case A_MDR: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); + } + mousekey_send(); + break; + + /* Plover base */ + case A_PLVR: + toggle_steno(record->event.pressed); + break; + + /* GUI & AppSel */ + case A_GUI: + if (record->event.pressed) { + register_code (KC_LGUI); + if (record->tap.count && !record->tap.interrupted) { + if (record->tap.count >= 2) { + register_code (KC_W); + layer_on (APPSEL); + set_oneshot_layer (APPSEL, ONESHOT_START); + } + } else { + record->tap.count = 0; + } + gui_timer = 0; + } else { + if (record->tap.count >= 2) + { + unregister_code (KC_W); + clear_oneshot_layer_state (ONESHOT_PRESSED); + } + gui_timer = timer_read (); + } + break; + + case APP_SLK: + return MACRODOWN(T(S), T(L), T(A), T(C), T(K), T(ENT), END); + + case APP_EMCS: + return MACRODOWN(T(G), T(N), T(U), T(SPC), T(E), T(M), T(A), T(C), T(S), T(SPC), T(2), T(4), T(ENT), END); + + case APP_TERM: + return MACRODOWN(T(T), T(E), T(R), T(M), T(ENT), END); + + case APP_CHRM: + return MACRODOWN(T(C), T(H), T(R), T(O), T(M), T(ENT), END); + + case APP_MSIC: + return MACRODOWN(T(R), T(H), T(Y), T(T), T(H), T(M), T(B), T(O), T(X), T(ENT), END); + + /* Function keys */ + case KF_1 ... KF_11: + ang_handle_kf (record, id); + break; + } + + return MACRO_NONE; +}; + +uint8_t is_adore = 0; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + uint8_t dl; + + ergodox_led_all_on(); + for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { + ergodox_led_all_set (i); + wait_ms (5); + } + wait_ms(1000); + for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { + ergodox_led_all_set (i); + wait_ms (10); + } + ergodox_led_all_off(); + + if (!eeconfig_is_enabled()) + eeconfig_init(); + dl = eeconfig_read_default_layer (); + if (dl == (1UL << ADORE)) { + is_adore = 1; +#if ADORE_AUTOLOG + log_enable = true; +#endif + } +}; + +LEADER_EXTERNS(); + +void ang_do_unicode (void) { + register_code (KC_RCTL); + register_code (KC_RSFT); + register_code (KC_U); + unregister_code (KC_U); + unregister_code (KC_RSFT); + unregister_code (KC_RCTL); + wait_ms (100); +} + +void ang_tap (uint16_t codes[]) { + for (int i = 0; codes[i] != 0; i++) { + register_code (codes[i]); + unregister_code (codes[i]); + wait_ms (50); + } +} + +#define TAP_ONCE(code) \ + register_code (code); \ + unregister_code (code) + +void ang_tap_dance_bp_finished (qk_tap_dance_state_t *state, void *user_data) { + bool left, parens; + + if (state->count > 2) { + state->count = 0; + return; + } + + if (state->keycode == TD(CT_LBP)) + left = true; + else + left = false; + + if (state->count == 1) + parens = false; + else + parens = true; + + if (parens) { + register_code (KC_RSFT); + if (left) { + TAP_ONCE(KC_9); + } else { + TAP_ONCE(KC_0); + } + unregister_code (KC_RSFT); + } else { + if (left) { + TAP_ONCE (KC_LBRC); + } else { + TAP_ONCE (KC_RBRC); + } + } +} + +void ang_tap_dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_RSFT); + register_code (KC_SCLN); + } else if (state->count == 2) { + register_code (KC_SCLN); + } +} + +void ang_tap_dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_SCLN); + unregister_code (KC_RSFT); + } else if (state->count == 2) { + unregister_code (KC_SCLN); + } +} + +void ang_tap_dance_mns_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_MINS); + } else if (state->count == 2) { + register_code (KC_RSFT); + register_code (KC_MINS); + } +} + +void ang_tap_dance_mns_reset (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_MINS); + } else if (state->count == 2) { + unregister_code (KC_RSFT); + unregister_code (KC_MINS); + } +} + +typedef struct { + bool layer_toggle; + bool sticky; + bool finished_once; +} td_ta_state_t; + +void ang_tap_dance_ta_finished (qk_tap_dance_state_t *state, void *user_data) { + td_ta_state_t *td_ta = (td_ta_state_t *) user_data; + + if (td_ta->finished_once) { + return; + } + + if (td_ta->sticky) { + td_ta->sticky = false; + td_ta->layer_toggle = false; + layer_off (ARRW); + return; + } + + td_ta->finished_once = true; + if (state->count == 1 && !state->pressed) { + register_code (KC_TAB); + td_ta->sticky = false; + td_ta->layer_toggle = false; + } else { + td_ta->layer_toggle = true; + layer_on (ARRW); + td_ta->sticky = (state->count == 2); + } +} + +void ang_tap_dance_ta_reset (qk_tap_dance_state_t *state, void *user_data) { + td_ta_state_t *td_ta = (td_ta_state_t *) user_data; + + if (!td_ta->layer_toggle) + unregister_code (KC_TAB); + if (!td_ta->sticky) + layer_off (ARRW); + + td_ta->finished_once = false; +} + +const qk_tap_dance_action_t tap_dance_actions[] = { + [CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_cln_finished, ang_tap_dance_cln_reset) + ,[CT_MNS] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_mns_finished, ang_tap_dance_mns_reset) + ,[CT_TA] = { + .fn = { NULL, ang_tap_dance_ta_finished, ang_tap_dance_ta_reset }, + .user_data = (void *)&((td_ta_state_t) { false, false, false }) + } + ,[CT_LBP] = ACTION_TAP_DANCE_FN (ang_tap_dance_bp_finished) + ,[CT_RBP] = ACTION_TAP_DANCE_FN (ang_tap_dance_bp_finished) +}; + +static uint16_t uni[32]; +static uint8_t unicnt; +static bool unimagic = false; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM) + unregister_code (KC_LGUI); + + if (layer == HUN) { + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + } else if (layer == NMDIA) { + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + } else if (layer == PLVR) { + ergodox_right_led_1_on (); + ergodox_right_led_2_on (); + ergodox_right_led_3_on (); + } else if (layer == ADORE) { + ergodox_right_led_1_on (); + ergodox_right_led_2_on (); + ergodox_right_led_3_on (); + + ergodox_right_led_2_set (LED_BRIGHTNESS_HI); + } + + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || + ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_1_set (LED_BRIGHTNESS_HI); + ergodox_right_led_1_on (); + } else { + ergodox_right_led_1_set (LED_BRIGHTNESS_LO); + if (layer != NMDIA && layer != PLVR && layer != ADORE) + ergodox_right_led_1_off (); + } + + if (keyboard_report->mods & MOD_BIT(KC_LALT) || + ((get_oneshot_mods() & MOD_BIT(KC_LALT)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_2_set (LED_BRIGHTNESS_HI); + ergodox_right_led_2_on (); + } else { + ergodox_right_led_2_set (LED_BRIGHTNESS_LO); + if (layer != HUN && layer != NMDIA && layer != PLVR && layer != ADORE) + ergodox_right_led_2_off (); + } + + if (keyboard_report->mods & MOD_BIT(KC_LCTRL) || + ((get_oneshot_mods() & MOD_BIT(KC_LCTRL)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_3_set (LED_BRIGHTNESS_HI); + ergodox_right_led_3_on (); + } else { + ergodox_right_led_3_set (LED_BRIGHTNESS_LO); + if (layer != HUN && layer != PLVR && layer != ADORE) + ergodox_right_led_3_off (); + } + + LEADER_DICTIONARY() { + leading = false; + leader_end (); + +#if KEYLOGGER_ENABLE + SEQ_ONE_KEY (KC_D) { + ergodox_led_all_on(); + wait_ms(100); + ergodox_led_all_off(); + log_enable = !log_enable; + } +#endif + + SEQ_ONE_KEY (KC_T) { + time_travel = !time_travel; + } + + SEQ_ONE_KEY (KC_U) { + ang_do_unicode (); + } + + SEQ_TWO_KEYS (KC_LEAD, KC_U) { + unicnt = 0; + unimagic = true; + register_code(KC_RSFT); + TAP_ONCE(KC_U); + unregister_code(KC_RSFT); + } + + SEQ_ONE_KEY (KC_V) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ (" QMK_VERSION "/" KEYMAP_VERSION ")"); + } + + SEQ_ONE_KEY (KC_L) { + /* λ */ + ang_do_unicode (); + + uint16_t codes[] = {KC_0, KC_3, KC_B, KC_B, KC_ENT, 0}; + ang_tap (codes); + } + + SEQ_ONE_KEY (KC_Y) { + uint16_t codes[] = {KC_BSLS, KC_O, KC_SLSH, 0}; + ang_tap (codes); + } + + SEQ_ONE_KEY (KC_S) { + ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); + TAP_ONCE (KC_BSLS); + register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT); + ang_do_unicode (); TAP_ONCE (KC_3); TAP_ONCE (KC_0); TAP_ONCE (KC_C); TAP_ONCE (KC_4); TAP_ONCE (KC_SPC); + register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT); + TAP_ONCE (KC_SLSH); + ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); + } + + SEQ_TWO_KEYS (KC_W, KC_M) { + register_code (KC_LALT); + register_code (KC_F2); + unregister_code (KC_F2); + unregister_code (KC_LALT); + + wait_ms (1000); + + uint16_t codes[] = {KC_M, KC_A, KC_X, KC_MINS, KC_F, KC_O, KC_C, KC_U, KC_S, KC_E, KC_D, KC_ENT, 0}; + ang_tap (codes); + register_code (KC_LGUI); + register_code (KC_UP); + unregister_code (KC_UP); + unregister_code (KC_LGUI); + } + + SEQ_ONE_KEY (KC_A) { + if (is_adore == 0) { + default_layer_and (0); + default_layer_or ((1UL << ADORE)); + eeconfig_update_default_layer ((1UL << ADORE)); + is_adore = 1; + + ergodox_led_all_off (); + ergodox_right_led_3_on (); + wait_ms (100); + ergodox_right_led_2_on (); + wait_ms (100); + ergodox_right_led_3_off (); + ergodox_right_led_1_on (); + wait_ms (100); + ergodox_right_led_2_off (); + wait_ms (100); + ergodox_right_led_1_off (); +#if ADORE_AUTOLOG + log_enable = true; +#endif + } else { +#if ADORE_AUTOLOG + log_enable = false; +#endif + is_adore = 0; + default_layer_and (0); + default_layer_or (1UL << BASE); + eeconfig_update_default_layer ((1UL << BASE)); + + ergodox_led_all_off (); + ergodox_right_led_1_on (); + wait_ms (100); + ergodox_right_led_2_on (); + wait_ms (100); + ergodox_right_led_1_off (); + ergodox_right_led_3_on (); + wait_ms (100); + ergodox_right_led_2_off (); + wait_ms (100); + ergodox_right_led_3_off (); + } + } + } +} + +static uint16_t last4[4]; + +bool is_uni_seq(char *seq) { + uint8_t i; + + for (i = 0; seq[i]; i++) { + uint16_t code; + if (('1' <= seq[i]) && (seq[i] <= '9')) + code = seq[i] - '1' + KC_1; + else if (seq[i] == '0') + code = KC_0; + else + code = seq[i] - 'a' + KC_A; + + if (i > unicnt) + return false; + if (uni[i] != code) + return false; + } + + if (uni[i] == KC_ENT || uni[i] == KC_SPC) + return true; + + return false; +} + +uint16_t hex_to_keycode(uint8_t hex) +{ + if (hex == 0x0) { + return KC_0; + } else if (hex < 0xA) { + return KC_1 + (hex - 0x1); + } else { + return KC_A + (hex - 0xA); + } +} + +void register_hex(uint16_t hex) { + bool leading_zeros = true; + + for(int i = 3; i >= 0; i--) { + uint8_t digit = ((hex >> (i*4)) & 0xF); + if (digit != 0) + leading_zeros = false; + else if (leading_zeros) + continue; + register_code(hex_to_keycode(digit)); + unregister_code(hex_to_keycode(digit)); + wait_ms(10); + } +} + +typedef struct { + char *symbol; + uint16_t codes[4]; +} qk_ucis_symbol_t; + +static qk_ucis_symbol_t ucis_symbol_table[] = { + {"poop", {0x1, 0xf4a9, 0}}, + {"rofl", {0x1, 0xf923, 0}}, + {"kiss", {0x1, 0xf619, 0}}, + {"snowman", {0x2603, 0}}, + {NULL, {}} +}; + +bool process_record_ucis (uint16_t keycode, keyrecord_t *record) { + uint8_t i; + + if (!unimagic) + return true; + + if (!record->event.pressed) + return true; + + uni[unicnt] = keycode; + unicnt++; + + if (keycode == KC_BSPC) { + if (unicnt >= 2) { + unicnt-= 2; + return true; + } else { + unicnt--; + return false; + } + } + + if (keycode == KC_ENT || keycode == KC_SPC) { + bool symbol_found = false; + + for (i = unicnt; i > 0; i--) { + register_code (KC_BSPC); + unregister_code (KC_BSPC); + wait_ms(10); + } + + ang_do_unicode(); + wait_ms(10); + for (i = 0; ucis_symbol_table[i].symbol; i++) { + if (is_uni_seq (ucis_symbol_table[i].symbol)) { + symbol_found = true; + for (uint8_t j = 0; ucis_symbol_table[i].codes[j]; j++) { + register_hex(ucis_symbol_table[i].codes[j]); + } + break; + } + } + if (!symbol_found) { + for (i = 0; i < unicnt - 1; i++) { + uint8_t code; + + if (uni[i] > KF_1) + code = uni[i] - KF_1 + KC_1; + else + code = uni[i]; + TAP_ONCE(code); + wait_ms (10); + } + } + + unimagic = false; + return true; + } + return true; +} + +bool process_record_user (uint16_t keycode, keyrecord_t *record) { +#if KEYLOGGER_ENABLE + if (log_enable) { + xprintf ("KL: col=%d, row=%d\n", record->event.key.col, + record->event.key.row); + } +#endif + + if (!process_record_ucis (keycode, record)) + return false; + + if (time_travel && !record->event.pressed) { + uint8_t p; + + // shift cache one to the left + for (p = 0; p < 3; p++) { + last4[p] = last4[p + 1]; + } + last4[3] = keycode; + + if (last4[0] == KC_D && last4[1] == KC_A && last4[2] == KC_T && last4[3] == KC_E) { + uint16_t codes[] = {KC_E, KC_SPC, KC_MINS, KC_D, KC_SPC, KC_QUOT, 0}; + ang_tap (codes); + register_code (KC_RSFT); + register_code (KC_EQL); + unregister_code (KC_EQL); + unregister_code (KC_RSFT); + + uint16_t codes2[] = {KC_4, KC_SPC, KC_D, KC_A, KC_Y, KC_S, KC_QUOT, 0}; + ang_tap (codes2); + + return false; + } + } + + return true; +} diff --git a/keyboards/ergodox/keymaps/algernon/readme.md b/keyboards/ergodox/keymaps/algernon/readme.md index 6fe1775111..26dfddbe6a 100644 --- a/keyboards/ergodox/keymaps/algernon/readme.md +++ b/keyboards/ergodox/keymaps/algernon/readme.md @@ -16,11 +16,12 @@ Some of the things in the layout only work when one uses Spacemacs and GNOME und - [ADORE layer](#adore-layer) - [Hungarian layer](#hungarian-layer) - [Navigation and media layer](#navigation-and-media-layer) - - [One-handed layer](#one-handed-layer) - [Steno layer](#steno-layer) - [LED states](#led-states) * [Tools](#tools) - [Heatmap](#heatmap) +* [Special features](#special-features) + - [Unicode Symbol Input](#unicode-symbol-input) * [Building](#building) - [Using on Windows](#using-on-windows) * [Changelog](#changelog) @@ -38,7 +39,7 @@ At its core, this is a Dvorak layout, with some minor changes. The more interest * The `Shift`, `Alt`, and `Control` modifiers are one-shot. When tapped, they are considered active for the next key press only. When double tapped, they toggle on, until a third, single tap sometime later. When held, they act as expected. My usual pattern is that I use these for the next keypress only, so this behaviour is perfect. If I need them held, I'll just double-tap. * The `GUI` key is special, because when I double-tap it, it sends `GUI + w`, which pops up an application selector. It also switches to a one-shot layer, where the number row on the left half turns into app selector macros, for the most common things I usually want to switch to. Otherwise it behaves as on a normal layout. * The `ESC` key also doubles as a one-shot cancel key: if tapped while any of the one-shot modifiers are in-flight (as in, single-tapped, and not expired yet), it cancels all one-shot modifiers. It also cancels the **Hun** layer, if active. Otherwise it sends the usual keycode. -* The **Media** and **Hun** layer keys are one-shot, the **1Hand** and **STENO** keys are toggles. +* The **Media** and **Hun** layer keys are one-shot, the **STENO** key is a toggle. * When holding any of the **Arrow** layer keys, the arrow layer activates while the layer key is held. Tapping the key produces the normal key. * Tapping the `:` key once yields `:`, tapping it twice yields `;`. * The **Lead** key allows me to type in a sequence of keys, and trigger some actions: @@ -51,6 +52,7 @@ At its core, this is a Dvorak layout, with some minor changes. The more interest - `LEAD v` prints the firmware version, the keyboard and the keymap. - `LEAD d` toggles logging keypress positions to the HID console. - `LEAD t` toggles time travel. Figuring out the current `date` is left as an exercise to the reader. + - `LEAD LEAD u` enters the [Unicode symbol input][#unicode-symbol-input] mode. ## ADORE layer @@ -74,20 +76,6 @@ On this layer, the accented characters are at the same position as their base va This layer is primarily for navigating with the cursor or the mouse, and some media things. -## One-handed layer - -[![One-handed layer](images/one-handed-layer.png)](http://www.keyboard-layout-editor.com/#/gists/edff2495135955b8963198dace7f7ece) - -The one-handed layer is used in situations where the right hand is occupied, by mousing around, for example. Tapping the `OTHER` key switches which side is active. For the most part, keys remain in their usual position. When the right half is active, keys are mirrored to the left half. - -The differences are as follows: - -* The `ESC` key has been moved to the bottom row, so the `OTHER` key is easier to tap. -* Most keys on the thumb cluster now have dual uses, and these do not change when switching sides: - - The `Space`/`Backspace` key sends `Space` on tap, `Backspace` when held for longer than a normal tap. - - The `Enter`/`Shift` key sends `Enter` on short-tap, `Shift` on long-tap. -* The `Apps`/`BASE` key can be used to go back to the base layer, by long-tapping it. A short-tap will send the `App` key, as usual. - ## Steno layer [![Steno layer for Plover](images/steno-layer.png)](http://www.keyboard-layout-editor.com/#/gists/401ef9a84369e47c57f9aedcf0a0d667) @@ -103,11 +91,25 @@ For the layers, the following rules apply: * When the [ADORE layer](#adore-layer) is toggled on, LEDs will light up from left to right in a sequence, then turn off. When the layer is toggled off, the LEDs light up and turn off in the other direction. No LEDs are on while the layer is active. * When the [Hungarian layer](#hungarian-layer) is active, the *green* and *blue* LEDs are on. * When the [Navigation and media layer](#navigation-and-media-layer) is active, the *red* and *green* ones are on. -* When the [One-handed layer](#one-handed-layer) is active, the *green* LED is on and bright, and either the *red* or the *blue* one is going to slowly blink, depending on the currently active side. * For the [Steno layer](#steno-layer), all LEDs will be turned on. Unless noted otherwise, the layers use a dim light for the LEDs, while modifiers use a stronger one, and modifiers override any layer preferences. For example, when on the one-handed layer, with the left side active (*red* light blinking), if `Shift` is on, the *red* light will be constantly on. +# Special features + +## Unicode Symbol Input + +Once in the Unicode Symbol Input mode, one is able to type in symbol names, press `Enter` or `Space`, and get the Unicode symbol itself back. When in the mode, a capital `U` is printed first. Once the sequence is finished, all of it is erased by sending enough `Backspace` taps, and the firmware starts the OS-specific unicode input sequence. Then, it looks up the symbol name, and enters the associated code. If it is not found, it will just replay the pressed keycodes. + +The currently supported symbols are: + +- `snowman`: ☃ +- `kiss`: 😙 +- `rofl`: 🤣 +- `poop`: 💩 + +This is an experimental feature, and may or may not work reliably. + # Tools ## Heatmap @@ -133,14 +135,14 @@ To make my workflow easier, this layout is maintained in [its own repository][al $ git clone https://github.com/jackhumbert/qmk_firmware.git $ cd qmk_firmware $ git clone https://github.com/algernon/ergodox-layout.git \ - keyboards/ergodox_ez/keymaps/algernon-master -$ make KEYBOARD=ergodox_ez KEYMAP=algernon-master + keyboards/ergodox/keymaps/algernon-master +$ make keyboard=ergodox keymap=algernon-master ``` From time to time, updates may be submitted back to the QMK repository. If you are reading it there, you can build the firmware like any other firmware included with it (assuming you are in the root directory of the firmware): ``` -$ make KEYBOARD=ergodox_ez KEYMAP=algernon +$ make keyboard=ergodox keymap=algernon ``` ## Using on Windows @@ -149,6 +151,16 @@ The keymap default to forcing NKRO, which seems to upset Windows, and except the # Changelog +## v1.5 - 2016-08-12 + +* The **1HAND** layer has been removed. +* A `Delete` key is now available on the right thumb cluster. +* The [ADORE](#adore-layer) layer received a major update, see the layout image above. +* It is now possible to enable automatic logging for the [ADORE](#adore-layer) layer, by setting the `ADORE_AUTOLOG` makefile variable to `yes` when compiling the keymap. It is off by default. +* The `~` key and the `Media Next/Prev` key have been swapped on the [base layer](#base-layer). +* On the **ARROW** layer, `Backspace` has been replaced by `Enter`. +* There is some experimental support for entering Unicode symbols. + ## v1.4 - 2016-07-29 * When toggling the key logging on or off, the LEDs will do a little dance. From 098951905d527c19043de75ef262ac9679ec452b Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 12 Aug 2016 20:45:43 -0400 Subject: [PATCH 33/34] forces all ergodox keymaps to be ez on qmk.fm (were infinity) --- util/travis_compiled_push.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh index 27ab3cec66..c2a994ef02 100644 --- a/util/travis_compiled_push.sh +++ b/util/travis_compiled_push.sh @@ -7,6 +7,8 @@ rev=$(git rev-parse --short HEAD) git config --global user.name "Travis CI" git config --global user.email "jack.humb+travis.ci@gmail.com" +make all-keymaps keyboard=ergodox/ez AUTOGEN=true + find . -name ".build" | xargs rm -rf cd .. git clone https://$GH_TOKEN@github.com/jackhumbert/qmk.fm.git From 477f1ad0c8e360880d2b2db9abe4b000940a56bf Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Fri, 12 Aug 2016 19:07:44 -0700 Subject: [PATCH 34/34] fix link to ErgoDox EZ This just fixes the readme link to the ErgoDox EZ directory --- readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index 57629f8be2..e2221e7496 100644 --- a/readme.md +++ b/readme.md @@ -13,7 +13,7 @@ For an easy-to-read version of this document and the repository, check out [http * [Planck](/keyboards/planck/) * [Preonic](/keyboards/preonic/) * [Atomic](/keyboards/atomic/) -* [ErgoDox EZ](/keyboards/ergodox_ez/) +* [ErgoDox EZ](/keyboards/ergodox/ez/) * [Clueboard](/keyboards/clueboard/) * [Cluepad](/keyboards/cluepad/) @@ -31,7 +31,7 @@ The OLKB product firmwares are maintained by [Jack Humbert](https://github.com/j This is not a tiny project. While this is the main readme, there are many other files you might want to consult. Here are some points of interest: -* The readme for your own keyboard: This is found under `keyboards//`. So for the ErgoDox EZ, it's [here](keyboards/ergodox_ez/); for the Planck, it's [here](keyboards/planck/) and so on. +* The readme for your own keyboard: This is found under `keyboards//`. So for the ErgoDox EZ, it's [here](keyboards/ergodox/ez/); for the Planck, it's [here](keyboards/planck/) and so on. * The list of possible keycodes you can use in your keymap is actually spread out in a few different places: * [doc/keycode.txt](doc/keycode.txt) - an explanation of those same keycodes. * [quantum/keymap.h](quantum/keymap.h) - this is where the QMK-specific aliases are all set up. Things like the Hyper and Meh key, the Leader key, and all of the other QMK innovations. These are also explained and documented below, but `keymap.h` is where they're actually defined.