summaryrefslogtreecommitdiffstats
path: root/keyboard
diff options
context:
space:
mode:
Diffstat (limited to 'keyboard')
-rw-r--r--keyboard/atreus/Makefile17
-rw-r--r--keyboard/atreus/README.md10
-rw-r--r--keyboard/atreus/atreus.h19
-rw-r--r--keyboard/atreus/config.h10
-rw-r--r--keyboard/atreus/keymaps/keymap_gerb.c66
-rw-r--r--keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/colemak_osx_pc_no.hex1142
-rw-r--r--keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.pngbin0 -> 103158 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c264
-rw-r--r--keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md23
-rw-r--r--keyboard/ergodox_ez/keymaps/emacs_osx_dk/default_highres.pngbin0 -> 142146 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/emacs_osx_dk/emacs_osx_dk.hex1472
-rw-r--r--keyboard/ergodox_ez/keymaps/emacs_osx_dk/keymap.c184
-rw-r--r--keyboard/ergodox_ez/keymaps/emacs_osx_dk/readme.md10
-rw-r--r--keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex8
-rw-r--r--keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c22
-rw-r--r--keyboard/ergodox_ez/keymaps/erez_experimental/readme.md7
-rw-r--r--keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c25
-rw-r--r--keyboard/ergodox_ez/keymaps/mpiechotka/mpiechotka.hex2975
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/keymap.c190
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex1122
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary.pngbin0 -> 93556 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/readme.md5
-rw-r--r--keyboard/ergodox_ez/keymaps/tm2030/README.md2
-rw-r--r--keyboard/ergodox_ez/keymaps/tm2030/keymap.c28
-rw-r--r--keyboard/ergodox_ez/keymaps/tm2030/keymap.hex2958
-rw-r--r--keyboard/ergodox_ez/readme.md2
-rwxr-xr-xkeyboard/planck/CYGWIN_GUIDE.md352
-rw-r--r--keyboard/planck/PCB_GUIDE.md30
-rw-r--r--keyboard/planck/common_keymaps/keymap_mitch.c49
-rw-r--r--keyboard/planck/keymaps/brandon.c134
-rw-r--r--keyboard/planck/keymaps/lucas.c163
-rw-r--r--keyboard/planck/keymaps/lukas.c64
32 files changed, 8310 insertions, 3043 deletions
diff --git a/keyboard/atreus/Makefile b/keyboard/atreus/Makefile
index e1ebee47bd..2e542d62ed 100644
--- a/keyboard/atreus/Makefile
+++ b/keyboard/atreus/Makefile
@@ -58,6 +58,15 @@ else
SRC := keymaps/keymap_default.c $(SRC)
endif
+ifdef TEENSY2
+ OPT_DEFS += -DATREUS_TEENSY2
+ ATRUES_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex
+else
+ OPT_DEFS += -DATREUS_ASTAR
+ ATRUES_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
+ avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
+endif
+
CONFIG_H = config.h
# MCU name
@@ -114,8 +123,8 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# comment out to disable the options.
#
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-#MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-#EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
@@ -137,3 +146,7 @@ VPATH += $(TMK_DIR)
include $(TOP_DIR)/quantum/quantum.mk
+USB ?= /dev/cu.usbmodem1411
+
+upload: build
+ $(ATRUES_UPLOAD_COMMAND)
diff --git a/keyboard/atreus/README.md b/keyboard/atreus/README.md
index 75f198fd1c..4db7ac1203 100644
--- a/keyboard/atreus/README.md
+++ b/keyboard/atreus/README.md
@@ -1,10 +1,6 @@
atreus keyboard firmware
======================
-## Note
-
-This is for the Teensy2 hand wired boards only.
-
## Quantum MK Firmware
You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you.
@@ -14,6 +10,12 @@ You have access to a bunch of goodies! Check out the Makefile to enable/disable
# UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not //
BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
+## Atreus specific information
+
+These configuration files are specifically for the Atreus keyboards created by Phil Hagelberg (@technomancy). This keyboard is available in two variants: one powered by a Teensy 2, one powered by an A-Star. This repository currently assumes that you have an A-Star powered Atreus. If you are using a Teensy2, specify that by adding `TEENSY2=yes` to your `make` commands.
+
+If you are coming from the [atreus-firmware](https://github.com/technomancy/atreus-firmware), we've also brought forward the `make upload` command for you to use.
+
## Quick aliases to common actions
Your keymap can include shortcuts to common operations (called "function actions" in tmk).
diff --git a/keyboard/atreus/atreus.h b/keyboard/atreus/atreus.h
index 29d1d18bac..9dd77859f9 100644
--- a/keyboard/atreus/atreus.h
+++ b/keyboard/atreus/atreus.h
@@ -7,21 +7,20 @@
#include <stddef.h>
// This a shortcut to help you visually see your layout.
-// The following is an example using the Planck MIT layout
// The first section contains all of the arguements
// The second converts the arguments into a two-dimensional array
#define KEYMAP( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
- k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a \
) \
{ \
- { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
- { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
- { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
- { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
-}
+ { k00, k01, k02, k03, k04, KC_NO, k05, k06, k07, k08, k09 }, \
+ { k10, k11, k12, k13, k14, KC_NO, k15, k16, k17, k18, k19 }, \
+ { k20, k21, k22, k23, k24, k35, k25, k26, k27, k28, k29 }, \
+ { k2a, k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a } \
+}
void * matrix_init_user(void);
void * matrix_scan_user(void);
diff --git a/keyboard/atreus/config.h b/keyboard/atreus/config.h
index 733f579d43..ca0cd7e47a 100644
--- a/keyboard/atreus/config.h
+++ b/keyboard/atreus/config.h
@@ -33,11 +33,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 4
#define MATRIX_COLS 11
-// Planck PCB default pin-out
// Change this to how you wired your keyboard
// COLS: Left to right, ROWS: Top to bottom
-#define COLS (int []){ F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0}
-#define ROWS (int []){ D0, D1, D2, D3 }
+#if defined(ATREUS_ASTAR)
+ #define COLS (int []){ B7, D6, F7, F6, B6, D4, E6, B4, B5, C6, D7 }
+ #define ROWS (int []){ D0, D1, D3, D2 }
+#elif defined(ATREUS_TEENSY2)
+ #define COLS (int []){ F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0}
+ #define ROWS (int []){ D0, D1, D2, D3 }
+#endif
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
diff --git a/keyboard/atreus/keymaps/keymap_gerb.c b/keyboard/atreus/keymaps/keymap_gerb.c
new file mode 100644
index 0000000000..1ba3942e3b
--- /dev/null
+++ b/keyboard/atreus/keymaps/keymap_gerb.c
@@ -0,0 +1,66 @@
+// This is the personal keymap of Chris Gerber (@gerbercj). I haven't worked out the kinks
+// with the Colemak and Dvorak support yet, but everything else works nicely.
+
+#include "atreus.h"
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QW 0
+#define _CM 1
+#define _DV 2
+#define _L1 3
+#define _L2 4
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QW] = { /* Qwerty */
+ {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P },
+ {KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN},
+ {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH},
+ {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT }
+ },
+ [_CM] = { /* Colemak */
+ {KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN},
+ {KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O },
+ {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH},
+ {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT }
+ },
+ [_DV] = { /* Dvorak */
+ {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L },
+ {KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S },
+ {KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LALT, KC_B, KC_M, KC_W, KC_V, KC_Z },
+ {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_ENT }
+ },
+ [_L1] = { /* LAYER 1 */
+ {KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_VOLU, KC_7, KC_8, KC_9, KC_LBRC},
+ {KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_VOLD, KC_4, KC_5, KC_6, KC_RBRC},
+ {KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, KC_MINS, KC_LALT, KC_MUTE, KC_1, KC_2, KC_3, KC_BSLS},
+ {TG(_L2), KC_APP, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL }
+ },
+ [_L2] = { /* LAYER 2 */
+ {KC_TRNS, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, KC_NO, DF(_QW), KC_F7, KC_F8, KC_F9, KC_F10 },
+ {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_NO, DF(_CM), KC_F6, KC_F5, KC_F6, KC_F11 },
+ {KC_BTN4, KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_LALT, DF(_DV), KC_F1, KC_F2, KC_F3, KC_F12 },
+ {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, RESET }
+ }
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/colemak_osx_pc_no.hex b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/colemak_osx_pc_no.hex
new file mode 100644
index 0000000000..ecf97c9f1c
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/colemak_osx_pc_no.hex
@@ -0,0 +1,1142 @@
+:100000000C944C030C9490030C9490030C94900368
+:100010000C9490030C9490030C9490030C94900314
+:100020000C9490030C9490030C94BD0C0C948F0DC5
+:100030000C9490030C9490030C9490030C949003F4
+:100040000C9490030C94C4210C9490030C94900392
+:100050000C9490030C94551B0C9490030C949003F7
+:100060000C9490030C9490030C9490030C949003C4
+:100070000C9490030C9490030C9490030C949003B4
+:100080000C9490030C9490030C9490030C949003A4
+:100090000C9490030C9490030C9490030C94900394
+:1000A0000C9490030C9490030C9490039E03A30370
+:1000B000A803AD03B203B703BC03C103C603FC0D21
+:1000C0001E0E0C0F1E0E0C0F630E860E0C0FDB0E99
+:1000D000EE0ED011D011FF11FF11421280129914AF
+:1000E0009914991299149A139A136D1499149914D6
+:1000F0008414012E022E012C022C0001E101350294
+:100100003502E100013502350001E1012E022E0128
+:100110002C022C02E10001E6012E022E02E6012C47
+:10012000022C0001E10130023002E1012C022C001E
+:1001300001E10164026402E100016402640001E67D
+:100140000130023002E6012C022C000000002200E7
+:10015000C001C002C003C004C005C006C007C0087B
+:10016000C02E002D0237021E020452000025141476
+:100170000004001D00F400387426141A0015001B3A
+:1001800000F500377124140900160006002B00C189
+:1001900000271413001700190036782D0031020AC9
+:1001A00000070005000000230201541F0200003672
+:1001B0000200003500C5003200000027020000499F
+:1001C0000021140D000B000E000000240225020F78
+:1001D000001100100050004C002602180008004FCB
+:1001E0000029002C00C3001C000C005100C700288F
+:1001F00000C4002F001200520020022A001F1434F5
+:1002000000330038020252000024160100010001F0
+:1002100000010000000100010001000100010001D7
+:1002200000010001000100010001003778251601DE
+:10023000000100010001000100261601000100017B
+:100240000036710100010001000100010000000101
+:1002500000010001000000010000002414010064FE
+:100260000000000100000001002102010001000166
+:100270000000000100010001000100010001000177
+:1002800000010001000100010001000100C800019F
+:1002900000010001002E140100C90001000100014D
+:1002A00000010001003100010001000100035200C3
+:1002B0000001000100010001000100000001000137
+:1002C000002000010001000100010001001F0001E9
+:1002D0000001000100010001001E000100010001F9
+:1002E000000100220227002100010001000100019D
+:1002F00000010001000000010001000100000001F8
+:1003000000000001000100010000000100000001E8
+:10031000000100010001004A00000001000100C2CC
+:1003200000220026004A0001000100C60023004D03
+:1003300000010001000100010024004E0001000145
+:10034000000100010025004B000100010001000137
+:100350000001000100010000000100010001000196
+:100360000001000000010001002000010001000167
+:1003700000010001001F0001000100010001000157
+:10038000001E0001000100010001002202270021DF
+:100390000001000100010001000100010000000156
+:1003A0000001000100000001000000010001000147
+:1003B0000000000100000001000100010001004AEE
+:1003C00000000001000100C200220026004A0001D6
+:1003D000000100CA0023004D0001000100010001DE
+:1003E0000024004E00010001000100010025004B27
+:1003F00000010001000100010001000100010000F6
+:1004000000220001000100010001000000010001C4
+:10041000003C00010001000100010001003B00015F
+:100420000001000100010001003A0001000100018B
+:10043000000100010001003D000100010001000178
+:1004400000010001000000010001000100000001A6
+:100450000000000100010001000000010000000197
+:100460000001000100010030140000010001000142
+:10047000003E00420001000100010001003F004376
+:1004800000010001000100010040004400010001E2
+:1004900000010001004100450001000100010001D0
+:1004A0000001000100010000001603450072006712
+:1004B000006F0044006F007800200045005A0000E3
+:1004C0000016034500720067006F0044006F00785B
+:1004D00000200045005A0000000403090409026DD1
+:1004E00000040100A0FA0904000001030101000951
+:1004F0002111010001223F000705810308000A09BC
+:100500000401000103010200092111010001224D33
+:10051000000705820308000A090402000103000025
+:10052000000921110100012236000705830308009C
+:100530000A09040300010300000009211101000160
+:100540002239000705840310000112011001000088
+:100550000008EDFE07130100010200010501090674
+:10056000A101050719E029E7150025019508750186
+:10057000810205081901290595057501910295016A
+:100580007503910105071900297715002501957854
+:1005900075018102C005010980A1018502160100D3
+:1005A00026B7001A01002AB700751095018100C016
+:1005B000050C0901A1018503160100269C021A0100
+:1005C000002A9C02751095018100C005010902A155
+:1005D000010901A100050919012905150025019549
+:1005E0000575018102950175038101050109300935
+:1005F000311581257F9502750881060938158125F9
+:100600007F950175088106050C0A38021581257F42
+:10061000950175088106C0C005010906A1010507FD
+:1006200019E029E71500250195087501810295015A
+:1006300075088101050819012905950575019102C3
+:100640009501750391010507190029FF150025FF84
+:10065000950675088100C000000000000000000041
+:100660000000010204060A0F17202C3A4A5D718728
+:100670009DB3C7DAE9F5FCFFFCF5E9DAC7B39D875E
+:10068000715D4A3A2C20170F0A060402010000008F
+:10069000000000000000000011241FBECFEFDAE0D0
+:1006A000DEBFCDBF04B603FE24C08091EE01909161
+:1006B000EF01A091F001B091F1018730904BA7407C
+:1006C000B04BB9F41092EE011092EF011092F001CC
+:1006D0001092F10114BE84B7877F84BF88E10FB602
+:1006E000F89480936000109260000FBEE0E0FFE39A
+:1006F000099511E0A0E0B1E0ECE0F7E402C005905C
+:100700000D92A433B107D9F711E0A4E3B1E001C021
+:100710001D92AE3EB107E1F70E94010A0C948423BA
+:100720000C940000FC018281462F50E049305105B5
+:1007300090F5FA01EA5AFF4F0C943923882359F1B6
+:100740008EE391E00895882331F189E391E00895E3
+:10075000882309F180E391E008958823E1F083E2A2
+:1007600091E008958823B9F086E191E00895882307
+:1007700091F089E091E00895882369F084E091E0A8
+:100780000895882341F08BEF90E00895882319F0B5
+:1007900082EF90E0089580E090E0089580E090E09E
+:1007A000089580E090E0089581ED93E0892B11F0A9
+:1007B0000E94D10380E090E0089556985E982598B5
+:1007C0002D9826982E9827982F988FEF90E0909349
+:1007D00089008093880090938B0080938A00909387
+:1007E0008D0080938C00259A2D9A2FEF80E792E060
+:1007F000215080409040E1F700C00000269A2E9AD8
+:100800002FEF80E792E0215080409040E1F700C058
+:100810000000279A2F9A2FEF80E792E02150804026
+:100820009040E1F700C0000025982D982FEF80E759
+:1008300092E0215080409040E1F700C000002698EF
+:100840002E982FEF80E792E0215080409040E1F712
+:1008500000C0000027982F9856985E9825982D98EC
+:1008600026982E9827982F98089589EA80938000DB
+:1008700089E08093810024982C983F988AB18F74E6
+:100880008AB96E98479A8BB1806B8BB9769A0E9421
+:10089000DD038EEC93E0892B11F00E94CE0380E003
+:1008A00090E0089580E280930001809134018111ED
+:1008B0000EC00E94A10481E0809334012FEF83EDEC
+:1008C00090E3215080409040E1F700C0000080E4B8
+:1008D0000E94A7048093000181112EC00E94D104C0
+:1008E00080930001811128C00E94D10480930001EF
+:1008F000811122C08FE30E94D104809300018111F5
+:100900001BC00E94C90480E40E94A70480930001D8
+:10091000811112C08CE00E94D104809300018111EA
+:100920000BC00E94D10480930001811105C08FE3A8
+:100930000E94D104809300010E94C90480910001AB
+:1009400008951092B9008AE08093B800089594EA5F
+:100950009093BC009091BC0097FFFCCF9091B900A0
+:10096000987F983021F0903111F081E008958093C4
+:10097000BB0084E88093BC008091BC0087FFFCCF63
+:100980008091B900887F883111F0803471F780E060
+:10099000089584E98093BC008091BC0084FDFCCF65
+:1009A00008958093BB0084E88093BC008091BC00D4
+:1009B00087FFFCCF9091B900987F81E0983209F4CD
+:1009C00080E0089584E88093BC008091BC0087FF9C
+:1009D000FCCF8091BB00089580910001811115C06A
+:1009E00080E40E94A7048093000181110CC082E181
+:1009F0000E94D10480930001811105C08FEF0E94F5
+:100A0000D104809300010E94C90484B1807F84B91D
+:100A100085B1807F85B98AB1837F8AB98BB1837FA5
+:100A20008BB93E98469808950E9452048093000125
+:100A30000E94EC0480B38C7080BB81B3836F81BB58
+:100A4000A6E3B1E0E4E4F1E08EE08E0F11921D9296
+:100A50008E13FCCF85E394E0892B11F00C943504C0
+:100A60000895BF92CF92DF92EF92FF920F931F9360
+:100A7000CF93DF9380910001882379F08091350135
+:100A80008F5F80933501811108C00E9452048093CA
+:100A90000001811102C00E94DD0306E311E0C0E005
+:100AA000D0E0DD24D39482E0C82EEE24E394F12C30
+:100AB000C730D10500F580910001811164C080E448
+:100AC0000E94A70480930001811112C082E10E945C
+:100AD000D1048093000181110BC0C7010C2E01C00D
+:100AE000880F0A94EAF780950E94D1048093000150
+:100AF0000E94C90448C0CA30A1F028F4C83059F097
+:100B0000C93061F005C0CC3089F070F0CD3089F08B
+:100B1000209A289810C0219A29980DC0229A2A98C4
+:100B20000AC0239A2B9807C0529A01C0539A5B9827
+:100B300002C03E9A469890EA9A95F1F79FB179994A
+:100B400002C082E001C080E091709D25982B7C99C5
+:100B500002C084E001C080E0892B7D9902C038E0AA
+:100B600001C030E0832B7E9902C020E101C020E06B
+:100B7000822B9FB19095991F9927991F9295990F54
+:100B8000907E892B0FC08091000181114FC080E4BD
+:100B90000E94A704809300018823A9F1B12C0E9430
+:100BA000C9048B2DF8019081981719F08083C092A9
+:100BB00001010E94EC0421960F5F1F4FCE30D1053A
+:100BC00009F076CF809101018823B1F081508093A4
+:100BD0000101882339F08FE99FE00197F1F700C008
+:100BE00000000AC0A4E4B1E0E6E3F1E0CF01825FD7
+:100BF00091919D938E13FCCF84ED93E0892BC1F0EE
+:100C00000E94D40315C083E10E94D10480930001A7
+:100C10008111C4CF81E40E94A70480930001811157
+:100C2000BDCF0E94E204B82EB094B9CF80E0BACF15
+:100C300081E0DF91CF911F910F91FF90EF90DF90B6
+:100C4000CF90BF900895E82FF0E0EC5BFE4F8081DD
+:100C5000089508958B3B910578F4883A910540F505
+:100C6000853A9105D0F48430910508F0B1C0813007
+:100C7000910509F4ADC06BC0803E910508F467C0D2
+:100C8000883E910508F4A4C09C01205F3109203101
+:100C9000310508F05CC090650895853A910509F426
+:100CA00059C0863A910509F058C082E890E4089549
+:100CB000883A910509F454C0893A910509F453C062
+:100CC0008A3A910509F452C08B3A910509F451C052
+:100CD0008C3A910509F450C08D3A910509F44FC042
+:100CE000803B910509F44EC08E3A910509F44DC040
+:100CF0008F3A910509F44CC0813B910509F44BC032
+:100D0000823B910509F44AC0833B910509F449C02F
+:100D1000843B910509F448C0853B910509F447C01F
+:100D2000863B910509F446C0873B910509F445C00F
+:100D3000883B910509F444C0893B910509F443C0FF
+:100D40008A3B910509F442C080E094E4089580E074
+:100D500090E0089581E890E4089583E890E4089590
+:100D600082EE94E4089589EE94E408958AEE94E482
+:100D7000089585EB94E4089586EB94E4089587EB59
+:100D800094E408958CEC94E408958DEC94E4089533
+:100D900083E895E408958AE895E4089582E995E466
+:100DA000089584E995E4089581E296E4089583E244
+:100DB00096E4089584E296E4089585E296E4089521
+:100DC00086E296E4089587E296E408958AE296E43E
+:100DD0000895089596E0799FF001112494E5899F84
+:100DE000E00DF11D1124E60FF11DEE0FFF1FEF596D
+:100DF000FE4F859194910895880F991FFC01E5534A
+:100E0000F040859194910895880F991FFC01E55B4E
+:100E1000FE4F85919491089526E0729FF001112470
+:100E200044E5849FE00DF11D1124E60FF11DEE0F46
+:100E3000FF1FEF59FE4F859194919C013A95211522
+:100E40004FE1340708F41AC13F512115304120F415
+:100E50009F700E94040708959C0130532115304172
+:100E600018F49927906C0895811520E5920769F48C
+:100E70000E94BB144FEF84E39CE0415080409040BF
+:100E8000E1F700C000000C947A1B813020E5920746
+:100E900031F48091CC0181608093CC0108959C0154
+:100EA00030552115304108F051C0292F33272F70BC
+:100EB000332721303105D9F4AC014370552702C0E6
+:100EC000220F331F4A95E2F73C68AC0164E0440FFF
+:100ED000551F6A95E1F744275370242B352B73E097
+:100EE000880F991F7A95E1F7807699271DC02230E7
+:100EF000310529F4982F8827816F906A089523304F
+:100F00003105A9F4AC014370552721E030E002C05F
+:100F1000220F331F4A95E2F73C6843E0880F991F80
+:100F20004A95E1F7807E9770822B932B08952430A9
+:100F30003105E1F4AC014370552721E030E002C0F7
+:100F4000220F331F4A95E2F73A68E7CF9C013057EA
+:100F50002115304118F49F70906208959C0130581B
+:100F60002115304118F49F70906A0895803E9105D4
+:100F7000E0F4803C910558F58133910509F46FC088
+:100F800048F48932910509F463C08A32910509F465
+:100F90006DC072C089339105E9F082389105D1F0B6
+:100FA0008533910509F44DC067C0833E910581F1F9
+:100FB00038F4803E9105B9F0823E9105D9F05CC0CD
+:100FC000863E910561F1873E9105A1F155C00E94D1
+:100FD000FC0608952091DF0120FD02C021FF4CC0D6
+:100FE00080EE90E049C08091DF0180FFF9CF89E376
+:100FF00090E042C08091DF0182FF0EC08091DF014E
+:1010000084FF03C080E090E037C083EE90E034C0FE
+:101010008091DF0182FFF2CF82EE90E02DC08091BF
+:10102000DF0183FF0BC08091DF0184FDEBCF87EEF2
+:1010300090E022C08091DF0183FFF5CF86EE90E043
+:101040001BC08091DF0185FF07C089E290E014C0DA
+:101050008091DF0185FFF9CF85E390E00DC080919D
+:10106000DF0186FF07C08AE290E006C08091DF01C1
+:1010700086FFF9CF81E390E00E942A060895089543
+:10108000809162010895CF93DF9300D01F92CDB776
+:10109000DEB79C018091E501843019F593E09983D6
+:1010A0003B832A839093E9008FEF9091E800815071
+:1010B00095FD06C095ED9A95F1F700008111F5CFE9
+:1010C0008091E80085FF0DC040E050E063E070E0F3
+:1010D000CE0101960E94AD0A8091E8008E77809340
+:1010E000E8000F900F900F90DF91CF910895CF936C
+:1010F000DF9300D01F92CDB7DEB72091E5012430F9
+:1011000021F522E029839B838A8383E08093E90091
+:101110008FEF9091E800815095FD06C095ED9A956E
+:10112000F1F700008111F5CF8091E80085FF0DC037
+:1011300040E050E063E070E0CE0101960E94AD0A0D
+:101140008091E8008E778093E8000F900F900F90C9
+:10115000DF91CF9108952091E5012430F1F422E050
+:101160002093E9002FEF3091E800215035FD06C0B3
+:1011700035ED3A95F1F700002111F5CF2091E80007
+:1011800025FF0BC040E050E065E070E00E94AD0A32
+:101190008091E8008E778093E8000895CF93DF93E5
+:1011A000EC019091E501943009F046C080910C016A
+:1011B0008823D9F080910D018823B9F09093E9003C
+:1011C0008FEF9091E800815095FD06C095E19A95CA
+:1011D000F1F700008111F5CF8091E80085FF2CC068
+:1011E00040E050E060E170E017C081E08093E900EA
+:1011F0008FEF9091E800815095FD06C095ED9A958E
+:10120000F1F700008111F5CF8091E80085FF14C04F
+:1012100040E050E068E070E0CE010E94AD0A8091AD
+:10122000E8008E778093E80080E1FE01A2E5B1E05E
+:1012300001900D928A95E1F7DF91CF910895809109
+:10124000E401811109C00E94420C0E949F0C809110
+:10125000E20084608093E20008951092E401089512
+:1012600008950C94B1210E94101B0E94B7210E9486
+:10127000450F0C943F0842E061EC81E00E94BC0BFA
+:1012800042E061EC82E00E94BC0B42E061EC83E052
+:101290000E94BC0B42E161EC84E00C94BC0B809199
+:1012A000E701833009F455C030F4813071F08230A9
+:1012B00009F48EC008958A3009F47AC08B3009F49D
+:1012C00060C0893009F09CC020C08091E601813A5D
+:1012D00009F096C08091E800877F8093E8008091B4
+:1012E000EA019091EB01892B21F460E182E591E024
+:1012F00003C060E080E090E070E00E94F80A809116
+:10130000E8008B778093E80008958091E6018132B0
+:1013100009F076C08091EA019091EB01009719F0F5
+:10132000039709F06DC08091E800877F8093E80003
+:101330008091E80082FD05C08091E5018111F8CF20
+:101340005FC08091F100809362018091E8008B770B
+:1013500053C08091E601813A09F052C08091EA01C0
+:101360009091EB01892B09F04BC08091E800877FB9
+:101370008093E8008091E80080FFFCCF80910C0111
+:1013800036C08091E6018132D9F58091EA019091D1
+:10139000EB01892BA9F58091E800877F8093E80015
+:1013A0000E94F10B8091E80180930C010C94BB1416
+:1013B0008091E601813221F58091E800877F80935A
+:1013C000E8000E94F10B8091E90180936301089588
+:1013D0008091E601813AA1F48091E800877F8093B3
+:1013E000E8008091E80080FFFCCF8091630180934A
+:1013F000F1008091E8008E778093E8000C94F10B67
+:10140000089584B7877F84BF88E10FB6F8948093EE
+:101410006000109260000FBE90E080E80FB6F89474
+:1014200080936100909361000FBE0E94940F0E9410
+:10143000420C0E949F0C8091E20084608093E20045
+:1014400078940E94250F0E94960F82E091E00E94FE
+:10145000400F0E949F218091E501853069F40E9430
+:10146000D41A8091E3018823B1F30E94FC1A8823E7
+:1014700091F30E94970AEFCF0E949C0FECCF292F87
+:10148000332723303105C9F064F42130310581F070
+:101490002230310509F043C08DE690E02DED34E0B7
+:1014A00042C021323105F1F02232310541F137C01D
+:1014B00082E190E02AE435E036C099278130910539
+:1014C00041F08230910541F0892B49F5E9EDF4E0D6
+:1014D00005C0E1ECF4E002C0E9EAF4E0849190E0B8
+:1014E0009F0121C06430D8F4E62FF0E0EE0FFF1F1B
+:1014F000EE5DFE4F2081318189E090E014C06430C0
+:1015000070F470E0FB01EE0FFF1FE65EFE4F2081DE
+:101510003181FB01EA5EFE4F808190E004C080E0F3
+:1015200090E020E030E0FA0131832083089580E1EB
+:1015300089BD82E189BD09B400FEFDCF8091D8004C
+:101540008F7D8093D8008091E00082608093E000DE
+:101550008091E00081FDFCCF0895CF92DF92EF9261
+:10156000FF920F931F93CF93DF93EC018B016A01DE
+:101570000E94100C811133C0C114D10439F0F6015E
+:1015800080819181081B190BC80FD91FE12CF12C08
+:101590000115110519F18091E80085FD16C08091B3
+:1015A000E8008E778093E800C114D10449F0F60179
+:1015B00080819181E80EF91EF182E08285E00FC002
+:1015C0000E94100C882321F30AC089918093F100B6
+:1015D00001501109FFEFEF1AFF0ADACF80E0DF9127
+:1015E000CF911F910F91FF90EF90DF90CF900895D2
+:1015F0002091EC013091ED012617370748F0611575
+:10160000710539F42091E8002E772093E80001C09D
+:10161000B90140E061157105A9F12091E50122238E
+:1016200009F443C0253009F442C02091E80023FDAD
+:1016300040C02091E80022FD32C02091E80020FF48
+:10164000E9CF4091F3002091F20030E0342BFC010F
+:10165000CF016115710559F02830310540F48191B1
+:101660008093F100615071092F5F3F4FF1CF41E04E
+:101670002830310509F040E02091E8002E772093D2
+:10168000E800C8CF4111C9CF0AC08091E501882385
+:1016900061F0853061F08091E80083FD0AC080919F
+:1016A000E80082FFF2CF80E0089582E0089583E0B1
+:1016B000089581E008952091EC013091ED01261705
+:1016C000370748F06115710539F42091E8002E774D
+:1016D0002093E80001C0B901FC0120E0611571050B
+:1016E00091F18091E501882309F440C0853009F427
+:1016F0003FC08091E80083FD3DC08091E80082FDFD
+:101700002FC08091E80080FFE9CF2091F300809105
+:10171000F20090E0922B6115710559F08830910527
+:1017200040F424912093F1003196615071090196A3
+:10173000F2CF21E0089709F020E08091E8008E7751
+:101740008093E800CBCF2111CCCF0AC08091E50176
+:10175000882361F0853061F08091E80083FD0AC044
+:101760008091E80082FFF2CF80E0089582E0089542
+:1017700083E0089581E00895982F973058F590936D
+:10178000E900981739F07091EC002091ED0050912C
+:10179000F00003C0242F762F50E021FF19C03091B4
+:1017A000EB003E7F3093EB003091ED003D7F3093B6
+:1017B000ED003091EB0031603093EB007093EC0062
+:1017C0002093ED005093F0002091EE0027FF07C01A
+:1017D0009F5FD3CF8F708093E90081E0089580E010
+:1017E00008958091E60187FF11C08091E80082FD95
+:1017F00005C08091E5018111F8CF11C08091E8000A
+:101800008B770BC08091E501882349F08091E80037
+:1018100080FFF8CF8091E8008E778093E8000895EC
+:101820002091E4003091E50095E64091EC00842F92
+:10183000817040FF22C08091E80080FD1CC0809133
+:10184000E501882391F0853091F08091EB0085FDD2
+:1018500010C04091E4005091E5004217530729F36E
+:101860009A01915011F784E0089582E0089583E091
+:10187000089581E0089580E008954091E80042FFD6
+:10188000DECF08950E94B00C0E94B80CE0EEF0E0AC
+:10189000808181608083E8EDF0E080818F778083B4
+:1018A00019BCA7EDB0E08C918E7F8C9380818F7EE8
+:1018B00080831092E40108950F931F93CF93DF93D9
+:1018C0000E94B00C0E94B80CC8EDD0E088818F77E0
+:1018D000888388818068888388818F7D888319BC0C
+:1018E0001092E5011092E1011092E3011092E201E1
+:1018F00000EE10E0F80180818B7F80838881816019
+:10190000888342E060E080E00E94BC0BE1EEF0E002
+:1019100080818E7F8083E2EEF0E080818160808331
+:10192000808188608083F80180818E7F80838881B8
+:1019300080618883DF91CF911F910F910895E8ED29
+:10194000F0E080818F7E8083E7EDF0E08081816030
+:10195000808384E082BF81E08093E4010C945C0C7E
+:10196000E8EDF0E080818E7F80831092E2000895A0
+:101970001092DA001092E10008951F920F920FB6B4
+:101980000F9211242F933F934F935F936F937F9305
+:101990008F939F93AF93BF93EF93FF938091E10059
+:1019A00082FF0BC08091E20082FF07C08091E100BE
+:1019B0008B7F8093E1000E94240F8091DA0080FFEA
+:1019C0001FC08091D80080FF1BC08091DA008E7FFD
+:1019D0008093DA008091D90080FF0DC080E189BD3D
+:1019E00082E189BD09B400FEFDCF81E08093E5016D
+:1019F0000E941F0905C019BC1092E5010E942D0923
+:101A00008091E10080FF19C08091E20080FF15C045
+:101A10008091E2008E7F8093E2008091E2008061FD
+:101A20008093E2008091D80080628093D80019BC36
+:101A300085E08093E5010E9431098091E10084FFF7
+:101A400030C08091E20084FF2CC080E189BD82E13A
+:101A500089BD09B400FEFDCF8091D8008F7D8093B1
+:101A6000D8008091E1008F7E8093E1008091E200B8
+:101A70008F7E8093E2008091E20081608093E2009B
+:101A80008091E101882311F084E007C08091E30098
+:101A900087FD02C081E001C083E08093E5010E94E0
+:101AA00033098091E10083FF29C08091E20083FF28
+:101AB00025C08091E100877F8093E10082E08093E0
+:101AC000E5011092E1018091E1008E7F8093E100B9
+:101AD0008091E2008E7F8093E2008091E20080613D
+:101AE0008093E20042E060E080E00E94BC0B8091C5
+:101AF000F00088608093F0000E943009FF91EF9120
+:101B0000BF91AF919F918F917F916F915F914F9115
+:101B10003F912F910F900FBE0F901F9018951F921D
+:101B20000F920FB60F9211242F933F934F935F9311
+:101B30006F937F938F939F93AF93BF93CF93DF93D5
+:101B4000EF93FF93C091E900CF708091EC00D82F04
+:101B5000D17080FDD0E81092E9008091F000877F7D
+:101B60008093F00078940E94D30D1092E900809148
+:101B7000F00088608093F000CD2BCF70C093E90017
+:101B8000FF91EF91DF91CF91BF91AF919F918F9195
+:101B90007F916F915F914F913F912F910F900FBE69
+:101BA0000F901F9018951F93CF93DF93CDB7DEB79B
+:101BB000AA970FB6F894DEBF0FBECDBFE6EEF1E0F8
+:101BC00088E08E0F9091F10091938E13FBCF0E94CD
+:101BD0004F098091E80083FF1FC18091E601909139
+:101BE000E701492F50E04A30510508F015C1FA01CC
+:101BF000E15AFF4F0C943923803881F0823809F084
+:101C00000BC18091EA018F708093E9008091EB0015
+:101C100085FB882780F91092E90006C08091E201D7
+:101C20009091E301911182609091E800977F9093E9
+:101C3000E8008093F1001092F100C8C0282F2D7F9A
+:101C400009F0EAC0882319F0823061F0E5C0809184
+:101C5