summaryrefslogtreecommitdiff
path: root/keyboard/ergodox_ez/keymaps
diff options
context:
space:
mode:
Diffstat (limited to 'keyboard/ergodox_ez/keymaps')
-rw-r--r--keyboard/ergodox_ez/keymaps/default_osx/keymap.c6
-rw-r--r--keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c239
-rw-r--r--keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental.hex1247
-rw-r--r--keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.pngbin289029 -> 303904 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/osx_de_experimental/readme.md22
-rw-r--r--keyboard/ergodox_ez/keymaps/townk_osx/config.h92
-rw-r--r--keyboard/ergodox_ez/keymaps/townk_osx/keymap.c285
-rw-r--r--keyboard/ergodox_ez/keymaps/townk_osx/makefile.mk4
-rw-r--r--keyboard/ergodox_ez/keymaps/townk_osx/readme.md77
-rw-r--r--keyboard/ergodox_ez/keymaps/townk_osx/townk_osx.hex1166
-rw-r--r--keyboard/ergodox_ez/keymaps/townk_osx/townk_osx_base.pngbin0 -> 785859 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/townk_osx/townk_osx_fn.pngbin0 -> 390041 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.pngbin0 -> 424425 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/twey/keymap.c40
-rw-r--r--keyboard/ergodox_ez/keymaps/twey/readme.md12
15 files changed, 3154 insertions, 36 deletions
diff --git a/keyboard/ergodox_ez/keymaps/default_osx/keymap.c b/keyboard/ergodox_ez/keymaps/default_osx/keymap.c
index 81b49ceff9..c57ffbb889 100644
--- a/keyboard/ergodox_ez/keymaps/default_osx/keymap.c
+++ b/keyboard/ergodox_ez/keymaps/default_osx/keymap.c
@@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
+ KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
@@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_SPC,KC_BSPC,KC_END,
// right hand
KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_LGUI,
MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1,
@@ -117,7 +117,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `--------------------' `--------------------'
*/
// MEDIA AND MOUSE
-KEYMAP(
+[MDIA] = KEYMAP(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c
index b3ed55f217..19e539006a 100644
--- a/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c
+++ b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c
@@ -15,6 +15,15 @@
#include "keymap_extras/keymap_spanish.h"
#include "keymap_extras/keymap_bepo.h"
+
+/**
+* This layout was generated using the ErgodoxLayoutGenerator (ELG). You can download it from https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases
+* documentation about it can be found here https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/
+* Thanks to the team of Erez Zukerman for building the great Ergodox-EZ!
+*
+* use at own risk!
+**/
+
#define BASE 0
#define SYMB 1
#define MDIA 2
@@ -23,24 +32,73 @@
#define EGOS 5
#define SMLY_TOG_QUOT 0
+
#define M_TOGGLE_5 1
+
#define TGH_NUM 2
+
#define M_DE_OSX_PLUS_CTRLALT 3
+
#define SM_KISS 4
+
#define SM_FROWN 5
+
#define SM_CRY 6
+
#define SM_SMILE 7
+
#define SM_SMIRK 8
+
#define M_LGUI_SHFT 9
+
#define SM_HEART 10
+
#define TOG_HLD_MDIA 11
+
#define SM_LAUGH 12
+
#define SM_SAD 13
+
#define M_DE_OSX_CIRC_CTRLCMD 14
+
#define M_MEH_SH_ACUT 15
+
//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/**
+* Layer: BASE
+* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/
+* | ESC | 1 | 2 | 3 | 4 | 5 | Hold or toggle | | Hold or toggle | 6 | 7 | 8 | 9 | 0 | ß |
+* | | | | | | | Layer NUMB | | Layer MDIA | | | | | | |
+* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/
+* | TAB | Q | W | E | R | T | Cmd | | Cmd | Z | U | I | O | P | Ü |
+* | | | | | | | | | | | | | | | |
+* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/\-------------------\ \-------------------\/-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/
+* | Alt | A | S | D | F | G | | H | J | K | L | Ö | Ä |
+* | | | | | | | | | | | | | ALT |
+* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/
+* | Shift | Y | X | C | V | B | Alt | | Alt | N | M | , | . | - | Shift |
+* | | Ctrl | | | | | | | | | | | | Ctrl | |
+* \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\
+*
+*
+* /-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------/
+* | < | LongPress / Type | LongPress / Type | Shift+Ctrl | Type | | # | ACUT | CMD+Shift | ALT+Shift | + |
+* | SYMB | DE_OSX_CIRC_CTRLCMD| DE_OSX_PLUS_CTRAlt | | Toggle SMLY | | Meh | Hyper | | | SYMB |
+* \-------------------\\-------------------\\-------------------\\-------------------\/-------------------//-------------------/ /-------------------//-------------------/ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\
+* | HOME | END | | LEFT | RIGHT |
+* | | | | | |
+* \-------------------\/-------------------/ /-------------------/\-------------------\
+* | PGUP | | UP |
+* | | | |
+* /-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------/
+* | BSPC | DEL | PGDN | | DOWN | ENT | SPC |
+* | | | | | | | |
+* \-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\
+*
+*
+**/
[BASE]=KEYMAP(
//left half
KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(TGH_NUM),
@@ -60,6 +118,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LEFT, KC_RIGHT,
KC_UP,
KC_DOWN, KC_ENT, KC_SPC),
+/**
+* Layer: SYMB
+* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/
+* | APPLICATION| F1 | F2 | F3 | F4 | F5 | F5 | | F6 | F6 | F7 | F8 | F9 | F10 | F11 |
+* | | | | | | | | | | | | | | | |
+* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/
+* | | < | > | ! | ? | | | | | \ | [ | ] | < | > | ! |
+* | | | | | | | | | | | | | | | |
+* /-----------//-----------//-----------//-----------//-----------//-----------/\-----------\ \-----------\/-----------//-----------//-----------//-----------//-----------//-----------/
+* | | # | $ | \ | / | . | | / | ( | ) | { | } | # |
+* | | | | | | | | | | | | | |
+* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/
+* | | | < | % | | | ~ | | | | | | ~ | | | | |
+* | | | | | | | | | | | | | | | |
+* \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\
+*
+*
+* /-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------/
+* | | | | | | | ' | DQOT | | Toggle 5 | |
+* | | | | | | | | | | | |
+* \-----------\\-----------\\-----------\\-----------\/-----------//-----------/ /-----------//-----------/ \-----------\\-----------\\-----------\\-----------\\-----------\
+* | | | | F13 | F12 |
+* | | | | | |
+* \-----------\/-----------/ /-----------/\-----------\
+* | | | F14 |
+* | | | |
+* /-----------//-----------//-----------/ /-----------//-----------//-----------/
+* | | DEL | | | F15 | | |
+* | | | | | | | |
+* \-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\
+*
+*
+**/
[SYMB]=KEYMAP(
//left half
KC_APPLICATION, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F5,
@@ -79,6 +170,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_F13, KC_F12,
KC_F14,
KC_F15, KC_TRNS, KC_TRNS),
+/**
+* Layer: MDIA
+* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/
+* | | | | | | | | | | | | | | | |
+* | | | | | | | | | | | | | | | |
+* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/
+* | | | BTN1 | U | BTN2 | U | | | | | | | | | |
+* | | | | | | | | | | | | | | | |
+* /-----//-----//-----//-----//-----//-----/\-----\ \-----\/-----//-----//-----//-----//-----//-----/
+* | | | L | D | R | D | | | | | | | |
+* | | | | | | | | | | | | | |
+* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/
+* | | | L | D | R | BTN3 | | | | | | | | UP | |
+* | | | | | | | | | | | | | | | |
+* \-----\\-----\\-----\\-----\\-----\\-----\\-----\ \-----\\-----\\-----\\-----\\-----\\-----\\-----\
+*
+*
+* /-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----/
+* | | | | | | | | | LEFT | DOWN | RIGHT|
+* | | | | | | | | | | | |
+* \-----\\-----\\-----\\-----\/-----//-----/ /-----//-----/ \-----\\-----\\-----\\-----\\-----\
+* | | | | MPRV | MNXT |
+* | | | | | |
+* \-----\/-----/ /-----/\-----\
+* | | | VOLU |
+* | | | |
+* /-----//-----//-----/ /-----//-----//-----/
+* | | | | | VOLD | MUTE | MPLY |
+* | | | | | | | |
+* \-----\\-----\\-----\ \-----\\-----\\-----\
+*
+*
+**/
[MDIA]=KEYMAP(
//left half
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -90,14 +214,47 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
//right half
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS,
- KC_MUTE, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK),
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,
+ KC_MPRV, KC_MNXT,
+ KC_VOLU,
+ KC_VOLD, KC_MUTE, KC_MPLY),
+/**
+* Layer: SMLY
+* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/
+* | | | | | | | | | Typing | Typing | Typing | | | | |
+* | | | | | | | | | SM_SMILE| SM_SMIRK| SM_LAUGH| | | | |
+* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/
+* | | | | | | | | | | Typing | Typing | Typing | | | |
+* | | | | | | | | | | SM_FROWN| SM_SAD | SM_CRY | | | |
+* /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/
+* | | | | | | | | Typing | Typing | | | | |
+* | | | | | | | | SM_HEART| SM_KISS | | | | |
+* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/
+* | | | | | | | | | | | | | | | |
+* | | | | | | | | | | | | | | | |
+* \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\
+*
+*
+* /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/
+* | | | | | | | | | | | |
+* | | | | | | | | | | | |
+* \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\
+* | | | | | |
+* | | | | | |
+* \--------\/--------/ /--------/\--------\
+* | | | |
+* | | | |
+* /--------//--------//--------/ /--------//--------//--------/
+* | | | | | | | |
+* | | | | | | | |
+* \--------\\--------\\--------\ \--------\\--------\\--------\
+*
+*
+**/
[SMLY]=KEYMAP(
//left half
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -117,6 +274,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),
+/**
+* Layer: NUMB
+* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/
+* | | | | | | | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+* | | | | | | | | | | | | | | | |
+* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/
+* | | | | UP | | | | | | / | 7 | 8 | 9 | * | F12 |
+* | | | | | | | | | | | | | | | |
+* /----//----//----//----//----//----/\----\ \----\/----//----//----//----//----//----/
+* | | | LEFT| DOWN| RGHT| | | / | 4 | 5 | 6 | + | - |
+* | | | | | | | | | | | | | |
+* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/
+* | | | | | | | | | | % | 1 | 2 | 3 | | |
+* | | | | | | | | | | | | | | | |
+* \----\\----\\----\\----\\----\\----\\----\ \----\\----\\----\\----\\----\\----\\----\
+*
+*
+* /----//----//----//----//----/ /----//----//----//----//----/
+* | | | | | | | 0 | . | , | = | |
+* | | | | | | | | | | | |
+* \----\\----\\----\\----\/----//----/ /----//----/ \----\\----\\----\\----\\----\
+* | | | | | |
+* | | | | | |
+* \----\/----/ /----/\----\
+* | | | |
+* | | | |
+* /----//----//----/ /----//----//----/
+* | | | | | | | |
+* | | | | | | | |
+* \----\\----\\----\ \----\\----\\----\
+*
+*
+**/
[NUMB]=KEYMAP(
//left half
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -136,6 +326,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),
+/**
+* Layer: EGOS
+* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/
+* | | | | | | | | | | | | | | | |
+* | | | | | | | | | | | | | | | |
+* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/
+* | | | | | | | | | | | | | | | |
+* | | | | | | | | | | | | | | | |
+* /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/
+* | Shift | | | | | | | | | | | | |
+* | | | | | | | | | | | | | |
+* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/
+* | | | | | | | | | | | | | | | |
+* | | | | | | | | | | | | | | | |
+* \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\
+*
+*
+* /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/
+* | Ctrl | | | | | | | | | Toggle 5| |
+* | | | | | | | | | | | |
+* \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\
+* | F1 | F2 | | | |
+* | | | | | |
+* \--------\/--------/ /--------/\--------\
+* | F3 | | |
+* | | | |
+* /--------//--------//--------/ /--------//--------//--------/
+* | SPC | Ctrl | F4 | | | | |
+* | | | | | | | |
+* \--------\\--------\\--------\ \--------\\--------\\--------\
+*
+*
+**/
[EGOS]=KEYMAP(
//left half
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -259,7 +482,7 @@ case M_LGUI_SHFT:
if (record->event.pressed){
return MACRO(DOWN(KC_LGUI),DOWN(KC_LSFT),END);
}else{
- return MACRO(UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),U(LGUI),U(LSFT),END);
+ return MACRO(UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),U(LGUI),U(LSFT),END);
}
break;
diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental.hex b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental.hex
new file mode 100644
index 0000000000..3c7ab58597
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental.hex
@@ -0,0 +1,1247 @@
+:100000000C9430040C9474040C9474040C947404D4
+:100010000C9474040C9474040C9474040C94740480
+:100020000C9474040C9474040C94680F0C943A109F
+:100030000C9474040C9474040C9474040C94740460
+:100040000C9474040C9404250C9474040C9474049F
+:100050000C9474040C94931E0C9474040C94740407
+:100060000C9474040C9474040C9474040C94740430
+:100070000C9474040C9474040C9474040C94740420
+:100080000C9474040C9474040C9474040C94740410
+:100090000C9474040C9474040C9474040C94740400
+:1000A0000C9474040C9474040C9474048404BE04BE
+:1000B000D004F2040A05100516051C0522052805C2
+:1000C0002D0533055D05620567057E05A710C9107E
+:1000D000B711C910B7110E113111B711861199114D
+:1000E00085148514C214C214051543155C175C17DA
+:1000F0005C155C175D165D1630175C175C174717AB
+:1001000002E002E2012E022E02E10002E002E10220
+:10011000E20001E001E101E20002E002E301640229
+:10012000640002E002E30001E001E30001E10137C5
+:10013000023702E10138023801E10125022502E11E
+:100140000001E10137023702E10138023801E10123
+:1001500007020702E10001350235012002200002FA
+:10016000E302E102E302E102E302E102E302E1026F
+:10017000E302E102E302E102E302E102E302E1025F
+:10018000E302E102E302E102E302E102E302E1024F
+:10019000E302E102E302E102E302E102E302E1023F
+:1001A000E302E102E302E102E302E102E302E1022F
+:1001B000E302E102E302E102E302E102E302E1021F
+:1001C000E302E102E302E102E302E102E302E1020F
+:1001D000E302E102E302E102E302E102E302E102FF
+:1001E000E302E102E302E102E302E102E302E102EF
+:1001F000E302E102E302E10001E301E10001E101C8
+:1002000036023602E10138023801E10126022602F7
+:10021000E10001E10137023702E10138023801E172
+:100220000126022602E10001E10136023602E10167
+:1002300038023801E10125022502E10001E1013720
+:10024000023702E10138023801E20125022502E20B
+:100250000001E10137023702E10138023801E10112
+:1002600030023002E10002E002E20130023000021E
+:10027000E002E20001E001E20001E10131023102AD
+:10028000E10029002B00E200E100358100001E00A2
+:10029000140004001D710E304E001F001A001600DD
+:1002A0001B0003304C002000080007000600E0029D
+:1002B0002A00210015000900190000304B0022001F
+:1002C00017000A00050000004A000230E3000000A9
+:1002D000E20000004D000B30E7000000E6000000E7
+:1002E000500023001C000B00110000004F002400F0
+:1002F00018000D0010003177520025000C000E0090
+:1003000036002E7F2C00260012000F003700E10877
+:1003100028002700130033003871E10451002D003C
+:100320002F003474E50030810000650001000100F9
+:100330000100010000003A00350031000100010019
+:1003400001003B0035022102350001004C003C0059
+:100350001E0224062202010001003D002D0224029B
+:100360002404010001003E000100370011040000D8
+:1003700001003E00010000000100000001003F00FC
+:10038000010000000100000068003F002406240274
+:10039000240400004500400022042502110431021B
+:1003A000690041002304260201001F0201004200EF
+:1003B0003500250401000100010043003502260438
+:1003C000010001306A0044001E02310001000100FA
+:1003D0000000010001000100010001000000010017
+:1003E000010001000100010001000100F400F20021
+:1003F000FB00010001000100F000F100FA00010023
+:1004000001000100F500F300FC0001000100010003
+:10041000F900FA00F60000000100010001000000F0
+:1004200001000000010001000100000001000000C7
+:10043000AC0001000100010001000000AB00010060
+:100440000100010001000100A900010001000100FC
+:1004500001000100AE000100010001000100500098
+:10046000A80001000100010052005100AA00010093
+:100470000100010001004F00000001000100010027
+:100480000100010000000100010001000100010065
+:100490000100010001000100010001000100010054
+:1004A0000100010001000100010001000100010044
+:1004B0000100010001000100010001000100000035
+:1004C00001000100010000000100000001000730F0
+:1004D00001000000010000000100083005300A3072
+:1004E0000100000001000C300D300430010001005B
+:1004F00001000100063001000100010001000100BF
+:1005000001000100010001000100010001000100E3
+:1005100001000100010001000100010001000100D3
+:1005200000000100010001000100010000000100C5
+:100530000100010001000100010001000100500064
+:100540000100010001000100520051000100010002
+:100550000100010001004F00010001000100010045
+:100560000100010001000000010001000100000085
+:100570000100000001000100010000000100000076
+:1005800001003F002402240222020000010040007A
+:10059000240021001E002700010041002500220048
+:1005A0001F00370001004200260023002000360013
+:1005B0000100430030023000010027020100440026
+:1005C0004500380001000100000001000100E100C9
+:1005D0000100E00000000100010001000100010035
+:1005E0003D0001000100010001000100E0000100E8
+:1005F00001000100010001002C00010001000100C8
+:10060000010001003C0001000100010001000000A8
+:100610003A00010001000000010000003B00010061
+:1006200001000000010000000100010001000100C4
+:1006300001000000010001000100010001000100B3
+:1006400001000100010001000100010001000100A2
+:100650000100010001000100010001000100010092
+:100660000100013001000100010001000100010052
+:10067000000016034500720067006F0044006F0021
+:100680007800200045005A00000016034500720063
+:1006900067006F0044006F007800200045005A009A
+:1006A00000000403090409026D00040100A0FA0916
+:1006B0000400000103010100092111010001223F92
+:1006C000000705810308000A090401000103010273
+:1006D00000092111010001224D00070582030800D5
+:1006E0000A090402000103000000092111010001B0
+:1006F0002236000705830308000A090403000103EA
+:1007000000000009211101000122390007058403BE
+:100710001000011201100100000008EDFE07130196
+:10072000000102000105010906A101050719E029E0
+:10073000E7150025019508750181020508190129B1
+:10074000059505750191029501750391010507193C
+:1007500000297715002501957875018102C00501F2
+:100760000980A101850216010026B7001A01002A9E
+:10077000B700751095018100C0050C0901A1018524
+:1007800003160100269C021A01002A9C027510958E
+:10079000018100C005010902A1010901A1000509AB
+:1007A000190129051500250195057501810295019D
+:1007B000750381010501093009311581257F9502F5
+:1007C0007508810609381581257F95017508810610
+:1007D000050C0A38021581257F950175088106C030
+:1007E000C005010906A101050719E029E715002543
+:1007F00001950875018102950175088101050819A7
+:100800000129059505750191029501750391010571
+:1008100007190029FF150025FF950675088100C0FE
+:100820000000000000000000000000010204060AB1
+:100830000F17202C3A4A5D71879DB3C7DAE9F5FCA2
+:10084000FFFCF5E9DAC7B39D87715D4A3A2C2017A2
+:100850000F0A060402010000000000000000000072
+:1008600011241FBECFEFDAE0DEBFCDBF04B603FE1A
+:1008700024C08091F0019091F101A091F201B0911A
+:10088000F3018730904BA740B04BB9F41092F001C0
+:100890001092F1011092F2011092F30114BE84B78C
+:1008A000877F84BF88E10FB6F89480936000109230
+:1008B00060000FBEE0E0FFE3099511E0A0E0B1E0C9
+:1008C000E6E9FDE402C005900D92A433B107D9F723
+:1008D00011E0A4E3B1E001C01D92A03FB107E1F730
+:1008E0000E94AC0C0C94C9260C940000462F50E0DA
+:1008F0004031510508F01FC1DC01FA01EA5AFF4FEF
+:1009000012968C910C9479268823A9F00E945D1E82
+:1009100090933501809334018091B3019091B4019B
+:10092000A091B501B091B60128E08227887099277F
+:10093000AA27BB27AEC08091B3019091B401A091CA
+:10094000B501B091B60128E0822788709927AA27BF
+:10095000BB278093B3019093B401A093B501B093EA
+:10096000B60180913401909135010E94691E87394A
+:1009700091050CF0E0C089E792E00895882309F41E
+:10098000DAC08091B3019091B401A091B501B0910A
+:10099000B60120E2822780729927AA27BB2779C057
+:1009A000882339F00E945D1E9093350180933401B5
+:1009B0000AC080913401909135010E94691E8739E7
+:1009C00091050CF4B8C08091B3019091B401A0914D
+:1009D000B501B091B60120E1822780719927AA273D
+:1009E000BB2757C0882349F00E945D1E90933501B4
+:1009F0008093340184E792E00895809134019091CE
+:100A000035010E94691E873991050CF08EC086E67B
+:100A100092E00895882309F48EC081E592E008955C
+:100A2000882309F488C08CE392E00895882309F4B0
+:100A300082C087E292E00895882309F47CC082E1B5
+:100A400092E00895882309F476C08DEF91E008952F
+:100A500081116EC08FE591E00895882309F46BC081
+:100A600086E591E008958823E9F00E945D1E909349
+:100A70003501809334018091B3019091B401A0912C
+:100A8000B501B091B60124E0822784709927AA2786
+:100A9000BB278093B3019093B401A093B501B093A9
+:100AA000B60149C080913401909135010E94691EC0
+:100AB000873991050CF43FC0DECF8823E1F181E452
+:100AC00091E008958823B9F18CE291E0089588239C
+:100AD00049F00E945D1E909335018093340187E2B6
+:100AE00091E0089580913401909135010E94691E32
+:100AF000873991051CF589E191E00895882349F033
+:100B00000E945D1E909335018093340182E191E053
+:100B1000089580913401909135010E94691E8739B2
+:100B200091057CF480E091E008958FE692E00895CD
+:100B300088EF91E0089580E090E0089582E291E0EE
+:100B400008958BE091E0089508956091B30170914C
+:100B5000B4018091B5019091B6010E94BF1D5698D5
+:100B60005E9825982D9826982E9827982F98823051
+:100B700061F018F4813031F00895843069F08530E7
+:100B800039F00895259A2D9A0895269A2E9A089557
+:100B9000259A2D9A269A2E9A279A2F9A08950C9480
+:100BA000A50556985E9825982D9826982E982798F2
+:100BB0002F988FEF90E09093890080938800909316
+:100BC0008B0080938A0090938D0080938C00259AEF
+:100BD0002D9A2FEF80E792E0215080409040E1F77E
+:100BE00000C00000269A2E9A2FEF80E792E0215055
+:100BF00080409040E1F700C00000279A2F9A2FEF25
+:100C000080E792E0215080409040E1F700C0000072
+:100C100025982D982FEF80E792E02150804090405A
+:100C2000E1F700C0000026982E982FEF80E792E0B1
+:100C3000215080409040E1F700C0000027982F9895
+:100C400056985E9825982D9826982E9827982F9834
+:100C5000089589EA8093800089E080938100249838
+:100C60002C983F988AB18F748AB96E98479A8BB145
+:100C7000806B8BB9769A0E94D1050C94A40580E212
+:100C8000809300018091360181110EC00E948E0672
+:100C900081E0809336012FEF83ED90E32150804077
+:100CA0009040E1F700C0000080E40E949406809329
+:100CB000000181112EC00E94BE06809300018111A7
+:100CC00028C00E94BE0680930001811122C08FE3DC
+:100CD0000E94BE068093000181111BC00E94B606CF
+:100CE00080E40E94940680930001811112C08CE080
+:100CF0000E94BE068093000181110BC00E94BE06B7
+:100D000080930001811105C08FE30E94BE0680938D
+:100D100000010E94B6068091000108951092B9006A
+:100D20008AE08093B800089594EA9093BC00909173
+:100D3000BC0097FFFCCF9091B900987F983021F0CC
+:100D4000903111F081E008958093BB0084E8809396
+:100D5000BC008091BC0087FFFCCF8091B900887FE8
+:100D6000883111F0803471F780E0089584E9809330
+:100D7000BC008091BC0084FDFCCF08958093BB0033
+:100D800084E88093BC008091BC0087FFFCCF9091E9
+:100D9000B900987F81E0983209F480E0089584E8F2
+:100DA0008093BC008091BC0087FFFCCF8091BB008A
+:100DB000089580910001811115C080E40E9494067D
+:100DC0008093000181110CC082E10E94BE068093D5
+:100DD0000001811105C08FEF0E94BE0680930001C3
+:100DE0000E94B60684B1807F84B985B1807F85B9C1
+:100DF0008AB1837F8AB98BB1837F8BB93E9846983D
+:100E000008950E943F06809300010E94D90680B396
+:100E10008C7080BB81B3836F81BBA8E3B1E0E6E453
+:100E2000F1E08EE08E0F11921D928E13FCCF0C9488
+:100E30002906BF92CF92DF92EF92FF920F931F93FA
+:100E4000CF93DF9380910001882379F0809137015F
+:100E50008F5F80933701811108C00E943F06809305
+:100E60000001811102C00E94D10508E311E0C0E039
+:100E7000D0E0DD24D39482E0C82EEE24E394F12C5C
+:100E8000C730D10500F580910001811164C080E474
+:100E90000E94940680930001811112C082E10E9499
+:100EA000BE068093000181110BC0C7010C2E01C04A
+:100EB000880F0A94EAF780950E94BE06809300018D
+:100EC0000E94B60648C0CA30A1F028F4C83059F0D4
+:100ED000C93061F005C0CC3089F070F0CD3089F0B8
+:100EE000209A289810C0219A29980DC0229A2A98F1
+:100EF0000AC0239A2B9807C0529A01C0539A5B9854
+:100F000002C03E9A469890EA9A95F1F79FB1799976
+:100F100002C082E001C080E091709D25982B7C99F1
+:100F200002C084E001C080E0892B7D9902C038E0D6
+:100F300001C030E0832B7E9902C020E101C020E097
+:100F4000822B9FB19095991F9927991F9295990F80
+:100F5000907E892B0FC080910001811149C080E4EF
+:100F60000E94940680930001882379F1B12C0E949D
+:100F7000B6068B2DF8019081981719F08083C092E6
+:100F800001010E94D90621960F5F1F4FCE30D10577
+:100F900009F076CF80910101882361F1815080931F
+:100FA0000101882339F08FE99FE00197F1F700C034
+:100FB000000020C0A6E4B1E0E8E3F1E0CF01825FE9
+:100FC00091919D938E13FCCF15C083E10E94BE06C4
+:100FD000809300018111CACF81E40E94940680931E
+:100FE00000018111C3CF0E94CF06B82EB094BFCFAD
+:100FF00080E0C0CF0E94CF0581E0DF91CF911F91AB
+:101000000F91FF90EF90DF90CF90BF900895E82F61
+:10101000F0E0EA5BFE4F808108950895089596E020
+:10102000799FF001112494E5899FE00DF11D1124B1
+:10103000E60FF11DEE0FFF1FEE57FD4F85919491C6
+:101040000895880F991FFC01EE5FFE4F85919491E2
+:101050000895880F991FFC01EE57FD4F85919491DB
+:1010600008950F931F93CF93DF93EC018115904365
+:1010700050F5C11580E2D80708F0B3C0CB3BD105CD
+:1010800090F4C83AD10508F05AC0C53AD10508F025
+:101090004BC0C430D10508F0BBC1219709F0B5C1E0
+:1010A00001E010E0F5C1CF3FD10511F008F0B0C16B
+:1010B000C03FD10508F092C0CE01805E910908972B
+:1010C00008F4A6C1A2C1C11591E5D907A8F4C230A0
+:1010D00020E5D20708F09EC0C11580E5D80709F4C5
+:1010E00085C008F091C0C11520E4D20708F08DC179
+:1010F000DD278E01106CCCC1C11580E8D80758F4EB
+:10110000C11590E7D90708F07CC1C11520E6D207C8
+:1011100008F422C17AC1C11580E9D80708F075C169
+:10112000DF708E01106AB4C1C53AD10509F472C1ED
+:10113000C63AD10509F071C102E810E4A9C1C83A64
+:10114000D10509F46DC1C93AD10509F46CC1CA3A97
+:10115000D10509F46BC1CB3AD10509F46AC1CC3A87
+:10116000D10509F469C1CD3AD10509F468C1C03B84
+:10117000D10509F467C1CE3AD10509F466C1CF3A69
+:10118000D10509F465C1C13BD10509F464C1C23B75
+:10119000D10509F463C1C33BD10509F462C1C43B65
+:1011A000D10509F461C1C53BD10509F460C1C63B55
+:1011B000D10509F45FC1C73BD10509F45EC1C83B45
+:1011C000D10509F45DC1C93BD10509F45CC1CA3B35
+:1011D000D10509F45BC100E014E45AC18E01106529
+:1011E00057C1CE019F700E94290853C10E948017E9
+:1011F0009FEF24E38CE0915020408040E1F700C055
+:1012000000000E94B81E44C18091CF01816080938C
+:10121000CF013EC10E946120811102C00E9447207F
+:101220000E947E2090E09093F0018093EF01C23005
+:1012300090E5D90721F48091EF01816086C0C43028
+:1012400020E5D20721F48091EF0182607EC0C63094
+:1012500080E5D80721F48091EF01846076C0C83022
+:1012600090E5D90719F48091EF0127C0CA3020E535
+:10127000D20721F48091EF01806167C0CC3080E516
+:10128000D80721F48091EF0180625FC0CE3090E5F5
+:10129000D90721F48091EF01806457C0C03120E567
+:1012A000D20721F48091EF0180684FC0C23180E500
+:1012B000D80729F48091EF018460886046C0C3306C
+:1012C00090E5D90721F48091EF018E7F3EC0C530B3
+:1012D00020E5D20721F48091EF018D7F36C0C73021
+:1012E00080E5D80721F48091EF018B7F2EC0C930B3
+:1012F00090E5D90719F48091EF0126C0CB3020E5A5
+:10130000D20721F48091EF018F7E1FC0CD3080E5A0
+:10131000D80721F48091EF018F7D17C0CF3090E581
+:10132000D90721F48091EF018F7B0FC0C13120E5F7
+:10133000D20721F48091EF018F7707C0C331D045E8
+:1013400031F48091EF018B7F877F8093EF01809153
+:10135000EF010E9482209CC08D2F99278F709927C2
+:1013600081309105D9F49E012370332702C0880F84
+:10137000991F2A95E2F79C688E0144E0000F111F27
+:101380004A95E1F700271370802B912B53E0CC0F87
+:10139000DD1F5A95E1F7C076DD272FC08230910519
+:1013A00031F4DC2FCC278E01016F106A71C08330BD
+:1013B000910569F4CE018370992701E010E002C025
+:1013C000000F111F8A95E2F7C8019C680FC00497AF
+:1013D00009F05EC0CE018370992701E010E002C0E1
+:1013E000000F111F8A95E2F7C8019A6823E0CC0F1D
+:1013F000DD1F2A95E1F7C07ED7708C010C2B1D2BC9
+:1014000047C0DF708E01106243C000E010E040C0B2
+:101410008E013EC001E810E43BC003E810E438C090
+:1014200002EE14E435C009EE14E432C00AEE14E40E
+:101430002FC005EB14E42CC006EB14E429C007EB25
+:1014400014E426C00CEC14E423C00DEC14E420C01A
+:1014500003E815E41DC00AE815E41AC002E915E422
+:1014600017C004E915E414C001E216E411C003E258
+:1014700016E40EC004E216E40BC005E216E408C050
+:1014800006E216E405C007E216E402C00AE216E42A
+:10149000C801DF91CF911F910F91089596E0799F38
+:1014A000F001112494E5899FE00DF11D1124E60F50
+:1014B000F11DEE0FFF1FEE57FD4F85919491803E79
+:1014C0009105E0F4803C910558F58133910509F4CC
+:1014D0006FC048F48932910509F463C08A329105DE
+:1014E00009F46DC072C089339105E9F08238910525
+:1014F000D1F08533910509F44DC067C0833E910555
+:1015000081F138F4803E9105B9F0823E9105D9F021
+:101510005CC0863E910561F1873E9105A1F155C001
+:101520000E94210808952091EF0120FD02C021FFB3
+:101530004CC080EE90E049C08091EF0180FFF9CF70
+:1015400089E390E042C08091EF0182FF0EC080915C
+:10155000EF0184FF03C080E090E037C083EE90E0AD
+:1015600034C08091EF0182FFF2CF82EE90E02DC077
+:101570008091EF0183FF0BC08091EF0184FDEBCFE1
+:1015800087EE90E022C08091EF0183FFF5CF86EED9
+:1015900090E01BC08091EF0185FF07C089E290E0D9
+:1015A00014C08091EF0185FFF9CF85E390E00DC075
+:1015B0008091EF0186FF07C08AE290E006C080912B
+:1015C000EF0186FFF9CF81E390E00E943108089592
+:1015D00008950C94E80A809164010895CF93DF93F5
+:1015E00000D01F92CDB7DEB79C018091E601843018
+:1015F00019F593E099833B832A839093E9008FEF59
+:101600009091E800815095FD06C095ED9A95F1F70F
+:1016100000008111F5CF8091E80085FF0DC040E00A
+:1016200050E063E070E0CE0101960E94580D809179
+:10163000E8008E778093E8000F900F900F90DF9175
+:10164000CF910895CF93DF9300D01F92CDB7DEB72F
+:101650002091E601243021F522E029839B838A83AF
+:1016600083E08093E9008FEF9091E800815095FD31
+:1016700006C095ED9A95F1F700008111F5CF8091A4
+:10168000E80085FF0DC040E050E063E070E0CE016F
+:1016900001960E94580D8091E8008E778093E800B3
+:1016A0000F900F900F90DF91CF9108952091E60158
+:1016B0002430F1F422E02093E9002FEF3091E8008C
+:1016C000215035FD06C035ED3A95F1F700002111A6
+:1016D000F5CF2091E80025FF0BC040E050E065E029
+:1016E00070E00E94580D8091E8008E778093E800AA
+:1016F0000895CF93DF93EC019091E601943009F0C7
+:1017000046C080910C018823D9F080910D01882377
+:10171000B9F09093E9008FEF9091E800815095FD2A
+:1017200006C095E19A95F1F700008111F5CF8091FF
+:10173000E80085FF2CC040E050E060E170E017C099
+:1017400081E08093E9008FEF9091E800815095FD52
+:1017500006C095ED9A95F1F700008111F5CF8091C3
+:10176000E80085FF14C040E050E068E070E0CE0182
+:101770000E94580D8091E8008E778093E80080E108
+:10178000FE01A4E5B1E001900D928A95E1F7DF91A9
+:10179000CF9108958091E501811109C00E94ED0E5D
+:1017A0000E944A0F8091E20084608093E2000895D5
+:1017B0001092E501089508950C94F1240E944E1EA4
+:1017C0000E94F7240E94F0110C94E90A42E061ECB7
+:1017D00081E00E94670E42E061EC82E00E94670EA9
+:1017E00042E061EC83E00E94670E42E161EC84E03C
+:1017F0000C94670E8091E801833009F455C030F4F1
+:10180000813071F0823009F48EC008958A3009F475
+:101810007AC08B3009F460C0893009F09CC020C0C8
+:101820008091E701813A09F096C08091E800877FB6
+:101830008093E8008091EB019091EC01892B21F4D9
+:1018400060E184E591E003C060E080E090E070E05A
+:101850000E94A30D8091E8008B778093E8000895A3
+:101860008091E701813209F076C08091EB0190917F
+:10187000EC01009719F0039709F06DC08091E80022
+:10188000877F8093E8008091E80082FD05C0809109
+:10189000E6018111F8CF5FC08091F100809364016F
+:1018A0008091E8008B7753C08091E701813A09F07D
+:1018B00052C08091EB019091EC01892B09F04BC053
+:1018C0008091E800877F8093E8008091E80080FFA6
+:1018D000FCCF80910C0136C08091E7018132D9F5AF
+:1018E0008091EB019091EC01892BA9F58091E800A2
+:1018F000877F8093E8000E949C0E8091E90180938D
+:101900000C010C9480178091E701813221F58091C0
+:10191000E800877F8093E8000E949C0E8091EA0196
+:101920008093650108958091E701813AA1F4809147
+:10193000E800877F8093E8008091E80080FFFCCF7B
+:10194000809165018093F1008091E8008E7780930B
+:10195000E8000C949C0E089584B7877F84BF88E1CB
+:101960000FB6F89480936000109260000FBE90E074
+:1019700080E80FB6F89480936100909361000FBEE9
+:101980000E943F120E94ED0E0E944A0F8091E200D9
+:1019900084608093E20078940E94D0110E944112EA
+:1019A00082E091E00E94EB110E94DF248091E60129
+:1019B000853069F40E940F1E8091E4018823B1F301
+:1019C0000E943A1E882391F30E94420DEFCF0E949D
+:1019D0004712ECCF292F332723303105C9F064F4A7
+:1019E0002130310581F02230310509F043C08DE608
+:1019F00090E026EA36E042C021323105F1F0223291
+:101A0000310541F137C082E190E023E137E036C093
+:101A100099278130910541F08230910541F0892B61
+:101A200049F5E2EAF6E005C0EAE8F6E002C0E2E7DE
+:101A3000F6E0849190E09F0121C06430D8F4E62F55
+:101A4000F0E0EE0FFF1FEE5DFE4F2081318189E057
+:101A500090E014C0643070F470E0FB01EE0FFF1FE3
+:101A6000E65EFE4F20813181FB01EA5EFE4F808100
+:101A700090E004C080E090E020E030E0FA013183A3
+:101A80002083089580E189BD82E189BD09B400FE0B
+:101A9000FDCF8091D8008F7D8093D8008091E000A9
+:101AA00082608093E0008091E00081FDFCCF08958A
+:101AB000CF92DF92EF92FF920F931F93CF93DF931A
+:101AC000EC018B016A010E94BB0E811133C0C1146D
+:101AD000D10439F0F60180819181081B190BC80FE0
+:101AE000D91FE12CF12C0115110519F18091E800A5
+:101AF00085FD16C08091E8008E778093E800C114C0
+:101B0000D10449F0F60180819181E80EF91EF1823D
+:101B1000E08285E00FC00E94BB0E882321F30AC03B
+:101B200089918093F10001501109FFEFEF1AFF0A2C
+:101B3000DACF80E0DF91CF911F910F91FF90EF906E
+:101B4000DF90CF9008952091ED013091EE0126179E
+:101B5000370748F06115710539F42091E8002E77B8
+:101B60002093E80001C0B90140E061157105A9F1B9
+:101B70002091E601222309F443C0253009F442C034
+:101B80002091E80023FD40C02091E80022FD32C0F2
+:101B90002091E80020FFE9CF4091F3002091F2006E
+:101BA00030E0342BFC01CF016115710559F028306C
+:101BB000310540F481918093F100615071092F5FEC
+:101BC0003F4FF1CF41E02830310509F040E020914E
+:101BD000E8002E772093E800C8CF4111C9CF0AC092
+:101BE0008091E601882361F0853061F08091E80002
+:101BF00083FD0AC08091E80082FFF2CF80E0089563
+:101C000082E0089583E0089581E008952091ED0138
+:101C10003091EE012617370748F06115710539F448
+:101C20002091E8002E772093E80001C0B901FC0163
+:101C300020E06115710591F18091E601882309F496
+:101C400040C0853009F43FC08091E80083FD3DC06D
+:101C50008091E80082FD2FC08091E80080FFE9CFED
+:101C60002091F3008091F20090E0922B61157105B4
+:101C700059F08830910540F424912093F100319679
+:101C8000615071090196F2CF21E0089709F020E038
+:101C90008091E8008E778093E800CBCF2111CCCFE4
+:101CA0000AC08091E601882361F0853061F080915F
+:101CB000E80083FD0AC08091E80082FFF2CF80E057
+:101CC000089582E0089583E0089581E00895982FB3
+:101CD000973058F59093E900981739F07091EC001F
+:101CE0002091ED005091F00003C0242F762F50E09A
+:101CF00021FF19C03091EB003E7F3093EB00309113
+:101D0000ED003D7F3093ED003091EB00316030937A
+:101D1000EB007093EC002093ED005093F0002091C5
+:101D2000EE0027FF07C09F5FD3CF8F708093E9003D
+:101D300081E0089580E008958091E70187FF11C058
+:101D40008091E80082FD05C08091E6018111F8CF05
+:101D500011C08091E8008B770BC08091E601882349
+:101D600049F08091E80080FFF8CF8091E8008E77FD
+:101D70008093E80008952091E4003091E50095E615
+:101D80004091EC00842F817040FF22C08091E800D8
+:101D900080FD1CC08091E601882391F0853091F090
+:101DA0008091EB0085FD10C04091E4005091E5006A
+:101DB0004217530729F39A01915011F784E00895CF
+:101DC00082E0089583E0089581E0089580E0089519
+:101DD0004091E80042FFDECF08950E945B0F0E9411
+:101DE000630FE0EEF0E0808181608083E8EDF0E059
+:101DF00080818F77808319BCA7EDB0E08C918E7FB6
+:101E00008C9380818F7E80831092E50108950F93DB
+:101E10001F93CF93DF930E945B0F0E94630FC8ED67
+:101E2000D0E088818F7788838881806888838881E3
+:101E30008F7D888319BC1092E6011092E201109206
+:101E4000E4011092E30100EE10E0F80180818B7F45
+:101E5000808388818160888342E060E080E00E9426
+:101E6000670EE1EEF0E080818E7F8083E2EEF0E0AD
+:101E7000808181608083808188608083F801808197
+:101E80008E7F8083888180618883DF91CF911F91CD
+:101E90000F910895E8EDF0E080818F7E8083E7ED7B
+:101EA000F0E080818160808384E082BF81E0809364
+:101EB000E5010C94070FE8EDF0E080818E7F8083D0
+:101EC0001092E20008951092DA001092E100089555
+:101ED0001F920F920FB60F9211242F933F934F939F
+:101EE0005F936F937F938F939F93AF93BF93EF9382
+:101EF000FF938091E10082FF0BC08091E20082FF9E
+:101F000007C08091E1008B7F8093E1000E94CF1198
+:101F10008091DA0080FF1FC08091D80080FF1BC035
+:101F20008091DA008E7F8093DA008091D90080FF63
+:101F30000DC080E189BD82E189BD09B400FEFDCFFD
+:101F400081E08093E6010E94CA0B05C019BC109283
+:101F5000E6010E94D80B8091E10080FF19C08091BA
+:101F6000E20080FF15C08091E2008E7F8093E20046
+:101F70008091E20080618093E2008091D8008062CD
+:101F80008093D80019BC85E08093E6010E94DC0BA9
+:101F90008091E10084FF30C08091E20084FF2CC07A
+:101FA00080E189BD82E189BD09B400FEFDCF809149
+:101FB000D8008F7D8093D8008091E1008F7E809340
+:101FC000E1008091E2008F7E8093E2008091E20048
+:101FD00081608093E2008091E201882311F084E027
+:101FE00007C08091E30087FD02C081E001C083E06B
+:101FF0008093E6010E94DE0B8091E10083FF29C0FF
+:102000008091E20083FF25C08091E100877F80936B
+:10201000E10082E08093E6011092E2018091E1000C
+:102020008E7F8093E1008091E2008E7F8093E200BA
+:102030008091E20080618093E20042E060E080E015
+:102040000E94670E8091F00088608093F0000E94EB
+:10205000DB0BFF91EF91BF91AF919F918F917F919A
+:102060006F915F914F913F912F910F900FBE0F9005
+:102070001F9018951F920F920FB60F9211242F9355
+:102080003F934F935F936F937F938F939F93AF9300
+:10209000BF93CF93DF93EF93FF93C091E900CF708D
+:1020A0008091EC00D82FD17080FDD0E81092E9002B
+:1020B0008091F000877F8093F00078940E947E10DA
+:1020C0001092E9008091F00088608093F000CD2BA1
+:1020D000CF70C093E900FF91EF91DF91CF91BF9155
+:1020E000AF919F918F917F916F915F914F913F91B0
+:1020F0002F910F900FBE0F901F9018951F93CF93A5
+:10210000DF93CDB7DEB7AA970FB6F894DEBF0FBE48
+:10211000CDBFE7EEF1E088E08E0F9091F100919352
+:102120008E13FBCF0E94FA0B8091E80083FF1FC142
+:102130008091E7019091E801492F50E04A30510524
+:1021400008F015C1FA01EA59FF4F0C94792680383E
+:1021500081F0823809F00BC18091EB018F70809380
+:10216000E9008091EB0085FB882780F91092E90057
+:1021700006C08091E3019091E401911182609091F9
+:10218000E800977F9093E8008093F1001092F100AF
+:10219000C8C0282F2D7F09F0EAC0882319F08230AB
+:1021A00061F0E5C08091E901813009F0E0C0933031
+:1021B00009F080E08093E4012BC08091E901811156
+:1021C00027C08091EB018F7009F4D1C08093E900A2
+:1021D0002091EB0020FF1CC0933021F48091EB0094
+:1021E000806214C09091EB0090619093EB0021E02D
+:1021F00030E0A90102C0440F551F8A95E2F74093D1
+:10220000EA001092EA008091EB0088608093EB0076
+:102210001092E9008091E800877F86C08111A7C0F5
+:102220001091E9011F778091E3008078812B8093E2
+:10223000E3008091E800877F8093E8000E949C0E75
+:102240008091E80080FFFCCF8091E300806880935C
+:10225000E300111102C082E001C083E08093E60137
+:1022600086C08058823008F082C08091E901909148
+:10227000EA018C3D53E0950779F583E08A838AE291
+:1022800089834FB7F894DE01139620E03EE051E2D7
+:10229000E32FF0E050935700E49120FF03C0E29554
+:1022A000EF703F5FEF708E2F90E0EA3010F0C7962E
+:1022B00001C0C0968D939D932F5F243149F74FBF86
+:1022C0008091E800877F8093E8006AE270E0CE01A9
+:1022D00001960E94A30D14C0AE014F5F5F4F609145
+:1022E000EB010E94EA0CBC01892B09F440C09091DB
+:1022F000E800977F9093E80089819A810E94060EFA
+:102300008091E8008B778093E80031C0803879F5C0
+:102310008091E800877F8093E8008091E2018093BC
+:10232000F1008091E8008E778093E8000E949C0E77
+:102330001EC081111CC09091E9019230C0F48091BF
+:10234000E800877F8093E8009093E2010E949C0E52
+:102350008091E201811106C08091E30087FD02C0F7
+:1023600081E001C084E08093E6010E94E60B809149
+:10237000E80083FF0AC08091E800877F8093E8002F
+:102380008091EB0080628093EB00AA960FB6F894E0
+:10239000DEBF0FBECDBFDF91CF911F91089508958D
+:1023A000CF938091E6018823A1F0C091E900CF701E
+:1023B0009091EC00892F817090FD80E8C82B1092DD
+:1023C000E9008091E80083FD0E947E10CF70C093E9
+:1023D000E900CF91089590936B0180936A0108956D
+:1023E000E0916A01F0916B01309721F00190F0814A
+:1023F000E02D099480E00895E0916A01F0916B016D
+:10240000309721F00280F381E02D09940895E09146
+:102410006A01F0916B01309721F00480F581E02D85
+:1024200009940895209168013091690182179307FA
+:1024300071F09093690180936801E0916A01F091D5
+:102440006B01309721F00680F781E02D0994089503
+:1024500020916601309167018217930771F0909384
+:10246000670180936601E0916A01F0916B013097FA
+:1024700021F00084F185E02D0994089508950C94CD
+:102480003E120E94541E0E9401070C941A1FCF9204
+:10249000DF92EF92FF920F931F93CF93DF93CDB70D
+:1024A000DEB72B970FB6F894DEBF0FBECDBF0E94EC
+:1024B00019078DE6C82E81E0D82E00E010E0E02E4E
+:1024C000802F0E940708F60141916F01F42EF82633
+:1024D000B1F40F5F1F4F0E30110589F78FEF89831D
+:1024E0008A831B820E945D1E8160782F9D838C836E
+:1024F00049815A816B818D810E94EA1240C090917E
+:10250000CF0191FF04C08B870E940D088B8520E0CE
+:1025100030E04F2D50E0922FBA01022E02C0759587
+:1025200067950A94E2F760FF24C02E83EF8221E0D2
+:1025300030E0690102C0CC0CDD1C9A95E2F790E016
+:102540008C219D21892B09F420E028870E945D1EA3
+:102550008160782F9A8789874E815F8168858A8517
+:102560000E94EA12F801E359FE4F8081C826C0821A
+:1025700006C02F5F3F4F2630310569F6AACF0E9473
+:10258000012210916C010E94F0111817A1F00E9415
+:10259000F01180936C012B960FB6F894DEBF0FBE3E
+:1025A000CDBFDF91CF911F910F91FF90EF90DF9002
+:1025B000CF900C94E90A2B960FB6F894DEBF0FBEAD
+:1025C000CDBFDF91CF911F910F91FF90EF90DF90E2
+:1025D000CF900895CF93DF93CDB7DEB72B970FB68B
+:1025E000F894DEBF0FBECDBF4F83588769877A87C7
+:1025F0008B87DE01119686E0FD0111928A95E9F73D
+:1026000085E0FE01379601900D928A95E1F74981A8
+:102610005A816B817C818D819E810E941A1A2B9632
+:102620000FB6F894DEBF0FBECDBFDF91CF910895F6
+:102630000895CF93882309F4C2C0C82F823859F473
+:102640000E94F01181FDBBC089E30E94C31C0E945F
+:10265000901D89E30CC0833879F40E94F01180FD4D
+:10266000AEC083E50E94C31C0E94901D83E50E94BA
+:10267000051DCF910C94901D843859F40E94F011DF
+:1026800082FD9DC087E40E94C31C0E94901D87E4C8
+:10269000EECF8CEF8C0F813A48F48C2F0E944424AB
+:1026A00081118DC08C2F0E94C31CE3CF80E28C0F60
+:1026B000883048F4C77081E001C0880FCA95EAF7F6
+:1026C0000E94491DD6CF8BE58C0F833078F4C53A34
+:1026D00029F0C63A31F083E890E005C081E890E047
+:1026E00002C082E890E0CF910C94121288E58C0F22
+:1026F000833108F064C0C83A39F1C93A41F1CA3AA5
+:1027000049F1CB3A51F1CC3A59F1CD3A61F1C03BA4
+:1027100069F1CE3A71F1CF3A79F1C13B81F1C23B17
+:1027200089F1C33B91F1C43B99F1C53BA1F1C63B93
+:10273000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BF3
+:10274000C9F180E090E038C082EE90E035C089EEBB
+:1027500090E032C08AEE90E02FC085EB90E02CC074
+:1027600086EB90E029C087EB90E026C08CEC90E0EF
+:1027700023C08DEC90E020C083E891E01DC08AE882
+:1027800091E01AC082E991E017C084E991E014C099
+:1027900081E292E011C083E292E00EC084E292E016
+:1027A0000BC085E292E008C086E292E005C087E2B5
+:1027B00092E002C08AE292E0CF910C942812CF916D
+:1027C0000895882309F44BC0823859F40E94F0110F
+:1027D00081FF45C089E30E94C31C0E94901D89E3CC
+:1027E0000CC0833871F40E94F01180FF38C083E57B
+:1027F0000E94C31C0E94901D83E50E94051D0C943D
+:10280000901D843859F40E94F01182FF28C087E49B
+:102810000E94C31C0E94901D87E4EFCF9CEF980F8D
+:10282000913A58F390E2980F983050F4877091E005
+:1028300001C0990F8A95EAF7892F0E944F1DDFCFBB
+:102840009BE5980F933020F480E090E00C941212F6
+:10285000885A833120F480E090E00C942812089587
+:10286000882321F00E94491D0C94901D089588230F
+:1028700021F00E944F1D0C94901D0895BF92CF929D
+:10288000DF92EF92FF920F931F93CF93DF9300D0CD
+:1028900000D000D0CDB7DEB725E0FC01DE011196F7
+:1028A00001900D922A95E1F7FC01D08011810281FF
+:1028B000258122952F7043815481452B09F4FCC258
+:1028C0001F3F21F4FFEFDF1609F4F6C27C012E83CF
+:1028D0000E941813D9821A8369817A81802F0E94FD
+:1028E000BF1C182FB92E0E94741C0E943B1B2E8106
+:1028F000002319F00E94661D2E81EB2DE295EF70EA
+:10290000F0E0E059FF4F0C9479268B2D807F9B2DB2
+:102910009F70F92E882319F0F29480EFF82200239B
+:1029200089F0FF2009F475C280E2810F883020F41D
+:102930008F2D0E94491D03C08F2D0E94591D0E949A
+:10294000901D67C2812F0E94E113FF2009F4B4C2D9
+:10295000105E8F2D183018F40E944F1D02C00E9487
+:102960005F1D26960FB6F894DEBF0FBECDBFDF9178
+:10297000CF911F910F91FF90EF90DF90CF90BF907C
+:102980000C94901D3B2D307F8B2D8F70303211F0C9
+:102990008295807F112319F0113021F12CC0002382
+:1029A000B9F0222309F4A0C1213009F09DC1269677
+:1029B0000FB6F894DEBF0FBECDBFDF91CF911F9150
+:1029C0000F91FF90EF90DF90CF90BF900C94791D06
+:1029D000222319F0213009F46FC28E830E947C1DDE
+:1029E0008E8196C1002321F0223008F065C27CC19F
+:1029F000211162C28DC1002321F0222309F474C188
+:102A000008C2222309F484C119C22B2D26952695CC
+:102A1000237030E02115310521F021303105D1F04E
+:102A20004BC2002321F0812F9B2D937002C080E0C8
+:102A300090E026960FB6F894DEBF0FBECDBFDF91B3
+:102A4000CF911F910F91FF90EF90DF90CF90BF90AB
+:102A50000C941212002321F0812F9B2D937002C041
+:102A600080E090E026960FB6F894DEBF0FBECDBF93
+:102A7000DF91CF911F910F91FF90EF90DF90CF905A
+:102A8000BF900C942812812F002319F00E94092175
+:102A900002C00E94712126960FB6F894DEBF0FBEC9
+:102AA000CDBFDF91CF911F910F91FF90EF90DF90FD
+:102AB000CF90BF900C94F6218B2D837009F07BC0D2
+:102AC0000111FAC1812F829586958770880F880F32
+:102AD000912F9F70C92ED12CE12CF12C082E04C00F
+:102AE000CC0CDD1CEE1CFF1C0A94D2F714FF12C0A4
+:102AF0004FE050E060E070E004C0440F551F661FD7
+:102B0000771F8A95D2F7CB01BA01609570958095B1
+:102B1000909503C060E070E0CB012B2D26952695A3
+:102B20002370422F50E042305105D9F04330510517
+:102B300069F16C297D298E299F294130510551F178
+:102B400026960FB6F894DEBF0FBECDBFDF91CF91B2
+:102B50001F910F91FF90EF90DF90CF90BF900C945A
+:102B6000621B6C297D298E299F2926960FB6F89421
+:102B7000DEBF0FBECDBFDF91CF911F910F91FF90B0
+:102B8000EF90DF90CF90BF900C947E1B0E94621B51
+:102B9000C701B60126960FB6F894DEBF0FBECDBFB3
+:102BA000DF91CF911F910F91FF90EF90DF90CF9029
+:102BB000BF900C94461B002319F08B2D817001C02F
+:102BC0008695882309F478C1812F82958695877030
+:102BD000880F880F912F9F70C92ED12CE12CF12CDA
+:102BE000082E04C0CC0CDD1CEE1CFF1C0A94D2F78E
+:102BF00014FF12C04FE050E060E070E004C0440FEA
+:102C0000551F661F771F8A95D2F7CB01BA016095D1
+:102C100070958095909503C060E070E0CB012B2DFE
+:102C2000269526952370422F50E042305105D9F069
+:102C30004330510569F16C297D298E299F29413046
+:102C4000510551F126960FB6F894DEBF0FBECDBFE9
+:102C5000DF91CF911F910F91FF90EF90DF90CF9078
+:102C6000BF900C943C1C6C297D298E299F292696A7
+:102C70000FB6F894DEBF0FBECDBFDF91CF911F918D
+:102C80000F91FF90EF90DF90CF90BF900C94581C65
+:102C90000E943C1CC701B60126960FB6F894DEBF11
+:102CA0000FBECDBFDF91CF911F910F91FF90EF909D
+:102CB000DF90CF90BF900C94201C103FD1F118F4FE
+:102CC000103E50F4A1C0123F09F463C008F44CC098
+:102CD000133F09F473C098C01F708B2D8F710023B0
+:102CE000A1F00E94B91B812F26960FB6F894DEBF83
+:102CF0000FBECDBFDF91CF911F910F91FF90EF904D
+:102D0000DF90CF90BF900C9430140E94DA1B812F7B
+:102D100026960FB6F894DEBF0FBECDBFDF91CF91E0
+:102D20001F910F91FF90EF90DF90CF90BF900C9488
+:102D300037140023A9F02111BFC08B2D8F71269667
+:102D40000FB6F894DEBF0FBECDBFDF91CF911F91BC
+:102D50000F91FF90EF90DF90CF90BF900C94FF1BEE
+:102D6000223008F0A9C0E9CF0023A9F08B2D8F7184
+:102D700026960FB6F894DEBF0FBECDBFDF91CF9180
+:102D80001F910F91FF90EF90DF90CF90BF900C9428
+:102D9000B91B002359F38B2D8F7126960FB6F8942B
+:102DA000DEBF0FBECDBFDF91CF911F910F91FF907E
+:102DB000EF90DF90CF90BF900C94DA1B002399F036
+:102DC0008B2D8F7126960FB6F894DEBF0FBECDBF48
+:102DD000DF91CF911F910F91FF90EF90DF90CF90F7
+:102DE000BF900C94A41B26960FB6F894DEBF0FBEBE
+:102DF000CDBFDF91CF911F910F91FF90EF90DF90AA
+:102E0000CF90BF900C949A1B0023A9F0222309F4C1
+:102E1000ADCF812F26960FB6F894DEBF0FBECDBF83
+:102E2000DF91CF911F910F91FF90EF90DF90CF90A6
+:102E3000BF900C941913222309F4ADCF812F26964D
+:102E40000FB6F894DEBF0FBECDBFDF91CF911F91BB
+:102E50000F91FF90EF90DF90CF90BF900C94E11313
+:102E60004B2D4F70612FC7010E94760426960FB636
+:102E7000F894DEBF0FBECDBFDF91CF911F910F91B0
+:102E8000FF90EF90DF90CF90BF900C94BE1A4B2D27
+:102E90004F70612FC70126960FB6F894DEBF0FBEA4
+:102EA000CDBFDF91CF911F910F91FF90EF90DF90F9
+:102EB000CF90BF900C940E0826960FB6F894DEBF04
+:102EC0000FBECDBFDF91CF911F910F91FF90EF907B
+:102ED000DF90CF90BF9008950E94661D0E94761DDE
+:102EE0000E943B1D0E94901D0E94A7220E94F62175
+:102EF00080E090E00E94121280E090E00C94281292
+:102F00000E94561D0C946C170E94B41C292F229508
+:102F10002F7030E02C3031054CF42A3031056CF440
+:102F2000225031092230310588F407C02C30310598
+:102F300049F02F30310531F009C0803E48F0803F24
+:102F400029F406C093FB882780F9089580E008954E
+:102F500081E00895CF93DF9300D000D01F92CDB7CA
+:102F6000DEB70F900F900F900F900F90DF91CF91E1
+:102F70000895CF93DF9300D000D000D0CDB7DEB757
+:102F800026960FB6F894DEBF0FBECDBFDF91CF916E
+:102F900008951F93CF93DF93C0917B0116E080913A
+:102FA0007C01C81799F0D0E01C9FF0011D9FF00D27
+:102FB0001124E358FE4F40815181628173818481E5
+:102FC00095810E94B9172196C770E9CFDF91CF9103
+:102FD0001F9108954091AD015091AE016091AF01F4
+:102FE0007091B0018091B1019091B2010C94B91728
+:102FF0008091B20182958F7009F054C08091AF0129
+:10300000882309F44FC080917B01A0917C016091DD
+:10301000AD017091AE014091B0015091B101B6E0A7
+:103020008A1709F43FC090E041155105C1F17F3F77
+:1030300011F46F3FA1F1B89FF001B99FF00D112479
+:10304000E358FE4F218172132AC02081621327C0EA
+:103050002281211124C0238134812417350710F4E3
+:1030600021503109241B350B283C3105C0F4209137
+:10307000B2012F7020612093B20126E0289FF00159
+:10308000299FF00D1124EE57FE4F80818F708061D3
+:1030900080838DEA91E00E943E140C94C91701963A
+:1030A0008770BECF0895CF92DF92EF92FF920F9379
+:1030B0001F93CF93DF93CDB7DEB762970FB6F89427
+:1030C000DEBF0FBECDBF8C0185E0F801DE011D968D
+:1030D00001900D928A95E1F7D8014C9111965C917F
+:1030E000119712966C9112971396CD90DC901497CD
+:1030F0003091AD017091AE018091B0019091B1011C
+:10310000009709F46BC17F3F19F43F3F09F466C192
+:10311000E090AF01EE2009F4C0C02091B201C816C2
+:10312000D90628F0F601E81BF90BCF0104C0809501
+:1031300090958C0D9D1DFF24F394883C910578F0AB
+:10314000F12C207F09F0C6C07C2DD98AC88A8989D4
+:103150000E94AA178DEA91E00E943E14B1C0822F0E
+:10316000807F09F046C0751314C0341312C061117A
+:1031700010C02F7020612093B2010E94EA178DEADF
+:1031800091E00E943E148091B201D80115968C9373
+:103190002EC0CD2819F15F3F11F44F3FF9F0F62E04
+:1031A00061111CC080917B0120917C0136E0821767
+:1031B00009F45AC090E0389FF001399FF00D1124B6
+:1031C000E358FE4F7181571306C07081471303C047
+:1031D0007281711103C001968770E9CFF62E6623C4
+:1031E00009F418C18091B20181608093B201F12C81
+:1031F00011C1751308C0341306C0611104C0809159
+:10320000B201D801C3C04D875E878D859E856A8BCC
+:103210000E9484176A898823E1F16623D1F1209105
+:10322000B201822F82958F7090E0029774F08091A6
+:10323000AD019091AE0198878F831986DB86CA868F
+:103240002C87CE0107960E943E1486E0F801ADEA75
+:10325000B1E001900D928A95E1F70E94F8170E9463
+:10326000EA17FF24F394D6C04D875E878D859E852F
+:103270000E94B41C292F22952F7030E02230310596
+:103280000CF0BCC09F7009F0B6C0805E883008F4B6
+:10329000C1C0C8010E943E14E4CFC816D90608F484
+:1032A00053C0F601E81BF90BCF01883C910508F4E7
+:1032B00050C0F12C7C2DD98AC88A89890E94AA170E
+:1032C000EDEAF1E086E0DF011D928A95E9F70E94C0
+:1032D000EA17A0C0751314C0341312C0611110C0D6
+:1032E0008091B201F8018583C8010E943E1486E0F6
+:1032F000EDEAF1E0DF011D928A95E9F7FE2C8AC024
+:103300004D875E878D859E856A8B0E9484176A89AA
+:10331000882309F4BECF662309F4BBCF2091B20104
+:10332000822F82958F7090E002970CF48ECF80915F
+:10333000AD019091AE019A8389831B82DD82CC829C
+:103340002E83CE0101967FCF809590958C0D9D1D8B
+:10335000ACCFF62E662309F49CCF75132EC0341320
+:103360002CC02091B20120FD1FC0822F82958F704A
+:10337000D9F0D80115962C9315978F3049F08F5FAF
+:10338000982F9295907F822F8F70892B15968C9312
+:10339000C8010E943E1486E0F801ADEAB1E0019058
+:1033A0000D928A95E1F793CF86E0F801ADEAB1E09E
+:1033B00001900D928A95E1F72DC04D875E878D852E
+:1033C0009E850E948417811140CF8091B201816057
+:1033D0008093B201C8010E943E141CC0662309F408
+:1033E00058CF4D875E878D859E850E9484178823E0
+:1033F00009F44FCF2ACF811148CF0CC024303105BA
+:103400000CF047CF9F7009F440CFF8019581907F71
+:1034100009F03BCF8F2D62960FB6F894DEBF0FBE3A
+:10342000CDBFDF91CF911F910F91FF90EF90DF9073
+:10343000CF9008951F93CF93DF93CDB7DEB72C972E
+:103440000FB6F894DEBF0FBECDBF4F835887698794
+:103450007A878B879C87CE0107960E945318882312
+:1034600069F08F8198852A853B85232BF1F19F3F59
+:1034700009F063C08F3F09F060C037C086E0FE01ED
+:103480003796DE01119601900D928A95E1F76F81D2
+:103490007885EA85FB85309741F17F3F11F46F3FD6
+:1034A00021F120917C0130E0C901019687709927B4
+:1034B00040917B0150E08417950709F447C0698368
+:1034C0007A83FD83EC8396E0929FD001939FB00DA9
+:1034D0001124A358BE4FFE01319601900D929A958A
+:1034E000E1F780937C010E94C91716E080917B016F
+:1034F00090917C018917C1F1189FC0011124835854
+:103500009E4F0E945318882379F1E0917B011E9F02
+:10351000F0011124E358FE4F408151816281738193
+:10352000848195810E94B91780917B0190E001967A
+:103530008770992780937B01D9CF4F815885698502
+:103540007A858B859C850E94B917CFCF0E94801702
+:1035500010927C0110927B01EDEAF1E086E0DF0140
+:103560001D928A95E9F7C1CF2C960FB6F894DEBF6D
+:103570000FBECDBFDF91CF911F910895EF92FF92C3
+:103580000F931F93CF93DF938C01892B09F46CC0A9
+:10359000F12CEE24E394E8012196F801849184371C
+:1035A00040F4843008F051C0813081F0823019F14C
+:1035B0005BC0853709F444C0A8F19CE7980F9037A9
+:1035C00008F052C08F770E94E11341C00E5F1F4F79
+:1035D000FE01C49180E28C0F883048F4C7708E2DB4
+:1035E00001C0880FCA95EAF70E94691D14C08C2F8C
+:1035F0000E9419132DC00E5F1F4FFE01C49180E27F
+:103600008C0F883058F4C7708E2D01C0880FCA9572
+:10361000EAF70E946F1D0E94901D1AC08C2F0E9415
+:10362000E11316C00E5F1F4FFE01C491CC2381F041
+:103630008FE99FE00197F1F700C00000C150F6CF7D
+:103640000E5F1F4FFE01F49003C00E9419138E01FC
+:103650008F2D882309F49FCFEFE9FFE03197F1F731
+:1036600000C000008150F5CFDF91CF911F910F91E5
+:10367000FF90EF90089508956093B7017093B8019B
+:103680008093B9019093BA010C946C170F931F9318
+:103690000091B7011091B8012091B9013091BA01A0
+:1036A000DC01CB01802B912BA22BB32B8093B70194
+:1036B0009093B801A093B901B093BA011F910F91F3
+:1036C0000C946C170F931F930091B7011091B801E0
+:1036D0002091B9013091BA01DC01CB018023912303
+:1036E000A223B3238093B7019093B801A093B901AB
+:1036F000B093BA011F910F910C946C170F931F9305
+:103700000091B7011091B8012091B9013091BA012F
+:10371000DC01CB0180279127A227B3278093B70133
+:103720009093B801A093B901B093BA011F910F9182
+:103730000C946C171092B3011092B4011092B50161
+:103740001092B6010C946C1741E050E060E070E01C
+:1037500004C0440F551F661F771F8A95D2F7409308
+:10376000B3015093B4016093B5017093B6010C940A
+:103770006C1741E050E060E070E004C0440F551F5A
+:10378000661F771F8A95D2F78091B3019091B4019B
+:10379000A091B501B091B601482B592B6A2B7B2B18
+:1037A0004093B3015093B4016093B5017093B60197
+:1037B0000C946C1741E050E060E070E004C0440FEE
+:1037C000551F661F771F8A95D2F7409550956095D3
+:1037D00070958091B3019091B401A091B501B09121
+:1037E000B601482359236A237B234093B3015093A6
+:1037F000B4016093B5017093B6010C946C1741E06D
+:1038000050E060E070E004C0440F551F661F771F52
+:103810008A95D2F78091B3019091B401A091B5013E
+:10382000B091B601482759276A277B274093B301F7
+:103830005093B4016093B5017093B6010C946C176A
+:103840000F931F930091B3011091B4012091B50122
+:103850003091B601DC01CB01802B912BA22BB32B35
+:103860008093B3019093B401A093B501B093B601D6
+:103870001F910F910C946C170F931F930091B3013C
+:103880001091B4012091B5013091B601DC01CB015A
+:1038900080239123A223B3238093B3019093B40197
+:1038A000A093B501B093B6011F910F910C946C17C2
+:1038B0000F931F930091B3011091B4012091B501B2
+:1038C0003091B601DC01CB0180279127A227B327D5
+:1038D0008093B3019093B401A093B501B093B60166
+:1038E0001F910F910C946C170895CF92DF92EF9275
+:1038F000FF920F931F93CF93DF938C01C090B7017A
+:10390000D090B801E090B901F090BA018091B30174
+:103910009091B401A091B501B091B601C82AD92AFD
+:10392000EA2AFB2ACFE1D0E0D701C6010C2E04C061
+:10393000B695A795979587950A94D2F780FF06C00C
+:10394000B8018C2F0E944E0A019721F4219760F74D
+:1039500080E001C08C2FDF91CF911F910F91FF90DC
+:10396000EF90DF90CF900895CF93DF93EC010E940A
+:10397000751CBE010E944E0ADF91CF910895CB01C4
+:103980000E94B41C089590910C01992321F090910C
+:103990000D01911109C020910E0130910F01F90123
+:1039A00032969FEF40E01FC0982F9695969596957A
+:1039B0009F3050F5E0910E01F0910F01E90FF11DDC
+:1039C000877021E030E0A90102C0440F551F8A959D
+:1039D000E2F7CA019181892B818308959F3F39F0D5
+:1039E0004F5F4E3041F051915813F8CF0DC0511137
+:1039F000F7CF942FF5CF9F3F39F0F901E90FF11D73
+:103A000097FDFA9582830895089590910C0199236A
+:103A100021F090910D01911109C020910E0130917A
+:103A20000F01F9013296205F3F4F1FC0982F9695E6
+:103A3000969596959F30F0F4E0910E01F0910F016C
+:103A4000E90FF11D877021E030E0A90102C0440FA9
+:103A5000551F8A95E2F7CA01809591818923818358
+:103A600008953196E217F30729F090819813F9CF62
+:103A70001082F7CF089581E090E0E0910E01F0917F
+:103A80000F01E80FF91F1082019680319105A9F707
+:103A900008959091CE01892B8093CE010895809551
+:103AA0009091CE0189238093CE0108951092CE018A
+:103AB00008959091CD01892B8093CD010895809533
+:103AC0009091CD0189238093CD0108951092CD016D
+:103AD00008959091CC01892B8093CC010895809515
+:103AE0009091CC0189238093CC0108951092CC0150
+:103AF00008958093BB0108951092BB0108958091B1
+:103B00000E0190910F01FC0131969C01205F3F4F07
+:103B100080E0919191118F5FE217F307D1F708953B
+:103B2000E0910E01F0910F018091CE018083E09130
+:103B30000E01F0910F0190818091CD01892B80833E
+:103B4000E0910E01F0910F0190818091CC01892BC1
+:103B500080838091BB01882361F0E0910E01F09198
+:103B60000F019081892B80830E947F1D811110920B
+:103B7000BB0180910E0190910F010C94FC11CF922A
+:103B8000DF92EF92FF926C01EE24FF24C114D10466
+:103B9000E104F10421F0C701B60120E101C020E0F9
+:103BA000C72ED82EE92EFF24C114D104E104F1045C
+:103BB00019F0285FC701B6016B017C0154E0F6944F
+:103BC000E794D794C7945A95D1F7C114D104E1046E
+:103BD000F10419F02C5FC701B6016B017C0142E0D2
+:103BE000F694E794D794C7944A95D1F7C114D104B9
+:103BF000E104F10419F02E5FC701B601DC01CB012D
+:103C0000B695A79597958795892B8A2B8B2B09F0CD
+:103C10002F5F822FFF90EF90DF90CF9008958091DB
+:103C2000E601843021F11092D00120E488E190E097
+:103C30000FB6F894A895809360000FBE20936000A3
+:103C400080E00E94E90A83B7817F846083BF83B7E5
+:103C5000816083BF7894889583B78E7F83BF88E126
+:103C60000FB6F89480936000109260000FBE089524
+:103C700008950895CF930E94381E0E9419070E944C
+:103C8000391EC0E08C2F0E940708811104C0CF5F4D
+:103C9000CE30C1F701C081E0CF9108950E94801716
+:103CA0000E94F0110C94E90A82E084BD93E095BD76
+:103CB0009AEF97BD80936E0008952FB7F894809186
+:103CC000D1019091D201A091D301B091D4012FBF25
+:103CD0000895CF92DF92EF92FF920F931F932FB729
+:103CE000F8944091D1015091D2016091D30170912B
+:103CF000D4012FBF6A017B01EE24FF248C0120E058
+:103D000030E0C016D106E206F30610F44150510926
+:103D10009A01281B390BC9011F910F91FF90EF9059
+:103D2000DF90CF9008951F920F920FB60F9211243B
+:103D30008F939F93AF93BF938091D1019091D201C4
+:103D4000A091D301B091D4010196A11DB11D809322
+:103D5000D1019093D201A093D301B093D401BF912C
+:103D6000AF919F918F910F900FBE0F901F9018955C
+:103D70000E94ED0EF8942FEF87EA91E621508040E3
+:103D80009040E1F700C0000087E090EBDC018093F9
+:103D9000F0019093F101A093F201B093F3019CE044
+:103DA00088E10FB6F894A895809360000FBE9093B9
+:103DB0006000FFCFEF92FF920F931F93CF93DF939B
+:103DC000D82FC0E08C2F0E94070800E010E0E82EFA
+:103DD000F12CC701002E02C0959587950A94E2F751
+:103DE00080FD06C00F5F1F4F0630110591F709C017
+:103DF000602F7C2F80E00E940F08D813F3CF81E062
+:103E000004C0CF5FCE30F1F680E0DF91CF911F91FB
+:103E10000F91FF90EF900895CF93C82F8CE20E94EE
+:103E2000DA1E882321F08C2FCF910C94DA1E80E0CB
+:103E3000CF910895CF930E946120811102C00E940A
+:103E40004720C5E6C15049F00E9419078FE39CE95D
+:103E50000197F1F700C00000F5CF89E20E940C1F26
+:103E6000811113C18AE20E940C1F81110E94472018
+:103E700085E00E940C1F81110E94B81E0E946C20D8
+:103E80008093CF0187E00E940C1F8823A9F18BE16A
+:103E90000E940C1F882351F08091CF0181FB2227C3
+:103EA00020F991E0922790FB81F90EC08EE00E94EC
+:103EB0000C1F882361F08091CF0182FB222720F91B
+:103EC00091E0922790FB82F98093CF0115C080E1A9
+:103ED0000E940C1F9091CF01882341F093FB222771
+:103EE00020F981E0822780FB93F904C0892F809517
+:103EF00080FB90F99093CF018091CF010E947020B8
+:103F00000E947E208093EF0180EE0E940C1F882388
+:103F100041F08091EF01982F909590FB80F980936C
+:103F2000EF0189E30E940C1F882359F08091EF0173
+:103F300081FB222720F991E0922790FB81F9809361
+:103F4000EF0182EE0E940C1F882359F08091EF014F
+:103F500082FB222720F991E0922790FB82F980933F
+:103F6000EF0186EE0E940C1F882359F08091EF012B
+:103F700083FB222720F991E0922790FB83F980931D
+:103F8000EF0183EE0E940C1F882359F08091EF010E
+:103F900084FB222720F991E0922790FB84F98093FB
+:103FA000EF0185E30E940C1F882359F08091EF01F7
+:103FB00085FB222720F991E0922790FB85F98093D9
+:103FC000EF0181E30E940C1F882359F08091EF01DB
+:103FD00086FB222720F991E0922790FB86F98093B7
+:103FE000EF0181E10E940C1F882359F08091EF01BD
+:103FF00087FB222720F991E0922790FB87F9809395
+:10400000EF018091EF010E9482208091EF0187FBF8
+:10401000882780F980930D0187E20E940C1FC82F2A
+:104020008EE10E940C1F8111C2608FE10E940C1F63
+:104030008111C46080E20E940C1F8111C86081E27E
+:104040000E940C1F8111C06182E20E940C1F81112D
+:10405000C06283E20E940C1F8111C06484E20E944E
+:104060000C1F882311F0C06802C0CC2329F08C2FCC
+:104070000E9479206C2F03C00E947520682F70E089
+:1040800080E090E0CF910C943C1BCF9108956DEEB1
+:104090007EEF80E090E00E94B32660E082E090E056
+:1040A0000E94A12660E083E090E00E94A12660E0EB
+:1040B00084E090E00E94A12660E085E090E00C940E
+:1040C000A12680E090E00E949B2621E08D3E9E4F3D
+:1040D00009F020E0822F089582E090E00C9493266E
+:1040E000682F82E090E00C94A12683E090E00C948D
+:1040F0009326682F83E090E00C94A12684E090E062
+:104100000C949326682F84E090E00C94A126809173
+:10411000D70180FF0BC06091130185E0689FB0015B
+:10412000112475956795759567952BC081FF09C01A
+:104130006091130185E0689FB00111247595679522
+:1041400020C082FF07C06091130185E0689FB00125
+:10415000112417C09091D8019923D1F060911201D8
+:10416000961788F72091130185E0289F900111246C
+:10417000929FA001939F500D112470E0CA010E94EC
+:1041800065266038710540F46115710539F002C08B
+:1041900065E070E0862F08958FE7089581E0089527
+:1041A0008091D70180FF08C06091110170E0759582
+:1041B00067957595679521C081FF06C060911101D3
+:1041C00070E07595679519C082FF04C06091110178
+:1041D00070E010C09091D8019923C1F06091100156
+:1041E0009617A0F780911101899FC001112470E0FA
+:1041F0000E9465266038710528F46115710521F06B
+:10420000862F08958FE7089581E0089561E070E0BA
+:10421000F4CF803F21F40E948720819504C0813F24
+:1042200029F40E9487208093DB010895823F21F4C6
+:104230000E948720819504C0833F29F40E94872033
+:104240008093DA010895893F19F40E94D02005C0B7
+:104250008A3F31F40E94D02081958093DC0108953B
+:104260008B3F21F40E94D020819504C08C3F29F41B
+:104270000E94D0208093DD010895843F21F4809135
+:10428000D901816017C0853F21F48091D9018260F6
+:1042900011C0863F21F48091D90184600BC0873F13
+:1042A00021F48091D901886005C0883F31F4809164
+:1042B000D90180618093D90108958D3F21F48091C7
+:1042C000D70181600BC08E3F21F48091D7018260BD
+:1042D00005C08F3F29F48091D70184608093D70176
+:1042E0000895803F39F48091DB0187FF6CC0109204
+:1042F000DB0169C0813F29F48091DB011816BCF312
+:1043000062C09091DA01823F29F497FF5CC010925D
+:10431000DA0159C0833F19F41916CCF354C0893F10
+:1043200041F48091DC0118160CF04DC01092DC01B4
+:104330004AC08A3F29F48091DC0187FF44C0F6CF50
+:104340008B3F39F48091DD0187FF3DC01092DD0184
+:104350003AC08C3F29F48091DD011816BCF333C0BC
+:10436000843F21F48091D9018E7F17C0853F21F4CD
+:104370008091D9018D7F11C0863F21F48091D901B0
+:104380008B7F0BC0873F21F48091D901877F05C0C7
+:10439000883F31F48091D9018F7E8093D90113C079
+:1043A0008D3F21F48091D7018E7F0BC08E3F21F489
+:1043B0008091D7018D7F05C08F3F29F48091D7016F
+:1043C0008B7F8093D7018091DA0181110EC080919B
+:1043D000DB0181110AC08091DC01811106C080914E
+:1043E000DD01811102C01092D801089589ED91E09C
+:1043F0000E9407120E945D1E9093D6018093D50102
+:1044000008951F93CF93DF938091D5019091D601AA
+:104410000E94691EAC019091D801992321F020914E
+:10442000140130E006C0209115018AE0289F900118
+:1044300011244217530708F486C08091DA01C09115
+:10444000DB01D091DC011091DD01811107C0C111A8
+:1044500076C0D11174C0111172C075C09F3F19F0A0
+:104460009F5F9093D801181624F40E9487208093B0
+:10447000DA018091DA0187FF05C00E9487208195CB
+:104480008093DA011C1624F40E9487208093DB01BC
+:104490008091DB0187FF05C00E9487208195809372
+:1044A000DB016091DA01662339F1C091DB01CC2395
+:1044B00019F1772767FD7095872F972F0E94762532
+:1044C00023E333E343E35FE30E94DA250E944325BD
+:1044D0006093DA016C2F772767FD7095872F972FF0
+:1044E0000E94762523E333E343E35FE30E94DA256A
+:1044F0000E9443256093DB011D1624F40E94D02006
+:104500008093DC018091DC0187FF05C00E94D020F0
+:1045100081958093DC01111624F40E94D0208093B1
+:10452000DD018091DD0187FF05C00E94D0208195CB
+:104530008093DD01DF91CF911F910C94F6219F3F75
+:1045400009F08ECF96CFDF91CF911F910895E9EDBD
+:10455000F1E085E0DF011D928A95E9F71092D8011C
+:104560001092D7010895833081F128F4813059F0F9
+:104570008230D1F00895853009F449C0B8F1863011
+:1045800009F456C0089580911501262F30E0280FB8
+:10459000311D2F3F310524F4680F609315010895F4
+:1045A0008FEF80931501089580911401262F30E03C
+:1045B000280F311D2F3F310524F4680F609314013B
+:1045C00008958FEF80931401089580911301262F91
+:1045D00030E0280F311D2F3F310524F4680F609320
+:1045E000130108958FEF80931301089580911201B4
+:1045F000262F30E0280F311D2F3F310524F4680F9E
+:104600006093120108958FEF8093120108958091B5
+:104610001101262F30E0280F311D2F3F310524F4E2
+:10462000680F6093110108958FEF80931101089531
+:1046300080911001262F30E0280F311D2F3F3105CA
+:1046400024F4680F6093100108958FEF8093100198
+:104650000895833011F128F4813049F0823091F0CF
+:104660000895853081F120F18630C1F1089580915F
+:104670001501681720F4861B809315010895109288
+:104680001501089580911401681720F4861B80930A
+:104690001401089510921401089580911301681770
+:1046A00020F4861B8093130108951092130108953E
+:1046B00080911201681720F4861B809312010895DF
+:1046C00010921201089580911101681720F4861B41
+:1046D00080931101089510921101089580911001A5
+:1046E000681720F4861B8093100108951092100122
+:1046F00008950F931F938D3109F46BC008F03FC0EC
+:104700008E3009F47FC0C0F4873009F469C068F4C2
+:10471000863009F0B1C08091CF01817F8E7F809378
+:10472000CF0181E08093DF01A8C0883009F4A2C0E6
+:104730008B3009F49FC0A0C0863109F49BC078F487
+:10474000803109F472C0813109F096C00E9480174F
+:1047500090910D0181E0892780930D018BC08931F3
+:1047600009F488C08B3109F087C08091CF0181FBAB
+:10477000222720F991E0922790FB81F94CC08533E4
+:1047800009F470C048F4873209F46CC008F459C0C9
+:10479000893209F467C070C0833438F48A3308F072
+:1047A0004EC0883309F466C067C0833409F45AC028
+:1047B000883409F061C00E9480170FEF13ED20E3E9
+:1047C000015010402040E1F700C000000E94B81ED8
+:1047D00051C00E94FD240E94F0110E94E90A4AC0C3
+:1047E0009091CF01892F8095817080FB90F929F0FD
+:1047F000966098609093CF0140C0997F977F909387
+:10480000CF0138C08091CF0182FB222720F991E0AF
+:10481000922790FB82F98093CF01992359F18091DF
+:10482000CF0181608093CF0125C08091CF0183FBB0
+:10483000222720F991E0922790FB83F9ECCF89534E
+:1048400001C08D5141E050E060E070E08A019B01C1
+:1048500004C0000F111F221F331F8A95D2F7C90110
+:10486000B80104C061E070E080E090E00E943C1B71
+:104870000E94801781E001C080E01F910F91089590
+:1048800080E0089580E00895CF93C82F8091DF01E4
+:10489000813079F018F08230E9F187C0E0910E01A3
+:1048A000F0910F018081813169F0823209F07FC07F
+:1048B00009C0E0910E01F0910F018081813111F06A
+:1048C000823261F48C2F0E944024811104C08C2F0D
+:1048D0000E9479231DC081E090E01AC08C2F0E94B5
+:1048E0004224811114C0C43179F048F4CB3079F0FE
+:1048F000C03109F060C082E08093DF0108C0C93296
+:1049000019F0C83321F057C01092DF0154C081E084
+:10491000817053C0C93289F118F5C43171F1A8F41E
+:10492000C73009F046C08AE08093150194E1909366
+:10493000140193E0909313018093120188E0809317
+:10494000110188E28093100134C0CE51C63088F541
+:10495000EC2FF0E0E65DFE4F80818093DE0129C000
+:10496000CE34E9F020F4CB3421F56AE013C0C13530
+:1049700079F0C235F1F461E00DC08091DE01882349
+:1049800019F01092DE0115C081E08093DF0115C09F
+:1049900061E006C08091DE010E94B3220AC06AE095
+:1049A0008091DE010E94292304C01092DF0180E083
+:1049B00004C081E002C080E0ABCFCF910895E1E870
+:1049C000F0E08081886080838081816080838FB700
+:1049D000F89493E09093890090ED909388008FBFB6
+:1049E0000895EFE6F0E08081826080830895EFE62D
+:1049F000F0E080818D7F80830895EFE6F0E0908184
+:104A000082E08927808308951F920F920FB60F923C
+:104A100011242F933F934F935F936F937F938F93C3
+:104A20009F93AF93BF93EF93FF938091E001909199
+:104A3000E10101969093E1018093E001811103C0AF
+:104A400082E00E94E90AE091E101E695E695F0E056
+:104A5000E05EF74FE4918091E0018E1303C080E0A7
+:104A60000E94E90AFF91EF91BF91AF919F918F91C1
+:104A70007F916F915F914F913F912F910F900FBE5A
+:104A80000F901F90189504D06894B1118DC00895AF
+:104A900070D088F09F5790F0B92F9927B751A0F0A8
+:104AA000D1F0660F771F881F991F1AF0BA95C9F7C2
+:104AB00012C0B13081F077D0B1E0089574C0672F93
+:104AC000782F8827B85F39F0B93FCCF38695779572
+:104AD0006795B395D9F73EF490958095709561955B
+:104AE0007F4F8F4F9F4F0895E89409C097FB3EF486
+:104AF00090958095709561957F4F8F4F9F4F99232B
+:104B0000A9F0F92F96E9BB279395F69587957795A8
+:104B10006795B795F111F8CFFAF4BB0F11F460FF68
+:104B20001BC06F5F7F4F8F4F9F4F16C0882311F0C0
+:104B300096E911C0772321F09EE8872F762F05C0D4
+:104B4000662371F096E8862F70E060E02AF09A956F
+:104B5000660F771F881FDAF7880F9695879597F964
+:104B6000089557FD9058440F551F59F05F3F71F05D
+:104B70004795880F97FB991F61F09F3F79F08795C4
+:104B80000895121613061406551FF2CF4695F1DF4D
+:104B900008C0161617061806991FF1CF86957105DD
+:104BA000610508940895E894BB2766277727CB0111
+:104BB00097F908950BD078C069D028F06ED018F01E
+:104BC000952309F05AC05FC01124EECFCADFA0F3CD
+:104BD000959FD1F3950F50E0551F629FF001729F92
+:104BE000BB27F00DB11D639FAA27F00DB11DAA1FB1
+:104BF000649F6627B00DA11D661F829F2227B00DFE
+:104C0000A11D621F739FB00DA11D621F839FA00D88
+:104C1000611D221F749F3327A00D611D231F849FD8
+:104C2000600D211D822F762F6A2F11249F5750402F
+:104C30008AF0E1F088234AF0EE0FFF1FBB1F661FCA
+:104C4000771F881F91505040A9F79E3F510570F083
+:104C500014C0AACF5F3FECF3983EDCF386957795BE
+:104C60006795B795F795E7959F5FC1F7FE2B880F7E
+:104C7000911D9695879597F9089597F99F6780E814
+:104C800070E060E008959FEF80EC089500240A949E
+:104C90001616170618060906089500240A94121617
+:104CA0001306140605060895092E0394000C11F44A
+:104CB000882352F0BB0F40F4BF2B11F460FF04C0F7
+:104CC0006F5F7F4F8F4F9F4F089597FB072E16F40E
+:104CD000009407D077FD09D00E947F2607FC05D0FD
+:104CE0003EF4909581959F4F0895709561957F4F03
+:104CF0000895EE0FFF1F0590F491E02D0994AA1B73
+:104D0000BB1B51E107C0AA1FBB1FA617B70710F0B6
+:104D1000A61BB70B881F991F5A95A9F780959095E8
+:104D2000BC01CD010895F999FECF92BD81BDF89ADD
+:104D3000992780B50895A8E1B0E042E050E00C94D6
+:104D4000BB26262FF999FECF92BD81BDF89A019717
+:104D500000B4021639F01FBA20BD0FB6F894FA9AC3
+:104D6000F99A0FBE08950196272F0E94A2260C944F
+:104D7000A126DC01CB01FC01F999FECF06C0F2BDF2
+:104D8000E1BDF89A319600B40D9241505040B8F709
+:064D90000895F894FFCF26
+:104D96002002EB0A790B560B220BEE0A0101BC012D
+:104DA60028080A03140A3F4D3639E10794075E07BF
+:104DB6002507B806D106EA0603070102030405061D
+:044DC60007080900D1
+:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png
index 29f1099d06..031d874a7b 100644
--- a/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png
+++ b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/readme.md b/keyboard/ergodox_ez/keymaps/osx_de_experimental/readme.md
new file mode 100644
index 0000000000..e6a1018416
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/osx_de_experimental/readme.md
@@ -0,0 +1,22 @@
+
+# Ergodox und Ergodox-EZ experimentelles Layout
+
+dieses layout ist experimentell und wird im Lufe der Zeit viele Änderungen und Verbesserungen durchlaufen. Falls diese sich als vorteilhaft erweisen, werden sie evtl. auch in das `osx_de` layout übernommen.
+
+
+
+# Erstellt Mit Dem ErgodoxLayoutGenerator
+
+Der ErgodoxLayoutGenerator (ELG) ist ein kleines Werkzeug, welches die Erstellung und Pflege der eigenen Keymaps erleichtern soll. Es ist in java geschrieben und kann [hier](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases) heruntergeladen werden. Damit das Tool funktioniert sollte das offizielle Oracle JDK in aktueller Version installiert sein.
+Die Dokumentation für den ELG kann man [hier](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/) nachlesen (momentan leider nur in Englisch verfügbar).
+---------------------------------------------------------------------------------------------------------------------
+
+# Ergodox and Ergodox-EZ experimental layout
+
+This is an experimental layout which will undergo heavy changes over time. If changes prove to be good, they might also move into the `osx_de` layout.
+
+Created Using the ErgodoxLayoutGenerator
+
+The ErgodoxLayoutGenerator (ELG) is a little tool, which makes the creation and maintenance of keycaps a lot easier. It was written in Java and can be downloaded [here](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases). To use the tool, you need to have a current version of Oracles JDK installed.
+
+The documentation of the ELG can be viewed [here](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/). \ No newline at end of file
diff --git a/keyboard/ergodox_ez/keymaps/townk_osx/config.h b/keyboard/ergodox_ez/keymaps/townk_osx/config.h
new file mode 100644
index 0000000000..78aa3ee8b9
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/townk_osx/config.h
@@ -0,0 +1,92 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>
+
+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 <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x1307
+#define DEVICE_VER 0x0001
+#define MANUFACTURER ErgoDox EZ
+#define PRODUCT ErgoDox EZ
+#define DESCRIPTION t.m.k. keyboard firmware for Ergodox
+
+/* key matrix size */
+#define MATRIX_ROWS 14
+#define MATRIX_COLS 6
+
+#define MOUSEKEY_DELAY 100
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_MAX_SPEED 3
+#define MOUSEKEY_TIME_TO_MAX 10
+
+#define TAPPING_TOGGLE 1
+
+#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
+#define ROWS (int []){ D0, D5, B5, B6 }
+
+/* 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 DEBOUNCE 2
+#define TAPPING_TERM 200
+#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.)
+
+/* 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_LCTL) | MOD_BIT(KC_RCTL)) || \
+ keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \
+)
+
+/*
+ * 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
+//#define DEBUG_MATRIX_SCAN_RATE
+#define ONESHOT_TAP_TOGGLE 2
+#define ONESHOT_TIMEOUT 3000
+
+#endif
diff --git a/keyboard/ergodox_ez/keymaps/townk_osx/keymap.c b/keyboard/ergodox_ez/keymaps/townk_osx/keymap.c
new file mode 100644
index 0000000000..b63698ec6a
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/townk_osx/keymap.c
@@ -0,0 +1,285 @@
+#include "ergodox_ez.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "action_util.h"
+#include "led.h"
+#include "keymap_common.h"
+#include "timer.h"
+
+/*
+
+# Why this Layout
+
+This layout was based on Kinesis layout and other ErgoDox user layouts
+available. It's target to be used on a MacOS but I'm pretty sure it can be
+addapted to Windows and/or Linux easily.
+
+## Function Key
+
+The `fn` key work almost like it would in any other keyboard with the exception
+it has a semi-sticky behavior. What does that mean?
+
+Well, if you press the `fn` and release it, the keyboard will be put on the
+_function layout_ and the next key stroke will be processed as if the `fn` key
+was pressed. Aftwards, the leyout get back to _normal_. If you hold `fn` and
+press any other key, when you release them, the keyboard leyout is back to
+_normal_.
+
+While pressing the `fn` with the left hand and strikeing the other keys on the
+right hand is farly easy, the same cannot being said for the other keys on the
+left side. So, instead of trying to do contorcionism with my left hand, I
+decided to do a semi-sticky version of `fn`. This way, I can press the `fn`
+key with my pinky, release it and press the `1` key to issue an `F1` to the
+operating system.
+
+## Key-Pad Key
+
+The `key pad` key is a layout switch key. If pressed, it will put the keyboard
+on the _key pad layout_ and stay there until key is pressed again.
+
+This is used to make the keyboard behave mostly like a **num pad keyboard**.
+
+## Notes
+- Regardless in which layout you are, keys from other layouts are not
+ accessible. This means that if you are on the _key pad layout_, the left hand
+ will be pretty much unusable.
+ Of course that like anything else, there are exceptions to this rule.
+ Modifiers should remain accessible throughout the layers.
+- The _shift key_ is, like the _function key_, also configured to have a sticky
+ behavior.
+- All sticky keys have a timeout of 3 seconds.
+
+*/
+#define BASE 0
+#define KEYPAD 1
+#define FN 2
+
+#define MACRO_TMUX_ESC 10
+#define MACRO_TMUX_PASTE 11
+#define MACRO_OSX_COPY 12
+#define MACRO_OSX_PASTE 13
+
+#define M_TESC M(MACRO_TMUX_ESC)
+#define M_TPASTE M(MACRO_TMUX_PASTE)
+#define M_OSXCPY M(MACRO_OSX_COPY)
+#define M_OSXPST M(MACRO_OSX_PASTE)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Base Layer
+ *
+ * ,-----------------------------------------------------. ,-----------------------------------------------------.
+ * | `~ | 1 | 2 | 3 | 4 | 5 | ESC | | Pwr | 6 | 7 | 8 | 9 | 0 | - _ |
+ * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------|
+ * | Tab | Q | W | E | R | T | F16 | | F17 | Y | U | I | O | P | = + |
+ * |-----------+------+------+------+------+------| Meh | | Meh |------+------+------+------+------+-----------|
+ * | \ (Ctrl) | A | S | D | F | G |------| |------| H | J | K | L | ; | ' " (Ctrl)|
+ * |-----------+------+------+------+------+------| F18 | | F19 |------+------+------+------+------+-----------|
+ * | LShift | Z | X | C | V | B | Hyper| | Hyper| N | M | , | . | / | RShift |
+ * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
+ * | FN | KPAD |LCtrl | LAlt | LGui | | RGui | RAlt | RCtrl| KPAD | FN |
+ * `-----------------------------------' `-----------------------------------'
+ * ,-------------. ,-------------.
+ * | M(0) | M(1) | | M(2) | M(3) |
+ * ,------|------|------| |------+------+------.
+ * | | | Home | | PgUp | | |
+ * |Backsp| Del |------| |------| Enter| Space|
+ * | | | End | | PgDn | | |
+ * `--------------------' `--------------------'
+ *
+ * M(0) = Ctrk+A Esc
+ * (this is used to issue the Esc key to the Tmux application)
+ * M(1) = Ctrk+A P
+ * (this is used to issue the Paste key to the Tmux application)
+ * M(2) = Cmd+C
+ * M(3) = Cmd+V
+ */
+[BASE]=KEYMAP(//left half
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MEH_T(KC_F16),
+ CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_FN2, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_F18),
+ KC_FN1, TG(KEYPAD), KC_LCTRL, KC_LALT, KC_LGUI,
+ M_TESC, M_TPASTE,
+ KC_HOME,
+ KC_BSPC, KC_DELT, KC_END,
+ //right half
+ KC_POWER, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ MEH_T(KC_F17), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL,
+ KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT),
+ ALL_T(KC_F19), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_FN2,
+ KC_RGUI, KC_RALT, CTL_T(KC_LBRC), KC_FN3, KC_FN1,
+ M_OSXCPY, M_OSXPST,
+ KC_PGUP,
+ KC_PGDN, KC_ENT, KC_SPC),
+
+/* Keymap 1: KeyPad Layer
+ *
+ * ,-----------------------------------------------------. ,-----------------------------------------------------.
+ * | | | LClk | RClk | MClk | | | | BTab | Clear| / | * | ^ | ( | |
+ * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------|
+ * | M.Accel 2 | |ScrlUp| U |ScrlDn| | | | Tab | 7 | 8 | 9 | + | ) | |
+ * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
+ * | M.Accel 1 | | L | D | R | |------| |------| 4 | 5 | 6 | - | | |
+ * |-----------+------+------+------+------+------| | |Return|------+------+------+------+------+-----------|
+ * | M.Accel 0 | |ScrlL | |ScrlR | | | | | 1 | 2 | 3 | = | | |
+ * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
+ * | | XXXX | | | | | 0 | . | , | XXXX | |
+ * `-----------------------------------' `-----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | XXXX | |
+ * | | |------| |------| XXXX | |
+ * | | | | | | XXXX | |
+ * `--------------------' `--------------------'
+ */
+[KEYPAD]=KEYMAP(//left half
+ KC_NO, KC_NO, KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, KC_NO, KC_NO,
+ KC_MS_ACCEL2, KC_NO, KC_MS_WH_UP, KC_MS_U, KC_MS_WH_DOWN, KC_NO, KC_NO,
+ KC_MS_ACCEL1, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO,
+ KC_MS_ACCEL0, KC_NO, KC_MS_WH_LEFT, KC_NO, KC_MS_WH_RIGHT, KC_NO, KC_NO,
+ KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, KC_NO,
+ //right half
+ LSFT(KC_TAB), KC_CLEAR, KC_KP_SLASH, KC_KP_ASTERISK, KC_CIRCUMFLEX, KC_LPRN, KC_NO,
+ KC_TAB, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_RPRN, KC_NO,
+ KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_MINUS, KC_NO, KC_NO,
+ KC_KP_ENTER, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_EQUAL, KC_NO, KC_NO,
+ KC_KP_0, KC_KP_DOT, KC_KP_COMMA, KC_TRNS, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_TRNS, KC_NO),
+
+/* Keymap 2: Functions Layer
+ *
+ * ,-----------------------------------------------------. ,-----------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | Vol. Up |
+ * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------|
+ * | | Stop | Rw | Rec | FF | | XXXX | | XXXX | | | | | | Vol. Down |
+ * |-----------+------+------+------+------+------| XXXX | | XXXX |------+------+------+------+------+-----------|
+ * | CapsLock | Eject| Prev | Play | Next | |------| |------| Left | Down | Up | Right| | Mute |
+ * |-----------+------+------+------+------+------| XXXX | | XXXX |------+------+------+------+------+-----------|
+ * | L Shift | | | | | | XXXX | | XXXX | | | | | | R Shift |
+ * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
+ * | XXXXX | | XXXX | XXXX | XXXX | | XXXX | XXXX | XXXX | | XXXXX |
+ * `-----------------------------------' `-----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ *
+ * XXX = These keys are transparent keys that, when pressed, they issue the key from the previous layer.
+ */
+[FN]=KEYMAP(//left half
+ KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
+ KC_NO, KC_MEDIA_STOP, KC_MEDIA_REWIND, KC_MEDIA_SELECT, KC_MEDIA_FAST_FORWARD, KC_NO, KC_TRNS,
+ KC_CAPS, KC_MEDIA_EJECT, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_NO,
+ KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
+ KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, KC_NO,
+ //right half
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLU,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, KC_MUTE,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, KC_NO)};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_ONESHOT(FN),
+ [2] = ACTION_MODS_ONESHOT(MOD_LSFT), // Sticky shift light. Tap for the next keypress to be shifted. Hold for regular shift.
+ [3] = ACTION_LAYER_TAP_KEY(KEYPAD, KC_RBRC),
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ // MACRODOWN only works in this function
+ switch(id) {
+ case MACRO_TMUX_ESC:
+ if (record->event.pressed) {
+ return MACRO(D(LCTRL), T(A), U(LCTRL), D(ESC), END);
+ }
+ return MACRO(U(ESC), END);
+ case MACRO_TMUX_PASTE:
+ if (record->event.pressed) {
+ return MACRO(D(LCTRL), T(A), U(LCTRL), D(P), END);
+ }
+ return MACRO(U(P), END);
+ case MACRO_OSX_COPY:
+ if (record->event.pressed) {
+ return MACRO(D(LGUI), D(C), END);
+ }
+ return MACRO(U(C), U(LGUI), END);
+ case MACRO_OSX_PASTE:
+ if (record->event.pressed) {
+ return MACRO(D(LGUI), D(V), END);
+ }
+ return MACRO(U(V), U(LGUI), END);
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+};
+
+uint8_t current_layer = BASE;
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_led_all_off();
+ ergodox_led_all_set(LED_BRIGHTNESS_LO);
+
+ switch (layer) {
+ case BASE:
+ current_layer = BASE;
+ break;
+ case KEYPAD:
+ current_layer = KEYPAD;
+ break;
+ default:
+ // none
+ break;
+ }
+
+ // layer leds
+ if (current_layer == KEYPAD) {
+ ergodox_right_led_3_on();
+ }
+
+ // capslock
+ if (host_keyboard_leds() & (3<<USB_LED_CAPS_LOCK)) {
+ ergodox_right_led_1_on();
+ }
+
+ // Temporary leds
+
+ // The function layer takes over other layers and we need to reflect that on the leds.
+ // If the current layer is the BASE, we simply turn on the FN led, but if the current
+ // layer is the KEYPAD, than we must turn it off before turning on the FN led.
+ if (layer == FN && !has_oneshot_layer_timed_out()) {
+ ergodox_right_led_3_off();
+ ergodox_right_led_2_on();
+ }
+
+ // if the shifted is pressed I show the case led in a brighter color. This is nice to
+ // differenciate the shift from the capslock.
+ // Notice that I make sure that we're not using the shift on a chord shortcut (pressing
+ // shift togather with other modifiers).
+ if((keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) && // is shift pressed and there is no other
+ !(keyboard_report->mods & (~MOD_BIT(KC_LSFT) & ~MOD_BIT(KC_RSFT)))) || // modifier being pressed as well
+ (get_oneshot_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) && !has_oneshot_mods_timed_out())) { // or the one shot shift didn't timed out
+ ergodox_right_led_1_set(LED_BRIGHTNESS_HI);
+ ergodox_right_led_1_on();
+ }
+};
diff --git a/keyboard/ergodox_ez/keymaps/townk_osx/makefile.mk b/keyboard/ergodox_ez/keymaps/townk_osx/makefile.mk
new file mode 100644
index 0000000000..e757557bda
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/townk_osx/makefile.mk
@@ -0,0 +1,4 @@
+# I don't want my keyboard blinking lights when is suppose to be asleep.
+SLEEP_LED_ENABLE = no
+
+CONFIG_H = keymaps/$(KEYMAP)/config.h
diff --git a/keyboard/ergodox_ez/keymaps/townk_osx/readme.md b/keyboard/ergodox_ez/keymaps/townk_osx/readme.md
new file mode 100644
index 0000000000..c2853ca173
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/townk_osx/readme.md
@@ -0,0 +1,77 @@
+# Townk's Keymap
+
+Trying to take care of an enjury on my arm I borrow an ergonomic keyboard from
+a frient ([Kinesis Advantage](http://www.kinesis-ergo.com/shop/advantage-pro-for-pc-mac/)).
+
+I really enjoyed my time with it but there were some anoyancies:
+
+* The curvature on the keys bothered me since I'm a Vim user and using the
+ motion keys on my editor was awkard.
+* I had to spend too much time remapping the keyboard to make some symbol keys
+ more accessible to me.
+* The fact that my hands had to stay close to each other was a bit stressfull
+ to my sholders.
+
+After a long research I find out that Ergodox EZ would be perfect for my needs
+and purchase one. Before the keyboard even got in my hands I started to think
+on the layout I would use on it and soon enough I planed couple adjustments
+from the Kinesis I was using so far.
+
+## The layout
+
+Here are the layout mapping in images so you can have a glimpse on it:
+
+![Base Layout](townk_osx_base.png)
+![fn Layout](townk_osx_fn.png)
+![Keypad & Mouse Layout](townk_osx_keypad.png)
+
+Notice that, differently from the default behavior, my layer keys are not transparent
+by default, which means that if you press any non-labeled white key, nothing will be
+handled to the OS.
+
+### One shot keys
+
+It all started with the access to the function keys (F1, F2, F3...), since
+those keys are located on a different layer I needed a way to press them with
+minimal effort without disrupting my flow.
+
+For me, togglihg a layer to press a button and than toggle it back is a waste
+of time (although I admit it's a single tap from what I have), so I decided to
+do it as a one shot key. I could press it and the next pressed key would be
+handled by the target layer which just after it delivers the key to the OS it
+would get back to the previous layer.
+
+After setting up my layout to do just that I realized that occasionally I
+would stop myseld on the middle of the process and the one shot layer would be
+still triggered until I press any other key. So to prevent me from tapping
+keys I don't want I added a timeout of 3 seconds for the one shot actions.
+
+Ultimately I tested the shift key as a one shot one and really like it, so
+here you have it, all the one shot keys on my layout.
+
+## Glossary
+
+If you're not familiar with the Mac symbols used on some keys, here is a
+reference to them:
+
+| Symbol | Description |
+| :----: | ------------------- |
+| ⌘ | Command |
+| ⇪ | Caps Lock |
+| ⇧ | Shift |
+| ⌥ | Option (alt) |
+| ⎋ | Esc |
+| ⇥ | Tab forward |
+| ⇤ | Tab backward |
+| ⌃ | Control |
+| ␣ | Space |
+| ⌫ | Backspace |
+| ⌦ | Delete |
+| ⏎ | Enter |
+| ⌤ | Return |
+| ⌽ | Power on/off button |
+| ↖ | Home |
+| ↘ | End |
+| ⇞ | Page up |
+| ⇟ | Page down |
+| ⌧ | Clear |
diff --git a/keyboard/ergodox_ez/keymaps/townk_osx/townk_osx.hex b/keyboard/ergodox_ez/keymaps/townk_osx/townk_osx.hex
new file mode 100644
index 0000000000..868d86e82d
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/townk_osx/townk_osx.hex
@@ -0,0 +1,1166 @@
+:100000000C9474020C94B8020C94B8020C94B802CC
+:100010000C94B8020C94B8020C94B8020C94B80278
+:100020000C94B8020C94B8020C94ED0C0C94BF0D17
+:100030000C94141C0C94B8020C94B8020C94B802E2
+:100040000C94B8020C94B8020C94B8020C94B80248
+:100050000C94B8020C947C1C0C94B8020C94B8025A
+:100060000C94B8020C94B8020C94B8020C94B80228
+:100070000C94B8020C94B8020C94B8020C94B80218
+:100080000C94B8020C94B8020C94B8020C94B80208
+:100090000C94B8020C94B8020C94B8020C94B802F8
+:1000A0000C94B8020C94B8020C94B8022C0E4E0EAC
+:1000B0003C0F4E0E3C0F930EB60E3C0F0B0F1E0F57
+:1000C00029122912551255129D12BB1237143714DA
+:1000D000C61237147B137B132814371437143114CA
+:1000E0008813881388138813881388138813881338
+:1000F0008813881388138813881388138813881328
+:100100009913A713AE13B513BF13021902E300012D
+:10011000E3011900020602E30001E30106000213F5
+:100120000001E00104020402E001130002290001C1
+:10013000E00104020402E00129000000F4A2002210
+:1001400030A135002B003171C200C10000001E003B
+:10015000140004001D0001544D001F001A00160079
+:100160001B00E0004C002000080007000600E20031
+:100170002A002100150009001900E3004A002200AE
+:1001800017000A00050000000A3029006B77000004
+:100190006D7F00000B3066006C7700006E7F000002
+:1001A0000C3023001C000B00110000000D30240057
+:1001B00018000D001000E7004B0025000C000E0099
+:1001C0003600E6002C00260012000F0037002F71C9
+:1001D00028002700130033003800C3004E002D0014
+:1001E0002E003471C200C10000000000FF00FE00BC
+:1001F000FD00000000000000000000000000010001
+:100200000000F400F900F200FB0000000000F5001F
+:10021000F000F100000000000000F600FA00F3001A
+:10022000FC000000000000000000000000000000D2
+:1002300000000000000000000000000000002B0291
+:100240002B0000005800000000009C005F005C00D4
+:10025000590000000000540060005D005A00620078
+:100260000000550061005E005B0063000000230297
+:100270005700560067008500010026022702000093
+:10028000000001000000000000000000000000006D
+:100290000000000000003900E100010000003A0009
+:1002A000AD00B0000000000000003B00BC00AC004E
+:1002B0000000010000003C00AF00AE0000000100A3
+:1002C00000003D00BB00AB000000010000003E004C
+:1002D000000000000000000000003F0001000000DE
+:1002E00001000000000040000100000001000000CB
+:1002F000000041000000500000000000000042002B
+:100300000000510000000100000043000000520006
+:10031000000001000000440000004F000000010048
+:100320000000450000000000000000000000A900DF
+:10033000AA00A800E50001000000160345007200B5
+:1003400067006F0044006F007800200045005A00ED
+:10035000000016034500720067006F0044006F0044
+:100360007800200045005A00000004030904090237
+:100370006D00040100A0FA0904000001030101005E
+:10038000092111010001223F000705810308000A2D
+:1003900009040100010301020009211101000122E9
+:1003A0004D000705820308000A090402000103004A
+:1003B000000009211101000122360007058303080E
+:1003C000000A0904030001030000000921110100D3
+:1003D00001223900070584031000011201100100F9
+:1003E000000008EDFE0713010001020001050109EC
+:1003F00006A101050719E029E715002501950875F3
+:1004000001810205081901290595057501910295DB
+:10041000017503910105071900297715002501953C
+:100420007875018102C005010980A10185021601CC
+:100430000026B7001A01002AB70075109501810047
+:10044000C0050C0901A1018503160100269C021AB2
+:1004500001002A9C02751095018100C00501090266
+:10046000A1010901A10005091901290515002501AE
+:10047000950575018102950175038101050109301A
+:1004800009311581257F9502750881060938158186
+:10049000257F950175088106050C0A38021581250E
+:1004A0007F950175088106C0C005010906A10105F7
+:1004B0000719E029E71500250195087501810295C6
+:1004C0000175088101050819012905950575019136
+:1004D000029501750391010507190029FF150025F3
+:1004E000FF950675088100C011241FBECFEFDAE02A
+:1004F000DEBFCDBF04B603FE24C08091F30190910E
+:10050000F401A091F501B091F6018730904BA7401E
+:10051000B04BB9F41092F3011092F4011092F5016E
+:100520001092F60114BE84B7877F84BF88E10FB6AE
+:10053000F89480936000109260000FBEE0E0FFE34B
+:10054000099511E0A0E0B1E0E0E9F8E402C005900F
+:100550000D92A433B107D9F711E0A4E3B1E001C0D3
+:100560001D92A33FB107E1F70E94330A0C94462481
+:100570000C940000FC016B3079F018F46A3031F013
+:100580001DC06C3079F06D3099F018C082818111F6
+:1005900018C08CE291E008958281811115C08EE12E
+:1005A00091E008958281811112C084E191E0089563
+:1005B000828181110FC08AE091E0089580E090E08F
+:1005C00008958FE291E0089581E291E0089589E134
+:1005D00091E008958FE091E008950895CF936091A0
+:1005E000B2017091B3018091B4019091B5010E9464
+:1005F0007F1BC82F56985E9825982D9826982E9880
+:1006000027982F988FE090E090938900809388003E
+:1006100090938B0080938A0090938D0080938C0040
+:10062000CC2329F0C13029F4C093340102C01092C8
+:10063000340180913401813011F4279A2F9A0E945D
+:10064000750F867011F0259A2D9AC23041F40E94E0
+:10065000081A811104C027982F98269A2E9AE091A3
+:100660000E01F0910F018081982F927259F08D7DCB
+:1006700049F48FEF90E09093890080938800259A49
+:100680002D9A08C00E94351B827221F00E94DB194E
+:10069000882379F3CF9108950C94EE0256985E98D2
+:1006A00025982D9826982E9827982F988FEF90E0D0
+:1006B000909389008093880090938B0080938A00A8
+:1006C00090938D0080938C00259A2D9A2FEF80E7D0
+:1006D00092E0215080409040E1F700C00000269A4F
+:1006E0002E9A2FEF80E792E0215080409040E1F772
+:1006F00000C00000279A2F9A2FEF80E792E0215048
+:1007000080409040E1F700C0000025982D982FEF21
+:1007100080E792E0215080409040E1F700C0000067
+:1007200026982E982FEF80E792E02150804090404D
+:10073000E1F700C0000027982F9856985E982598FA
+:100740002D9826982E9827982F98089589EA8093B7
+:10075000800089E08093810024982C983F988AB18A
+:100760008F748AB96E98479A8BB1806B8BB9769AE1
+:100770000E944E030C94ED0280E280930001809170
+:10078000350181110EC00E940B0481E08093350178
+:100790002FEF83ED90E3215080409040E1F700C0BF
+:1007A000000080E40E9411048093000181112EC09A
+:1007B0000E943B0480930001811128C00E943B04E9
+:1007C00080930001811122C08FE30E943B0480933B
+:1007D000000181111BC00E94330480E40E941104B7
+:1007E00080930001811112C08CE00E943B04809331
+:1007F000000181110BC00E943B0480930001811114
+:1008000005C08FE30E943B04809300010E943304E3
+:100810008091000108951092B9008AE08093B80099
+:10082000089594EA9093BC009091BC0097FFFCCF90
+:100830009091B900987F983021F0903111F081E0CB
+:1008400008958093BB0084E88093BC008091BC0035
+:1008500087FFFCCF8091B900887F883111F0803408
+:1008600071F780E0089584E98093BC008091BC001A
+:1008700084FDFCCF08958093BB0084E88093BC0086
+:100880008091BC0087FFFCCF9091B900987F81E0F8
+:10089000983209F480E0089584E88093BC00809148
+:1008A000BC0087FFFCCF8091BB00089580910001C0
+:1008B000811115C080E40E94110480930001811110
+:1008C0000CC082E10E943B0480930001811105C0AD
+:1008D0008FEF0E943B04809300010E94330484B197
+:1008E000807F84B985B1807F85B98AB1837F8AB9D9
+:1008F0008BB1837F8BB93E98469808950E94BC03C4
+:10090000809300010E94560480B38C7080BB81B339
+:10091000836F81BBA7E3B1E0E5E4F1E08EE08E0FE9
+:1009200011921D928E13FCCF0C94A603BF92CF920E
+:10093000DF92EF92FF920F931F93CF93DF938091FB
+:100940000001882379F0809136018F5F8093360112
+:10095000811108C00E94BC0380930001811102C074
+:100960000E944E0307E311E0C0E0D0E0DD24D39401
+:1009700082E0C82EEE24E394F12CC730D10500F5B7
+:1009800080910001811164C080E40E941104809371
+:100990000001811112C082E10E943B04809300019A
+:1009A00081110BC0C7010C2E01C0880F0A94EAF711
+:1009B00080950E943B04809300010E94330448C04C
+:1009C000CA30A1F028F4C83059F0C93061F005C030
+:1009D000CC3089F070F0CD3089F0209A289810C082
+:1009E000219A29980DC0229A2A980AC0239A2B98F6
+:1009F00007C0529A01C0539A5B9802C03E9A46982B
+:100A000090EA9A95F1F79FB1799902C082E001C00E
+:100A100080E091709D25982B7C9902C084E001C0F4
+:100A200080E0892B7D9902C038E001C030E0832B43
+:100A30007E9902C020E101C020E0822B9FB19095F9
+:100A4000991F9927991F9295990F907E892B0FC016
+:100A500080910001811149C080E40E9411048093BB
+:100A60000001882379F1B12C0E9433048B2DF80109
+:100A70009081981719F08083C09201010E9456045A
+:100A800021960F5F1F4FCE30D10509F076CF8091B0
+:100A90000101882361F1815080930101882339F09D
+:100AA0008FE99FE00197F1F700C0000020C0A5E4A6
+:100AB000B1E0E7E3F1E0CF01825F91919D938E1366
+:100AC000FCCF15C083E10E943B048093000181119B
+:100AD000CACF81E40E941104809300018111C3CF29
+:100AE0000E944C04B82EB094BFCF80E0C0CF0E94CB
+:100AF0004C0381E0DF91CF911F910F91FF90EF9018
+:100B0000DF90CF90BF900895E82FF0E0EB5BFE4FB1
+:100B1000808108950895089596E0799FF001112449
+:100B200094E5899FE00DF11D1124E60FF11DEE0FF4
+:100B3000FF1FEE5BFE4F859194910895880F991FDA
+:100B4000FC01E654F040859194910895880F991F17
+:100B5000FC01E65CFE4F8591949108950F931F93DD
+:100B6000CF93DF93EC018115904350F5C11580E2DE
+:100B7000D80708F0B3C0CB3BD10590F4C83AD105F3
+:100B800008F05AC0C53AD10508F04BC0C430D105B1
+:100B900008F0CCC1219709F0C6C101E010E006C2FF
+:100BA000CF3FD10511F008F0C1C1C03FD10508F019
+:100BB00092C0CE01805E9109089708F4B7C1B3C115
+:100BC000C11591E5D907A8F4C23020E5D20708F095
+:100BD0009EC0C11580E5D80709F485C008F091C012
+:100BE000C11520E4D20708F09EC1DD278E01106CEC
+:100BF000DDC1C11580E8D80758F4C11590E7D907C1
+:100C000008F08DC1C11520E6D20708F422C18BC1BE
+:100C1000C11580E9D80708F086C1DF708E01106A1F
+:100C2000C5C1C53AD10509F483C1C63AD10509F059
+:100C300082C102E810E4BAC1C83AD10509F47EC104
+:100C4000C93AD10509F47DC1CA3AD10509F47CC17C
+:100C5000CB3AD10509F47BC1CC3AD10509F47AC16C
+:100C6000CD3AD10509F479C1C03BD10509F478C169
+:100C7000CE3AD10509F477C1CF3AD10509F476C14E
+:100C8000C13BD10509F475C1C23BD10509F474C15A
+:100C9000C33BD10509F473C1C43BD10509F472C14A
+:100CA000C53BD10509F471C1C63BD10509F470C13A
+:100CB000C73BD10509F46FC1C83BD10509F46EC12A
+:100CC000C93BD10509F46DC1CA3BD10509F46CC11A
+:100CD00000E014E46BC18E01106568C1CE019F7005
+:100CE0000E94A60564C10E948B149FEF24E38CE050
+:100CF000915020408040E1F700C000000E94A11CFC
+:100D000055C18091D40181608093D4014FC10E946C
+:100D10004A1E811102C00E94301E0E94671E90E090
+:100D20009093F3018093F201C23090E5D90721F44A
+:100D30008091F201816086C0C43020E5D20721F4A1
+:100D40008091F20182607EC0C63080E5D80721F430
+:100D50008091F201846076C0C83090E5D90719F41B
+:100D60008091F20127C0CA3020E5D20721F480919A
+:100D7000F201806167C0CC3080E5D80721F4809112
+:100D8000F20180625FC0CE3090E5D90721F48091F6
+:100D9000F201806457C0C03120E5D20721F4809170
+:100DA000F20180684FC0C23180E5D80729F48091F4
+:100DB000F2018460886046C0C33090E5D90721F411
+:100DC0008091F2018E7F3EC0C53020E5D20721F42C
+:100DD0008091F2018D7F36C0C73080E5D80721F4BD
+:100DE0008091F2018B7F2EC0C93090E5D90719F4AC
+:100DF0008091F20126C0CB3020E5D20721F480910A
+:100E0000F2018F7E1FC0CD3080E5D80721F480919C
+:100E1000F2018F7D17C0CF3090E5D90721F4809182
+:100E2000F2018F7B0FC0C13120E5D20721F4809100
+:100E3000F2018F7707C0C331D04531F48091F201C0
+:100E40008B7F877F8093F2018091F2010E946B1E5D
+:100E5000ADC08D2F99278F70992781309105D9F4D6
+:100E60009E012370332702C0880F991F2A95E2F74D
+:100E70009C688E0144E0000F111F4A95E1F700279E
+:100E80001370802B912B53E0CC0FDD1F5A95E1F7A7
+:100E9000C076DD272FC08230910531F4DC2FCC27BE
+:100EA0008E01016F106A82C08330910569F4CE0112
+:100EB0008370992701E010E002C0000F111F8A958E
+:100EC000E2F7C8019C680FC084309105B9F4CE01E7
+:100ED0008370992701E010E002C0000F111F8A956E
+:100EE000E2F7C8019A6823E0CC0FDD1F2A95E1F7ED
+:100EF000C07ED7708C010C2B1D2B58C085309105FE
+:100F000031F4DC2FCC278E01046F106A4FC0069796
+:100F100009F04CC0CF71DD27DC2FCC2701C0DF707A
+:100F20008E01106243C000E010E040C08E013EC060
+:100F300001E810E43BC003E810E438C002EE14E41A
+:100F400035C009EE14E432C00AEE14E42FC005EBFC
+:100F500014E42CC006EB14E429C007EB14E426C00B
+:100F60000CEC14E423C00DEC14E420C003E815E4F9
+:100F70001DC00AE815E41AC002E915E417C004E927
+:100F800015E414C001E216E411C003E216E40EC039
+:100F900004E216E40BC005E216E408C006E216E41B
+:100FA00005C007E216E402C00AE216E4C801DF91B8
+:100FB000CF911F910F91089596E0799FF001112430
+:100FC00094E5899FE00DF11D1124E60FF11DEE0F50
+:100FD000FF1FEE5BFE4F85919491803E9105E0F4FA
+:100FE000803C910558F58133910509F46FC048F4B0
+:100FF0008932910509F463C08A32910509F46DC004
+:1010000072C089339105E9F082389105D1F08533BA
+:10101000910509F44DC067C0833E910581F138F414
+:10102000803E9105B9F0823E9105D9F05CC0863EC4
+:10103000910561F1873E9105A1F155C00E949E0581
+:1010400008952091F20120FD02C021FF4CC080EEE6
+:1010500090E049C08091F20180FFF9CF89E390E0F0
+:1010600042C08091F20182FF0EC08091F20184FFA4
+:1010700003C080E090E037C083EE90E034C0809100
+:10108000F20182FFF2CF82EE90E02DC08091F2015A
+:1010900083FF0BC08091F20184FDEBCF87EE90E0DF
+:1010A00022C08091F20183FFF5CF86EE90E01BC055
+:1010B0008091F20185FF07C089E290E014C0809121
+:1010C000F20185FFF9CF85E390E00DC08091F20138
+:1010D00086FF07C08AE290E006C08091F20186FF99
+:1010E000F9CF81E390E00E94AE05089508950C9435
+:1010F0007608809163010895CF93DF9300D01F920B
+:10110000CDB7DEB79C018091E901843019F593E0F9
+:1011100099833B832A839093E9008FEF9091E800B5
+:10112000815095FD06C095ED9A95F1F7000081116B
+:10113000F5CF8091E80085FF0DC040E050E063E00E
+:1011400070E0CE0101960E94DD0A8091E8008E7762
+:101150008093E8000F900F900F90DF91CF9108954A
+:10116000CF93DF9300D01F92CDB7DEB72091E90176
+:10117000243021F522E029839B838A8383E08093B6
+:10118000E9008FEF9091E800815095FD06C095ED44
+:101190009A95F1F700008111F5CF8091E80085FF65
+:1011A0000DC040E050E063E070E0CE0101960E9487
+:1011B000DD0A8091E8008E778093E8000F900F9011
+:1011C0000F90DF91CF9108952091E9012430F1F43F
+:1011D00022E02093E9002FEF3091E800215035FD07
+:1011E00006C035ED3A95F1F700002111F5CF2091B9
+:1011F000E80025FF0BC040E050E065E070E00E9491
+:10120000DD0A8091E8008E778093E8000895CF93FF
+:10121000DF93EC019091E901943009F046C0809190
+:101220000C018823D9F080910D018823B9F09093A7
+:10123000E9008FEF9091E800815095FD06C095E19F
+:101240009A95F1F700008111F5CF8091E80085FFB4
+:101250002CC040E050E060E170E017C081E0809376
+:10126000E9008FEF9091E800815095FD06C095ED63
+:101270009A95F1F700008111F5CF8091E80085FF84
+:1012800014C040E050E068E070E0CE010E94DD0A4A
+:101290008091E8008E778093E80080E1FE01A3E56D
+:1012A000B1E001900D928A95E1F7DF91CF91089519
+:1012B0008091E801811109C00E94720C0E94CF0C3C
+:1012C0008091E20084608093E20008951092E8012A
+:1012D0000895089508950C940E1C42E061EC81E09D
+:1012E0000E94EC0B42E061EC82E00E94EC0B42E0D9
+:1012F00061EC83E00E94EC0B42E161EC84E00C9431
+:10130000EC0B8091EB01833009F455C030F481304F
+:1013100071F0823009F48EC008958A3009F47AC0E1
+:101320008B3009F460C0893009F09CC020C08091E6
+:10133000EA01813A09F096C08091E800877F8093A6
+:10134000E8008091EE019091EF01892B21F460E19A
+:1013500083E591E003C060E080E090E070E00E94EF
+:10136000280B8091E8008B778093E80008958091A6
+:10137000EA01813209F076C08091EE019091EF018F
+:10138000009719F0039709F06DC08091E800877FFE
+:101390008093E8008091E80082FD05C08091E9011A
+:1013A0008111F8CF5FC08091F1008093630180913B
+:1013B000E8008B7753C08091EA01813A09F052C06E
+:1013C0008091EE019091EF01892B09F04BC0809143
+:1013D000E800877F8093E8008091E80080FFFCCFE1
+:1013E00080910C0136C08091EA018132D9F580915B
+:1013F000EE019091EF01892BA9F58091E800877F9C
+:101400008093E8000E94210C8091EC0180930C01F4
+:101410000C948B148091EA01813221F58091E800CF
+:10142000877F8093E8000E94210C8091ED018093DA
+:10143000640108958091EA01813AA1F48091E80065
+:10144000877F8093E8008091E80080FFFCCF809147
+:1014500064018093F1008091E8008E778093E8002A
+:101460000C94210C089584B7877F84BF88E10FB660
+:10147000F89480936000109260000FBE90E080E8C6
+:101480000FB6F89480936100909361000FBE0E94A4
+:10149000C40F0E94720C0E94CF0C8091E200846005
+:1014A0008093E20078940E94550F0E94C60F82E05C
+:1014B00091E00E94700F8091E901853069F40E94EB
+:1014C000CF1B8091E7018823B1F30E94FA1B882388
+:1014D00091F30E94C70AEFCF0E94CC0FECCF292FC7
+:1014E000332723303105C9F064F42130310581F010
+:1014F0002230310509F043C08DE690E02EE633E05E
+:1015000042C021323105F1F02232310541F137C0BC
+:1015100082E190E02BED33E036C0992781309105D0
+:1015200041F08230910541F0892B49F5EAE6F3E07C
+:1015300005C0E2E5F3E002C0EAE3F3E0849190E065
+:101540009F0121C06430D8F4E62FF0E0EE0FFF1FBA
+:10155000EE5DFE4F2081318189E090E014C064305F
+:1015600070F470E0FB01EE0FFF1FE65EFE4F20817E
+:101570003181FB01EA5EFE4F808190E004C080E093
+:1015800090E020E030E0FA0131832083089580E18B
+:1015900089BD82E189BD09B400FEFDCF8091D800EC
+:1015A0008F7D8093D8008091E00082608093E0007E
+:1015B0008091E00081FDFCCF0895CF92DF92EF9201
+:1015C000FF920F931F93CF93DF93EC018B016A017E
+:1015D0000E94400C811133C0C114D10439F0F601CE
+:1015E00080819181081B190BC80FD91FE12CF12CA8
+:1015F0000115110519F18091E80085FD16C0809153
+:10160000E8008E778093E800C114D10449F0F60118
+:1016100080819181E80EF91EF182E08285E00FC0A1
+:101620000E94400C882321F30AC089918093F10025
+:1016300001501109FFEFEF1AFF0ADACF80E0DF91C6
+:10164000CF911F910F91FF90EF90DF90CF90089571
+:101650002091F0013091F1012617370748F061150C
+:10166000710539F42091E8002E772093E80001C03D
+:10167000B90140E061157105A9F12091E90122232A
+:1016800009F443C0253009F442C02091E80023FD4D
+:1016900040C02091E80022FD32C02091E80020FFE8
+:1016A000E9CF4091F3002091F20030E0342BFC01AF
+:1016B000CF016115710559F02830310540F4819151
+:1016C0008093F100615071092F5F3F4FF1CF41E0EE
+:1016D0002830310509F040E02091E8002E77209372
+:1016E000E800C8CF4111C9CF0AC08091E901882321
+:1016F00061F0853061F08091E80083FD0AC080913F
+:10170000E80082FFF2CF80E0089582E0089583E050
+:10171000089581E008952091F0013091F10126179C
+:10172000370748F06115710539F42091E8002E77EC
+:101730002093E80001C0B901FC0120E061157105AA
+:1017400091F18091E901882309F440C0853009F4C2
+:101750003FC08091E80083FD3DC08091E80082FD9C
+:101760002FC08091E80080FFE9CF2091F3008091A5
+:10177000F20090E0922B6115710559F088309105C7
+:1017800040F424912093F100319661507109019643
+:10179000F2CF21E0089709F020E08091E8008E77F1
+:1017A0008093E800CBCF2111CCCF0AC08091E90112
+:1017B000882361F0853061F08091E80083FD0AC0E4
+:1017C0008091E80082FFF2CF80E0089582E00895E2
+:1017D00083E0089581E00895982F973058F590930D
+:1017E000E900981739F07091EC002091ED005091CC
+:1017F000F00003C0242F762F50E021FF19C0309154
+:10180000EB003E7F3093EB003091ED003D7F309355
+:10181000ED003091EB0031603093EB007093EC0001
+:101820002093ED005093F0002091EE0027FF07C0B9
+:101830009F5FD3CF8F708093E90081E0089580E0AF
+:1018400008958091EA0187FF11C08091E80082FD30
+:1018500005C08091E9018111F8CF11C08091E800A5
+:101860008B770BC08091E901882349F08091E800D3
+:1018700080FFF8CF8091E8008E778093E80008958C
+:101880002091E4003091E50095E64091EC00842F32
+:10189000817040FF22C08091E80080FD1CC08091D3
+:1018A000E901882391F0853091F08091EB0085FD6E
+:1018B00010C04091E4005091E5004217530729F30E
+:1018C0009A01915011F784E0089582E0089583E031
+:1018D000089581E0089580E008954091E80042FF76
+:1018E000DECF08950E94E00C0E94E80CE0EEF0E0EC
+:1018F000808181608083E8EDF0E080818F77808354
+:1019000019BCA7EDB0E08C918E7F8C9380818F7E87
+:1019100080831092E80108950F931F93CF93DF9374
+:101920000E94E00C0E94E80CC8EDD0E088818F771F
+:10193000888388818068888388818F7D888319BCAB
+:101940001092E9011092E5011092E7011092E60170
+:1019500000EE10E0F80180818B7F808388818160B8
+:10196000888342E060E080E00E94EC0BE1EEF0E072
+:1019700080818E7F8083E2EEF0E0808181608083D1
+:10198000808188608083F80180818E7F8083888158
+:1019900080618883DF91CF911F910F910895E8EDC9
+:1019A000F0E080818F7E8083E7EDF0E080818160D0
+:1019B000808384E082BF81E08093E8010C948C0CEA
+:1019C000E8EDF0E080818E7F80831092E200089540
+:1019D0001092DA001092E10008951F920F920FB654
+:1019E0000F9211242F933F934F935F936F937F93A5
+:1019F0008F939F93AF93BF93EF93FF938091E100F9
+:101A000082FF0BC08091E20082FF07C08091E1005D
+:101A10008B7F8093E1000E94540F8091DA0080FF59
+:101A20001FC08091D80080FF1BC08091DA008E7F9C
+:101A30008093DA008091D90080FF0DC080E189BDDC
+:101A400082E189BD09B400FEFDCF81E08093E90108
+:101A50000E94580905C019BC1092E9010E9466094C
+:101A60008091E10080FF19C08091E20080FF15C0E5
+:101A70008091E2008E7F8093E2008091E20080619D
+:101A80008093E2008091D80080628093D80019BCD6
+:101A900085E08093E9010E946A098091E10084FF5A
+:101AA00030C08091E20084FF2CC080E189BD82E1DA
+:101AB00089BD09B400FEFDCF8091D8008F7D809351
+:101AC000D8008091E1008F7E8093E1008091E20058
+:101AD0008F7E8093E2008091E20081608093E2003B
+:101AE0008091E501882311F084E007C08091E30034
+:101AF00087FD02C081E001C083E08093E9010E947C
+:101B00006B098091E10083FF29C08091E20083FF8F
+:101B100025C08091E100877F8093E10082E080937F
+:101B2000E9011092E5018091E1008E7F8093E10050
+:101B30008091E2008E7F8093E2008091E2008061DC
+:101B40008093E20042E060E080E00E94EC0B809134
+:101B5000F00088608093F0000E946909FF91EF9186
+:101B6000BF91AF919F918F917F916F915F914F91B5
+:101B70003F912F910F900FBE0F901F9018951F92BD
+:101B80000F920FB60F9211242F933F934F935F93B1
+:101B90006F937F938F939F93AF93BF93CF93DF9375
+:101BA000EF93FF93C091E900CF708091EC00D82FA4
+:101BB000D17080FDD0E81092E9008091F000877F1D
+:101BC0008093F00078940E94030E1092E9008091B7
+:101BD000F00088608093F000CD2BCF70C093E900B7
+:101BE000FF91EF91DF91CF91BF91AF919F918F9135
+:101BF0007F916F915F914F913F912F910F900FBE09
+:101C00000F901F9018951F93CF93DF93CDB7DEB73A
+:101C1000AA970FB6F894DEBF0FBECDBFEAEEF1E093
+:101C200088E08E0F9091F10091938E13FBCF0E946C
+:101C300081098091E80083FF1FC18091EA019091A2
+:101C4000EB01492F50E04A30510508F015C1FA0167
+:101C5000EA5AFF4F0C94F623803881F0823809F05D
+:101C60000BC18091EE018F708093E9008091EB00B1
+:101C700085FB882780F91092E90006C08091E60173
+:101C80009091E701911182609091E800977F909385
+:101C9000E8008093F1001092F100C8C0282F2D7F3A
+:101CA00009F0EAC0882319F0823061F0E5C0809124
+:101CB000EC01813009F0E0C0933009F080E08093BE
+:101CC000E7012BC08091EC01811127C08091EE01CA
+:101CD0008F7009F4D1C08093E9002091EB0020FFC0
+:101CE0001CC0933021F48091EB00806214C090916D
+:101CF000EB0090619093EB0021E030E0A90102C07D
+:101D0000440F551F8A95E2F74093EA001092EA00CB
+:101D10008091EB0088608093EB001092E900809145
+:101D2000E800877F86C08111A7C01091EC011F7762
+:101D30008091E3008078812B8093E3008091E8001C
+:101D4000877F8093E8000E94210C8091E80080FF4B
+:101D5000FCCF8091E30080688093E300111102C002
+:101D600082E001C083E08093E90186C08058823020
+:101D700008F082C08091EC019091ED018C3D53E020
+:101D8000950779F583E08A838AE289834FB7F894CF
+:101D9000DE01139620E03EE051E2E32FF0E05093A5
+:101DA0005700E49120FF03C0E295EF703F5FEF70B2
+:101DB0008E2F90E0EA3010F0C79601C0C0968D9348
+:101DC0009D932F5F243149F74FBF8091E800877FB3
+:101DD0008093E8006AE270E0CE0101960E94280B31
+:101DE00014C0AE014F5F5F4F6091EE010E946F0A19
+:101DF000BC01892B09F440C09091E800977F909333
+:101E0000E80089819A810E948B0B8091E8008B7792
+:101E10008093E80031C0803879F58091E800877FB1
+:101E20008093E8008091E5018093F1008091E800C3
+:101E30008E778093E8000E94210C1EC081111CC087
+:101E40009091EC019230C0F48091E800877F8093FC
+:101E5000E8009093E5010E94210C8091E501811139
+:101E600006C08091E30087FD02C081E001C084E0EC
+:101E70008093E9010E946D098091E80083FF0AC008
+:101E80008091E800877F8093E8008091EB0080627A
+:101E90008093EB00AA960FB6F894DEBF0FBECDBFBD
+:101EA000DF91CF911F9108950895CF938091E9011B
+:101EB0008823A1F0C091E900CF709091EC00892FA8
+:101EC000817090FD80E8C82B1092E9008091E800B5
+:101ED00083FD0E94030ECF70C093E900CF91089557
+:101EE00090936A01809369010895E0916901F091EE
+:101EF0006A01309721F00190F081E02D099480E093
+:101F00000895E0916901F0916A01309721F0028013
+:101F1000F381E02D09940895E0916901F0916A013F
+:101F2000309721F00480F581E02D099408952091E7
+:101F30006701309168018217930771F090936801EF
+:101F400080936701E0916901F0916A01309721F077
+:101F50000680F781E02D0994089520916501309164
+:101F600066018217930771F0909366018093650173
+:101F7000E0916901F0916A01309721F00084F185C8
+:101F8000E02D0994089508950C94C30F0E943D1C00
+:101F90000E947E040C94031DCF92DF92EF92FF9279
+:101FA0000F931F93CF93DF93CDB7DEB72B970FB669
+:101FB000F894DEBF0FBECDBF0E9496048CE6C82EFB
+:101FC00081E0D82E00E010E0E02E802F0E948405F2
+:101FD000F60141916F01F42EF826B1F40F5F1F4F07
+:101FE0000E30110589F78FEF89838A831B820E9447
+:101FF000461C8160782F9D838C8349815A816B8137
+:102000008D810E946F1040C09091D40191FF04C057
+:102010008B870E948A058B8520E030E04F2D50E0B1
+:10202000922FBA01022E02C0759567950A94E2F7C5
+:1020300060FF24C02E83EF8221E030E0690102C0FE
+:10204000CC0CDD1C9A95E2F790E08C219D21892B28
+:1020500009F420E028870E94461C8160782F9A8727
+:1020600089874E815F8168858A850E946F10F8019B
+:10207000E459FE4F8081C826C08206C02F5F3F4FC3
+:102080002630310569F6AACF0E94EA1F10916B0134
+:102090000E94750F1817A1F00E94750F80936B01B5
+:1020A0002B960FB6F894DEBF0FBECDBFDF91CF9158
+:1020B0001F910F91FF90EF90DF90CF900C947708D5
+:1020C0002B960FB6F894DEBF0FBECDBFDF91CF9138
+:1020D0001F910F91FF90EF90DF90CF900895CF93D5
+:1020E000DF93CDB7DEB72B970FB6F894DEBF0FBEE8
+:1020F000CDBF4F83588769877A878B87DE0111961A
+:1021000086E0FD0111928A95E9F785E0FE01379698
+:1021100001900D928A95E1F749815A816B817C810A
+:102120008D819E810E9429172B960FB6F894DEBFF1
+:102130000FBECDBFDF91CF9108950895CF9388232F
+:1021400009F4C2C0C82F823859F40E94750F81FD6E
+:10215000BBC089E30E946C1A0E94491B89E30CC032
+:10216000833879F40E94750F80FDAEC083E50E942C
+:102170006C1A0E94491B83E50E94AE1ACF910C9401
+:10218000491B843859F40E94750F82FD9DC087E475
+:102190000E946C1A0E94491B87E4EECF8CEF8C0FD3
+:1021A000813A48F48C2F0E94252281118DC08C2FFA
+:1021B0000E946C1AE3CF80E28C0F883048F4C7701D
+:1021C00081E001C0880FCA95EAF70E94F51AD6CFC0
+:1021D0008BE58C0F833078F4C53A29F0C63A31F09C
+:1021E00083E890E005C081E890E002C082E890E0DA
+:1021F000CF910C94970F88E58C0F833108F064C061
+:10220000C83A39F1C93A41F1CA3A49F1CB3A51F1E8
+:10221000CC3A59F1CD3A61F1C03B69F1CE3A71F156
+:10222000CF3A79F1C13B81F1C23B89F1C33B91F1D6
+:10223000C43B99F1C53BA1F1C63BA9F1C73BB1F144
+:10224000C83BB9F1C93BC1F1CA3BC9F180E090E09C
+:1022500038C082EE90E035C089EE90E032C08AEE60
+:1022600090E02FC085EB90E02CC086EB90E029C079
+:1022700087EB90E026C08CEC90E023C08DEC90E0E2
+:1022800020C083E891E01DC08AE891E01AC082E98D
+:1022900091E017C084E991E014C081E292E011C09E
+:1022A00083E292E00EC084E292E00BC085E292E00D
+:1022B00008C086E292E005C087E292E002C08AE2AE
+:1022C00092E0CF910C94AD0FCF910895882309F43B
+:1022D0004BC0823859F40E94750F81FF45C089E3D5
+:1022E0000E946C1A0E94491B89E30CC0833871F468
+:1022F0000E94750F80FF38C083E50E946C1A0E940F
+:10230000491B83E50E94AE1A0C94491B843859F48A
+:102310000E94750F82FF28C087E40E946C1A0E94F9
+:10232000491B87E4EFCF9CEF980F913A58F390E266
+:10233000980F983050F4877091E001C0990F8A95FA
+:10234000EAF7892F0E94FB1ADFCF9BE5980F9330A5
+:1023500020F480E090E00C94970F885A833120F4A9
+:1023600080E090E00C94AD0F0895882321F00E9446
+:10237000F51A0C94491B0895882321F00E94FB1A3A
+:102380000C94491B08952F923F924F925F927F9237
+:102390008F929F92AF92BF92CF92DF92EF92FF9275
+:1023A0000F931F93CF93DF9300D000D01F92CDB730
+:1023B000DEB725E0FC01DE01119601900D922A9511
+:1023C000E1F7FC0100811181F280E580E2943FE0B9
+:1023D000E32223813481232B09F472C21F3F19F4B5
+:1023E0000F3F09F46DC26C010E94081A882319F08E
+:1023F00082E00E944A1AC6010E949D1009831A8336
+:1024000069817A818F2D0E94CE198C010E948319D7
+:102410000E944A18F1100E94121B0E94651A88231C
+:1024200079F0FF2069F080E2800F883048F082E088
+:102430000E944A1A0E94651A91E0782E792601C0FE
+:10244000712CE12FE295EF70F0E0E05AFF4F0C9411
+:10245000F623812F807F1F70882311F01295107F43
+:10246000FF2089F0112309F4E8C180E2800F883051
+:1024700020F4812F0E94F51A03C0812F0E94051BB2
+:102480000E94491BDAC1802F0E946611112309F4B2
+:10249000EEC1005E812F083018F40E94FB1A02C0C2
+:1024A0000E940B1B0E94491BE2C1812F807F1F707D
+:1024B000803211F01295107F002319F0013049F19C
+:1024C00032C0FF2091F0EE2091F1F1E0EF1204C054
+:1024D000812F0E94251BCBC122E0E21228C00E945E
+:1024E0002E1B812F0E94D51922C0EE2079F031E0F9
+:1024F000E31208C00E94F21A812309F4B8C10E94B5
+:10250000D81904C042E0E41609F4B1C10E942E1BA0
+:1025100012C0FF2029F051E05E1508F4A8C107C0E1
+:10252000E110A5C108C0FF2021F0E11086C1812F74
+:10253000F7C0E11089C1812FF9C0812F869586955A
+:10254000837090E0009719F0019759F090C1FF2037
+:1025500019F0C801937002C080E090E00E94970FCC
+:1025600086C1FF2019F0C801937002C080E090E09E
+:102570000E94AD0F7CC1802FFF2019F00E94F21E37
+:1025800002C00E945A1F0E94DF1F71C1812F8370F9
+:1025900009F055C0F1106BC1802F82958695877028
+:1025A000880F880F902F9F70492F50E060E070E0F7
+:1025B0001A012B01082E04C0220C331C441C551C8C
+:1025C0000A94D2F704FF15C02FE0822E912CA12C83
+:1025D000B12CA501940104C0220F331F441F551FC5
+:1025E0008A95D2F7CA01B90160957095809590954A
+:1025F00003C060E070E0CB01169516951370412F73
+:1026000050E04230510569F04330510589F06229AC
+:102610007329842995294130510571F00E94711860
+:1026200026C162297329842995290E948D181FC10A
+:102630000E947118C201B1010E94551818C1FF20F3
+:1026400019F0812F817001C08695882309F40FC18C
+:10265000802F829586958770880F880F902F9F70A6
+:10266000492F50E060E070E01A012B01082E04C0F1
+:10267000220C331C441C551C0A94D2F704FF15C0CD
+:102680009FE0892E912CA12CB12CA501940104C0AE
+:10269000220F331F441F551F8A95D2F7CA01B90173
+:1026A000609570958095909503C060E070E0CB01D7
+:1026B000169516951370412F50E04230510569F080
+:1026C0004330510589F062297329842995294130C5
+:1026D000510571F00E944B19CAC0622973298429DF
+:1026E00095290E946719C3C00E944B19C201B1010C
+:1026F0000E942F19BCC0802F90E0FC01E05EF10920
+:10270000E531F10508F094C0E059FF4F0C94F62331
+:102710000F70812F8F71FF2031F00E94C818802F19
+:102720000E94B511A4C00E94E918802F0E94BC111C
+:102730009EC0FF2039F0E1109AC0812F8F710E9456
+:102740000E1995C031E03E1508F491C0F6CFFF2078
+:1027500039F0812F8F710E94C81889C0FF20C9F3FA
+:10276000812F8F710E94E91882C0FF2029F0812FEC
+:102770008F710E94B3187BC00E94A91878C0FF20F7
+:10278000C1F00E94D2190E94FB1A0E94041A8430E0
+:1027900029F40E94431A812F8F717AC041E04E15AF
+:1027A00008F48EC01F71812F0E94C81863E0812F2A
+:1027B0000EC00E94D2190E94F51A51E05E15F8F47D
+:1027C0000E94431A0E94D81964E0812F8F710F90E4
+:1027D0000F900F900F900F90DF91CF911F910F915D
+:1027E000FF90EF90DF90CF90BF90AF909F908F9031
+:1027F0007F905F904F903F902F900C94331A81E020
+:102800000F900F900F900F900F90DF91CF911F912D
+:102810000F91FF90EF90DF90CF90BF90AF909F907F
+:102820008F907F905F904F903F902F900C944A1A1A
+:10283000FF2039F0EE2009F48CCF802F0E949E10EB
+:1028400016C0EE2009F48CCF802F0E9466110FC0B5
+:10285000412F4F70602FC6010E94BA020E94CD170F
+:1028600006C0412F4F70602FC6010E948B05772054
+:1028700039F10E94041A80FD23C0F60112820E94E1
+:10288000FE190E94C818C6010E94C3110E94FE19B9
+:102890000F900F900F900F900F90DF91CF911F919D
+:1028A0000F91FF90EF90DF90CF90BF90AF909F90EF
+:1028B0008F907F905F904F903F902F900C94E918ED
+:1028C0000F900F900F900F900F90DF91CF911F916D
+:1028D0000F91FF90EF90DF90CF90BF90AF909F90BF
+:1028E0008F907F905F904F903F902F9008950E941F
+:1028F000121B0E94221B0E94E41A0E94491B0E9484
+:1029000090200E94DF1F80E090E00E94970F80E0FF
+:1029100090E00C94AD0F0E94021B0C9477140E945F
+:10292000C319292F22952F7030E02C3031054CF43B
+:102930002A3031056CF42250310922303105A8F4D7
+:1029400007C02C30310569F02F30310551F00DC032
+:10295000803F69F018F4803E40F409C0843F29F4B8
+:1029600006C093FB882780F9089580E0089581E0F0
+:102970000895CF93DF9300D000D01F92CDB7DEB77C
+:102980000F900F900F900F900F90DF91CF910895BF
+:10299000CF93DF9300D000D000D0CDB7DEB726961E
+:1029A0000FB6F894DEBF0FBECDBFDF91CF91089573
+:1029B0001F93CF93DF93C0917A0116E080917B0142
+:1029C000C81799F0D0E01C9FF0011D9FF00D112455
+:1029D000E458FE4F408151816281738184819581E9
+:1029E0000E94C8142196C770E9CFDF91CF911F9143
+:1029F00008954091AC015091AD016091AE0170918C
+:102A0000AF018091B0019091B1010C94C8148091F4
+:102A1000B10182958F7009F054C08091AE01882376
+:102A200009F44FC080917A01A0917B016091AC01C3
+:102A30007091AD014091AF015091B001B6E08A179D
+:102A400009F43FC090E041155105C1F17F3F11F4F9
+:102A50006F3FA1F1B89FF001B99FF00D1124E45828
+:102A6000FE4F218172132AC02081621327C0228168
+:102A7000211124C0238134812417350710F42150FB
+:102A80003109241B350B283C3105C0F42091B101DC
+:102A90002F7020612093B10126E0289FF001299F2B
+:102AA000F00D1124EF57FE4F80818F70806180837D
+:102AB0008CEA91E00E94C3110C94D814019687709F
+:102AC000BECF0895CF92DF92EF92FF920F931F93A4
+:102AD000CF93DF93CDB7DEB762970FB6F894DEBF22
+:102AE0000FBECDBF8C0185E0F801DE011D9601907F
+:102AF0000D928A95E1F7D8014C9111965C9111974E
+:102B000012966C9112971396CD90DC901497309199
+:102B1000AC017091AD018091AF019091B00100972F
+:102B200009F46BC17F3F19F43F3F09F466C1E0909F
+:102B3000AE01EE2009F4C0C02091B101C816D9063B
+:102B400028F0F601E81BF90BCF0104C080959095A1
+:102B50008C0D9D1DFF24F394883C910578F0F12C99
+:102B6000207F09F0C6C07C2DD98AC88A89890E9435
+:102B7000B9148CEA91E00E94C311B1C0822F807F0A
+:102B800009F046C0751314C0341312C0611110C08F
+:102B90002F7020612093B1010E94F9148CEA91E01A
+:102BA0000E94C3118091B101D80115968C932EC05B
+:102BB000CD2819F15F3F11F44F3FF9F0F62E611166
+:102BC0001CC080917A0120917B0136E0821709F4C4
+:102BD0005AC090E0389FF001399FF00D1124E4585D
+:102BE000FE4F7181571306C07081471303C0728175
+:102BF000711103C001968770E9CFF62E662309F4A0
+:102C000018C18091B10181608093B101F12C11C193
+:102C1000751308C0341306C0611104C08091B1015E
+:102C2000D801C3C04D875E878D859E856A8B0E94C3
+:102C30008F146A898823E1F16623D1F12091B101D3
+:102C4000822F82958F7090E0029774F08091AC0192
+:102C50009091AD0198878F831986DB86CA862C8771
+:102C6000CE0107960E94C31186E0F801ACEAB1E0FC
+:102C700001900D928A95E1F70E9407150E94F914C0
+:102C8000FF24F394D6C04D875E878D859E850E9474
+:102C9000C319292F22952F7030E0223031050CF016
+:102CA000BCC09F7009F0B6C0805E883008F4C1C017
+:102CB000C8010E94C311E4CFC816D90608F453C056
+:102CC000F601E81BF90BCF01883C910508F450C0D0
+:102CD000F12C7C2DD98AC88A89890E94B914ECEA22
+:102CE000F1E086E0DF011D928A95E9F70E94F91470
+:102CF000A0C0751314C0341312C0611110C08091AC
+:102D0000B101F8018583C8010E94C31186E0ECEA95
+:102D1000F1E0DF011D928A95E9F7FE2C8AC04D870C
+:102D20005E878D859E856A8B0E948F146A898823B1
+:102D300009F4BECF662309F4BBCF2091B101822FE5
+:102D400082958F7090E002970CF48ECF8091AC0149
+:102D50009091AD019A8389831B82DD82CC822E8380
+:102D6000CE0101967FCF809590958C0D9D1DACCFA7
+:102D7000F62E662309F49CCF75132EC034132CC095
+:102D80002091B10120FD1FC0822F82958F70D9F054
+:102D9000D80115962C9315978F3049F08F5F982F97
+:102DA0009295907F822F8F70892B15968C93C801F6
+:102DB0000E94C31186E0F801ACEAB1E001900D92E7
+:102DC0008A95E1F793CF86E0F801ACEAB1E0019093
+:102DD0000D928A95E1F72DC04D875E878D859E8582
+:102DE0000E948F14811140CF8091B1018160809346
+:102DF000B101C8010E94C3111CC0662309F458CF59
+:102E00004D875E878D859E850E948F14882309F4E7
+:102E10004FCF2ACF811148CF0CC0243031050CF0A0
+:102E200047CF9F7009F440CFF8019581907F09F05A
+:102E30003BCF8F2D62960FB6F894DEBF0FBECDBF8D
+:102E4000DF91CF911F910F91FF90EF90DF90CF9086
+:102E500008951F93CF93DF93CDB7DEB72C970FB6AE
+:102E6000F894DEBF0FBECDBF4F83588769877A873E
+:102E70008B879C87CE0107960E946215882369F094
+:102E80008F8198852A853B85232BF1F19F3F09F09F
+:102E900063C08F3F09F060C037C086E0FE013796FF
+:102EA000DE01119601900D928A95E1F76F81788588
+:102EB000EA85FB85309741F17F3F11F46F3F21F1A7
+:102EC00020917B0130E0C9010196877099274091DC
+:102ED0007A0150E08417950709F447C069837A8323
+:102EE000FD83EC8396E0929FD001939FB00D112457
+:102EF000A458BE4FFE01319601900D929A95E1F7CC
+:102F000080937B010E94D81416E080917A01909101
+:102F10007B018917C1F1189FC001112484589E4F6D
+:102F20000E946215882379F1E0917A011E9FF001D9
+:102F30001124E458FE4F4081518162817381848164
+:102F400095810E94C81480917A0190E00196877063
+:102F5000992780937A01D9CF4F81588569857A85E1
+:102F60008B859C850E94C814CFCF0E948B14109231
+:102F70007B0110927A01ECEAF1E086E0DF011D921C
+:102F80008A95E9F7C1CF2C960FB6F894DEBF0FBE35
+:102F9000CDBFDF91CF911F910895EF92FF920F93D4
+:102FA0001F93CF93DF938C01892B09F46CC0F12C14
+:102FB000EE24E394E8012196F8018491843740F4EB
+:102FC000843008F051C0813081F0823019F15BC04B
+:102FD000853709F444C0A8F19CE7980F903708F0B2
+:102FE00052C08F770E94661141C00E5F1F4FFE01D5
+:102FF000C49180E28C0F883048F4C7708E2D01C0D8
+:10300000880FCA95EAF70E94151B14C08C2F0E94E6
+:103010009E102DC00E5F1F4FFE01C49180E28C0FE9
+:10302000883058F4C7708E2D01C0880FCA95EAF712
+:103030000E941B1B0E94491B1AC08C2F0E94661104
+:1030400016C00E5F1F4FFE01C491CC2381F08FE9A3
+:103050009FE00197F1F700C00000C150F6CF0E5F6E
+:103060001F4FFE01F49003C00E949E108E018F2D11
+:10307000882309F49FCFEFE9FFE03197F1F700C013
+:1030800000008150F5CFDF91CF911F910F91FF90FC
+:10309000EF90089508956093B6017093B7018093FF
+:1030A000B8019093B9010C9477140F931F9300917A
+:1030B000B6011091B7012091B8013091B901DC013E
+:1030C000CB01802B912BA22BB32B8093B601909335
+:1030D000B701A093B801B093B9011F910F910C945F
+:1030E00077140F931F930091B6011091B7012091AF
+:1030F000B8013091B901DC01CB0180239123A223D7
+:10310000B3238093B6019093B701A093B801B09315
+:10311000B9011F910F910C9477140F931F93009195
+:10312000B6011091B7012091B8013091B901DC01CD
+:10313000CB0180279127A227B3278093B6019093D4
+:10314000B701A093B801B093B9011F910F910C94EE
+:1031500077141092B2011092B3011092B401109240
+:10316000B5010C94771441E050E060E070E004C0D9
+:10317000440F551F661F771F8A95D2F74093B201FF
+:103180005093B3016093B4017093B5010C9477141C
+:1031900041E050E060E070E004C0440F551F661F3E
+:1031A000771F8A95D2F78091B2019091B301A091D7
+:1031B000B401B091B501482B592B6A2B7B2B40935E
+:1031C000B2015093B3016093B4017093B5010C94B4
+:1031D000771441E050E060E070E004C0440F551FF8
+:1031E000661F771F8A95D2F7409550956095709528
+:1031F0008091B2019091B301A091B401B091B50159
+:10320000482359236A237B234093B2015093B3018F
+:103210006093B4017093B5010C94771441E050E0D1
+:1032200060E070E004C0440F551F661F771F8A9549
+:10323000D2F78091B2019091B301A091B401B09105
+:10324000B501482759276A277B274093B20150933D
+:10325000B3016093B4017093B5010C9477140F938C
+:103260001F930091B2011091B3012091B4013091EC
+:10327000B501DC01CB01802B912BA22BB32B8093CA
+:10328000B2019093B301A093B401B093B5011F9123
+:103290000F910C9477140F931F930091B20110912A
+:1032A000B3012091B4013091B501DC01CB01802341
+:1032B0009123A223B3238093B2019093B301A093EF
+:1032C000B401B093B5011F910F910C9477140F9333
+:1032D0001F930091B2011091B3012091B40130917C
+:1032E000B501DC01CB0180279127A227B32780936A
+:1032F000B2019093B301A093B401B093B5011F91B3
+:103300000F910C9477140895CF92DF92EF92FF9271
+:103310000F931F93CF93DF938C01C090B601D09091
+:10332000B701E090B801F090B9018091B20190919D
+:10333000B301A091B401B091B501C82AD92AEA2AF3
+:10334000FB2ACFE1D0E0D701C6010C2E04C0B69510
+:10335000A795979587950A94D2F780FF06C0B80184
+:103360008C2F0E94DC07019721F4219760F780E001
+:1033700001C08C2FDF91CF911F910F91FF90EF90A3
+:10338000DF90CF900895CF93DF93EC010E948419D2
+:10339000BE010E94DC07DF91CF910895CB010E940E
+:1033A000C31908958091BF0108958093BF010895C6
+:1033B0001092BF0108950E94461C2091BD013091DA
+:1033C000BE018217930750F00E94461C2091BD0158
+:1033D0003091BE01821B930B9C010AC00E94461CC7
+:1033E0002091BD013091BE0120953095280F391FE5
+:1033F00081E0283B3B4008F480E008958091BC01C7
+:1034000085958595859508958091BC01877008956F
+:103410000E94461C2091BA013091BB01821793078C
+:10342000A8F00E94461C2091BA013091BB01821B7A
+:10343000930B883B9B4010F480E013C08091BC014B
+:1034400082FB882780F991E089270BC00E94461CE7
+:103450002091BA013091BB0120953095820F931FC6
+:10346000E8CF8170089598E0899F90011124262B60
+:103470002093BC010E94C8180E94461C9093BB0177
+:103480008093BA0108951092BC011092BB01109272
+:10349000BA0108952091BC01809582238093BC01DC
+:1034A000982F977089F430E0482F552747FD5095A5
+:1034B0002417350749F08595859585950E94E9186B
+:1034C0001092BB011092BA0108959091BC019770BF
+:1034D00081E009F480E0089590910C01992321F096
+:1034E00090910D01911109C020910E0130910F01B1
+:1034F000F90132969FEF40E01FC0982F9695969560
+:1035000096959F3050F5E0910E01F0910F01E90F73
+:10351000F11D877021E030E0A90102C0440F551F62
+:103520008A95E2F7CA019181892B818308959F3F93
+:1035300039F04F5F4E3041F051915813F8CF0DC024
+:103540005111F7CF942FF5CF9F3F39F0F901E90FD3
+:10355000F11D97FDFA9582830895089590910C01CD
+:10356000992321F090910D01911109C020910E0134
+:1035700030910F01F9013296205F3F4F1FC0982F05
+:103580009695969596959F30F0F4E0910E01F09106
+:103590000F01E90FF11D877021E030E0A90102C0A1
+:1035A000440F551F8A95E2F7CA01809591818923BE
+:1035B000818308953196E217F30729F090819813DB
+:1035C000F9CF1082F7CF089581E090E0E0910E01ED
+:1035D000F0910F01E80FF91F1082019680319105DB
+:1035E000A9F708958091D30108959091D301892B73
+:1035F0008093D301089580959091D301892380937E
+:10360000D30108951092D30108959091D201892B8E
+:103610008093D201089580959091D201892380935F
+:10362000D20108951092D20108959091D101892B71
+:103630008093D101089580959091D1018923809341
+:10364000D10108951092D10108958093C0010E9484
+:10365000461C9093BE018093BD0108951092C00155
+:103660001092BE011092BD0108958091C00108958D
+:1036700080910E0190910F01FC0131969C01205F19
+:103680003F4F80E0919191118F5FE217F307D1F7DF
+:103690000895E0910E01F0910F018091D301808394
+:1036A000E0910E01F0910F0190818091D201892B60
+:1036B0008083E0910E01F0910F0190818091D10102
+:1036C000892B80838091C001882399F00E94DB19A7
+:1036D00081110E942E1BE0910E01F0910F0190814B
+:1036E0008091C001892B80830E94381B81110E9428
+:1036F0002E1B80910E0190910F010C94810FCF929F
+:10370000DF92EF92FF926C01EE24FF24C114D104EA
+:10371000E104F10421F0C701B60120E101C020E07D
+:10372000C72ED82EE92EFF24C114D104E104F104E0
+:1037300019F0285FC701B6016B017C0154E0F694D3
+:10374000E794D794C7945A95D1F7C114D104E104F2
+:10375000F10419F02C5FC701B6016B017C0142E056
+:10376000F694E794D794C7944A95D1F7C114D1043D
+:10377000E104F10419F02E5FC701B601DC01CB01B1
+:10378000B695A79597958795892B8A2B8B2B09F052
+:103790002F5F822FFF90EF90DF90CF900895809160
+:1037A000E901843021F11092D50120E488E190E014
+:1037B0000FB6F894A895809360000FBE2093600028
+:1037C00080E00E94770883B7817F846083BF83B7DE
+:1037D000816083BF7894889583B78E7F83BF88E1AB
+:1037E0000FB6F89480936000109260000FBE0895A9
+:1037F00008950895CF930E94F81B0E9496040E949A
+:10380000F91BC0E08C2F0E948405811104C0CF5F9A
+:10381000CE30C1F701C081E0CF9108950E948B1492
+:103820000E94750F0C9477081F920F920FB60F929B
+:1038300011248F939F93AF93BF938091D5018111F2
+:1038400013C08091D6019091D701A091D801B09179
+:10385000D9014196A11DB11D8093D6019093D70146
+:10386000A093D801B093D901BF91AF919F918F914F
+:103870000F900FBE0F901F90189582E084BD93E0CB
+:1038800095BD9AEF97BD80936E0008952FB7F89479
+:103890008091D6019091D701A091D801B091D90122
+:1038A0002FBF0895CF92DF92EF92FF920F931F9355
+:1038B0002FB7F8944091D6015091D7016091D8016B
+:1038C0007091D9012FBF6A017B01EE24FF248C0186
+:1038D00020E030E0C016D106E206F30610F44150B5
+:1038E00051099A01281B390BC9011F910F91FF90B3
+:1038F000EF90DF90CF9008951F920F920FB60F9226
+:1039000011248F939F93AF93BF938091D601909191
+:10391000D701A091D801B091D9010196A11DB11D87
+:103920008093D6019093D701A093D801B093D90189
+:10393000BF91AF919F918F910F900FBE0F901F90ED
+:1039400018950E94720CF8942FEF87EA91E62150A7
+:1039500080409040E1F700C0000087E090EBDC0180
+:103960008093F3019093F401A093F501B093F601D5
+:103970009CE088E10FB6F894A895809360000FBE94
+:1039800090936000FFCFEF92FF920F931F93CF931E
+:10399000DF93D82FC0E08C2F0E94840500E010E058
+:1039A000E82EF12CC701002E02C0959587950A9448
+:1039B000E2F780FD06C00F5F1F4F0630110591F73B
+:1039C00009C0602F7C2F80E00E948C05D813F3CFB4
+:1039D00081E004C0CF5FCE30F1F680E0DF91CF917F
+:1039E0001F910F91FF90EF900895CF93C82F8CE215
+:1039F0000E94C31C882321F08C2FCF910C94C31CF0
+:103A000080E0CF910895CF930E944A1E811102C099
+:103A10000E94301EC5E6C15049F00E9496048FE313
+:103A20009CE90197F1F700C00000F5CF89E20E9400
+:103A3000F51C811113C18AE20E94F51C81110E94BC
+:103A4000301E85E00E94F51C81110E94A11C0E947D
+:103A5000551E8093D40187E00E94F51C8823A9F1AC
+:103A60008BE10E94F51C882351F08091D40181FBE9
+:103A7000222720F991E0922790FB81F90EC08EE079
+:103A80000E94F51C882361F08091D40182FB2227DB
+:103A900020F991E0922790FB82F98093D40115C020
+:103AA00080E10E94F51C9091D401882341F093FBA2
+:103AB000222720F981E0822780FB93F904C0892F17
+:103AC000809580FB90F99093D4018091D4010E945D
+:103AD000591E0E94671E8093F20180EE0E94F51C21
+:103AE000882341F08091F201982F909590FB80F906
+:103AF0008093F20189E30E94F51C882359F080919C
+:103B0000F20181FB222720F991E0922790FB81F9B5
+:103B10008093F20182EE0E94F51C882359F0809177
+:103B2000F20182FB222720F991E0922790FB82F993
+:103B30008093F20186EE0E94F51C882359F0809153
+:103B4000F20183FB222720F991E0922790FB83F971
+:103B50008093F20183EE0E94F51C882359F0809136
+:103B6000F20184FB222720F991E0922790FB84F94F
+:103B70008093F20185E30E94F51C882359F080911F
+:103B8000F20185FB222720F991E0922790FB85F92D
+:103B90008093F20181E30E94F51C882359F0809103
+:103BA000F20186FB222720F991E0922790FB86F90B
+:103BB0008093F20181E10E94F51C882359F08091E5
+:103BC000F20187FB222720F991E0922790FB87F9E9
+:103BD0008093F2018091F2010E946B1E8091F201AC
+:103BE00087FB882780F980930D0187E20E94F51CEE
+:103BF000C82F8EE10E94F51C8111C2608FE10E94E6
+:103C0000F51C8111C46080E20E94F51C8111C8601E
+:103C100081E20E94F51C8111C06182E20E94F51CC4
+:103C20008111C06283E20E94F51C8111C06484E2AC
+:103C30000E94F51C882311F0C06802C0CC2329F033
+:103C40008C2F0E94621E6C2F03C00E945E1E682F84
+:103C500070E080E090E0CF910C944B18CF910895E4
+:103C60006DEE7EEF80E090E00E94302460E082E024
+:103C700090E00E941E2460E083E090E00E941E24F9
+:103C800060E084E090E00E941E2460E085E090E027
+:103C90000C941E2480E090E00E94182421E08D3EC8
+:103CA0009E4F09F020E0822F089582E090E00C946E
+:103CB0001024682F82E090E00C941E2483E090E0B2
+:103CC0000C941024682F83E090E00C941E2484E070
+:103CD00090E00C941024682F84E090E00C941E2453
+:103CE0008091DC0180FF0BC06091130185E0689F2B
+:103CF000B001112475956795759567952BC081FF67
+:103D000009C06091130185E0689FB0011124759589
+:103D1000679520C082FF07C06091130185E0689F0E
+:103D2000B001112417C09091DD019923D1F0609169
+:103D30001201961788F72091130185E0289F9001C2
+:103D40001124929FA001939F500D112470E0CA018D
+:103D50000E94E2236038710540F46115710539F065
+:103D600002C065E070E0862F08958FE7089581E036
+:103D700008958091DC0180FF08C06091110170E01E
+:103D8000759567957595679521C081FF06C060910F
+:103D9000110170E07595679519C082FF04C06091AC
+:103DA000110170E010C09091DD019923C1F0609184
+:103DB00010019617A0F780911101899FC00111246D
+:103DC00070E00E94E2236038710528F461157105E6
+:103DD00021F0862F08958FE7089581E0089561E02E
+:103DE00070E0F4CF803F21F40E94701E819504C0E2
+:103DF000813F29F40E94701E8093E0010895823F64
+:103E000021F40E94701E819504C0833F29F40E9412
+:103E1000701E8093DF010895893F19F40E94B91E36
+:103E200005C08A3F31F40E94B91E81958093E1015B
+:103E300008958B3F21F40E94B91E819504C08C3FE8
+:103E400029F40E94B91E8093E2010895843F21F471
+:103E50008091DE01816017C0853F21F48091DE01F1
+:103E6000826011C0863F21F48091DE0184600BC026
+:103E7000873F21F48091DE01886005C0883F31F4DE
+:103E80008091DE0180618093DE0108958D3F21F4F1
+:103E90008091DC0181600BC08E3F21F48091DC01B8
+:103EA000826005C08F3F29F48091DC01846080939B
+:103EB000DC010895803F39F48091E00187FF6CC0F8
+:103EC0001092E00169C0813F29F48091E001181649
+:103ED000BCF362C09091DF01823F29F497FF5CC080
+:103EE0001092DF0159C0833F19F41916CCF354C066
+:103EF000893F41F48091E10118160CF04DC01092F9
+:103F0000E1014AC08A3F29F48091E10187FF44C062
+:103F1000F6CF8B3F39F48091E20187FF3DC01092CC
+:103F2000E2013AC08C3F29F48091E2011816BCF3FB
+:103F300033C0843F21F48091DE018E7F17C0853F1E
+:103F400021F48091DE018D7F11C0863F21F48091A4
+:103F5000DE018B7F0BC0873F21F48091DE01877FDC
+:103F600005C0883F31F48091DE018F7E8093DE01B1
+:103F700013C08D3F21F48091DC018E7F0BC08E3FFA
+:103F800021F48091DC018D7F05C08F3F29F4809161
+:103F9000DC018B7F8093DC018091DF0181110EC0F9
+:103FA0008091E00181110AC08091E101811106C078
+:103FB0008091E201811102C01092DD0108958EED21
+:103FC00091E00E948C0F0E94461C9093DB0180932D
+:103FD000DA0108951F93CF93DF938091DA019091D6
+:103FE000DB010E94521CAC019091DD01992321F06C
+:103FF0002091140130E006C0209115018AE0289F2D
+:10400000900111244217530708F486C08091DF0104
+:10401000C091E001D091E1011091E201811107C04E
+:10402000C11176C0D11174C0111172C075C09F3F0B
+:1040300019F09F5F9093DD01181624F40E94701E02
+:104040008093DF018091DF0187FF05C00E94701E11
+:1040500081958093DF011C1624F40E94701E8093CA
+:10406000E0018091E00187FF05C00E94701E8195EC
+:104070008093E0016091DF01662339F1C091E00196
+:10408000CC2319F1772767FD7095872F972F0E9412
+:10409000F32223E333E343E35FE30E9457230E94C9
+:1040A000C0226093DF016C2F772767FD7095872F03
+:1040B000972F0E94F32223E333E343E35FE30E945D
+:1040C00057230E94C0226093E0011D1624F40E9431
+:1040D000B91E8093E1018091E10187FF05C00E9434
+:1040E000B91E81958093E101111624F40E94B91E36
+:1040F0008093E2018091E20187FF05C00E94B91E12
+:1041000081958093E201DF91CF911F910C94DF1F85
+:104110009F3F09F08ECF96CFDF91CF911F910895E9
+:10412000EEEDF1E085E0DF011D928A95E9F710924E
+:10413000DD011092DC010895833081F128F4813093
+:1041400059F08230D1F00895853009F449C0B8F1B2
+:10415000863009F456C0089580911501262F30E06D
+:10416000280F311D2F3F310524F4680F609315018E
+:1041700008958FEF80931501089580911401262FE3
+:1041800030E0280F311D2F3F310524F4680F609374
+:10419000140108958FEF8093140108958091130105
+:1041A000262F30E0280F311D2F3F310524F4680FF2
+:1041B0006093130108958FEF809313010895809108
+:1041C0001201262F30E0280F311D2F3F310524F436
+:1041D000680F6093120108958FEF80931201089584
+:1041E00080911101262F30E0280F311D2F3F31051E
+:1041F00024F4680F6093110108958FEF80931101EB
+:10420000089580911001262F30E0280F311D2F3F97
+:10421000310524F4680F6093100108958FEF8093A7
+:1042200010010895833011F128F4813049F0823073
+:1042300091F00895853081F120F18630C1F1089523
+:1042400080911501681720F4861B8093150108954D
+:1042500010921501089580911401681720F4861BAF
+:104260008093140108951092140108958091130110
+:10427000681720F4861B8093130108951092130190
+:10428000089580911201681720F4861B8093120113
+:10429000089510921201089580911101681720F479
+:1042A000861B809311010895109211010895809149
+:1042B0001001681720F4861B809310010895109256
+:1042C000100108950F931F938B3109F475C0A0F569
+:1042D0008E3009F484C0C0F4873009F45BC068F400
+:1042E000863009F0AAC08091D401817F8E7F8093AF
+:1042F000D40181E08093E401A1C0883009F496C024
+:104300008B3009F493C099C0813109F472C068F40C
+:10431000803109F092C08091D40183FB222720F9DB
+:1043200091E0922790FB83F950C0863109F47EC05A
+:10433000893109F47BC081C0853309F479C068F400
+:10434000873209F475C028F48E3108F476C08D5197
+:104350005AC0893209F46CC070C0833438F48A338F
+:1043600008F050C0883309F461C067C0833409F491
+:104370005FC0883409F061C00E948B140FEF13ED09
+:1043800020E3015010402040E1F700C000000E94EF
+:10439000A11C4CC09091D401892F8095817080FB25
+:1043A00090F929F0966098609093D40147C0997F66
+:1043B000977F9093D4013AC08091D40181FB22274A
+:1043C00020F991E0922790FB81F98093D401992301
+:1043D00069F18091D40181608093D40127C08091DC
+:1043E000D40182FB222720F991E0922790FB82F9E9
+:1043F000ECCF0E948B1490910D0181E0892780936E
+:104400000D0114C0895341E050E060E070E08A0182
+:104410009B0104C0000F111F221F331F8A95D2F782
+:10442000C901B8010E944B180E948B1481E006C09C
+:1044300061E070E080E090E0F5CF80E01F910F91A7
+:10444000089580E0089580E00895CF93C82F80916B
+:10445000E401813079F018F08230E9F187C0E09111
+:104460000E01F0910F018081813169F0823209F0F3
+:104470007FC009C0E0910E01F0910F018081813170
+:1044800011F0823261F48C2F0E942122811104C02C
+:104490008C2F0E9462211DC081E090E01AC08C2FF9
+:1044A0000E942322811114C0C43179F048F4CB302A
+:1044B00079F0C03109F060C082E08093E40108C067
+:1044C000C93219F0C83321F057C01092E40154C02A
+:1044D00081E0817053C0C93289F118F5C43171F19E
+:1044E000A8F4C73009F046C08AE08093150194E132
+:1044F0009093140193E0909313018093120188E04C
+:104500008093110188E28093100134C0CE51C630EF
+:1045100088F5EC2FF0E0E65DFE4F80818093E301AB
+:1045200029C0CE34E9F020F4CB3421F56AE013C081
+:10453000C13579F0C235F1F461E00DC08091E3013D
+:10454000882319F01092E30115C081E08093E40103
+:1045500015C061E006C08091E3010E949C200AC062
+:104560006AE08091E3010E94122104C01092E401EC
+:1045700080E004C081E002C080E0ABCFCF9108951D
+:1045800004D06894B1118DC0089570D088F09F5701
+:1045900090F0B92F9927B751A0F0D1F0660F771F8F
+:1045A000881F991F1AF0BA95C9F712C0B13081F06F
+:1045B00077D0B1E0089574C0672F782F8827B85F4F
+:1045C00039F0B93FCCF3869577956795B395D9F7D0
+:1045D0003EF490958095709561957F4F8F4F9F4FDA
+:1045E0000895E89409C097FB3EF4909580957095E6
+:1045F00061957F4F8F4F9F4F9923A9F0F92F96E92F
+:10460000BB279395F695879577956795B795F111A3
+:10461000F8CFFAF4BB0F11F460FF1BC06F5F7F4F40
+:104620008F4F9F4F16C0882311F096E911C0772352
+:1046300021F09EE8872F762F05C0662371F096E85B
+:10464000862F70E060E02AF09A95660F771F881F2A
+:10465000DAF7880F9695879597F9089557FD905842
+:10466000440F551F59F05F3F71F04795880F97FB36
+:10467000991F61F09F3F79F08795089512161306F0
+:104680001406551FF2CF4695F1DF08C0161617061F
+:104690001806991FF1CF8695710561050894089554
+:1046A000E894BB2766277727CB0197F908950BD0AD
+:1046B00078C069D028F06ED018F0952309F05AC060
+:1046C0005FC01124EECFCADFA0F3959FD1F3950F01
+:1046D00050E0551F629FF001729FBB27F00DB11D86
+:1046E000639FAA27F00DB11DAA1F649F6627B00D16
+:1046F000A11D661F829F2227B00DA11D621F739FFF
+:10470000B00DA11D621F839FA00D611D221F749F0C
+:104710003327A00D611D231F849F600D211D822F53
+:10472000762F6A2F11249F5750408AF0E1F088239A
+:104730004AF0EE0FFF1FBB1F661F771F881F9150A7
+:104740005040A9F79E3F510570F014C0AACF5F3FBB
+:10475000ECF3983EDCF3869577956795B795F795DA
+:10476000E7959F5FC1F7FE2B880F911D9695879562
+:1047700097F9089597F99F6780E870E060E00895E1
+:104780009FEF80EC089500240A9416161706180669
+:104790000906089500240A94121613061406050645
+:1047A0000895092E0394000C11F4882352F0BB0FD6
+:1047B00040F4BF2B11F460FF04C06F5F7F4F8F4F39
+:1047C0009F4F089597FB072E16F4009407D077FDAE
+:1047D00009D00E94FC2307FC05D03EF490958195FA
+:1047E0009F4F0895709561957F4F0895EE0FFF1FBD
+:1047F0000590F491E02D0994AA1BBB1B51E107C061
+:10480000AA1FBB1FA617B70710F0A61BB70B881F60
+:10481000991F5A95A9F780959095BC01CD010895EF
+:10482000F999FECF92BD81BDF89A992780B5089578
+:10483000A8E1B0E042E050E00C943824262FF9992A
+:10484000FECF92BD81BDF89A019700B4021639F0EF
+:104850001FBA20BD0FB6F894FA9AF99A0FBE0895C0
+:104860000196272F0E941F240C941E24DC01CB01EB
+:10487000FC01F999FECF06C0F2BDE1BDF89A319670
+:1048800000B40D9241505040B8F70895F894FFCF0E
+:10489000200279080709E408B0087C080101C10179
+:1048A00028080A03140A3F4D3639A9045C0426047B
+:1048B000ED0380039903B203CB0301020304050651
+:0448C00007080900DC
+:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/townk_osx/townk_osx_base.png b/keyboard/ergodox_ez/keymaps/townk_osx/townk_osx_base.png
new file mode 100644
index 0000000000..f9bc8b443a
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/townk_osx/townk_osx_base.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png b/keyboard/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png
new file mode 100644
index 0000000000..983b723480
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png b/keyboard/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png
new file mode 100644
index 0000000000..8f04b4327d
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/twey/keymap.c b/keyboard/ergodox_ez/keymaps/twey/keymap.c
index dec9f92f14..019930f2a2 100644
--- a/keyboard/ergodox_ez/keymaps/twey/keymap.c
+++ b/keyboard/ergodox_ez/keymaps/twey/keymap.c
@@ -49,9 +49,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z , KC_RSFT,
KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, MO(SYMB),
- KC_HOME,KC_END,
+ KC_HOME, KC_END,
KC_RALT,
- KC_FN1,KC_SPC,KC_RCTL
+ MO(MDIA),KC_SPC,KC_RCTL
),
/* Keymap 1: Symbol Layer
*
@@ -102,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_STAR,
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_TRNS, KC_TRNS,
+ KC_TRNS,KC_NO, KC_NO, KC_TRNS, KC_TRNS,
KC_NO, KC_NO,
KC_NO,
PV_A, PV_O, KC_NO,
@@ -111,10 +111,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
PV_STAR, 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_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS,
KC_NO, KC_NO,
KC_NO,
- KC_FN1, PV_E, PV_U
+ KC_TRNS,PV_E, PV_U
),
/* Keymap 3: Media and mouse keys
@@ -122,19 +122,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
+ * | | | | MsUp | | | | | | | Back | | Frwd | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | Prev | Play | Next | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
+ * | | | | | | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
+ * | | | | | | | |
+ * | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
@@ -150,9 +150,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK, KC_TRNS, KC_WFWD, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
@@ -171,15 +171,19 @@ void toggle_steno(int pressed)
if (pressed) {
if (layer != STEN) layer_on(STEN); else layer_off(STEN);
- register_code(PV_LS);
+ register_code(PV_LP);
register_code(PV_LH);
- register_code(PV_RF);
- register_code(PV_RT);
+ register_code(PV_LR);
+ register_code(PV_O);
+ register_code(PV_RL);
+ register_code(PV_RG);
} else {
- unregister_code(PV_LS);
+ unregister_code(PV_LP);
unregister_code(PV_LH);
- unregister_code(PV_RF);
- unregister_code(PV_RT);
+ unregister_code(PV_LR);
+ unregister_code(PV_O);
+ unregister_code(PV_RL);
+ unregister_code(PV_RG);
}
}
diff --git a/keyboard/ergodox_ez/keymaps/twey/readme.md b/keyboard/ergodox_ez/keymaps/twey/readme.md
index d44c0a2382..979e4261e5 100644
--- a/keyboard/ergodox_ez/keymaps/twey/readme.md
+++ b/keyboard/ergodox_ez/keymaps/twey/readme.md
@@ -3,8 +3,8 @@
- Layer 0: Non-ANSI Dvorak layout, with modified modifiers — all
modifiers on thumb keys, as well as return and space.
- Layer 1: Default symbol layout.
-- Layer 2: Default media/mouse layout.
-- Layer 3: Plover-oriented stenography layer.
+- Layer 2: Plover-oriented stenography layer.
+- Layer 3: Extended media/mouse layout.
## Unusual features
The Plover key (top right key on the left half) also sends my Plover
@@ -12,8 +12,6 @@ The Plover key (top right key on the left half) also sends my Plover
layer, so you can toggle between steno and typing modes with a single
keypress.
-If you want to use this feature, you'll need to add:
-
- "SH-FT": "{PLOVER:TOGGLE}"
-
-to your Plover dictionary.
+If you want to use this feature, you'll need to add the
+`commands.json` dictionary to your Plover dictionaries, or define the
+toggle stroke (`PHROLG`) yourself.