summaryrefslogtreecommitdiffstats
path: root/keyboards
diff options
context:
space:
mode:
authorJosh Colbeck <skrymir@gmail.com>2017-02-22 03:31:16 +0100
committerJosh Colbeck <skrymir@gmail.com>2017-02-22 03:31:16 +0100
commite51001efcc3ff8b64f8264e8bd4c2dbea15f3364 (patch)
treebdf5a0a4b44d5e63ba1376b70d94f64c77f3c90c /keyboards
parentc56693f858cb3409e4a68a8e65a1370c022a51ed (diff)
parent7ff41df32c29bca4e3a6efc3047b8fa93bb99b92 (diff)
downloadqmk_firmware-e51001efcc3ff8b64f8264e8bd4c2dbea15f3364.tar.gz
qmk_firmware-e51001efcc3ff8b64f8264e8bd4c2dbea15f3364.tar.xz
Merge remote-tracking branch 'qmk/master'
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/alps64/Makefile69
-rw-r--r--keyboards/alps64/readme.md4
-rw-r--r--keyboards/alps64/rules.mk66
-rw-r--r--keyboards/amj60/Makefile3
-rw-r--r--keyboards/amj60/amj60.c30
-rw-r--r--keyboards/amj60/amj60.h153
-rw-r--r--keyboards/amj60/config.h94
-rw-r--r--keyboards/amj60/keymaps/iso_split_rshift/Makefile23
-rwxr-xr-xkeyboards/amj60/keymaps/iso_split_rshift/build.sh42
-rw-r--r--keyboards/amj60/keymaps/iso_split_rshift/keymap.c147
-rw-r--r--keyboards/amj60/keymaps/iso_split_rshift/readme.md30
-rwxr-xr-xkeyboards/amj60/keymaps/iso_split_rshift/updatemerge.sh4
-rw-r--r--keyboards/amj60/readme.md57
-rw-r--r--keyboards/amj60/rules.mk66
-rw-r--r--keyboards/amjpad/Makefile3
-rw-r--r--keyboards/amjpad/amjpad.c30
-rw-r--r--keyboards/amjpad/amjpad.h46
-rw-r--r--keyboards/amjpad/config.h94
-rw-r--r--keyboards/amjpad/keymaps/default/keymap.c101
-rw-r--r--keyboards/amjpad/rules.mk (renamed from keyboards/clueboard2/Makefile)7
-rw-r--r--keyboards/arrow_pad/Makefile73
-rw-r--r--keyboards/arrow_pad/readme.md119
-rw-r--r--keyboards/arrow_pad/rules.mk70
-rw-r--r--keyboards/atomic/Makefile72
-rw-r--r--keyboards/atomic/keymaps/pvc/Makefile4
-rw-r--r--keyboards/atomic/keymaps/pvc/config.h11
-rw-r--r--keyboards/atomic/keymaps/pvc/keymap.c444
-rw-r--r--keyboards/atomic/readme.md7
-rw-r--r--keyboards/atomic/rules.mk69
-rw-r--r--keyboards/atreus/Makefile89
-rw-r--r--keyboards/atreus/atreus.h10
-rw-r--r--keyboards/atreus/config.h4
-rw-r--r--keyboards/atreus/keymaps/alphadox/config.h80
-rw-r--r--keyboards/atreus/keymaps/alphadox/keymap.c45
-rw-r--r--keyboards/atreus/keymaps/classic/keymap.c48
-rw-r--r--keyboards/atreus/keymaps/default/keymap.c22
-rw-r--r--keyboards/atreus/keymaps/erlandsona/config.h96
-rw-r--r--keyboards/atreus/keymaps/erlandsona/keymap.c61
-rw-r--r--keyboards/atreus/keymaps/jeremy/keymap.c66
-rw-r--r--keyboards/atreus/keymaps/jeremy/readme.md45
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/atreus-replica-base.pngbin0 -> 75363 bytes
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/atreus-replica-extend.pngbin0 -> 92445 bytes
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/atreus-replica-function.pngbin0 -> 91749 bytes
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/atreus-replica-game.pngbin0 -> 72856 bytes
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/atreus-replica-num.pngbin0 -> 74690 bytes
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/config.h94
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/keymap.c213
-rw-r--r--keyboards/atreus/keymaps/replicaJunction/readme.md61
-rw-r--r--keyboards/atreus/keymaps/xyverz/keymap.c89
-rw-r--r--keyboards/atreus/readme.md11
-rw-r--r--keyboards/atreus/rules.mk82
-rw-r--r--keyboards/atreus62/Makefile3
-rw-r--r--keyboards/atreus62/atreus62.c1
-rw-r--r--keyboards/atreus62/atreus62.h26
-rw-r--r--keyboards/atreus62/config.h83
-rw-r--r--keyboards/atreus62/keymaps/default/keymap.c71
-rw-r--r--keyboards/atreus62/keymaps/mneme/Makefile5
-rw-r--r--keyboards/atreus62/keymaps/mneme/README.md58
-rw-r--r--keyboards/atreus62/keymaps/mneme/config.h7
-rw-r--r--keyboards/atreus62/keymaps/mneme/img/base.pngbin0 -> 457157 bytes
-rw-r--r--keyboards/atreus62/keymaps/mneme/img/fun.pngbin0 -> 425368 bytes
-rw-r--r--keyboards/atreus62/keymaps/mneme/img/sym.pngbin0 -> 433218 bytes
-rw-r--r--keyboards/atreus62/keymaps/mneme/keymap.c344
-rw-r--r--keyboards/atreus62/keymaps/mneme/unicode114
-rw-r--r--keyboards/atreus62/pro_micro.h362
-rw-r--r--keyboards/atreus62/readme.md10
-rw-r--r--keyboards/atreus62/rules.mk66
-rw-r--r--keyboards/bantam44/Makefile73
-rw-r--r--keyboards/bantam44/readme.md7
-rw-r--r--keyboards/bantam44/rules.mk67
-rw-r--r--keyboards/chibios_test/Makefile11
-rw-r--r--keyboards/chibios_test/boards/GENERIC_STM32_F103/board.c98
-rw-r--r--keyboards/chibios_test/boards/GENERIC_STM32_F103/board.h332
-rw-r--r--keyboards/chibios_test/boards/GENERIC_STM32_F103/board.mk10
-rw-r--r--keyboards/chibios_test/ld/MKL26Z64.ld210
-rw-r--r--keyboards/chibios_test/ld/STM32F103x8_stm32duino_bootloader.ld176
-rw-r--r--keyboards/chibios_test/rules.mk8
-rw-r--r--keyboards/chibios_test/stm32_f072_onekey/Makefile42
-rw-r--r--keyboards/chibios_test/stm32_f072_onekey/mcuconf.h342
-rw-r--r--keyboards/chibios_test/stm32_f072_onekey/rules.mk41
-rw-r--r--keyboards/chibios_test/stm32_f103_onekey/Makefile53
-rw-r--r--keyboards/chibios_test/stm32_f103_onekey/mcuconf.h418
-rw-r--r--keyboards/chibios_test/stm32_f103_onekey/rules.mk52
-rw-r--r--keyboards/chibios_test/teensy_lc_onekey/Makefile48
-rw-r--r--keyboards/chibios_test/teensy_lc_onekey/chconf.h1048
-rw-r--r--keyboards/chibios_test/teensy_lc_onekey/halconf.h374
-rw-r--r--keyboards/chibios_test/teensy_lc_onekey/mcuconf.h110
-rw-r--r--keyboards/chibios_test/teensy_lc_onekey/rules.mk49
-rw-r--r--keyboards/clueboard/Makefile108
-rw-r--r--keyboards/clueboard/config.h3
-rw-r--r--keyboards/clueboard/keymaps/default/keymap.c8
-rw-r--r--keyboards/clueboard/keymaps/skully/readme.md5
-rw-r--r--keyboards/clueboard/readme.md97
-rw-r--r--keyboards/clueboard/rev1/Makefile6
-rw-r--r--keyboards/clueboard/rev1/config.h2
-rw-r--r--keyboards/clueboard/rev1/rules.mk5
-rw-r--r--keyboards/clueboard/rev2/Makefile6
-rw-r--r--keyboards/clueboard/rev2/config.h4
-rw-r--r--keyboards/clueboard/rev2/rules.mk5
-rw-r--r--keyboards/clueboard/rules.mk103
-rw-r--r--keyboards/clueboard2/clueboard2.c63
-rw-r--r--keyboards/cluecard/Makefile3
-rw-r--r--keyboards/cluecard/cluecard.c98
-rw-r--r--keyboards/cluecard/cluecard.h22
-rw-r--r--keyboards/cluecard/config.h167
-rw-r--r--keyboards/cluecard/keymaps/default/Makefile21
-rw-r--r--keyboards/cluecard/keymaps/default/config.h8
-rw-r--r--keyboards/cluecard/keymaps/default/keymap.c63
-rw-r--r--keyboards/cluecard/keymaps/default/readme.md5
-rw-r--r--keyboards/cluecard/keymaps/rgb_effects/Makefile21
-rw-r--r--keyboards/cluecard/keymaps/rgb_effects/config.h12
-rw-r--r--keyboards/cluecard/keymaps/rgb_effects/keymap.c28
-rw-r--r--keyboards/cluecard/keymaps/rgb_effects/readme.md7
-rw-r--r--keyboards/cluecard/readme.md28
-rw-r--r--keyboards/cluecard/rules.mk70
-rw-r--r--keyboards/cluepad/Makefile71
-rw-r--r--keyboards/cluepad/config.h2
-rw-r--r--keyboards/cluepad/readme.md4
-rw-r--r--keyboards/cluepad/rules.mk65
-rw-r--r--keyboards/converter/Makefile3
-rw-r--r--keyboards/converter/converter.c1
-rw-r--r--keyboards/converter/converter.h1
-rw-r--r--keyboards/converter/ibm_terminal/Makefile3
-rw-r--r--keyboards/converter/ibm_terminal/README40
-rw-r--r--keyboards/converter/ibm_terminal/config.h138
-rw-r--r--keyboards/converter/ibm_terminal/ibm_terminal.c6
-rw-r--r--keyboards/converter/ibm_terminal/ibm_terminal.h82
-rw-r--r--keyboards/converter/ibm_terminal/keymaps/default/Makefile27
-rw-r--r--keyboards/converter/ibm_terminal/keymaps/default/config.h6
-rw-r--r--keyboards/converter/ibm_terminal/keymaps/default/keymap.c69
-rw-r--r--keyboards/converter/ibm_terminal/keymaps/priyadi/Makefile27
-rw-r--r--keyboards/converter/ibm_terminal/keymaps/priyadi/config.h6
-rw-r--r--keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c312
-rw-r--r--keyboards/converter/ibm_terminal/led.c33
-rw-r--r--keyboards/converter/ibm_terminal/matrix.c237
-rw-r--r--keyboards/converter/ibm_terminal/rules.mk72
-rw-r--r--keyboards/converter/rules.mk0
-rw-r--r--keyboards/ergodox/Makefile5
-rw-r--r--keyboards/ergodox/config.h37
-rw-r--r--keyboards/ergodox/ergodox.c4
-rw-r--r--keyboards/ergodox/ergodox.h10
-rwxr-xr-xkeyboards/ergodox/ez/190hotfix.sh (renamed from keyboards/ergodox_ez/190hotfix.sh)0
-rw-r--r--keyboards/ergodox/ez/Makefile8
-rw-r--r--keyboards/ergodox/ez/config.h81
-rw-r--r--keyboards/ergodox/ez/ez.c (renamed from keyboards/ergodox_ez/ergodox_ez.c)35
-rw-r--r--keyboards/ergodox/ez/ez.h (renamed from keyboards/ergodox_ez/ergodox_ez.h)41
-rw-r--r--keyboards/ergodox/ez/i2cmaster.h (renamed from keyboards/ergodox_ez/i2cmaster.h)0
-rw-r--r--keyboards/ergodox/ez/keymaps/profet_80/ergodox80.pngbin0 -> 20663 bytes
-rw-r--r--keyboards/ergodox/ez/keymaps/profet_80/keymap.c183
-rw-r--r--keyboards/ergodox/ez/keymaps/profet_80/readme.md10
-rw-r--r--keyboards/ergodox/ez/keymaps/steno/Makefile3
-rw-r--r--keyboards/ergodox/ez/keymaps/steno/keymap.c324
-rw-r--r--keyboards/ergodox/ez/keymaps/steno/readme.md92
-rw-r--r--keyboards/ergodox/ez/matrix.c (renamed from keyboards/ergodox_ez/matrix.c)4
-rw-r--r--keyboards/ergodox/ez/rules.mk (renamed from keyboards/ergodox_ez/Makefile)16
-rw-r--r--keyboards/ergodox/ez/twimaster.c (renamed from keyboards/ergodox_ez/twimaster.c)0
-rw-r--r--keyboards/ergodox/ez/util/compile_keymap.py (renamed from keyboards/ergodox_ez/keymaps/german-manuneo/compile_keymap.py)0
-rw-r--r--keyboards/ergodox/ez/util/readme.md (renamed from keyboards/ergodox_ez/util/readme.md)0
-rw-r--r--keyboards/ergodox/infinity/MEMO.txt (renamed from keyboards/infinity_chibios/MEMO.txt)0
-rw-r--r--keyboards/ergodox/infinity/Makefile3
-rw-r--r--keyboards/ergodox/infinity/bootloader_defs.h (renamed from keyboards/infinity_chibios/bootloader_defs.h)0
-rw-r--r--keyboards/ergodox/infinity/chconf.h (renamed from keyboards/infinity_ergodox/chconf.h)0
-rw-r--r--keyboards/ergodox/infinity/config.h (renamed from keyboards/infinity_ergodox/config.h)25
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h (renamed from keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h)0
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk (renamed from keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/driver.mk)0
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c (renamed from keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c)0
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h (renamed from keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h)0
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk (renamed from keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/driver.mk)0
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c (renamed from keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c)0
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk (renamed from keyboards/infinity_ergodox/drivers/gdisp/emulator_led/driver.mk)0
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c (renamed from keyboards/infinity_ergodox/drivers/gdisp/emulator_led/emulator_led.c)0
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h (renamed from keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h)0
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk (renamed from keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/driver.mk)0
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c (renamed from keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c)0
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h (renamed from keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h)0
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h (renamed from keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/st7565.h)0
-rw-r--r--keyboards/ergodox/infinity/gfxconf.h (renamed from keyboards/infinity_ergodox/gfxconf.h)0
-rw-r--r--keyboards/ergodox/infinity/halconf.h (renamed from keyboards/infinity_ergodox/halconf.h)0
-rw-r--r--keyboards/ergodox/infinity/infinity.c (renamed from keyboards/infinity_ergodox/infinity_ergodox.c)86
-rw-r--r--keyboards/ergodox/infinity/infinity.h110
-rw-r--r--keyboards/ergodox/infinity/led.c26
-rw-r--r--keyboards/ergodox/infinity/matrix.c (renamed from keyboards/infinity_ergodox/matrix.c)3
-rw-r--r--keyboards/ergodox/infinity/mcuconf.h (renamed from keyboards/infinity_ergodox/mcuconf.h)0
-rw-r--r--keyboards/ergodox/infinity/rules.mk79
-rw-r--r--keyboards/ergodox/keymaps/ab/Makefile (renamed from keyboards/ergodox_ez/keymaps/ab/Makefile)0
-rw-r--r--keyboards/ergodox/keymaps/ab/keyboard-layout.json (renamed from keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json)0
-rw-r--r--keyboards/ergodox/keymaps/ab/keyboard-layout.png (renamed from keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png)bin80776 -> 80776 bytes
-rw-r--r--keyboards/ergodox/keymaps/ab/keymap.c (renamed from keyboards/ergodox_ez/keymaps/ab/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/ab/readme.md (renamed from keyboards/ergodox_ez/keymaps/ab/readme.md)2
-rw-r--r--keyboards/ergodox/keymaps/absenth/absenth_highres.pngbin0 -> 1463041 bytes
-rw-r--r--keyboards/ergodox/keymaps/absenth/keymap.c (renamed from keyboards/ergodox_ez/keymaps/default/keymap.c)21
-rw-r--r--keyboards/ergodox/keymaps/absenth/readme.md11
-rw-r--r--keyboards/ergodox/keymaps/adnw_k_o_y/keymap.c (renamed from keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/adnw_k_o_y/readme.md (renamed from keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/albert/Makefile5
-rw-r--r--keyboards/ergodox/keymaps/albert/config.h12
-rw-r--r--keyboards/ergodox/keymaps/albert/keymap.c661
-rw-r--r--keyboards/ergodox/keymaps/albert/readme.md188
-rw-r--r--keyboards/ergodox/keymaps/alexjj/keymap.c (renamed from keyboards/ergodox_ez/keymaps/alexjj/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/alexjj/readme.md (renamed from keyboards/ergodox_ez/keymaps/alexjj/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/alexjj/rl-layout.jpg (renamed from keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg)bin833107 -> 833107 bytes
-rw-r--r--keyboards/ergodox/keymaps/algernon/COPYING (renamed from keyboards/ergodox_ez/keymaps/algernon/COPYING)0
-rw-r--r--keyboards/ergodox/keymaps/algernon/Makefile (renamed from keyboards/ergodox_ez/keymaps/algernon/Makefile)21
-rw-r--r--keyboards/ergodox/keymaps/algernon/NEWS.md189
-rw-r--r--keyboards/ergodox/keymaps/algernon/config.h (renamed from keyboards/ergodox_ez/keymaps/algernon/config.h)0
-rw-r--r--keyboards/ergodox/keymaps/algernon/images/adore-layer.pngbin0 -> 97357 bytes
-rw-r--r--keyboards/ergodox/keymaps/algernon/images/base-layer.pngbin0 -> 102318 bytes
-rw-r--r--keyboards/ergodox/keymaps/algernon/images/heatmap.pngbin0 -> 139351 bytes
-rw-r--r--keyboards/ergodox/keymaps/algernon/images/hun-layer.png (renamed from keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png)bin67924 -> 67924 bytes
-rw-r--r--keyboards/ergodox/keymaps/algernon/images/nav-n-media-layer.png (renamed from keyboards/ergodox_ez/keymaps/algernon/images/nav-n-media-layer.png)bin94837 -> 94837 bytes
-rw-r--r--keyboards/ergodox/keymaps/algernon/images/steno-layer.pngbin0 -> 64086 bytes
-rw-r--r--keyboards/ergodox/keymaps/algernon/keymap.c (renamed from keyboards/ergodox_ez/keymaps/algernon/keymap.c)1032
-rw-r--r--keyboards/ergodox/keymaps/algernon/readme.md146
-rw-r--r--keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.ADORE.json486
-rw-r--r--keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.Dvorak.json477
-rwxr-xr-xkeyboards/ergodox/keymaps/algernon/tools/hid-commands80
-rwxr-xr-xkeyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py344
-rwxr-xr-xkeyboards/ergodox/keymaps/algernon/tools/text-to-log.py107
-rw-r--r--keyboards/ergodox/keymaps/alphadox/Makefile17
-rw-r--r--keyboards/ergodox/keymaps/alphadox/config.h12
-rw-r--r--keyboards/ergodox/keymaps/alphadox/keymap.c107
-rw-r--r--keyboards/ergodox/keymaps/andrew_osx/keymap.c (renamed from keyboards/ergodox_ez/keymaps/andrew_osx/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/bepo/Makefile (renamed from keyboards/ergodox_ez/keymaps/erez_experimental/Makefile)0
-rw-r--r--keyboards/ergodox/keymaps/bepo/bepo.pngbin0 -> 80249 bytes
-rw-r--r--keyboards/ergodox/keymaps/bepo/keymap.c (renamed from keyboards/ergodox_ez/keymaps/bepo/keymap.c)337
-rw-r--r--keyboards/ergodox/keymaps/bepo/readme.md (renamed from keyboards/ergodox_ez/keymaps/bepo/readme.md)6
-rw-r--r--keyboards/ergodox/keymaps/bepo_csa/keymap.c527
-rw-r--r--keyboards/ergodox/keymaps/bepo_csa/readme.md162
-rw-r--r--keyboards/ergodox/keymaps/bryan/keymap.c226
-rw-r--r--keyboards/ergodox/keymaps/coderkun_neo2/Makefile3
-rw-r--r--keyboards/ergodox/keymaps/coderkun_neo2/keymap.c (renamed from keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c)73
-rw-r--r--keyboards/ergodox/keymaps/coderkun_neo2/readme.md (renamed from keyboards/ergodox_ez/keymaps/coderkun_neo2/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/colemak/keymap.c (renamed from keyboards/ergodox_ez/keymaps/colemak/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/colemak/readme.md (renamed from keyboards/ergodox_ez/keymaps/colemak/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/colemak_osx_pc_no/keyboard-layout.png (renamed from keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png)bin103158 -> 103158 bytes
-rw-r--r--keyboards/ergodox/keymaps/colemak_osx_pc_no/keymap.c (renamed from keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c)4
-rw-r--r--keyboards/ergodox/keymaps/colemak_osx_pc_no/readme.md (renamed from keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/common-nighthawk/Makefile6
-rw-r--r--keyboards/ergodox/keymaps/common-nighthawk/keymap.c216
-rw-r--r--keyboards/ergodox/keymaps/csharp_dev/csharp_dev.png (renamed from keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev.png)bin97642 -> 97642 bytes
-rw-r--r--keyboards/ergodox/keymaps/csharp_dev/csharp_dev_legend.png (renamed from keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png)bin387797 -> 387797 bytes
-rw-r--r--keyboards/ergodox/keymaps/csharp_dev/keymap.c (renamed from keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/csharp_dev/readme.md (renamed from keyboards/ergodox_ez/keymaps/csharp_dev/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/dave/keymap.c (renamed from keyboards/ergodox_ez/keymaps/dave/keymap.c)14
-rw-r--r--keyboards/ergodox/keymaps/dave/readme.md (renamed from keyboards/ergodox_ez/keymaps/dave/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/Makefile1
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.pngbin0 -> 79488 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.pngbin0 -> 79904 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.pngbin0 -> 62258 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.pngbin0 -> 58886 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/keymap.c517
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/readme.md72
-rw-r--r--keyboards/ergodox/keymaps/default/default.png (renamed from keyboards/ergodox_ez/keymaps/default/default.png)bin193672 -> 193672 bytes
-rw-r--r--keyboards/ergodox/keymaps/default/default_firmware_v1.2-2.pngbin0 -> 257921 bytes
-rw-r--r--keyboards/ergodox/keymaps/default/default_highres.png (renamed from keyboards/ergodox_ez/keymaps/default/default_highres.png)bin1459389 -> 1459389 bytes
-rw-r--r--keyboards/ergodox/keymaps/default/keymap.c223
-rw-r--r--keyboards/ergodox/keymaps/default/readme.md (renamed from keyboards/ergodox_ez/keymaps/default/readme.md)7
-rw-r--r--keyboards/ergodox/keymaps/default_osx/default_osx_highres.png (renamed from keyboards/ergodox_ez/keymaps/default_osx/default_osx_highres.png)bin772418 -> 772418 bytes
-rw-r--r--keyboards/ergodox/keymaps/default_osx/keymap.c (renamed from keyboards/ergodox_ez/keymaps/default_osx/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/default_osx/readme.md (renamed from keyboards/ergodox_ez/keymaps/default_osx/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/dragon788/keymap.c (renamed from keyboards/ergodox_ez/keymaps/dragon788/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/dvorak/dvorak.png (renamed from keyboards/ergodox_ez/keymaps/dvorak/dvorak.png)bin87314 -> 87314 bytes
-rw-r--r--keyboards/ergodox/keymaps/dvorak/keymap.c (renamed from keyboards/ergodox_ez/keymaps/dvorak/keymap.c)2
-rwxr-xr-xkeyboards/ergodox/keymaps/dvorak_emacs/keymap.c165
-rw-r--r--keyboards/ergodox/keymaps/dvorak_emacs/readme.md70
-rw-r--r--keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout0.png (renamed from keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png)bin73585 -> 73585 bytes
-rw-r--r--keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout1.png (renamed from keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png)bin59122 -> 59122 bytes
-rw-r--r--keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout2.png (renamed from keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png)bin53319 -> 53319 bytes
-rw-r--r--keyboards/ergodox/keymaps/dvorak_intl_squisher/keymap.c (renamed from keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/dvorak_intl_squisher/readme.md (renamed from keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/dvorak_plover/README.md14
-rw-r--r--keyboards/ergodox/keymaps/dvorak_plover/keymap.c230
-rw-r--r--keyboards/ergodox/keymaps/dvorak_programmer/Makefile8
-rw-r--r--keyboards/ergodox/keymaps/dvorak_programmer/README.md39
-rw-r--r--keyboards/ergodox/keymaps/dvorak_programmer/keymap.c406
-rwxr-xr-xkeyboards/ergodox/keymaps/dvorak_spanish/keymap.c (renamed from keyboards/ergodox_ez/keymaps/dvorak_spanish/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/dvorak_spanish/readme.md (renamed from keyboards/ergodox_ez/keymaps/dvorak_spanish/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/emacs_osx_dk/default_highres.png (renamed from keyboards/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png)bin142146 -> 142146 bytes
-rw-r--r--keyboards/ergodox/keymaps/emacs_osx_dk/keymap.c (renamed from keyboards/ergodox_ez/keymaps/emacs_osx_dk/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/emacs_osx_dk/readme.md (renamed from keyboards/ergodox_ez/keymaps/emacs_osx_dk/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/erez_experimental/Makefile11
-rw-r--r--keyboards/ergodox/keymaps/erez_experimental/config.h (renamed from keyboards/ergodox_ez/keymaps/erez_experimental/config.h)1
-rw-r--r--keyboards/ergodox/keymaps/erez_experimental/keymap.c (renamed from keyboards/ergodox_ez/keymaps/erez_experimental/keymap.c)50
-rw-r--r--keyboards/ergodox/keymaps/erez_experimental/readme.md (renamed from keyboards/ergodox_ez/keymaps/erez_experimental/readme.md)4
-rw-r--r--keyboards/ergodox/keymaps/galson/Makefile2
-rw-r--r--keyboards/ergodox/keymaps/galson/keymap.c183
-rw-r--r--keyboards/ergodox/keymaps/galson/readme.md11
-rw-r--r--keyboards/ergodox/keymaps/german-kinergo/keymap.c (renamed from keyboards/ergodox_ez/keymaps/german-kinergo/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/german-kinergo/layout-code.png (renamed from keyboards/ergodox_ez/keymaps/german-kinergo/layout-code.png)bin55386 -> 55386 bytes
-rw-r--r--keyboards/ergodox/keymaps/german-kinergo/layout-media.png (renamed from keyboards/ergodox_ez/keymaps/german-kinergo/layout-media.png)bin67634 -> 67634 bytes
-rw-r--r--keyboards/ergodox/keymaps/german-kinergo/layout.png (renamed from keyboards/ergodox_ez/keymaps/german-kinergo/layout.png)bin71175 -> 71175 bytes
-rw-r--r--keyboards/ergodox/keymaps/german-kinergo/readme.md (renamed from keyboards/ergodox_ez/keymaps/german-kinergo/readme.md)2
-rw-r--r--keyboards/ergodox/keymaps/german-manuneo/compile_keymap.py (renamed from keyboards/ergodox_ez/util/compile_keymap.py)0
-rw-r--r--keyboards/ergodox/keymaps/german-manuneo/keymap.c (renamed from keyboards/ergodox_ez/keymaps/german-manuneo/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/german-manuneo/keymap.md (renamed from keyboards/ergodox_ez/keymaps/german-manuneo/keymap.md)2
-rw-r--r--keyboards/ergodox/keymaps/german/keymap.c (renamed from keyboards/ergodox_ez/keymaps/german/keymap.c)2
-rwxr-xr-xkeyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-enL.pngbin0 -> 84725 bytes
-rwxr-xr-xkeyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-jpL.pngbin0 -> 82660 bytes
-rwxr-xr-xkeyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-numL.pngbin0 -> 72923 bytes
-rw-r--r--keyboards/ergodox/keymaps/ishigoya-jp/keymap.c962
-rw-r--r--keyboards/ergodox/keymaps/ishigoya-jp/readme.md54
-rw-r--r--keyboards/ergodox/keymaps/j3rn/keymap.c (renamed from keyboards/ergodox_ez/keymaps/j3rn/keymap.c)51
-rw-r--r--keyboards/ergodox/keymaps/j3rn/readme.md (renamed from keyboards/ergodox_ez/keymaps/j3rn/readme.md)9
-rw-r--r--keyboards/ergodox/keymaps/jack/Makefile6
-rw-r--r--keyboards/ergodox/keymaps/jack/config.h17
-rw-r--r--keyboards/ergodox/keymaps/jack/keymap.c (renamed from keyboards/ergodox_ez/keymaps/jack/keymap.c)24
-rw-r--r--keyboards/ergodox/keymaps/jacobono/img/colemak-default-layer.png (renamed from keyboards/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png)bin70434 -> 70434 bytes
-rw-r--r--keyboards/ergodox/keymaps/jacobono/img/number-dpad-layer.png (renamed from keyboards/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png)bin46225 -> 46225 bytes
-rw-r--r--keyboards/ergodox/keymaps/jacobono/img/symbol-layer.png (renamed from keyboards/ergodox_ez/keymaps/jacobono/img/symbol-layer.png)bin49615 -> 49615 bytes
-rw-r--r--keyboards/ergodox/keymaps/jacobono/keymap.c (renamed from keyboards/ergodox_ez/keymaps/jacobono/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/jacobono/readme.md (renamed from keyboards/ergodox_ez/keymaps/jacobono/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/jafo/jafo-Notes10
-rw-r--r--keyboards/ergodox/keymaps/jafo/jafo-layout.pdfbin0 -> 185426 bytes
-rw-r--r--keyboards/ergodox/keymaps/jafo/jafo_highres.pngbin0 -> 179460 bytes
-rw-r--r--keyboards/ergodox/keymaps/jafo/keymap.c183
-rw-r--r--keyboards/ergodox/keymaps/jafo/readme.md20
-rw-r--r--keyboards/ergodox/keymaps/jgarr/keymap.c (renamed from keyboards/ergodox_ez/keymaps/jgarr/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/josh/keymap.c (renamed from keyboards/ergodox_ez/keymaps/josh/keymap.c)3
-rw-r--r--keyboards/ergodox/keymaps/josh/readme.md (renamed from keyboards/ergodox_ez/keymaps/josh/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/kastyle/keymap.c (renamed from keyboards/ergodox_ez/keymaps/kastyle/keymap.c)79
-rw-r--r--keyboards/ergodox/keymaps/kastyle/readme.md14
-rw-r--r--keyboards/ergodox/keymaps/kines-ish/keymap.c (renamed from keyboards/ergodox_ez/keymaps/kines-ish/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/kines-ish/readme.md (renamed from keyboards/ergodox_ez/keymaps/kines-ish/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/kristian/keymap.c79
-rw-r--r--keyboards/ergodox/keymaps/maz/keymap.c229
-rw-r--r--keyboards/ergodox/keymaps/maz/readme.md121
-rw-r--r--keyboards/ergodox/keymaps/mclennon_osx/README.md5
-rw-r--r--keyboards/ergodox/keymaps/mclennon_osx/keymap.c144
-rw-r--r--keyboards/ergodox/keymaps/mpiechotka/keymap.c (renamed from keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/mpiechotka/readme.md (renamed from keyboards/ergodox_ez/keymaps/mpiechotka/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/msc/img/code_layer.png (renamed from keyboards/ergodox_ez/keymaps/msc/img/code_layer.png)bin71266 -> 71266 bytes
-rw-r--r--keyboards/ergodox/keymaps/msc/img/main_layer.png (renamed from keyboards/ergodox_ez/keymaps/msc/img/main_layer.png)bin90624 -> 90624 bytes
-rw-r--r--keyboards/ergodox/keymaps/msc/img/media_layer.png (renamed from keyboards/ergodox_ez/keymaps/msc/img/media_layer.png)bin75750 -> 75750 bytes
-rw-r--r--keyboards/ergodox/keymaps/msc/keymap.c (renamed from keyboards/ergodox_ez/keymaps/msc/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/msc/readme.md (renamed from keyboards/ergodox_ez/keymaps/msc/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/naps62/keymap.c (renamed from keyboards/ergodox_ez/keymaps/naps62/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/naps62/readme.md (renamed from keyboards/ergodox_ez/keymaps/naps62/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keyboard-layout.pngbin0 -> 140077 bytes
-rw-r--r--keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keymap.c180
-rw-r--r--keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/readme.md30
-rw-r--r--keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keyboard-layout.pngbin0 -> 97519 bytes
-rw-r--r--keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keymap.c180
-rw-r--r--keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/readme.md30
-rw-r--r--keyboards/ergodox/keymaps/ordinary/keymap.c504
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-base.pngbin0 -> 120512 bytes
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-base.txt27
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-media.pngbin0 -> 123523 bytes
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-media.txt27
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-special.pngbin0 -> 68292 bytes
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-special.txt27
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-symbol.pngbin0 -> 90642 bytes
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-symbol.txt27
-rw-r--r--keyboards/ergodox/keymaps/ordinary/readme.md101
-rw-r--r--keyboards/ergodox/keymaps/osx_de/keymap.c (renamed from keyboards/ergodox_ez/keymaps/osx_de/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/osx_de/osx_de_highres.png (renamed from keyboards/ergodox_ez/keymaps/osx_de/osx_de_highres.png)bin298446 -> 298446 bytes
-rw-r--r--keyboards/ergodox/keymaps/osx_de/readme.md (renamed from keyboards/ergodox_ez/keymaps/osx_de/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/osx_de_adnw_koy/keymap.c (renamed from keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png (renamed from keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png)bin183892 -> 183892 bytes
-rw-r--r--keyboards/ergodox/keymaps/osx_de_experimental/keymap.c (renamed from keyboards/ergodox_ez/keymaps/osx_de_experimental/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png (renamed from keyboards/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png)bin303904 -> 303904 bytes
-rw-r--r--keyboards/ergodox/keymaps/osx_de_experimental/readme.md (renamed from keyboards/ergodox_ez/keymaps/osx_de_experimental/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/osx_fr/keymap.c (renamed from keyboards/ergodox_ez/keymaps/osx_fr/keymap.c)4
-rw-r--r--keyboards/ergodox/keymaps/osx_kinesis_pnut/keymap.c (renamed from keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/keymap.c231
-rw-r--r--keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/osx_whiskey_tango_foxtrot_capslock.pngbin0 -> 185064 bytes
-rw-r--r--keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/readme.md38
-rw-r--r--keyboards/ergodox/keymaps/phoenix/keymap.c184
-rw-r--r--keyboards/ergodox/keymaps/phoenix/readme.md10
-rw-r--r--keyboards/ergodox/keymaps/plover/keymap.c (renamed from keyboards/ergodox_ez/keymaps/plover/keymap.c)6
-rw-r--r--keyboards/ergodox/keymaps/plums/keymap.c (renamed from keyboards/ergodox_ez/keymaps/plums/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/plums/plums.png (renamed from keyboards/ergodox_ez/keymaps/plums/plums.png)bin223300 -> 223300 bytes
-rw-r--r--keyboards/ergodox/keymaps/plums/readme.md (renamed from keyboards/ergodox_ez/keymaps/plums/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/pvinis/Changelog.md7
-rw-r--r--keyboards/ergodox/keymaps/pvinis/Makefile9
-rw-r--r--keyboards/ergodox/keymaps/pvinis/Readme.md65
-rw-r--r--keyboards/ergodox/keymaps/pvinis/keymap.c475
-rw-r--r--keyboards/ergodox/keymaps/replicaJunction/config.h63
-rw-r--r--keyboards/ergodox/keymaps/replicaJunction/keymap.c336
-rw-r--r--keyboards/ergodox/keymaps/replicaJunction/readme.md5
-rw-r--r--keyboards/ergodox/keymaps/reset_eeprom/keymap.c140
-rw-r--r--keyboards/ergodox/keymaps/robot_test_layout/keymap.c151
-rw-r--r--keyboards/ergodox/keymaps/robot_test_layout/readme.md5
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c46
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md41
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png (renamed from keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png)bin96954 -> 96954 bytes
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c (renamed from keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md (renamed from keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md)2
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png (renamed from keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png)bin130692 -> 130692 bytes
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/keymap.c (renamed from keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/readme.md (renamed from keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png (renamed from keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png)bin130464 -> 130464 bytes
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c (renamed from keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/readme.md (renamed from keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png (renamed from keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png)bin100627 -> 100627 bytes
-rw-r--r--keyboards/ergodox/keymaps/sethbc/Makefile3
-rw-r--r--keyboards/ergodox/keymaps/sethbc/keymap.c102
-rw-r--r--keyboards/ergodox/keymaps/sethbc/readme.md4
-rw-r--r--keyboards/ergodox/keymaps/sneako/keymap.c (renamed from keyboards/ergodox_ez/keymaps/sneako/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/sneako/readme.md (renamed from keyboards/ergodox_ez/keymaps/sneako/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/software_neo2/keymap.c (renamed from keyboards/ergodox_ez/keymaps/software_neo2/keymap.c)66
-rw-r--r--keyboards/ergodox/keymaps/supercoder/config.h (renamed from keyboards/ergodox_ez/keymaps/supercoder/config_user.h)2
-rw-r--r--keyboards/ergodox/keymaps/supercoder/images/layout.png (renamed from keyboards/ergodox_ez/keymaps/supercoder/images/layout.png)bin65607 -> 65607 bytes
-rw-r--r--keyboards/ergodox/keymaps/supercoder/images/supercoder_2000.jpg (renamed from keyboards/ergodox_ez/keymaps/supercoder/images/supercoder_2000.jpg)bin75444 -> 75444 bytes
-rw-r--r--keyboards/ergodox/keymaps/supercoder/keymap.c (renamed from keyboards/ergodox_ez/keymaps/supercoder/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/supercoder/makefile.mk (renamed from keyboards/ergodox_ez/keymaps/supercoder/makefile.mk)0
-rw-r--r--keyboards/ergodox/keymaps/supercoder/readme.md (renamed from keyboards/ergodox_ez/keymaps/supercoder/readme.md)4
-rw-r--r--keyboards/ergodox/keymaps/swissgerman/keyboard-layout.json419
-rw-r--r--keyboards/ergodox/keymaps/swissgerman/keyboard-layout.pngbin0 -> 75633 bytes
-rw-r--r--keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.json436
-rw-r--r--keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.pngbin0 -> 58099 bytes
-rw-r--r--keyboards/ergodox/keymaps/swissgerman/keymap.c287
-rw-r--r--keyboards/ergodox/keymaps/swissgerman/readme.md15
-rw-r--r--keyboards/ergodox/keymaps/techtomas/keymap.c (renamed from keyboards/ergodox_ez/keymaps/techtomas/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/techtomas/readme.md (renamed from keyboards/ergodox_ez/keymaps/techtomas/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/teckinesis/keymap.c (renamed from keyboards/ergodox_ez/keymaps/ordinary/keymap.c)39
-rw-r--r--keyboards/ergodox/keymaps/teckinesis/ordinary-special.png (renamed from keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.png)bin63065 -> 63065 bytes
-rw-r--r--keyboards/ergodox/keymaps/teckinesis/ordinary-special.txt (renamed from keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.txt)0
-rw-r--r--keyboards/ergodox/keymaps/teckinesis/readme.md45
-rw-r--r--keyboards/ergodox/keymaps/teckinesis/teckinesis-base.json434
-rw-r--r--keyboards/ergodox/keymaps/teckinesis/teckinesis-base.pngbin0 -> 93743 bytes
-rw-r--r--keyboards/ergodox/keymaps/teckinesis/teckinesis-media.json436
-rw-r--r--keyboards/ergodox/keymaps/teckinesis/teckinesis-media.pngbin0 -> 112216 bytes
-rw-r--r--keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.json422
-rw-r--r--keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.pngbin0 -> 97350 bytes
-rw-r--r--keyboards/ergodox/keymaps/tkuichooseyou/README.md (renamed from keyboards/ergodox_ez/keymaps/tkuichooseyou/README.md)0
-rw-r--r--keyboards/ergodox/keymaps/tkuichooseyou/compiled.hex (renamed from keyboards/ergodox_ez/keymaps/tkuichooseyou/compiled.hex)0
-rw-r--r--keyboards/ergodox/keymaps/tkuichooseyou/keymap.c (renamed from keyboards/ergodox_ez/keymaps/tkuichooseyou/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/tm2030/keymap.c (renamed from keyboards/ergodox_ez/keymaps/tm2030/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/tm2030/readme.md (renamed from keyboards/ergodox_ez/keymaps/tm2030/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/tonyabra_osx/keymap.c (renamed from keyboards/ergodox_ez/keymaps/tonyabra_osx/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/tonyabra_osx/readme.md (renamed from keyboards/ergodox_ez/keymaps/tonyabra_osx/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/townk_osx/config.h44
-rw-r--r--keyboards/ergodox/keymaps/townk_osx/keymap.c (renamed from keyboards/ergodox_ez/keymaps/townk_osx/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/townk_osx/makefile.mk (renamed from keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk)4
-rw-r--r--keyboards/ergodox/keymaps/townk_osx/readme.md (renamed from keyboards/ergodox_ez/keymaps/townk_osx/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/townk_osx/townk_osx_base.png (renamed from keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_base.png)bin785859 -> 785859 bytes
-rw-r--r--keyboards/ergodox/keymaps/townk_osx/townk_osx_fn.png (renamed from keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png)bin390041 -> 390041 bytes
-rw-r--r--keyboards/ergodox/keymaps/townk_osx/townk_osx_keypad.png (renamed from keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png)bin424425 -> 424425 bytes
-rw-r--r--keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.c213
-rw-r--r--keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.pngbin0 -> 119825 bytes
-rw-r--r--keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.pngbin0 -> 292705 bytes
-rw-r--r--keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/readme.md10
-rw-r--r--keyboards/ergodox/keymaps/twey/keymap.c (renamed from keyboards/ergodox_ez/keymaps/twey/keymap.c)3
-rw-r--r--keyboards/ergodox/keymaps/twey/readme.md (renamed from keyboards/ergodox_ez/keymaps/twey/readme.md)0
-rw-r--r--keyboards/ergodox/keymaps/videck/Makefile19
-rw-r--r--keyboards/ergodox/keymaps/videck/config.h13
-rw-r--r--keyboards/ergodox/keymaps/videck/keymap.c179
-rw-r--r--keyboards/ergodox/keymaps/videck/readme.md24
-rw-r--r--keyboards/ergodox/keymaps/videck/videck.json443
-rw-r--r--keyboards/ergodox/keymaps/videck/videck.pngbin0 -> 106851 bytes
-rw-r--r--keyboards/ergodox/keymaps/win10_writers-block/Makefile9
-rw-r--r--keyboards/ergodox/keymaps/win10_writers-block/config.h36
-rw-r--r--keyboards/ergodox/keymaps/win10_writers-block/images/base-layer.pngbin0 -> 125979 bytes
-rw-r--r--keyboards/ergodox/keymaps/win10_writers-block/images/media-layer.pngbin0 -> 102643 bytes
-rw-r--r--keyboards/ergodox/keymaps/win10_writers-block/images/rimworld-layer.pngbin0 -> 90359 bytes
-rw-r--r--keyboards/ergodox/keymaps/win10_writers-block/images/symbol-layer.pngbin0 -> 101477 bytes
-rw-r--r--keyboards/ergodox/keymaps/win10_writers-block/keymap.c324
-rw-r--r--keyboards/ergodox/keymaps/win10_writers-block/readme.md113
-rw-r--r--keyboards/ergodox/keymaps/workman_osx_mdw/keymap.c (renamed from keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c)2
-rw-r--r--keyboards/ergodox/keymaps/xyverz/keymap.c312
-rw-r--r--keyboards/ergodox/keymaps/xyverz/readme.md122
-rw-r--r--keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf6
-rw-r--r--keyboards/ergodox/keymaps/yoruian/Makefile13
-rw-r--r--keyboards/ergodox/keymaps/yoruian/README102
-rw-r--r--keyboards/ergodox/keymaps/yoruian/ergodox_yoruian34
-rw-r--r--keyboards/ergodox/keymaps/yoruian/keymap.c61
-rw-r--r--keyboards/ergodox/keymaps/yoruian/yoruian.h61
-rw-r--r--keyboards/ergodox/keymaps/zweihander-osx/Makefile2
-rw-r--r--keyboards/ergodox/keymaps/zweihander-osx/keymap.c (renamed from keyboards/ergodox_ez/keymaps/zweihander-osx/keymap.c)40
-rw-r--r--keyboards/ergodox/keymaps/zweihander-osx/readme.markdown (renamed from keyboards/ergodox_ez/keymaps/zweihander-osx/readme.markdown)10
-rw-r--r--keyboards/ergodox/keymaps/zweihander-osx/zweihander-osx.hex1151
-rw-r--r--keyboards/ergodox/readme.md164
-rw-r--r--keyboards/ergodox/rules.mk28
-rw-r--r--keyboards/ergodox_ez/keymaps/algernon/images/base-layer.pngbin105162 -> 0 bytes
-rw-r--r--keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.pngbin105172 -> 0 bytes
-rw-r--r--keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.pngbin91140 -> 0 bytes
-rw-r--r--keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.pngbin69557 -> 0 bytes
-rw-r--r--keyboards/ergodox_ez/keymaps/algernon/readme.md230
-rwxr-xr-xkeyboards/ergodox_ez/keymaps/algernon/tools/max-focused5
-rw-r--r--keyboards/ergodox_ez/keymaps/bepo/bepo.pngbin79747 -> 0 bytes
-rw-r--r--keyboards/ergodox_ez/keymaps/coderkun_neo2/Makefile1
-rw-r--r--keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.pngbin99605 -> 0 bytes
-rw-r--r--keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.txt27
-rw-r--r--keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.pngbin124144 -> 0 bytes
-rw-r--r--keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.txt27
-rw-r--r--keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.pngbin103735 -> 0 bytes
-rw-r--r--keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt27
-rw-r--r--keyboards/ergodox_ez/keymaps/ordinary/readme.md103
-rw-r--r--keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c46
-rw-r--r--keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md28
-rw-r--r--keyboards/ergodox_ez/readme.md44
-rw-r--r--keyboards/gh60/Makefile77
-rw-r--r--keyboards/gh60/config.h322
-rw-r--r--keyboards/gh60/gh60.c50
-rw-r--r--keyboards/gh60/gh60.h149
-rw-r--r--keyboards/gh60/keymaps/dbroqua/Makefile112
-rw-r--r--keyboards/gh60/keymaps/dbroqua/config.h187
-rw-r--r--keyboards/gh60/keymaps/dbroqua/keymap.c198
-rw-r--r--keyboards/gh60/keymaps/default/keymap.c36
-rw-r--r--keyboards/gh60/keymaps/robotmaxtron/Makefile224
-rw-r--r--keyboards/gh60/keymaps/robotmaxtron/config.h380
-rw-r--r--keyboards/gh60/keymaps/robotmaxtron/keymap.c58
-rw-r--r--keyboards/gh60/keymaps/sethbc/Makefile3
-rw-r--r--keyboards/gh60/keymaps/sethbc/keymap.c76
-rw-r--r--keyboards/gh60/pinout.txt34
-rw-r--r--keyboards/gh60/readme.md122
-rw-r--r--keyboards/gh60/rules.mk66
-rw-r--r--keyboards/gonnerd/Makefile3
-rw-r--r--keyboards/gonnerd/config.h43
-rw-r--r--keyboards/gonnerd/gonnerd.c1
-rw-r--r--keyboards/gonnerd/gonnerd.h42
-rw-r--r--keyboards/gonnerd/keymaps/default/Makefile21
-rw-r--r--keyboards/gonnerd/keymaps/default/keymap.c26
-rw-r--r--keyboards/gonnerd/keymaps/mauin/Makefile21
-rw-r--r--keyboards/gonnerd/keymaps/mauin/keymap.c108
-rw-r--r--keyboards/gonnerd/keymaps/mauin/readme.md5
-rw-r--r--keyboards/gonnerd/readme.md38
-rw-r--r--keyboards/gonnerd/rules.mk66
-rw-r--r--keyboards/handwired/CMD60/CMD60.c8
-rw-r--r--keyboards/handwired/CMD60/CMD60.h20
-rw-r--r--keyboards/handwired/CMD60/Makefile3
-rw-r--r--keyboards/handwired/CMD60/README.md35
-rw-r--r--keyboards/handwired/CMD60/config.h162
-rw-r--r--keyboards/handwired/CMD60/keymaps/default/keymap.c66
-rw-r--r--keyboards/handwired/CMD60/rules.mk73
-rw-r--r--keyboards/handwired/Makefile2
-rw-r--r--keyboards/handwired/fivethirteen/Makefile74
-rw-r--r--keyboards/handwired/fivethirteen/rules.mk73
-rw-r--r--keyboards/handwired/gamenum/Makefile3
-rw-r--r--keyboards/handwired/gamenum/README.md102
-rw-r--r--keyboards/handwired/gamenum/config.h162
-rw-r--r--keyboards/handwired/gamenum/gamenum.c14
-rw-r--r--keyboards/handwired/gamenum/gamenum.h21
-rw-r--r--keyboards/handwired/gamenum/keymaps/default/keymap.c68
-rw-r--r--keyboards/handwired/gamenum/rules.mk73
-rw-r--r--keyboards/handwired/minorca/Makefile3
-rw-r--r--keyboards/handwired/minorca/config.h80
-rw-r--r--keyboards/handwired/minorca/keymaps/default/Makefile25
-rw-r--r--keyboards/handwired/minorca/keymaps/default/config.h12
-rw-r--r--keyboards/handwired/minorca/keymaps/default/keymap.c44
-rw-r--r--keyboards/handwired/minorca/keymaps/default/readme.md5
-rw-r--r--keyboards/handwired/minorca/keymaps/readme.md23
-rw-r--r--keyboards/handwired/minorca/keymaps/rgb/Makefile25
-rw-r--r--keyboards/handwired/minorca/keymaps/rgb/config.h20
-rw-r--r--keyboards/handwired/minorca/keymaps/rgb/example.jpgbin0 -> 72737 bytes
-rw-r--r--keyboards/handwired/minorca/keymaps/rgb/keymap.c65
-rw-r--r--keyboards/handwired/minorca/keymaps/rgb/readme.md25
-rw-r--r--keyboards/handwired/minorca/keymaps/rgb/wiring1.jpgbin0 -> 119547 bytes
-rw-r--r--keyboards/handwired/minorca/keymaps/rgb/wiring2.jpgbin0 -> 94987 bytes
-rw-r--r--keyboards/handwired/minorca/minorca.c6
-rw-r--r--keyboards/handwired/minorca/minorca.h6
-rw-r--r--keyboards/handwired/minorca/readme.md33
-rw-r--r--keyboards/handwired/minorca/rules.mk67
-rw-r--r--keyboards/handwired/onekey/Makefile64
-rw-r--r--keyboards/handwired/onekey/keymaps/default/keymap.c2
-rw-r--r--keyboards/handwired/onekey/rules.mk65
-rw-r--r--keyboards/handwired/pilcrow/Makefile3
-rw-r--r--keyboards/handwired/pilcrow/config.h162
-rw-r--r--keyboards/handwired/pilcrow/keymaps/default/Makefile21
-rw-r--r--keyboards/handwired/pilcrow/keymaps/default/config.h8
-rw-r--r--keyboards/handwired/pilcrow/keymaps/default/keymap.c88
-rw-r--r--keyboards/handwired/pilcrow/keymaps/default/readme.md1
-rw-r--r--keyboards/handwired/pilcrow/pilcrow.c28
-rw-r--r--keyboards/handwired/pilcrow/pilcrow.h23
-rw-r--r--keyboards/handwired/pilcrow/readme.md28
-rw-r--r--keyboards/handwired/pilcrow/rules.mk67
-rw-r--r--keyboards/handwired/promethium/Makefile3
-rw-r--r--keyboards/handwired/promethium/config.h341
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/Makefile29
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/README.md44
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/config.h28
-rwxr-xr-xkeyboards/handwired/promethium/keymaps/priyadi/flash.sh4
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/keymap.c1204
-rw-r--r--keyboards/handwired/promethium/keymaps/readme.md22
-rw-r--r--keyboards/handwired/promethium/promethium.c42
-rw-r--r--keyboards/handwired/promethium/promethium.h10
-rw-r--r--keyboards/handwired/promethium/readme.md13
-rw-r--r--keyboards/handwired/promethium/rgbsps.c73
-rw-r--r--keyboards/handwired/promethium/rgbsps.h5
-rw-r--r--keyboards/handwired/promethium/rules.mk76
-rwxr-xr-xkeyboards/handwired/reddot/Makefile3
-rwxr-xr-xkeyboards/handwired/reddot/config.h162
-rwxr-xr-xkeyboards/handwired/reddot/keymaps/default/keymap.c29
-rwxr-xr-xkeyboards/handwired/reddot/keymaps/default/readme.md1
-rwxr-xr-xkeyboards/handwired/reddot/readme.md24
-rwxr-xr-xkeyboards/handwired/reddot/reddot.c7
-rwxr-xr-xkeyboards/handwired/reddot/reddot.h20
-rwxr-xr-xkeyboards/handwired/reddot/rules.mk88
-rw-r--r--keyboards/handwired/retro_refit/Makefile3
-rw-r--r--keyboards/handwired/retro_refit/config.h (renamed from keyboards/retro_refit/config.h)0
-rw-r--r--keyboards/handwired/retro_refit/keymaps/default/keymap.c (renamed from keyboards/retro_refit/keymaps/default/keymap.c)0
-rw-r--r--keyboards/handwired/retro_refit/readme.md60
-rw-r--r--keyboards/handwired/retro_refit/retro_refit.c (renamed from keyboards/retro_refit/retro_refit.c)0
-rw-r--r--keyboards/handwired/retro_refit/retro_refit.h (renamed from keyboards/retro_refit/retro_refit.h)0
-rw-r--r--keyboards/handwired/retro_refit/rules.mk (renamed from keyboards/retro_refit/Makefile)6
-rw-r--r--keyboards/handwired/rules.mk0
-rw-r--r--keyboards/handwired/traveller/Makefile3
-rw-r--r--keyboards/handwired/traveller/config.h173
-rw-r--r--keyboards/handwired/traveller/keymaps/default/keymap.c305
-rw-r--r--keyboards/handwired/traveller/keymaps/default/readme.md2
-rw-r--r--keyboards/handwired/traveller/readme.md35
-rw-r--r--keyboards/handwired/traveller/rules.mk89
-rw-r--r--keyboards/handwired/traveller/traveller.c61
-rw-r--r--keyboards/handwired/traveller/traveller.h32
-rw-r--r--keyboards/hhkb/Makefile91
-rw-r--r--keyboards/hhkb/keymaps/dbroqua/keymap.c92
-rw-r--r--keyboards/hhkb/keymaps/dbroqua/readme.md9
-rw-r--r--keyboards/hhkb/keymaps/jp/Makefile2
-rw-r--r--keyboards/hhkb/keymaps/rdg_jp/Makefile2
-rw-r--r--keyboards/hhkb/keymaps/sh_jp/Makefile1
-rw-r--r--keyboards/hhkb/keymaps/sh_jp/README.md86
-rw-r--r--keyboards/hhkb/keymaps/sh_jp/keymap.c60
-rw-r--r--keyboards/hhkb/keymaps/shela/Makefile1
-rw-r--r--keyboards/hhkb/keymaps/shela/action_pseudo_lut.c142
-rw-r--r--keyboards/hhkb/keymaps/shela/action_pseudo_lut.h15
-rw-r--r--keyboards/hhkb/keymaps/shela/config.h12
-rw-r--r--keyboards/hhkb/keymaps/shela/keymap.c179
-rw-r--r--keyboards/hhkb/keymaps/shela/keymap_jis2us.h32
-rw-r--r--keyboards/hhkb/keymaps/shela/readme.md14
-rw-r--r--keyboards/hhkb/readme.md10
-rw-r--r--keyboards/hhkb/rules.mk80
-rw-r--r--keyboards/infinity60/MEMO.txt (renamed from keyboards/infinity_ergodox/MEMO.txt)0
-rw-r--r--keyboards/infinity60/Makefile3
-rw-r--r--keyboards/infinity60/bootloader_defs.h (renamed from keyboards/infinity_ergodox/bootloader_defs.h)0
-rw-r--r--keyboards/infinity60/chconf.h (renamed from keyboards/infinity_chibios/chconf.h)1048
-rw-r--r--keyboards/infinity60/config.h (renamed from keyboards/infinity_chibios/config.h)16
-rw-r--r--keyboards/infinity60/halconf.h (renamed from keyboards/infinity_chibios/halconf.h)706
-rw-r--r--keyboards/infinity60/infinity60.c32
-rw-r--r--keyboards/infinity60/infinity60.h (renamed from keyboards/infinity_chibios/infinity_chibios.h)36
-rw-r--r--keyboards/infinity60/keymaps/default/keymap.c (renamed from keyboards/infinity_chibios/keymaps/default/keymap.c)37
-rwxr-xr-xkeyboards/infinity60/keymaps/depariel/keymap.c91
-rw-r--r--keyboards/infinity60/keymaps/hasu/keymap.c123
-rw-r--r--keyboards/infinity60/led.c (renamed from keyboards/infinity_chibios/led.c)0
-rw-r--r--keyboards/infinity60/matrix.c (renamed from keyboards/infinity_chibios/matrix.c)61
-rw-r--r--keyboards/infinity60/mcuconf.h (renamed from keyboards/infinity_chibios/mcuconf.h)110
-rw-r--r--keyboards/infinity60/readme.md29
-rw-r--r--keyboards/infinity60/rules.mk (renamed from keyboards/infinity_chibios/Makefile)6
-rw-r--r--keyboards/infinity_chibios/keymaps/hasu/keymap.c199
-rw-r--r--keyboards/infinity_ergodox/infinity_ergodox.h44
-rw-r--r--keyboards/infinity_ergodox/keymaps/default/keymap.c114
-rw-r--r--keyboards/infinity_ergodox/keymaps/default/visualizer.c168
-rw-r--r--keyboards/infinity_ergodox/led.c49
-rw-r--r--keyboards/jd40/Makefile3
-rw-r--r--keyboards/jd40/config.h79
-rw-r--r--keyboards/jd40/jd40.c26
-rw-r--r--keyboards/jd40/jd40.h45
-rw-r--r--keyboards/jd40/keymaps/default/keymap.c164
-rw-r--r--keyboards/jd40/readme.md17
-rw-r--r--keyboards/jd40/rules.mk69
-rw-r--r--keyboards/jd45/Makefile72
-rw-r--r--keyboards/jd45/keymaps/jeebak/config.h16
-rw-r--r--keyboards/jd45/keymaps/jeebak/keymap.c423
-rw-r--r--keyboards/jd45/keymaps/jeebak/readme.md129
-rw-r--r--keyboards/jd45/readme.md4
-rw-r--r--keyboards/jd45/rules.mk67
-rw-r--r--keyboards/kc60/Makefile75
-rw-r--r--keyboards/kc60/config.h2
-rw-r--r--keyboards/kc60/kc60.c15
-rw-r--r--keyboards/kc60/kc60.h77
-rw-r--r--keyboards/kc60/keymaps/dbroqua/keymap.c103
-rw-r--r--keyboards/kc60/keymaps/dbroqua/readme.md11
-rw-r--r--keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c73
-rw-r--r--keyboards/kc60/keymaps/dbroqua_hhkb/readme.md9
-rw-r--r--keyboards/kc60/keymaps/default/keymap.c2
-rw-r--r--keyboards/kc60/keymaps/sgoodwin/keymap.c6
-rw-r--r--keyboards/kc60/keymaps/stanleylai/keymap.c8
-rw-r--r--keyboards/kc60/keymaps/wigguno/keymap.c4
-rw-r--r--keyboards/kc60/keymaps/workman-dead/kc60-wm-dead.pngbin0 -> 117155 bytes
-rw-r--r--keyboards/kc60/keymaps/workman-dead/keymap.c183
-rw-r--r--keyboards/kc60/keymaps/workman-dead/readme.md17
-rw-r--r--keyboards/kc60/keymaps/ws2812/config.h2
-rw-r--r--keyboards/kc60/keymaps/ws2812/keymap.c6
-rw-r--r--keyboards/kc60/readme.md17
-rw-r--r--keyboards/kc60/rules.mk68
-rw-r--r--keyboards/kinesis/Makefile5
-rw-r--r--keyboards/kinesis/alvicstep/Makefile3
-rw-r--r--keyboards/kinesis/alvicstep/alvicstep.c105
-rw-r--r--keyboards/kinesis/alvicstep/alvicstep.h67
-rw-r--r--keyboards/kinesis/alvicstep/config.h35
-rw-r--r--keyboards/kinesis/alvicstep/docs/kicad/kinesis-cache.lib232
-rw-r--r--keyboards/kinesis/alvicstep/docs/kicad/kinesis.pro83
-rw-r--r--keyboards/kinesis/alvicstep/docs/kicad/kinesis.sch634
-rw-r--r--keyboards/kinesis/alvicstep/docs/photos/P1050573.jpgbin0 -> 177711 bytes
-rw-r--r--keyboards/kinesis/alvicstep/docs/photos/P1050574.jpgbin0 -> 343978 bytes
-rw-r--r--keyboards/kinesis/alvicstep/docs/photos/P1050575.jpgbin0 -> 266771 bytes
-rw-r--r--keyboards/kinesis/alvicstep/docs/readme.txt52
-rw-r--r--keyboards/kinesis/alvicstep/docs/schematic.pngbin0 -> 175014 bytes
-rw-r--r--keyboards/kinesis/alvicstep/matrix.c228
-rw-r--r--keyboards/kinesis/alvicstep/readme.md46
-rw-r--r--keyboards/kinesis/alvicstep/rules.mk10
-rw-r--r--keyboards/kinesis/config.h147
-rw-r--r--keyboards/kinesis/keymaps/default/Makefile21
-rw-r--r--keyboards/kinesis/keymaps/default/config.h8
-rw-r--r--keyboards/kinesis/keymaps/default/keymap.c90
-rw-r--r--keyboards/kinesis/keymaps/default/readme.md1
-rw-r--r--keyboards/kinesis/keymaps/dvorak/Makefile21
-rw-r--r--keyboards/kinesis/keymaps/dvorak/config.h8
-rw-r--r--keyboards/kinesis/keymaps/dvorak/keymap.c93
-rw-r--r--keyboards/kinesis/keymaps/milestogo/Makefile21
-rw-r--r--keyboards/kinesis/keymaps/milestogo/config.h8
-rw-r--r--keyboards/kinesis/keymaps/milestogo/keymap.c384
-rw-r--r--keyboards/kinesis/keymaps/milestogo/readme.md2
-rw-r--r--keyboards/kinesis/kinesis.c1
-rw-r--r--keyboards/kinesis/kinesis.h23
-rw-r--r--keyboards/kinesis/readme.md12
-rw-r--r--keyboards/kinesis/rules.mk73
-rw-r--r--keyboards/kinesis/stapelberg/Makefile3
-rw-r--r--keyboards/kinesis/stapelberg/config.h50
-rw-r--r--keyboards/kinesis/stapelberg/images/controller_board.jpgbin0 -> 129312 bytes
-rw-r--r--keyboards/kinesis/stapelberg/images/exterior_reset.jpgbin0 -> 97794 bytes
-rw-r--r--keyboards/kinesis/stapelberg/images/teensy_detail.jpgbin0 -> 119748 bytes
-rw-r--r--keyboards/kinesis/stapelberg/readme.md55
-rw-r--r--keyboards/kinesis/stapelberg/rules.mk10
-rw-r--r--keyboards/kinesis/stapelberg/stapelberg.c28
-rw-r--r--keyboards/kinesis/stapelberg/stapelberg.h72
-rw-r--r--keyboards/kitten_paw/Makefile3
-rw-r--r--keyboards/kitten_paw/config.h162
-rw-r--r--keyboards/kitten_paw/keymaps/default/keymap.c51
-rw-r--r--keyboards/kitten_paw/keymaps/ickerwx/config.h31
-rw-r--r--keyboards/kitten_paw/keymaps/ickerwx/keymap.c242
-rw-r--r--keyboards/kitten_paw/keymaps/ickerwx/readme.md18
-rw-r--r--keyboards/kitten_paw/kitten_paw.c43
-rw-r--r--keyboards/kitten_paw/kitten_paw.h58
-rw-r--r--keyboards/kitten_paw/matrix.c165
-rw-r--r--keyboards/kitten_paw/readme.md32
-rw-r--r--keyboards/kitten_paw/rules.mk72
-rw-r--r--keyboards/lets_split/Makefile79
-rw-r--r--keyboards/lets_split/config.h85
-rw-r--r--keyboards/lets_split/eeprom-lefthand.eep2
-rw-r--r--keyboards/lets_split/eeprom-righthand.eep2
-rw-r--r--keyboards/lets_split/i2c.c3
-rw-r--r--keyboards/lets_split/imgs/left.stlbin0 -> 106984 bytes
-rw-r--r--keyboards/lets_split/imgs/lets split rev2 case.iges17931
-rw-r--r--keyboards/lets_split/imgs/letssplitv2.svg4077
-rw-r--r--keyboards/lets_split/imgs/plate.stlbin0 -> 102484 bytes
-rw-r--r--keyboards/lets_split/imgs/right.stlbin0 -> 135384 bytes
-rw-r--r--keyboards/lets_split/keymaps/i2c/config.h31
-rw-r--r--keyboards/lets_split/keymaps/i2c/keymap.c (renamed from keyboards/lets_split/keymaps/default/keymap.c)0
-rw-r--r--keyboards/lets_split/keymaps/serial/config.h34
-rw-r--r--keyboards/lets_split/keymaps/serial/keymap.c214
-rw-r--r--keyboards/lets_split/lets_split.c31
-rw-r--r--keyboards/lets_split/lets_split.h29
-rw-r--r--keyboards/lets_split/matrix.c23
-rw-r--r--keyboards/lets_split/pro_micro.h64
-rw-r--r--keyboards/lets_split/readme.md99
-rw-r--r--keyboards/lets_split/rev1/Makefile3
-rw-r--r--keyboards/lets_split/rev1/config.h (renamed from keyboards/ergodox_ez/keymaps/townk_osx/config.h)36
-rw-r--r--keyboards/lets_split/rev1/rev1.c32
-rw-r--r--keyboards/lets_split/rev1/rev1.h28
-rw-r--r--keyboards/lets_split/rev1/rules.mk5
-rw-r--r--keyboards/lets_split/rev2/Makefile3
-rw-r--r--keyboards/lets_split/rev2/config.h91
-rw-r--r--keyboards/lets_split/rev2/rev2.c32
-rw-r--r--keyboards/lets_split/rev2/rev2.h28
-rw-r--r--keyboards/lets_split/rev2/rules.mk5
-rw-r--r--keyboards/lets_split/rev2fliphalf/Makefile3
-rw-r--r--keyboards/lets_split/rev2fliphalf/config.h91
-rw-r--r--keyboards/lets_split/rev2fliphalf/rev2fliphalf.c32
-rw-r--r--keyboards/lets_split/rev2fliphalf/rev2fliphalf.h28
-rw-r--r--keyboards/lets_split/rev2fliphalf/rules.mk5
-rw-r--r--keyboards/lets_split/rules.mk87
-rw-r--r--keyboards/lets_split/serial.c5
-rw-r--r--keyboards/lets_split/split_util.c11
-rw-r--r--keyboards/maxipad/Makefile3
-rw-r--r--keyboards/maxipad/config.h95
-rw-r--r--keyboards/maxipad/keymaps/default/keymap.c26
-rw-r--r--keyboards/maxipad/maxipad.c1
-rw-r--r--keyboards/maxipad/maxipad.h25
-rw-r--r--keyboards/maxipad/readme.md (renamed from keyboards/retro_refit/readme.md)19
-rw-r--r--keyboards/maxipad/rules.mk76
-rw-r--r--keyboards/pegasushoof/Makefile3
-rw-r--r--keyboards/pegasushoof/README.md24
-rw-r--r--keyboards/pegasushoof/config.h46
-rw-r--r--keyboards/pegasushoof/keymaps/blowrak/Makefile22
-rw-r--r--keyboards/pegasushoof/keymaps/blowrak/keymap.c112
-rw-r--r--keyboards/pegasushoof/keymaps/default/Makefile22
-rw-r--r--keyboards/pegasushoof/keymaps/default/keymap.c60
-rw-r--r--keyboards/pegasushoof/matrix.c204
-rw-r--r--keyboards/pegasushoof/pegasushoof.c51
-rw-r--r--keyboards/pegasushoof/pegasushoof.h51
-rw-r--r--keyboards/pegasushoof/rules.mk67
-rw-r--r--keyboards/phantom/Makefile75
-rw-r--r--keyboards/phantom/config.h2
-rw-r--r--keyboards/phantom/keymaps/xyverz/keymap.c104
-rw-r--r--keyboards/phantom/readme.md4
-rw-r--r--keyboards/phantom/rules.mk69
-rw-r--r--keyboards/planck/Makefile71
-rw-r--r--keyboards/planck/config.h2
-rw-r--r--keyboards/planck/keymaps/bone2planck/Makefile12
-rw-r--r--keyboards/planck/keymaps/bone2planck/config.h8
-rw-r--r--keyboards/planck/keymaps/bone2planck/keymap.c210
-rw-r--r--keyboards/planck/keymaps/bone2planck/readme.md96
-rw-r--r--keyboards/planck/keymaps/brandon/Makefile4
-rw-r--r--keyboards/planck/keymaps/callum/Makefile25
-rw-r--r--keyboards/planck/keymaps/callum/keymap.c155
-rw-r--r--keyboards/planck/keymaps/callum/readme.md71
-rw-r--r--keyboards/planck/keymaps/cbbrowne/Makefile9
-rw-r--r--keyboards/planck/keymaps/cbbrowne/config.h15
-rw-r--r--keyboards/planck/keymaps/cbbrowne/keymap.c110
-rw-r--r--keyboards/planck/keymaps/cbbrowne/readme.md67
-rw-r--r--keyboards/planck/keymaps/circuit/Makefile25
-rw-r--r--keyboards/planck/keymaps/circuit/Readme.md44
-rw-r--r--keyboards/planck/keymaps/circuit/config.h91
-rw-r--r--keyboards/planck/keymaps/circuit/keyboard-layout.pngbin0 -> 154368 bytes
-rw-r--r--keyboards/planck/keymaps/circuit/keymap.c258
-rw-r--r--keyboards/planck/keymaps/dbroqua/keymap.c234
-rw-r--r--keyboards/planck/keymaps/dbroqua/layout.pngbin0 -> 21895 bytes
-rw-r--r--keyboards/planck/keymaps/dbroqua/readme.md14
-rw-r--r--keyboards/planck/keymaps/default/Makefile24
-rw-r--r--keyboards/planck/keymaps/default/keymap.c21
-rw-r--r--keyboards/planck/keymaps/espynn/Makefile63
-rw-r--r--keyboards/planck/keymaps/espynn/keyboard-layout.jpgbin0 -> 52908 bytes
-rw-r--r--keyboards/planck/keymaps/espynn/keymap.c151
-rw-r--r--keyboards/planck/keymaps/espynn/layout.json271
-rw-r--r--keyboards/planck/keymaps/espynn/readme.md18
-rw-r--r--keyboards/planck/keymaps/experimental/Makefile1
-rw-r--r--keyboards/planck/keymaps/experimental/config.h2
-rw-r--r--keyboards/planck/keymaps/experimental/keymap.c9
-rw-r--r--keyboards/planck/keymaps/impossible/Makefile27
-rw-r--r--keyboards/planck/keymaps/impossible/keymap.c242
-rw-r--r--keyboards/planck/keymaps/impossible/readme.md73
-rw-r--r--keyboards/planck/keymaps/jeebak/Makefile27
-rw-r--r--keyboards/planck/keymaps/jeebak/keymap.c459
-rw-r--r--keyboards/planck/keymaps/jeebak/readme.md127
-rw-r--r--keyboards/planck/keymaps/jeremy-dev/keymap.c180
-rw-r--r--keyboards/planck/keymaps/jeremy-dev/readme.md85
-rw-r--r--keyboards/planck/keymaps/jhenahan/Makefile27
-rw-r--r--keyboards/planck/keymaps/jhenahan/config.h9
-rw-r--r--keyboards/planck/keymaps/jhenahan/keymap.c314
-rw-r--r--keyboards/planck/keymaps/jhenahan/readme.md41
-rw-r--r--keyboards/planck/keymaps/joe/Makefile5
-rw-r--r--keyboards/planck/keymaps/leo/Makefile5
-rw-r--r--keyboards/planck/keymaps/lucas/Makefile5
-rw-r--r--keyboards/planck/keymaps/luke/Makefile25
-rw-r--r--keyboards/planck/keymaps/luke/keymap.c355
-rw-r--r--keyboards/planck/keymaps/luke/readme.md2
-rw-r--r--keyboards/planck/keymaps/mitch/Makefile5
-rw-r--r--keyboards/planck/keymaps/mitch/config.h2
-rw-r--r--keyboards/planck/keymaps/mitch/keymap.c70
-rw-r--r--keyboards/planck/keymaps/mitch/readme.md26
-rw-r--r--keyboards/planck/keymaps/mollat/Makefile5
-rw-r--r--keyboards/planck/keymaps/nico/Makefile5
-rw-r--r--keyboards/planck/keymaps/premek/Makefile28
-rw-r--r--keyboards/planck/keymaps/premek/keymap.c231
-rw-r--r--keyboards/planck/keymaps/premek/readme.md4
-rw-r--r--keyboards/planck/keymaps/priyadi/Makefile26
-rw-r--r--keyboards/planck/keymaps/priyadi/config.h39
-rw-r--r--keyboards/planck/keymaps/priyadi/keymap.c1
-rw-r--r--keyboards/planck/keymaps/priyadi/readme.md11
-rw-r--r--keyboards/planck/keymaps/pvc/Makefile11
-rw-r--r--keyboards/planck/keymaps/pvc/config.h21
-rw-r--r--keyboards/planck/keymaps/pvc/keymap.c509
-rw-r--r--keyboards/planck/keymaps/sgoodwin/Makefile29
-rw-r--r--keyboards/planck/keymaps/sgoodwin/keymap.c233
-rw-r--r--keyboards/planck/keymaps/sgoodwin/readme.md10
-rw-r--r--keyboards/planck/keymaps/smt/Makefile3
-rw-r--r--keyboards/planck/keymaps/smt/keymap.c229
-rw-r--r--keyboards/planck/keymaps/smt/readme.md103
-rw-r--r--keyboards/planck/keymaps/tak3over/Makefile5
-rw-r--r--keyboards/planck/keymaps/thermal_printer/Makefile29
-rw-r--r--keyboards/planck/keymaps/thermal_printer/config.h23
-rw-r--r--keyboards/planck/keymaps/thermal_printer/keymap.c314
-rw-r--r--keyboards/planck/keymaps/thermal_printer/readme.md2
-rw-r--r--keyboards/planck/keymaps/tong92/Makefile62
-rw-r--r--keyboards/planck/keymaps/tong92/keymap.c146
-rw-r--r--keyboards/planck/keymaps/tong92/readme.md66
-rw-r--r--keyboards/planck/keymaps/unicode/keymap.c45
-rw-r--r--keyboards/planck/keymaps/vifon/Makefile25
-rw-r--r--keyboards/planck/keymaps/vifon/config.h96
-rw-r--r--keyboards/planck/keymaps/vifon/keymap.c187
-rw-r--r--keyboards/planck/keymaps/xyverz/keymap.c262
-rw-r--r--keyboards/planck/keymaps/xyverz/makefile.mk25
-rw-r--r--keyboards/planck/keymaps/yale/Makefile25
-rw-r--r--keyboards/planck/keymaps/yale/config.h11
-rw-r--r--keyboards/planck/keymaps/yale/keymap.c108
-rw-r--r--keyboards/planck/keymaps/yale/yale_layout_picture.jpgbin0 -> 58141 bytes
-rw-r--r--keyboards/planck/keymaps/yang/config.h2
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_mitch.c49
-rw-r--r--keyboards/planck/out.txt66
-rw-r--r--keyboards/planck/planck.c12
-rw-r--r--keyboards/planck/readme.md8
-rw-r--r--keyboards/planck/rev3/Makefile4
-rw-r--r--keyboards/planck/rev3/rules.mk5
-rw-r--r--keyboards/planck/rev4/Makefile4
-rw-r--r--keyboards/planck/rev4/rules.mk5
-rw-r--r--keyboards/planck/rules.mk68
-rw-r--r--keyboards/preonic/Makefile72
-rw-r--r--keyboards/preonic/config.h4
-rw-r--r--keyboards/preonic/keymaps/0xdec/Makefile21
-rw-r--r--keyboards/preonic/keymaps/0xdec/README.md30
-rw-r--r--keyboards/preonic/keymaps/0xdec/config.h10
-rw-r--r--keyboards/preonic/keymaps/0xdec/keymap.c173
-rw-r--r--keyboards/preonic/keymaps/CMD-Preonic/README.md77
-rw-r--r--keyboards/preonic/keymaps/CMD-Preonic/keymap.c332
-rw-r--r--keyboards/preonic/keymaps/CMD-Preonic/makefile23
-rw-r--r--keyboards/preonic/keymaps/default/Makefile22
-rw-r--r--keyboards/preonic/keymaps/default/keymap.c25
-rw-r--r--keyboards/preonic/keymaps/jacwib/Makefile20
-rw-r--r--keyboards/preonic/keymaps/jacwib/config.h9
-rw-r--r--keyboards/preonic/keymaps/jacwib/keymap.c293
-rw-r--r--keyboards/preonic/keymaps/jacwib/readme.md15
-rw-r--r--keyboards/preonic/keymaps/kinesis/Makefile27
-rw-r--r--keyboards/preonic/keymaps/kinesis/config.h (renamed from keyboards/ergodox_ez/config.h)44
-rw-r--r--keyboards/preonic/keymaps/kinesis/keymap.c144
-rw-r--r--keyboards/preonic/keymaps/kinesis/readme.md1
-rw-r--r--keyboards/preonic/keymaps/smt/Makefile3
-rw-r--r--keyboards/preonic/keymaps/smt/keymap.c247
-rw-r--r--keyboards/preonic/keymaps/smt/readme.md113
-rw-r--r--keyboards/preonic/keymaps/xyverz/keymap.c342
-rw-r--r--keyboards/preonic/keymaps/xyverz/makefile.mk1
-rw-r--r--keyboards/preonic/preonic.c11
-rw-r--r--keyboards/preonic/readme.md8
-rw-r--r--keyboards/preonic/rules.mk70
-rw-r--r--keyboards/ps2avrGB/Makefile3
-rw-r--r--keyboards/ps2avrGB/README.md61
-rw-r--r--keyboards/ps2avrGB/config.h38
-rw-r--r--keyboards/ps2avrGB/keymaps/default/keymap.c32
-rw-r--r--keyboards/ps2avrGB/matrix.c104
-rwxr-xr-xkeyboards/ps2avrGB/program74
-rw-r--r--keyboards/ps2avrGB/ps2avrGB.c0
-rw-r--r--keyboards/ps2avrGB/ps2avrGB.h43
-rw-r--r--keyboards/ps2avrGB/rules.mk43
-rw-r--r--keyboards/ps2avrGB/usbconfig.h396
-rw-r--r--keyboards/readme.md48
-rw-r--r--keyboards/s60-x/Makefile3
-rw-r--r--keyboards/s60-x/config.h164
-rw-r--r--keyboards/s60-x/keymaps/ansi_qwertz/Makefile21
-rw-r--r--keyboards/s60-x/keymaps/ansi_qwertz/config.h14
-rw-r--r--keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.pngbin0 -> 54748 bytes
-rw-r--r--keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg1046
-rw-r--r--keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg1049
-rw-r--r--keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.pngbin0 -> 54041 bytes
-rw-r--r--keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.svg935
-rw-r--r--keyboards/s60-x/keymaps/ansi_qwertz/docs/base_layer.PNGbin0 -> 29411 bytes
-rw-r--r--keyboards/s60-x/keymaps/ansi_qwertz/docs/function_layer.PNGbin0 -> 25567 bytes
-rw-r--r--keyboards/s60-x/keymaps/ansi_qwertz/docs/gaming_layer.PNGbin0 -> 17895 bytes
-rw-r--r--keyboards/s60-x/keymaps/ansi_qwertz/keymap.c237
-rw-r--r--keyboards/s60-x/keymaps/ansi_qwertz/readme.md94
-rw-r--r--keyboards/s60-x/keymaps/custom/keymap.c28
-rw-r--r--keyboards/s60-x/keymaps/custom/readme.md15
-rw-r--r--keyboards/s60-x/keymaps/default/keymap.c48
-rw-r--r--keyboards/s60-x/keymaps/default/readme.md27
-rw-r--r--keyboards/s60-x/keymaps/hasu/keymap.c182
-rw-r--r--keyboards/s60-x/keymaps/hasu/readme.md4
-rw-r--r--keyboards/s60-x/keymaps/hhkb/keymap.c52
-rw-r--r--keyboards/s60-x/keymaps/hhkb/readme.md26
-rw-r--r--keyboards/s60-x/keymaps/iso/keymap.c48
-rw-r--r--keyboards/s60-x/keymaps/iso/readme.md28
-rw-r--r--keyboards/s60-x/keymaps/jpec/keymap.c92
-rw-r--r--keyboards/s60-x/keymaps/jpec/readme.md1
-rw-r--r--keyboards/s60-x/keymaps/plain/keymap.c25
-rw-r--r--keyboards/s60-x/keymaps/plain/readme.md16
-rw-r--r--keyboards/s60-x/keymaps/poker/keymap.c180
-rw-r--r--keyboards/s60-x/keymaps/poker/readme.md31
-rw-r--r--keyboards/s60-x/keymaps/poker_bit/keymap.c110
-rw-r--r--keyboards/s60-x/keymaps/poker_bit/readme.md31
-rw-r--r--keyboards/s60-x/keymaps/poker_set/keymap.c178
-rw-r--r--keyboards/s60-x/keymaps/poker_set/readme.md31
-rw-r--r--keyboards/s60-x/keymaps/spacefn/keymap.c55
-rw-r--r--keyboards/s60-x/keymaps/spacefn/readme.md27
-rw-r--r--keyboards/s60-x/readme.md260
-rw-r--r--keyboards/s60-x/rules.mk69
-rw-r--r--keyboards/s60-x/s60-x.c28
-rw-r--r--keyboards/s60-x/s60-x.h69
-rw-r--r--keyboards/s60-x/s60-x_precompiled.zipbin0 -> 276106 bytes
-rw-r--r--keyboards/satan/Makefile71
-rw-r--r--keyboards/satan/config.h2
-rw-r--r--keyboards/satan/keymaps/dbroqua/keymap.c152
-rw-r--r--keyboards/satan/keymaps/dbroqua/readme.md9
-rw-r--r--keyboards/satan/keymaps/default/Makefile21
-rw-r--r--keyboards/satan/keymaps/default/keymap.c36
-rw-r--r--keyboards/satan/keymaps/default/readme.md1
-rw-r--r--keyboards/satan/keymaps/denolfe/Makefile20
-rw-r--r--keyboards/satan/keymaps/denolfe/README.md12
-rw-r--r--keyboards/satan/keymaps/denolfe/keyboard-layout.pngbin0 -> 31762 bytes
-rw-r--r--keyboards/satan/keymaps/denolfe/keymap.c171
-rw-r--r--keyboards/satan/keymaps/iso_split_rshift/.gitignore3
-rw-r--r--keyboards/satan/keymaps/iso_split_rshift/LEDpinSatan.jpgbin0 -> 793980 bytes
-rw-r--r--keyboards/satan/keymaps/iso_split_rshift/Makefile16
-rwxr-xr-xkeyboards/satan/keymaps/iso_split_rshift/build.sh42
-rw-r--r--keyboards/satan/keymaps/iso_split_rshift/config.h27
-rw-r--r--keyboards/satan/keymaps/iso_split_rshift/keymap.c209
-rw-r--r--keyboards/satan/keymaps/iso_split_rshift/readme.md36
-rwxr-xr-xkeyboards/satan/keymaps/iso_split_rshift/resetboard.sh4
-rw-r--r--keyboards/satan/keymaps/poker/keymap.c46
-rw-r--r--keyboards/satan/keymaps/sethbc/Makefile21
-rw-r--r--keyboards/satan/keymaps/sethbc/keymap.c25
-rw-r--r--keyboards/satan/keymaps/sethbc/readme.md3
-rw-r--r--keyboards/satan/keymaps/stanleylai/config.h15
-rw-r--r--keyboards/satan/keymaps/stanleylai/keymap.c22
-rw-r--r--keyboards/satan/readme.md4
-rw-r--r--keyboards/satan/rules.mk66
-rw-r--r--keyboards/satan/satan.h91
-rw-r--r--keyboards/sixkeyboard/Makefile76
-rw-r--r--keyboards/sixkeyboard/rules.mk70
-rw-r--r--keyboards/subatomic/keymaps/default/keymap.c280
-rw-r--r--keyboards/tada68/Makefile3
-rw-r--r--keyboards/tada68/config.h97
-rw-r--r--keyboards/tada68/keymaps/default/Makefile21
-rw-r--r--keyboards/tada68/keymaps/default/keymap.c98
-rw-r--r--keyboards/tada68/keymaps/default/readme.md1
-rw-r--r--keyboards/tada68/readme.md4
-rw-r--r--keyboards/tada68/rules.mk66
-rw-r--r--keyboards/tada68/tada68.c30
-rw-r--r--keyboards/tada68/tada68.h43
-rw-r--r--keyboards/tv44/Makefile3
-rw-r--r--keyboards/tv44/config.h162
-rw-r--r--keyboards/tv44/keymaps/default/Makefile21
-rw-r--r--keyboards/tv44/keymaps/default/config.h8
-rw-r--r--keyboards/tv44/keymaps/default/keymap.c97
-rw-r--r--keyboards/tv44/keymaps/default/readme.md1
-rw-r--r--keyboards/tv44/keymaps/jeebak/Makefile21
-rw-r--r--keyboards/tv44/keymaps/jeebak/config.h21
-rw-r--r--keyboards/tv44/keymaps/jeebak/keymap.c425
-rw-r--r--keyboards/tv44/keymaps/jeebak/readme.md129
-rw-r--r--keyboards/tv44/keymaps/smt/Makefile21
-rw-r--r--keyboards/tv44/keymaps/smt/config.h36
-rw-r--r--keyboards/tv44/keymaps/smt/keyboard-layout-minivan.pngbin0 -> 66567 bytes
-rw-r--r--keyboards/tv44/keymaps/smt/keymap.c232
-rw-r--r--keyboards/tv44/keymaps/smt/readme.md126
-rw-r--r--keyboards/tv44/keymaps/xyverz/Makefile21
-rw-r--r--keyboards/tv44/keymaps/xyverz/config.h8
-rw-r--r--keyboards/tv44/keymaps/xyverz/keymap.c92
-rw-r--r--keyboards/tv44/keymaps/xyverz/readme.md1
-rw-r--r--keyboards/tv44/readme.md28
-rw-r--r--keyboards/tv44/rules.mk69
-rw-r--r--keyboards/tv44/tv44.c28
-rw-r--r--keyboards/tv44/tv44.h22
-rw-r--r--keyboards/vision_division/Makefile3
-rw-r--r--keyboards/vision_division/Potential Layouts.txt84
-rw-r--r--keyboards/vision_division/config.h148
-rw-r--r--keyboards/vision_division/keymaps/default/Makefile21
-rw-r--r--keyboards/vision_division/keymaps/default/config.h81
-rw-r--r--keyboards/vision_division/keymaps/default/keymap.c622
-rw-r--r--keyboards/vision_division/keymaps/default/readme.md1
-rw-r--r--keyboards/vision_division/matrix_types.h168
-rw-r--r--keyboards/vision_division/readme.md34
-rw-r--r--keyboards/vision_division/rules.mk70
-rw-r--r--keyboards/vision_division/vision_division.c68
-rw-r--r--keyboards/vision_division/vision_division.h6
-rw-r--r--keyboards/whitefox/Makefile3
-rw-r--r--keyboards/whitefox/bootloader_defs.h1
-rw-r--r--keyboards/whitefox/chconf.h524
-rw-r--r--keyboards/whitefox/config.h78
-rw-r--r--keyboards/whitefox/halconf.h353
-rw-r--r--keyboards/whitefox/keymaps/default/keymap.c51
-rw-r--r--keyboards/whitefox/keymaps/matt3o/keymap.c92
-rw-r--r--keyboards/whitefox/led.c24
-rw-r--r--keyboards/whitefox/matrix.c132
-rw-r--r--keyboards/whitefox/mcuconf.h54
-rw-r--r--keyboards/whitefox/readme.md7
-rw-r--r--keyboards/whitefox/rules.mk (renamed from keyboards/infinity_ergodox/Makefile)31
-rw-r--r--keyboards/whitefox/whitefox.c (renamed from keyboards/infinity_chibios/infinity_chibios.c)2
-rw-r--r--keyboards/whitefox/whitefox.h54
-rw-r--r--keyboards/xd60/Makefile3
-rw-r--r--keyboards/xd60/config.h79
-rw-r--r--keyboards/xd60/keymaps/default/keymap.c46
-rw-r--r--keyboards/xd60/keymaps/default/readme.md9
-rw-r--r--keyboards/xd60/keymaps/stanleylai/keymap.c55
-rw-r--r--keyboards/xd60/readme.md17
-rw-r--r--keyboards/xd60/rules.mk65
-rw-r--r--keyboards/xd60/xd60.c25
-rw-r--r--keyboards/xd60/xd60.h37
-rw-r--r--keyboards/xd60/xd60.jpgbin0 -> 2466209 bytes
1064 files changed, 85236 insertions, 8126 deletions
diff --git a/keyboards/alps64/Makefile b/keyboards/alps64/Makefile
index d8325e6c8..4e2a6f00f 100644
--- a/keyboards/alps64/Makefile
+++ b/keyboards/alps64/Makefile
@@ -1,70 +1,3 @@
-
-
-# Target file name (without extension).
-
-# project specific files
-SRC = led.c
-
-# MCU name
-MCU = atmega32u2
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
-# Build Options
-# comment out to disable the options.
-#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= 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
-#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
-#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
endif \ No newline at end of file
diff --git a/keyboards/alps64/readme.md b/keyboards/alps64/readme.md
new file mode 100644
index 000000000..1798b193a
--- /dev/null
+++ b/keyboards/alps64/readme.md
@@ -0,0 +1,4 @@
+Alps64 keyboard firmware
+======================
+
+TODO: to be updated.
diff --git a/keyboards/alps64/rules.mk b/keyboards/alps64/rules.mk
new file mode 100644
index 000000000..c326d3e26
--- /dev/null
+++ b/keyboards/alps64/rules.mk
@@ -0,0 +1,66 @@
+
+
+# Target file name (without extension).
+
+# project specific files
+SRC = led.c
+
+# MCU name
+MCU = atmega32u2
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= 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
+#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
+#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA \ No newline at end of file
diff --git a/keyboards/amj60/Makefile b/keyboards/amj60/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/amj60/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/amj60/amj60.c b/keyboards/amj60/amj60.c
new file mode 100644
index 000000000..993a5917d
--- /dev/null
+++ b/keyboards/amj60/amj60.c
@@ -0,0 +1,30 @@
+#include "amj60.h"
+#include "led.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+ matrix_init_user();
+ led_init_ports();
+};
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+ matrix_scan_user();
+};
+
+void led_init_ports(void) {
+ // * Set our LED pins as output
+ DDRB |= (1<<2);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ // Turn capslock on
+ PORTB &= ~(1<<2);
+ } else {
+ // Turn capslock off
+ PORTB |= (1<<2);
+ }
+}
diff --git a/keyboards/amj60/amj60.h b/keyboards/amj60/amj60.h
new file mode 100644
index 000000000..a0cb47331
--- /dev/null
+++ b/keyboards/amj60/amj60.h
@@ -0,0 +1,153 @@
+#ifndef AMJ60_H
+#define AMJ60_H
+
+#include "quantum.h"
+
+// readability
+#define XXX KC_NO
+
+/* AMJ60 layout to the best of my knowledge matrix layout
+ * ,-----------------------------------------------------------.
+ * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49|
+ * |-----------------------------------------------------------|
+ * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
+ * |-----------------------------------------------------------|
+ * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
+ * |-----------------------------------------------------------|
+ * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3c | 3d |
+ * |-----------------------------------------------------------|
+ * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
+ * `-----------------------------------------------------------'
+ */
+#define KEYMAP( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
+ k40, k41, k42, k45, k4a, k4b, k4c, k4d \
+) \
+{ \
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
+ {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
+ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
+}
+
+/*
+ * ANSI
+ * ,-----------------------------------------------------------.
+ * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
+ * |-----------------------------------------------------------|
+ * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
+ * |-----------------------------------------------------------|
+ * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
+ * |-----------------------------------------------------------|
+ * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d |
+ * |-----------------------------------------------------------|
+ * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
+ * `-----------------------------------------------------------'
+ */
+#define KEYMAP_ANSI( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
+ k40, k41, k42, k45, k4a, k4b, k4c, k4d \
+) \
+{ \
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
+ {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d}, \
+ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
+}
+
+/* AMJ60 HHKB matrix layout
+ * ,------------------------------------------------------------.
+ * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49 |
+ * |------------------------------------------------------------|
+ * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
+ * |------------------------------------------------------------|
+ * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
+ * |------------------------------------------------------------|
+ * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c |
+ * |------------------------------------------------------------|
+ * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
+ * `------------------------------------------------------------'
+ */
+
+#define KEYMAP_HHKB( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
+ k40, k41, k42, k45, k4a, k4b, k4c, k4d \
+) \
+{ \
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
+ {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
+ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
+}
+
+/* ISO
+ * ,-----------------------------------------------------------.
+ * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
+ * |-----------------------------------------------------------|
+ * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
+ * |-----------------------------------------------------------|
+ * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d |
+ * |-----------------------------------------------------------|
+ * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d |
+ * |-----------------------------------------------------------|
+ * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
+ * `-----------------------------------------------------------'
+ */
+#define KEYMAP_ISO( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
+ k40, k41, k42, k45, k4a, k4b, k4c, k4d \
+) \
+{ \
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
+ {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX}, \
+ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
+}
+/* ISO w/ split right shift key matrix layout
+ * ,-----------------------------------------------------------.
+ * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
+ * |-----------------------------------------------------------|
+ * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
+ * |-----------------------------------------------------------|
+ * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d |
+ * |-----------------------------------------------------------|
+ * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c |
+ * |-----------------------------------------------------------|
+ * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
+ * `-----------------------------------------------------------'
+ */
+#define KEYMAP_ISO_SPLITRSHIFT( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
+ k40, k41, k42, k45, k4a, k4b, k4c, k4d \
+) \
+{ \
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
+ {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
+ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
+}
+
+void matrix_init_user(void);
+void matrix_scan_user(void);
+
+#endif
diff --git a/keyboards/amj60/config.h b/keyboards/amj60/config.h
new file mode 100644
index 000000000..7c06f9a6c
--- /dev/null
+++ b/keyboards/amj60/config.h
@@ -0,0 +1,94 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6066
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Han Chen
+#define PRODUCT AMJ60
+#define DESCRIPTION qmk port of AMJ60 PCB
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+// ROWS: Top to bottom, COLS: Left to right
+
+#define MATRIX_ROW_PINS { F7, F6, F5, F4, D5}
+#define MATRIX_COL_PINS { F1, F0, E6, C7, C6, B0, D4, B1, B7, B5, B4, D7, D6, B3}
+#define UNUSED_PINS
+
+#define BACKLIGHT_PIN B6
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* Backlight configuration
+ */
+#define BACKLIGHT_LEVELS 4
+
+/* Underlight configuration
+ */
+
+#define RGB_DI_PIN E2
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 8 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/amj60/keymaps/iso_split_rshift/Makefile b/keyboards/amj60/keymaps/iso_split_rshift/Makefile
new file mode 100644
index 000000000..2969ed8ae
--- /dev/null
+++ b/keyboards/amj60/keymaps/iso_split_rshift/Makefile
@@ -0,0 +1,23 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/amj60/keymaps/iso_split_rshift/build.sh b/keyboards/amj60/keymaps/iso_split_rshift/build.sh
new file mode 100755
index 000000000..6b4b4568f
--- /dev/null
+++ b/keyboards/amj60/keymaps/iso_split_rshift/build.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+# adjust for cpu
+# -j 16 gave best result on a hyperthreaded quad core core i7
+
+LIMIT=10
+THREADS="-j 16"
+KMAP=iso_split_rshift
+
+echo "We need sudo later"
+sudo ls 2>&1 /dev/null
+
+function wait_bootloader {
+ echo "Waiting for Bootloader..."
+ local STARTTIME=$(date +"%s")
+ local REMIND=0
+ local EXEC=dfu-programmer
+ local TARGET=atmega32u4
+ while true
+ do
+ sudo $EXEC $TARGET get > /dev/null 2>&1
+ [ $? -eq 0 ] && break
+ ENDTIME=$(date +"%s")
+ DURATION=$(($ENDTIME-$STARTTIME))
+ if [ $REMIND -eq 0 -a $DURATION -gt $LIMIT ]
+ then
+ echo "Did you forget to press the reset button?"
+ REMIND=1
+ fi
+ sleep 1
+ done
+}
+make clean
+make KEYMAP=${KMAP} ${THREADS}
+if [[ $? -eq 0 ]]
+then
+ echo "please trigger flashing!"
+ wait_bootloader
+ sudo make KEYMAP=${KMAP} dfu ${THREADS}
+else
+ echo "make failed"
+ exit 77
+fi
diff --git a/keyboards/amj60/keymaps/iso_split_rshift/keymap.c b/keyboards/amj60/keymaps/iso_split_rshift/keymap.c
new file mode 100644
index 000000000..60fb0bfb0
--- /dev/null
+++ b/keyboards/amj60/keymaps/iso_split_rshift/keymap.c
@@ -0,0 +1,147 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "amj60.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 _DEF 0
+#define _SPC 1
+#define _TAB 2
+#define _SFX 3
+
+// dual-role shortcuts
+#define TABDUAL LT(_TAB, KC_TAB)
+#define CAPSDUAL CTL_T(KC_ESC)
+#define SPACEDUAL LT(_SPC, KC_SPACE)
+#define ENTERDUAL CTL_T(KC_ENT)
+// arrow cluster duality bottom right corner
+#define ARRLEFT ALT_T(KC_LEFT)
+#define ARRDOWN GUI_T(KC_DOWN)
+#define ARRUP SFT_T(KC_UP)
+#define ARRRIGHT CTL_T(KC_RIGHT)
+// german brackets
+#define GER_CUR_L RALT(KC_7) // [
+#define GER_CUR_R RALT(KC_0) // ]
+#define GER_PAR_L LSFT(KC_8) // (
+#define GER_PAR_R LSFT(KC_9) // )
+#define GER_ANG_L KC_NUBS // <
+#define GER_ANG_R LSFT(KC_NUBS) // >
+#define GER_BRC_L RALT(KC_8) // [
+#define GER_BRC_R RALT(KC_9) // ]
+
+// increase readability
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Keymap _DEF: Default Layer
+ * ,-----------------------------------------------------------.
+ * |Grv| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
+ * |-----------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | Tab is Fn1
+ * |-----------------------------------------------------------|
+ * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| Return |
+ * |-----------------------------------------------------------|
+ * |Sft | < | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn2| RShift is UP
+ * |-----------------------------------------------------------|
+ * |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl| Gui Menu, RCtrl is
+ * `-----------------------------------------------------------' LEFT DWN RIGHT
+ */
+ [_DEF] = KEYMAP_ISO_SPLITRSHIFT(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
+ TABDUAL, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
+ CAPSDUAL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, ENTERDUAL, \
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, ARRUP, TG(_SFX), \
+ KC_LCTL, KC_LGUI, KC_LALT, SPACEDUAL, KC_RALT, ARRLEFT, ARRDOWN, ARRRIGHT),
+
+ /* Keymap 1: F-and-vim Layer, modified with Space (by holding space)
+ * ,-----------------------------------------------------------.
+ * |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete|
+ * |-----------------------------------------------------------|
+ * | |Paus| Up| [ | ] | | | | ( | ) | | | | |
+ * |-----------------------------------------------------------|
+ * | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY |
+ * |-----------------------------------------------------------|
+ * | | | | | < | > | |M0 | | | | | Vol+ | |
+ * |-----------------------------------------------------------|
+ * | | | | |Alt |Prev|Vol-|Next|
+ * `-----------------------------------------------------------'
+ */
+ [_SPC] = KEYMAP_ISO_SPLITRSHIFT(
+ KC_PSCR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
+ _______, KC_PAUS, KC_UP, GER_BRC_L, GER_BRC_R, _______, _______, GER_PAR_L, GER_PAR_R, _______, _______, _______, _______, _______, \
+ _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, KC_MPLY, \
+ _______, _______, _______, _______, GER_ANG_L, GER_ANG_R, KC_SPACE, M(0), _______, _______, _______, _______, KC_VOLU, _______, \
+ _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
+
+ /* Keymap 2: Tab Layer w/ vim pageup, modified with Tab (by holding tab)
+ * ,-----------------------------------------------------------.
+ * |WAKE| | | | | | | | | | | | |Insert| TAB+GRC = WAKE
+ * |-----------------------------------------------------------|
+ * | | | | | | | | | { | } | | | | |
+ * |-----------------------------------------------------------|
+ * | | | | | | |Pos1|PgDn|PgUp|End| | |Retrn |
+ * |-----------------------------------------------------------|
+ * | | | | | | | |AF2| | | | | PgUp | |
+ * |-----------------------------------------------------------|
+ * | | | | |Alt |Pos1|PgDn|End |
+ * `-----------------------------------------------------------'
+ */
+ [_TAB] = KEYMAP_ISO_SPLITRSHIFT(
+ KC_WAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, \
+ _______, _______, _______, _______, _______, _______, _______, GER_CUR_L, GER_CUR_R, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, KC_ENT, \
+ _______, _______, _______, _______, _______, _______, _______, M(1), _______, _______, _______, _______, KC_PGUP, _______, \
+ _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END),
+
+ /* Keymap 3: Split right shift Numpad toggle Layer (by tapping the split rshift key)
+ * ,-----------------------------------------------------------.
+ * |RSET| | | | | | | 7| 8| 9| | | |Backsp |
+ * |-----------------------------------------------------------|
+ * | | | | | | | | 4 | 5 | 6 | | | | \ |
+ * |-----------------------------------------------------------|
+ * | | L | L | | | | | 1 | 2 | 3 | | | Return |
+ * |-----------------------------------------------------------|
+ * | | | L | L | L | L | L | L | | 0 | | /| Up | | All "L"s represent
+ * |-----------------------------------------------------------| LED controlling
+ * |Ctrl|Win |Alt | |Alt |Left|Down|Right|
+ * `-----------------------------------------------------------'
+ */
+ [_SFX] = KEYMAP_ISO_SPLITRSHIFT(
+ RESET, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, KC_BSPC, \
+ _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, KC_BSLS, \
+ _______, F(2), F(3), _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, XXXXXXX, KC_ENT, \
+ _______, F(4), F(5), F(6), F(7), F(8), F(9), _______, _______, KC_0, _______, KC_SLSH, KC_UP, _______, \
+ _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT),
+};
+
+enum function_id {
+ LAUNCH,
+ RGBLED_TOGGLE,
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_FUNCTION(LAUNCH),
+ [10] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_ENT),
+};
+
+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:
+ return (record->event.pressed ?
+ MACRO( D(RALT), T(SPC), U(RALT), END )
+ :MACRO( END ));
+ break;
+ case 1:
+ return (record->event.pressed ?
+ MACRO( D(LALT), T(F2), U(LALT), END )
+ :MACRO( END ));
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/amj60/keymaps/iso_split_rshift/readme.md b/keyboards/amj60/keymaps/iso_split_rshift/readme.md
new file mode 100644
index 000000000..2113d93e4
--- /dev/null
+++ b/keyboards/amj60/keymaps/iso_split_rshift/readme.md
@@ -0,0 +1,30 @@
+toneman77's custom spacefn Layout
+=====================
+
+##Quantum MK Firmware
+For the full Quantum feature list, see the parent readme.md.
+
+# Features
+* heavily modified ISO (!) layout with split right shift key
+* spaceFn
+* Dual-Role keys:
+*
+ | Original key | when tapped | when held |
+ | ---------------- | ------------- | ------------- |
+ | Space | Space | layer change |
+ | Caps lock | Escape | Control |
+ | Tab | Tab | layer change |
+ | Enter | Enter | Control |
+
+* vim-style arrow keys on hjkl (spacefn layer)
+* corresponding Home/PgDn/PgUp/End on hjkl (tab layer)
+* bonus arrow keys in the bottom right corner on Alt/Win/Menu/rCtrl/Shift
+* more bonus arrow keys on wasd (spacefn layer)
+* media keys prev/next/play/vol+/vol- (spacefn layer)
+* firmware bootloader button
+* additional brackets that only work in german layout due to horrible placement
+in the default qwertz layout
+
+
+### Additional Credits
+* visualization of the layers [here](http://www.keyboard-layout-editor.com/#/gists/aba4e4396459ede85bc66a22cee88e48) (without the LED keys)
diff --git a/keyboards/amj60/keymaps/iso_split_rshift/updatemerge.sh b/keyboards/amj60/keymaps/iso_split_rshift/updatemerge.sh
new file mode 100755
index 000000000..da5457e19
--- /dev/null
+++ b/keyboards/amj60/keymaps/iso_split_rshift/updatemerge.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+git checkout amj60 # gets you on branch amj60
+git fetch origin # gets you up to date with origin
+git merge origin/master
diff --git a/keyboards/amj60/readme.md b/keyboards/amj60/readme.md
new file mode 100644
index 000000000..0896134e0
--- /dev/null
+++ b/keyboards/amj60/readme.md
@@ -0,0 +1,57 @@
+AMJ60 keyboard firmware
+======================
+DIY/Assembled compact 60% keyboard.
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent readme.md](/readme.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/amj60
+folder. Once your dev env is setup, you'll be able to type `make` to generate
+your .hex - you can then use `make dfu` to program your PCB once you hit the
+reset button.
+
+Depending on which keymap you would like to use, you will have to compile
+slightly differently.
+
+### Default
+To build with the default keymap, simply run `make`.
+
+### Other Keymaps
+Several version of keymap are available in advance but you are recommended to
+define your favorite layout yourself. To define your own keymap create file
+named `<name>.c` in the keymaps folder, and see keymap document (you can find
+in top readme.md) and existent keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with
+`KEYMAP` option like:
+``
+$ make KEYMAP=[default|jack|<name>]
+``
+Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps`
+folder.
+
+## Variations
+KEYMAP macros for the following layouts are available:
+
+* default, for all the available, possible keys
+* ANSI, for 60% ANSI keyboard
+* ISO
+* ISO w/ split right shift key
+* HHKB
+
+Remark: all but "ISO w/ split right shift key" are untested and were done to the best of my knowledge.
+
+### Original tmk firmware
+The original firmware that was used to port to qmk can be found [here](https://github.com/AMJKeyboard/AMJ60).
+
+## Further information
+Since information and documentation for this board are sparse, (at least for non-chinese speaking ppl) here is everything that could be found
+
+* [geekhack discussion](https://geekhack.org/index.php?topic=53070.0)
+* [chinese discussion](https://www.v2ex.com/t/161887)
+* Board has [dedicated pinouts](https://i.imgur.com/D0sWhyh.jpg?1) for a bluetooth module
+* has pins for external power [picture](https://i.imgur.com/00VrtIp.jpg?1).
+* most information comes from [reddit](https://www.reddit.com/r/MechanicalKeyboards/comments/32oonr/gh60_pcb_for_your_custom_keyboard/)
diff --git a/keyboards/amj60/rules.mk b/keyboards/amj60/rules.mk
new file mode 100644
index 000000000..18403ac32
--- /dev/null
+++ b/keyboards/amj60/rules.mk
@@ -0,0 +1,66 @@
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870)
+BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150)
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/amjpad/Makefile b/keyboards/amjpad/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/amjpad/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/amjpad/amjpad.c b/keyboards/amjpad/amjpad.c
new file mode 100644
index 000000000..ac5991bd0
--- /dev/null
+++ b/keyboards/amjpad/amjpad.c
@@ -0,0 +1,30 @@
+#include "amjpad.h"
+#include "led.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+ matrix_init_user();
+ led_init_ports();
+};
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+ matrix_scan_user();
+};
+
+void led_init_ports(void) {
+ // * Set our LED pins as output
+ DDRD |= (1<<6);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ if (usb_led & (1<<USB_LED_NUM_LOCK)) {
+ // Turn numlock on
+ PORTD &= ~(1<<6);
+ } else {
+ // Turn numlock off
+ PORTD |= (1<<6);
+ }
+}
diff --git a/keyboards/amjpad/amjpad.h b/keyboards/amjpad/amjpad.h
new file mode 100644
index 000000000..b9b4d3686
--- /dev/null
+++ b/keyboards/amjpad/amjpad.h
@@ -0,0 +1,46 @@
+#ifndef AMJPAD_H
+#define ADMJPAD_H
+
+#include "quantum.h"
+
+// readability
+#define XXX KC_NO
+
+/* AMJPAD matrix layout
+ * ,-------------------.
+ * | 00 | 01 | 02 | 03 |
+ * |----|----|----|----|
+ * | 10 | 11 | 12 | 13 |
+ * |----|----|----|----|
+ * | 20 | 21 | 22 | |
+ * |----|----|----| 23 |
+ * | 30 | 31 | 32 | |
+ * |----|----|----|----|
+ * | 40 | 41 | 42 | |
+ * |----|----|----| 43 |
+ * | 50 | 52 | |
+ * `-------------------'
+ */
+// The first section contains all of the arguments
+// The second converts the arguments into a two-dimensional array
+#define KEYMAP( \
+ k00, k01, k02, k03, \
+ k10, k11, k12, k13, \
+ k20, k21, k22, k23, \
+ k30, k31, k32, \
+ k40, k41, k42, k43, \
+ k50, k52 \
+) \
+{ \
+ {k00, k01, k02, k03}, \
+ {k10, k11, k12, k13}, \
+ {k20, k21, k22, k23}, \
+ {k30, k31, k32, XXX}, \
+ {k40, k41, k42, k43}, \
+ {k50, XXX, k52, XXX} \
+}
+
+void matrix_init_user(void);
+void matrix_scan_user(void);
+
+#endif
diff --git a/keyboards/amjpad/config.h b/keyboards/amjpad/config.h
new file mode 100644
index 000000000..1a26d2ab6
--- /dev/null
+++ b/keyboards/amjpad/config.h
@@ -0,0 +1,94 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6060
+#define DEVICE_VER 0x0003
+#define MANUFACTURER AMJ
+#define PRODUCT PAD
+#define DESCRIPTION QMK keyboard firmware for AMJ PAD
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 4
+
+// ROWS: Top to bottom, COLS: Left to right
+
+#define MATRIX_ROW_PINS { F7, F6, F5, F4, D5, D0 }
+#define MATRIX_COL_PINS { F1, F0, E6, C7 }
+#define UNUSED_PINS
+
+#define BACKLIGHT_PIN B6
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* Backlight configuration
+ */
+#define BACKLIGHT_LEVELS 4
+
+/* Underlight configuration
+ */
+
+#define RGB_DI_PIN E2
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 8 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/amjpad/keymaps/default/keymap.c b/keyboards/amjpad/keymaps/default/keymap.c
new file mode 100644
index 000000000..362afd107
--- /dev/null
+++ b/keyboards/amjpad/keymaps/default/keymap.c
@@ -0,0 +1,101 @@
+#include "amjpad.h"
+
+#ifdef RGBLIGHT_ENABLE
+#include "rgblight.h"
+#endif
+
+// Used for SHIFT_ESC
+#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _BL 0
+#define _FL 1
+
+#define _______ KC_TRNS
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Keymap _BL: (Base Layer) Default Layer
+ * ,-------------------.
+ * |Esc |TAB |BS | = |
+ * |----|----|----|----|
+ * | NL | / | * | - |
+ * |----|----|----|----|
+ * | 7 | 8 | 9 | |
+ * |----|----|----| + |
+ * | 4 | 5 | 6 | |
+ * |----|----|----|----|
+ * | 1 | 2 | 3 | |
+ * |----|----|----| En |
+ * | 0 |./FN| |
+ * `-------------------'
+ */
+
+[_BL] = KEYMAP(
+ KC_ESC,KC_TAB,KC_BSPC,KC_PEQL, \
+ KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \
+ KC_P7, KC_P8, KC_P9, KC_PPLS, \
+ KC_P4, KC_P5, KC_P6, \
+ KC_P1, KC_P2, KC_P3, KC_PENT, \
+ KC_P0, LT(_FL,KC_PDOT)),
+
+ /* Keymap _FL: Function Layer
+ * ,-------------------.
+ * |Esc |TAB |BS | = |
+ * |----|----|----|----|
+ * | NL | / | * | - |
+ * |----|----|----|----|
+ * | 7 | 8 | 9 | |
+ * |----|----|----|RST |
+ * | 4 | 5 | 6 | |
+ * |----|----|----|----|
+ * | 1 | 2 | 3 | |
+ * |----|----|----| En |
+ * | 0 |./FN| |
+ * `-------------------'
+ */
+[_FL] = KEYMAP(
+
+ KC_ESC,KC_TAB,KC_BSPC,KC_PEQL, \
+ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
+ KC_P7, KC_P8, KC_P9, RESET, \
+ KC_P4, KC_P5, KC_P6, \
+ KC_P1, KC_P2, KC_P3, KC_PENT, \
+ KC_P0, LT(_FL,KC_PDOT)),
+};
+
+enum function_id {
+ SHIFT_ESC,
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_FUNCTION(SHIFT_ESC),
+};
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ static uint8_t shift_esc_shift_mask;
+ switch (id) {
+ case SHIFT_ESC:
+ shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
+ if (record->event.pressed) {
+ if (shift_esc_shift_mask) {
+ add_key(KC_GRV);
+ send_keyboard_report();
+ } else {
+ add_key(KC_ESC);
+ send_keyboard_report();
+ }
+ } else {
+ if (shift_esc_shift_mask) {
+ del_key(KC_GRV);
+ send_keyboard_report();
+ } else {
+ del_key(KC_ESC);
+ send_keyboard_report();
+ }
+ }
+ break;
+ }
+}
diff --git a/keyboards/clueboard2/Makefile b/keyboards/amjpad/rules.mk
index e9367a90d..d8ec42365 100644
--- a/keyboards/clueboard2/Makefile
+++ b/keyboards/amjpad/rules.mk
@@ -1,5 +1,4 @@
-
# MCU name
#MCU = at90usb1287
MCU = atmega32u4
@@ -53,7 +52,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= yes # Console for debug(+400)
@@ -65,7 +64,3 @@ MIDI_ENABLE ?= no # MIDI controls
AUDIO_ENABLE ?= no
UNICODE_ENABLE ?= no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
-
-ifndef QUANTUM_DIR
- include ../../Makefile
-endif
diff --git a/keyboards/arrow_pad/Makefile b/keyboards/arrow_pad/Makefile
index 09fcf3e7a..4e2a6f00f 100644
--- a/keyboards/arrow_pad/Makefile
+++ b/keyboards/arrow_pad/Makefile
@@ -1,74 +1,3 @@
-
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=512
-
-
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
-# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-NKRO_ENABLE ?= yes # USB Nkey Rollover
-BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
-MIDI_ENABLE ?= no # MIDI controls
-UNICODE_ENABLE ?= no # Unicode
-BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
-AUDIO_ENABLE ?= no # Audio output on port C6
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
endif \ No newline at end of file
diff --git a/keyboards/arrow_pad/readme.md b/keyboards/arrow_pad/readme.md
index 5aa44cce5..d0d172272 100644
--- a/keyboards/arrow_pad/readme.md
+++ b/keyboards/arrow_pad/readme.md
@@ -1,24 +1,133 @@
arrow_pad keyboard firmware
======================
+## Keyboard Info
+
+The ArrowPad is a wired conversion that can be made to any stand-alone keypad. It uses two main layers - a standard numpad, and a more advanced arrow cluster navigator.
+
+The first 24-key ArrowPad was handwired, but the PCB was wired as listed below.
+
+```
+<Chip Ref Des> pin <Pin #>
+<Keycap Name> (Silkscreen Name if different) - <Switch Pin #>
+
+
+Note:
+U2 pin 2 is the Num Lock LED and is active low.
+
+U2 pin 1
+Clear (Num Lock) - 1
+Enter - 2
+Esc (ESC) - 2
+
+
+U2 pin 3
+- - 1
+
+U2 pin 4
+7 - 2
+8 - 2
+9 - 2
+
+U2 pin 5
+* - 2
+Delete (BACK SPACE) - 2
+
+U2 pin 6
+1 - 2
+0 - 2
+. - 2
+, - 2
+
+U2 pin 7
+4 - 2
+5 - 2
+6 - 2
+
+U2 pin 8
+Tab - 2
+= (/) - 2
+
+U2 pin 13
+Delete (BACK SPACE) - 1
+9 - 1
+6 - 1
+3 - 1
+. - 1
+
+U2 pin 14
+Tab - 1
+8 - 1
+5 - 1
+2 - 1
+0 - 1
+
+U2 pin 15
+Esc (ESC) - 1
+= (/) - 1
+/ (*) - 1
+7 - 1
+4 - 1
+1 - 1
++ - 1
+
+U2 pin 16
+Enter - 1
+* (<--) - 1
+, - 1
+
+U2 pin 17
+Fn (#NAME?) - 1
+- - 2
+Clear (Num Lock) - 2
+
+U2 pin 18
+Fn (#NAME?) - 2
+* (<--) - 2
++ - 2
+3 - 2
+2 - 2
+```
+
+More info can be found on [GeekHack](https://geekhack.org/index.php?topic=73632.msg1802497#msg1802497)
+
+The second ArrowPad was a conversion from a 21-key Genovation keypad. It used a 2 row x 11 column matrix.
+
+```
+#define KEYMAP( \
+ KM_ESC, KM_TAB, KM_BSL, KM_ARR, \
+ KM_NUM, KM_FSL, KM_AST, KM_MIN, \
+ KM___7, KM___8, KM___9, ___PLS, \
+ KM___4, KM___5, KM___6, KM_PLS, \
+ KM___1, KM___2, KM___3, ___ENT, \
+ KM___0, _____0, KM_DOT, KM_ENT \
+) { \
+ { KM_ESC, KM_TAB, KM_BSL, KM_ARR, KM___7, KM___8, KM___9, KM_PLS, KM___1, KM___2, KM___3, }, \
+ { KM_NUM, KM_FSL, KM_AST, KM_MIN, KM___4, KM___5, KM___6, KM_ENT, KC_NO, KM___0, KM_DOT, }, \
+}
+```
+
+
## Quantum MK Firmware
For the full Quantum feature list, see [the parent readme.md](/readme.md).
## Building
-Download or clone the whole firmware and navigate to the keyboards/arrow_pad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+Download or clone the whole firmware and navigate to the keyboards/arrow_pad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
Depending on which keymap you would like to use, you will have to compile slightly differently.
### Default
-To build with the default keymap, simply run `make`.
+To build with the default keymap, simply run `make default`.
### Other Keymaps
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files.
-To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
```
-$ make KEYMAP=[default|jack|<name>]
+$ make [default|pad_21|pad_24|<name>]
```
-Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder. \ No newline at end of file
+
+Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboards/arrow_pad/rules.mk b/keyboards/arrow_pad/rules.mk
new file mode 100644
index 000000000..3dca9b6ea
--- /dev/null
+++ b/keyboards/arrow_pad/rules.mk
@@ -0,0 +1,70 @@
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=512
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= yes # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no # Audio output on port C6 \ No newline at end of file
diff --git a/keyboards/atomic/Makefile b/keyboards/atomic/Makefile
index 08e9205cb..4e2a6f00f 100644
--- a/keyboards/atomic/Makefile
+++ b/keyboards/atomic/Makefile
@@ -1,73 +1,3 @@
-
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
-MIDI_ENABLE ?= no # MIDI controls
-AUDIO_ENABLE ?= no # Audio output on port C6
-UNICODE_ENABLE ?= no # Unicode
-BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
endif \ No newline at end of file
diff --git a/keyboards/atomic/keymaps/pvc/Makefile b/keyboards/atomic/keymaps/pvc/Makefile
index 278407e6c..c7c04485f 100644
--- a/keyboards/atomic/keymaps/pvc/Makefile
+++ b/keyboards/atomic/keymaps/pvc/Makefile
@@ -1,7 +1,7 @@
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/atomic/keymaps/pvc/config.h b/keyboards/atomic/keymaps/pvc/config.h
index 70353323b..18a7253f2 100644
--- a/keyboards/atomic/keymaps/pvc/config.h
+++ b/keyboards/atomic/keymaps/pvc/config.h
@@ -150,10 +150,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* disable debug print */
-//#define NO_DEBUG
+#ifndef NO_DEBUG
+# define NO_DEBUG
+#endif
/* disable print */
-//#define NO_PRINT
+// #ifndef NO_PRINT
+// # define NO_PRINT
+// #endif
+
+/* Only print user print statements */
+#define USER_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
diff --git a/keyboards/atomic/keymaps/pvc/keymap.c b/keyboards/atomic/keymaps/pvc/keymap.c
index f16ec8a6e..d10bfe3bf 100644
--- a/keyboards/atomic/keymaps/pvc/keymap.c
+++ b/keyboards/atomic/keymaps/pvc/keymap.c
@@ -2,48 +2,59 @@
#include "action_layer.h"
#include "eeconfig.h"
#include "led.h"
+#include "mousekey.h"
#ifdef AUDIO_ENABLE
#include "audio.h"
#include "song_list.h"
#endif
-#define LAYER_QWERTY 0
-#define LAYER_COLEMAK 1
-#define LAYER_DVORAK 2
-#define LAYER_UPPER 3
-#define LAYER_LOWER 4
-#define LAYER_FUNCTION 5
-#define LAYER_MOUSE 6
-#define LAYER_ADJUST 7
-
-#define MACRO_QWERTY 0
-#define MACRO_COLEMAK 1
-#define MACRO_DVORAK 2
-#define MACRO_UPPER 3
-#define MACRO_LOWER 4
-#define MACRO_FUNCTION 5
-#define MACRO_MOUSE 6
-#define MACRO_TIMBRE_1 7
-#define MACRO_TIMBRE_2 8
-#define MACRO_TIMBRE_3 9
-#define MACRO_TIMBRE_4 10
-#define MACRO_TEMPO_U 11
-#define MACRO_TEMPO_D 12
-#define MACRO_TONE_DEFAULT 13
-#define MACRO_MUSIC_TOGGLE 14
-#define MACRO_AUDIO_TOGGLE 16
-#define MACRO_INC_VOICE 18
-#define MACRO_DEC_VOICE 19
-#define MACRO_BACKLIGHT 20
-#define MACRO_BREATH_TOGGLE 21
-#define MACRO_BREATH_SPEED_INC 23
-#define MACRO_BREATH_SPEED_DEC 24
-#define MACRO_BREATH_DEFAULT 25
+enum keyboard_layers {
+ LAYER_QWERTY = 0,
+ LAYER_UPPER,
+ LAYER_LOWER,
+ LAYER_FUNCTION,
+ LAYER_MOUSE,
+ LAYER_ADJUST,
+};
+enum keyboard_macros {
+ MACRO_QWERTY = 0,
+ MACRO_UPPER,
+ MACRO_LOWER,
+ MACRO_FUNCTION,
+ MACRO_MOUSE,
+ MACRO_TIMBRE_1,
+ MACRO_TIMBRE_2,
+ MACRO_TIMBRE_3,
+ MACRO_TIMBRE_4,
+ MACRO_TEMPO_U,
+ MACRO_TEMPO_D,
+ MACRO_TONE_DEFAULT,
+ MACRO_MUSIC_TOGGLE,
+ MACRO_AUDIO_TOGGLE,
+ MACRO_INC_VOICE,
+ MACRO_DEC_VOICE,
+ MACRO_BACKLIGHT,
+ MACRO_BREATH_TOGGLE,
+ MACRO_BREATH_SPEED_INC,
+ MACRO_BREATH_SPEED_DEC,
+ MACRO_BREATH_DEFAULT,
+ MACRO_MOUSE_MOVE_UL,
+ MACRO_MOUSE_MOVE_UR,
+ MACRO_MOUSE_MOVE_DL,
+ MACRO_MOUSE_MOVE_DR,
+ MACRO_HELP_1,
+ MACRO_HELP_2,
+ MACRO_HELP_3,
+ MACRO_HELP_4,
+ MACRO_HELP_5,
+ MACRO_HELP_6,
+ MACRO_HELP_7,
+ MACRO_HELP_8,
+ MACRO_HELP_9,
+};
#define M_QWRTY M(MACRO_QWERTY)
-#define M_COLMK M(MACRO_COLEMAK)
-#define M_DVORK M(MACRO_DVORAK)
#define M_UPPER M(MACRO_UPPER)
#define M_LOWER M(MACRO_LOWER)
#define M_FUNCT M(MACRO_FUNCTION)
@@ -60,6 +71,19 @@
#define M_BSPDU M(MACRO_BREATH_SPEED_INC)
#define M_BSPDD M(MACRO_BREATH_SPEED_DEC)
#define M_BDFLT M(MACRO_BREATH_DEFAULT)
+#define M_MS_UL M(MACRO_MOUSE_MOVE_UL)
+#define M_MS_UR M(MACRO_MOUSE_MOVE_UR)
+#define M_MS_DL M(MACRO_MOUSE_MOVE_DL)
+#define M_MS_DR M(MACRO_MOUSE_MOVE_DR)
+#define M_HELP1 M(MACRO_HELP_1)
+#define M_HELP2 M(MACRO_HELP_2)
+#define M_HELP3 M(MACRO_HELP_3)
+#define M_HELP4 M(MACRO_HELP_4)
+#define M_HELP5 M(MACRO_HELP_5)
+#define M_HELP6 M(MACRO_HELP_6)
+#define M_HELP7 M(MACRO_HELP_7)
+#define M_HELP8 M(MACRO_HELP_8)
+#define M_HELP9 M(MACRO_HELP_9)
#define VC_UP M(MACRO_INC_VOICE)
@@ -77,6 +101,7 @@
#define SC_ACLS LALT(KC_F4)
#define SC_CCLS LCTL(KC_F4)
+#define TG_NKRO MAGIC_TOGGLE_NKRO
#define OS_SHFT KC_FN0
#define _______ KC_TRNS
@@ -86,155 +111,126 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* QWERTY
- * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
- * | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
- * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
- * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
- * | LCTRL | LWIN | FN | LALT | UPPER | XXXXXX . SPACE | LOWER | SHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [LAYER_QWERTY] = { // QWERTY
- { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC },
- { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL },
- { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP },
- { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
- { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT },
- },
-
- /* COLEMAK
- * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | TAB | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | \ | DEL |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
- * | BACKSP | A | R | S | T | D | H | N | E | I | O | ' | XXXXXX . ENTER | PG UP |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
- * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
- * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
- * | LCTRL | LWIN | FN | LALT | UPPER | XXXXXX . SPACE | LOWER | SHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [LAYER_COLEMAK] = { // COLEMAK
- { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC },
- { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL },
- { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP },
- { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
- { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT },
+/* LAYER = LAYER_QWERTY
+ .--------------------------------------------------------------------------------------------------------------------------------------.
+ | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP . BACKSP |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | CAP LK | A | S | D | F | G | H | J | K | L | ; | ' | ENTER . ENTER | PG UP |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT . RSHIFT | UP | PG DN |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | LCTRL | LWIN | FN | LALT | UPPER | SPACE . SPACE | LOWER | OSHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT |
+ '--------------------------------------------------------------------------------------------------------------------------------------'
+*/
+[LAYER_QWERTY] = {
+ { KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC },
+ { KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL },
+ { KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_ENT , KC_PGUP },
+ { KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_RSFT, KC_UP , KC_PGDN },
+ { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC , KC_SPC , M_LOWER, OS_SHFT, KC_RALT, KC_APP , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }
},
-
-/* DVORAK
- * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | [ | ] | XXXXXX . BACKSP |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | TAB | ' | , | . | P | Y | F | G | C | R | L | / | = | \ | DEL |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
- * | CAPS | A | O | E | U | I | D | H | T | N | S | - | XXXXXX . ENTER | PG UP |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
- * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN |
- * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
- * | LCTRL | LWIN | FN | LALT | UPPER | XXXXXX . SPACE | LOWER | SHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [LAYER_DVORAK] = { // DVORAK
- { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_BSPC },
- { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_DEL },
- { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_ENT, KC_PGUP },
- { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
- { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT },
- },
-
-/* UPPER
- * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
- * | PRINT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | NUM LK | / | * | | NUM LK | SCR LK | XXXXXX . PAUSE |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | | F1 | F2 | F3 | F4 | | | 7 | 8 | 9 | - | | | | INS |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
- * | CAP LK | F5 | F6 | F7 | F8 | | | 4 | 5 | 6 | + | | XXXXXX . | HOME |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
- * | | F9 | F10 | F11 | F12 | | | 1 | 2 | 3 | ENTER | XXXXXX . | | END |
- * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
- * | | | | | | 0 | | RALT | . | ENTER | | | | |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [LAYER_UPPER] = { // UPPER
- { KC_PSCR, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, XXXXXXX, XXXXXXX, KC_SLCK, KC_PAUS, KC_PAUS },
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, KC_INS },
- { KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, ________________, KC_HOME },
- { _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, ________________, _______, KC_END },
- { _______, _______, _______, _______, _______, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, _______, _______, _______, _______ },
- },
-
-/* LOWER
- * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . BACKSP |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | | $ | { | [ | ( | % | # | ) | ] | } | @ | | | | INS |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
- * | | ^ | * | + | - | ; | : | _ | ' | " | ` | | XXXXXX . | HOME |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
- * | | | | & | ! | ~ | / | \ | = | < | > | ? | XXXXXX . | | END |
- * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
- * | | | | | | | | | | | | | | |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [LAYER_LOWER] = { // LOWER
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ________________ },
- { _______, KC_DLR, KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT, _______, _______, _______, KC_INS },
- { _______, KC_CIRC, KC_ASTR, KC_PPLS, KC_PMNS, KC_SCLN, KC_COLN, KC_UNDS, KC_QUOT, KC_DQT, KC_GRV, _______, ________________, KC_HOME },
- { _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SLSH, KC_BSLS, KC_EQL, KC_LT, KC_GT, KC_QUES, ________________, _______, KC_END },
- { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
-
- [LAYER_FUNCTION] = { // FUNCTION
- { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ________________ },
- { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, KC_PAUS },
- { KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, KC_PSCR },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, KC_VOLU, KC_MUTE },
- { _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT },
- },
-
-#ifdef MOUSEKEY_ENABLE
-
- [LAYER_MOUSE] = { // MOUSE
- { _______, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX },
- { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
- { XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX, KC_WH_U },
- { _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ________________, KC_MS_U, KC_WH_D },
- { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R },
- },
-
-#endif
-
- [LAYER_ADJUST] = { // ADJUST
- { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, _______, _______, MU_TOG, AU_TOG, ________________ },
- { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ },
- { _______, _______, _______, _______, M_BACKL, RESET, _______, M_MOUSE, _______, _______, _______, ________________, MUV_IN, _______ },
- { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, MUV_DE, _______ },
- },
-
-
-/*
- [LAYER_EMPTY] = { // LAYER
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______, _______ },
- { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
+/* LAYER = LAYER_UPPER
+ .--------------------------------------------------------------------------------------------------------------------------------------.
+ | PRINT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | NUM LK | KP / | KP * | KP - | XXXXXX | XXXXXX | ______ . ______ |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | PAUSE | F1 | F2 | F3 | F4 | NUM LK | KP / | KP 7 | KP 8 | KP 9 | KP - | ______ | ______ | ______ | INS |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | F5 | F6 | F7 | F8 | CAP LK | KP * | KP 4 | KP 5 | KP 6 | KP + | ______ | ______ . ______ | HOME |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | F9 | F10 | F11 | F12 | SCR LK | KP 0 | KP 1 | KP 2 | KP 3 | KP ENT | ______ . ______ | ______ | END |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | ______ | ______ | ______ | UPPER | KP 0 . KP 0 | ______ | RALT | KP . | KP ENT | ______ | ______ | ______ | ______ |
+ '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-
+[LAYER_UPPER] = {
+ { KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, XXXXXXX, XXXXXXX, _______, _______ },
+ { KC_PAUS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, KC_INS },
+ { _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_CAPS, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______, _______, KC_HOME },
+ { _______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_SLCK, KC_KP_0, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______, _______, _______, KC_END },
+ { _______, _______, _______, _______, M_UPPER, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, _______, _______, _______, _______ }
+},
+/* LAYER = LAYER_LOWER
+ .--------------------------------------------------------------------------------------------------------------------------------------.
+ | PRINT | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | ______ . ______ |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | $ | { | [ | ( | % | # | ) | ] | } | @ | ______ | ______ | ______ | INS |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | ^ | * | + | - | / | \ | _ | ' | " | ` | ______ | ______ . ______ | HOME |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | | | & | ! | ~ | ; | : | = | < | > | ? | ______ . ______ | ______ | END |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | ______ | ______ | ______ | ______ | ______ . ______ | LOWER | ______ | ______ | ______ | ______ | ______ | ______ | ______ |
+ '--------------------------------------------------------------------------------------------------------------------------------------'
+*/
+[LAYER_LOWER] = {
+ { KC_PSCR, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______ },
+ { _______, KC_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , _______, _______, _______, KC_INS },
+ { _______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , _______, _______, _______, KC_HOME },
+ { _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL , KC_LT , KC_GT , KC_QUES, _______, _______, _______, KC_END },
+ { _______, _______, _______, _______, _______, _______, _______, M_LOWER, _______, _______, _______, _______, _______, _______, _______ }
+},
+/* LAYER = LAYER_FUNCTION
+ .--------------------------------------------------------------------------------------------------------------------------------------.
+ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | XXXXXX | F13 | F14 | F15 | F16 | NUM LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | XXXXXX | F17 | F18 | F19 | F20 | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | XXXXXX |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | F21 | F22 | F23 | F24 | CAP LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ______ . ______ | VOL UP | MUTE |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | ______ | FN | ______ | ______ | PLAY . PLAY | ______ | ______ | ______ | ______ | ______ | PREV | VOL DN | NEXT |
+ '--------------------------------------------------------------------------------------------------------------------------------------'
+*/
+[LAYER_FUNCTION] = {
+ { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { XXXXXXX, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { _______, KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_VOLU, KC_MUTE },
+ { _______, _______, M_FUNCT, _______, _______, KC_MPLY, KC_MPLY, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT }
+},
+/* LAYER = LAYER_MOUSE
+ .--------------------------------------------------------------------------------------------------------------------------------------.
+ | ESC | MS AC0 | MS AC1 | MS AC2 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS UL | MS U | MS UR | XXXXXX | XXXXXX | XXXXXX | MS WHL | MS WHR |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | XXXXXX | MS BT5 | MS BT4 | MS BT3 | MS BT2 | XXXXXX | XXXXXX | MS L | XXXXXX | MS R | XXXXXX | XXXXXX | XXXXXX . XXXXXX | MS WHU |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS DL | MS D | MS DR | XXXXXX | ______ . ______ | MS U | MS WHD |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | ______ | ______ | ______ | ______ | MS BT1 . MS BT1 | ______ | ______ | ______ | ______ | ______ | MS L | MS D | MS R |
+ '--------------------------------------------------------------------------------------------------------------------------------------'
+*/
+[LAYER_MOUSE] = {
+ { KC_ESC , KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_UL, KC_MS_U, M_MS_UR, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_R },
+ { XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, XXXXXXX, KC_MS_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U },
+ { _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_DL, KC_MS_D, M_MS_DR, XXXXXXX, _______, _______, KC_MS_U, KC_WH_D },
+ { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }
+},
+/* LAYER = LAYER_ADJUST
+ .--------------------------------------------------------------------------------------------------------------------------------------.
+ | XXXXXX | HELP 1 | HELP 2 | HELP 3 | HELP 4 | HELP 5 | HELP 6 | HELP 7 | HELP 8 | HELP 9 | XXXXXX | MUSIC | AUDIO | XXXXXX . XXXXXX |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | XXXXXX | BRTOG | BRSPD+ | BRSPD- | BRDFLT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | XXXXXX |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | XXXXXX | QWERTY | XXXXXX | XXXXXX | BACKLT | RESET | XXXXXX | MOUSE | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | VOICE+ | XXXXXX |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER | XXXXXX . XXXXXX | LOWER | XXXXXX | XXXXXX | XXXXXX | XXXXXX | TEMPO- | VOICE- | TEMPO+ |
+ '--------------------------------------------------------------------------------------------------------------------------------------'
+*/
+[LAYER_ADJUST] = {
+ { XXXXXXX, M_HELP1, M_HELP2, M_HELP3, M_HELP4, M_HELP5, M_HELP6, M_HELP7, M_HELP8, M_HELP9, XXXXXXX, MU_TOG , AU_TOG , XXXXXXX, XXXXXXX },
+ { XXXXXXX, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { XXXXXXX, M_QWRTY, XXXXXXX, XXXXXXX, M_BACKL, RESET , XXXXXXX, M_MOUSE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MUV_IN , XXXXXXX },
+ { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_UPPER, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TMPO_DN, MUV_DE , TMPO_UP }
+},
};
#ifdef AUDIO_ENABLE
@@ -276,61 +272,101 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
switch(id)
{
- case MACRO_BREATH_TOGGLE:
+ case MACRO_HELP_1:
if (record->event.pressed)
{
- breathing_toggle();
+ uprintf("1");
}
break;
- case MACRO_BREATH_SPEED_INC:
+ case MACRO_HELP_2:
if (record->event.pressed)
{
- breathing_speed_inc(1);
+ uprintf("2");
}
break;
- case MACRO_BREATH_SPEED_DEC:
+ case MACRO_HELP_3:
if (record->event.pressed)
{
- breathing_speed_dec(1);
+ uprintf("3");
}
break;
- case MACRO_BREATH_DEFAULT:
+ case MACRO_HELP_4:
if (record->event.pressed)
{
- breathing_defaults();
+ uprintf("4");
}
break;
- case MACRO_QWERTY:
+ case MACRO_HELP_5:
if (record->event.pressed)
{
- persistant_default_layer_set(1UL<<LAYER_QWERTY);
- #ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO);
- #endif /* AUDIO_ENABLE */
+ uprintf("5");
}
break;
- case MACRO_COLEMAK:
+ case MACRO_HELP_6:
if (record->event.pressed)
{
- persistant_default_layer_set(1UL<<LAYER_COLEMAK);
- #ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO);
- #endif /* AUDIO_ENABLE */
+ uprintf("6");
}
break;
- case MACRO_DVORAK:
+ case MACRO_HELP_7:
if (record->event.pressed)
{
- persistant_default_layer_set(1UL<<LAYER_DVORAK);
- #ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO);
- #endif /* AUDIO_ENABLE */
+ uprintf("7");
+ }
+ break;
+
+ case MACRO_HELP_8:
+ if (record->event.pressed)
+ {
+ uprintf("8");
+ }
+ break;
+
+ case MACRO_HELP_9:
+ if (record->event.pressed)
+ {
+ uprintf("9");
+ }
+ break;
+
+ case MACRO_BREATH_TOGGLE:
+ if (record->event.pressed)
+ {
+ breathing_toggle();
+ }
+ break;
+
+ case MACRO_BREATH_SPEED_INC:
+ if (record->event.pressed)
+ {
+ breathing_speed_inc(1);
+ }
+ break;
+
+ case MACRO_BREATH_SPEED_DEC:
+ if (record->event.pressed)
+ {
+ breathing_speed_dec(1);
+ }
+ break;
+
+ case MACRO_BREATH_DEFAULT:
+ if (record->event.pressed)
+ {
+ breathing_defaults();
+ }
+ break;
+
+ case MACRO_QWERTY:
+ if (record->event.pressed)
+ {
+ persistant_default_layer_set(1UL<<LAYER_QWERTY);
}
break;
diff --git a/keyboards/atomic/readme.md b/keyboards/atomic/readme.md
index ab1e7ba1f..674dcf113 100644
--- a/keyboards/atomic/readme.md
+++ b/keyboards/atomic/readme.md
@@ -13,13 +13,14 @@ Download or clone the whole firmware and navigate to the keyboards/atomic folder
Depending on which keymap you would like to use, you will have to compile slightly differently.
### Default
-To build with the default keymap, simply run `make`.
+To build with the default keymap, simply run `make default`.
### Other Keymaps
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `<name>.c` and see keymap document (you can find in top readme.md) and existent keymap files.
-To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
```
-$ make KEYMAP=[default|jack|<name>]
+$ make [default|jack|<name>]
```
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboards/atomic/rules.mk b/keyboards/atomic/rules.mk
new file mode 100644
index 000000000..d0f3a3a1c
--- /dev/null
+++ b/keyboards/atomic/rules.mk
@@ -0,0 +1,69 @@
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no # Audio output on port C6
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend \ No newline at end of file
diff --git a/keyboards/atreus/Makefile b/keyboards/atreus/Makefile
index 95ee1d4d7..4e2a6f00f 100644
--- a/keyboards/atreus/Makefile
+++ b/keyboards/atreus/Makefile
@@ -1,88 +1,3 @@
-
-
-ifdef TEENSY2
- OPT_DEFS += -DATREUS_TEENSY2
- ATRUES_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex
-else
- OPT_DEFS += -DATREUS_ASTAR
- OPT_DEFS += -DCATERINA_BOOTLOADER
- ATRUES_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
- avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
-endif
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
-# Build Options
-# comment out to disable the options.
-#
-#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
-NKRO_ENABLE ?= yes # USB Nkey Rollover - not yet supported in LUFA
-# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
-# MIDI_ENABLE ?= YES # MIDI controls
-UNICODE_ENABLE ?= YES # Unicode
-# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
-
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
-endif
-
-USB ?= /dev/cu.usbmodem1411
-
-upload: build
- $(ATRUES_UPLOAD_COMMAND)
- \ No newline at end of file
+endif \ No newline at end of file
diff --git a/keyboards/atreus/atreus.h b/keyboards/atreus/atreus.h
index 2b3803bc2..f841c3519 100644
--- a/keyboards/atreus/atreus.h
+++ b/keyboards/atreus/atreus.h
@@ -10,16 +10,16 @@
// 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, \
- 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, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
+ k30, k31, k32, k33, k34, k35, k36, 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 } \
+ { k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a, k3b } \
}
#endif
diff --git a/keyboards/atreus/config.h b/keyboards/atreus/config.h
index 624d90188..51162cde3 100644
--- a/keyboards/atreus/config.h
+++ b/keyboards/atreus/config.h
@@ -37,7 +37,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// COLS: Left to right, ROWS: Top to bottom
#if defined(ATREUS_ASTAR)
# define MATRIX_ROW_PINS { D0, D1, D3, D2 }
+#if defined(PCBDOWN)
+# define MATRIX_COL_PINS { B7, D6, F7, F6, B6, D4, E6, B4, B5, C6, D7 }
+#else
# define MATRIX_COL_PINS { D7, C6, B5, B4, E6, D4, B6, F6, F7, D6, B7 }
+#endif
# define UNUSED_PINS
#elif defined(ATREUS_TEENSY2)
# define MATRIX_ROW_PINS { D0, D1, D2, D3 }
diff --git a/keyboards/atreus/keymaps/alphadox/config.h b/keyboards/atreus/keymaps/alphadox/config.h
new file mode 100644
index 000000000..df56849b0
--- /dev/null
+++ b/keyboards/atreus/keymaps/alphadox/config.h
@@ -0,0 +1,80 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Arbitrary Definitions
+#define PRODUCT Planckeus
+#define DESCRIPTION q.m.k. keyboard firmware for Planckeus
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 11
+
+#define MATRIX_ROW_PINS { D0, D1, D2, D3 }
+#define MATRIX_COL_PINS { F6, F5, F4, F1, F0, F7, B0, B1, B2, B3, B7 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+//#define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/atreus/keymaps/alphadox/keymap.c b/keyboards/atreus/keymaps/alphadox/keymap.c
new file mode 100644
index 000000000..b8ec0e032
--- /dev/null
+++ b/keyboards/atreus/keymaps/alphadox/keymap.c
@@ -0,0 +1,45 @@
+#include "atreus.h"
+
+#define BASE 0
+#define SYMB 1
+#define ETC 2
+
+enum macro_id {
+ TEENSY,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[BASE] = KEYMAP(
+ KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_SCLN,
+ LT(ETC,KC_A), KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H,
+ SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
+ KC_GRV, KC_DEL, KC_LALT, GUI_T(KC_TAB), LT(SYMB,KC_BSPC), CTL_T(KC_ESC), SFT_T(KC_ENT), LT(SYMB,KC_SPC), GUI_T(KC_LEFT), KC_DOWN, KC_UP, LCAG_T(KC_RGHT)
+),
+
+[SYMB] = KEYMAP(
+ KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_EQL, KC_7, KC_8, KC_9, KC_PLUS,
+ KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BSLS, KC_MINS, KC_4, KC_5, KC_6, KC_QUOT,
+ KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_ASTR, KC_UNDS, KC_1, KC_2, KC_3, KC_DQUO,
+ KC_TILD, KC_AMPR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_NO, KC_DOT, KC_TRNS
+),
+
+[ETC] = KEYMAP(
+ RESET, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_HOME,
+ LT(ETC,KC_A), KC_NO, KC_NO, KC_NO, KC_PGDN, KC_VOLD, KC_F4, KC_F5, KC_F6, KC_END,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_INS,
+ KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ switch(id) {
+ case TEENSY:
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/atreus/keymaps/classic/keymap.c b/keyboards/atreus/keymaps/classic/keymap.c
new file mode 100644
index 000000000..6ca0b2077
--- /dev/null
+++ b/keyboards/atreus/keymaps/classic/keymap.c
@@ -0,0 +1,48 @@
+#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 _RS 1
+#define _LW 2
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_QW] = { /* Qwerty */
+ {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P },
+ {KC_A, KC_S, KC_D, KC_F, KC_G, KC_TRNS, 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_LCTL, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT }
+},
+[_RS] = { /* [> RAISE <] */
+ {KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR},
+ {KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_TRNS, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS},
+ {KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_LALT, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS},
+ {TG(_LW), KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL}
+},
+[_LW] = { /* [> LOWER <] */
+ {KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10},
+ {KC_DELT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, KC_TRNS, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12},
+ {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, DF(_QW), 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/keyboards/atreus/keymaps/default/keymap.c b/keyboards/atreus/keymaps/default/keymap.c
index 1c4280ff5..04ad66fed 100644
--- a/keyboards/atreus/keymaps/default/keymap.c
+++ b/keyboards/atreus/keymaps/default/keymap.c
@@ -18,17 +18,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
{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_LCTL, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT }
},
+/*
+ * ! @ up { } || pgup 7 8 9 *
+ * # left down right $ || pgdn 4 5 6 +
+ * [ ] ( ) & || ` 1 2 3 \
+ * lower insert super shift bksp ctrl || alt space fn . 0 =
+ */
[_RS] = { /* [> RAISE <] */
- {KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR},
- {KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_TRNS, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS},
- {KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_LALT, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS},
+ {KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_TRNS, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR},
+ {KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DLR, KC_TRNS, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS},
+ {KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_LALT, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS},
{TG(_LW), KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL}
},
+/*
+ * insert home up end pgup || up F7 F8 F9 F10
+ * del left down right pgdn || down F4 F5 F6 F11
+ * volup reset || F1 F2 F3 F12
+ * voldn super shift bksp ctrl || alt space L0 prtsc scroll pause
+ */
[_LW] = { /* [> LOWER <] */
{KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10},
{KC_DELT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, KC_TRNS, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11},
- {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12},
- {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, DF(_QW), KC_TRNS, KC_TRNS, RESET}
+ {KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, RESET, KC_LALT, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12},
+ {KC_TRNS, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, DF(_QW), KC_PSCR, KC_SLCK, KC_PAUS}
}};
const uint16_t PROGMEM fn_actions[] = {
diff --git a/keyboards/atreus/keymaps/erlandsona/config.h b/keyboards/atreus/keymaps/erlandsona/config.h
new file mode 100644
index 000000000..d9eb1903e
--- /dev/null
+++ b/keyboards/atreus/keymaps/erlandsona/config.h
@@ -0,0 +1,96 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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"
+
+
+/* Make Overloaded Keys switch faster */
+#define TAPPING_TERM 150
+
+/* USB Device descriptor parameter */
+
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Technomancy
+#define PRODUCT Atreus
+#define DESCRIPTION q.m.k. keyboard firmware for Atreus
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 11
+
+// Change this to how you wired your keyboard
+// COLS: Left to right, ROWS: Top to bottom
+#if defined(ATREUS_ASTAR)
+# define MATRIX_ROW_PINS { D0, D1, D3, D2 }
+#if defined(PCBDOWN)
+# define MATRIX_COL_PINS { B7, D6, F7, F6, B6, D4, E6, B4, B5, C6, D7 }
+#else
+# define MATRIX_COL_PINS { D7, C6, B5, B4, E6, D4, B6, F6, F7, D6, B7 }
+#endif
+# define UNUSED_PINS
+#elif defined(ATREUS_TEENSY2)
+# define MATRIX_ROW_PINS { D0, D1, D2, D3 }
+# define MATRIX_COL_PINS { F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0 }
+# define UNUSED_PINS
+#endif
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+//#define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/atreus/keymaps/erlandsona/keymap.c b/keyboards/atreus/keymaps/erlandsona/keymap.c
new file mode 100644
index 000000000..32c8826e0
--- /dev/null
+++ b/keyboards/atreus/keymaps/erlandsona/keymap.c
@@ -0,0 +1,61 @@
+// this is the style you want to emulate.
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+
+#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 BASE 0
+#define NUMS 1
+#define MOUS 2
+
+// Some quick aliases, just to make it look pretty
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[BASE] = KEYMAP( /* Qwerty */
+ KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,
+ KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN ,
+ SFT_T(KC_Z), KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , SFT_T(KC_QUOT),
+ KC_LCTL , KC_LALT, KC_LALT, KC_LGUI, KC_BSPC, KC_ESC, KC_ENT, KC_SPC, F(NUMS), KC_RALT, KC_SLSH, KC_BSLS ),
+
+[NUMS] = KEYMAP( /* Numbers / Arrows / Symbols */
+ KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_LPRN, KC_RPRN, KC_MINS, KC_EQL , KC_LBRC,
+ KC_TAB , KC_5 , KC_6 , KC_7 , KC_8 , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_RBRC,
+ _______, KC_9 , KC_0 , KC_DOT , KC_COMM, KC_HOME, KC_PGDN, KC_PGUP, KC_END , _______,
+ _______, _______, _______, _______, KC_DEL , F(MOUS), _______, _______, _______, _______, _______, _______),
+
+[MOUS] = KEYMAP( /* Mouse and Media Keys */
+ KC_SLCK, KC_PAUSE, KC_F11 , KC_F10 , KC_F9 , KC_F8 , KC_F7 , KC_F6 , KC_F5 , KC_F4,
+ KC_VOLD, KC_ACL0 , KC_ACL1, KC_ACL2, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_F3,
+ KC_MUTE, KC_MPRV , KC_MPLY, KC_MNXT, KC_MUTE, KC_WH_R, KC_WH_U, KC_WH_D, KC_WH_L, KC_F2,
+ _______, _______ , _______, _______, _______, _______, _______, KC_BTN1, F(BASE), RESET , KC_F12 , KC_F1)
+};
+
+
+// I prefer this layer switching strategy to the TG and MO functions.
+// so that I can get out of mouse mode just by tapping/holding my base layer FN key.
+const uint16_t PROGMEM fn_actions[] = {
+ [BASE] = ACTION_LAYER_OFF(2, 1), // switch back to layer 0
+ [NUMS] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay
+ [MOUS] = ACTION_LAYER_ON(2, 1) // switch to layer 2
+};
+
+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/keyboards/atreus/keymaps/jeremy/keymap.c b/keyboards/atreus/keymaps/jeremy/keymap.c
new file mode 100644
index 000000000..90ec6f904
--- /dev/null
+++ b/keyboards/atreus/keymaps/jeremy/keymap.c
@@ -0,0 +1,66 @@
+// This is the personal keymap of Jeremy Cowgar (@jcowgar). It is written for the programmer.
+
+#include "atreus.h"
+#include "action_layer.h"
+#include "keymap_colemak.h"
+
+#define PREVENT_STUCK_MODIFIERS
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+#define ALPH 0
+#define NUMS 1
+#define CURS 2
+#define SYMB 3
+#define FKEY 4
+
+// Some handy macros to keep the keymaps clean and easier to maintain
+#define KM_SAVE LGUI(CM_S)
+#define KM_CLSE LGUI(CM_W)
+#define KM_OPEN LGUI(CM_O)
+
+#define KM_COPY LGUI(KC_C)
+#define KM_CUT LGUI(KC_X)
+#define KM_PAST LGUI(KC_V)
+#define KM_UNDO LGUI(KC_Z)
+#define KM_REDO LGUI(LSFT(KC_Z))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[ALPH] = {
+ {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P},
+ {KC_A, LT(NUMS, KC_S), LT(FKEY, KC_D), KC_F, KC_G, KC_TRNS, KC_H, KC_J, LT(CURS, KC_K), LT(SYMB, 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_LCTL, KC_ESC, KC_NO, KC_LSFT, KC_SPC, KC_LGUI, KC_ENT, KC_RSFT, KC_NO, KC_ESC, KC_RCTL}
+},
+[NUMS] = {
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_ASTR, KC_SLSH, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_SLSH},
+ {KC_TRNS, KC_TRNS, KC_EQL, KC_PLUS, KC_MINS, KC_TRNS, KC_LPRN, KC_4, KC_5, KC_6, KC_ASTR},
+ {KC_TRNS, KC_TRNS, KC_DOT, KC_COMM, CM_SCLN, KC_TRNS, KC_RPRN, KC_1, KC_2, KC_3, KC_MINS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_EQL, KC_PLUS}
+},
+[CURS] = {
+ {KC_TRNS, KC_BSPC, KC_UP, KC_DELT, KC_PGUP, KC_TRNS, KC_TRNS, KM_SAVE, KC_TRNS, KM_OPEN, KC_TRNS},
+ {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KM_UNDO, KC_LALT, KC_TRNS, KC_LGUI, KC_TRNS},
+ {KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_MPLY, KM_COPY, KM_REDO, KM_CLSE, KC_TRNS, KC_TRNS, KC_TRNS},
+ {KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TAB, KM_CUT, KM_PAST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+},
+[SYMB] = {
+ {KC_BSLS, KC_EXLM, KC_LABK, KC_RABK, CM_COLN, KC_TRNS, KC_UNDS, KC_DLR, KC_QUES, KC_TRNS, KC_PERC},
+ {KC_AT, KC_AMPR, KC_LPRN, KC_RPRN, CM_SCLN, KC_TRNS, KC_COMM, KC_DOT, KC_QUOT, KC_TRNS, KC_TILD},
+ {KC_HASH, KC_PIPE, KC_LCBR, KC_RCBR, KC_SLSH, KC_TRNS, KC_TRNS, KC_GRV, KC_DQT, KC_TRNS, KC_CIRC},
+ {KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+},
+[FKEY] = {
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+}};
+
+const uint16_t PROGMEM fn_actions[] = {};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {}
+
+ return MACRO_NONE;
+};
diff --git a/keyboards/atreus/keymaps/jeremy/readme.md b/keyboards/atreus/keymaps/jeremy/readme.md
new file mode 100644
index 000000000..df0179a8e
--- /dev/null
+++ b/keyboards/atreus/keymaps/jeremy/readme.md
@@ -0,0 +1,45 @@
+Jeremy's Atreus Key Mapping
+===========================
+
+I am a programmer by trade that suffers from the beginning stages of RSI. As a programmer I use letters, symbols and cursor navigation most often. To prevent strange finger gymnastics, I wrote a script to rank which non-letter characters occurred in my primary source projects most often and then placed these characters in the easiest to reach locations, for me. I made heavy use of momentary layer toggling.
+
+My layout is also geared toward a software based Colemak mapping. I would like it to be hardware, but I use my Laptop on the go frequently and thus my laptop keyboard. I have moved the keycaps to reflect the Colemak layout. My laptop is a MacBook Pro (2015).
+
+## Main Layers
+
+1. [Letters](http://www.keyboard-layout-editor.com/#/gists/6861cb9df09ce78efaddf8aa7471e3ac)
+2. [Symbols](http://www.keyboard-layout-editor.com/#/gists/8956a18b508a78e93b9c38ec3fcccaa5)
+3. [Navigation](http://www.keyboard-layout-editor.com/#/gists/6ed492b714a7f54eb1c5de09b87fd8c4)
+4. [Numbers](http://www.keyboard-layout-editor.com/#/gists/399ceb5624e8388e48a3a5eacac8e973)
+5. [Function Keys](http://www.keyboard-layout-editor.com/#/gists/7fd7dc24c7048316f3724b1893c64e89)
+
+## Notes
+
+### General
+
+Some characters can be accessed multiple ways. This was done because you may be in a given layer, such as numbers, where when doing math, you may need quick access to the parentheses characters for grouping. This prevents some layer switching.
+
+I own an ErgoDox and plan on porting this as a base layer, then using the extra keys the ErgoDox provides accordingly. My goal, though, is to be fully functional on this base setup and build everything into muscle memory.
+
+### Symbol Layer
+
+1. I placed characters that deal with an if statement close together, such as !, & and |.
+2. All matching brace/bracket characters are together as well.
+
+### Number Layer
+
+1. Everything I did was a compromise when trying to mimic a ten-key. I did the best I could.
+2. Operators are duplicated on the right and left. I do not find it comfortable to use my pinky much, so I tend to use my left hand for +, -, * and / but those were also placed on the right hand to mimic the ten-key.
+3. Parentheses were added for typing on the calculator.
+
+### Cursor Layer
+
+1. It includes basic audio controls because they didn't really fit anywhere else
+2. It contains basic file manipulation. I'm not sure that was a good idea. I do save all the time, but Cmd+S isn't exactly hard.
+3. It contains the backspace and delete keys right on top of the left and right arrows.
+4. Cmd and Opt keys are duplicated. This makes for very easy navigation, for example on a Mac, Opt+Left/Right moves word by word. It also backspaces or deletes word by word.
+
+### Function Layer
+
+1. Almost all other layers I saw grouped the F keys into a bunch of three. This only gives nine function keys in order if you attempt to stay as close to the home row as possible. I went with a group of four, which gives all twelve function keys to the right hand, one row below and above the home row.
+2. I duplicated the Command and Option keys the same as on the cursor layer. This makes it dead easy to hit modified function keys such as Cmd+Opt+F5. It's also easy to toss in a Shift modifier in there with the right thumb since the bottom row is preserved.
diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-base.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-base.png
new file mode 100644
index 000000000..1d5bd78db
--- /dev/null
+++ b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-base.png
Binary files differ
diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-extend.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-extend.png
new file mode 100644
index 000000000..cf4db3e2c
--- /dev/null
+++ b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-extend.png
Binary files differ
diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-function.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-function.png
new file mode 100644
index 000000000..30e5621e4
--- /dev/null
+++ b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-function.png
Binary files differ
diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-game.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-game.png
new file mode 100644
index 000000000..95f8be5e0
--- /dev/null
+++ b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-game.png
Binary files differ
diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-num.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-num.png
new file mode 100644
index 000000000..3c445f90c
--- /dev/null
+++ b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-num.png
Binary files differ
diff --git a/keyboards/atreus/keymaps/replicaJunction/config.h b/keyboards/atreus/keymaps/replicaJunction/config.h
new file mode 100644
index 000000000..437aa662c
--- /dev/null
+++ b/keyboards/atreus/keymaps/replicaJunction/config.h
@@ -0,0 +1,94 @@
+/*
+Config file - Atreus QMK with replicaJunction layout
+
+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 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Technomancy
+#define PRODUCT Atreus
+#define DESCRIPTION q.m.k. keyboard firmware for Atreus
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 11
+
+// Change this to how you wired your keyboard
+// COLS: Left to right, ROWS: Top to bottom
+#if defined(ATREUS_ASTAR)
+# define MATRIX_ROW_PINS { D0, D1, D3, D2 }
+# define MATRIX_COL_PINS { D7, C6, B5, B4, E6, D4, B6, F6, F7, D6, B7 }
+# define UNUSED_PINS
+#elif defined(ATREUS_TEENSY2)
+# define MATRIX_ROW_PINS { D0, D1, D2, D3 }
+# define MATRIX_COL_PINS { F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0 }
+# define UNUSED_PINS
+#endif
+
+/* 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 */
+// Default: 5
+#define DEBOUNCING_DELAY 6
+
+// I don't have any locking keys, so I don't need these features
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+//#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+//#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* Prevent modifiers from sticking when switching layers */
+#define PREVENT_STUCK_MODIFIERS
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/atreus/keymaps/replicaJunction/keymap.c b/keyboards/atreus/keymaps/replicaJunction/keymap.c
new file mode 100644
index 000000000..d39a184d4
--- /dev/null
+++ b/keyboards/atreus/keymaps/replicaJunction/keymap.c
@@ -0,0 +1,213 @@
+/*
+ * Keyboard: Atreus
+ * Keymap: replicaJunction
+ * Version: 0.4
+ *
+ * This keymap is designed to complement my Ergodox keyboard layout, found in keyboards/ergodox_ez.
+ * The Atreus keyboard is a 40% board whose design was heavily influenced by the Ergodox. I now
+ * have both keyboards, so I've designed these layouts in an effort to make switching between the
+ * two as easy as possible.
+ *
+ * Clearly, the Atreus is the limiting factor in this equation, so I've taken heavy advantage of
+ * function and dual-role keys.
+ *
+ * The default key layout in this keymap is Colemak-ModDH. Information on that layout can be found
+ * here: https://colemakmods.github.io/mod-dh/
+ */
+
+#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.
+
+// Note that whatever is set as layer 0 will be the default layer of the keyboard.
+
+#define _CO 0 // Colemak
+#define _QW 1 // QWERTY
+#define _GA 2 // Gaming
+#define _EX 3 // Extend
+#define _NU 4 // Numpad
+#define _FN 5 // Function
+
+// Some quick aliases, just to make it look pretty
+#define _______ KC_TRNS
+#define KCX_CA LCTL(KC_LALT)
+#define KCX_CS LCTL(KC_LSFT)
+#define KCX_CSA LCTL(LSFT(KC_LALT))
+#define KCX_LST LSFT(KC_TAB)
+#define KX_COPY LCTL(KC_C)
+#define KX_CUT LCTL(KC_X)
+#define KX_PAST LCTL(KC_V)
+#define KX_UNDO LCTL(KC_Z)
+
+#define _USER 0 // User macro
+
+; // This doesn't do anything. It's just for VSCode because its syntax highlighting is weird for the above #define statements.
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/*
+ * Colemak-ModDH
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | W | F | P | B | | J | L | U | Y | ; |
+ * +------+------+------+------+------| +------+------+------+------+------|
+ * | A | R | S | T | G | | M | N | E | I | O |
+ * +------+------+------+------+------| +------+------+------+------+------|
+ * |Z Shft| X | C | D | V | ,------. ,------. | K | H | , | . |/ Shft|
+ * +------+------+------+------+------| | Ctrl | | Alt | +------+------+------+------+------|
+ * | Esc | Gui | Tab | _FN | Bksp | | Del | | Enter| |Sp/_NU| _EX | - | ' | = |
+ * `----------------------------------' `------' `------' `----------------------------------'
+ *
+ */
+[_CO] = KEYMAP(
+ KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
+ KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O,
+ SFT_T(KC_Z), KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
+ KC_ESC, KC_LGUI, KC_TAB, MO(_FN), KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL
+),
+
+/*
+ * QWERTY
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | W | E | R | T | | Y | U | I | O | P |
+ * +------+------+------+------+------| +------+------+------+------+------|
+ * | A | S | D | F | G | | H | J | K | L | ; |
+ * +------+------+------+------+------| +------+------+------+------+------|
+ * |Z Shft| X | C | V | B | ,------. ,------. | N | M | , | . |/ Shft|
+ * +------+------+------+------+------| | Ctrl | | Alt | +------+------+------+------+------|
+ * | Esc | Gui | Tab | _FN | Bksp | | Del | | Enter| |Sp/_NU| _EX | - | ' | = |
+ * `----------------------------------' `------' `------' `----------------------------------'
+ *
+ */
+[_QW] = KEYMAP( /* Qwerty */
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
+ SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
+ KC_ESC, KC_LGUI, KC_TAB, MO(_FN), KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL
+),
+
+/*
+ * Extend
+ *
+ * Ctrl+` is a keyboard shortcut for the program ConEmu, which brings up a dropdown console window.
+ *
+ * Also note that some dual-role keys are overridden here with their modifiers
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | | | | |Ctrl `| | PgUp | Home | Up | End | Del |
+ * +------+------+------+------+------| +------+------+------+------+------|
+ * | Gui | Shift| Alt | Ctrl | | | PgDn | Left | Down | Right| Bksp |
+ * +------+------+------+------+------| +------+------+------+------+------|
+ * | Shift| Cut | Copy | | Paste| ,------. ,------. | | ^Tab | Tab | |Insert|
+ * +------+------+------+------+------| | Del | | Enter| +------+------+------+------+------|
+ * | | | | | | | | | | | Space|XXXXXX| | |PrntSc|
+ * `----------------------------------' `------' `------' `----------------------------------'
+ *
+ */
+[_EX] = KEYMAP( /* Extend */
+ _______, _______, _______, _______, LCTL(KC_GRV), KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL,
+ KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC,
+ KC_LSFT, KX_CUT, KX_COPY, _______, KX_PAST, _______, KCX_LST, KC_TAB, _______, KC_INS,
+ _______, _______, _______, _______, _______, KC_DEL, KC_ENT, KC_SPC, _______, _______, _______, KC_PSCR
+),
+
+/*
+ * Numbers and symbols
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | ! | @ | { | } | & | | / | 7 | 8 | 9 | * |
+ * +------+------+------+------+------| +------+------+------+------+------|
+ * | # | $ | ( | ) | ~ | | | | 4 | 5 | 6 | - |
+ * +------+------+------+------+------| +------+------+------+------+------|
+ * | % | ^ | [ | ] | ` | ,------. ,------. | \ | 1 | 2 | 3 | + |
+ * +------+------+------+------+------| | | | | +------+------+------+------+------|
+ * | | _GA | | | | | | | | |XXXXXX| 0 | . | = | |
+ * `----------------------------------' `------' `------' `----------------------------------'
+ *
+ */
+[_NU] = KEYMAP( /* Numbers and symbols */
+ KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR,
+ KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_TILD, KC_PIPE, KC_4, KC_5, KC_6, KC_MINS,
+ KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, KC_BSLS, KC_1, KC_2, KC_3, KC_PLUS,
+ _______, TG(_GA), _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, _______
+),
+
+/*
+ * Functions
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | Caps | F9 | F10 | F11 | F12 | | _USER|Whl Up| MUp |Whl Dn| |
+ * +------+------+------+------+------| +------+------+------+------+------|
+ * | | F5 | F6 | F7 | F8 | | Vol ^| MLeft| MDown|MRight| |
+ * +------+------+------+------+------| +------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | ,------. ,------. | Vol v| | | | |
+ * +------+------+------+------+------| | | |RClick| +------+------+------+------+------|
+ * | | | |XXXXXX| | | | | | |LClick|MClick| _CO | _GA | RESET|
+ * `----------------------------------' `------' `------' `----------------------------------'
+ *
+ */
+[_FN] = KEYMAP( /* Functions */
+ KC_CAPS, KC_F9, KC_F10, KC_F11, KC_F12, M(_USER),KC_WH_U, KC_MS_U, KC_WH_D, _______,
+ _______, KC_F5, KC_F6, KC_F7, KC_F8, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_R, _______,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_VOLD, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_BTN2, KC_BTN1, KC_BTN3, DF(_CO), DF(_QW), RESET
+),
+
+/*
+ * Gaming
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | | | | | | | |Whl Up| MUp |Whl Dn| |
+ * +------+------+------+------+------| +------+------+------+------+------|
+ * | | | | | | | | MLeft| MDown|MRight| |
+ * +------+------+------+------+------| +------+------+------+------+------|
+ * | Z | | | | | ,------. ,------. | | | | | |
+ * +------+------+------+------+------| | Bksp | |RClick| +------+------+------+------+------|
+ * | | _GA | | Shift| Space| | | | | |LClick|MClick| | | |
+ * `----------------------------------' `------' `------' `----------------------------------'
+ *
+ */
+[_GA] = KEYMAP( /* Gaming */
+ _______, _______, _______, _______, _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______,
+ _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______,
+ KC_Z, _______, _______, _______, _______, _______, _______, KC_MS_D, _______, _______,
+ _______, TG(_GA), _______, KC_LSFT, KC_SPC, KC_BSPC, KC_BTN2, KC_BTN1, KC_BTN3, _______, _______, _______
+)};
+
+/*
+ * Template
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | | | | | | | | | | | |
+ * +------+------+------+------+------| +------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * +------+------+------+------+------| +------+------+------+------+------|
+ * | | | | | | ,------. ,------. | | | | | |
+ * +------+------+------+------+------| | | | | +------+------+------+------+------|
+ * | | | | | | | | | | | | | | | |
+ * `----------------------------------' `------' `------' `----------------------------------'
+ *
+ */
+
+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 _USER:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/atreus/keymaps/replicaJunction/readme.md b/keyboards/atreus/keymaps/replicaJunction/readme.md
new file mode 100644
index 000000000..6ac3cb00a
--- /dev/null
+++ b/keyboards/atreus/keymaps/replicaJunction/readme.md
@@ -0,0 +1,61 @@
+# replicaJunction - Atreus Layout #
+
+This layout is designed to make the absolute most out of the Atreus 40% keyboard.
+
+I was enchanted with the idea of the Atreus keyboard after using my Ergodox for several months. I wanted something of a similar form factor that was easily portable, so I could bring and transport a keyboard to my workplace without much hassle. After building the Atreus keyboard, though, I realized very quickly that the 40% form factor requires a lot more creativity than a full-size keyboard (even one as strangely-shaped as the Ergodox).
+
+The default Atreus keyboard layout provides all the necessary keys in order to function with the keyboard, but as a programmer, I needed quicker access to just about everything. I noticed that the default layer didn't include any dual-role keys, and so I started on my journey to build my perfect layout for the Atreus.
+
+I won't claim that this layout is perfect for everyone. It does make several significant changes from the "normal" Atreus layout. In my own use, though, I've found this keyboard turbocharges my Atreus, and gives it the power of a full-size keyboard without the size.
+
+## Base Layer ##
+
+![Atreus base layout](atreus-replica-base.png)
+
+The letters on this layout are arranged in the [Colemak Mod-DH layout](https://colemakmods.github.io/mod-dh/).
+
+The primary mechanism for the Shift keys in this keyboard are the dual-role Z and slash keys. Pressing the key sends the keystroke, while holding the key sends a shift. This is a design choice taken from the xyverz layout, and one I find much more intuitive than a thumb shift. In addition, the pinky doesn't need to stretch as far to reach these keys as it does to reach a standard Shift key.
+
+Occasionally, when typing the letter Z, I'll hold the key down a fraction of a second too long, and the keyboard will shift instead. If you're not a confident typist, this dual-role Shift key layout is probably not a good solution. In that case, I'd suggest moving Shift onto the Backspace key (press for Backspace, hold for Shift).
+
+In addition to the Shift keys, there are three dual-purpose keys: Ctrl (Delete), Alt (Enter), and Space (Number layer). In QMK, these dual-role keys can be made to hold their primary key with a tap and hold. For example, if I wanted to insert a long string of Spaces, I would tap the Space key, then tap it again and hold. A single press and hold would trigger the secondary function of the key instead.
+
+## Extend Layer ##
+
+![Atreus extend layer](atreus-replica-extend.png)
+
+This layout is designed primarily for keyboard navigation. Arrow keys are easily accessible under the right hand (a welcome change from the original Atreus layout, which places them under the left hand), along with Home/End and PgUp/PgDn.
+
+Modifiers are also placed under the home row of the left hand. One of the single keyboard actions I use most is Shift+Ctrl+Left/Right to select a whole word; this layer makes those keypresses simple by adding the Ctrl key in an easy-to-reach location.
+
+For the common Ctrl shortcuts, I also added some hotkeys to this layer over the letter keys they are associated with. This gives the Extend key some extra utility by letting it "feel" like a Ctrl key in some cases.
+
+The Space key exists to prevent going from this layer directly into the Number layer. Similarly, the Shift key on the left pinky helps make sure that the normal letter (Z) doesn't fire.
+
+## Number and Symbol Layer ##
+
+![Atreus number and symbol layer](atreus-replica-num.png)
+
+This layer provides the only way of accessing number keys on this keyboard, since it's too small for its own number row. Note that even though they are laid out in the number pad fashion, they send the "regular" number keystrokes. Games and programs that specifically use NumPad keys are not supported in this layout at the moment.
+
+This layer also provides plenty of symbol shortcuts. Most of these can be accessed through other means (like Shift+8 for the asterisk), but having shortcut keys to them makes for one less keypress, which adds up quickly when using these symbols on a regular basis. I've been through many revisions of this concept on my Ergodox as well as the Atreus, and I've finally arrived at this layout as the one that provides the symbols I need most frequently in places I can think to expect them. The Ordinary layout from the Ergodox-EZ keyboard in this repository was a large influence in this design.
+
+## Function Layer ##
+
+![Atreus function layer](atreus-replica-function.png)
+
+Function keys (F1-F12) are on this layer. Their layout in groups of four comes from Jeremy's Atreus layout in this repository. I'd been using 1-9 in a numpad layout, then adding 10-12 on the side...I suppose it took seeing someone else do it this way for me to realize how much more sense it makes.
+
+On the right side are mouse keys - cursor left/right/up/down, and scroll up/down. Volume keys are also here, though really only because there was room for them (I'm not entirely happy with their positions).
+
+Finally, the reset key is on this layer, as well as toggles from Colemak to QWERTY and back. The QWERTY layer is not currently documented, but it is functionally identical to the base layer except for letter positions.
+
+## Gaming Layer ##
+
+![Atreus gaming layer](atreus-replica-game.png)
+
+This is a small layer developed to allow some simple gameplay without a mouse. This layer is a toggle (from the Number layer), so it is designed to stay on while in use.
+
+The keys on the left hand bring Space into the left thumb's reach, as well as overriding the dual-role Shift with its standard function (Z in both QWERTY and in Colemak). This allows easy Shift presses without blocking the Z key, commonly used in games.
+
+I would probably not consider the Atreus a hard-core gaming keyboard in the first place, and this layout does have the huge problem of blocking access to the number keys, but for more casual games, it plays quite well. I've used it quite a bit on Minecraft, for example, and I'm quite pleased with it. \ No newline at end of file
diff --git a/keyboards/atreus/keymaps/xyverz/keymap.c b/keyboards/atreus/keymaps/xyverz/keymap.c
new file mode 100644
index 000000000..b418cc9b5
--- /dev/null
+++ b/keyboards/atreus/keymaps/xyverz/keymap.c
@@ -0,0 +1,89 @@
+// This is the personal keymap of Ian Sterling (@xyverz). It is based on the keymap by
+// Chris Gerber (@gerbercj), with the addition of persistent layers like the Planck and
+// Preonic keyboards by Jack Humbert.
+
+#include "atreus.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _DV 0
+#define _QW 1
+#define _CM 2
+#define _L1 3
+#define _L2 4
+
+// Macro name shortcuts
+#define DVORAK M(_DV)
+#define QWERTY M(_QW)
+#define COLEMAK M(_CM)
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_DV] = { /* Dvorak */
+ {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L },
+ {KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S },
+ {SFT_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, CTL_T(KC_DEL), KC_B, KC_M, KC_W, KC_V, SFT_T(KC_Z) },
+ {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_EQL}
+ },
+ [_QW] = { /* Qwerty */
+ {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P },
+ {KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN},
+ {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_DEL), KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) },
+ {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT}
+ },
+ [_CM] = { /* Colemak */
+ {KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN},
+ {KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O },
+ {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_DEL), KC_K, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) },
+ {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT}
+ },
+ [_L1] = { /* LAYER 1 */
+ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0 },
+ {KC_TAB, KC_INS, KC_UP, KC_DEL, KC_HOME, KC_NO, KC_PGUP, KC_MUTE, KC_VOLD, KC_VOLU, KC_EQL },
+ {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_LCTL, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, KC_BSLS},
+ {KC_TRNS, KC_GRV, KC_LGUI, KC_TRNS, KC_DEL, KC_LALT, KC_SPC, KC_TRNS, KC_LBRC, KC_RBRC, KC_ENT }
+ },
+ [_L2] = { /* LAYER 2 */
+ {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_NO, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN},
+ {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_PLUS},
+ {KC_TRNS, KC_TRNS, DVORAK, QWERTY, COLEMAK, KC_LCTL, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12 },
+ {KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS, KC_BSPC, KC_LALT, KC_SPC, KC_TRNS, LSFT(KC_LBRC), LSFT(KC_RBRC), RESET}
+ }
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case _DV:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_DV);
+ }
+ break;
+ case _QW:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_QW);
+ }
+ break;
+ case _CM:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_CM);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/atreus/readme.md b/keyboards/atreus/readme.md
index 734f58f0f..476d1bce3 100644
--- a/keyboards/atreus/readme.md
+++ b/keyboards/atreus/readme.md
@@ -88,7 +88,7 @@ We've added shortcuts to make common modifier/tap (mod-tap) mappings more compac
### Remember: These are just aliases
-These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action).
+These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action).
Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them.
@@ -169,18 +169,19 @@ This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboar
## Building
-Download or clone the whole firmware and navigate to the keyboards/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button.
+Download or clone the whole firmware and navigate to the keyboards/atreus folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button.
Depending on which keymap you would like to use, you will have to compile slightly differently.
### Default
-To build with the default keymap, simply run `make`.
+To build with the default keymap, simply run `make default`.
### Other Keymaps
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` and see keymap document (you can find in top readme.md) and existent keymap files.
-To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
```
-$ make KEYMAP=[default|jack|<name>]
+$ make [default|jack|<name>]
```
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboards/atreus/rules.mk b/keyboards/atreus/rules.mk
new file mode 100644
index 000000000..3a00993bd
--- /dev/null
+++ b/keyboards/atreus/rules.mk
@@ -0,0 +1,82 @@
+
+
+ifdef TEENSY2
+ OPT_DEFS += -DATREUS_TEENSY2
+ ATREUS_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex
+else
+ OPT_DEFS += -DATREUS_ASTAR
+ OPT_DEFS += -DCATERINA_BOOTLOADER
+ ATREUS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
+ avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
+endif
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
+NKRO_ENABLE ?= yes # USB Nkey Rollover - not yet supported in LUFA
+# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
+# MIDI_ENABLE ?= YES # MIDI controls
+UNICODE_ENABLE ?= YES # Unicode
+# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
+
+USB ?= /dev/cu.usbmodem1411
+
+upload: build
+ $(ATREUS_UPLOAD_COMMAND)
diff --git a/keyboards/atreus62/Makefile b/keyboards/atreus62/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/atreus62/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/atreus62/atreus62.c b/keyboards/atreus62/atreus62.c
new file mode 100644
index 000000000..ba5bce989
--- /dev/null
+++ b/keyboards/atreus62/atreus62.c
@@ -0,0 +1 @@
+#include "atreus62.h" \ No newline at end of file
diff --git a/keyboards/atreus62/atreus62.h b/keyboards/atreus62/atreus62.h
new file mode 100644
index 000000000..eacf5b451
--- /dev/null
+++ b/keyboards/atreus62/atreus62.h
@@ -0,0 +1,26 @@
+#ifndef ATREUS62_H
+#define ATREUS62_H
+
+#include "quantum.h"
+
+void promicro_bootloader_jmp(bool program);
+
+// This a shortcut to help you visually see your layout.
+// The first section contains all of the arguements
+// The second converts the arguments into a two-dimensional array
+#define KEYMAP( \
+ k00, k01, k02, 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, k36, k37, k38, k39, k3a, k3b, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, KC_NO, k06, k07, k08, k09, k0a, k0b }, \
+ { k10, k11, k12, k13, k14, k15, KC_NO, k16, k17, k18, k19, k1a, k1b }, \
+ { k20, k21, k22, k23, k24, k25, KC_NO, k26, k27, k28, k29, k2a, k2b }, \
+ { k30, k31, k32, k33, k34, k35, k46, k36, k37, k38, k39, k3a, k3b }, \
+ { k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b, k4c, k4d } \
+}
+
+#endif \ No newline at end of file
diff --git a/keyboards/atreus62/config.h b/keyboards/atreus62/config.h
new file mode 100644
index 000000000..90a4aa05a
--- /dev/null
+++ b/keyboards/atreus62/config.h
@@ -0,0 +1,83 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6062
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Profet
+#define PRODUCT Atreus62
+#define DESCRIPTION q.m.k. keyboard firmware for Atreus62
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 13
+
+// wiring of each half
+#define MATRIX_ROW_PINS { D2, D3, D1, D0, D4 }
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5, B4, E6, D7, C6 }
+
+#define CATERINA_BOOTLOADER
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION ROW2COL
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+// #define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+// #define NO_DEBUG
+
+/* disable print */
+// #define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/atreus62/keymaps/default/keymap.c b/keyboards/atreus62/keymaps/default/keymap.c
new file mode 100644
index 000000000..52802c77b
--- /dev/null
+++ b/keyboards/atreus62/keymaps/default/keymap.c
@@ -0,0 +1,71 @@
+// this is the style you want to emulate.
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+
+#include "atreus62.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 _DEFAULT 0
+#define _NAV 1
+#define _RESET 2
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_DEFAULT] = { /* qwerty */
+ { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS },
+ { KC_BSLS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC },
+ { KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT },
+ { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DELT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LBRC },
+ { KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, MO(_NAV),KC_BSPC, KC_ENT, KC_SPC, KC_EQL, KC_MINS, KC_QUOT, KC_ENT, KC_RGUI }
+},
+
+[_NAV] = {
+ { TO(_DEFAULT), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 },
+ { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS },
+ { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS },
+ { TO(_RESET), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS },
+ { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
+},
+
+[_RESET] = {
+ { TO(_DEFAULT), KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO },
+ { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO },
+ { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO },
+ { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO },
+ { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , RESET }
+}
+
+
+/*
+[_TRNS] = {
+ { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS },
+ { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS },
+ { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS },
+ { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS },
+ { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
+},
+*/
+};
+
+
+
+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/keyboards/atreus62/keymaps/mneme/Makefile b/keyboards/atreus62/keymaps/mneme/Makefile
new file mode 100644
index 000000000..046aec273
--- /dev/null
+++ b/keyboards/atreus62/keymaps/mneme/Makefile
@@ -0,0 +1,5 @@
+TAP_DANCE_ENABLE = yes
+NKRO_ENABLE = true
+MOUSEKEY_ENABLE = no
+EXTRAKEY_ENABLE = yes
+CONSOLE_ENABLE = no
diff --git a/keyboards/atreus62/keymaps/mneme/README.md b/keyboards/atreus62/keymaps/mneme/README.md
new file mode 100644
index 000000000..7bb5da9fc
--- /dev/null
+++ b/keyboards/atreus62/keymaps/mneme/README.md
@@ -0,0 +1,58 @@
+<!-- -*- mode: markdown; fill-column: 8192 -*- -->
+
+Mnemes Swedish Bonanza
+=======================
+
+My Layout in process, most of the code is shamelessly stolen from [algernons][algernon] excellent layout
+
+ [algernon]: https://github.com/algernon/ergodox-layout
+
+It's for Windows (current work forces me to) and Swedish (matter of birth) so ymmw.
+
+## Table of Contents
+
+* [Layouts](#layouts)
+ - [Base layer](#base-layer)
+ - [Nav layer](#nav-layer)
+ - [Sym layer](#sym-layer)
+ - [LED states](#led-states)
+
+# Layouts
+
+## Base layer
+
+![Base layer](img/base.png)
+
+
+* The number row doubles as a function row. Short presses produces numbers, long presses produces Fxx
+* The `Shift`, `Alt`, and `Control` modifiers are one-shot.
+* `Backspace` and `Enter` doubles as switches to the `sym` layer when held
+* The `ESC` key also doubles as a one-shot cancel key.
+* The **Lead** key is followed by a sequence of keys.
+ - `LEAD l` : `lgui+l`.
+ - `LEAD s l` : `λ`.
+ - `LEAD s s` : `¯\_(ツ)_/¯`
+ - `LEAD s f` : `凸(ツ)凸`
+ - `LEAD u l` : Set unicode input mode to linux.
+ - `LEAD s w` : Set unicode input mode to windows.
+ - `LEAD a *` : Application switching based on position in start menu. Very specific to my computer.
+
+
+## Nav layer
+
+![Nav layer](img/fun.png)
+
+Basic navigation on the right hand and modifiers close
+by for the left. The latter because I tend to use `ctrl+arrows` quite a lot.
+
+## Sym layer
+
+![Sym layer](img/sym.png)
+
+* Easy access to most symbols I use on a daily basis. Most common are on the home row, the rest are grouped as best as I could.
+
+- `eq` : Tapdance, produces `===` and `!==`
+- `fun`: Tapdance, produces `=>` and `() => {\n`
+
+# License
+ GPL-3+
diff --git a/keyboards/atreus62/keymaps/mneme/config.h b/keyboards/atreus62/keymaps/mneme/config.h
new file mode 100644
index 000000000..73eb0fa33
--- /dev/null
+++ b/keyboards/atreus62/keymaps/mneme/config.h
@@ -0,0 +1,7 @@
+#define ONESHOT_TIMEOUT 3000
+#define TAPPING_TERM 200
+#define PREVENT_STUCK_MODIFIERS
+#define FORCE_NKRO
+#define LEADER_TIMEOUT 1000
+
+#include "../../config.h"
diff --git a/keyboards/atreus62/keymaps/mneme/img/base.png b/keyboards/atreus62/keymaps/mneme/img/base.png
new file mode 100644
index 000000000..3e77a5183
--- /dev/null
+++ b/keyboards/atreus62/keymaps/mneme/img/base.png
Binary files differ
diff --git a/keyboards/atreus62/keymaps/mneme/img/fun.png b/keyboards/atreus62/keymaps/mneme/img/fun.png
new file mode 100644
index 000000000..961a19724
--- /dev/null
+++ b/keyboards/atreus62/keymaps/mneme/img/fun.png
Binary files differ
diff --git a/keyboards/atreus62/keymaps/mneme/img/sym.png b/keyboards/atreus62/keymaps/mneme/img/sym.png
new file mode 100644
index 000000000..5e2c80335
--- /dev/null
+++ b/keyboards/atreus62/keymaps/mneme/img/sym.png
Binary files differ
diff --git a/keyboards/atreus62/keymaps/mneme/keymap.c b/keyboards/atreus62/keymaps/mneme/keymap.c
new file mode 100644
index 000000000..2627e024f
--- /dev/null
+++ b/keyboards/atreus62/keymaps/mneme/keymap.c
@@ -0,0 +1,344 @@
+#include <stdarg.h>
+#include "atreus62.h"
+#include "led.h"
+#include "action_layer.h"
+#include "action_util.h"
+
+/*
+ *WINDOWS SWEDISH
+ */
+ /*
+ *WINDOWS SWEDISH
+ */
+ #define KN_HALF KC_GRV // 1/2
+ #define KN_PLUS KC_MINS // +
+ #define KN_ACUT KC_EQL // ´
+ #define KN_AO KC_LBRC // Ã…
+ #define KN_UMLA KC_RBRC // ¨
+ #define KN_OE KC_SCLN // Ö
+ #define KN_AE KC_QUOT // Ä
+ #define KN_QUOT KC_NUHS // '
+ #define KN_LABK KC_NUBS // <
+ #define KN_MINS KC_SLSH // -
+ #define KN_EXLM LSFT(KC_1) // !
+ #define KN_DQT LSFT(KC_2) // "
+ #define KN_AT RALT(KC_2) // @
+ #define KN_HASH LSFT(KC_3) // #
+ #define KN_EUR LSFT(KC_4) // €
+ #define KN_DLR RALT(KC_4) // $
+ #define KN_PERC LSFT(KC_5) // %
+ #define KN_AMPR LSFT(KC_6) // &
+ #define KN_SLSH LSFT(KC_7) // /
+ #define KN_LPRN LSFT(KC_8) // (
+ #define KN_RPRN LSFT(KC_9) // )
+ #define KN_EQL LSFT(KC_0) // =
+ #define KN_UNDS LSFT(KN_MINS) // _
+ #define KN_QUES LSFT(KN_PLUS) // ?
+ #define KN_GRAV LSFT(KN_ACUT) // `
+ #define KN_LCBR RALT(KC_7) // {
+ #define KN_RCBR RALT(KC_0) // }
+ #define KN_LBRC RALT(KC_8) // [
+ #define KN_RBRC RALT(KC_9) // ]
+ #define KN_RABK LSFT(KN_LABK) // <
+ #define KN_COLN LSFT(KC_DOT) // :
+ #define KN_SCLN LSFT(KC_COMM) // :
+ #define KN_PIPE RALT(KN_LABK) // |
+ #define KN_QUES LSFT(KN_PLUS) // ?
+ #define KN_CIRC LSFT(KN_UMLA) // ^
+ #define KN_ASTR LSFT(KN_QUOT) // *
+ #define KN_TILD RALT(KN_UMLA) // ~
+ #define KN_BSLS RALT(KN_PLUS) //
+
+#define OSM_LCTL OSM(MOD_LCTL)
+#define OSM_LALT OSM(MOD_LALT)
+#define OSM_LSFT OSM(MOD_LSFT)
+
+#define KC_HYP LSFT(LALT(LCTL(KC_LGUI)))
+
+#define KC_COPY LCTL(KC_C)
+#define KC_PASTE LCTL(KC_V)
+#define KC_UNDO LCTL(KC_Z)
+#define KC_REDO LCTL(LSFT(KC_Z))
+
+// Layers
+enum {
+ BASE = 0,
+ NAV,
+ SYM
+};
+
+//Macros
+enum {
+ KF_1 = 0, // 1, F1
+ KF_2, // ...
+ KF_3,
+ KF_4,
+ KF_5,
+ KF_6,
+ KF_7,
+ KF_8,
+ KF_9,
+ KF_10,
+ KF_11,
+ KF_12
+};
+
+// Tapdance
+enum {
+ TD_FUN = 0,
+ TD_EQ
+};
+
+//State and timers
+uint16_t kf_timers[12];
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [BASE] = {
+
+ { M(KF_11) ,M(KF_1) ,M(KF_2) ,M(KF_3) ,M(KF_4) ,M(KF_5) ,KC_NO ,M(KF_6) ,M(KF_7) ,M(KF_8) ,M(KF_9) ,M(KF_10) ,M(KF_12) },
+ { KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_NO ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KN_AO },
+ { OSM_LCTL ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_NO ,KC_H ,KC_J ,KC_K ,KC_L ,KN_OE ,KN_AE },
+ { OSM_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_DELT ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KN_MINS ,OSM_LSFT },
+ { MO(NAV) ,OSM_LCTL ,OSM_LALT ,KC_LGUI ,MO(SYM) ,KC_BSPC ,KC_ENT ,KC_SPC ,MO(SYM) ,KC_LEAD ,KC_LALT ,KC_LCTRL ,KC_HYP }
+
+ },
+ [NAV] = {
+
+ { KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS },
+ { KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_NO ,KC_HOME ,KC_PGDN ,KC_PGUP ,KC_END ,KC_TRNS ,KC_TRNS },
+ { KC_TRNS ,KC_LSFT ,KC_LCTL ,KC_LALT ,KC_L ,KC_TRNS ,KC_NO ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RIGHT ,KC_TRNS ,KC_TRNS },
+ { KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS },
+ { KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_VOLD ,KC_VOLU }
+
+ },
+ [SYM] = {
+
+ { KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,TD(TD_EQ) ,KC_NO ,TD(TD_FUN) ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS },
+ { KC_TRNS ,KN_LABK ,KN_RABK ,KN_LCBR ,KN_RCBR ,KN_PLUS ,KC_NO ,KN_AT ,KN_DQT ,KN_QUOT ,KN_GRAV ,KN_SLSH ,KC_TRNS },
+ { KC_TRNS ,KN_EXLM ,KN_EQL ,KN_LPRN ,KN_RPRN ,KN_MINS ,KC_NO ,KN_UNDS ,KN_CIRC ,KN_DLR ,KN_AMPR ,KN_PIPE ,KC_TRNS },
+ { KC_TRNS ,KN_EUR ,KN_PERC ,KN_LBRC ,KN_RBRC ,KN_ASTR ,KC_TRNS ,KN_HASH ,KN_SCLN ,KN_COLN ,KN_QUES ,KN_BSLS ,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 }
+
+ }
+};
+
+#define TAP_ONCE(code) \
+ register_code (code); \
+ unregister_code (code)
+
+static void m_tapn (uint8_t code, ...) {
+ uint8_t kc = code;
+ va_list ap;
+
+ va_start(ap, code);
+ do {
+ register_code(kc);
+ unregister_code(kc);
+ wait_ms(50);
+ kc = va_arg(ap, int);
+ } while (kc != 0);
+ va_end(ap);
+}
+
+static void m_handle_kf (keyrecord_t *record, uint8_t id) {
+ uint8_t code = id - KF_1;
+
+ if (record->event.pressed) {
+ kf_timers[code] = timer_read ();
+ } else {
+ uint8_t kc_base;
+ uint8_t long_press = (kf_timers[code] && timer_elapsed (kf_timers[code]) > TAPPING_TERM);
+
+ kf_timers[code] = 0;
+
+ switch(id){
+ case KF_1 ... KF_10:
+ if (long_press) {
+ // Long press
+ kc_base = KC_F1;
+ } else {
+ kc_base = KC_1;
+ }
+ code += kc_base;
+ break;
+ case KF_11:
+ code = long_press ? KC_F11 : KC_ESC;
+ break;
+ case KF_12:
+ code = long_press ? KC_F12 : KN_PLUS;
+ break;
+ }
+ register_code (code);
+ unregister_code (code);
+ }
+}
+
+const uint16_t PROGMEM fn_actions[] = {
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch (id) {
+ case KF_1 ... KF_12:
+ m_handle_kf(record, id);
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Custom keycodes
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ bool queue = true;
+
+ //Cancle one-shot mods.
+ switch (keycode) {
+ case KC_ESC:
+ if (record->event.pressed && get_oneshot_mods() && !has_oneshot_mods_timed_out()) {
+ clear_oneshot_mods();
+ queue = false;
+ }
+ break;
+ }
+ return queue;
+}
+
+// TAP DANCE SETTINGS
+void dance_eq (qk_tap_dance_state_t *state, void *user_data) {
+ switch (state->count) {
+ case 1: // ===
+ register_code(KC_LSHIFT);
+ m_tapn(KC_0, KC_0, KC_0, 0);
+ unregister_code(KC_LSHIFT);
+ break;
+ case 2:
+ register_code(KC_LSHIFT);
+ m_tapn(KC_1, KC_0, KC_0, 0);
+ unregister_code(KC_LSHIFT);
+ break;
+ default:
+ reset_tap_dance(state);
+ }
+}
+
+void dance_fun (qk_tap_dance_state_t *state, void *user_data) {
+ switch (state->count) {
+ case 1: // =>
+ register_code(KC_LSHIFT);
+ m_tapn(KC_0, KN_LABK, 0);
+ unregister_code(KC_LSHIFT);
+ break;
+ case 2: // () => {}
+ register_code(KC_LSHIFT);
+ m_tapn(KC_8, KC_9, KC_SPC, KC_0, KN_LABK, KC_SPC, 0);
+ unregister_code(KC_LSHIFT);
+ register_code(KC_RALT);
+ m_tapn(KC_7, 0);
+ unregister_code(KC_RALT);
+ TAP_ONCE(KC_ENT);
+ break;
+ default:
+ reset_tap_dance(state);
+ }
+}
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_FUN] = ACTION_TAP_DANCE_FN (dance_fun)
+ ,[TD_EQ] = ACTION_TAP_DANCE_FN (dance_eq)
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+ set_unicode_input_mode(UC_WINC);
+};
+
+LEADER_EXTERNS();
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+ LEADER_DICTIONARY() {
+ leading = false;
+ leader_end();
+ SEQ_ONE_KEY(KC_L){
+ register_code(KC_RGUI);
+ TAP_ONCE(KC_L);
+ unregister_code(KC_RGUI);
+ };
+
+
+ SEQ_TWO_KEYS (KC_A, KC_W) {
+ //Web - chrome
+ register_code (KC_LGUI); TAP_ONCE (KC_1); unregister_code (KC_LGUI);
+ }
+ SEQ_TWO_KEYS (KC_A, KC_P) {
+ //sPotify
+ register_code (KC_LGUI); TAP_ONCE (KC_2); unregister_code (KC_LGUI);
+
+ }
+ SEQ_TWO_KEYS (KC_A, KC_T) {
+ //Total Commander
+ register_code (KC_LGUI); TAP_ONCE (KC_3); unregister_code (KC_LGUI);
+
+ }
+ SEQ_TWO_KEYS (KC_A, KC_A) {
+ //Atom
+ register_code (KC_LGUI); TAP_ONCE (KC_4); unregister_code (KC_LGUI);
+
+ }
+ SEQ_TWO_KEYS (KC_A, KC_E) {
+ //Emacs
+ register_code (KC_LGUI); TAP_ONCE (KC_5); unregister_code (KC_LGUI);
+
+ }
+ SEQ_TWO_KEYS (KC_A, KC_C) {
+ //Cmdr
+ register_code (KC_LGUI); TAP_ONCE (KC_6); unregister_code (KC_LGUI);
+
+ }
+ SEQ_TWO_KEYS (KC_A, KC_S) {
+ //Slack
+ register_code (KC_LGUI); TAP_ONCE (KC_7); unregister_code (KC_LGUI);
+ }
+
+ SEQ_TWO_KEYS (KC_U, KC_L) {
+ set_unicode_input_mode(UC_LNX);
+ }
+
+
+ SEQ_TWO_KEYS (KC_U, KC_W) {
+ set_unicode_input_mode(UC_WINC);
+ }
+
+
+ SEQ_TWO_KEYS (KC_S, KC_S) {
+ // ¯\_(ツ)_/¯
+ unicode_input_start(); register_hex(0xaf); unicode_input_finish();
+ register_code (KC_LALT);
+ register_code (KC_LCTL);
+ TAP_ONCE (KN_PLUS);
+ unregister_code (KC_LCTL);
+ unregister_code (KC_LALT);
+
+ register_code (KC_RSFT); TAP_ONCE (KC_8); unregister_code (KC_RSFT);
+ unicode_input_start (); register_hex(0x30c4); unicode_input_finish();
+ register_code (KC_RSFT); TAP_ONCE (KC_9); TAP_ONCE(KC_7); unregister_code (KC_RSFT);
+ unicode_input_start (); register_hex(0xaf); unicode_input_finish();
+ }
+
+ SEQ_TWO_KEYS (KC_S, KC_F) {
+ // 凸(ツ)凸
+ unicode_input_start(); register_hex(0x51F8); unicode_input_finish();
+ register_code (KC_RSFT); TAP_ONCE (KC_8); unregister_code (KC_RSFT);
+ unicode_input_start (); register_hex(0x30c4); unicode_input_finish();
+ register_code (KC_RSFT); TAP_ONCE (KC_9); unregister_code (KC_RSFT);
+ unicode_input_start (); register_hex(0x51F8); unicode_input_finish();
+ }
+
+ SEQ_TWO_KEYS (KC_S, KC_L) {
+ // λ
+ unicode_input_start();
+ register_hex(0x03bb);
+ unicode_input_finish();
+ }
+ };
+};
diff --git a/keyboards/atreus62/keymaps/mneme/unicode b/keyboards/atreus62/keymaps/mneme/unicode
new file mode 100644
index 000000000..b3f62b6d3
--- /dev/null
+++ b/keyboards/atreus62/keymaps/mneme/unicode
@@ -0,0 +1,114 @@
+Todo
+☠2610 Todo
+☑ 2611 Done
+☒ 2612 Failed
+
+Operator
+× 00D7 Multiplication
+÷ 00F7 Division
+≤ 2264 LessEqual
+≥ 2265 MoreEqual
+± 00B1 Plusminus
+
+Math
+∠220F Product
+∑ 2211 Sum
+≈ 2248 Almost
+≡ 2261 Equivalent
+∞ 221E Infinity
+‰ 2030 Mille
+
+Set
+⊂ 2282 Subset
+⊃ 2283 sUperset
+∩ 2229 Intersextion
+∪ 222A Union
+∈ 2208 Element
+∉ 2209 Notelement
+∠220D Contains
+∌ 220C doesNotcontain
+
+Logic
+¬ 00AC Not
+∧ 2227 And
+∨ 2228 Or
+∃ 2203 Exists
+∄ 2204 Notexists
+
+Greek
+µ 00B5 Micro
+λ 03BB Lamda
+Ω 2126 Omega
+α 03B1 Alpha
+β 03B2 Beta
+γ 03B3 Gamma
+Ï€ 03C0 Pi
+δ 03B4 Delta
+
+Other
+☠2601 Cloud
+☼ 263C Sun
+☂ 2602 Rain
+☠ 2620 Skull
+♺ 267A Recycle
+ðŸ‘1F44D thumbsUp
+👎1F44E thumbsDown
+💩 1F4A9 Poo
+
+
+//Todo
+SEQ_THREE_KEYS(KC_U, KC_G, KC_T){m_unicode(0x2610);}; // Todo
+SEQ_THREE_KEYS(KC_U, KC_G, KC_D){m_unicode(0x2611);}; // Done
+SEQ_THREE_KEYS(KC_U, KC_G, KC_F){m_unicode(0x2612);}; // Failed
+
+//Operator
+SEQ_THREE_KEYS(KC_U, KC_O, KC_M){m_unicode(0x00D7);}; // Multiplication
+SEQ_THREE_KEYS(KC_U, KC_O, KC_D){m_unicode(0x00F7);}; // Division
+SEQ_THREE_KEYS(KC_U, KC_O, KC_L){m_unicode(0x2264);}; // LessEqual
+SEQ_THREE_KEYS(KC_U, KC_O, KC_M){m_unicode(0x2265);}; // MoreEqual
+SEQ_THREE_KEYS(KC_U, KC_O, KC_P){m_unicode(0x00B1);}; // Plusminus
+
+//Math
+SEQ_THREE_KEYS(KC_U, KC_M, KC_P){m_unicode(0x220F);}; // Product
+SEQ_THREE_KEYS(KC_U, KC_M, KC_S){m_unicode(0x2211);}; // Sum
+SEQ_THREE_KEYS(KC_U, KC_M, KC_A){m_unicode(0x2248);}; // Almost
+SEQ_THREE_KEYS(KC_U, KC_M, KC_E){m_unicode(0x2261);}; // Equivalent
+SEQ_THREE_KEYS(KC_U, KC_M, KC_I){m_unicode(0x221E);}; // Infinity
+SEQ_THREE_KEYS(KC_U, KC_M, KC_M){m_unicode(0x2030);}; // Mille
+
+//Set
+SEQ_THREE_KEYS(KC_U, KC_S, KC_S){m_unicode(0x2282);}; Subset
+SEQ_THREE_KEYS(KC_U, KC_S, KC_P){m_unicode(0x2283);}; suPerset
+SEQ_THREE_KEYS(KC_U, KC_S, KC_I){m_unicode(0x2229);}; Intersection
+SEQ_THREE_KEYS(KC_U, KC_S, KC_U){m_unicode(0x222A);}; Union
+SEQ_THREE_KEYS(KC_U, KC_S, KC_E){m_unicode(0x2208);}; Element
+SEQ_THREE_KEYS(KC_U, KC_S, KC_N){m_unicode(0x2209);}; Notelement
+SEQ_THREE_KEYS(KC_U, KC_S, KC_C){m_unicode(0x220D);}; Contains
+SEQ_THREE_KEYS(KC_U, KC_S, KC_D){m_unicode(0x220C);}; doesNotcontain
+
+//Logic
+SEQ_THREE_KEYS(KC_U, KC_L, KC_N){m_unicode(0x00AC);}; // Not
+SEQ_THREE_KEYS(KC_U, KC_L, KC_A){m_unicode(0x2227);}; // And
+SEQ_THREE_KEYS(KC_U, KC_L, KC_O){m_unicode(0x2228);}; // Or
+SEQ_THREE_KEYS(KC_U, KC_L, KC_E){m_unicode(0x2203);}; // Exists
+SEQ_THREE_KEYS(KC_U, KC_L, KC_N){m_unicode(0x2204);}; // Notexists
+
+//Greek
+SEQ_THREE_KEYS(KC_U, KC_G, KC_M){m_unicode(0x00B5);}; // Micro
+SEQ_THREE_KEYS(KC_U, KC_G, KC_L){m_unicode(0x03BB);}; // Lamda
+SEQ_THREE_KEYS(KC_U, KC_G, KC_O){m_unicode(0x2126);}; // Omega
+SEQ_THREE_KEYS(KC_U, KC_G, KC_A){m_unicode(0x03B1);}; // Alpha
+SEQ_THREE_KEYS(KC_U, KC_G, KC_B){m_unicode(0x03B2);}; // Beta
+SEQ_THREE_KEYS(KC_U, KC_G, KC_G){m_unicode(0x03B3);}; // Gamma
+SEQ_THREE_KEYS(KC_U, KC_G, KC_P){m_unicode(0x03C0);}; // Pi
+SEQ_THREE_KEYS(KC_U, KC_G, KC_D){m_unicode(0x03B4);}; // Delta
+
+//Zother
+SEQ_THREE_KEYS(KC_U, KC_Z, KC_C){m_unicode(0x2601);}; // Cloud
+SEQ_THREE_KEYS(KC_U, KC_Z, KC_S){m_unicode(0x263C);}; // Sun
+SEQ_THREE_KEYS(KC_U, KC_Z, KC_R){m_unicode(0x2602);}; // Rain
+SEQ_THREE_KEYS(KC_U, KC_Z, KC_K){m_unicode(0x2620);}; // sKull
+SEQ_THREE_KEYS(KC_U, KC_Z, KC_R){m_unicode(0x267A);}; // rEcycle
+SEQ_THREE_KEYS(KC_U, KC_Z, KC_U){m_unicode(0x1F44D);}; // thumbsUp
+SEQ_THREE_KEYS(KC_U, KC_Z, KC_D){m_unicode(0x1F44E);}; // thumbsDown
+SEQ_THREE_KEYS(KC_U, KC_Z, KC_P){m_unicode(0x1F4A9);}; // Poo
diff --git a/keyboards/atreus62/pro_micro.h b/keyboards/atreus62/pro_micro.h
new file mode 100644
index 000000000..f9e7ed75d
--- /dev/null
+++ b/keyboards/atreus62/pro_micro.h
@@ -0,0 +1,362 @@
+/*
+ pins_arduino.h - Pin definition functions for Arduino
+ Part of Arduino - http://www.arduino.cc/
+
+ Copyright (c) 2007 David A. Mellis
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA
+
+ $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $
+*/
+
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+#include <avr/pgmspace.h>
+
+// Workaround for wrong definitions in "iom32u4.h".
+// This should be fixed in the AVR toolchain.
+#undef UHCON
+#undef UHINT
+#undef UHIEN
+#undef UHADDR
+#undef UHFNUM
+#undef UHFNUML
+#undef UHFNUMH
+#undef UHFLEN
+#undef UPINRQX
+#undef UPINTX
+#undef UPNUM
+#undef UPRST
+#undef UPCONX
+#undef UPCFG0X
+#undef UPCFG1X
+#undef UPSTAX
+#undef UPCFG2X
+#undef UPIENX
+#undef UPDATX
+#undef TCCR2A
+#undef WGM20
+#undef WGM21
+#undef COM2B0
+#undef COM2B1
+#undef COM2A0
+#undef COM2A1
+#undef TCCR2B
+#undef CS20
+#undef CS21
+#undef CS22
+#undef WGM22
+#undef FOC2B
+#undef FOC2A
+#undef TCNT2
+#undef TCNT2_0
+#undef TCNT2_1
+#undef TCNT2_2
+#undef TCNT2_3
+#undef TCNT2_4
+#undef TCNT2_5
+#undef TCNT2_6
+#undef TCNT2_7
+#undef OCR2A
+#undef OCR2_0
+#undef OCR2_1
+#undef OCR2_2
+#undef OCR2_3
+#undef OCR2_4
+#undef OCR2_5
+#undef OCR2_6
+#undef OCR2_7
+#undef OCR2B
+#undef OCR2_0
+#undef OCR2_1
+#undef OCR2_2
+#undef OCR2_3
+#undef OCR2_4
+#undef OCR2_5
+#undef OCR2_6
+#undef OCR2_7
+
+#define NUM_DIGITAL_PINS 30
+#define NUM_ANALOG_INPUTS 12
+
+#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0)
+#define TXLED0 PORTD |= (1<<5)
+#define TXLED1 PORTD &= ~(1<<5)
+#define RXLED0 PORTB |= (1<<0)
+#define RXLED1 PORTB &= ~(1<<0)
+
+static const uint8_t SDA = 2;
+static const uint8_t SCL = 3;
+#define LED_BUILTIN 13
+
+// Map SPI port to 'new' pins D14..D17
+static const uint8_t SS = 17;
+static const uint8_t MOSI = 16;
+static const uint8_t MISO = 14;
+static const uint8_t SCK = 15;
+
+// Mapping of analog pins as digital I/O
+// A6-A11 share with digital pins
+static const uint8_t ADC0 = 18;
+static const uint8_t ADC1 = 19;
+static const uint8_t ADC2 = 20;
+static const uint8_t ADC3 = 21;
+static const uint8_t ADC4 = 22;
+static const uint8_t ADC5 = 23;
+static const uint8_t ADC6 = 24; // D4
+static const uint8_t ADC7 = 25; // D6
+static const uint8_t ADC8 = 26; // D8
+static const uint8_t ADC9 = 27; // D9
+static const uint8_t ADC10 = 28; // D10
+static const uint8_t ADC11 = 29; // D12
+
+#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0))
+#define digitalPinToPCICRbit(p) 0
+#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0))
+#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4))))))
+
+// __AVR_ATmega32U4__ has an unusual mapping of pins to channels
+extern const uint8_t PROGMEM analog_pin_to_channel_PGM[];
+#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) )
+
+#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT)))))
+
+#ifdef ARDUINO_MAIN
+
+// On the Arduino board, digital pins are also used
+// for the analog output (software PWM). Analog input
+// pins are a separate set.
+
+// ATMEL ATMEGA32U4 / ARDUINO LEONARDO
+//
+// D0 PD2 RXD1/INT2
+// D1 PD3 TXD1/INT3
+// D2 PD1 SDA SDA/INT1
+// D3# PD0 PWM8/SCL OC0B/SCL/INT0
+// D4 A6 PD4 ADC8
+// D5# PC6 ??? OC3A/#OC4A
+// D6# A7 PD7 FastPWM #OC4D/ADC10
+// D7 PE6 INT6/AIN0
+//
+// D8 A8 PB4 ADC11/PCINT4
+// D9# A9 PB5 PWM16 OC1A/#OC4B/ADC12/PCINT5
+// D10# A10 PB6 PWM16 OC1B/0c4B/ADC13/PCINT6
+// D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7
+// D12 A11 PD6 T1/#OC4D/ADC9
+// D13# PC7 PWM10 CLK0/OC4A
+//
+// A0 D18 PF7 ADC7
+// A1 D19 PF6 ADC6
+// A2 D20 PF5 ADC5
+// A3 D21 PF4 ADC4
+// A4 D22 PF1 ADC1
+// A5 D23 PF0 ADC0
+//
+// New pins D14..D17 to map SPI port to digital pins
+//
+// MISO D14 PB3 MISO,PCINT3
+// SCK D15 PB1 SCK,PCINT1
+// MOSI D16 PB2 MOSI,PCINT2
+// SS D17 PB0 RXLED,SS/PCINT0
+//
+// Connected LEDs on board for TX and RX
+// TXLED D24 PD5 XCK1
+// RXLED D17 PB0
+// HWB PE2 HWB
+
+// these arrays map port names (e.g. port B) to the
+// appropriate addresses for various functions (e.g. reading
+// and writing)
+const uint16_t PROGMEM port_to_mode_PGM[] = {
+ NOT_A_PORT,
+ NOT_A_PORT,
+ (uint16_t) &DDRB,
+ (uint16_t) &DDRC,
+ (uint16_t) &DDRD,
+ (uint16_t) &DDRE,
+ (uint16_t) &DDRF,
+};
+
+const uint16_t PROGMEM port_to_output_PGM[] = {
+ NOT_A_PORT,
+ NOT_A_PORT,
+ (uint16_t) &PORTB,
+ (uint16_t) &PORTC,
+ (uint16_t) &PORTD,
+ (uint16_t) &PORTE,
+ (uint16_t) &PORTF,
+};
+
+const uint16_t PROGMEM port_to_input_PGM[] = {
+ NOT_A_PORT,
+ NOT_A_PORT,
+ (uint16_t) &PINB,
+ (uint16_t) &PINC,
+ (uint16_t) &PIND,
+ (uint16_t) &PINE,
+ (uint16_t) &PINF,
+};
+
+const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
+ PD, // D0 - PD2
+ PD, // D1 - PD3
+ PD, // D2 - PD1
+ PD, // D3 - PD0
+ PD, // D4 - PD4
+ PC, // D5 - PC6
+ PD, // D6 - PD7
+ PE, // D7 - PE6
+
+ PB, // D8 - PB4
+ PB, // D9 - PB5
+ PB, // D10 - PB6
+ PB, // D11 - PB7
+ PD, // D12 - PD6
+ PC, // D13 - PC7
+
+ PB, // D14 - MISO - PB3
+ PB, // D15 - SCK - PB1
+ PB, // D16 - MOSI - PB2
+ PB, // D17 - SS - PB0
+
+ PF, // D18 - A0 - PF7
+ PF, // D19 - A1 - PF6
+ PF, // D20 - A2 - PF5
+ PF, // D21 - A3 - PF4
+ PF, // D22 - A4 - PF1
+ PF, // D23 - A5 - PF0
+
+ PD, // D24 - PD5
+ PD, // D25 / D6 - A7 - PD7
+ PB, // D26 / D8 - A8 - PB4
+ PB, // D27 / D9 - A9 - PB5
+ PB, // D28 / D10 - A10 - PB6
+ PD, // D29 / D12 - A11 - PD6
+};
+
+const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
+ _BV(2), // D0 - PD2
+ _BV(3), // D1 - PD3
+ _BV(1), // D2 - PD1
+ _BV(0), // D3 - PD0
+ _BV(4), // D4 - PD4
+ _BV(6), // D5 - PC6
+ _BV(7), // D6 - PD7
+ _BV(6), // D7 - PE6
+
+ _BV(4), // D8 - PB4
+ _BV(5), // D9 - PB5
+ _BV(6), // D10 - PB6
+ _BV(7), // D11 - PB7
+ _BV(6), // D12 - PD6
+ _BV(7), // D13 - PC7
+
+ _BV(3), // D14 - MISO - PB3
+ _BV(1), // D15 - SCK - PB1
+ _BV(2), // D16 - MOSI - PB2
+ _BV(0), // D17 - SS - PB0
+
+ _BV(7), // D18 - A0 - PF7
+ _BV(6), // D19 - A1 - PF6
+ _BV(5), // D20 - A2 - PF5
+ _BV(4), // D21 - A3 - PF4
+ _BV(1), // D22 - A4 - PF1
+ _BV(0), // D23 - A5 - PF0
+
+ _BV(5), // D24 - PD5
+ _BV(7), // D25 / D6 - A7 - PD7
+ _BV(4), // D26 / D8 - A8 - PB4
+ _BV(5), // D27 / D9 - A9 - PB5
+ _BV(6), // D28 / D10 - A10 - PB6
+ _BV(6), // D29 / D12 - A11 - PD6
+};
+
+const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ TIMER0B, /* 3 */
+ NOT_ON_TIMER,
+ TIMER3A, /* 5 */
+ TIMER4D, /* 6 */
+ NOT_ON_TIMER,
+
+ NOT_ON_TIMER,
+ TIMER1A, /* 9 */
+ TIMER1B, /* 10 */
+ TIMER0A, /* 11 */
+
+ NOT_ON_TIMER,
+ TIMER4A, /* 13 */
+
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+ NOT_ON_TIMER,
+};
+
+const uint8_t PROGMEM analog_pin_to_channel_PGM[] = {
+ 7, // A0 PF7 ADC7
+ 6, // A1 PF6 ADC6
+ 5, // A2 PF5 ADC5
+ 4, // A3 PF4 ADC4
+ 1, // A4 PF1 ADC1
+ 0, // A5 PF0 ADC0
+ 8, // A6 D4 PD4 ADC8
+ 10, // A7 D6 PD7 ADC10
+ 11, // A8 D8 PB4 ADC11
+ 12, // A9 D9 PB5 ADC12
+ 13, // A10 D10 PB6 ADC13
+ 9 // A11 D12 PD6 ADC9
+};
+
+#endif /* ARDUINO_MAIN */
+
+// These serial port names are intended to allow libraries and architecture-neutral
+// sketches to automatically default to the correct port name for a particular type
+// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN,
+// the first hardware serial port whose RX/TX pins are not dedicated to another use.
+//
+// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor
+//
+// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial
+//
+// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library
+//
+// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins.
+//
+// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX
+// pins are NOT connected to anything by default.
+#define SERIAL_PORT_MONITOR Serial
+#define SERIAL_PORT_USBVIRTUAL Serial
+#define SERIAL_PORT_HARDWARE Serial1
+#define SERIAL_PORT_HARDWARE_OPEN Serial1
+
+#endif /* Pins_Arduino_h */
diff --git a/keyboards/atreus62/readme.md b/keyboards/atreus62/readme.md
new file mode 100644
index 000000000..0245b4f9f
--- /dev/null
+++ b/keyboards/atreus62/readme.md
@@ -0,0 +1,10 @@
+atreus62 keyboard firmware
+======================
+
+This firmware is for the atreus62 keyboard.
+
+This version utilizes a Pro Micro for its controller and has a 62 key layout.
+
+https://github.com/profet23/atreus62
+
+TODO: More information \ No newline at end of file
diff --git a/keyboards/atreus62/rules.mk b/keyboards/atreus62/rules.mk
new file mode 100644
index 000000000..f5d0be23a
--- /dev/null
+++ b/keyboards/atreus62/rules.mk
@@ -0,0 +1,66 @@
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+#BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
+#MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= yes # Unicode
+#BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
diff --git a/keyboards/bantam44/Makefile b/keyboards/bantam44/Makefile
index 03893dbf8..4e2a6f00f 100644
--- a/keyboards/bantam44/Makefile
+++ b/keyboards/bantam44/Makefile
@@ -1,72 +1,3 @@
-
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=512
-
-
-# Build Options
-# 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)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
-# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
-# MIDI_ENABLE ?= YES # MIDI controls
-# UNICODE_ENABLE ?= YES # Unicode
-# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
-endif
-
+endif \ No newline at end of file
diff --git a/keyboards/bantam44/readme.md b/keyboards/bantam44/readme.md
index 89d7f9d05..462f67c12 100644
--- a/keyboards/bantam44/readme.md
+++ b/keyboards/bantam44/readme.md
@@ -12,13 +12,14 @@ Download or clone the whole firmware and navigate to the keyboards/Bantam44 fold
Depending on which keymap you would like to use, you will have to compile slightly differently.
### Default
-To build with the default keymap, simply run `make`.
+To build with the default keymap, simply run `make default`.
### Other Keymaps
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` and see keymap document (you can find in top readme.md) and existent keymap files.
-To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
```
-$ make KEYMAP=[default|jack|<name>]
+$ make [default|jack|<name>]
```
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder. \ No newline at end of file
diff --git a/keyboards/bantam44/rules.mk b/keyboards/bantam44/rules.mk
new file mode 100644
index 000000000..baa0e9e7a
--- /dev/null
+++ b/keyboards/bantam44/rules.mk
@@ -0,0 +1,67 @@
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=512
+
+
+# Build Options
+# 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)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
+# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
+# MIDI_ENABLE ?= YES # MIDI controls
+# UNICODE_ENABLE ?= YES # Unicode
+# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/chibios_test/Makefile b/keyboards/chibios_test/Makefile
index d9f2b8b83..4b07a6234 100644
--- a/keyboards/chibios_test/Makefile
+++ b/keyboards/chibios_test/Makefile
@@ -1,14 +1,5 @@
SUBPROJECT_DEFAULT = stm32_f072_onekey
-#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
-MOUSEKEY_ENABLE ?= yes # Mouse keys
-EXTRAKEY_ENABLE ?= yes # Audio control and System control
-CONSOLE_ENABLE ?= yes # Console for debug
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
-NKRO_ENABLE ?= yes # USB Nkey Rollover
-CUSTOM_MATRIX ?= yes # Custom matrix file
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
endif \ No newline at end of file
diff --git a/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.c b/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.c
index 31319ef57..2809c9d18 100644
--- a/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.c
+++ b/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.c
@@ -1,49 +1,49 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#include "hal.h"
-
-/**
- * @brief PAL setup.
- * @details Digital I/O ports static configuration as defined in @p board.h.
- * This variable is used by the HAL when initializing the PAL driver.
- */
-#if HAL_USE_PAL || defined(__DOXYGEN__)
-const PALConfig pal_default_config =
-{
- {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH},
- {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH},
- {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH},
- {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH},
- {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH},
-};
-#endif
-
-/*
- * Early initialization code.
- * This initialization must be performed just after stack setup and before
- * any other initialization.
- */
-void __early_init(void) {
-
- stm32_clock_init();
-}
-
-/*
- * Board-specific initialization code.
- */
-void boardInit(void) {
-}
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#include "hal.h"
+
+/**
+ * @brief PAL setup.
+ * @details Digital I/O ports static configuration as defined in @p board.h.
+ * This variable is used by the HAL when initializing the PAL driver.
+ */
+#if HAL_USE_PAL || defined(__DOXYGEN__)
+const PALConfig pal_default_config =
+{
+ {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH},
+ {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH},
+ {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH},
+ {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH},
+ {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH},
+};
+#endif
+
+/*
+ * Early initialization code.
+ * This initialization must be performed just after stack setup and before
+ * any other initialization.
+ */
+void __early_init(void) {
+
+ stm32_clock_init();
+}
+
+/*
+ * Board-specific initialization code.
+ */
+void boardInit(void) {
+}
diff --git a/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.h b/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.h
index 7253e7782..b31d74307 100644
--- a/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.h
+++ b/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.h
@@ -1,166 +1,166 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-/*
- * Setup for a Generic STM32F103 board.
- */
-
-/*
- * Board identifier.
- */
-#define BOARD_GENERIC_STM32_F103
-#define BOARD_NAME "Generic STM32F103x board"
-
-/*
- * Board frequencies.
- */
-#define STM32_LSECLK 32768
-#define STM32_HSECLK 8000000
-
-/*
- * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h.
- */
-#define STM32F103xB
-
-/*
- * IO pins assignments
- */
-
-/* on-board */
-
-#define GPIOC_LED 13
-#define GPIOD_OSC_IN 0
-#define GPIOD_OSC_OUT 1
-
-/* In case your board has a "USB enable" hardware
- controlled by a pin, define it here. (It could be just
- a 1.5k resistor connected to D+ line.)
-*/
-/*
-#define GPIOB_USB_DISC 10
-*/
-
-/*
- * I/O ports initial setup, this configuration is established soon after reset
- * in the initialization code.
- *
- * The digits have the following meaning:
- * 0 - Analog input.
- * 1 - Push Pull output 10MHz.
- * 2 - Push Pull output 2MHz.
- * 3 - Push Pull output 50MHz.
- * 4 - Digital input.
- * 5 - Open Drain output 10MHz.
- * 6 - Open Drain output 2MHz.
- * 7 - Open Drain output 50MHz.
- * 8 - Digital input with PullUp or PullDown resistor depending on ODR.
- * 9 - Alternate Push Pull output 10MHz.
- * A - Alternate Push Pull output 2MHz.
- * B - Alternate Push Pull output 50MHz.
- * C - Reserved.
- * D - Alternate Open Drain output 10MHz.
- * E - Alternate Open Drain output 2MHz.
- * F - Alternate Open Drain output 50MHz.
- * Please refer to the STM32 Reference Manual for details.
- */
-
-/*
- * Port A setup.
- * Everything input with pull-up except:
- * PA2 - Alternate output (USART2 TX).
- * PA3 - Normal input (USART2 RX).
- * PA9 - Alternate output (USART1 TX).
- * PA10 - Normal input (USART1 RX).
- */
-#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */
-#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */
-#define VAL_GPIOAODR 0xFFFFFFFF
-
-/*
- * Port B setup.
- * Everything input with pull-up except:
- * PB10 - Push Pull output (USB switch).
- */
-#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */
-#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */
-#define VAL_GPIOBODR 0xFFFFFFFF
-
-/*
- * Port C setup.
- * Everything input with pull-up except:
- * PC13 - Push Pull output (LED).
- */
-#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */
-#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */
-#define VAL_GPIOCODR 0xFFFFFFFF
-
-/*
- * Port D setup.
- * Everything input with pull-up except:
- * PD0 - Normal input (XTAL).
- * PD1 - Normal input (XTAL).
- */
-#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */
-#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */
-#define VAL_GPIODODR 0xFFFFFFFF
-
-/*
- * Port E setup.
- * Everything input with pull-up except:
- */
-#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */
-#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */
-#define VAL_GPIOEODR 0xFFFFFFFF
-
-/*
- * USB bus activation macro, required by the USB driver.
- */
-/* The point is that most of the generic STM32F103* boards
- have a 1.5k resistor connected on one end to the D+ line
- and on the other end to some pin. Or even a slightly more
- complicated "USB enable" circuit, controlled by a pin.
- That should go here.
-
- However on some boards (e.g. one that I have), there's no
- such hardware. In which case it's better to not do anything.
-*/
-/*
-#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT);
-
-/*
- * USB bus de-activation macro, required by the USB driver.
- */
-/*
-#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12);
-
-#if !defined(_FROM_ASM_)
-#ifdef __cplusplus
-extern "C" {
-#endif
- void boardInit(void);
-#ifdef __cplusplus
-}
-#endif
-#endif /* _FROM_ASM_ */
-
-#endif /* _BOARD_H_ */
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _BOARD_H_
+#define _BOARD_H_
+
+/*
+ * Setup for a Generic STM32F103 board.
+ */
+
+/*
+ * Board identifier.
+ */
+#define BOARD_GENERIC_STM32_F103
+#define BOARD_NAME "Generic STM32F103x board"
+
+/*
+ * Board frequencies.
+ */
+#define STM32_LSECLK 32768
+#define STM32_HSECLK 8000000
+
+/*
+ * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h.
+ */
+#define STM32F103xB
+
+/*
+ * IO pins assignments
+ */
+
+/* on-board */
+
+#define GPIOC_LED 13
+#define GPIOD_OSC_IN 0
+#define GPIOD_OSC_OUT 1
+
+/* In case your board has a "USB enable" hardware
+ controlled by a pin, define it here. (It could be just
+ a 1.5k resistor connected to D+ line.)
+*/
+/*
+#define GPIOB_USB_DISC 10
+*/
+
+/*
+ * I/O ports initial setup, this configuration is established soon after reset
+ * in the initialization code.
+ *
+ * The digits have the following meaning:
+ * 0 - Analog input.
+ * 1 - Push Pull output 10MHz.
+ * 2 - Push Pull output 2MHz.
+ * 3 - Push Pull output 50MHz.
+ * 4 - Digital input.
+ * 5 - Open Drain output 10MHz.
+ * 6 - Open Drain output 2MHz.
+ * 7 - Open Drain output 50MHz.
+ * 8 - Digital input with PullUp or PullDown resistor depending on ODR.
+ * 9 - Alternate Push Pull output 10MHz.
+ * A - Alternate Push Pull output 2MHz.
+ * B - Alternate Push Pull output 50MHz.
+ * C - Reserved.
+ * D - Alternate Open Drain output 10MHz.
+ * E - Alternate Open Drain output 2MHz.
+ * F - Alternate Open Drain output 50MHz.
+ * Please refer to the STM32 Reference Manual for details.
+ */
+
+/*
+ * Port A setup.
+ * Everything input with pull-up except:
+ * PA2 - Alternate output (USART2 TX).
+ * PA3 - Normal input (USART2 RX).
+ * PA9 - Alternate output (USART1 TX).
+ * PA10 - Normal input (USART1 RX).
+ */
+#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */
+#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */
+#define VAL_GPIOAODR 0xFFFFFFFF
+
+/*
+ * Port B setup.
+ * Everything input with pull-up except:
+ * PB10 - Push Pull output (USB switch).
+ */
+#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */
+#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */
+#define VAL_GPIOBODR 0xFFFFFFFF
+
+/*
+ * Port C setup.
+ * Everything input with pull-up except:
+ * PC13 - Push Pull output (LED).
+ */
+#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */
+#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */
+#define VAL_GPIOCODR 0xFFFFFFFF
+
+/*
+ * Port D setup.
+ * Everything input with pull-up except:
+ * PD0 - Normal input (XTAL).
+ * PD1 - Normal input (XTAL).
+ */
+#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */
+#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */
+#define VAL_GPIODODR 0xFFFFFFFF
+
+/*
+ * Port E setup.
+ * Everything input with pull-up except:
+ */
+#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */
+#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */
+#define VAL_GPIOEODR 0xFFFFFFFF
+
+/*
+ * USB bus activation macro, required by the USB driver.
+ */
+/* The point is that most of the generic STM32F103* boards
+ have a 1.5k resistor connected on one end to the D+ line
+ and on the other end to some pin. Or even a slightly more
+ complicated "USB enable" circuit, controlled by a pin.
+ That should go here.
+
+ However on some boards (e.g. one that I have), there's no
+ such hardware. In which case it's better to not do anything.
+*/
+/*
+#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC)
+*/
+#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT);
+
+/*
+ * USB bus de-activation macro, required by the USB driver.
+ */
+/*
+#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC)
+*/
+#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12);
+
+#if !defined(_FROM_ASM_)
+#ifdef __cplusplus
+extern "C" {
+#endif
+ void boardInit(void);
+#ifdef __cplusplus
+}
+#endif
+#endif /* _FROM_ASM_ */
+
+#endif /* _BOARD_H_ */
diff --git a/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.mk b/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.mk
index d692c0ee4..48e0e51fe 100644
--- a/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.mk
+++ b/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.mk
@@ -1,5 +1,5 @@
-# List of all the board related files.
-BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103/board.c
-
-# Required include directories
-BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103
+# List of all the board related files.
+BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103/board.c
+
+# Required include directories
+BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103
diff --git a/keyboards/chibios_test/ld/MKL26Z64.ld b/keyboards/chibios_test/ld/MKL26Z64.ld
index fb141f888..c4ca8b874 100644
--- a/keyboards/chibios_test/ld/MKL26Z64.ld
+++ b/keyboards/chibios_test/ld/MKL26Z64.ld
@@ -1,105 +1,105 @@
-/*
- * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com
- * (C) 2016 flabbergast <s3+flabbergast@sdfeu.org>
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-/*
- * KL26Z64 memory setup.
- */
-MEMORY
-{
- flash0 : org = 0x00000000, len = 0x100
- flash1 : org = 0x00000400, len = 0x10
- flash2 : org = 0x00000410, len = 62k - 0x410
- flash3 : org = 0x0000F800, len = 2k
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x1FFFF800, len = 8k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* Flash region for the configuration bytes.*/
-SECTIONS
-{
- .cfmprotect : ALIGN(4) SUBALIGN(4)
- {
- KEEP(*(.cfmconfig))
- } > flash1
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash2);
-REGION_ALIAS("XTORS_FLASH_LMA", flash2);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash2);
-REGION_ALIAS("TEXT_FLASH_LMA", flash2);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash2);
-REGION_ALIAS("RODATA_FLASH_LMA", flash2);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash2);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash2);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash2);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-__eeprom_workarea_start__ = ORIGIN(flash3);
-__eeprom_workarea_size__ = LENGTH(flash3);
-__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__;
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
+/*
+ * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com
+ * (C) 2016 flabbergast <s3+flabbergast@sdfeu.org>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/*
+ * KL26Z64 memory setup.
+ */
+MEMORY
+{
+ flash0 : org = 0x00000000, len = 0x100
+ flash1 : org = 0x00000400, len = 0x10
+ flash2 : org = 0x00000410, len = 62k - 0x410
+ flash3 : org = 0x0000F800, len = 2k
+ flash4 : org = 0x00000000, len = 0
+ flash5 : org = 0x00000000, len = 0
+ flash6 : org = 0x00000000, len = 0
+ flash7 : org = 0x00000000, len = 0
+ ram0 : org = 0x1FFFF800, len = 8k
+ ram1 : org = 0x00000000, len = 0
+ ram2 : org = 0x00000000, len = 0
+ ram3 : org = 0x00000000, len = 0
+ ram4 : org = 0x00000000, len = 0
+ ram5 : org = 0x00000000, len = 0
+ ram6 : org = 0x00000000, len = 0
+ ram7 : org = 0x00000000, len = 0
+}
+
+/* Flash region for the configuration bytes.*/
+SECTIONS
+{
+ .cfmprotect : ALIGN(4) SUBALIGN(4)
+ {
+ KEEP(*(.cfmconfig))
+ } > flash1
+}
+
+/* For each data/text section two region are defined, a virtual region
+ and a load region (_LMA suffix).*/
+
+/* Flash region to be used for exception vectors.*/
+REGION_ALIAS("VECTORS_FLASH", flash0);
+REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
+
+/* Flash region to be used for constructors and destructors.*/
+REGION_ALIAS("XTORS_FLASH", flash2);
+REGION_ALIAS("XTORS_FLASH_LMA", flash2);
+
+/* Flash region to be used for code text.*/
+REGION_ALIAS("TEXT_FLASH", flash2);
+REGION_ALIAS("TEXT_FLASH_LMA", flash2);
+
+/* Flash region to be used for read only data.*/
+REGION_ALIAS("RODATA_FLASH", flash2);
+REGION_ALIAS("RODATA_FLASH_LMA", flash2);
+
+/* Flash region to be used for various.*/
+REGION_ALIAS("VARIOUS_FLASH", flash2);
+REGION_ALIAS("VARIOUS_FLASH_LMA", flash2);
+
+/* Flash region to be used for RAM(n) initialization data.*/
+REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2);
+
+/* RAM region to be used for Main stack. This stack accommodates the processing
+ of all exceptions and interrupts.*/
+REGION_ALIAS("MAIN_STACK_RAM", ram0);
+
+/* RAM region to be used for the process stack. This is the stack used by
+ the main() function.*/
+REGION_ALIAS("PROCESS_STACK_RAM", ram0);
+
+/* RAM region to be used for data segment.*/
+REGION_ALIAS("DATA_RAM", ram0);
+REGION_ALIAS("DATA_RAM_LMA", flash2);
+
+/* RAM region to be used for BSS segment.*/
+REGION_ALIAS("BSS_RAM", ram0);
+
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
+__eeprom_workarea_start__ = ORIGIN(flash3);
+__eeprom_workarea_size__ = LENGTH(flash3);
+__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__;
+
+/* Generic rules inclusion.*/
+INCLUDE rules.ld
diff --git a/keyboards/chibios_test/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/chibios_test/ld/STM32F103x8_stm32duino_bootloader.ld
index 00613328e..f9bfe9c00 100644
--- a/keyboards/chibios_test/ld/STM32F103x8_stm32duino_bootloader.ld
+++ b/keyboards/chibios_test/ld/STM32F103x8_stm32duino_bootloader.ld
@@ -1,88 +1,88 @@
-/*
- ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * ST32F103xB memory setup for use with the maplemini bootloader.
- * You will have to
- * #define CORTEX_VTOR_INIT 0x5000
- * in your projects chconf.h
- */
-MEMORY
-{
- flash0 : org = 0x08002000, len = 128k - 0x2000
- flash1 : org = 0x00000000, len = 0
- flash2 : org = 0x00000000, len = 0
- flash3 : org = 0x00000000, len = 0
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x20000000, len = 20k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash0);
-REGION_ALIAS("XTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash0);
-REGION_ALIAS("TEXT_FLASH_LMA", flash0);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash0);
-REGION_ALIAS("RODATA_FLASH_LMA", flash0);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash0);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash0);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
+/*
+ ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/*
+ * ST32F103xB memory setup for use with the maplemini bootloader.
+ * You will have to
+ * #define CORTEX_VTOR_INIT 0x5000
+ * in your projects chconf.h
+ */
+MEMORY
+{
+ flash0 : org = 0x08002000, len = 128k - 0x2000
+ flash1 : org = 0x00000000, len = 0
+ flash2 : org = 0x00000000, len = 0
+ flash3 : org = 0x00000000, len = 0
+ flash4 : org = 0x00000000, len = 0
+ flash5 : org = 0x00000000, len = 0
+ flash6 : org = 0x00000000, len = 0
+ flash7 : org = 0x00000000, len = 0
+ ram0 : org = 0x20000000, len = 20k
+ ram1 : org = 0x00000000, len = 0
+ ram2 : org = 0x00000000, len = 0
+ ram3 : org = 0x00000000, len = 0
+ ram4 : org = 0x00000000, len = 0
+ ram5 : org = 0x00000000, len = 0
+ ram6 : org = 0x00000000, len = 0
+ ram7 : org = 0x00000000, len = 0
+}
+
+/* For each data/text section two region are defined, a virtual region
+ and a load region (_LMA suffix).*/
+
+/* Flash region to be used for exception vectors.*/
+REGION_ALIAS("VECTORS_FLASH", flash0);
+REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
+
+/* Flash region to be used for constructors and destructors.*/
+REGION_ALIAS("XTORS_FLASH", flash0);
+REGION_ALIAS("XTORS_FLASH_LMA", flash0);
+
+/* Flash region to be used for code text.*/
+REGION_ALIAS("TEXT_FLASH", flash0);
+REGION_ALIAS("TEXT_FLASH_LMA", flash0);
+
+/* Flash region to be used for read only data.*/
+REGION_ALIAS("RODATA_FLASH", flash0);
+REGION_ALIAS("RODATA_FLASH_LMA", flash0);
+
+/* Flash region to be used for various.*/
+REGION_ALIAS("VARIOUS_FLASH", flash0);
+REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
+
+/* Flash region to be used for RAM(n) initialization data.*/
+REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
+
+/* RAM region to be used for Main stack. This stack accommodates the processing
+ of all exceptions and interrupts.*/
+REGION_ALIAS("MAIN_STACK_RAM", ram0);
+
+/* RAM region to be used for the process stack. This is the stack used by
+ the main() function.*/
+REGION_ALIAS("PROCESS_STACK_RAM", ram0);
+
+/* RAM region to be used for data segment.*/
+REGION_ALIAS("DATA_RAM", ram0);
+REGION_ALIAS("DATA_RAM_LMA", flash0);
+
+/* RAM region to be used for BSS segment.*/
+REGION_ALIAS("BSS_RAM", ram0);
+
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
+/* Generic rules inclusion.*/
+INCLUDE rules.ld
diff --git a/keyboards/chibios_test/rules.mk b/keyboards/chibios_test/rules.mk
new file mode 100644
index 000000000..4b5a84535
--- /dev/null
+++ b/keyboards/chibios_test/rules.mk
@@ -0,0 +1,8 @@
+#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= yes # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= yes # Console for debug
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
+NKRO_ENABLE ?= yes # USB Nkey Rollover
+CUSTOM_MATRIX ?= yes # Custom matrix file \ No newline at end of file
diff --git a/keyboards/chibios_test/stm32_f072_onekey/Makefile b/keyboards/chibios_test/stm32_f072_onekey/Makefile
index eae38c4b2..191c6bb66 100644
--- a/keyboards/chibios_test/stm32_f072_onekey/Makefile
+++ b/keyboards/chibios_test/stm32_f072_onekey/Makefile
@@ -1,41 +1,3 @@
-# project specific files
-SRC = matrix.c \
- led.c
-
-## chip/board settings
-# the next two should match the directories in
-# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
-MCU_FAMILY = STM32
-MCU_SERIES = STM32F0xx
-# linker script to use
-# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
-# or <this_dir>/ld/
-MCU_LDSCRIPT = STM32F072xB
-# startup code to use
-# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
-MCU_STARTUP = stm32f0xx
-# it should exist either in <chibios>/os/hal/boards/
-# or <this_dir>/boards
-BOARD = ST_STM32F072B_DISCOVERY
-# Cortex version
-# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
-MCU = cortex-m0
-# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
-ARMV = 6
-# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
-# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
-# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
-# a custom board definition that you plan to reuse).
-# If you're not setting it here, leave it commented out.
-# It is chip dependent, the correct number can be looked up here (page 175):
-# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
-# This also requires a patch to chibios:
-# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
-#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
-
-# Build Options
-# comment out to disable the options.
-#
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../../Makefile
-endif
+endif \ No newline at end of file
diff --git a/keyboards/chibios_test/stm32_f072_onekey/mcuconf.h b/keyboards/chibios_test/stm32_f072_onekey/mcuconf.h
index 3d877aaa2..faca3defd 100644
--- a/keyboards/chibios_test/stm32_f072_onekey/mcuconf.h
+++ b/keyboards/chibios_test/stm32_f072_onekey/mcuconf.h
@@ -1,171 +1,171 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#ifndef _MCUCONF_H_
-#define _MCUCONF_H_
-
-/*
- * STM32F0xx drivers configuration.
- * The following settings override the default settings present in
- * the various device driver implementation headers.
- * Note that the settings for each driver only have effect if the whole
- * driver is enabled in halconf.h.
- *
- * IRQ priorities:
- * 3...0 Lowest...Highest.
- *
- * DMA priorities:
- * 0...3 Lowest...Highest.
- */
-
-#define STM32F0xx_MCUCONF
-
-/*
- * HAL driver system settings.
- */
-#define STM32_NO_INIT FALSE
-#define STM32_PVD_ENABLE FALSE
-#define STM32_PLS STM32_PLS_LEV0
-#define STM32_HSI_ENABLED TRUE
-#define STM32_HSI14_ENABLED TRUE
-#define STM32_HSI48_ENABLED FALSE
-#define STM32_LSI_ENABLED TRUE
-#define STM32_HSE_ENABLED FALSE
-#define STM32_LSE_ENABLED FALSE
-#define STM32_SW STM32_SW_PLL
-#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2
-#define STM32_PREDIV_VALUE 1
-#define STM32_PLLMUL_VALUE 12
-#define STM32_HPRE STM32_HPRE_DIV1
-#define STM32_PPRE STM32_PPRE_DIV1
-#define STM32_ADCSW STM32_ADCSW_HSI14
-#define STM32_ADCPRE STM32_ADCPRE_DIV4
-#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
-#define STM32_ADCPRE STM32_ADCPRE_DIV4
-#define STM32_ADCSW STM32_ADCSW_HSI14
-#define STM32_USBSW STM32_USBSW_HSI48
-#define STM32_CECSW STM32_CECSW_HSI
-#define STM32_I2C1SW STM32_I2C1SW_HSI
-#define STM32_USART1SW STM32_USART1SW_PCLK
-#define STM32_RTCSEL STM32_RTCSEL_LSI
-
-/*
- * ADC driver system settings.
- */
-#define STM32_ADC_USE_ADC1 FALSE
-#define STM32_ADC_ADC1_DMA_PRIORITY 2
-#define STM32_ADC_IRQ_PRIORITY 2
-#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2
-
-/*
- * EXT driver system settings.
- */
-#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3
-#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3
-#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3
-#define STM32_EXT_EXTI16_IRQ_PRIORITY 3
-#define STM32_EXT_EXTI17_IRQ_PRIORITY 3
-
-/*
- * GPT driver system settings.
- */
-#define STM32_GPT_USE_TIM1 FALSE
-#define STM32_GPT_USE_TIM2 FALSE
-#define STM32_GPT_USE_TIM3 FALSE
-#define STM32_GPT_USE_TIM14 FALSE
-#define STM32_GPT_TIM1_IRQ_PRIORITY 2
-#define STM32_GPT_TIM2_IRQ_PRIORITY 2
-#define STM32_GPT_TIM3_IRQ_PRIORITY 2
-#define STM32_GPT_TIM14_IRQ_PRIORITY 2
-
-/*
- * I2C driver system settings.
- */
-#define STM32_I2C_USE_I2C1 FALSE
-#define STM32_I2C_USE_I2C2 FALSE
-#define STM32_I2C_BUSY_TIMEOUT 50
-#define STM32_I2C_I2C1_IRQ_PRIORITY 3
-#define STM32_I2C_I2C2_IRQ_PRIORITY 3
-#define STM32_I2C_USE_DMA TRUE
-#define STM32_I2C_I2C1_DMA_PRIORITY 1
-#define STM32_I2C_I2C2_DMA_PRIORITY 1
-#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
-
-/*
- * ICU driver system settings.
- */
-#define STM32_ICU_USE_TIM1 FALSE
-#define STM32_ICU_USE_TIM2 FALSE
-#define STM32_ICU_USE_TIM3 FALSE
-#define STM32_ICU_TIM1_IRQ_PRIORITY 3
-#define STM32_ICU_TIM2_IRQ_PRIORITY 3
-#define STM32_ICU_TIM3_IRQ_PRIORITY 3
-
-/*
- * PWM driver system settings.
- */
-#define STM32_PWM_USE_ADVANCED FALSE
-#define STM32_PWM_USE_TIM1 FALSE
-#define STM32_PWM_USE_TIM2 FALSE
-#define STM32_PWM_USE_TIM3 FALSE
-#define STM32_PWM_TIM1_IRQ_PRIORITY 3
-#define STM32_PWM_TIM2_IRQ_PRIORITY 3
-#define STM32_PWM_TIM3_IRQ_PRIORITY 3
-
-/*
- * SERIAL driver system settings.
- */
-#define STM32_SERIAL_USE_USART1 FALSE
-#define STM32_SERIAL_USE_USART2 FALSE
-#define STM32_SERIAL_USART1_PRIORITY 3
-#define STM32_SERIAL_USART2_PRIORITY 3
-
-/*
- * SPI driver system settings.
- */
-#define STM32_SPI_USE_SPI1 FALSE
-#define STM32_SPI_USE_SPI2 FALSE
-#define STM32_SPI_SPI1_DMA_PRIORITY 1
-#define STM32_SPI_SPI2_DMA_PRIORITY 1
-#define STM32_SPI_SPI1_IRQ_PRIORITY 2
-#define STM32_SPI_SPI2_IRQ_PRIORITY 2
-#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
-
-/*
- * ST driver system settings.
- */
-#define STM32_ST_IRQ_PRIORITY 2
-#define STM32_ST_USE_TIMER 2
-
-/*
- * UART driver system settings.
- */
-#define STM32_UART_USE_USART1 FALSE
-#define STM32_UART_USE_USART2 FALSE
-#define STM32_UART_USART1_IRQ_PRIORITY 3
-#define STM32_UART_USART2_IRQ_PRIORITY 3
-#define STM32_UART_USART1_DMA_PRIORITY 0
-#define STM32_UART_USART2_DMA_PRIORITY 0
-#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
-
-/*
- * USB driver system settings.
- */
-#define STM32_USB_USE_USB1 TRUE
-#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
-#define STM32_USB_USB1_LP_IRQ_PRIORITY 3
-
-#endif /* _MCUCONF_H_ */
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _MCUCONF_H_
+#define _MCUCONF_H_
+
+/*
+ * STM32F0xx drivers configuration.
+ * The following settings override the default settings present in
+ * the various device driver implementation headers.
+ * Note that the settings for each driver only have effect if the whole
+ * driver is enabled in halconf.h.
+ *
+ * IRQ priorities:
+ * 3...0 Lowest...Highest.
+ *
+ * DMA priorities:
+ * 0...3 Lowest...Highest.
+ */
+
+#define STM32F0xx_MCUCONF
+
+/*
+ * HAL driver system settings.
+ */
+#define STM32_NO_INIT FALSE
+#define STM32_PVD_ENABLE FALSE
+#define STM32_PLS STM32_PLS_LEV0
+#define STM32_HSI_ENABLED TRUE
+#define STM32_HSI14_ENABLED TRUE
+#define STM32_HSI48_ENABLED FALSE
+#define STM32_LSI_ENABLED TRUE
+#define STM32_HSE_ENABLED FALSE
+#define STM32_LSE_ENABLED FALSE
+#define STM32_SW STM32_SW_PLL
+#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2
+#define STM32_PREDIV_VALUE 1
+#define STM32_PLLMUL_VALUE 12
+#define STM32_HPRE STM32_HPRE_DIV1
+#define STM32_PPRE STM32_PPRE_DIV1
+#define STM32_ADCSW STM32_ADCSW_HSI14
+#define STM32_ADCPRE STM32_ADCPRE_DIV4
+#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
+#define STM32_ADCPRE STM32_ADCPRE_DIV4
+#define STM32_ADCSW STM32_ADCSW_HSI14
+#define STM32_USBSW STM32_USBSW_HSI48
+#define STM32_CECSW STM32_CECSW_HSI
+#define STM32_I2C1SW STM32_I2C1SW_HSI
+#define STM32_USART1SW STM32_USART1SW_PCLK
+#define STM32_RTCSEL STM32_RTCSEL_LSI
+
+/*
+ * ADC driver system settings.
+ */
+#define STM32_ADC_USE_ADC1 FALSE
+#define STM32_ADC_ADC1_DMA_PRIORITY 2
+#define STM32_ADC_IRQ_PRIORITY 2
+#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2
+
+/*
+ * EXT driver system settings.
+ */
+#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3
+#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3
+#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3
+#define STM32_EXT_EXTI16_IRQ_PRIORITY 3
+#define STM32_EXT_EXTI17_IRQ_PRIORITY 3
+
+/*
+ * GPT driver system settings.
+ */
+#define STM32_GPT_USE_TIM1 FALSE
+#define STM32_GPT_USE_TIM2 FALSE
+#define STM32_GPT_USE_TIM3 FALSE
+#define STM32_GPT_USE_TIM14 FALSE
+#define STM32_GPT_TIM1_IRQ_PRIORITY 2
+#define STM32_GPT_TIM2_IRQ_PRIORITY 2
+#define STM32_GPT_TIM3_IRQ_PRIORITY 2
+#define STM32_GPT_TIM14_IRQ_PRIORITY 2
+
+/*
+ * I2C driver system settings.
+ */
+#define STM32_I2C_USE_I2C1 FALSE
+#define STM32_I2C_USE_I2C2 FALSE
+#define STM32_I2C_BUSY_TIMEOUT 50
+#define STM32_I2C_I2C1_IRQ_PRIORITY 3
+#define STM32_I2C_I2C2_IRQ_PRIORITY 3
+#define STM32_I2C_USE_DMA TRUE
+#define STM32_I2C_I2C1_DMA_PRIORITY 1
+#define STM32_I2C_I2C2_DMA_PRIORITY 1
+#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
+
+/*
+ * ICU driver system settings.
+ */
+#define STM32_ICU_USE_TIM1 FALSE
+#define STM32_ICU_USE_TIM2 FALSE
+#define STM32_ICU_USE_TIM3 FALSE
+#define STM32_ICU_TIM1_IRQ_PRIORITY 3
+#define STM32_ICU_TIM2_IRQ_PRIORITY 3
+#define STM32_ICU_TIM3_IRQ_PRIORITY 3
+
+/*
+ * PWM driver system settings.
+ */
+#define STM32_PWM_USE_ADVANCED FALSE
+#define STM32_PWM_USE_TIM1 FALSE
+#define STM32_PWM_USE_TIM2 FALSE
+#define STM32_PWM_USE_TIM3 FALSE
+#define STM32_PWM_TIM1_IRQ_PRIORITY 3
+#define STM32_PWM_TIM2_IRQ_PRIORITY 3
+#define STM32_PWM_TIM3_IRQ_PRIORITY 3
+
+/*
+ * SERIAL driver system settings.
+ */
+#define STM32_SERIAL_USE_USART1 FALSE
+#define STM32_SERIAL_USE_USART2 FALSE
+#define STM32_SERIAL_USART1_PRIORITY 3
+#define STM32_SERIAL_USART2_PRIORITY 3
+
+/*
+ * SPI driver system settings.
+ */
+#define STM32_SPI_USE_SPI1 FALSE
+#define STM32_SPI_USE_SPI2 FALSE
+#define STM32_SPI_SPI1_DMA_PRIORITY 1
+#define STM32_SPI_SPI2_DMA_PRIORITY 1
+#define STM32_SPI_SPI1_IRQ_PRIORITY 2
+#define STM32_SPI_SPI2_IRQ_PRIORITY 2
+#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
+
+/*
+ * ST driver system settings.
+ */
+#define STM32_ST_IRQ_PRIORITY 2
+#define STM32_ST_USE_TIMER 2
+
+/*
+ * UART driver system settings.
+ */
+#define STM32_UART_USE_USART1 FALSE
+#define STM32_UART_USE_USART2 FALSE
+#define STM32_UART_USART1_IRQ_PRIORITY 3
+#define STM32_UART_USART2_IRQ_PRIORITY 3
+#define STM32_UART_USART1_DMA_PRIORITY 0
+#define STM32_UART_USART2_DMA_PRIORITY 0
+#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
+
+/*
+ * USB driver system settings.
+ */
+#define STM32_USB_USE_USB1 TRUE
+#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
+#define STM32_USB_USB1_LP_IRQ_PRIORITY 3
+
+#endif /* _MCUCONF_H_ */
diff --git a/keyboards/chibios_test/stm32_f072_onekey/rules.mk b/keyboards/chibios_test/stm32_f072_onekey/rules.mk
new file mode 100644
index 000000000..eae38c4b2
--- /dev/null
+++ b/keyboards/chibios_test/stm32_f072_onekey/rules.mk
@@ -0,0 +1,41 @@
+# project specific files
+SRC = matrix.c \
+ led.c
+
+## chip/board settings
+# the next two should match the directories in
+# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
+MCU_FAMILY = STM32
+MCU_SERIES = STM32F0xx
+# linker script to use
+# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
+# or <this_dir>/ld/
+MCU_LDSCRIPT = STM32F072xB
+# startup code to use
+# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
+MCU_STARTUP = stm32f0xx
+# it should exist either in <chibios>/os/hal/boards/
+# or <this_dir>/boards
+BOARD = ST_STM32F072B_DISCOVERY
+# Cortex version
+# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
+MCU = cortex-m0
+# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
+ARMV = 6
+# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
+# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
+# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
+# a custom board definition that you plan to reuse).
+# If you're not setting it here, leave it commented out.
+# It is chip dependent, the correct number can be looked up here (page 175):
+# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
+# This also requires a patch to chibios:
+# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
+#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
+
+# Build Options
+# comment out to disable the options.
+#
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif
diff --git a/keyboards/chibios_test/stm32_f103_onekey/Makefile b/keyboards/chibios_test/stm32_f103_onekey/Makefile
index 307ca5b19..191c6bb66 100644
--- a/keyboards/chibios_test/stm32_f103_onekey/Makefile
+++ b/keyboards/chibios_test/stm32_f103_onekey/Makefile
@@ -1,52 +1,3 @@
-# project specific files
-SRC = matrix.c \
- led.c
-
-# GENERIC STM32F103C8T6 board - stm32duino bootloader
-OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
-MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
-BOARD = GENERIC_STM32_F103
-
-# GENERIC STM32F103C8T6 board - no bootloader (programmer over serial or SWD)
-# OPT_DEFS =
-# MCU_LDSCRIPT = STM32F103x8
-# BOARD = GENERIC_STM32_F103
-
-# MAPLE MINI
-# OPT_DEFS = -DCORTEX_VTOR_INIT=0x5000
-# MCU_LDSCRIPT = STM32F103xB_maplemini_bootloader
-# BOARD = MAPLEMINI_STM32_F103
-
-## chip/board settings
-# the next two should match the directories in
-# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
-MCU_FAMILY = STM32
-MCU_SERIES = STM32F1xx
-# linker script to use
-# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
-# or <this_dir>/ld/
-# startup code to use
-# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
-MCU_STARTUP = stm32f1xx
-# it should exist either in <chibios>/os/hal/boards/
-# or <this_dir>/boards
-# Cortex version
-# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
-MCU = cortex-m3
-# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
-ARMV = 7
-# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
-# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
-# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
-# a custom board definition that you plan to reuse).
-# If you're not setting it here, leave it commented out.
-# It is chip dependent, the correct number can be looked up here (page 175):
-# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
-# This also requires a patch to chibios:
-# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
-#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
-
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../../Makefile
-endif
+endif \ No newline at end of file
diff --git a/keyboards/chibios_test/stm32_f103_onekey/mcuconf.h b/keyboards/chibios_test/stm32_f103_onekey/mcuconf.h
index 626332a6a..276829216 100644
--- a/keyboards/chibios_test/stm32_f103_onekey/mcuconf.h
+++ b/keyboards/chibios_test/stm32_f103_onekey/mcuconf.h
@@ -1,209 +1,209 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#ifndef _MCUCONF_H_
-#define _MCUCONF_H_
-
-#define STM32F103_MCUCONF
-
-/*
- * STM32F103 drivers configuration.
- * The following settings override the default settings present in
- * the various device driver implementation headers.
- * Note that the settings for each driver only have effect if the whole
- * driver is enabled in halconf.h.
- *
- * IRQ priorities:
- * 15...0 Lowest...Highest.
- *
- * DMA priorities:
- * 0...3 Lowest...Highest.
- */
-
-/*
- * HAL driver system settings.
- */
-#define STM32_NO_INIT FALSE
-#define STM32_HSI_ENABLED TRUE
-#define STM32_LSI_ENABLED FALSE
-#define STM32_HSE_ENABLED TRUE
-#define STM32_LSE_ENABLED FALSE
-#define STM32_SW STM32_SW_PLL
-#define STM32_PLLSRC STM32_PLLSRC_HSE
-#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1
-#define STM32_PLLMUL_VALUE 9
-#define STM32_HPRE STM32_HPRE_DIV1
-#define STM32_PPRE1 STM32_PPRE1_DIV2
-#define STM32_PPRE2 STM32_PPRE2_DIV2
-#define STM32_ADCPRE STM32_ADCPRE_DIV4
-#define STM32_USB_CLOCK_REQUIRED TRUE
-#define STM32_USBPRE STM32_USBPRE_DIV1P5
-#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
-#define STM32_RTCSEL STM32_RTCSEL_HSEDIV
-#define STM32_PVD_ENABLE FALSE
-#define STM32_PLS STM32_PLS_LEV0
-
-/*
- * ADC driver system settings.
- */
-#define STM32_ADC_USE_ADC1 FALSE
-#define STM32_ADC_ADC1_DMA_PRIORITY 2
-#define STM32_ADC_ADC1_IRQ_PRIORITY 6
-
-/*
- * CAN driver system settings.
- */
-#define STM32_CAN_USE_CAN1 FALSE
-#define STM32_CAN_CAN1_IRQ_PRIORITY 11
-
-/*
- * EXT driver system settings.
- */
-#define STM32_EXT_EXTI0_IRQ_PRIORITY 6
-#define STM32_EXT_EXTI1_IRQ_PRIORITY 6
-#define STM32_EXT_EXTI2_IRQ_PRIORITY 6
-#define STM32_EXT_EXTI3_IRQ_PRIORITY 6
-#define STM32_EXT_EXTI4_IRQ_PRIORITY 6
-#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6
-#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6
-#define STM32_EXT_EXTI16_IRQ_PRIORITY 6
-#define STM32_EXT_EXTI17_IRQ_PRIORITY 6
-#define STM32_EXT_EXTI18_IRQ_PRIORITY 6
-#define STM32_EXT_EXTI19_IRQ_PRIORITY 6
-
-/*
- * GPT driver system settings.
- */
-#define STM32_GPT_USE_TIM1 FALSE
-#define STM32_GPT_USE_TIM2 FALSE
-#define STM32_GPT_USE_TIM3 FALSE
-#define STM32_GPT_USE_TIM4 FALSE
-#define STM32_GPT_USE_TIM5 FALSE
-#define STM32_GPT_USE_TIM8 FALSE
-#define STM32_GPT_TIM1_IRQ_PRIORITY 7
-#define STM32_GPT_TIM2_IRQ_PRIORITY 7
-#define STM32_GPT_TIM3_IRQ_PRIORITY 7
-#define STM32_GPT_TIM4_IRQ_PRIORITY 7
-#define STM32_GPT_TIM5_IRQ_PRIORITY 7
-#define STM32_GPT_TIM8_IRQ_PRIORITY 7
-
-/*
- * I2C driver system settings.
- */
-#define STM32_I2C_USE_I2C1 FALSE
-#define STM32_I2C_USE_I2C2 FALSE
-#define STM32_I2C_BUSY_TIMEOUT 50
-#define STM32_I2C_I2C1_IRQ_PRIORITY 5
-#define STM32_I2C_I2C2_IRQ_PRIORITY 5
-#define STM32_I2C_I2C1_DMA_PRIORITY 3
-#define STM32_I2C_I2C2_DMA_PRIORITY 3
-#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
-
-/*
- * ICU driver system settings.
- */
-#define STM32_ICU_USE_TIM1 FALSE
-#define STM32_ICU_USE_TIM2 FALSE
-#define STM32_ICU_USE_TIM3 FALSE
-#define STM32_ICU_USE_TIM4 FALSE
-#define STM32_ICU_USE_TIM5 FALSE
-#define STM32_ICU_USE_TIM8 FALSE
-#define STM32_ICU_TIM1_IRQ_PRIORITY 7
-#define STM32_ICU_TIM2_IRQ_PRIORITY 7
-#define STM32_ICU_TIM3_IRQ_PRIORITY 7
-#define STM32_ICU_TIM4_IRQ_PRIORITY 7
-#define STM32_ICU_TIM5_IRQ_PRIORITY 7
-#define STM32_ICU_TIM8_IRQ_PRIORITY 7
-
-/*
- * PWM driver system settings.
- */
-#define STM32_PWM_USE_ADVANCED FALSE
-#define STM32_PWM_USE_TIM1 FALSE
-#define STM32_PWM_USE_TIM2 FALSE
-#define STM32_PWM_USE_TIM3 FALSE
-#define STM32_PWM_USE_TIM4 FALSE
-#define STM32_PWM_USE_TIM5 FALSE
-#define STM32_PWM_USE_TIM8 FALSE
-#define STM32_PWM_TIM1_IRQ_PRIORITY 7
-#define STM32_PWM_TIM2_IRQ_PRIORITY 7
-#define STM32_PWM_TIM3_IRQ_PRIORITY 7
-#define STM32_PWM_TIM4_IRQ_PRIORITY 7
-#define STM32_PWM_TIM5_IRQ_PRIORITY 7
-#define STM32_PWM_TIM8_IRQ_PRIORITY 7
-
-/*
- * RTC driver system settings.
- */
-#define STM32_RTC_IRQ_PRIORITY 15
-
-/*
- * SERIAL driver system settings.
- */
-#define STM32_SERIAL_USE_USART1 FALSE
-#define STM32_SERIAL_USE_USART2 FALSE
-#define STM32_SERIAL_USE_USART3 FALSE
-#define STM32_SERIAL_USE_UART4 FALSE
-#define STM32_SERIAL_USE_UART5 FALSE
-#define STM32_SERIAL_USART1_PRIORITY 12
-#define STM32_SERIAL_USART2_PRIORITY 12
-#define STM32_SERIAL_USART3_PRIORITY 12
-#define STM32_SERIAL_UART4_PRIORITY 12
-#define STM32_SERIAL_UART5_PRIORITY 12
-
-/*
- * SPI driver system settings.
- */
-#define STM32_SPI_USE_SPI1 FALSE
-#define STM32_SPI_USE_SPI2 FALSE
-#define STM32_SPI_USE_SPI3 FALSE
-#define STM32_SPI_SPI1_DMA_PRIORITY 1
-#define STM32_SPI_SPI2_DMA_PRIORITY 1
-#define STM32_SPI_SPI3_DMA_PRIORITY 1
-#define STM32_SPI_SPI1_IRQ_PRIORITY 10
-#define STM32_SPI_SPI2_IRQ_PRIORITY 10
-#define STM32_SPI_SPI3_IRQ_PRIORITY 10
-#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
-
-/*
- * ST driver system settings.
- */
-#define STM32_ST_IRQ_PRIORITY 8
-#define STM32_ST_USE_TIMER 2
-
-/*
- * UART driver system settings.
- */
-#define STM32_UART_USE_USART1 FALSE
-#define STM32_UART_USE_USART2 FALSE
-#define STM32_UART_USE_USART3 FALSE
-#define STM32_UART_USART1_IRQ_PRIORITY 12
-#define STM32_UART_USART2_IRQ_PRIORITY 12
-#define STM32_UART_USART3_IRQ_PRIORITY 12
-#define STM32_UART_USART1_DMA_PRIORITY 0
-#define STM32_UART_USART2_DMA_PRIORITY 0
-#define STM32_UART_USART3_DMA_PRIORITY 0
-#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
-
-/*
- * USB driver system settings.
- */
-#define STM32_USB_USE_USB1 TRUE
-#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
-#define STM32_USB_USB1_HP_IRQ_PRIORITY 13
-#define STM32_USB_USB1_LP_IRQ_PRIORITY 14
-
-#endif /* _MCUCONF_H_ */
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _MCUCONF_H_
+#define _MCUCONF_H_
+
+#define STM32F103_MCUCONF
+
+/*
+ * STM32F103 drivers configuration.
+ * The following settings override the default settings present in
+ * the various device driver implementation headers.
+ * Note that the settings for each driver only have effect if the whole
+ * driver is enabled in halconf.h.
+ *
+ * IRQ priorities:
+ * 15...0 Lowest...Highest.
+ *
+ * DMA priorities:
+ * 0...3 Lowest...Highest.
+ */
+
+/*
+ * HAL driver system settings.
+ */
+#define STM32_NO_INIT FALSE
+#define STM32_HSI_ENABLED TRUE
+#define STM32_LSI_ENABLED FALSE
+#define STM32_HSE_ENABLED TRUE
+#define STM32_LSE_ENABLED FALSE
+#define STM32_SW STM32_SW_PLL
+#define STM32_PLLSRC STM32_PLLSRC_HSE
+#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1
+#define STM32_PLLMUL_VALUE 9
+#define STM32_HPRE STM32_HPRE_DIV1
+#define STM32_PPRE1 STM32_PPRE1_DIV2
+#define STM32_PPRE2 STM32_PPRE2_DIV2
+#define STM32_ADCPRE STM32_ADCPRE_DIV4
+#define STM32_USB_CLOCK_REQUIRED TRUE
+#define STM32_USBPRE STM32_USBPRE_DIV1P5
+#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
+#define STM32_RTCSEL STM32_RTCSEL_HSEDIV
+#define STM32_PVD_ENABLE FALSE
+#define STM32_PLS STM32_PLS_LEV0
+
+/*
+ * ADC driver system settings.
+ */
+#define STM32_ADC_USE_ADC1 FALSE
+#define STM32_ADC_ADC1_DMA_PRIORITY 2
+#define STM32_ADC_ADC1_IRQ_PRIORITY 6
+
+/*
+ * CAN driver system settings.
+ */
+#define STM32_CAN_USE_CAN1 FALSE
+#define STM32_CAN_CAN1_IRQ_PRIORITY 11
+
+/*
+ * EXT driver system settings.
+ */
+#define STM32_EXT_EXTI0_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI1_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI2_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI3_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI4_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI16_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI17_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI18_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI19_IRQ_PRIORITY 6
+
+/*
+ * GPT driver system settings.
+ */
+#define STM32_GPT_USE_TIM1 FALSE
+#define STM32_GPT_USE_TIM2 FALSE
+#define STM32_GPT_USE_TIM3 FALSE
+#define STM32_GPT_USE_TIM4 FALSE
+#define STM32_GPT_USE_TIM5 FALSE
+#define STM32_GPT_USE_TIM8 FALSE
+#define STM32_GPT_TIM1_IRQ_PRIORITY 7
+#define STM32_GPT_TIM2_IRQ_PRIORITY 7
+#define STM32_GPT_TIM3_IRQ_PRIORITY 7
+#define STM32_GPT_TIM4_IRQ_PRIORITY 7
+#define STM32_GPT_TIM5_IRQ_PRIORITY 7
+#define STM32_GPT_TIM8_IRQ_PRIORITY 7
+
+/*
+ * I2C driver system settings.
+ */
+#define STM32_I2C_USE_I2C1 FALSE
+#define STM32_I2C_USE_I2C2 FALSE
+#define STM32_I2C_BUSY_TIMEOUT 50
+#define STM32_I2C_I2C1_IRQ_PRIORITY 5
+#define STM32_I2C_I2C2_IRQ_PRIORITY 5
+#define STM32_I2C_I2C1_DMA_PRIORITY 3
+#define STM32_I2C_I2C2_DMA_PRIORITY 3
+#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
+
+/*
+ * ICU driver system settings.
+ */
+#define STM32_ICU_USE_TIM1 FALSE
+#define STM32_ICU_USE_TIM2 FALSE
+#define STM32_ICU_USE_TIM3 FALSE
+#define STM32_ICU_USE_TIM4 FALSE
+#define STM32_ICU_USE_TIM5 FALSE
+#define STM32_ICU_USE_TIM8 FALSE
+#define STM32_ICU_TIM1_IRQ_PRIORITY 7
+#define STM32_ICU_TIM2_IRQ_PRIORITY 7
+#define STM32_ICU_TIM3_IRQ_PRIORITY 7
+#define STM32_ICU_TIM4_IRQ_PRIORITY 7
+#define STM32_ICU_TIM5_IRQ_PRIORITY 7
+#define STM32_ICU_TIM8_IRQ_PRIORITY 7
+
+/*
+ * PWM driver system settings.
+ */
+#define STM32_PWM_USE_ADVANCED FALSE
+#define STM32_PWM_USE_TIM1 FALSE
+#define STM32_PWM_USE_TIM2 FALSE
+#define STM32_PWM_USE_TIM3 FALSE
+#define STM32_PWM_USE_TIM4 FALSE
+#define STM32_PWM_USE_TIM5 FALSE
+#define STM32_PWM_USE_TIM8 FALSE
+#define STM32_PWM_TIM1_IRQ_PRIORITY 7
+#define STM32_PWM_TIM2_IRQ_PRIORITY 7
+#define STM32_PWM_TIM3_IRQ_PRIORITY 7
+#define STM32_PWM_TIM4_IRQ_PRIORITY 7
+#define STM32_PWM_TIM5_IRQ_PRIORITY 7
+#define STM32_PWM_TIM8_IRQ_PRIORITY 7
+
+/*
+ * RTC driver system settings.
+ */
+#define STM32_RTC_IRQ_PRIORITY 15
+
+/*
+ * SERIAL driver system settings.
+ */
+#define STM32_SERIAL_USE_USART1 FALSE
+#define STM32_SERIAL_USE_USART2 FALSE
+#define STM32_SERIAL_USE_USART3 FALSE
+#define STM32_SERIAL_USE_UART4 FALSE
+#define STM32_SERIAL_USE_UART5 FALSE
+#define STM32_SERIAL_USART1_PRIORITY 12
+#define STM32_SERIAL_USART2_PRIORITY 12
+#define STM32_SERIAL_USART3_PRIORITY 12
+#define STM32_SERIAL_UART4_PRIORITY 12
+#define STM32_SERIAL_UART5_PRIORITY 12
+
+/*
+ * SPI driver system settings.
+ */
+#define STM32_SPI_USE_SPI1 FALSE
+#define STM32_SPI_USE_SPI2 FALSE
+#define STM32_SPI_USE_SPI3 FALSE
+#define STM32_SPI_SPI1_DMA_PRIORITY 1
+#define STM32_SPI_SPI2_DMA_PRIORITY 1
+#define STM32_SPI_SPI3_DMA_PRIORITY 1
+#define STM32_SPI_SPI1_IRQ_PRIORITY 10
+#define STM32_SPI_SPI2_IRQ_PRIORITY 10
+#define STM32_SPI_SPI3_IRQ_PRIORITY 10
+#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
+
+/*
+ * ST driver system settings.
+ */
+#define STM32_ST_IRQ_PRIORITY 8
+#define STM32_ST_USE_TIMER 2
+
+/*
+ * UART driver system settings.
+ */
+#define STM32_UART_USE_USART1 FALSE
+#define STM32_UART_USE_USART2 FALSE
+#define STM32_UART_USE_USART3 FALSE
+#define STM32_UART_USART1_IRQ_PRIORITY 12
+#define STM32_UART_USART2_IRQ_PRIORITY 12
+#define STM32_UART_USART3_IRQ_PRIORITY 12
+#define STM32_UART_USART1_DMA_PRIORITY 0
+#define STM32_UART_USART2_DMA_PRIORITY 0
+#define STM32_UART_USART3_DMA_PRIORITY 0
+#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
+
+/*
+ * USB driver system settings.
+ */
+#define STM32_USB_USE_USB1 TRUE
+#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
+#define STM32_USB_USB1_HP_IRQ_PRIORITY 13
+#define STM32_USB_USB1_LP_IRQ_PRIORITY 14
+
+#endif /* _MCUCONF_H_ */
diff --git a/keyboards/chibios_test/stm32_f103_onekey/rules.mk b/keyboards/chibios_test/stm32_f103_onekey/rules.mk
new file mode 100644
index 000000000..307ca5b19
--- /dev/null
+++ b/keyboards/chibios_test/stm32_f103_onekey/rules.mk
@@ -0,0 +1,52 @@
+# project specific files
+SRC = matrix.c \
+ led.c
+
+# GENERIC STM32F103C8T6 board - stm32duino bootloader
+OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
+MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
+BOARD = GENERIC_STM32_F103
+
+# GENERIC STM32F103C8T6 board - no bootloader (programmer over serial or SWD)
+# OPT_DEFS =
+# MCU_LDSCRIPT = STM32F103x8
+# BOARD = GENERIC_STM32_F103
+
+# MAPLE MINI
+# OPT_DEFS = -DCORTEX_VTOR_INIT=0x5000
+# MCU_LDSCRIPT = STM32F103xB_maplemini_bootloader
+# BOARD = MAPLEMINI_STM32_F103
+
+## chip/board settings
+# the next two should match the directories in
+# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
+MCU_FAMILY = STM32
+MCU_SERIES = STM32F1xx
+# linker script to use
+# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
+# or <this_dir>/ld/
+# startup code to use
+# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
+MCU_STARTUP = stm32f1xx
+# it should exist either in <chibios>/os/hal/boards/
+# or <this_dir>/boards
+# Cortex version
+# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
+MCU = cortex-m3
+# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
+ARMV = 7
+# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
+# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
+# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
+# a custom board definition that you plan to reuse).
+# If you're not setting it here, leave it commented out.
+# It is chip dependent, the correct number can be looked up here (page 175):
+# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
+# This also requires a patch to chibios:
+# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
+#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
+
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif
diff --git a/keyboards/chibios_test/teensy_lc_onekey/Makefile b/keyboards/chibios_test/teensy_lc_onekey/Makefile
index 43ea9d82d..191c6bb66 100644
--- a/keyboards/chibios_test/teensy_lc_onekey/Makefile
+++ b/keyboards/chibios_test/teensy_lc_onekey/Makefile
@@ -1,49 +1,3 @@
-# project specific files
-SRC = matrix.c \
- led.c
-
-## chip/board settings
-# - the next two should match the directories in
-# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
-# - For Teensies, FAMILY = KINETIS and SERIES is either
-# KL2x (LC) or K20x (3.0,3.1,3.2).
-MCU_FAMILY = KINETIS
-MCU_SERIES = KL2x
-
-# Linker script to use
-# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
-# or <this_dir>/ld/
-# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
-# - LDSCRIPT =
-# - MKL26Z64 for Teensy LC
-# - MK20DX128 for Teensy 3.0
-# - MK20DX256 for Teensy 3.1 and 3.2
-MCU_LDSCRIPT = MKL26Z64
-
-# Startup code to use
-# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
-# - STARTUP =
-# - kl2x for Teensy LC
-# - k20x5 for Teensy 3.0
-# - k20x7 for Teensy 3.1 and 3.2
-MCU_STARTUP = kl2x
-
-# Board: it should exist either in <chibios>/os/hal/boards/
-# or <this_dir>/boards
-# - BOARD =
-# - PJRC_TEENSY_LC for Teensy LC
-# - PJRC_TEENSY_3 for Teensy 3.0
-# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2
-BOARD = PJRC_TEENSY_LC
-
-# Cortex version
-# Teensy LC is cortex-m0plus; Teensy 3.x are cortex-m4
-MCU = cortex-m0plus
-
-# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
-# I.e. 6 for Teensy LC; 7 for Teensy 3.x
-ARMV = 6
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../../Makefile
endif \ No newline at end of file
diff --git a/keyboards/chibios_test/teensy_lc_onekey/chconf.h b/keyboards/chibios_test/teensy_lc_onekey/chconf.h
index cb36996c3..3294ac7ee 100644
--- a/keyboards/chibios_test/teensy_lc_onekey/chconf.h
+++ b/keyboards/chibios_test/teensy_lc_onekey/chconf.h
@@ -1,524 +1,524 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/**
- * @file templates/chconf.h
- * @brief Configuration file template.
- * @details A copy of this file must be placed in each project directory, it
- * contains the application specific kernel settings.
- *
- * @addtogroup config
- * @details Kernel related settings and hooks.
- * @{
- */
-
-#ifndef CHCONF_H
-#define CHCONF_H
-
-#define _CHIBIOS_RT_CONF_
-
-/*===========================================================================*/
-/**
- * @name System timers settings
- * @{
- */
-/*===========================================================================*/
-
-/**
- * @brief System time counter resolution.
- * @note Allowed values are 16 or 32 bits.
- */
-#define CH_CFG_ST_RESOLUTION 32
-
-/**
- * @brief System tick frequency.
- * @details Frequency of the system timer that drives the system ticks. This
- * setting also defines the system tick time unit.
- */
-#define CH_CFG_ST_FREQUENCY 1000
-
-/**
- * @brief Time delta constant for the tick-less mode.
- * @note If this value is zero then the system uses the classic
- * periodic tick. This value represents the minimum number
- * of ticks that is safe to specify in a timeout directive.
- * The value one is not valid, timeouts are rounded up to
- * this value.
- */
-#define CH_CFG_ST_TIMEDELTA 0
-
-/** @} */
-
-/*===========================================================================*/
-/**
- * @name Kernel parameters and options
- * @{
- */
-/*===========================================================================*/
-
-/**
- * @brief Round robin interval.
- * @details This constant is the number of system ticks allowed for the
- * threads before preemption occurs. Setting this value to zero
- * disables the preemption for threads with equal priority and the
- * round robin becomes cooperative. Note that higher priority
- * threads can still preempt, the kernel is always preemptive.
- * @note Disabling the round robin preemption makes the kernel more compact
- * and generally faster.
- * @note The round robin preemption is not supported in tickless mode and
- * must be set to zero in that case.
- */
-#define CH_CFG_TIME_QUANTUM 20
-
-/**
- * @brief Managed RAM size.
- * @details Size of the RAM area to be managed by the OS. If set to zero
- * then the whole available RAM is used. The core memory is made
- * available to the heap allocator and/or can be used directly through
- * the simplified core memory allocator.
- *
- * @note In order to let the OS manage the whole RAM the linker script must
- * provide the @p __heap_base__ and @p __heap_end__ symbols.
- * @note Requires @p CH_CFG_USE_MEMCORE.
- */
-#define CH_CFG_MEMCORE_SIZE 0
-
-/**
- * @brief Idle thread automatic spawn suppression.
- * @details When this option is activated the function @p chSysInit()
- * does not spawn the idle thread. The application @p main()
- * function becomes the idle thread and must implement an
- * infinite loop.
- */
-#define CH_CFG_NO_IDLE_THREAD FALSE
-
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
-/** @} */
-
-/*===========================================================================*/
-/**
- * @name Performance options
- * @{
- */
-/*===========================================================================*/
-
-/**
- * @brief OS optimization.
- * @details If enabled then time efficient rather than space efficient code
- * is used when two possible implementations exist.
- *
- * @note This is not related to the compiler optimization options.
- * @note The default is @p TRUE.
- */
-#define CH_CFG_OPTIMIZE_SPEED TRUE
-
-/** @} */
-
-/*===========================================================================*/
-/**
- * @name Subsystem options
- * @{
- */
-/*===========================================================================*/
-
-/**
- * @brief Time Measurement APIs.
- * @details If enabled then the time measurement APIs are included in
- * the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_TM FALSE
-
-/**
- * @brief Threads registry APIs.
- * @details If enabled then the registry APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_REGISTRY TRUE
-
-/**
- * @brief Threads synchronization APIs.
- * @details If enabled then the @p chThdWait() function is included in
- * the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_WAITEXIT TRUE
-
-/**
- * @brief Semaphores APIs.
- * @details If enabled then the Semaphores APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_SEMAPHORES TRUE
-
-/**
- * @brief Semaphores queuing mode.
- * @details If enabled then the threads are enqueued on semaphores by
- * priority rather than in FIFO order.
- *
- * @note The default is @p FALSE. Enable this if you have special
- * requirements.
- * @note Requires @p CH_CFG_USE_SEMAPHORES.
- */
-#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
-
-/**
- * @brief Mutexes APIs.
- * @details If enabled then the mutexes APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_MUTEXES TRUE
-
-/**
- * @brief Enables recursive behavior on mutexes.
- * @note Recursive mutexes are heavier and have an increased
- * memory footprint.
- *
- * @note The default is @p FALSE.
- * @note Requires @p CH_CFG_USE_MUTEXES.
- */
-#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
-
-/**
- * @brief Conditional Variables APIs.
- * @details If enabled then the conditional variables APIs are included
- * in the kernel.
- *
- * @note The default is @p TRUE.
- * @note Requires @p CH_CFG_USE_MUTEXES.
- */
-#define CH_CFG_USE_CONDVARS TRUE
-
-/**
- * @brief Conditional Variables APIs with timeout.
- * @details If enabled then the conditional variables APIs with timeout
- * specification are included in the kernel.
- *
- * @note The default is @p TRUE.
- * @note Requires @p CH_CFG_USE_CONDVARS.
- */
-#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
-
-/**
- * @brief Events Flags APIs.
- * @details If enabled then the event flags APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_EVENTS TRUE
-
-/**
- * @brief Events Flags APIs with timeout.
- * @details If enabled then the events APIs with timeout specification
- * are included in the kernel.
- *
- * @note The default is @p TRUE.
- * @note Requires @p CH_CFG_USE_EVENTS.
- */
-#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
-
-/**
- * @brief Synchronous Messages APIs.
- * @details If enabled then the synchronous messages APIs are included
- * in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_MESSAGES TRUE
-
-/**
- * @brief Synchronous Messages queuing mode.
- * @details If enabled then messages are served by priority rather than in
- * FIFO order.
- *
- * @note The default is @p FALSE. Enable this if you have special
- * requirements.
- * @note Requires @p CH_CFG_USE_MESSAGES.
- */
-#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
-
-/**
- * @brief Mailboxes APIs.
- * @details If enabled then the asynchronous messages (mailboxes) APIs are
- * included in the kernel.
- *
- * @note The default is @p TRUE.
- * @note Requires @p CH_CFG_USE_SEMAPHORES.
- */
-#define CH_CFG_USE_MAILBOXES TRUE
-
-/**
- * @brief Core Memory Manager APIs.
- * @details If enabled then the core memory manager APIs are included
- * in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_MEMCORE TRUE
-
-/**
- * @brief Heap Allocator APIs.
- * @details If enabled then the memory heap allocator APIs are included
- * in the kernel.
- *
- * @note The default is @p TRUE.
- * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
- * @p CH_CFG_USE_SEMAPHORES.
- * @note Mutexes are recommended.
- */
-#define CH_CFG_USE_HEAP TRUE
-
-/**
- * @brief Memory Pools Allocator APIs.
- * @details If enabled then the memory pools allocator APIs are included
- * in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_MEMPOOLS TRUE
-
-/**
- * @brief Dynamic Threads APIs.
- * @details If enabled then the dynamic threads creation APIs are included
- * in the kernel.
- *
- * @note The default is @p TRUE.
- * @note Requires @p CH_CFG_USE_WAITEXIT.
- * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
- */
-#define CH_CFG_USE_DYNAMIC TRUE
-
-/** @} */
-
-/*===========================================================================*/
-/**
- * @name Debug options
- * @{
- */
-/*===========================================================================*/
-
-/**
- * @brief Debug option, kernel statistics.
- *
- * @note The default is @p FALSE.
- */
-#define CH_DBG_STATISTICS FALSE
-
-/**
- * @brief Debug option, system state check.
- * @details If enabled the correct call protocol for system APIs is checked
- * at runtime.
- *
- * @note The default is @p FALSE.
- */
-#define CH_DBG_SYSTEM_STATE_CHECK TRUE
-
-/**
- * @brief Debug option, parameters checks.
- * @details If enabled then the checks on the API functions input
- * parameters are activated.
- *
- * @note The default is @p FALSE.
- */
-#define CH_DBG_ENABLE_CHECKS TRUE
-
-/**
- * @brief Debug option, consistency checks.
- * @details If enabled then all the assertions in the kernel code are
- * activated. This includes consistency checks inside the kernel,
- * runtime anomalies and port-defined checks.
- *
- * @note The default is @p FALSE.
- */
-#define CH_DBG_ENABLE_ASSERTS TRUE
-
-/**
- * @brief Debug option, trace buffer.
- * @details If enabled then the trace buffer is activated.
- *
- * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
- */
-#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
-
-/**
- * @brief Trace buffer entries.
- * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
- * different from @p CH_DBG_TRACE_MASK_DISABLED.
- */
-#define CH_DBG_TRACE_BUFFER_SIZE 128
-
-/**
- * @brief Debug option, stack checks.
- * @details If enabled then a runtime stack check is performed.
- *
- * @note The default is @p FALSE.
- * @note The stack check is performed in a architecture/port dependent way.
- * It may not be implemented or some ports.
- * @note The default failure mode is to halt the system with the global
- * @p panic_msg variable set to @p NULL.
- */
-#define CH_DBG_ENABLE_STACK_CHECK TRUE
-
-/**
- * @brief Debug option, stacks initialization.
- * @details If enabled then the threads working area is filled with a byte
- * value when a thread is created. This can be useful for the
- * runtime measurement of the used stack.
- *
- * @note The default is @p FALSE.
- */
-#define CH_DBG_FILL_THREADS TRUE
-
-/**
- * @brief Debug option, threads profiling.
- * @details If enabled then a field is added to the @p thread_t structure that
- * counts the system ticks occurred while executing the thread.
- *
- * @note The default is @p FALSE.
- * @note This debug option is not currently compatible with the
- * tickless mode.
- */
-#define CH_DBG_THREADS_PROFILING FALSE
-
-/** @} */
-
-/*===========================================================================*/
-/**
- * @name Kernel hooks
- * @{
- */
-/*===========================================================================*/
-
-/**
- * @brief Threads descriptor structure extension.
- * @details User fields added to the end of the @p thread_t structure.
- */
-#define CH_CFG_THREAD_EXTRA_FIELDS \
- /* Add threads custom fields here.*/
-
-/**
- * @brief Threads initialization hook.
- * @details User initialization code added to the @p chThdInit() API.
- *
- * @note It is invoked from within @p chThdInit() and implicitly from all
- * the threads creation APIs.
- */
-#define CH_CFG_THREAD_INIT_HOOK(tp) { \
- /* Add threads initialization code here.*/ \
-}
-
-/**
- * @brief Threads finalization hook.
- * @details User finalization code added to the @p chThdExit() API.
- */
-#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
- /* Add threads finalization code here.*/ \
-}
-
-/**
- * @brief Context switch hook.
- * @details This hook is invoked just before switching between threads.
- */
-#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
- /* Context switch code here.*/ \
-}
-
-/**
- * @brief ISR enter hook.
- */
-#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
- /* IRQ prologue code here.*/ \
-}
-
-/**
- * @brief ISR exit hook.
- */
-#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
- /* IRQ epilogue code here.*/ \
-}
-
-/**
- * @brief Idle thread enter hook.
- * @note This hook is invoked within a critical zone, no OS functions
- * should be invoked from here.
- * @note This macro can be used to activate a power saving mode.
- */
-#define CH_CFG_IDLE_ENTER_HOOK() { \
- /* Idle-enter code here.*/ \
-}
-
-/**
- * @brief Idle thread leave hook.
- * @note This hook is invoked within a critical zone, no OS functions
- * should be invoked from here.
- * @note This macro can be used to deactivate a power saving mode.
- */
-#define CH_CFG_IDLE_LEAVE_HOOK() { \
- /* Idle-leave code here.*/ \
-}
-
-/**
- * @brief Idle Loop hook.
- * @details This hook is continuously invoked by the idle thread loop.
- */
-#define CH_CFG_IDLE_LOOP_HOOK() { \
- /* Idle loop code here.*/ \
-}
-
-/**
- * @brief System tick event hook.
- * @details This hook is invoked in the system tick handler immediately
- * after processing the virtual timers queue.
- */
-#define CH_CFG_SYSTEM_TICK_HOOK() { \
- /* System tick event code here.*/ \
-}
-
-/**
- * @brief System halt hook.
- * @details This hook is invoked in case to a system halting error before
- * the system is halted.
- */
-#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
- /* System halt code here.*/ \
-}
-
-/**
- * @brief Trace hook.
- * @details This hook is invoked each time a new record is written in the
- * trace buffer.
- */
-#define CH_CFG_TRACE_HOOK(tep) { \
- /* Trace code here.*/ \
-}
-
-/** @} */
-
-/*===========================================================================*/
-/* Port-specific settings (override port settings defaulted in chcore.h). */
-/*===========================================================================*/
-
-#endif /* CHCONF_H */
-
-/** @} */
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file templates/chconf.h
+ * @brief Configuration file template.
+ * @details A copy of this file must be placed in each project directory, it
+ * contains the application specific kernel settings.
+ *
+ * @addtogroup config
+ * @details Kernel related settings and hooks.
+ * @{
+ */
+
+#ifndef CHCONF_H
+#define CHCONF_H
+
+#define _CHIBIOS_RT_CONF_
+
+/*===========================================================================*/
+/**
+ * @name System timers settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief System time counter resolution.
+ * @note Allowed values are 16 or 32 bits.
+ */
+#define CH_CFG_ST_RESOLUTION 32
+
+/**
+ * @brief System tick frequency.
+ * @details Frequency of the system timer that drives the system ticks. This
+ * setting also defines the system tick time unit.
+ */
+#define CH_CFG_ST_FREQUENCY 1000
+
+/**
+ * @brief Time delta constant for the tick-less mode.
+ * @note If this value is zero then the system uses the classic
+ * periodic tick. This value represents the minimum number
+ * of ticks that is safe to specify in a timeout directive.
+ * The value one is not valid, timeouts are rounded up to
+ * this value.
+ */
+#define CH_CFG_ST_TIMEDELTA 0
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel parameters and options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Round robin interval.
+ * @details This constant is the number of system ticks allowed for the
+ * threads before preemption occurs. Setting this value to zero
+ * disables the preemption for threads with equal priority and the
+ * round robin becomes cooperative. Note that higher priority
+ * threads can still preempt, the kernel is always preemptive.
+ * @note Disabling the round robin preemption makes the kernel more compact
+ * and generally faster.
+ * @note The round robin preemption is not supported in tickless mode and
+ * must be set to zero in that case.
+ */
+#define CH_CFG_TIME_QUANTUM 20
+
+/**
+ * @brief Managed RAM size.
+ * @details Size of the RAM area to be managed by the OS. If set to zero
+ * then the whole available RAM is used. The core memory is made
+ * available to the heap allocator and/or can be used directly through
+ * the simplified core memory allocator.
+ *
+ * @note In order to let the OS manage the whole RAM the linker script must
+ * provide the @p __heap_base__ and @p __heap_end__ symbols.
+ * @note Requires @p CH_CFG_USE_MEMCORE.
+ */
+#define CH_CFG_MEMCORE_SIZE 0
+
+/**
+ * @brief Idle thread automatic spawn suppression.
+ * @details When this option is activated the function @p chSysInit()
+ * does not spawn the idle thread. The application @p main()
+ * function becomes the idle thread and must implement an
+ * infinite loop.
+ */
+#define CH_CFG_NO_IDLE_THREAD FALSE
+
+/* Use __WFI in the idle thread for waiting. Does lower the power
+ * consumption. */
+#define CORTEX_ENABLE_WFI_IDLE TRUE
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Performance options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief OS optimization.
+ * @details If enabled then time efficient rather than space efficient code
+ * is used when two possible implementations exist.
+ *
+ * @note This is not related to the compiler optimization options.
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_OPTIMIZE_SPEED TRUE
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Subsystem options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Time Measurement APIs.
+ * @details If enabled then the time measurement APIs are included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_TM FALSE
+
+/**
+ * @brief Threads registry APIs.
+ * @details If enabled then the registry APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_REGISTRY TRUE
+
+/**
+ * @brief Threads synchronization APIs.
+ * @details If enabled then the @p chThdWait() function is included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_WAITEXIT TRUE
+
+/**
+ * @brief Semaphores APIs.
+ * @details If enabled then the Semaphores APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_SEMAPHORES TRUE
+
+/**
+ * @brief Semaphores queuing mode.
+ * @details If enabled then the threads are enqueued on semaphores by
+ * priority rather than in FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+
+/**
+ * @brief Mutexes APIs.
+ * @details If enabled then the mutexes APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_MUTEXES TRUE
+
+/**
+ * @brief Enables recursive behavior on mutexes.
+ * @note Recursive mutexes are heavier and have an increased
+ * memory footprint.
+ *
+ * @note The default is @p FALSE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+
+/**
+ * @brief Conditional Variables APIs.
+ * @details If enabled then the conditional variables APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#define CH_CFG_USE_CONDVARS TRUE
+
+/**
+ * @brief Conditional Variables APIs with timeout.
+ * @details If enabled then the conditional variables APIs with timeout
+ * specification are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_CONDVARS.
+ */
+#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+
+/**
+ * @brief Events Flags APIs.
+ * @details If enabled then the event flags APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_EVENTS TRUE
+
+/**
+ * @brief Events Flags APIs with timeout.
+ * @details If enabled then the events APIs with timeout specification
+ * are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_EVENTS.
+ */
+#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+
+/**
+ * @brief Synchronous Messages APIs.
+ * @details If enabled then the synchronous messages APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_MESSAGES TRUE
+
+/**
+ * @brief Synchronous Messages queuing mode.
+ * @details If enabled then messages are served by priority rather than in
+ * FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_MESSAGES.
+ */
+#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+
+/**
+ * @brief Mailboxes APIs.
+ * @details If enabled then the asynchronous messages (mailboxes) APIs are
+ * included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#define CH_CFG_USE_MAILBOXES TRUE
+
+/**
+ * @brief Core Memory Manager APIs.
+ * @details If enabled then the core memory manager APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_MEMCORE TRUE
+
+/**
+ * @brief Heap Allocator APIs.
+ * @details If enabled then the memory heap allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
+ * @p CH_CFG_USE_SEMAPHORES.
+ * @note Mutexes are recommended.
+ */
+#define CH_CFG_USE_HEAP TRUE
+
+/**
+ * @brief Memory Pools Allocator APIs.
+ * @details If enabled then the memory pools allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_MEMPOOLS TRUE
+
+/**
+ * @brief Dynamic Threads APIs.
+ * @details If enabled then the dynamic threads creation APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_WAITEXIT.
+ * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
+ */
+#define CH_CFG_USE_DYNAMIC TRUE
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Debug options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Debug option, kernel statistics.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_STATISTICS FALSE
+
+/**
+ * @brief Debug option, system state check.
+ * @details If enabled the correct call protocol for system APIs is checked
+ * at runtime.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+
+/**
+ * @brief Debug option, parameters checks.
+ * @details If enabled then the checks on the API functions input
+ * parameters are activated.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_ENABLE_CHECKS TRUE
+
+/**
+ * @brief Debug option, consistency checks.
+ * @details If enabled then all the assertions in the kernel code are
+ * activated. This includes consistency checks inside the kernel,
+ * runtime anomalies and port-defined checks.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_ENABLE_ASSERTS TRUE
+
+/**
+ * @brief Debug option, trace buffer.
+ * @details If enabled then the trace buffer is activated.
+ *
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
+
+/**
+ * @brief Trace buffer entries.
+ * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
+ * different from @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+
+/**
+ * @brief Debug option, stack checks.
+ * @details If enabled then a runtime stack check is performed.
+ *
+ * @note The default is @p FALSE.
+ * @note The stack check is performed in a architecture/port dependent way.
+ * It may not be implemented or some ports.
+ * @note The default failure mode is to halt the system with the global
+ * @p panic_msg variable set to @p NULL.
+ */
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+
+/**
+ * @brief Debug option, stacks initialization.
+ * @details If enabled then the threads working area is filled with a byte
+ * value when a thread is created. This can be useful for the
+ * runtime measurement of the used stack.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_FILL_THREADS TRUE
+
+/**
+ * @brief Debug option, threads profiling.
+ * @details If enabled then a field is added to the @p thread_t structure that
+ * counts the system ticks occurred while executing the thread.
+ *
+ * @note The default is @p FALSE.
+ * @note This debug option is not currently compatible with the
+ * tickless mode.
+ */
+#define CH_DBG_THREADS_PROFILING FALSE
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel hooks
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Threads descriptor structure extension.
+ * @details User fields added to the end of the @p thread_t structure.
+ */
+#define CH_CFG_THREAD_EXTRA_FIELDS \
+ /* Add threads custom fields here.*/
+
+/**
+ * @brief Threads initialization hook.
+ * @details User initialization code added to the @p chThdInit() API.
+ *
+ * @note It is invoked from within @p chThdInit() and implicitly from all
+ * the threads creation APIs.
+ */
+#define CH_CFG_THREAD_INIT_HOOK(tp) { \
+ /* Add threads initialization code here.*/ \
+}
+
+/**
+ * @brief Threads finalization hook.
+ * @details User finalization code added to the @p chThdExit() API.
+ */
+#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
+ /* Add threads finalization code here.*/ \
+}
+
+/**
+ * @brief Context switch hook.
+ * @details This hook is invoked just before switching between threads.
+ */
+#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
+ /* Context switch code here.*/ \
+}
+
+/**
+ * @brief ISR enter hook.
+ */
+#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
+ /* IRQ prologue code here.*/ \
+}
+
+/**
+ * @brief ISR exit hook.
+ */
+#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
+ /* IRQ epilogue code here.*/ \
+}
+
+/**
+ * @brief Idle thread enter hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to activate a power saving mode.
+ */
+#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
+}
+
+/**
+ * @brief Idle thread leave hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to deactivate a power saving mode.
+ */
+#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
+}
+
+/**
+ * @brief Idle Loop hook.
+ * @details This hook is continuously invoked by the idle thread loop.
+ */
+#define CH_CFG_IDLE_LOOP_HOOK() { \
+ /* Idle loop code here.*/ \
+}
+
+/**
+ * @brief System tick event hook.
+ * @details This hook is invoked in the system tick handler immediately
+ * after processing the virtual timers queue.
+ */
+#define CH_CFG_SYSTEM_TICK_HOOK() { \
+ /* System tick event code here.*/ \
+}
+
+/**
+ * @brief System halt hook.
+ * @details This hook is invoked in case to a system halting error before
+ * the system is halted.
+ */
+#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
+ /* System halt code here.*/ \
+}
+
+/**
+ * @brief Trace hook.
+ * @details This hook is invoked each time a new record is written in the
+ * trace buffer.
+ */
+#define CH_CFG_TRACE_HOOK(tep) { \
+ /* Trace code here.*/ \
+}
+
+/** @} */
+
+/*===========================================================================*/
+/* Port-specific settings (override port settings defaulted in chcore.h). */
+/*===========================================================================*/
+
+#endif /* CHCONF_H */
+
+/** @} */
diff --git a/keyboards/chibios_test/teensy_lc_onekey/halconf.h b/keyboards/chibios_test/teensy_lc_onekey/halconf.h
index b1d2cd550..0436408b0 100644
--- a/keyboards/chibios_test/teensy_lc_onekey/halconf.h
+++ b/keyboards/chibios_test/teensy_lc_onekey/halconf.h
@@ -1,187 +1,187 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/**
- * @file templates/halconf.h
- * @brief HAL configuration header.
- * @details HAL configuration file, this file allows to enable or disable the
- * various device drivers from your application. You may also use
- * this file in order to override the device drivers default settings.
- *
- * @addtogroup HAL_CONF
- * @{
- */
-
-#ifndef _HALCONF_H_
-#define _HALCONF_H_
-
-#include "mcuconf.h"
-
-/**
- * @brief Enables the PAL subsystem.
- */
-#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
-#define HAL_USE_PAL TRUE
-#endif
-
-/**
- * @brief Enables the ADC subsystem.
- */
-#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
-#define HAL_USE_ADC FALSE
-#endif
-
-/**
- * @brief Enables the CAN subsystem.
- */
-#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
-#define HAL_USE_CAN FALSE
-#endif
-
-/**
- * @brief Enables the DAC subsystem.
- */
-#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
-#define HAL_USE_DAC FALSE
-#endif
-
-/**
- * @brief Enables the EXT subsystem.
- */
-#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
-#define HAL_USE_EXT FALSE
-#endif
-
-/**
- * @brief Enables the GPT subsystem.
- */
-#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
-#define HAL_USE_GPT FALSE
-#endif
-
-/**
- * @brief Enables the I2C subsystem.
- */
-#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
-#define HAL_USE_I2C FALSE
-#endif
-
-/**
- * @brief Enables the I2S subsystem.
- */
-#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
-#define HAL_USE_I2S FALSE
-#endif
-
-/**
- * @brief Enables the ICU subsystem.
- */
-#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
-#define HAL_USE_ICU FALSE
-#endif
-
-/**
- * @brief Enables the MAC subsystem.
- */
-#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
-#define HAL_USE_MAC FALSE
-#endif
-
-/**
- * @brief Enables the MMC_SPI subsystem.
- */
-#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
-#define HAL_USE_MMC_SPI FALSE
-#endif
-
-/**
- * @brief Enables the PWM subsystem.
- */
-#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
-#define HAL_USE_PWM FALSE
-#endif
-
-/**
- * @brief Enables the RTC subsystem.
- */
-#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
-#define HAL_USE_RTC FALSE
-#endif
-
-/**
- * @brief Enables the SDC subsystem.
- */
-#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
-#define HAL_USE_SDC FALSE
-#endif
-
-/**
- * @brief Enables the SERIAL subsystem.
- */
-#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
-#define HAL_USE_SERIAL FALSE
-#endif
-
-/**
- * @brief Enables the SERIAL over USB subsystem.
- */
-#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
-#define HAL_USE_SERIAL_USB FALSE
-#endif
-
-/**
- * @brief Enables the SPI subsystem.
- */
-#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
-#define HAL_USE_SPI FALSE
-#endif
-
-/**
- * @brief Enables the UART subsystem.
- */
-#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
-#define HAL_USE_UART FALSE
-#endif
-
-/**
- * @brief Enables the USB subsystem.
- */
-#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
-#define HAL_USE_USB TRUE
-#endif
-
-/**
- * @brief Enables the WDG subsystem.
- */
-#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
-#define HAL_USE_WDG FALSE
-#endif
-
-/*===========================================================================*/
-/* USB driver related settings. */
-/*===========================================================================*/
-
-/**
- * @brief Enables synchronous APIs.
- * @note Disabling this option saves both code and data space.
- */
-#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
-#define USB_USE_WAIT TRUE
-#endif
-
-#endif /* _HALCONF_H_ */
-
-/** @} */
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file templates/halconf.h
+ * @brief HAL configuration header.
+ * @details HAL configuration file, this file allows to enable or disable the
+ * various device drivers from your application. You may also use
+ * this file in order to override the device drivers default settings.
+ *
+ * @addtogroup HAL_CONF
+ * @{
+ */
+
+#ifndef _HALCONF_H_
+#define _HALCONF_H_
+
+#include "mcuconf.h"
+
+/**
+ * @brief Enables the PAL subsystem.
+ */
+#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
+#define HAL_USE_PAL TRUE
+#endif
+
+/**
+ * @brief Enables the ADC subsystem.
+ */
+#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
+#define HAL_USE_ADC FALSE
+#endif
+
+/**
+ * @brief Enables the CAN subsystem.
+ */
+#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
+#define HAL_USE_CAN FALSE
+#endif
+
+/**
+ * @brief Enables the DAC subsystem.
+ */
+#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
+#define HAL_USE_DAC FALSE
+#endif
+
+/**
+ * @brief Enables the EXT subsystem.
+ */
+#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
+#define HAL_USE_EXT FALSE
+#endif
+
+/**
+ * @brief Enables the GPT subsystem.
+ */
+#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
+#define HAL_USE_GPT FALSE
+#endif
+
+/**
+ * @brief Enables the I2C subsystem.
+ */
+#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
+#define HAL_USE_I2C FALSE
+#endif
+
+/**
+ * @brief Enables the I2S subsystem.
+ */
+#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
+#define HAL_USE_I2S FALSE
+#endif
+
+/**
+ * @brief Enables the ICU subsystem.
+ */
+#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
+#define HAL_USE_ICU FALSE
+#endif
+
+/**
+ * @brief Enables the MAC subsystem.
+ */
+#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
+#define HAL_USE_MAC FALSE
+#endif
+
+/**
+ * @brief Enables the MMC_SPI subsystem.
+ */
+#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_MMC_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the PWM subsystem.
+ */
+#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
+#define HAL_USE_PWM FALSE
+#endif
+
+/**
+ * @brief Enables the RTC subsystem.
+ */
+#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
+#define HAL_USE_RTC FALSE
+#endif
+
+/**
+ * @brief Enables the SDC subsystem.
+ */
+#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
+#define HAL_USE_SDC FALSE
+#endif
+
+/**
+ * @brief Enables the SERIAL subsystem.
+ */
+#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL FALSE
+#endif
+
+/**
+ * @brief Enables the SERIAL over USB subsystem.
+ */
+#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL_USB FALSE
+#endif
+
+/**
+ * @brief Enables the SPI subsystem.
+ */
+#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the UART subsystem.
+ */
+#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
+#define HAL_USE_UART FALSE
+#endif
+
+/**
+ * @brief Enables the USB subsystem.
+ */
+#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
+#define HAL_USE_USB TRUE
+#endif
+
+/**
+ * @brief Enables the WDG subsystem.
+ */
+#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
+#define HAL_USE_WDG FALSE
+#endif
+
+/*===========================================================================*/
+/* USB driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
+#define USB_USE_WAIT TRUE
+#endif
+
+#endif /* _HALCONF_H_ */
+
+/** @} */
diff --git a/keyboards/chibios_test/teensy_lc_onekey/mcuconf.h b/keyboards/chibios_test/teensy_lc_onekey/mcuconf.h
index c63659019..2764e8898 100644
--- a/keyboards/chibios_test/teensy_lc_onekey/mcuconf.h
+++ b/keyboards/chibios_test/teensy_lc_onekey/mcuconf.h
@@ -1,55 +1,55 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#ifndef _MCUCONF_H_
-#define _MCUCONF_H_
-
-#define KL2x_MCUCONF
-
-/*
- * HAL driver system settings.
- */
-#if 1
-/* PEE mode - 48MHz system clock driven by (16 MHz) external crystal. */
-#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE
-#define KINETIS_PLLCLK_FREQUENCY 96000000UL
-#define KINETIS_SYSCLK_FREQUENCY 48000000UL
-#endif
-
-#if 0
-/* crystal-less FEI mode - 48 MHz with internal 32.768 kHz crystal */
-#define KINETIS_MCG_MODE KINETIS_MCG_MODE_FEI
-#define KINETIS_MCG_FLL_DMX32 1 /* Fine-tune for 32.768 kHz */
-#define KINETIS_MCG_FLL_DRS 1 /* 1464x FLL factor */
-#define KINETIS_SYSCLK_FREQUENCY 47972352UL /* 32.768 kHz * 1464 (~48 MHz) */
-#define KINETIS_CLKDIV1_OUTDIV1 1 /* do not divide system clock */
-#endif
-
-/*
- * SERIAL driver system settings.
- */
-#define KINETIS_SERIAL_USE_UART0 TRUE
-
-/*
- * USB driver settings
- */
-#define KINETIS_USB_USE_USB0 TRUE
-/* Need to redefine this, since the default is for K20x */
-/* This is for Teensy LC; you should comment it out (or change to 5)
- * for Teensy 3.x */
-#define KINETIS_USB_USB0_IRQ_PRIORITY 2
-
-#endif /* _MCUCONF_H_ */
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _MCUCONF_H_
+#define _MCUCONF_H_
+
+#define KL2x_MCUCONF
+
+/*
+ * HAL driver system settings.
+ */
+#if 1
+/* PEE mode - 48MHz system clock driven by (16 MHz) external crystal. */
+#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE
+#define KINETIS_PLLCLK_FREQUENCY 96000000UL
+#define KINETIS_SYSCLK_FREQUENCY 48000000UL
+#endif
+
+#if 0
+/* crystal-less FEI mode - 48 MHz with internal 32.768 kHz crystal */
+#define KINETIS_MCG_MODE KINETIS_MCG_MODE_FEI
+#define KINETIS_MCG_FLL_DMX32 1 /* Fine-tune for 32.768 kHz */
+#define KINETIS_MCG_FLL_DRS 1 /* 1464x FLL factor */
+#define KINETIS_SYSCLK_FREQUENCY 47972352UL /* 32.768 kHz * 1464 (~48 MHz) */
+#define KINETIS_CLKDIV1_OUTDIV1 1 /* do not divide system clock */
+#endif
+
+/*
+ * SERIAL driver system settings.
+ */
+#define KINETIS_SERIAL_USE_UART0 TRUE
+
+/*
+ * USB driver settings
+ */
+#define KINETIS_USB_USE_USB0 TRUE
+/* Need to redefine this, since the default is for K20x */
+/* This is for Teensy LC; you should comment it out (or change to 5)
+ * for Teensy 3.x */
+#define KINETIS_USB_USB0_IRQ_PRIORITY 2
+
+#endif /* _MCUCONF_H_ */
diff --git a/keyboards/chibios_test/teensy_lc_onekey/rules.mk b/keyboards/chibios_test/teensy_lc_onekey/rules.mk
new file mode 100644
index 000000000..43ea9d82d
--- /dev/null
+++ b/keyboards/chibios_test/teensy_lc_onekey/rules.mk
@@ -0,0 +1,49 @@
+# project specific files
+SRC = matrix.c \
+ led.c
+
+## chip/board settings
+# - the next two should match the directories in
+# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
+# - For Teensies, FAMILY = KINETIS and SERIES is either
+# KL2x (LC) or K20x (3.0,3.1,3.2).
+MCU_FAMILY = KINETIS
+MCU_SERIES = KL2x
+
+# Linker script to use
+# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
+# or <this_dir>/ld/
+# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
+# - LDSCRIPT =
+# - MKL26Z64 for Teensy LC
+# - MK20DX128 for Teensy 3.0
+# - MK20DX256 for Teensy 3.1 and 3.2
+MCU_LDSCRIPT = MKL26Z64
+
+# Startup code to use
+# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
+# - STARTUP =
+# - kl2x for Teensy LC
+# - k20x5 for Teensy 3.0
+# - k20x7 for Teensy 3.1 and 3.2
+MCU_STARTUP = kl2x
+
+# Board: it should exist either in <chibios>/os/hal/boards/
+# or <this_dir>/boards
+# - BOARD =
+# - PJRC_TEENSY_LC for Teensy LC
+# - PJRC_TEENSY_3 for Teensy 3.0
+# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2
+BOARD = PJRC_TEENSY_LC
+
+# Cortex version
+# Teensy LC is cortex-m0plus; Teensy 3.x are cortex-m4
+MCU = cortex-m0plus
+
+# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
+# I.e. 6 for Teensy LC; 7 for Teensy 3.x
+ARMV = 6
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/clueboard/Makefile b/keyboards/clueboard/Makefile
index ccc01ea9a..b9bada8f8 100644
--- a/keyboards/clueboard/Makefile
+++ b/keyboards/clueboard/Makefile
@@ -1,109 +1,5 @@
-#----------------------------------------------------------------------------
-# On command line:
-#
-# make all = Make software.
-#
-# make clean = Clean out built project files.
-#
-# make coff = Convert ELF to AVR COFF.
-#
-# make extcoff = Convert ELF to AVR Extended COFF.
-#
-# make program = Download the hex file to the device.
-# Please customize your programmer settings(PROGRAM_CMD)
-#
-# make teensy = Download the hex file to the device, using teensy_loader_cli.
-# (must have teensy_loader_cli installed).
-#
-# make dfu = Download the hex file to the device, using dfu-programmer (must
-# have dfu-programmer installed).
-#
-# make flip = Download the hex file to the device, using Atmel FLIP (must
-# have Atmel FLIP installed).
-#
-# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
-# (must have dfu-programmer installed).
-#
-# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
-# (must have Atmel FLIP installed).
-#
-# make debug = Start either simulavr or avarice as specified for debugging,
-# with avr-gdb or avr-insight as the front end for debugging.
-#
-# make filename.s = Just compile filename.c into the assembler code only.
-#
-# make filename.i = Create a preprocessed source file for use in submitting
-# bug reports to the GCC project.
-#
-# To rebuild project do "make clean" then "make all".
-#----------------------------------------------------------------------------
-
SUBPROJECT_DEFAULT = rev2
-# MCU name
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
-# Build Options
-# comment out to disable the options.
-#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-AUDIO_ENABLE ?= no
-RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality
-MIDI_ENABLE ?= no # MIDI controls
-UNICODE_ENABLE ?= no # Unicode
-BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
-endif
+endif \ No newline at end of file
diff --git a/keyboards/clueboard/config.h b/keyboards/clueboard/config.h
index ceac80795..ad6832385 100644
--- a/keyboards/clueboard/config.h
+++ b/keyboards/clueboard/config.h
@@ -29,9 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
-/* define if matrix has ghost */
-//#define MATRIX_HAS_GHOST
-
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
diff --git a/keyboards/clueboard/keymaps/default/keymap.c b/keyboards/clueboard/keymaps/default/keymap.c
index 896bc7ebc..01f158bf0 100644
--- a/keyboards/clueboard/keymaps/default/keymap.c
+++ b/keyboards/clueboard/keymaps/default/keymap.c
@@ -66,19 +66,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------------------------------------------------------'
*/
[_RS] = KEYMAP(
- #ifdef RGBLIGHT_ENABLE
KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAI, \
KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, \
KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), RGB_SAI, \
KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI),
- #else
- KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_TRNS, KC_TRNS, KC_TRNS),
- #endif
};
enum function_id {
diff --git a/keyboards/clueboard/keymaps/skully/readme.md b/keyboards/clueboard/keymaps/skully/readme.md
new file mode 100644
index 000000000..c1182123d
--- /dev/null
+++ b/keyboards/clueboard/keymaps/skully/readme.md
@@ -0,0 +1,5 @@
+# skullY's Clueboard Layout
+
+This layout is what I (@skullydazed) use on my personal Clueboards. I mostly use it for programming, CAD, and general typing.
+
+The most notable change from the default layout is putting Ctrl on the Capslock key. I also swap Alt and Cmd because I mostly use a Mac day to day.
diff --git a/keyboards/clueboard/readme.md b/keyboards/clueboard/readme.md
new file mode 100644
index 000000000..4a76e2908
--- /dev/null
+++ b/keyboards/clueboard/readme.md
@@ -0,0 +1,97 @@
+Clueboard keyboard firmware
+======================
+
+DIY/Assembled compact 66% keyboard by [Clueboard](http://clueboard.co).
+
+For the full Quantum Mechanical Keyboard feature list, see [the parent readme.md](/readme.md).
+
+## First Time Setup
+
+Download or clone the whole firmware and navigate to the keyboards/clueboard directory. Once your dev env is setup, you'll be able to generate the default .hex:
+
+```
+$ make
+```
+
+You will see a lot of output and if everything worked correctly you will see something similar to this:
+
+```
+Size after:
+ text data bss dec hex filename
+ 0 19992 0 19992 4e18 clueboard_rev2_default.hex
+```
+
+At this point you can press RESET on your Clueboard and flash your keyboard with this command:
+
+```
+$ make dfu
+```
+
+If you would like to use one of the alternative keymaps, or create your own, see below.
+
+## Clueboard 1.0
+
+If you have a first generation Clueboard (one with a black PCB) you will need to use the revision 1 code. To do so add `rev1` to your make command, like this:
+
+```
+$ make rev1
+```
+
+And when flashing your keyboard:
+
+```
+$ make rev1-dfu
+```
+
+If you are flashing an alternative layout to your rev1, include both `rev1` and `<keymap>` in your command, for example when flashing max:
+
+```
+$ make rev1-max-dfu
+```
+
+## Alternate Keymaps
+
+There are many alternative and user-contributed layouts available in the [keymaps/](keymaps/) directory. To compile and flash an alternative you will want to add `<keymap>` to your command:
+
+```
+$ make skully
+```
+
+And when flashing your keyboard, put `<keymap>` between "make" and "dfu":
+
+```
+$ make skully-dfu
+```
+
+### Notable Layouts
+
+These layouts are notable for one reason or another. If you are looking for ideas or inspiration you should look at these first:
+
+* [keymaps/default](keymaps/default) - The default Clueboard layout
+* [keymaps/max](keymaps/max) - A maximised layout that makes use of every key and feature of the Clueboard 2.0 PCB.
+* [keymaps/skully](keymaps/skully) - The layout that @skullydazed uses on his own Clueboards.
+
+## Create Your Own Keymap
+
+There are a lot of possibilities when creating your own keymap, and the primary documentation for doing that is [Customizing Your Keymap](/readme.md##customizing-your-keymap) in the main readme.md. As a way to get started, here is the procedure I recommend:
+
+* Copy `[keymaps/default](keymaps/default/)` to `keymaps/<your_layout>`.
+* Compile the firmware (`$ make <your_layout>`)
+* Flash the firmware (`$ make <your_layout>-dfu`)
+* Make sure everything works like the default keyboard
+* Modify `keymaps/<your_layout>/readme.md` to tell others about your layout.
+* Modify `keymaps/<your_layout>/keymap.c` to reflect your desired layout.
+* Compile your new custom firmware (`$ make <your_layout>`)
+** If you have warnings you may flash without fixing them, but something may not work right.
+** If you have any errors you must fix them before continuing.
+* Flash the firmware (`$ make <your_layout>-dfu`)
+
+## Share Your Keymap
+
+Got your layout dialed in? Please share it with the world so we can benefit from your work! Simply submit a pull request with your layout and we'll include it in the official repository. Please use the following guidelines when putting together your pull request:
+
+* Include a readme.md that states what your primary keyboard use is, how your layout differs from the default, and highlights anything you think makes your layout particularly great.
+* If your layout requires certain features (EG, RGB underlight or backlighting) ensure you have a Makefile and config.h that reflects that
+* If your layout requires special hardware to be added, please describe that in the readme.md
+
+TODO: Write up or link quick how-to on creating and submitting a PR. (Pull requests accepted. :)
diff --git a/keyboards/clueboard/rev1/Makefile b/keyboards/clueboard/rev1/Makefile
index 80a942d06..191c6bb66 100644
--- a/keyboards/clueboard/rev1/Makefile
+++ b/keyboards/clueboard/rev1/Makefile
@@ -1,5 +1,3 @@
-BACKLIGHT_ENABLE = no
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../../Makefile
-endif
+endif \ No newline at end of file
diff --git a/keyboards/clueboard/rev1/config.h b/keyboards/clueboard/rev1/config.h
index 8c9497232..f40876ffb 100644
--- a/keyboards/clueboard/rev1/config.h
+++ b/keyboards/clueboard/rev1/config.h
@@ -26,7 +26,7 @@
/* Underlight configuration
*/
#define RGB_DI_PIN B2
-#define RGBLIGHT_TIMER
+#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 14 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
diff --git a/keyboards/clueboard/rev1/rules.mk b/keyboards/clueboard/rev1/rules.mk
new file mode 100644
index 000000000..80a942d06
--- /dev/null
+++ b/keyboards/clueboard/rev1/rules.mk
@@ -0,0 +1,5 @@
+BACKLIGHT_ENABLE = no
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif
diff --git a/keyboards/clueboard/rev2/Makefile b/keyboards/clueboard/rev2/Makefile
index cea967b79..191c6bb66 100644
--- a/keyboards/clueboard/rev2/Makefile
+++ b/keyboards/clueboard/rev2/Makefile
@@ -1,5 +1,3 @@
-BACKLIGHT_ENABLE = yes
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../../Makefile
-endif
+endif \ No newline at end of file
diff --git a/keyboards/clueboard/rev2/config.h b/keyboards/clueboard/rev2/config.h
index 02982ff29..8435fd02b 100644
--- a/keyboards/clueboard/rev2/config.h
+++ b/keyboards/clueboard/rev2/config.h
@@ -30,10 +30,10 @@
/* Underlight configuration
*/
#define RGB_DI_PIN D7
-#define RGBLIGHT_TIMER
+#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 14 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/clueboard/rev2/rules.mk b/keyboards/clueboard/rev2/rules.mk
new file mode 100644
index 000000000..cea967b79
--- /dev/null
+++ b/keyboards/clueboard/rev2/rules.mk
@@ -0,0 +1,5 @@
+BACKLIGHT_ENABLE = yes
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif
diff --git a/keyboards/clueboard/rules.mk b/keyboards/clueboard/rules.mk
new file mode 100644
index 000000000..3909fbd5c
--- /dev/null
+++ b/keyboards/clueboard/rules.mk
@@ -0,0 +1,103 @@
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device.
+# Please customize your programmer settings(PROGRAM_CMD)
+#
+# make teensy = Download the hex file to the device, using teensy_loader_cli.
+# (must have teensy_loader_cli installed).
+#
+# make dfu = Download the hex file to the device, using dfu-programmer (must
+# have dfu-programmer installed).
+#
+# make flip = Download the hex file to the device, using Atmel FLIP (must
+# have Atmel FLIP installed).
+#
+# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
+# (must have dfu-programmer installed).
+#
+# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
+# (must have Atmel FLIP installed).
+#
+# make debug = Start either simulavr or avarice as specified for debugging,
+# with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+# bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+# MCU name
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+AUDIO_ENABLE ?= no
+RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID \ No newline at end of file
diff --git a/keyboards/clueboard2/clueboard2.c b/keyboards/clueboard2/clueboard2.c
deleted file mode 100644
index d78ffed9b..000000000
--- a/keyboards/clueboard2/clueboard2.c
+++ /dev/null
@@ -1,63 +0,0 @@
-#include "clueboard2.h"
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
- matrix_init_user();
- led_init_ports();
-
- // JTAG disable for PORT F. write JTD bit twice within four cycles.
- MCUCR |= (1<<JTD);
- MCUCR |= (1<<JTD);
-};
-
-void led_init_ports() {
- // * Set our LED pins as output
- DDRB |= (1<<4);
-}
-
-void led_set_kb(uint8_t usb_led) {
- if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
- // Turn capslock on
- PORTB |= (1<<4);
- } else {
- // Turn capslock off
- PORTB &= ~(1<<4);
- }
-}
-
-/* Clueboard 2.0 LED locations:
- *
- * Capslock: B4, pull high to turn on
- * LCtrl: Shared with Capslock, DO NOT INSTALL LED'S IN BOTH
- * Page Up: B7, pull high to turn on
- * Escape: D6, pull high to turn on
- * Arrows: D4, pull high to turn on
- */
-
-void backlight_init_ports(void) {
- print("init_backlight_pin()\n");
- // Set our LED pins as output
- DDRD |= (1<<6); // Esc
- DDRB |= (1<<7); // Page Up
- DDRD |= (1<<4); // Arrows
-
- // Set our LED pins low
- PORTD &= ~(1<<6); // Esc
- PORTB &= ~(1<<7); // Page Up
- PORTD &= ~(1<<4); // Arrows
-}
-
-void backlight_set(uint8_t level) {
- if ( level == 0 ) {
- // Turn off light
- PORTD |= (1<<6); // Esc
- PORTB |= (1<<7); // Page Up
- PORTD |= (1<<4); // Arrows
- } else {
- // Turn on light
- PORTD &= ~(1<<6); // Esc
- PORTB &= ~(1<<7); // Page Up
- PORTD &= ~(1<<4); // Arrows
- }
-}
diff --git a/keyboards/cluecard/Makefile b/keyboards/cluecard/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/cluecard/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/cluecard/cluecard.c b/keyboards/cluecard/cluecard.c
new file mode 100644
index 000000000..81db252d2
--- /dev/null
+++ b/keyboards/cluecard/cluecard.c
@@ -0,0 +1,98 @@
+#include "cluecard.h"
+#define BL_RED OCR1B
+#define BL_GREEN OCR1A
+#define BL_BLUE OCR1C
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // put your per-action keyboard code here
+ // runs for every action, just before processing by the firmware
+
+ return process_record_user(keycode, record);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ led_set_user(usb_led);
+}
+
+void backlight_init_ports(void)
+{
+ // Set B5, B6, and B7 as output
+ DDRB |= (1<<7)|(1<<6)|(1<<5);
+
+ // Setup PWM
+ ICR1 = 0xFFFF;
+ TCCR1A = 0b10101010;
+ TCCR1B = 0b00011001;
+
+ BL_RED = 0xFFFF;
+ BL_GREEN = 0xFFFF;
+ BL_BLUE = 0xFFFF;
+}
+
+void backlight_set(uint8_t level)
+{
+ // Set the RGB color
+ switch (level)
+ {
+ case 0:
+ // Off
+ BL_RED = 0xFFFF;
+ BL_GREEN = 0xFFFF;
+ BL_BLUE = 0xFFFF;
+ break;
+ case 1:
+ // Red
+ BL_RED = 0x0000;
+ BL_GREEN = 0xFFFF;
+ BL_BLUE = 0xFFFF;
+ break;
+ case 2:
+ // Green
+ BL_RED = 0xFFFF;
+ BL_GREEN = 0x0000;
+ BL_BLUE = 0xFFFF;
+ break;
+ case 3:
+ // Blue
+ BL_RED = 0xFFFF;
+ BL_GREEN = 0xFFFF;
+ BL_BLUE = 0x0000;
+ break;
+ case 4:
+ // Magenta
+ BL_RED = 0x4000;
+ BL_GREEN = 0x4000;
+ BL_BLUE = 0x4000;
+ break;
+ case 5:
+ // Purple
+ BL_RED = 0x0000;
+ BL_GREEN = 0xFFFF;
+ BL_BLUE = 0x0000;
+ break;
+ case 6:
+ // Yellow
+ BL_RED = 0x0000;
+ BL_GREEN = 0x0000;
+ BL_BLUE = 0xFFFF;
+ break;
+ default:
+ xprintf("Unknown level: %d\n", level);
+ }
+}
diff --git a/keyboards/cluecard/cluecard.h b/keyboards/cluecard/cluecard.h
new file mode 100644
index 000000000..3342a0823
--- /dev/null
+++ b/keyboards/cluecard/cluecard.h
@@ -0,0 +1,22 @@
+#ifndef CLUECARD_H
+#define CLUECARD_H
+
+#include "quantum.h"
+
+// This a shortcut to help you visually see your layout.
+// The first section contains all of the arguements
+// The second converts the arguments into a two-dimensional array
+#define KEYMAP( \
+ k00, k01, k02, \
+ k10, k12, \
+ k20, k21, k22, \
+ k11, \
+ k30, k31, k32 \
+) { \
+ { k00, k01, k02, }, \
+ { k10, k11, k12, }, \
+ { k20, k21, k22, }, \
+ { k30, k31, k32, } \
+}
+
+#endif
diff --git a/keyboards/cluecard/config.h b/keyboards/cluecard/config.h
new file mode 100644
index 000000000..6520eb557
--- /dev/null
+++ b/keyboards/cluecard/config.h
@@ -0,0 +1,167 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0xC1ED
+#define PRODUCT_ID 0x2330
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Clueboard
+#define PRODUCT ATMEGA32U4 Firmware Dev Kit
+#define DESCRIPTION A small board to help you hack on QMK.
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 3
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { F0, F5, F4, B4 }
+#define MATRIX_COL_PINS { F1, F7, F6 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION ROW2COL
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 20
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 6
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+//#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+//#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/* Underlight configuration
+ */
+#define RGB_DI_PIN E6
+//#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 4 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/cluecard/keymaps/default/Makefile b/keyboards/cluecard/keymaps/default/Makefile
new file mode 100644
index 000000000..8ee841da0
--- /dev/null
+++ b/keyboards/cluecard/keymaps/default/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = no # Audio control and System control(+450)
+CONSOLE_ENABLE = yes # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = yes # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/cluecard/keymaps/default/config.h b/keyboards/cluecard/keymaps/default/config.h
new file mode 100644
index 000000000..8893d122e
--- /dev/null
+++ b/keyboards/cluecard/keymaps/default/config.h
@@ -0,0 +1,8 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// place overrides here
+
+#endif
diff --git a/keyboards/cluecard/keymaps/default/keymap.c b/keyboards/cluecard/keymaps/default/keymap.c
new file mode 100644
index 000000000..517afe867
--- /dev/null
+++ b/keyboards/cluecard/keymaps/default/keymap.c
@@ -0,0 +1,63 @@
+#include "cluecard.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = KEYMAP(
+ RGB_TOG, RGB_SAI, RGB_VAI, \
+ RGB_HUD, RGB_HUI, \
+ RGB_MOD, RGB_SAD, RGB_VAD, \
+ BL_STEP, \
+ F(0), F(1), F(2) \
+ )
+};
+
+#ifdef AUDIO_ENABLE
+
+float tone_startup[][2] = SONG(STARTUP_SOUND);
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+float tone_plover[][2] = SONG(PLOVER_SOUND);
+float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_FUNCTION(0),
+ [1] = ACTION_FUNCTION(1),
+ [2] = ACTION_FUNCTION(2)
+};
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ if (record->event.pressed) {
+ switch (id) {
+ case 0:
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+ break;
+ case 1:
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+ break;
+ case 2:
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ break;
+ }
+ }
+};
+
+void matrix_init_user(void) {
+}
+
+void matrix_scan_user(void) {
+
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+}
diff --git a/keyboards/cluecard/keymaps/default/readme.md b/keyboards/cluecard/keymaps/default/readme.md
new file mode 100644
index 000000000..fa4e8ccad
--- /dev/null
+++ b/keyboards/cluecard/keymaps/default/readme.md
@@ -0,0 +1,5 @@
+# The default keymap for cluecard
+
+Note that this keymap has audio enabled, so the RGB mode button does not go through the different effects.
+So the LEDs will still show a static light, that is configurable with the hue, staturation and brightness
+buttons. You can of course also turn them on and off with the on/off button.
diff --git a/keyboards/cluecard/keymaps/rgb_effects/Makefile b/keyboards/cluecard/keymaps/rgb_effects/Makefile
new file mode 100644
index 000000000..00670c0cf
--- /dev/null
+++ b/keyboards/cluecard/keymaps/rgb_effects/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = no # Audio control and System control(+450)
+CONSOLE_ENABLE = yes # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/cluecard/keymaps/rgb_effects/config.h b/keyboards/cluecard/keymaps/rgb_effects/config.h
new file mode 100644
index 000000000..c6c9342c8
--- /dev/null
+++ b/keyboards/cluecard/keymaps/rgb_effects/config.h
@@ -0,0 +1,12 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// place overrides here
+#define RGBLIGHT_ANIMATIONS
+#define RGBLIGHT_EFFECT_SNAKE_LENGTH 3
+#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
+#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2
+
+#endif
diff --git a/keyboards/cluecard/keymaps/rgb_effects/keymap.c b/keyboards/cluecard/keymaps/rgb_effects/keymap.c
new file mode 100644
index 000000000..74c95ce8a
--- /dev/null
+++ b/keyboards/cluecard/keymaps/rgb_effects/keymap.c
@@ -0,0 +1,28 @@
+#include "cluecard.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = KEYMAP(
+ RGB_TOG, RGB_SAI, RGB_VAI, \
+ RGB_HUD, RGB_HUI, \
+ RGB_MOD, RGB_SAD, RGB_VAD, \
+ BL_STEP, \
+ KC_NO, KC_NO, KC_NO \
+ )
+};
+
+const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {255, 170, 85};
+const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {255, 170, 85};
+
+void matrix_init_user(void) {
+}
+
+void matrix_scan_user(void) {
+
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+}
diff --git a/keyboards/cluecard/keymaps/rgb_effects/readme.md b/keyboards/cluecard/keymaps/rgb_effects/readme.md
new file mode 100644
index 000000000..949cac394
--- /dev/null
+++ b/keyboards/cluecard/keymaps/rgb_effects/readme.md
@@ -0,0 +1,7 @@
+# RGB effect test keymap for cluecard
+
+This keymap is made for testing the RGB effects. Audio is disabled and the mode buttons goes through each
+effect. If you run HID-listen you will be able to see which effect is active. For a list of effects, check
+the `rgblight.c` file.
+
+The hue, saturation and brightness buttons will work depending on which effect is active.
diff --git a/keyboards/cluecard/readme.md b/keyboards/cluecard/readme.md
new file mode 100644
index 000000000..be13fc017
--- /dev/null
+++ b/keyboards/cluecard/readme.md
@@ -0,0 +1,28 @@
+cluecard keyboard firmware
+======================
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/cluecard folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+
+To build with the default keymap, simply run `make default`.
+
+### Other Keymaps
+
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
+```
+$ make [default|jack|<name>]
+```
+
+Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/`
diff --git a/keyboards/cluecard/rules.mk b/keyboards/cluecard/rules.mk
new file mode 100644
index 000000000..454235877
--- /dev/null
+++ b/keyboards/cluecard/rules.mk
@@ -0,0 +1,70 @@
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= no # USB Nkey Rollover
+RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870)
+BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality by default
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= yes # Audio output on port C6
diff --git a/keyboards/cluepad/Makefile b/keyboards/cluepad/Makefile
index a331ff4dc..4e2a6f00f 100644
--- a/keyboards/cluepad/Makefile
+++ b/keyboards/cluepad/Makefile
@@ -1,70 +1,3 @@
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
-# Build Options
-# comment out to disable the options.
-#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-# MOUSEKEY_ENABLE ?= 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
-NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE ?= yes # Enable numpad's backlight functionality
-RGBLIGHT_ENABLE ?= yes
-# MIDI_ENABLE ?= YES # MIDI controls
-# UNICODE_ENABLE ?= YES # Unicode
-# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
-
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
-endif
+endif \ No newline at end of file
diff --git a/keyboards/cluepad/config.h b/keyboards/cluepad/config.h
index bae05fade..bd64dfd27 100644
--- a/keyboards/cluepad/config.h
+++ b/keyboards/cluepad/config.h
@@ -70,7 +70,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Underlight configuration
*/
#define RGB_DI_PIN F6
-#define RGBLIGHT_TIMER
+#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 4 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
diff --git a/keyboards/cluepad/readme.md b/keyboards/cluepad/readme.md
new file mode 100644
index 000000000..8450340f2
--- /dev/null
+++ b/keyboards/cluepad/readme.md
@@ -0,0 +1,4 @@
+Cluepad number pad firmware
+======================
+
+TODO: to be updated.
diff --git a/keyboards/cluepad/rules.mk b/keyboards/cluepad/rules.mk
new file mode 100644
index 000000000..19b16b95a
--- /dev/null
+++ b/keyboards/cluepad/rules.mk
@@ -0,0 +1,65 @@
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+# MOUSEKEY_ENABLE ?= 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
+NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE ?= yes # Enable numpad's backlight functionality
+RGBLIGHT_ENABLE ?= yes
+# MIDI_ENABLE ?= YES # MIDI controls
+# UNICODE_ENABLE ?= YES # Unicode
+# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID \ No newline at end of file
diff --git a/keyboards/converter/Makefile b/keyboards/converter/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/converter/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/converter/converter.c b/keyboards/converter/converter.c
new file mode 100644
index 000000000..aa4bef63a
--- /dev/null
+++ b/keyboards/converter/converter.c
@@ -0,0 +1 @@
+#include "converter.h" \ No newline at end of file
diff --git a/keyboards/converter/converter.h b/keyboards/converter/converter.h
new file mode 100644
index 000000000..7a4a4835e
--- /dev/null
+++ b/keyboards/converter/converter.h
@@ -0,0 +1 @@
+#include "quantum.h" \ No newline at end of file
diff --git a/keyboards/converter/ibm_terminal/Makefile b/keyboards/converter/ibm_terminal/Makefile
new file mode 100644
index 000000000..191c6bb66
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/converter/ibm_terminal/README b/keyboards/converter/ibm_terminal/README
new file mode 100644
index 000000000..6b7aff2c8
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/README
@@ -0,0 +1,40 @@
+Keyboard converter for IBM terminal keyboard
+============================================
+
+This is a port of TMK's converter/terminal_usb to QMK.
+
+It supports PS/2 Scan Code Set 3 and runs on USB AVR chips such like PJRC Teensy.
+I tested the converter on ATMega32U4 with 1392595(102keys) and 6110345(122keys).
+
+Source code: https://github.com/tmk/tmk_keyboard
+Article: http://geekhack.org/index.php?topic=27272.0
+
+
+CONNECTION
+----------
+Keyboard ATMega32U4
+----------------------
+Data: PD2
+Clock: PD5
+
+And VCC and GND, of course. See RESOURCE for keyboard connector pin assign.
+
+
+BUILD
+-----
+$ git clone https://github.com/tmk/tmk_keyboard.git
+$ cd converter/terminal_usb
+$ make
+
+
+RESOURCE
+--------
+Soarer's Converter: http://geekhack.org/index.php?topic=17458.0
+102keys(1392595): http://geekhack.org/index.php?topic=10737.0
+122keys(1390876): http://www.seasip.info/VintagePC/ibm_1390876.html
+KbdBabel: http://www.kbdbabel.org/
+RJ45 Connector: http://www.kbdbabel.org/conn/kbd_connector_ibmterm.png
+DIN Connector: http://www.kbdbabel.org/conn/kbd_connector_ibm3179_318x_319x.png
+WinAVR: http://winavr.sourceforge.net/
+
+EOF
diff --git a/keyboards/converter/ibm_terminal/config.h b/keyboards/converter/ibm_terminal/config.h
new file mode 100644
index 000000000..4dd85f698
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/config.h
@@ -0,0 +1,138 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2016 Priyadi Iman Nurcahyo <priyadi@priyadi.net>
+
+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
+
+
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x6535
+#define DEVICE_VER 0x0100
+#define MANUFACTURER QMK
+#define PRODUCT IBM Terminal Keyboard
+#define DESCRIPTION USB converter for IBM Terminal Keyboard
+
+
+/* matrix size */
+#define MATRIX_ROWS 17 // keycode bit: 3-0
+#define MATRIX_COLS 8 // keycode bit: 6-4
+
+
+/* legacy keymap support */
+#define USE_LEGACY_KEYMAP
+
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT) | MOD_BIT(KC_RALT) | MOD_BIT(KC_RCTL)) \
+)
+
+
+/*
+ * PS/2 USART configuration for ATMega32U4
+ */
+#ifdef PS2_USE_USART
+/* XCK for clock line */
+#define PS2_CLOCK_PORT PORTD
+#define PS2_CLOCK_PIN PIND
+#define PS2_CLOCK_DDR DDRD
+#define PS2_CLOCK_BIT 5
+/* RXD for data line */
+#define PS2_DATA_PORT PORTD
+#define PS2_DATA_PIN PIND
+#define PS2_DATA_DDR DDRD
+#define PS2_DATA_BIT 2
+
+/* synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling edge */
+/* set DDR of CLOCK as input to be slave */
+#define PS2_USART_INIT() do { \
+ PS2_CLOCK_DDR &= ~(1<<PS2_CLOCK_BIT); \
+ PS2_DATA_DDR &= ~(1<<PS2_DATA_BIT); \
+ UCSR1C = ((1 << UMSEL10) | \
+ (3 << UPM10) | \
+ (0 << USBS1) | \
+ (3 << UCSZ10) | \
+ (0 << UCPOL1)); \
+ UCSR1A = 0; \
+ UBRR1H = 0; \
+ UBRR1L = 0; \
+} while (0)
+#define PS2_USART_RX_INT_ON() do { \
+ UCSR1B = ((1 << RXCIE1) | \
+ (1 << RXEN1)); \
+} while (0)
+#define PS2_USART_RX_POLL_ON() do { \
+ UCSR1B = (1 << RXEN1); \
+} while (0)
+#define PS2_USART_OFF() do { \
+ UCSR1C = 0; \
+ UCSR1B &= ~((1 << RXEN1) | \
+ (1 << TXEN1)); \
+} while (0)
+#define PS2_USART_RX_READY (UCSR1A & (1<<RXC1))
+#define PS2_USART_RX_DATA UDR1
+#define PS2_USART_ERROR (UCSR1A & ((1<<FE1) | (1<<DOR1) | (1<<UPE1)))
+#define PS2_USART_RX_VECT USART1_RX_vect
+#endif
+
+
+/*
+ * PS/2 Interrupt configuration
+ */
+#ifdef PS2_USE_INT
+/* uses INT1 for clock line(ATMega32U4) */
+#define PS2_CLOCK_PORT PORTD
+#define PS2_CLOCK_PIN PIND
+#define PS2_CLOCK_DDR DDRD
+#define PS2_CLOCK_BIT 1
+
+#define PS2_DATA_PORT PORTD
+#define PS2_DATA_PIN PIND
+#define PS2_DATA_DDR DDRD
+#define PS2_DATA_BIT 0
+
+#define PS2_INT_INIT() do { \
+ EICRA |= ((1<<ISC11) | \
+ (0<<ISC10)); \
+} while (0)
+#define PS2_INT_ON() do { \
+ EIMSK |= (1<<INT1); \
+} while (0)
+#define PS2_INT_OFF() do { \
+ EIMSK &= ~(1<<INT1); \
+} while (0)
+#define PS2_INT_VECT INT1_vect
+#endif
+
+
+/*
+ * PS/2 Busywait configuration
+ */
+#ifdef PS2_USE_BUSYWAIT
+#define PS2_CLOCK_PORT PORTD
+#define PS2_CLOCK_PIN PIND
+#define PS2_CLOCK_DDR DDRD
+#define PS2_CLOCK_BIT 1
+
+#define PS2_DATA_PORT PORTD
+#define PS2_DATA_PIN PIND
+#define PS2_DATA_DDR DDRD
+#define PS2_DATA_BIT 0
+#endif
+
+#endif
diff --git a/keyboards/converter/ibm_terminal/ibm_terminal.c b/keyboards/converter/ibm_terminal/ibm_terminal.c
new file mode 100644
index 000000000..17296864a
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/ibm_terminal.c
@@ -0,0 +1,6 @@
+#include "ibm_terminal.h"
+
+// void matrix_init_kb(void) {
+
+// matrix_init_user();
+// } \ No newline at end of file
diff --git a/keyboards/converter/ibm_terminal/ibm_terminal.h b/keyboards/converter/ibm_terminal/ibm_terminal.h
new file mode 100644
index 000000000..c6468349c
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/ibm_terminal.h
@@ -0,0 +1,82 @@
+#ifndef IBM_TERMINAL_H
+#define IBM_TERMINAL_H
+
+#include "quantum.h"
+
+void matrix_init_user(void);
+
+/*
+ * IBM Terminal keyboard 6110345(122keys)/1392595(102keys)
+ * http://geekhack.org/showthread.php?10737-What-Can-I-Do-With-a-Terminal-Model-M
+ * http://www.seasip.info/VintagePC/ibm_1391406.html
+ *
+ * Keymap array:
+ * 8 bytes
+ * +---------+
+ * 0| |
+ * :| | 0x00-0x87
+ * ;| |
+ * 17| |
+ * +---------+
+ */
+#define KEYMAP( \
+ K08,K10,K18,K20,K28,K30,K38,K40,K48,K50,K57,K5F, \
+ K07,K0F,K17,K1F,K27,K2F,K37,K3F,K47,K4F,K56,K5E, \
+ \
+ K05,K06, K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K5D,K66, K67,K6E,K6F, K76,K77,K7E,K84, \
+ K04,K0C, K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B, K5C, K64,K65,K6D, K6C,K75,K7D,K7C, \
+ K03,K0B, K14,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52, K53,K5A, K63, K6B,K73,K74,K7B, \
+ K83,K0A, K12,K13,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A, K51,K59, K61,K62,K6A, K69,K72,K7A,K79, \
+ K01,K09, K11, K19, K29, K39, K58, K60, K68,K70,K71,K78 \
+) { \
+ { KC_NO, K01, KC_NO, K03, K04, K05, K06, K07 }, \
+ { K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17 }, \
+ { K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27 }, \
+ { K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37 }, \
+ { K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47 }, \
+ { K48, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \
+ { K50, K51, K52, K53, K54, K55, K56, K57 }, \
+ { K58, K59, K5A, K5B, K5C, K5D, K5E, K5F }, \
+ { K60, K61, K62, K63, K64, K65, K66, K67 }, \
+ { K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \
+ { K70, K71, K72, K73, K74, K75, K76, K77 }, \
+ { K78, K79, K7A, K7B, K7C, K7D, K7E, KC_NO }, \
+ { KC_NO, KC_NO, KC_NO, K83, K84, KC_NO, KC_NO, KC_NO,}, \
+}
+
+/*
+ * IBM Terminal keyboard 1399625, 101-key
+ */
+#define KEYMAP_101( \
+ K08, K07,K0F,K17,K1F,K27,K2F,K37,K3F,K47,K4F,K56,K5E, K57,K5F,K62, \
+ \
+ K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, K67,K6E,K6F, K76,K77,K7E,K84, \
+ K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,K5C, K64,K65,K6D, K6C,K75,K7D, \
+ K14,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52, K5A, K6B,K73,K74,K7C, \
+ K12, K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A, K59, K63, K69,K72,K7A, \
+ K11, K19, K29, K39, K58, K61,K60,K6A, K70, K71,K79 \
+) { \
+ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K07 }, \
+ { K08, KC_NO, KC_NO, KC_NO, KC_NO, K0D, K0E, K0F }, \
+ { KC_NO, K11, K12, KC_NO, K14, K15, K16, K17 }, \
+ { KC_NO, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
+ { KC_NO, K21, K22, K23, K24, K25, K26, K27 }, \
+ { KC_NO, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
+ { KC_NO, K31, K32, K33, K34, K35, K36, K37 }, \
+ { KC_NO, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
+ { KC_NO, K41, K42, K43, K44, K45, K46, K47 }, \
+ { KC_NO, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \
+ { KC_NO, KC_NO, K52, KC_NO, K54, K55, K56, K57 }, \
+ { K58, K59, K5A, K5B, K5C, KC_NO, K5E, K5F }, \
+ { K60, K61, K62, K63, K64, K65, K66, K67 }, \
+ { KC_NO, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \
+ { K70, K71, K72, K73, K74, K75, K76, K77 }, \
+ { KC_NO, K79, K7A, KC_NO, K7C, K7D, K7E, KC_NO }, \
+ { KC_NO, KC_NO, KC_NO, KC_NO, K84, KC_NO, KC_NO, KC_NO,}, \
+}
+
+#endif \ No newline at end of file
diff --git a/keyboards/converter/ibm_terminal/keymaps/default/Makefile b/keyboards/converter/ibm_terminal/keymaps/default/Makefile
new file mode 100644
index 000000000..9ec246494
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/keymaps/default/Makefile
@@ -0,0 +1,27 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= no # Commands for debug and configuration
+NKRO_ENABLE ?= yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no # Audio output on port C6
+UNICODE_ENABLE ?= no # Unicode
+UNICODEMAP_ENABLE ?= yes
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+PS2_USE_USART ?= yes
+API_SYSEX_ENABLE ?= no
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../../Makefile
+endif
+
diff --git a/keyboards/converter/ibm_terminal/keymaps/default/config.h b/keyboards/converter/ibm_terminal/keymaps/default/config.h
new file mode 100644
index 000000000..7fa3bf328
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/keymaps/default/config.h
@@ -0,0 +1,6 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#endif
diff --git a/keyboards/converter/ibm_terminal/keymaps/default/keymap.c b/keyboards/converter/ibm_terminal/keymaps/default/keymap.c
new file mode 100644
index 000000000..2beb51106
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/keymaps/default/keymap.c
@@ -0,0 +1,69 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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/>.
+*/
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "keycode.h"
+#include "print.h"
+#include "debug.h"
+#include "util.h"
+#include "ibm_terminal.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // Layer 0
+
+ KEYMAP(
+ KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+
+ KC_PSCR,KC_ESC, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_NO, KC_BSPC, KC_INS, KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS,
+ KC_SLCK,KC_INT4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC, KC_NO, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_PAUS,KC_INT5, KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_BSLS,KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PCMM,
+ KC_APP, KC_INT6, KC_LSFT,KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_LEFT,KC_INT2,KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_RGUI,KC_LGUI, KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_GRV, KC_DOWN, KC_NO, KC_P0, KC_PDOT,KC_NO
+ ),
+
+/* 101-key keymaps
+ */
+ /* 0: default
+ * ,---. ,---------------. ,---------------. ,---------------. ,-----------.
+ * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
+ * `---' `---------------' `---------------' `---------------' `-----------'
+ * ,-----------------------------------------------------------. ,-----------. ,---------------.
+ * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa| |Ins|Hom|PgU| |NmL| /| *| -|
+ * |-----------------------------------------------------------| |-----------| |---------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| | 7| 8| 9| |
+ * |-----------------------------------------------------------| `-----------' |-----------| +|
+ * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return | | 4| 5| 6| |
+ * |-----------------------------------------------------------| ,---. |---------------|
+ * |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | |Up | | 1| 2| 3| |
+ * |-----------------------------------------------------------| ,-----------. |-----------|Ent|
+ * |Ctrl| |Alt | Space |Alt | |Ctrl| |Lef|Dow|Rig| | 0| .| |
+ * `----' `---------------------------------------' `----' `-----------' `---------------'
+ */
+/*
+ KEYMAP_101(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK, KC_BRK,
+
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,KC_PPLS,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3,
+ KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT,KC_PENT
+ ),
+*/
+};
diff --git a/keyboards/converter/ibm_terminal/keymaps/priyadi/Makefile b/keyboards/converter/ibm_terminal/keymaps/priyadi/Makefile
new file mode 100644
index 000000000..9ec246494
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/keymaps/priyadi/Makefile
@@ -0,0 +1,27 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= no # Commands for debug and configuration
+NKRO_ENABLE ?= yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no # Audio output on port C6
+UNICODE_ENABLE ?= no # Unicode
+UNICODEMAP_ENABLE ?= yes
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+PS2_USE_USART ?= yes
+API_SYSEX_ENABLE ?= no
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../../Makefile
+endif
+
diff --git a/keyboards/converter/ibm_terminal/keymaps/priyadi/config.h b/keyboards/converter/ibm_terminal/keymaps/priyadi/config.h
new file mode 100644
index 000000000..7fa3bf328
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/keymaps/priyadi/config.h
@@ -0,0 +1,6 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#endif
diff --git a/keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c b/keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c
new file mode 100644
index 000000000..592f7654b
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c
@@ -0,0 +1,312 @@
+/*
+Copyright 2016 Priyadi Iman Nurcahyo <priyadi@priyadi.net>
+
+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/>.
+*/
+
+#include "keycode.h"
+#include "print.h"
+#include "debug.h"
+#include "util.h"
+#include "ibm_terminal.h"
+#include "action_layer.h"
+
+// Fillers to make layering clearer
+
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+enum layers {
+ QWE, // qwerty
+ COL, // colemak
+ WOR, // workman
+ DVO, // dvorak
+
+ MOU, // mouse keys
+ EMO, // emoji
+ SYS, // system
+};
+
+enum keycodes {
+ // default layout switcher
+ LAY_QWE = SAFE_RANGE,
+ LAY_COL,
+ LAY_WOR,
+ LAY_DVO,
+
+ // layer switchers
+ LYR_SYS,
+ LYR_EMO,
+
+ // os switchers
+ OS_LIN,
+ OS_WIN,
+ OS_MAC,
+};
+
+// unicode map
+
+enum unicode_name {
+ GRIN, // grinning face 😊
+ TJOY, // tears of joy 😂
+ SMILE, // grining face with smiling eyes ðŸ˜
+ HEART, // heart â¤
+ EYERT, // smiling face with heart shaped eyes ðŸ˜
+ CRY, // crying face 😭
+ SMEYE, // smiling face with smiling eyes 😊
+ UNAMU, // unamused 😒
+ KISS, // kiss 😘
+ HART2, // two hearts 💕
+ WEARY, // weary 😩
+ OKHND, // ok hand sign 👌
+ PENSV, // pensive 😔
+ SMIRK, // smirk ðŸ˜
+ RECYC, // recycle â™»
+ WINK, // wink 😉
+ THMUP, // thumb up ðŸ‘
+ THMDN, // thumb down 👎
+ PRAY, // pray ðŸ™
+ PHEW, // relieved 😌
+ MUSIC, // musical notes
+ FLUSH, // flushed 😳
+ CELEB, // celebration 🙌
+ CRY2, // crying face 😢
+ COOL, // smile with sunglasses 😎
+ NOEVS, // see no evil
+ NOEVH, // hear no evil
+ NOEVK, // speak no evil
+ POO, // pile of poo
+ EYES, // eyes
+ VIC, // victory hand
+ BHART, // broken heart
+ SLEEP, // sleeping face
+ SMIL2, // smiling face with open mouth & sweat
+ HUNRD, // 100
+ CONFU, // confused
+ TONGU, // face with tongue & winking eye
+ DISAP, // disappointed
+ YUMMY, // face savoring delicious food
+ CLAP, // hand clapping
+ FEAR, // face screaming in fear
+ HORNS, // smiling face with horns
+ HALO, // smiling face with halo
+ BYE, // waving hand
+ SUN, // sun
+ MOON, // moon
+ SKULL, // skull
+};
+
+const uint32_t PROGMEM unicode_map[] = {
+ [GRIN] = 0x1F600,
+ [TJOY] = 0x1F602,
+ [SMILE] = 0x1F601,
+ [HEART] = 0x2764,
+ [EYERT] = 0x1f60d,
+ [CRY] = 0x1f62d,
+ [SMEYE] = 0x1F60A,
+ [UNAMU] = 0x1F612,
+ [KISS] = 0x1F618,
+ [HART2] = 0x1F495,
+ [WEARY] = 0x1F629,
+ [OKHND] = 0x1F44C,
+ [PENSV] = 0x1F614,
+ [SMIRK] = 0x1F60F,
+ [RECYC] = 0x267B,
+ [WINK] = 0x1F609,
+ [THMUP] = 0x1F44D,
+ [THMDN] = 0x1F44E,
+ [PRAY] = 0x1F64F,
+ [PHEW] = 0x1F60C,
+ [MUSIC] = 0x1F3B6,
+ [FLUSH] = 0x1F633,
+ [CELEB] = 0x1F64C,
+ [CRY2] = 0x1F622,
+ [COOL] = 0x1F60E,
+ [NOEVS] = 0x1F648,
+ [NOEVH] = 0x1F649,
+ [NOEVK] = 0x1F64A,
+ [POO] = 0x1F4A9,
+ [EYES] = 0x1F440,
+ [VIC] = 0x270C,
+ [BHART] = 0x1F494,
+ [SLEEP] = 0x1F634,
+ [SMIL2] = 0x1F605,
+ [HUNRD] = 0x1F4AF,
+ [CONFU] = 0x1F615,
+ [TONGU] = 0x1F61C,
+ [DISAP] = 0x1F61E,
+ [YUMMY] = 0x1F60B,
+ [CLAP] = 0x1F44F,
+ [FEAR] = 0x1F631,
+ [HORNS] = 0x1F608,
+ [HALO] = 0x1F607,
+ [BYE] = 0x1F44B,
+ [SUN] = 0x2600,
+ [MOON] = 0x1F314,
+ [SKULL] = 0x1F480,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* qwerty */
+ [QWE] = KEYMAP(
+ KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+
+ MO(EMO), MO(SYS), KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_MNXT, KC_VOLU, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, XXXXXXX, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_MPLY, KC_MUTE, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PCMM,
+ KC_MPRV, KC_VOLD, KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, KC_RSFT, KC_LEFT, TG(MOU), KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LGUI, KC_APP, KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_DOWN, XXXXXXX, KC_P0, KC_PDOT, XXXXXXX
+ ),
+
+ /* colemak */
+ [COL] = KEYMAP(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ /* workman */
+ [WOR] = KEYMAP(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ /* dvorak */
+ [DVO] = KEYMAP(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ /* system */
+ [SYS] = KEYMAP(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, LAY_QWE, OS_WIN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, LAY_DVO, _______, _______, _______, _______, LAY_WOR, OS_LIN, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, LAY_COL, _______, _______, _______, OS_MAC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ /* mouse keys */
+ [MOU] = KEYMAP(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, KC_BTN4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, KC_BTN5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, _______, KC_MS_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ KC_BTN1, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_D, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+ ),
+
+ /* emoji */
+ [EMO] = KEYMAP(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY), X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV),XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN), X(HEART),X(BYE), X(KISS), X(CELEB),X(COOL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,X(SLEEP),X(CLAP), X(CRY), X(VIC), X(BHART),X(SUN), X(SMEYE),X(WINK), X(MOON), X(CONFU), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+ ),
+
+ /*
+ [XXX] = KEYMAP(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ */
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ /* layout switcher */
+ case LAY_QWE:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<QWE);
+ }
+ return false;
+ break;
+ case LAY_COL:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<COL);
+ }
+ return false;
+ break;
+ case LAY_WOR:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<WOR);
+ }
+ return false;
+ break;
+ case LAY_DVO:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<DVO);
+ }
+ return false;
+ break;
+
+ /* os switcher */
+ case OS_LIN:
+ set_unicode_input_mode(UC_LNX);
+ return false;
+ break;
+ case OS_WIN:
+ set_unicode_input_mode(UC_WINC);
+ return false;
+ break;
+ case OS_MAC:
+ set_unicode_input_mode(UC_OSX);
+ return false;
+ break;
+
+ }
+ return true;
+}
+
+void matrix_init_user() {
+ set_unicode_input_mode(UC_LNX);
+}
diff --git a/keyboards/converter/ibm_terminal/led.c b/keyboards/converter/ibm_terminal/led.c
new file mode 100644
index 000000000..e448e84ec
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/led.c
@@ -0,0 +1,33 @@
+/*
+Copyright 2011 Jun Wako <wakojun@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/>.
+*/
+
+#include "stdint.h"
+#include "ps2.h"
+#include "led.h"
+
+
+void led_set(uint8_t usb_led)
+{
+ uint8_t ps2_led = 0;
+ if (usb_led & (1<<USB_LED_SCROLL_LOCK))
+ ps2_led |= (1<<PS2_LED_SCROLL_LOCK);
+ if (usb_led & (1<<USB_LED_NUM_LOCK))
+ ps2_led |= (1<<PS2_LED_NUM_LOCK);
+ if (usb_led & (1<<USB_LED_CAPS_LOCK))
+ ps2_led |= (1<<PS2_LED_CAPS_LOCK);
+ ps2_host_set_led(ps2_led);
+}
diff --git a/keyboards/converter/ibm_terminal/matrix.c b/keyboards/converter/ibm_terminal/matrix.c
new file mode 100644
index 000000000..9d717b61f
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/matrix.c
@@ -0,0 +1,237 @@
+/*
+Copyright 2011 Jun Wako <wakojun@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/>.
+*/
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <avr/io.h>
+#include <util/delay.h>
+#include "print.h"
+#include "util.h"
+#include "debug.h"
+#include "ps2.h"
+#include "matrix.h"
+
+#define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row))
+#define print_matrix_header() print("\nr/c 01234567\n")
+#define matrix_bitpop(i) bitpop(matrix[i])
+#define ROW_SHIFTER ((uint8_t)1)
+
+
+static void matrix_make(uint8_t code);
+static void matrix_break(uint8_t code);
+
+
+/*
+ * Matrix Array usage:
+ * 'Scan Code Set 3' is assigned into 17x8 cell matrix.
+ *
+ * 8bit wide
+ * +---------+
+ * 0| |
+ * :| | 0x00-0x87
+ * ;| |
+ * 17| |
+ * +---------+
+ */
+static uint8_t matrix[MATRIX_ROWS];
+#define ROW(code) (code>>3)
+#define COL(code) (code&0x07)
+
+
+__attribute__ ((weak))
+void matrix_init_user(void) {
+}
+
+void matrix_init(void)
+{
+ debug_enable = true;
+ //debug_matrix = true;
+ //debug_keyboard = true;
+ //debug_mouse = false;
+
+ ps2_host_init();
+
+ // initialize matrix state: all keys off
+ for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;
+
+ matrix_init_user();
+ return;
+}
+
+uint8_t matrix_scan(void)
+{
+
+ // scan code reading states
+ static enum {
+ RESET,
+ RESET_RESPONSE,
+ KBD_ID0,
+ KBD_ID1,
+ CONFIG,
+ READY,
+ F0,
+ } state = RESET;
+
+ uint8_t code;
+ if ((code = ps2_host_recv())) {
+ debug("r"); debug_hex(code); debug(" ");
+ }
+
+ switch (state) {
+ case RESET:
+ debug("wFF ");
+ if (ps2_host_send(0xFF) == 0xFA) {
+ debug("[ack]\nRESET_RESPONSE: ");
+ state = RESET_RESPONSE;
+ }
+ break;
+ case RESET_RESPONSE:
+ if (code == 0xAA) {
+ debug("[ok]\nKBD_ID: ");
+ state = KBD_ID0;
+ } else if (code) {
+ debug("err\nRESET: ");
+ state = RESET;
+ }
+ break;
+ // after reset receive keyboad ID(2 bytes)
+ case KBD_ID0:
+ if (code) {
+ state = KBD_ID1;
+ }
+ break;
+ case KBD_ID1:
+ if (code) {
+ debug("\nCONFIG: ");
+ state = CONFIG;
+ }
+ break;
+ case CONFIG:
+ debug("wF8 ");
+ if (ps2_host_send(0xF8) == 0xFA) {
+ debug("[ack]\nREADY\n");
+ state = READY;
+ }
+ break;
+ case READY:
+ switch (code) {
+ case 0x00:
+ break;
+ case 0xF0:
+ state = F0;
+ debug(" ");
+ break;
+ default: // normal key make
+ if (code < 0x88) {
+ matrix_make(code);
+ } else {
+ debug("unexpected scan code at READY: "); debug_hex(code); debug("\n");
+ }
+ state = READY;
+ debug("\n");
+ }
+ break;
+ case F0: // Break code
+ switch (code) {
+ case 0x00:
+ break;
+ default:
+ if (code < 0x88) {
+ matrix_break(code);
+ } else {
+ debug("unexpected scan code at F0: "); debug_hex(code); debug("\n");
+ }
+ state = READY;
+ debug("\n");
+ }
+ break;
+ }
+ return 1;
+}
+
+inline
+uint8_t matrix_get_row(uint8_t row)
+{
+ return matrix[row];
+}
+
+inline
+static void matrix_make(uint8_t code)
+{
+ if (!matrix_is_on(ROW(code), COL(code))) {
+ matrix[ROW(code)] |= 1<<COL(code);
+ }
+}
+
+inline
+static void matrix_break(uint8_t code)
+{
+ if (matrix_is_on(ROW(code), COL(code))) {
+ matrix[ROW(code)] &= ~(1<<COL(code));
+ }
+}
+
+bool matrix_is_on(uint8_t row, uint8_t col)
+{
+ return (matrix_get_row(row) & (1<<col));
+}
+
+void matrix_print(void)
+{
+#if (MATRIX_COLS <= 8)
+ print("r/c 01234567\n");
+#elif (MATRIX_COLS <= 16)
+ print("r/c 0123456789ABCDEF\n");
+#elif (MATRIX_COLS <= 32)
+ print("r/c 0123456789ABCDEF0123456789ABCDEF\n");
+#endif
+
+ for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
+
+#if (MATRIX_COLS <= 8)
+ xprintf("%02X: %08b%s\n", row, bitrev(matrix_get_row(row)),
+#elif (MATRIX_COLS <= 16)
+ xprintf("%02X: %016b%s\n", row, bitrev16(matrix_get_row(row)),
+#elif (MATRIX_COLS <= 32)
+ xprintf("%02X: %032b%s\n", row, bitrev32(matrix_get_row(row)),
+#endif
+#ifdef MATRIX_HAS_GHOST
+ matrix_has_ghost_in_row(row) ? " <ghost" : ""
+#else
+ ""
+#endif
+ );
+ }
+}
+
+#ifdef MATRIX_HAS_GHOST
+__attribute__ ((weak))
+bool matrix_has_ghost_in_row(uint8_t row)
+{
+ matrix_row_t matrix_row = matrix_get_row(row);
+ // No ghost exists when less than 2 keys are down on the row
+ if (((matrix_row - 1) & matrix_row) == 0)
+ return false;
+
+ // Ghost occurs when the row shares column line with other row
+ for (uint8_t i=0; i < MATRIX_ROWS; i++) {
+ if (i != row && (matrix_get_row(i) & matrix_row))
+ return true;
+ }
+ return false;
+}
+#endif
diff --git a/keyboards/converter/ibm_terminal/rules.mk b/keyboards/converter/ibm_terminal/rules.mk
new file mode 100644
index 000000000..944d1bcec
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/rules.mk
@@ -0,0 +1,72 @@
+# MCU name
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= no # Commands for debug and configuration
+NKRO_ENABLE ?= yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no # Audio output on port C6
+UNICODE_ENABLE ?= no # Unicode
+UNICODEMAP_ENABLE ?= yes
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+PS2_USE_USART ?= yes
+API_SYSEX_ENABLE ?= n
+CUSTOM_MATRIX = yes
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+
+SRC = matrix.c led.c \ No newline at end of file
diff --git a/keyboards/converter/rules.mk b/keyboards/converter/rules.mk
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/keyboards/converter/rules.mk
diff --git a/keyboards/ergodox/Makefile b/keyboards/ergodox/Makefile
new file mode 100644
index 000000000..716535005
--- /dev/null
+++ b/keyboards/ergodox/Makefile
@@ -0,0 +1,5 @@
+SUBPROJECT_DEFAULT = ez
+
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/ergodox/config.h b/keyboards/ergodox/config.h
new file mode 100644
index 000000000..361859832
--- /dev/null
+++ b/keyboards/ergodox/config.h
@@ -0,0 +1,37 @@
+#ifndef KEYBOARDS_ERGODOX_CONFIG_H_
+#define KEYBOARDS_ERGODOX_CONFIG_H_
+
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_DELAY 0
+#define MOUSEKEY_TIME_TO_MAX 5
+#define MOUSEKEY_MAX_SPEED 2
+#define MOUSEKEY_WHEEL_DELAY 0
+
+#define TAPPING_TOGGLE 1
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+#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)) \
+)
+
+#ifdef SUBPROJECT_ez
+ #include "ez/config.h"
+#endif
+#ifdef SUBPROJECT_infinity
+ #include "infinity/config.h"
+#endif
+
+
+#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */ \ No newline at end of file
diff --git a/keyboards/ergodox/ergodox.c b/keyboards/ergodox/ergodox.c
new file mode 100644
index 000000000..648ec8ad2
--- /dev/null
+++ b/keyboards/ergodox/ergodox.c
@@ -0,0 +1,4 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+
diff --git a/keyboards/ergodox/ergodox.h b/keyboards/ergodox/ergodox.h
new file mode 100644
index 000000000..f8ec8b5bf
--- /dev/null
+++ b/keyboards/ergodox/ergodox.h
@@ -0,0 +1,10 @@
+#ifndef KEYBOARDS_ERGODOX_ERGODOX_H_
+#define KEYBOARDS_ERGODOX_ERGODOX_H_
+#ifdef SUBPROJECT_ez
+ #include "ez.h"
+#endif
+#ifdef SUBPROJECT_infinity
+ #include "infinity.h"
+#endif
+
+#endif /* KEYBOARDS_ERGODOX_ERGODOX_H_ */
diff --git a/keyboards/ergodox_ez/190hotfix.sh b/keyboards/ergodox/ez/190hotfix.sh
index bdc3adce2..bdc3adce2 100755
--- a/keyboards/ergodox_ez/190hotfix.sh
+++ b/keyboards/ergodox/ez/190hotfix.sh
diff --git a/keyboards/ergodox/ez/Makefile b/keyboards/ergodox/ez/Makefile
new file mode 100644
index 000000000..1098332b8
--- /dev/null
+++ b/keyboards/ergodox/ez/Makefile
@@ -0,0 +1,8 @@
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+COMMAND_ENABLE = no # Commands for debug and configuration
+RGBLIGHT_ENABLE ?= yes
+MIDI_ENABLE ?= no
+
+ifndef MAKEFILE_INCLUDED
+ include ../../../Makefile
+endif
diff --git a/keyboards/ergodox/ez/config.h b/keyboards/ergodox/ez/config.h
new file mode 100644
index 000000000..e4f95c302
--- /dev/null
+++ b/keyboards/ergodox/ez/config.h
@@ -0,0 +1,81 @@
+/*
+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 ERGODOX_EZ_CONFIG_H
+#define ERGODOX_EZ_CONFIG_H
+
+#include "../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 QMK keyboard firmware for Ergodox EZ
+
+/* key matrix size */
+#define MATRIX_ROWS 14
+#define MATRIX_COLS 6
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+#define LED_BRIGHTNESS_LO 15
+#define LED_BRIGHTNESS_HI 255
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D7
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 15 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 12
+#define RGBLIGHT_SAT_STEP 255
+#define RGBLIGHT_VAL_STEP 12
+
+// #define RGB_MIDI
+#define RGBW_BB_TWI
+
+#define RGBW 1
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+#define USB_MAX_POWER_CONSUMPTION 500
+
+/*
+ * 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
+
+#endif
diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox/ez/ez.c
index f0558d9f2..3e19f2302 100644
--- a/keyboards/ergodox_ez/ergodox_ez.c
+++ b/keyboards/ergodox/ez/ez.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ez.h"
#include "i2cmaster.h"
bool i2c_initialized = 0;
@@ -16,10 +16,10 @@ void matrix_init_kb(void) {
// unused pins - C7, D4, D5, D7, E6
// set as input with internal pull-ip enabled
DDRC &= ~(1<<7);
- DDRD &= ~(1<<7 | 1<<5 | 1<<4);
+ DDRD &= ~(1<<5 | 1<<4);
DDRE &= ~(1<<6);
PORTC |= (1<<7);
- PORTD |= (1<<7 | 1<<5 | 1<<4);
+ PORTD |= (1<<5 | 1<<4);
PORTE |= (1<<6);
ergodox_blink_all_leds();
@@ -51,6 +51,10 @@ uint8_t init_mcp23018(void) {
mcp23018_status = 0x20;
// I2C subsystem
+
+ // uint8_t sreg_prev;
+ // sreg_prev=SREG;
+ // cli();
if (i2c_initialized == 0) {
i2c_init(); // on pins D(1,0)
i2c_initialized++;
@@ -79,7 +83,30 @@ uint8_t init_mcp23018(void) {
out:
i2c_stop();
+ // SREG=sreg_prev;
+
return mcp23018_status;
}
-
+#ifdef ONEHAND_ENABLE
+__attribute__ ((weak))
+// swap-hands action needs a matrix to define the swap
+const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
+ /* Left hand, matrix positions */
+ {{0,13}, {1,13}, {2,13}, {3,13}, {4,13}, {5,13}},
+ {{0,12}, {1,12}, {2,12}, {3,12}, {4,12}, {5,12}},
+ {{0,11}, {1,11}, {2,11}, {3,11}, {4,11}, {5,11}},
+ {{0,10}, {1,10}, {2,10}, {3,10}, {4,10}, {5,10}},
+ {{0,9}, {1,9}, {2,9}, {3,9}, {4,9}, {5,9}},
+ {{0,8}, {1,8}, {2,8}, {3,8}, {4,8}, {5,8}},
+ {{0,7}, {1,7}, {2,7}, {3,7}, {4,7}, {5,7}},
+ /* Right hand, matrix positions */
+ {{0,6}, {1,6}, {2,6}, {3,6}, {4,6}, {5,6}},
+ {{0,5}, {1,5}, {2,5}, {3,5}, {4,5}, {5,5}},
+ {{0,4}, {1,4}, {2,4}, {3,4}, {4,4}, {5,4}},
+ {{0,3}, {1,3}, {2,3}, {3,3}, {4,3}, {5,3}},
+ {{0,2}, {1,2}, {2,2}, {3,2}, {4,2}, {5,2}},
+ {{0,1}, {1,1}, {2,1}, {3,1}, {4,1}, {5,1}},
+ {{0,0}, {1,0}, {2,0}, {3,0}, {4,0}, {5,0}},
+};
+#endif
diff --git a/keyboards/ergodox_ez/ergodox_ez.h b/keyboards/ergodox/ez/ez.h
index db4ec867b..124bf850e 100644
--- a/keyboards/ergodox_ez/ergodox_ez.h
+++ b/keyboards/ergodox/ez/ez.h
@@ -119,4 +119,45 @@ inline void ergodox_led_all_set(uint8_t n)
{ k0D, k1D, k2D, k3D, k4D, KC_NO } \
}
+#define KEYMAP_80( \
+ \
+ /* left hand, spatial positions */ \
+ k00,k01,k02,k03,k04,k05,k06, \
+ k10,k11,k12,k13,k14,k15,k16, \
+ k20,k21,k22,k23,k24,k25, \
+ k30,k31,k32,k33,k34,k35,k36, \
+ k40,k41,k42,k43,k44, \
+ k55,k56, \
+ k45,k46,k54, \
+ k53,k52,k51, \
+ \
+ /* right hand, spatial positions */ \
+ k07,k08,k09,k0A,k0B,k0C,k0D, \
+ k17,k18,k19,k1A,k1B,k1C,k1D, \
+ k28,k29,k2A,k2B,k2C,k2D, \
+ k37,k38,k39,k3A,k3B,k3C,k3D, \
+ k49,k4A,k4B,k4C,k4D, \
+ k57,k58, \
+ k59,k47,k48, \
+ k5C,k5B,k5A ) \
+ \
+ /* matrix positions */ \
+ { \
+ { k00, k10, k20, k30, k40, KC_NO }, \
+ { k01, k11, k21, k31, k41, k51 }, \
+ { k02, k12, k22, k32, k42, k52 }, \
+ { k03, k13, k23, k33, k43, k53 }, \
+ { k04, k14, k24, k34, k44, k54 }, \
+ { k05, k15, k25, k35, k45, k55 }, \
+ { k06, k16, KC_NO, k36, k46, k56 }, \
+ \
+ { k07, k17, KC_NO, k37, k47, k57 }, \
+ { k08, k18, k28, k38, k48, k58 }, \
+ { k09, k19, k29, k39, k49, k59 }, \
+ { k0A, k1A, k2A, k3A, k4A, k5A }, \
+ { k0B, k1B, k2B, k3B, k4B, k5B }, \
+ { k0C, k1C, k2C, k3C, k4C, k5C }, \
+ { k0D, k1D, k2D, k3D, k4D, KC_NO } \
+ }
+
#endif
diff --git a/keyboards/ergodox_ez/i2cmaster.h b/keyboards/ergodox/ez/i2cmaster.h
index 3917b9e6c..3917b9e6c 100644
--- a/keyboards/ergodox_ez/i2cmaster.h
+++ b/keyboards/ergodox/ez/i2cmaster.h
diff --git a/keyboards/ergodox/ez/keymaps/profet_80/ergodox80.png b/keyboards/ergodox/ez/keymaps/profet_80/ergodox80.png
new file mode 100644
index 000000000..66b9752eb
--- /dev/null
+++ b/keyboards/ergodox/ez/keymaps/profet_80/ergodox80.png
Binary files differ
diff --git a/keyboards/ergodox/ez/keymaps/profet_80/keymap.c b/keyboards/ergodox/ez/keymaps/profet_80/keymap.c
new file mode 100644
index 000000000..505ff2972
--- /dev/null
+++ b/keyboards/ergodox/ez/keymaps/profet_80/keymap.c
@@ -0,0 +1,183 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
+ * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | App | LGui | | Alt |Ctrl/Esc|
+ * ,------|------|------| |------+--------+------.
+ * | 1 | 2 | Home | | PgUp | 3 | 4 |
+ * |------|------|------| |------|--------|------|
+ * | Space| BkSp | End | | PgDn | Tab |Enter |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP_80( // 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(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,
+ ALT_T(KC_APP), KC_LGUI,
+ KC_1, KC_2, KC_HOME,
+ KC_SPC,KC_BSPC,KC_END,
+ // right hand
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ TG(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),GUI_T(KC_QUOT),
+ MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
+ KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1,
+ KC_LALT, CTL_T(KC_ESC),
+ KC_PGUP,KC_3, KC_4,
+ KC_PGDN,KC_TAB, KC_ENT
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | . | 0 | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * |------|------|------| |------|------|------|
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP_80(
+ // left hand
+ M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+ KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+ KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
+ KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+----------.
+ * | | | | | | | |
+ * |------|------|------| |------|------|----------|
+ * | | | | | | |BrwserBack|
+ * `--------------------' `------------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP_80(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/ez/keymaps/profet_80/readme.md b/keyboards/ergodox/ez/keymaps/profet_80/readme.md
new file mode 100644
index 000000000..b6bbb86d2
--- /dev/null
+++ b/keyboards/ergodox/ez/keymaps/profet_80/readme.md
@@ -0,0 +1,10 @@
+# ErgoDox 80 Default Configuration
+
+This is based on the default Ergodox EZ keymap.
+The difference is that this keymap supports 80 key layouts.
+If you own an 80 key Ergodox, use this as an example to get your desired keymap.
+
+**NOTE:** This layout is not physically supported by the Ergodox EZ.
+
+
+![Default80](ergodox80.png)
diff --git a/keyboards/ergodox/ez/keymaps/steno/Makefile b/keyboards/ergodox/ez/keymaps/steno/Makefile
new file mode 100644
index 000000000..b6fb9b1a8
--- /dev/null
+++ b/keyboards/ergodox/ez/keymaps/steno/Makefile
@@ -0,0 +1,3 @@
+VIRTSER_ENABLE = yes
+# Not enough interupts, so something has to go
+MOUSEKEY_ENABLE = no
diff --git a/keyboards/ergodox/ez/keymaps/steno/keymap.c b/keyboards/ergodox/ez/keymaps/steno/keymap.c
new file mode 100644
index 000000000..3e9830905
--- /dev/null
+++ b/keyboards/ergodox/ez/keymaps/steno/keymap.c
@@ -0,0 +1,324 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "sendchar.h"
+#include "virtser.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+#define TXBOLT 3 // TxBolt Steno Virtual Serial
+#define TXBOLT2 4 // TxBolt Steno Virtual Serial Alternative Layout
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Del | Q | W | E | R | T | L1 | | TX | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | BOLT |------+------+------+------+------+--------|
+ * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
+ * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | App | LGui | | Alt |Ctrl/Esc|
+ * ,------|------|------| |------+--------+------.
+ * | | | Home | | PgUp | | |
+ * | Space|Backsp|------| |------| Tab |Enter |
+ * | |ace | End | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
+ KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(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,
+ ALT_T(KC_APP), KC_LGUI,
+ KC_HOME,
+ KC_SPC,KC_BSPC,KC_END,
+ // right hand
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ TG(TXBOLT), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),
+ MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
+ KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1,
+ KC_LALT, CTL_T(KC_ESC),
+ KC_PGUP,
+ KC_PGDN,KC_TAB, KC_ENT
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | . | 0 | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+ KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+ KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
+ KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | RESET | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | |Brwser|
+ * | | |------| |------| |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+),
+// TxBolt Codes
+#define Sl 0b00000001
+#define Tl 0b00000010
+#define Kl 0b00000100
+#define Pl 0b00001000
+#define Wl 0b00010000
+#define Hl 0b00100000
+#define Rl 0b01000001
+#define Al 0b01000010
+#define Ol 0b01000100
+#define X 0b01001000
+#define Er 0b01010000
+#define Ur 0b01100000
+#define Fr 0b10000001
+#define Rr 0b10000010
+#define Pr 0b10000100
+#define Br 0b10001000
+#define Lr 0b10010000
+#define Gr 0b10100000
+#define Tr 0b11000001
+#define Sr 0b11000010
+#define Dr 0b11000100
+#define Zr 0b11001000
+#define NM 0b11010000
+#define GRPMASK 0b11000000
+#define GRP0 0b00000000
+#define GRP1 0b01000000
+#define GRP2 0b10000000
+#define GRP3 0b11000000
+/* Keymap 3: TxBolt (Serial)
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | BKSPC | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | # | # | # | # | # | | | | # | # | # | # | # | # |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | S | T | P | H | * |------| |------| * | F | P | L | T | D |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | S | K | W | R | * | | | | * | R | B | G | S | Z |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | A | O |------| |------| E | U |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// TxBolt over Serial
+[TXBOLT] = KEYMAP(
+ KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, M(NM), M(NM), M(NM), M(NM), M(NM), KC_NO,
+ KC_NO, M(Sl), M(Tl), M(Pl), M(Hl), M(X),
+ KC_NO, M(Sl), M(Kl), M(Wl), M(Rl), M(X), KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ M(Al), M(Ol), KC_NO,
+ // right hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, M(NM), M(NM), M(NM), M(NM), M(NM), M(NM),
+ M(X), M(Fr), M(Pr), M(Lr), M(Tr), M(Dr),
+ KC_NO, M(X), M(Rr), M(Br), M(Gr), M(Sr), M(Zr),
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, M(Er), M(Ur)
+),
+/* Keymap 4: TxBolt (Serial) Alternative
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | # | # | # | # | # | | | | # | # | # | # | # | # |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | S | T | P | H | * | | | | * | F | P | L | T | D |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | S | K | W | R | * |------| |------| * | R | B | G | S | Z |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | A | O | | E | U | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// TxBolt over Serial
+[TXBOLT2] = KEYMAP(
+ KC_NO, M(NM), M(NM), M(NM), M(NM), M(NM), KC_NO,
+ KC_NO, M(Sl), M(Tl), M(Pl), M(Hl), M(X), KC_NO,
+ KC_NO, M(Sl), M(Kl), M(Wl), M(Rl), M(X),
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, M(Al), M(Ol),
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, KC_NO,
+ // right hand
+ KC_NO, M(NM), M(NM), M(NM), M(NM), M(NM), M(NM),
+ KC_TRNS, M(X), M(Fr), M(Pr), M(Lr), M(Tr), M(Dr),
+ M(X), M(Rr), M(Br), M(Gr), M(Sr), M(Zr),
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ M(Er), M(Ur), KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, KC_NO
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
+};
+
+uint8_t chord[4] = {0,0,0,0};
+uint8_t pressed_count = 0;
+
+void send_chord(void)
+{
+ for(uint8_t i = 0; i < 4; i++)
+ {
+ if(chord[i])
+ virtser_send(chord[i]);
+ }
+ virtser_send(0);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record)
+{
+ // We need to track keypresses in all modes, in case the user
+ // changes mode whilst pressing other keys.
+ if (record->event.pressed)
+ pressed_count++;
+ else
+ pressed_count--;
+ return true;
+}
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+
+ if (record->event.pressed) {
+ uint8_t grp = (id & GRPMASK) >> 6;
+ chord[grp] |= id;
+ }
+ else {
+ if (pressed_count == 0) {
+ send_chord();
+ chord[0] = chord[1] = chord[2] = chord[3] = 0;
+ }
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/ez/keymaps/steno/readme.md b/keyboards/ergodox/ez/keymaps/steno/readme.md
new file mode 100644
index 000000000..d67cde2a3
--- /dev/null
+++ b/keyboards/ergodox/ez/keymaps/steno/readme.md
@@ -0,0 +1,92 @@
+# ErgoDox EZ Steno Configuration
+
+This layout has a layer that uses the TxBolt Stenograph protocol over a Virtual Serial port. It requires something like Plover in order to function.
+
+In Plover, you can select TX Bolt as the Stenotype Machine, and find the COM port that was assigned. In this way, your regular keyboard will still function normally, and you can switch back and forth between the Steno and Keyboard layers.
+
+<pre><code>
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Del | Q | W | E | R | T | L1 | | TX | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | BOLT |------+------+------+------+------+--------|
+ * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
+ * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | App | LGui | | Alt |Ctrl/Esc|
+ * ,------|------|------| |------+--------+------.
+ * | | | Home | | PgUp | | |
+ * | Space|Backsp|------| |------| Tab |Enter |
+ * | |ace | End | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | . | 0 | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+/* Keymap 2: Media keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | RESET | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| | | | | | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | |VolUp |VolDn | Mute | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | |Brwser|
+ * | | |------| |------| |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+/* Keymap 3: TxBolt (Serial)
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | BKSPC | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | # | # | # | # | # | | | | # | # | # | # | # | # |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | S | T | P | H | * |------| |------| * | F | P | L | T | D |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | S | K | W | R | * | | | | * | R | B | G | S | Z |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | A | O |------| |------| E | U |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+</code></pre>
diff --git a/keyboards/ergodox_ez/matrix.c b/keyboards/ergodox/ez/matrix.c
index dc29cf5cd..43f515259 100644
--- a/keyboards/ergodox_ez/matrix.c
+++ b/keyboards/ergodox/ez/matrix.c
@@ -33,7 +33,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "debug.h"
#include "util.h"
#include "matrix.h"
-#include "ergodox_ez.h"
+#include "ez.h"
#include "i2cmaster.h"
#ifdef DEBUG_MATRIX_SCAN_RATE
#include "timer.h"
@@ -121,7 +121,7 @@ void matrix_init(void)
matrix_scan_count = 0;
#endif
- matrix_init_kb();
+ matrix_init_quantum();
}
diff --git a/keyboards/ergodox_ez/Makefile b/keyboards/ergodox/ez/rules.mk
index 54edaed6d..64b2db815 100644
--- a/keyboards/ergodox_ez/Makefile
+++ b/keyboards/ergodox/ez/rules.mk
@@ -70,17 +70,11 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-CUSTOM_MATRIX ?= yes # Custom matrix file for the ErgoDox EZ
-SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
-NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-MIDI_ENABLE ?= no # MIDI controls
-UNICODE_ENABLE ?= yes # Unicode
+
+SLEEP_LED_ENABLE = no
+API_SYSEX_ENABLE ?= no
+RGBLIGHT_ENABLE ?= yes
ifndef QUANTUM_DIR
- include ../../Makefile
+ include ../../../Makefile
endif
diff --git a/keyboards/ergodox_ez/twimaster.c b/keyboards/ergodox/ez/twimaster.c
index f91c08e6e..f91c08e6e 100644
--- a/keyboards/ergodox_ez/twimaster.c
+++ b/keyboards/ergodox/ez/twimaster.c
diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/compile_keymap.py b/keyboards/ergodox/ez/util/compile_keymap.py
index 7076a6ecb..7076a6ecb 100644
--- a/keyboards/ergodox_ez/keymaps/german-manuneo/compile_keymap.py
+++ b/keyboards/ergodox/ez/util/compile_keymap.py
diff --git a/keyboards/ergodox_ez/util/readme.md b/keyboards/ergodox/ez/util/readme.md
index 26c5e5d99..26c5e5d99 100644
--- a/keyboards/ergodox_ez/util/readme.md
+++ b/keyboards/ergodox/ez/util/readme.md
diff --git a/keyboards/infinity_chibios/MEMO.txt b/keyboards/ergodox/infinity/MEMO.txt
index e2886aa00..e2886aa00 100644
--- a/keyboards/infinity_chibios/MEMO.txt
+++ b/keyboards/ergodox/infinity/MEMO.txt
diff --git a/keyboards/ergodox/infinity/Makefile b/keyboards/ergodox/infinity/Makefile
new file mode 100644
index 000000000..191c6bb66
--- /dev/null
+++ b/keyboards/ergodox/infinity/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/infinity_chibios/bootloader_defs.h b/keyboards/ergodox/infinity/bootloader_defs.h
index c67153be6..c67153be6 100644
--- a/keyboards/infinity_chibios/bootloader_defs.h
+++ b/keyboards/ergodox/infinity/bootloader_defs.h
diff --git a/keyboards/infinity_ergodox/chconf.h b/keyboards/ergodox/infinity/chconf.h
index d59c35eb6..d59c35eb6 100644
--- a/keyboards/infinity_ergodox/chconf.h
+++ b/keyboards/ergodox/infinity/chconf.h
diff --git a/keyboards/infinity_ergodox/config.h b/keyboards/ergodox/infinity/config.h
index d24ee0f05..9e264083b 100644
--- a/keyboards/infinity_ergodox/config.h
+++ b/keyboards/ergodox/infinity/config.h
@@ -15,8 +15,10 @@ 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
+#ifndef INFINITY_ERGODOX_CONFIG_H
+#define INFINITY_ERGODOX_CONFIG_H
+
+#include "../config.h"
/* USB Device descriptor parameter */
@@ -35,25 +37,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COLS 5
#define LOCAL_MATRIX_ROWS 9
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+#define LED_BRIGHTNESS_LO 15
+#define LED_BRIGHTNESS_HI 255
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
-//#define LOCKING_SUPPORT_ENABLE
-/* Locking resynchronize hack */
-//#define LOCKING_RESYNC_ENABLE
-
-/* key combination for command */
-#define IS_COMMAND() ( \
- keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
-)
-
-/* Keymap for Infiity prototype */
-#define INFINITY_PROTOTYPE
-
#define SERIAL_LINK_BAUD 562500
#define SERIAL_LINK_THREAD_PRIORITY (NORMALPRIO - 1)
// The visualizer needs gfx thread priorities
diff --git a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h
index 2ea73f1fb..2ea73f1fb 100644
--- a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h
+++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h
diff --git a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk
index f32d0d868..f32d0d868 100644
--- a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/driver.mk
+++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk
diff --git a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c
index 1d21f0c49..1d21f0c49 100644
--- a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c
+++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c
diff --git a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h
index bb28ad775..bb28ad775 100644
--- a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h
+++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h
diff --git a/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk
index 16c3f80f5..16c3f80f5 100644
--- a/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/driver.mk
+++ b/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk
diff --git a/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c b/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c
index babfe2b36..babfe2b36 100644
--- a/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c
+++ b/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c
diff --git a/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk
index 255434432..255434432 100644
--- a/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/driver.mk
+++ b/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk
diff --git a/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/emulator_led.c b/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c
index b0ebcdc47..b0ebcdc47 100644
--- a/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/emulator_led.c
+++ b/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c
diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h
index 290571ce5..290571ce5 100644
--- a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h
+++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h
diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk
index 889a1a031..889a1a031 100644
--- a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/driver.mk
+++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk
diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c
index c33aea81a..c33aea81a 100644
--- a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c
+++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c
diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h
index 48587b9e1..48587b9e1 100644
--- a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h
+++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h
diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/st7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h
index 48636b33d..48636b33d 100644
--- a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/st7565.h
+++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h
diff --git a/keyboards/infinity_ergodox/gfxconf.h b/keyboards/ergodox/infinity/gfxconf.h
index 8caa577b7..8caa577b7 100644
--- a/keyboards/infinity_ergodox/gfxconf.h
+++ b/keyboards/ergodox/infinity/gfxconf.h
diff --git a/keyboards/infinity_ergodox/halconf.h b/keyboards/ergodox/infinity/halconf.h
index 55dd5e88d..55dd5e88d 100644
--- a/keyboards/infinity_ergodox/halconf.h
+++ b/keyboards/ergodox/infinity/halconf.h
diff --git a/keyboards/infinity_ergodox/infinity_ergodox.c b/keyboards/ergodox/infinity/infinity.c
index 87ed40fab..02db67eaf 100644
--- a/keyboards/infinity_ergodox/infinity_ergodox.c
+++ b/keyboards/ergodox/infinity/infinity.c
@@ -1,8 +1,10 @@
-#include "infinity_ergodox.h"
+#include "infinity.h"
#include "ch.h"
#include "hal.h"
#include "serial_link/system/serial_link.h"
+#ifdef VISUALIZER_ENABLE
#include "lcd_backlight.h"
+#endif
void init_serial_link_hal(void) {
PORTA->PCR[1] = PORTx_PCRn_PE | PORTx_PCRn_PS | PORTx_PCRn_PFE | PORTx_PCRn_MUX(2);
@@ -36,7 +38,6 @@ void init_serial_link_hal(void) {
// Using a higher pre-scalar without flicker is possible but FTM0_MOD will need to be reduced
// Which will reduce the brightness range
#define PRESCALAR_DEFINE 0
-
void lcd_backlight_hal_init(void) {
// Setup Backlight
SIM->SCGC6 |= SIM_SCGC6_FTM0;
@@ -74,3 +75,84 @@ void lcd_backlight_hal_color(uint16_t r, uint16_t g, uint16_t b) {
CHANNEL_GREEN.CnV = g;
CHANNEL_BLUE.CnV = b;
}
+
+__attribute__ ((weak))
+void matrix_init_user(void) {
+}
+
+__attribute__ ((weak))
+void matrix_scan_user(void) {
+}
+
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+ // The backlight always has to be initialized, otherwise it will stay lit
+#ifndef VISUALIZER_ENABLE
+ lcd_backlight_hal_init();
+#endif
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+void ergodox_board_led_on(void){
+}
+
+void ergodox_right_led_1_on(void){
+}
+
+void ergodox_right_led_2_on(void){
+}
+
+void ergodox_right_led_3_on(void){
+}
+
+void ergodox_right_led_on(uint8_t led){
+}
+
+void ergodox_board_led_off(void){
+}
+
+void ergodox_right_led_1_off(void){
+}
+
+void ergodox_right_led_2_off(void){
+}
+
+void ergodox_right_led_3_off(void){
+}
+
+void ergodox_right_led_off(uint8_t led){
+}
+
+#ifdef ONEHAND_ENABLE
+__attribute__ ((weak))
+const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
+ {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}},
+ {{0, 10}, {1, 10}, {2, 10}, {3, 10}, {4, 10}},
+ {{0, 11}, {1, 11}, {2, 11}, {3, 11}, {4, 11}},
+ {{0, 12}, {1, 12}, {2, 12}, {3, 12}, {4, 12}},
+ {{0, 13}, {1, 13}, {2, 13}, {3, 13}, {4, 13}},
+ {{0, 14}, {1, 14}, {2, 14}, {3, 14}, {4, 14}},
+ {{0, 15}, {1, 15}, {2, 15}, {3, 15}, {4, 15}},
+ {{0, 16}, {1, 16}, {2, 16}, {3, 16}, {4, 16}},
+ {{0, 17}, {1, 17}, {2, 17}, {3, 17}, {4, 17}},
+ {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}},
+ {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}},
+ {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}},
+ {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}},
+ {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}},
+ {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}},
+ {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}},
+ {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}},
+ {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}},
+};
+#endif
diff --git a/keyboards/ergodox/infinity/infinity.h b/keyboards/ergodox/infinity/infinity.h
new file mode 100644
index 000000000..fec9e565c
--- /dev/null
+++ b/keyboards/ergodox/infinity/infinity.h
@@ -0,0 +1,110 @@
+#ifndef KEYBOARDS_ERGODOX_INFINITY_INFINITY_H_
+#define KEYBOARDS_ERGODOX_INFINITY_INFINITY_H_
+
+#include "quantum.h"
+
+void ergodox_board_led_on(void);
+void ergodox_right_led_1_on(void);
+void ergodox_right_led_2_on(void);
+void ergodox_right_led_3_on(void);
+void ergodox_right_led_on(uint8_t led);
+
+void ergodox_board_led_off(void);
+void ergodox_right_led_1_off(void);
+void ergodox_right_led_2_off(void);
+void ergodox_right_led_3_off(void);
+void ergodox_right_led_off(uint8_t led);
+
+inline void ergodox_led_all_on(void)
+{
+ ergodox_board_led_on();
+ ergodox_right_led_1_on();
+ ergodox_right_led_2_on();
+ ergodox_right_led_3_on();
+}
+
+inline void ergodox_led_all_off(void)
+{
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+}
+
+inline void ergodox_right_led_1_set(uint8_t n){
+ if (n) {
+ ergodox_right_led_1_on();
+ } else {
+ ergodox_right_led_1_off();
+ }
+}
+
+inline void ergodox_right_led_2_set(uint8_t n){
+ if (n) {
+ ergodox_right_led_2_on();
+ } else {
+ ergodox_right_led_2_off();
+ }
+}
+
+inline void ergodox_right_led_3_set(uint8_t n){
+ if (n) {
+ ergodox_right_led_3_on();
+ } else {
+ ergodox_right_led_3_off();
+ }
+}
+
+inline void ergodox_right_led_set(uint8_t led, uint8_t n){
+ if (n) {
+ ergodox_right_led_on(led);
+ } else {
+ ergodox_right_led_off(led);
+ }
+}
+
+inline void ergodox_led_all_set(uint8_t n) {
+ ergodox_right_led_1_set(n);
+ ergodox_right_led_2_set(n);
+ ergodox_right_led_3_set(n);
+}
+
+#define KEYMAP( \
+ A80, A70, A60, A50, A40, A30, A20, \
+ A81, A71, A61, A51, A41, A31, A21, \
+ A82, A72, A62, A52, A42, A32, \
+ A83, A73, A63, A53, A43, A33, A23, \
+ A84, A74, A64, A54, A44, \
+ A13, A03, \
+ A04, \
+ A34, A24, A14, \
+ B20, B30, B40, B50, B60, B70, B80, \
+ B21, B31, B41, B51, B61, B71, B81, \
+ B32, B42, B52, B62, B72, B82, \
+ B23, B33, B43, B53, B63, B73, B83, \
+ B44, B54, B64, B74, B84, \
+ B03, B13, \
+ B04, \
+ B14, B24, B34 \
+) { \
+ { KC_NO, KC_NO, KC_NO, A03, A04 }, \
+ { KC_NO, KC_NO, KC_NO, A13, A14 }, \
+ { A20, A21, KC_NO, A23, A24 }, \
+ { A30, A31, A32, A33, A34 }, \
+ { A40, A41, A42, A43, A44 }, \
+ { A50, A51, A52, A53, A54 }, \
+ { A60, A61, A62, A63, A64 }, \
+ { A70, A71, A72, A73, A74 }, \
+ { A80, A81, A82, A83, A84 }, \
+ { KC_NO, KC_NO, KC_NO, B03, B04 }, \
+ { KC_NO, KC_NO, KC_NO, B13, B14 }, \
+ { B20, B21, KC_NO, B23, B24 }, \
+ { B30, B31, B32, B33, B34 }, \
+ { B40, B41, B42, B43, B44 }, \
+ { B50, B51, B52, B53, B54 }, \
+ { B60, B61, B62, B63, B64 }, \
+ { B70, B71, B72, B73, B74 }, \
+ { B80, B81, B82, B83, B84 } \
+}
+
+#endif /* KEYBOARDS_ERGODOX_INFINITY_INFINITY_H_ */
diff --git a/keyboards/ergodox/infinity/led.c b/keyboards/ergodox/infinity/led.c
new file mode 100644
index 000000000..8175c1c5c
--- /dev/null
+++ b/keyboards/ergodox/infinity/led.c
@@ -0,0 +1,26 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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/>.
+*/
+
+#include "hal.h"
+
+#include "led.h"
+
+
+void led_set(uint8_t usb_led) {
+ //TODO: Add led emulation if there's no customized visualization
+ (void)usb_led;
+}
diff --git a/keyboards/infinity_ergodox/matrix.c b/keyboards/ergodox/infinity/matrix.c
index 2b806cd64..1fda90484 100644
--- a/keyboards/infinity_ergodox/matrix.c
+++ b/keyboards/ergodox/infinity/matrix.c
@@ -63,6 +63,8 @@ void matrix_init(void)
memset(matrix, 0, MATRIX_ROWS);
memset(matrix_debouncing, 0, LOCAL_MATRIX_ROWS);
+
+ matrix_init_quantum();
}
uint8_t matrix_scan(void)
@@ -127,6 +129,7 @@ uint8_t matrix_scan(void)
}
debouncing = false;
}
+ matrix_scan_quantum();
return 1;
}
diff --git a/keyboards/infinity_ergodox/mcuconf.h b/keyboards/ergodox/infinity/mcuconf.h
index f6730b99c..f6730b99c 100644
--- a/keyboards/infinity_ergodox/mcuconf.h
+++ b/keyboards/ergodox/infinity/mcuconf.h
diff --git a/keyboards/ergodox/infinity/rules.mk b/keyboards/ergodox/infinity/rules.mk
new file mode 100644
index 000000000..473a6dfec
--- /dev/null
+++ b/keyboards/ergodox/infinity/rules.mk
@@ -0,0 +1,79 @@
+# project specific files
+SRC = matrix.c \
+ led.c
+
+## chip/board settings
+# - the next two should match the directories in
+# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
+# - For Teensies, FAMILY = KINETIS and SERIES is either
+# KL2x (LC) or K20x (3.0,3.1,3.2).
+# - For Infinity KB, SERIES = K20x
+MCU_FAMILY = KINETIS
+MCU_SERIES = K20x
+
+# Linker script to use
+# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
+# or <this_dir>/ld/
+# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
+# - LDSCRIPT =
+# - MKL26Z64 for Teensy LC
+# - MK20DX128 for Teensy 3.0
+# - MK20DX256 for Teensy 3.1 and 3.2
+# - MK20DX128BLDR4 for Infinity 60% with Kiibohd bootloader
+# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader
+MCU_LDSCRIPT = MK20DX256BLDR8
+
+# Startup code to use
+# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
+# - STARTUP =
+# - kl2x for Teensy LC
+# - k20x5 for Teensy 3.0 and Infinity 60%
+# - k20x7 for Teensy 3.1, 3.2 and Infinity ErgoDox
+MCU_STARTUP = k20x7
+
+# Board: it should exist either in <chibios>/os/hal/boards/
+# or <this_dir>/boards
+# - BOARD =
+# - PJRC_TEENSY_LC for Teensy LC
+# - PJRC_TEENSY_3 for Teensy 3.0
+# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2
+# - MCHCK_K20 for Infinity KB
+#BOARD = MCHCK_K20
+BOARD = PJRC_TEENSY_3_1
+
+# Cortex version
+# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
+MCU = cortex-m4
+
+# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
+# I.e. 6 for Teensy LC; 7 for Teensy 3.x
+ARMV = 7
+
+# Vector table for application
+# 0x00000000-0x00001000 area is occupied by bootlaoder.*/
+# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
+OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000
+
+# Build Options
+# comment out to disable the options.
+#
+CUSTOM_MATRIX ?= yes # Custom matrix file
+SERIAL_LINK_ENABLE = yes
+VISUALIZER_ENABLE ?= no #temporarily disabled to make everything compile
+LCD_ENABLE ?= yes
+LED_ENABLE ?= yes
+LCD_BACKLIGHT_ENABLE ?= yes
+MIDI_ENABLE = no
+RGBLIGHT_ENABLE = no
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif
+
+ifdef LCD_ENABLE
+include $(SUBPROJECT_PATH)/drivers/gdisp/st7565ergodox/driver.mk
+endif
+
+ifdef LED_ENABLE
+include $(SUBPROJECT_PATH)/drivers/gdisp/IS31FL3731C/driver.mk
+endif
diff --git a/keyboards/ergodox_ez/keymaps/ab/Makefile b/keyboards/ergodox/keymaps/ab/Makefile
index b673c5ce5..b673c5ce5 100644
--- a/keyboards/ergodox_ez/keymaps/ab/Makefile
+++ b/keyboards/ergodox/keymaps/ab/Makefile
diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json b/keyboards/ergodox/keymaps/ab/keyboard-layout.json
index e2badad4d..e2badad4d 100644
--- a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json
+++ b/keyboards/ergodox/keymaps/ab/keyboard-layout.json
diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png b/keyboards/ergodox/keymaps/ab/keyboard-layout.png
index 740684461..740684461 100644
--- a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png
+++ b/keyboards/ergodox/keymaps/ab/keyboard-layout.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/ab/keymap.c b/keyboards/ergodox/keymaps/ab/keymap.c
index df6f33460..7938c9da3 100644
--- a/keyboards/ergodox_ez/keymaps/ab/keymap.c
+++ b/keyboards/ergodox/keymaps/ab/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/ab/readme.md b/keyboards/ergodox/keymaps/ab/readme.md
index 6b1ac2be3..4ad80efe6 100644
--- a/keyboards/ergodox_ez/keymaps/ab/readme.md
+++ b/keyboards/ergodox/keymaps/ab/readme.md
@@ -8,7 +8,7 @@ Beginner's keymap emulates standard QWERTY keyboard for beginners. Once you get
* Easy on beginners. It has everything you need for your day to day usage.
#### Cons
-* Keys are not ergonomically placed to take full advantage of Ergodox-EZ. Take a look at this [Default Keymap](https://github.com/jackhumbert/qmk_firmware/blob/master/keyboards/ergodox_ez/keymaps/default/readme.md)
+* Keys are not ergonomically placed to take full advantage of Ergodox-EZ. Take a look at this [Default Keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/ergodox/keymaps/default/readme.md)
* While multiple layers are possible, beginner's keymap only uses one additional layer for mouse, function and volume keys.
#### Notes
diff --git a/keyboards/ergodox/keymaps/absenth/absenth_highres.png b/keyboards/ergodox/keymaps/absenth/absenth_highres.png
new file mode 100644
index 000000000..c07aa8803
--- /dev/null
+++ b/keyboards/ergodox/keymaps/absenth/absenth_highres.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/default/keymap.c b/keyboards/ergodox/keymaps/absenth/keymap.c
index b48a54a43..ded668e13 100644
--- a/keyboards/ergodox_ez/keymaps/default/keymap.c
+++ b/keyboards/ergodox/keymaps/absenth/keymap.c
@@ -1,6 +1,7 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
+#include "version.h"
#define BASE 0 // default layer
#define SYMB 1 // symbols
@@ -14,9 +15,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
+ * | BkSp | A/L2 | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
+ * | LS/PO |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RS/PC |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
* `----------------------------------' `----------------------------------'
@@ -34,8 +35,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// 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(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),
+ KC_BSPC, LT(MDIA, KC_A), KC_S, KC_D, KC_F, KC_G,
+ KC_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
ALT_T(KC_APP), KC_LGUI,
KC_HOME,
@@ -44,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
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),GUI_T(KC_QUOT),
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
+ MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSPC,
KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1,
KC_LALT, CTL_T(KC_ESC),
KC_PGUP,
@@ -99,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | MsUp | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
+ * | | |MsLeft|MsDown|MsRght| |------| |------| left | down | up | down | | Play |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | Prev | Next | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
@@ -109,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | |Brwser|
- * | | |------| |------| |Back |
+ * | Lclk | Rclk |------| |------| |Back |
* | | | | | | | |
* `--------------------' `--------------------'
*/
@@ -122,11 +123,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
KC_TRNS, KC_TRNS,
KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_BTN1, KC_BTN2, KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,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,
diff --git a/keyboards/ergodox/keymaps/absenth/readme.md b/keyboards/ergodox/keymaps/absenth/readme.md
new file mode 100644
index 000000000..0c04bf417
--- /dev/null
+++ b/keyboards/ergodox/keymaps/absenth/readme.md
@@ -0,0 +1,11 @@
+# ErgoDox EZ Absenth Configuration
+
+## Changelog
+
+
+* Sept. 14, 2016 (V0.2):
+ * Added Space Cadet to Left and Right Shift. Pressing Left shift with no other key adds an "(" and pressing Right shift with no other key adds an ")"
+* Sept. 8, 2016 (V0.1):
+ * Made A key double as MEDIA Layer change when you hold it. Added mouse buttons to the large thumb buttons on the left side on the Media Layer. Added vi/vim style arrow keys on HJKL on media layer.
+
+![Absenth](absenth_highres.png)
diff --git a/keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c b/keyboards/ergodox/keymaps/adnw_k_o_y/keymap.c
index 052517d70..31ae4262b 100644
--- a/keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c
+++ b/keyboards/ergodox/keymaps/adnw_k_o_y/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "keymap_german.h"
diff --git a/keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md b/keyboards/ergodox/keymaps/adnw_k_o_y/readme.md
index f0dd3815c..f0dd3815c 100644
--- a/keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md
+++ b/keyboards/ergodox/keymaps/adnw_k_o_y/readme.md
diff --git a/keyboards/ergodox/keymaps/albert/Makefile b/keyboards/ergodox/keymaps/albert/Makefile
new file mode 100644
index 000000000..eb8544afe
--- /dev/null
+++ b/keyboards/ergodox/keymaps/albert/Makefile
@@ -0,0 +1,5 @@
+COMMAND_ENABLE = no # Commands for debug and configuration
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/ergodox/keymaps/albert/config.h b/keyboards/ergodox/keymaps/albert/config.h
new file mode 100644
index 000000000..e6d363117
--- /dev/null
+++ b/keyboards/ergodox/keymaps/albert/config.h
@@ -0,0 +1,12 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+/* using UK layout for space-cadet-shift */
+#define LSPO_KEY KC_9
+#define RSPC_KEY KC_0
+
+#define LEADER_TIMEOUT 800 // leader key sequence timeout in millis
+
+#endif
diff --git a/keyboards/ergodox/keymaps/albert/keymap.c b/keyboards/ergodox/keymaps/albert/keymap.c
new file mode 100644
index 000000000..dfbb311bd
--- /dev/null
+++ b/keyboards/ergodox/keymaps/albert/keymap.c
@@ -0,0 +1,661 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+
+#include <stdarg.h>
+
+/* use UK keymap */
+
+#define UK_HASH KC_NONUS_HASH
+#define UK_BSLS KC_NONUS_BSLASH
+#define UK_PIPE LSFT(UK_BSLS)
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define NUMB 2 // numbers and hex
+#define CRSR 3 // cursor keys
+#define MOUS 4 // mouse keys
+#define KEYW 5 // keyword macros
+#define EMAC 6 // emacs
+
+// my macros
+#define UM_ECET M(0) // { }
+#define UM_0x M(1)
+#define UM_PUB M(2)
+#define UM_PRO M(3)
+#define UM_PRV M(4)
+#define UM_CLS M(5)
+#define UM_STR M(6)
+#define UM_RET M(7)
+#define UM_INC M(8)
+#define UM_OBJ M(9)
+#define UM_GITLOG M(10)
+#define UM_GOODM M(11)
+#define UM_NAMESP M(12)
+#define UM_EMTR M(14) // emacs toggle read-only
+#define UM_EMWR M(15) // emacs write buffer (save)
+#define UM_EMUN M(16) // emacs undo
+#define UM_EMRE M(17) // emacs redo
+#define UM_EMPB M(18) // emacs previous buffer
+#define UM_EMNB M(19) // emacs next buffer
+#define UM_GOODN M(20)
+#define UM_ECETS M(22) // { };
+#define UM_TMPL M(23)
+#define UM_TYPN M(24)
+#define UM_CONT M(25)
+#define UM_BREAK M(26)
+#define UM_CONST M(27)
+#define UM_SMILY M(28)
+#define UM_SADF M(29)
+#define UM_SCARF M(30)
+#define UM_DECAF M(31)
+#define UM_OPER M(32)
+#define UM_NULP M(33)
+#define UM_EXTR M(34)
+#define UM_VIRT M(35)
+#define UM_EMFB M(36) // emacs font bigger
+#define UM_EMFS M(37) // emacs font smaller
+#define UM_VOLAT M(38)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Base layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | SfLt | | SfRt | 6 | 7 | 8 | 9 | 0 | BkSp |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | Del |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Caps/L2| A | S | D | F | G |------| |------| H | J | K | L | ; |Enter/L2|
+ * |--------+------+------+------+------+------| L6 | | L6 |------+------+------+------+------+--------|
+ * | LSft/( | Z | X | C | V/L3 | B/L4 | | | | N/L4 | M/L3 | , | . | / | RSft/) |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Ctrl/[| Alt/]| # | Left |Right | | Up | Down | - | Alt/[|Ctrl/]|
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | L2 | lead | | lead | Ins |
+ * ,------|------|------| |------+------+------.
+ * | Space| BkSp | Home | | PgUp | Enter|Space |
+ * | / | / |------| |------| / | / |
+ * | Ctrl | Alt |End/L5| |PDn/L5| Alt | Ctrl |
+ * `--------------------' `--------------------'
+ */
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_LEFT),
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB),
+ LT(NUMB, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSPO, KC_Z, KC_X, KC_C, LT(CRSR, KC_V), LT(MOUS, KC_B), MO(EMAC),
+ CTL_T(KC_LBRC), ALT_T(KC_RBRC), UK_HASH, KC_LEFT, KC_RGHT,
+ TG(NUMB), KC_LEAD,
+ KC_HOME,
+ CTL_T(KC_SPC), ALT_T(KC_BSPC), LT(KEYW, KC_END),
+ // right hand
+ LSFT(KC_RGHT), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ MO(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DELT,
+ KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(NUMB, KC_ENT),
+ MO(EMAC), LT(MOUS, KC_N), LT(CRSR, KC_M), KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
+ KC_UP, KC_DOWN, KC_MINS, ALT_T(KC_LBRC), CTL_T(KC_RBRC),
+ KC_LEAD, KC_INS,
+ KC_PGUP,
+ LT(KEYW, KC_PGDN), ALT_T(KC_ENT), CTL_T(KC_SPC)
+ ),
+/* Keymap 1: Symbol Layer with F keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ## | F1 | F2 | F3 | F4 | F5 | ## | | ## | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
+ * | ## | ! | " | £ | $ | % | ## | | ## | - | + | = | @ | ~ | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | ## | ^ | & | * | _ | # |------| |------| { | } | ; | ' | # | ## |
+ * |--------+------+------+------+------+------| ## | | ## |------+------+------+------+------+--------|
+ * | ## | \ | | | ` | - | / | | | | [ | ] | < | > | ? | ## |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | ## | ## | ## | ## | ## | | ## | ## | ## | ## | ## |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | ## | ## | | ## | ## |
+ * ,------|------|------| |------+------+------.
+ * | | | ## | | ## | | |
+ * | ## | ## |------| |------| ## | ## |
+ * | | | ## | | ## | | |
+ * `--------------------' `--------------------'
+ */
+[SYMB] = KEYMAP(
+ // left hand
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS, KC_EXLM, LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), KC_TRNS,
+ KC_TRNS, LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_MINS), UK_HASH,
+ KC_TRNS, UK_BSLS, UK_PIPE, KC_GRV, KC_MINS, KC_SLSH, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_MINS, KC_PLUS, KC_EQL, LSFT(KC_QUOT), LSFT(UK_HASH), KC_F12,
+ KC_LCBR, KC_RCBR, KC_SCLN, KC_QUOT, UK_HASH, KC_TRNS,
+ KC_TRNS, KC_LBRC, KC_RBRC, LSFT(KC_COMM), LSFT(KC_DOT), LSFT(KC_SLSH), KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+/* Keymap 2: Numerics and hex
+ *
+ * ,---------------------------------------------------. ,--------------------------------------------------.
+ * | ## | A | B | C | D | E | F | | A | B | C | D | E | F | ## |
+ * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
+ * | ## | * | 7 | 8 | 9 | * | 0x | | 0x | * | 7 | 8 | 9 | * | ## |
+ * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | ## | / | 4 | 5 | 6 | / |------| |------| / | 4 | 5 | 6 | / | ## |
+ * |---------+------+------+------+------+------| ## | | ## |------+------+------+------+------+--------|
+ * | ## | - | 1 | 2 | 3 | - | | | | - | 1 | 2 | 3 | - | ## |
+ * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | = | + | 0 | , | . | | 0 | , | . | + | = |
+ * `-----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | ## | ## | | ## | ## |
+ * ,------|------|------| |------+------+------.
+ * | | | ## | | ## | | |
+ * | ## | ## |------| |------| ## | ## |
+ * | | | ## | | ## | | |
+ * `--------------------' `--------------------'
+ */
+[NUMB] = KEYMAP(
+ // left hand
+ KC_TRNS, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F,
+ KC_TRNS, KC_ASTR, KC_7, KC_8, KC_9, KC_ASTR, UM_0x,
+ KC_TRNS, KC_SLSH, KC_4, KC_5, KC_6, KC_SLSH,
+ KC_TRNS, KC_MINS, KC_1, KC_2, KC_3, KC_MINS, KC_TRNS,
+ KC_EQL, KC_PLUS, KC_0, KC_COMM, KC_DOT,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_TRNS,
+ UM_0x, KC_ASTR, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS,
+ KC_SLSH, KC_4, KC_5, KC_6, KC_SLSH, KC_TRNS,
+ KC_TRNS, KC_MINS, KC_1, KC_2, KC_3, KC_MINS, KC_TRNS,
+ KC_0, KC_COMM, KC_DOT, KC_PLUS, KC_EQL,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+/* Keymap 3: Cursor movement
+ *
+ * ,---------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
+ * | | Home | | Up | | PgUp | | | | PgUp | | Up | | Home | |
+ * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | End | Left | Down | Right| PgDn |------| |------| PgDn | Left | Down | Right| End | |
+ * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | ## | Up | | Down | ## | | | | | | ## | Down | | Up | ## |
+ * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | Left | Down | Right| | | | | | Left | Down | Right|
+ * `-----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | ## | ## |------| |------| ## | ## |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[CRSR] = KEYMAP(
+ // left hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_HOME, KC_NO, KC_UP, KC_NO, KC_PGUP, KC_NO,
+ KC_NO, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN,
+ KC_TRNS, KC_UP, KC_NO, KC_DOWN, KC_TRNS, KC_NO, KC_NO,
+ KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_TRNS, KC_TRNS, KC_NO,
+ // right hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_PGUP, KC_NO, KC_UP, KC_NO, KC_HOME, KC_NO,
+ KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_NO,
+ KC_NO, KC_NO, KC_TRNS, KC_DOWN, KC_NO, KC_UP, KC_TRNS,
+ KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_TRNS, KC_TRNS
+ ),
+/* Keymap 4: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | Lclk | MsUp | Rclk | | | | | | Lclk | MsUp | Rclk | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| |MsLeft|MsDown|MsRght| | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Lclk | MsUp | Rclk |MsDown| | ## | | | | ## | |MsDown| Lclk | MsUp | Rclk |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |MsLeft|MsDown|MsRight | | | | |MsLeft|MsDown|MsRght|
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[MOUS] = KEYMAP(
+ // left hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO,
+ KC_BTN1, KC_MS_U, KC_BTN2, KC_MS_D, KC_NO, KC_TRNS, KC_NO,
+ KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, KC_NO,
+ // right hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, KC_NO, KC_NO,
+ KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO,
+ KC_NO, KC_TRNS, KC_NO, KC_MS_D, KC_BTN1, KC_MS_U, KC_BTN2,
+ KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, KC_NO
+ ),
+/* Keymap 5: Keywords
+ *
+ * ,---------------------------------------------------. ,--------------------------------------------------.
+ * | | | | scarf| sadf | smily| | | | decaf| | | | | |
+ * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
+ * | | const| volat| oper | ret | tmpl | | | | typen| cont | prv | pro | pub | |
+ * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | str | obj | | gitl |------| |------| | | | nulp | | |
+ * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | extr | cls | virt | break| | | |namesp| goodm| goodn| | | |
+ * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | inc | | | | | | | | |
+ * `-----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | ecet | ecets|
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | ## | | ## | | |
+ * `--------------------' `--------------------'
+ */
+[KEYW] = KEYMAP(
+ // left hand
+ KC_NO, KC_NO, KC_NO, UM_SCARF, UM_SADF, UM_SMILY, KC_NO,
+ KC_NO, UM_CONST, UM_VOLAT, UM_OPER, UM_RET, UM_TMPL, KC_NO,
+ KC_NO, KC_NO, UM_STR, UM_OBJ, KC_NO, UM_GITLOG,
+ KC_NO, KC_NO, UM_EXTR, UM_CLS, UM_VIRT, UM_BREAK, KC_NO,
+ KC_NO, KC_NO, UM_INC, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, KC_TRNS,
+ // right hand
+ KC_NO, UM_DECAF, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, UM_TYPN, UM_CONT, UM_PRV, UM_PRO, UM_PUB, KC_NO,
+ KC_NO, KC_NO, KC_NO, UM_NULP, KC_NO, KC_NO,
+ KC_NO, UM_NAMESP, UM_GOODM, UM_GOODN, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ UM_ECET, UM_ECETS,
+ KC_NO,
+ KC_TRNS, KC_NO, KC_NO
+ ),
+/* Keymap 6: emacs
+ *
+ * ,---------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | empb | | emnb | emfs | emfb | | | | |
+ * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
+ * | | emtr | | | | | | | | emun | emre | w-up | | | |
+ * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | emwr | | | |------| |------| |w-left|w-down|w-rght| | |
+ * |---------+------+------+------+------+------| ## | | ## |------+------+------+------+------+--------|
+ * | | | | | | | | | | | |w-down| | | |
+ * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `-----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[EMAC] = KEYMAP(
+ // left hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, UM_EMPB,
+ KC_NO, UM_EMTR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, UM_EMWR, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, 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, KC_NO, KC_NO,
+ // right hand
+ UM_EMNB, UM_EMFS, UM_EMFB, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, UM_EMUN, UM_EMRE, LSFT(KC_UP), KC_NO, KC_NO, KC_NO,
+ KC_NO, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_RGHT), KC_NO, KC_NO,
+ KC_TRNS, KC_NO, KC_NO, LSFT(KC_DOWN), KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, KC_NO
+ ),
+};
+
+enum next_key_down_up {
+ NK_DOWN_UP,
+ NK_DOWN,
+ NK_UP // a bit of a hack, this works as long as NK_UP < KC_A
+};
+
+void send_keystrokes(uint8_t key, ...)
+{
+ va_list vl;
+ va_start(vl, key);
+ enum next_key_down_up nkdu = NK_DOWN_UP;
+ while (key != KC_NO) {
+ if (key < KC_A) {
+ nkdu = key;
+ } else {
+ switch (nkdu) {
+ case NK_DOWN_UP:
+ register_code(key);
+ case NK_UP:
+ unregister_code(key);
+ break;
+ case NK_DOWN:
+ register_code(key);
+ }
+ nkdu = NK_DOWN_UP;
+ }
+ key = va_arg(vl, int);
+ }
+ va_end(vl);
+}
+
+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) {
+ return MACRO(T(ENT), D(LSFT), T(LBRC), U(LSFT), T(ENT),
+ D(LSFT), T(RBRC), U(LSFT), T(UP),
+ T(TAB), END);
+ }
+ break;
+ case 1:
+ if (record->event.pressed) {
+ return MACRO(T(0), T(X), END);
+ }
+ break;
+ case 2:
+ if (record->event.pressed) {
+ SEND_STRING("public");
+ }
+ break;
+ case 3:
+ if (record->event.pressed) {
+ SEND_STRING("protected");
+ }
+ break;
+ case 4:
+ if (record->event.pressed) {
+ SEND_STRING("private");
+ }
+ break;
+ case 5: // class
+ if (record->event.pressed) {
+ return MACRO(T(C), T(L), T(A), T(S), T(S), T(ENT),
+ D(LSFT), T(LBRC), U(LSFT), T(ENT),
+ T(P), T(U), T(B), T(L), T(I), T(C),
+ D(LSFT), T(SCLN), U(LSFT), T(ENT), T(ENT),
+ T(P), T(R), T(I), T(V), T(A), T(T), T(E),
+ D(LSFT), T(SCLN), U(LSFT), T(ENT),
+ D(LSFT), T(RBRC), U(LSFT), T(SCLN), T(ENT),
+ T(UP), T(UP), T(UP), T(UP), T(UP), T(UP), T(UP),
+ T(END), T(SPC), END);
+ }
+ break;
+ case 6: // struct
+ if (record->event.pressed) {
+ return MACRO(T(S), T(T), T(R), T(U), T(C), T(T), T(ENT),
+ D(LSFT), T(LBRC), U(LSFT), T(ENT),
+ D(LSFT), T(RBRC), U(LSFT), T(SCLN), T(ENT),
+ T(UP), T(UP), T(UP), T(UP),
+ T(END), T(SPC), END);
+ }
+ break;
+ case 7:
+ if (record->event.pressed) {
+ SEND_STRING("return");
+ }
+ break;
+ case 8: // #include
+ if (record->event.pressed) {
+ return MACRO(T(NONUS_HASH), T(I), T(N), T(C), T(L), T(U), T(D), T(E), END);
+ }
+ break;
+ case 9:
+ if (record->event.pressed) {
+ SEND_STRING("objdump -CT -x -d");
+ }
+ break;
+ case 10:
+ if (record->event.pressed) {
+ SEND_STRING("git log --oneline --graph --decorate=short");
+ }
+ break;
+ case 11:
+ if (record->event.pressed) {
+ SEND_STRING("good morning");
+ }
+ break;
+ case 12:
+ if (record->event.pressed) {
+ SEND_STRING("namespace");
+ }
+ break;
+ case 14: // emacs toggle read-only
+ if (record->event.pressed) {
+ return MACRO(D(LCTL), T(X), T(Q), U(LCTL), END);
+ }
+ break;
+ case 15: // emacs write buffer
+ if (record->event.pressed) {
+ return MACRO(D(LCTL), T(X), T(S), U(LCTL), END);
+ }
+ break;
+ case 16: // emacs undo
+ if (record->event.pressed) {
+ return MACRO(D(LCTL), D(LSFT), T(MINS), U(LSFT), U(LCTL), END);
+ }
+ break;
+ case 17: // emacs redo
+ if (record->event.pressed) {
+ return MACRO(D(LALT), D(LSFT), T(MINS), U(LSFT), U(LALT), END);
+ }
+ break;
+ case 18: // emacs previous buffer
+ if (record->event.pressed) {
+ return MACRO(D(LCTL), T(X), U(LCTL), T(LEFT), END);
+ }
+ break;
+ case 19: // emacs next buffer
+ if (record->event.pressed) {
+ return MACRO(D(LCTL), T(X), U(LCTL), T(RGHT), END);
+ }
+ break;
+ case 20:
+ if (record->event.pressed) {
+ SEND_STRING("good night");
+ }
+ break;
+ case 22: // { };
+ if (record->event.pressed) {
+ return MACRO(T(ENT), D(LSFT), T(LBRC), U(LSFT), T(ENT),
+ D(LSFT), T(RBRC), U(LSFT), T(SCLN), T(UP),
+ T(TAB), END);
+ }
+ break;
+ case 23:
+ if (record->event.pressed) {
+ SEND_STRING("template");
+ }
+ break;
+ case 24:
+ if (record->event.pressed) {
+ SEND_STRING("typename");
+ }
+ break;
+ case 25:
+ if (record->event.pressed) {
+ SEND_STRING("continue");
+ return MACRO(T(SCLN), END);
+ }
+ break;
+ case 26:
+ if (record->event.pressed) {
+ SEND_STRING("break");
+ return MACRO(T(SCLN), END);
+ }
+ break;
+ case 27:
+ if (record->event.pressed) {
+ SEND_STRING("const");
+ }
+ break;
+ case 28:
+ if (record->event.pressed) {
+ SEND_STRING(":-)");
+ }
+ break;
+ case 29:
+ if (record->event.pressed) {
+ SEND_STRING(":-(");
+ }
+ break;
+ case 30: // dazed
+ if (record->event.pressed) {
+ send_keystrokes(NK_DOWN, KC_LSFT, KC_8, KC_MINS, KC_8, NK_UP, KC_LSFT, KC_NO);
+ }
+ break;
+ case 31: // decaf
+ if (record->event.pressed) {
+ send_keystrokes(NK_DOWN, KC_LSFT, KC_C, KC_9, KC_MINS, KC_0, NK_UP, KC_LSFT, KC_NO);
+ }
+ break;
+ case 32:
+ if (record->event.pressed) {
+ SEND_STRING("operator");
+ }
+ break;
+ case 33:
+ if (record->event.pressed) {
+ SEND_STRING("nullptr");
+ }
+ break;
+ case 34:
+ if (record->event.pressed) {
+ SEND_STRING("extern");
+ }
+ break;
+ case 35:
+ if (record->event.pressed) {
+ SEND_STRING("virtual");
+ }
+ break;
+ case 36: // emacs font smaller
+ if (record->event.pressed) {
+ return MACRO(D(LCTL), T(X), T(EQL), U(LCTL), END);
+ }
+ break;
+ case 37: // emacs font bigger
+ if (record->event.pressed) {
+ return MACRO(D(LCTL), T(X), T(MINS), U(LCTL), END);
+ }
+ break;
+ case 38:
+ if (record->event.pressed) {
+ SEND_STRING("volatile");
+ }
+ break;
+ }
+ return MACRO_NONE;
+}
+
+LEADER_EXTERNS();
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ LEADER_DICTIONARY() {
+ leading = false;
+ leader_end();
+
+ SEQ_TWO_KEYS(KC_G, KC_A) {
+ SEND_STRING("git add .");
+ }
+ SEQ_TWO_KEYS(KC_G, KC_D) {
+ SEND_STRING("git diff");
+ }
+ SEQ_THREE_KEYS(KC_G, KC_D, KC_S) {
+ SEND_STRING("git diff --staged");
+ }
+ SEQ_TWO_KEYS(KC_G, KC_L) {
+ SEND_STRING("git log");
+ }
+ SEQ_THREE_KEYS(KC_G, KC_L, KC_O) {
+ SEND_STRING("git log --oneline");
+ }
+ SEQ_TWO_KEYS(KC_G, KC_F) {
+ SEND_STRING("git fetch");
+ }
+ SEQ_TWO_KEYS(KC_G, KC_O) {
+ SEND_STRING("git checkout");
+ }
+ SEQ_TWO_KEYS(KC_G, KC_P) {
+ SEND_STRING("git pull");
+ }
+ SEQ_TWO_KEYS(KC_G, KC_S) {
+ SEND_STRING("git status");
+ }
+ SEQ_TWO_KEYS(KC_G, KC_C) {
+ SEND_STRING("git commit -m ''");
+ send_keystrokes(KC_LEFT, KC_NO);
+ }
+ SEQ_THREE_KEYS(KC_G, KC_C, KC_A) {
+ SEND_STRING("git commit --amend");
+ }
+
+ SEQ_TWO_KEYS(KC_C, KC_C) {
+ SEND_STRING("const_cast<>");
+ send_keystrokes(KC_LEFT, KC_NO);
+ }
+ SEQ_TWO_KEYS(KC_C, KC_D) {
+ SEND_STRING("dynamic_cast<>");
+ send_keystrokes(KC_LEFT, KC_NO);
+ }
+ SEQ_TWO_KEYS(KC_C, KC_R) {
+ SEND_STRING("reinterpret_cast<>");
+ send_keystrokes(KC_LEFT, KC_NO);
+ }
+ SEQ_TWO_KEYS(KC_C, KC_S) {
+ SEND_STRING("static_cast<>");
+ send_keystrokes(KC_LEFT, KC_NO);
+ }
+
+ SEQ_ONE_KEY(KC_SLSH) {
+ send_keystrokes(KC_SLSH, NK_DOWN, KC_LSFT, KC_8, KC_8, NK_UP, KC_LSFT, KC_ENT,
+ NK_DOWN, KC_LSFT, KC_8, NK_UP, KC_LSFT, KC_ENT,
+ NK_DOWN, KC_LSFT, KC_8, NK_UP, KC_LSFT, KC_SLSH, KC_UP, KC_END, KC_SPC,
+ KC_NO);
+ }
+ }
+}
diff --git a/keyboards/ergodox/keymaps/albert/readme.md b/keyboards/ergodox/keymaps/albert/readme.md
new file mode 100644
index 000000000..e20e047ac
--- /dev/null
+++ b/keyboards/ergodox/keymaps/albert/readme.md
@@ -0,0 +1,188 @@
+# ErgoDox EZ Configuration for typing like a boss.
+
+This layout has 7 layers:
+0. Base layers
+1. Symbols and F-keys
+2. Number pad (with hexadecimal)
+3. Cursor keys
+4. Mouse movement and clicks
+5. Keyword macros
+6. Emacs
+
+There are also some leader keys defined for frequently used commands (git etc).
+
+## The layers
+
+Double hashes (`##`) indicate transparent keys (`KC_TRNS`) and blanks indicate no key (`KC_NO`).
+
+### 0. Base layer
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| ESC | 1 | 2 | 3 | 4 | 5 | SfLt | | SfRt | 6 | 7 | 8 | 9 | 0 | BkSp |
+|--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------|
+| Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | Del |
+|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
+| Caps/L2| A | S | D | F | G |------| |------| H | J | K | L | ; |Enter/L2|
+|--------|------|------|------|------|------| L6 | | L6 |------|------|------|------|------|--------|
+| LSft/( | Z | X | C | V/L3 | B/L4 | | | | N/L4 | M/L3 | , | . | / | RSft/) |
+`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
+ |Ctrl/[| Alt/]| # | Left |Right | | Up | Down | - | Alt/[|Ctrl/]|
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | L2 | lead | | lead | Ins |
+ ,------|------|------| |------|------|------.
+ | Space| BkSp | Home | | PgUp | Enter|Space |
+ | / | / |------| |------| / | / |
+ | Ctrl | Alt |End/L5| |PDn/L5| Alt | Ctrl |
+ `--------------------' `--------------------'
+```
+
+Space Cadet shift is enabled. Ctrl and Alt doubles up as normal keys when tapped.
+SfLt and SfRt sends Shift + left and Shift + Right respectively - for use with emacs with `windmove-default-keybindings`.
+Caps and Enter may be held down to activate layer 2 (hexadecimal number pad).
+Please see `matrix_scan_user` function in `keymap.c` for list of commands available via `lead` key.
+
+### 1. Symbols and F-keys
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| ## | F1 | F2 | F3 | F4 | F5 | ## | | ## | F6 | F7 | F8 | F9 | F10 | F11 |
+|--------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
+| ## | ! | " | £ | $ | % | ## | | ## | - | + | = | @ | ~ | F12 |
+|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
+| ## | ^ | & | * | _ | # |------| |------| { | } | ; | ' | # | ## |
+|--------|------|------|------|------|------| ## | | ## |------|------|------|------|------|--------|
+| ## | \ | | | ` | - | / | | | | [ | ] | < | > | ? | ## |
+`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
+ | ## | ## | ## | ## | ## | | ## | ## | ## | ## | ## |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | ## | ## | | ## | ## |
+ ,------|------|------| |------|------|------.
+ | | | ## | | ## | | |
+ | ## | ## |------| |------| ## | ## |
+ | | | ## | | ## | | |
+ `--------------------' `--------------------'
+```
+
+### 2. Number pad (with hexadecimal)
+
+```
+,---------------------------------------------------. ,--------------------------------------------------.
+| ## | A | B | C | D | E | F | | A | B | C | D | E | F | ## |
+|---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
+| ## | * | 7 | 8 | 9 | * | 0x | | 0x | * | 7 | 8 | 9 | * | ## |
+|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
+| ## | / | 4 | 5 | 6 | / |------| |------| / | 4 | 5 | 6 | / | ## |
+|---------|------|------|------|------|------| ## | | ## |------|------|------|------|------|--------|
+| ## | - | 1 | 2 | 3 | - | | | | - | 1 | 2 | 3 | - | ## |
+`---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
+ | = | + | 0 | , | . | | 0 | , | . | + | = |
+ `-----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | ## | ## | | ## | ## |
+ ,------|------|------| |------|------|------.
+ | | | ## | | ## | | |
+ | ## | ## |------| |------| ## | ## |
+ | | | ## | | ## | | |
+ `--------------------' `--------------------'
+```
+
+### 3. Cursor keys
+
+```
+,---------------------------------------------------. ,--------------------------------------------------.
+| | | | | | | | | | | | | | | |
+|---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
+| | Home | | Up | | PgUp | | | | PgUp | | Up | | Home | |
+|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
+| | End | Left | Down | Right| PgDn |------| |------| PgDn | Left | Down | Right| End | |
+|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
+| ## | Up | | Down | ## | | | | | | ## | Down | | Up | ## |
+`---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
+ | Left | Down | Right| | | | | | Left | Down | Right|
+ `-----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------|------|------| |------|------|------.
+ | | | | | | | |
+ | ## | ## |------| |------| ## | ## |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
+
+### 4. Mouse movement and clicks
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| | | | | | | | | | | | | | | |
+|--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------|
+| | | Lclk | MsUp | Rclk | | | | | | Lclk | MsUp | Rclk | | |
+|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
+| | |MsLeft|MsDown|MsRght| |------| |------| |MsLeft|MsDown|MsRght| | |
+|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
+| Lclk | MsUp | Rclk |MsDown| | ## | | | | ## | |MsDown| Lclk | MsUp | Rclk |
+`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
+ |MsLeft|MsDown|MsRight | | | | |MsLeft|MsDown|MsRght|
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------|------|------| |------|------|------.
+ | | | | | | | |
+ | | |------| |------| | |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
+
+### 5. Keyword macros
+
+```
+,---------------------------------------------------. ,--------------------------------------------------.
+| | | | scarf| sadf | smily| | | | decaf| | | | | |
+|---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
+| | const| volat| oper | ret | tmpl | | | | typen| cont | prv | pro | pub | |
+|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
+| | | str | obj | | gitl |------| |------| | | | nulp | | |
+|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
+| | | extr | cls | virt | break| | | |namesp| goodm| goodn| | | |
+`---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
+ | | | inc | | | | | | | | |
+ `-----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | ecet | ecets|
+ ,------|------|------| |------|------|------.
+ | | | | | | | |
+ | | |------| |------| | |
+ | | | ## | | ## | | |
+ `--------------------' `--------------------'
+```
+Please see `keymap.c` for the keywords/commands.
+Some are const, volatile, operator, return, template, typename, continue, private,
+protected, public, struct, class, extern, virtual, break, namespace.
+Also a git log command I use a lot (`git log --oneline --graph --decorate=short` (I know git can be configured but that is boring)).
+
+### 6. Emacs
+
+```
+,---------------------------------------------------. ,--------------------------------------------------.
+| | | | | | | empb | | emnb | emfs | emfb | | | | |
+|---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
+| | emtr | | | | | | | | emun | emre | w-up | | | |
+|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
+| | | emwr | | | |------| |------| |w-left|w-down|w-rght| | |
+|---------|------|------|------|------|------| ## | | ## |------|------|------|------|------|--------|
+| | | | | | | | | | | |w-down| | | |
+`---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
+ | | | | | | | | | | | |
+ `-----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------|------|------| |------|------|------.
+ | | | | | | | |
+ | | |------| |------| | |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
+Some emacs shortcuts like toggle read/write mode (emtr), write file (emwr), previous-buffer (empb),
+next-buffer (emnb), smaller font(emfs), larger font (emfb), undo (emun), redo (emre) and switching between windows in a frame.
diff --git a/keyboards/ergodox_ez/keymaps/alexjj/keymap.c b/keyboards/ergodox/keymaps/alexjj/keymap.c
index 448f62da0..ac954ba5b 100644
--- a/keyboards/ergodox_ez/keymaps/alexjj/keymap.c
+++ b/keyboards/ergodox/keymaps/alexjj/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/alexjj/readme.md b/keyboards/ergodox/keymaps/alexjj/readme.md
index 239e32d39..239e32d39 100644
--- a/keyboards/ergodox_ez/keymaps/alexjj/readme.md
+++ b/keyboards/ergodox/keymaps/alexjj/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg b/keyboards/ergodox/keymaps/alexjj/rl-layout.jpg
index e4e92bf46..e4e92bf46 100644
--- a/keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg
+++ b/keyboards/ergodox/keymaps/alexjj/rl-layout.jpg
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/algernon/COPYING b/keyboards/ergodox/keymaps/algernon/COPYING
index 94a9ed024..94a9ed024 100644
--- a/keyboards/ergodox_ez/keymaps/algernon/COPYING
+++ b/keyboards/ergodox/keymaps/algernon/COPYING
diff --git a/keyboards/ergodox_ez/keymaps/algernon/Makefile b/keyboards/ergodox/keymaps/algernon/Makefile
index cd7e9e9d2..699add3dd 100644
--- a/keyboards/ergodox_ez/keymaps/algernon/Makefile
+++ b/keyboards/ergodox/keymaps/algernon/Makefile
@@ -1,13 +1,32 @@
BOOTMAGIC_ENABLE=no
COMMAND_ENABLE=no
SLEEP_LED_ENABLE=no
-UNICODE_ENABLE=no
FORCE_NKRO ?= yes
+DEBUG_ENABLE = no
+CONSOLE_ENABLE = no
+TAP_DANCE_ENABLE = yes
+KEYLOGGER_ENABLE ?= yes
+UCIS_ENABLE = yes
+MOUSEKEY_ENABLE = no
+
+AUTOLOG_ENABLE ?= no
ifeq (${FORCE_NKRO},yes)
OPT_DEFS += -DFORCE_NKRO
endif
+ifeq (${AUTOLOG_ENABLE},yes)
+KEYLOGGER_ENABLE = yes
+OPT_DEFS += -DAUTOLOG_ENABLE
+endif
+
+ifeq (${KEYLOGGER_ENABLE},yes)
+OPT_DEFS += -DKEYLOGGER_ENABLE
+CONSOLE_ENABLE = yes
+endif
+
+OPT_DEFS += -DUSER_PRINT
+
KEYMAP_VERSION = $(shell \
if [ -d "${KEYMAP_PATH}/.git" ]; then \
cd "${KEYMAP_PATH}" && git describe --abbrev=6 --dirty --always --tags --match 'v*' 2>/dev/null; \
diff --git a/keyboards/ergodox/keymaps/algernon/NEWS.md b/keyboards/ergodox/keymaps/algernon/NEWS.md
new file mode 100644
index 000000000..ee9d60670
--- /dev/null
+++ b/keyboards/ergodox/keymaps/algernon/NEWS.md
@@ -0,0 +1,189 @@
+<!-- -*- mode: markdown; fill-column: 8192 -*- -->
+
+## v1.10
+
+*2016-12-28*
+
+### Miscellaneous
+
+* `µ` can now be entered with UCIS.
+* `â„¢` can now be entered with UCIS.
+
+### Tools
+
+* `tools/hid-commands` can now find Banshee, and prefers it over Kodi.
+* `tools/hid-commands` can now find Chrome too, not juts Chromium.
+
+## v1.9
+
+*2016-10-16*
+
+### Overall changes
+
+* `F12` was replaced by an `Fx` key, that activate the **Media** layer as a one-shot layer, and also `Alt` as a one-shot modifier.
+
+### Base layer changes
+
+* The `Media Stop` key is now a tap-dance key, and resets the device for programming on the fourth tap.
+
+### Miscellaneous
+
+* `Ï€` can now be entered with UCIS.
+* `ðŸ` can now be entered with UCIS.
+
+### Tools
+
+* The `tools/layer-notify` tool was removed, it was an example, which I don't use.
+
+#### `tools/hid-commands`
+
+* Now looks at the `DISABLE_APPSEL_START` environment value, and does not display an AppSel notification if it is non-empty.
+* Will attempt to re-program the keyboard when receiving a `reflash` command.
+* No longer tries to select Emacs 24 on `APPSEL_EMACS`, rather, it goes for any Emacs.
+* The `APPSEL_MUSIC` command now includes Kodi in the list too, as the last choice.
+
+## v1.8
+
+*2016-10-03*
+
+### ADORE
+
+* Major rearrangements were made, to reduce pinky use, and to balance out the hand usage.
+
+### Tools
+
+* The `hid-commands` tool will now display a notification when the **AppSel** layer is triggered.
+* The `log-to-heatmap.py` tool now treats the innermost keys on the bottom row as thumb keys, as far as statistics are concerned.
+
+### Miscellaneous
+
+* Fixed the **Steno** toggle key.
+
+## v1.7
+
+*2016-09-18*
+
+### Overall changes
+
+* The number row has been completely rearranged on both the **Base** and the **ADORE** layers.
+* The number/function key behavior was changed: function keys are now on the **Media**.
+* The `:`/`;` and `-`/`_` keys were put back to their thumb position on the bottom row, on both the **Base** and **ADORE** layers.
+* The bottom large keys on the inner side of each half now function as [tmux](http://tmux.github.io/) keys: the left to send the prefix, the right to send the `display-panes` key. The left also doubles as a GNU screen prefix key, and sends `C-a` when double tapped.
+* A number of functions, such as the **AppSel** layer, now require the `hid-commands` tool to be running, with the output of `hid_listen` being piped to it.
+
+### ADORE
+
+* `Y` and `X` have been swapped again.
+
+### Media/Navigation layer
+
+* The function keys are now on this layer.
+* Mouse keys have been removed.
+* Media start/stop/prev/next have been removed.
+* `Print screen` has been removed.
+* There is only one screen lock key now.
+
+### Heatmap
+
+* Fixed a few issues in the finger-stats calculation.
+* The tool now also timestamps and saves all input lines to a logfile, which it loads on start, allowing one to continue the collection after upgrading the tool.
+* The heatmap tool will now colorize the stats by default.
+* The periodic stats are now printed in a more compact format.
+
+### Tools
+
+* Added a new tool, `tools/layer-notify` that listens to layer change events on the HID console, and pops up a notification on layer changes.
+* Another new tool, `tools/text-to-log.py` has been added that converts arbitrary text to a keylogger output, which can be fed to the heatmap generator.
+* A number of features have been moved to the `tools/hid-commands` utility. These generally are OS dependent, and are easier to implement on the software side.
+
+## v1.6
+
+*2016-08-24*
+
+### Base layer changes
+
+* The parentheses & bracket keys have been merged: tapping them results in `[` or `{` (if it was shifted), double tapping leads to `(`.
+* The `:;` and `-_` keys are now available on the base layer, on their **ADORE** location, too, just below `[{(`/`]})`.
+* The `Apps` key has been replaced by `F12`.
+* The `-`/`_` is no longer a tap-dance key.
+
+### ADORE layer changes
+
+* Adjustments were made to the **ADORE** layer, to separate some inconvenient combinations.
+
+### Miscellaneous changes
+
+* `LEAD u` now starts the symbolic unicode input system, instead of the OS-one.
+* The mouse acceleration keys on the **Navigation/Media** layer have been turned into toggles: tap them once to turn them on, until tapped again. Tapping an accelerator button will turn all the others off.
+* When the **ARROW** layer is on, the *red* and *blue* LEDs light up now.
+
+### Heatmap
+
+* The built-in keylogger has been greatly enhanced, it now outputs the pressed state, and the layer (Dvorak or ADORE). As such, the `ADORE_AUTOLOG` option has been removed, instead there is `AUTOLOG_ENABLE` now, which when enabled, makes the keylogger start when the keyboard boots. It defaults to off.
+* The heatmap generator received a lot of updates.
+
+## v1.5
+
+*2016-08-12*
+
+* The **1HAND** layer has been removed.
+* A `Delete` key is now available on the right thumb cluster.
+* The **ADORE** layer received a major update, see the layout image above.
+* It is now possible to enable automatic logging for the **ADORE** layer, by setting the `ADORE_AUTOLOG` makefile variable to `yes` when compiling the keymap. It is off by default.
+* The `~` key and the `Media Next/Prev` key have been swapped on the **Base** layer.
+* On the **ARROW** layer, `Backspace` has been replaced by `Enter`.
+* There is some experimental support for entering Unicode symbols.
+
+## v1.4
+
+*2016-07-29*
+
+* When toggling the key logging on or off, the LEDs will do a little dance.
+* The keylogger is now optional, but enabled by default. Use `KEYLOGGER_ENABLE=no` on the `make` command line to disable it.
+* The `TAB`/`ARRW` key was turned into a tap-dance key, allowing one to toggle the **ARROW** layer on by double-tapping, and as such, avoid the need to hold the key.
+* The `-`/`_` key was turned into a tap-dance key too.
+* There is now a way to travel time with the keyboard, toggle the feature on by hitting `LEAD t`.
+
+## v1.3
+
+*2016-07-06*
+
+* Added support for logging keys, by pressing `LEAD d`. Also included is a tool to generate a *heatmap* out of the logs.
+* The arrow and navigation keys were rearranged again, and now require an additional key being held to activate. See the **Base** layer for an image that shows where arrows are.
+* The **experimental** layer has been redone, and is now called **ADORE**, and as such, can be enabled by `LEAD a` now.
+* Switching between Dvorak and ADORE is now persisted into EEPROM, and survives a reboot.
+
+## v1.2
+
+*2016-06-22*
+
+* The forced NKRO mode can be easily toggled off at compile-time, to make the firmware compatible with certain operating systems.
+* The `:;` key has changed behaviour: to access the `;` symbol, the key needs to be double-tapped, instead of shifted.
+* The `=` and `\` keys were swapped, `=` moved to the home row, on both the **Base** and the **experimental** layers.
+* The arrow and navigation keys were redone, they are now more accessible, but the navigation keys require an extra tap to access.
+* The **Emacs** layer is gone, replaced by a simplified **navigation and media** layer.
+* `LEAD v` types the firmware version, and the keymap version.
+* On the **experimental** layer, the `L` and `Q`, and the `K` and `G` keys were swapped.
+* The **Steno** layer gained a few more `#` and `*` keys, to make it easier on my fingers.
+
+## v1.1
+
+*2016-06-14*
+
+* The keyboard starts in NKRO mode, bootmagic and other things are disabled.
+* A **Steno** layer was added, to be used with Plover.
+* An **experimental** layer was added, something halfway between Dvorak and Capewell-Dvorak. A work in progress.
+* `LEAD y` types `\o/`.
+* Some keys on the **Base** layer have been moved around:
+ - `?` moved to the left pinky, left of `Q`.
+ - `=` shifted one row down, but `F11` stayed where it was.
+ - `-` on the left half was replaced by `Tab`.
+ - `Tab`'s original position is taken by a `Media Next`/`Media Prev` key.
+ - `:` now inputs `;` when shifted.
+* `ESC` cancels the **Hungarian** layer too, not just modifiers.
+
+## v1.0
+
+*2016-05-26*
+
+Initial version.
diff --git a/keyboards/ergodox_ez/keymaps/algernon/config.h b/keyboards/ergodox/keymaps/algernon/config.h
index 9bb1025be..9bb1025be 100644
--- a/keyboards/ergodox_ez/keymaps/algernon/config.h
+++ b/keyboards/ergodox/keymaps/algernon/config.h
diff --git a/keyboards/ergodox/keymaps/algernon/images/adore-layer.png b/keyboards/ergodox/keymaps/algernon/images/adore-layer.png
new file mode 100644
index 000000000..f6c64ca64
--- /dev/null
+++ b/keyboards/ergodox/keymaps/algernon/images/adore-layer.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/algernon/images/base-layer.png b/keyboards/ergodox/keymaps/algernon/images/base-layer.png
new file mode 100644
index 000000000..5bd0611f6
--- /dev/null
+++ b/keyboards/ergodox/keymaps/algernon/images/base-layer.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/algernon/images/heatmap.png b/keyboards/ergodox/keymaps/algernon/images/heatmap.png
new file mode 100644
index 000000000..4f55c5adf
--- /dev/null
+++ b/keyboards/ergodox/keymaps/algernon/images/heatmap.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png b/keyboards/ergodox/keymaps/algernon/images/hun-layer.png
index 104a9544d..104a9544d 100644
--- a/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png
+++ b/keyboards/ergodox/keymaps/algernon/images/hun-layer.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/nav-n-media-layer.png b/keyboards/ergodox/keymaps/algernon/images/nav-n-media-layer.png
index 16d29e124..16d29e124 100644
--- a/keyboards/ergodox_ez/keymaps/algernon/images/nav-n-media-layer.png
+++ b/keyboards/ergodox/keymaps/algernon/images/nav-n-media-layer.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/algernon/images/steno-layer.png b/keyboards/ergodox/keymaps/algernon/images/steno-layer.png
new file mode 100644
index 000000000..9a2ba55ef
--- /dev/null
+++ b/keyboards/ergodox/keymaps/algernon/images/steno-layer.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/algernon/keymap.c b/keyboards/ergodox/keymaps/algernon/keymap.c
index 2af3d5f8c..b615f3f5f 100644
--- a/keyboards/ergodox_ez/keymaps/algernon/keymap.c
+++ b/keyboards/ergodox/keymaps/algernon/keymap.c
@@ -2,26 +2,27 @@
* algernon's ErgoDox EZ layout, please see the readme.md file!
*/
-#include "ergodox_ez.h"
+#include <stdarg.h>
+#include "ergodox.h"
#include "led.h"
#include "debug.h"
#include "action_layer.h"
#include "action_util.h"
-#include "mousekey.h"
#include "timer.h"
#include "keymap_plover.h"
+#include "eeconfig.h"
+#include "wait.h"
+#include "version.h"
/* Layers */
enum {
BASE = 0,
- EXPRM,
+ ADORE,
ARRW,
APPSEL,
HUN,
NMDIA,
- OHLFT,
- OHRGT,
PLVR,
};
@@ -32,22 +33,8 @@ enum {
// Buttons that do extra stuff
A_GUI,
A_PLVR,
- A_ESC,
A_MPN,
- // Function / number keys
- KF_1, // 1, F1
- KF_2, // 2, F2
- KF_3, // ...
- KF_4,
- KF_5,
- KF_6,
- KF_7,
- KF_8,
- KF_9,
- KF_10,
- KF_11, // =, F11
-
// Application select keys
APP_SLK, // Slack
APP_EMCS, // Emacs
@@ -55,12 +42,6 @@ enum {
APP_CHRM, // Chrome
APP_MSIC, // Music
- // Diagonal mouse movement
- A_MUL,
- A_MUR,
- A_MDL,
- A_MDR,
-
// Hungarian layer keys
HU_AA, // Ã
HU_OO, // Ó
@@ -72,12 +53,20 @@ enum {
HU_OEE, // Å
HU_UEE, // Å°
- // One-handed layout specials
- OH_BSSPC,
- OH_ENTSFT,
- OH_BASE,
- OH_LEFT,
- OH_RIGHT,
+ // number/symbol keys
+ A_1, // 1
+ A_2, // 2
+ A_3, // ...
+ A_4,
+ A_5,
+ A_6,
+ A_7,
+ A_8,
+ A_9,
+ A_0,
+
+ // Fx
+ Fx,
};
/* Fn keys */
@@ -94,28 +83,31 @@ enum {
/* Custom keycodes */
enum {
- CT_CLN = 0x7101
+ CT_CLN = 0,
+ CT_TA,
+ CT_LBP,
+ CT_RBP,
+ CT_TMUX,
+ CT_TPS,
+ CT_SR,
};
/* States & timers */
uint16_t gui_timer = 0;
-uint16_t kf_timers[12];
-
-uint16_t oh_base_timer = 0;
-uint16_t oh_bsspc_timer = 0;
-uint16_t oh_entsft_timer = 0;
-
-#define OH_BLINK_INTERVAL 500
+#if KEYLOGGER_ENABLE
+# ifdef AUTOLOG_ENABLE
+bool log_enable = true;
+# else
+bool log_enable = false;
+# endif
+#endif
-uint8_t oh_left_blink = 0;
-uint16_t oh_left_blink_timer = 0;
-uint8_t oh_right_blink = 0;
-uint16_t oh_right_blink_timer = 0;
+bool time_travel = false;
+bool skip_leds = false;
-uint8_t ct_cln_count = 0;
-uint16_t ct_cln_timer = 0;
+static uint8_t is_adore = 0;
/* The Keymap */
@@ -124,18 +116,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Base Layer
*
* ,-----------------------------------------------------. ,-----------------------------------------------------.
- * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | 1HND | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 |
+ * | Next/Prev | 9 | 7 @ | 5 * | 3 ^ | 1 $ | F11 | | Fx | 0 % | 2 ! | 4 # | 6 & | 8 | Plover |
* |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------|
- * | Next/Prev | ' | , | . | P | Y | [ | | ] | F | G | C | R | L | \ |
- * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
- * | Tab | A | O | E | U | I |------| |------| D | H | T | N | S | = |
- * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------|
- * | Play/Pause| / | Q | J | K | X | | | | B | M | W | V | Z | Stop |
+ * | ~ | ' | , | . | P | Y | ( | | ) | F | G | C | R | L | \ |
+ * |-----------+------+------+------+------+------| [ | | ] |------+------+------+------+------+-----------|
+ * | Tab/ARROW | A | O | E | U | I |------| |------| D | H | T | N | S | = / Arrow |
+ * |-----------+------+------+------+------+------| tmux | | tmux |------+------+------+------+------+-----------|
+ * | Play/Pause| / | Q | J | K | X | | | Pane | B | M | W | V | Z | Stop/Reset|
* `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
- * | | | Left | Up | : | | - | Down | Rght | | |
+ * | | | | | : | | - | | | | |
* `-----------------------------------' `-----------------------------------'
* ,-------------. ,-------------.
- * | LAlt | GUI | | MDIA | ARRW |
+ * | LAlt | GUI | | MDIA | Del |
* ,------|------|------| |------+------+------.
* | | | Ctrl | | LEAD | | |
* |Backsp|LShift|------| |------| Enter| Space|
@@ -144,71 +136,71 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[BASE] = KEYMAP(
// left hand
- KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR)
-,M(A_MPN) ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC
-,KC_TAB ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I
-,KC_MPLY ,KC_SLSH ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN
-,KC_NO ,KC_NO ,KC_LEFT ,KC_UP ,CT_CLN
+ M(A_MPN) ,M(A_9) ,M(A_7) ,M(A_5) ,M(A_3) ,M(A_1) ,KC_F11
+,KC_GRV ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,TD(CT_LBP)
+,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I
+,KC_MPLY ,KC_SLSH ,KC_Q ,KC_J ,KC_K ,KC_X ,TD(CT_TMUX)
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN)
,F(F_ALT),F(F_GUI)
,F(F_CTRL)
- ,KC_BSPC,F(F_SFT),M(A_ESC)
+ ,KC_BSPC,F(F_SFT),KC_ESC
// right hand
- ,M(OH_LEFT),M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11
- ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS
- ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL
- ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP
- ,KC_MINS,KC_DOWN,KC_RGHT ,KC_NO ,KC_NO
+ ,M(Fx) ,M(A_0) ,M(A_2) ,M(A_4) ,M(A_6) ,M(A_8) ,M(A_PLVR)
+ ,TD(CT_RBP),KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS
+ ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL
+ ,TD(CT_TPS),KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,TD(CT_SR)
+ ,KC_MINS ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,OSL(NMDIA),OSL(ARRW)
+ ,OSL(NMDIA),KC_DEL
,KC_LEAD
,F(F_HUN) ,KC_ENT ,KC_SPC
),
-/* Keymap 1: Experimental layer
+/* Keymap 1: Adore layer
*
* ,-----------------------------------------------------. ,-----------------------------------------------------.
- * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | 1HND | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 |
+ * | Play/Pause| 9 | 7 @ | 5 * | 3 ^ | 1 $ | F11 | | Fx | 0 % | 2 ! | 4 # | 6 & | 8 | Plover |
* |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------|
- * | Next/Prev | ' | , | . | P | Y | [ | | ] | L | F | C | R | J | = |
- * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
- * | Tab | A | O | E | U | I |------| |------| D | H | T | N | S | \ |
- * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------|
- * | Play/Pause| Z | G | V | K | X | | | | Q | M | W | B | / | Stop |
+ * | \ | X | W | C | H | F | ( | | ) | M | G | L | P | / | `~ |
+ * |-----------+------+------+------+------+------| [ | | ] |------+------+------+------+------+-----------|
+ * | Tab/Arrow | A | O | E | I | U |------| |------| D | R | T | N | S | = |
+ * |-----------+------+------+------+------+------| tmux | | tmux |------+------+------+------+------+-----------|
+ * | | Z | Q | ' | , | . | | | pane | B | K | V | Y | J | |
* `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
- * | | | Left | Up | : | | - | Down | Rght | | |
+ * | | | | | : | | - | | | | |
* `-----------------------------------' `-----------------------------------'
* ,-------------. ,-------------.
- * | LAlt | GUI | | MDIA | ARRW |
+ * | LAlt | GUI | | MDIA | Del |
* ,------|------|------| |------+------+------.
- * | | | Ctrl | | LEAD | | |
+ * | | | Ctrl | | HUN | | |
* |Backsp|LShift|------| |------| Enter| Space|
- * | | | ESC | | HUN | | |
+ * | | | ESC | | LEAD | | |
* `--------------------' `--------------------'
*/
-[EXPRM] = KEYMAP(
+[ADORE] = KEYMAP(
// left hand
- KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR)
-,M(A_MPN) ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC
-,KC_TAB ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I
-,KC_MPLY ,KC_Z ,KC_G ,KC_V ,KC_K ,KC_X ,KC_LPRN
-,KC_NO ,KC_NO ,KC_LEFT ,KC_UP ,CT_CLN
+ KC_MPLY ,M(A_9) ,M(A_7) ,M(A_5) ,M(A_3) ,M(A_1) ,KC_F11
+,KC_BSLS ,KC_X ,KC_W ,KC_C ,KC_H ,KC_F ,TD(CT_LBP)
+,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_I ,KC_U
+,KC_NO ,KC_Z ,KC_Q ,KC_QUOT ,KC_COMM ,KC_DOT ,TD(CT_TMUX)
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN)
,F(F_ALT),F(F_GUI)
,F(F_CTRL)
- ,KC_BSPC,F(F_SFT),M(A_ESC)
+ ,KC_BSPC,F(F_SFT),KC_ESC
// right hand
- ,M(OH_LEFT),M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11
- ,KC_RBRC ,KC_L ,KC_F ,KC_C ,KC_R ,KC_J ,KC_BSLS
- ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL
- ,KC_RPRN ,KC_Q ,KC_M ,KC_W ,KC_B ,KC_SLSH ,KC_MSTP
- ,KC_MINS,KC_DOWN,KC_RGHT ,KC_NO ,KC_NO
-
- ,OSL(NMDIA),OSL(ARRW)
- ,KC_LEAD
- ,F(F_HUN) ,KC_ENT ,KC_SPC
+ ,M(Fx) ,M(A_0) ,M(A_2) ,M(A_4) ,M(A_6) ,M(A_8) ,M(A_PLVR)
+ ,TD(CT_RBP),KC_M ,KC_G ,KC_L ,KC_P ,KC_SLSH ,KC_GRV
+ ,KC_D ,KC_R ,KC_T ,KC_N ,KC_S ,KC_EQL
+ ,TD(CT_TPS),KC_B ,KC_K ,KC_V ,KC_Y ,KC_J ,KC_NO
+ ,KC_MINS ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+
+ ,OSL(NMDIA),KC_DEL
+ ,F(F_HUN)
+ ,KC_LEAD ,KC_ENT ,KC_SPC
),
/* Keymap 2: Arrow layer
@@ -216,19 +208,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ,-----------------------------------------------------. ,-----------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------|
- * | | | | | | | | | | | | | | | |
+ * | | | | | | | | | | | Home | Up | End | | |
* |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
- * | | | | | | |------| |------| | | | | | |
+ * | | | | | | |------| |------| | Left | Down | Rght | | |
* |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
* | | | | | | | | | | | | | | | |
* `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
- * | | | Home | PgUp | | | | PgDn | End | | |
+ * | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
- * | | |------| |------| | |
+ * | Enter| |------| |------| PgUp | PgDn |
* | | | | | | | |
* `--------------------' `--------------------'
*/
@@ -239,22 +231,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_HOME ,KC_PGUP ,KC_TRNS
+,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
,KC_TRNS ,KC_TRNS
,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS
+ ,KC_ENT ,KC_TRNS ,KC_TRNS
// right hand
,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_HOME ,KC_UP ,KC_END ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS ,KC_LEFT ,KC_DOWN ,KC_RGHT ,KC_TRNS ,KC_TRNS
,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_PGDN ,KC_END ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
,KC_TRNS ,KC_TRNS
,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS ,KC_PGUP ,KC_PGDN
),
/* Keymap 3: Application select layer
@@ -353,141 +345,51 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 5: Navigation & Media layer
*
* ,-----------------------------------------------------. ,-----------------------------------------------------.
- * | MS Slow | | | | | |ScrLCK| |ScrLCK| | | | | | |
+ * | | F9 | F7 | F5 | F3 | F1 |ScrLCK| | | F10 | F2 | F4 | F6 | F8 | |
* |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------|
- * | MS Normal | | Home | Up | PgUp | | | |Scroll| |MsUpL | MsUp |MsUpR | |PrintScreen|
- * |-----------+------+------+------+------+------| | | Up |------+------+------+------+------+-----------|
- * | MS Fast | | Left | Down | Right| |------| |------| |MsLeft| MsDn |MsRght| | |
- * |-----------+------+------+------+------+------| | |Scroll|------+------+------+------+------+-----------|
- * | Play/Pause| | End | Down | PgDn | | | | Down | |MsDnL | MsDn |MsDnR | | Stop |
+ * | | | | | | | | | | | | | | | |
+ * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
+ * | | | | | | |------| |------| | | | | | |
+ * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
+ * | | | | | | | | | | | | | | | |
* `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
- * | Mute | VlUp | | BASE | MClk |
+ * | Mute | VlUp | | BASE | |
* ,------|------|------| |------+------+------.
- * | | | VlDn | | Prev |Left |Right |
- * | SPC | Enter|------| |------| Click| Click|
- * | | | ESC | | Next | | |
+ * | | | VlDn | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
* `--------------------' `--------------------'
*/
[NMDIA] = KEYMAP(
// left hand
- KC_ACL0 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,LGUI(KC_L)
-,KC_ACL1 ,KC_NO ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,KC_NO
-,KC_ACL2 ,KC_NO ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_NO
-,KC_MPLY ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_NO
+ KC_NO ,KC_F9 ,KC_F7 ,KC_F5 ,KC_F3 ,KC_F1 ,LGUI(KC_L)
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
,KC_MUTE ,KC_VOLU
,KC_VOLD
- ,KC_SPC,KC_ENTER,M(A_ESC)
+ ,KC_NO ,KC_NO ,KC_TRNS
// right hand
- ,LGUI(KC_L),KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_WH_U ,KC_NO ,M(A_MUL),KC_MS_U ,M(A_MUR),KC_NO ,KC_PSCR
- ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO
- ,KC_WH_D ,KC_NO ,M(A_MDL),KC_MS_D ,M(A_MDR),KC_NO ,KC_MSTP
+ ,KC_TRNS ,KC_F10 ,KC_F2 ,KC_F4 ,KC_F6 ,KC_F8 ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_TRNS ,KC_MS_BTN3
- ,KC_MPRV
- ,KC_MNXT ,KC_BTN1 ,KC_BTN2
- ),
-
-/* Keymap 6: One-handed, left side
- *
- * ,-----------------------------------------------------.
- * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 |A BSE|
- * |-----------+------+------+------+------+-------------|
- * | Tab | ' | , | . | P | Y | [ |
- * |-----------+------+------+------+------+------| |
- * | - | A | O | E | U | I |------|
- * |-----------+------+------+------+------+------| ( |
- * | Play/Pause| ; | Q | J | K | X | |
- * `-----------+------+------+------+------+-------------'
- * | Home | End | Down | Up | ESC |
- * `-----------------------------------'
- * ,-------------.
- * | LAlt | GUI |
- * ,------|------|------|
- * |BackSp|LShift| Ctrl |
- * | | |------|
- * |Space |Enter |OTHER |
- * `--------------------'
- */
-[OHLFT] = KEYMAP(
-// left hand
- KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3) ,M(KF_4) ,M(KF_5) ,M(OH_BASE)
-,KC_TAB ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC
-,KC_MINS ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I
-,KC_MPLY ,KC_SCLN ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN
-,KC_HOME ,KC_END ,KC_DOWN ,KC_UP ,M(A_ESC)
-
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,M(OH_BSSPC),M(OH_ENTSFT),M(OH_RIGHT)
-
- // right hand
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-
- ,KC_NO ,KC_NO
- ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO
+ ,KC_TRNS ,KC_NO
+ ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO
),
-/* Keymap 7: One-handed, right side
- *
- * ,-----------------------------------------------------.
- * | = F11 | 0 F10| 9 F9 | 8 F8 | 7 F7 | 6 F6 |A BSE|
- * |-----------+------+------+------+------+-------------|
- * | / | L | R | C | G | F | ] |
- * |-----------+------+------+------+------+------| |
- * | \ | S | N | T | H | D |------|
- * |-----------+------+------+------+------+------| ) |
- * | Stop | Z | V | W | M | B | |
- * `-----------+------+------+------+------+-------------'
- * | PgDn | PgUp | Right| Left | ESC |
- * `-----------------------------------'
- * ,-------------.
- * | LAlt | GUI |
- * ,------|------|------|
- * |BackSp|LShift| Ctrl |
- * | | |------|
- * |Space |Enter |OTHER |
- * `--------------------'
- */
-[OHRGT] = KEYMAP(
-// left hand
- M(KF_11) ,M(KF_10) ,M(KF_9) ,M(KF_8) ,M(KF_7) ,M(KF_6) ,M(OH_BASE)
-,KC_SLSH ,KC_L ,KC_R ,KC_C ,KC_G ,KC_F ,KC_RBRC
-,KC_BSLS ,KC_S ,KC_N ,KC_T ,KC_H ,KC_D
-,KC_MSTP ,KC_Z ,KC_V ,KC_W ,KC_M ,KC_B ,KC_RPRN
-,KC_PGDN ,KC_PGUP ,KC_RGHT ,KC_LEFT ,M(A_ESC)
-
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,M(OH_BSSPC),M(OH_ENTSFT),M(OH_LEFT)
-
- // right hand
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-
- ,KC_NO ,KC_NO
- ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO
- ),
-
-/* Keymap 8: Steno for Plover
+/* Keymap 6: Steno for Plover
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | BASE | | | | | | | | |
+ * | | | | | | | | | | | | | | | BASE |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | # | # | # | # | # | # | | # | # | # | # | # | # | # |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@@ -508,7 +410,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[PLVR] = KEYMAP(
// left hand
-KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(A_PLVR),
+KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM,
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,
@@ -518,7 +420,7 @@ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
PV_A, PV_O, KC_NO,
// right hand
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(A_PLVR),
PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM,
PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD,
PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ,
@@ -539,7 +441,7 @@ const uint16_t PROGMEM fn_actions[] = {
,[F_CTRL] = ACTION_MODS_ONESHOT (MOD_LCTL)
};
-void toggle_steno(int pressed)
+static void toggle_steno(int pressed)
{
uint8_t layer = biton32(layer_state);
@@ -562,7 +464,7 @@ void toggle_steno(int pressed)
}
}
-macro_t *ang_do_hun (keyrecord_t *record, uint16_t accent, uint16_t hun_char)
+static macro_t *ang_do_hun (keyrecord_t *record, uint16_t accent, uint16_t hun_char)
{
uint8_t need_shift = 0;
uint8_t hold_shift = 0;
@@ -607,46 +509,65 @@ macro_t *ang_do_hun (keyrecord_t *record, uint16_t accent, uint16_t hun_char)
return MACRO_NONE;
}
-void ang_handle_kf (keyrecord_t *record, uint8_t id)
-{
- uint8_t code = id - KF_1;
+static void ang_handle_num_row(uint8_t id, keyrecord_t *record) {
+ uint8_t idx = id - A_1;
+ uint8_t kc;
+ static bool shifted[10];
- if (record->event.pressed) {
- kf_timers[code] = timer_read ();
- } else {
- uint8_t kc;
+ if (keyboard_report->mods & MOD_BIT(KC_LSFT) ||
+ ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) {
+ if (record->event.pressed)
+ shifted[idx] = true;
+ }
- if (timer_elapsed (kf_timers[code]) > TAPPING_TERM) {
- // Long press
- kc = KC_F1 + code;
- } else {
- if (id == KF_11)
- kc = KC_EQL;
- else
- kc = KC_1 + code;
+ if (!shifted[idx]) {
+ kc = idx + KC_1;
+ } else {
+ switch (id) {
+ case A_8:
+ case A_9:
+ shifted[idx] = false;
+ return;
+
+ case A_7:
+ kc = KC_2;
+ break;
+ case A_5:
+ kc = KC_8;
+ break;
+ case A_3:
+ kc = KC_6;
+ break;
+ case A_1:
+ kc = KC_4;
+ break;
+
+ case A_0:
+ kc = KC_5;
+ break;
+ case A_2:
+ kc = KC_1;
+ break;
+ case A_4:
+ kc = KC_3;
+ break;
+ case A_6:
+ kc = KC_7;
+ break;
}
+ }
+ if (record->event.pressed) {
register_code (kc);
+ } else {
unregister_code (kc);
+ shifted[idx] = false;
}
}
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch(id) {
- case A_ESC:
- if (record->event.pressed) {
- if ((get_oneshot_mods ()) && !has_oneshot_mods_timed_out ()) {
- clear_oneshot_mods ();
- } else {
- register_code (KC_ESC);
- }
- layer_off (HUN);
- } else {
- unregister_code (KC_ESC);
- }
- break;
-
case A_MPN:
if (record->event.pressed) {
if (keyboard_report->mods & MOD_BIT(KC_LSFT) ||
@@ -688,54 +609,20 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
case HU_UEE:
return ang_do_hun (record, KC_EQL, KC_U);
- /* Mouse movement */
- case A_MUL:
- if (record->event.pressed) {
- mousekey_on(KC_MS_UP);
- mousekey_on(KC_MS_LEFT);
- } else {
- mousekey_off(KC_MS_UP);
- mousekey_off(KC_MS_LEFT);
- }
- mousekey_send();
- break;
-
- case A_MUR:
- if (record->event.pressed) {
- mousekey_on(KC_MS_UP);
- mousekey_on(KC_MS_RIGHT);
- } else {
- mousekey_off(KC_MS_UP);
- mousekey_off(KC_MS_RIGHT);
- }
- mousekey_send();
- break;
-
- case A_MDL:
- if (record->event.pressed) {
- mousekey_on(KC_MS_DOWN);
- mousekey_on(KC_MS_LEFT);
- } else {
- mousekey_off(KC_MS_DOWN);
- mousekey_off(KC_MS_LEFT);
- }
- mousekey_send();
+ /* Plover base */
+ case A_PLVR:
+ toggle_steno(record->event.pressed);
break;
- case A_MDR:
+ /* Fx */
+ case Fx:
if (record->event.pressed) {
- mousekey_on(KC_MS_DOWN);
- mousekey_on(KC_MS_RIGHT);
+ set_oneshot_mods (MOD_LALT);
+ layer_on (NMDIA);
+ set_oneshot_layer (NMDIA, ONESHOT_START);
} else {
- mousekey_off(KC_MS_DOWN);
- mousekey_off(KC_MS_RIGHT);
+ clear_oneshot_layer_state (ONESHOT_PRESSED);
}
- mousekey_send();
- break;
-
- /* Plover base */
- case A_PLVR:
- toggle_steno(record->event.pressed);
break;
/* GUI & AppSel */
@@ -744,7 +631,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
register_code (KC_LGUI);
if (record->tap.count && !record->tap.interrupted) {
if (record->tap.count >= 2) {
- register_code (KC_W);
+ uprintf("CMD:appsel_start\n");
layer_on (APPSEL);
set_oneshot_layer (APPSEL, ONESHOT_START);
}
@@ -755,7 +642,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
} else {
if (record->tap.count >= 2)
{
- unregister_code (KC_W);
clear_oneshot_layer_state (ONESHOT_PRESSED);
}
gui_timer = timer_read ();
@@ -763,234 +649,312 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
break;
case APP_SLK:
- return MACRODOWN(T(S), T(L), T(A), T(C), T(K), T(ENT), END);
-
- case APP_EMCS:
- return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(ENT), END);
-
- case APP_TERM:
- return MACRODOWN(T(T), T(E), T(R), T(M), T(ENT), END);
-
- case APP_CHRM:
- return MACRODOWN(T(C), T(H), T(R), T(O), T(M), T(ENT), END);
-
- case APP_MSIC:
- return MACRODOWN(T(R), T(H), T(Y), T(T), T(H), T(M), T(B), T(O), T(X), T(ENT), END);
-
- /* Function keys */
- case KF_1 ... KF_11:
- ang_handle_kf (record, id);
+ if (record->event.pressed)
+ uprintf("CMD:appsel_slack\n");
break;
- /* 1HAND layout */
- case OH_BASE:
- if (record->event.pressed) {
- oh_base_timer = timer_read ();
- } else {
- if (timer_elapsed (oh_base_timer) > TAPPING_TERM) {
- layer_clear ();
- } else {
- return MACRO (T(APP), END);
- }
- }
+ case APP_EMCS:
+ if (record->event.pressed)
+ uprintf("CMD:appsel_emacs\n");
break;
- case OH_BSSPC:
- if (record->event.pressed) {
- oh_bsspc_timer = timer_read ();
- } else {
- if (timer_elapsed (oh_bsspc_timer) > TAPPING_TERM) {
- return MACRO (T(BSPC), END);
- } else {
- return MACRO (T(SPC), END);
- }
- }
+ case APP_TERM:
+ if (record->event.pressed)
+ uprintf("CMD:appsel_term\n");
break;
- case OH_ENTSFT:
- if (record->event.pressed) {
- oh_entsft_timer = timer_read ();
- } else {
- if (timer_elapsed (oh_entsft_timer) > TAPPING_TERM) {
- if (keyboard_report->mods & MOD_BIT(KC_LSFT))
- unregister_code (KC_LSFT);
- else
- register_code (KC_LSFT);
- } else {
- return MACRO (T(ENT), END);
- }
- }
+ case APP_CHRM:
+ if (record->event.pressed)
+ uprintf("CMD:appsel_chrome\n");
break;
- case OH_LEFT:
- if (record->event.pressed) {
- layer_move (OHLFT);
- oh_left_blink = 1;
- oh_left_blink_timer = timer_read ();
- ergodox_right_led_1_on ();
- }
+ case APP_MSIC:
+ if (record->event.pressed)
+ uprintf("CMD:appsel_music\n");
break;
- case OH_RIGHT:
- if (record->event.pressed) {
- layer_move (OHRGT);
- oh_right_blink = 1;
- oh_right_blink_timer = timer_read ();
- ergodox_right_led_3_on ();
- }
+ // number row and symbols
+ case A_1 ... A_0:
+ ang_handle_num_row(id, record);
break;
}
+
return MACRO_NONE;
};
// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
+ uint8_t dl;
+
+ set_unicode_input_mode(UC_LNX);
+
ergodox_led_all_on();
for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) {
ergodox_led_all_set (i);
- _delay_ms (5);
+ wait_ms (5);
}
- _delay_ms(1000);
+ wait_ms(1000);
for (int i = LED_BRIGHTNESS_LO; i > 0; i--) {
ergodox_led_all_set (i);
- _delay_ms (10);
+ wait_ms (10);
}
ergodox_led_all_off();
+
+ if (!eeconfig_is_enabled())
+ eeconfig_init();
+ dl = eeconfig_read_default_layer ();
+ if (dl == (1UL << ADORE)) {
+ is_adore = 1;
+ }
};
LEADER_EXTERNS();
-void ang_do_unicode (void) {
- register_code (KC_RCTL);
- register_code (KC_RSFT);
- register_code (KC_U);
- unregister_code (KC_U);
- unregister_code (KC_RSFT);
- unregister_code (KC_RCTL);
- _delay_ms (100);
-}
+static void ang_tap (uint16_t code, ...) {
+ uint16_t kc = code;
+ va_list ap;
-void ang_tap (uint16_t codes[]) {
- for (int i = 0; codes[i] != 0; i++) {
- register_code (codes[i]);
- unregister_code (codes[i]);
- _delay_ms (50);
- }
+ va_start(ap, code);
+
+ do {
+ register_code16(kc);
+ unregister_code16(kc);
+ wait_ms(50);
+ kc = va_arg(ap, int);
+ } while (kc != 0);
+ va_end(ap);
}
-#define TAP_ONCE(code) \
+#define TAP_ONCE(code) \
register_code (code); \
unregister_code (code)
-uint8_t is_exp = 0;
+typedef struct {
+ bool layer_toggle;
+ bool sticky;
+} td_ta_state_t;
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- uint8_t layer = biton32(layer_state);
+static void ang_tap_dance_ta_finished (qk_tap_dance_state_t *state, void *user_data) {
+ td_ta_state_t *td_ta = (td_ta_state_t *) user_data;
- if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM)
- unregister_code (KC_LGUI);
+ if (td_ta->sticky) {
+ td_ta->sticky = false;
+ td_ta->layer_toggle = false;
+ layer_off (ARRW);
+ return;
+ }
- if (ct_cln_timer && timer_elapsed (ct_cln_timer) > TAPPING_TERM) {
- if (ct_cln_count == 1) {
- register_code (KC_RSFT);
- register_code (KC_SCLN);
- unregister_code (KC_SCLN);
- unregister_code (KC_RSFT);
- } else if (ct_cln_count == 2) {
- register_code (KC_SCLN);
- unregister_code (KC_SCLN);
- }
+ if (state->count == 1 && !state->pressed) {
+ register_code (KC_TAB);
+ td_ta->sticky = false;
+ td_ta->layer_toggle = false;
+ } else {
+ td_ta->layer_toggle = true;
+ layer_on (ARRW);
+ td_ta->sticky = (state->count == 2);
+ }
+}
+
+static void ang_tap_dance_ta_reset (qk_tap_dance_state_t *state, void *user_data) {
+ td_ta_state_t *td_ta = (td_ta_state_t *) user_data;
+
+ if (!td_ta->layer_toggle)
+ unregister_code (KC_TAB);
+ if (!td_ta->sticky)
+ layer_off (ARRW);
+}
+
+static void ang_tap_dance_tmux_finished (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ register_code(KC_LALT);
+ register_code(KC_SPC);
+ unregister_code(KC_SPC);
+ unregister_code(KC_LALT);
+ } else {
+ register_code(KC_LCTL);
+ register_code(KC_A);
+ unregister_code(KC_A);
+ unregister_code(KC_LCTL);
+ }
+}
+
+static void ang_tap_dance_tmux_pane_select (qk_tap_dance_state_t *state, void *user_data) {
+ uint8_t kc = KC_P;
- ct_cln_count = 0;
- ct_cln_timer = 0;
+ if (state->count >= 2) {
+ kc = KC_Z;
}
- if (layer != OHLFT)
- oh_left_blink = 0;
- if (layer != OHRGT)
- oh_right_blink = 0;
-
- if (layer == HUN) {
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- } else if (layer == NMDIA) {
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- } else if (layer == PLVR) {
- ergodox_right_led_1_on ();
- ergodox_right_led_2_on ();
+ register_code(KC_LALT);
+ register_code(KC_SPC);
+ unregister_code(KC_SPC);
+ unregister_code(KC_LALT);
+
+ register_code(kc);
+ unregister_code(kc);
+}
+
+static void
+_td_sr_each (qk_tap_dance_state_t *state, void *user_data) {
+ skip_leds = true;
+
+ switch (state->count) {
+ case 1:
ergodox_right_led_3_on ();
- } else if (layer == EXPRM) {
- ergodox_right_led_1_on ();
+ break;
+ case 2:
ergodox_right_led_2_on ();
- ergodox_right_led_3_on ();
+ break;
+ case 3:
+ ergodox_right_led_1_on ();
+ break;
+ case 4:
+ ergodox_right_led_3_off ();
+ wait_ms (50);
+ ergodox_right_led_2_off ();
+ wait_ms (50);
+ ergodox_right_led_1_off ();
+ break;
+ }
+}
- ergodox_right_led_2_set (LED_BRIGHTNESS_HI);
+static void
+_td_sr_finished (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ register_code (KC_MSTP);
}
+ if (state->count >= 4) {
+ uprintf("CMD:reflash\n");
+ wait_ms (1000);
+ reset_keyboard ();
+ reset_tap_dance (state);
+ }
+}
- if (layer == OHLFT || layer == OHRGT) {
- ergodox_right_led_2_on();
+static void
+_td_sr_reset (qk_tap_dance_state_t *state, void *user_data) {
+ ergodox_right_led_1_off ();
+ wait_ms (50);
+ ergodox_right_led_2_off ();
+ wait_ms (50);
+ ergodox_right_led_3_off ();
- if (oh_left_blink) {
- if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL) {
- if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) == 0)
- ergodox_right_led_1_off ();
- }
- if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL * 2) {
- ergodox_right_led_1_on ();
- oh_left_blink_timer = timer_read ();
- }
- }
+ if (state->count == 1) {
+ unregister_code (KC_MSTP);
+ }
+}
- if (oh_right_blink) {
- if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL) {
- if ((keyboard_report->mods & MOD_BIT(KC_LCTRL)) == 0)
- ergodox_right_led_3_off ();
- }
- if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL * 2) {
- ergodox_right_led_3_on ();
- oh_right_blink_timer = timer_read ();
- }
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [CT_CLN] = ACTION_TAP_DANCE_DOUBLE (KC_COLN, KC_SCLN)
+ ,[CT_TA] = {
+ .fn = { NULL, ang_tap_dance_ta_finished, ang_tap_dance_ta_reset },
+ .user_data = (void *)&((td_ta_state_t) { false, false })
+ }
+ ,[CT_LBP] = ACTION_TAP_DANCE_DOUBLE (KC_LBRC, KC_LPRN)
+ ,[CT_RBP] = ACTION_TAP_DANCE_DOUBLE (KC_RBRC, KC_RPRN)
+ ,[CT_TMUX]= ACTION_TAP_DANCE_FN (ang_tap_dance_tmux_finished)
+ ,[CT_TPS] = ACTION_TAP_DANCE_FN (ang_tap_dance_tmux_pane_select)
+ ,[CT_SR] = ACTION_TAP_DANCE_FN_ADVANCED (_td_sr_each, _td_sr_finished, _td_sr_reset)
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+ uint8_t layer = biton32(layer_state);
+ bool is_arrow = false;
+
+ if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM)
+ unregister_code (KC_LGUI);
+
+ if (!skip_leds) {
+ if (layer == HUN) {
+ ergodox_right_led_2_on();
+ ergodox_right_led_3_on();
+ } else if (layer == NMDIA) {
+ ergodox_right_led_1_on();
+ ergodox_right_led_2_on();
+ } else if (layer == PLVR) {
+ ergodox_right_led_1_on ();
+ ergodox_right_led_2_on ();
+ ergodox_right_led_3_on ();
+ } else if (layer == ADORE) {
+ ergodox_right_led_1_on ();
+ ergodox_right_led_2_on ();
+ ergodox_right_led_3_on ();
+
+ ergodox_right_led_2_set (LED_BRIGHTNESS_HI);
}
}
- if (keyboard_report->mods & MOD_BIT(KC_LSFT) ||
- ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) {
- ergodox_right_led_1_set (LED_BRIGHTNESS_HI);
- ergodox_right_led_1_on ();
- } else {
- ergodox_right_led_1_set (LED_BRIGHTNESS_LO);
- if (layer != OHLFT && layer != NMDIA && layer != PLVR && layer != EXPRM)
- ergodox_right_led_1_off ();
+ if (layer_state & (1UL << ARRW)) {
+ if (!skip_leds) {
+ ergodox_right_led_1_on ();
+ ergodox_right_led_3_on ();
+ }
+ is_arrow = true;
}
- if (keyboard_report->mods & MOD_BIT(KC_LALT) ||
- ((get_oneshot_mods() & MOD_BIT(KC_LALT)) && !has_oneshot_mods_timed_out())) {
- ergodox_right_led_2_set (LED_BRIGHTNESS_HI);
- ergodox_right_led_2_on ();
- } else {
- ergodox_right_led_2_set (LED_BRIGHTNESS_LO);
- if (layer != OHRGT && layer != HUN && layer != OHLFT && layer != NMDIA && layer != PLVR && layer != EXPRM)
- ergodox_right_led_2_off ();
- }
+ if (!skip_leds) {
+ if (keyboard_report->mods & MOD_BIT(KC_LSFT) ||
+ ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) {
+ ergodox_right_led_1_set (LED_BRIGHTNESS_HI);
+ ergodox_right_led_1_on ();
+ } else {
+ ergodox_right_led_1_set (LED_BRIGHTNESS_LO);
+ if (layer != NMDIA && layer != PLVR && layer != ADORE && !is_arrow)
+ ergodox_right_led_1_off ();
+ }
- if (keyboard_report->mods & MOD_BIT(KC_LCTRL) ||
- ((get_oneshot_mods() & MOD_BIT(KC_LCTRL)) && !has_oneshot_mods_timed_out())) {
- ergodox_right_led_3_set (LED_BRIGHTNESS_HI);
- ergodox_right_led_3_on ();
- } else {
- ergodox_right_led_3_set (LED_BRIGHTNESS_LO);
- if (layer != OHRGT && layer != HUN && layer != PLVR && layer != EXPRM)
- ergodox_right_led_3_off ();
+ if (keyboard_report->mods & MOD_BIT(KC_LALT) ||
+ ((get_oneshot_mods() & MOD_BIT(KC_LALT)) && !has_oneshot_mods_timed_out())) {
+ ergodox_right_led_2_set (LED_BRIGHTNESS_HI);
+ ergodox_right_led_2_on ();
+ } else {
+ ergodox_right_led_2_set (LED_BRIGHTNESS_LO);
+ if (layer != HUN && layer != NMDIA && layer != PLVR && layer != ADORE)
+ ergodox_right_led_2_off ();
+ }
+
+ if (keyboard_report->mods & MOD_BIT(KC_LCTRL) ||
+ ((get_oneshot_mods() & MOD_BIT(KC_LCTRL)) && !has_oneshot_mods_timed_out())) {
+ ergodox_right_led_3_set (LED_BRIGHTNESS_HI);
+ ergodox_right_led_3_on ();
+ } else {
+ ergodox_right_led_3_set (LED_BRIGHTNESS_LO);
+ if (layer != HUN && layer != PLVR && layer != ADORE && !is_arrow)
+ ergodox_right_led_3_off ();
+ }
}
LEADER_DICTIONARY() {
leading = false;
leader_end ();
+ SEQ_ONE_KEY (KC_C) {
+ ang_tap (LSFT(KC_C), KC_S, KC_I, KC_L, KC_L, KC_RALT, KC_QUOT, KC_A, KC_M, KC_A, KC_S,
+ KC_S, KC_Z, KC_O, KC_N, KC_Y, KC_K, KC_RALT, KC_QUOT, KC_A, KC_M, 0);
+ }
+
+ SEQ_ONE_KEY (KC_G) {
+ ang_tap (LSFT(KC_G), KC_E, KC_J, KC_G, KC_RALT, KC_EQL, KC_O,
+ KC_RALT, KC_EQL, KC_O,
+ KC_RALT, KC_EQL, KC_O, 0);
+ }
+
+#if KEYLOGGER_ENABLE
+ SEQ_ONE_KEY (KC_D) {
+ ergodox_led_all_on();
+ wait_ms(100);
+ ergodox_led_all_off();
+ log_enable = !log_enable;
+ }
+#endif
+
+ SEQ_ONE_KEY (KC_T) {
+ time_travel = !time_travel;
+ }
+
SEQ_ONE_KEY (KC_U) {
- ang_do_unicode ();
+ qk_ucis_start();
}
SEQ_ONE_KEY (KC_V) {
@@ -999,106 +963,146 @@ void matrix_scan_user(void) {
SEQ_ONE_KEY (KC_L) {
/* λ */
- ang_do_unicode ();
-
- uint16_t codes[] = {KC_0, KC_3, KC_B, KC_B, KC_ENT, 0};
- ang_tap (codes);
+ unicode_input_start();
+ register_hex(0x03bb);
+ unicode_input_finish();
}
SEQ_ONE_KEY (KC_Y) {
- uint16_t codes[] = {KC_BSLS, KC_O, KC_SLSH, 0};
- ang_tap (codes);
+ ang_tap (KC_BSLS, KC_O, KC_SLSH, 0);
}
SEQ_ONE_KEY (KC_S) {
- ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC);
+ unicode_input_start(); register_hex(0xaf); unicode_input_finish();
TAP_ONCE (KC_BSLS);
register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT);
- ang_do_unicode (); TAP_ONCE (KC_3); TAP_ONCE (KC_0); TAP_ONCE (KC_C); TAP_ONCE (KC_4); TAP_ONCE (KC_SPC);
+ unicode_input_start (); register_hex(0x30c4); unicode_input_finish();
register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT);
TAP_ONCE (KC_SLSH);
- ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC);
+ unicode_input_start (); register_hex(0xaf); unicode_input_finish();
}
SEQ_TWO_KEYS (KC_W, KC_M) {
- register_code (KC_LALT);
- register_code (KC_F2);
- unregister_code (KC_F2);
- unregister_code (KC_LALT);
-
- _delay_ms (1000);
-
- uint16_t codes[] = {KC_M, KC_A, KC_X, KC_MINS, KC_F, KC_O, KC_C, KC_U, KC_S, KC_E, KC_D, KC_ENT, 0};
- ang_tap (codes);
- register_code (KC_LGUI);
- register_code (KC_UP);
- unregister_code (KC_UP);
- unregister_code (KC_LGUI);
+ uprintf("CMD:wm\n");
}
- SEQ_ONE_KEY (KC_E) {
- if (is_exp == 0) {
+ SEQ_ONE_KEY (KC_A) {
+ if (is_adore == 0) {
default_layer_and (0);
- default_layer_or ((1 << EXPRM));
- is_exp = 1;
+ default_layer_or ((1UL << ADORE));
+ eeconfig_update_default_layer ((1UL << ADORE));
+ is_adore = 1;
ergodox_led_all_off ();
ergodox_right_led_3_on ();
- _delay_ms (100);
+ wait_ms (100);
ergodox_right_led_2_on ();
- _delay_ms (100);
+ wait_ms (100);
ergodox_right_led_3_off ();
ergodox_right_led_1_on ();
- _delay_ms (100);
+ wait_ms (100);
ergodox_right_led_2_off ();
- _delay_ms (100);
+ wait_ms (100);
ergodox_right_led_1_off ();
} else {
- is_exp = 0;
+ is_adore = 0;
default_layer_and (0);
- default_layer_or (1 << BASE);
+ default_layer_or (1UL << BASE);
+ eeconfig_update_default_layer ((1UL << BASE));
ergodox_led_all_off ();
ergodox_right_led_1_on ();
- _delay_ms (100);
+ wait_ms (100);
ergodox_right_led_2_on ();
- _delay_ms (100);
+ wait_ms (100);
ergodox_right_led_1_off ();
ergodox_right_led_3_on ();
- _delay_ms (100);
+ wait_ms (100);
ergodox_right_led_2_off ();
- _delay_ms (100);
+ wait_ms (100);
ergodox_right_led_3_off ();
}
}
}
}
+static uint16_t last4[4];
+
+const qk_ucis_symbol_t ucis_symbol_table[] = UCIS_TABLE
+(
+ UCIS_SYM("poop", 0x1f4a9),
+ UCIS_SYM("rofl", 0x1f923),
+ UCIS_SYM("kiss", 0x1f619),
+ UCIS_SYM("snowman", 0x2603),
+ UCIS_SYM("coffee", 0x2615),
+ UCIS_SYM("heart", 0x2764),
+ UCIS_SYM("bolt", 0x26a1),
+ UCIS_SYM("pi", 0x03c0),
+ UCIS_SYM("mouse", 0x1f401),
+ UCIS_SYM("micro", 0x00b5),
+ UCIS_SYM("tm", 0x2122)
+);
+
bool process_record_user (uint16_t keycode, keyrecord_t *record) {
- switch(keycode) {
- case CT_CLN:
- if (record->event.pressed) {
- ct_cln_count++;
- ct_cln_timer = timer_read ();
- } else {
+#if KEYLOGGER_ENABLE
+ if (log_enable) {
+ uint8_t layer = biton32(layer_state);
+
+ if ((layer == ADORE) || (layer == BASE))
+ uprintf ("KL: col=%02d, row=%02d, pressed=%d, layer=%s\n", record->event.key.col,
+ record->event.key.row, record->event.pressed, (is_adore) ? "ADORE" : "Dvorak");
+ }
+#endif
+
+ if (keycode == KC_ESC && record->event.pressed) {
+ bool queue = true;
+
+ if ((get_oneshot_mods ()) && !has_oneshot_mods_timed_out ()) {
+ clear_oneshot_mods ();
+ queue = false;
}
- return false;
- break;
+ if (layer_state & (1UL<<HUN)) {
+ layer_off (HUN);
+ queue = false;
+ }
+ return queue;
+ }
+
+ if (time_travel && !record->event.pressed) {
+ uint8_t p;
+
+ // shift cache one to the left
+ for (p = 0; p < 3; p++) {
+ last4[p] = last4[p + 1];
+ }
+ last4[3] = keycode;
- default:
- if (ct_cln_count == 1) {
+ if (last4[0] == KC_D && last4[1] == KC_A && last4[2] == KC_T && last4[3] == KC_E) {
+ ang_tap (KC_E, KC_SPC, KC_MINS, KC_D, KC_SPC, KC_QUOT, 0);
register_code (KC_RSFT);
- register_code (KC_SCLN);
- unregister_code (KC_SCLN);
+ register_code (KC_EQL);
+ unregister_code (KC_EQL);
unregister_code (KC_RSFT);
- } else if (ct_cln_count == 2) {
- register_code (KC_SCLN);
- unregister_code (KC_SCLN);
+
+ ang_tap (KC_4, KC_SPC, KC_D, KC_A, KC_Y, KC_S, KC_QUOT, 0);
+
+ return false;
}
- ct_cln_count = 0;
- ct_cln_timer = 0;
- break;
}
return true;
}
+
+void qk_ucis_symbol_fallback (void) {
+ for (uint8_t i = 0; i < qk_ucis_state.count - 1; i++) {
+ uint8_t code;
+
+ if ((qk_ucis_state.codes[i] >= M(A_1)) && (qk_ucis_state.codes[i] <= M(A_0)))
+ code = qk_ucis_state.codes[i] - M(A_1) + KC_1;
+ else
+ code = qk_ucis_state.codes[i];
+ register_code(code);
+ unregister_code(code);
+ wait_ms (10);
+ }
+}
diff --git a/keyboards/ergodox/keymaps/algernon/readme.md b/keyboards/ergodox/keymaps/algernon/readme.md
new file mode 100644
index 000000000..3783eadf1
--- /dev/null
+++ b/keyboards/ergodox/keymaps/algernon/readme.md
@@ -0,0 +1,146 @@
+<!-- -*- mode: markdown; fill-column: 8192 -*- -->
+
+algernon's layout
+=======================
+
+This is an unconventional layout for the [ErgoDox EZ][ez]. For more details about the history of the layout, see my [blog posts about my ErgoDox journey][blog-ergodox].
+
+ [ez]: https://ergodox-ez.com/
+ [blog-ergodox]: https://asylum.madhouse-project.org/blog/tags/ergodox/
+
+Some of the things in the layout only work when one uses [Spacemacs][spacemacs] and [GNOME][gnome] under Linux. Your mileage may vary.
+
+ [spacemacs]: http://spacemacs.org/
+ [gnome]: https://www.gnome.org/
+
+## Table of Contents
+
+* [Layouts](#layouts)
+ - [Base layer](#base-layer)
+ - [ADORE layer](#adore-layer)
+ - [Steno layer](#steno-layer)
+ - [LED states](#led-states)
+* [Tools](#tools)
+ - [Heatmap](#heatmap)
+ - [Layer notification](#layer-notification)
+* [Special features](#special-features)
+ - [Unicode Symbol Input](#unicode-symbol-input)
+* [Building](#building)
+ - [Using on Windows](#using-on-windows)
+* [Changelog](https://github.com/algernon/ergodox-layout/blob/master/NEWS.md#readme)
+* [License](#license)
+
+# Layouts
+
+## Base layer
+
+[![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/28f7eb305fdbff943613e1dc7aa9e82b)
+
+At its core, this is a Dvorak layout, with some minor changes. The more interesting parts are how certain keys behave:
+
+* The number row is the same as in the [ADORE](#adore-layer) layer. The function keys are on the **Media** layer.
+* The `Shift`, `Alt`, and `Control` modifiers are one-shot. When tapped, they are considered active for the next key press only. When double tapped, they toggle on, until a third, single tap sometime later. When held, they act as expected. My usual pattern is that I use these for the next keypress only, so this behaviour is perfect. If I need them held, I'll just double-tap.
+* The `GUI` key is special, because when I double-tap it, it sends `GUI + w`, which pops up an application selector. It also switches to a one-shot layer, where the number row on the left half turns into app selector macros, for the most common things I usually want to switch to. Otherwise it behaves as on a normal layout.
+* The `ESC` key also doubles as a one-shot cancel key: if tapped while any of the one-shot modifiers are in-flight (as in, single-tapped, and not expired yet), it cancels all one-shot modifiers. It also cancels the **Hun** layer, if active. Otherwise it sends the usual keycode.
+* The **Media** and **Hun** layer keys are one-shot, the **STENO** key is a toggle.
+* The **Fx** key is one-shot, and activates the **Media** layer, along with a one-shot `Alt`.
+* When holding the `Tab`/**Arrow** key, the arrow layer activates while the key is held. Tapping the key produces the normal, `Tab` key. Double-tapping it toggles the **Arrow** layer on until a third tap.
+* Tapping the `:` key once yields `:`, tapping it twice yields `;`.
+* Tapping the `[{(`/`)}]` keys once yields `[` (or `{` when shifted), tapping them twice yields `(`.
+* The **Lead** key allows me to type in a sequence of keys, and trigger some actions:
+ - `LEAD l` uses the unicode input method to enter a `λ`.
+ - `LEAD s` does a lot of magic to type in a shruggie: `¯\_(ツ)_/¯`
+ - `LEAD y` types `\o/`.
+ - `LEAD w m` maximises the currently focused window.
+ - `LEAD a` makes the [ADORE layer](#adore-layer) the default.
+ - `LEAD v` prints the firmware version, the keyboard and the keymap.
+ - `LEAD d` toggles logging keypress positions to the HID console.
+ - `LEAD t` toggles time travel. Figuring out the current `date` is left as an exercise to the reader.
+ - `LEAD u` enters the [Unicode symbol input](#unicode-symbol-input) mode.
+
+The symbols on the front in the image above have the same color as the key that activates them, with the exception of the **Arrow** layer, which is just black on the front.
+
+## ADORE layer
+
+[![ADORE layer](images/adore-layer.png)](http://www.keyboard-layout-editor.com/#/gists/45681a17453d235925b6028dd83bf12a)
+
+My experimental layout, that I keep tweaking. No full description here, because things are very much in flux.
+
+Note that the **HUN** layer does not work well with ADORE: it still has the same layout as on the [Base](#base-layer) layer. This will remain until ADORE becomes the default.
+
+## Steno layer
+
+[![Steno layer for Plover](images/steno-layer.png)](http://www.keyboard-layout-editor.com/#/gists/401ef9a84369e47c57f9aedcf0a0d667)
+
+This is to be used with [Plover](http://www.openstenoproject.org/plover/), nothing really fancy here. The **STENO** key toggles the layer on and off, and sends the toggle command to Plover too.
+
+## LED states
+
+The primary purpose of the LEDs is to show the modifier status, a secondary, to show which layer is active. Each modifier, `Shift`, `Alt` and `Control` each have their designated LEDs: the *red*, *green* and *blue*, respectively. When a modifier is in a one-shot state, the respective LED will turn on with a dimmer light. If the modifier is toggled on, the brightness of the LED turns full.
+
+For the layers, the following rules apply:
+
+* When the [ADORE layer](#adore-layer) is toggled on, LEDs will light up from left to right in a sequence, then turn off. When the layer is toggled off, the LEDs light up and turn off in the other direction. No LEDs are on while the layer is active.
+* When the **Hungarian** layer is active, the *green* and *blue* LEDs are on.
+* When the **Media** layer is active, the *red* and *green* ones are on.
+* When the **ARROW** layer is active, the *red* and *blue* ones are on.
+* For the [Steno layer](#steno-layer), all LEDs will be turned on.
+
+Unless noted otherwise, the layers use a dim light for the LEDs, while modifiers use a stronger one, and modifiers override any layer preferences. For example, when on the one-handed layer, with the left side active (*red* light blinking), if `Shift` is on, the *red* light will be constantly on.
+
+# Special features
+
+## Unicode Symbol Input
+
+Once in the Unicode Symbol Input mode, one is able to type in symbol names, press `Enter` or `Space`, and get the Unicode symbol itself back. When in the mode, a capital `U` is printed first. Once the sequence is finished, all of it is erased by sending enough `Backspace` taps, and the firmware starts the OS-specific unicode input sequence. Then, it looks up the symbol name, and enters the associated code. If it is not found, it will just replay the pressed keycodes.
+
+For the list of supported symbols, please see the source.
+
+This is an experimental feature, and may or may not work reliably.
+
+# Tools
+
+## Heatmap
+
+When the keypress logging functionality is enabled (by `LEAD d`), the keyboard will output a line every time a key is pressed, containing the position of the key in the matrix. This allows one to collect this information, and build analytics over it, such as a heat map, including dead keys too.
+
+Included with the firmware is a small tool that can parse these logs, and create a heatmap that one can import into [KLE][kle]. To use it, either pipe the output of `hid_listen` into it, or pipe it an already saved log, and it will save the results into files in an output directory (given on the command-line). See the output of `tools/log-to-heatmap.py --help` for more information.
+
+ [kle]: http://www.keyboard-layout-editor.com/
+
+The generated heatmap looks somewhat like this:
+
+ ![Heatmap](images/heatmap.png)
+
+## Layer notification
+
+There is a very small tool in `tools/layer-notify`, that listens to the HID console, looking for layer change events, and pops up a notification for every detected change. It is a very simple tool, mainly serving as an example.
+
+# Building
+
+To make my workflow easier, this layout is maintained in [its own repository][algernon:ez-layout]. To build it, you will need the [QMK][qmk] firmware checked out, and this repo either checked out to something like `keyboards/ergodox_ez/algernon-master`. One way to achieve that is this:
+
+ [algernon:ez-layout]: https://github.com/algernon/ergodox-layout
+ [qmk]: https://github.com/qmk/qmk_firmware
+
+```
+$ git clone https://github.com/qmk/qmk_firmware.git
+$ cd qmk_firmware
+$ git clone https://github.com/algernon/ergodox-layout.git \
+ keyboards/ergodox/keymaps/algernon-master
+$ make keyboard=ergodox keymap=algernon-master
+```
+
+From time to time, updates may be submitted back to the QMK repository. If you are reading it there, you can build the firmware like any other firmware included with it (assuming you are in the root directory of the firmware):
+
+```
+$ make keyboard=ergodox keymap=algernon
+```
+
+## Using on Windows
+
+The keymap default to forcing NKRO, which seems to upset Windows, and except the modifiers, none of them work. If you experience this problem, recompile the firmware with `FORCE_NKRO=no` added to the `make` command line.
+
+# License
+
+The layout, being a derivative of the original TMK firmware which is under the GPL-2+, this layout is under the GPL as well, but GPL-3+, rather than the older version.
diff --git a/keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.ADORE.json b/keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.ADORE.json
new file mode 100644
index 000000000..e09efecc4
--- /dev/null
+++ b/keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.ADORE.json
@@ -0,0 +1,486 @@
+[
+ {
+ "backcolor": "#ffffff",
+ "name": "ErgoDox - algernon's layout: Heatmap",
+ "author": "Gergely Nagy <kbd@gergo.csillger.hu>",
+ "notes": "See [here](https://github.com/algernon/ergodox-layout#readme) for the QMK keymap source.",
+ "switchMount": "cherry",
+ "switchBrand": "gateron",
+ "switchType": "KS-3-Tea",
+ "pcb": true,
+ "css": ".keyborder { -webkit-filter: blur(5px); filter: blur(5px); } .keytop { -webkit-filter: blur(10px); } .keylabels { border: 1px solid black; }"
+ },
+ [
+ {
+ "x": 3.5,
+ "fa": [
+ 0,
+ 0,
+ 2
+ ]
+ },
+ "*\n5\nF5",
+ {
+ "x": 10.5,
+ "a": 4,
+ "fa": [
+ 0,
+ 0,
+ 2
+ ]
+ },
+ "#\n4\nF4"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "@\n7\nF7",
+ {
+ "x": 1
+ },
+ "^\n3\nF3",
+ {
+ "x": 8.5
+ },
+ "!\n2\nF2",
+ {
+ "x": 1
+ },
+ "&\n6\nF6"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "$\n1\nF1",
+ {
+ "a": 7,
+ "f": 3
+ },
+ "F11",
+ {
+ "x": 4.5,
+ "f": 3
+ },
+ "Fx",
+ {
+ "a": 4,
+ "f": 3,
+ "fa": [
+ 0,
+ 0,
+ 2
+ ]
+ },
+ "%\n0\nF10"
+ ],
+ [
+ {
+ "y": -0.875,
+ "f": 9,
+ "a": 6,
+ "w": 1.5
+ },
+ "\n\n<i class='kb kb-Multimedia-Play-Pause'></i>",
+ {
+ "f": 3,
+ "a": 4,
+ "fa": [
+ 0,
+ 0,
+ 2
+ ]
+ },
+ " \n9\nF9",
+ {
+ "x": 14.5
+ },
+ " \n8\nF8",
+ {
+ "a": 7,
+ "w": 1.5
+ },
+ "STENO"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "a": 6
+ },
+ "C",
+ {
+ "x": 10.5
+ },
+ "L"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "a": 6
+ },
+ "W",
+ {
+ "x": 1,
+ "a": 6
+ },
+ "H",
+ {
+ "x": 8.5
+ },
+ "G",
+ {
+ "x": 1
+ },
+ "P"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "F",
+ {
+ "a": 4,
+ "fa": [0, 0, 0],
+ "h": 1.5
+ },
+ "{\n(\n[",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "}\n)\n]",
+ {
+ "a": 6
+ },
+ "M"
+ ],
+ [
+ {
+ "y": -0.875,
+ "f": 3,
+ "a": 4,
+ "w": 1.5
+ },
+ "\n\n|\n\\",
+ {
+ "a": 6,
+ "f": 3
+ },
+ "X",
+ {
+ "x": 14.5,
+ "a": 4
+ },
+ "/\n?",
+ {
+ "a": 4,
+ "w": 1.5
+ },
+ "~\n`"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "a": 6
+ },
+ "E",
+ {
+ "x": 10.5
+ },
+ "T"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "O",
+ {
+ "x": 1,
+ "n": true
+ },
+ "I",
+ {
+ "x": 8.5,
+ "n": true
+ },
+ "R",
+ {
+ "x": 1
+ },
+ "N"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "U",
+ {
+ "x": 6.5
+ },
+ "D"
+ ],
+ [
+ {
+ "y": -0.875,
+ "fa": [
+ 6
+ ],
+ "w": 1.5
+ },
+ "<i class='fa fa-arrows'></i>\n\nTab",
+ {
+ "f": 3
+ },
+ "A",
+ {
+ "x": 14.5,
+ "f": 3
+ },
+ "S",
+ {
+ "a": 4,
+ "fa": [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 6
+ ],
+ "w": 1.5
+ },
+ "+\n="
+ ],
+ [
+ {
+ "y": -0.625,
+ "x": 6.5,
+ "a": 7,
+ "f": 9,
+ "h": 1.5
+ },
+ "<i class='fa fa-columns'></i>",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "<i class='fa fa-table'></i>"
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 3.5,
+ "a": 4,
+ "f": 3
+ },
+ "\"\n'",
+ {
+ "x": 10.5,
+ "a": 6,
+ "f": 3
+ },
+ "V"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "a": 6
+ },
+ "Q",
+ {
+ "x": 1,
+ "a": 4
+ },
+ "<\n,",
+ {
+ "x": 8.5,
+ "a": 6
+ },
+ "K",
+ {
+ "x": 1
+ },
+ "Y"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "a": 4
+ },
+ ">\n.",
+ {
+ "x": 6.5,
+ "a": 6
+ },
+ "B"
+ ],
+ [
+ {
+ "y": -0.875,
+ "f": 9,
+ "w": 1.5,
+ "g": true
+ },
+ "",
+ {
+ "a": 6,
+ "f": 3,
+ "g": false
+ },
+ "Z",
+ {
+ "x": 14.5
+ },
+ "J",
+ {
+ "f": 9,
+ "g": true,
+ "w": 1.5,
+ "a": 4
+ },
+ ""
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "g": true,
+ "a": 7,
+ "f": 3
+ },
+ "",
+ {
+ "x": 10.5
+ },
+ ""
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "",
+ {
+ "x": 1,
+ "g": false,
+ "a": 5
+ },
+ ";\n:",
+ {
+ "x": 8.5
+ },
+ "_\n-",
+ {
+ "x": 1,
+ "g": true,
+ "a": 7
+ },
+ ""
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 0.5
+ },
+ "",
+ {},
+ "",
+ {
+ "x": 14.5
+ },
+ "",
+ {},
+ ""
+ ],
+ [
+ {
+ "r": 30,
+ "rx": 6.5,
+ "ry": 4.25,
+ "y": -1,
+ "x": 1,
+ "g": false
+ },
+ "Alt",
+ {
+ "a": 4,
+ "fa": [
+ 0,
+ 0,
+ 0,
+ 9
+ ]
+ },
+ "\n\n\n<i class='kb kb-logo-linux-debian fa-large'></i>"
+ ],
+ [
+ {
+ "a": 7,
+ "f": 9,
+ "h": 2
+ },
+ "<i class='kb kb-Unicode-BackSpace-DeleteLeft-Big'></i>",
+ {
+ "h": 2
+ },
+ "<i class='fa fa-angle-double-up'></i>",
+ {
+ "f": 3
+ },
+ "Ctrl"
+ ],
+ [
+ {
+ "x": 2
+ },
+ "ESC"
+ ],
+ [
+ {
+ "r": -30,
+ "rx": 13,
+ "y": -1,
+ "x": -3,
+ "f": 2
+ },
+ "MEDIA",
+ {},
+ "DEL"
+ ],
+ [
+ {
+ "x": -3
+ },
+ "HUN",
+ {
+ "f": 9,
+ "h": 2
+ },
+ "<i class='kb kb-Return-2'></i>",
+ {
+ "f": 3,
+ "h": 2
+ },
+ "SPC"
+ ],
+ [
+ {
+ "x": -3,
+ "f": 2
+ },
+ "LEAD"
+ ]
+]
diff --git a/keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.Dvorak.json b/keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.Dvorak.json
new file mode 100644
index 000000000..1e53281c5
--- /dev/null
+++ b/keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.Dvorak.json
@@ -0,0 +1,477 @@
+[
+ {
+ "backcolor": "#ffffff",
+ "name": "ErgoDox - algernon's layout: Heatmap",
+ "author": "Gergely Nagy <kbd@gergo.csillger.hu>",
+ "notes": "See [here](https://github.com/algernon/ergodox-layout#readme) for the QMK keymap source.",
+ "switchMount": "cherry",
+ "switchBrand": "gateron",
+ "switchType": "KS-3-Tea",
+ "pcb": true,
+ "css": ".keyborder { -webkit-filter: blur(5px); filter: blur(5px); } .keytop { -webkit-filter: blur(10px); } .keylabels { border: 1px solid black; }"
+ },
+ [
+ {
+ "x": 3.5,
+ "fa": [
+ 0,
+ 0,
+ 2
+ ]
+ },
+ "*\n5\nF5",
+ {
+ "x": 10.5,
+ "a": 4,
+ "fa": [
+ 0,
+ 0,
+ 2
+ ]
+ },
+ "#\n4\nF4"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "@\n7\nF7",
+ {
+ "x": 1
+ },
+ "^\n3\nF3",
+ {
+ "x": 8.5
+ },
+ "!\n2\nF2",
+ {
+ "x": 1
+ },
+ "&\n6\nF6"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "$\n1\nF1",
+ {
+ "a": 7,
+ "f": 3
+ },
+ "F11",
+ {
+ "x": 4.5,
+ "f": 3
+ },
+ "Fx",
+ {
+ "a": 4,
+ "f": 3,
+ "fa": [
+ 0,
+ 0,
+ 2
+ ]
+ },
+ "%\n0\nF10"
+ ],
+ [
+ {
+ "y": -0.875,
+ "f": 6,
+ "a": 6,
+ "w": 1.5
+ },
+ "<i class='fa fa-fast-backward'></i>\n\n<i class='fa fa-fast-forward'></i>",
+ {
+ "f": 3,
+ "a": 4,
+ "fa": [
+ 0,
+ 0,
+ 2
+ ]
+
+ },
+ " \n9\nF9",
+ {
+ "x": 14.5
+ },
+ " \n8\nF8",
+ {
+ "a": 7,
+ "w": 1.5
+ },
+ "STENO"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "a": 4
+ },
+ ">\n.",
+ {
+ "x": 10.5,
+ "a": 6
+ },
+ "C"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "a": 4
+ },
+ "<\n,",
+ {
+ "x": 1,
+ "a": 6
+ },
+ "P",
+ {
+ "x": 8.5
+ },
+ "G",
+ {
+ "x": 1
+ },
+ "R"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "Y",
+ {
+ "a": 4,
+ "h": 1.5
+ },
+ "{\n(\n[",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "}\n)\n]",
+ {
+ "a": 6
+ },
+ "F"
+ ],
+ [
+ {
+ "y": -0.875,
+ "f": 3,
+ "a": 4,
+ "w": 1.5
+ },
+ "\n\n~\n`",
+ {
+ "a": 4,
+ "f": 3
+ },
+ "\"\n'",
+ {
+ "x": 14.5,
+ "a": 6
+ },
+ "L",
+ {
+ "a": 4,
+ "w": 1.5
+ },
+ "|\n\\"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "a": 6
+ },
+ "E",
+ {
+ "x": 10.5
+ },
+ "T"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "O",
+ {
+ "x": 1,
+ "n": true
+ },
+ "U",
+ {
+ "x": 8.5,
+ "n": true
+ },
+ "H",
+ {
+ "x": 1
+ },
+ "N"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "I",
+ {
+ "x": 6.5
+ },
+ "D"
+ ],
+ [
+ {
+ "y": -0.875,
+ "fa": [
+ 6
+ ],
+ "w": 1.5
+ },
+ "<i class='fa fa-arrows'></i>\n\nTab",
+ {
+ "f": 3
+ },
+ "A",
+ {
+ "x": 14.5,
+ "f": 3
+ },
+ "S",
+ {
+ "a": 4,
+ "fa": [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 6
+ ],
+ "w": 1.5
+ },
+ "+\n="
+ ],
+ [
+ {
+ "y": -0.625,
+ "x": 6.5,
+ "a": 7,
+ "f": 9,
+ "h": 1.5
+ },
+ "<i class='fa fa-columns'></i>",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "<i class='fa fa-table'></i>"
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 3.5,
+ "f": 3,
+ "a": 6
+ },
+ "J",
+ {
+ "x": 10.5
+ },
+ "W"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "Q",
+ {
+ "x": 1
+ },
+ "K",
+ {
+ "x": 8.5
+ },
+ "M",
+ {
+ "x": 1
+ },
+ "V"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "X",
+ {
+ "x": 6.5
+ },
+ "B"
+ ],
+ [
+ {
+ "y": -0.875,
+ "f": 9,
+ "w": 1.5
+ },
+ "\n\n<i class='kb kb-Multimedia-Play-Pause'></i>",
+ {
+ "a": 4,
+ "f": 3
+ },
+ "?\n/",
+ {
+ "x": 14.5,
+ "a": 6
+ },
+ "Z",
+ {
+ "f": 9,
+ "w": 1.5
+ },
+ "<i class='kb kb-Multimedia-Stop'></i>"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "g": true,
+ "a": 7,
+ "f": 3
+ },
+ "",
+ {
+ "x": 10.5
+ },
+ ""
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "",
+ {
+ "x": 1,
+ "g": false,
+ "a": 5
+ },
+ ";\n:",
+ {
+ "x": 8.5
+ },
+ "_\n-",
+ {
+ "x": 1,
+ "g": true,
+ "a": 7
+ },
+ ""
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 0.5
+ },
+ "",
+ {},
+ "",
+ {
+ "x": 14.5
+ },
+ "",
+ {},
+ ""
+ ],
+ [
+ {
+ "r": 30,
+ "rx": 6.5,
+ "ry": 4.25,
+ "y": -1,
+ "x": 1,
+ "g": false
+ },
+ "Alt",
+ {
+ "a": 4,
+ "fa": [
+ 0,
+ 0,
+ 0,
+ 9
+ ]
+ },
+ "\n\n\n<i class='kb kb-logo-linux-debian fa-large'></i>"
+ ],
+ [
+ {
+ "a": 7,
+ "f": 9,
+ "h": 2
+ },
+ "<i class='kb kb-Unicode-BackSpace-DeleteLeft-Big'></i>",
+ {
+ "h": 2
+ },
+ "<i class='fa fa-angle-double-up'></i>",
+ {
+ "f": 3
+ },
+ "Ctrl"
+ ],
+ [
+ {
+ "x": 2
+ },
+ "ESC"
+ ],
+ [
+ {
+ "r": -30,
+ "rx": 13,
+ "y": -1,
+ "x": -3,
+ "f": 2
+ },
+ "MEDIA",
+ {},
+ "DEL"
+ ],
+ [
+ {
+ "x": -3
+ },
+ "LEAD",
+ {
+ "f": 9,
+ "h": 2
+ },
+ "<i class='kb kb-Return-2'></i>",
+ {
+ "f": 3,
+ "h": 2
+ },
+ "SPC"
+ ],
+ [
+ {
+ "x": -3,
+ "f": 2
+ },
+ "HUN"
+ ]
+]
diff --git a/keyboards/ergodox/keymaps/algernon/tools/hid-commands b/keyboards/ergodox/keymaps/algernon/tools/hid-commands
new file mode 100755
index 000000000..54ca7556a
--- /dev/null
+++ b/keyboards/ergodox/keymaps/algernon/tools/hid-commands
@@ -0,0 +1,80 @@
+#!/bin/bash
+set -e
+
+LAST_APPSEL_START=0
+
+cmd_wm () {
+ WIN="$(xdotool getactivewindow)"
+ wmctrl -i -r ${WIN} -b remove,maximized_vert,maximized_horz
+ xdotool windowsize ${WIN} 100% 100%
+ wmctrl -i -r ${WIN} -b add,maximized_vert,maximized_horz
+}
+
+_cmd_appsel () {
+ wmctrl -x -a $1 || true
+ xdotool key Escape
+}
+
+cmd_appsel_music () {
+ wmctrl -x -a rhythmbox || wmctrl -x -a spotify || \
+ wmctrl -x -a banshee || wmctrl -x -a kodi || true
+ xdotool key Escape
+}
+
+cmd_appsel_slack () {
+ _cmd_appsel slack
+}
+
+cmd_appsel_emacs () {
+ _cmd_appsel emacs
+}
+
+cmd_appsel_term () {
+ _cmd_appsel gnome-terminal
+}
+
+cmd_appsel_chrome () {
+ _cmd_appsel chrom
+}
+
+cmd_appsel_start () {
+ if [ ! -z "${DISABLE_APPSEL_START}" ]; then
+ return
+ fi
+
+ APPSEL_START=$(date +%s)
+ if [ $APPSEL_START -lt $(expr $LAST_APPSEL_START + 10) ]; then
+ return
+ fi
+ LAST_APPSEL_START=$APPSEL_START
+ notify-send -t 1000 "Please select an application!" -c device -u low \
+ -i /usr/share/icons/Adwaita/24x24/devices/video-display.png
+}
+
+cmd_reflash () {
+ teensy_loader_cli -v -w ~/src/ext/qmk_firmware/algernon.hex --mcu atmega32u4 || true
+}
+
+cmd_help () {
+ cat <<EOF
+Use the source, Luke!
+EOF
+}
+
+while read l; do
+ case "$l" in
+ "CMD:"*)
+ ;;
+ *)
+ continue
+ ;;
+ esac
+
+ cmd="$(echo $l | cut -d: -f2-)"
+
+ echo "Got command: ${cmd}"
+
+ if type cmd_${cmd} >/dev/null 2>&1; then
+ cmd_${cmd}
+ fi
+done
diff --git a/keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py b/keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py
new file mode 100755
index 000000000..e927e0e39
--- /dev/null
+++ b/keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py
@@ -0,0 +1,344 @@
+#! /usr/bin/env python3
+import json
+import os
+import sys
+import re
+import argparse
+import time
+
+from math import floor
+from os.path import dirname
+from subprocess import Popen, PIPE, STDOUT
+from blessings import Terminal
+
+class Heatmap(object):
+ coords = [
+ [
+ # Row 0
+ [ 4, 0], [ 4, 2], [ 2, 0], [ 1, 0], [ 2, 2], [ 3, 0], [ 3, 2],
+ [ 3, 4], [ 3, 6], [ 2, 4], [ 1, 2], [ 2, 6], [ 4, 4], [ 4, 6],
+ ],
+ [
+ # Row 1
+ [ 8, 0], [ 8, 2], [ 6, 0], [ 5, 0], [ 6, 2], [ 7, 0], [ 7, 2],
+ [ 7, 4], [ 7, 6], [ 6, 4], [ 5, 2], [ 6, 6], [ 8, 4], [ 8, 6],
+ ],
+ [
+ # Row 2
+ [12, 0], [12, 2], [10, 0], [ 9, 0], [10, 2], [11, 0], [ ],
+ [ ], [11, 2], [10, 4], [ 9, 2], [10, 6], [12, 4], [12, 6],
+ ],
+ [
+ # Row 3
+ [17, 0], [17, 2], [15, 0], [14, 0], [15, 2], [16, 0], [13, 0],
+ [13, 2], [16, 2], [15, 4], [14, 2], [15, 6], [17, 4], [17, 6],
+ ],
+ [
+ # Row 4
+ [20, 0], [20, 2], [19, 0], [18, 0], [19, 2], [], [], [], [],
+ [19, 4], [18, 2], [19, 6], [20, 4], [20, 6], [], [], [], []
+ ],
+ [
+ # Row 5
+ [ ], [23, 0], [22, 2], [22, 0], [22, 4], [21, 0], [21, 2],
+ [24, 0], [24, 2], [25, 0], [25, 4], [25, 2], [26, 0], [ ],
+ ],
+ ]
+
+ def set_attr_at(self, block, n, attr, fn, val):
+ blk = self.heatmap[block][n]
+ if attr in blk:
+ blk[attr] = fn(blk[attr], val)
+ else:
+ blk[attr] = fn(None, val)
+
+ def coord(self, col, row):
+ return self.coords[row][col]
+
+ @staticmethod
+ def set_attr(orig, new):
+ return new
+
+ def set_bg(self, coords, color):
+ (block, n) = coords
+ self.set_attr_at(block, n, "c", self.set_attr, color)
+ #self.set_attr_at(block, n, "g", self.set_attr, False)
+
+ def set_tap_info(self, coords, count, cap):
+ (block, n) = coords
+ def _set_tap_info(o, _count, _cap):
+ ns = 4 - o.count ("\n")
+ return o + "\n" * ns + "%.02f%%" % (float(_count) / float(_cap) * 100)
+
+ if not cap:
+ cap = 1
+ self.heatmap[block][n + 1] = _set_tap_info (self.heatmap[block][n + 1], count, cap)
+
+ @staticmethod
+ def heatmap_color (v):
+ colors = [ [0.3, 0.3, 1], [0.3, 1, 0.3], [1, 1, 0.3], [1, 0.3, 0.3]]
+ fb = 0
+ if v <= 0:
+ idx1, idx2 = 0, 0
+ elif v >= 1:
+ idx1, idx2 = len(colors) - 1, len(colors) - 1
+ else:
+ val = v * (len(colors) - 1)
+ idx1 = int(floor(val))
+ idx2 = idx1 + 1
+ fb = val - float(idx1)
+
+ r = (colors[idx2][0] - colors[idx1][0]) * fb + colors[idx1][0]
+ g = (colors[idx2][1] - colors[idx1][1]) * fb + colors[idx1][1]
+ b = (colors[idx2][2] - colors[idx1][2]) * fb + colors[idx1][2]
+
+ r, g, b = [x * 255 for x in (r, g, b)]
+ return "#%02x%02x%02x" % (int(r), int(g), int(b))
+
+ def __init__(self, layout):
+ self.log = {}
+ self.total = 0
+ self.max_cnt = 0
+ self.layout = layout
+
+ def update_log(self, coords):
+ (c, r) = coords
+ if not (c, r) in self.log:
+ self.log[(c, r)] = 0
+ self.log[(c, r)] = self.log[(c, r)] + 1
+ self.total = self.total + 1
+ if self.max_cnt < self.log[(c, r)]:
+ self.max_cnt = self.log[(c, r)]
+
+ def get_heatmap(self):
+ with open("%s/heatmap-layout.%s.json" % (dirname(sys.argv[0]), self.layout), "r") as f:
+ self.heatmap = json.load (f)
+
+ ## Reset colors
+ for row in self.coords:
+ for coord in row:
+ if coord != []:
+ self.set_bg (coord, "#d9dae0")
+
+ for (c, r) in self.log:
+ coords = self.coord(c, r)
+ b, n = coords
+ cap = self.max_cnt
+ if cap == 0:
+ cap = 1
+ v = float(self.log[(c, r)]) / cap
+ self.set_bg (coords, self.heatmap_color (v))
+ self.set_tap_info (coords, self.log[(c, r)], self.total)
+ return self.heatmap
+
+ def get_stats(self):
+ usage = [
+ # left hand
+ [0, 0, 0, 0, 0],
+ # right hand
+ [0, 0, 0, 0, 0]
+ ]
+ finger_map = [0, 0, 1, 2, 3, 3, 3, 1, 1, 1, 2, 3, 4, 4]
+ for (c, r) in self.log:
+ if r == 5: # thumb cluster
+ if c <= 6: # left side
+ usage[0][4] = usage[0][4] + self.log[(c, r)]
+ else:
+ usage[1][0] = usage[1][0] + self.log[(c, r)]
+ elif r == 4 and (c == 4 or c == 9): # bottom row thumb keys
+ if c <= 6: # left side
+ usage[0][4] = usage[0][4] + self.log[(c, r)]
+ else:
+ usage[1][0] = usage[1][0] + self.log[(c, r)]
+ else:
+ fc = c
+ hand = 0
+ if fc >= 7:
+ hand = 1
+ fm = finger_map[fc]
+ usage[hand][fm] = usage[hand][fm] + self.log[(c, r)]
+ hand_usage = [0, 0]
+ for f in usage[0]:
+ hand_usage[0] = hand_usage[0] + f
+ for f in usage[1]:
+ hand_usage[1] = hand_usage[1] + f
+
+ total = self.total
+ if total == 0:
+ total = 1
+ stats = {
+ "total-keys": total,
+ "hands": {
+ "left": {
+ "usage": round(float(hand_usage[0]) / total * 100, 2),
+ "fingers": {
+ "pinky": 0,
+ "ring": 0,
+ "middle": 0,
+ "index": 0,
+ "thumb": 0,
+ }
+ },
+ "right": {
+ "usage": round(float(hand_usage[1]) / total * 100, 2),
+ "fingers": {
+ "thumb": 0,
+ "index": 0,
+ "middle": 0,
+ "ring": 0,
+ "pinky": 0,
+ }
+ },
+ }
+ }
+
+ hmap = ['left', 'right']
+ fmap = ['pinky', 'ring', 'middle', 'index', 'thumb',
+ 'thumb', 'index', 'middle', 'ring', 'pinky']
+ for hand_idx in range(len(usage)):
+ hand = usage[hand_idx]
+ for finger_idx in range(len(hand)):
+ stats['hands'][hmap[hand_idx]]['fingers'][fmap[finger_idx + hand_idx * 5]] = round(float(hand[finger_idx]) / total * 100, 2)
+ return stats
+
+def dump_all(out_dir, heatmaps):
+ stats = {}
+ t = Terminal()
+ t.clear()
+ sys.stdout.write("\x1b[2J\x1b[H")
+
+ print ('{t.underline}{outdir}{t.normal}\n'.format(t=t, outdir=out_dir))
+
+ keys = list(heatmaps.keys())
+ keys.sort()
+
+ for layer in keys:
+ if len(heatmaps[layer].log) == 0:
+ continue
+
+ with open ("%s/%s.json" % (out_dir, layer), "w") as f:
+ json.dump(heatmaps[layer].get_heatmap(), f)
+ stats[layer] = heatmaps[layer].get_stats()
+
+ left = stats[layer]['hands']['left']
+ right = stats[layer]['hands']['right']
+
+ print ('{t.bold}{layer}{t.normal} ({total:,} taps):'.format(t=t, layer=layer,
+ total=int(stats[layer]['total-keys'] / 2)))
+ print (('{t.underline} | ' + \
+ 'left ({l[usage]:6.2f}%) | ' + \
+ 'right ({r[usage]:6.2f}%) |{t.normal}').format(t=t, l=left, r=right))
+ print ((' {t.bright_magenta}pinky{t.white} | {left[pinky]:6.2f}% | {right[pinky]:6.2f}% |\n' + \
+ ' {t.bright_cyan}ring{t.white} | {left[ring]:6.2f}% | {right[ring]:6.2f}% |\n' + \
+ ' {t.bright_blue}middle{t.white} | {left[middle]:6.2f}% | {right[middle]:6.2f}% |\n' + \
+ ' {t.bright_green}index{t.white} | {left[index]:6.2f}% | {right[index]:6.2f}% |\n' + \
+ ' {t.bright_red}thumb{t.white} | {left[thumb]:6.2f}% | {right[thumb]:6.2f}% |\n' + \
+ '').format(left=left['fingers'], right=right['fingers'], t=t))
+
+def process_line(line, heatmaps, opts, stamped_log = None):
+ m = re.search ('KL: col=(\d+), row=(\d+), pressed=(\d+), layer=(.*)', line)
+ if not m:
+ return False
+ if stamped_log is not None:
+ if line.startswith("KL:"):
+ print ("%10.10f %s" % (time.time(), line),
+ file = stamped_log, end = '')
+ else:
+ print (line,
+ file = stamped_log, end = '')
+ stamped_log.flush()
+
+ (c, r, l) = (int(m.group (2)), int(m.group (1)), m.group (4))
+ if (c, r) not in opts.allowed_keys:
+ return False
+
+ heatmaps[l].update_log ((c, r))
+
+ return True
+
+def setup_allowed_keys(opts):
+ if len(opts.only_key):
+ incmap={}
+ for v in opts.only_key:
+ m = re.search ('(\d+),(\d+)', v)
+ if not m:
+ continue
+ (c, r) = (int(m.group(1)), int(m.group(2)))
+ incmap[(c, r)] = True
+ else:
+ incmap={}
+ for r in range(0, 6):
+ for c in range(0, 14):
+ incmap[(c, r)] = True
+
+ for v in opts.ignore_key:
+ m = re.search ('(\d+),(\d+)', v)
+ if not m:
+ continue
+ (c, r) = (int(m.group(1)), int(m.group(2)))
+ del(incmap[(c, r)])
+
+ return incmap
+
+def main(opts):
+ heatmaps = {"Dvorak": Heatmap("Dvorak"),
+ "ADORE": Heatmap("ADORE")
+ }
+ cnt = 0
+ out_dir = opts.outdir
+
+ if not os.path.exists(out_dir):
+ os.makedirs(out_dir)
+
+ opts.allowed_keys = setup_allowed_keys(opts)
+
+ if not opts.one_shot:
+
+ try:
+ with open("%s/stamped-log" % out_dir, "r") as f:
+ while True:
+ line = f.readline()
+ if not line:
+ break
+ if not process_line(line, heatmaps, opts):
+ continue
+ except:
+ pass
+
+ stamped_log = open ("%s/stamped-log" % (out_dir), "a+")
+ else:
+ stamped_log = None
+
+ while True:
+ line = sys.stdin.readline()
+ if not line:
+ break
+ if not process_line(line, heatmaps, opts, stamped_log):
+ continue
+
+ cnt = cnt + 1
+
+ if opts.dump_interval != -1 and cnt >= opts.dump_interval and not opts.one_shot:
+ cnt = 0
+ dump_all(out_dir, heatmaps)
+
+ dump_all (out_dir, heatmaps)
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser (description = "keylog to heatmap processor")
+ parser.add_argument ('outdir', action = 'store',
+ help = 'Output directory')
+ parser.add_argument ('--dump-interval', dest = 'dump_interval', action = 'store', type = int,
+ default = 100, help = 'Dump stats and heatmap at every Nth event, -1 for dumping at EOF only')
+ parser.add_argument ('--ignore-key', dest = 'ignore_key', action = 'append', type = str,
+ default = [], help = 'Ignore the key at position (x, y)')
+ parser.add_argument ('--only-key', dest = 'only_key', action = 'append', type = str,
+ default = [], help = 'Only include key at position (x, y)')
+ parser.add_argument ('--one-shot', dest = 'one_shot', action = 'store_true',
+ help = 'Do not load previous data, and do not update it, either.')
+ args = parser.parse_args()
+ if len(args.ignore_key) and len(args.only_key):
+ print ("--ignore-key and --only-key are mutually exclusive, please only use one of them!",
+ file = sys.stderr)
+ sys.exit(1)
+ main(args)
diff --git a/keyboards/ergodox/keymaps/algernon/tools/text-to-log.py b/keyboards/ergodox/keymaps/algernon/tools/text-to-log.py
new file mode 100755
index 000000000..f080c32cd
--- /dev/null
+++ b/keyboards/ergodox/keymaps/algernon/tools/text-to-log.py
@@ -0,0 +1,107 @@
+#!/usr/bin/env python3
+
+import os
+import sys
+
+charmap = {
+ '9': [[1, 0]],
+ '7': [[2, 0]], '@': [[2, 5], [2, 0]],
+ '5': [[3, 0]], '*': [[2, 5], [3, 0]],
+ '3': [[4, 0]], '^': [[2, 5], [4, 0]],
+ '1': [[5, 0]], '$': [[2, 5], [5, 0]],
+ '0': [[8, 0]], '%': [[2, 5], [8, 0]],
+ '2': [[9, 0]], '!': [[2, 5], [9, 0]],
+ '4': [[10, 0]], '#': [[2, 5], [10, 0]],
+ '6': [[11, 0]], '&': [[2, 5], [11, 0]],
+ '8': [[12, 0]],
+
+ '\\': [[0, 1]], '|': [[2, 5], [0, 1]],
+ 'x': [[1, 1]], 'X': [[2, 5], [1, 1]],
+ 'w': [[2, 1]], 'W': [[2, 5], [2, 1]],
+ 'c': [[3, 1]], 'C': [[2, 5], [3, 1]],
+ 'h': [[4, 1]], 'H': [[2, 5], [4, 1]],
+ 'f': [[5, 1]], 'F': [[2, 5], [5, 1]],
+ '[': [[6, 1]], '{': [[2, 5], [6, 1]], '(': [[6, 1], [6, 1]],
+ ']': [[7, 1]], '}': [[2, 5], [7, 1]], ')': [[7, 1], [7, 1]],
+ 'm': [[8, 1]], 'M': [[2, 5], [8, 1]],
+ 'g': [[9, 1]], 'G': [[2, 5], [9, 1]],
+ 'l': [[10, 1]], 'L': [[2, 5], [10, 1]],
+ 'p': [[11, 1]], 'P': [[2, 5], [11, 1]],
+ '/': [[12, 1]], '?': [[2, 5], [12, 1]],
+ '`': [[13, 1]], '~': [[2, 5], [13, 1]],
+
+ '\t': [[0, 2]],
+ 'a': [[1, 2]], 'A': [[2, 5], [1, 2]],
+ 'o': [[2, 2]], 'O': [[2, 5], [2, 2]],
+ 'e': [[3, 2]], 'E': [[2, 5], [3, 2]],
+ 'i': [[4, 2]], 'I': [[2, 5], [4, 2]],
+ 'u': [[5, 2]], 'U': [[2, 5], [5, 2]],
+ 'd': [[8, 2]], 'D': [[2, 5], [8, 2]],
+ 'r': [[9, 2]], 'R': [[2, 5], [9, 2]],
+ 't': [[10, 2]], 'T': [[2, 5], [10, 2]],
+ 'n': [[11, 2]], 'N': [[2, 5], [11, 2]],
+ 's': [[12, 2]], 'S': [[2, 5], [12, 2]],
+ '=': [[13, 2]], '+': [[2, 5], [13, 2]],
+
+ 'z': [[1, 3]], 'Z': [[2, 5], [1, 3]],
+ 'q': [[2, 3]], 'Q': [[2, 5], [2, 3]],
+ '\'': [[3, 3]], '"': [[2, 5], [3, 3]],
+ ',': [[4, 3]], '<': [[2, 5], [4, 3]],
+ '.': [[5, 3]], '>': [[2, 5], [5, 3]],
+ 'b': [[8, 3]], 'B': [[2, 5], [8, 3]],
+ 'k': [[9, 3]], 'K': [[2, 5], [9, 3]],
+ 'v': [[10, 3]], 'V': [[2, 5], [10, 3]],
+ 'y': [[11, 3]], 'Y': [[2, 5], [11, 3]],
+ 'j': [[12, 3]], 'J': [[2, 5], [12, 3]],
+
+ ':': [[4, 4]], ';': [[4, 4], [4, 4]],
+ '-': [[9, 4]], '_': [[2, 5], [9, 4]],
+
+ ' ': [[10, 5]],
+ '\n': [[11, 5]],
+
+ ## Layered things
+ # Hungarian
+ 'á': [[9, 5], [1, 2]], 'Ã': [[2, 5], [9, 5], [1, 2]],
+ 'ó': [[9, 5], [2, 2]], 'Ó': [[2, 5], [9, 5], [2, 2]],
+ 'Å‘': [[9, 5], [2, 1]], 'Å': [[2, 5], [9, 5], [2, 1]],
+ 'ö': [[9, 5], [2, 3]], 'Ö': [[2, 5], [9, 5], [2, 3]],
+ 'é': [[9, 5], [3, 2]], 'É': [[2, 5], [9, 5], [3, 2]],
+ 'ú': [[9, 5], [4, 2]], 'Ú': [[2, 5], [9, 5], [4, 2]],
+ 'ű': [[9, 5], [4, 1]], 'Ű': [[2, 5], [9, 5], [4, 1]],
+ 'ü': [[9, 5], [4, 3]], 'Ü': [[2, 5], [9, 5], [4, 3]],
+ 'í': [[9, 5], [5, 2]], 'Ã': [[2, 5], [9, 5], [5, 2]],
+}
+
+def lookup_char(layer, ch):
+ if ch in charmap:
+ return charmap[ch]
+ return None
+
+def process_char(layer, ch, out=sys.stdout):
+ keys = lookup_char(layer, ch)
+ if not keys:
+ print ("Unknown char: %s" % ch, file=sys.stderr)
+ else:
+ for (c, r) in keys:
+ print ("KL: col=%d, row=%d, pressed=1, layer=%s" % (r, c, layer), file=out)
+ print ("KL: col=%d, row=%d, pressed=0, layer=%s" % (r, c, layer), file=out)
+
+def process_file(fn, layer, out=sys.stdout):
+ with open(fn, "r") as f:
+ ch = f.read(1)
+ while ch:
+ process_char(layer, ch, out)
+ ch = f.read(1)
+
+if sys.argv[1] == '-':
+ out='/dev/stdin'
+else:
+ out=sys.argv[1]
+
+if len(sys.argv) >= 2:
+ layer = 'ADORE'
+else:
+ layer = sys.argv[2]
+
+process_file(out, layer = layer)
diff --git a/keyboards/ergodox/keymaps/alphadox/Makefile b/keyboards/ergodox/keymaps/alphadox/Makefile
new file mode 100644
index 000000000..633499d00
--- /dev/null
+++ b/keyboards/ergodox/keymaps/alphadox/Makefile
@@ -0,0 +1,17 @@
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ # nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/ergodox/keymaps/alphadox/config.h b/keyboards/ergodox/keymaps/alphadox/config.h
new file mode 100644
index 000000000..deb218dc0
--- /dev/null
+++ b/keyboards/ergodox/keymaps/alphadox/config.h
@@ -0,0 +1,12 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#define FORCE_NKRO
+#define PREVENT_STUCK_MODIFIERS
+
+#undef TAPPING_TERM
+#undef IGNORE_MOD_TAP_INTERRUPT
+
+#endif
diff --git a/keyboards/ergodox/keymaps/alphadox/keymap.c b/keyboards/ergodox/keymaps/alphadox/keymap.c
new file mode 100644
index 000000000..731e62c0c
--- /dev/null
+++ b/keyboards/ergodox/keymaps/alphadox/keymap.c
@@ -0,0 +1,107 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define ETC 2 // etc
+
+enum macro_id {
+ TEENSY,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[BASE] = KEYMAP(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_PGUP,
+ CTL_T(KC_ESC), LT(ETC,KC_A), KC_S, KC_E, KC_T, KC_G,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN,
+ KC_GRV, KC_DEL, KC_DEL, KC_LALT, GUI_T(KC_TAB),
+ KC_NO, KC_NO,
+ KC_NO,
+ LT(SYMB,KC_BSPC), CTL_T(KC_ESC), KC_NO,
+
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_VOLU, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_BSLS,
+ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_QUOT,
+ KC_VOLD, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ GUI_T(KC_TAB), KC_LEFT, KC_DOWN, KC_UP, LCAG_T(KC_RGHT),
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, SFT_T(KC_ENT), LT(SYMB,KC_SPC)
+),
+
+[SYMB] = KEYMAP(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
+ KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BSLS,
+ KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_ASTR, KC_TRNS,
+ KC_TILD, KC_AMPR, KC_AMPR, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_EQL, KC_7, KC_8, KC_9, KC_PLUS, KC_NO,
+ KC_MINS, KC_4, KC_5, KC_6, KC_QUOT, KC_NO,
+ KC_TRNS, KC_UNDS, KC_1, KC_2, KC_3, KC_DQUO, KC_TRNS,
+ KC_0, KC_NO, KC_DOT, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+[ETC] = KEYMAP(
+ RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_TRNS,
+ KC_TRNS, LT(ETC,KC_A), KC_NO, KC_NO, KC_NO, KC_PGDN,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_HOME, KC_NO,
+ KC_VOLD, KC_F4, KC_F5, KC_F6, KC_END, KC_NO,
+ KC_TRNS, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_INS, KC_TRNS,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ switch(id) {
+ case TEENSY:
+ break;
+ }
+ return MACRO_NONE;
+};
+
+void matrix_init_user(void) {
+};
+
+void matrix_scan_user(void) {
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ break;
+ }
+};
diff --git a/keyboards/ergodox_ez/keymaps/andrew_osx/keymap.c b/keyboards/ergodox/keymaps/andrew_osx/keymap.c
index 48257d23a..750155d98 100644
--- a/keyboards/ergodox_ez/keymaps/andrew_osx/keymap.c
+++ b/keyboards/ergodox/keymaps/andrew_osx/keymap.c
@@ -1,7 +1,7 @@
// Netable differences vs. the default firmware for the ErgoDox EZ:
// 1. The Cmd key is now on the right side, making Cmd+Space easier.
// 2. The media keys work on OSX (But not on Windows).
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/Makefile b/keyboards/ergodox/keymaps/bepo/Makefile
index b673c5ce5..b673c5ce5 100644
--- a/keyboards/ergodox_ez/keymaps/erez_experimental/Makefile
+++ b/keyboards/ergodox/keymaps/bepo/Makefile
diff --git a/keyboards/ergodox/keymaps/bepo/bepo.png b/keyboards/ergodox/keymaps/bepo/bepo.png
new file mode 100644
index 000000000..54992f5ae
--- /dev/null
+++ b/keyboards/ergodox/keymaps/bepo/bepo.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/bepo/keymap.c b/keyboards/ergodox/keymaps/bepo/keymap.c
index 921a94d63..05250ee6a 100644
--- a/keyboards/ergodox_ez/keymaps/bepo/keymap.c
+++ b/keyboards/ergodox/keymaps/bepo/keymap.c
@@ -1,21 +1,23 @@
-#include "ergodox_ez.h"
-#include "debug.h"
-#include "action_layer.h"
+#include "ergodox.h"
#include "keymap_bepo.h"
+#include "keymap_french.h"
-#define BASE 0 // default layer
-#define QWER 1 // qwerty compat layer
-#define SQWER 2 // shifted qwerty compat layer
-#define AQWER 3 // alted qwerty compat layer
-#define FNAV 4 // function / navigation keys
-#define NUM 5 // numeric keypad keys
-#define MSE 6 // mouse keys
+// keymaps
+#define BEPO 0 // default layer, for bepo compatible systems
+#define QW_B 1 // bepo to qwerty base compat layer, for qwerty systems
+#define QW_A 2 // bepo with altgr key to qwerty compat layer
+#define QW_S 3 // bepo with shift key to qwerty compat layer
+#define AZ_B 4 // bepo to azerty base compat layer, for azerty systems
+#define AZ_A 5 // bepo with altgr key to azerty compat layer
+#define AZ_S 6 // bepo with shift key to azerty compat layer
+#define FNAV 7 // function / navigation / mouse layer
+#define NUMK 8 // numeric keypad layer
-#define KP_00 0
-#define CA_Fx 1
+// macros
+#define KP_00 0 // keypad "double 0"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Base layer
+/* Keymap 0: default layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = |
@@ -26,22 +28,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------|
* | E_CIRC |A_GRAV| Y | X | . | K | | | | ' | Q | G | H | F | C_CEDIL|
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
- * |QWERTY| |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause|
+ * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause|
* `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
- * | | | L_Num| | CA_Fx| | |
+ * | | |L_NumK| |L_NumK| | |
* | Space|LShift|------| |------|RShift|Enter |
* | | |L_FNav| |L_FNav| | |
* `--------------------' `--------------------'
*/
-[BASE] = KEYMAP(
+[BEPO] = KEYMAP(
// Left hand
BP_DOLLAR, BP_DQOT, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, KC_DEL,
BP_PERCENT, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_E_GRAVE, KC_BSPC,
BP_W, BP_A, BP_U, BP_I, BP_E, BP_COMMA,
BP_ECRC, BP_A_GRAVE, BP_Y, BP_X, BP_DOT, BP_K, KC_TAB,
-TG(QWER), KC_NO, KC_LGUI, KC_LCTL, KC_LALT,
- KC_ESC, MO(MSE),
- MO(NUM),
+KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT,
+ DF(BEPO), DF(QW_B),
+ MO(NUMK),
KC_SPC, KC_LSHIFT, MO(FNAV),
// Right hand
KC_SLCK, BP_AT, BP_PLUS, BP_MINUS, BP_SLASH, BP_ASTR, BP_EQUAL,
@@ -49,10 +51,10 @@ TG(QWER), KC_NO, KC_LGUI, KC_LCTL, KC_LALT,
BP_C, BP_T, BP_S, BP_R, BP_N, BP_M,
KC_NUMLOCK, BP_APOS, BP_Q, BP_G, BP_H, BP_F, BP_CCED,
BP_ALGR, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE,
-KC_NO, KC_INS,
-M(CA_Fx),
+DF(AZ_B), DF(BEPO),
+MO(NUMK),
MO(FNAV), KC_RSHIFT, KC_ENTER),
-/* Keymap 1: QWERTY system compatibility layer
+/* Keymap 1: bepo to qwerty base compat layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = |
@@ -63,33 +65,70 @@ MO(FNAV), KC_RSHIFT, KC_ENTER),
* |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------|
* | e | a | y | x | . | k | | | | ' | q | g | h | f | c |
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
- * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause|
+ * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause|
* `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
- * | | | L_Num| | | | |
+ * | | |L_NumK| |L_NumK| | |
* | Space|LShift|------| |------|RShift|Enter |
* | | |L_FNav| |L_FNav| | |
* `--------------------' `--------------------'
*/
-[QWER] = KEYMAP(
+[QW_B] = KEYMAP(
// Left hand
KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LPRN, KC_RPRN, KC_DEL,
KC_PERCENT, KC_B, KC_E, KC_P, KC_O, KC_E, KC_BSPC,
KC_W, KC_A, KC_U, KC_I, KC_E, KC_COMMA,
KC_E, KC_A, KC_Y, KC_X, KC_DOT, KC_K, KC_TAB,
-KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT,
- KC_ESC, MO(MSE),
- MO(NUM),
- KC_SPC, MO(SQWER), MO(FNAV),
+KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_SPC, MO(QW_S), KC_TRNS,
// Right hand
KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL,
KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z,
KC_C, KC_T, KC_S, KC_R, KC_N, KC_M,
KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C,
- MO(AQWER), KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE,
-KC_NO, KC_INS,
+ MO(QW_A), KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE,
+KC_TRNS, KC_TRNS,
+KC_TRNS,
+KC_TRNS, MO(QW_S), KC_ENTER),
+/* Keymap 2: bepo with altgr key to qwerty compat layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | $ | " | < | > | [ | ] |Delete| |ScroLo| @ | + | - | / | * | = |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | % | | | e | & | o | e |Backsp| |CapsLo| ^ | v | d | l | j | z |
+ * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------|
+ * | w | a | u | i | € | , |------| |------| c | t | s | r | n | m |
+ * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------|
+ * | e | \ | { | } | . | ~ | | | | ' | q | g | h | f | c |
+ * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
+ * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause|
+ * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
+ * | | |L_NumK| |L_NumK| | |
+ * | _ |LShift|------| |------|RShift|Enter |
+ * | | |L_FNav| |L_FNav| | |
+ * `--------------------' `--------------------'
+ */
+[QW_A] = KEYMAP(
+// Left hand
+KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LBRC, KC_RBRC, KC_DEL,
+KC_PERCENT, KC_PIPE, KC_E, KC_AMPR, KC_O, KC_E, KC_BSPC,
+KC_W, KC_A, KC_U, KC_I, RALT(KC_5), KC_COMMA,
+KC_E, KC_BSLASH, KC_LCBR, KC_RCBR, KC_DOT, KC_TILDE, KC_TAB,
+KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_UNDS, MO(QW_S), KC_TRNS,
+// Right hand
+ KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL,
+ KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z,
+ KC_C, KC_T, KC_S, KC_R, KC_N, KC_M,
+ KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C,
+ KC_TRNS, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE,
+KC_TRNS, KC_TRNS,
KC_TRNS,
-MO(FNAV), MO(SQWER), KC_ENTER),
-/* Keymap 2: QWERTY shifted system compatibility layer
+KC_TRNS, MO(QW_S), KC_ENTER),
+/* Keymap 3: bepo with shift key to qwerty compat layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | # | 1 | 2 | 3 | 4 | 5 |Delete| |ScroLo| 6 | 7 | 8 | 9 | 0 | = |
@@ -100,20 +139,20 @@ MO(FNAV), MO(SQWER), KC_ENTER),
* |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------|
* | E | A | Y | X | : | K | | | | ? | Q | G | H | F | C |
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
- * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause|
+ * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause|
* `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
- * | | | L_Num| | | | |
+ * | | |L_NumK| |L_NumK| | |
* | Space|LShift|------| |------|RShift|Enter |
* | | |L_FNav| |L_FNav| | |
* `--------------------' `--------------------'
*/
-[SQWER] = KEYMAP(
+[QW_S] = KEYMAP(
// Left hand
KC_HASH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
KC_GRV, S(KC_B), S(KC_E), S(KC_P), S(KC_O), S(KC_E), KC_TRNS,
S(KC_W), S(KC_A), S(KC_U), S(KC_I), S(KC_E), KC_SCOLON,
S(KC_E), S(KC_A), S(KC_Y), S(KC_X), KC_COLON, S(KC_K), S(KC_TAB),
-KC_TRNS, KC_TRNS, S(KC_LGUI), S(KC_LCTL), S(KC_LALT),
+S(KC_ESC), S(KC_INS), S(KC_LGUI), S(KC_LCTL), S(KC_LALT),
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
@@ -126,51 +165,125 @@ KC_TRNS, KC_TRNS, S(KC_LGUI), S(KC_LCTL), S(KC_LALT),
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),
-/* Keymap 3: QWERTY alted system compatibility layer
+/* Keymap 4: bepo to azerty base compat layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | % | b |e_acut| p | o |e_grav|Backsp| |CapsLo| ^ | v | d | l | j | z |
+ * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------|
+ * | w | a | u | i | e | , |------| |------| c | t | s | r | n | m |
+ * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------|
+ * | e |a_grav| y | x | . | k | | | | ' | q | g | h | f | c_cedil|
+ * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
+ * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause|
+ * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
+ * | | |L_NumK| |L_NumK| | |
+ * | Space|LShift|------| |------|RShift|Enter |
+ * | | |L_FNav| |L_FNav| | |
+ * `--------------------' `--------------------'
+ */
+[AZ_B] = KEYMAP(
+// Left hand
+FR_DLR, FR_QUOT, FR_LESS, FR_GRTR, FR_LPRN, FR_RPRN, KC_DEL,
+FR_PERC, KC_B, FR_EACU, KC_P, KC_O, FR_EGRV, KC_BSPC,
+FR_W, FR_A, KC_U, KC_I, KC_E, FR_COMM,
+KC_E, FR_AGRV, KC_Y, KC_X, FR_DOT, KC_K, KC_TAB,
+KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_SPC, MO(AZ_S), KC_TRNS,
+// Right hand
+ KC_SLCK, FR_AT, FR_PLUS, FR_MINS, FR_SLSH, FR_ASTR, FR_EQL,
+ KC_CAPSLOCK, KC_LBRC, KC_V, KC_D, KC_L, KC_J, FR_Z,
+ KC_C, KC_T, KC_S, KC_R, KC_N, FR_M,
+ KC_NUMLOCK, FR_APOS, FR_Q, KC_G, KC_H, KC_F, FR_CCED,
+ MO(AZ_A), KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE,
+KC_TRNS, KC_TRNS,
+KC_TRNS,
+KC_TRNS, MO(AZ_S), KC_ENTER),
+/* Keymap 5: bepo with altgr key to azerty compat layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | $ | " | < | > | [ | ] |Delete| |ScroLo| @ | + | - | / | * | = |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | % | | | e | & | o | e |Backsp| |CapsLo| ^ | v | d | l | j | z |
* |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------|
- * | w | a | u | i | € | , |------| |------| c | t | s | r | n | m |
+ * | w | a |u_grav| trem | € | , |------| |------| c | t | s | r | n | m |
* |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------|
- * | e | \ | { | } | . | ~ | | | | ' | q | g | h | f | c |
+ * | / | \ | { | } | . | ~ | | | | ' | q | g | h | f | c |
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
- * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause|
+ * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause|
* `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
- * | | | L_Num| | | | |
+ * | | |L_NumK| |L_NumK| | |
* | _ |LShift|------| |------|RShift|Enter |
* | | |L_FNav| |L_FNav| | |
* `--------------------' `--------------------'
*/
-[AQWER] = KEYMAP(
+[AZ_A] = KEYMAP(
// Left hand
-KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LBRC, KC_RBRC, KC_DEL,
-KC_PERCENT, KC_PIPE, KC_E, KC_AMPR, KC_O, KC_E, KC_BSPC,
-KC_W, KC_A, KC_U, KC_I, RALT(KC_5), KC_COMMA,
-KC_E, KC_BSLASH, KC_LCBR, KC_RCBR, KC_DOT, KC_TILDE, KC_TAB,
-KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT,
- KC_ESC, MO(MSE),
- MO(NUM),
- KC_UNDS, MO(SQWER), MO(FNAV),
+FR_DLR, FR_QUOT, FR_LESS, FR_GRTR, FR_LBRC, FR_RBRC, KC_DEL,
+FR_PERC, FR_PIPE, FR_EACU, FR_AMP, KC_O, FR_EGRV, KC_BSPC,
+FR_W, FR_A, FR_UGRV, S(KC_LBRC), FR_EURO, FR_COMM,
+FR_SLSH, FR_BSLS, FR_LCBR, FR_RCBR, FR_DOT, FR_TILD, KC_TAB,
+KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ FR_UNDS, MO(AZ_S), KC_TRNS,
// Right hand
- KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL,
- KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z,
- KC_C, KC_T, KC_S, KC_R, KC_N, KC_M,
- KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C,
+ KC_SLCK, FR_AT, FR_PLUS, FR_MINS, FR_SLSH, FR_ASTR, FR_EQL,
+ KC_CAPSLOCK, KC_LBRC, KC_V, KC_D, KC_L, KC_J, FR_Z,
+ KC_C, KC_T, KC_S, KC_R, KC_N, FR_M,
+ KC_NUMLOCK, FR_APOS, FR_Q, KC_G, KC_H, KC_F, FR_CCED,
KC_TRNS, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE,
-KC_NO, KC_INS,
+KC_TRNS, KC_TRNS,
KC_TRNS,
-MO(FNAV), MO(SQWER), KC_ENTER),
-/* Keymap 4: function / navigation layer
+KC_TRNS, MO(AZ_S), KC_ENTER),
+/* Keymap 6: bepo with shift key to azerty compat layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | # | 1 | 2 | 3 | 4 | 5 |Delete| |ScroLo| 6 | 7 | 8 | 9 | 0 | ° |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | ` | B | E | P | O | E |Backsp| |CapsLo| ! | V | D | L | J | Z |
+ * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------|
+ * | W | A | U | I | E | ; |------| |------| C | T | S | R | N | M |
+ * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------|
+ * | E | A | Y | X | : | K | | | | ? | Q | G | H | F | C |
+ * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
+ * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause|
+ * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
+ * | | |L_NumK| |L_NumK| | |
+ * | Space|LShift|------| |------|RShift|Enter |
+ * | | |L_FNav| |L_FNav| | |
+ * `--------------------' `--------------------'
+ */
+[AZ_S] = KEYMAP(
+// Left hand
+FR_HASH, FR_1, FR_2, FR_3, FR_4, FR_5, KC_TRNS,
+FR_GRV, S(KC_B), S(KC_E), S(KC_P), S(KC_O), S(KC_E), KC_TRNS,
+S(FR_W), S(FR_A), S(KC_U), S(KC_I), S(KC_E), FR_SCLN,
+S(KC_E), S(FR_A), S(KC_Y), S(KC_X), FR_COLN, S(KC_K), S(KC_TAB),
+S(KC_ESC), S(KC_INS), S(KC_LGUI), S(KC_LCTL), S(KC_LALT),
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+// Right hand
+ KC_TRNS, FR_6, FR_7, FR_8, FR_9, FR_0, FR_OVRR,
+ KC_TRNS, FR_EXLM, S(KC_V), S(KC_D), S(KC_L), S(KC_J), S(FR_Z),
+ S(KC_C), S(KC_T), S(KC_S), S(KC_R), S(KC_N), S(FR_M),
+ KC_TRNS, FR_QUES, S(FR_Q), S(KC_G), S(KC_H), S(KC_F), S(KC_C),
+ S(KC_RALT), S(KC_RCTL), S(KC_RGUI), KC_TRNS, KC_TRNS,
+KC_TRNS, KC_TRNS,
+KC_TRNS,
+KC_TRNS, KC_TRNS, KC_TRNS),
+/* Keymap 7: function / navigation / mouse layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 |VolMut| | | F6 | F7 | F8 | F9 | F10 | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | |VolDwn| | | PgUp | Home | Up | End | F11 | |
+ * | | Next |LClick| Up |RClick| WhUp |VolDwn| | | PgUp | Home | Up | End | F11 | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| PgDn | Left | Down | Right| F12 | |
+ * | | Prev | Left | Down | Right|WhDown|------| |------| PgDn | Left | Down | Right| F12 | |
* |--------+------+------+------+------+------| VolUp| | |------+------+------+------+------+--------|
* | | Undo | Cut | Copy | Paste| | | | | | | | | | |
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
@@ -184,12 +297,12 @@ MO(FNAV), MO(SQWER), KC_ENTER),
[FNAV] = KEYMAP(
// Left hand
KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MUTE,
-KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU,
-KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+KC_NO, KC_MS_BTN5, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP, KC_VOLU,
+KC_NO, KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN,
KC_NO, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_NO, KC_VOLD,
KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_NO, KC_NO,
- KC_NO,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
KC_NO, KC_TRNS, KC_TRNS,
// Right hand
KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
@@ -197,91 +310,52 @@ KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS,
KC_PGDOWN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_F12, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO,
-KC_NO, KC_NO,
+KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_NO),
-/* Keymap 5: numeric layer, sends keypad codes
+/* Keymap 8: numeric keypad layer, sends keypad codes
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | + | - | / | * | |
+ * | | | | | | | | | | | NumLo| / | * | - | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | 7 | 8 | 9 | | |
+ * | | | | | | | | | | | 7 | 8 | 9 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | 4 | 5 | 6 | | |
+ * | | | | | | |------| |------| | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | 1 | 2 | 3 | | |
+ * | | | | | | | | | | | 1 | 2 | 3 | Enter| |
* `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
- * | | | | | | | | | | | | | 0 | 00 | . | | |
- * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
- * | | | | | | | |
- * | | |------| |------| | Enter|
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[NUM] = KEYMAP(
-// Left hand
-KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
-KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
-KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
-KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
-KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_NO, KC_NO,
- KC_TRNS,
- KC_NO, KC_TRNS, KC_NO,
-// Right hand
- KC_NO, KC_NO, KC_KP_PLUS, KC_KP_MINUS, KC_KP_SLASH, KC_KP_ASTERISK, KC_NO,
- KC_NO, KC_NO, KC_KP_7, KC_KP_8, KC_KP_9, KC_NO, KC_NO,
- KC_NO, KC_KP_4, KC_KP_5, KC_KP_6, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_KP_1, KC_KP_2, KC_KP_3, KC_NO, KC_NO,
- KC_KP_0, M(KP_00), KC_KP_COMMA, KC_NO, KC_NO,
-KC_NO, KC_NO,
-KC_NO,
-KC_NO, KC_TRNS, KC_KP_ENTER),
-/* Keymap 6: mouse layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | |LClick| Up |RClick| WhUp | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | Left | Down | Right|WhDown| |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
- * | | | | | | | | | | | | | | | | | |
+ * | | | | | | | | | | | | | 0 | 00 | . | Enter| |
* `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
-[MSE] = KEYMAP(
+[NUMK] = KEYMAP(
// Left hand
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_NO, KC_TRNS,
- KC_NO,
- KC_NO, KC_TRNS, KC_NO,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_NO, KC_TRNS, KC_TRNS,
// Right hand
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP, KC_NO,
- KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO,
-KC_NO, KC_NO,
-KC_NO,
-KC_NO, KC_TRNS, KC_NO)
-};
-
-const uint16_t PROGMEM fn_actions[] = {
+ KC_NO, KC_NO, KC_NUMLOCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_NO,
+ KC_NO, KC_NO, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_NO,
+ KC_NO, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_NO,
+ KC_NO, KC_NO, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, KC_NO,
+ KC_KP_0, M(KP_00), KC_KP_COMMA, KC_KP_ENTER, KC_NO,
+KC_TRNS, KC_TRNS,
+KC_TRNS,
+KC_TRNS, KC_TRNS, KC_NO)
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch(id) {
+ // keypad "double 0"
case KP_00:
if (record->event.pressed) {
return MACRO( T(KP_0), D(KP_0), END );
@@ -289,23 +363,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
return MACRO( U(KP_0), END );
}
break;
- case CA_Fx:
- if (record->event.pressed) {
- layer_on(FNAV);
- return MACRO( D(LALT), D(LCTL), END );
- } else {
- layer_off(FNAV);
- return MACRO( U(LCTL), U(LALT), END );
- }
- break;
}
return MACRO_NONE;
};
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-};
diff --git a/keyboards/ergodox_ez/keymaps/bepo/readme.md b/keyboards/ergodox/keymaps/bepo/readme.md
index 4a18cd80f..2959ac829 100644
--- a/keyboards/ergodox_ez/keymaps/bepo/readme.md
+++ b/keyboards/ergodox/keymaps/bepo/readme.md
@@ -23,12 +23,12 @@ La touche "Tab" est placée comme sur la TypeMatrix 2020.
Meilleure symétrie et accessibilité que la TypeMatrix 2030 : les touches "W" et "%" ont dû être déplacées du côté gauche en raison du nombre de touches de l'ErgoDox, mais l'auriculaire droit ne gère maintenant que deux colonnes de touches au lieu de trois. La touche "Ê" redevient accessible sur la même rangée que les autres lettres, comme sur un clavier classique en disposition bépo. Les lettres, chiffres et symboles sont tous regroupés sur 4 lignes et 6 colonnes pour chaque main, et la première rangée de lettres à la main gauche conserve une identité visuelle "BÉPO".
-Touche de fonction permettant de saisir les touches F1 à F12, les touches F1 à F10 sont placées de façon logique par rapport aux chiffres 1 à 0. Cette même touche permet l'accès aux touches directionnelles sans déplacer la main droite. Les touches "Home" et "End" sont placées de la même façon que sur une TypeMatrix 2030 par rapport aux touches directionnelles. Les touches "Page Up" et "Page Down" sont également accessibles facilement sans déplacer la main droite. Les fonctions "VolUp" et "VolDown" sont placées comme sur la TypeMatrix 2030, avec la fonction "Mute" juste au dessus. Les fonctions "Undo", "Cut", "Copy" et "Paste" sont placées côte à côte comme elles le seraient sur un clavier QWERTY en combinaison avec la touche "Ctrl" (à l'emplacement des lettres "Z", "X", "C" et "V"). Par rapport au layout "SpaceFN", l'utilisation d'une touche de fonction dédiée au pouce permet de ne pas ajouter de latence, et la touche espace reste compatible avec les jeux (action au moment de l'appui et possibilité d'appui long).
+Touche de fonction permettant de saisir les touches F1 à F12, les touches F1 à F10 sont placées de façon logique par rapport aux chiffres 1 à 0. Cette même touche permet l'accès aux touches directionnelles sans déplacer la main droite et d'effectuer des actions souris avec uniquement la main gauche. Les touches "Home" et "End" sont placées de la même façon que sur une TypeMatrix 2030 par rapport aux touches directionnelles. Les touches "Page Up" et "Page Down" sont également accessibles facilement sans déplacer la main droite. Les fonctions "VolUp" et "VolDown" sont placées comme sur la TypeMatrix 2030, avec la fonction "Mute" juste au dessus. Les fonctions "Undo", "Cut", "Copy" et "Paste" sont placées côte à côte comme elles le seraient sur un clavier QWERTY en combinaison avec la touche "Ctrl" (à l'emplacement des lettres "Z", "X", "C" et "V"). Par rapport au layout "SpaceFN", l'utilisation d'une touche de fonction dédiée au pouce permet de ne pas ajouter de latence, et la touche espace reste compatible avec les jeux (action au moment de l'appui et possibilité d'appui long).
Touche de fonction permettant l'accès au pavé numérique comme sur la TypeMatrix 2030, mais sans avoir à déplacer la main droite : avec les doigts sur la rangée de repos, possibilité de saisir les chiffres "4", "5" et "6" comme sur un pavé numérique classique. Le double "0" de la TypeMatrix a été conservé, et gagne une possibilité de répétition en simples "0".
-L'appui sur une touche permet de basculer en mode BEPO sur un système configuré pour un clavier QWERTY. Cette compatibilité n'est pas parfaite (pas encore de gestion des accents mais ça devrait être faisable avec une disposition en qwerty international, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle.
+Touche permettant de basculer en mode BEPO sur un système configuré pour un clavier QWERTY. Cette compatibilité n'est pas parfaite (pas encore de gestion des accents mais ça devrait être faisable avec une disposition en qwerty international, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle et pour des accès BIOS ou console en QWERTY.
-TODO : couche de compatibilité pour utiliser la disposition BÉPO sur un système configuré pour un clavier AZERTY.
+Touche permettant de basculer en mode BEPO sur un système configuré pour un clavier AZERTY. Cette compatibilité n'est pas parfaite (pas de gestion des caractères non présents sur le clavier AZERTY, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle et pour faire du bureau à distance vers un système Windows sans BEPO.
> Olivier Smedts <olivier@gid0.org>
diff --git a/keyboards/ergodox/keymaps/bepo_csa/keymap.c b/keyboards/ergodox/keymaps/bepo_csa/keymap.c
new file mode 100644
index 000000000..495242adb
--- /dev/null
+++ b/keyboards/ergodox/keymaps/bepo_csa/keymap.c
@@ -0,0 +1,527 @@
+/* TypeMatrix-2030-like keymap */
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "action_util.h"
+#include "led.h"
+#include "keymap_extras/keymap_bepo.h"
+#include "keymap_extras/keymap_canadian_multilingual.h"
+
+enum layers {
+ LR_BASE, // default layer
+ LR_CSA, // BÉPO over Canadian Multilingual (CSA)
+ LR_CSA_SFT, // shifted BÉPO over CSA
+ LR_CSA_AGR, // altgr-ed BÉPO over CSA
+ LR_CSA_AGR_SFT, // altgr-shifted BÉPO over CSA
+ LR_NUMR, // numeric layer
+ LR_FN, // fn layer
+};
+
+#define IS_CA_MULT_ENABLED() (layer_state & (1 << LR_CSA))
+
+enum macros {
+ // Characters that do not exist in CSA and must be implemented based on unicode support
+ // Note: these are intentionally declared first to be used as indexes in spec_chars below
+ UC_NDSH, // –
+ UC_MDSH, // —
+ UC_ELPS, // …
+ END_UC, // indicates the last unicode character macro
+ // other macros
+ M_CSA_SFT, // toggle shift on CSA
+ M_CSA_AGR_SFT, // toggle shift on LR_CSA_AGR (goes to LR_CSA_AGR_SFT)
+ M_CSA_SFT_AGR, // toggle AltGr on LR_CSA_SFT (goes to LR_CSA_AGR_SFT)
+ // macros for characters that need to be un-shifted in LR_CA_MULT_SHIFT
+ M_1,
+ M_2,
+ M_3,
+ M_4,
+ M_5,
+ M_6,
+ M_7,
+ M_8,
+ M_9,
+ M_0,
+ M_DEGR,
+ M_SCLN,
+ M_GRV,
+ M_NBSP,
+ // macros for characters that don't have a simple key combination in LR_CA_MULT_ALTGR
+ M_CRC,
+ // other layer macros
+ M_DBL0, // double 0
+ M_FNLR, // fn layer
+ M_NMAL, // num+alt
+};
+
+#define CSA(name) M(M_CSA_##name) // calls a CSA macro
+
+const uint16_t unicode_chars[] = {
+ [UC_NDSH] = L'–',
+ [UC_MDSH] = L'—',
+ [UC_ELPS] = L'…',
+};
+
+/* shortcut for unicode character macros */
+#define MUC(name) M(UC_##name) // calls a unicode macro
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | $ | " | « | » | ( | ) | Del | | Del | @ | + | - | / | * | W |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | B | É | P | O | È |Backsp| |Backsp| ^ | V | D | L | J | Z |
+ * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------|
+ * | = | A | U | I | E | , |------| |------| C | T | S | R | N | M |
+ * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------|
+ * | LShift | À | Y | X | . | K | | | | ' | Q | G | H | F | RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |LCtrl | fn | LGui |numAlt| LAlt | |Alt Gr| % | App | Ç | RCtrl|
+ * `----------------------------------' `----------------------------------'
+ * ,--------------. ,-------------.
+ * | Esc | num | | Left |Right |
+ * ,------+-------+------| |------+------+------.
+ * | | | PgUp | | Up | | |
+ * |Space | Home |------| |------| End |Space |
+ * | | | PgDn | | Down | | |
+ * `---------------------' `--------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[LR_BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ BP_DLR, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELT,
+ KC_TAB, BP_B, BP_ECUT, BP_P, BP_O, BP_EGRV, KC_BSPC,
+ BP_EQL, BP_A, BP_U, BP_I, BP_E, BP_COMM,
+ KC_LSFT, BP_AGRV, BP_Y, BP_X, BP_DOT, BP_K, KC_ENT,
+ KC_LCTL, M(M_FNLR), KC_LGUI, M(M_NMAL), KC_LALT,
+
+ KC_ESC, TG(LR_NUMR),
+ KC_PGUP,
+ KC_SPC, KC_HOME, KC_PGDN,
+
+ // right hand
+ KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, BP_W,
+ KC_BSPC, BP_DCRC, BP_V, BP_D, BP_L, BP_J, BP_Z,
+ BP_C, BP_T, BP_S, BP_R, BP_N, BP_M,
+ KC_ENT, BP_APOS, BP_Q, BP_G, BP_H, BP_F, KC_RSFT,
+ BP_ALGR, BP_PERC, KC_APP, BP_CCED, KC_RCTL,
+
+ KC_LEFT, KC_RGHT,
+ KC_UP,
+ KC_DOWN, KC_END, KC_SPC
+ ),
+/**
+ * Same as default but for use with Canadian Multilingual on OS side
+ */
+[LR_CSA] = KEYMAP(
+ // left hand
+ KC_DLR, CSA_DQOT, CSA_LGIL, CSA_RGIL, KC_LPRN, KC_RPRN, KC_TRNS,
+ KC_TRNS, KC_B, CSA_ECUT, KC_P, KC_O, CSA_EGRV, KC_TRNS,
+ KC_EQL, KC_A, KC_U, KC_I, KC_E, KC_COMM,
+ CSA(SFT), CSA_AGRV, KC_Y, KC_X, KC_DOT, KC_K, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+
+ // right hand
+ KC_TRNS, KC_AT, KC_PLUS, KC_MINS, CSA_SLSH, KC_ASTR, KC_W,
+ KC_TRNS, CSA_DCRC, KC_V, KC_D, KC_L, KC_J, KC_Z,
+ KC_C, KC_T, KC_S, KC_R, KC_N, KC_M,
+ KC_TRNS, CSA_APOS, KC_Q, KC_G, KC_H, KC_F, CSA(SFT),
+ MO(LR_CSA_AGR), KC_PERC, KC_TRNS, CSA_CCED, KC_LCTL, // RCTL has a special behaviour in CSA so use LCTL
+
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+/* Shifted BÉPO over Canadian Multilingual
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | # | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | ! | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | ° | | | | | ; |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | : | | | | | ? | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | ` | | | |
+ * `----------------------------------' `-----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[LR_CSA_SFT] = KEYMAP(
+ // left hand
+ KC_HASH, M(M_1), M(M_2), M(M_3), M(M_4), M(M_5), KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ M(M_DEGR),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(M_SCLN),
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COLN, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ M(M_NBSP), KC_TRNS, KC_TRNS,
+
+ // right hand
+ KC_TRNS, M(M_6), M(M_7), M(M_8), M(M_9), M(M_0), KC_TRNS,
+ KC_TRNS, KC_EXLM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, CSA_QEST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ CSA(SFT_AGR), M(M_GRV), KC_TRNS, KC_TRNS, KC_TRNS,
+
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, M(M_NBSP)
+ ),
+/* AltGr-ed BÉPO over Canadian Multilingual
+ * "////" indicates that the key is disabled (unsupported bépo character)
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | – | — | < | > | [ | ] | | | | ^ | ± | //// | ÷ | × | dead ˘ |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | |dead '| & | œ |dead `| | | | ¡ |dead ˇ| ð | //// | ij | ////// |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | ////// | æ | ù |dead "| € | ̛’ |------| |------| © | þ | ß | ® |dead ~| dead ¯ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | \ | { | } | … | ~ | | | | ¿ |dead °| μ | //// |dead ˛| |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | //// | |dead ¸| |
+ * `----------------------------------' `-----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | _ | |------| |------| | _ |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[LR_CSA_AGR] = KEYMAP(
+ // left hand
+ MUC(NDSH), MUC(MDSH), CSA_LESS, CSA_GRTR, CSA_LBRC, CSA_RBRC, KC_TRNS,
+ KC_TRNS, CSA_PIPE, CSA_DACT, KC_AMPR, CSA_OE, CSA_DGRV, KC_TRNS,
+ KC_NO, CSA_AE, CSA_UGRV, CSA_DTRM, CSA_EURO, CSA_RQOT,
+ CSA(AGR_SFT), CSA_BSLS, CSA_LCBR, CSA_RCBR, MUC(ELPS), CSA_TILD, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_UNDS, CSA(AGR_SFT), KC_TRNS,
+
+ // right hand
+ KC_TRNS, M(M_CRC), CSA_PSMS, KC_NO, CSA_DVSN, CSA_TIMS, CSA_DBRV,
+ KC_TRNS, CSA_IXLM, CSA_DCAR, CSA_ETH, KC_NO, CSA_IJ, KC_NO,
+ CSA_CPRT, CSA_THRN, CSA_SRPS, CSA_RTM, CSA_DTLD, CSA_DMCR,
+ KC_TRNS, CSA_IQST, CSA_DRNG, CSA_MU, KC_NO, CSA_DOGO, CSA(AGR_SFT),
+ KC_TRNS, KC_NO, KC_TRNS, CSA_DCED, KC_TRNS,
+
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, CSA(AGR_SFT), KC_UNDS
+ ),
+/* AltGr-shifted BÉPO over Canadian Multilingual
+ * "////" indicates that the key is disabled (unsupported bépo character or unused in bépo)
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ¶ | //// | “ | †| //// | //// | | | | //// | ¬ | ¼ | ½ | ¾ | ////// |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ¦ | Ë | § | Å’ | ` | | | | //// | //// | à | //// | IJ | ////// |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | ////// | Æ | Ù |dead-˙| //// | //// |------| |------| //// | Þ | ẞ | ™ | //// | º |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | //// | ‘ | ’ | //// | //// | | | | //// | //// | //// | //// | ª | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[LR_CSA_AGR_SFT] = KEYMAP(
+ // left hand
+ CSA_PARG, KC_NO, CSA_LDQT, CSA_RDQT, KC_NO, KC_NO, KC_TRNS,
+ KC_TRNS, CSA_BPIP, CSA_DDCT, CSA_SECT, S(CSA_OE), M(M_GRV), KC_TRNS,
+ KC_NO, S(CSA_AE), S(CSA_UGRV), CSA_DDTA, KC_NO, KC_NO,
+ CSA(AGR_SFT), KC_NO, CSA_LQOT, CSA_RQOT, KC_NO, KC_NO, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, CSA(AGR_SFT), KC_TRNS,
+
+ // right hand
+ KC_TRNS, KC_NO, CSA_NEGT, CSA_1QRT, CSA_1HLF, CSA_3QRT, KC_NO,
+ KC_TRNS, KC_NO, KC_NO, S(CSA_ETH), KC_NO, S(CSA_IJ), KC_NO,
+ KC_NO, S(CSA_THRN), S(CSA_SRPS), CSA_TM, KC_NO, CSA_ORDO,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, CSA_ORDA, CSA(AGR_SFT),
+ CSA(SFT_AGR), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, CSA(AGR_SFT), KC_TRNS
+ ),
+/* Numeric Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | | | Tab | / | * | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | F6 | F7 | F8 | F9 | F10 | | | | | Home | 7 | 8 | 9 | + |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | F11 | F12 | | | |------| |------| Up | End | 4 | 5 | 6 | + |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | Left | Down | Right| 1 | 2 | 3 |KpEnter |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | 0 | 00 | . |Etr/Ctl|
+ * `----------------------------------' `-----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | |n.lock|c.lock|
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[LR_NUMR] = KEYMAP(
+ // left hand
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
+ KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS,KC_TRNS,
+
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_TAB, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_TRNS, KC_TRNS, KC_HOME, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_UP, KC_END, KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_TRNS, KC_P0, M(M_DBL0),KC_PDOT, CTL_T(KC_PENT),
+
+ KC_NLCK, KC_CAPS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* fn layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * |~CA-mult| | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk|
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | |VolUp | | | | | | | | Pause |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | RESET | | | Calc | Mail |Browsr|------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | App | cut | copy |paste | Mute |VolDn | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | Next | | | | |
+ * | Mute | play |------| |------| | |
+ * | | | Prev | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+[LR_FN] = KEYMAP(
+ TG(LR_CSA), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
+ RESET, KC_TRNS, KC_TRNS, KC_CALC, KC_MAIL, KC_WHOM,
+ KC_TRNS, KC_APP, S(KC_DELT), LCTL(KC_INS),S(KC_INS), KC_MUTE, KC_VOLD,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+
+ KC_TRNS, KC_TRNS,
+ KC_MPRV,
+ KC_MUTE, KC_MPLY, KC_MNXT,
+
+ // right hand
+ KC_INS, KC_EJCT, KC_PWR, KC_SLEP, KC_WAKE, KC_PSCR, KC_SLCK,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+};
+
+void hold_shift(void) {
+ register_code(KC_LSHIFT);
+}
+
+void release_shift(void) {
+ unregister_code(KC_LSHIFT);
+}
+
+uint16_t hextokeycode(int hex) {
+ if (hex == 0x0) {
+ return KC_P0;
+ } else if (hex < 0xA) {
+ return KC_P1 + (hex - 0x1);
+ } else {
+ return KC_A + (hex - 0xA);
+ }
+}
+
+void send_unicode(uint16_t unicode)
+{
+ // For more info on how this works per OS, see here: https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input
+ // Implemented for Windows:
+ // Pressing ALT followed by + followed by the unicode code point in hex.
+ // Requires registry key HKEY_CURRENT_USER\Control Panel\Input Method\EnableHexNumpad set to String 1
+ register_code(KC_LALT);
+ register_code(KC_PPLS);
+ unregister_code(KC_PPLS);
+
+ for (int i = 12; i >= 0; i -= 4) {
+ register_code(hextokeycode((unicode >> i) & 0xF));
+ unregister_code(hextokeycode((unicode >> i) & 0xF));
+ }
+
+ unregister_code(KC_LALT);
+}
+
+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 ... END_UC:
+ if (record->event.pressed) {
+ send_unicode(unicode_chars[id]);
+ }
+ break;
+ case M_CSA_SFT:
+ // BÉPO over CSA: toggle shift layer
+ layer_invert(LR_CSA_SFT);
+ if (record->event.pressed) {
+ hold_shift();
+ } else {
+ release_shift();
+ }
+ break;
+ case M_CSA_SFT_AGR:
+ // BÉPO over CSA: from shift layer, momentary altgr+shift layer
+ layer_invert(LR_CSA_AGR);
+ layer_invert(LR_CSA_AGR_SFT);
+ if (record->event.pressed) {
+ // shift not needed for LR_CSA_AGR_SFT
+ release_shift();
+ } else {
+ // back to shift layer
+ hold_shift();
+ }
+ break;
+ case M_CSA_AGR_SFT:
+ // BÉPO over CSA: from altgr layer, momentary altgr+shift layer
+ layer_invert(LR_CSA_SFT);
+ layer_invert(LR_CSA_AGR_SFT);
+ break;
+ case M_1 ... M_0:
+ case M_DEGR:
+ case M_SCLN:
+ case M_GRV:
+ case M_NBSP:
+ // macros of the shift layer that require to release shift
+ if (record->event.pressed) {
+ release_shift();
+ switch (id) {
+ case M_1 ... M_0:
+ register_code(KC_1 + (id - M_1));
+ break;
+ case M_DEGR:
+ return MACRO(DOWN(CSA_ALTGR), D(SCLN), END);
+ case M_SCLN:
+ return MACRO(D(SCLN), END);
+ case M_GRV:
+ return MACRO(I(75), DOWN(CSA_ALTGR), TYPE(CSA_DCRC), UP(CSA_ALTGR), T(SPACE), END);
+ case M_NBSP:
+ // use weak mod such that pressing another key will not be affected
+ add_weak_mods(MOD_BIT(CSA_ALTGR));
+ return MACRO(D(SPACE), END);
+ }
+ } else {
+ hold_shift();
+ switch (id) {
+ case M_1 ... M_0:
+ unregister_code(KC_1 + (id - M_1));
+ break;
+ case M_DEGR:
+ return MACRO(UP(CSA_ALTGR), U(SCLN), END);
+ case M_SCLN:
+ return MACRO(U(SCLN), END);
+ case M_NBSP:
+ del_weak_mods(MOD_BIT(CSA_ALTGR));
+ return MACRO(U(SPACE), END);
+ }
+ }
+ break;
+ case M_CRC:
+ if (record->event.pressed) {
+ return MACRO(I(75), TYPE(CSA_DCRC), T(SPACE), END);
+ }
+ break;
+ case M_DBL0:
+ if (record->event.pressed) {
+ return MACRO( I(25), T(P0), T(P0), END );
+ }
+ break;
+ case M_FNLR:
+ layer_invert(LR_NUMR);
+ layer_invert(LR_FN);
+ break;
+ case M_NMAL:
+ layer_invert(LR_NUMR);
+ if (record->event.pressed) {
+ register_code(KC_LALT);
+ } else {
+ unregister_code(KC_LALT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ // led 1: numeric layer
+ if (layer_state & (1 << LR_NUMR)) {
+ ergodox_right_led_1_on();
+ }
+ // led 2: BÉPO over Canadian Multilingual
+ if (IS_CA_MULT_ENABLED()) {
+ ergodox_right_led_2_on();
+ }
+ // led 3: caps lock
+ if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) {
+ ergodox_right_led_3_on();
+ }
+};
diff --git a/keyboards/ergodox/keymaps/bepo_csa/readme.md b/keyboards/ergodox/keymaps/bepo_csa/readme.md
new file mode 100644
index 000000000..d4975b226
--- /dev/null
+++ b/keyboards/ergodox/keymaps/bepo_csa/readme.md
@@ -0,0 +1,162 @@
+# BÉPO Keymap with firmware-remapping for software CSA layout
+
+This is a keymap intended to be used with the [BÉPO layout](http://bepo.fr), a French ergonomic layout designed by following Dvorak's principles.
+
+The particularity of this keymap is that it supports using the [Canadian Multilingual Standard layout](https://en.wikipedia.org/wiki/QWERTY#Canadian_Multilingual_Standard) (also known as _ACNOR keyboard_ or _CSA keyboard_, see also the [French page](https://fr.wikipedia.org/wiki/QWERTY#Clavier_canadien_multilingue_standard) which contains more details) on the OS side, by enabling the _CSA_ layer. This is especially useful for operating systems that natively provide CSA, but not BÉPO, like Windows. The CSA layout was chosen because it is probably the standard layout that provides the best character set coverage.
+
+This keymap is based on the [tm2030](../tm2030/) keymap, whose goal was to have a [TypeMatrixâ„¢ 2030](http://typematrix.com/2030/features.php) inspired layout for the ErgoDox EZ.
+
+As this keyboard is intended for French people, the rest of this page will be in French.
+
+# Keymap BÉPO avec support en firmware pour utilisation avec la disposition CSA en software
+
+Cette keymap a été conçue pour être utilisée avec la [disposition BÉPO](http://bepo.fr), la disposition francophone, ergonomique et libre basée sure les principes de Dvorak.
+
+La particularité de cette keymap est qu'elle supporte l'utilisation du [clavier canadien multilingue standard](https://fr.wikipedia.org/wiki/QWERTY#Clavier_canadien_multilingue_standard) (aussi appelé _clavier ACNOR_ ou _clavier CSA_) du côté du système d'exploitation, en activant la couche _CSA_. Ceci s'avère particulièrement utile pour les systèmes d'exploitations qui fournissent nativement le CSA, mais pas le BÉPO, comme Windows. Le clavier CSA a été choisi comme base car c'est probablement la disposition standard qui fournit la meilleure couverture en termes de caractères disponibles.
+
+Cette keymap est basée sur la keymap [tm2030](../tm2030/), dont le but est de fournir une disposition inspirée du [TypeMatrix™ 2030](http://typematrix.com/2030/features.php) pour l'ErgoDox EZ.
+
+## Couche de base
+C'est la couche par défaut, proche du TypeMatrix, avec les différences suivantes:
+- La ligne du haut (les touches `F`) et la colonne de droite sont retirées, les touches correspondantes étant déplacées ailleurs.
+- Les touches situés en bas à gauche sont redisposées dans cet ordre: `Ctrl`, `fn`, `Gui`, `num+Alt`, `Alt`
+- Les touches `shuffle` (`Alt+Tab`) et `desktop` ne sont pas supportés
+- `W` est déplacé à la place de `=`
+- `=` est déplacé sous `Tab` (au lieu d'avoir un grand `Shift`)
+- `%` et `Ç` sont déplacés à la place de `Home` et `End` respectivement
+- Les flèches ainsi que `PgUp`/`PgDown`/`Home`/`End` sont déplacées sur les pouces
+
+À noter que pour `W` et `Ç`, le but a été de ne pas les déplacer trop par rapport à la disposition BÉPO _standard_, afin de pouvoir repasser facilement sur un TypeMatrix ou un clavier traditionnel.
+
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| $ | " | « | » | ( | ) | Del | | Del | @ | + | - | / | * | W |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| Tab | B | É | P | O | È |Backsp| |Backsp| ^ | V | D | L | J | Z |
+|--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------|
+| = | A | U | I | E | , |------| |------| C | T | S | R | N | M |
+|--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------|
+| LShift | À | Y | X | . | K | | | | ' | Q | G | H | F | RShift |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ |LCtrl | fn | LGui |numAlt| LAlt | |Alt Gr| % | App | Ç | RCtrl|
+ `----------------------------------' `----------------------------------'
+ ,--------------. ,-------------.
+ | Esc | num | | Left |Right |
+ ,------+-------+------| |------+------+------.
+ | | | PgUp | | Up | | |
+ |Space | Home |------| |------| End |Space |
+ | | | PgDn | | Down | | |
+ `---------------------' `--------------------'
+```
+
+### Changer de couche
+
+- Utilisez `num` pour activer/désactiver [la couche numérique](#couche-numérique)
+- Maintenez `fn` pour activer temporairement [les couches numériques et Fn](#couche-fn)
+- Maintenez `numAlt` pour activer temporairement la couche numérique combinée avec `Alt` (facilite l'utilisation des raccourcis tels que `Alt`+`F4`)
+
+### Diodes
+Les diodes de l'ErgoDox EZ (côté droit) sont utilisées de la façon suivante :
+
+- diode de gauche (rouge) : indique l'activation de [la couche numérique](#couche-numérique)
+- diode du milieu (verte) : indique l'activation du [mode CSA](#couche-csa)
+- diode de droite (bleue) : indique le verrouillage majuscules
+
+## Couche CSA
+La couche _CSA_ est la même que la couche de base, pour une utilisation avec un clavier Canadien Multilingue configuré dans le système d'exploitation.
+
+Pour l'activer, appuyez sur `fn`+`$`. La [diode](#diodes) verte indique que la couche CSA est activée.
+
+### Limitations
+Seuls les caractères présents dans le clavier CSA sont parfaitement supportés. De manière générale, il s'agit des caractères suivants :
+
+- toute la couche de base
+- tous les caractères accessibles en `Shift`
+- tous les caractères de la main gauche accessibles en `AltGr` à l'exception du `≠`
+- environ la moitié des caractères de la main droite accessibles en `AltGr` et la moitié des caractères accessibles en `AltGr`+`Shift` (consultez [le fichier source](keymap.c) pour voir les caractères supportés)
+
+En particulier, les caractères suivants sont émulés via le support Unicode (Windows seulement):
+
+- le tiret cadratin (tiret long) : —
+- le tiret demi-cadratin (demi tiret) : –
+- les points de suspension : …
+
+L'implémentation actuelle ne fonctionne pas dans toutes les applications, en particulier les applications MS Office.
+
+Il est probable que l'utilisation de la couche CSA ne fonctionne pas correctement dans certains jeux vidéos.
+
+Cette fonctionnalité a été conçue et testée essentiellment pour Windows (7).
+
+### Détails techniques
+Techniquement, la couche CSA est en réalité composée de 4 couches servant à émuler la couche de base, les appuis sur `Shift` ou `Alt` et la combinaison des deux.
+
+Le changement de couches se fait par des macros afin d'activer ou désactiver plusieurs couches et la touche `Shift` en même temps.
+
+Certains caractères sont également implémentés par des macros, notamment ceux de la couche `Shift` qui n'ont pas besoin de cette touche en CSA, comme les chiffres.
+
+Les caractères Unicode se basent sur une implémentation spécifique et non celle fournie dans QMK — il faudrait sans doute migrer le code. Notez la façon dont ces caractères sont déclarés tels quels dans [le code source](keymap.c) (tableau `unicode_char`).
+
+## Couche numérique
+Couche numérique proche du TM lorsqu'on active `num`, avec les différences suivantes :
+
+- Le clavier numérique est déplacés de 1 vers le haut et vers la droite.
+- Les flèches sont décalées de 1 vers la gauche.
+- Fournit l'accès aux touches `F1` à `F12`, `caps-lock` et `num-lock`.
+
+La couche numérique est indiquée par la [diode](#diodes) de gauche (rouge). Caps-lock est indiqué par la diode de droite (bleue).
+
+La touche `numAlt` de [la couche de base](#couche-de-base) permet d'activer la couche numérique et la touche `Alt` simultanément, afin de faciliter les raccourcis claviers comme `Alt`+`F4`.
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| | F1 | F2 | F3 | F4 | F5 | | | | | | Tab | / | * | - |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| | F6 | F7 | F8 | F9 | F10 | | | | | Home | 7 | 8 | 9 | + |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | F11 | F12 | | | |------| |------| Up | End | 4 | 5 | 6 | + |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | | | | | | | | Left | Down | Right| 1 | 2 | 3 |KpEnter |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | | | | | | 0 | 00 | . |Etr/Ctl|
+ `----------------------------------' `-----------------------------------'
+ ,-------------. ,-------------.
+ | | | |n.lock|c.lock|
+ ,------|------|------| |------+------+------.
+ | | | | | | | |
+ | | |------| |------| | |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
+
+## Couche Fn
+Activée simultanément avec la couche numérique lorsque l'on maintient la touche `fn`. Comme sur le TM, elle fournit l'accès aux fonctionnalités suivantes :
+
+- `couper`, `copier` et `coller` — attention: ne pas utiliser dans l'explorateur de fichiers.
+- monter/baisser/couper le volume — seulement accessible en main gauche, contrairement au TM.
+- piste précédente/suivante
+- calculatrice, e-mail et page d'accueil du navigateur web
+- `insert`, `power`, `sleep`, `wake`, `print screen`, `scroll-lock` et `pause`
+- ~CSA: (dés)activation de [la couche CSA](#couche-csa) sur `$`
+- RESET: rechargement du firmware avec Teensy-Loader (pour les développeurs)
+
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| ~CSA | | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk|
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| | | | | | |VolUp | | | | | | | | Pause |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| RESET | | | Calc | Mail |Browsr|------| |------| | | | | | |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | App | cut | copy |paste | Mute |VolDn | | | | | | | | |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | | | | | | | | | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------|------|------| |------+------+------.
+ | | | Next | | | | |
+ | Mute | play |------| |------| | |
+ | | | Prev | | | | |
+ `--------------------' `--------------------'
+``` \ No newline at end of file
diff --git a/keyboards/ergodox/keymaps/bryan/keymap.c b/keyboards/ergodox/keymaps/bryan/keymap.c
new file mode 100644
index 000000000..572cea8cd
--- /dev/null
+++ b/keyboards/ergodox/keymaps/bryan/keymap.c
@@ -0,0 +1,226 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+enum custom_keycodes {
+ PLACEHOLDER = SAFE_RANGE, // can always be here
+ EPRM,
+ VRSN,
+ RGB_SLD
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------------. ,--------------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | Cmd,Shft,[ | | Cmd,Shft,] | 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------------| |------------+------+------+------+------+------+--------|
+ * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * |BkSp/Cmd| A | S | D | F | G |------------| |------------| H | J | K | L |; / L2|' / Cmd |
+ * |--------+------+------+------+------+------| Hyper | | Meh |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------------' `-------------+------+------+------+------+--------'
+ * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * |Ctrl/Esc|PgUp| | App | LGui |
+ * ,------|------|------| |------+--------+------.
+ * | | | PgDn | | Home | | |
+ * | Space|Backsp|------| |------| Tab |Enter |
+ * | |ace | Esc | | Alt | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, M(2),
+ KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
+ GUI_T(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,
+ CTL_T(KC_ESC),KC_PGUP,
+ KC_PGDN,
+ KC_SPC,KC_BSPC, KC_ESC,
+ // right hand
+ M(3), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ 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),GUI_T(KC_QUOT),
+ 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,
+
+ ALT_T(KC_APP), KC_LGUI,
+ KC_HOME,
+ KC_LALT,KC_TAB, KC_ENT
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | <- | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | . | 0 | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+ KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+ KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
+ KC_TRNS, M(1), KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+// KC_COMM, KC_MINS
+
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | |Brwser|
+ * | | |------| |------| |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ break;
+ case 1:
+ if (record->event.pressed) { // For resetting EEPROM
+ eeconfig_init();
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ // dynamically generate these.
+ case EPRM:
+ if (record->event.pressed) {
+ eeconfig_init();
+ }
+ return false;
+ break;
+ case VRSN:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ return false;
+ break;
+ case RGB_SLD:
+ if (record->event.pressed) {
+ #ifdef RGBLIGHT_ENABLE
+ rgblight_mode(1);
+ #endif
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/Makefile b/keyboards/ergodox/keymaps/coderkun_neo2/Makefile
new file mode 100644
index 000000000..b0fe90ab1
--- /dev/null
+++ b/keyboards/ergodox/keymaps/coderkun_neo2/Makefile
@@ -0,0 +1,3 @@
+SLEEP_LED_ENABLE = no
+UNICODE_ENABLE = yes
+COMMAND_ENABLE = no
diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c
index d25e2b995..aaf75d58f 100644
--- a/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c
+++ b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c
@@ -1,7 +1,7 @@
-#include "ergodox_ez.h"
-#include "debug.h"
+#include "ergodox.h"
#include "action_layer.h"
-#include "keymap_neo2.h"
+#include "led.h"
+#include "keymap_extras/keymap_neo2.h"
// Layer names
#define BASE 0 // default layer
@@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[BASE] = KEYMAP(
// left hand
- KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL,
+ KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, NEO_GRV,
NEO_Y, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, KC_HOME,
NEO_L1_L, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O,
KC_LSFT, NEO_UE, NEO_OE, NEO_AE, NEO_P, NEO_Z, TG(PMQ),
@@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_MINS,
KC_SPC, KC_ENT, ALL_T(KC_NO),
// right hand
- DE_ACUT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ NEO_ACUT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_END, NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS,
NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_L1_R,
TG(PMN), NEO_B, NEO_M, KC_COMM,KC_DOT, NEO_J, KC_RSFT,
@@ -137,13 +137,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┠┌─────┬─────┬─────┬─────┬─────┬─────┬───────â”
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
- * │ │ │ │ │ ✕ │ │ │ │ │ │ F9 │ F10 │ F11 │ F12 │ │
+ * │ │ ┌ │ ┬ │ ┠│ ─ │ │ │ │ │ │ │ F9 │ F10 │ F11 │ F12 │ │
* ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤
- * │ │ │ │ │ ✓ │ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │
- * ├───────┼─────┼─────┼─────╄─────╃─────┤ │ │ ├─────╄─────╃─────┼─────┼─────┼───────┤
- * │ │ │ │ │ │ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │
+ * │ │ ├ │ ┼ │ ┤ │ ✓ │ ✕ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │
+ * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
+ * │ │ └ │ ┴ │ ┘ │ ↔ │ ⇔ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │
* └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
- * │ │ │(MO1)│ │ │ │ │ │(MO1)│ │ │
+ * │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(MO1)│ │ │
* └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┠┌─────┬─────┠└─────┴─────┴─────┴─────┴─────┘
* │ Ms↠│ Ms↑ │ │ Ms↓ │ Ms→ │
* ┌─────┼─────┼─────┤ ├─────┼─────┼─────â”
@@ -155,9 +155,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[FMU] = KEYMAP(
// left hand
KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2713),KC_TRNS,KC_TRNS,
- KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2715),KC_TRNS,
- KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS, UC(0x250C),UC(0x252C),UC(0x2510),UC(0x2500),UC(0x2502),KC_TRNS,
+ KC_TRNS, UC(0x251C),UC(0x253C),UC(0x2524),UC(0x2713),UC(0x2715),
+ KC_TRNS, UC(0x2514),UC(0x2534),UC(0x2518),UC(0x2194),UC(0x21D4),KC_TRNS,
KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
KC_MS_L, KC_MS_U,
KC_BTN1,
@@ -244,6 +244,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
+ set_unicode_input_mode(UC_LNX);
};
@@ -267,8 +268,52 @@ void matrix_scan_user(void)
ergodox_right_led_3_on();
break;
default:
- ergodox_board_led_off();
+ if(host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) {
+ ergodox_led_all_set(LED_BRIGHTNESS_HI);
+ ergodox_right_led_1_on();
+ }
+ else {
+ ergodox_board_led_off();
+ }
break;
}
};
+
+
+// Override Unicode start method to use NEO_U instead of KC_U
+void unicode_input_start (void) {
+ register_code(KC_LCTL);
+ register_code(KC_LSFT);
+ register_code(NEO_U);
+ unregister_code(NEO_U);
+ unregister_code(KC_LSFT);
+ unregister_code(KC_LCTL);
+};
+
+// Override method to use NEO_A instead of KC_A
+uint16_t hex_to_keycode(uint8_t hex)
+{
+ if (hex == 0x0) {
+ return KC_0;
+ } else if (hex < 0xA) {
+ return KC_1 + (hex - 0x1);
+ } else {
+ switch(hex) {
+ case 0xA:
+ return NEO_A;
+ case 0xB:
+ return NEO_B;
+ case 0xC:
+ return NEO_C;
+ case 0xD:
+ return NEO_D;
+ case 0xE:
+ return NEO_E;
+ case 0xF:
+ return NEO_F;
+ default:
+ return KC_NO;
+ }
+ }
+}
diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/readme.md b/keyboards/ergodox/keymaps/coderkun_neo2/readme.md
index 2a4d3a535..2a4d3a535 100644
--- a/keyboards/ergodox_ez/keymaps/coderkun_neo2/readme.md
+++ b/keyboards/ergodox/keymaps/coderkun_neo2/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/colemak/keymap.c b/keyboards/ergodox/keymaps/colemak/keymap.c
index 9601726f7..7ef81ab4b 100644
--- a/keyboards/ergodox_ez/keymaps/colemak/keymap.c
+++ b/keyboards/ergodox/keymaps/colemak/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/colemak/readme.md b/keyboards/ergodox/keymaps/colemak/readme.md
index e28b2f085..e28b2f085 100644
--- a/keyboards/ergodox_ez/keymaps/colemak/readme.md
+++ b/keyboards/ergodox/keymaps/colemak/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png b/keyboards/ergodox/keymaps/colemak_osx_pc_no/keyboard-layout.png
index 57df5a1f9..57df5a1f9 100644
--- a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png
+++ b/keyboards/ergodox/keymaps/colemak_osx_pc_no/keyboard-layout.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c b/keyboards/ergodox/keymaps/colemak_osx_pc_no/keymap.c
index 3b74d266f..eb0156c45 100644
--- a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c
+++ b/keyboards/ergodox/keymaps/colemak_osx_pc_no/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "keymap_norwegian.h"
@@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
NO_COLN, KC_A, KC_R, KC_S, KC_T, KC_D,
KC_EXLM, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN,
MO(4), KC_BTN1, KC_BTN2, KC_TAB,GUI_T(KC_COMMA),
- NO_AMP, NO_PIPE,
+ NO_AMPR, NO_PIPE,
NO_PLUS,
KC_FN1,CTL_T(KC_DOT),ALT_T(NO_MINS),
// right hand
diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md b/keyboards/ergodox/keymaps/colemak_osx_pc_no/readme.md
index 48f095cae..48f095cae 100644
--- a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md
+++ b/keyboards/ergodox/keymaps/colemak_osx_pc_no/readme.md
diff --git a/keyboards/ergodox/keymaps/common-nighthawk/Makefile b/keyboards/ergodox/keymaps/common-nighthawk/Makefile
new file mode 100644
index 000000000..fafa40c43
--- /dev/null
+++ b/keyboards/ergodox/keymaps/common-nighthawk/Makefile
@@ -0,0 +1,6 @@
+SUBPROJECT_DEFAULT = ez
+TAP_DANCE_ENABLE = yes
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/ergodox/keymaps/common-nighthawk/keymap.c b/keyboards/ergodox/keymaps/common-nighthawk/keymap.c
new file mode 100644
index 000000000..debf384f3
--- /dev/null
+++ b/keyboards/ergodox/keymaps/common-nighthawk/keymap.c
@@ -0,0 +1,216 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+//Tap Dance Declarations
+enum {
+ TD_U_LBRC = 0,
+ TD_I_RBRC,
+};
+
+//Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_U_LBRC] = ACTION_TAP_DANCE_DOUBLE(KC_U, KC_LBRC),
+ [TD_I_RBRC] = ACTION_TAP_DANCE_DOUBLE(KC_I, KC_RBRC)
+};
+
+//Macro Declarations
+static uint16_t sunds_timer;
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | _ | x | x | _ | Esc | Hypr | Home | | End | Hypr | [ | ] | `~ | `~ | Bks |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * |Ctrl/Tab| Q | W | E | R | T | Up | | PgUp | Y | U | I | O | P | Ctrl |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Cmd/"' | A | S | D | F | G |------| |------| H | J | K | L | ;: |Cmd/Entr|
+ * |--------+------+------+------+------+------| Down | | PgDn |------+------+------+------+------+--------|
+ * | Shft | Z | X | C | V | B | | | | N | M | ,< | .> | /? | Shft |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | Alt | x | x | x | Left | |Right | Bks | x | x | Alt |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * |Teensy| VolUp| | Play | Del |
+ * ,------|------|------| |------+--------+------.
+ * | | | VolDn| | Next | | |
+ * |Sp/~L1| L2 |------| |------| L2 |'"/~L1|
+ * | | | Mute | | Prev | | |
+ * `--------------------' `----------------------'
+ */
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_UNDS, KC_1, KC_1, KC_UNDS, KC_ESC, ALL_T(KC_NO), KC_HOME,
+ CTL_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_UP,
+ M(1), KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN,
+ KC_LALT, KC_1, KC_1, KC_1, KC_LEFT,
+ RESET, KC_VOLU,
+ KC_VOLD,
+ LT(SYMB, KC_SPC), TG(MDIA), KC_MUTE,
+ // right hand
+ KC_END, ALL_T(KC_NO), KC_LBRC, KC_RBRC, KC_GRV, KC_GRV, KC_BSPC,
+ KC_PGUP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LCTRL,
+ KC_H, KC_J, KC_K, KC_L, KC_SCOLON, GUI_T(KC_ENT),
+ KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_RGHT, KC_BSPC, KC_1, KC_1, KC_RALT,
+ KC_MPLY, KC_DEL,
+ KC_MNXT,
+ KC_MPRV, TG(MDIA), LT(SYMB, KC_QUOT)
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | ^ | [ | ( | { | | | | = | 7 | 8 | 9 | 0 | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | & | $ | ] | ) | } |------| |------| + | 4 | 5 | 6 | * | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | \ | @ | # | % | | | | | | - | 1 | 2 | 3 | / | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | 0 | 0 | . | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS, KC_EXLM, KC_CIRC, KC_LBRC, KC_LPRN, KC_LCBR, KC_TRNS,
+ KC_TRNS, KC_AMPR, KC_DLR, KC_RBRC, KC_RPRN, KC_RCBR,
+ KC_TRNS, KC_BSLS, KC_AT, KC_HASH, KC_PERC, KC_PIPE, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
+ KC_TRNS, KC_EQL, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
+ KC_PLUS, KC_4, KC_5, KC_6, KC_ASTR, KC_TRNS,
+ KC_TRNS, KC_MINS, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS,
+ KC_0, KC_0, KC_DOT, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * |Version | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | WhDn | WhUp | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | R-Ck | L-Ck | |------| |------| MsLt | MsDn | MsUp | MsRt | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | |Brwser|
+ * | | |------| |------| |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+ M(0), 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_BTN2, KC_BTN1, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ break;
+
+ case 1:
+ if (record->event.pressed) {
+ sunds_timer = timer_read();
+ register_code (KC_LGUI);
+ } else {
+ if (timer_elapsed (sunds_timer) < TAPPING_TERM) {
+ unregister_code (KC_LGUI);
+ register_code (KC_LSFT);
+ register_code (KC_QUOT);
+ unregister_code (KC_QUOT);
+ unregister_code (KC_LSFT);
+ register_code (KC_LGUI);
+ }
+ unregister_code (KC_LGUI);
+ }
+ break;
+
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_3_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+ if (keyboard_report->mods & MOD_BIT(KC_LSFT)) {
+ ergodox_right_led_1_on ();
+ }
+};
diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev.png b/keyboards/ergodox/keymaps/csharp_dev/csharp_dev.png
index 6fba568fc..6fba568fc 100644
--- a/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev.png
+++ b/keyboards/ergodox/keymaps/csharp_dev/csharp_dev.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png b/keyboards/ergodox/keymaps/csharp_dev/csharp_dev_legend.png
index b0a1c513c..b0a1c513c 100644
--- a/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png
+++ b/keyboards/ergodox/keymaps/csharp_dev/csharp_dev_legend.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c b/keyboards/ergodox/keymaps/csharp_dev/keymap.c
index e9648ede7..e0c66f487 100644
--- a/keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c
+++ b/keyboards/ergodox/keymaps/csharp_dev/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/readme.md b/keyboards/ergodox/keymaps/csharp_dev/readme.md
index 96af077ad..96af077ad 100644
--- a/keyboards/ergodox_ez/keymaps/csharp_dev/readme.md
+++ b/keyboards/ergodox/keymaps/csharp_dev/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/dave/keymap.c b/keyboards/ergodox/keymaps/dave/keymap.c
index e9480af3e..23c4e0490 100644
--- a/keyboards/ergodox_ez/keymaps/dave/keymap.c
+++ b/keyboards/ergodox/keymaps/dave/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
@@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_H,
CTL_T(KC_GRV),KC_NUBS,KC_NO, KC_NO, KC_LALT,
KC_PSCREEN, KC_PSCREEN,
- TO(PROG, ON_PRESS),
+ TO(PROG),
KC_SPC, MO(NAVI), KC_LGUI,
// right hand
KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC,
@@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
KC_RALT,KC_LBRC,KC_RBRC,KC_NO, CTL_T(KC_QUOT),
MT(0x5, KC_NO), MT(0x5, KC_NO),
- TO(PROG, ON_PRESS),
+ TO(PROG),
KC_RGUI, MO(PROG), KC_SPC
),
@@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
- TO(NAVI, ON_PRESS),
+ TO(NAVI),
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, KC_EQUAL,
@@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT, KC_TRNS,
KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_TRNS,
KC_TRNS, KC_TRNS,
- TO(NAVI, ON_PRESS),
+ TO(NAVI),
KC_TRNS, KC_TRNS, KC_TRNS
),
@@ -123,7 +123,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
KC_TRNS, KC_TRNS,
- TO(BASE, ON_PRESS),
+ TO(BASE),
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
@@ -132,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS,
KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
- TO(BASE, ON_PRESS),
+ TO(BASE),
KC_TRNS, KC_TRNS, KC_TRNS
),
};
diff --git a/keyboards/ergodox_ez/keymaps/dave/readme.md b/keyboards/ergodox/keymaps/dave/readme.md
index aa0f9bd19..aa0f9bd19 100644
--- a/keyboards/ergodox_ez/keymaps/dave/readme.md
+++ b/keyboards/ergodox/keymaps/dave/readme.md
diff --git a/keyboards/ergodox/keymaps/deadcyclo/Makefile b/keyboards/ergodox/keymaps/deadcyclo/Makefile
new file mode 100644
index 000000000..039f07c8e
--- /dev/null
+++ b/keyboards/ergodox/keymaps/deadcyclo/Makefile
@@ -0,0 +1 @@
+UNICODE_ENABLE = yes
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png
new file mode 100644
index 000000000..2c03af581
--- /dev/null
+++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png
new file mode 100644
index 000000000..5adb7ac77
--- /dev/null
+++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png
new file mode 100644
index 000000000..a267ff23d
--- /dev/null
+++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png
new file mode 100644
index 000000000..c8c90cf5c
--- /dev/null
+++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/deadcyclo/keymap.c b/keyboards/ergodox/keymaps/deadcyclo/keymap.c
new file mode 100644
index 000000000..5774511cc
--- /dev/null
+++ b/keyboards/ergodox/keymaps/deadcyclo/keymap.c
@@ -0,0 +1,517 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+#define NAVG 3 // navigation
+
+enum macros {
+ RUN
+};
+
+enum function_ids {
+ EMOJI,
+ EMOJI2,
+ EPRM,
+ VRSN,
+ RGB_SLD,
+ GO_GROUP
+};
+
+/* opt can only be 0-15 */
+enum emojis {
+ SHRUG,
+ YAY,
+ HUG,
+ SMILE,
+ SMILE2,
+ HMM1,
+ HMM2,
+ BEAR1,
+ BEAR2,
+ FUU,
+ EGGY1,
+ EGGY2,
+ FACE1,
+ FACE2,
+ UHU,
+ SMRK1
+};
+
+enum emojis2 {
+ SMRK2,
+ LOVE
+};
+
+enum progmem_ids {
+ EMOJI_SHRUG,
+ EMOJI_YAY,
+ EMOJI_HUG,
+ EMOJI_SMILE,
+ EMOJI_SMILE2,
+ EMOJI_HMM1,
+ EMOJI_HMM2,
+ EMOJI_BEAR1,
+ EMOJI_BEAR2,
+ EMOJI_FUU,
+ EMOJI_EGGY1,
+ EMOJI_EGGY2,
+ EMOJI_FACE1,
+ EMOJI_FACE2,
+ EMOJI_UHU,
+ EMOJI_SMRK1,
+ EMOJI_SMRK2,
+ EMOJI_LOVE,
+ F_EPRM,
+ F_VRSN,
+ F_RGB_SLD,
+ I3_GO_GROUP_10,
+ I3_GO_GROUP_1,
+ I3_GO_GROUP_2,
+ I3_GO_GROUP_3,
+ I3_GO_GROUP_4,
+ I3_GO_GROUP_5,
+ I3_GO_GROUP_6,
+ I3_GO_GROUP_7,
+ I3_GO_GROUP_8,
+ I3_GO_GROUP_9,
+};
+
+// TODO: Finish the macros for i3 (Macros should potentially be own function instead to make things easier? some of them at least, f. ex. the ones that use 1-0 keys so we can have a single switch)
+
+// TODO: Do stuff with hyper and meh keys
+// TODO: Add macros for lots of stuff. (Lastpass cli, pushbullet cli, other push service cli, linode cli, more?)
+// TODO: Make macros for gnu screen and i3wm
+// TODO: Need to change hotkeys for lastpass, and potentially make my own keys for them on one of my layers
+// TODO: Look into using tap dance
+// TODO: Use leader key for stuff. See https://github.com/qmk/qmk_firmware/wiki
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | Esc/L3 | 1 | 2 | 3 | 4 | 5 | 6 | | 6 | 7 | 8 | 9 | 0 | - | =/L3 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab/L1 | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \/L1 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ctrl/'|
+ * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Grv/L1| UNI |AltShf| Lalt | Ralt | | Lalt | Ralt | LEAD | UNI | ~/L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | App | Home | | PgUp | Ins |
+ * ,------|------|------| |------+--------+------.
+ * | | | End | | PgDn | | |
+ * | Space| TAB |------| |------| BSPC |Enter |
+ * | | | [ | | ] | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ LT(NAVG,KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
+ LT(SYMB,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
+ KC_LCTL, LT(MDIA, 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),LCTL(LSFT(KC_U)), LALT(KC_LSFT), KC_RALT,KC_LALT,
+ ALT_T(KC_APP), KC_HOME,
+ KC_END,
+ KC_SPC,KC_TAB,KC_LBRC,
+ // right hand
+ KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, LT(NAVG,KC_EQL),
+ TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, LT(SYMB, KC_BSLS),
+ KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT),
+ MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
+ KC_LALT, KC_RALT,KC_LEAD,LCTL(LSFT(KC_U)), LT(SYMB,KC_TILD),
+ KC_PGUP, KC_INS,
+ KC_PGDN,
+ KC_RBRC,KC_BSPC, KC_ENT
+ ),
+/* Keymap 1: Symbol Layer LCTL(LSFT(KC_U))
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | . | 0 | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * |Toggle|Animat| | Hue+ | Hue- |
+ * ,------|------|------| |------+------+------.
+ * |Bright|Bright|Solid | | | | |
+ * |ness- |ness+ |------| |------| DEL | |
+ * | | | | | EPRM | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
+ KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+ KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+ KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ RGB_TOG,RGB_MOD,
+ F(F_RGB_SLD),
+ RGB_VAD,RGB_VAI,KC_TRNS,
+ // right hand
+ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
+ KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
+ RGB_HUD, RGB_HUI,
+ KC_TRNS,
+ F(F_EPRM), KC_DEL, KC_TRNS
+),
+/* Keymap 2: Media, mouse and navigation
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | gg(1)| | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | RUN | | | | | | | Up | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | Left | Down | Right| | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | |Brwser|
+ * | | |------| |------| |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA , MOUSE and NAVIGATION
+[MDIA] = KEYMAP(
+ KC_TRNS, F(I3_GO_GROUP_1), F(I3_GO_GROUP_2), F(I3_GO_GROUP_3), F(I3_GO_GROUP_4), F(I3_GO_GROUP_5), F(I3_GO_GROUP_6),
+KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ F(I3_GO_GROUP_6), F(I3_GO_GROUP_7), F(I3_GO_GROUP_8), F(I3_GO_GROUP_9), F(I3_GO_GROUP_10), KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+),
+
+/* Keymap 3: Unicode
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | ┌ | ┠| └ | ┘ | │ | ─ | | ╔ | ╗ | ╚ | ╠| ║ | ╠| |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | shrug| yay | hug | smile|smile2| | | | ■ | λ | → | ➙ | ▻ | █ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | hmm1 | hmm2 | bear1| bear2| fuu |------| |------| ☺ | ☻ | ☹ | ♡ | ♥ | ░ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | eggy1| eggy2| face1| face2| uhu | | | | ⤠| ☠| ☑ | ☒ | ✓ | ▄ |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | smrk1| smrk2| love | VER | | ✔ | ✗ | ✘ | ◠| ▀ |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | â–’ | â–“ |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// Unicode
+[NAVG] = KEYMAP(
+ KC_TRNS, UC(0x250c), UC(0x2510), UC(0x2514), UC(0x2518), UC(0x2502), UC(0x2500),
+ KC_TRNS, F(EMOJI_SHRUG), F(EMOJI_YAY), F(EMOJI_HUG), F(EMOJI_SMILE), F(EMOJI_SMILE2), KC_TRNS,
+ KC_TRNS, F(EMOJI_HMM1), F(EMOJI_HMM2), F(EMOJI_BEAR1), F(EMOJI_BEAR2), F(EMOJI_FUU),
+ KC_TRNS, F(EMOJI_EGGY1), F(EMOJI_EGGY2), F(EMOJI_FACE1), F(EMOJI_FACE2), F(EMOJI_UHU), KC_TRNS,
+ KC_TRNS, F(EMOJI_SMRK1), F(EMOJI_SMRK2), F(EMOJI_LOVE), F(F_VRSN),
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ UC(0x2554), UC(0x2557), UC(0x255a), UC(0x255d), UC(0x2551), UC(0x2550), KC_TRNS,
+ KC_TRNS, UC(0x25a0), UC(0x03bb), UC(0x2192), UC(0x2799), UC(0x25bb), UC(0x2588),
+ UC(0x263a), UC(0x263b), UC(0x2639), UC(0x2661), UC(0x2665), UC(0x2591),
+ KC_TRNS, UC(0x2764), UC(0x2610), UC(0x2611), UC(0x2612), UC(0x2713), UC(0x2584),
+ UC(0x2714), UC(0x2717), UC(0x2718), UC(0x25cf), UC(0x2580),
+ UC(0x2592), UC(0x2593),
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [EMOJI_SHRUG] = ACTION_FUNCTION_OPT(EMOJI, SHRUG),
+ [EMOJI_YAY] = ACTION_FUNCTION_OPT(EMOJI, YAY),
+ [EMOJI_HUG] = ACTION_FUNCTION_OPT(EMOJI,HUG),
+ [EMOJI_SMILE] = ACTION_FUNCTION_OPT(EMOJI,SMILE),
+ [EMOJI_SMILE2] = ACTION_FUNCTION_OPT(EMOJI,SMILE2),
+ [EMOJI_HMM1] = ACTION_FUNCTION_OPT(EMOJI,HMM1),
+ [EMOJI_HMM2] = ACTION_FUNCTION_OPT(EMOJI,HMM2),
+ [EMOJI_BEAR1] = ACTION_FUNCTION_OPT(EMOJI,BEAR1),
+ [EMOJI_BEAR2] = ACTION_FUNCTION_OPT(EMOJI,BEAR2),
+ [EMOJI_FUU] = ACTION_FUNCTION_OPT(EMOJI,FUU),
+ [EMOJI_EGGY1] = ACTION_FUNCTION_OPT(EMOJI,EGGY1),
+ [EMOJI_EGGY2] = ACTION_FUNCTION_OPT(EMOJI,EGGY2),
+ [EMOJI_FACE1] = ACTION_FUNCTION_OPT(EMOJI,FACE1),
+ [EMOJI_FACE2] = ACTION_FUNCTION_OPT(EMOJI,FACE2),
+ [EMOJI_UHU] = ACTION_FUNCTION_OPT(EMOJI,UHU),
+ [EMOJI_SMRK1] = ACTION_FUNCTION_OPT(EMOJI,SMRK1),
+ [EMOJI_SMRK2] = ACTION_FUNCTION_OPT(EMOJI2,SMRK2),
+ [EMOJI_LOVE] = ACTION_FUNCTION_OPT(EMOJI2,LOVE),
+ [F_EPRM] = ACTION_FUNCTION(EPRM),
+ [F_VRSN] = ACTION_FUNCTION(VRSN),
+ [F_RGB_SLD] = ACTION_FUNCTION(RGB_SLD),
+ [I3_GO_GROUP_10]= ACTION_FUNCTION_OPT(GO_GROUP,0),
+ [I3_GO_GROUP_1] = ACTION_FUNCTION_OPT(GO_GROUP,1),
+ [I3_GO_GROUP_2] = ACTION_FUNCTION_OPT(GO_GROUP,2),
+ [I3_GO_GROUP_3] = ACTION_FUNCTION_OPT(GO_GROUP,3),
+ [I3_GO_GROUP_4] = ACTION_FUNCTION_OPT(GO_GROUP,4),
+ [I3_GO_GROUP_5] = ACTION_FUNCTION_OPT(GO_GROUP,5),
+ [I3_GO_GROUP_6] = ACTION_FUNCTION_OPT(GO_GROUP,6),
+ [I3_GO_GROUP_7] = ACTION_FUNCTION_OPT(GO_GROUP,7),
+ [I3_GO_GROUP_8] = ACTION_FUNCTION_OPT(GO_GROUP,8),
+ [I3_GO_GROUP_9] = ACTION_FUNCTION_OPT(GO_GROUP,9),
+};
+
+#define TAP_ONCE(code) \
+ register_code (code); \
+ unregister_code (code)
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ if (record->event.pressed) {
+ switch(id) {
+ case EPRM:
+ eeconfig_init();
+ break;
+ case VRSN:
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ break;
+ case RGB_SLD:
+#ifdef RGBLIGHT_ENABLE
+ rgblight_mode(1);
+#endif
+ break;
+ case GO_GROUP:
+ register_code(KC_LCTL); TAP_ONCE(KC_I); unregister_code(KC_LCTL);
+ TAP_ONCE(KC_G);
+ if (opt == 0) {
+ TAP_ONCE(39);
+ } else {
+ TAP_ONCE(29+opt);
+ }
+ break;
+ case EMOJI:
+ switch(opt) {
+ case SHRUG:
+ unicode_input_start(); register_hex(0xaf); unicode_input_finish();
+ TAP_ONCE (KC_BSLS);
+ register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT);
+ unicode_input_start (); register_hex(0x30c4); unicode_input_finish();
+ register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT);
+ TAP_ONCE (KC_SLSH);
+ unicode_input_start (); register_hex(0xaf); unicode_input_finish();
+ break;
+ case YAY:
+ SEND_STRING ("\\o/");
+ break;
+ case HUG:
+ unicode_input_start(); register_hex(0x0f3c); unicode_input_finish();
+ TAP_ONCE (KC_SPC);
+ unicode_input_start(); register_hex(0x3064); unicode_input_finish();
+ TAP_ONCE (KC_SPC);
+ unicode_input_start(); register_hex(0x25d5); unicode_input_finish();
+ unicode_input_start(); register_hex(0x005f); unicode_input_finish();
+ unicode_input_start(); register_hex(0x25d5); unicode_input_finish();
+ TAP_ONCE (KC_SPC);
+ unicode_input_start(); register_hex(0x0f3d); unicode_input_finish();
+ unicode_input_start(); register_hex(0x3064); unicode_input_finish();
+ break;
+ case SMILE:
+ unicode_input_start(); register_hex(0x0298); unicode_input_finish();
+ unicode_input_start(); register_hex(0x203f); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0298); unicode_input_finish();
+ break;
+ case SMILE2:
+ unicode_input_start(); register_hex(0x0028); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0298); unicode_input_finish();
+ unicode_input_start(); register_hex(0x203f); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0298); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0029); unicode_input_finish();
+ break;
+ case HMM1:
+ unicode_input_start(); register_hex(0x0ca0); unicode_input_finish();
+ unicode_input_start(); register_hex(0x005f); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0ca0); unicode_input_finish();
+ break;
+ case HMM2:
+ unicode_input_start(); register_hex(0x0028); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0ca0); unicode_input_finish();
+ unicode_input_start(); register_hex(0x005f); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0ca0); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0029); unicode_input_finish();
+ break;
+ case BEAR1:
+ unicode_input_start(); register_hex(0x0295); unicode_input_finish();
+ unicode_input_start(); register_hex(0x2022); unicode_input_finish();
+ unicode_input_start(); register_hex(0x1d25); unicode_input_finish();
+ unicode_input_start(); register_hex(0x2022); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0294); unicode_input_finish();
+ break;
+ case BEAR2:
+ unicode_input_start(); register_hex(0x0028); unicode_input_finish();
+ unicode_input_start(); register_hex(0x1d54); unicode_input_finish();
+ unicode_input_start(); register_hex(0x1d25); unicode_input_finish();
+ unicode_input_start(); register_hex(0x1d54); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0029); unicode_input_finish();
+ break;
+ case FUU:
+ unicode_input_start(); register_hex(0x256d); unicode_input_finish();
+ unicode_input_start(); register_hex(0x2229); unicode_input_finish();
+ unicode_input_start(); register_hex(0x256e); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0028); unicode_input_finish();
+ unicode_input_start(); register_hex(0x002d); unicode_input_finish();
+ unicode_input_start(); register_hex(0x005f); unicode_input_finish();
+ unicode_input_start(); register_hex(0x002d); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0029); unicode_input_finish();
+ unicode_input_start(); register_hex(0x256d); unicode_input_finish();
+ unicode_input_start(); register_hex(0x2229); unicode_input_finish();
+ unicode_input_start(); register_hex(0x256e); unicode_input_finish();
+ break;
+ case EGGY1:
+ unicode_input_start(); register_hex(0x0028); unicode_input_finish();
+ unicode_input_start(); register_hex(0x256f); unicode_input_finish();
+ unicode_input_start(); register_hex(0x00b0); unicode_input_finish();
+ unicode_input_start(); register_hex(0x25a1); unicode_input_finish();
+ unicode_input_start(); register_hex(0x00b0); unicode_input_finish();
+ unicode_input_start(); register_hex(0xff09); unicode_input_finish();
+ unicode_input_start(); register_hex(0x256f); unicode_input_finish();
+ break;
+ case EGGY2:
+ unicode_input_start(); register_hex(0x30ce); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0028); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0020); unicode_input_finish();
+ unicode_input_start(); register_hex(0x309c); unicode_input_finish();
+ unicode_input_start(); register_hex(0x002d); unicode_input_finish();
+ unicode_input_start(); register_hex(0x309c); unicode_input_finish();
+ unicode_input_start(); register_hex(0x30ce); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0029); unicode_input_finish();
+ break;
+ case FACE1:
+ unicode_input_start(); register_hex(0x0028); unicode_input_finish();
+ unicode_input_start(); register_hex(0x002d); unicode_input_finish();
+ unicode_input_start(); register_hex(0x005f); unicode_input_finish();
+ unicode_input_start(); register_hex(0x002d); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0029); unicode_input_finish();
+ break;
+ case FACE2:
+ unicode_input_start(); register_hex(0x0028); unicode_input_finish();
+ unicode_input_start(); register_hex(0x2022); unicode_input_finish();
+ unicode_input_start(); register_hex(0x005f); unicode_input_finish();
+ unicode_input_start(); register_hex(0x2022); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0029); unicode_input_finish();
+ break;
+ case UHU:
+ unicode_input_start(); register_hex(0x2299); unicode_input_finish();
+ unicode_input_start(); register_hex(0xfe4f); unicode_input_finish();
+ unicode_input_start(); register_hex(0x2299); unicode_input_finish();
+ break;
+ case SMRK1:
+ unicode_input_start(); register_hex(0x005e); unicode_input_finish();
+ unicode_input_start(); register_hex(0x032e); unicode_input_finish();
+ unicode_input_start(); register_hex(0x005e); unicode_input_finish();
+ break;
+ }
+ break;
+ case EMOJI2:
+ switch(opt) {
+ case SMRK2:
+ unicode_input_start(); register_hex(0x0028); unicode_input_finish();
+ unicode_input_start(); register_hex(0x005e); unicode_input_finish();
+ unicode_input_start(); register_hex(0x032e); unicode_input_finish();
+ unicode_input_start(); register_hex(0x005e); unicode_input_finish();
+ unicode_input_start(); register_hex(0x0029); unicode_input_finish();
+ break;
+ case LOVE:
+ unicode_input_start(); register_hex(0x2665); unicode_input_finish();
+ unicode_input_start(); register_hex(0x203f); unicode_input_finish();
+ unicode_input_start(); register_hex(0x2665); unicode_input_finish();
+ break;
+ }
+ break;
+ }
+ }
+}
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ if (record->event.pressed) {
+ switch(id) {
+ case RUN:
+ return MACRO( D(LCTL), T(I), U(LCTL), T(R), END );
+ break;
+ }
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+ set_unicode_input_mode(UC_LNX);
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ case 1:
+ ergodox_right_led_1_on();
+ #ifdef RGBLIGHT_ENABLE
+ rgblight_setrgb(0xff,0x00,0x00);
+ #endif
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ #ifdef RGBLIGHT_ENABLE
+ rgblight_setrgb(0x00,0xff,0x00);
+ #endif
+ break;
+ case 3:
+ ergodox_right_led_3_on();
+ #ifdef RGBLIGHT_ENABLE
+ rgblight_setrgb(0x00,0x00,0xff);
+ #endif
+ break;
+ case 4:
+ ergodox_right_led_1_on(); // TODO: Make a fourth layer
+ ergodox_right_led_3_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/keymaps/deadcyclo/readme.md b/keyboards/ergodox/keymaps/deadcyclo/readme.md
new file mode 100644
index 000000000..fa41f0ec1
--- /dev/null
+++ b/keyboards/ergodox/keymaps/deadcyclo/readme.md
@@ -0,0 +1,72 @@
+# ErgoDox EZ 1337 configuration
+
+Custom layout based on the default layout. Intended for interational
+users of us intl-altgr layout. Note that some common keys might be
+missing, as this layout is intented to be used on *nix systems by
+users familiar with their system. The layout is geared towards
+avoiding using the rat (mouse for those of you who are unfamiliar with
+tiling window managers) as much as possibly.
+
+# Layouts
+
+All layer images created using [keyboard-layout-editor](http://www.keyboard-layout-editor.com/)
+
+## Base layer
+
+[![Base layer](images/deadcyclo-base-layout.png)](http://www.keyboard-layout-editor.com/#/gists/0321b18620180a3e46c498206eb65366)
+
+The base layer here is marked with the us international alt-gr layout,
+including characters bound to what on an iso keyboard would be alt-gr
+and on an ansi keyboard right alt.
+
+Regular (and irregular) modifier keys are marked with a yellowish
+gray. Layer moderators are marked with blue, red and green, which are
+the same colors each layer displays on the LEDs when active.
+
+All of the layer switch keys, except for the two center keys marked L1
+TOG, are dual purpose. Hence for example the top left key produces ESC
+if tapped, and temporarilly toggles L3 when hold down. The two center
+L1 TOG keys toggle L1 on and off for more permanent layer toggling.
+
+The UNI keys enter the linux ibus unicode composer mode
+(ie. Ctrl+Shift+u). Use this to enter unicode characters. Hit the key,
+type in the unicode hex value, and hit enter.
+
+## Layer 1 - Symbols and RGB
+
+[![Layer 1 - Symbols and RGB](images/deadcyclo-layer-1-symbols.png)](http://www.keyboard-layout-editor.com/#/gists/96714e198054c9115bafb5267cc6bc73)
+
+The Symbols and RGB layer contains function keys, commonly used
+symbols, a numpad and if you have the new Ergodox Ez shine keys for
+controlling various RGB-led functions. In addition, it provides an up
+and a down key for easy scrolling. RGB controller keys are yellow.
+
+## Layer 2 - Media, Mouse and Navigation
+
+[![Layer 2 - Media, Mouse and Navigation](images/deadcyclo-layer-2-media-and-mouse.png)](http://www.keyboard-layout-editor.com/#/gists/824759486e378bcec30784309a7e5731)
+
+The Media, Mouse and unicode layer contains special keys for moving
+the mouse and clicking on it with the keyboard. In addition it
+provides standard media control keys, and default arrow keys.
+
+## Layer 3 - Unicode
+
+[![Layer 3 - Unicode](images/deadcyclo-layer-3-navigation.png)](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289)
+
+The unicode layer provides keys for directly typing unicode (utf-8)
+
+# Changelog
+
+- 02.01.2017 Added delete key on second layer
+- 10.01.2017 Added layer images to readme
+- 24.01.2017 Added support for Ergodox Shine. Added secondary L2 switch key on left hand
+- 24.01.2017 Added unicode keys. Added shrug hug and yay. Moved Navigation to layer 2
+- 25.01.2017 Added lots of new emojis and some unicode keys
+- 27.01.2017 Added new unicode keys and shortcut for ibus unicode composer key (CTRL+SHIFT+U)
+
+# TODO
+
+- Add macros for lots of stuff. (Lastpass cli, pushbullet cli, other push service cli, linode cli, more?)
+- Make macros for gnu screen and i3wm
+- Look into the app launch macros in algernon keymap
+
diff --git a/keyboards/ergodox_ez/keymaps/default/default.png b/keyboards/ergodox/keymaps/default/default.png
index 6575f7b5e..6575f7b5e 100644
--- a/keyboards/ergodox_ez/keymaps/default/default.png
+++ b/keyboards/ergodox/keymaps/default/default.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/default/default_firmware_v1.2-2.png b/keyboards/ergodox/keymaps/default/default_firmware_v1.2-2.png
new file mode 100644
index 000000000..e3c321cc0
--- /dev/null
+++ b/keyboards/ergodox/keymaps/default/default_firmware_v1.2-2.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/default/default_highres.png b/keyboards/ergodox/keymaps/default/default_highres.png
index 7d9f045f4..7d9f045f4 100644
--- a/keyboards/ergodox_ez/keymaps/default/default_highres.png
+++ b/keyboards/ergodox/keymaps/default/default_highres.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/default/keymap.c b/keyboards/ergodox/keymaps/default/keymap.c
new file mode 100644
index 000000000..4477cab31
--- /dev/null
+++ b/keyboards/ergodox/keymaps/default/keymap.c
@@ -0,0 +1,223 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+enum custom_keycodes {
+ PLACEHOLDER = SAFE_RANGE, // can always be here
+ EPRM,
+ VRSN,
+ RGB_SLD
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
+ * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | App | LGui | | Alt |Ctrl/Esc|
+ * ,------|------|------| |------+--------+------.
+ * | | | Home | | PgUp | | |
+ * | Space|Backsp|------| |------| Tab |Enter |
+ * | |ace | End | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
+ KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(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,
+ ALT_T(KC_APP), KC_LGUI,
+ KC_HOME,
+ KC_SPC,KC_BSPC,KC_END,
+ // right hand
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ TG(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),GUI_T(KC_QUOT),
+ MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
+ KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1,
+ KC_LALT, CTL_T(KC_ESC),
+ KC_PGUP,
+ KC_PGDN,KC_TAB, KC_ENT
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,---------------------------------------------------. ,--------------------------------------------------.
+ * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | EPRM | | | | | | | . | 0 | = | |
+ * `-----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * |Animat| | |Toggle|Solid |
+ * ,------|------|------| |------+------+------.
+ * |Bright|Bright| | | |Hue- |Hue+ |
+ * |ness- |ness+ |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+ KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+ KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+ EPRM,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ RGB_MOD,KC_TRNS,
+ KC_TRNS,
+ RGB_VAD,RGB_VAI,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
+ KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
+ RGB_TOG, RGB_SLD,
+ KC_TRNS,
+ KC_TRNS, RGB_HUD, RGB_HUI
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | |Brwser|
+ * | | |------| |------| |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ break;
+ case 1:
+ if (record->event.pressed) { // For resetting EEPROM
+ eeconfig_init();
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ // dynamically generate these.
+ case EPRM:
+ if (record->event.pressed) {
+ eeconfig_init();
+ }
+ return false;
+ break;
+ case VRSN:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ return false;
+ break;
+ case RGB_SLD:
+ if (record->event.pressed) {
+ #ifdef RGBLIGHT_ENABLE
+ rgblight_mode(1);
+ #endif
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox_ez/keymaps/default/readme.md b/keyboards/ergodox/keymaps/default/readme.md
index 8f6dba45e..979ce0f5b 100644
--- a/keyboards/ergodox_ez/keymaps/default/readme.md
+++ b/keyboards/ergodox/keymaps/default/readme.md
@@ -2,9 +2,14 @@
## Changelog
+* Dec 2016:
+ * Added LED keys
+ * Refreshed layout graphic, comes from http://configure.ergodox-ez.com now.
+* Sep 22, 2016:
+ * Created a new key in layer 1 (bottom-corner key) that resets the EEPROM.
* Feb 2, 2016 (V1.1):
* Made the right-hand quote key double as Cmd/Win on hold. So you get ' when you tap it, " when you tap it with Shift, and Cmd or Win when you hold it. You can then use it as a modifier, or just press and hold it for a moment (and then let go) to send a single Cmd or Win keystroke (handy for opening the Start menu on Windows).
This is what we ship with out of the factory. :) The image says it all:
-![Default](default_highres.png)
+![Default](default_firmware_v1.2-2.png)
diff --git a/keyboards/ergodox_ez/keymaps/default_osx/default_osx_highres.png b/keyboards/ergodox/keymaps/default_osx/default_osx_highres.png
index 04f46bbd5..04f46bbd5 100644
--- a/keyboards/ergodox_ez/keymaps/default_osx/default_osx_highres.png
+++ b/keyboards/ergodox/keymaps/default_osx/default_osx_highres.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/default_osx/keymap.c b/keyboards/ergodox/keymaps/default_osx/keymap.c
index c57ffbb88..e9a242e07 100644
--- a/keyboards/ergodox_ez/keymaps/default_osx/keymap.c
+++ b/keyboards/ergodox/keymaps/default_osx/keymap.c
@@ -1,7 +1,7 @@
// Netable differences vs. the default firmware for the ErgoDox EZ:
// 1. The Cmd key is now on the right side, making Cmd+Space easier.
// 2. The media keys work on OSX (But not on Windows).
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/default_osx/readme.md b/keyboards/ergodox/keymaps/default_osx/readme.md
index aa749aac9..aa749aac9 100644
--- a/keyboards/ergodox_ez/keymaps/default_osx/readme.md
+++ b/keyboards/ergodox/keymaps/default_osx/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/dragon788/keymap.c b/keyboards/ergodox/keymaps/dragon788/keymap.c
index 3aec8c6cf..d33bc6a25 100644
--- a/keyboards/ergodox_ez/keymaps/dragon788/keymap.c
+++ b/keyboards/ergodox/keymaps/dragon788/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/dvorak/dvorak.png b/keyboards/ergodox/keymaps/dvorak/dvorak.png
index cb8316309..cb8316309 100644
--- a/keyboards/ergodox_ez/keymaps/dvorak/dvorak.png
+++ b/keyboards/ergodox/keymaps/dvorak/dvorak.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/dvorak/keymap.c b/keyboards/ergodox/keymaps/dvorak/keymap.c
index 22947327d..d3609c673 100644
--- a/keyboards/ergodox_ez/keymaps/dvorak/keymap.c
+++ b/keyboards/ergodox/keymaps/dvorak/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox/keymaps/dvorak_emacs/keymap.c b/keyboards/ergodox/keymaps/dvorak_emacs/keymap.c
new file mode 100755
index 000000000..d33c6e527
--- /dev/null
+++ b/keyboards/ergodox/keymaps/dvorak_emacs/keymap.c
@@ -0,0 +1,165 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+
+/******************************************************************************************
+ * DVORAK LAYOUT (see http://djelibeibi.unex.es/dvorak/)
+ * Layer 1: auxiliary keys
+ * Layer 2: full qwerty layout
+ *****************************************************************************************/
+
+// LAYERS
+#define BASE 0 // dvorak layout (default)
+#define AUX 1 // auxiliary keys
+
+// MACROS
+/* #define OBRACE 0 // key { or shift */
+/* #define CBRACE 1 // key } or shift */
+/* #define OBRACK 2 // key [ or left alt */
+/* #define CBRACK 3 // key ] or left alt */
+/* #define CAPS 4 // caps lock */
+
+// LEDS
+#define USB_LED_NUM_LOCK 0
+#define USB_LED_CAPS_LOCK 1
+#define USB_LED_SCROLL_LOCK 2
+#define USB_LED_COMPOSE 3
+#define USB_LED_KANA 4
+
+// TIMERS
+#define KEY_TAP_FAST 85
+#define KEY_TAP_SLOW 95
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Base layer
+ * Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = / + |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | ~ |" / ' |, / < |. / > | P | Y | [ | | ] | F | G | C | H | L | / / ? |
+ * |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
+ * | Tab | A | O | E |U/LSft| I/L1 |------| |------| D/L1|R/RSft| T | N | S | - / _ |
+ * |--------+------+------+------+------+------| LGUI | | LGUI |------+------+------+------+------+--------|
+ * | {/LSft |; / : | Q | J | K | X | | | | B | M | W | V | Z | }/RSft |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | ~L1 | | ~L1 | | | \ / || |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | HOME | END | | LEFT | RIGHT|
+ * ,------|------|------| |------+--------+------.
+ * | BSPC | DEL | PGUP | | UP | SPACE |RETURN|
+ * | / | / |------| |------| / | / |
+ * | LCTL | LALT |PGDWN | | DOWN | LALT | LCTL |
+ * `--------------------' `----------------------'
+ *
+ */
+[BASE] = KEYMAP(
+ // left hand
+ KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
+ KC_TILD, KC_QUOTE, KC_COMM,KC_DOT, KC_P, KC_Y, KC_LBRACKET,
+ KC_TAB, KC_A, KC_O, KC_E, SFT_T(KC_U), LT(AUX, KC_I),
+ SFT_T(KC_LBRC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LGUI,
+ KC_NO, KC_NO, KC_NO, KC_NO, MO(AUX),
+ KC_HOME, KC_END,
+ KC_PGUP,
+ CTL_T(KC_BSPC), ALT_T(KC_DEL), KC_PGDN,
+ // right hand
+ KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
+ KC_RBRACKET, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLASH,
+ LT(AUX, KC_D), SFT_T(KC_H), KC_T, KC_N, KC_S, KC_MINUS,
+ KC_LGUI, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_RBRC),
+ MO(AUX), KC_NO, KC_NO, KC_BSLASH, KC_NO,
+ KC_LEFT, KC_RIGHT,
+ KC_UP,
+ KC_DOWN, ALT_T(KC_ENT), CTL_T(KC_SPC)
+ ),
+/* Keymap 1: Aux layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | VolUp | | | | | | SLEEP | PWR | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------|
+ * | TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | TRANS| TRANS| | TRANS| TRANS|
+ * ,------|------|------| |------+------+------.
+ * | | | TRANS| | TRANS| | |
+ * |TRANS |TRANS |------| |------| TRANS| TRANS|
+ * | | | TRANS| | TRANS| | |
+ * `--------------------' `--------------------'
+ */
+[AUX] = KEYMAP(
+ // left hand
+ KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP,
+ KC_VOLD, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_NO,
+ KC_NO , KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS,
+ KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
+ LCTL(KC_S), LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), KC_TRNS,
+ KC_TRNS , KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_PWR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_PAST, KC_NO,
+ KC_TRNS, KC_4, KC_5, KC_6, KC_PPLS, KC_NO,
+ KC_PSCR, KC_NO, KC_1, KC_2, KC_3, KC_PSLS, KC_TRNS,
+ KC_TRNS,KC_DOT, KC_0, KC_PEQL, KC_NO,
+ KC_TRNS , KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(AUX) // FN1 - Momentary Layer 1 (Aux)
+};
+
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+}
diff --git a/keyboards/ergodox/keymaps/dvorak_emacs/readme.md b/keyboards/ergodox/keymaps/dvorak_emacs/readme.md
new file mode 100644
index 000000000..a3fc34afe
--- /dev/null
+++ b/keyboards/ergodox/keymaps/dvorak_emacs/readme.md
@@ -0,0 +1,70 @@
+# Ergodox Dvorak Layout with emacs binding in mind
+ * Control & Alt key on the thumbs (activated if pressed with another key).
+ * In the same way, "U" and "R" are the shift modifier if pressed with another key.
+ * "I" and "D" set the layer 1 for the auxiliary keys if pressed with another key.
+ * Software layout set to english.
+
+## Keymap Layers
+ - L0: dvorak with some customizations (see layout below)
+ - L1: auxiliary keys (includes function keys, numpad...)
+
+
+### Keymap 0: Base layer
+Keys with double values (like U/LSft) correspond to the 'tapped' key and the 'held' key, respectively
+
+<pre><code>
+
+,--------------------------------------------------. ,--------------------------------------------------.
+| | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| ~ | ' | , | . | P | Y | [ | | ] | F | G | C | H | L | / |
+|--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
+| Tab | A | O | E |U/LSft| I/L1 |------| |------| D/L1|R/RSft| T | N | S | - |
+|--------+------+------+------+------+------| LGUI | | LGUI |------+------+------+------+------+--------|
+| {/LSft | ; | Q | J | K | X | | | | B | M | W | V | Z | }/RSft |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | | | ~L1 | | ~L1 | | | \ | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | HOME | END | | LEFT | RIGHT|
+ ,------|------|------| |------+--------+------.
+ | BSPC | DEL | PGUP | | UP | SPACE |RETURN|
+ | / | / |------| |------| / | / |
+ | LCTL | LALT |PGDWN | | DOWN | LALT | LCTL |
+ `--------------------' `----------------------'
+
+</pre></code>
+
+### Keymap 1: Aux layer
+
+<pre><code>
+
+,--------------------------------------------------. ,--------------------------------------------------.
+| VolUp | | | | | | SLEEP | PWR | | | | | | |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
+|--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------|
+| TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ |CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | TRANS| TRANS| | TRANS| TRANS|
+ ,------|------|------| |------+------+------.
+ | | | TRANS| | TRANS| | |
+ |TRANS |TRANS |------| |------| TRANS| TRANS|
+ | | | TRANS| | TRANS| | |
+ `--------------------' `--------------------'
+
+</pre></code>
+
+
+
+## Generation of .hex file
+> In the "qmk_firmware/keyboards/ergodox" directory.
+
+> Execute "make dvorak_emacs". Then the hex file "ergodox_ez_dvorak_emacs.hex" is in the root directory : "qmk_firmware".
+
+> Flash with `teensy_loader` binary
diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout0.png
index 6a36f9bfa..6a36f9bfa 100644
--- a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png
+++ b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout0.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout1.png
index c6e6d913c..c6e6d913c 100644
--- a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png
+++ b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout1.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout2.png
index 23f56ff4c..23f56ff4c 100644
--- a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png
+++ b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout2.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keymap.c
index 82f55b4bc..89eae5208 100644
--- a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c
+++ b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/readme.md b/keyboards/ergodox/keymaps/dvorak_intl_squisher/readme.md
index 984106ff4..984106ff4 100644
--- a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/readme.md
+++ b/keyboards/ergodox/keymaps/dvorak_intl_squisher/readme.md
diff --git a/keyboards/ergodox/keymaps/dvorak_plover/README.md b/keyboards/ergodox/keymaps/dvorak_plover/README.md
new file mode 100644
index 000000000..c8287b019
--- /dev/null
+++ b/keyboards/ergodox/keymaps/dvorak_plover/README.md
@@ -0,0 +1,14 @@
+Dvorak support, plover support, gaming support
+
+I'm used to the Kinesis, so originally I was just going to patch up
+the thumb keys to be more familiar. But the ergodox is really well
+suited to NKRO support in Plover, so I added a layer for that, and
+then I remembered that dvorak can be really annoying for video
+games (try to reach WASD), so I added a layer for that.
+
+The result is probably a bit idiosyncratic, but it works for me.
+
+(I also don't have any press/hold distinction keys, because that
+confuses my fuzzy little brain.)
+
+Contributed by seebs (seebs@seebs.net)
diff --git a/keyboards/ergodox/keymaps/dvorak_plover/keymap.c b/keyboards/ergodox/keymaps/dvorak_plover/keymap.c
new file mode 100644
index 000000000..d0505609d
--- /dev/null
+++ b/keyboards/ergodox/keymaps/dvorak_plover/keymap.c
@@ -0,0 +1,230 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define PLVR 2 // media keys
+#define QWRT 3 // qwerty layer for gaming
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | \ |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | ' | , | . | P | Y | L1 | | L2 | F | G | C | R | L | / |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | LGui | A | O | E | U | I |------| |------| D | H | T | N | S | - |
+ * |--------+------+------+------+------+------| Esc | | L3 |------+------+------+------+------+--------|
+ * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Lalt | Grv | | Left | Right| | Up | Down | [ | ] | RAlt |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,---------------.
+ * | LCtrl| Alt | | LGui | RCtrl |
+ * ,------|------|------| |------+--------+------.
+ * | | | Home | | PgUp | | |
+ * |Backsp|Delete|------| |------| Enter |Space |
+ * | ace| | End | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, MO(SYMB),
+ KC_LGUI, KC_A, KC_O, KC_E, KC_U, KC_I,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_ESC,
+ KC_LALT, KC_GRV, KC_ESC, KC_LEFT,KC_RGHT,
+ KC_LCTL, KC_LALT,
+ KC_HOME,
+ KC_BSPC,KC_DEL,KC_END,
+ // right hand
+ KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
+ TG(PLVR), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
+ KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
+ TG(QWRT),KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
+ KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_RALT,
+ KC_LGUI, KC_RCTL,
+ KC_PGUP,
+ KC_PGDN,KC_ENT, KC_SPC
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | KP7 | KP8 | KP9 | KP* | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | KP4 | KP5 | KP6 | KP+ | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | KP1 | KP2 | KP3 | KP/ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | KP. | KP0 | KP= | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+ KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+ KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_P7, KC_P8, KC_P9, KC_PAST, KC_F12,
+ KC_DOWN, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS,
+ KC_TRNS, KC_AMPR, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_TRNS,
+ KC_TRNS,KC_PDOT, KC_P0, KC_PEQL, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Steno for Plover from https://github.com/shayneholmes/tmk_keyboard/commit/11290f8489013018f778627db725160c745e75bd
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | 1 | 2 | 3 | 4 | 5 | | | L2 | 6 | 7 | 8 | 9 | 0 | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | q | w | e | r | t |------| |------| y | u | i | o | p | [ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | a | s | d | f | g | | | | h | j | k | l | ; | ' |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | c | v |------| |------| n | m |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+
+[PLVR] = KEYMAP( // layout: layer 2: Steno for Plover
+ // left hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
+ KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T,
+ KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_FN4, KC_NO,
+ KC_NO,
+ KC_C, KC_V, KC_NO,
+ // right hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
+ TG(2), KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
+ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
+ KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_NO, KC_N, KC_M
+),
+/* Keymap 3: qwerty-ish
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | LGui | A | S | D | F | G |------| |------| H | J | K | L | ; | LGui |
+ * |--------+------+------+------+------+------| Spc | | L3 |------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | Lalt | Grv | '" | Left | Right| | Up | Down | [ | ] | RAlt |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,---------------.
+ * | LCtrl| LAlt | | LGui | RCtrl |
+ * ,------|------|------| |------+--------+------.
+ * | | | Home | | PgUp | | |
+ * |Backsp|Delete|------| |------| Enter |Space |
+ * | ace| | End | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+[QWRT] = KEYMAP( // layer 3: qwerty for gaming
+ // left hand
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
+ KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_SPACE,
+ KC_LALT, KC_GRV, KC_QUOT, KC_LEFT,KC_RGHT,
+ KC_LCTL, KC_LALT,
+ KC_HOME,
+ KC_BSPC,KC_DEL,KC_END,
+ // right hand
+ KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ TG(QWRT), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
+ KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_RALT,
+ KC_LGUI, KC_RCTL,
+ KC_PGUP,
+ KC_PGDN,KC_ENT, KC_SPC
+ ),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ case 3:
+ ergodox_right_led_3_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/Makefile b/keyboards/ergodox/keymaps/dvorak_programmer/Makefile
new file mode 100644
index 000000000..91b1ae597
--- /dev/null
+++ b/keyboards/ergodox/keymaps/dvorak_programmer/Makefile
@@ -0,0 +1,8 @@
+BOOTMAGIC_ENABLE=no
+COMMAND_ENABLE=no
+SLEEP_LED_ENABLE=no
+FORCE_NKRO ?= yes
+DEBUG_ENABLE = no
+CONSOLE_ENABLE = no
+TAP_DANCE_ENABLE = no
+MOUSEKEY_ENABLE = yes
diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/README.md b/keyboards/ergodox/keymaps/dvorak_programmer/README.md
new file mode 100644
index 000000000..36722469f
--- /dev/null
+++ b/keyboards/ergodox/keymaps/dvorak_programmer/README.md
@@ -0,0 +1,39 @@
+Dvorak Programmer Layout
+========================
+
+This is a dvorak-only layout. The overall philosophy is that the left hand contains a number of layer-switching shortcuts, and the right hand key codes vary based on the layer selected.
+
+Layers
+------
+
+* BASE: this is where you type.
+* SHELL_NAV: hold down the Tab key to access shell/terminal navigation shorcuts such as forward/backward word, history, Ctrl+C, screen tab movement.
+* KEY_NAV: arrow key movement with backward/forward word support, and copy/paste.
+* KEY_SEL: same as above, but every movement shift-selects.
+* NUMBER: keypad layer.
+* SYMBOL: all the symbols.
+* BRACKET: special brackets-only layer for programming. Activated by pressing left capslock (OSL)
+* SHORTCUTS: sends Hyper keys for Autohotkey to interpret. I use this to switch between specific apps.
+* MOUSE: use mouse keys
+
+Updates
+-------
+
+2017/02/10:
+* Made left shift an MO for SHELL_NAV, and symbol+right shift CAPSLOCK. Made all modifiers OSM.
+
+2017/01/28:
+* Made the capslock key a dual momentary layer activation for BRACKETS and SHELL_NAV. One keypress held down for BRACKETS, one keypress, released and then held down for SHELL_NAV
+
+2017/01/22:
+* Made brackets toggle an OSL on the left capslock
+* Added SHELL_LAYER
+
+2016/12/10:
+* toggle for brackets layer is now on left thumb cluster.
+
+2016/11/05:
+* removed brackets anywhere but in brackets layer
+* added mouse layer back in
+* put semicolon-newline and end-newline on symbol layer
+* replaced all HYPR with MEH, added more shortcut keys \ No newline at end of file
diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c
new file mode 100644
index 000000000..ae4fd444d
--- /dev/null
+++ b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c
@@ -0,0 +1,406 @@
+
+#include "ergodox.h"
+#include "led.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "action_code.h"
+
+#define BASE 0 // default layer
+#define SHELL_NAV 2
+#define KEY_NAV 3 // key navigation layer
+#define KEY_SEL 4 // key selection layer
+#define NUMBER 5 // number layer
+#define SYMBOL 6
+#define BRACKETS 7
+#define SHORTCUTS 8
+#define MOUSE 9
+
+// macros
+#define MC_COPY_LINE 0
+#define MC_CUT_LINE 1
+#define MC_PASTE_LINE 2
+#define MC_NEW_SEARCH_TAB 3
+#define SCREEN_TAB_LEFT 4
+#define SCREEN_TAB_RIGHT 5
+#define SCREEN_NEW_TAB 6
+#define SWITCH_NDS 7
+#define SCREEN_COPY_MODE 8
+#define SCREEN_PASTE 9
+#define OPEN_CLOSE_PAREN 10
+#define OPEN_CLOSE_BRACKET 11
+#define OPEN_CLOSE_CURLY 12
+#define OPEN_CLOSE_SINGLE_QUOTE 13
+#define OPEN_CLOSE_DOUBLE_QUOTE 14
+#define SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND 15
+#define SEMICOLON_NEWLINE 16
+#define END_NEWLINE 17
+
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// base layer
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, MO(KEY_SEL),
+ MO(BRACKETS), KC_A, KC_O, KC_E, KC_U, KC_I,
+ MO(SHELL_NAV), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(KEY_NAV),
+ OSL(SHORTCUTS),OSM(MOD_LCTL), OSM(MOD_LALT),OSL(SYMBOL),MO(NUMBER),
+ // thumb cluster
+ OSM(MOD_LSFT), RCTL(KC_S),
+ RCTL(KC_DEL),
+ KC_BSPC,RCTL(KC_BSPC),KC_DEL,
+ // right hand
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSLS,
+ KC_PGUP, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
+ KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
+ KC_PGDN, KC_B, KC_M, KC_W, KC_V, KC_Z, OSM(MOD_LSFT),
+ // lower keys - browser tab control
+ RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), RCTL(KC_T), LALT(KC_LEFT), RCTL(KC_W),
+ // thumb cluster
+ KC_HOME,KC_END,
+ KC_UP,
+ KC_DOWN,KC_ENT, KC_SPC
+ ),
+
+
+
+
+// shell navigation layer
+[SHELL_NAV] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ // bottom row
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ // thumb cluster
+ KC_TRNS,KC_TRNS,
+ LALT(KC_D),
+ KC_TRNS,RCTL(KC_W),KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ RCTL(KC_L), RCTL(KC_W), KC_HOME, KC_UP, KC_END, LALT(KC_D), RCTL(KC_R),
+ LALT(KC_B), KC_LEFT, KC_DOWN, KC_RIGHT, LALT(KC_F), LALT(KC_DOT),
+ RCTL(KC_C), RCTL(KC_U), M(SCREEN_COPY_MODE), M(SCREEN_PASTE), MEH(KC_V), RCTL(KC_K), M(SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND),
+ // bottom row
+ M(SCREEN_TAB_LEFT), M(SCREEN_TAB_RIGHT), M(SCREEN_NEW_TAB), KC_TRNS, KC_TRNS,
+ // thumb cluster
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+
+// key navigation layer
+[KEY_NAV] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ // bottom row
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ // thumb cluster
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_PGDN, KC_HOME, KC_UP, KC_END, KC_PGUP, M(MC_COPY_LINE),
+ RCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, RCTL(KC_RIGHT), M(MC_CUT_LINE),
+ KC_TRNS, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_TRNS, M(MC_PASTE_LINE),
+ // bottom row
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ // thumb cluster
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+// key selection layer
+[KEY_SEL] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ // bottom row
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ // thumb cluster
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ RSFT(KC_PGUP), RSFT(KC_PGDN), RSFT(KC_HOME), RSFT(KC_UP), RSFT(KC_END), RSFT(KC_PGUP), M(MC_COPY_LINE),
+ RSFT(RCTL(KC_LEFT)), RSFT(KC_LEFT), RSFT(KC_DOWN), RSFT(KC_RIGHT), RSFT(RCTL(KC_RIGHT)), M(MC_CUT_LINE),
+ RSFT(KC_PGDN), KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_TRNS, M(MC_PASTE_LINE),
+ // bottom row
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ // thumb cluster
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+// number layer
+[NUMBER] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ // bottom row
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ // thumb cluster
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_PLUS, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS,
+ KC_MINS, KC_4, KC_5, KC_6, KC_SLSH, KC_TRNS,
+ KC_TRNS, KC_EQUAL, KC_1, KC_2, KC_3, KC_COLN, KC_TRNS,
+ // bottom row
+ KC_0, KC_DOT, KC_COMMA, KC_TRNS, KC_TRNS,
+ // thumb cluster
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+
+[SYMBOL] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_PLUS, KC_AMPR, KC_ASTR, KC_GRAVE,KC_TILD, KC_TRNS,
+ KC_MINS, KC_DLR, KC_PERC, KC_CIRC, KC_PIPE, KC_TRNS,
+ KC_TRNS, KC_EQUAL,KC_EXLM, KC_AT, KC_HASH, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ M(SEMICOLON_NEWLINE), M(END_NEWLINE),
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+[BRACKETS] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,M(OPEN_CLOSE_CURLY), M(OPEN_CLOSE_PAREN),M(OPEN_CLOSE_BRACKET), KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS, KC_TRNS, M(OPEN_CLOSE_BRACKET),M(OPEN_CLOSE_PAREN),M(OPEN_CLOSE_CURLY),KC_TRNS,KC_TRNS,
+ KC_TRNS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, 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
+),
+
+[SHORTCUTS] = KEYMAP(
+ // left hand
+ KC_NO, MEH(KC_F1), MEH(KC_F2), MEH(KC_F3), MEH(KC_F4), MEH(KC_F5), MEH(KC_F6),
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ MEH(KC_0),MEH(KC_1),
+ MEH(KC_2),
+ MEH(KC_3),MEH(KC_4),MEH(KC_5),
+ // right hand
+ MEH(KC_F7), MEH(KC_F8), MEH(KC_F9), MEH(KC_F10), MEH(KC_F11), MEH(KC_F12), M(SWITCH_NDS),
+ KC_TRNS, MEH(KC_A), MEH(KC_B), MEH(KC_C), MEH(KC_D), MEH(KC_E), MEH(KC_F),
+ MEH(KC_G), MEH(KC_H), MEH(KC_I), MEH(KC_J), MEH(KC_K), MEH(KC_L),
+ KC_TRNS, MEH(KC_M), MEH(KC_N), MEH(KC_O), MEH(KC_P), MEH(KC_Q), KC_CAPSLOCK,
+ MEH(KC_S), MEH(KC_T), MEH(KC_U), MEH(KC_V), MEH(KC_X),
+ MEH(KC_6), MEH(KC_7),
+ MEH(KC_8),
+ MEH(KC_9), MEH(KC_Y), MEH(KC_Z)
+),
+
+
+[MOUSE] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_BTN1, KC_BTN2
+),
+
+};
+
+
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case MC_COPY_LINE:
+ if (record->event.pressed) {
+ return MACRO( T(HOME), D(LSFT), T(END), U(LSFT), D(LCTL), T(C), U(LCTL), END);
+ }
+ break;
+ case MC_CUT_LINE:
+ if (record->event.pressed) {
+ return MACRO( T(HOME), D(LSFT), T(END), U(LSFT), D(LCTL), T(X), U(LCTL), END);
+ }
+ break;
+ case MC_PASTE_LINE:
+ if (record->event.pressed) {
+ return MACRO( T(END), T(ENTER), D(LCTL), T(V), U(LCTL), END);
+ }
+ break;
+ case MC_NEW_SEARCH_TAB:
+ if (record->event.pressed) {
+ return MACRO( D(LCTL), T(T), T(K), U(LCTL), END);
+ }
+ break;
+ case SCREEN_TAB_LEFT:
+ if (record->event.pressed) {
+ return MACRO( D(LCTL), T(A), U(LCTL), T(P), END);
+ }
+ break;
+ case SCREEN_TAB_RIGHT:
+ if (record->event.pressed) {
+ return MACRO( D(LCTL), T(A), U(LCTL), T(N), END);
+ }
+ break;
+ case SCREEN_NEW_TAB:
+ if (record->event.pressed) {
+ return MACRO( D(LCTL), T(A), U(LCTL), T(C), END);
+ }
+ break;
+ case SCREEN_COPY_MODE:
+ if (record->event.pressed) {
+ return MACRO( D(LCTL), T(A), U(LCTL), T(ESC), END);
+ }
+ break;
+ case SCREEN_PASTE:
+ if (record->event.pressed) {
+ return MACRO( D(LCTL), T(A), U(LCTL), T(RBRC), END);
+ }
+ break;
+ case SWITCH_NDS:
+ if (record->event.pressed) {
+ return MACRO( D(LSFT), T(F11), U(LSFT), W(500), D(LALT), T(TAB), U(LALT), END);
+ }
+ break;
+ case OPEN_CLOSE_PAREN:
+ if (record->event.pressed) {
+ return MACRO( D(LSFT), T(LPRN), T(RPRN), U(LSFT), T(LEFT), END);
+ }
+ break;
+ case OPEN_CLOSE_BRACKET:
+ if (record->event.pressed) {
+ return MACRO( T(LBRC), T(RBRC), T(LEFT), END);
+ }
+ break;
+ case OPEN_CLOSE_CURLY:
+ if (record->event.pressed) {
+ return MACRO( D(LSFT), T(LCBR), T(RCBR), U(LSFT), T(LEFT), END);
+ }
+ break;
+ case OPEN_CLOSE_SINGLE_QUOTE:
+ if (record->event.pressed) {
+ return MACRO( T(QUOT), T(QUOT), T(LEFT), END);
+ }
+ break;
+ case OPEN_CLOSE_DOUBLE_QUOTE:
+ if (record->event.pressed) {
+ return MACRO( D(LSFT), T(QUOT), T(QUOT), U(LSFT), T(LEFT), END);
+ }
+ break;
+ case SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND:
+ if (record->event.pressed) {
+ return MACRO( T(UP), T(HOME), D(LALT), T(D), U(LALT), END);
+ }
+ break;
+ case SEMICOLON_NEWLINE:
+ if (record->event.pressed) {
+ return MACRO( T(END), T(SCLN), T(ENTER), END);
+ }
+ break;
+ case END_NEWLINE:
+ if (record->event.pressed) {
+ return MACRO( T(END), T(ENTER), END);
+ }
+ break;
+
+
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+ return;
+};
+
+void led_set_user(uint8_t usb_led) {
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ ergodox_right_led_1_on();
+ } else {
+ ergodox_right_led_1_off();
+ }
+}
+
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ case NUMBER:
+ case SYMBOL:
+ case BRACKETS:
+ //case SHELL_LAYER:
+ ergodox_right_led_2_on();
+ break;
+ case KEY_NAV:
+ case KEY_SEL:
+ ergodox_right_led_3_on();
+ break;
+ case SHORTCUTS:
+ ergodox_right_led_2_on();
+ ergodox_right_led_3_on();
+ break;
+ default:
+ // none
+ break;
+ }
+ return;
+};
diff --git a/keyboards/ergodox_ez/keymaps/dvorak_spanish/keymap.c b/keyboards/ergodox/keymaps/dvorak_spanish/keymap.c
index 6eb864b44..6d7adf907 100755
--- a/keyboards/ergodox_ez/keymaps/dvorak_spanish/keymap.c
+++ b/keyboards/ergodox/keymaps/dvorak_spanish/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/dvorak_spanish/readme.md b/keyboards/ergodox/keymaps/dvorak_spanish/readme.md
index e075e3cd7..e075e3cd7 100644
--- a/keyboards/ergodox_ez/keymaps/dvorak_spanish/readme.md
+++ b/keyboards/ergodox/keymaps/dvorak_spanish/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png b/keyboards/ergodox/keymaps/emacs_osx_dk/default_highres.png
index 1d2583740..1d2583740 100644
--- a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png
+++ b/keyboards/ergodox/keymaps/emacs_osx_dk/default_highres.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/keymap.c b/keyboards/ergodox/keymaps/emacs_osx_dk/keymap.c
index 1d8e66a08..e80f08d73 100644
--- a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/keymap.c
+++ b/keyboards/ergodox/keymaps/emacs_osx_dk/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/readme.md b/keyboards/ergodox/keymaps/emacs_osx_dk/readme.md
index 4839988d9..4839988d9 100644
--- a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/readme.md
+++ b/keyboards/ergodox/keymaps/emacs_osx_dk/readme.md
diff --git a/keyboards/ergodox/keymaps/erez_experimental/Makefile b/keyboards/ergodox/keymaps/erez_experimental/Makefile
new file mode 100644
index 000000000..51a0c74c5
--- /dev/null
+++ b/keyboards/ergodox/keymaps/erez_experimental/Makefile
@@ -0,0 +1,11 @@
+# Having a file like this allows you to override Makefile definitions
+# for your own particular keymap
+
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+COMMAND_ENABLE = no # Commands for debug and configuration
+RGBLIGHT_ENABLE ?= yes
+MIDI_ENABLE ?= yes
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/config.h b/keyboards/ergodox/keymaps/erez_experimental/config.h
index e5d7fe188..4da18c65a 100644
--- a/keyboards/ergodox_ez/keymaps/erez_experimental/config.h
+++ b/keyboards/ergodox/keymaps/erez_experimental/config.h
@@ -8,5 +8,6 @@
#undef LEADER_TIMEOUT
#define LEADER_TIMEOUT 300
+
#endif
diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/keymap.c b/keyboards/ergodox/keymaps/erez_experimental/keymap.c
index 04ad2a816..13b8240ce 100644
--- a/keyboards/ergodox_ez/keymaps/erez_experimental/keymap.c
+++ b/keyboards/ergodox/keymaps/erez_experimental/keymap.c
@@ -1,5 +1,5 @@
#include <keymap_extras/keymap_colemak.h>
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
@@ -7,11 +7,17 @@
#define SYMB 1 // symbols
#define MDIA 2 // media keys
+enum custom_keycodes {
+ PLACEHOLDER = SAFE_RANGE, // can always be here
+ RGB_FF00BB // always start with RGB_
+};
+
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
+ * | = | 1 | 2 | 3 | 4 | 5 |Ctrl- | | Ctrl+| 6 | 7 | 8 | 9 | 0 | - |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@@ -33,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, LCTL(KC_MINS),
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_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_LBRC),
@@ -42,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_HOME,
KC_SPC,KC_LEAD,KC_END,
// right hand
- KC_RGHT, KC_6,KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ LCTL(KC_EQL), KC_6,KC_7, KC_8, KC_9, KC_0, KC_MINS,
TG(SYMB), KC_Y,KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H,ALT_T(KC_J),KC_K, KC_L, LT(MDIA,KC_SCLN),GUI_T(KC_QUOT),
MEH_T(KC_RBRC),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSPC,
@@ -65,33 +71,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | |NxtTab|PrvTab| | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
- * | | | | | |
+ * | | | |TOG |
* ,------|------|------| |------+------+------.
- * | | | | | | | |
+ * |VAI |VAD |HUI | |SAI | |MOD |
* | | |------| |------| | |
- * | | | | | | | |
+ * | | |HUD | |SAD | | |
* `--------------------' `--------------------'
*/
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ RGB_FF00BB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5,
KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
KC_TRNS, KC_TRNS,KC_TRNS,LCTL(KC_PGUP), LCTL(KC_PGDN),
KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
+ RGB_HUI,
+ RGB_VAI,RGB_VAD,RGB_HUD,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12,
KC_AMPR, KC_UNDS, KC_MINS, CM_SCLN, KC_PLUS, KC_TRNS,
KC_TRNS, KC_PIPE, KC_AT, KC_EQL, KC_PERC, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
+ RGB_TOG, KC_TRNS,
+ RGB_SAI,
+ RGB_SAD, KC_TRNS, RGB_MOD
),
/* Keymap 2: Media and mouse keys
*
@@ -152,6 +158,24 @@ void matrix_init_user(void) {
};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ // dynamically generate these.
+ case RGB_FF00BB:
+ if (record->event.pressed) {
+ #ifdef RGBLIGHT_ENABLE
+ rgblight_enable();
+ rgblight_mode(1);
+ rgblight_setrgb(0xff,0x00,0xbb);
+ #endif
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
LEADER_EXTERNS();
// Runs constantly in the background, in a loop.
diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/readme.md b/keyboards/ergodox/keymaps/erez_experimental/readme.md
index 66acfa187..f0738d9a7 100644
--- a/keyboards/ergodox_ez/keymaps/erez_experimental/readme.md
+++ b/keyboards/ergodox/keymaps/erez_experimental/readme.md
@@ -4,6 +4,10 @@ This is my personal layout which I use to test out ideas which may or may not ma
Changelog:
+## Nov 1, 2016:
+
+* Adds dedicated text zooming keys in inner corners
+
## May 24, 2016:
* Implements Leader key example
diff --git a/keyboards/ergodox/keymaps/galson/Makefile b/keyboards/ergodox/keymaps/galson/Makefile
new file mode 100644
index 000000000..f008f5079
--- /dev/null
+++ b/keyboards/ergodox/keymaps/galson/Makefile
@@ -0,0 +1,2 @@
+COMMAND_ENABLE = no # Commands for debug and configuration
+
diff --git a/keyboards/ergodox/keymaps/galson/keymap.c b/keyboards/ergodox/keymaps/galson/keymap.c
new file mode 100644
index 000000000..0d3e7560d
--- /dev/null
+++ b/keyboards/ergodox/keymaps/galson/keymap.c
@@ -0,0 +1,183 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | + | 1 | 2 | 3 | 4 | 5 | rclk | | lclk | 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | = | Q | W | E | R |cmd/T |shift | |shift |cmd/Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
+ * | " | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' |
+ * |--------+------+------+------+------+------| ctrl | | ctrl |------+------+------+------+------+--------|
+ * | { | Z | X | C | V | B | [ | | ] | N | M | , | . | / | } |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | _ | ` | $ | Left | Right| | Up | Down | : | * | ! |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | < | | | | & | > |
+ * ,------|------|------| |------+--------+------.
+ * | | | # | | @ | | |
+ * | Space|Backsp|------| |------| Tab |Enter |
+ * | |ace | % | | ESC | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_PLUS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_BTN2,
+ KC_EQL, KC_Q, KC_W, KC_E, KC_R, GUI_T(KC_T), KC_LSPO,
+ KC_DQUO, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LCBR, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_LBRC),
+ KC_UNDS, KC_GRV, KC_DLR, KC_LEFT,KC_RGHT,
+ KC_LABK, KC_PIPE,
+ KC_HASH,
+ KC_SPC, KC_BSPC,KC_PERC,
+ // right hand
+ KC_BTN1, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ KC_RSPC, GUI_T(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_QUOT,
+ CTL_T(KC_RBRC), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RCBR,
+ KC_UP, KC_DOWN,KC_COLN,KC_ASTR, KC_EXLM,
+ KC_AMPR, KC_RABK,
+ KC_AT,
+ KC_ESC, KC_TAB, KC_ENT
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------.
+ * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | . | 0 | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+ KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+ KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
+ KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | |Brwser|
+ * | | |------| |------| |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/keymaps/galson/readme.md b/keyboards/ergodox/keymaps/galson/readme.md
new file mode 100644
index 000000000..ebc916725
--- /dev/null
+++ b/keyboards/ergodox/keymaps/galson/readme.md
@@ -0,0 +1,11 @@
+# Galson keymap
+
+
+Sep 26, 2016.
+
+This is an ergonomic layout for programming for those with typing-related injuries. Key features:
+
+- As many symbol keys as possible are accessible without shifting. These should be accessed by moving the entire hand and pressing with a strong finger.
+- Arrow keys and left and right mouse clicks for mouse-free navigation when combined with head mouse or eyetracker.
+- Modifier keys are dual role and relocated to positions convenient for the index finger.
+- Positions are more convenient when the keyboard is vertically mounted (as it should be!) \ No newline at end of file
diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/keymap.c b/keyboards/ergodox/keymaps/german-kinergo/keymap.c
index b1cecf0dd..971318d87 100644
--- a/keyboards/ergodox_ez/keymaps/german-kinergo/keymap.c
+++ b/keyboards/ergodox/keymaps/german-kinergo/keymap.c
@@ -1,7 +1,7 @@
// German keymap derived from "german", but more closely resembling the German layout of the Kinesis Ergo Elan.
//
// chschmitz, 2016-01-27
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "keymap_german.h"
diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/layout-code.png b/keyboards/ergodox/keymaps/german-kinergo/layout-code.png
index a0ef551e1..a0ef551e1 100644
--- a/keyboards/ergodox_ez/keymaps/german-kinergo/layout-code.png
+++ b/keyboards/ergodox/keymaps/german-kinergo/layout-code.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/layout-media.png b/keyboards/ergodox/keymaps/german-kinergo/layout-media.png
index 56aea1dca..56aea1dca 100644
--- a/keyboards/ergodox_ez/keymaps/german-kinergo/layout-media.png
+++ b/keyboards/ergodox/keymaps/german-kinergo/layout-media.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/layout.png b/keyboards/ergodox/keymaps/german-kinergo/layout.png
index 76a1aa5d7..76a1aa5d7 100644
--- a/keyboards/ergodox_ez/keymaps/german-kinergo/layout.png
+++ b/keyboards/ergodox/keymaps/german-kinergo/layout.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/readme.md b/keyboards/ergodox/keymaps/german-kinergo/readme.md
index 557d85a8a..beb74cf75 100644
--- a/keyboards/ergodox_ez/keymaps/german-kinergo/readme.md
+++ b/keyboards/ergodox/keymaps/german-kinergo/readme.md
@@ -2,7 +2,7 @@
This layout is inspired by the "kinesis-qwerty-mod" from benblazak's
[ergodox-firmware](https://github.com/benblazak/ergodox-firmware), as well as by the "german" layout from the
-[qmk_firmware](https://github.com/jackhumbert/qmk_firmware).
+[qmk_firmware](https://github.com/qmk/qmk_firmware).
The goal was to have a layout that is pretty close to an ordinary German
keyboard, so I don't have to make adjustments on the operating system level
and I keep some of the muscle memory to use a regular keyboard.
diff --git a/keyboards/ergodox_ez/util/compile_keymap.py b/keyboards/ergodox/keymaps/german-manuneo/compile_keymap.py
index 7076a6ecb..7076a6ecb 100644
--- a/keyboards/ergodox_ez/util/compile_keymap.py
+++ b/keyboards/ergodox/keymaps/german-manuneo/compile_keymap.py
diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.c b/keyboards/ergodox/keymaps/german-manuneo/keymap.c
index 5fcc14d51..16e92bc23 100644
--- a/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.c
+++ b/keyboards/ergodox/keymaps/german-manuneo/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "action_layer.h"
#include "keymap.h"
#include "keymap_german.h"
diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.md b/keyboards/ergodox/keymaps/german-manuneo/keymap.md
index 2c9e0a837..837b25446 100644
--- a/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.md
+++ b/keyboards/ergodox/keymaps/german-manuneo/keymap.md
@@ -12,7 +12,7 @@ Tested with python 2.7 and python 3.4
{
"layout": "ergodox_ez",
"keymaps_includes": [
- "ergodox_ez.h",
+ "ergodox.h",
"action_layer.h",
"keymap_common.h",
"keymap_extras/keymap_german.h",
diff --git a/keyboards/ergodox_ez/keymaps/german/keymap.c b/keyboards/ergodox/keymaps/german/keymap.c
index 3eab51f0e..9b2f6ffa2 100644
--- a/keyboards/ergodox_ez/keymaps/german/keymap.c
+++ b/keyboards/ergodox/keymaps/german/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "keymap_german.h"
diff --git a/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-enL.png b/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-enL.png
new file mode 100755
index 000000000..e6aec35bf
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-enL.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-jpL.png b/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-jpL.png
new file mode 100755
index 000000000..69a1f6948
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-jpL.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-numL.png b/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-numL.png
new file mode 100755
index 000000000..8b2cce5e6
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-numL.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/ishigoya-jp/keymap.c b/keyboards/ergodox/keymaps/ishigoya-jp/keymap.c
new file mode 100644
index 000000000..c219ce884
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ishigoya-jp/keymap.c
@@ -0,0 +1,962 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "keymap_jp.h"
+
+static uint16_t start;
+
+#define BASE 0 // EN layer
+#define JP 1 // Japanese
+#define JPXON 2 // JP + Fn
+#define JPKAZARI 3 // JP + KAZARI
+#define JPTOPROW 4 // JP + TOPROW
+#define JPTRKZ 5 // JP + TOPROW + KAZARI
+#define NUM 6 // Numbers
+
+#define CTLSHFT 1
+#define CUTCOPY 2
+
+//kana macro definitions start here
+
+#define JPVU 4
+#define JPNU 6
+#define JPKO 7
+#define JPSA 8
+#define JPKE 9
+#define JPHE 10
+#define JPSHI 11
+#define JPKA 12
+#define JPKI 13
+#define JPSU 14
+#define JPSO 15
+#define JPHI 16
+#define JPCHI 17
+#define JPFU 18
+#define JPSE 19
+#define JPTSU 20
+#define JPKU 21
+#define JPTE 22
+#define JPTA 23
+#define JPTO 24
+#define JPHA 25
+#define JPHO 26
+#define JPXKE 27
+#define JPXU 28
+#define JPXKA 29
+#define JPXA 30
+#define JPXO 31
+#define JPGO 32
+#define JPZA 33
+#define JPGE 34
+#define JPBE 35
+#define JPYU 36
+#define JPJI 37
+#define JPGA 38
+#define JPGI 39
+#define JPZU 40
+#define JPZO 41
+#define JPBI 42
+#define JPDI 43
+#define JPZE 44
+#define JPDU 45
+#define JPGU 46
+#define JPYA 47
+#define JPYO 48
+#define JPDE 49
+#define JPDA 50
+#define JPDO 51
+#define JPBA 52
+#define JPBO 53
+#define JPRI 54
+#define JPRE 55
+#define JPRA 56
+#define JPNA 57
+#define JPNO 58
+#define JPMI 59
+#define JPMU 60
+#define JPME 61
+#define JPNE 62
+#define JPMA 63
+#define JPXTU 64
+#define JPWA 65
+#define JPRU 66
+#define JPWO 67
+#define JPNI 68
+#define JPNN 69
+#define JPMO 70
+#define JPRO 71
+#define JPXE 72
+#define JPXI 73
+#define JPXYU 74
+#define JPXYA 75
+#define JPXYO 76
+#define JPPE 77
+#define JPPU 78
+#define JPPI 79
+#define JPPA 80
+#define JPPO 81
+#define JPBU 82
+
+// kana macro definitions end here
+
+#define SHIFT 86
+#define KAZARI 87
+#define JPFN 88 //shifts to JPXON layer
+#define TOJPLOUT 89
+#define TOENL 90
+#define TOJPL 91
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ *
+ * ,----------------------------------------------------. ,--------------------------------------------------.
+ * | En / 和 | | ^ | % | | |Selall| | Undo | | $ | @ | LT | UP | RT |
+ * |----------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | D | R | W | B | Cut | | PgUP | J | F | U | P | DN | \ |
+ * |----------+------+------+------+------+------| Copy | | |------+------+------+------+------+--------|
+ * | / | A | S | H | T | G |------| |------| Y | N | E | O | I | , |
+ * |----------+------+------+------+------+------|Paste | | PgDN |------+------+------+------+------+--------|
+ * | Ctl+Shft | Z | X | M | C | V | | | | . | L | K | ' | ? | tmux |
+ * `----------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | LCtrl | LGui | Alt| _ | Esc | |MouseL|MouseR| - | ~ | Ctrl |
+ * `------------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * |MidMs | Del | | VolUp| Mute |
+ * ,------|------|------| |------+--------+------.
+ * | | | | | VolDn| | |
+ * | Space| Shift|------| |------| Backsp |Enter |
+ * | | | Num | | Esc | | |
+ * `--------------------' `----------------------'
+ *
+ *
+ * tmux prefix set to C-b
+ *
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ M(TOJPLOUT), KC_NO, KC_EQL, LSFT(KC_5), KC_NO, KC_NO, LCTL(KC_A),
+ KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, M(CUTCOPY),
+ KC_SLSH, KC_A, KC_S, KC_H, KC_T, KC_G,
+ M(CTLSHFT), KC_Z, KC_X, KC_M, KC_C, KC_V, LCTL(KC_V),
+ KC_RCTL, KC_LGUI, KC_LALT,JP_UNDS,KC_LCTL,
+ KC_BTN3, KC_DEL,
+ KC_NO,
+ KC_SPC,KC_LSFT,F(1),
+ // right hand
+ LCTL(KC_Z), KC_NO, LSFT(KC_4), JP_AT, KC_LEFT, KC_UP, KC_RIGHT,
+ KC_PGUP, KC_J, KC_F, KC_U, KC_P, KC_DOWN, LSFT(KC_3),
+ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_COMMA,
+ KC_PGDN, KC_DOT, KC_L, KC_K, LSFT(KC_7), KC_QUES, LCTL(KC_B),
+ KC_BTN1, KC_BTN2,KC_MINS,JP_TILD, KC_RCTL,
+ KC_VOLU, KC_MUTE,
+ KC_VOLD,
+ KC_SPC,KC_BSLS, KC_ENT
+ ),
+/* Keymap 1: Japanese
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | En / 和| | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | |   nu | ko | sa | he | ke | | | | fu | se | tsu | ku | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | to | shi | ka | ki | su |------| |------| a | ha | te | ta | u | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | mu | so | hi | chi | me | | | | | ma | ho | i | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | shift| fn |------| |------| |kazari|
+ * | | | Num | | | | |
+ * `--------------------' `--------------------'
+ *
+ *
+ *
+ */
+[JP] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, M(JPNU), M(JPKO), M(JPSA), M(JPHE), M(JPKE), KC_TRNS,
+ KC_TRNS, M(JPTO), M(JPSHI), M(JPKA), M(JPKI), M(JPSU),
+ KC_TRNS, M(JPMU), M(JPSO), M(JPHI), M(JPCHI), M(JPME), KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_NO,
+ M(SHIFT), M(JPFN), F(1),
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, M(JPFU), M(JPSE), M(JPTSU), M(JPKU), KC_TRNS, KC_TRNS,
+ KC_A, M(JPHA), M(JPTE), M(JPTA), KC_U, KC_TRNS,
+ KC_TRNS, KC_TRNS, M(JPMA), M(JPHO), KC_I, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,M(KAZARI)
+),
+/* Keymap 2: Japanese with Fn
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | |   | xe | | | xke | | | | xya | | xtsu | xo | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | xka | | |------| |------| xa | xyo | | | xu | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | xi | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ *
+ *
+ *
+ */
+[JPXON] = KEYMAP(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, M(JPXE), KC_NO, M(JPXKE), KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, M(JPXKA), KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, 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_TRNS, KC_TRNS,
+ // right hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, M(JPXYA), KC_NO, M(JPXTU), M(JPXO), KC_NO, KC_NO,
+ M(JPXA), M(JPXYO), M(JPXYU), KC_NO, M(JPXU), KC_NO,
+ KC_NO, KC_NO,KC_NO, KC_NO, M(JPXI), KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, KC_NO
+),
+/* Keymap 3: Japanese with kazari
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | |   | go | za | be | ge | | | | bu | ze | du | gu | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | do | ji | ga | gi | zu |------| |------| | ba | de | da | vu | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | zo | bi | di | | | | | | | bo | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ *
+ *
+ *
+ */
+[JPKAZARI] = KEYMAP(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, M(JPGO), M(JPZA), M(JPBE), M(JPGE), KC_NO,
+ KC_NO, M(JPDO), M(JPJI), M(JPGA), M(JPGI), M(JPZU),
+ KC_NO, KC_NO, M(JPZO), M(JPBI), M(JPDI), KC_NO, KC_NO,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ M(SHIFT), KC_NO, KC_TRNS,
+ // right hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, M(JPBU), M(JPZE), M(JPDU), M(JPGU), KC_NO, KC_NO,
+ KC_NO, M(JPBA), M(JPDE), M(JPDA), M(JPVU), KC_NO,
+ KC_NO, KC_NO, KC_NO, M(JPBO), KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, KC_TRNS
+),
+/* Keymap 4: Japanese with Toprow
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | |   | e | - | re | | | | | ya | ne | ru | o | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | ra | ri | na | no | mi |------| |------| wa | yo | yu | ni | nn | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | mo | ro | wo | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ *
+ *
+ *
+ */
+[JPTOPROW] = KEYMAP(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_E, KC_MINS, M(JPRE), KC_NO, KC_NO,
+ KC_NO, M(JPRA), M(JPRI), M(JPNA), M(JPNO), M(JPMI),
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_TRNS, KC_NO, KC_NO,
+ // right hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, M(JPYA), M(JPNE), M(JPRU), KC_O, KC_NO, KC_NO,
+ M(JPWA), M(JPYO), M(JPYU), M(JPNI), M(JPNN), KC_NO,
+ KC_NO, KC_NO, M(JPMO), M(JPRO), M(JPWO), KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, M(KAZARI)
+),
+
+/* Keymap 5: Japanese with Toprow and Kazari
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | |   | | | pe | | | | | pu | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| | pa | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | pi | | | | | | | | po | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ *
+ *
+ *
+ */
+[JPTRKZ] = KEYMAP(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, M(JPPE),KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, M(JPPI), KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_TRNS, KC_NO, KC_NO,
+ // right hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, M(JPPU), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, M(JPPA), KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, M(JPPO), KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, KC_TRNS
+),
+/* Keymap 6: Number Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | " | [ | ] | | | | | % | 7 | 8 | 9 | | F12 |
+ * |--------+------+------+------+------+------| ; | | |------+------+------+------+------+--------|
+ * | | | / | + | { | } |------| |------| ! | 4 | 5 | 6 | 0 | , |
+ * |--------+------+------+------+------+------| : | | & |------+------+------+------+------+--------|
+ * | | | * | - | ( | ) | | | | . | 1 | 2 | 3 | ? | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | # | | < | = | > | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| Back | Ent |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// Numbers
+[NUM] = KEYMAP(
+ // left hand
+ KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO,
+ KC_NO, KC_NO, KC_NO, JP_DQT, KC_RBRACKET, KC_BSPC, KC_SCLN,
+ KC_NO, KC_NO, KC_SLSH, JP_PLUS, LSFT(KC_RBRACKET), JP_RCBR,
+ KC_NO, KC_NO, JP_ASTR, KC_MINS, LSFT(KC_8), LSFT(KC_9), JP_COLN,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_HASH,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, KC_TRNS,
+ // right hand
+ KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ LSFT(KC_JYEN), KC_PERC, KC_7, KC_8, KC_9, KC_NO, KC_F12,
+ KC_EXLM, KC_4, KC_5, KC_6, KC_0, KC_COMM,
+ LSFT(KC_6), KC_DOT, KC_1, KC_2, KC_3, KC_QUES, KC_NO,
+ KC_LT,JP_EQL, KC_GT, KC_NO, KC_NO,
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_SPC, KC_BSLS, KC_DOT
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_MOMENTARY(NUM) // FN1 - Momentary Layer 6 (Numbers)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+
+ // MACRO only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ case CTLSHFT:
+ if (record->event.pressed) {
+ return MACRO( D(LSFT), D(LCTL), END);
+ } else {
+ return MACRO( U(LSFT), U(LCTL), END);
+ }
+ break;
+ case CUTCOPY:
+ if (record->event.pressed) {
+ start = timer_read();
+ } else {
+ if (timer_elapsed(start) > 150) {
+ return MACRO( D(LCTL), T(X), U(LCTL), END);
+ } else {
+ return MACRO( D(LCTL), T(C), U(LCTL), END);
+ }
+ }
+ break;
+
+ // kana macros start here
+
+ case JPVU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(V), T(U), END);
+ }
+ break;
+ case JPNU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(N), T(U), END);
+ }
+ break;
+ case JPKO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(K), T(O), END);
+ }
+ break;
+ case JPSA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(S), T(A), END);
+ }
+ break;
+ case JPKE:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(K), T(E), END);
+ }
+ break;
+ case JPHE:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(H), T(E), END);
+ }
+ break;
+ case JPSHI:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(S), T(I), END);
+ }
+ break;
+ case JPKA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(K), T(A), END);
+ }
+ break;
+ case JPKI:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(K), T(I), END);
+ }
+ break;
+ case JPSU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(S), T(U), END);
+ }
+ break;
+ case JPSO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(S), T(O), END);
+ }
+ break;
+ case JPHI:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(H), T(I), END);
+ }
+ break;
+ case JPCHI:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(T), T(I), END);
+ }
+ break;
+ case JPFU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(F), T(U), END);
+ }
+ break;
+ case JPSE:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(S), T(E), END);
+ }
+ break;
+ case JPTSU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(T), T(U), END);
+ }
+ break;
+ case JPKU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(K), T(U), END);
+ }
+ break;
+ case JPTE:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(T), T(E), END);
+ }
+ break;
+ case JPTA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(T), T(A), END);
+ }
+ break;
+ case JPTO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(T), T(O), END);
+ }
+ break;
+ case JPHA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(H), T(A), END);
+ }
+ break;
+ case JPHO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(H), T(O), END);
+ }
+ break;
+ case JPXKE:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(X), T(K), T(E), END);
+ }
+ break;
+ case JPXU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(X), T(U), END);
+ }
+ break;
+ case JPXKA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(X), T(K), T(A), END);
+ }
+ break;
+ case JPXA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(X), T(A), END);
+ }
+ break;
+ case JPXO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(X), T(O), END);
+ }
+ break;
+ case JPGO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(G), T(O), END);
+ }
+ break;
+ case JPZA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(Z), T(A), END);
+ }
+ break;
+ case JPGE:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(G), T(E), END);
+ }
+ break;
+ case JPBE:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(B), T(E), END);
+ }
+ break;
+ case JPYU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(Y), T(U), END);
+ }
+ break;
+ case JPJI:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(J), T(I), END);
+ }
+ break;
+ case JPGA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(G), T(A), END);
+ }
+ break;
+ case JPGI:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(G), T(I), END);
+ }
+ break;
+ case JPZU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(Z), T(U), END);
+ }
+ break;
+ case JPZO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(Z), T(O), END);
+ }
+ break;
+ case JPBI:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(B), T(I), END);
+ }
+ break;
+ case JPDI:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(D), T(I), END);
+ }
+ break;
+ case JPZE:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(Z), T(E), END);
+ }
+ break;
+ case JPDU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(D), T(U), END);
+ }
+ break;
+ case JPGU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(G), T(U), END);
+ }
+ break;
+ case JPYA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(Y), T(A), END);
+ }
+ break;
+ case JPYO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(Y), T(O), END);
+ }
+ break;
+ case JPDE:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(D), T(E), END);
+ }
+ break;
+ case JPDA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(D), T(A), END);
+ }
+ break;
+ case JPDO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(D), T(O), END);
+ }
+ break;
+ case JPBA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(B), T(A), END);
+ }
+ break;
+ case JPBO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(B), T(O), END);
+ }
+ break;
+ case JPRI:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(R), T(I), END);
+ }
+ break;
+ case JPRE:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(R), T(E), END);
+ }
+ break;
+ case JPRA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(R), T(A), END);
+ }
+ break;
+ case JPNA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(N), T(A), END);
+ }
+ break;
+ case JPNO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(N), T(O), END);
+ }
+ break;
+ case JPMI:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(M), T(I), END);
+ }
+ break;
+ case JPMU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(M), T(U), END);
+ }
+ break;
+ case JPME:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(M), T(E), END);
+ }
+ break;
+ case JPNE:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(N), T(E), END);
+ }
+ break;
+ case JPMA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(M), T(A), END);
+ }
+ break;
+ case JPXTU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(X), T(T), T(U), END);
+ }
+ break;
+ case JPWA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(W), T(A), END);
+ }
+ break;
+ case JPRU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(R), T(U), END);
+ }
+ break;
+ case JPWO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(W), T(O), END);
+ }
+ break;
+ case JPNI:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(N), T(I), END);
+ }
+ break;
+ case JPNN:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(N), T(N), END);
+ }
+ break;
+ case JPMO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(M), T(O), END);
+ }
+ break;
+ case JPRO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(R), T(O), END);
+ }
+ break;
+ case JPXE:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(X), T(E), END);
+ }
+ break;
+ case JPXI:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(X), T(I), END);
+ }
+ break;
+ case JPXYU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(X), T(Y), T(U), END);
+ }
+ break;
+ case JPXYA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(X), T(Y), T(A), END);
+ }
+ break;
+ case JPXYO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(X), T(Y), T(O), END);
+ }
+ break;
+ case JPPE:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(P), T(E), END);
+ }
+ break;
+ case JPPU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(P), T(U), END);
+ }
+ break;
+ case JPPI:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(P), T(I), END);
+ }
+ break;
+ case JPPA:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(P), T(A), END);
+ }
+ break;
+ case JPPO:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(P), T(O), END);
+ }
+ break;
+ case JPBU:
+ if (record->event.pressed) {
+ return MACRO( I(1), T(B), T(U), END);
+ }
+ break;
+
+ // kana macros end here
+
+ break;
+ case SHIFT:
+ if (record->event.pressed) {
+ start = timer_read();
+ if (layer_state == (1<<JPKAZARI)) {
+ layer_state = (1<<JPTOPROW)| (1<<JPTRKZ);
+ } else {
+ layer_state = (1<<JPTOPROW);
+ }
+ } else {
+ layer_state = (0<<JPTOPROW);
+ clear_keyboard_but_mods();
+ if (timer_elapsed(start) < 100) {
+ return MACRO( I(1), T(SPC), END);
+ }
+ }
+ break;
+ case KAZARI:
+ if (record->event.pressed) {
+ start = timer_read();
+ if (layer_state == (1<<JPTOPROW)) {
+ layer_state = (1<<JPKAZARI)| (1<<JPTRKZ);
+ } else {
+ layer_state = (1<<JPKAZARI);
+ }
+ break;
+ } else {
+ layer_state = (0<<JPKAZARI);
+ layer_state = (0<<JPTRKZ);
+ if (timer_elapsed(start) < 100) {
+ return MACRO( T(ENTER), END);
+ }
+ }
+ break;
+ case JPFN:
+ if (record->event.pressed) {
+ start = timer_read();
+ layer_state = (1<<JPXON);
+ } else {
+ layer_state = (0<<JPXON);
+ if (timer_elapsed(start) < 100) {
+ return MACRO( T(F7), END);
+ }
+ }
+ break;
+ case TOJPLOUT:
+ if (record->event.pressed) {
+ if (default_layer_state == (1<<JP)) {
+ default_layer_state = (0<<JP);
+ } else {
+ default_layer_state = (1<<JP);
+ }
+ return MACRO( T(ZKHK), END);
+ }
+ break;
+/*
+ // TOJPL and TOENL switch keyboard language.
+ // The Ctrl+[] commands here load the appropriate ibus-anthy input engine via a WM shortcut
+ // The first key pressed in the new engine is missed, thus the space key
+ // TOJPLOUT works in the same way but is used for switching engines on external systems.
+ case TOJPL:
+ if (record->event.pressed) {
+ default_layer_state = (1<<JP);
+ return MACRO( D(LCTL), T(END), U(LCTL), END);
+ //return MACRO( D(LCTL), T(END), U(LCTL), W(250), W(250), W(250), T(SPACE), END);
+ }
+ break;
+ case TOENL:
+ if (record->event.pressed) {
+ default_layer_state = (1<<BASE);
+ return MACRO( D(LCTL), T(HOME), U(LCTL), END);
+ //return MACRO( D(LCTL), T(HOME), U(LCTL), W(250), W(250), W(250), T(SPACE), END);
+ }
+ break;
+*/
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+ uint8_t deflayer = biton32(default_layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+
+
+ switch (layer) {
+ case 0:
+ //none
+ break;
+// case 1:
+// ergodox_right_led_2_on();
+// break;
+ case 6:
+ ergodox_right_led_3_on();
+ break;
+ }
+ switch (deflayer) {
+ case 0:
+ ergodox_right_led_1_off();
+ break;
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ }
+};
diff --git a/keyboards/ergodox/keymaps/ishigoya-jp/readme.md b/keyboards/ergodox/keymaps/ishigoya-jp/readme.md
new file mode 100644
index 000000000..9ee557335
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ishigoya-jp/readme.md
@@ -0,0 +1,54 @@
+This is a dual English-Japanese keymap that utilises a thumb-shift system for Japanese input. You can read more about this layout on my blog [here](https://ishigoya.com).
+
+### Some Editing Necessary
+The system I created this on is a Chromebook, and uses a Japanese keymap, so some of the key mappings may not be the same as those on your system. In particular, the Escape key on layer 0 is mapped to KC_LCTL.
+
+### Layouts
+------
+#### English layer - layer 0
+The English layout is a modified Workman layout, and is pictured below:
+
+![English layout](img/keyboard-layout-enL.png)
+
+Some of the punctuation keys have been moved to a separate number/symbol layer.
+
+#### Number / Symbol layer - layer 6
+
+The Number / Symbol layer is reachable through a ACTION_LAYER_MOMENTARY function. The blue LED is illuminated when this layer is active. It is accessible from the English or Japanese layers.
+
+![Number layout](img/keyboard-layout-numL.png)
+
+#### Japanese layers - layers 1-5
+
+There are 5 layers involved in Japanese input. The TOJPLOUT macro is mapped to the En / 和 button, and switches default layer between layer 0 (English) and 1 (main Japanese layer). When layer 1 is the default layer, the red LED is on. It also outputs the ZKHK button to change the input method language.
+
+On keypress, strings of romaji characters are output by the keyboard using macros, and these simulate the input of individual keys on a latin keyboard.
+
+![Japanese layout](img/keyboard-layout-jpL.png)
+
+Layer 1 is the JP layer. Keys on this layer correspond to singleton keys, or keys on the bottom row where a key is shared. For example, pressing the "ãµ ã‚„" key outputs `ãµ` (or "fu").
+
+Layer 2 is the JPXON layer, and is active while holding the Fn key. This prints keys that are prefaced by "x" when writing in romaji. For example, pressing the "㵠や" key while holding the Fn key outputs `ゃ` (or "xya").
+
+Layer 3 is the JPKAZARI layer, and is active while holding the 飾り key. This provides letters with dakuten. For example, pressing the "ãµ ã‚„" key while holding the 飾り key outputs `ã¶` (or "bu").
+
+Layer 4 is the JPTOPROW layer, and is active while holding the シフト key. Keys on this line correspond to top row keys on shared keys in the image. For example, pressing the "㵠や" key while holding the シフト key outputs `や` (or "ya").
+
+Layer 5 is the JPTRKZ layer, and is active while holding both the シフト key and the 飾り key. This layer contains handakuten keys. For example, pressing the "ãµ ã‚„" while holding both the シフト key and the 飾り key outputs `ã·` (or "pu").
+
+I've also separated out the #define sections and the macros required for kana for easy copying, in case anyone else should wish to make a kana-based layout.
+
+When tapped, the シフト key acts as a space key, and the 飾り key acts as a return key. This allows them to function as å¤‰æ› and 無変æ›, respectively, in many IMEs.
+
+Furthermore the Fn key, when tapped, acts as an F7 key, providing easy switching to katakana in many IMEs.
+
+### Other features
+The cut/copy button gives copy functionality on a short press, and cut functionality on a long press.
+
+The tmux prefix button outputs Control-B.
+
+The Control & Shift key acts as holding the control and shift keys at the same time.
+
+SelAll outputs Control-A.
+
+Undo outputs Control-Z.
diff --git a/keyboards/ergodox_ez/keymaps/j3rn/keymap.c b/keyboards/ergodox/keymaps/j3rn/keymap.c
index 6e271321d..2069f26ae 100644
--- a/keyboards/ergodox_ez/keymaps/j3rn/keymap.c
+++ b/keyboards/ergodox/keymaps/j3rn/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
@@ -14,18 +14,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Tab | Q | W | E | R | T | - | | = | Y | U | I | O | P | \ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * |Ctrl/Esc|A / L2| S | D | F | G |------| |------| H | J | K | L | ; | ' |
+ * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
+ * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | ~L1 | ~L2 |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
+ * | ~L1 | Alt |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | App | Home | | PgUp |Ctrl/Esc|
* ,------|------|------| |------+--------+------.
* | | | End | | PgDn | | |
* |Space | LGui |------| |------| Tab |Enter |
- * | | |Shift | | Alt | | |
+ * | | | ~L2 | | ~L1 | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
@@ -34,36 +34,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// left hand
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS,
- CTL_T(KC_ESC), LT(MDIA, 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),
- KC_FN1, KC_FN2, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
+ CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
+ MO(SYMB), KC_LALT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
ALT_T(KC_APP), KC_HOME,
KC_END,
- KC_SPC, KC_LGUI, KC_LSHIFT,
+ KC_SPC,KC_LGUI,MO(MDIA),
// right hand
KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- 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,
+ MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
+ KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, MO(SYMB),
- KC_PGUP, CTL_T(KC_ESC),
+ KC_PGUP, CTL_T(KC_ESC),
KC_PGDN,
- KC_LALT, KC_TAB, KC_ENT
+ MO(SYMB),KC_TAB, KC_ENT
),
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
+ * | | | | | | | 0 | 0 | . | = | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
@@ -76,20 +76,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS,
KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
+ KC_0, KC_0, KC_DOT, KC_EQL, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
@@ -97,9 +98,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 2: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | Lclk | Rclk | | |
+ * | | | | | | | | | | | | Lclk | Rclk | | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | Play |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@@ -117,7 +118,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
// MEDIA AND MOUSE
[MDIA] = KEYMAP(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -126,8 +127,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_F12,
KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, 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,
diff --git a/keyboards/ergodox_ez/keymaps/j3rn/readme.md b/keyboards/ergodox/keymaps/j3rn/readme.md
index fc4b64042..178aba773 100644
--- a/keyboards/ergodox_ez/keymaps/j3rn/readme.md
+++ b/keyboards/ergodox/keymaps/j3rn/readme.md
@@ -1,4 +1,4 @@
-# J3RN's Mac-centric ErgoDox EZ keymap
+# J3RN's Mac-Centric ErgoDox EZ keymap
## Motivation
@@ -14,6 +14,7 @@ This layout more closely resembles that of the Mac keyboard, and has some other
- **The key to the right of "0" is Backspace instead of "-"** (misleadingly labeled "delete" on the Mac's keyboard). There was no room to fit in "-" and "=" between "0" and Backspace, unfortunately.
- **The key to the left of "Q" is Tab instead of Delete.**
- **The rightmost big key on the left thumb is CMD (LGui) instead of Backspace.**
+- **The key to the left of Alt-Shift is an Alt key**. This is close to it's position on the Mac keyboard, though slightly further left.
### Other changes
@@ -23,7 +24,9 @@ This layout more closely resembles that of the Mac keyboard, and has some other
- **The Toggle L1 keys have been replaced by the otherwise displaced "-" and "=".** They are laid out, left-to-right, in the same order as on the Mac keyboard. Honestly, they are not terribly conveniently placed, and their placement might change in a later version. I found that I did not toggle L1 frequently at all, and found using the momentary keys to access L1 to fit my workflow better.
- **The "~"/L1 key in the bottom-left is now just momentary L1.** The "~" key was moved to the top-left as mentioned before, and I like to keep my multi-use keys to a minimum due to the latency for them to switch from "press" to "hold."
- **The Home and End buttons have been shifted up on the left thumb, and Shift inserted below them.** This makes doing Shift-5 and other such combinations less painful.
-- **The Page Up and Page Down buttons have been shifted up on the right thumb, and Alt was moved from above them to below them.** I use Alt more than Page Up or Page Down (mostly in terminal applications), and thought that it deserved a more accessible location.
-
+- **The Page Up and Page Down buttons have been shifted up on the right thumb.** I don't use either of these keys often, and wanted to free up some real estate.
+- **The bottommost-inner keys on the left and right thumb are momentary L2 and momentary L1, respectively**. I have found that both modes are useful, and this seemed like a reasonably accessible place to put these.
+- **Traditional numpad layout.** The base of most numpads is a double-wide "0" key to the left of a "." key. This is reflected in my layout by having two "0" keys to the left of a "." key.
+- **The function keys (F1-F12) have been moved to L2.** They were in the way in L1.
**I'm always open to feedback and/or suggestions!**
diff --git a/keyboards/ergodox/keymaps/jack/Makefile b/keyboards/ergodox/keymaps/jack/Makefile
new file mode 100644
index 000000000..3ca69bb92
--- /dev/null
+++ b/keyboards/ergodox/keymaps/jack/Makefile
@@ -0,0 +1,6 @@
+RGBLIGHT_ENABLE ?= yes
+MIDI_ENABLE ?= yes
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/ergodox/keymaps/jack/config.h b/keyboards/ergodox/keymaps/jack/config.h
new file mode 100644
index 000000000..5c1165226
--- /dev/null
+++ b/keyboards/ergodox/keymaps/jack/config.h
@@ -0,0 +1,17 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D7
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 15 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 12
+#define RGBLIGHT_SAT_STEP 255
+#define RGBLIGHT_VAL_STEP 12
+
+#define RGB_MIDI
+#define RGBW_BB_TWI
+
+#endif \ No newline at end of file
diff --git a/keyboards/ergodox_ez/keymaps/jack/keymap.c b/keyboards/ergodox/keymaps/jack/keymap.c
index 80bf9d535..9cb80c59d 100644
--- a/keyboards/ergodox_ez/keymaps/jack/keymap.c
+++ b/keyboards/ergodox/keymaps/jack/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
@@ -19,14 +19,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_HOME,
KC_SPC,KC_SPC,KC_END,
// right hand
- KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO,
- KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_NO, M(1), KC_7, KC_8, KC_9, KC_0, KC_NO,
+ KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_P, KC_BSPC,
+ RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_SCLN, KC_QUOT,
KC_NO, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_ENT,
MO(1), KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,
- KC_NO, KC_NO,
- KC_PGUP,
- KC_PGDN, KC_SPC,KC_SPC
+ RGB_TOG, RGB_HUI,
+ RGB_MOD,
+ M(2), KC_SPC,KC_SPC
),
[SYMB] = KEYMAP(
// left hand
@@ -84,6 +84,16 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
unregister_code(KC_RSFT);
}
break;
+ case 1:
+ if (record->event.pressed) { // For resetting EEPROM
+ eeconfig_init();
+ }
+ break;
+ case 2:
+ if (record->event.pressed) { // For resetting EEPROM
+ api_send_unicode(0x0CA0);
+ }
+ break;
}
return MACRO_NONE;
};
diff --git a/keyboards/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png b/keyboards/ergodox/keymaps/jacobono/img/colemak-default-layer.png
index 06f63c496..06f63c496 100644
--- a/keyboards/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png
+++ b/keyboards/ergodox/keymaps/jacobono/img/colemak-default-layer.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png b/keyboards/ergodox/keymaps/jacobono/img/number-dpad-layer.png
index 4dd718278..4dd718278 100644
--- a/keyboards/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png
+++ b/keyboards/ergodox/keymaps/jacobono/img/number-dpad-layer.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/jacobono/img/symbol-layer.png b/keyboards/ergodox/keymaps/jacobono/img/symbol-layer.png
index ee224cf0c..ee224cf0c 100644
--- a/keyboards/ergodox_ez/keymaps/jacobono/img/symbol-layer.png
+++ b/keyboards/ergodox/keymaps/jacobono/img/symbol-layer.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/jacobono/keymap.c b/keyboards/ergodox/keymaps/jacobono/keymap.c
index 6b19800af..dc7382bfe 100644
--- a/keyboards/ergodox_ez/keymaps/jacobono/keymap.c
+++ b/keyboards/ergodox/keymaps/jacobono/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/jacobono/readme.md b/keyboards/ergodox/keymaps/jacobono/readme.md
index 48de0509f..48de0509f 100644
--- a/keyboards/ergodox_ez/keymaps/jacobono/readme.md
+++ b/keyboards/ergodox/keymaps/jacobono/readme.md
diff --git a/keyboards/ergodox/keymaps/jafo/jafo-Notes b/keyboards/ergodox/keymaps/jafo/jafo-Notes
new file mode 100644
index 000000000..9376125e9
--- /dev/null
+++ b/keyboards/ergodox/keymaps/jafo/jafo-Notes
@@ -0,0 +1,10 @@
+These are notes on how to build and deploy the firmware to Ez, but they are
+from before the qmk restructuring.
+
+cd qmk_firmware/keyboard/ergodox_ez
+make KEYMAP=jafo
+cp ergodox_ez.hex keymaps/jafo/
+/tmp/teensy.64bit
+Open hex keymap file
+Program
+Upload
diff --git a/keyboards/ergodox/keymaps/jafo/jafo-layout.pdf b/keyboards/ergodox/keymaps/jafo/jafo-layout.pdf
new file mode 100644
index 000000000..189b49b12
--- /dev/null
+++ b/keyboards/ergodox/keymaps/jafo/jafo-layout.pdf
Binary files differ
diff --git a/keyboards/ergodox/keymaps/jafo/jafo_highres.png b/keyboards/ergodox/keymaps/jafo/jafo_highres.png
new file mode 100644
index 000000000..e3d7cef85
--- /dev/null
+++ b/keyboards/ergodox/keymaps/jafo/jafo_highres.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/jafo/keymap.c b/keyboards/ergodox/keymaps/jafo/keymap.c
new file mode 100644
index 000000000..4f1428f2b
--- /dev/null
+++ b/keyboards/ergodox/keymaps/jafo/keymap.c
@@ -0,0 +1,183 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | Grv | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | = | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Esc/Cmd| A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
+ * |--------+------+------+------+------+------| L2 | | L2 |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Grv/L1| '" | Del | Left | Right| | Up | Down | [ | ] | ~L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * |Ctrl/Esc| Alt| | Alt |Ctrl/Esc|
+ * ,------|------|------| |------+--------+------.
+ * | | | Home | | PgUp | | |
+ * | Space|Backsp|------| |------| Tab |Enter |
+ * | |ace | End | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
+ KC_EQL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
+ GUI_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(MDIA),
+ LT(SYMB,KC_GRV),KC_QUOT, KC_DELT, KC_LEFT,KC_RGHT,
+ CTL_T(KC_ESC), KC_LALT,
+ KC_HOME,
+ KC_SPC,KC_BSPC,KC_END,
+ // right hand
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ TG(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),GUI_T(KC_QUOT),
+ TG(MDIA), KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
+ KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1,
+ KC_LALT, CTL_T(KC_ESC),
+ KC_PGUP,
+ KC_PGDN,KC_TAB, KC_ENT
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | . | 0 | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+ KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+ KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
+ KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| LEFT | DOWN | UP | RIGHT| | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | Lclk | Mclk | Rclk | |VolUp |VolDn | Mute | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | |Brwser|
+ * | | |------| |------| |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN3, KC_BTN2,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/keymaps/jafo/readme.md b/keyboards/ergodox/keymaps/jafo/readme.md
new file mode 100644
index 000000000..c870dfd05
--- /dev/null
+++ b/keyboards/ergodox/keymaps/jafo/readme.md
@@ -0,0 +1,20 @@
+# ErgoDox EZ "jafo" Configuration
+
+This is a layout based on the ErgoDox Ez default layout, but with some
+customizations I made for my use-case. I use Linux, vi and the i3 window
+manager, so I made these changes:
+
+- Arrow keys laid out in vi positions in media layer.
+
+- Esc (tap) and Win (held) to the left of A. i3 uses Win key for navigation
+ and having that be symmetric on the left and right makes it easier.
+
+- Grave accent below equals, I was having a hard time using ~
+
+- Layer 2 switch below the L1 switch, so I can go into a mode where I get
+ arrow keys under my vi motion fingers.
+
+- Making the Ctrl (held) and Esc (tap) on my thumbs symmetric. Not sure I
+ need that with the Esc left of A and Ctrl on the Z and / keys when held...
+
+![Jafo](jafo_highres.png)
diff --git a/keyboards/ergodox_ez/keymaps/jgarr/keymap.c b/keyboards/ergodox/keymaps/jgarr/keymap.c
index a3ad2040f..42d58421d 100644
--- a/keyboards/ergodox_ez/keymaps/jgarr/keymap.c
+++ b/keyboards/ergodox/keymaps/jgarr/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/josh/keymap.c b/keyboards/ergodox/keymaps/josh/keymap.c
index 35becaff8..da887fc64 100644
--- a/keyboards/ergodox_ez/keymaps/josh/keymap.c
+++ b/keyboards/ergodox/keymaps/josh/keymap.c
@@ -1,6 +1,7 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
+#include "version.h"
#define BASE 0 // default layer
#define SYMB 1 // symbols
diff --git a/keyboards/ergodox_ez/keymaps/josh/readme.md b/keyboards/ergodox/keymaps/josh/readme.md
index cee19d47e..cee19d47e 100644
--- a/keyboards/ergodox_ez/keymaps/josh/readme.md
+++ b/keyboards/ergodox/keymaps/josh/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/kastyle/keymap.c b/keyboards/ergodox/keymaps/kastyle/keymap.c
index 3982e0a19..467996686 100644
--- a/keyboards/ergodox_ez/keymaps/kastyle/keymap.c
+++ b/keyboards/ergodox/keymaps/kastyle/keymap.c
@@ -1,4 +1,7 @@
-#include "ergodox_ez.h"
+/* Setup to approximate a Kinesis Advantage with an eye to use in a
+ * Mac/OSX environment
+ * This version adds a hand swap feature to flip the keyboard */
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
@@ -18,10 +21,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
* | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
+ * |Grv/L1| \ |AltShf| Left | Right| | Up | Down | [ | ] |Grv/L1|
* `----------------------------------' `----------------------------------'
* ,---------------. ,---------------.
- * |Ctrl/Esc| Alt | | Alt |Ctrl/Esc|
+ * | LGUI |Al/Esc| |Al/Esc| RGUI |
* ,------|--------|------| |------+--------+------.
* | | | Home | | PgUp | | |
* |Backsp| Del |------| |------| Enter | Space|
@@ -31,33 +34,34 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LGUI,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
- KC_LCTL, 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,
- CTL_T(KC_ESC), ALT_T(KC_APP),
- KC_HOME,
- KC_BSPC,KC_DEL,KC_END,
- // right hand
- KC_APP, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOT,
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1,
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_ENT, KC_SPC
- ),
+ // left hand
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LGUI,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
+ KC_LCTL, 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),
+ KC_FN1, KC_BSLS, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
+ KC_LGUI, ALT_T(KC_ESC),
+ KC_HOME,
+ KC_BSPC, KC_DEL, KC_END,
+ // right hand
+ KC_APP, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), KC_QUOT,
+ 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,
+ ALT_T(KC_ESC), KC_RGUI,
+ KC_PGUP,
+ KC_PGDN, KC_ENT, KC_SPC
+),
+
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * | PrScr | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * | ScrLk | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * | Pause | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
@@ -74,14 +78,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_PSCR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_SLCK, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
+ KC_PAUS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV,
+ KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
@@ -92,6 +96,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
+
/* Keymap 2: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
@@ -135,10 +140,6 @@ KEYMAP(
),
};
-const uint16_t PROGMEM fn_actions[] = {
- [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
-};
-
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
@@ -154,6 +155,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
return MACRO_NONE;
};
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_SWAP_HANDS_TAP_KEY(KC_GRV) // FN1 - Tap = Grave/Tilde - Hold Momentary swap hands
+};
+
// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
diff --git a/keyboards/ergodox/keymaps/kastyle/readme.md b/keyboards/ergodox/keymaps/kastyle/readme.md
new file mode 100644
index 000000000..944286a81
--- /dev/null
+++ b/keyboards/ergodox/keymaps/kastyle/readme.md
@@ -0,0 +1,14 @@
+The kastyle keymap was originally intended to remap the ErgoDox EZ to more
+closely approximate the layout of a Kinesis Advantage. Notable changes
+over the stock ErgoDox layout include:
+
+ * Re-arragnement of tab, enter, space, and delete to match the Kinesis
+ * Addition of print screen, pause, etc. keys following the kines-ish keymap
+ on L1
+ * GUI keys have replaced Ctrl on the thumb keys (for Mac use), and Alt keys
+ are mapped to allow Esc on tap (good for Vi users)
+ * Most notably, the addition of a momentary one-handed mode for quick and
+ easy access to keys on the other half of the keyboard, e.g. while using a
+ mouse in one hand, one may add text to a dialogue box with the other without
+ having to reach across the keyboard or remove one's hand from the mouse.
+
diff --git a/keyboards/ergodox_ez/keymaps/kines-ish/keymap.c b/keyboards/ergodox/keymaps/kines-ish/keymap.c
index 5063c99f2..83f5b0e2b 100644
--- a/keyboards/ergodox_ez/keymaps/kines-ish/keymap.c
+++ b/keyboards/ergodox/keymaps/kines-ish/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/kines-ish/readme.md b/keyboards/ergodox/keymaps/kines-ish/readme.md
index 5d39a0590..5d39a0590 100644
--- a/keyboards/ergodox_ez/keymaps/kines-ish/readme.md
+++ b/keyboards/ergodox/keymaps/kines-ish/readme.md
diff --git a/keyboards/ergodox/keymaps/kristian/keymap.c b/keyboards/ergodox/keymaps/kristian/keymap.c
new file mode 100644
index 000000000..e7e424325
--- /dev/null
+++ b/keyboards/ergodox/keymaps/kristian/keymap.c
@@ -0,0 +1,79 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+#include "keymap_fr_ch.h"
+#include "keymap_french.h"
+#include "keymap_german.h"
+#include "keymap_german_ch.h"
+#include "keymap_nordic.h"
+#include "keymap_norwegian.h"
+#include "keymap_spanish.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+
+[0] = KEYMAP(NO_LESS,KC_1,KC_2,KC_3,KC_4,KC_5,KC_BSPACE,KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,TG(1),KC_BSPACE,KC_A,KC_S,KC_D,KC_F,KC_G,SFT_T(NO_APOS),CTL_T(KC_Z),KC_X,KC_C,KC_V,KC_B,SFT_T(KC_EQUAL),MO(1),CTL_T(KC_GRAVE),KC_LGUI,KC_LEFT,KC_RIGHT,KC_ESCAPE,KC_CAPSLOCK,KC_HOME,KC_SPACE,KC_LGUI,KC_LALT,KC_DELETE,KC_6,KC_7,KC_8,KC_9,KC_0,NO_PLUS,TG(1),KC_Y,KC_U,KC_I,KC_O,KC_P,NO_AM,KC_H,KC_J,KC_K,KC_L,LT(2,NO_OSLH),NO_AE,SFT_T(KC_RBRC),KC_N,KC_M,KC_COMMA,KC_DOT,CTL_T(KC_SLASH),SFT_T(NO_APOS),KC_DOWN,KC_UP,NO_LPRN,NO_RPRN,MO(1),NO_QUOT,CTL_T(KC_ESCAPE),NO_APOS,KC_LALT,KC_LGUI,KC_ENTER),
+
+[1] = KEYMAP(M(0),KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_BSPACE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_BSPACE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LSHIFT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LCTL,KC_LGUI,KC_LEFT,KC_RIGHT,KC_ESCAPE,KC_TRANSPARENT,KC_HOME,KC_SPACE,KC_LGUI,KC_LALT,KC_DELETE,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_TRANSPARENT,KC_7,KC_8,KC_9,KC_TRANSPARENT,KC_TRANSPARENT,KC_F12,KC_4,KC_5,KC_6,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_0,KC_1,KC_2,KC_3,NO_LBRC,NO_RBRC,KC_LSHIFT,KC_COMMA,KC_DOT,LSFT(NO_LBRC),LSFT(NO_RBRC),KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LALT,KC_LGUI,KC_ENTER),
+
+[2] = KEYMAP(KC_ESCAPE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_UP,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_LEFT,KC_MS_DOWN,KC_MS_RIGHT,KC_TRANSPARENT,KC_LSHIFT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LCTL,KC_LALT,KC_LGUI,KC_MS_BTN1,KC_MS_BTN2,KC_ESCAPE,KC_TRANSPARENT,KC_TRANSPARENT,KC_SPACE,KC_LGUI,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MEDIA_PREV_TRACK,KC_MEDIA_PLAY_PAUSE,KC_MEDIA_NEXT_TRACK,KC_TRANSPARENT,KC_TRANSPARENT,KC_AUDIO_VOL_UP,KC_AUDIO_VOL_DOWN,KC_AUDIO_MUTE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_ESCAPE,KC_MS_WH_UP,KC_MS_WH_DOWN,KC_MS_ACCEL0,KC_MS_ACCEL1),
+
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(1)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ case 3:
+ ergodox_right_led_3_on();
+ break;
+ case 4:
+ ergodox_right_led_1_on();
+ ergodox_right_led_2_on();
+ break;
+ case 5:
+ ergodox_right_led_1_on();
+ ergodox_right_led_3_on();
+ break;
+ case 6:
+ ergodox_right_led_2_on();
+ ergodox_right_led_3_on();
+ break;
+ case 7:
+ ergodox_right_led_1_on();
+ ergodox_right_led_2_on();
+ ergodox_right_led_3_on();
+ break;
+ default:
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/keymaps/maz/keymap.c b/keyboards/ergodox/keymaps/maz/keymap.c
new file mode 100644
index 000000000..6378f874b
--- /dev/null
+++ b/keyboards/ergodox/keymaps/maz/keymap.c
@@ -0,0 +1,229 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define ARRW 2 // arrow keys
+#define MDIA 3 // media keys, including mouse
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | L1 | | CAPS | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
+ * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | Grv | |*SYMB*|*ARRW*| |*MDIA*|*SYMB*| [ | ] | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+--------+------.
+ * | | | | | | | |
+ * | Space| Bksp |------| |------| Tab |Enter |
+ * | ctrl | gui | Alt | | Alt | gui | ctrl |
+ * `--------------------' `----------------------'
+ */
+ // TODO: maybe look into changing the delay or whatever for the holding macros... not sure which way you would go with this. if the macro automatically kicks in if you hold it and press another button (no matter how long you held it for), then it wouldn't hurt to have a longer period i think... although if you hold a button and then decide not to, then you;ll register a space/bksp/etc. on accident. on the other hand, if it's too short of a delay, then you might be able to register spc/bksp/etc quickly enough, although i don't see this as big of an issue
+ // not sure if gui is meta key or super... it says meta on the basic keycodes page, and i think that's consitent with other shit, but you should really figure out how to program the keyboard to have meta and super separately instead of hacking your init.el to recognize alt as meta... because shit will get fucked up beteween awesome and emacs and other shit i'm guessing
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
+ KC_TRNS, KC_GRV, KC_TRNS,MO(SYMB),MO(ARRW),
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ CTL_T(KC_SPC),GUI_T(KC_BSPC),KC_LALT,
+ // right hand
+ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ KC_CAPSLOCK, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ MO(MDIA), MO(SYMB), KC_LBRC,KC_RBRC, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_RALT,GUI_T(KC_TAB), CTL_T(KC_ENT)
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | . |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | 0 | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+ KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+ KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_DOT,
+ KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_TRNS,KC_TRNS, KC_0, KC_EQL, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Arrow keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | |PGDOWN| PGUP | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| LEFT | DOWN | UP |RIGHT | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | HOME | END | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+[ARRW] = KEYMAP(
+ // left hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_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_PGDOWN, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 3: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | Lclk | Rclk | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |Mute |VolDn | VolUp| | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | Prev | Play | Next | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * |Brwser| | | | | | |
+ * |Back | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_WBAK, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/keymaps/maz/readme.md b/keyboards/ergodox/keymaps/maz/readme.md
new file mode 100644
index 000000000..000a8d000
--- /dev/null
+++ b/keyboards/ergodox/keymaps/maz/readme.md
@@ -0,0 +1,121 @@
+# Introduction
+
+## Motivation
+I created this keymap in an attempt to optimize my typing experience in text editors (vim and emacs) and the command-line.
+
+More specifically, I wanted to have each modifier key controlled by the thumbs, the most powerful of the digits (I think). This cured me of emacs pinky, which had surprisingly grown quite quickly over the first two weeks of using emacs & emacs-like commands on the command-line.
+
+## Changes
+There are some miscellaneous changes that I kind of forgot I made, such as moving the tilde key, but you can check out the visual layouts below, which I **have** kept up to date.
+### Modifier Keys
+The biggest changes from the ergodox ez default keymap are the modifiers on the thumb cluster. You must hold each key down for a certain amount of time (forgot where this is specified) in order for the modifier key to activate.
+
+### Layers
+* an arrow layer (ARRW) has been created because the default arrow keys suck. Beware, these do use vim bindings because they're the best.
+* the keys in the media layer have been moved around for a better experience (imo), especially with respect to the mouse
+* the three layers (SYMB, MDIA, and ARRW) now have their own dedicated keys accessible by the thumbs in the basic layer
+* caps lock has been put in place of the right-side `L1` toggle key because there was really no need to have two keys to toggle one layer, and caps lock is useful when writing queries
+** unfortunatley, caps lock is not indicated by an LED, so be careful. I use caps lock just like I do insert in vim; for a short burst of text. I always turn off caps lock when I change my focus
+
+### Removal Of Keys
+I also removed a bunch of unnecessary keys that I wasn't going to use anyway. You'll see such keys are blank in the basic layer. I will probably add some more keys in place of these, but I'm fine for now; I just didn't want the distraction of extra keys I barely use.
+
+## Caveats
+### Thumb Cluster Range
+I've heard many complaints about the thumb clusters. I agree that the three outter keys are almost impossible to reach. I am going to try to build [Matt Adereth's keyboard](https://github.com/adereth/dactyl-keyboard), which looks to have a better layout. However, I am able to comfortably use the three modifier keys mainly because:
+* I use DCS keycaps with SA Row 3 keycaps where the Alt keys are
+* I have relatively large hands (I guarantee you there's no problem - I guarantee you)
+
+### Dangerous positioning
+I think it's quite dangerous to put something like control on the same key as enter. Alas, this is a risk I'm willing to accept, and so should you if you decide to use this keymap. I tend to avoid putting myself in situtations in which disaster could occur with one fell swoop of a keypress.
+
+# Keymap
+## Keymap 0: Basic layer
+```
+,--------------------------------------------------. ,--------------------------------------------------.
+| = | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - |
+|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+| Tab | Q | W | E | R | T | L1 | | CAPS | Y | U | I | O | P | \ |
+|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+| ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
+|--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
+`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | Grv | |*SYMB*|*ARRW*| |*MDIA*|*SYMB*| [ | ] | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------|------|------| |------+--------+------.
+ | | | | | | | |
+ | Space| Bksp |------| |------| Tab |Enter |
+ | ctrl | gui | Alt | | Alt | gui | ctrl |
+ `--------------------' `----------------------'
+
+```
+
+## Keymap 1: Symbol Layer
+The only change here is the *dot* (`.`) character moving from next to `0` next to `+` in order to move the layer keys in the correct position
+```
+ ,--------------------------------------------------. ,--------------------------------------------------.
+ | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | . |
+ |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | | | | | | | 0 | = | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------|------|------| |------+------+------.
+ | | | | | | | |
+ | | |------| |------| | |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
+
+## Keymap 2: Arrow Layer
+```
+ ,--------------------------------------------------. ,--------------------------------------------------.
+ | | | | | | | | | | | | | | | |
+ |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ | | | | | | | | | | |PGDOWN| PGUP | | | |
+ |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ | | | | | | |------| |------| LEFT | DOWN | UP |RIGHT | | |
+ |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ | | | | | | | | | | | HOME | END | | | |
+ `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | | | | | | | | | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------|------|------| |------+------+------.
+ | | | | | | | |
+ | | |------| |------| | |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
+
+## Keymap 3: Media and mouse keys
+```
+ ,--------------------------------------------------. ,--------------------------------------------------.
+ | | | | | | | | | | | | | | | |
+ |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ | | | | MsUp | | | | | | | | | | | |
+ |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ | | |MsLeft|MsDown|MsRght| |------| |------| | Lclk | Rclk | | | |
+ |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ | | |Mute |VolDn | VolUp| | | | | | | | | | |
+ `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ | | | Prev | Play | Next | | | | | | |
+ `----------------------------------' `----------------------------------'
+ ,-------------. ,-------------.
+ | | | | | |
+ ,------|------|------| |------+------+------.
+ |Brwser| | | | | | |
+ |Back | |------| |------| | |
+ | | | | | | | |
+ `--------------------' `--------------------'
+```
diff --git a/keyboards/ergodox/keymaps/mclennon_osx/README.md b/keyboards/ergodox/keymaps/mclennon_osx/README.md
new file mode 100644
index 000000000..28cdb7c10
--- /dev/null
+++ b/keyboards/ergodox/keymaps/mclennon_osx/README.md
@@ -0,0 +1,5 @@
+# Ergodox EZ for OS X
+
+This keymapping is designed to be reasonably familiar to an ordinary Mac keyboard while taking advantage of the Ergodox EZ's features. Caps lock instead enables a layer which allows a user to use HJKL as arrow keys and to control media. Shift and control have additional mappings on S and D to provide easier access while holding down caps lock.
+
+If you choose to compile this yourself, be sure to compile with `#define PREVENT_STUCK_MODIFIERS` in your `config.h`. Firmware built using [qmk_firmware](https://github.com/qmk/qmk_firmware/).
diff --git a/keyboards/ergodox/keymaps/mclennon_osx/keymap.c b/keyboards/ergodox/keymaps/mclennon_osx/keymap.c
new file mode 100644
index 000000000..627ff01e4
--- /dev/null
+++ b/keyboards/ergodox/keymaps/mclennon_osx/keymap.c
@@ -0,0 +1,144 @@
+// Media keys work on OSX, but not on Windows.
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define BASE 0 // Default layer
+#define AUXI 1 // Auxiliary layer
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ~` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | -_ | += | Bkspc |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | L1 | | Del | Y | U | I | O | P | |\ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | L1 | A | S | D | F | G |------| |------| H | J | K | L | ;: | Enter |
+ * |--------+------+------+------+------+------| {[ | | }] |------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | | | | N | M | <, | >. | ?/ | "' |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |LCtrl | | | | Esc | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | |Power | |
+ * ,------|------|------| |------+--------+------.
+ * | | | | | | | |
+ * | LGui | LAlt |------| |------| Bkspc |Space |
+ * | | | | | Del | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(1),
+ MO(1), KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC,
+ KC_LCTL, KC_TRNS,KC_TRNS,KC_TRNS,KC_ESC,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_LGUI,KC_LALT,KC_TRNS,
+
+ // right hand
+ KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC,
+ KC_DELETE, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,
+ KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_ENT,
+ KC_RBRC, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_QUOT,
+ KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_PWR, KC_TRNS,
+ KC_TRNS,
+ KC_DELETE, KC_BSPC, KC_SPC
+ ),
+/* Keymap 1: Auxiliary Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | TRNS | | | Mute | VolDn| VolUp| Play | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | TRNS | |LShift| LCtrl| | |------| |------| LEFT | DOWN | UP |RIGHT | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | LShift | | | | | | | | | MPrv | MNxt | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |LCtrl | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | LGui | LAlt |------| |------| Bkspc| Space|
+ * | | | | | Del | | |
+ * `--------------------' `--------------------'
+ */
+// AUXILIARY
+[AUXI] = KEYMAP(
+ // left hand
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_LSHIFT,KC_LCTL, KC_TRNS, KC_TRNS,
+ KC_LSHIFT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_LGUI, KC_LALT, KC_TRNS,
+ // right hand
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
+ KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS, KC_TRNS,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_PWR, KC_TRNS,
+ KC_TRNS,
+ KC_DELETE, KC_BSPC, KC_SPC
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(AUXI) // FN1 - Momentary Layer 1 (Auxiliary)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c b/keyboards/ergodox/keymaps/mpiechotka/keymap.c
index 5bfef5995..67aca4479 100644
--- a/keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c
+++ b/keyboards/ergodox/keymaps/mpiechotka/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "keymap_colemak.h"
diff --git a/keyboards/ergodox_ez/keymaps/mpiechotka/readme.md b/keyboards/ergodox/keymaps/mpiechotka/readme.md
index 785400d1d..785400d1d 100644
--- a/keyboards/ergodox_ez/keymaps/mpiechotka/readme.md
+++ b/keyboards/ergodox/keymaps/mpiechotka/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/msc/img/code_layer.png b/keyboards/ergodox/keymaps/msc/img/code_layer.png
index 7b5efaae7..7b5efaae7 100644
--- a/keyboards/ergodox_ez/keymaps/msc/img/code_layer.png
+++ b/keyboards/ergodox/keymaps/msc/img/code_layer.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/msc/img/main_layer.png b/keyboards/ergodox/keymaps/msc/img/main_layer.png
index 65f92dda1..65f92dda1 100644
--- a/keyboards/ergodox_ez/keymaps/msc/img/main_layer.png
+++ b/keyboards/ergodox/keymaps/msc/img/main_layer.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/msc/img/media_layer.png b/keyboards/ergodox/keymaps/msc/img/media_layer.png
index a69799b07..a69799b07 100644
--- a/keyboards/ergodox_ez/keymaps/msc/img/media_layer.png
+++ b/keyboards/ergodox/keymaps/msc/img/media_layer.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/msc/keymap.c b/keyboards/ergodox/keymaps/msc/keymap.c
index e567e513f..c43aecf6b 100644
--- a/keyboards/ergodox_ez/keymaps/msc/keymap.c
+++ b/keyboards/ergodox/keymaps/msc/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/msc/readme.md b/keyboards/ergodox/keymaps/msc/readme.md
index 0d14fcbd2..0d14fcbd2 100644
--- a/keyboards/ergodox_ez/keymaps/msc/readme.md
+++ b/keyboards/ergodox/keymaps/msc/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/naps62/keymap.c b/keyboards/ergodox/keymaps/naps62/keymap.c
index d8c28423c..9064053fc 100644
--- a/keyboards/ergodox_ez/keymaps/naps62/keymap.c
+++ b/keyboards/ergodox/keymaps/naps62/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/naps62/readme.md b/keyboards/ergodox/keymaps/naps62/readme.md
index 14728e4cc..14728e4cc 100644
--- a/keyboards/ergodox_ez/keymaps/naps62/readme.md
+++ b/keyboards/ergodox/keymaps/naps62/readme.md
diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keyboard-layout.png b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keyboard-layout.png
new file mode 100644
index 000000000..544b5658e
--- /dev/null
+++ b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keyboard-layout.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keymap.c b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keymap.c
new file mode 100644
index 000000000..1d505f8e3
--- /dev/null
+++ b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keymap.c
@@ -0,0 +1,180 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "keymap_norwegian.h"
+
+#define BASE 0 // default layer
+#define BASE_MAC 1 // default layer mac
+#define NUMB_FUNC 2 // numbers and function keys
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Keymap 0: Basic layer PC
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | * | [ | ] | { | } | ~ |Mac/PC| | ^ | $ | ( | ) | < | > | @ |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | + | Q | W | E | R | T | " | | ' | Y | U | I | O | P | Ã… |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | / | A | S | D | F | G |------| |------| H | J | K | L | Ø | Æ |
+ * |--------+------+------+------+------+------| ; | | = |------+------+------+------+------+--------|
+ * | - | Z | X | C | V | B | | | | N | M | RIGHT| DOWN | UP | _ |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Alt/esc| ! | ? | : | TAB | | LEFT | _ | & | | |Num/fn|
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,--------------.
+ * | # | ` | |Insert| % |
+ * ,------|------|------| |------+-------+------.
+ * | | | ´ | | Del | | |
+ * | Shift|Ctrl/.|------| |------| Enter |Space |
+ * | | |GUI/, | | Bspc | | |
+ * `--------------------' `---------------------'
+ */
+[BASE] = KEYMAP(
+ // left hand
+ KC_PAST, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, KC_FN2, TG(1),
+ KC_PPLS, KC_Q, KC_W, KC_E, KC_R, KC_T, NO_QUO2,
+ KC_PSLS, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_PMNS, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN,
+ ALT_T(KC_ESC), KC_EXLM , NO_QUES, NO_COLN, KC_TAB,
+ KC_HASH, KC_FN7,
+ KC_FN6,
+ KC_FN1,CTL_T(KC_DOT),GUI_T(KC_COMMA),
+ // right hand
+ KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT,
+ NO_APOS, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AA ,
+ KC_H, KC_J, KC_K, KC_L, NO_OSLH, NO_AE,
+ NO_EQL, KC_N, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_BSLS,
+ KC_LEFT, NO_UNDS, NO_AMPR, NO_PIPE, OSL(2),
+ KC_INSERT, KC_PERC,
+ KC_DELT,
+ KC_BSPC,KC_ENT,KC_SPC
+ ),
+/* Keymap 1: Basic layer MACS (Same as pc, except for cmd/ctrl, which are swapped)
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | \ | | | { | } | | | | | $ | | | < | > | @ |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | ' |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | |,/Ctrl| | | | ` | |Num/fn|
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | ` | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | ´ | | | | |
+ * | |GUI/. |------| |------| | |
+ * | | |crtl/,| | | | |
+ * `--------------------' `--------------------'
+ */
+[BASE_MAC] = KEYMAP(
+ KC_TRNS, KC_TRNS,KC_TRNS, NO_LCBR_MAC,NO_RCBR_MAC, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, NO_GRV_MAC,
+ KC_FN10,
+ KC_TRNS,GUI_T(KC_DOT) , CTL_T(KC_COMMA),
+ // right hand
+ KC_TRNS, NO_DLR_MAC, KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_AT_MAC,
+ NO_APOS_MAC, 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, NO_BSLS_MAC,
+ KC_TRNS, KC_TRNS, KC_TRNS, NO_PIPE_MAC, OSL(2),
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+/* Keymap 2: Number ++´ánd Fn layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | F9 | F10 | F11 | F12 | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | 8 | 7 | 6 | 5 | 9 | | | | | F5 | F6 | F7 | F8 | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | 4 | 3 | 2 | 1 | 0 |------| |------| | F1 | F2 | F3 | F4 | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | END | PGDWN| PGUP | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | HOME | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[NUMB_FUNC] = KEYMAP(
+ NO_ASTR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ NO_PLUS, KC_8, KC_7,KC_6,KC_5, KC_9 , KC_TRNS,
+ NO_SLSH , KC_4 , KC_3 , KC_2 , KC_1 , KC_0,
+ NO_MINS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_F5, KC_F6 , KC_F7, KC_F8, KC_TRNS,
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS,
+ KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_PGDN, KC_PGUP, KC_TRNS,
+ KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+)
+};
+
+enum macro_id {
+ TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO, GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_MODS_ONESHOT(MOD_LSFT), // Sticky shift light. Tap for the next keypress to be shifted. Hold for regular shift.
+ [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed.
+ [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first.
+ [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first.
+ [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed.
+ [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed.
+ [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed.
+ [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly
+ [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly
+ [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed
+};
+
+
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ keyevent_t event = record->event;
+
+ switch (id) {
+ case TILDE_NO:
+ return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE);
+ case LESS_NO:
+ return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE);
+ case GRTR_NO:
+ return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE);
+ case CIRC_NO:
+ return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE);
+ case ACUT_NO:
+ return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC), END ) : MACRO_NONE);
+ case GRV_NO:
+ return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT), END ) : MACRO_NONE);
+ case LESS_NO_MAC:
+ return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE);
+ case GRTR_NO_MAC:
+ return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE);
+ case ACUT_NO_MAC:
+ return (event.pressed ? MACRO( T(EQL), T(SPC), END ) : MACRO_NONE);
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/readme.md b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/readme.md
new file mode 100644
index 000000000..f7e8baf56
--- /dev/null
+++ b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/readme.md
@@ -0,0 +1,30 @@
+# Norwegian setup with osx/pc toggle
+
+## Motivation
+I wanted a Norwegian setup that worked in a similar way on both my Mac and PC. I also wanted the keyboard to translate from a standard Norwegian keyboard OS setup.
+
+## Overview
+The setup is created to be programmer friendly.
+- Most of the symbols used in code can be activated without using layers or shift key.
+- You can reach the IDE/OS shortcut activators(Ctrl, Win/Cmd, Alt, Shift) with the thumb or the wrist.
+- Navigation is prioritized, arrows below the home row.
+
+## PC/Mac toggle
+The default setup is for Norwegian keyboard setting(on a PC(Windows or Linux) or Mac. Use the Mac/PC toggle button to switch between OSX and PC setup. The settings will be reverted to PC setup each time you restart/connect the keyboard.
+
+## Layers
+Since symbols are prioritized in this setup, numbers and function keys are on a new layer. The easiest way to use the layer switch(and also the alt key), is to push your hand right below the little finger, on the key. You will then have all your fingers free to type numbers or press function keys.
+
+## Tap-shift
+Tap for the next character to be shifted, hold down for regular shift.
+
+## Comma dot and escape
+Comma, dot and escape share buttons with modifier keys. Tap to access these keys, hold down to use the keys as modifier keys.
+
+## Numpad symbols
++-/* are implemented with the numpad keycodes. The benefit is that they will work better with shortcuts in certain programs. For some reason, the default setting in the osx terminal is to not accept numpad characters for '/' and '-'. For a solution, see https://discussions.apple.com/thread/6613968?start=0&tstart=0.
+If you really need the norwegian symbols in a program, you can access them using the number toggle button.
+
+## Layout
+
+![keyboard-layout](keyboard-layout.png)
diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keyboard-layout.png b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keyboard-layout.png
new file mode 100644
index 000000000..462de5c56
--- /dev/null
+++ b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keyboard-layout.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keymap.c b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keymap.c
new file mode 100644
index 000000000..acf74a47d
--- /dev/null
+++ b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keymap.c
@@ -0,0 +1,180 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "keymap_norwegian.h"
+
+#define BASE 0 // default layer
+#define BASE_MAC 1 // default layer mac
+#define NUMB_FUNC 2 // numbers and function keys
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Keymap 0: Basic layer PC
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | * | [ | ] | { | } | ~ |Mac/PC| | ^ | $ | ( | ) | < | > | @ |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | + | Q | W | F | P | G | " | | ' | J | L | U | Y | Å | Æ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | / | A | R | S | T | D |------| |------| H | N | E | I | O | Ø |
+ * |--------+------+------+------+------+------| ; | | = |------+------+------+------+------+--------|
+ * | - | Z | X | C | V | B | | | | K | M | RIGHT| DOWN | UP | _ |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Alt/esc| ! | ? | : | TAB | | LEFT | _ | & | | |Num/fn|
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,--------------.
+ * | # | ` | |Insert| % |
+ * ,------|------|------| |------+-------+------.
+ * | | | ´ | | Del | | |
+ * | Shift|Ctrl/.|------| |------| Enter |Space |
+ * | | |GUI/, | | Bspc | | |
+ * `--------------------' `---------------------'
+ */
+[BASE] = KEYMAP(
+ // left hand
+ KC_PAST, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, KC_FN2, TG(1),
+ KC_PPLS, KC_Q, KC_W, KC_F, KC_P, KC_G, NO_QUO2,
+ KC_PSLS, KC_A, KC_R, KC_S, KC_T, KC_D,
+ KC_PMNS, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN,
+ ALT_T(KC_ESC), KC_EXLM , NO_QUES, NO_COLN, KC_TAB,
+ KC_HASH, KC_FN7,
+ KC_FN6,
+ KC_FN1,CTL_T(KC_DOT),GUI_T(KC_COMMA),
+ // right hand
+ KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT,
+ NO_APOS, KC_J, KC_L, KC_U, KC_Y, NO_AA, NO_AE ,
+ KC_H, KC_N, KC_E, KC_I, KC_O, NO_OSLH,
+ NO_EQL, KC_K, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_BSLS,
+ KC_LEFT, NO_UNDS, NO_AMPR, NO_PIPE, OSL(2),
+ KC_INSERT, KC_PERC,
+ KC_DELT,
+ KC_BSPC,KC_ENT,KC_SPC
+ ),
+/* Keymap 1: Basic layer MAC (Same as pc, except for cmd/ctrl, which are swapped)
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | \ | | | { | } | | | | | $ | | | < | > | @ |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | ' |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | |,/Ctrl| | | | ` | |Num/fn|
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | ` | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | ´ | | | | |
+ * | |GUI/. |------| |------| | |
+ * | | |crtl/,| | | | |
+ * `--------------------' `--------------------'
+ */
+[BASE_MAC] = KEYMAP(
+ KC_TRNS, KC_TRNS,KC_TRNS, NO_LCBR_MAC,NO_RCBR_MAC, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, NO_GRV_MAC,
+ KC_FN10,
+ KC_TRNS,GUI_T(KC_DOT) , CTL_T(KC_COMMA),
+ // right hand
+ KC_TRNS, NO_DLR_MAC, KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_AT_MAC,
+ NO_APOS_MAC, 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, NO_BSLS_MAC,
+ KC_TRNS, KC_TRNS, KC_TRNS, NO_PIPE_MAC, OSL(2),
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+/* Keymap 2: Number ++´ánd Fn layer pc
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | F9 | F10 | F11 | F12 | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | 8 | 7 | 6 | 5 | 9 | | | | | F5 | F6 | F7 | F8 | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | 4 | 3 | 2 | 1 | 0 |------| |------| | F1 | F2 | F3 | F4 | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | END | PGDWN| PGUP | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | HOME | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[NUMB_FUNC] = KEYMAP(
+ NO_ASTR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ NO_PLUS, KC_8, KC_7,KC_6,KC_5, KC_9 , KC_TRNS,
+ NO_SLSH , KC_4 , KC_3 , KC_2 , KC_1 , KC_0,
+ NO_MINS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_F5, KC_F6 , KC_F7, KC_F8, KC_TRNS,
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS,
+ KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_PGDN, KC_PGUP, KC_TRNS,
+ KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+)
+};
+
+enum macro_id {
+ TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO, GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_MODS_ONESHOT(MOD_LSFT), // Sticky shift light. Tap for the next keypress to be shifted. Hold for regular shift.
+ [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed.
+ [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first.
+ [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first.
+ [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed.
+ [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed.
+ [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed.
+ [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly
+ [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly
+ [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed
+};
+
+
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ keyevent_t event = record->event;
+
+ switch (id) {
+ case TILDE_NO:
+ return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE);
+ case LESS_NO:
+ return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE);
+ case GRTR_NO:
+ return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE);
+ case CIRC_NO:
+ return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE);
+ case ACUT_NO:
+ return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC), END ) : MACRO_NONE);
+ case GRV_NO:
+ return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT), END ) : MACRO_NONE);
+ case LESS_NO_MAC:
+ return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE);
+ case GRTR_NO_MAC:
+ return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE);
+ case ACUT_NO_MAC:
+ return (event.pressed ? MACRO( T(EQL), T(SPC), END ) : MACRO_NONE);
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/readme.md b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/readme.md
new file mode 100644
index 000000000..aaaec3e53
--- /dev/null
+++ b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/readme.md
@@ -0,0 +1,30 @@
+# Norwegian Colemak setup with osx/pc toggle
+
+## Motivation
+I wanted a Norwegian Colemak setup that worked in a similar way on both my Mac and PC. I also wanted the keyboard to translate from a standard Norwegian keyboard OS setup.
+
+## Overview
+The setup is created to be programmer friendly.
+- Most of the symbols used in code can be activated without using layers or shift key.
+- You can reach the IDE/OS shortcut activators(Ctrl, Win/Cmd, Alt, Shift) with the thumb or the wrist.
+- Navigation is prioritized, arrows below the home row.
+
+## PC/Mac toggle
+The default setup is for Norwegian keyboard setting(not colemak software variants) on a PC(Windows or Linux) or Mac. Use the Mac/PC toggle button to switch between OSX and PC setup. The settings will be reverted to PC setup each time you restart/connect the keyboard.
+
+## Layers
+Since symbols are prioritized in this setup, numbers and function keys are on a new layer. The easiest way to use the layer switch(and also the alt key), is to push your hand right below the little finger, on the key. You will then have all your fingers free to type numbers or press function keys.
+
+## Tap-shift
+Tap for the next character to be shifted, hold down for regular shift.
+
+## Comma dot and escape
+Comma, dot and escape share buttons with modifier keys. Tap to access these keys, hold down to use the keys as modifier keys.
+
+## Numpad symbols
++-/* are implemented with the numpad keycodes. The benefit is that they will work better with shortcuts in certain programs. For some reason, the default setting in the osx terminal is to not accept numpad characters for '/' and '-'. For a solution, see https://discussions.apple.com/thread/6613968?start=0&tstart=0.
+If you really need the norwegian symbols in a program, you can access them using the number toggle button.
+
+## Layout
+
+![keyboard-layout](keyboard-layout.png)
diff --git a/keyboards/ergodox/keymaps/ordinary/keymap.c b/keyboards/ergodox/keymaps/ordinary/keymap.c
new file mode 100644
index 000000000..1dfdf7e62
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ordinary/keymap.c
@@ -0,0 +1,504 @@
+#include "ergodox.h"
+#include "led.h"
+#include "mousekey.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "action_util.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols layer
+#define MDIA 2 // media layer
+#define SPEC 3 // special layer
+#define RBASE 4 // reverse default layer
+
+#define LSymb 10 // left symbol-shift key
+#define LMdia 11 // left media-shift key
+#define LSpec 12 // left special-shift key
+#define RSymb 13 // right symbol-shift key
+#define RMdia 14 // right media-shift key
+#define RSpec 15 // right special-shift key
+
+#define NotEq 16 // != macro
+#define GrtEq 17 // >= macro
+#define LesEq 18 // <= macro
+#define DeRef 19 // -> macro
+
+#define MUL 20 // mouse up left
+#define MUR 21 // mouse up right
+#define MDL 22 // mouse down left
+#define MDR 23 // mouse down right
+
+
+
+/*
+ * The Ordinary Layout for the Ergodox EZ keyboard, v5
+ *
+ * Modifications from the default Ergodox EZ layout
+ * by Nicholas Keene ergodoxez@nicholaskeene.com
+ *
+ * No rights reserved. This software is in the public domain.
+ * Credit me if you are friendly but if you're a jerk don't bother.
+ * If you use or modify this layout I would love to hear from you.
+ *
+ * Details: readme.md
+ * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboards/ergodox/keymaps/ordinary
+ */
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/******* Base Layer ****************************************************************************************************
+ *
+ * ,------------------------------------------------------. ,------------------------------------------------------.
+ * | Special `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | =+ Special |
+ * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------|
+ * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media |
+ * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------|
+ * | Symbol | ^A | S | D | ^F | G |------| |------| H | ^J | K | L | ^; | '" Symbol |
+ * |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------|
+ * | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals |
+ * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------'
+ * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl |
+ * `-----------------------------------' `-----------------------------------'
+ * ,-------------. ,-------------.
+ * | Home | End | | Left | Right|
+ * ,------|------|------| |------+------+------.
+ * | | | PgUp | | Up | | |
+ * |Backsp| Del |------| |------| Enter| Space|
+ * | | | PgDn | | Down | | |
+ * `--------------------' `--------------------'
+ */
+[BASE] = KEYMAP(
+// left hand
+ F(LSpec) ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_ESC
+,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC
+,M(LSymb) ,LT(RBASE, KC_A),KC_S ,KC_D ,LT(RBASE, KC_F) ,KC_G
+,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB)
+,KC_LCTL ,MEH_T(KC_NO) ,ALL_T(KC_NO),KC_LALT,KC_LGUI
+ ,KC_HOME,KC_END
+ ,KC_PGUP
+ ,KC_BSPC,KC_DEL ,KC_PGDN
+ // right hand
+ ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec)
+ ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia)
+ ,KC_H ,LT(RBASE, KC_J),KC_K ,KC_L ,LT(RBASE,KC_SCLN),F(RSymb)
+ ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,KC_RSFT
+ ,KC_RGUI ,KC_RALT,KC_HYPR,KC_MEH ,KC_RCTL
+ ,KC_LEFT ,KC_RGHT
+ ,KC_UP
+ ,KC_DOWN ,KC_ENT ,KC_SPC
+),
+
+/******* Symbols Layer *************************************************************************************************
+ *
+ * ,-----------------------------------------------------. ,-----------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | Esc | | - | F6 | F7 | F8 | F9 | F10 | |
+ * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------|
+ * | | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | |
+ * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
+ * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | |
+ * |-----------+------+------+------+------+------| ' | | " |------+------+------+------+------+-----------|
+ * | | % | ^ | [ | ] | ~ | | | | \ | 1 | 2 | 3 | - | |
+ * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
+ * | ; | & | * | < | > | | 0 | . | = | + | Enter |
+ * `-----------------------------------' `-----------------------------------'
+ * ,-------------. ,-------------.
+ * | |||| | |||| | | |||| | |||| |
+ * ,------|------|------| |------+------+------.
+ * | Plus | Equal| |||| | | |||| | Under| Dash |
+ * | | |------| |------| Score| |
+ * | + | = | != | | -> | _ | - |
+ * `--------------------' `--------------------'
+ */
+[SYMB] = KEYMAP(
+// left hand
+ KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_ESC
+,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM)
+,KC_TRNS ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV
+,KC_TRNS ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_QUOT
+,KC_SCLN ,KC_AMPR ,KC_ASTR ,LSFT(KC_COMM),LSFT(KC_DOT)
+ ,M(GrtEq),M(LesEq)
+ ,KC_NO
+ ,KC_PLUS ,KC_EQL ,M(NotEq)
+ // right hand
+ ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS
+ ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,KC_TRNS
+ ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,KC_TRNS
+ ,LSFT(KC_QUOT),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS
+ ,KC_0 ,KC_DOT ,KC_EQL,KC_PLUS ,KC_ENT
+ ,KC_NO ,KC_NO
+ ,KC_NO
+ ,M(DeRef) ,LSFT(KC_MINS),KC_MINS
+),
+
+/******* Media Layer *******************************************************************************************************
+ *
+ * ,---------------------------------------------------------------. ,---------------------------------------------------------------.
+ * | | F11 | F12 | F13 | F14 | F15 | Esc | | |||| | F16 | F17 | F18 | F19 | F20 | |
+ * |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------|
+ * | |Shut Down|MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | Mail | |
+ * |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------|
+ * | | Sleep |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | MyComp | |
+ * |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------|
+ * | | |||| |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | |||| | End | Down | PgDn | |||| | |
+ * `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------'
+ * | ||| | |||| | MClick | LClick | R Click| | Insert | Del | |||| | |||| | ||| |
+ * `---------------------------------------------' `---------------------------------------------'
+ * ,-------------. ,-------------.
+ * | Stop |Refrsh| | Prev | Next |
+ * ,------|------|------| |------+------+------.
+ * |Brwser|Brwser|Search| |VolUp | | |
+ * |Back | Fwd |------| |------| Stop | Play-|
+ * | | | Home | |VolDn | | Pause|
+ * `--------------------' `--------------------'
+ */
+[MDIA] = KEYMAP(
+// left hand
+ KC_TRNS ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_ESC
+,KC_TRNS ,KC_POWER ,M(MUL) ,KC_MS_U ,M(MUR) ,KC_VOLU ,KC_WH_U
+,KC_TRNS ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD
+,KC_TRNS ,KC_NO ,M(MDL) ,KC_MS_D ,M(MDR) ,KC_MUTE ,KC_WH_D
+,KC_NO ,KC_NO ,KC_BTN3 ,KC_BTN1 ,KC_BTN2
+ ,KC_WSTP ,KC_WREF
+ ,KC_WSCH
+ ,KC_WBAK ,KC_NO ,KC_WHOM
+ // right hand
+ ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_TRNS
+ ,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_MAIL ,KC_TRNS
+ ,KC_NLCK ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_MYCM ,KC_TRNS
+ ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_TRNS
+ ,KC_INS ,KC_DEL ,KC_NO ,KC_NO ,KC_NO
+ ,KC_MPRV ,KC_MNXT
+ ,KC_VOLU
+ ,KC_VOLD ,KC_MSTP ,KC_MPLY
+),
+
+/******* Special Layer *****************************************************************************************************
+ *
+ * ,-------------------------------------------------------. ,-------------------------------------------------------.
+ * | | Esc | | | | | | | | | | | - | Bspc | |
+ * |-------------+------+------+------+------+-------------| |------+------+------+------+------+------+-------------|
+ * | Media Lock | | | | | | | | | | | | [ | ] | Media Lock |
+ * |-------------+------+------+------+------+------| | | |------+------+------+------+------+-------------|
+ * | Symbol Lock | | | | | |------| |------| | | | | | Symbol Lock |
+ * |-------------+------+------+------+------+------| | | |------+------+------+------+------+-------------|
+ * | Caps Lock | | | | | | | | | | | | | | Caps Lock |
+ * `-------------+------+------+------+------+-------------' `-------------+------+------+------+------+-------------'
+ * | | | | | | | | | | | |
+ * `------------------------------------' `------------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[SPEC] = KEYMAP(
+// left hand
+ KC_TRNS ,KC_ESC ,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_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS
+ ,KC_TRNS,KC_TRNS ,KC_TRNS
+ // right hand
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_MINS ,KC_BSPC ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_LBRC ,KC_RBRC ,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_CAPS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS
+),
+
+/******* Reverse Base Layer *********************************************************************************************
+ *
+ * ,------------------------------------------------------. ,------------------------------------------------------.
+ * | =+ | 0 | 9 | 8 | 7 | 6 | - | | Esc | 5 | 4 | 3 | 2 | 1 | `~ |
+ * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------|
+ * | \| | P | O | I | U | Y | ] | | [ | T | R | E | W | Q | Tab |
+ * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------|
+ * | '" | ; | L | K | J | H |------| |------| G | F | D | S | A | |
+ * |------------+------+------+------+------+------| Tab | |Shift |------+------+------+------+------+------------|
+ * | Capitals | / | . | , | M | N | | | -Tab | B | V | C | X | Z | Capitals |
+ * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------'
+ * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl |
+ * `-----------------------------------' `-----------------------------------'
+ * ,-------------. ,-------------.
+ * | Left | Right| | Home | End |
+ * ,------|------|------| |------+------+------.
+ * | | | Up | | PgUp | | |
+ * |Space |Enter |------| |------|BackSp| Del |
+ * | | | Down | | PgDn | | |
+ * `--------------------' `--------------------'
+ */
+[RBASE] = KEYMAP(
+// left hand
+ KC_EQL ,KC_0 ,KC_9 ,KC_8 ,KC_7 ,KC_6 ,KC_MINS
+,KC_BSLS ,KC_P ,KC_O ,KC_I ,KC_U ,KC_Y ,KC_RBRC
+,KC_QUOT ,LT(RBASE, KC_SCLN) ,KC_L ,KC_K ,LT(RBASE, KC_J) ,KC_H
+,KC_RSFT ,KC_SLSH ,KC_DOT ,KC_COMM,KC_M ,KC_N ,KC_TAB
+,KC_RCTL ,MEH_T(KC_NO),ALL_T(KC_NO),KC_RALT,KC_RGUI
+ ,KC_LEFT ,KC_RGHT
+ ,KC_UP
+ ,KC_SPC ,KC_ENT ,KC_DOWN
+ // right hand
+ ,KC_ESC ,KC_5 ,KC_4 ,KC_3 ,KC_2 ,KC_1 ,KC_GRV
+ ,KC_LBRC ,KC_T ,KC_R ,KC_E ,KC_W ,KC_Q ,KC_TAB
+ ,KC_G ,LT(RBASE, KC_F),KC_D ,KC_S ,LT(RBASE, KC_A) ,KC_NO
+ ,LSFT(KC_TAB),KC_B ,KC_V ,KC_C ,KC_X ,KC_Z ,KC_LSFT
+ ,KC_LGUI,KC_LALT,KC_HYPR ,KC_MEH,KC_LCTL
+ ,KC_HOME ,KC_END
+ ,KC_PGUP
+ ,KC_PGDN ,KC_BSPC ,KC_DEL
+)
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ // the faux shift keys are implemented as macro taps
+ [LSymb] = ACTION_MACRO_TAP(LSymb)
+ ,[LMdia] = ACTION_MACRO_TAP(LMdia)
+ ,[LSpec] = ACTION_MACRO_TAP(LSpec)
+ ,[RSymb] = ACTION_MACRO_TAP(RSymb)
+ ,[RMdia] = ACTION_MACRO_TAP(RMdia)
+ ,[RSpec] = ACTION_MACRO_TAP(RSpec)
+};
+
+uint16_t symb_shift = 0;
+uint16_t mdia_shift = 0;
+uint16_t spec_shift = 0;
+
+bool mdia_lock = false;
+bool symb_lock = false;
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ // There are two shift keys for each layer so we increment a layer_shift var when one
+ // is pressed and decrement when one is released. The shift counts are bound between 0 and 2
+ // only because sometimes rapid pressing led to irregular events; this way the states
+ // are self healing during use.
+
+ case LSymb: //
+ if (record->event.pressed) { // when the LSymb button is pressed
+ if(++symb_shift > 2) symb_shift = 2; // increment the symb shift count, max two
+ if(spec_shift) symb_lock = !symb_lock; // if the Special layer is on, toggle the shift lock
+ layer_on(SYMB); // in any case, turn on the Symbols layer
+ } else { // when the LSymb button is released
+ if(--symb_shift < 0) symb_shift = 0; // decrement the shift count, minimum zero
+ if((!symb_shift) && (!symb_lock)) layer_off(SYMB); // if both shifts are released and the lock is off, turn off the Symbols layer
+ }
+ break;
+
+ case LMdia:
+ if (record->event.pressed) {
+ if (record->tap.count && (!mdia_shift) && (!mdia_lock) && (!spec_shift)) {
+ register_code(KC_TAB);
+ } else {
+ if(spec_shift) mdia_lock = !mdia_lock;
+ if(++mdia_shift > 2) mdia_shift = 2;
+ layer_on(MDIA);
+ }
+ } else {
+ if(record->tap.count && (!mdia_shift) && (!mdia_lock) && (!spec_shift)) {
+ unregister_code(KC_TAB);
+ } else {
+ if(--mdia_shift < 0) mdia_shift = 0;
+ if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA);
+ }
+ }
+ break;
+
+ case LSpec:
+ if (record->event.pressed) { // when the LSpec button is pressed
+ if(symb_shift) symb_lock = !symb_lock; // if another layer button is engaged, then
+ else if(mdia_shift) mdia_lock = !mdia_lock; // lock that layer, be it caps or symb or mdia
+ else if (record->tap.count && !record->tap.interrupted && (!spec_shift)) {
+ register_code(KC_GRV); // otherwise, if it's an uninterrupted tap, emit a char
+ } else {
+ if(++spec_shift > 2) spec_shift = 2;
+ layer_on(SPEC); // otherwise, turn on the Special layer
+ }
+ } else {
+ if(record->tap.count && !record->tap.interrupted && (!spec_shift)) {
+ unregister_code(KC_GRV);
+ } else {
+ if(--spec_shift < 0) spec_shift = 0;
+ if(!spec_shift) layer_off(SPEC);
+ }
+ }
+ break;
+
+ case RSymb:
+ if (record->event.pressed) {
+ if (record->tap.count && (!symb_shift) && (!symb_lock) && (!spec_shift)) {
+ register_code(KC_QUOT);
+ } else {
+ if(++symb_shift > 2) symb_shift = 2;
+ if(spec_shift) symb_lock = !symb_lock;
+ layer_on(SYMB);
+ }
+ } else {
+ if(record->tap.count && (!symb_shift) && (!symb_lock) && (!spec_shift)) {
+ unregister_code(KC_QUOT);
+ } else {
+ if(--symb_shift < 0) symb_shift = 0;
+ if((!symb_shift) && (!symb_lock)) layer_off(SYMB);
+ }
+ }
+ break;
+
+ case RMdia:
+ if (record->event.pressed) {
+ if (record->tap.count && (!mdia_shift) && (!mdia_lock) && (!spec_shift)) {
+ register_code(KC_BSLS);
+ } else {
+ if(++mdia_shift > 2) mdia_shift = 2;
+ if(spec_shift) mdia_lock = !mdia_lock;
+ layer_on(MDIA);
+ }
+ } else {
+ if(record->tap.count && (!mdia_shift) && (!mdia_lock) && (!spec_shift)) {
+ unregister_code(KC_BSLS);
+ } else {
+ if(--mdia_shift < 0) mdia_shift = 0;
+ if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA);
+ }
+ }
+ break;
+
+ case RSpec:
+ if (record->event.pressed) {
+ if(symb_shift) symb_lock = !symb_lock;
+ else if(mdia_shift) mdia_lock = !mdia_lock;
+ else if (record->tap.count && !record->tap.interrupted && (!spec_shift)) {
+ register_code(KC_EQL);
+ } else {
+ if(++spec_shift > 2) spec_shift = 2;
+ layer_on(SPEC);
+ }
+ } else {
+ if(record->tap.count && !record->tap.interrupted && (!spec_shift)) {
+ unregister_code(KC_EQL);
+ } else {
+ if(--spec_shift < 0) spec_shift = 0;
+ if(!spec_shift) layer_off(SPEC);
+ }
+ }
+ break;
+
+ case NotEq:
+ if (record->event.pressed) {
+ return MACRO( I(10), D(LSFT), T(EXLM), U(LSFT), T(EQL), END ); // !=
+ }
+ break;
+
+ case GrtEq:
+ if (record->event.pressed) {
+ return MACRO( I(10), D(LSFT), T(COMM), U(LSFT), T(EQL), END ); // <=
+ }
+ break;
+
+ case LesEq:
+ if (record->event.pressed) {
+ return MACRO( I(10), D(LSFT), T(DOT), U(LSFT), T(EQL), END ); // >=
+ }
+ break;
+
+ case DeRef:
+ if (record->event.pressed) {
+ return MACRO( I(10), T(MINS), D(LSFT), T(DOT), U(LSFT), END ); // ->
+ }
+ break;
+
+ // mouse diagonals
+
+ case MUL: // mouse up left
+ if (record->event.pressed) {
+ mousekey_on(KC_MS_UP);
+ mousekey_on(KC_MS_LEFT);
+ mousekey_send();
+ } else {
+ mousekey_off(KC_MS_UP);
+ mousekey_off(KC_MS_LEFT);
+ mousekey_send();
+ }
+ break;
+
+ case MUR: // mouse up right
+ if (record->event.pressed) {
+ mousekey_on(KC_MS_UP);
+ mousekey_on(KC_MS_RIGHT);
+ mousekey_send();
+ } else {
+ mousekey_off(KC_MS_UP);
+ mousekey_off(KC_MS_RIGHT);
+ mousekey_send();
+ }
+ break;
+
+ case MDL: // mouse down left
+ if (record->event.pressed) {
+ mousekey_on(KC_MS_DOWN);
+ mousekey_on(KC_MS_LEFT);
+ mousekey_send();
+ } else {
+ mousekey_off(KC_MS_DOWN);
+ mousekey_off(KC_MS_LEFT);
+ mousekey_send();
+ }
+ break;
+
+ case MDR: // mouse down right
+ if (record->event.pressed) {
+ mousekey_on(KC_MS_DOWN);
+ mousekey_on(KC_MS_RIGHT);
+ mousekey_send();
+ } else {
+ mousekey_off(KC_MS_DOWN);
+ mousekey_off(KC_MS_RIGHT);
+ mousekey_send();
+ }
+ break;
+
+ default:
+ // none
+ break;
+ }
+
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+ // shift or caps lock turns on red light
+ if((keyboard_report->mods & MOD_BIT(KC_LSFT))
+ || (keyboard_report->mods & MOD_BIT(KC_RSFT))
+ || (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK))) {
+ ergodox_right_led_1_on();
+ } else {
+ ergodox_right_led_1_off();
+ }
+
+ // Symbol layer turns on green light
+ if(layer_state & (1UL<<SYMB)) {
+ ergodox_right_led_2_on();
+ } else {
+ ergodox_right_led_2_off();
+ }
+
+ // Media layer turns on blue light
+ if(layer_state & (1UL<<MDIA)) {
+ ergodox_right_led_3_on();
+ } else {
+ ergodox_right_led_3_off();
+ }
+};
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-base.png b/keyboards/ergodox/keymaps/ordinary/ordinary-base.png
new file mode 100644
index 000000000..18c6c4ab2
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-base.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-base.txt b/keyboards/ergodox/keymaps/ordinary/ordinary-base.txt
new file mode 100644
index 000000000..4fc11faf9
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-base.txt
@@ -0,0 +1,27 @@
+[{x:3.5},"#\n3",{x:10.5},"*\n8"],
+[{y:-0.875,x:2.5},"@\n2",{x:1},"$\n4",{x:8.5},"&\n7",{x:1},"(\n9"],
+[{y:-0.875,x:5.5},"%\n5",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc"},"_\n\n\n\n\n\n-","^\n6"],
+[{y:-0.875,c:"#c6c600",w:1.5},"Special\n\n~\n\n\n\nShift\n`",{c:"#cccccc"},"!\n1",{x:14.5},")\n0",{c:"#c6c600",w:1.5},"+\n\nSpecial\n\n\n\n=\nShift"],
+[{y:-0.375,x:3.5,c:"#cccccc"},"E",{x:10.5},"I"],
+[{y:-0.875,x:2.5},"W",{x:1},"R",{x:8.5},"U",{x:1},"O"],
+[{y:-0.875,x:5.5},"T",{h:1.5},"{\n\n\n\n\n\n[",{x:4.5,h:1.5},"}\n\n\n\n\n\n]","Y"],
+[{y:-0.875,c:"#c6c600",t:"#002299",w:1.5},"Media\n\nTab\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"Q",{x:14.5},"P",{c:"#c6c600",t:"#002299",w:1.5},"|\n\\\nMedia\n\n\n\n\nShift"],
+[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000"},"D",{x:10.5},"K"],
+[{y:-0.875,x:2.5},"S",{x:1,fa:[0,0,0,1]},"F\n\n\nreverse",{x:8.5},"J\n\n\nreverse",{x:1},"L"],
+[{y:-0.875,x:5.5},"G",{x:6.5},"H"],
+[{y:-0.875,c:"#c6c600",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"A\n\n\nreverse",{x:14.5},":\n;\n\nreverse",{c:"#c6c600",t:"#007d00",w:1.5},"\"\n'\nSymbols\n\n\n\n\nShift"],
+[{y:-0.625,x:6.5,c:"#ff8500",t:"#000000",h:1.5},"< Tab\n\n\nShift Tab",{x:4.5,h:1.5},"Tab >\n\n\nTab"],
+[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"],
+[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."],
+[{y:-0.875,x:5.5},"B",{x:6.5},"N"],
+[{y:-0.875,c:"#c6c600",t:"#9e0000",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"Z",{x:14.5},"?\n/",{c:"#c6c600",t:"#9e0000",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
+[{y:-0.375,x:3.5,c:"#dddd77",t:"#000000"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"],
+[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"],
+[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"],
+[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ff8500"},"Home","End"],
+[{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"],
+[{x:2},"Page\n\n\n\n\n\nDown"],
+[{r:-30,rx:13,y:-1,x:-3},"Left","Right"],
+[{x:-3},"Up",{h:2},"Enter",{h:2},"Space"],
+[{x:-3},"Down"]
+
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-media.png b/keyboards/ergodox/keymaps/ordinary/ordinary-media.png
new file mode 100644
index 000000000..491f698d8
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-media.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-media.txt b/keyboards/ergodox/keymaps/ordinary/ordinary-media.txt
new file mode 100644
index 000000000..67b7840b5
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-media.txt
@@ -0,0 +1,27 @@
+[{x:3.5,c:"#99de2a"},"F13",{x:10.5},"F18"],
+[{y:-0.875,x:2.5},"F12",{x:1},"F14",{x:8.5},"F17",{x:1},"F19"],
+[{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#737373",a:7},"",{c:"#99de2a",a:4},"F16"],
+[{y:-0.875,c:"#c6c600",w:1.5},"Shift\n\n\n\n\n\nLock",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#c6c600",w:1.5},"\n\nShift\n\n\n\n\nLock"],
+[{y:-0.375,x:3.5,c:"#0066cc"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"],
+[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nUpLeft",{x:1},"Mouse\n\n\n\n\n\nUpRgt",{x:8.5,c:"#1e8fff"},"Home",{x:1},"Page\n\n\n\n\n\nUp"],
+[{y:-0.875,x:5.5,c:"#9977ee"},"Vol\n\n\n\n\n\nUp",{c:"#1e8fff",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#9977ee"},"Print\n\n\n\n\n\nScreen"],
+[{y:-0.875,c:"#000000",t:"#3f68ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#9977ee",t:"#000000"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Mail",{c:"#000000",t:"#3f68ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"],
+[{y:-0.375,x:3.5,c:"#0066cc",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"],
+[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"],
+[{y:-0.875,x:5.5,c:"#9977ee"},"Vol\n\n\n\n\n\nDown",{x:6.5},"Num\n\n\n\n\n\nLock"],
+[{y:-0.875,c:"#c6c600",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#9977ee",t:"#000000"},"Sleep",{x:14.5},"My\n\n\n\n\n\nComp",{c:"#c6c600",t:"#007d00",w:1.5},"\n\nSymbols\n\n\n\n\nShift"],
+[{y:-0.625,x:6.5,c:"#1e8fff",t:"#000000",h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"],
+[{y:-0.75,x:3.5,c:"#0066cc"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"],
+[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#1e8fff"},"End",{x:1},"Page\n\n\n\n\n\nDown"],
+[{y:-0.875,x:5.5,c:"#9977ee"},"Mute",{x:6.5,c:"#737373",a:7},""],
+[{y:-0.875,c:"#c6c600",t:"#9e0000",a:4,w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#737373",t:"#000000",a:7},"",{x:14.5},"",{c:"#c6c600",t:"#9e0000",a:4,w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
+[{y:-0.375,x:3.5,c:"#0066cc",t:"#000000"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#1e8fff"},"Delete"],
+[{y:-0.875,x:2.5,c:"#0066cc"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#1e8fff"},"Insert",{x:1,c:"#737373",a:7},""],
+[{y:-0.75,x:0.5},"","",{x:14.5},"",""],
+[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#6633ee",a:4,fa:[0,0,0,1]},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"],
+[{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"],
+[{x:2},"Home\n\n\nBrowser"],
+[{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"],
+[{x:-3,c:"#9977ee"},"Vol\n\n\n\n\n\nUp",{c:"#6633ee",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"],
+[{x:-3,c:"#9977ee"},"Vol\n\n\n\n\n\nDown"]
+
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-special.png b/keyboards/ergodox/keymaps/ordinary/ordinary-special.png
new file mode 100644
index 000000000..4fb9d1d16
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-special.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-special.txt b/keyboards/ergodox/keymaps/ordinary/ordinary-special.txt
new file mode 100644
index 000000000..97f40f9db
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-special.txt
@@ -0,0 +1,27 @@
+[{x:3.5,a:7},"",{x:10.5},""],
+[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1,a:4},"_\n\n\n\n\n\n-"],
+[{y:-0.875,x:5.5,a:7},"",{c:"#ff4444",a:4},"Esc",{x:4.5,c:"#cccccc",a:7},"",""],
+[{y:-0.875,c:"#000000",t:"#ff0000",a:4,w:1.5},"Special\n\n\n\n\n\nShift",{c:"#ff4444",t:"#000000"},"Esc",{x:14.5,c:"#ff8500"},"Back\n\n\n\n\n\nspace",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSpecial\n\n\n\n\nShift"],
+[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""],
+[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1,a:4},"{\n["],
+[{y:-0.875,x:5.5,a:7},"",{h:1.5},"",{x:4.5,h:1.5},"",""],
+[{y:-0.875,c:"#c6c600",t:"#002299",a:4,w:1.5},"Media\n\n\n\n\n\nLock",{c:"#cccccc",t:"#000000",a:7},"",{x:14.5,a:4},"\n\n}\n]",{c:"#c6c600",t:"#002299",w:1.5},"Media\n\n\n\n\n\nLock"],
+[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""],
+[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
+[{y:-0.875,x:5.5},"",{x:6.5},""],
+[{y:-0.875,c:"#c6c600",t:"#007d00",a:4,w:1.5},"Symbols\n\n\n\n\n\nLock",{c:"#cccccc",t:"#000000",a:7},"",{x:14.5},"",{c:"#c6c600",t:"#007d00",a:4,w:1.5},"Symbols\n\n\n\n\n\nLock"],
+[{y:-0.625,x:6.5,c:"#cccccc",t:"#000000",a:7,h:1.5},"",{x:4.5,h:1.5},""],
+[{y:-0.75,x:3.5},"",{x:10.5},""],
+[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
+[{y:-0.875,x:5.5},"",{x:6.5},""],
+[{y:-0.875,c:"#c6c600",t:"#9e0000",a:4,w:1.5},"Capitals\n\n\n\n\n\nLock",{c:"#cccccc",t:"#000000",a:7},"",{x:14.5},"",{c:"#c6c600",t:"#9e0000",a:4,w:1.5},"Capitals\n\n\n\n\n\nLock"],
+[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""],
+[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
+[{y:-0.75,x:0.5},"","",{x:14.5},"",""],
+[{r:30,rx:6.5,ry:4.25,y:-1,x:1},"",""],
+[{h:2},"",{h:2},"",""],
+[{x:2},""],
+[{r:-30,rx:13,y:-1,x:-3},"",""],
+[{x:-3},"",{h:2},"",{h:2},""],
+[{x:-3},""]
+
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png b/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png
new file mode 100644
index 000000000..1277f7483
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.txt b/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.txt
new file mode 100644
index 000000000..65eca9d6a
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.txt
@@ -0,0 +1,27 @@
+[{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"],
+[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"],
+[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"],
+[{y:-0.875,c:"#c6c600",w:1.5},"Shift\n\n\n\n\n\nLock",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#c6c600",w:1.5},"\n\nShift\n\n\n\n\nLock"],
+[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"],
+[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"],
+[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"],
+[{y:-0.875,c:"#c6c600",t:"#002299",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"!",{x:14.5,c:"#89b087"},"/",{c:"#c6c600",t:"#002299",w:1.5},"\n\nMedia\n\n\n\n\nShift"],
+[{y:-0.375,x:3.5,c:"#bbddbb",t:"#000000"},"(",{x:10.5,c:"#89b087"},"5"],
+[{y:-0.875,x:2.5,c:"#bbddbb"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"],
+[{y:-0.875,x:5.5,c:"#bbddbb"},"`",{x:6.5},"/"],
+[{y:-0.875,c:"#000000",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#007d00",w:1.5},"\n\nSymbols\n\n\n\n\nShift"],
+[{y:-0.625,x:6.5,c:"#bbddbb",t:"#000000",a:6,h:1.5},"'",{x:4.5,h:1.5},"\""],
+[{y:-0.75,x:3.5,a:4},"[",{x:10.5,c:"#89b087"},"2"],
+[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"],
+[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"],
+[{y:-0.875,c:"#c6c600",t:"#9e0000",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"%",{x:14.5,c:"#89b087"},"-",{c:"#c6c600",t:"#9e0000",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
+[{y:-0.375,x:3.5,c:"#bbddbb",t:"#000000"},"<",{x:10.5,c:"#89b087"},"."],
+[{y:-0.875,x:2.5,c:"#bbddbb"},"*",{x:1},">",{x:8.5,c:"#89b087"},"0",{x:1},"="],
+[{y:-0.75,x:0.5,c:"#bbddbb"},";","&",{x:14.5,c:"#89b087"},"+","Enter"],
+[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#bbddbb"},"<=",">="],
+[{a:7,h:2},"+",{h:2},"=",{c:"#737373"},""],
+[{x:2,c:"#bbddbb",a:4},"!="],
+[{r:-30,rx:13,y:-1,x:-3,c:"#737373",a:7},"",""],
+[{x:-3},"",{c:"#bbddbb",h:2},"_",{h:2},"-"],
+[{x:-3,a:4},"->"]
+
diff --git a/keyboards/ergodox/keymaps/ordinary/readme.md b/keyboards/ergodox/keymaps/ordinary/readme.md
new file mode 100644
index 000000000..e13cb7ec8
--- /dev/null
+++ b/keyboards/ergodox/keymaps/ordinary/readme.md
@@ -0,0 +1,101 @@
+# The Ordinary Layout, a familiar and powerful layout #
+
+The Ordinary Layout is intended to be unremarkably mundane and remarkably useful. This layout maintains most key positions from common QWERTY keyboards, and it features enhanced Symbol and Media layers compared to the default Ergodox EZ layout.
+
+The Ordinary Layout is supposed to look mostly like a normal keyboard, except in the ways that the Ergodox key arrangement is unique. The thumbs are responsible for space, enter, plus both forward and backward delete; with only a couple exceptions, all other keys are in the same place they are found on traditional keyboards.
+
+Nicholas Keene
+ordinarylayout@nicholaskeene.com
+no rights reserved, use for any purposes, credit me if you are a nice person
+
+## The Base Layout ##
+
+* *White Keys* are all the normal characters and symbols in all the normal locations (except for the brackets, and who touch-types brackets?).
+* *Modifier Keys* are light yellow and in the traditional locationn at the bottom of the keyboard: Control, Option, Command, plus Hyper and Meh. Modifier keys are only found on the base layout.
+* *Shift Keys* are dark yellow, found on the outsides of the keyboard. Capitals Shift (traditional Shift) is found in the usual place and above that are Symbol Shift, Media Shift, and Special Shift (Shift Lock).
+* Several of the shift keys double for entry of characters which would typically be in those locations.
+* *Thumb Keys* shown in orange are for text navigation and manipulation.
+* The keys under pinky fingers and index fingers will *reverse* the keyboard layout.
+* *Escape* is red and it is always found in that location (*except* when the layout is reversed).
+
+![Ordinary base layout](ordinary-base.png)
+
+The four big orange keys are arranged differently than in the default Ergodox EZ layout. The Ordinary Layout here copies the design of the old Fingerworks TouchStream keyboard, but also reflects the natural presumptions of the author -- me! I type the space character with my right hand, and to me it makes sense for the two delete keys to be next to one another.
+
+The Forward Tab and Backward Tab keys are in their locations mostly because I ended up with two extra buttons and needed something to do with them. My muscle memory from using the Truly Ergonomic Keyboard makes me look for the Tab key with my right index finger, so it is handy to have this redundant Tab, and the idea with the Backward Tab key is that it becomes easy to navigate text fields in forms, or to indent/unindent code.
+
+#### Reversing The Base Layout ####
+
+The Ordinary Layout can be used to perform one-handed chorded text input. If you hold down the key under either index finger or either pinky finger (A, F, J and Semicolon), the whole base layout reverses order. Most keys are _mirrored_ but the delete keys, home/end, and left/right arrow keys are merely *translated* to preserve directionality. Pro-tip: This feature is particularly handly for bringing the Enter key to the left hand when the right hand is using the mouse.
+
+## The Symbols Layer ##
+
+* *Symbols* shown in light green. All kinds of brackets are available on this layer. Ampersand and Pipe juxtapose each other. Pipe, slash, and backslash are arranged in a column.
+* *F-Keys* are bright green and overlay the row of numerals. This layer has F1-F10, higher *F-Keys* are on the Symbols layer.
+* *Number pad* in dark green under the right hand includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads so that NumLock is not needed.
+* The dark gray keys do nothing in case you bump them by accident.
+
+![Ordinary symbol layout](ordinary-symbol.png)
+
+The Symbols Layer is based on the Coder Layer from the default Ergodox EZ layout. I slightly rearranged the symbols, added some symbols, expanded the number pad, and straightened out the F-Keys. It's very handy to have the symbols directly underneath the normal typing keys.
+
+## The Media Layer ##
+
+* *Mouse Cursor Keys* are under the left hand, shown in dark blue. Diagonal keys won't automatically repeat unless combined with other keys. Buttons to left- middle- and right-click the mouse are also featured.
+* *Text Cursor Keys* are under the right hand, shown in dark blue. They overlay the numberpad from the Symbols Layer, such that in the Media Layer the same keys can be used as if they were a number pad in navigational mode (Num Lock off). For instance, in traditional number pads the '3' key became 'Page Down', and so it is here. This means a user can do text navigation without moving either hand.
+* *Scrolling and Paging* keys are shown in light blue and have some useful redundancy across the layout.
+* Higher-order *F-Keys* are shown in bright green overylaying the numerals.
+* *Application Keys* to control web browsers and audio players are dark purple but don't get too excited because these have weak support on operating systems I've looked at. Good luck.
+* The light purple keys are various operating system keys such as NumLock and Mute and a button to navigate to My Computer (usually your home dir).
+* The dark gray keys do nothing in case you bump them by accident.
+
+![Ordinary media layout](ordinary-media.png)
+
+This layer is a substantial extension of the Media layer on the Ergodox EZ default layout. The Fingerworks TouchStream keyboard had a very useful feature for controlling the text cursor easily and this layer does something similar. The left hand can move the mouse, the right hand moves the text cursor, in all four directions, in small or large increments. This greatly enhances navigation in text documents.
+
+Keys to directly interact with the operating system are also found on this layer, such as volume and shutdown.
+
+## Switching Between Layers ##
+
+In addition to Symbols and Media there is the Capitals layer which is exactly the same as pressing the shift key. Each layer is accessed by a shift key on each edge of the keyboard and corresponds to one of the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active.
+
+Shift buttons work in the expected way: press them and all of the keys switch to that layer; release them and the keys switch back to the base layer. Lock the shift keys using the Shift Lock button, which is the same as the Special Shift button.
+
+Multiple layers can be turned on at once. The Capitals layer will affect characters on other layers to capitalize. Other layers, however, don't 'mix': Symbols blankets the base layout; Media blankets Symbols.
+
+## Special Sequences ##
+
+![Ordinary special layout](ordinary-special.png)
+
+The Special Shift layer is mostly used to lock the shift keys but in order to make this layout more _ordinary_ there are a few special sequences which put some keys near their most common traditional locations.
+
+#### Escape ####
+
+The One True Location for an Escape key is separated from the rest of the keys, way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location, however, and the nearest one is home to the tilde (er, *grave*) which is commonly found there. In the Ordinary layout the Escape key is found on all layers in the prominent location in the corner next to the 5, which is easy to remember, and yet it isn't natural for those of us with muscle memory flicking our wrists up and to the left looking for Escape.
+
+The Ordinary layout offers as a consolation prize, a Special sequence for Escape: **Special Shift + 1**. This is natural so you can tap the top left button, then the button next to it and get Escape. This gesture works in all layers.
+
+#### Backspace ####
+
+At the top right corner of the Ergodox EZ you can do **Special Shift + 0** to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times.
+
+#### Other Characters ####
+
+The Escape and Backspace special sequences are so useful why not have a few more? You can find dash under 9, left bracket under o, and right bracket under p. That's pretty much all the characters from the top right corner of the keyboard which moved to make room for the columnar layout.
+
+## Errata ##
+
+Some of the symbols on the Symbols layer are produced by the keyboard by "capitalizing" another character (such as *!* from *1*) so when you type that key you will notice the Capitals Shift red LED turn on.
+
+****
+
+The Ordinary Layout for the Ergodox EZ keyboard, v5
+
+Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com
+
+No rights reserved. This software is in the public domain. Credit me if you are friendly but if you're a jerk don't bother.
+
+Keyboard layout images were created with http://www.keyboard-layout-editor.com/ by Ian Prest my thanks to that free service
+
+Details: readme.md
+ https://github.com/nrrkeene/qmk_firmware/tree/master/keyboards/ergodox/keymaps/ordinary
diff --git a/keyboards/ergodox_ez/keymaps/osx_de/keymap.c b/keyboards/ergodox/keymaps/osx_de/keymap.c
index 554813d7e..e3b9e11f4 100644
--- a/keyboards/ergodox_ez/keymaps/osx_de/keymap.c
+++ b/keyboards/ergodox/keymaps/osx_de/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "keymap_german_osx.h"
diff --git a/keyboards/ergodox_ez/keymaps/osx_de/osx_de_highres.png b/keyboards/ergodox/keymaps/osx_de/osx_de_highres.png
index d442a992c..d442a992c 100644
--- a/keyboards/ergodox_ez/keymaps/osx_de/osx_de_highres.png
+++ b/keyboards/ergodox/keymaps/osx_de/osx_de_highres.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/osx_de/readme.md b/keyboards/ergodox/keymaps/osx_de/readme.md
index 5011a9dd6..5011a9dd6 100644
--- a/keyboards/ergodox_ez/keymaps/osx_de/readme.md
+++ b/keyboards/ergodox/keymaps/osx_de/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c b/keyboards/ergodox/keymaps/osx_de_adnw_koy/keymap.c
index 687a5cb8b..6c4312a32 100644
--- a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c
+++ b/keyboards/ergodox/keymaps/osx_de_adnw_koy/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png b/keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png
index 193aa339e..193aa339e 100644
--- a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png
+++ b/keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/keymap.c b/keyboards/ergodox/keymaps/osx_de_experimental/keymap.c
index 21d695894..61b6a4fdb 100644
--- a/keyboards/ergodox_ez/keymaps/osx_de_experimental/keymap.c
+++ b/keyboards/ergodox/keymaps/osx_de_experimental/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "keymap_neo2.h"
diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png b/keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png
index 031d874a7..031d874a7 100644
--- a/keyboards/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png
+++ b/keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/readme.md b/keyboards/ergodox/keymaps/osx_de_experimental/readme.md
index e6a101841..e6a101841 100644
--- a/keyboards/ergodox_ez/keymaps/osx_de_experimental/readme.md
+++ b/keyboards/ergodox/keymaps/osx_de_experimental/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/osx_fr/keymap.c b/keyboards/ergodox/keymaps/osx_fr/keymap.c
index de951666d..7dee284fa 100644
--- a/keyboards/ergodox_ez/keymaps/osx_fr/keymap.c
+++ b/keyboards/ergodox/keymaps/osx_fr/keymap.c
@@ -1,5 +1,5 @@
// French AZERTY version of the default_osx file
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "keymap_french_osx.h"
@@ -184,4 +184,4 @@ void matrix_scan_user(void) {
break;
}
-}; \ No newline at end of file
+};
diff --git a/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c b/keyboards/ergodox/keymaps/osx_kinesis_pnut/keymap.c
index 1032be549..11281df8a 100644
--- a/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c
+++ b/keyboards/ergodox/keymaps/osx_kinesis_pnut/keymap.c
@@ -5,7 +5,7 @@
// Only default layer was remapped all others layers are standard Ergodox EZ
// Very personal mapping of-course, but who knows a starting point for others.
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/keymap.c b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/keymap.c
new file mode 100644
index 000000000..98d2836ab
--- /dev/null
+++ b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/keymap.c
@@ -0,0 +1,231 @@
+/*
+ * This is built out of frustration with OSX / Sierra caps lock delay.
+ * Fake it till you make it!
+ */
+
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "timer.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+#define BLINK_BASE 150U // timer threshold for blinking on MDIA layer
+
+typedef enum onoff_t {OFF, ON} onoff;
+
+#define caps_led_on ergodox_right_led_2_on
+#define caps_led_off ergodox_right_led_2_off
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | | ` | 7 | 8 | 9 | 0 | - | = |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | CapsL | A | S | D | F | G |------| |------| H | J | K | L | ; | " |
+ * |--------+------+------+------+------+------| ~L1 | | ~L1 |------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | Ctrl | Opt | Cmd | Left | Right| | Down | Up | Ctrl | Cmd | Opt |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | L1 | | Alt | Ctrl ]
+ * ,------|------|------| |------+--------+------.
+ * | | | Home | | PgUp | | |
+ * |Backsp| Del |------| |------| Enter | Spc |
+ * | | | End | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+
+ [BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
+ KC_TAB, M(KC_Q), M(KC_W), M(KC_E), M(KC_R), M(KC_T), KC_LBRC,
+ M(KC_CAPS), M(KC_A), M(KC_S), M(KC_D), M(KC_F), M(KC_G),
+ KC_LSFT, M(KC_Z), M(KC_X), M(KC_C), M(KC_V), M(KC_B), KC_FN0,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RGHT,
+ KC_TRNS, KC_FN1,
+ KC_HOME,
+ KC_BSPC, KC_DEL, KC_END,
+ // right hand
+ KC_GRV, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
+ KC_RBRC, M(KC_Y), M(KC_U), M(KC_I), M(KC_O), M(KC_P), KC_BSLS,
+ M(KC_H), M(KC_J), M(KC_K), M(KC_L), KC_SCLN, KC_QUOT,
+ KC_FN0, M(KC_N), M(KC_M), KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_DOWN, KC_UP, KC_RCTL, KC_RGUI, KC_RALT,
+ KC_RALT, KC_RCTL,
+ KC_PGUP,
+ KC_PGDN, KC_ENT, KC_SPC
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ` | F1 | F2 | F3 | F4 | F5 | F6 | | | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | L0 | L2 | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+ [SYMB] = KEYMAP(
+ // left hand
+ KC_GRV ,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_FN3, KC_FN2,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+/* Keymap 2: Media and tenkey
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | BOOTL | | Mute | Vol- | Vol+ | F14 | F15 | | | | NumLk| / | * | - | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | 7 | 8 | 9 | + | |
+ * |--------+------+------+------+------+------| | | |------+-----+-------+------+------+--------|
+ * | | | | | | |------| |------| | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | 1 | 2 | 3 | Enter| |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | 0 | 0 | . | Enter| |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | L1 | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+ // MEDIA AND TENKEY
+ [MDIA] = KEYMAP(
+ KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_F14, KC_F15,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO,
+ KC_FN4, KC_NO,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_NO, KC_NO, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_NO,
+ KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NO,
+ KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO,
+ KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_NO,
+ KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_NO,
+ KC_NO, KC_NO,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ ACTION_LAYER_MOMENTARY(SYMB), // FN0 - Momentary Layer 1 (Symbols)
+ ACTION_LAYER_ON(SYMB,ON_RELEASE), // FN1 - Enable Layer 1 (Symbols)
+ ACTION_LAYER_ON(MDIA,ON_RELEASE), // FN2 - Enable Layer 2 (Media)
+ ACTION_LAYER_OFF(SYMB,ON_RELEASE), // FN3 - Disable Layer 1 (Symbols)
+ ACTION_LAYER_OFF(MDIA,ON_RELEASE), // FN4 - Disable Layer 2 (MMedia)
+ ACTION_LAYER_MOMENTARY(MDIA) // FN5 - Momentary Layer 2 (Mdia)
+};
+
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ static onoff caps_state = OFF;
+ switch(id) {
+ case KC_CAPS:
+ if (record->event.pressed) {
+ // Toggle caps state;
+ if (caps_state == OFF) {
+ // Turn it on then!
+ caps_led_on();
+ caps_state = ON;
+ } else {
+ caps_led_off();
+ caps_state = OFF;
+ }
+ }
+ break;
+ default:
+ if (record->event.pressed) {
+ bool shifted = false;
+ if (caps_state == ON && get_mods() == 0) {
+ register_code(KC_LSFT);
+ shifted = true;
+ }
+ register_code(id);
+ if(shifted) {
+ unregister_code(KC_LSFT);
+ }
+ } else {
+ unregister_code(id);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+}
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+ uint8_t layer = biton32(layer_state);
+
+ static onoff board_led_state = OFF;
+ static uint16_t dt = 0;
+ static uint8_t oldlayer = 0;
+
+ if(oldlayer != layer) {
+ // Layer was just toggled.
+ if(layer == BASE) {
+ ergodox_board_led_off();
+ board_led_state = OFF;
+ } else {
+ ergodox_board_led_on();
+ board_led_state = ON;
+ }
+ } else if (layer >= MDIA) {
+ // We need to do blinking.
+ if(timer_elapsed(dt) > BLINK_BASE) {
+ // toggle
+ dt = timer_read();
+ if(board_led_state == OFF) {
+ ergodox_board_led_on();
+ board_led_state = ON;
+ } else {
+ ergodox_board_led_off();
+ board_led_state = OFF;
+ }
+ }
+ }
+ oldlayer = layer;
+}
diff --git a/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/osx_whiskey_tango_foxtrot_capslock.png b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/osx_whiskey_tango_foxtrot_capslock.png
new file mode 100644
index 000000000..8d49e5e61
--- /dev/null
+++ b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/osx_whiskey_tango_foxtrot_capslock.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/readme.md b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/readme.md
new file mode 100644
index 000000000..618db6ff4
--- /dev/null
+++ b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/readme.md
@@ -0,0 +1,38 @@
+# The extra special ergodox build for MacOS Sierra caps lock users
+
+###Do you
+- Hate the OSX / MacOS caps lock delay?
+- Have an ergodox?
+
+###Then this might just be for you!
+
+[This](http://apple.stackexchange.com/questions/81234/how-to-remove-caps-lock-delay-on-apple-macbook-pro-aluminum-keyboard)
+and [this](http://sleepycow.org/2014/07/removing-the-caps-lock-delay-on-a-macbook/)
+are good workarounds for the caps lock delay, however none of these
+work on Sierra. This abomination of a keymap simulates capslock to the best
+of its abilities.
+This means that it keeps track of caps lock state internally rather than
+sending a caps lock keypress to the OS. It is smart enough to check for
+modifiers, such as Control being held down, and stop it with the hanky panky
+and just send on the key event unmolested even if FakeCaps is enabled. And
+since the macro isn't even registered on the non-alphas, it will not affect
+them regardless. Only in the event that FakeCaps is enabled and an alpha key
+is pressed will it sneak in a shift keydown before the alpha keydown and
+immediately afterward sneaks in a shift keyup. Generally this works well,
+however there is one known issue:
+
+- Holding down a key will only have the first character in caps. For instance,
+ with caps lock on, if you hold down the 'a' key, you get:
+
+ ```
+ Aaaaaaaaaaaaaaaaaa
+ ```
+
+I have only tested this on an original Ergodox with a Teensy 2.0.
+
+####Some other small tweaks
+ - Layer 0 board light is off
+ - Layer 1 board light is on solid
+ - Layer 2 board light blinks at speed controlled by BLINK_BASE
+
+![osx whiskey tango foxtrot](osx_whiskey_tango_foxtrot_capslock.png)
diff --git a/keyboards/ergodox/keymaps/phoenix/keymap.c b/keyboards/ergodox/keymaps/phoenix/keymap.c
new file mode 100644
index 000000000..624817d47
--- /dev/null
+++ b/keyboards/ergodox/keymaps/phoenix/keymap.c
@@ -0,0 +1,184 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | _ | | Del | 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | = | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
+ * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Grv/L1| '" |AltShf| Left | Right| | Down | UP | [ | ] | ~L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | App | Home | | Alt |Ctrl/Esc|
+ * ,------|------|------| |------+--------+------.
+ * | | | End | | PgUp | | |
+ * | Space|Backsp|------| |------| Enter |Space |
+ * | |ace | LGui | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_MINS),
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
+ KC_EQL, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
+ LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
+ ALT_T(KC_APP), KC_HOME,
+ KC_END,
+ KC_SPC,KC_BSPC,KC_LGUI,
+ // right hand
+ KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ 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),GUI_T(KC_QUOT),
+ MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
+ KC_DOWN,KC_UP ,KC_LBRC,KC_RBRC, KC_FN1,
+ KC_LALT, CTL_T(KC_ESC),
+ KC_PGUP,
+ KC_PGDN,KC_ENT, KC_SPC
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | F11 | F12 | | | | | | | Up | 7 | 8 | 9 | * | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | & | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | 0 | 0 | . | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS,KC_F11, KC_F12, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
+ KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_0, KC_0, KC_DOT, KC_EQL, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | Lclk | Rclk | |VolDn |VolUp | Mute | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | |Brwser|
+ * | | |------| |------| |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/keymaps/phoenix/readme.md b/keyboards/ergodox/keymaps/phoenix/readme.md
new file mode 100644
index 000000000..b1053bfb7
--- /dev/null
+++ b/keyboards/ergodox/keymaps/phoenix/readme.md
@@ -0,0 +1,10 @@
+# ErgoDox EZ Phoenix Configuration
+
+I started working using the default layout. The changes that I made are largely things that I consistely do wrong.
+
+As a programmer I hit tab a lot for autocomplete so that muscle memory is very difficult to re-write. The stragest change might be all the keys that I cleared in the Code layer. This is mainly to facilitate quickly typing uuids, as sometimes it is quite tedious to copy/paste them from one window to the other.
+
+## Changelog
+
+* April 25, 2016 (V1.0):
+ * Initial submission.
diff --git a/keyboards/ergodox_ez/keymaps/plover/keymap.c b/keyboards/ergodox/keymaps/plover/keymap.c
index a991e6082..12b3aa212 100644
--- a/keyboards/ergodox_ez/keymaps/plover/keymap.c
+++ b/keyboards/ergodox/keymaps/plover/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
@@ -160,7 +160,7 @@ KEYMAP(
[PLVR] = KEYMAP( // layout: layer 4: Steno for Plover
// left hand
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO,
+ KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T,
KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
@@ -169,7 +169,7 @@ KEYMAP(
KC_C, KC_V, KC_NO,
// right hand
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
- KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
+ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO,
diff --git a/keyboards/ergodox_ez/keymaps/plums/keymap.c b/keyboards/ergodox/keymaps/plums/keymap.c
index 46eb2e42b..2853455e3 100644
--- a/keyboards/ergodox_ez/keymaps/plums/keymap.c
+++ b/keyboards/ergodox/keymaps/plums/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/plums/plums.png b/keyboards/ergodox/keymaps/plums/plums.png
index 2f127c4ca..2f127c4ca 100644
--- a/keyboards/ergodox_ez/keymaps/plums/plums.png
+++ b/keyboards/ergodox/keymaps/plums/plums.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/plums/readme.md b/keyboards/ergodox/keymaps/plums/readme.md
index b72329eef..b72329eef 100644
--- a/keyboards/ergodox_ez/keymaps/plums/readme.md
+++ b/keyboards/ergodox/keymaps/plums/readme.md
diff --git a/keyboards/ergodox/keymaps/pvinis/Changelog.md b/keyboards/ergodox/keymaps/pvinis/Changelog.md
new file mode 100644
index 000000000..e5816200b
--- /dev/null
+++ b/keyboards/ergodox/keymaps/pvinis/Changelog.md
@@ -0,0 +1,7 @@
+## v0.3
+
+*2016-10-11*
+
+### Starting point
+
+* The starting point of this keymap. A beginner layout, and a couple placeholders.
diff --git a/keyboards/ergodox/keymaps/pvinis/Makefile b/keyboards/ergodox/keymaps/pvinis/Makefile
new file mode 100644
index 000000000..7ceb51ce4
--- /dev/null
+++ b/keyboards/ergodox/keymaps/pvinis/Makefile
@@ -0,0 +1,9 @@
+CONSOLE_ENABLE = no # for debugging
+
+SLEEP_LED_ENABLE = no # no led blinking while sleeping
+NKRO_ENABLE = yes # disable for windows
+TAP_DANCE_ENABLE = yes # tap-tap-tap
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/ergodox/keymaps/pvinis/Readme.md b/keyboards/ergodox/keymaps/pvinis/Readme.md
new file mode 100644
index 000000000..af2721054
--- /dev/null
+++ b/keyboards/ergodox/keymaps/pvinis/Readme.md
@@ -0,0 +1,65 @@
+pvinis' keymap
+==============
+
+This is a getting-used-to keymap for the [ErgoDox EZ][ez]. It's very much a work in progress.
+
+[ez]: https://ergodox-ez.com/
+
+## Table of Contents
+
+* [Todo](#todo)
+* [Layouts](#layouts)
+ - [Base layer](#base-layer)
+ - [Beginner layer](#beginner-layer)
+ - [QWERTY layer](#qwerty-layer)
+ - [CARPALX layer](#carpalx-layer)
+ - [System Control layer](#system-control-layer)
+ - [Template layers](#template-layers)
+* [Building](#building)
+
+# Todo
+
+- [ ] Generate images from keymap
+- [ ] Implement algernon's heatmap
+- [ ] Implement `KC_POP`
+
+# Layouts
+
+## Base layer
+
+This is the base layer that contains the common buttons of all keymaps. Right now, it has the top left button as a `flash` button when it's tapped 4 times, and the two thumb islands. The islands contain the `space` and `enter` keys on the right, the `backspace` and `shift` on the left, and all the 1x1 keys are just layer switches.
+Every time I connect the keyboard, I press the `BEGIN` layer switch, and then start typing.
+Recently, I added a few application "shortcuts", that basically call `ctrl`+`alt`+`cmd`+`<key>`, and `<key>` is `S` for Slack, `X` for Xcode, `M` for Messenger. Using [Hammerspoon][hammerspoon], I show/hide the application.
+
+[hammerspoon]: http://www.hammerspoon.org/
+
+## Beginner layer
+
+This is a basic keymap I use right now until I'm comfortable typing on the Ergodox. Currently uses a QWERTY layout, and the `([{}])` on the middle keys. Not a perfect layout, and its going to go away at some point, but for now thats my daily driver.
+
+## QWERTY layer
+
+This is basically the same as the `BEGIN` layer, but it might go away. I'm not using it, but I should have a QWERTY layout on the keyboard, in case someone else wants to try it out, or if I completely forget how keyboards work! At some point, this and the `BEGIN` layer will become one.
+
+## CARPALX layer
+
+This is here as a placeholder. I want to transition to [Carpalx QGMLWY][carpalx] or [White][white] at some point. They both look very interesting and more comfortable to type on, but after I'm confident with typing on the Ergodox.
+
+[carpalx]: http://mkweb.bcgsc.ca/carpalx/?full_optimization
+[white]: https://github.com/mw8/white_keyboard_layout
+
+## System Control layer
+
+This one is a layer that, in time, will have controls like mouse movement, volume up/down, mute, sleep, restart, shutdown, etc.
+
+## Template layers
+
+I have two commented out layers that are just templates, so I can easily create a new layer.
+
+# Building
+
+```
+$ git clone https://github.com/qmk/qmk_firmware.git
+$ cd qmk_firmware/keyboards/ergodox/keymaps/pvinis
+$ make
+```
diff --git a/keyboards/ergodox/keymaps/pvinis/keymap.c b/keyboards/ergodox/keymaps/pvinis/keymap.c
new file mode 100644
index 000000000..3c4911884
--- /dev/null
+++ b/keyboards/ergodox/keymaps/pvinis/keymap.c
@@ -0,0 +1,475 @@
+// pvinis' ergodox keymap
+
+#include "ergodox.h"
+#include "mousekey.h"
+
+// easier name for left ctrl-alt-gui
+#define ALLM(kc) LCAG(kc)
+
+// layers
+enum {
+ BASE = 0,
+ BEGIN,
+ QWERTY,
+ CARPALX,
+ SYSCTL,
+ MOUSE,
+};
+
+// extra keys
+enum {
+ NONE = 0,
+
+ // tap dance
+ TD_FLSH, // flash keyboard
+ TD_LAYR, // SYSCTL and MOUSE layer switch
+};
+
+// application selection
+// this is sending ctrl-alt-gui-<key>, and this is picked up by hammerspoon
+#define AP_SLCK ALLM(KC_S)
+#define AP_XCOD ALLM(KC_X)
+#define AP_MSGR ALLM(KC_M)
+
+// keymaps
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* BASE
+ * the base of the keyboard.
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * |4x FLASH| | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | |SYSCTL| | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * |BEGIN |QWERTY| | | |
+ * ,------|------|------| |------+--------+------.
+ * | | |CARPAL| |Slack | | |
+ * |Backsp|LShift|------| |------| Enter |Space |
+ * | | |SYSCTL| |Msngr | | |
+ * `--------------------' `----------------------'
+ */
+[BASE] = KEYMAP(
+ TD(TD_FLSH) ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+
+ ,TG(BEGIN) ,TD(TD_LAYR)
+ ,TG(MOUSE)
+ ,KC_BSPC ,KC_LSFT ,TD(TD_LAYR)
+
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,MO(SYSCTL) ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+
+ ,TG(SYSCTL) ,KC_NO
+ ,AP_SLCK
+ ,AP_MSGR ,KC_ENT ,KC_SPC
+),
+
+/* BEGIN
+ * a beginner's keymap i currently use.
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | 1 | 2 | 3 | 4 | 5 | opt | | 6 | 7 | 8 | 9 | 0 | - | = |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | ; | Enter |
+ * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | ` | Cmd | | Cmd | | | | | ' | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+--------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `----------------------'
+ */
+[BEGIN] = KEYMAP(
+ KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_LALT
+,KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC
+,CTL_T(KC_ESC) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G
+,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LPRN
+,KC_TRNS ,KC_GRV ,KC_LGUI ,KC_LEFT ,KC_RIGHT
+
+ ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS
+
+ ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS ,KC_EQL
+ ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS
+ ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_ENT
+ ,KC_RPRN ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT
+ ,KC_TRNS ,KC_DOWN ,KC_TRNS ,KC_QUOT ,KC_TRNS
+
+ ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS
+),
+
+/* QWERTY
+ * the default qwerty keymap. not really used, but i'll keep it here for now.
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | Q | W | E | R | T | | | | Y | U | I | O | P | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | A | S | D | F | G |------| |------| H | J | K | L | ; | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | Z | X | C | V | B | | | | N | M | , | . | / | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+--------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `----------------------'
+ */
+[QWERTY] = KEYMAP(
+ KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_TRNS
+,KC_TRNS ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_TRNS
+,KC_TRNS ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G
+,KC_TRNS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,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_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS
+ ,KC_TRNS ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_TRNS
+ ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_TRNS
+ ,KC_TRNS ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+
+ ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS
+),
+
+/* CARPALX
+ * the keymap i would like to transition to.
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | 1 | 2 | 3 | 4 | 5 | | | RIGHT| 6 | 7 | 8 | 9 | 0 | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | Q | G | M | L | W | | | L1 | Y | F | U | B | ; | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | D | S | T | N | R |------| |------| I | A | E | O | H | |
+ * |--------+------+------+------+------+------| | | Meh |------+------+------+------+------+--------|
+ * | | Z | X | C | V | J | | | | K | P | , | . | / | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | Up | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[CARPALX] = KEYMAP(
+ KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_TRNS
+,KC_TRNS ,KC_Q ,KC_G ,KC_M ,KC_L ,KC_W ,KC_TRNS
+,KC_TRNS ,KC_D ,KC_S ,KC_T ,KC_N ,KC_R
+,KC_TRNS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_J ,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_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS
+ ,KC_TRNS ,KC_Y ,KC_F ,KC_U ,KC_B ,KC_SCLN ,KC_TRNS
+ ,KC_I ,KC_A ,KC_E ,KC_O ,KC_H ,KC_TRNS
+ ,KC_TRNS ,KC_K ,KC_P ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+
+ ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS
+),
+
+/* SYSCTL
+ * a keymap to control my system.
+ *
+ * ,--------------------------------------------------. ,------------------------------------------------------.
+ * | ^ | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+----------+------+------+--------|
+ * | | | | | | | | | | Mute | Home | Up | End | | |
+ * |--------+------+------+------+------+------| | | |------+------+----------+------+------+--------|
+ * | | | | | | |------| |------|VolUp | Left | Down |Right | | Lock |
+ * |--------+------+------+------+------+------| | | |------+------+----------+------+------+--------|
+ * | | | | | | | | | |VolDn | Prev |Play/Pause| Next | | Sleep |
+ * `--------+------+------+------+------+-------------' `-------------+------+----------+------+------+--------'
+ * | | | | | | | | | | | Power|
+ * `----------------------------------' `--------------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | ^ | | | | |
+ * `--------------------' `--------------------'
+ */
+[SYSCTL] = KEYMAP(
+ KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+
+ ,KC_NO ,KC_NO
+ ,KC_NO
+ ,KC_NO ,KC_NO ,KC_TRNS
+
+ /*,KC_POP /// */,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ /* /// ,KC_PTRN*/,KC_NO ,KC_MUTE ,KC_HOME ,KC_UP ,KC_END ,KC_NO ,KC_NO
+ ,KC_VOLU ,KC_LEFT ,KC_DOWN ,KC_RGHT ,KC_NO ,LCTL(LSFT(KC_PWR))
+ ,KC_NO ,KC_VOLD ,KC_MPRV ,KC_MPLY ,KC_MNXT ,KC_NO ,KC_SLEP
+ ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_PWR
+
+ ,KC_NO ,KC_NO
+ ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO
+),
+
+/* MOUSE
+ * a keymap to control my system.
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ^ | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | MsUp | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | |MidClk|
+ * ,------|------|------| |------+------+------.
+ * | | | | | |Left |Right |
+ * | | |------| |------| Click| Click|
+ * | | | ^ | | | | |
+ * `--------------------' `--------------------'
+ */
+[MOUSE] = KEYMAP(
+ KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+
+ ,KC_NO ,KC_NO
+ ,KC_NO
+ ,KC_NO ,KC_NO ,KC_TRNS
+
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+
+ ,KC_NO ,KC_NO
+ ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO
+),
+
+/* TEMPLATE
+ * keymap template with transparent and non-transparent keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+--------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `----------------------'
+ */
+/*
+[TEMPLATE] = KEYMAP(
+ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+
+ ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS
+
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
+
+ ,KC_TRNS ,KC_TRNS
+ ,KC_TRNS
+ ,KC_TRNS ,KC_TRNS ,KC_TRNS
+),
+[TEMPLATE] = KEYMAP(
+ KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+
+ ,KC_NO ,KC_NO
+ ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO
+
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+
+ ,KC_NO ,KC_NO
+ ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO
+),
+*/
+};
+
+// keyboard initialization
+void matrix_init_user() {
+ ergodox_led_all_on();
+ for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) {
+ ergodox_led_all_set(i);
+ wait_ms(5);
+ }
+ wait_ms(1000);
+ for (int i = LED_BRIGHTNESS_LO; i > 0; i--) {
+ ergodox_led_all_set(i);
+ wait_ms(10);
+ }
+ ergodox_led_all_off();
+}
+
+// light up leds based on the layer
+void matrix_scan_user(void) {
+ uint8_t layer = biton32(layer_state);
+
+ switch(layer) {
+ case SYSCTL:
+ ergodox_right_led_3_on();
+ break;
+ case MOUSE:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ break;
+ }
+}
+
+// extra keys
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ switch (id) {
+ }
+ return MACRO_NONE;
+}
+
+// tap dances
+
+// flash keyboard on 4x tap, with leds
+void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) {
+ switch (state->count) {
+ case 1:
+ ergodox_right_led_3_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ case 3:
+ ergodox_right_led_1_on();
+ break;
+ case 4:
+ ergodox_right_led_3_off();
+ wait_ms(50);
+ ergodox_right_led_2_off();
+ wait_ms(50);
+ ergodox_right_led_1_off();
+ break;
+ }
+}
+
+void flash_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count >= 4) {
+ reset_keyboard();
+ reset_tap_dance(state);
+ }
+}
+
+void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) {
+ ergodox_right_led_1_off();
+ wait_ms(50);
+ ergodox_right_led_2_off();
+ wait_ms(50);
+ ergodox_right_led_3_off();
+}
+
+// SYSCTL on first tap, MOUSE ON second tap
+void layers_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
+ uint8_t layer = biton32(layer_state);
+
+ switch(state->count) {
+ case 1:
+ switch(layer) {
+ case SYSCTL:
+ layer_off(SYSCTL);
+ break;
+ case MOUSE:
+ layer_off(MOUSE);
+ break;
+ default:
+ layer_on(SYSCTL);
+ break;
+ }
+ break;
+ case 2:
+ layer_on(MOUSE);
+ break;
+ }
+}
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ),
+ [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ),
+};
diff --git a/keyboards/ergodox/keymaps/replicaJunction/config.h b/keyboards/ergodox/keymaps/replicaJunction/config.h
new file mode 100644
index 000000000..d32b46e4e
--- /dev/null
+++ b/keyboards/ergodox/keymaps/replicaJunction/config.h
@@ -0,0 +1,63 @@
+/*
+Config file - Ergodox QMK with replicaJunction layout
+
+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 KEYBOARDS_ERGODOX_CONFIG_H_
+#define KEYBOARDS_ERGODOX_CONFIG_H_
+
+#define MOUSEKEY_DELAY 100
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_MAX_SPEED 3
+#define MOUSEKEY_TIME_TO_MAX 10
+
+#define TAPPING_TOGGLE 1
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+// MS the button needs to be held before a tap becomes a hold (default: 200)
+#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.)
+
+// I don't have any locking keys, so I don't need these features
+
+
+/* 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
+
+/* Prevent modifiers from sticking when switching layers */
+/* Uses 5 bytes of memory per 8 keys, but makes sure modifiers don't get "stuck" switching layers */
+#define PREVENT_STUCK_MODIFIERS
+
+/* 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)) \
+)
+
+#ifdef SUBPROJECT_ez
+ #include "ez/config.h"
+#endif
+#ifdef SUBPROJECT_infinity
+ #include "infinity/config.h"
+#endif
+
+
+#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */
diff --git a/keyboards/ergodox/keymaps/replicaJunction/keymap.c b/keyboards/ergodox/keymaps/replicaJunction/keymap.c
new file mode 100644
index 000000000..c9213553c
--- /dev/null
+++ b/keyboards/ergodox/keymaps/replicaJunction/keymap.c
@@ -0,0 +1,336 @@
+/*
+ * Keyboard: Ergodox
+ * Keymap: replicaJunction
+ * Version: 1.2
+ *
+ * This keymap is designed to complement my Atreus keyboard layout, found in keyboards/atreus.
+ * The Atreus keyboard is a 40% board whose design was heavily influenced by the Ergodox, and I now
+ * have both keyboards, so I've designed these layouts in an effort to make switching between the
+ * two as easy as possible.
+ *
+ * I've also tried to make use of the extra keys on the Ergodox in as logical of a manner as possible,
+ * adding to the layers in the Atreus config without disturbing what's there already. This allows for
+ * things like F11-F20, the Application (Menu) key, and better media key placement.
+ *
+ * The default key layout in this keymap is Colemak-ModDH. Information on that layout can be found
+ * here: https://colemakmods.github.io/mod-dh/
+ */
+
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define _CO 0 // Colemak
+#define _QW 1 // QWERTY
+#define _ME 2 // media keys
+#define _NU 3 // numpad
+#define _EX 4 // extend
+#define _GA 5 // mouse overlay for gaming
+
+// Some quick aliases, just to make it look pretty
+#define _______ KC_TRNS
+#define KCX_CGR LCTL(KC_GRV)
+#define KX_STAB LSFT(KC_TAB)
+#define KX_COPY LCTL(KC_C)
+#define KX_CUT LCTL(KC_X)
+#define KX_PAST LCTL(KC_V)
+#define KX_UNDO LCTL(KC_Z)
+
+; // This doesn't do anything. It's just for VSCode because its syntax highlighting is weird for the above #define statements.
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * Keymap: Colemak-ModDH
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | | 6 | 7 | 8 | 9 | 0 | = |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | LCtrl | Q | W | F | P | B | Home | | BkSp | J | L | U | Y | ; | - |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Tab | A | R | S | T | G |------| |------| M | N | E | I | O | ' |
+ * |--------+------+------+------+------+------| Hyper| | \ |------+------+------+------+------+--------|
+ * | LShft | Z | X | C | D | V | | | | K | H | , | , | / | RShft |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | LGui | [ | ] |CtlShf| LAlt | | _EX | - | ' | = | \ |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | LCtrl| ~GA | | Left | Right|
+ * ,------|------|------| |------+------+------.
+ * |LCtrl/| LAlt/| Home | | Up | Alt/| _NU/ |
+ * | BkSp | Del |------| |------| Enter| Space|
+ * | | | _NU | | Down | | |
+ * `--------------------' `--------------------'
+ */
+[_CO] = KEYMAP(
+ // left hand
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
+ KC_LCTL,KC_Q, KC_W, KC_F, KC_P, KC_B, KC_HOME,
+ KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_G,
+ KC_LSFT,KC_Z, KC_X, KC_C, KC_D, KC_V, ALL_T(KC_NO),
+ KC_LGUI,KC_LBRC,KC_RBRC, LCTL(KC_LSFT), KC_LALT,
+
+ KC_LCTL, TG(_GA),
+ KC_HOME,
+ CTL_T(KC_BSPC), ALT_T(KC_DEL), MO(_NU),
+ // right hand
+ KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
+ KC_BSPC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,KC_MINS,
+ KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+ KC_BSLS, KC_K, KC_H, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,
+ MO(_EX),KC_MINS,KC_QUOT,KC_EQL, KC_BSLS,
+
+ KC_LEFT, KC_RGHT,
+ KC_UP,
+ KC_DOWN, ALT_T(KC_ENT), LT(_NU,KC_SPC)
+ ),
+
+ /*
+ * Keymap: QWERTY layout.
+ *
+ * This is optimized for gaming, not typing, so there aren't as many macros
+ * as the Dvorak layer. Some of the keys have also been moved to "game-
+ * like" locations, such as making the spacebar available to the left thumb,
+ * and repositioning the arrow keys at the bottom right corner.
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | | 6 | 7 | 8 | 9 | 0 | = |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | LCtrl | Q | W | E | R | T | Home | | BkSp | Y | U | I | O | P | - |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Tab | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
+ * |--------+------+------+------+------+------| Hyper| | \ |------+------+------+------+------+--------|
+ * | LShft | Z | X | C | V | B | | | | N | M | , | . | / | RShft |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | LGui | ` | \ |CtlShf| _NU | | _EX | - | ' | = | \ |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | LCtrl| ~GA | | Left | Right|
+ * ,------|------|------| |------+------+------.
+ * |LCtrl/| LAlt/| Home | | Up | Alt/| _NU/ |
+ * | BkSp | Del |------| |------| Enter| Space|
+ * | | | _NU | | Down | | |
+ * `--------------------' `--------------------'
+ */
+[_QW] = KEYMAP( // Layer1: QWERTY
+ // left hand
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
+ KC_LCTL,KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME,
+ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
+ KC_LGUI,KC_GRV, KC_SLSH,LCTL(KC_LSFT), MO(_NU),
+
+ KC_LCTL,TG(_GA),
+ KC_HOME,
+ CTL_T(KC_BSPC), ALT_T(KC_DEL), MO(_NU),
+ // right hand
+ KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
+ KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
+ KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,
+ KC_BSLS, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,
+ MO(_EX),KC_MINS,KC_QUOT,KC_EQL, KC_BSLS,
+
+ KC_LEFT, KC_RGHT,
+ KC_UP,
+ KC_DOWN, ALT_T(KC_ENT), LT(_NU,KC_SPC)
+ ),
+
+ /*
+ * Keymap: Numbers and symbols
+ *
+ * Note that the number keys here are actually numpad keystrokes. This often doesn't matter, but it may be relevant in a few cases.
+ * That's why the Num Lock key exists on this layer - just in case.
+ *
+ * This layer also contains the layout switches.
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | & | | | | / | 7 | 8 | 9 | * | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ~ |------| |------| | | 4 | 5 | 6 | - | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ` | | | | \ | 1 | 2 | 3 | + | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | |QWERTY|Colemk| | | | 0 | . | = | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * |NumLck| RESET| | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[_NU] = KEYMAP(
+ // left hand
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______,
+ _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, _______,
+ _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_TILD,
+ _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, _______,
+ _______, DF(_QW), DF(_CO), _______, _______,
+
+ KC_NLCK,RESET,
+ _______,
+ _______,_______,_______,
+ // right hand
+ _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
+ _______, KC_SLSH, KC_P7, KC_P8, KC_P9, KC_PAST, _______,
+ KC_PIPE, KC_P4, KC_P5, KC_P6, KC_PMNS, _______,
+ _______, KC_BSLS, KC_P1, KC_P2, KC_P3, KC_PPLS, _______,
+ KC_P0, KC_PDOT, KC_EQL, _______, _______,
+
+ _______, _______,
+ _______,
+ _______, _______, _______
+ ),
+
+ /*
+ * Keymap: Extend
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F11 | F12 | F13 | F14 | F15 | Mute | | | F16 | F17 | F18 | F19 | F20 | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | Ctrl`| Vol | | | PgUp | Home | Up | End | Del | |
+ * |--------+------+------+------+------+------| Up | | |------+------+------+------+------+--------|
+ * | | | Gui | Alt | Ctrl | |------| |------| PgDn | Left | Down | Right| BkSp | Menu |
+ * |--------+------+------+------+------+------| Vol | | |------+------+------+------+------+--------|
+ * | | Undo | Cut | Copy | | Paste| Down | | | | ^Tab | Tab | |Insert| PrntScr|
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ *
+ * Ctrl+` is a keyboard shortcut for the program ConEmu, which provides a Quake-style drop-down command prompt.
+ *
+ */
+[_EX] = KEYMAP(
+ // left hand
+ _______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_MUTE,
+ _______, _______, _______, _______, _______, KCX_CGR, KC_VOLU,
+ _______, _______, KC_LGUI, KC_LALT, KC_LCTL, _______,
+ _______, KX_UNDO, KX_CUT, KX_COPY, _______, KX_PAST, KC_VOLD,
+ _______, _______, _______, _______, _______,
+
+ _______,_______,
+ _______,
+ _______,_______,_______,
+ // right hand
+ _______, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______,
+ _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, _______,
+ KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, KC_MENU,
+ _______, _______, KX_STAB, KC_TAB, _______, KC_INS, KC_PSCR,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______
+ ),
+
+ /*
+ * Keymap: Gaming
+ *
+ * Provides a mouse overlay for the right hand, and also moves some "gamer friendly" keys to the left, such as space.
+ * This layer also removes a lot of dual-role keys, as when gaming, it's nicer not to need to keep track of those.
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | |WhlUp | MsUp |WhlDn | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| |MsLeft|MsDown|MsRght| | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | LCtrl| | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | ~_GA | | |MClick|
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | Space| |------| |------|RClick|LClick|
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[_GA] = KEYMAP(
+ // left hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ KC_LCTL, _______, _______, _______, _______,
+
+ _______,_______,
+ _______,
+ KC_SPC, _______,_______,
+
+ // right hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______,
+ _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, KC_BTN3,
+ _______,
+ _______, KC_BTN2, KC_BTN1
+ ),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(_NU) // FN1 - Momentary Layer 1 (Numbers and symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+ // uint8_t default_layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+
+ switch (layer) {
+ case _CO:
+ ergodox_right_led_1_on();
+ break;
+ case _QW:
+ ergodox_right_led_2_on();
+ break;
+ case _NU:
+ ergodox_right_led_3_on();
+ break;
+ case _GA:
+ ergodox_right_led_1_on();
+ ergodox_right_led_2_on();
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/keymaps/replicaJunction/readme.md b/keyboards/ergodox/keymaps/replicaJunction/readme.md
new file mode 100644
index 000000000..8c4c03353
--- /dev/null
+++ b/keyboards/ergodox/keymaps/replicaJunction/readme.md
@@ -0,0 +1,5 @@
+# replicaJunction - Ergodox (EZ) Layout
+
+I designed this layout, along with my complimentary Atreus layout, to address the challenge of having an Ergodox as my primary home keyboard and an Atreus as my primary work board. I wanted a layout that provided symbols in comfortable locations on both keyboards - but didn't require me to learn two separate sets of symbols for the two keyboards.
+
+I had originally used several keys as dual-role keys, where a tap would send a keypress and a long press and hold would trigger a different layer. However, after several months of experimenting with those ideas, I've begun moving away from that design due to performance. It's very hard to strike a balance between the time it takes to press a key normally while typing and the "delay" in the typing motion needed to trigger the alternate layer. I was frequently getting strange characters and artifacts because I pressed the function key + the symbol key too quickly, and the layer never shifted. \ No newline at end of file
diff --git a/keyboards/ergodox/keymaps/reset_eeprom/keymap.c b/keyboards/ergodox/keymaps/reset_eeprom/keymap.c
new file mode 100644
index 000000000..f708454ce
--- /dev/null
+++ b/keyboards/ergodox/keymaps/reset_eeprom/keymap.c
@@ -0,0 +1,140 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+enum custom_keycodes {
+ PLACEHOLDER = SAFE_RANGE, // can always be here
+ EPRM,
+ VRSN,
+ RGB_SLD
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
+ * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | App | LGui | | Alt |Ctrl/Esc|
+ * ,------|------|------| |------+--------+------.
+ * | | | Home | | PgUp | | |
+ * | Space|Backsp|------| |------| Tab |Enter |
+ * | |ace | End | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ EPRM, EPRM, EPRM, EPRM, EPRM, EPRM, EPRM,
+ EPRM, EPRM, EPRM, EPRM, EPRM, EPRM, EPRM,
+ EPRM, EPRM, EPRM, EPRM, EPRM, EPRM,
+ EPRM, EPRM, EPRM, EPRM, EPRM, EPRM, EPRM,
+ EPRM, EPRM, EPRM, EPRM,EPRM,
+ EPRM, EPRM,
+ EPRM,
+ EPRM,EPRM,EPRM,
+ // right hand
+ EPRM, EPRM, EPRM, EPRM, EPRM, EPRM, EPRM,
+ EPRM, EPRM, EPRM, EPRM, EPRM, EPRM, EPRM,
+ EPRM, EPRM, EPRM, EPRM, EPRM,EPRM,
+ EPRM,EPRM, EPRM, EPRM,EPRM, EPRM, EPRM,
+ EPRM, EPRM,EPRM,EPRM, EPRM,
+ EPRM, EPRM,
+ EPRM,
+ EPRM,EPRM, EPRM
+ )
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ break;
+ case 1:
+ if (record->event.pressed) { // For resetting EEPROM
+ eeconfig_init();
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ // dynamically generate these.
+ case EPRM:
+ if (record->event.pressed) {
+ eeconfig_init();
+ }
+ return false;
+ break;
+ case VRSN:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ return false;
+ break;
+ case RGB_SLD:
+ if (record->event.pressed) {
+ #ifdef RGBLIGHT_ENABLE
+ rgblight_mode(1);
+ #endif
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/keymaps/robot_test_layout/keymap.c b/keyboards/ergodox/keymaps/robot_test_layout/keymap.c
new file mode 100644
index 000000000..e9e2597d7
--- /dev/null
+++ b/keyboards/ergodox/keymaps/robot_test_layout/keymap.c
@@ -0,0 +1,151 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+
+enum custom_keycodes {
+ PLACEHOLDER = SAFE_RANGE, // can always be here
+ RGB_FF0000,
+ RGB_00FF00,
+ RGB_0000FF,
+ RGB_FFFFFF,
+ RGB_TOGGLE,
+ LED1,
+ LED2,
+ LED3
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = KEYMAP(
+ RGB_TOGGLE, RGB_FF0000, RGB_00FF00, RGB_0000FF, RGB_FFFFFF, KC_5, KC_LPRN,
+ KC_GRAVE, KC_A, KC_B, KC_C, KC_D, KC_E, KC_EXLM,
+ KC_HASH, KC_J, KC_K, KC_L, KC_M, KC_N,
+ KC_AMPR, KC_T, KC_U, KC_V, KC_W, KC_X, KC_DLR,
+ KC_PIPE, KC_R, KC_PLUS, KC_LCBR, KC_RCBR,
+
+ KC_F, KC_G,
+ KC_H,
+ KC_P, KC_O, KC_I,
+
+
+
+ // RIGHT HAND
+ KC_RPRN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ KC_AT, KC_F, KC_G, KC_H, KC_I, KC_COLN, KC_BSLS,
+ KC_O, KC_P, KC_Q, KC_R, KC_S, KC_QUOT,
+ LSFT(KC_COMM), KC_Y, KC_Z, KC_COMM, KC_DOT, KC_SLSH, KC_ASTR,
+ KC_A, KC_B, KC_C, KC_D, KC_PIPE,
+
+ LED1, KC_E,
+ LED2,
+ LED3, KC_J, KC_K
+ )
+};
+
+
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(1)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+bool status_led1_on = false, status_led2_on = false, status_led3_on = false;
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ // dynamically generate these.
+ case RGB_FF0000:
+ if (record->event.pressed) {
+ #ifdef RGBLIGHT_ENABLE
+ EZ_RGB(0xff0000UL);
+ register_code(KC_1); unregister_code(KC_1);
+ #endif
+ }
+ return false;
+ break;
+ case RGB_00FF00:
+ if (record->event.pressed) {
+ #ifdef RGBLIGHT_ENABLE
+ EZ_RGB(0x00ff00UL);
+ register_code(KC_2); unregister_code(KC_2);
+ #endif
+ }
+ return false;
+ break;
+ case RGB_0000FF:
+ if (record->event.pressed) {
+ #ifdef RGBLIGHT_ENABLE
+ EZ_RGB(0x0000ffUL);
+ register_code(KC_3); unregister_code(KC_3);
+ #endif
+ }
+ return false;
+ break;
+ case RGB_FFFFFF:
+ if (record->event.pressed) {
+ #ifdef RGBLIGHT_ENABLE
+ EZ_RGB(0xffffffUL);
+ register_code(KC_4); unregister_code(KC_4);
+ #endif
+ }
+ return false;
+ break;
+ case RGB_TOGGLE:
+ if (record->event.pressed) {
+ #ifdef RGBLIGHT_ENABLE
+ rgblight_toggle();
+ register_code(KC_EQL); unregister_code(KC_EQL);
+ #endif
+ }
+ return false;
+ break;
+ case LED1:
+ if (record->event.pressed) {
+ if(status_led1_on) {
+ ergodox_right_led_1_off();
+ status_led1_on = false;
+ } else {
+ ergodox_right_led_1_on();
+ status_led1_on = true;
+ }
+ }
+ return false;
+ break;
+ case LED2:
+ if (record->event.pressed) {
+ if(status_led2_on) {
+ ergodox_right_led_2_off();
+ status_led2_on = false;
+ } else {
+ ergodox_right_led_2_on();
+ status_led2_on = true;
+ }
+ }
+ return false;
+ break;
+ case LED3:
+ if (record->event.pressed) {
+ if(status_led3_on) {
+ ergodox_right_led_3_off();
+ status_led3_on = false;
+ } else {
+ ergodox_right_led_3_on();
+ status_led3_on = true;
+ }
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/ergodox/keymaps/robot_test_layout/readme.md b/keyboards/ergodox/keymaps/robot_test_layout/readme.md
new file mode 100644
index 000000000..45dc2aa76
--- /dev/null
+++ b/keyboards/ergodox/keymaps/robot_test_layout/readme.md
@@ -0,0 +1,5 @@
+# Robot test layout
+
+Use this layout if you like to pretend you're [Norman](https://www.youtube.com/watch?v=-sbxFBay-tg), the ErgoDox EZ manufacturing robot.
+
+It's really meant just for internal use, but we're posting it on GitHub anyway, because hurray to open source. :)
diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c
new file mode 100644
index 000000000..2c6430440
--- /dev/null
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c
@@ -0,0 +1,46 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define BASE 0
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [BASE] = KEYMAP(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5,
+ KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_BSLS,
+ KC_LCTRL, KC_A, KC_S, KC_E, KC_T, KC_G,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC,
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_LGUI,
+ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE,
+ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU,
+ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_LALT,
+ //
+ /*-*/ KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
+ /*-*/ KC_NO, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS,
+ /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT,
+ /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ /*-*/ /*-*/ /*-*/ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
+ KC_MPLY, KC_MNXT,
+ KC_MPRV,
+ KC_RALT, KC_QUOT, KC_SPC
+ )
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+};
diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md
new file mode 100644
index 000000000..4fa1814fb
--- /dev/null
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md
@@ -0,0 +1,41 @@
+# Roman's Layout
+
+There is only one layer, and it is based on [Norman
+layout](https://normanlayout.info/).
+
+Looking for multiple-layer layouts?
+
+- [Symbols, arrows, plover, HJKL
+ arrows](../romanzolotarev-norman-plover-osx-hjkl/)
+- [Same with IJKL arrows](../romanzolotarev-norman-plover-osx/)
+
+[![keyboard-layout](romanzolotarev-norman-osx.png)](http://www.keyboard-layout-editor.com/#/gists/9e89d54f1ea6eeeb7dab1b2d19d28195)
+
+## How to use Vim key
+
+It is `CTL_T(KC_ESC)` and it works this way:
+
+- Tap `CTRL/ESC` to send `ESC`.
+- Hold `CTRL/ESC` to use as `CTRL`.
+
+## How to activate N-rollover
+
+- Hold left `SHIFT` and right `SHIFT` and then tap `N`.
+
+## How to make and flash on OS X
+
+First you need to install few brew packages.
+
+```bash
+brew tap osx-cross/avr
+brew install dfu-programmer avr-libc teensy_loader_cli
+```
+
+Then you can clone this repository, make and flash your ErgoDox.
+
+```bash
+git clone https://github.com/romanzolotarev/qmk_firmware
+cd qmk_firmware/keyboards/ergodox
+# Optionally tweak ./keymaps/romanzolotarev-norman-osx/keymap.c
+SLEEP_LED_ENABLED=no KEYMAP=romanzolotarev-norman-osx make teensy
+```
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png
index 4b9433be2..4b9433be2 100644
--- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c
index 7c9f67381..9f41e5189 100644
--- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md
index 4188d2b50..16cebd091 100644
--- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md
@@ -10,7 +10,7 @@ There are four layers:
Looking for IJKL arrows? [Here we
go](../romanzolotarev-norman-plover-osx/).
-[![keyboard-layout](romanzolotarev-norman-plover-osx-hjkl.png)](rttp://www.keyboard-layout-editor.com/#/gists/56ffedceb0668dda47c993e7271563e0)
+[![keyboard-layout](romanzolotarev-norman-plover-osx-hjkl.png)](http://www.keyboard-layout-editor.com/#/gists/56ffedceb0668dda47c993e7271563e0)
## Switching
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png
index cdc535f79..cdc535f79 100644
--- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/keymap.c
index 9971b834c..563e24872 100644
--- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/readme.md
index 804c52a76..804c52a76 100644
--- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png
index 10b0752be..10b0752be 100644
--- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c
index dedac694e..5569f5c74 100644
--- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/readme.md
index 0e78c130b..0e78c130b 100644
--- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png
index 34762ecb7..34762ecb7 100644
--- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/sethbc/Makefile b/keyboards/ergodox/keymaps/sethbc/Makefile
new file mode 100644
index 000000000..457a3d01d
--- /dev/null
+++ b/keyboards/ergodox/keymaps/sethbc/Makefile
@@ -0,0 +1,3 @@
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/ergodox/keymaps/sethbc/keymap.c b/keyboards/ergodox/keymaps/sethbc/keymap.c
new file mode 100644
index 000000000..8816ad63b
--- /dev/null
+++ b/keyboards/ergodox/keymaps/sethbc/keymap.c
@@ -0,0 +1,102 @@
+#include "ergodox.h"
+#include "action_layer.h"
+
+#define BASE 0 // default layer
+#define FN1 1 // symbols
+#define FN2 2 // media keys
+
+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_ESC,
+ KC_BSLS, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(FN2),
+ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(FN1),
+ KC_LGUI, KC_GRV, KC_BSLS, KC_LEFT, KC_RGHT,
+ KC_LCTL, KC_LALT,
+ KC_HOME,
+ KC_BSPC, KC_DEL, KC_END,
+ // right hand
+ MO(FN2), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ KC_LBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC,
+ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ MO(FN1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RGUI,
+ KC_RALT, KC_RCTL,
+ KC_PGUP,
+ KC_PGDN, KC_ENT, KC_SPC
+ ),
+// FN1
+[FN1] = KEYMAP(
+ // left hand
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+// FN2
+[FN2] = KEYMAP(
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_NLCK, KC_PSLS, KC_PAST, KC_PAST, KC_PMNS, KC_BSPC,
+ KC_TRNS, KC_NO, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_BSPC,
+ KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_PENT,
+ KC_TRNS, KC_NO, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PENT,
+ KC_P0, KC_PDOT, KC_SLSH, KC_PENT, KC_PENT,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/keymaps/sethbc/readme.md b/keyboards/ergodox/keymaps/sethbc/readme.md
new file mode 100644
index 000000000..57b5d0ec7
--- /dev/null
+++ b/keyboards/ergodox/keymaps/sethbc/readme.md
@@ -0,0 +1,4 @@
+# sethbc's Ergodox EZ keymap
+
+Largely based on the Ergodox Infinity default keymap, but layer locking has been
+removed in favor of momentary layer activation
diff --git a/keyboards/ergodox_ez/keymaps/sneako/keymap.c b/keyboards/ergodox/keymaps/sneako/keymap.c
index 0c6863102..08cadd685 100644
--- a/keyboards/ergodox_ez/keymaps/sneako/keymap.c
+++ b/keyboards/ergodox/keymaps/sneako/keymap.c
@@ -1,7 +1,7 @@
// Based on `default_osx`
// Replace left Bksp with Ctrl/Esc
// Remove the Ctrl from Z and /
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/sneako/readme.md b/keyboards/ergodox/keymaps/sneako/readme.md
index 8dd110ee6..8dd110ee6 100644
--- a/keyboards/ergodox_ez/keymaps/sneako/readme.md
+++ b/keyboards/ergodox/keymaps/sneako/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/software_neo2/keymap.c b/keyboards/ergodox/keymaps/software_neo2/keymap.c
index 2eaba0d7d..571ca062c 100644
--- a/keyboards/ergodox_ez/keymaps/software_neo2/keymap.c
+++ b/keyboards/ergodox/keymaps/software_neo2/keymap.c
@@ -1,7 +1,8 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
+#include "led.h"
#include "action_layer.h"
-#include "keymap_neo2.h"
+#include "keymap_extras/keymap_neo2.h"
// Layer names
#define BASE 0 // default layer
@@ -11,45 +12,45 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | ^ | 1 | 2 | 3 | 4 | 5 | Play | | Next | 6 | 7 | 8 | 9 | 0 |BackSpce|
+ * | Del | 1 | 2 | 3 | 4 | 5 | Play | | Next | 6 | 7 | 8 | 9 | 0 | ß |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Del | X | V | L | C | W | L1 | | L1 | K | H | G | F | Q | ß |
+ * | Tab | X | V | L | C | W | Esc | | Esc | K | H | G | F | Q | Y |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Caps | U | I | A | E | O |------| |------| S | N | R | T | D | Y |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |Ü/Ctrl| Ö/C-S| Ä/Alt| P | Z | | | | B | M | , | . | J | RShift |
+ * | NeoL1 | U | I | A | E | O |------| |------| S | N | R | T | D | NeoR1 |
+ * |--------+------+------+------+------+------| L1 | | L1 |------+------+------+------+------+--------|
+ * | LShift |Ü/Ctrl| Ö/Win| Ä/Alt| P | Z | | | | B | M | , | . | J | RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | L1 | Home | PgDn | PgUp | End | | Right| Down | Up | Left | Esc |
+ * |NeoL2 | Home | PgDn | PgUp | End | | Right| Down | Up | Left | NeoR2|
* `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
+ * ,-------------. ,---------------.
* | App | LGui | | Alt |Ctrl/Esc|
* ,------+------+------| |------+--------+------.
- * | | |NeoL2 | |NeoL2 | | |
- * | Tab |Backsp|------| |------| Space |Enter |
- * | |ace |NeoL1 | |NeoL1 | | |
+ * | | | Enter| |Delete| | |
+ * | Space|Backsp|------| |------| Enter |Space |
+ * | |ace | Tab | | Esc | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
- KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY,
- KC_DELT, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, TG(1),
- KC_CAPS, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O,
- KC_LSFT, CTL_T(NEO_UE), C_S_T(NEO_OE), ALT_T(NEO_AE), NEO_P, NEO_Z, ALL_T(KC_NO),
- DE_LESS, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
- ALT_T(KC_APP),KC_LGUI,
- NEO_L2_L,
- KC_TAB,KC_BSPC,NEO_L1_L,
+ KC_DELT, NEO_1, NEO_2, NEO_3, NEO_4, NEO_5, KC_MPLY,
+ KC_TAB, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, KC_ESC,
+ NEO_L1_L, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O,
+ KC_LSFT, CTL_T(NEO_UE), GUI_T(NEO_OE), ALT_T(NEO_AE), NEO_P, NEO_Z, TG(1),
+ NEO_L2_L, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
+ C_S_T(KC_ESC),KC_LGUI,
+ KC_ENT,
+ KC_SPC,KC_BSPC,KC_TAB,
// right hand
- KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(1), NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS,
- NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_Y,
- MEH_T(KC_NO),NEO_B, NEO_M, KC_COMM, KC_DOT, NEO_J, KC_RSFT,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ESC,
- KC_LALT,CTL_T(KC_ESC),
- NEO_L2_R,
- NEO_L1_R,KC_SPC, KC_ENT
+ KC_MNXT, NEO_6, NEO_7, NEO_8, NEO_9, NEO_0, NEO_SS,
+ KC_ESC, NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_Y,
+ NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_L1_R,
+ TG(1), NEO_B, NEO_M, NEO_COMM, NEO_DOT, NEO_J, KC_RSFT,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, NEO_L2_R,
+ KC_LALT,KC_RGUI,
+ KC_DELT,
+ KC_ESC,KC_ENT, KC_SPC
),
/* Keymap 1: Media and mouse keys
*
@@ -127,13 +128,16 @@ void matrix_scan_user(void) {
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
+ ergodox_board_led_off();
+
+ if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) {
+ ergodox_right_led_3_on();
+ }
+
switch (layer) {
case MDIA:
ergodox_right_led_2_on();
break;
- default:
- ergodox_board_led_off();
- break;
}
};
diff --git a/keyboards/ergodox_ez/keymaps/supercoder/config_user.h b/keyboards/ergodox/keymaps/supercoder/config.h
index 8da138372..2de3599f8 100644
--- a/keyboards/ergodox_ez/keymaps/supercoder/config_user.h
+++ b/keyboards/ergodox/keymaps/supercoder/config.h
@@ -1,7 +1,7 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H 1
-#include "config.h"
+#include "../../config.h"
#undef LOCKING_SUPPORT_ENABLE
#undef LOCKING_RESYNC_ENABLE
diff --git a/keyboards/ergodox_ez/keymaps/supercoder/images/layout.png b/keyboards/ergodox/keymaps/supercoder/images/layout.png
index c72958c6e..c72958c6e 100644
--- a/keyboards/ergodox_ez/keymaps/supercoder/images/layout.png
+++ b/keyboards/ergodox/keymaps/supercoder/images/layout.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/supercoder/images/supercoder_2000.jpg b/keyboards/ergodox/keymaps/supercoder/images/supercoder_2000.jpg
index d690eaf02..d690eaf02 100644
--- a/keyboards/ergodox_ez/keymaps/supercoder/images/supercoder_2000.jpg
+++ b/keyboards/ergodox/keymaps/supercoder/images/supercoder_2000.jpg
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/supercoder/keymap.c b/keyboards/ergodox/keymaps/supercoder/keymap.c
index ca21d30fd..775acf2c9 100644
--- a/keyboards/ergodox_ez/keymaps/supercoder/keymap.c
+++ b/keyboards/ergodox/keymaps/supercoder/keymap.c
@@ -2,7 +2,7 @@
* SuperCoder 2000 layout
*/
-#include "ergodox_ez.h"
+#include "ergodox.h"
/* Layers */
diff --git a/keyboards/ergodox_ez/keymaps/supercoder/makefile.mk b/keyboards/ergodox/keymaps/supercoder/makefile.mk
index 41a195d9c..41a195d9c 100644
--- a/keyboards/ergodox_ez/keymaps/supercoder/makefile.mk
+++ b/keyboards/ergodox/keymaps/supercoder/makefile.mk
diff --git a/keyboards/ergodox_ez/keymaps/supercoder/readme.md b/keyboards/ergodox/keymaps/supercoder/readme.md
index 97bf7f583..df39ac7a9 100644
--- a/keyboards/ergodox_ez/keymaps/supercoder/readme.md
+++ b/keyboards/ergodox/keymaps/supercoder/readme.md
@@ -22,8 +22,8 @@ your own:
[hex]: https://raw.githubusercontent.com/algernon/ergodox-supercoder/master/supercoder.hex
```
-$ git clone https://github.com/jackhumbert/qmk_firmware.git
-$ cd qmk_firmware/keyboards/ergodox_ez
+$ git clone https://github.com/qmk/qmk_firmware.git
+$ cd qmk_firmware/keyboards/ergodox
$ git clone https://github.com/algernon/ergodox-supercoder.git keymaps/supercoder
$ make KEYMAP=supercoder
```
diff --git a/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.json b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.json
new file mode 100644
index 000000000..6958952b4
--- /dev/null
+++ b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.json
@@ -0,0 +1,419 @@
+[
+ {
+ "backcolor": "#ffffff",
+ "name": "Ergodox Swiss German Layout - Base Layer",
+ "author": "Andreas Schmidt (https://github.com/remigius42)"
+ },
+ [
+ {
+ "x": 3.5
+ },
+ "#\n3",
+ {
+ "x": 10.5
+ },
+ "*\n8"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "@\n2",
+ {
+ "x": 1
+ },
+ "$\n4",
+ {
+ "x": 8.5
+ },
+ "&\n7",
+ {
+ "x": 1
+ },
+ "(\n9"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "%\n5",
+ {
+ "a": 7
+ },
+ "<i class='fa fa-arrow-left'></i>",
+ {
+ "x": 4.5
+ },
+ "<i class='fa fa-arrow-right'></i>",
+ {
+ "a": 4
+ },
+ "^\n6"
+ ],
+ [
+ {
+ "y": -0.875,
+ "w": 1.5
+ },
+ "°\n§",
+ "!\n1",
+ {
+ "x": 14.5
+ },
+ ")\n0",
+ {
+ "w": 1.5
+ },
+ "?\n'\n\n'"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5
+ },
+ "E",
+ {
+ "x": 10.5
+ },
+ "I"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "W",
+ {
+ "x": 1
+ },
+ "R",
+ {
+ "x": 8.5
+ },
+ "U",
+ {
+ "x": 1
+ },
+ "O"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "T",
+ {
+ "c": "#b56b6b",
+ "a": 6,
+ "h": 1.5
+ },
+ "Toggle Code Layer",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "Toggle Code Layer",
+ {
+ "c": "#cccccc",
+ "a": 4
+ },
+ "Y"
+ ],
+ [
+ {
+ "y": -0.875,
+ "a": 6,
+ "w": 1.5
+ },
+ "Delete",
+ {
+ "a": 4
+ },
+ "Q",
+ {
+ "x": 14.5
+ },
+ "P",
+ {
+ "w": 1.5
+ },
+ "è\nü\n\n["
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5
+ },
+ "D",
+ {
+ "x": 10.5
+ },
+ "K"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "S",
+ {
+ "x": 1
+ },
+ "F",
+ {
+ "x": 8.5
+ },
+ "J",
+ {
+ "x": 1
+ },
+ "L"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "G",
+ {
+ "x": 6.5
+ },
+ "H"
+ ],
+ [
+ {
+ "y": -0.875,
+ "a": 6,
+ "w": 1.5
+ },
+ "Backspace",
+ {
+ "c": "#79c777",
+ "a": 4
+ },
+ "A\n\nLyr3",
+ {
+ "x": 14.5
+ },
+ "é\nö\nLyr3",
+ {
+ "c": "#748adb",
+ "w": 1.5
+ },
+ "à\nä\nCmd\n{"
+ ],
+ [
+ {
+ "y": -0.625,
+ "x": 6.5,
+ "c": "#cccccc",
+ "a": 6,
+ "h": 1.5
+ },
+ "Hyper",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "Meh"
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 3.5,
+ "a": 4
+ },
+ "C",
+ {
+ "x": 10.5
+ },
+ ";\n,"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "c": "#748adb"
+ },
+ "X\n\nAlt",
+ {
+ "x": 1,
+ "c": "#cccccc"
+ },
+ "V",
+ {
+ "x": 8.5
+ },
+ "M",
+ {
+ "x": 1,
+ "c": "#748adb"
+ },
+ ":\n.\nAlt"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "c": "#cccccc"
+ },
+ "B",
+ {
+ "x": 6.5
+ },
+ "N"
+ ],
+ [
+ {
+ "y": -0.875,
+ "a": 6,
+ "w": 1.5
+ },
+ "Shift",
+ {
+ "c": "#748adb",
+ "a": 4
+ },
+ "Z\n\nCtrl",
+ {
+ "x": 14.5
+ },
+ "_\n-\nCtrl",
+ {
+ "c": "#cccccc",
+ "a": 6,
+ "w": 1.5
+ },
+ "Shift"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "a": 7
+ },
+ "<i class='fa fa-arrow-left'></i>",
+ {
+ "x": 10.5
+ },
+ "<i class='fa fa-arrow-down'></i>"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "a": 4
+ },
+ "£\n$\n\n}",
+ {
+ "x": 1,
+ "a": 7
+ },
+ "<i class='fa fa-arrow-right'></i>",
+ {
+ "x": 10.5,
+ "a": 6
+ },
+ "AltGr"
+ ],
+ [
+ {
+ "y": -0.9950000000000001,
+ "x": 14,
+ "a": 7
+ },
+ "<i class='fa fa-arrow-up'></i>"
+ ],
+ [
+ {
+ "y": -0.7549999999999999,
+ "x": 0.5,
+ "c": "#b56b6b",
+ "a": 4
+ },
+ ">\n<\nCode Layer\n\\",
+ {
+ "c": "#cccccc"
+ },
+ "`\n^\n\n~",
+ {
+ "x": 14.5
+ },
+ "!\n¨\n\n]",
+ {
+ "c": "#b56b6b"
+ },
+ "\n\nCode Layer"
+ ],
+ [
+ {
+ "r": 30,
+ "rx": 6.5,
+ "ry": 4.25,
+ "y": -1,
+ "x": 1,
+ "c": "#748adb"
+ },
+ "Apps\nAlt",
+ {
+ "c": "#cccccc",
+ "a": 6
+ },
+ "Win / Cmd"
+ ],
+ [
+ {
+ "h": 2
+ },
+ "Space",
+ {
+ "h": 2
+ },
+ "Back Space",
+ "Home"
+ ],
+ [
+ {
+ "x": 2
+ },
+ "End"
+ ],
+ [
+ {
+ "r": -30,
+ "rx": 13,
+ "y": -1,
+ "x": -3
+ },
+ "Alt",
+ {
+ "c": "#748adb",
+ "a": 4
+ },
+ "Esc\nCtrl"
+ ],
+ [
+ {
+ "x": -3,
+ "c": "#cccccc",
+ "a": 6
+ },
+ "Pg Up",
+ {
+ "h": 2
+ },
+ "Tab",
+ {
+ "h": 2
+ },
+ "Enter"
+ ],
+ [
+ {
+ "x": -3
+ },
+ "Pg Dn"
+ ]
+]
diff --git a/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.png b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.png
new file mode 100644
index 000000000..aff6af851
--- /dev/null
+++ b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.json b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.json
new file mode 100644
index 000000000..38a728514
--- /dev/null
+++ b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.json
@@ -0,0 +1,436 @@
+[
+ {
+ "backcolor": "#ffffff",
+ "name": "Ergodox Swiss German Layout - Symbol & Media Layer",
+ "author": "Andreas Schmidt (https://github.com/remigius42)"
+ },
+ [
+ {
+ "x": 3.5,
+ "t": "#b81c1c"
+ },
+ "F3",
+ {
+ "x": 10.5
+ },
+ "F8"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "F2",
+ {
+ "x": 1
+ },
+ "F4",
+ {
+ "x": 8.5
+ },
+ "F7",
+ {
+ "x": 1
+ },
+ "F9"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "F5",
+ {
+ "t": "#000000",
+ "a": 7
+ },
+ "",
+ {
+ "x": 4.5
+ },
+ "",
+ {
+ "t": "#b81c1c",
+ "a": 4
+ },
+ "F6"
+ ],
+ [
+ {
+ "y": -0.875,
+ "t": "#000000\n\n\n#529151",
+ "w": 1.5
+ },
+ "\n\n\nFlash",
+ {
+ "t": "#b81c1c"
+ },
+ "F1",
+ {
+ "x": 14.5
+ },
+ "F10",
+ {
+ "t": "#b81c1c\n\n\n#529151",
+ "w": 1.5
+ },
+ "F11\n\n\nFlash"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5
+ },
+ "{\n\n\n<i class='fa fa-arrow-circle-up'></i>",
+ {
+ "x": 10.5,
+ "t": "#b81c1c"
+ },
+ "8"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "@",
+ {
+ "x": 1
+ },
+ "}",
+ {
+ "x": 8.5,
+ "t": "#b81c1c\n\n\n#529151"
+ },
+ "7\n\n\nHTML ul",
+ {
+ "x": 1
+ },
+ "9\n\n\nHTML ol"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "t": "#b81c1c"
+ },
+ "|",
+ {
+ "t": "#000000",
+ "a": 7,
+ "h": 1.5
+ },
+ "",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "",
+ {
+ "t": "#b81c1c",
+ "a": 4
+ },
+ "<i class='fa fa-arrow-up'></i>"
+ ],
+ [
+ {
+ "y": -0.875,
+ "t": "#000000",
+ "a": 7,
+ "w": 1.5
+ },
+ "",
+ {
+ "t": "#b81c1c",
+ "a": 4
+ },
+ "!",
+ {
+ "x": 14.5
+ },
+ "*",
+ {
+ "w": 1.5
+ },
+ "F12"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "t": "#b81c1c\n\n\n#529151"
+ },
+ "(\n\n\n<i class='fa fa-arrow-circle-down'></i>",
+ {
+ "x": 10.5
+ },
+ "5\n\n\nHTML li"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "$\n\n\n<i class='fa fa-arrow-circle-left'></i>",
+ {
+ "x": 1
+ },
+ ")\n\n\n<i class='fa fa-arrow-circle-right'></i>",
+ {
+ "x": 8.5,
+ "t": "#b81c1c"
+ },
+ "4",
+ {
+ "x": 1
+ },
+ "6"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "`",
+ {
+ "x": 6.5
+ },
+ "<i class='fa fa-arrow-down'></i>"
+ ],
+ [
+ {
+ "y": -0.875,
+ "t": "#000000",
+ "a": 7,
+ "w": 1.5
+ },
+ "",
+ {
+ "t": "#b81c1c",
+ "a": 4
+ },
+ "#",
+ {
+ "x": 14.5
+ },
+ "+",
+ {
+ "t": "#000000\n\n\n#529151",
+ "w": 1.5
+ },
+ "\n\n\n<i class='fa fa-play'></i><i class='fa fa-pause'></i>"
+ ],
+ [
+ {
+ "y": -0.625,
+ "x": 6.5,
+ "t": "#000000",
+ "a": 7,
+ "h": 1.5
+ },
+ "",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ ""
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 3.5,
+ "t": "#b81c1c\n\n\n#529151",
+ "a": 4
+ },
+ "[\n\n\nHTML code",
+ {
+ "x": 10.5
+ },
+ "2\n\n\n<i class='fa fa-fast-backward'></i>"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "t": "#b81c1c"
+ },
+ "^",
+ {
+ "x": 1,
+ "t": "#b81c1c\n\n\n#529151"
+ },
+ "]\n\n\nHTML br",
+ {
+ "x": 8.5,
+ "t": "#b81c1c"
+ },
+ "1",
+ {
+ "x": 1,
+ "t": "#b81c1c\n\n\n#529151"
+ },
+ "3\n\n\n<i class='fa fa-fast-forward'></i>"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "t": "#b81c1c"
+ },
+ "~",
+ {
+ "x": 6.5
+ },
+ "&"
+ ],
+ [
+ {
+ "y": -0.875,
+ "t": "#000000",
+ "a": 7,
+ "w": 1.5
+ },
+ "",
+ {
+ "t": "#b81c1c",
+ "a": 4
+ },
+ "%",
+ {
+ "x": 14.5
+ },
+ "\\",
+ {
+ "t": "#000000",
+ "a": 7,
+ "w": 1.5
+ },
+ ""
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "t": "#000000\n\n\n#529151",
+ "a": 4
+ },
+ "\n\n\nleft click",
+ {
+ "x": 10.5,
+ "t": "#b81c1c\n\n\n#529151"
+ },
+ ".\n\n\n<i class='fa fa-volume-down'></i>"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "t": "#000000",
+ "a": 7
+ },
+ "",
+ {
+ "x": 1,
+ "t": "#000000\n\n\n#529151",
+ "a": 4
+ },
+ "\n\n\nright click",
+ {
+ "x": 8.5,
+ "t": "#b81c1c\n\n\n#529151"
+ },
+ "?\n\n\n<i class='fa fa-volume-up'></i>",
+ {
+ "x": 1,
+ "t": "#b81c1c"
+ },
+ "0"
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 0.5,
+ "t": "#000000",
+ "a": 7
+ },
+ "",
+ {
+ "t": "#b81c1c",
+ "a": 4
+ },
+ "EPRM RST",
+ {
+ "x": 14.5,
+ "t": "#000000",
+ "a": 7
+ },
+ "",
+ ""
+ ],
+ [
+ {
+ "r": 30,
+ "rx": 6.5,
+ "ry": 4.25,
+ "y": -1,
+ "x": 1
+ },
+ "",
+ ""
+ ],
+ [
+ {
+ "t": "#000000\n\n\n#529151",
+ "a": 4,
+ "h": 2
+ },
+ "\n\n\nEnter",
+ {
+ "t": "#000000",
+ "a": 7,
+ "h": 2
+ },
+ "",
+ ""
+ ],
+ [
+ {
+ "x": 2
+ },
+ ""
+ ],
+ [
+ {
+ "r": -30,
+ "rx": 13,
+ "y": -1,
+ "x": -3
+ },
+ "",
+ ""
+ ],
+ [
+ {
+ "x": -3
+ },
+ "",
+ {
+ "h": 2
+ },
+ "",
+ {
+ "t": "#000000\n\n\n#529151",
+ "a": 4,
+ "h": 2
+ },
+ "\n\n\nWeb back"
+ ],
+ [
+ {
+ "x": -3,
+ "t": "#000000",
+ "a": 7
+ },
+ ""
+ ]
+]
diff --git a/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.png b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.png
new file mode 100644
index 000000000..54c4a7587
--- /dev/null
+++ b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/swissgerman/keymap.c b/keyboards/ergodox/keymaps/swissgerman/keymap.c
new file mode 100644
index 000000000..2291fb651
--- /dev/null
+++ b/keyboards/ergodox/keymaps/swissgerman/keymap.c
@@ -0,0 +1,287 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+#include "string.h"
+
+#ifdef SUBPROJECT_infinity
+#include "visualizer/lcd_backlight.h"
+#endif
+
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+#define EPRM M(1) // Macro 1: Reset EEPROM
+#define HTML_LI M(10)
+#define HTML_UL M(11)
+#define HTML_OL M(12)
+#define HTML_CODE M(13)
+#define HTML_BR M(14)
+
+#define SEND_TAG(TAG) do {\
+ send_key(KC_NONUS_BSLASH); \
+ SEND_STRING(TAG); \
+ send_larger_than(); \
+ send_key(KC_NONUS_BSLASH); \
+ SEND_STRING("&"); \
+ SEND_STRING(TAG); \
+ send_larger_than(); \
+ go_back_based_on_tag(TAG); \
+ } while (0)
+
+#define SEND_SHORT_TAG(TAG) do {\
+ send_key(KC_NONUS_BSLASH); \
+ SEND_STRING(TAG); \
+ SEND_STRING("&"); \
+ send_larger_than(); \
+ } while (0)
+
+void send_key(uint16_t keycode);
+void go_back_based_on_tag(char* tag);
+void send_larger_than(void);
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | § | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | ' |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Del | Q | W | E | R | T | L1 | | L1 | Z | U | I | O | P | ü |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | BkSp | A /L2| S | D | F | G |------| |------| H | J | K | L |ö / L2|ä / Cmd |
+ * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+ * | LShift |Y/Ctrl|X/Alt | C | V | B | | | | N | M | , |./Alt |-/Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |< / L1| ^ | $ | Left | Right| | Up | Down |AltGr | ¨ | ~L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | App | LGui | | Alt |Ctrl/Esc|
+ * ,------|------|------| |------+--------+------.
+ * | | | Home | | PgUp | | |
+ * | Space|Backsp|------| |------| Tab |Enter |
+ * | |ace | End | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_GRV, 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(SYMB),
+ KC_BSPC, LT(MDIA, KC_A),KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, CTL_T(KC_Z), ALT_T(KC_X), KC_C, KC_V, KC_B, ALL_T(KC_NO),
+ LT(SYMB,KC_NONUS_BSLASH), KC_EQL, KC_BSLS, KC_LEFT,KC_RGHT,
+ ALT_T(KC_APP), KC_LGUI,
+ KC_HOME,
+ KC_SPC,KC_BSPC,KC_END,
+ // right hand
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
+ KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),
+ MEH_T(KC_NO),KC_N, KC_M, KC_COMM,ALT_T(KC_DOT), CTL_T(KC_SLSH), KC_RSFT,
+ KC_UP, KC_DOWN,KC_RALT,KC_RBRC, KC_FN1,
+ KC_LALT,CTL_T(KC_ESC),
+ KC_PGUP,
+ KC_PGDN,KC_TAB, KC_ENT
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | EPRM | | | | | ? | . | 0 | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS,ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), ACTION_MODS_KEY(MOD_RALT, KC_2), ACTION_MODS_KEY(MOD_RALT, KC_QUOT), ACTION_MODS_KEY(MOD_RALT, KC_BSLS),ACTION_MODS_KEY(MOD_RALT,KC_7),KC_TRNS,
+ KC_TRNS,ACTION_MODS_KEY(MOD_RALT,KC_3),KC_BSLS, ACTION_MODS_KEY(MOD_LSFT, KC_8), ACTION_MODS_KEY(MOD_RSFT, KC_9),ACTION_MODS_KEY(MOD_LSFT,KC_EQL),
+ KC_TRNS,ACTION_MODS_KEY(MOD_LSFT,KC_5),KC_EQL, ACTION_MODS_KEY(MOD_RALT, KC_LBRC), ACTION_MODS_KEY(MOD_RALT, KC_RBRC),ACTION_MODS_KEY(MOD_RALT,KC_EQL),KC_TRNS,
+ KC_TRNS,EPRM,KC_TRNS,KC_NONUS_BSLASH, ACTION_MODS_KEY(MOD_LSFT, KC_NONUS_BSLASH)/*KC_TRNS,KC_TRNS*/,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, ACTION_MODS_KEY(MOD_RSFT,KC_3), KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, ACTION_MODS_KEY(MOD_RSFT,KC_1), KC_TRNS,
+ KC_TRNS, ACTION_MODS_KEY(MOD_RSFT,KC_6), KC_1, KC_2, KC_3, ACTION_MODS_KEY(MOD_RALT,KC_NONUS_BSLASH), KC_TRNS,
+ ACTION_MODS_KEY(MOD_RSFT,KC_MINS),KC_DOT, KC_0, KC_EQL, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | RESET | | | | | | | | | | | | | | RESET |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | | |H_UL | |H_OL | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | | |H_LI | | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |H_CODE| |H_BR | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * |Enter | | | | | |Brwser|
+ * | | |------| |------| |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, HTML_CODE, KC_TRNS, HTML_BR, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_ENT, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
+ KC_TRNS, KC_TRNS, HTML_UL, KC_TRNS, HTML_OL, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, HTML_LI, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ break;
+ case 1:
+ if (record->event.pressed) { // For resetting EEPROM
+ eeconfig_init();
+ }
+ break;
+ case 10:
+ if (record->event.pressed) {
+ SEND_TAG("li");
+ }
+ break;
+ case 11:
+ if (record->event.pressed) {
+ SEND_TAG("ul");
+ }
+ break;
+ case 12:
+ if (record->event.pressed) {
+ SEND_TAG("ol");
+ }
+ break;
+ case 13:
+ if (record->event.pressed) {
+ SEND_TAG("code");
+ }
+ break;
+ case 14:
+ if (record->event.pressed) {
+ SEND_SHORT_TAG("br");
+ }
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 0:
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+
+ #ifdef SUBPROJECT_infinity
+ lcd_backlight_hal_color(0, 0, 0);
+ #endif
+ break;
+ case 1:
+ ergodox_right_led_1_on();
+
+ ergodox_board_led_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ #ifdef SUBPROJECT_infinity
+ lcd_backlight_hal_color(5000, 0, 0);
+ #endif
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_3_off();
+ #ifdef SUBPROJECT_infinity
+ lcd_backlight_hal_color(0, 5000, 0);
+ #endif
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
+
+void send_key(uint16_t keycode) {
+ register_code(keycode);
+ unregister_code(keycode);
+}
+
+void go_back_based_on_tag(char* tag) {
+ const int BRACKETS_AND_SLASH_LENGTH = 3;
+
+ for (int i=0; i < strlen(tag) + BRACKETS_AND_SLASH_LENGTH; i++) {
+ send_key(KC_LEFT);
+ }
+}
+
+void send_larger_than() {
+ register_code(KC_LSFT);
+ send_key(KC_NONUS_BSLASH);
+ unregister_code(KC_LSFT);
+}
diff --git a/keyboards/ergodox/keymaps/swissgerman/readme.md b/keyboards/ergodox/keymaps/swissgerman/readme.md
new file mode 100644
index 000000000..b1061c1dd
--- /dev/null
+++ b/keyboards/ergodox/keymaps/swissgerman/readme.md
@@ -0,0 +1,15 @@
+# ErgoDox Swiss German Configuration
+
+Swiss German keyboard layout based on the Ergodox EZ default layout.
+
+Keyboard diagrams created with the [keyboard layout editor](http://www.keyboard-layout-editor.com).
+
+Diagram sources: [default layer](keyboard-layout.json), [layer 1 & 2](keyboard-layout_1_2.json)
+
+![Layout Layer 0](keyboard-layout.png)
+![Layout Layer 1&2](keyboard-layout_1_2.png)
+
+## Changelog
+* Jan 21, 2017:
+ * Initial version based on default layout.
+
diff --git a/keyboards/ergodox_ez/keymaps/techtomas/keymap.c b/keyboards/ergodox/keymaps/techtomas/keymap.c
index 1ff6618b9..93d59d487 100644
--- a/keyboards/ergodox_ez/keymaps/techtomas/keymap.c
+++ b/keyboards/ergodox/keymaps/techtomas/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/techtomas/readme.md b/keyboards/ergodox/keymaps/techtomas/readme.md
index 36e0591a8..36e0591a8 100644
--- a/keyboards/ergodox_ez/keymaps/techtomas/readme.md
+++ b/keyboards/ergodox/keymaps/techtomas/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/ordinary/keymap.c b/keyboards/ergodox/keymaps/teckinesis/keymap.c
index 778cbc63c..2837874f7 100644
--- a/keyboards/ergodox_ez/keymaps/ordinary/keymap.c
+++ b/keyboards/ergodox/keymaps/teckinesis/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "led.h"
#include "debug.h"
#include "action_layer.h"
@@ -25,15 +25,16 @@
#define MDR 23 // mouse down right
/*
- * The Ordinary Layout for the Ergodox EZ keyboard, v4
+ * teckinesis layout for ErgoDox (EZ)
*
+ * Modifications from The Ordinary Layout v4 by Will Wolff-Myren willwm@gmail.com
* Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com
*
* No rights reserved. This software is in the public domain.
* Credit me if you are friendly but if you're a jerk don't bother.
*
* Details: readme.md
- * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary
+ * https://github.com/willwm/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/teckinesis
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -41,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/******* Base Layer ********************************************************************************************************
*
* ,------------------------------------------------------. ,------------------------------------------------------.
- * | Special `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | =+ Special |
+ * | Special =+ | 1 | 2 | 3 | 4 | 5 | ESC | | ` | 6 | 7 | 8 | 9 | 0 | -_ Special |
* |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------|
* | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media |
* |------------+------+------+------+------+------| | | |------+------+------+------+------+------------|
@@ -49,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------|
* | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals |
* `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------'
- * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl |
+ * | LCtrl |Meh/\ |Hypr//| LAlt | LGui | | RGui | RAlt |Hypr/[|Meh/] | RCtrl |
* `-----------------------------------' `-----------------------------------'
* ,-------------. ,-------------.
* | Home | End | | Left | Right|
@@ -65,16 +66,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC
,M(LSymb) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G
,M(LCaps) ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB)
-,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT,KC_LGUI
+,KC_LCTL,MEH_T(KC_BSLS),ALL_T(KC_SLSH),KC_LALT,KC_LGUI
,KC_HOME,KC_END
,KC_PGUP
,KC_BSPC,KC_DEL ,KC_PGDN
// right hand
- ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec)
+ ,KC_GRV ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec)
,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia)
,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,F(RSymb)
,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,M(RCaps)
- ,KC_RGUI,KC_RALT,KC_HYPR ,KC_MEH ,KC_RCTL
+ ,KC_RGUI,KC_RALT,ALL_T(KC_LBRC),MEH_T(KC_RBRC),KC_RCTL
,KC_LEFT ,KC_RGHT
,KC_UP
,KC_DOWN ,KC_ENT ,KC_SPC
@@ -107,7 +108,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM)
,KC_TRNS ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV
,KC_TRNS ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TAB
-,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT ,KC_LGUI
+,KC_LCTL ,KC_MEH ,KC_HYPR ,KC_LALT ,KC_LGUI
,KC_LEFT ,KC_RGHT
,KC_UP
,KC_SPC ,KC_ENT ,KC_DOWN
@@ -127,9 +128,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ,---------------------------------------------------------------. ,---------------------------------------------------------------.
* | | F11 | F12 | F13 | F14 | F15 | Esc | | | F16 | F17 | F18 | F19 | F20 | |
* |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------|
- * | |Shut Down|MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | Mail | |
+ * | | |MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | | |
* |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------|
- * | | Sleep |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | MyComp | |
+ * | | |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | | |
* |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------|
* | | |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | | End | Down | PgDn | | |
* `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------'
@@ -146,8 +147,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MDIA] = KEYMAP(
// left hand
KC_TRNS ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_ESC
-,KC_TRNS ,KC_POWER ,M(MUL) ,KC_MS_U ,M(MUR) ,KC_VOLU ,KC_WH_U
-,KC_TRNS ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD
+,KC_TRNS ,KC_NO ,M(MUL) ,KC_MS_U ,M(MUR) ,KC_VOLU ,KC_WH_U
+,KC_TRNS ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD
,KC_TRNS ,KC_NO ,M(MDL) ,KC_MS_D ,M(MDR) ,KC_MUTE ,KC_WH_D
,KC_LCTL ,KC_MEH ,KC_BTN3 ,KC_BTN1 ,KC_BTN2
,KC_WSTP ,KC_WREF
@@ -155,8 +156,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
,KC_WBAK ,KC_NO ,KC_WHOM
// right hand
,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_TRNS
- ,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_MAIL ,KC_TRNS
- ,KC_NLCK ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_MYCM ,KC_TRNS
+ ,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,KC_TRNS
+ ,KC_NLCK ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_NO ,KC_TRNS
,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_TRNS
,GUI_T(KC_INS),ALT_T(KC_DEL),KC_HYPR ,KC_MEH ,KC_RCTL
,KC_MPRV ,KC_MNXT
@@ -292,13 +293,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
case LSpec:
if (record->event.pressed) {
if (record->tap.count && !record->tap.interrupted) {
- register_code(KC_GRV);
+ register_code(KC_EQL);
} else {
layer_on(SPEC);
}
} else {
if(record->tap.count && !record->tap.interrupted) {
- unregister_code(KC_GRV);
+ unregister_code(KC_EQL);
} else {
layer_off(SPEC);
}
@@ -352,13 +353,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
case RSpec:
if (record->event.pressed) {
if (record->tap.count && !record->tap.interrupted) {
- register_code(KC_EQL);
+ register_code(KC_MINS);
} else {
layer_on(SPEC);
}
} else {
if(record->tap.count && !record->tap.interrupted) {
- unregister_code(KC_EQL);
+ unregister_code(KC_MINS);
} else {
layer_off(SPEC);
}
diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.png b/keyboards/ergodox/keymaps/teckinesis/ordinary-special.png
index 6eecf447e..6eecf447e 100644
--- a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.png
+++ b/keyboards/ergodox/keymaps/teckinesis/ordinary-special.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.txt b/keyboards/ergodox/keymaps/teckinesis/ordinary-special.txt
index a08827c6d..a08827c6d 100644
--- a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.txt
+++ b/keyboards/ergodox/keymaps/teckinesis/ordinary-special.txt
diff --git a/keyboards/ergodox/keymaps/teckinesis/readme.md b/keyboards/ergodox/keymaps/teckinesis/readme.md
new file mode 100644
index 000000000..9494a4d4c
--- /dev/null
+++ b/keyboards/ergodox/keymaps/teckinesis/readme.md
@@ -0,0 +1,45 @@
+# teckinesis Layout
+
+*A blend of TECK and Kinesis layouts, based on ["The Ordinary Layout" by Nicholas Keene](http://qmk.fm/keyboards/ergodox_ez/keymaps/ordinary/#the-ordinary-layout-a-familiar-and-powerful-layout)*
+
+I love "The Ordinary Layout", but I still use a [TECK](https://www.trulyergonomic.com/store/index.php)
+at the office, and I found the transition back and forth to be a bit more difficult than I expected.
+
+This layout consists of only slight changes to "The Ordinary Layout" based on the layouts of the
+[(original) TECK Model 209](https://www.trulyergonomic.com/store/layout-designer--configurator--reprogrammable--truly-ergonomic-mechanical-keyboard/#KTo7PD0+P0BBQkNERUw5394rNR4fICEi4yMkJSYnLS4xOBQaCBUXTBwYDBITLzDhBBYHCQorCw0ODzPl4B0bBhkFKhEQNjc05OPiSktOTSwoLFBSUU/mZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX2BhAFZXAAAAAAAAAAAAXF1eVAAAAAAAAAAAAABZWltVAAAAAAAAAAAAYgBjAAAAAAAAAAAAWFcAAAAAAACTAQAMAiMBAAwBigEADAIhAQAMAZQBAAwBkgEADAGDAQAMALYBAAwAzQEADAC1AQAMAOIBAAwA6gEADADpAQAMALhJAEYAAAAAAEitR64AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACk6Ozw9Pj9AQUJDREVMOd/eKzUeHyAhIuMjJCUmJy0uMTgUGggVF0wcGAwSEy8w4QQWBwkKKwsNDg8z5eMdGwYZBSoREDY3NOfg4kpLTk0sKCxQUlFP5uQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9gYQBWVwAAAAAAAAAAAFxdXlQAAAAAAAAAAAAAWVpbVQAAAAAAAAAAAGIAYwAAAAAAAAAAAFhXAAAAAAAAkwEADAIjAQAMAYoBAAwCIQEADAGUAQAMAZIBAAwBgwEADAC2AQAMAM0BAAwAtQEADADiAQAMAOoBAAwA6QEADAC4SQBGAAAAAABIrUeuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) and
+the [Kinesis Advantage](http://www.kinesis-ergo.com/wp-content/uploads/2013/06/advantage_layout_win.pdf)
+
+## The Base Layout ##
+
+[teckinesis (Base Layer)](http://www.keyboard-layout-editor.com/#/gists/befd4c5800d92114aa9e50d4f7c0dfb0)
+![teckinesis base layout](teckinesis-base.png)
+
+### Changes from The Ordinary Layout ###
+
+* Moved KC_MINS from the key left of the 6 to the RSpec key.
+* Moved KC_EQL from RSpec to LSpec.
+* Moved KC_GRV from LSpec to the key left of the 6.
+* Mdded KC_BSLS to the left Meh key.
+* Added KC_SLSH to the left Hyper key.
+* Added KC_LBRC to the right Hyper key.
+* Added KC_RBRC to the right Meh key.
+
+## The Symbols Layer ##
+
+[teckinesis (Symbols Layer)](http://www.keyboard-layout-editor.com/#/gists/e6ddc4e9e0d194b3e52ac0616238ab61)
+![teckinesis symbols layout](teckinesis-symbol.png)
+
+### Changes from The Ordinary Layout ###
+
+* None.
+
+## The Media Layer ##
+
+[teckinesis (Media Layer)](http://www.keyboard-layout-editor.com/#/gists/41ff65e6a7c490211fd6702fb34d9908)
+![teckinesis media layout](teckinesis-media.png)
+
+### Changes from The Ordinary Layout ###
+
+* Removed Power, Sleep, Mail, My Computer keys.
+(I kept hitting these while using the mouse/cursor. =P)
+
diff --git a/keyboards/ergodox/keymaps/teckinesis/teckinesis-base.json b/keyboards/ergodox/keymaps/teckinesis/teckinesis-base.json
new file mode 100644
index 000000000..69fe28cf7
--- /dev/null
+++ b/keyboards/ergodox/keymaps/teckinesis/teckinesis-base.json
@@ -0,0 +1,434 @@
+[
+ {
+ "name": "teckinesis (Base Layer)",
+ "author": "Will Wolff-Myren",
+ "notes": "# teckinesis Layout # \r\n\r\n*A blend of TECK and Kinesis layouts, based on [\"The Ordinary Layout\" by Nicholas Keene](http://qmk.fm/keyboards/ergodox_ez/keymaps/ordinary/#the-ordinary-layout-a-familiar-and-powerful-layout)*\r\n\r\n## The Base Layout ##\r\n\r\n![teckinesis base layout](teckinesis-base.png)\r\n\r\n## The Symbols Layer ##\r\n\r\n![teckinesis symbols layout](teckinesis-symbol.png)\r\n\r\n## The Media Layer ##\r\n\r\n(placeholder)\r\n",
+ "switchMount": "cherry",
+ "switchBrand": "gateron",
+ "switchType": "KS-3-Tea"
+ },
+ [
+ {
+ "x": 3.5
+ },
+ "#\n3",
+ {
+ "x": 10.5
+ },
+ "*\n8"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "@\n2",
+ {
+ "x": 1
+ },
+ "$\n4",
+ {
+ "x": 8.5
+ },
+ "&\n7",
+ {
+ "x": 1
+ },
+ "(\n9"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "%\n5",
+ {
+ "c": "#ff4444"
+ },
+ "Esc",
+ {
+ "x": 4.5,
+ "c": "#cccccc"
+ },
+ "~\n`",
+ "^\n6"
+ ],
+ [
+ {
+ "y": -0.875,
+ "c": "#2277ff",
+ "w": 1.5
+ },
+ "Special\n\n+\n\n\n\nShift\n=",
+ {
+ "c": "#cccccc"
+ },
+ "!\n1",
+ {
+ "x": 14.5
+ },
+ ")\n0",
+ {
+ "c": "#2277ff",
+ "w": 1.5
+ },
+ "_\n\nSpecial\n\n\n\n-\nShift"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "c": "#cccccc"
+ },
+ "E",
+ {
+ "x": 10.5
+ },
+ "I"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "W",
+ {
+ "x": 1
+ },
+ "R",
+ {
+ "x": 8.5
+ },
+ "U",
+ {
+ "x": 1
+ },
+ "O"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "T",
+ {
+ "h": 1.5
+ },
+ "{\n\n\n\n\n\n[",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "}\n\n\n\n\n\n]",
+ "Y"
+ ],
+ [
+ {
+ "y": -0.875,
+ "c": "#2277ff",
+ "fa": [
+ 0,
+ 0,
+ 4
+ ],
+ "w": 1.5
+ },
+ "Media\n\n<i class='kb kb-Line-Start-End'></i>\n\n\n\nShift",
+ {
+ "c": "#cccccc"
+ },
+ "Q",
+ {
+ "x": 14.5
+ },
+ "P",
+ {
+ "c": "#2277ff",
+ "f": 3,
+ "w": 1.5
+ },
+ "|\n\\\nMedia\n\n\n\n\nShift"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "c": "#cccccc"
+ },
+ "D",
+ {
+ "x": 10.5
+ },
+ "K"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "S",
+ {
+ "x": 1
+ },
+ "F",
+ {
+ "x": 8.5
+ },
+ "J",
+ {
+ "x": 1
+ },
+ "L"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "G",
+ {
+ "x": 6.5
+ },
+ "H"
+ ],
+ [
+ {
+ "y": -0.875,
+ "c": "#2277ff",
+ "w": 1.5
+ },
+ "Symbols\n\n\n\n\n\nShift",
+ {
+ "c": "#cccccc"
+ },
+ "A",
+ {
+ "x": 14.5
+ },
+ ":\n;",
+ {
+ "c": "#2277ff",
+ "f": 3,
+ "w": 1.5
+ },
+ "\"\n'\nSymbols\n\n\n\n\nShift"
+ ],
+ [
+ {
+ "y": -0.625,
+ "x": 6.5,
+ "c": "#54d6de",
+ "fa": [
+ 0,
+ 0,
+ 4,
+ 1
+ ],
+ "h": 1.5
+ },
+ "< Tab\n\n\nShift Tab",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "Tab >\n\n\nTab"
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 3.5,
+ "c": "#cccccc"
+ },
+ "C",
+ {
+ "x": 10.5
+ },
+ "<\n,"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "X",
+ {
+ "x": 1
+ },
+ "V",
+ {
+ "x": 8.5
+ },
+ "M",
+ {
+ "x": 1
+ },
+ ">\n."
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "B",
+ {
+ "x": 6.5
+ },
+ "N"
+ ],
+ [
+ {
+ "y": -0.875,
+ "c": "#2277ff",
+ "w": 1.5
+ },
+ "Capitals\n\n\n\n\n\nShift",
+ {
+ "c": "#cccccc"
+ },
+ "Z",
+ {
+ "x": 14.5
+ },
+ "?\n/",
+ {
+ "c": "#2277ff",
+ "f": 3,
+ "w": 1.5
+ },
+ "\n\nCapitals\n\n\n\n\nShift"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "c": "#77aaff",
+ "fa": [
+ 5,
+ 0,
+ 4,
+ 1
+ ]
+ },
+ "<i class='mss mss-Unicode-Option-3'></i>\n\n\nLAlt",
+ {
+ "x": 10.5
+ },
+ "<i class='mss mss-Unicode-Option-3'></i>\n\n\nRAlt"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "fa": [
+ 5,
+ 1
+ ]
+ },
+ "\nHyper\n?\n/",
+ {
+ "x": 1,
+ "fa": [
+ 5,
+ 1,
+ 0,
+ 1
+ ]
+ },
+ "<i class='mss mss-Unicode-Command-3'></i>\n\n\nSuper",
+ {
+ "x": 8.5
+ },
+ "<i class='mss mss-Unicode-Command-3'></i>\n\n\nSuper",
+ {
+ "x": 1,
+ "fa": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ },
+ "{\n[\n\nHyper"
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 0.5
+ },
+ "Ctrl\n\n\nLCtrl",
+ {
+ "f2": 1
+ },
+ "\nMeh\n|\n\\",
+ {
+ "x": 14.5,
+ "fa": [
+ 0,
+ 0,
+ 1,
+ 1
+ ]
+ },
+ "}\n]\n\nMeh",
+ "Ctrl\n\n\nRCtrl"
+ ],
+ [
+ {
+ "r": 30,
+ "rx": 6.5,
+ "ry": 4.25,
+ "y": -1,
+ "x": 1,
+ "c": "#54d6de"
+ },
+ "Home",
+ "End"
+ ],
+ [
+ {
+ "h": 2
+ },
+ "< Del\n\n\nBackspace",
+ {
+ "h": 2
+ },
+ "Del >\n\n\nDelete",
+ "Page\n\n\n\n\n\nUp"
+ ],
+ [
+ {
+ "x": 2
+ },
+ "Page\n\n\n\n\n\nDown"
+ ],
+ [
+ {
+ "r": -30,
+ "rx": 13,
+ "y": -1,
+ "x": -3
+ },
+ "Left",
+ "Right"
+ ],
+ [
+ {
+ "x": -3
+ },
+ "Up",
+ {
+ "h": 2
+ },
+ "Enter",
+ {
+ "h": 2
+ },
+ "Space"
+ ],
+ [
+ {
+ "x": -3
+ },
+ "Down"
+ ]
+] \ No newline at end of file
diff --git a/keyboards/ergodox/keymaps/teckinesis/teckinesis-base.png b/keyboards/ergodox/keymaps/teckinesis/teckinesis-base.png
new file mode 100644
index 000000000..7c4584e9f
--- /dev/null
+++ b/keyboards/ergodox/keymaps/teckinesis/teckinesis-base.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.json b/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.json
new file mode 100644
index 000000000..65fe394e8
--- /dev/null
+++ b/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.json
@@ -0,0 +1,436 @@
+[
+ {
+ "name": "teckinesis (MediaLayer)",
+ "author": "Will Wolff-Myren",
+ "switchMount": "cherry",
+ "switchBrand": "gateron",
+ "switchType": "KS-3-Tea"
+ },
+ [
+ {
+ "x": 3.5,
+ "c": "#99de2a"
+ },
+ "F13",
+ {
+ "x": 10.5
+ },
+ "F18"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "F12",
+ {
+ "x": 1
+ },
+ "F14",
+ {
+ "x": 8.5
+ },
+ "F17",
+ {
+ "x": 1
+ },
+ "F19"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "F15",
+ {
+ "c": "#ff4444"
+ },
+ "Esc",
+ {
+ "x": 4.5
+ },
+ "Esc",
+ {
+ "c": "#99de2a"
+ },
+ "F16"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 1.5
+ },
+ "F11",
+ {
+ "x": 14.5
+ },
+ "F20"
+ ],
+ [
+ {
+ "y": -0.995,
+ "c": "#000000",
+ "t": "#ff0000",
+ "w": 1.5
+ },
+ "Media\n\n\n\n\n\nShift",
+ {
+ "x": 16.5,
+ "w": 1.5
+ },
+ "\n\nMedia\n\n\n\n\nShift"
+ ],
+ [
+ {
+ "y": -0.3799999999999999,
+ "x": 3.5,
+ "c": "#ff8500",
+ "t": "#000000"
+ },
+ "Mouse\n\n\n\n\n\nUp",
+ {
+ "x": 10.5
+ },
+ "Cursor\n\n\n\n\n\nUp"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "Mouse\n\n\n\n\n\nUpLeft",
+ {
+ "x": 1
+ },
+ "Mouse\n\n\n\n\n\nUpRgt",
+ {
+ "x": 8.5,
+ "c": "#ffb063"
+ },
+ "Home",
+ {
+ "x": 1
+ },
+ "Page\n\n\n\n\n\nUp"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "c": "#e6e067"
+ },
+ "Vol\n\n\n\n\n\nUp",
+ {
+ "c": "#ffb063",
+ "h": 1.5
+ },
+ "Scroll\n\n\n\n\n\nUp",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "Scroll\n\n\n\n\n\nUp",
+ {
+ "c": "#e6e067"
+ },
+ "Print\n\n\n\n\n\nScreen"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 1.5,
+ "c": "#737373",
+ "a": 7
+ },
+ "",
+ {
+ "x": 14.5
+ },
+ ""
+ ],
+ [
+ {
+ "y": -0.9950000000000001,
+ "c": "#2277ff",
+ "a": 4,
+ "w": 1.5
+ },
+ "Symbols\n\n\n\n\n\nShift",
+ {
+ "x": 16.5,
+ "w": 1.5
+ },
+ "\n\nSymbols\n\n\n\n\nShift"
+ ],
+ [
+ {
+ "y": -0.3799999999999999,
+ "x": 3.5,
+ "c": "#ff8500"
+ },
+ "Mouse\n\n\n\n\n\nDown",
+ {
+ "x": 10.5
+ },
+ "Cursor\n\n\n\n\n\nDown"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "Mouse\n\n\n\n\n\nLeft",
+ {
+ "x": 1
+ },
+ "Mouse\n\n\n\n\n\nRight",
+ {
+ "x": 8.5
+ },
+ "Cursor\n\n\n\n\n\nLeft",
+ {
+ "x": 1
+ },
+ "Cursor\n\n\n\n\n\nRight"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "c": "#e6e067"
+ },
+ "Vol\n\n\n\n\n\nDown",
+ {
+ "x": 6.5
+ },
+ "Num\n\n\n\n\n\nLock"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 1.5,
+ "c": "#737373",
+ "a": 7
+ },
+ "",
+ {
+ "x": 14.5
+ },
+ ""
+ ],
+ [
+ {
+ "y": -0.9950000000000001,
+ "c": "#2277ff",
+ "a": 4,
+ "w": 1.5
+ },
+ "Capitals\n\n\n\n\n\nShift",
+ {
+ "x": 16.5,
+ "w": 1.5
+ },
+ "\n\nCapitals\n\n\n\n\nShift"
+ ],
+ [
+ {
+ "y": -0.6299999999999999,
+ "x": 6.5,
+ "c": "#ffb063",
+ "h": 1.5
+ },
+ "Scroll\n\n\n\n\n\nDown",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "Scroll\n\n\n\n\n\nDown"
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 3.5,
+ "c": "#ff8500"
+ },
+ "Mouse\n\n\n\n\n\nDown",
+ {
+ "x": 10.5
+ },
+ "Cursor\n\n\n\n\n\nDown"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "Mouse\n\n\n\n\n\nDnLeft",
+ {
+ "x": 1
+ },
+ "Mouse\n\n\n\n\n\nDnRgt",
+ {
+ "x": 8.5,
+ "c": "#ffb063"
+ },
+ "End",
+ {
+ "x": 1
+ },
+ "Page\n\n\n\n\n\nDown"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "c": "#e6e067"
+ },
+ "Mute",
+ {
+ "x": 6.5,
+ "c": "#737373",
+ "a": 7
+ },
+ ""
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 1.5
+ },
+ "",
+ {
+ "x": 14.5
+ },
+ ""
+ ],
+ [
+ {
+ "y": -0.9950000000000001,
+ "c": "#2277ff",
+ "a": 4,
+ "w": 1.5
+ },
+ "Ctrl",
+ {
+ "x": 16.5,
+ "w": 1.5
+ },
+ "Ctrl"
+ ],
+ [
+ {
+ "y": -0.3799999999999999,
+ "x": 3.5,
+ "c": "#ff8500"
+ },
+ "Middle\n\n\n\n\n\nClick",
+ {
+ "x": 10.5,
+ "c": "#ffb063",
+ "fa": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ },
+ "Delete\n\n\nOption"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "c": "#ff8500"
+ },
+ "Left\n\n\n\n\n\nClick",
+ {
+ "x": 1
+ },
+ "Right\n\n\n\n\n\nClick",
+ {
+ "x": 8.5,
+ "c": "#ffb063"
+ },
+ "Insert\n\n\nCmd",
+ {
+ "x": 1,
+ "c": "#77aaff"
+ },
+ "Hyper"
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 0.5
+ },
+ "Alt\n\n\nLAlt",
+ "Meh",
+ {
+ "x": 14.5
+ },
+ "Meh",
+ "Alt\n\n\nRAlt"
+ ],
+ [
+ {
+ "r": 30,
+ "rx": 6.5,
+ "ry": 4.25,
+ "y": -1,
+ "x": 1,
+ "c": "#ccbb00"
+ },
+ "Stop\n\n\nBrowser",
+ "Reload\n\n\nBrowser"
+ ],
+ [
+ {
+ "h": 2
+ },
+ "< Web\n\n\nBrowser",
+ {
+ "h": 2
+ },
+ "Web >\n\n\nBrowser",
+ "Search\n\n\nBrowser"
+ ],
+ [
+ {
+ "x": 2
+ },
+ "Home\n\n\nBrowser"
+ ],
+ [
+ {
+ "r": -30,
+ "rx": 13,
+ "y": -1,
+ "x": -3
+ },
+ "Prev\n\n\nAudio\n\n\nTrack",
+ "Next\n\n\nAudio\n\n\nTrack"
+ ],
+ [
+ {
+ "x": -3,
+ "c": "#e6e067"
+ },
+ "Vol\n\n\n\n\n\nUp",
+ {
+ "c": "#ccbb00",
+ "h": 2
+ },
+ "Stop\n\n\nAudio",
+ {
+ "h": 2
+ },
+ "Play\n\n\nAudio\n\n\nPause"
+ ],
+ [
+ {
+ "x": -3,
+ "c": "#e6e067"
+ },
+ "Vol\n\n\n\n\n\nDown"
+ ]
+] \ No newline at end of file
diff --git a/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.png b/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.png
new file mode 100644
index 000000000..cc51605f9
--- /dev/null
+++ b/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.json b/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.json
new file mode 100644
index 000000000..439d0128e
--- /dev/null
+++ b/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.json
@@ -0,0 +1,422 @@
+[
+ {
+ "name": "teckinesis (Symbol Layer)",
+ "author": "Will Wolff-Myren",
+ "switchMount": "cherry",
+ "switchBrand": "gateron",
+ "switchType": "KS-3-Tea"
+ },
+ [
+ {
+ "x": 3.5,
+ "c": "#99de2a"
+ },
+ "F3",
+ {
+ "x": 10.5
+ },
+ "F8"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "F2",
+ {
+ "x": 1
+ },
+ "F4",
+ {
+ "x": 8.5
+ },
+ "F7",
+ {
+ "x": 1
+ },
+ "F9"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "F5",
+ {
+ "c": "#ff4444"
+ },
+ "Esc",
+ {
+ "x": 4.5,
+ "c": "#bbddbb"
+ },
+ "_\n\n\n\n\n\n-",
+ {
+ "c": "#99de2a"
+ },
+ "F6"
+ ],
+ [
+ {
+ "y": -0.875,
+ "c": "#2277ff",
+ "w": 1.5
+ },
+ "Special\n\n\n\n\n\nShift",
+ {
+ "c": "#99de2a"
+ },
+ "F1",
+ {
+ "x": 14.5
+ },
+ "F10",
+ {
+ "c": "#2277ff",
+ "w": 1.5
+ },
+ "\n\nSpecial\n\n\n\n\nShift"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "c": "#bbddbb"
+ },
+ "{",
+ {
+ "x": 10.5,
+ "c": "#89b087"
+ },
+ "8"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "c": "#bbddbb"
+ },
+ "@",
+ {
+ "x": 1
+ },
+ "}",
+ {
+ "x": 8.5,
+ "c": "#89b087"
+ },
+ "7",
+ {
+ "x": 1
+ },
+ "9"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "c": "#bbddbb"
+ },
+ "&",
+ {
+ "h": 1.5
+ },
+ "<",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ ">",
+ "|"
+ ],
+ [
+ {
+ "y": -0.875,
+ "c": "#2277ff",
+ "w": 1.5
+ },
+ "Media\n\n\n\n\n\nShift",
+ {
+ "c": "#bbddbb"
+ },
+ "!",
+ {
+ "x": 14.5,
+ "c": "#89b087"
+ },
+ "/",
+ {
+ "c": "#2277ff",
+ "w": 1.5
+ },
+ "\n\nMedia\n\n\n\n\nShift"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "c": "#bbddbb"
+ },
+ "(",
+ {
+ "x": 10.5,
+ "c": "#89b087"
+ },
+ "5"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "c": "#bbddbb"
+ },
+ "$",
+ {
+ "x": 1
+ },
+ ")",
+ {
+ "x": 8.5,
+ "c": "#89b087"
+ },
+ "4",
+ {
+ "x": 1
+ },
+ "6"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "c": "#bbddbb"
+ },
+ "`",
+ {
+ "x": 6.5
+ },
+ "/"
+ ],
+ [
+ {
+ "y": -0.875,
+ "c": "#000000",
+ "t": "#ff0000",
+ "w": 1.5
+ },
+ "Symbols\n\n\n\n\n\nShift",
+ {
+ "c": "#bbddbb",
+ "t": "#000000"
+ },
+ "#",
+ {
+ "x": 14.5,
+ "c": "#89b087"
+ },
+ "*",
+ {
+ "c": "#000000",
+ "t": "#ff0000",
+ "w": 1.5
+ },
+ "\n\nSymbols\n\n\n\n\nShift"
+ ],
+ [
+ {
+ "y": -0.625,
+ "x": 6.5,
+ "c": "#54d6de",
+ "t": "#000000",
+ "fa": [
+ 0,
+ 0,
+ 0,
+ 1
+ ],
+ "h": 1.5
+ },
+ "Tab >\n\n\nTab",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "< Tab\n\n\nShift Tab"
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 3.5,
+ "c": "#bbddbb"
+ },
+ "[",
+ {
+ "x": 10.5,
+ "c": "#89b087"
+ },
+ "2"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "c": "#bbddbb"
+ },
+ "^",
+ {
+ "x": 1
+ },
+ "]",
+ {
+ "x": 8.5,
+ "c": "#89b087"
+ },
+ "1",
+ {
+ "x": 1
+ },
+ "3"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "c": "#bbddbb"
+ },
+ "~",
+ {
+ "x": 6.5
+ },
+ "\\"
+ ],
+ [
+ {
+ "y": -0.875,
+ "c": "#2277ff",
+ "w": 1.5
+ },
+ "Capitals\n\n\n\n\n\nShift",
+ {
+ "c": "#bbddbb"
+ },
+ "%",
+ {
+ "x": 14.5,
+ "c": "#89b087"
+ },
+ "-",
+ {
+ "c": "#2277ff",
+ "w": 1.5
+ },
+ "\n\nCapitals\n\n\n\n\nShift"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "c": "#77aaff"
+ },
+ "<i class='mss mss-Unicode-Option-3'></i>\n\n\nLAlt",
+ {
+ "x": 10.5,
+ "c": "#89b087"
+ },
+ ".\n\n\nOption"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "c": "#77aaff"
+ },
+ "Hyper",
+ {
+ "x": 1
+ },
+ "<i class='mss mss-Unicode-Command-3'></i>\n\n\nSuper",
+ {
+ "x": 8.5,
+ "c": "#89b087"
+ },
+ "0\n\n\nCmd",
+ {
+ "x": 1
+ },
+ "=\n\n\nHyper"
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 0.5,
+ "c": "#77aaff"
+ },
+ "Ctrl\n\n\nLCtrl",
+ "Meh",
+ {
+ "x": 14.5,
+ "c": "#89b087"
+ },
+ "+\n\n\nMeh",
+ "Enter\n\n\nCtrl"
+ ],
+ [
+ {
+ "r": 30,
+ "rx": 6.5,
+ "ry": 4.25,
+ "y": -1,
+ "x": 1,
+ "c": "#54d6de"
+ },
+ "Left",
+ "Right"
+ ],
+ [
+ {
+ "h": 2
+ },
+ "Space",
+ {
+ "h": 2
+ },
+ "Enter",
+ "Up"
+ ],
+ [
+ {
+ "x": 2
+ },
+ "Down"
+ ],
+ [
+ {
+ "r": -30,
+ "rx": 13,
+ "y": -1,
+ "x": -3
+ },
+ "Home",
+ "End"
+ ],
+ [
+ {
+ "x": -3
+ },
+ "Page\n\n\n\n\n\nUp",
+ {
+ "h": 2
+ },
+ "< Del\n\n\nBackspace",
+ {
+ "h": 2
+ },
+ "Del >\n\n\nDelete"
+ ],
+ [
+ {
+ "x": -3
+ },
+ "Page\n\n\n\n\n\nDown"
+ ]
+] \ No newline at end of file
diff --git a/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.png b/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.png
new file mode 100644
index 000000000..7ca86cf47
--- /dev/null
+++ b/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/tkuichooseyou/README.md b/keyboards/ergodox/keymaps/tkuichooseyou/README.md
index ab02fac2c..ab02fac2c 100644
--- a/keyboards/ergodox_ez/keymaps/tkuichooseyou/README.md
+++ b/keyboards/ergodox/keymaps/tkuichooseyou/README.md
diff --git a/keyboards/ergodox_ez/keymaps/tkuichooseyou/compiled.hex b/keyboards/ergodox/keymaps/tkuichooseyou/compiled.hex
index a8cf4527a..a8cf4527a 100644
--- a/keyboards/ergodox_ez/keymaps/tkuichooseyou/compiled.hex
+++ b/keyboards/ergodox/keymaps/tkuichooseyou/compiled.hex
diff --git a/keyboards/ergodox_ez/keymaps/tkuichooseyou/keymap.c b/keyboards/ergodox/keymaps/tkuichooseyou/keymap.c
index 87b77e42e..d1c779186 100644
--- a/keyboards/ergodox_ez/keymaps/tkuichooseyou/keymap.c
+++ b/keyboards/ergodox/keymaps/tkuichooseyou/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/tm2030/keymap.c b/keyboards/ergodox/keymaps/tm2030/keymap.c
index ca8075226..1d861ee7c 100644
--- a/keyboards/ergodox_ez/keymaps/tm2030/keymap.c
+++ b/keyboards/ergodox/keymaps/tm2030/keymap.c
@@ -1,5 +1,5 @@
/* TypeMatrix-2030-like keymap */
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "led.h"
diff --git a/keyboards/ergodox_ez/keymaps/tm2030/readme.md b/keyboards/ergodox/keymaps/tm2030/readme.md
index 6cd794726..6cd794726 100644
--- a/keyboards/ergodox_ez/keymaps/tm2030/readme.md
+++ b/keyboards/ergodox/keymaps/tm2030/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/tonyabra_osx/keymap.c b/keyboards/ergodox/keymaps/tonyabra_osx/keymap.c
index 87b9fb676..2a15fcb8d 100644
--- a/keyboards/ergodox_ez/keymaps/tonyabra_osx/keymap.c
+++ b/keyboards/ergodox/keymaps/tonyabra_osx/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
diff --git a/keyboards/ergodox_ez/keymaps/tonyabra_osx/readme.md b/keyboards/ergodox/keymaps/tonyabra_osx/readme.md
index f9d76efc2..f9d76efc2 100644
--- a/keyboards/ergodox_ez/keymaps/tonyabra_osx/readme.md
+++ b/keyboards/ergodox/keymaps/tonyabra_osx/readme.md
diff --git a/keyboards/ergodox/keymaps/townk_osx/config.h b/keyboards/ergodox/keymaps/townk_osx/config.h
new file mode 100644
index 000000000..72d3e9670
--- /dev/null
+++ b/keyboards/ergodox/keymaps/townk_osx/config.h
@@ -0,0 +1,44 @@
+/*
+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.h"
+/*
+ * 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/keyboards/ergodox_ez/keymaps/townk_osx/keymap.c b/keyboards/ergodox/keymaps/townk_osx/keymap.c
index 07e58a491..5043d49a0 100644
--- a/keyboards/ergodox_ez/keymaps/townk_osx/keymap.c
+++ b/keyboards/ergodox/keymaps/townk_osx/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "action_util.h"
diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk b/keyboards/ergodox/keymaps/townk_osx/makefile.mk
index e757557bd..c06021b9f 100644
--- a/keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk
+++ b/keyboards/ergodox/keymaps/townk_osx/makefile.mk
@@ -1,4 +1,2 @@
# I don't want my keyboard blinking lights when is suppose to be asleep.
-SLEEP_LED_ENABLE = no
-
-CONFIG_H = keymaps/$(KEYMAP)/config.h
+SLEEP_LED_ENABLE = no \ No newline at end of file
diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/readme.md b/keyboards/ergodox/keymaps/townk_osx/readme.md
index c2853ca17..c2853ca17 100644
--- a/keyboards/ergodox_ez/keymaps/townk_osx/readme.md
+++ b/keyboards/ergodox/keymaps/townk_osx/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_base.png b/keyboards/ergodox/keymaps/townk_osx/townk_osx_base.png
index f9bc8b443..f9bc8b443 100644
--- a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_base.png
+++ b/keyboards/ergodox/keymaps/townk_osx/townk_osx_base.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png b/keyboards/ergodox/keymaps/townk_osx/townk_osx_fn.png
index 983b72348..983b72348 100644
--- a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png
+++ b/keyboards/ergodox/keymaps/townk_osx/townk_osx_fn.png
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png b/keyboards/ergodox/keymaps/townk_osx/townk_osx_keypad.png
index 8f04b4327..8f04b4327 100644
--- a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png
+++ b/keyboards/ergodox/keymaps/townk_osx/townk_osx_keypad.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.c b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.c
new file mode 100644
index 000000000..c9dc43c56
--- /dev/null
+++ b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.c
@@ -0,0 +1,213 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+
+/* Keymap 0: Basic Dvorak layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | Hebrew | 1 | 2 | 3 | 4 | 5 |ALT+S | |B.tick| 6 | 7 | 8 | 9 | 0 | = |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | TAB | ' | , | . | P | Y | LCK2 | | | F | G | C | R | L | / |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | ESC | A | O | E | U | I |------| |------| D | H | T | N | S | - |
+ * |--------+------+------+------+------+------| LCK1 | | |------+------+------+------+------+--------|
+ * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RSHIFT |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |FN2 | COPY | CUT | PASTE| FN1 | | [ | ] | \ | UNDO | CTRL+A |
+ * `----------------------------------' `------------------------------------'
+ * ,-------------. ,-------------.
+* | DEL | | | END | HOME |
+ * ,------|------|------| |------+--------+------.
+ * | | | SUPER| | PgUp | | |
+ * | BACK | CTRL |------| |------| Enter |SPACE |
+ * | SPACE| | ALT | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+[0] = KEYMAP(
+ TG(1), KC_1, KC_2, KC_3, KC_4, KC_5, LALT(KC_LSHIFT),
+ KC_TAB, KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, TG(3),
+ KC_ESCAPE, KC_A, KC_O, KC_E, KC_U, KC_I,
+ KC_LSHIFT, KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, TG(2),
+ MO(3), LCTL(KC_C), LCTL(KC_X), LCTL(KC_V), MO(2),
+ KC_DELETE, KC_TRNS,
+ KC_LGUI,
+ KC_BSPACE,CTL_T(KC_NO),KC_LALT,
+
+ KC_TILD, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL,
+ KC_TRNS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLASH,
+ KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINUS,
+ KC_TRNS, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_LSHIFT,
+ KC_LBRACKET, KC_RBRACKET, KC_BSLASH, KC_UNDO, LCTL(KC_A),
+ KC_END, KC_HOME,
+ KC_PGUP,
+ KC_PGDOWN, KC_ENTER, KC_SPACE
+),
+
+ /* Keymap 1: Hebrew layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[1] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_W, KC_QUOTE, KC_SLASH, KC_R, KC_T, KC_TRNS,
+ KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_Y, KC_U, KC_E, KC_O, KC_P, KC_TRNS,
+ KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_TRNS,
+ KC_TRNS, KC_N, KC_M, KC_COMMA, KC_DOT, KC_I, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+/* Keymap 2: Arrows ,Mouse Navigation and F Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | F11 | | | UP | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | LEFT | DOWN | RIGHT| | |
+ * |--------+------+------+------+------+------| | | F12 |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | Lclk | Rclk | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[2] = KEYMAP(
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_UP, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
+ KC_F11, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS,
+ KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_MS_BTN1, KC_MS_BTN2, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+ /* Keymap 3: Numpad Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | NMLK | P/ | P* | P- | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | 7 | 8 | 9 | P+ | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| | 4 | 5 | 6 | P+ | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | 1 | 2 | 3 | ENTER| |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | 0 | 0 | . | ENTER| |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[3] = KEYMAP(
+ // Left Hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // Right Hand
+ KC_TRNS, KC_TRNS, KC_LOCKING_NUM, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TRNS,
+ KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_ENTER, KC_TRNS,
+ KC_KP_0, KC_KP_0, KC_KP_DOT, KC_ENTER, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(1)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ case 3:
+ ergodox_right_led_3_on();
+ default:
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.png b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.png
new file mode 100644
index 000000000..82c81dcae
--- /dev/null
+++ b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.png b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.png
new file mode 100644
index 000000000..ec8e7494d
--- /dev/null
+++ b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/readme.md b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/readme.md
new file mode 100644
index 000000000..99b8182f5
--- /dev/null
+++ b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/readme.md
@@ -0,0 +1,10 @@
+#Dvorak-Hebrew
+
+* This layout solves the problem of Dvorak Keyboard with OS QWERTY, which when you change to hebrew all the letters scrumble, the second layer is the Hebrew (top left button), which you can use on any computer, Plug and play.
+
+* The Hebrew layout itself solve another problem with the different locations of punctuation on Dvorak/Hebrew with few minor changes, it's based on Yuval Rabinovich's layout which you can find here : http://heboard.wordpress.com for regular QWERTY keyboards and for other operation systems.
+
+* these are only good when using a public computer or one you can't change settings on, because you need to change both keyboard layout and os layout each time you change language. A better solution is to use [hebrew-hw-dvorak](https://github.com/20lives/hebrew-hw-dvorak) as os layout.
+
+![layout image](https://github.com/20lives/qmk_firmware/blob/master/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.png)
+![layout image](https://github.com/20lives/qmk_firmware/blob/master/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.png)
diff --git a/keyboards/ergodox_ez/keymaps/twey/keymap.c b/keyboards/ergodox/keymaps/twey/keymap.c
index 019930f2a..1ecbce466 100644
--- a/keyboards/ergodox_ez/keymaps/twey/keymap.c
+++ b/keyboards/ergodox/keymaps/twey/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "keymap_plover.h"
@@ -205,6 +205,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
+ __attribute__ ((unused))
uint32_t layer0 = layer_state & (1UL << 0),
layer1 = layer_state & (1UL << 1),
layer2 = layer_state & (1UL << 2),
diff --git a/keyboards/ergodox_ez/keymaps/twey/readme.md b/keyboards/ergodox/keymaps/twey/readme.md
index 979e4261e..979e4261e 100644
--- a/keyboards/ergodox_ez/keymaps/twey/readme.md
+++ b/keyboards/ergodox/keymaps/twey/readme.md
diff --git a/keyboards/ergodox/keymaps/videck/Makefile b/keyboards/ergodox/keymaps/videck/Makefile
new file mode 100644
index 000000000..5c7d21f2c
--- /dev/null
+++ b/keyboards/ergodox/keymaps/videck/Makefile
@@ -0,0 +1,19 @@
+AUDIO_ENABLE:=no
+BACKLIGHT_ENABLE:=no
+BLUETOOTH_ENABLE:=no
+BOOTMAGIC_ENABLE:=no
+COMMAND_ENABLE:=no
+CONSOLE_ENABLE:=no
+EXTRAKEY_ENABLE:=yes
+MIDI_ENABLE:=no
+MOUSEKEY_ENABLE:=yes
+NKRO_ENABLE:=no
+RGBLIGHT_ENABLE:=no
+SLEEP_LED_ENABLE:=no
+TAP_DANCE_ENABLE:=yes
+UNICODEMAP_ENABLE:=no
+UNICODE_ENABLE:=no
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/ergodox/keymaps/videck/config.h b/keyboards/ergodox/keymaps/videck/config.h
new file mode 100644
index 000000000..d89aabe77
--- /dev/null
+++ b/keyboards/ergodox/keymaps/videck/config.h
@@ -0,0 +1,13 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#ifndef NO_DEBUG
+ #define NO_DEBUG
+#endif
+#ifndef NO_PRINT
+ #define NO_PRINT
+#endif
+
+#endif
diff --git a/keyboards/ergodox/keymaps/videck/keymap.c b/keyboards/ergodox/keymaps/videck/keymap.c
new file mode 100644
index 000000000..7bd6274e9
--- /dev/null
+++ b/keyboards/ergodox/keymaps/videck/keymap.c
@@ -0,0 +1,179 @@
+#include <stdbool.h>
+
+#include "ergodox.h"
+#include "action_layer.h"
+
+enum {
+ BASE = 0, // Default layer
+ ARROWS = 1, // Arrows and Fx keys layer
+ MOUSE = 2, // Mouse movement and buttons layer
+ PARENS = 3, // Parenthesis easy access layer
+
+ TD_L = 0, // Tap dance index for left shift
+ TD_R = 1 // Tap dance index for right shift
+};
+
+// See the videck.png image for a visualization of the layout.
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [BASE] = KEYMAP(
+ // left hand
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_HOME,
+ KC_EQL, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_END,
+ MO(PARENS), KC_A, KC_S, KC_D, KC_F, KC_G,
+ TD(TD_L), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSPC,
+ KC_LCTL, KC_LALT, KC_VOLD, KC_VOLU, KC_MUTE,
+ KC_ESC, KC_LGUI,
+ TG(MOUSE),
+ KC_SPC, KC_TAB, TG(ARROWS),
+ // right hand
+ KC_PGUP, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ KC_PGDN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_DELT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TD(TD_R),
+ KC_LBRC, KC_RBRC, KC_EQL, KC_RALT, KC_RCTL,
+ KC_APP, KC_ESC,
+ KC_INS,
+ KC_SLCK, KC_ENT, KC_SPC
+ ),
+ [ARROWS] = KEYMAP(
+ // left hand
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_NO,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [MOUSE] = KEYMAP(
+ // left hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_BTN3, KC_TRNS,
+ KC_TRNS,
+ KC_BTN1, KC_BTN2, KC_NO,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [PARENS] = KEYMAP(
+ // left hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_NO,
+ KC_TRNS, KC_TRNS, KC_NO,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
+
+typedef void (*videck_tap_dance_trigger_t) (const uint16_t kc);
+
+typedef struct
+{
+ uint16_t kc1;
+ uint16_t kc2;
+ videck_tap_dance_trigger_t trigger;
+} videck_tap_dance_tuple_t;
+
+static void videck_tap_dance_finished (qk_tap_dance_state_t *state, void *user_data) {
+ videck_tap_dance_tuple_t *const tuple = (videck_tap_dance_tuple_t *)user_data;
+
+ if (state->count == 1) {
+ register_code16 (tuple->kc1);
+ } else if (state->count == 2) {
+ register_code16 (tuple->kc2);
+ }
+}
+
+static void videck_tap_dance_reset (qk_tap_dance_state_t *state, void *user_data) {
+ videck_tap_dance_tuple_t *const tuple = (videck_tap_dance_tuple_t *)user_data;
+
+ if (state->count == 1) {
+ unregister_code16 (tuple->kc1);
+ } else if (state->count == 2) {
+ unregister_code16 (tuple->kc2);
+ tuple->trigger(tuple->kc2);
+ }
+}
+
+static bool caps_lock_is_on;
+
+// Toggles caps lock status.
+static void videck_caps_trigger (const uint16_t kc) {
+ caps_lock_is_on ^= true;
+}
+
+#define ACTION_TAP_DANCE_DOUBLE_TRIGGER(kc1, kc2, double_trigger) { \
+ .fn = { NULL, videck_tap_dance_finished, videck_tap_dance_reset }, \
+ .user_data = (void *)&((videck_tap_dance_tuple_t) { kc1, kc2, double_trigger }), \
+ }
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_L] = ACTION_TAP_DANCE_DOUBLE_TRIGGER(KC_LSFT, KC_CAPS, videck_caps_trigger),
+ [TD_R] = ACTION_TAP_DANCE_DOUBLE_TRIGGER(KC_RSFT, KC_CAPS, videck_caps_trigger)
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+ ergodox_led_all_set(LED_BRIGHTNESS_LO);
+ caps_lock_is_on = false;
+};
+
+static void indicate_using_led(const uint8_t led, const bool enabled) {
+ if (enabled) {
+ ergodox_right_led_on(led);
+ } else {
+ ergodox_right_led_off(led);
+ }
+}
+
+static inline void indicate_caps_lock_state(const bool enabled) {
+ indicate_using_led(1, enabled);
+}
+
+static inline void indicate_arrows_layer_state(const bool enabled) {
+ indicate_using_led(2, enabled);
+}
+
+static inline void indicate_mouse_layer_state(const bool enabled) {
+ indicate_using_led(3, enabled);
+}
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+ // Check if we have shift locked.
+ indicate_caps_lock_state(caps_lock_is_on);
+ indicate_arrows_layer_state(IS_LAYER_ON(ARROWS));
+ indicate_mouse_layer_state(IS_LAYER_ON(MOUSE));
+};
diff --git a/keyboards/ergodox/keymaps/videck/readme.md b/keyboards/ergodox/keymaps/videck/readme.md
new file mode 100644
index 000000000..759e81bac
--- /dev/null
+++ b/keyboards/ergodox/keymaps/videck/readme.md
@@ -0,0 +1,24 @@
+ViDeck keymap for ErgoDox
+=========================
+
+This is a QWERTY layout based on the US layout, where Vi functionality has been
+especially considered.
+
+# Features
+* Mouse movements using the Vi movement keys.
+* Vi movement keys doubling as arrow keys.
+* Shift lock using double tap.
+* A coder's modifier key for easy input of parenthesis.
+* Acess to the escape key using either thumb.
+* Reasonably accessible Scroll Lock key (useful if you, like me, want to switch
+ to a non-US layout once in a while in X).
+
+# Missing keys
+* Caps Lock (shift lock is used instead).
+* Pause/Break.
+* Print Screen.
+
+# LEDs
+* Shift lock is indicated using first LED.
+* Arrow keys layer is indicated using second LED.
+* Mouse keys layer is indicated using third LED.
diff --git a/keyboards/ergodox/keymaps/videck/videck.json b/keyboards/ergodox/keymaps/videck/videck.json
new file mode 100644
index 000000000..7068cf548
--- /dev/null
+++ b/keyboards/ergodox/keymaps/videck/videck.json
@@ -0,0 +1,443 @@
+[
+ {
+ "backcolor": "#333333",
+ "background": {
+ "name": "PBT Black",
+ "style": "background-image: url('/bg/plastic/pbt-black.png');"
+ },
+ "switchMount": "cherry",
+ "switchBrand": "gateron",
+ "switchType": "KS-3-Red"
+ },
+ [
+ {
+ "x": 3.5,
+ "c": "#323232",
+ "t": "#ffffff\n\n\n#ac97d8"
+ },
+ "#\n3\n\nF3",
+ {
+ "x": 10.5
+ },
+ "*\n8\n\nF8"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "@\n2\n\nF2",
+ {
+ "x": 1
+ },
+ "$\n4\n\nF4",
+ {
+ "x": 8.5
+ },
+ "&\n7\n\nF7",
+ {
+ "x": 1,
+ "t": "#ffffff\n\n\n#ac97d8\n\n\n\n#555454"
+ },
+ "(\n9\n\nF9"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "t": "#ffffff\n\n\n#ac97d8"
+ },
+ "%\n5\n\nF5",
+ {
+ "t": "#ffffff"
+ },
+ "home",
+ {
+ "x": 4.5
+ },
+ "pgup",
+ {
+ "t": "#ffffff\n\n\n#ac97d8"
+ },
+ "^\n6\n\nF6"
+ ],
+ [
+ {
+ "y": -0.875,
+ "t": "#ffffff",
+ "w": 1.5
+ },
+ "~\n`",
+ {
+ "t": "#ffffff\n\n\n#ac97d8"
+ },
+ "!\n1\n\nF1",
+ {
+ "x": 14.5
+ },
+ ")\n0\n\nF10",
+ {
+ "w": 1.5
+ },
+ "_\n-\n\nF11"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "t": "#ffffff"
+ },
+ "E",
+ {
+ "x": 10.5
+ },
+ "I"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "W",
+ {
+ "x": 1
+ },
+ "R",
+ {
+ "x": 8.5
+ },
+ "U",
+ {
+ "x": 1,
+ "t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615"
+ },
+ "O\n\n\n\n\n\n\n\n\n{"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "t": "#ffffff"
+ },
+ "T",
+ {
+ "h": 1.5
+ },
+ "end",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "pgdn",
+ "Y"
+ ],
+ [
+ {
+ "y": -0.875,
+ "w": 1.5
+ },
+ "+\n=",
+ "Q",
+ {
+ "x": 14.5,
+ "t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615"
+ },
+ "P\n\n\n\n\n\n\n\n\n}",
+ {
+ "t": "#ffffff\n\n\n#ac97d8",
+ "w": 1.5
+ },
+ "|\n\\\n\nF12"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "t": "#ffffff"
+ },
+ "D",
+ {
+ "x": 10.5,
+ "t": "#ffffff\n\n#5eb1e7\n#ac97d8"
+ },
+ "K\n\n<i class='fa fa-caret-up'></i>\n<i class='kb kb-Arrows-Up'></i>"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "t": "#ffffff"
+ },
+ "S",
+ {
+ "x": 1,
+ "n": true
+ },
+ "F",
+ {
+ "x": 8.5,
+ "t": "#ffffff\n\n#5eb1e7\n#ac97d8",
+ "n": true
+ },
+ "J\n\n<i class='fa fa-caret-down'></i>\n<i class='kb kb-Arrows-Down'></i>",
+ {
+ "x": 1,
+ "t": "#ffffff\n\n#5eb1e7\n#ac97d8\n\n\n\n\n\n#f8d615"
+ },
+ "L\n\n<i class='fa fa-caret-right'></i>\n<i class='kb kb-Arrows-Right'></i>\n\n\n\n\n\n("
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "t": "#ffffff"
+ },
+ "G",
+ {
+ "x": 6.5,
+ "t": "#ffffff\n\n#5eb1e7\n#ac97d8"
+ },
+ "H\n\n<i class='fa fa-caret-left'></i>\n<i class='kb kb-Arrows-Left'></i>"
+ ],
+ [
+ {
+ "y": -0.875,
+ "t": "#f8d615",
+ "a": 6,
+ "w": 1.5
+ },
+ "( ) [ ] { }",
+ {
+ "t": "#ffffff",
+ "a": 4
+ },
+ "A",
+ {
+ "x": 14.5,
+ "t": "#ffffff\n\n\n\n\n\n\n#60605b\n\n#f8d615"
+ },
+ ":\n;\n\n\n\n\n\n&Ouml;\n\n)",
+ {
+ "t": "#ffffff\n\n\n\n\n\n\n#60605b",
+ "w": 1.5
+ },
+ "\"\n'\n\n\n\n\n\n&Auml;"
+ ],
+ [
+ {
+ "y": -0.625,
+ "x": 6.5,
+ "t": "#ffffff",
+ "h": 1.5
+ },
+ "<i class='kb kb-Unicode-BackSpace-DeleteLeft-Big'></i>",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "<i class='kb kb-Unicode-DeleteRight-Big'></i>"
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 3.5
+ },
+ "C",
+ {
+ "x": 10.5
+ },
+ "<\n,"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "X",
+ {
+ "x": 1
+ },
+ "V",
+ {
+ "x": 8.5
+ },
+ "M",
+ {
+ "x": 1,
+ "t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615"
+ },
+ ">\n.\n\n\n\n\n\n\n\n["
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "t": "#ffffff"
+ },
+ "B",
+ {
+ "x": 6.5
+ },
+ "N"
+ ],
+ [
+ {
+ "y": -0.875,
+ "t": "#ffffff\n\n#f67f00",
+ "a": 6,
+ "fa": [
+ 5
+ ],
+ "w": 1.5
+ },
+ "&uArr;\n\n2-tap<br/>locks",
+ {
+ "t": "#ffffff",
+ "a": 4,
+ "f": 3
+ },
+ "Z",
+ {
+ "x": 14.5,
+ "t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615",
+ "f": 3
+ },
+ "?\n/\n\n\n\n\n\n\n\n]",
+ {
+ "t": "#ffffff\n\n#f67f00",
+ "a": 6,
+ "f": 3,
+ "w": 1.5
+ },
+ "&uArr;\n\n2-tap<br/>locks"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "t": "#ffffff",
+ "a": 4
+ },
+ "\n<i class='kb kb-Multimedia-Volume-Up-2'></i>",
+ {
+ "x": 10.5,
+ "f": 3
+ },
+ "}\n]"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "\n<i class='kb kb-Multimedia-Volume-Down-1'></i>",
+ {
+ "x": 1
+ },
+ "\n<i class='kb kb-Multimedia-Mute-1'></i>",
+ {
+ "x": 8.5,
+ "t": "#ffffff\n\n\n\n\n\n\n#60605b",
+ "f": 3
+ },
+ "{\n[\n\n\n\n\n\n&Aring;",
+ {
+ "x": 1,
+ "t": "#ffffff",
+ "f": 3
+ },
+ "+\n="
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 0.5,
+ "f": 3
+ },
+ "ctrl",
+ {
+ "f": 3
+ },
+ "alt",
+ {
+ "x": 14.5,
+ "f": 3
+ },
+ "altgr",
+ {
+ "f": 3
+ },
+ "ctrl"
+ ],
+ [
+ {
+ "r": 30,
+ "rx": 6.5,
+ "ry": 4.25,
+ "y": -1,
+ "x": 1,
+ "t": "#ffffff\n\n\n\n\n\n\n\n\n\n#5eb1e7",
+ "f": 3
+ },
+ "esc\n\n\n\n\n\n\n\n\n\n<i class='fa fa-mouse-pointer'></i>M",
+ {
+ "t": "#ffffff",
+ "f": 7
+ },
+ "<i class='kb kb-logo-linux-tux'></i>"
+ ],
+ [
+ {
+ "t": "#ffffff\n\n\n\n\n\n\n\n\n\n#5eb1e7",
+ "f": 3,
+ "h": 2
+ },
+ "space\n\n\n\n\n\n\n\n\n\n<i class='fa fa-mouse-pointer'></i>L",
+ {
+ "h": 2
+ },
+ "<i class='kb kb-Tab-1'></i>\n\n\n\n\n\n\n\n\n\n<i class='fa fa-mouse-pointer'></i>R",
+ {
+ "t": "#5eb1e7"
+ },
+ "<i class='fa fa-mouse-pointer'></i>"
+ ],
+ [
+ {
+ "x": 2,
+ "t": "#ac97d8"
+ },
+ "<i class='fa fa-arrows'></i>"
+ ],
+ [
+ {
+ "r": -30,
+ "rx": 13,
+ "y": -1,
+ "x": -3,
+ "t": "#ffffff"
+ },
+ "<i class='kb kb-Hamburger-Menu'></i>",
+ "esc"
+ ],
+ [
+ {
+ "x": -3
+ },
+ "ins",
+ {
+ "h": 2
+ },
+ "<i class='kb kb-Return-2'></i>",
+ {
+ "h": 2
+ },
+ "space"
+ ],
+ [
+ {
+ "x": -3
+ },
+ "scroll<br/>lock"
+ ]
+] \ No newline at end of file
diff --git a/keyboards/ergodox/keymaps/videck/videck.png b/keyboards/ergodox/keymaps/videck/videck.png
new file mode 100644
index 000000000..c99323f53
--- /dev/null
+++ b/keyboards/ergodox/keymaps/videck/videck.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/win10_writers-block/Makefile b/keyboards/ergodox/keymaps/win10_writers-block/Makefile
new file mode 100644
index 000000000..fbab4b71c
--- /dev/null
+++ b/keyboards/ergodox/keymaps/win10_writers-block/Makefile
@@ -0,0 +1,9 @@
+# Having a file like this allows you to override Makefile definitions
+# for your own particular keymap
+
+TAP_DANCE_ENABLE=yes
+
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/ergodox/keymaps/win10_writers-block/config.h b/keyboards/ergodox/keymaps/win10_writers-block/config.h
new file mode 100644
index 000000000..43259db08
--- /dev/null
+++ b/keyboards/ergodox/keymaps/win10_writers-block/config.h
@@ -0,0 +1,36 @@
+#ifndef KEYBOARDS_ERGODOX_CONFIG_H_
+#define KEYBOARDS_ERGODOX_CONFIG_H_
+
+#define MOUSEKEY_DELAY 100
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_MAX_SPEED 3
+#define MOUSEKEY_TIME_TO_MAX 10
+
+#define TAPPING_TOGGLE 1
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+#define TAPPING_TERM 300
+#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)) \
+)
+
+#ifdef SUBPROJECT_ez
+ #include "ez/config.h"
+#endif
+#ifdef SUBPROJECT_infinity
+ #include "infinity/config.h"
+#endif
+
+
+#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */
diff --git a/keyboards/ergodox/keymaps/win10_writers-block/images/base-layer.png b/keyboards/ergodox/keymaps/win10_writers-block/images/base-layer.png
new file mode 100644
index 000000000..d1cb1987c
--- /dev/null
+++ b/keyboards/ergodox/keymaps/win10_writers-block/images/base-layer.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/win10_writers-block/images/media-layer.png b/keyboards/ergodox/keymaps/win10_writers-block/images/media-layer.png
new file mode 100644
index 000000000..c2019da4e
--- /dev/null
+++ b/keyboards/ergodox/keymaps/win10_writers-block/images/media-layer.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/win10_writers-block/images/rimworld-layer.png b/keyboards/ergodox/keymaps/win10_writers-block/images/rimworld-layer.png
new file mode 100644
index 000000000..f866d3d55
--- /dev/null
+++ b/keyboards/ergodox/keymaps/win10_writers-block/images/rimworld-layer.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/win10_writers-block/images/symbol-layer.png b/keyboards/ergodox/keymaps/win10_writers-block/images/symbol-layer.png
new file mode 100644
index 000000000..6f49aae79
--- /dev/null
+++ b/keyboards/ergodox/keymaps/win10_writers-block/images/symbol-layer.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/win10_writers-block/keymap.c b/keyboards/ergodox/keymaps/win10_writers-block/keymap.c
new file mode 100644
index 000000000..3106b3374
--- /dev/null
+++ b/keyboards/ergodox/keymaps/win10_writers-block/keymap.c
@@ -0,0 +1,324 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+#include "wait.h"
+
+#define BASE 0 // default layer - helpful for writing in Office-style word processors.
+#define SYMB 1 // symbol layer - NumPad, etc. - same as Ergodox EZ default but no EEPROM or Version key
+#define RIMW 2 // rimworld layer - made for the game RimWorld, by Tynan Sylvester | feel free to remap for your favorite game!
+#define MDIA 3 // media layer - mouse and music - close to Ergodox EZ default media layer
+
+#define CO_PA M(0) // hold copy, tap paste
+
+#define W_CUT LCTL(KC_X) // C-x Cut
+#define W_COPY LCTL(KC_C) // C-c Copy
+#define W_PASTE LCTL(KC_V) // C-v Paste
+#define W_UNDO LCTL(KC_Z) // C-z Undo
+#define W_FIND LCTL(KC_F) // C-v Find
+#define W_CAD LCTL(LALT(KC_DEL)) // one-tap ctrl-alt-del
+
+
+
+//Tap Dance Declarations
+enum {
+ CAKEWARP,
+ CTRLALTMDIA,
+};
+
+void cake_count (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ layer_on (SYMB); //define double tap here
+ layer_off (MDIA);
+ }
+ else {
+ layer_off (SYMB); //define single tap or hold here
+ layer_off (MDIA);
+ }
+ if (state->count == 3) {
+ layer_on (RIMW); //define triple tap here
+ layer_off (MDIA);
+ }
+ else {
+ layer_off (RIMW); //define single tap or hold here
+ layer_off (MDIA);
+ reset_tap_dance (state);
+ }
+}
+
+void dance_cad_mdia_fin (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ register_code (KC_LCTL);
+ register_code (KC_LALT);
+ register_code (KC_DEL);
+ } else {
+ layer_on (MDIA);
+ }
+}
+
+void dance_cad_mdia_reset (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ unregister_code (KC_DEL);
+ unregister_code (KC_LALT);
+ unregister_code (KC_LCTL);
+ } else {
+ ;
+ }
+}
+
+//Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ // tap for Layer 0, tap twice to switch to symbol layer, and tap three times to switch to rimworld layer.
+ [CAKEWARP] = ACTION_TAP_DANCE_FN(cake_count)
+ // tap for ctrl-alt-del, tap twice for media layer
+ ,[CTRLALTMDIA] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cad_mdia_fin, dance_cad_mdia_reset)
+ // Other declarations would go here, separated by commas, if you have them
+};
+
+//In Layer declaration, add tap dance item in place of a key code
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer - TD(one_tap, two_taps, three_taps...)
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 7 | 8 | 9 | 0 | - | = |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | F12/L1 | Q | W | E | R | T | {/[ | |TD(L0 | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | |L1 L2)|------+------+------+------+------+--------|
+ * |Caps/Win| A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
+ * |--------+------+------+------+------+------| }/] | TD(ctrl|------+------+------+------+------+--------|
+ * |LShift/(|Z/Ctrl| X | C | V | B | | |altdel| N | M | , | . | / |RShift/)|
+ * `--------+------+------+------+------+-------------' |L3) |------+------+------+------+------+--------'
+ * | Undo | Cut |CopyPa| Meh | LGui | '------| | Enter| Left | Up | Down | Right |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | Esc | VolUp| | F4 | Mute |
+ * ,------|------|------| |------+--------+------.
+ * | | | VolDn| | F5 | | |
+ * |Backsp|Delete|------| |------| Tab / |Space |
+ * |ace | | Find | | Alt | CTRL | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
+LT(SYMB, KC_F12), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
+ GUI_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_RBRC,
+ W_UNDO, W_CUT, CO_PA, MEH_T(KC_NO), KC_LGUI,
+ KC_ESC, KC_VOLU,
+ KC_VOLD,
+ KC_BSPC, KC_DELETE, W_FIND,
+ // right hand
+ KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
+ TD(CAKEWARP), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ TD(CTRLALTMDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
+ KC_ENT, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT,
+ KC_F4, KC_MUTE,
+ KC_F5,
+ KC_RALT, CTL_T(KC_TAB), KC_SPC
+ ),
+
+/* Keymap 1: Symbol Layer | No EEPROM Or Version keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | xx | | xx | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | |TD(L0 | Up | 7 | 8 | 9 | * | F12 |
+ * |--------+------+------+------+------+------| | |L1 L2)|------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | - |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | . | 0 | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO,
+ KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+ KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+ KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_MINS,
+ KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_NO,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+/* Keymap 2: RimWorld Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 7 | 8 | 9 | 0 | - | = |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | TAB | C | ,< | W | >. | R | | |TD(L0 | U | B | N | J | M | PGUP |
+ * |--------+------+------+------+------+------| F10 | |L1 L2)|------+------+------+------+------+--------|
+ * | I | F | A | S | D | 8 |------| |------| X | L | P | Y | H | ENTER |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | K | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | PGDN |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | F | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * |SPACE | C |------| |------| E |SPACE |
+ * | | | Q | | | | |
+ * `--------------------' `--------------------'
+ */
+// RIMWORLD
+[RIMW] = KEYMAP(
+ // left hand
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
+ KC_TAB, KC_C, KC_COMM, KC_W, KC_DOT, KC_R, KC_F10,
+ KC_I, KC_F, KC_A, KC_S, KC_D, KC_8,
+ KC_K, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
+ KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_C,KC_Q,KC_TRNS,
+ // right hand
+ KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
+ KC_TRNS, KC_U, KC_B, KC_N, KC_J, KC_M, KC_PGUP,
+ KC_X, KC_L, SFT_T(KC_P), KC_Y, KC_H, KC_ENT,
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGDN,
+ KC_F, KC_LEFT, KC_UP, KC_DOWN,KC_RIGHT,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_E, KC_TRNS
+),
+/* Keymap 3: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | |Brwser|
+ * | Lclk | Rclk |------| |------| |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_BTN1, KC_BTN2, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+),
+};
+
+static uint16_t key_timer;
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case 0: {
+ if (record->event.pressed) {
+ key_timer = timer_read(); // if the key is being pressed, we start the timer.
+ }
+ else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down").
+ if (timer_elapsed(key_timer) > 150) { // 150 being 150ms, the threshhold we pick for counting something as a tap.
+ return MACRO( D(LCTL), T(C), U(LCTL), END );
+ }
+ else {
+ return MACRO( D(LCTL), T(V), U(LCTL), END );
+ }
+ }
+ break;
+ }
+ }
+ return MACRO_NONE;
+};
+
+// Anything you want to do once when the keyboard initializes.
+// Tests LED function when the keyboard initializes.
+void matrix_init_user(void) {
+
+ wait_ms(500);
+ ergodox_board_led_on();
+ wait_ms(200);
+ ergodox_right_led_1_on();
+ wait_ms(200);
+ ergodox_right_led_2_on();
+ wait_ms(200);
+ ergodox_right_led_3_on();
+ wait_ms(200);
+ ergodox_board_led_off();
+ wait_ms(200);
+ ergodox_right_led_1_off();
+ wait_ms(200);
+ ergodox_right_led_2_off();
+ wait_ms(200);
+ ergodox_right_led_3_off();
+
+};
+
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ case 3:
+ ergodox_right_led_3_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/keymaps/win10_writers-block/readme.md b/keyboards/ergodox/keymaps/win10_writers-block/readme.md
new file mode 100644
index 000000000..83f91bce2
--- /dev/null
+++ b/keyboards/ergodox/keymaps/win10_writers-block/readme.md
@@ -0,0 +1,113 @@
+<!-- -*- mode: markdown; fill-column: 8192 -*- -->
+
+Win10 Writer's Block ErgoDox - v1.0
+
+=======================
+
+This is a QWERTY layout for QMK. It's designed to work well in MS Office-like environments. It's tested on Windows 7 and 10.
+
+Professional writers may find this layout useful -- copywriters, technical writers, novelists, etc.
+
+I use my ErgoDox with this keymap as a daily driver at my office.
+
+A gaming layer is unobtrusively built into this layout. I use that layer to play RimWorld.
+
+Feel free to modify the gaming layer to your personal taste.
+
+## Table of Contents
+
+* [Layouts](#layouts)
+ - [Base layer](#base-layer)
+ - [Symbol layer](#symbol-layer)
+ - [Gaming layer](#rimworld-layer)
+ - [Media layer](#media-layer)
+* [Tools](#tools)
+ - [Layer notification](#layer-notification)
+* [Building](#building)
+ - [Using on Windows](#using-on-windows)
+* [License](#license)
+* [Special Thanks](#special-thanks)
+
+# Layouts
+
+* TapDance will teleport you to the layer you want:
+* One Tap for the Base layer
+* Two Taps for the Symbol layer
+* Three Taps for the Rimworld/Gaming layer
+
+* Where the "Meh" key is located on the Ergodox EZ default layout, I've changed it to another tap dance key:
+* One Tap for CTRL-ALT-DEL
+* Two Taps for the Media/Mouse layer
+
+## Base layer
+
+[![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/8fd9bbdd3a23bbb5a8779de3624a3be1)
+
+This is a QWERTY layout with some quirks.
+
+* Enter is located on a key that won't cause as much thumb fatigue.
+* Copy and Paste work from the same key. Just hold the key to copy and tap the key to paste!
+* Undo, Find and Cut are also one-touch keys.
+* F12 is where you would normally find TAB on standard layouts. Quickly save in Word, safely.
+* You'll find bracket keys below the "6" key.
+
+* The Meh Key is a single-button CTRL+ALT+SHIFT modifier.
+
+* Space Cadet Shift: Tap L Shift for "(" and R Shift for ")" -- holding either shift works like a normal shift.
+* Tap "Z" or Tab to use either normally. Hold them for CTRL.
+* Tap Caps Lock to use it normally. Hold it for Win key combinations (Win+D to minimize all programs, etc).
+
+## Symbol layer
+
+[![Symbol layer](images/symbol-layer.png)](http://www.keyboard-layout-editor.com/#/gists/04eb6458b8b17882e472f64d482f12b4)
+
+Your standard Ergodox EZ symbol + numpad layout, minus the Version and EEPROM keys.
+
+* From the base layer, hold the F12 Key to temporarily access this layer (use for quick access to numpad)
+* Release F12 to return to the base layer.
+
+## Rimworld layer
+
+[![Rimworld / Gaming Layer](images/rimworld-layer.png)](http://www.keyboard-layout-editor.com/#/gists/d53af8391e6e443ed0a98ccfbdb4eace)
+
+This layer was made to play RimWorld, a Sci-Fi Colony Survival Game by Tynan Sylvester and Ludeon Studios, available on Steam.
+
+* Have fun!
+
+## Media layer
+
+[![Media layer](images/media-layer.png)](http://www.keyboard-layout-editor.com/#/gists/3209d09ed4bd997e4f49f28c6ada2ab3)
+
+This is the standard Ergodox EZ media layout with more options for mouseclick buttons.
+
+* In this layer, your "space" key changes into a back button for your browser.
+
+## LED states
+
+Your LEDs will change to indicate your layer. You'll know you are in the base layer if all LEDs are off.
+
+# Building
+
+To build, you will need the [QMK][qmk] firmware checked out. from there, dive into `keyboards/ergodox/keymaps/win10_writers-block/`
+
+[qmk]: https://github.com/qmk/qmk_firmware
+
+```
+$ make keyboard=ergodox keymap=win10_writers-block
+```
+
+## Using on Windows
+
+This layout is tested in Windows 7 Pro and Windows 10 Home environments.
+
+# License
+
+GPL 3+
+
+# Special Thanks
+
+* To algernon for his coding help. I'm a novice but I still made this work (and figured out tap dance) with his help.
+
+* To /r/MechanicalKeyboards for being an all-around great community.
+
+* To /u/profet23 for his amazing custom Ergodox boards. \ No newline at end of file
diff --git a/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c b/keyboards/ergodox/keymaps/workman_osx_mdw/keymap.c
index 8effa53b2..c05a1018d 100644
--- a/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c
+++ b/keyboards/ergodox/keymaps/workman_osx_mdw/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
// readme
diff --git a/keyboards/ergodox/keymaps/xyverz/keymap.c b/keyboards/ergodox/keymaps/xyverz/keymap.c
new file mode 100644
index 000000000..08ee5aeda
--- /dev/null
+++ b/keyboards/ergodox/keymaps/xyverz/keymap.c
@@ -0,0 +1,312 @@
+/*
+ * About this keymap:
+ *
+ * The Dvorak layout shown herestems from my early Kinesis years, using the Contour PS/2 with a Dvorak
+ * software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner
+ * keys. I've decided to continue using this layout with my ErgoDox.
+ *
+ * The QWERTY layout shown here is based entirely on the Kinesis Advantage layout, with the additional
+ * keys as shown in the diagrams. The Colemak layout is merely an adaptation of that.
+ *
+ * I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck
+ * layouts.
+ *
+ */
+
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+#define _DV 0 // Dvorak layer
+#define _QW 1 // Qwerty layer
+#define _CM 2 // Colemak layer
+#define _MD 3 // Media Layer
+#define _KP 4 // Keypad Layer
+
+// Macro name shortcuts
+#define DVORAK M(_DV)
+#define QWERTY M(_QW)
+#define COLEMAK M(_CM)
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Layer 0 : Dvorak
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ] | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | [ |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | ' | , | . | P | Y | | | | F | G | C | R | L | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | CapsLk | A | O | E | U | I |------| |------| D | H | T | N | S | - |
+ * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------|
+ * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | LGUI | ` | INS | Left | Rght | | Up | Dn | / | = | RGUI |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | LCTL | LALT | | RALT | RCTL |
+ * ,------|------|------| |------+------+------.
+ * | | | Home | | PgUp | | |
+ * | BkSp | Del |------| |------| Enter| Space|
+ * | | | End | | PgDn | | |
+ * `--------------------' `--------------------'
+ *
+ */
+[_DV] = KEYMAP(
+ // left hand
+ KC_RBRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, XXXXXXX,
+ KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(_MD),
+ KC_LGUI, KC_GRV, KC_INS, KC_LEFT, KC_RGHT,
+ KC_LCTL, KC_LALT,
+ KC_HOME,
+ KC_BSPC, KC_DEL, KC_END,
+ // right hand
+ KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC,
+ XXXXXXX, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS,
+ KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
+ MO(_KP), KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
+ KC_UP, KC_DOWN, KC_SLSH, KC_EQL, KC_RGUI,
+ KC_RALT, KC_RCTL,
+ KC_PGUP,
+ KC_PGDN, KC_ENT, KC_SPC
+ ),
+
+
+/* Layer 1: QWERTY
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
+ * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | LGUI | ` | INS | Left | Rght | | Up | Dn | / | = | RGUI |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | LCTL | LALT | | RALT | RCTL |
+ * ,------|------|------| |------+------+------.
+ * | | | Home | | PgUp | | |
+ * | BkSp | Del |------| |------| Enter| Space|
+ * | | | End | | PgDn | | |
+ * `--------------------' `--------------------'
+ */
+[_QW] = KEYMAP(
+ // 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, XXXXXXX,
+ KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_MD),
+ KC_LGUI, KC_GRV, KC_INS, KC_LEFT, KC_RGHT,
+ KC_LCTL, KC_LALT,
+ KC_HOME,
+ KC_BSPC, KC_DEL, KC_END,
+ // right hand
+ KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ MO(_KP), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_RGUI,
+ KC_LALT, KC_LCTL,
+ KC_PGUP,
+ KC_PGDN, KC_ENT, KC_SPC
+ ),
+
+
+/* Layer 2 : Colemak
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | BkSpc | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
+ * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | | | | K | M | , | . | / | RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | LGUI | ` | INS | Left | Rght | | Up | Dn | / | = | RGUI |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | LCTL | LALT | | RALT | RCTL |
+ * ,------|------|------| |------+------+------.
+ * | | | Home | | PgUp | | |
+ * | BkSp | Del |------| |------| Enter| Space|
+ * | | | End | | PgDn | | |
+ * `--------------------' `--------------------'
+ */
+[_CM] = KEYMAP(
+ // left hand
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
+ KC_DELT, KC_Q, KC_W, KC_F, KC_P, KC_G, XXXXXXX,
+ KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_MD),
+ KC_LGUI, KC_GRV, KC_INS, KC_LEFT, KC_RGHT,
+ KC_LCTL, KC_LALT,
+ KC_HOME,
+ KC_BSPC, KC_DEL, KC_END,
+ // right hand
+ KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ XXXXXXX, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
+ KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+ MO(_KP), KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_RGUI,
+ KC_LALT, KC_LCTL,
+ KC_PGUP,
+ KC_PGDN, KC_ENT, KC_SPC
+ ),
+
+
+/* Layer 3 : Media layer
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | TEENSY | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | PrSc | ScLk | Paus | | | | | | Mute | Vol- | Vol+ | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| Stop | Prev | Play | Next | Sel | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |Dvorak|Qwerty|Colemk| | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[_MD] = KEYMAP(
+ // left hand
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
+ _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, DVORAK, QWERTY, COLEMAK, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______,
+ // right hand
+ KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
+ _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
+ KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______
+ ),
+
+
+/* Layer 4 : Keypad layer
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | Power | | | | | | | | | | NmLk | KP = | KP / | KP * | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Sleep | | | | | | | | | | KP 7 | KP 8 | KP 9 | KP - | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Wake | | | | | |------| |------| | KP 4 | KP 5 | KP 6 | KP + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | KP 1 | KP 2 | KP 3 |KP Ent| |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | KP 0 | | KP . |KP Ent| |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[_KP] = KEYMAP(
+ // left hand
+ KC_PWR, _______, _______, _______, _______, _______, _______,
+ KC_SLEP, _______, _______, _______, _______, _______, _______,
+ KC_WAKE, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______,
+ // right hand
+ _______, _______, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, _______,
+ _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
+ _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
+ _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
+ KC_P0, _______, KC_PDOT, KC_PENT, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______
+ ),
+
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case _DV:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_DV);
+ }
+ break;
+ case _QW:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_QW);
+ }
+ break;
+ case _CM:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_CM);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboards/ergodox/keymaps/xyverz/readme.md b/keyboards/ergodox/keymaps/xyverz/readme.md
new file mode 100644
index 000000000..6ecdabc9e
--- /dev/null
+++ b/keyboards/ergodox/keymaps/xyverz/readme.md
@@ -0,0 +1,122 @@
+# Xyverz's ErgoDox EZ Keymap
+
+## About this keymap:
+
+The Dvorak layout shown herestems from my early Kinesis years, using the Contour PS/2 with a Dvorak software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner keys. I've decided to continue using this layout with my ErgoDox.
+
+The QWERTY layout shown here is based entirely on the Kinesis Advantage layout, with the additional keys as shown in the diagrams. The Colemak layout is merely an adaptation of that.
+
+I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts.
+
+## Still to do:
+
+ * Need to figure out a better position for the ESC key.
+ * Come up with a function for the empty keys shown in the alpha layers below.
+ * Fix the CapsLock, NumLock, and ScrLck LEDs.
+
+### Layer 0: Dvorak layer
+
+ ,--------------------------------------------------.,--------------------------------------------------.
+ | ] | 1 | 2 | 3 | 4 | 5 | ESC || ESC | 6 | 7 | 8 | 9 | 0 | [ |
+ |--------+------+------+------+------+-------------||------+------+------+------+------+------+--------|
+ | Tab | ' | , | . | Y | Y | || | F | G | C | R | L | \ |
+ |--------+------+------+------+------+------| || |------+------+------+------+------+--------|
+ | CapsLk | A | O | E | U | I |------||------| D | H | T | N | S | - |
+ |--------+------+------+------+------+------| _MD || _KP |------+------+------+------+------+--------|
+ | LShift | Z | X | C | V | X | || | B | M | W | V | Z | RShift |
+ `--------+------+------+------+------+-------------'`-------------+------+------+------+------+--------'
+ | LGUI | ` | INS | Left | Rght | | Up | Dn | / | = | RGUI |
+ `----------------------------------' `----------------------------------'
+ ,-------------.,-------------.
+ | LCtr | LAlt || Ralt | RCtr |
+ ,------|------|------||------+------+------.
+ | | | Home || PgUp | | |
+ | BkSp | Del |------||------| Enter| Space|
+ | | | End || PgDn | | |
+ `--------------------'`--------------------'
+
+### Layer 1: QWERTY layer
+
+ ,--------------------------------------------------.,--------------------------------------------------.
+ | = | 1 | 2 | 3 | 4 | 5 | ESC || ESC | 6 | 7 | 8 | 9 | 0 | - |
+ |--------+------+------+------+------+-------------||------+------+------+------+------+------+--------|
+ | Tab | Q | W | E | R | T | || | Y | U | I | O | P | \ |
+ |--------+------+------+------+------+------| || |------+------+------+------+------+--------|
+ | CapsLk | A | S | D | F | G |------||------| H | J | K | L | ; | ' |
+ |--------+------+------+------+------+------| _MD || _KP |------+------+------+------+------+--------|
+ | LShift | Z | X | C | V | B | || | N | M | , | . | / | RShift |
+ `--------+------+------+------+------+-------------'`-------------+------+------+------+------+--------'
+ | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI |
+ `----------------------------------' `----------------------------------'
+ ,-------------.,-------------.
+ | LCtr | LAlt || Ralt | RCtr |
+ ,------|------|------||------+------+------.
+ | | | Home || PgUp | | |
+ | BkSp | Del |------||------| Enter| Space|
+ | | | End || PgDn | | |
+ `--------------------'`--------------------'
+
+### Keymap 2: Colemak layer
+
+ ,--------------------------------------------------.,--------------------------------------------------.
+ | = | 1 | 2 | 3 | 4 | 5 | ESC || ESC | 6 | 7 | 8 | 9 | 0 | - |
+ |--------+------+------+------+------+-------------||------+------+------+------+------+------+--------|
+ | Tab | Q | W | F | P | G | || | J | L | U | Y | ; | \ |
+ |--------+------+------+------+------+------| || |------+------+------+------+------+--------|
+ | BkSpc | A | R | S | T | D |------||------| H | N | E | I | O | ' |
+ |--------+------+------+------+------+------| _MD || _KP |------+------+------+------+------+--------|
+ | LShift | Z | X | C | V | B | || | K | M | , | . | / | RShift |
+ `--------+------+------+------+------+-------------'`-------------+------+------+------+------+--------'
+ | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI |
+ `----------------------------------' `----------------------------------'
+ ,-------------.,-------------.
+ | LCtr | LAlt || Ralt | RCtr |
+ ,------|------|------||------+------+------.
+ | | | Home || PgUp | | |
+ | BkSp | Del |------||------| Enter| Space|
+ | | | End || PgDn | | |
+ `--------------------'`--------------------'
+
+### layer 3 : Media layer
+
+ ,--------------------------------------------------.,--------------------------------------------------.
+ | TEENSY | F1 | F2 | F3 | F4 | F5 | F11 || F12 | F6 | F7 | F8 | F9 | F10 | |
+ |--------+------+------+------+------+-------------||------+------+------+------+------+------+--------|
+ | | | PrSc | ScLk | Paus | | || | | Mute | Vol- | Vol+ | | |
+ |--------+------+------+------+------+------| || |------+------+------+------+------+--------|
+ | | | | | | |------||------| Stop | Prev | Play | Next | Sel | |
+ |--------+------+------+------+------+------| || |------+------+------+------+------+--------|
+ | | |Dvorak|Qwerty|Colemk| | || | | | | | | |
+ `--------+------+------+------+------+-------------'`-------------+------+------+------+------+--------'
+ | | | | | | | | | | | |
+ `----------------------------------' `----------------------------------'
+ ,-------------.,-------------.
+ | | || | |
+ ,------|------|------||------+------+------.
+ | | | || | | |
+ | | |------||------| | |
+ | | | || | | |
+ `--------------------'`--------------------'
+
+
+
+### Keymap 4: Keypad layer
+
+ ,--------------------------------------------------.,--------------------------------------------------.
+ | Power | | | | | | || | | NmLk | KP = | KP / | KP * | |
+ |--------+------+------+------+------+-------------||------+------+------+------+------+------+--------|
+ | Sleep | | | | | | || | | KP 7 | KP 8 | KP 9 | KP - | |
+ |--------+------+------+------+------+------| || |------+------+------+------+------+--------|
+ | Wake | | | | | |------||------| | KP 4 | KP 5 | KP 6 | KP + | |
+ |--------+------+------+------+------+------| || |------+------+------+------+------+--------|
+ | | | | | | | || | | KP 1 | KP 2 | KP 3 |KP Ent| |
+ `--------+------+------+------+------+-------------'`-------------+------+------+------+------+--------'
+ | | | | | | | KP 0 | | KP . |KP Ent| |
+ `----------------------------------' `----------------------------------'
+ ,-------------.,-------------.
+ | | || | |
+ ,------|------|------||------+------+------.
+ | | | || | | |
+ | | |------||------| | |
+ | | | || | | |
+ `--------------------'`--------------------'
diff --git a/keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf b/keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf
new file mode 100644
index 000000000..ce4fce3b1
--- /dev/null
+++ b/keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf
@@ -0,0 +1,6 @@
+Section "InputClass"
+ Identifier "ErgoDox EZ"
+ MatchIsKeyboard "on"
+ MatchProduct "ErgoDox EZ ErgoDox EZ"
+ Option "XkbLayout" "ergodox_yoruian"
+EndSection
diff --git a/keyboards/ergodox/keymaps/yoruian/Makefile b/keyboards/ergodox/keymaps/yoruian/Makefile
new file mode 100644
index 000000000..b43a24c61
--- /dev/null
+++ b/keyboards/ergodox/keymaps/yoruian/Makefile
@@ -0,0 +1,13 @@
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
+
+install-xorg-configuration:
+ install -m 0664 90-$(KEYBOARD)-$(KEYMAP).conf \
+ /etc/X11/xorg.conf.d/90-$(KEYBOARD)-$(KEYMAP).conf
+ install -m 0644 $(KEYBOARD)_$(KEYMAP) \
+ /usr/share/X11/xkb/symbols/$(KEYBOARD)_$(KEYMAP)
+
+uninstall-xorg-configuration:
+ -rm -f /etc/X11/xorg.conf.d/90-$(KEYBOARD)-$(KEYMAP).conf
+ -rm -f /usr/share/X11/xkb/symbols/$(KEYBOARD)_$(KEYMAP)
diff --git a/keyboards/ergodox/keymaps/yoruian/README b/keyboards/ergodox/keymaps/yoruian/README
new file mode 100644
index 000000000..99b41434e
--- /dev/null
+++ b/keyboards/ergodox/keymaps/yoruian/README
@@ -0,0 +1,102 @@
+ Snarfangel's YORUIAN for the ErgoDox EZ
+ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
+DEFAULT
+â”â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┓ â”â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┓
+┃ ` │ ; │ : │ - │ / │ ( │ < ┃ ┃ > │ ) │ ^ │ * │ ~ │ Γ │ σ ┃
+┠───┼───┼───┼───┼───┼───┼───┨ ┠───┼───┼───┼───┼───┼───┼───┨
+┃ ⎋ │ . │ y │ o │ r │ ? │ ✦ ┃ ┃ ✦ │ j │ v │ d │ f │ w │ q ┃
+┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨
+┃ ⎈ │ u │ i │ a │ n │ ! ├───┨ ┠───┤ m │ h │ t │ s │ c │ ⎈ ┃
+┠───┼───┼───┼───┼───┼───┤ ■┃ ┃ ■├───┼───┼───┼───┼───┼───┨
+┃ λ │ ' │ " │ , │ _ │ = │ ┃ ┃ │ k │ l │ p │ g │ b │ x ┃
+┠───┼───┼───┼───┼───╆â”â”â”â”·â”â”â”â”› â”—â”â”â”â”·â”â”â”╅───┼───┼───┼───┼───┨
+┃ ⎀ │ E │ │ │ ◆ ┃ ┃ ◆ │ │ │ z │ ⎙ ┃
+â”—â”â”â”â”·â”â”â”â”·â”â”â”â”·â”â”â”â”·â”â”â”â”› â”—â”â”â”â”·â”â”â”â”·â”â”â”â”·â”â”â”â”·â”â”â”â”›
+ â”â”â”â”┯â”â”â”┓ â”â”â”â”┯â”â”â”┓
+ ┃ ⌫ │ ⌥ ┃ ┃ ⎄ │ ↹ ┃
+ â”â”â”â”╃───┼───┨ ┠───┼───╄â”â”â”┓
+ ┃ │ │ ┃ ┃ │ │ ┃
+ ┃ e │ ⇧ ├───┨ ┠───┤ ⎠│ ⣠┃
+ ┃ │ │ ┃ ┃ │ │ ┃
+ â”—â”â”â”â”·â”â”â”â”·â”â”â”â”› â”—â”â”â”â”·â”â”â”â”·â”â”â”â”›
+SHIFTED
+â”â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┓ â”â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┓
+┃ 9 │ 7 │ 5 │ 3 │ 1 │ [ │ { ┃ ┃ } │ ] │ 0 │ 2 │ 4 │ 6 │ 8 ┃
+┠───┼───┼───┼───┼───┼───┼───┨ ┠───┼───┼───┼───┼───┼───┼───┨
+┃ │ * │ Y │ O │ R │ \ │ ┃ ┃ │ J │ V │ D │ F │ W │ Q ┃
+┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨
+┃ │ U │ I │ A │ N │ | ├───┨ ┠───┤ M │ H │ T │ S │ C │ ┃
+┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨
+┃ │ # │ $ │ @ │ & │ + │ ┃ ┃ │ K │ L │ P │ G │ B │ X ┃
+┠───┼───┼───┼───┼───╆â”â”â”â”·â”â”â”â”› â”—â”â”â”â”·â”â”â”╅───┼───┼───┼───┼───┨
+┃ │ │ │ │ ┃ ┃ │ │ │ Z │ ┃
+â”—â”â”â”â”·â”â”â”â”·â”â”â”â”·â”â”â”â”·â”â”â”â”› â”—â”â”â”â”·â”â”â”â”·â”â”â”â”·â”â”â”â”·â”â”â”â”›
+ â”â”â”â”┯â”â”â”┓ â”â”â”â”┯â”â”â”┓
+ ┃ │ ┃ ┃ │ ┃
+ â”â”â”â”╃───┼───┨ ┠───┼───╄â”â”â”┓
+ ┃ │ │ ┃ ┃ │ │ ┃
+ ┃ │ ├───┨ ┠───┤ │ ┃
+ ┃ │ │ ┃ ┃ │ │ ┃
+ â”—â”â”â”â”·â”â”â”â”·â”â”â”â”› â”—â”â”â”â”·â”â”â”â”·â”â”â”â”›
+λ LAYER
+â”â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┓ â”â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┯â”â”â”┓
+┃ │ │ │ │ │ │ ┃ ┃ │ │ ⑤ │ ⑥ │ ⑦ │ ⑧ │ ⑨ ┃
+┠───┼───┼───┼───┼───┼───┼───┨ ┠───┼───┼───┼───┼───┼───┼───┨
+┃ │ │ │ │ │ │ ┃ ┃ │ │ ① │ ② │ ③ │ ④ │ ⑩ ┃
+┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨
+┃ │ │ │ │ │ ├───┨ ┠───┤ ⎉ │ ↠│ ↓ │ ↑ │ → │ ⑪ ┃
+┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨
+┃ λ │ │ │ │ │ │ ┃ ┃ │ │ ⇱ │ ⎘ │ ⎗ │ ⇲ │ ⑫ ┃
+┠───┼───┼───┼───┼───╆â”â”â”â”·â”â”â”â”› â”—â”â”â”â”·â”â”â”╅───┼───┼───┼───┼───┨
+┃ │ │ │ │ ┃ ┃ │ │ │ │ ┃
+â”—â”â”â”â”·â”â”â”â”·â”â”â”â”·â”â”â”â”·â”â”â”â”› â”—â”â”â”â”·â”â”â”â”·â”â”â”â”·â”â”â”â”·â”â”â”â”›
+ â”â”â”â”┯â”â”â”┓ â”â”â”â”┯â”â”â”┓
+ ┃ │ ┃ ┃ │ ┃
+ â”â”â”â”╃───┼───┨ ┠───┼───╄â”â”â”┓
+ ┃ │ │ ┃ ┃ │ │ ┃
+ ┃ │ ├───┨ ┠───┤ │ ┃
+ ┃ │ │ ┃ ┃ │ │ ┃
+ â”—â”â”â”â”·â”â”â”â”·â”â”â”â”› â”—â”â”â”â”·â”â”â”â”·â”â”â”â”›
+
+Installation (X only)
+‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
+ 1. Build and flash firmware as usual
+
+ 2. sudo make install-xorg-configuration
+
+ 3. Restart X
+
+Features
+‾‾‾‾‾‾‾‾
+ • E on the thumb
+
+ • Emacs-friendly
+
+ • Symmetric control keys for finger wear levelling
+
+ • Greek and subscript dead keys
+
+ • Compose key for arbitrary Unicode input via ~/.XCompose
+
+Don't Cares
+‾‾‾‾‾‾‾‾‾‾‾
+ • Easy migration from QWERTY
+
+ • Compatbility with non-XKB systems
+
+ • Mouse emulation
+
+ • Media keys
+
+Acknowledgements
+‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
+Snarfangel, for designing the layout.
+
+The GNU FreeFont project and Steve White, for adding new keyboard
+symbols.
+
+Xah Lee, for http://xahlee.info/comp/unicode_computing_symbols.html
+
+Colophon
+‾‾‾‾‾‾‾‾
+This file is best-viewed with an SVN version of GNU FreeFont Mono.
diff --git a/keyboards/ergodox/keymaps/yoruian/ergodox_yoruian b/keyboards/ergodox/keymaps/yoruian/ergodox_yoruian
new file mode 100644
index 000000000..0d13fbfd4
--- /dev/null
+++ b/keyboards/ergodox/keymaps/yoruian/ergodox_yoruian
@@ -0,0 +1,34 @@
+partial alphanumeric_keys modifier_keys
+xkb_symbols "ergodox_yoruian" {
+ include "us"
+ name[Group1]= "English (yoruian-1.0.0)";
+
+ replace key <KP2> { [ Multi_key, Multi_key ] };
+ replace key <KP3> { [ Hyper_L, Hyper_L ] };
+ replace key <AE09> { [ grave, 9 ] };
+ replace key <AE07> { [ semicolon, 7 ] };
+ replace key <AE05> { [ colon, 5 ] };
+ replace key <AE03> { [ minus, 3 ] };
+ replace key <AE01> { [ slash, 1 ] };
+ replace key <AE10> { [ asciicircum, 0 ] };
+ replace key <AE02> { [ percent, 2 ] };
+ replace key <AE04> { [ asciitilde, 4 ] };
+ replace key <AE06> { [ dead_greek, 6 ] };
+ replace key <AE08> { [ dead_caron, 8 ] };
+ replace key <KP1> { [ E, E ] };
+ replace key <AD12> { [ period, asterisk ] };
+ replace key <BKSL> { [ question, backslash ] };
+ replace key <AC10> { [ exclam, bar ] };
+ replace key <AC11> { [ apostrophe, numbersign ] };
+ replace key <AB08> { [ quotedbl, dollar ] };
+ replace key <AB09> { [ comma, at ] };
+ replace key <AB10> { [ underscore, ampersand ] };
+ replace key <KP0> { [ equal, plus ] };
+ replace key <TLDE> { [ parenleft, bracketleft ] };
+ replace key <AE11> { [ less, braceleft ] };
+ replace key <AE12> { [ greater, braceright ] };
+ replace key <AD11> { [ parenright, bracketright ] };
+
+ modifier_map none { <HYPR> };
+ modifier_map Mod3 { <KP3> };
+};
diff --git a/keyboards/ergodox/keymaps/yoruian/keymap.c b/keyboards/ergodox/keymaps/yoruian/keymap.c
new file mode 100644
index 000000000..d3635ddf3
--- /dev/null
+++ b/keyboards/ergodox/keymaps/yoruian/keymap.c
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2016 Thomas Fitzsimmons <fitzsim@fitzsim.org>
+ *
+ * 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 3 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/>.
+ */
+#include "yoruian.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = KEYMAP\
+(9, 7, 5, 3, 1, GRV, MINS, EQL, LBRC, 0, 2, 4, 6, 8,
+ ES, RBRC, Y, O, R, BSLS, P3, P3, J, V, D, F, W, Q,
+ LC, U, I, A, N, SCLN, M, H, T, S, C, RC,
+ FF, QUOT, COMM, DOT, SLSH, P0, LGUI, LGUI, K, L, P, G, B, X,
+ IN, P1, NO, NO, LALT, LALT, NO, NO, Z, PS,
+ BSPC, RALT, P2, TAB,
+ NO, NO,
+ E, LSFT, NO, NO, ENT, SPC),
+[1] = KEYMAP\
+(TR, TR, TR, TR, TR, TR, TR, TR, TR, F5, F6, F7, F8, F9,
+ TR, TR, TR, TR, TR, TR, TR, TR, TR, F1, F2, F3, F4, FT,
+ TR, TR, TR, TR, TR, TR, PAUS, LEFT, DOWN, UP, RGHT, FE,
+ TR, TR, TR, TR, TR, TR, TR, TR, TR, HOME, PGDN, PGUP, END, FW,
+ TR, TR, TR, TR, TR, TR, TR, TR, TR, TR,
+ TR, TR, TR, TR,
+ TR, TR,
+ TR, TR, TR, TR, TR, TR),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ return MACRO_NONE;
+};
+
+void matrix_init_user(void) {
+};
+
+void matrix_scan_user(void) {
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+};
+
+/*
+ * Local Variables:
+ * electric-indent-mode: nil
+ * End:
+ */
diff --git a/keyboards/ergodox/keymaps/yoruian/yoruian.h b/keyboards/ergodox/keymaps/yoruian/yoruian.h
new file mode 100644
index 000000000..1adcb7fd3
--- /dev/null
+++ b/keyboards/ergodox/keymaps/yoruian/yoruian.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2016 Thomas Fitzsimmons <fitzsim@fitzsim.org>
+ *
+ * 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 3 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/>.
+ */
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#undef KEYMAP
+#define KEYMAP\
+( \
+ /* Spacial positions. */ \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
+ k20, k21, k22, k23, k24, k25, k28, k29, k2A, k2B, k2C, k2D, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, \
+ k40, k41, k42, k43, k44, k49, k4A, k4B, k4C, k4D, \
+ k55, k56, k57, k58, \
+ k54, k59, \
+ k53, k52, k51, k5C, k5B, k5A) \
+ \
+ /* Matrix positions. */ \
+ { \
+ { KC_##k00, KC_##k10, KC_##k20, KC_##k30, KC_##k40, KC_NO }, \
+ { KC_##k01, KC_##k11, KC_##k21, KC_##k31, KC_##k41, KC_##k51 }, \
+ { KC_##k02, KC_##k12, KC_##k22, KC_##k32, KC_##k42, KC_##k52 }, \
+ { KC_##k03, KC_##k13, KC_##k23, KC_##k33, KC_##k43, KC_##k53 }, \
+ { KC_##k04, KC_##k14, KC_##k24, KC_##k34, KC_##k44, KC_##k54 }, \
+ { KC_##k05, KC_##k15, KC_##k25, KC_##k35, KC_NO, KC_##k55 }, \
+ { KC_##k06, KC_##k16, KC_NO, KC_##k36, KC_NO, KC_##k56 }, \
+ { KC_##k07, KC_##k17, KC_NO, KC_##k37, KC_NO, KC_##k57 }, \
+ { KC_##k08, KC_##k18, KC_##k28, KC_##k38, KC_NO, KC_##k58 }, \
+ { KC_##k09, KC_##k19, KC_##k29, KC_##k39, KC_##k49, KC_##k59 }, \
+ { KC_##k0A, KC_##k1A, KC_##k2A, KC_##k3A, KC_##k4A, KC_##k5A }, \
+ { KC_##k0B, KC_##k1B, KC_##k2B, KC_##k3B, KC_##k4B, KC_##k5B }, \
+ { KC_##k0C, KC_##k1C, KC_##k2C, KC_##k3C, KC_##k4C, KC_##k5C }, \
+ { KC_##k0D, KC_##k1D, KC_##k2D, KC_##k3D, KC_##k4D, KC_NO } \
+ }
+
+#define KC_ES KC_ESC
+#define KC_LC KC_LCTL
+#define KC_RC KC_RCTL
+#define KC_FF MO(1)
+#define KC_IN KC_INS
+#define KC_PS KC_PSCR
+#define KC_TR KC_TRNS
+#define KC_FT KC_F10
+#define KC_FE KC_F11
+#define KC_FW KC_F12
diff --git a/keyboards/ergodox/keymaps/zweihander-osx/Makefile b/keyboards/ergodox/keymaps/zweihander-osx/Makefile
new file mode 100644
index 000000000..6e3d088a4
--- /dev/null
+++ b/keyboards/ergodox/keymaps/zweihander-osx/Makefile
@@ -0,0 +1,2 @@
+# Don’t do a tricolor wave when the computer is shut down in Windows
+SLEEP_LED_ENABLE = no
diff --git a/keyboards/ergodox_ez/keymaps/zweihander-osx/keymap.c b/keyboards/ergodox/keymaps/zweihander-osx/keymap.c
index 3444152bc..725a73e34 100644
--- a/keyboards/ergodox_ez/keymaps/zweihander-osx/keymap.c
+++ b/keyboards/ergodox/keymaps/zweihander-osx/keymap.c
@@ -1,4 +1,4 @@
-#include "ergodox_ez.h"
+#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
@@ -11,7 +11,7 @@
#define BBED 2 // BBEdit
#define TMNL 3 // Terminal
#define SAFA 4 // Safari
-#define ALFRED_LEAD_TIME 100 // time, in milliseconds, to let Alfred come to the fore and accept keyboard input
+#define ALFRED_LEAD_TIME 250 // time, in milliseconds, to let Alfred come to the fore and accept keyboard input
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
@@ -31,8 +31,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | `~ | '" | | ⎋ | ⌫ |
* ,------|------|------| |------+--------+------.
* | | | PgUp | | PgDn | | |
- * | | ⌫ |------| |------| ⇥ |Enter |
- * | | | L⌥ | | L⌃ | | |
+ * | | ⇥ |------| |------| ⇥ |Enter |
+ * | | | R⌥ | | R⌃ | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
@@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LALT, KC_LGUI,KC_LEFT,KC_RGHT,
KC_GRV, KC_QUOT,
KC_PGUP,
- KC_SPC,KC_BSPC,KC_LALT,
+ KC_SPC,KC_TAB ,KC_RALT,
// right hand
TG(SYMB), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
MO(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
@@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_SPC ,
KC_ESC, KC_BSPC,
KC_PGDN,
- KC_LCTL, KC_TAB, KC_ENT
+ KC_RCTL, KC_TAB, KC_ENT
),
/* Keymap 1: Symbol Layer
*
@@ -66,25 +66,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | < | > | ( | ) | ' |------| |------| - | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | & | 1 | 2 | 3 | = | |
+ * | | | | | | = | | | | : | 1 | 2 | 3 | = | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | 0 | . | ↠| → | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
- * | | | | | Home | | |
+ * | | | | | | | |
* | | |------| |------| | |
- * | | | | | End | | |
+ * | | | | | | | |
* `--------------------' `--------------------'
*/
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_LBRC,KC_RBRC,KC_LCBR,KC_RCBR,KC_DQUO,KC_TRNS,
+ KC_TRNS,KC_LBRC,KC_RBRC,KC_LCBR,KC_RCBR,KC_DQT ,KC_TRNS,
KC_TRNS,KC_LABK,KC_RABK,KC_LPRN,KC_RPRN,KC_QUOT,
- 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_EQL ,KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS,KC_TRNS,
KC_TRNS,
@@ -93,22 +93,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
KC_MINS, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_EQL, KC_TRNS,
+ KC_TRNS, KC_COLN, KC_1, KC_2, KC_3, KC_EQL, KC_TRNS,
KC_0, KC_DOT, KC_LEFT, KC_RGHT, KC_TRNS,
KC_TRNS, KC_TRNS,
- KC_HOME,
- KC_END , KC_TRNS, KC_TRNS
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 2: Media keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F14 | F15 | | | | | | ⌘Q | ⌘W | ⌘⇧` | ⌘` | | | Power |
+ * | | F14 | F15 |PrtScr|SclLck| Pause| | | ⌘Q | ⌘W | ⌘⇧` | ⌘` | | | Power |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | PgUp |⌘S⌘⇥⌘R| Term | | | | ⌘] | ⌥⌘↑ | ↑ | ⌥⌘↓ | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |Safari| PgDn | | |------| |------| ⌘[ | ↠| ↓ | → | | ⯠|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | |BBEdit| | | |L⇧+Spc| Spc | ⮠| ⭠| | |
+ * | | | | | |BBEdit| | | | | ⯠| ⮠| ⭠| | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | |VolUp |VolDn | Mute | | |
* `----------------------------------' `----------------------------------'
@@ -122,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
// MEDIA AND MOUSE
[MDIA] = KEYMAP(
- KC_TRNS, KC_F14 , KC_F15 , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, /* F14 dims screen, F15 brightens */
+ KC_TRNS, KC_F14 , KC_F15 , KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, /* F14 dims screen, F15 brightens */
KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, M(SGWF), M(TMNL), KC_TRNS,
KC_TRNS, KC_TRNS, M(SAFA), KC_PGDN, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(BBED), KC_TRNS,
@@ -131,13 +131,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_HOME,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
- LGUI(KC_Q), LGUI(KC_W), LGUI(LSFT(KC_GRV)), LGUI(KC_GRV), KC_TRNS, KC_TRNS, KC_PWR,
+ LGUI(KC_Q), LGUI(KC_W), LGUI(LSFT(KC_GRV)), LGUI(KC_GRV), KC_TRNS, KC_TRNS, KC_PWR ,
KC_TRNS, LGUI(KC_RBRC), LGUI(LALT(KC_UP)), KC_UP , LGUI(LALT(KC_DOWN)), KC_TRNS, KC_TRNS,
LGUI(KC_LBRC), KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_MPLY,
- KC_TRNS, LSFT(KC_SPC), KC_SPC , KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
- KC_TRNS,
+ KC_END ,
LGUI(KC_X), LGUI(KC_C), LGUI(KC_V)
),
};
diff --git a/keyboards/ergodox_ez/keymaps/zweihander-osx/readme.markdown b/keyboards/ergodox/keymaps/zweihander-osx/readme.markdown
index 7bce7c690..5125a12ee 100644
--- a/keyboards/ergodox_ez/keymaps/zweihander-osx/readme.markdown
+++ b/keyboards/ergodox/keymaps/zweihander-osx/readme.markdown
@@ -7,7 +7,7 @@ This layout is tuned for people who…
## use OS X
-This layout doesn’t make any concessions for Windows use. While it should work fine in Windows, I’m not about to devote precious keyboard space to Windows-specific shortcuts.
+While this layout should work fine in Windows, it’s not tuned for it. No sane person who primarily uses Windows would put this many Windows keys on a keyboard layout.
## mouse left-handed while doing other things with the right hand
@@ -21,8 +21,6 @@ I tend to have my mouse in my left hand, but I like to use my other hand to make
- Go Up and Close Just-Left Folder (⌥⌘↑)
- Cycle through open windows in current application (⌘\` and ⌘⇧\`)
- Cycle through tabs in current window (⌥⇥ and ⌥⇧⇥)
-- Space (page down in browsers; Quick Look in the Finder)
-- Shift-Space (page up in web browsers)
Because moving letter-by-letter is way slower than moving word-by-word, I added Option (⌥) to the bottommost button on the left side. This key can be held easily while holding ; (activate media layer) and pressing J and L to move left and right by word.
@@ -34,12 +32,16 @@ I wanted to preserve the feel of a number of shortcuts that involve pressing lot
- Empty Trash Without Asking for Confirmation (⇧⌥⌘⌫)
- Shut Down Without Asking for Confirmation (⇧⌥⌘ power)
+⇧⌥⌘⌫, when you press the backspace on the right half of the keyboard, is much more satisfying than if you curl your left hand into a claw to press all the keys on the left. Try both; you’ll agree.
+
## use Emacs-style shortcuts
I press C-a, C-e, and C-k all the time. It’s difficult to press these key combinations with the control key on the bottom left and I’m too quick on the draw for the control function on the / key to work reliably, so the bottommost thumb button on the right side is another control key.
+Having trouble remembering which thumb key is alt and which is ctrl? It’s like on the lower right of a normal keyboard — leftmost is alt, rightmost is ctrl.
+
## use spreadsheets
-All the common spreadsheet operations (+-*/=) are now on the right side of the symbol layer.
+All the common spreadsheet operations (+-*/=) are now on the right side of the symbol layer. There’s also a colon there for entering times and maybe IPv6 addresses. Not that I expect people to type IPv6 addresses into a spreadsheet, but, y’know.
diff --git a/keyboards/ergodox/keymaps/zweihander-osx/zweihander-osx.hex b/keyboards/ergodox/keymaps/zweihander-osx/zweihander-osx.hex
new file mode 100644
index 000000000..832504b02
--- /dev/null
+++ b/keyboards/ergodox/keymaps/zweihander-osx/zweihander-osx.hex
@@ -0,0 +1,1151 @@
+:100000000C94D3020C941A030C941A030C941A0344
+:100010000C941A030C941A030C941A030C941A03EC
+:100020000C941A030C941A030C94B71F0C94892097
+:100030000C941A030C941A030C941A030C941A03CC
+:100040000C941A030C94FC1A0C941A030C941A03C3
+:100050000C941A030C9414160C941A030C941A039F
+:100060000C941A030C941A030C941A030C941A039C
+:100070000C941A030C941A030C941A030C941A038C
+:100080000C941A030C941A030C941A030C941A037C
+:100090000C941A030C941A030C941A030C941A036C
+:1000A0000C941A030C941A030C941A03730C730C1B
+:1000B000A20CA20CD80CF80C290E290E030D290E47
+:1000C000B30DB30D1A0E290E290E230EC00DC00D4F
+:1000D000C00DC00DC00DC00DC00DC00DC00DC00DB8
+:1000E000C00DC00DC00DC00DC00DC00DD20DDF0D77
+:1000F000E60DED0DF70DF620182106221821062237
+:100100005D2180210622D521E821750A01E2012C1A
+:10011000022C02E274FA011602160104020401091B
+:1001200002090104020401150215010C020C012848
+:10013000022800750A01E2012C022C02E274FA0185
+:10014000170217010802080115021501100210011B
+:100150000C020C0111021101040204010F020F0133
+:1001600028022800750A01E2012C022C02E274FA2E
+:100170000105020501050205010802080107020741
+:10018000010C020C011702170128022800750A0150
+:10019000E30116021602E301E3012B022B02E30145
+:1001A000E30115021502E300750A01E301160216C8
+:1001B00002E301E3012B022B02E3000000F0A12E79
+:1001C000004C002A00E100E00000001E00140004C2
+:1001D000001D00E200E2001F001A0016001B00E3F1
+:1001E000002B00200008000700060050002C002112
+:1001F000001500090019004F004B00220017000AEB
+:1002000000050000003500015301510000E300002B
+:10021000003400015301510000E3000000290023D5
+:10022000001C000B00110000002A00240018000D23
+:1002300000100052004E0025000C000E0036005148
+:10024000002800260012000F0037002F002B002787
+:10025000001300334238613000E0002D00310034DB
+:1002600068E5002C00000001000100010001000110
+:100270000000003A002F0036020100010001003B9F
+:1002800000300037020100010001003C002F02266F
+:10029000020100010001003D0030022702010001BF
+:1002A0000001003E00340234002E00000001000175
+:1002B0000001000000010000000100010001000039
+:1002C000000100000001003F0038002D0033020053
+:1002D0000001004000240021001E00270001004111
+:1002E00000250022001F00370001004200260023E5
+:1002F00000200050000100430025022E022E004F76
+:10030000000100440045000100010001000000015F
+:10031000000100010001000100000069000100016E
+:10032000000100010001006A000100043001000129
+:1003300000010001004B004E00010001000100011E
+:100340000001300100010001004A000100033001FA
+:100350000002300000010001000100000001000067
+:100360000001001408010000000100000001001A53
+:100370000830082F082C0200000100350A520C50EA
+:10038000002C00A9004D00350852005100AC00AA15
+:100390000019080100510C4F00AB00A8000608012D
+:1003A0000001000100010001001B08A5000100AED2
+:1003B000000100010000000000000000000000003B
+:1003C0000000010204060A0F17202C3A4A5D7187CB
+:1003D0009DB3C7DAE9F5FCFFFCF5E9DAC7B39D8701
+:1003E000715D4A3A2C20170F0A0604020100000032
+:1003F0000000000000000016034500720067006F57
+:100400000044006F007800200045005A00000016EC
+:10041000034500720067006F0044006F0078002001
+:100420000045005A0000000403090409026D00049D
+:100430000100A0FA090400000103010100092111D3
+:100440000100012240000705810308000A09040198
+:10045000000103010200092111010001224D0007E2
+:1004600005820308000A09040200010300000009D4
+:1004700021110100012236000705830308000A0943
+:1004800004030001030000000921110100012239C9
+:10049000000705840310000112011001000000088C
+:1004A000EDFE071301000102000105010906A1018B
+:1004B000050719E029E71500250195087501810256
+:1004C0000508190129059505750191029501750326
+:1004D0009101050719002977150025019578750107
+:1004E0008102C005010980A101850216810026B79D
+:1004F000001A81002AB700751095018100C0050C13
+:100500000901A1018503160100269C021A01002A97
+:100510009C02751095018100C005010902A1010925
+:1005200001A1000509190129051500250195057589
+:100530000181029501750381010501093009311519
+:1005400081257F95027508810609381581257F95DB
+:100550000175088106050C0A38021581257F950171
+:1005600075088106C0C005010906A101050719E04B
+:1005700029E7150025019508750181029501750887
+:10058000810105081901290595057501910295015B
+:10059000750391010507190029FF150026FF009535
+:1005A0000675088100C011241FBECFEFDAE0DEBF60
+:1005B000CDBF04B603FE27C08091010290910202D4
+:1005C000A0910302B09104028730904BA740B04B3A
+:1005D000D1F41092010210920202109203021092C2
+:1005E000040214BE84B7877F84BF0FB6F894A89521
+:1005F00080916000886180936000109260000FBE5F
+:10060000E0E0FFE3099511E0A0E0B1E0E0EAF7E403
+:1006100002C005900D92A433B107D9F712E0A4E30C
+:10062000B1E001C01D92A130B107E1F70E94FC1CAE
+:100630000C94CE230C9400001092B9008AE08093B1
+:10064000B800089594EA9093BC009091BC0097FF85
+:10065000FCCF9091B900987F983021F0903111F043
+:1006600081E008958093BB0084E88093BC00809172
+:10067000BC0087FFFCCF8091B900887F883111F0E2
+:10068000803471F780E0089584E98093BC00809104
+:10069000BC0084FDFCCF08958093BB0084E8809368
+:1006A000BC008091BC0087FFFCCF9091B900987F7F
+:1006B00081E0983209F480E0089584E88093BC00DA
+:1006C0008091BC0087FFFCCF8091BB00089580B370
+:1006D0008C7080BB81B3836F81BB089580910101D1
+:1006E000811115C080E40E942203809301018111D1
+:1006F0000CC082E10E944C0380930101811105C06E
+:100700008FEF0E944C03809301010E94440384B147
+:10071000807F84B985B1807F85B98AB1837F8AB9AA
+:100720008BB1837F8BB93E98469808950C94E4046E
+:100730000E942509809301010E946E030E946703B5
+:10074000A5E3B1E0E3E4F1E08EE08E0F11921D929B
+:100750008E13FCCF0C940F090E9425098093010190
+:100760000E946E030E946703A5E3B1E0E3E4F1E0B9
+:100770008EE08E0F11921D928E13FCCF0895BF92C2
+:10078000CF92DF92EF92FF920F931F93CF93DF935D
+:1007900080910101882379F0809134018F5F8093EB
+:1007A0003401811108C00E94250980930101811143
+:1007B00002C00E94B70805E311E0C0E0D0E0EE24DB
+:1007C000E394F12CDD24D39495E0C92EC730D105F4
+:1007D00000F58091010181113CC080E40E94220358
+:1007E00080930101811112C082E10E944C03809329
+:1007F000010181110BC0C7010C2E01C0880F0A94A2
+:10080000EAF780950E944C03809301010E94440303
+:1008100020C0CA30A1F028F4C83059F0C93061F0C6
+:1008200005C0CC3089F070F0CD3089F0209A28983E
+:1008300010C0219A29980DC0229A2A980AC0239A9A
+:100840002B9807C0529A01C0539A5B9802C03E9AF7
+:10085000469880EA8A95F1F7C730D10518F580915E
+:100860000101811144C080E40E94220380930101B0
+:10087000882311F0B12C12C083E10E944C038093B5
+:1008800001018111F7CF81E40E94220380930101CD
+:100890008111F0CF0E945D03B82EB0940E944403F2
+:1008A0008B2D26C08FB181708D25799902C092E081
+:1008B00001C090E0892B7C9902C024E001C020E0B7
+:1008C000822B7D9902C028E001C020E0822B7E9916
+:1008D00002C090E101C090E0892B9FB19095991FD3
+:1008E0009927991F9295990F907E892B01C080E0DE
+:1008F000F8019081981719F08083C09200010E943E
+:100900006E0321960F5F1F4FCE30D10509F05ECFE9
+:10091000809100018823A1F08150809300018823F9
+:1009200029F0F5E0FA95F1F700000AC0A3E4B1E080
+:10093000E5E3F1E0CF01825F91919D938E13FCCFAF
+:100940000E94410681E0DF91CF911F910F91FF90AE
+:10095000EF90DF90CF90BF900895E82FF0E0ED5B2F
+:10096000FE4F808108950895FC016230B9F028F4AB
+:10097000662341F0613061F023C06330A9F0643038
+:10098000C9F01EC082818823D9F088EA91E00895D9
+:1009900082818823A9F08DE891E0089582818823DF
+:1009A00079F084E691E008958281882349F083E319
+:1009B00091E008958281882319F08AE091E00895FA
+:1009C00080E090E0089508956091B0017091B101C8
+:1009D0008091B2019091B3010E94081556985E98DB
+:1009E00025982D9826982E9827982F98813019F0C1
+:1009F000823021F00895259A2D9A0895269A2E9AEC
+:100A0000089581E0089581E008950C9403050E9403
+:100A1000940E2FEF84E39CE0215080409040E1F75A
+:100A200000C000000C9439160F931F93CF93DF93EF
+:100A30008C01FC01C081D181CE010E948D13BE01C9
+:100A40000E94D807EC01B8010E940505882309F42B
+:100A500012C1B801CE010E946808882309F40BC1B5
+:100A6000B801CE010E948109882309F404C1C43170
+:100A7000F0E7DF0708F0CDC0C23080E7D80708F400
+:100A8000A3C0F8018281882309F4AAC00E947215CC
+:100A9000811102C00E9458150E94851590E0909324
+:100AA000F3018093F201C230F0E7DF0721F4809177
+:100AB000F201816082C0C33080E7D80721F48091C1
+:100AC000F20182607AC0C430E0E7DE0721F4809151
+:100AD000F201846072C0C530F0E7DF0719F480913D
+:100AE000F20127C0C63080E7D80721F48091F201D7
+:100AF000806163C0C730E0E7DE0721F48091F20136
+:100B000080625BC0C830F0E7DF0721F48091F2011A
+:100B1000806453C0C93080E7D80721F48091F20186
+:100B200080684BC0CA30E0E7DE0729F48091F2010B
+:100B30008460886042C0CB30F0E7DF0721F4809109
+:100B4000F2018E7F3AC0CC3080E7D80721F4809143
+:100B5000F2018D7F32C0CD30E0E7DE0721F48091D5
+:100B6000F2018B7F2AC0CE30F0E7DF0719F48091C5
+:100B7000F20122C0CF3080E7D80721F48091F20142
+:100B80008F7E1BC0C031E0E7DE0721F48091F201C7
+:100B90008F7D13C0C131F0E7DF0721F48091F201AE
+:100BA0008F7B0BC0C231D04721F48091F2018F7747
+:100BB00004C08091F2018B7F877F8093F201809146
+:100BC000F2010E94891557C0C115E0E7DE0779F0F0
+:100BD000C130D047A1F081E0809351018093520150
+:100BE000C801DF91CF911F910F910C940105F8017D
+:100BF0008281882309F43FC00E9407053CC0F801A8
+:100C000082818823C1F18091CD0181608093CD01E3
+:100C100032C0CB3380E7D807A1F4F8018281882362
+:100C200021F01092510182E016C080915101811192
+:100C300006C086E20E940C0B86E20E94DF0B82E077
+:100C400018C0CC33D04739F6F8018281882331F0BF
+:100C50001092520180E20E942E0C0DC08091520130
+:100C6000811106C087E20E940C0B87E20E94DF0B15
+:100C700080E20E94350C80E0DF91CF911F910F91AF
+:100C800008950C94960308950C9443060C9444061E
+:100C900026E0729FF001112444E5849FE00DF11DD0
+:100CA0001124E60FF11DEE0FFF1FE154FE4F859159
+:100CB00094910E94EA07811560E49607B0F58115CA
+:100CC00070E3970708F0E6C0803E9105D8F4803CB9
+:100CD000910508F06CC0883A910578F4853A910541
+:100CE00008F06BC08130910509F460C108F417C1A8
+:100CF0008430910508F05AC112C18D3B910508F46A
+:100D000067C00DC18F3F910509F048F4803F910500
+:100D100008F0B5C0883E910508F448C100C18115AE
+:100D200020E2920708F0ADC00895811543E59407CD
+:100D300090F4811562E5960708F0D0C0811571E541
+:100D4000970708F0C6C0811520E5920708F0A5C0F6
+:100D50009F70906A0895811545E59407D8F4811530
+:100D600064E5960708F0D0C0482F4695469570E296
+:100D7000479FA00111248370992721E030E0B90139
+:100D800002C0660F771F8A95E2F7CB01842B952B63
+:100D90009A680895811576E5970708F4BAC09C0112
+:100DA00030562115304108F0BAC09F70B6C0FC0122
+:100DB000EE0FFF1FE55CFF4F6AC0853A910509F40D
+:100DC000B1C0863A910509F0B0C082E890E4089578
+:100DD000883A910509F4ACC0893A910509F4ABC091
+:100DE0008A3A910509F4AAC08B3A910509F4A9C081
+:100DF0008C3A910509F4A8C08B3B910509F4A7C072
+:100E00008C3B910509F4A6C08D3A910509F4A5C063
+:100E1000803B910509F4A4C08E3A910509F4A3C062
+:100E20008F3A910509F4A2C0813B910509F4A1C054
+:100E3000823B910509F4A0C0833B910509F49FC052
+:100E4000843B910509F49EC0853B910509F49DC042
+:100E5000863B910509F49CC0873B910509F49BC032
+:100E6000883B910509F49AC0893B910509F499C022
+:100E70008A3B910509F498C080E094E40895906558
+:100E80000895FC01FF70EE0FFF1FE554FE4F8591A2
+:100E9000949108959927906C0895482F437021E00C
+:100EA00030E002C0220F331F4A95E2F73C68AC01E4
+:100EB00064E0569547956A95E1F74370342B8F703F
+:100EC0008695869560E2869FC0011124822B932B24
+:100ED0000895982F8827816F906A0895482F469526
+:100EE000469570E2479FA00111248370992721E065
+:100EF00030E0B90102C0660F771F8A95E2F7CB0197
+:100F0000842B952B9C680895982F8827846F906A6E
+:100F100008958F719927982F88279062089580E00F
+:100F200090E0089581E890E4089583E890E40895BE
+:100F300082EE94E4089589EE94E408958AEE94E4B0
+:100F4000089585EB94E4089586EB94E4089583EB8B
+:100F500094E4089584EB94E4089587EB94E4089571
+:100F60008CEC94E408958DEC94E4089583E895E482
+:100F700008958AE895E4089582E995E4089584E95E
+:100F800095E4089581E296E4089583E296E4089555
+:100F900084E296E4089585E296E4089586E296E474
+:100FA000089587E296E408958AE296E40895089504
+:100FB00096E0799FF001112494E5899FE00DF11DE1
+:100FC0001124E60FF11DEE0FFF1FE154FE4F859136
+:100FD000949108958238910549F1B0F481339105D7
+:100FE00009F458C048F48932910509F44EC08A3298
+:100FF000910509F454C008958533910509F440C062
+:101000008933910599F00895833E910529F138F4CB
+:10101000803E910591F0823E9105A1F00895863EB3
+:101020009105F9F0873E910531F108952091F20183
+:1010300020FD3AC021FD38C008958091F20180FD65
+:1010400035C032C08091F20182FF32C08091F2013E
+:1010500084FD30C083EE39C08091F20182FD28C04A
+:10106000F5CF8091F20183FF27C08091F20184FDCA
+:1010700021C087EE2AC08091F20183FD1DC0F5CF0B
+:101080008091F20185FD1AC01BC08091F20185FD9F
+:1010900017C014C08091F20186FD14C015C0809164
+:1010A000F20186FD11C00EC080EE0FC089E30DC0B5
+:1010B00082EE0BC080E009C086EE07C089E205C061
+:1010C00085E303C08AE201C081E390E008950895BA
+:1010D0000F931F93CF93FB012281211102C0C1E026
+:1010E00041C08C01C0916001C11125C0843190477D
+:1010F000B1F70E94670881E0809360010E94DE15CD
+:1011000090935F0180935E011092530110925501FC
+:1011100010925401109257011092560110925901E9
+:101120001092580110925B0110925A0110925D01C9
+:1011300010925C0117C080915E0190915F010E9446
+:10114000EA15883C910558F690915301E92FF0E09B
+:10115000EE0FFF1FEC5AFE4F118300839F5F9093A9
+:101160005301C0E08C2FCF911F910F910895569895
+:101170005E9825982D9826982E9827982F988FEF6F
+:1011800090E0909389008093880090938B008093E7
+:101190008A0090938D0080938C00259A2D9A2FEFD2
+:1011A00080E792E0215080409040E1F700C00000CD
+:1011B000269A2E9A2FEF80E792E0215080409040AF
+:1011C000E1F700C00000279A2F9A2FEF80E792E006
+:1011D000215080409040E1F700C0000025982D98F4
+:1011E0002FEF80E792E0215080409040E1F700C06F
+:1011F000000026982E982FEF80E792E02150804043
+:101200009040E1F700C0000027982F9856985E980C
+:1012100025982D9826982E9827982F98089589EA32
+:101220008093800089E08093810024982C983F98D7
+:101230008AB18F748AB96E98479A8BB1806B8BB9DB
+:10124000769A0E94B7080C94E30480E2809301012F
+:101250008091610181110EC00E941C0381E0809386
+:1012600061012FEF83ED90E3215080409040E1F742
+:1012700000C0000080E40E942203809301018111DC
+:101280002EC00E944C0380930101811128C00E944E
+:101290004C0380930101811122C08FE30E944C0313
+:1012A0008093010181111BC00E94440380E40E94CD
+:1012B000220380930101811112C08CE00E944C0333
+:1012C0008093010181110BC00E944C0380930101A6
+:1012D000811105C08FE30E944C03809301010E949D
+:1012E0004403809101010895282F882339F090E06C
+:1012F0002A3010F44D9608950697089587E290E0FD
+:101300000895FF920F931F93CF93DF93813020E8CE
+:10131000920708F44DC0FB012281222309F448C042
+:10132000EC01DF7780916201813079F050F08230FA
+:10133000C1F482EE0E940C0B87E50E940C0B87E53E
+:101340000EC082EE0E940C0B0CC080EE0E940C0BB3
+:1013500081EE0E940C0B88E10E940C0B88E10E9438
+:10136000DF0B0CE010E0CE01002E02C096958795B1
+:101370000A94E2F78F700E947409F82E0E940C0BF9
+:101380008F2D0E94DF0B045011090C3FFFEF1F0748
+:1013900051F780916201813029F010F0823041F4E0
+:1013A00082EE04C080EE0E94DF0B81EE0E94DF0B14
+:1013B00081E0DF91CF911F910F91FF90089590935D
+:1013C0006801809367010895E0916701F0916801D9
+:1013D000309721F00190F081E02D099480E008958C
+:1013E000E0916701F0916801309721F00280F3816C
+:1013F000E02D09940895E0916701F091680130971C
+:1014000021F00480F581E02D099408952091650173
+:10141000309166018217930771F090936601809373
+:101420006501E0916701F0916801309721F0068035
+:10143000F781E02D099408952091630130916401B2
+:101440008217930771F09093640180936301E09198
+:101450006701F0916801309721F00084F185E02D5B
+:101460000994089508950C94320A0E94D5150E949B
+:1014700098030C945B16CF92DF92EF92FF920F933A
+:101480001F93CF93DF93CDB7DEB72B970FB6F894AA
+:10149000DEBF0FBECDBF0E94BF038AE6C82E81E02B
+:1014A000D82E00E010E0E02E802F0E94AD04F6015F
+:1014B00041916F01F42EF826B1F40F5F1F4F0E30EB
+:1014C000110589F78FEF89838A831B820E94DE15BD
+:1014D0008160782F9D838C8349815A816B818D81B6
+:1014E0000E94DE0A40C09091CD0191FF04C08B871D
+:1014F0000E94B3048B8520E030E04F2D50E0922F06
+:10150000BA01022E02C0759567950A94E2F760FF52
+:1015100024C02E83EF8221E030E0690102C0CC0CB0
+:10152000DD1C9A95E2F790E08C219D21892B09F42E
+:1015300020E028870E94DE158160782F9A878987AE
+:101540004E815F8168858A850E94DE0AF801E6592E
+:10155000FE4F8081C826C08206C02F5F3F4F2630D5
+:10156000310569F6AACF0E94F317109169010E9414
+:10157000E4091817A1F00E94E409809369012B96F1
+:101580000FB6F894DEBF0FBECDBFDF91CF911F9194
+:101590000F91FF90EF90DF90CF900C9446062B9622
+:1015A0000FB6F894DEBF0FBECDBFDF91CF911F9174
+:1015B0000F91FF90EF90DF90CF900895CF93DF933E
+:1015C000CDB7DEB72B970FB6F894DEBF0FBECDBFF9
+:1015D0004F83588769877A878B87DE01119686E06B
+:1015E000FD0111928A95E9F785E0FE013796019099
+:1015F0000D928A95E1F749815A816B817C818D81B9
+:101600009E810E9432112B960FB6F894DEBF0FBE5A
+:10161000CDBFDF91CF910895CF93882309F4CDC03A
+:10162000C82F823859F40E94E40981FDC6C089E3BD
+:101630000E940C140E94D91489E30CC0833879F4F9
+:101640000E94E40980FDB9C083E50E940C140E9449
+:10165000D91483E50E944E14CF910C94D914843888
+:1016600059F40E94E40982FDA8C087E40E940C148A
+:101670000E94D91487E4EECF8CEF8C0F813A48F4A6
+:101680008C2F0E943D1A811198C08C2F0E940C143F
+:10169000E3CF80E28C0F883048F4C77081E001C04E
+:1016A000880FCA95EAF70E949214D6CF8BE58C0F6B
+:1016B000833078F4C53A29F0C63A31F083E890E0F7
+:1016C00005C081E890E002C082E890E0CF910C94E0
+:1016D000060A88E58C0F853108F06FC0C83A61F1C1
+:1016E000C93A69F1CA3A71F1CB3A79F1CC3A81F150
+:1016F000CB3B89F1CC3B91F1CD3A99F1C03BA1F1C3
+:10170000CE3AA9F1CF3AB1F1C13BB9F1C23BC1F137
+:10171000C33BC9F1C43BD1F1C53BD9F1C63BE1F1B3
+:10172000C73BE9F1C83BF1F1C93BF9F1CA3B09F408
+:101730003FC080E090E03EC082EE90E03BC089EE8A
+:1017400090E038C08AEE90E035C085EB90E032C082
+:1017500086EB90E02FC083EB90E02CC084EB90E010
+:1017600029C087EB90E026C08CEC90E023C08DEC84
+:1017700090E020C083E891E01DC08AE891E01AC0A3
+:1017800082E991E017C084E991E014C081E292E01F
+:1017900011C083E292E00EC084E292E00BC085E2C9
+:1017A00092E008C086E292E005C087E292E002C0C3
+:1017B0008AE292E0CF910C941C0ACF91089588237D
+:1017C00009F44BC0823859F40E94E40981FF45C0F6
+:1017D00089E30E940C140E94D91489E30CC0833859
+:1017E00071F40E94E40980FF38C083E50E940C1464
+:1017F0000E94D91483E50E944E140C94D9148438A5
+:1018000059F40E94E40982FF28C087E40E940C1466
+:101810000E94D91487E4EFCF9CEF980F913A58F3C8
+:1018200090E2980F983050F4877091E001C0990FC2
+:101830008A95EAF7892F0E949814DFCF9BE5980FCD
+:10184000933020F480E090E00C94060A885A8531A9
+:1018500020F480E090E00C941C0A0895882321F085
+:101860000E9492140C94D9140895882321F00E94A8
+:1018700098140C94D91408957F928F929F92AF92EE
+:10188000BF92CF92DF92EF92FF920F931F93CF936D
+:10189000DF931F92CDB7DEB77C01C62E772EFC01F9
+:1018A000058102950F70128111110E94AF140E94E0
+:1018B0000514882379F0112369F080E28C0D8830BB
+:1018C00048F082E00E94EE130E94051491E0D82EA9
+:1018D000D92601C0D12CE72DE295EF70F0E0EA5A4D
+:1018E000FF4F0C947F23872D807F072D0F70882357
+:1018F00011F00295007F112389F0002309F490C1B3
+:1019000080E28C0D883020F4802F0E94921403C056
+:10191000802F0E94A2140E94D91482C18C2D0E9493
+:10192000DF0B002309F495C180E28C0D883020F490
+:10193000802F0E94981403C0802F0E94A8140E9438
+:10194000D91487C1972D907F872D8F70903211F019
+:101950008295807FCC2021F0F1E0CF16B1F01EC03F
+:10196000112349F0002309F414C1013009F011C119
+:101970000E94C2146EC1002319F0013009F469C13C
+:1019800089830E94C51489810AC1112321F0023084
+:1019900008F05FC1FEC001115CC101C1112321F03B
+:1019A000002309F4F6C03CC1002309F4F8C03EC18D
+:1019B000872D86958695837090E0009719F00197A2
+:1019C00061F047C1112321F08C2D972D937002C037
+:1019D00080E090E00E94060A3CC1112321F08C2D8A
+:1019E000972D937002C080E090E00E941C0A31C1E4
+:1019F0008C2D112319F00E94FB1602C00E94631760
+:101A00000E94E81726C1872D837009F052C011117A
+:101A100020C18C2D829586958770880F880F9C2D0C
+:101A20009F70892E912CA12CB12C082E04C0880CFB
+:101A3000991CAA1CBB1C0A94D2F7C4FE14C00FE068
+:101A400010E020E030E0B901A80104C0440F551FA8
+:101A5000661F771F8A95D2F7CB01BA016095709502
+:101A60008095909503C060E070E0CB01272D26950E
+:101A70002695237030E02230310569F0233031059E
+:101A800089F0682979298A299B292130310571F04B
+:101A90000E947A12DEC0682979298A299B290E942E
+:101AA0009612D7C00E947A12C501B4010E945E123C
+:101AB000D0C0112319F0872D817001C0869588232D
+:101AC00009F4C7C08C2D829586958770880F880F82
+:101AD0009C2D9F70892E912CA12CB12C082E04C016
+:101AE000880C991CAA1CBB1C0A94D2F7C4FE14C013
+:101AF0000FE010E020E030E0B901A80104C0440F7D
+:101B0000551F661F771F8A95D2F7CB01BA016095E2
+:101B100070958095909503C060E070E0CB01272D13
+:101B2000269526952370422F50E04230510569F0EA
+:101B30004330510589F0682979298A299B29413048
+:101B4000510571F00E94541384C0682979298A29AB
+:101B50009B290E9470137DC00E945413C501B401DB
+:101B60000E94381376C08C2D90E0FC01E05EF109F4
+:101B7000E531F10508F050C0EA59FF4F0C947F237E
+:101B80000C2D0F70872D8F71112331F00E94D1120F
+:101B9000802F0E942E0C5DC00E94F212802F0E94A6
+:101BA000350C57C0112339F0011153C0872D8F71A7
+:101BB0000E9417134EC0023008F04BC0F7CF11231C
+:101BC00039F0872D8F710E94D11243C01123C9F3C0
+:101BD000872D8F710E94F2123CC0112329F0872DAE
+:101BE0008F710E94BC1235C00E94B21232C0112304
+:101BF00051F0172D1F71812F0E94D11263E0812FA8
+:101C00000E94E51326C081E00E94EE13023008F125
+:101C100082E00E94EE131DC0112331F0002389F2EF
+:101C20008C2D0E940C0B15C0002391F28C2D0E946C
+:101C3000DF0B0FC0472D4F706C2DC7010E94B404FD
+:101C40000E94D61106C0472D4F706C2DC7010E940F
+:101C5000D707DD20F9F00E94E11380FD1BC0F701DA
+:101C600012820E94DB130E94D112C7010E94590EFA
+:101C70000E94DB130F90DF91CF911F910F91FF9086
+:101C8000EF90DF90CF90BF90AF909F908F907F901C
+:101C90000C94F2120F90DF91CF911F910F91FF9052
+:101CA000EF90DF90CF90BF90AF909F908F907F90FC
+:101CB00008950F931F93CF93DF93EC01888199814F
+:101CC0002B813C81232BB9F09F3F11F48F3F99F07A
+:101CD000CE010E941405882371F0688179818A8180
+:101CE0000E94D7138C010E948C130E945312B801DA
+:101CF000CE010E943C0CDF91CF911F910F9108956E
+:101D00000E94AF140E94BF140E9484140E94D91430
+:101D10000E9499180E94E81780E090E00E94060A4D
+:101D200080E090E00C941C0A0E949F140C94800E9A
+:101D30000E94CC13292F22952F7030E02C303105D2
+:101D40004CF42A3031056CF422503109223031052F
+:101D5000A8F407C02C30310569F02F30310551F05F
+:101D60000DC0803F69F018F4803E40F409C0843F04
+:101D700029F406C093FB882780F9089580E0089530
+:101D800081E00895CF93DF9300D000D01F92CDB7AC
+:101D9000DEB70F900F900F900F900F90DF91CF91C3
+:101DA0000895CF93DF9300D000D000D0CDB7DEB739
+:101DB00026960FB6F894DEBF0FBECDBFDF91CF9150
+:101DC00008951F93CF93DF93C091780116E080911F
+:101DD0007901C81799F0D0E01C9FF0011D9FF00D0C
+:101DE0001124E658FE4F40815181628173818481C4
+:101DF00095810E94D10E2196C770E9CFDF91CF91D6
+:101E00001F9108954091AA015091AB016091AC01DE
+:101E10007091AD018091AE019091AF010C94D10E03
+:101E20008091AF0182958F7009F054C08091AC0110
+:101E3000882309F44FC080917801A09179016091C5
+:101E4000AA017091AB014091AD015091AE01B6E095
+:101E50008A1709F43FC090E041155105C1F17F3F59
+:101E600011F46F3FA1F1B89FF001B99FF00D11245B
+:101E7000E658FE4F218172132AC02081621327C0C9
+:101E80002281211124C0238134812417350710F4C5
+:101E900021503109241B350B283C3105C0F4209119
+:101EA000AF012F7020612093AF0126E0289FF00141
+:101EB000299FF00D1124E158FE4F80818F708061C1
+:101EC00080838AEA91E00E94590E0C94E10E0196FB
+:101ED0008770BECF0895CF92DF92EF92FF920F935B
+:101EE0001F93CF93DF93CDB7DEB762970FB6F89409
+:101EF000DEBF0FBECDBF8C0185E0F801DE011D966F
+:101F000001900D928A95E1F7D8014C9111965C9160
+:101F1000119712966C9112971396CD90DC901497AE
+:101F20003091AA017091AB018091AD019091AE0109
+:101F3000009709F46BC17F3F19F43F3F09F466C174
+:101F4000E090AC01EE2009F4C0C02091AF01C816AA
+:101F5000D90628F0F601E81BF90BCF0104C08095E3
+:101F600090958C0D9D1DFF24F394883C910578F08D
+:101F7000F12C207F09F0C6C07C2DD98AC88A8989B6
+:101F80000E94C20E8AEA91E00E94590EB1C0822FCF
+:101F9000807F09F046C0751314C0341312C061115C
+:101FA00010C02F7020612093AF010E94020F8AEAB7
+:101FB00091E00E94590E8091AF01D80115968C9343
+:101FC0002EC0CD2819F15F3F11F44F3FF9F0F62EE6
+:101FD00061111CC0809178012091790136E082174F
+:101FE00009F45AC090E0389FF001399FF00D112498
+:101FF000E658FE4F7181571306C07081471303C026
+:102000007281711103C001968770E9CFF62E6623A5
+:1020100009F418C18091AF0181608093AF01F12C68
+:1020200011C1751308C0341306C0611104C080913A
+:10203000AF01D801C3C04D875E878D859E856A8BB1
+:102040000E94980E6A898823E1F16623D1F12091DC
+:10205000AF01822F82958F7090E0029774F080918B
+:10206000AA019091AB0198878F831986DB86CA8677
+:102070002C87CE0107960E94590E86E0F801AAEA45
+:10208000B1E001900D928A95E1F70E94100F0E9435
+:10209000020FFF24F394D6C04D875E878D859E8501
+:1020A0000E94CC13292F22952F7030E02230310569
+:1020B0000CF0BCC09F7009F0B6C0805E883008F498
+:1020C000C1C0C8010E94590EE4CFC816D90608F451
+:1020D00053C0F601E81BF90BCF01883C910508F4C9
+:1020E00050C0F12C7C2DD98AC88A89890E94C20EE1
+:1020F000EAEAF1E086E0DF011D928A95E9F70E94A5
+:10210000020FA0C0751314C0341312C0611110C0A7
+:102110008091AF01F8018583C8010E94590E86E0C5
+:10212000EAEAF1E0DF011D928A95E9F7FE2C8AC008
+:102130004D875E878D859E856A8B0E94980E6A8981
+:10214000882309F4BECF662309F4BBCF2091AF01E9
+:10215000822F82958F7090E002970CF48ECF809141
+:10216000AA019091AB019A8389831B82DD82CC8284
+:102170002E83CE0101967FCF809590958C0D9D1D6D
+:10218000ACCFF62E662309F49CCF75132EC0341302
+:102190002CC02091AF0120FD1FC0822F82958F702F
+:1021A000D9F0D80115962C9315978F3049F08F5F91
+:1021B000982F9295907F822F8F70892B15968C93F4
+:1021C000C8010E94590E86E0F801AAEAB1E0019028
+:1021D0000D928A95E1F793CF86E0F801AAEAB1E083
+:1021E00001900D928A95E1F72DC04D875E878D8510
+:1021F0009E850E94980E811140CF8091AF01816031
+:102200008093AF01C8010E94590E1CC0662309F4D7
+:1022100058CF4D875E878D859E850E94980E8823B6
+:1022200009F44FCF2ACF811148CF0CC0243031059B
+:102230000CF047CF9F7009F440CFF8019581907F53
+:1022400009F03BCF8F2D62960FB6F894DEBF0FBE1C
+:10225000CDBFDF91CF911F910F91FF90EF90DF9055
+:10226000CF9008951F93CF93DF93CDB7DEB72C9710
+:102270000FB6F894DEBF0FBECDBF4F835887698776
+:102280007A878B879C87CE0107960E946B0F8823E5
+:1022900069F08F8198852A853B85232BF1F19F3F3B
+:1022A00009F063C08F3F09F060C037C086E0FE01CF
+:1022B0003796DE01119601900D928A95E1F76F81B4
+:1022C0007885EA85FB85309741F17F3F11F46F3FB8
+:1022D00021F12091790130E0C90101968770992799
+:1022E0004091780150E08417950709F447C069834D
+:1022F0007A83FD83EC8396E0929FD001939FB00D8B
+:102300001124A658BE4FFE01319601900D929A9568
+:10231000E1F7809379010E94E10E16E08091780147
+:10232000909179018917C1F1189FC0011124865835
+:102330009E4F0E946B0F882379F1E09178011E9FD8
+:10234000F0011124E658FE4F408151816281738172
+:10235000848195810E94D10E8091780190E0019650
+:102360008770992780937801D9CF4F8158856985E7
+:102370007A858B859C850E94D10ECFCF0E94940ECA
+:102380001092790110927801EAEAF1E086E0DF012B
+:102390001D928A95E9F7C1CF2C960FB6F894DEBF4F
+:1023A0000FBECDBFDF91CF911F910895EF92FF92A5
+:1023B0000F931F93CF93DF938C01892B09F46CC08B
+:1023C000F12CEE24E394E8012196F80184918437FE
+:1023D00040F4843008F051C0813081F0823019F12E
+:1023E0005BC0853709F444C0A8F19CE7980F90378B
+:1023F00008F052C08F770E94DF0B41C00E5F1F4F65
+:10240000FE01C49180E28C0F883048F4C7708E2D95
+:1024100001C0880FCA95EAF70E94B21414C08C2F2D
+:102420000E940C0B2DC00E5F1F4FFE01C49180E275
+:102430008C0F883058F4C7708E2D01C0880FCA9554
+:10244000EAF70E94B8140E94D9141AC08C2F0E9477
+:10245000DF0B16C00E5F1F4FFE01C491CC2381F02D
+:102460008FE99FE00197F1F700C00000C150F6CF5F
+:102470000E5F1F4FFE01F49003C00E940C0B8E01F3
+:102480008F2D882309F49FCFEFE9FFE03197F1F713
+:1024900000C000008150F5CFDF91CF911F910F91C7
+:1024A000FF90EF90089508956093B4017093B50183
+:1024B0008093B6019093B7010C94800E0F931F93F5
+:1024C0000091B4011091B5012091B6013091B7018E
+:1024D000DC01CB01802B912BA22BB32B8093B40179
+:1024E0009093B501A093B601B093B7011F910F91DE
+:1024F0000C94800E0F931F930091B4011091B501BD
+:102500002091B6013091B701DC01CB0180239123EA
+:10251000A223B3238093B4019093B501A093B60195
+:10252000B093B7011F910F910C94800E0F931F93DE
+:102530000091B4011091B5012091B6013091B7011D
+:10254000DC01CB0180279127A227B3278093B40118
+:102550009093B501A093B601B093B7011F910F916D
+:102560000C94800E1092B0011092B1011092B20141
+:102570001092B3010C94800E41E050E060E070E0F6
+:1025800004C0440F551F661F771F8A95D2F74093EA
+:10259000B0015093B1016093B2017093B3010C94F8
+:1025A000800E41E050E060E070E004C0440F551F31
+:1025B000661F771F8A95D2F78091B0019091B10183
+:1025C000A091B201B091B301482B592B6A2B7B2B00
+:1025D0004093B0015093B1016093B2017093B30185
+:1025E0000C94800E41E050E060E070E004C0440FC5
+:1025F000551F661F771F8A95D2F7409550956095B5
+:1026000070958091B0019091B101A091B201B0910B
+:10261000B301482359236A237B234093B00150938D
+:10262000B1016093B2017093B3010C94800E41E04C
+:1026300050E060E070E004C0440F551F661F771F34
+:102640008A95D2F78091B0019091B101A091B20129
+:10265000B091B301482759276A277B274093B001DF
+:102660005093B1016093B2017093B3010C94800E4A
+:102670000F931F930091B0011091B1012091B2010D
+:102680003091B301DC01CB01802B912BA22BB32B1A
+:102690008093B0019093B101A093B201B093B301C4
+:1026A0001F910F910C94800E0F931F930091B00116
+:1026B0001091B1012091B2013091B301DC01CB0145
+:1026C00080239123A223B3238093B0019093B1017F
+:1026D000A093B201B093B3011F910F910C94800E9F
+:1026E0000F931F930091B0011091B1012091B2019D
+:1026F0003091B301DC01CB0180279127A227B327BA
+:102700008093B0019093B101A093B201B093B30153
+:102710001F910F910C94800E0895CF92DF92EF924B
+:10272000FF920F931F93CF93DF938C01C090B4015E
+:10273000D090B501E090B601F090B7018091B00162
+:102740009091B101A091B201B091B301C82AD92AE8
+:10275000EA2AFB2ACFE1D0E0D701C6010C2E04C043
+:10276000B695A795979587950A94D2F780FF06C0EE
+:10277000B8018C2F0E944806019721F4219760F739
+:1027800080E001C08C2FDF91CF911F910F91FF90BE
+:10279000EF90DF90CF900895CF93DF93EC010E94EC
+:1027A0008D13BE010E944806DF91CF910895CB01A1
+:1027B0000E94CC1308958091B801859585958595E3
+:1027C00008958091B8018770089598E0899F9001DD
+:1027D0001124262B2093B8010C94D1122091B8011A
+:1027E000809582238093B801982F977069F430E028
+:1027F000482F552747FD50952417350729F0859513
+:10280000859585950C94F21208959091B801977072
+:1028100081E009F480E0089590911501992321F059
+:1028200090910201911109C020910301309104019E
+:10283000F90132969FEF40E01FC0982F969596952C
+:1028400096959F3050F5E0910301F0910401E90F56
+:10285000F11D877021E030E0A90102C0440F551F2F
+:102860008A95E2F7CA019181892B818308959F3F60
+:1028700039F04F5F4E3041F051915813F8CF0DC0F1
+:102880005111F7CF942FF5CF9F3F39F0F901E90FA0
+:10289000F11D97FDFA958283089508959091150191
+:1028A000992321F090910201911109C02091030117
+:1028B00030910401F9013296205F3F4F1FC0982FDD
+:1028C0009695969596959F30F0F4E0910301F091DE
+:1028D0000401E90FF11D877021E030E0A90102C079
+:1028E000440F551F8A95E2F7CA018095918189238B
+:1028F000818308953196E217F30729F090819813A8
+:10290000F9CF1082F7CF089581E090E0E0910301C4
+:10291000F0910401E80FF91F1082019680319105B2
+:10292000A9F708959091CC01892B8093CC0108954B
+:1029300080959091CC0189238093CC0108951092C9
+:10294000CC0108959091CB01892B8093CB01089500
+:1029500080959091CB0189238093CB0108951092AB
+:10296000CB0108959091CA01892B8093CA010895E3
+:1029700080959091CA0189238093CA01089510928D
+:10298000CA0108958093B90108951092B90108957C
+:102990008091030190910401FC0131969C01205F1C
+:1029A0003F4F80E0919191118F5FE217F307D1F7CC
+:1029B0000895E0910301F09104018091CC0180839E
+:1029C000E0910301F091040190818091CB01892B6A
+:1029D0008083E0910301F091040190818091CA010C
+:1029E000892B80838091B901882361F0E0910301F4
+:1029F000F09104019081892B80830E94C814811179
+:102A00001092B90180910301909104010C94F00996
+:102A1000CF92DF92EF92FF926C01EE24FF24C1145B
+:102A2000D104E104F10421F0C701B60120E101C0A5
+:102A300020E0C72ED82EE92EFF24C114D104E104D2
+:102A4000F10419F0285FC701B6016B017C0154E065
+:102A5000F694E794D794C7945A95D1F7C114D1044A
+:102A6000E104F10419F02C5FC701B6016B017C0190
+:102A700042E0F694E794D794C7944A95D1F7C114ED
+:102A8000D104E104F10419F02E5FC701B601DC01A5
+:102A9000CB01B695A79597958795892B8A2B8B2B7C
+:102AA00009F02F5F822FFF90EF90DF90CF90089575
+:102AB0006DEE7EEF80E090E00E94B82360E082E05F
+:102AC00090E00E94A72360E083E090E00E94A723AB
+:102AD00060E084E090E00E94A72360E085E090E061
+:102AE0000C94A72380E090E00E94A12321E08D3E7A
+:102AF0009E4F09F020E0822F089582E090E00C9430
+:102B0000992383E090E00C94992384E090E00C9466
+:102B10009923682F84E090E00C94A7238091F8011A
+:102B2000843039F11092CE0120E488E190E00FB6B4
+:102B3000F894A895809360000FBE2093600080E019
+:102B40000E94460683B7817F846083BF83B781601C
+:102B500083BF7894889583B78E7F83BF0FB6F89430
+:102B6000A895809160008861809360001092600059
+:102B70000FBE08950895CF930E94AC030E94BF0337
+:102B80000E94BA15C0E08C2F0E94AD04811104C0D0
+:102B9000CF5FCE30C1F701C081E0CF9108950E9490
+:102BA000940E0E94E4090C94460682E084BD93E0F2
+:102BB00095BD9AEF97BD80936E0008952FB7F89456
+:102BC0008091CF019091D001A091D101B091D2011B
+:102BD0002FBF0895CF92DF92EF92FF920F931F9332
+:102BE0002FB7F8944091CF015091D0016091D1015D
+:102BF0007091D2012FBF6A017B01EE24FF248C016A
+:102C000020E030E0C016D106E206F30610F4415091
+:102C100051099A01281B390BC9011F910F91FF908F
+:102C2000EF90DF90CF9008951F920F920FB60F9202
+:102C300011248F939F93AF93BF938091CF01909175
+:102C4000D001A091D101B091D2010196A11DB11D79
+:102C50008093CF019093D001A093D101B093D20182
+:102C6000BF91AF919F918F910F900FBE0F901F90CA
+:102C700018950E943C1FF8942FEF87EA91E62150A7
+:102C800080409040E1F700C0000087E090EBDC015D
+:102C90008093010290930202A0930302B093040276
+:102CA0009CE088E10FB6F894A895809360000FBE71
+:102CB00090936000FFCF0E947215811102C00E94A4
+:102CC00058150E947D158093CD010E94851590E0D6
+:102CD0009093F3018093F20187FB882780F980931A
+:102CE00002010E948115682F70E080E090E00C9452
+:102CF00054128091D50180FF0BC06091080185E0DE
+:102D0000689FB001112475956795759567952BC0DF
+:102D100081FF09C06091080185E0689FB00111241E
+:102D20007595679520C082FF07C06091080185E016
+:102D3000689FB001112417C09091D6019923D1F05A
+:102D400060910701961788F72091080185E0289F78
+:102D500090011124929FA001939F500D112470E0C7
+:102D6000CA010E946B236038710540F4611571053A
+:102D700039F002C065E070E0862F08958FE708956E
+:102D800081E008958091D50180FF08C0609106011F
+:102D900070E0759567957595679521C081FF06C0B0
+:102DA0006091060170E07595679519C082FF04C0B7
+:102DB0006091060170E010C09091D6019923C1F096
+:102DC000609105019617A0F780910601899FC001C7
+:102DD000112470E00E946B236038710528F461159E
+:102DE000710521F0862F08958FE7089581E00895F9
+:102DF00061E070E0F4CF803F21F40E947916819564
+:102E000004C0813F29F40E9479168093D901089566
+:102E1000823F21F40E947916819504C0833F29F4F2
+:102E20000E9479168093D8010895893F19F40E9471
+:102E3000C21605C08A3F31F40E94C2168195809364
+:102E4000DA0108958B3F21F40E94C216819504C0D7
+:102E50008C3F29F40E94C2168093DB010895843FC1
+:102E600021F48091D701816017C0853F21F48091C2
+:102E7000D701826011C0863F21F48091D701846020
+:102E80000BC0873F21F48091D701886005C0883F3F
+:102E900031F48091D70180618093D70108958D3FEF
+:102EA00021F48091D50181600BC08E3F21F4809187
+:102EB000D501826005C08F3F29F48091D5018460DF
+:102EC0008093D5010895803F39F48091D90187FF1F
+:102ED0006CC01092D90169C0813F29F48091D90159
+:102EE0001816BCF362C09091D801823F29F497FF75
+:102EF0005CC01092D80159C0833F19F41916CCF365
+:102F000054C0893F41F48091DA0118160CF04DC08D
+:102F10001092DA014AC08A3F29F48091DA0187FFD2
+:102F200044C0F6CF8B3F39F48091DB0187FF3DC071
+:102F30001092DB013AC08C3F29F48091DB01181616
+:102F4000BCF333C0843F21F48091D7018E7F17C03A
+:102F5000853F21F48091D7018D7F11C0863F21F4F8
+:102F60008091D7018B7F0BC0873F21F48091D701DF
+:102F7000877F05C0883F31F48091D7018F7E809391
+:102F8000D70113C08D3F21F48091D5018E7F0BC0F6
+:102F90008E3F21F48091D5018D7F05C08F3F29F4AC
+:102FA0008091D5018B7F8093D5018091D8018111CB
+:102FB0000EC08091D90181110AC08091DA0181117E
+:102FC00006C08091DB01811102C01092D6010895E4
+:102FD00087ED91E00E94FB090E94DE159093D401D9
+:102FE0008093D30108951F93CF93DF938091D301F2
+:102FF0009091D4010E94EA15AC019091D6019923D9
+:1030000021F02091090130E006C020910A018AE0F8
+:10301000289F900111244217530708F486C080911D
+:10302000D801C091D901D091DA011091DB01811151
+:1030300007C0C11176C0D11174C0111172C075C022
+:103040009F3F19F09F5F9093D601181624F40E94B9
+:1030500079168093D8018091D80187FF05C00E941E
+:10306000791681958093D8011C1624F40E94791654
+:103070008093D9018091D90187FF05C00E947916FC
+:1030800081958093D9016091D801662339F1C0916F
+:10309000D901CC2319F1772767FD7095872F972FDA
+:1030A0000E94722223E333E343E35FE30E94D622CC
+:1030B0000E943A226093D8016C2F772767FD7095A4
+:1030C000872F972F0E94722223E333E343E35FE3CA
+:1030D0000E94D6220E943A226093D9011D1624F440
+:1030E0000E94C2168093DA018091DA0187FF05C041
+:1030F0000E94C21681958093DA01111624F40E9471
+:10310000C2168093DB018091DB0187FF05C00E941E
+:10311000C21681958093DB01DF91CF911F910C94B2
+:10312000E8179F3F09F08ECF96CFDF91CF911F9187
+:103130000895E7EDF1E085E0DF011D928A95E9F75A
+:103140001092D6011092D5010895833081F128F4B0
+:10315000813059F08230D1F00895853009F449C0AA
+:10316000B8F1863009F456C0089580910A01262FDF
+:1031700030E0280F311D2F3F310524F4680F609394
+:103180000A0108958FEF80930A0108958091090143
+:10319000262F30E0280F311D2F3F310524F4680F12
+:1031A0006093090108958FEF80930901089580913C
+:1031B0000801262F30E0280F311D2F3F310524F460
+:1031C000680F6093080108958FEF809308010895B8
+:1031D00080910701262F30E0280F311D2F3F310548
+:1031E00024F4680F6093070108958FEF809307011F
+:1031F000089580910601262F30E0280F311D2F3FC2
+:10320000310524F4680F6093060108958FEF8093D1
+:103210000601089580910501262F30E0280F311D09
+:103220002F3F310524F4680F6093050108958FEF57
+:10323000809305010895833011F128F4813049F01D
+:10324000823091F00895853081F120F18630C1F10E
+:10325000089580910A01681720F4861B80930A0163
+:10326000089510920A01089580910901681720F4C9
+:10327000861B809309010895109209010895809199
+:103280000801681720F4861B8093080108951092A6
+:103290000801089580910701681720F4861B809328
+:1032A000070108951092070108958091060168179B
+:1032B00020F4861B8093060108951092060108955C
+:1032C00080910501681720F4861B809305010895FD
+:1032D0001092050108950F931F938D3109F471C069
+:1032E00008F045C0803109F485C008F5873009F43D
+:1032F0006FC068F4863009F0ADC08091CD01817F48
+:103300008E7F8093CD0181E08093DD01A4C08B305E
+:1033100009F49EC08E3009F09DC08091CD0182FBE2
+:10332000222720F991E0922790FB82F96CC0863128
+:1033300009F48EC060F4813109F08CC00E94940EB3
+:103340009091020181E089278093020181C0893137
+:1033500009F47EC08B3109F07DC08091CD0181FBE5
+:10336000222720F991E0922790FB81F94CC0853308
+:1033700009F466C048F4873209F462C008F44FC00B
+:10338000893209F45DC066C0833438F48A3308F0AA
+:1033900044C0883309F45CC05DC0833409F450C074
+:1033A000883409F057C00E94940E0FEF13ED20E30C
+:1033B000015010402040E1F700C000000E94391683
+:1033C00047C00E94F51A0E94E4090E94460640C0C8
+:1033D0009091CD01892F8095817080FB90F929F023
+:1033E000966098609093CD0136C0997F977F9093B7
+:1033F000CD012EC08091CD0183FB222720F991E0E1
+:10340000922790FB83F98093CD01992309F1809154
+:10341000CD0181608093CD011BC0895301C08D51C6
+:1034200041E050E060E070E08A019B0104C0000FC1
+:10343000111F221F331F8A95D2F7C901B80104C09A
+:1034400061E070E080E090E00E9454120E94940ECF
+:1034500081E001C080E01F910F91089580E0089500
+:1034600080E008958E518A3030F4E82FF0E0EA5E73
+:10347000FE4F8081089580E00895CF93C82F8091FA
+:10348000DD01813079F018F08230E9F186C0E091F9
+:103490000301F09104018081813169F0823209F0E9
+:1034A0007EC009C0E0910301F09104018081813167
+:1034B00011F0823261F48C2F0E942E1A811104C007
+:1034C0008C2F0E946B191DC081E090E01AC08C2FD8
+:1034D0000E94301A811114C0C43179F048F4CB3005
+:1034E00079F0C03109F05FC082E08093DD0108C04F
+:1034F000C93219F0C83321F056C01092DD0153C013
+:1035000081E0817052C0C93281F110F5C43169F196
+:10351000A8F4C73009F045C08AE080930A0194E11D
+:103520009093090193E0909308018093070188E04C
+:103530008093060188E28093050133C082EE8C0FF0
+:10354000863078F58C2F0E94321A8093DC0129C0D6
+:10355000CE34E9F020F4CB3421F56AE013C0C13554
+:1035600079F0C235F1F461E00DC08091DC0188236F
+:1035700019F01092DC0115C081E08093DD0115C0C7
+:1035800061E006C08091DC010E94A5180AC06AE0D3
+:103590008091DC010E941B1904C01092DD0180E0C3
+:1035A00004C081E002C080E0ACCFCF910895E1E893
+:1035B000F0E08081886080838081816080838FB724
+:1035C000F89493E09093890090ED909388008FBFDA
+:1035D0000895EFE6F0E08081826080830895EFE651
+:1035E000F0E080818D7F80830895EFE6F0E09081A8
+:1035F00082E08927808308951F920F920FB60F9261
+:1036000011242F933F934F935F936F937F938F93E7
+:103610009F93AF93BF93EF93FF938091DE019091BF
+:10362000DF0101969093DF018093DE01811103C0D9
+:1036300082E00E944606E091DF01E695E695F0E023
+:10364000E954FC4FE4918091DE018E1303C080E0C9
+:103650000E944606FF91EF91BF91AF919F918F918C
+:103660007F916F915F914F913F912F910F900FBE7E
+:103670000F901F9018958091F0010895CF93DF93DC
+:1036800000D01F92CDB7DEB79C018091F801843045
+:1036900019F593E099833B832A839093E9008FEF98
+:1036A0009091E800815095FD06C095ED9A95F1F74F
+:1036B00000008111F5CF8091E80085FF0DC040E04A
+:1036C00050E063E070E0CE0101960E94A71D80915A
+:1036D000E8008E778093E8000F900F900F90DF91B5
+:1036E000CF910895CF93DF9300D01F92CDB7DEB76F
+:1036F0002091F801243021F522E029839B838A83DD
+:1037000083E08093E9008FEF9091E800815095FD70
+:1037100006C095ED9A95F1F700008111F5CF8091E3
+:10372000E80085FF0DC040E050E063E070E0CE01AE
+:1037300001960E94A71D8091E8008E778093E80093
+:103740000F900F900F90DF91CF9108952091F80185
+:103750002430F1F422E02093E9002FEF3091E800CB
+:10376000215035FD06C035ED3A95F1F700002111E5
+:10377000F5CF2091E80025FF0BC040E050E065E068
+:1037800070E00E94A71D8091E8008E778093E8008A
+:103790000895CF93DF93EC019091F801943009F0F4
+:1037A00046C0809115018823D9F0809102018823B9
+:1037B000B9F09093E9008FEF9091E800815095FD6A
+:1037C00006C095E19A95F1F700008111F5CF80913F
+:1037D000E80085FF2CC040E050E060E170E017C0D9
+:1037E00081E08093E9008FEF9091E800815095FD92
+:1037F00006C095ED9A95F1F700008111F5CF809103
+:10380000E80085FF14C040E050E068E070E0CE01C1
+:103810000E94A71D8091E8008E778093E80080E1E8
+:10382000FE01A0EEB1E001900D928A95E1F7DF91E3
+:10383000CF9108958091F701811109C00E943C1F2A
+:103840000E94991F8091E20084608093E2000895B5
+:103850001092F701089508950C94E91A0E94CF156B
+:103860000E94EF1A0E94E4090C94460642E061ECC3
+:1038700081E00E94B61E42E061EC82E00E94B61E2A
+:1038800042E061EC83E00E94B61E42E161EC84E01C
+:103890000C94B61E8091FA01833009F455C030F4BF
+:1038A000813071F0823009F48EC008958A3009F4B5
+:1038B0007AC08B3009F460C0893009F09CC020C008
+:1038C0008091F901813A09F096C08091E800877FE4
+:1038D0008093E8008091FD019091FE01892B21F4F5
+:1038E00060E180EE91E003C060E080E090E070E095
+:1038F0000E94F21D8091E8008B778093E800089584
+:103900008091F901813209F076C08091FD0190919A
+:10391000FE01009719F0039709F06DC08091E8004F
+:10392000877F8093E8008091E80082FD05C0809148
+:10393000F8018111F8CF5FC08091F1008093F00110
+:103940008091E8008B7753C08091F901813A09F0AA
+:1039500052C08091FD019091FE01892B09F04BC06E
+:103960008091E800877F8093E8008091E80080FFE5
+:10397000FCCF8091150136C08091F9018132D9F5D3
+:103980008091FD019091FE01892BA9F58091E800BD
+:10399000877F8093E8000E94EB1E8091FB0180935B
+:1039A00015010C94940E8091F901813221F58091DA
+:1039B000E800877F8093E8000E94EB1E8091FC0165
+:1039C0008093F10108958091F901813AA1F48091E9
+:1039D000E800877F8093E8008091E80080FFFCCFBB
+:1039E0008091F1018093F1008091E8008E778093BF
+:1039F000E8000C94EB1E089584B7877F84BF0FB650
+:103A0000F894A8958091600088618093600010927E
+:103A100060000FBE80E880936100109261000E94F8
+:103A2000330A0E943C1F0E94991F8091E20084602B
+:103A30008093E20078940E941F220E94350A8BE056
+:103A400091E00E94DF090E94D71A8091F801853029
+:103A500069F40E948E158091F6018823B1F30E94CB
+:103A6000BB15882391F30E94911DEFCF0E943B0A62
+:103A7000ECCF292F332723303105C9F064F42130EE
+:103A8000310581F02230310509F043C08DE690E028
+:103A90002BE234E042C021323105F1F0223231050F
+:103AA00041F137C082E190E028E934E036C099273F
+:103AB0008130910541F08230910541F0892B49F523
+:103AC000E7E2F4E005C0EFE0F4E002C0E7EFF3E086
+:103AD000849190E09F0121C06430D8F4E62FF0E09B
+:103AE000EE0FFF1FE45DFE4F2081318189E090E001
+:103AF00014C0643070F470E0FB01EE0FFF1FEC5D4A
+:103B0000FE4F20813181FB01E05EFE4F808190E01D
+:103B100004C080E090E020E030E0FA0131832083AF
+:103B2000089580E189BD82E189BD09B400FEFDCF21
+:103B30008091D8008F7D8093D8008091E0008260D2
+:103B40008093E0008091E00081FDFCCF0895CF924A
+:103B5000DF92EF92FF920F931F93CF93DF93EC01CD
+:103B60008B016A010E940A1F811133C0C114D10464
+:103B700039F0F60180819181081B190BC80FD91FFC
+:103B8000E12CF12C0115110519F18091E80085FD5A
+:103B900016C08091E8008E778093E800C114D104AC
+:103BA00049F0F60180819181E80EF91EF182E082F0
+:103BB00085E00FC00E940A1F882321F30AC0899163
+:103BC0008093F10001501109FFEFEF1AFF0ADACFDD
+:103BD00080E0DF91CF911F910F91FF90EF90DF90E8
+:103BE000CF9008952091FF013091000226173707EA
+:103BF00048F06115710539F42091E8002E77209383
+:103C0000E80001C0B90140E061157105A9F12091FA
+:103C1000F801222309F443C0253009F442C0209161
+:103C2000E80023FD40C02091E80022FD32C0209131
+:103C3000E80020FFE9CF4091F3002091F20030E04E
+:103C4000342BFC01CF016115710559F02830310585
+:103C500040F481918093F100615071092F5F3F4FD3
+:103C6000F1CF41E02830310509F040E02091E80033
+:103C70002E772093E800C8CF4111C9CF0AC08091A8
+:103C8000F801882361F0853061F08091E80083FDC0
+:103C90000AC08091E80082FFF2CF80E0089582E0C0
+:103CA000089583E0089581E008952091FF01309107
+:103CB00000022617370748F06115710539F4209185
+:103CC000E8002E772093E80001C0B901FC0120E054
+:103CD0006115710591F18091F801882309F440C0C4
+:103CE000853009F43FC08091E80083FD3DC080919C
+:103CF000E80082FD2FC08091E80080FFE9CF20918D
+:103D0000F3008091F20090E0922B6115710559F05B
+:103D10008830910540F424912093F1003196615050
+:103D200071090196F2CF21E0089709F020E0809117
+:103D3000E8008E778093E800CBCF2111CCCF0AC06A
+:103D40008091F801882361F0853061F08091E8006E
+:103D500083FD0AC08091E80082FFF2CF80E00895E1
+:103D600082E0089583E0089581E00895982F9730C8
+:103D700058F59093E900981739F07091EC00209174
+:103D8000ED005091F00003C0242F762F50E021FF6A
+:103D900019C03091EB003E7F3093EB003091ED0085
+:103DA0003D7F3093ED003091EB0031603093EB00BC
+:103DB0007093EC002093ED005093F0002091EE0002
+:103DC00027FF07C09F5FD3CF8F708093E90081E00A
+:103DD000089580E008958091F90187FF11C08091D6
+:103DE000E80082FD05C08091F8018111F8CF11C073
+:103DF0008091E8008B770BC08091F801882349F00F
+:103E00008091E80080FFF8CF8091E8008E77809362
+:103E1000E80008952091E4003091E50095E6409196
+:103E2000EC00842F817040FF22C08091E80080FD6B
+:103E30001CC08091F801882391F0853091F0809129
+:103E4000EB0085FD10C04091E4005091E500421761
+:103E5000530729F39A01915011F784E0089582E005
+:103E6000089583E0089581E0089580E008954091E9
+:103E7000E80042FFDECF08950E94AA1F0E94B21FF1
+:103E8000E0EEF0E0808181608083E8EDF0E0808109
+:103E90008F77808319BCA7EDB0E08C918E7F8C93D7
+:103EA00080818F7E80831092F70108950F931F9376
+:103EB000CF93DF930E94AA1F0E94B21FC8EDD0E0EB
+:103EC00088818F77888388818068888388818F7DC7
+:103ED000888319BC1092F8011092F4011092F60137
+:103EE0001092F50100EE10E0F80180818B7F808355
+:103EF00088818160888342E060E080E00E94B61E95
+:103F0000E1EEF0E080818E7F8083E2EEF0E0808160
+:103F100081608083808188608083F80180818E7FCA
+:103F20008083888180618883DF91CF911F910F9179
+:103F30000895E8EDF0E080818F7E8083E7EDF0E08A
+:103F400080818160808384E082BF81E08093F7017B
+:103F50000C94561FE8EDF0E080818E7F80831092F4
+:103F6000E20008951092DA001092E10008951F9285
+:103F70000F920FB60F9211242F933F934F935F939D
+:103F80006F937F938F939F93AF93BF93EF93FF9321
+:103F90008091E10082FF0BC08091E20082FF07C0A8
+:103FA0008091E1008B7F8093E1000E941E2280912E
+:103FB000DA0080FF1FC08091D80080FF1BC0809175
+:103FC000DA008E7F8093DA008091D90080FF0DC0E7
+:103FD00080E189BD82E189BD09B400FEFDCF81E0A9
+:103FE0008093F8010E941A1C05C019BC1092F801B8
+:103FF0000E94281C8091E10080FF19C08091E2009E
+:1040000080FF15C08091E2008E7F8093E200809156
+:10401000E20080618093E2008091D800806280930A
+:10402000D80019BC85E08093F8010E942C1C809177
+:10403000E10084FF30C08091E20084FF2CC080E169
+:1040400089BD82E189BD09B400FEFDCF8091D80011
+:104050008F7D8093D8008091E1008F7E8093E10076
+:104060008091E2008F7E8093E2008091E200816087
+:104070008093E2008091F401882311F084E007C06E
+:104080008091E30087FD02C081E001C083E080935E
+:10409000F8010E942E1C8091E10083FF29C08091CD
+:1040A000E20083FF25C08091E100877F8093E100DB
+:1040B00082E08093F8011092F4018091E1008E7FFC
+:1040C0008093E1008091E2008E7F8093E2008091F6
+:1040D000E20080618093E20042E060E080E00E94C4
+:1040E000B61E8091F00088608093F0000E942B1C27
+:1040F000FF91EF91BF91AF919F918F917F916F91C0
+:104100005F914F913F912F910F900FBE0F901F9095
+:1041100018951F920F920FB60F9211242F933F9371
+:104120004F935F936F937F938F939F93AF93BF93BF
+:10413000CF93DF93EF93FF93C091E900CF7080910D
+:10414000EC00D82FD17080FDD0E81092E90080916A
+:10415000F000877F8093F00078940E94CD20109229
+:10416000E9008091F00088608093F000CD2BCF7043
+:10417000C093E900FF91EF91DF91CF91BF91AF9193
+:104180009F918F917F916F915F914F913F912F916F
+:104190000F900FBE0F901F9018951F93CF93DF9332
+:1041A000CDB7DEB7AA970FB6F894DEBF0FBECDBF6E
+:1041B000E9EFF1E088E08E0F9091F10091938E137A
+:1041C000FBCF0E944A1C8091E80083FF1FC18091B1
+:1041D000F9019091FA01492F50E04A30510508F059
+:1041E00015C1FA01E558FF4F0C947F23803881F008
+:1041F000823809F00BC18091FD018F708093E90036
+:104200008091EB0085FB882780F91092E90006C0B9
+:104210008091F5019091F601911182609091E800F2
+:10422000977F9093E8008093F1001092F100C8C04E
+:10423000282F2D7F09F0EAC0882319F0823061F021
+:10424000E5C08091FB01813009F0E0C0933009F0B6
+:1042500080E08093F6012BC08091FB01811127C083
+:104260008091FD018F7009F4D1C08093E900209105
+:10427000EB0020FF1CC0933021F48091EB008062A2
+:1042800014C09091EB0090619093EB0021E030E03E
+:10429000A90102C0440F551F8A95E2F74093EA0036
+:1042A0001092EA008091EB0088608093EB001092FE
+:1042B000E9008091E800877F86C08111A7C0109136
+:1042C000FB011F778091E3008078812B8093E300CE
+:1042D0008091E800877F8093E8000E94EB1E809128
+:1042E000E80080FFFCCF8091E30080688093E300CA
+:1042F000111102C082E001C083E08093F80186C002
+:104300008058823008F082C08091FB019091FC01BE
+:104310008C3D53E0950779F583E08A838AE28983AF
+:104320004FB7F894DE01139620E03EE051E2E32F10
+:10433000F0E050935700E49120FF03C0E295EF7046
+:104340003F5FEF708E2F90E0EA3010F0C79601C00B
+:10435000C0968D939D932F5F243149F74FBF809175
+:10436000E800877F8093E8006AE270E0CE01019662
+:104370000E94F21D14C0AE014F5F5F4F6091FD01BE
+:104380000E94391DBC01892B09F440C09091E800BE
+:10439000977F9093E80089819A810E94551E8091B1
+:1043A000E8008B778093E80031C0803879F5809100
+:1043B000E800877F8093E8008091F4018093F1000A
+:1043C0008091E8008E778093E8000E94EB1E1EC06B
+:1043D00081111CC09091FB019230C0F48091E800E3
+:1043E000877F8093E8009093F4010E94EB1E8091F8
+:1043F000F401811106C08091E30087FD02C081E0D5
+:1044000001C084E08093F8010E94361C8091E8008E
+:1044100083FF0AC08091E800877F8093E800809145
+:10442000EB0080628093EB00AA960FB6F894DEBF93
+:104430000FBECDBFDF91CF911F9108950895CF9307
+:104440008091F8018823A1F0C091E900CF7090918C
+:10445000EC00892F817090FD80E8C82B1092E90054
+:104460008091E80083FD0E94CD20CF70C093E900C9
+:10447000CF9108950E9441226894B1110C94D022EA
+:1044800008950E94B52288F09F5798F0B92F992778
+:10449000B751B0F0E1F0660F771F881F991F1AF02F
+:1044A000BA95C9F714C0B13091F00E94CF22B1E0A3
+:1044B00008950C94CF22672F782F8827B85F39F0A2
+:1044C000B93FCCF3869577956795B395D9F73EF4C8
+:1044D00090958095709561957F4F8F4F9F4F089570
+:1044E000E89409C097FB3EF490958095709561958E
+:1044F0007F4F8F4F9F4F9923A9F0F92F96E9BB2744
+:104500009395F695879577956795B795F111F8CFBF
+:10451000FAF4BB0F11F460FF1BC06F5F7F4F8F4F2A
+:104520009F4F16C0882311F096E911C0772321F020
+:104530009EE8872F762F05C0662371F096E8862FB8
+:1045400070E060E02AF09A95660F771F881FDAF70F
+:10455000880F9695879597F9089557FD9058440FC1
+:10456000551F59F05F3F71F04795880F97FB991FD2
+:1045700061F09F3F79F0879508951216130614068F
+:10458000551FF2CF4695F1DF08C01616170618061C
+:10459000991FF1CF86957105610508940895E894F7
+:1045A000BB2766277727CB0197F908950E94E92258
+:1045B0000C945A230E944C2338F00E94532320F07D
+:1045C000952311F00C9443230C94492311240C944B
+:1045D000D0220E94AD2270F3959FC1F3950F50E059
+:1045E000551F629FF001729FBB27F00DB11D639FA5
+:1045F000AA27F00DB11DAA1F649F6627B00DA11D4B
+:10460000661F829F2227B00DA11D621F739FB00DF0
+:10461000A11D621F839FA00D611D221F749F332760
+:10462000A00D611D231F849F600D211D822F762FF9
+:104630006A2F11249F5750409AF0F1F088234AF0D6
+:10464000EE0FFF1FBB1F661F771F881F9150504042
+:10465000A9F79E3F510580F00C9443230C94D0227F
+:104660005F3FE4F3983ED4F3869577956795B795C9
+:10467000F795E7959F5FC1F7FE2B880F911D9695E3
+:10468000879597F9089597F99F6780E870E060E053
+:1046900008959FEF80EC089500240A9416161706DB
+:1046A00018060906089500240A9412161306140623
+:1046B00005060895092E0394000C11F4882352F086
+:1046C000BB0F40F4BF2B11F460FF04C06F5F7F4F3E
+:1046D0008F4F9F4F089597FB072E16F4009407D035
+:1046E00077FD09D00E94852307FC05D03EF4909504
+:1046F00081959F4F0895709561957F4F0895EE0FB6
+:10470000FF1F0590F491E02D0994AA1BBB1B51E1FA
+:1047100007C0AA1FBB1FA617B70710F0A61BB70B31
+:10472000881F991F5A95A9F780959095BC01CD01D6
+:104730000895F999FECF92BD81BDF89A992780B569
+:104740000895A8E1B0E042E050E00C94C023262F89
+:10475000F999FECF92BD81BDF89A019700B4021677
+:1047600031F020BD0FB6F894FA9AF99A0FBE089569
+:104770000196272F0E94A8230C94A723DC01CB01CC
+:10478000FC01F999FECF06C0F2BDE1BDF89A319661
+:1047900000B40D9241505040B8F70895F894FFCFFF
+:1047A000052001BA0128080A03140A3B1BC91BA6ED
+:1047B0001B721B3E1B0101020304050607080900CA
+:1047C000404D363966051905E304AA043D04560434
+:0447D0006F048804E6
+:00000001FF
diff --git a/keyboards/ergodox/readme.md b/keyboards/ergodox/readme.md
new file mode 100644
index 000000000..45b3354c1
--- /dev/null
+++ b/keyboards/ergodox/readme.md
@@ -0,0 +1,164 @@
+# The Easy Way
+
+If you have an ErgoDox EZ, the absolute easiest way for you to customize your firmware is using the [graphical configurator](http://configure.ergodox-ez.com), which uses QMK under the hood.
+
+If you can find firmware someone else has made that does what you want, that
+is the easiest way to customize your ErgoDox. It requires no programming
+experience or the setup of a build environment.
+
+Quickstart:
+
+ - Find and download an existing firmware
+ [from Other Firmware Options](#other-firmware-options)
+
+ - Then flash the firmware to your [ErgoDox Ez](#ergodox-ez)
+ or [ErgoDox Infinity](#ergodox-infinity)
+
+# Customizing Keymaps
+
+There are many existing keymaps in the "keymaps" directory. If you just want
+to use one of them, you don't need to modify keymaps and can just build and
+flash the firmware as described below. These directories each have a
+"readme.md" file which describe them.
+
+If none of the existing keymaps suit you, you can create your own custom
+keymap. This will require some experience with coding. Follow these steps
+to customize a keymap:
+
+ - Read the [qmk firmware README](https://github.com/qmk/qmk_firmware) from top to bottom. Then come back here. :)
+
+ - Clone the qmk_firmware repository
+
+ - Set up your build environment (see below).
+
+ - Make a new directory under "keymaps" to hold your customizations.
+
+ - Copy an existing keymap that is close to what you want, such as
+ "keymaps/default/keymap.c".
+
+ - Use an editor to modify the new "keymap.c". See "Finding the keycodes you
+ need" below). Try to edit the comments as well, so the "text graphics"
+ represent your layout correctly.
+
+ - Compile your new firmware (see below)
+
+ - Flash your firmware (see below)
+
+ - Test the changes.
+
+ - Submit your keymap as a pull request to the qmk_firmware repository so
+ others can use it. You will want to add a "readme.md" that describes the
+ keymap.
+
+# Build Dependencies
+
+Before you can build, you will need the build dependencies. There is a script
+to try to do this for Linux:
+
+ - Run the `util/install_dependencies.sh` script as root.
+
+For the Infinity, you need the chibios submodules to be checked out or you
+will receive errors about the build process being unable to find the chibios
+files. Check them out with:
+
+ - Go to the top level repo directory and run: `git submodule update --init --recursive`
+
+# Flashing Firmware
+
+## ErgoDox EZ
+
+The Ez uses the [Teensy Loader](https://www.pjrc.com/teensy/loader.html).
+
+Linux users need to modify udev rules as described on the Teensy Linux page.
+Some distributions provide a binary, maybe called `teensy-loader-cli`).
+
+To flash the firmware:
+
+ - Build the firmware with `make keymapname`, for example `make default`
+ - This will result in a hex file called `ergodox_ez_keymapname.hex`, e.g.
+ `ergodox_ez_default.hex`
+
+ - Start the teensy loader.
+
+ - Load the .hex file into it.
+
+ - Press the Reset button by inserting a paperclip gently into the reset hole
+ in the top right corder.
+
+ - Click the button in the Teensy app to download the firmware.
+
+## ErgoDox Infinity
+
+The Infinity is two completely independent keyboards, and needs to be flashed
+for the left and right halves seperately. To flash them:
+
+ - Build the firmware with `make infinity-keymapname`
+
+ - Plug in the left hand keyboard only.
+
+ - Press the program button (back of keyboard, above thumb pad).
+
+ - Install the firmware with `sudo make infinity-keymapname-dfu-util`
+
+ - Build left hand firmware with `make infinity-keymapname MASTER=right`
+
+ - Plug in the right hand keyboard only.
+
+ - Press the program button (back of keyboard, above thumb pad).
+
+ - Install the firmware with `sudo make infinity-keymapname-dfu-util MASTER=right`
+
+More information on the Infinity firmware is available in the [TMK/chibios for
+Input Club Infinity Ergodox](https://github.com/fredizzimo/infinity_ergodox/blob/master/README.md)
+
+### Infinity Master/Two Halves
+
+The Infinity is two completely independent keyboards, that can connect together.
+You have a few options in how you flash the firmware:
+
+- Flash the left half, rebuild the firmware with "MASTER=right" and then flash
+ the right half. This allows you to plug in either half directly to the
+ computer and is what the above instructions do.
+
+- Flash the left half, then flash the same firmware on the right. This only
+ works when the left half is plugged directly to the computer and the keymap
+ is mirrored. It saves the small extra step of rebuilding with
+ "MASTER=right".
+
+- The same as the previous one but with "MASTER=right" when you build the
+ firmware, then flash the same firmware to both halves. You just have to
+ directly connect the right half to the computer.
+
+- For minor changes such as changing only the keymap without having updated
+ any part of the firmware code itself, you can program only the MASTER half.
+ It is safest to program both halves though.
+
+# Contributing your keymap
+
+The QMK firmware is open-source, so it would be wonderful to have your contribution! Within a very short time after launching we already amassed dozens of user-contributed keymaps, with all sorts of creative improvements and tweaks. This is very valuable for people who aren't comfortable coding, but do want to customize their ErgoDox. To make it easy for these people to use your layout, I recommend submitting your PR in the following format.
+
+1. All work goes inside your keymap subdirectory (`keymaps/german` in this example).
+2. `keymap.c` - this is your actual keymap file; please update the ASCII comments in the file so they correspond with what you did.
+3. `readme.md` - a readme file, which GitHub would display by default when people go to your directory. Explain what's different about your keymap, what you tweaked or how it works. No specific format to follow, just communicate what you did. :)
+4. Any graphics you wish to add. This is absolutely not a must. If you feel like it, you can use [Keyboard Layout Editor](http://keyboard-layout-editor.com) to make something and grab a screenshot, but it's really not a must. If you do have graphics, your readme can just embed the graphic as a link, just like I did with the default layout.
+
+# Finding the keycodes you need
+
+Let's say you want a certain key in your layout to send a colon; to figure out what keycode to use to make it do that, you're going to need `quantum/keymap_common.h`.
+
+That file contains a big list of all of the special, fancy keys (like, being able to send % on its own and whatnot).
+
+If you want to send a plain vanilla key, you can look up its code under `doc/keycode.txt`. That's where all the boring keys hang out.
+
+# Other Firmware Options
+
+There are external tools for customizing the layout, but those do not use
+the featurs of this qmk firmware. These sites include:
+
+ - The official [ErgoDox EZ configurator](http://configure.ergodox-ez.com)
+ - [Massdrop configurator](https://keyboard-configurator.massdrop.com/ext/ergodox) for EZ, works but not officially supported
+ - [Input Club configurator](https://input.club/configurator-ergodox) for Infinity, provides left and right files
+
+You can also find an existing firmware that you like, for example from:
+
+ - [Dozens of community-contributed keymaps](http://qmk.fm/keyboards/ergodox/)
diff --git a/keyboards/ergodox/rules.mk b/keyboards/ergodox/rules.mk
new file mode 100644
index 000000000..2e501e81b
--- /dev/null
+++ b/keyboards/ergodox/rules.mk
@@ -0,0 +1,28 @@
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make = Make software.
+#
+# make clean = Clean out built project files.
+#
+# That's pretty much all you need. To compile, always go make clean,
+# followed by make.
+#
+# For advanced users only:
+# make teensy = Download the hex file to the device, using teensy_loader_cli.
+# (must have teensy_loader_cli installed).
+#
+#----------------------------------------------------------------------------
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+CUSTOM_MATRIX ?= yes # Custom matrix file for the ErgoDox EZ
+SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
+NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+UNICODE_ENABLE ?= yes # Unicode
+ONEHAND_ENABLE ?= yes # Allow swapping hands of keyboard
diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png
deleted file mode 100644
index c4e298b6b..000000000
--- a/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png
+++ /dev/null
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png
deleted file mode 100644
index 81155851b..000000000
--- a/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png
+++ /dev/null
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png
deleted file mode 100644
index 698d11e5f..000000000
--- a/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png
+++ /dev/null
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png
deleted file mode 100644
index fe3c03c93..000000000
--- a/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png
+++ /dev/null
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/algernon/readme.md b/keyboards/ergodox_ez/keymaps/algernon/readme.md
deleted file mode 100644
index 6b7e8fa2e..000000000
--- a/keyboards/ergodox_ez/keymaps/algernon/readme.md
+++ /dev/null
@@ -1,230 +0,0 @@
-algernon's layout
-=======================
-
-This is an unconventional layout for the ErgoDox EZ. For more details about the
-history of the layout, see my
-[blog posts about my ErgoDox journey][blog-ergodox].
-
- [blog-ergodox]: https://asylum.madhouse-project.org/blog/tags/ergodox/
-
-Some of the things in the layout only work when one uses Spacemacs and GNOME
-under Linux. Your mileage may vary.
-
-## Table of Contents
-
-* [Layouts](#layouts)
- - [Base layer](#base-layer)
- - [Experimental layer](#experimental-layer)
- - [Hungarian layer](#hungarian-layer)
- - [Navigation and media layer](#navigation-and-media-layer)
- - [One-handed layer](#one-handed-layer)
- - [Steno layer](#steno-layer)
- - [LED states](#led-states)
-* [Building](#building)
- - [Using on Windows](#using-on-windows)
-* [Changelog](#changelog)
-* [License](#license)
-
-# Layouts
-
-## Base layer
-
-[![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/28f7eb305fdbff943613e1dc7aa9e82b)
-
-At its core, this is a Dvorak layout, with some minor changes. The more
-interesting parts are how certain keys behave:
-
-* The keys on the number row double as function keys, when held for a bit longer
- than an usual tap. This allows me to use the function keys without having to
- switch layers.
-* The `Shift`, `Alt`, and `Control` modifiers are one-shot. When tapped, they
- are considered active for the next key press only. When double tapped, they
- toggle on, until a third, single tap sometime later. When held, they act as
- expected. My usual pattern is that I use these for the next keypress only, so
- this behaviour is perfect. If I need them held, I'll just double-tap.
-* The `GUI` key is special, because when I double-tap it, it sends `GUI + w`,
- which pops up an application selector. It also switches to a one-shot layer,
- where the number row on the left half turns into app selector macros, for the
- most common things I usually want to switch to. Otherwise it behaves as on a
- normal layout.
-* The `ESC` key also doubles as a one-shot cancel key: if tapped while any of
- the one-shot modifiers are in-flight (as in, single-tapped, and not expired
- yet), it cancels all one-shot modifiers. It also cancels the **Hun** layer, if
- active. Otherwise it sends the usual keycode.
-* The **Media**, **Arrow**, and **Hun** layer keys are one-shot, the **1Hand**
- and **STENO** keys are toggles.
-* Toggling the **Arrow** layer toggles between the cursor arrows and the paging
- keys on the bottom row.
-* Tapping the `:` key once yields `:`, tapping it twice yields `;`.
-* The **Lead** key allows me to type in a sequence of keys, and trigger some
- actions:
- - `LEAD u` enters unicode input mode, by sending the GTK+ key sequence that
- does this.
- - `LEAD l` uses the unicode input method to enter a `λ`.
- - `LEAD s` does a lot of magic to type in a shruggie: `¯\_(ツ)_/¯`
- - `LEAD y` types `\o/`.
- - `LEAD w m` maximises the currently focused window.
- - `LEAD e` makes the [experimental layer](#experimental-layer) the default.
- - `LEAD v` prints the firmware version, the keyboard and the keymap.
-
-## Experimental layer
-
-[![Experimental layer](images/experimental-layer.png)](http://www.keyboard-layout-editor.com/#/gists/6ff50bf71248e05aab5b3fec4fae3d08)
-
-While using the standard Dvorak layout, I encountered a number of
-inconveniences, and on this layer, I am playing with ideas to make the layout
-feel better. Initially, it was based on [Capewell-Dvorak][cpd], but that too,
-had shortcomings I was not happy with. So now this is something inbetween, with
-own observations thrown in. How it works out in the long run remains to be seen.
-
- [cpd]: http://www.michaelcapewell.com/projects/keyboard/layout_capewell-dvorak.htm
-
-## Hungarian layer
-
-[![Hungarian layer](images/hun-layer.png)](http://www.keyboard-layout-editor.com/#/gists/b160f6ec90d58c127c114c89f66e9dc9)
-
-On this layer, the accented characters are at the same position as their base
-variant. For some, which can have other diatribes, the long one is on top,
-short's on bottom. Tapping any of the accented characters takes us back to the
-base layer.
-
-## Navigation and media layer
-
-[![Navigation and media layer](images/nav-n-media-layer.png)](http://www.keyboard-layout-editor.com/#/gists/c59c453f9fe1a3238ba1494e7e5c6892)
-
-This layer is primarily for navigating with the cursor or the mouse, and some
-media things.
-
-## One-handed layer
-
-[![One-handed layer](images/one-handed-layer.png)](http://www.keyboard-layout-editor.com/#/gists/edff2495135955b8963198dace7f7ece)
-
-The one-handed layer is used in situations where the right hand is occupied, by
-mousing around, for example. Tapping the `OTHER` key switches which side is
-active. For the most part, keys remain in their usual position. When the right
-half is active, keys are mirrored to the left half.
-
-The differences are as follows:
-
-* The `ESC` key has been moved to the bottom row, so the `OTHER` key is easier
- to tap.
-* Most keys on the thumb cluster now have dual uses, and these do not change
- when switching sides:
- - The `Space`/`Backspace` key sends `Space` on tap, `Backspace` when held
- for longer than a normal tap.
- - The `Enter`/`Shift` key sends `Enter` on short-tap, `Shift` on long-tap.
-* The `Apps`/`BASE` key can be used to go back to the base layer, by
- long-tapping it. A short-tap will send the `App` key, as usual.
-
-## Steno layer
-
-[![Steno layer for Plover](images/steno-layer.png)](http://www.keyboard-layout-editor.com/#/gists/401ef9a84369e47c57f9aedcf0a0d667)
-
-This is to be used with [Plover](http://www.openstenoproject.org/plover/),
-nothing really fancy here. The **STENO** key toggles the layer on and off, and
-sends the toggle command to Plover too.
-
-## LED states
-
-The primary purpose of the LEDs is to show the modifier status, a secondary, to
-show which layer is active. Each modifier, `Shift`, `Alt` and `Control` each
-have their designated LEDs: the *red*, *green* and *blue*, respectively. When a
-modifier is in a one-shot state, the respective LED will turn on with a dimmer
-light. If the modifier is toggled on, the brightness of the LED turns full.
-
-For the layers, the following rules apply:
-
-* When the [Experimental layer](#experimental-layer) is toggled on, LEDs will
- light up from left to right in a sequence, then turn off. When the layer is
- toggled off, the LEDs light up and turn off in the other direction. No LEDs
- are on while the layer is active.
-* When the [Hungarian layer](#hungarian-layer) is active, the *green* and *blue*
- LEDs are on.
-* When the [Navigation and media layer](#navigation-and-media-layer) is active,
- the *red* and *green* ones are on.
-* When the [One-handed layer](#one-handed-layer) is active, the *green* LED is
- on and bright, and either the *red* or the *blue* one is going to slowly
- blink, depending on the currently active side.
-* For the [Steno layer](#steno-layer), all LEDs will be turned on.
-
-Unless noted otherwise, the layers use a dim light for the LEDs, while modifiers
-use a stronger one, and modifiers override any layer preferences. For example,
-when on the one-handed layer, with the left side active (*red* light blinking),
-if `Shift` is on, the *red* light will be constantly on.
-
-# Building
-
-To make my workflow easier, this layout is maintained in
-[its own repository][algernon:ez-layout]. To build it, you will need the
-[QMK][qmk] firmware checked out, and this repo either checked out to something
-like `keyboards/ergodox_ez/algernon-master`. One way to achieve that is this:
-
- [algernon:ez-layout]: https://github.com/algernon/ergodox-layout
- [qmk]: https://github.com/jackhumbert/qmk_firmware
-
-```
-$ git clone https://github.com/jackhumbert/qmk_firmware.git
-$ cd qmk_firmware
-$ git clone https://github.com/algernon/ergodox-layout.git \
- keyboards/ergodox_ez/keymaps/algernon-master
-$ make KEYBOARD=ergodox_ez KEYMAP=algernon-master
-```
-
-From time to time, updates may be submitted back to the QMK repository. If you
-are reading it there, you can build the firmware like any other firmware
-included with it (assuming you are in the root directory of the firmware):
-
-```
-$ make KEYBOARD=ergodox_ez KEYMAP=algernon
-```
-
-## Using on Windows
-
-The keymap default to forcing NKRO, which seems to upset Windows, and except the
-modifiers, none of them work. If you experience this problem, recompile the
-firmware with `FORCE_NKRO=no` added to the `make` command line.
-
-# Changelog
-
-## v1.2 - 2016-06-22
-
-* The forced NKRO mode can be easily toggled off at compile-time, to make the
- firmware compatible with [certain operating systems](#using-on-windows).
-* The `:;` key has changed behaviour: to access the `;` symbol, the key needs to
- be double-tapped, instead of shifted.
-* The `=` and `\` keys were swapped, `=` moved to the home row, on both the
- [base](#base-layer) and the [experimental](#experimental-layer) layers.
-* The arrow and navigation keys were redone, they are now more accessible, but
- the navigation keys require an extra tap to access.
-* The **Emacs** layer is gone, replaced by a simplified
- [navigation and media](#navigation-and-media-layer) layer.
-* `LEAD v` types the firmware version, and the keymap version.
-* On the [experimental](#experimental-layer) layer, the `L` and `Q`, and the `K`
- and `G` keys were swapped.
-* The [Steno](#steno-layer) layer gained a few more `#` and `*` keys, to make it
- easier on my fingers.
-
-## v1.1 - 2016-06-14
-
-* The keyboard starts in NKRO mode, bootmagic and other things are disabled.
-* A [Steno](#steno-layer) layer was added, to be used with Plover.
-* An [experimental](#experimental-layer) layer was added, something halfway
- between Dvorak and Capewell-Dvorak. A work in progress.
-* `LEAD y` types `\o/`.
-* Some keys on the [Base](#base-layer) layer have been moved around:
- - `?` moved to the left pinky, left of `Q`.
- - `=` shifted one row down, but `F11` stayed where it was.
- - `-` on the left half was replaced by `Tab`.
- - `Tab`'s original position is taken by a `Media Next`/`Media Prev` key.
- - `:` now inputs `;` when shifted.
-* `ESC` cancels the [Hungarian](#hungarian-layer) layer too, not just modifiers.
-
-## v1.0 - 2016-05-26
-
-Initial version.
-
-# License
-
-The layout, being a derivative of the original TMK firmware which is under the
-GPL-2+, this layout is under the GPL as well, but GPL-3+, rather than the older
-version.
diff --git a/keyboards/ergodox_ez/keymaps/algernon/tools/max-focused b/keyboards/ergodox_ez/keymaps/algernon/tools/max-focused
deleted file mode 100755
index 4d5220aa8..000000000
--- a/keyboards/ergodox_ez/keymaps/algernon/tools/max-focused
+++ /dev/null
@@ -1,5 +0,0 @@
-#! /bin/sh
-WIN="$(xdotool getactivewindow)"
-wmctrl -i -r ${WIN} -b remove,maximized_vert,maximized_horz
-xdotool windowsize ${WIN} 100% 100%
-wmctrl -i -r ${WIN} -b add,maximized_vert,maximized_horz
diff --git a/keyboards/ergodox_ez/keymaps/bepo/bepo.png b/keyboards/ergodox_ez/keymaps/bepo/bepo.png
deleted file mode 100644
index 3df7aa609..000000000
--- a/keyboards/ergodox_ez/keymaps/bepo/bepo.png
+++ /dev/null
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/Makefile b/keyboards/ergodox_ez/keymaps/coderkun_neo2/Makefile
deleted file mode 100644
index e7b2d0a65..000000000
--- a/keyboards/ergodox_ez/keymaps/coderkun_neo2/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-UNICODE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.png b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.png
deleted file mode 100644
index 9c561a10a..000000000
--- a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.png
+++ /dev/null
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.txt b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.txt
deleted file mode 100644
index 25731ea2e..000000000
--- a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-[{x:3.5},"#\n3",{x:10.5},"*\n8"],
-[{y:-0.875,x:2.5},"@\n2",{x:1},"$\n4",{x:8.5},"&\n7",{x:1},"(\n9"],
-[{y:-0.875,x:5.5},"%\n5",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc"},"_\n\n\n\n\n\n-","^\n6"],
-[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n~\n\n\n\nShift\n`",{c:"#cccccc"},"!\n1",{x:14.5},")\n0",{c:"#2277ff",w:1.5},"+\n\nSpecial\n\n\n\n=\nShift"],
-[{y:-0.375,x:3.5,c:"#cccccc"},"E",{x:10.5},"I"],
-[{y:-0.875,x:2.5},"W",{x:1},"R",{x:8.5},"U",{x:1},"O"],
-[{y:-0.875,x:5.5},"T",{h:1.5},"{\n\n\n\n\n\n[",{x:4.5,h:1.5},"}\n\n\n\n\n\n]","Y"],
-[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\nTab\n\n\n\nShift",{c:"#cccccc"},"Q",{x:14.5},"P",{c:"#2277ff",w:1.5},"|\n\\\nMedia\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#cccccc"},"D",{x:10.5},"K"],
-[{y:-0.875,x:2.5},"S",{x:1},"F",{x:8.5},"J",{x:1},"L"],
-[{y:-0.875,x:5.5},"G",{x:6.5},"H"],
-[{y:-0.875,c:"#2277ff",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#cccccc"},"A",{x:14.5},":\n;",{c:"#2277ff",w:1.5},"\"\n'\nSymbols\n\n\n\n\nShift"],
-[{y:-0.625,x:6.5,c:"#54d6de",fa:[0,0,0,1],h:1.5},"< Tab\n\n\nShift Tab",{x:4.5,h:1.5},"Tab >\n\n\nTab"],
-[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"],
-[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."],
-[{y:-0.875,x:5.5},"B",{x:6.5},"N"],
-[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#cccccc"},"Z",{x:14.5},"?\n/",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"],
-[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"],
-[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"],
-[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Home","End"],
-[{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"],
-[{x:2},"Page\n\n\n\n\n\nDown"],
-[{r:-30,rx:13,y:-1,x:-3},"Left","Right"],
-[{x:-3},"Up",{h:2},"Enter",{h:2},"Space"],
-[{x:-3},"Down"]
-
diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.png b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.png
deleted file mode 100644
index 99e5ed80b..000000000
--- a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.png
+++ /dev/null
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.txt b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.txt
deleted file mode 100644
index 4eccc9f35..000000000
--- a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-[{x:3.5,c:"#99de2a"},"F13",{x:10.5},"F18"],
-[{y:-0.875,x:2.5},"F12",{x:1},"F14",{x:8.5},"F17",{x:1},"F19"],
-[{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#737373",a:7},"",{c:"#99de2a",a:4},"F16"],
-[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"],
-[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nUpLeft",{x:1},"Mouse\n\n\n\n\n\nUpRgt",{x:8.5,c:"#ffb063"},"Home",{x:1},"Page\n\n\n\n\n\nUp"],
-[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#e6e067"},"Print\n\n\n\n\n\nScreen"],
-[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#e6e067",t:"#000000"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Mail",{c:"#000000",t:"#ff0000",w:1.5},"\n\nMedia\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#ff8500",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"],
-[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"],
-[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nDown",{x:6.5},"Num\n\n\n\n\n\nLock"],
-[{y:-0.875,c:"#2277ff",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#e6e067"},"Sleep",{x:14.5},"My\n\n\n\n\n\nComp",{c:"#2277ff",w:1.5},"\n\nSymbols\n\n\n\n\nShift"],
-[{y:-0.625,x:6.5,c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"],
-[{y:-0.75,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"],
-[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#ffb063"},"End",{x:1},"Page\n\n\n\n\n\nDown"],
-[{y:-0.875,x:5.5,c:"#e6e067"},"Mute",{x:6.5,c:"#737373",a:7},""],
-[{y:-0.875,c:"#2277ff",a:4,w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#737373",a:7},"",{x:14.5},"",{c:"#2277ff",a:4,w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#ff8500"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#ffb063",fa:[0,0,0,1]},"Delete\n\n\nOption"],
-[{y:-0.875,x:2.5,c:"#ff8500"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Insert\n\n\nCmd",{x:1,c:"#77aaff"},"Hyper"],
-[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Crtl\n\n\nRCtrl"],
-[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ccbb00"},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"],
-[{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"],
-[{x:2},"Home\n\n\nBrowser"],
-[{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"],
-[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ccbb00",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"],
-[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nDown"]
-
diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.png b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.png
deleted file mode 100644
index e4de64a96..000000000
--- a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.png
+++ /dev/null
Binary files differ
diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt
deleted file mode 100644
index e199f5c59..000000000
--- a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-[{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"],
-[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"],
-[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"],
-[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"],
-[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"],
-[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"],
-[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#bbddbb"},"!",{x:14.5,c:"#89b087"},"/",{c:"#2277ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#bbddbb"},"(",{x:10.5,c:"#89b087"},"5"],
-[{y:-0.875,x:2.5,c:"#bbddbb"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"],
-[{y:-0.875,x:5.5,c:"#bbddbb"},"`",{x:6.5},"/"],
-[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSymbols\n\n\n\n\nShift"],
-[{y:-0.625,x:6.5,c:"#54d6de",t:"#000000",fa:[0,0,0,1],h:1.5},"Tab >\n\n\nTab",{x:4.5,h:1.5},"< Tab\n\n\nShift Tab"],
-[{y:-0.75,x:3.5,c:"#bbddbb"},"[",{x:10.5,c:"#89b087"},"2"],
-[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"],
-[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"],
-[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#bbddbb"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5,c:"#89b087"},".\n\n\nOption"],
-[{y:-0.875,x:2.5,c:"#77aaff"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#89b087"},"0\n\n\nCmd",{x:1},"=\n\n\nHyper"],
-[{y:-0.75,x:0.5,c:"#77aaff"},"Ctrl\n\n\nLCtrl","Meh",{x:14.5,c:"#89b087"},"+\n\n\nMeh","Enter\n\n\nCtrl"],
-[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Left","Right"],
-[{h:2},"Space",{h:2},"Enter","Up"],
-[{x:2},"Down"],
-[{r:-30,rx:13,y:-1,x:-3},"Home","End"],
-[{x:-3},"Page\n\n\n\n\n\nUp",{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete"],
-[{x:-3},"Page\n\n\n\n\n\nDown"]
-
diff --git a/keyboards/ergodox_ez/keymaps/ordinary/readme.md b/keyboards/ergodox_ez/keymaps/ordinary/readme.md
deleted file mode 100644
index 6465cd79e..000000000
--- a/keyboards/ergodox_ez/keymaps/ordinary/readme.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# The Ordinary Layout, a familiar and powerful layout #
-
-The Ordinary Layout is intended to be unremarkably mundane and remarkably useful. This layout maintains most key positions from common QWERTY keyboards, and it features enhanced Symbol and Media layers compared to the default Ergodox EZ layout.
-
-The Ordinary Layout is supposed to look mostly like a normal keyboard, except in the ways that the Ergodox key arrangement is unique. The thumbs are responsible for space, enter, plus both forward and backward delete; with only a couple exceptions, all other keys are in the same place they are found on traditional keyboards.
-
-Nicholas Keene
-ordinarylayout@nicholaskeene.com
-no rights reserved, use for any purposes, credit me if you are a nice person
-
-## The Base Layout ##
-
-* The light blue keys are modifiers: traditional Control, Option, and Command keys, plus Hyper and Meh
-* The dark blue keys are Shift keys: Capitals Shift (traditional shift), Symbol Shift, and Media Shift; plus a Shift Lock key
-* Several dark blue keys double for entry of characters which would typically be in those locations
-* The turquoise keys are text navigation and manipulation
-* The red keys is Escape and it is always found in that location no matter what
-
-![Ordinary base layout](ordinary-base.png)
-
-This layout puts the modifier keys along the bottom of the keyboard where they are on most keyboards. They are in the regular order, with the addition of Hyper and Meh keys. The modifier keys are all in the same place on all layers, although some layers also assign symbols on those buttons. On the outside edges are the Shift keys. The traditional shift key is called Capitals Shift and it is in the normal location. Above that are Symbols Shift and Media Shift. Each Shift key momentarily switches the layout to that layer, and if you use the Shift Lock button you can lock the layout to that layer.
-
-Touch typists will also find tilde, tab, equals/plus, slash/pipe, and quote/double-quote sharing space on those Shift keys where they would probably be on a common keyboard. Other than the turquoise keys the only buttons which move to new locations are the Brackets and Dash and Escape. Most touch typists dont touch-type brackets or dash anyway so only Escape really requires retraining of muscle memory, and see below for the Special Escape Sequence.
-
-The four big turquoise keys are arranged differently than in the default Ergodox EZ layout. The Ordinary Layout here copies the design of the old Fingerworks TouchStream keyboard, but also reflects the natural presumptions of the author -- me! I type the space character with my right hand, and to me it makes sense for the two delete keys to be next to one another.
-
-The Forward Tab and Backward Tab keys are in their locations mostly because I ended up with two extra buttons and needed something to do with them. My muscle memory from using the Truly Ergonomic Keyboard makes me look for the Tab key with my right index finger, so it is handy to have this redundant Tab, and the idea with the Backward Tab key is that it becomes easy to navigate text fields in forms, or to indent/unindent code.
-
-## The Symbols Layer ##
-
-* The light green keys are the eponymous symbols
-* The bright green keys are F-Keys
-* The dark green keys constitute a number pad
-* The turquoise keys are the *reverse* of the turquoise keys on the base layer
-
-![Ordinary symbol layout](ordinary-symbol.png)
-
-The Ergodox EZ ships with the "Coder Layer" which I like to call the Symbols layer. There are some significant improvements in The Ordinary Layout over the default layout.
-
-The symbol keys are mostly the same as on the default layout, which did a good job in this regard, but with a few enhancements:
-
-* Angle brackets on this layer mean that curly, square, and angle brackets are all available on different layers of the same two buttons. Also, they mean that all kinds of brackets, including parentheses, are available on both the Base and Symbols layers.
-* The slash, backslash, and pipe characters are grouped together as a memory aid.
-* The & and | symbols are juxtaposed as a memory aid
-
-The number pad area here, in green, includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads, because this layout does not use a Num Lock key to switch the buttons between numeric keycodes and navigational keycodes. See the explanation in The Media Layout section about navigation using these same buttons.
-
-Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these are *reversed* from the base layer, with the keys either mirrored or shifted. This is powerful! Often I find myself using the mouse with my right hand, and the left hand needs to press Enter. Instead of reaching the left hand over to the right side of the keyboard, now I simply tap Symbols to reverse the turquoise keys, and Enter is right where it should be.
-
-## The Media Layer ##
-
-* The dark orange keys on the left move the mouse cursor
-* The dark orange keys on the right move the text cursor
-* The light orange keys are for scrolling and paging
-* The bright green keys are more F-keys
-* The dark yellow keys signal Web and Audio applications
-* The light yellow keys signal the operating system
-* The dark gray keys do nothing in case you bump them by accident
-
-![Ordinary media layout](ordinary-media.png)
-
-This layer was inspired by the Media layer on the Ergodox EZ but takes it farther. The Fingerworks TouchStream keyboard had a very useful feature for controlling the text cursor easily and this layer does something similar. The left hand can move the mouse, the right hand moves the text cursor, in all four directions, in small or large increments. This greatly enhances navigation in text documents.
-
-Moreover, the orange keys on the right overlay the numberpad from the Symbols Layer, such that in the Media Layer the same keys can be used as if they were a number pad in navigational mode (Num Lock off). For instance, in traditional number pads the '3' key became 'Page Down', and so it is here. This means a user can do text navigation without moving either hand.
-
-Alas, the yellow keys have at best spotty success with common software. Good luck with those but don't expect too much.
-
-## Switching Between Layers ##
-
-In addition to Symbols and Media there is the Capitals layer which is exactly the same as pressing the shift key. Each layer is accessed by a shift key on each edge of the keyboard and corresponds to one of the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active.
-
-Shift buttons work in the expected way: press them and all of the keys switch to that layer; release them and the keys switch back to the base layer. If you press both of a pair of shift keys, the layer will lock on until you press both shift keys again. For instance, the widely and rightly loathed Caps Lock is engaged by pressing both Capitals Shift buttons. All the Shift keys work this way.
-
-Multiple layers can be turned on at once. The Capitals layer will affect characters on other layers to capitalize. Other layers, however, don't 'mix': Symbols blankets the base layout; Media blankets Symbols.
-
-## Special Sequences ##
-
-![Ordinary special layout](ordinary-special.png)
-
-### Escape ###
-
-The One True Location for the Escape key is segregated way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one is home to the tilde (er, grave) which is commonly found there. In the Ordinary layout the Escape key is found on all layers in the prominent location in the corner next to the 5, whnich is easy to remember, and yet it isn't natural for those of us with muscle memory flicking our wrists up and to the left looking for Escape.
-
-The Ordinary layout offers as a consolation prize a Special sequence for Escape: Special Shift + 1. This is natural so you can tap the top left button, then the button next to it and get Escape. This gesture works in all layers.
-
-### Backspace ###
-
-At the top right corner of the Ergodox EZ you can a gesture similar to the special Escape sequence, using the 0 key, to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times.
-
-### RShift ###
-
-The Ordinary Layout locks layers by pressing both of a pair of shift keys. This interferes with the QMK firmware magic sequence, which is LShift+RShift. To work around this, both of the Capitals Shift keys produce a *Left Shift* keystroke. If for some reason a person needs *Right Shift* they can find it by pressing a Special Shift key, then the Capitals Shift key on the right side of the keyboard.
-
-****
-
-The Ordinary Layout for the Ergodox EZ keyboard, v4
-
-Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com
-
-No rights reserved. This software is in the public domain. Credit me if you are friendly but if you're a jerk don't bother.
-
-Details: readme.md
- https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c
deleted file mode 100644
index a66971bef..000000000
--- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
-#include "ergodox_ez.h"
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = KEYMAP(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5,
- KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_BSLS,
- CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC,
- KC_F1, KC_F2, KC_F3, KC_F4, KC_LGUI,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_LALT,
- //
- /*-*/ KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
- /*-*/ KC_NO, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS,
- /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT,
- /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- /*-*/ /*-*/ /*-*/ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
- KC_MPLY, KC_MNXT,
- KC_MPRV,
- KC_RALT, KC_QUOT, KC_SPC
- )
-};
-
-const uint16_t PROGMEM fn_actions[] = {
-};
-
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
- return MACRO_NONE;
-};
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-};
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md
deleted file mode 100644
index 80475ab21..000000000
--- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# Roman's Layout
-
-There is only one layer based on [Norman layout](https://normanlayout.info/).
-
-Looking for multiple-layer layouts?
-
-- [Symbols, arrows, plover, HJKL arrows](../romanzolotarev-norman-plover-osx-hjkl/)
-- [Same with IJKL arrows](../romanzolotarev-norman-plover-osx/)
-
-[![keyboard-layout](romanzolotarev-norman-osx.png)](http://www.keyboard-layout-editor.com/#/gists/9e89d54f1ea6eeeb7dab1b2d19d28195)
-
-## Functional Keys
-
-- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/).
-- Tap `F2` to copy screenshot to the clipboard.
-- Hold `SHIFT` and tap `F2` to save screenshot as a file.
-- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/).
-
-## CTRL/ESC
-
-CTRL and ESC are frequently used in Vim.
-
-- Tap `CTRL/ESC` to send `ESC`.
-- Hold `CTRL/ESC` to use as `CTRL`.
-
-## Activate N-rollover
-
-- Hold left `SHIFT` and right `SHIRT` and then tap `N`.
diff --git a/keyboards/ergodox_ez/readme.md b/keyboards/ergodox_ez/readme.md
deleted file mode 100644
index 67a5fb095..000000000
--- a/keyboards/ergodox_ez/readme.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# Getting started
-
-There are two main ways you could customize the ErgoDox EZ.
-
-## The Easy Way: Use an existing firmware file and just flash it
-
-1. Download and install the [Teensy Loader](https://www.pjrc.com/teensy/loader.html). Some Linux distributions already provide a binary (may be called `teensy-loader-cli`), so you may prefer to use this.
-2. Find a firmware file you like. You can find a few if these in the keymaps subdirectory right here. The file you need ends with .hex, and you can look at its .c counterpart (or its PNG image) to see what you'll be getting. You can also use the [Massdrop configurator](https://keyboard-configurator.massdrop.com/ext/ergodox) to create a firmware Hex file you like.
-3. Download the firmware file
-4. Connect the keyboard, press its Reset button (gently insert a paperclip into the hole in the top-right corner) and flash it using the Teensy loader you installed on step 1 and the firmware you downloaded.
-
-## More technical: create your own totally custom firmware by editing the source files.
-
-This requires a little bit of familiarity with coding.
-
-1. Go to https://github.com/jackhumbert/qmk_firmware and read the readme at the base of this repository, top to bottom. Then come back here :)
-2. Clone the repository (download it)
-3. Set up a build environment as per [the build guide](/doc/BUILD_GUIDE.md)
- - Using a Mac and have homebrew? just run `brew tap osx-cross/avr && brew install avr-libc`
-4. Copy `keyboards/ergodox_ez/keymaps/default/keymap.c` into `keymaps/your_name/keymap.c` (for example, `keymaps/german/keymap.c`)
-5. Edit this file, changing keycodes to your liking (see "Finding the keycodes you need" below). Try to edit the comments as well, so the "text graphics" represent your layout correctly. See below for more tips on sharing your work.
-6. Compile your firmware by running `make keymap=your_name`. For example, `make keymap=german`. This will result in a hex file, which will be called `ergodox_ez_your_name.hex`, e.g. `ergodox_ez_german.hex`.
-6. Flash this hex file using the [Teensy loader](https://www.pjrc.com/teensy/loader.html) as described in step 4 in the "Easy Way" above. If you prefer you can automatically flash the hex file after successfull build by running `make teensy keymap=your_name`.
-7. Submit your work as a pull request to this repository, so others can also use it. :) See below on specifics.
-
-Good luck! :)
-
-## Contributing your keymap
-
-The ErgoDox EZ firmware is open-source, so it would be wonderful to have your contribution! Within a very short time after launching we already amassed almost 20 user-contributed keymaps, with all sorts of creative improvements and tweaks. This is very valuable for people who aren't comfortable coding, but do want to customize their ErgoDox EZ. To make it easy for these people to use your layout, I recommend submitting your PR in the following format.
-
-1. All work goes inside your keymap subdirectory (`keymaps/german` in this example).
-2. `keymap.c` - this is your actual keymap file; please update the ASCII comments in the file so they correspond with what you did.
-3. `readme.md` - a readme file, which GitHub would display by default when people go to your directory. Explain what's different about your keymap, what you tweaked or how it works. No specific format to follow, just communicate what you did. :)
-4. Any graphics you wish to add. This is absolutely not a must. If you feel like it, you can use [Keyboard Layout Editor](http://keyboard-layout-editor.com) to make something and grab a screenshot, but it's really not a must. If you do have graphics, your readme can just embed the graphic as a link, just like I did with the default layout.
-
-
-## Finding the keycodes you need
-
-Let's say you want a certain key in your layout to send a colon; to figure out what keycode to use to make it do that, you're going to need `quantum/keymap_common.h`.
-
-That file contains a big list of all of the special, fancy keys (like, being able to send % on its own and whatnot).
-
-If you want to send a plain vanilla key, you can look up its code under `doc/keycode.txt`. That's where all the boring keys hang out.
diff --git a/keyboards/gh60/Makefile b/keyboards/gh60/Makefile
index 39a9cc0ae..57b2ef62e 100644
--- a/keyboards/gh60/Makefile
+++ b/keyboards/gh60/Makefile
@@ -1,74 +1,3 @@
-
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
-# Build Options
-# comment out to disable the options.
-#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= 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
-KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
-NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
-# MIDI_ENABLE ?= YES # MIDI controls
-# UNICODE_ENABLE ?= YES # Unicode
-# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
-
-
-ifndef QUANTUM_DIR
- include ../../Makefile
-endif
-
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif
diff --git a/keyboards/gh60/config.h b/keyboards/gh60/config.h
index 4813c4e78..97753bc06 100644
--- a/keyboards/gh60/config.h
+++ b/keyboards/gh60/config.h
@@ -1,161 +1,161 @@
-/*
-Copyright 2012 Jun Wako <wakojun@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 0x6060
-#define DEVICE_VER 0x0001
-#define MANUFACTURER geekhack
-#define PRODUCT GH60
-#define DESCRIPTION t.m.k. keyboard firmware for GH60
-
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 14
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
- #define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
-// Rev A
-// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 }
-// Rev B/C
- #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
-#define UNUSED_PINS
-
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
-
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCING_DELAY 5
-
-/* define if matrix has ghost (lacks anti-ghosting diodes) */
-//#define MATRIX_HAS_GHOST
-
-/* number of backlight levels */
-#define BACKLIGHT_LEVELS 3
-
-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
-#define LOCKING_SUPPORT_ENABLE
-/* Locking resynchronize hack */
-#define LOCKING_RESYNC_ENABLE
-
-/*
- * Force NKRO
- *
- * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
- * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
- * makefile for this to work.)
- *
- * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
- * until the next keyboard reset.
- *
- * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
- * fully operational during normal computer usage.
- *
- * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
- * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
- * bootmagic, NKRO mode will always be enabled until it is toggled again during a
- * power-up.
- *
- */
-//#define FORCE_NKRO
-
-/*
- * Magic Key Options
- *
- * Magic keys are hotkey commands that allow control over firmware functions of
- * the keyboard. They are best used in combination with the HID Listen program,
- * found here: https://www.pjrc.com/teensy/hid_listen.html
- *
- * The options below allow the magic key functionality to be changed. This is
- * useful if your keyboard/keypad is missing keys and you want magic key support.
- *
- */
-
-/* key combination for magic key command */
-#define IS_COMMAND() ( \
- keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
-)
-
-/* control how magic key switches layers */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
-
-/* override magic key keymap */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
-//#define MAGIC_KEY_HELP1 H
-//#define MAGIC_KEY_HELP2 SLASH
-//#define MAGIC_KEY_DEBUG D
-//#define MAGIC_KEY_DEBUG_MATRIX X
-//#define MAGIC_KEY_DEBUG_KBD K
-//#define MAGIC_KEY_DEBUG_MOUSE M
-//#define MAGIC_KEY_VERSION V
-//#define MAGIC_KEY_STATUS S
-//#define MAGIC_KEY_CONSOLE C
-//#define MAGIC_KEY_LAYER0_ALT1 ESC
-//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
-//#define MAGIC_KEY_LAYER0 0
-//#define MAGIC_KEY_LAYER1 1
-//#define MAGIC_KEY_LAYER2 2
-//#define MAGIC_KEY_LAYER3 3
-//#define MAGIC_KEY_LAYER4 4
-//#define MAGIC_KEY_LAYER5 5
-//#define MAGIC_KEY_LAYER6 6
-//#define MAGIC_KEY_LAYER7 7
-//#define MAGIC_KEY_LAYER8 8
-//#define MAGIC_KEY_LAYER9 9
-//#define MAGIC_KEY_BOOTLOADER PAUSE
-//#define MAGIC_KEY_LOCK CAPS
-//#define MAGIC_KEY_EEPROM E
-//#define MAGIC_KEY_NKRO N
-//#define MAGIC_KEY_SLEEP_LED Z
-
-/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
- */
-
-/* disable debug print */
-//#define NO_DEBUG
-
-/* disable print */
-//#define NO_PRINT
-
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
-#endif
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER geekhack
+#define PRODUCT GH60
+#define DESCRIPTION t.m.k. keyboard firmware for GH60
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+ #define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
+// Rev A
+// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 }
+// Rev B/C
+ #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/gh60/gh60.c b/keyboards/gh60/gh60.c
index 255d87de9..f5a158e12 100644
--- a/keyboards/gh60/gh60.c
+++ b/keyboards/gh60/gh60.c
@@ -1,25 +1,25 @@
-#include "gh60.h"
-
-void led_set_kb(uint8_t usb_led) {
- // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
-
- if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
- gh60_caps_led_on();
- } else {
- gh60_caps_led_off();
- }
-
- // if (usb_led & (1<<USB_LED_NUM_LOCK)) {
- // gh60_esc_led_on();
- // } else {
- // gh60_esc_led_off();
- // }
-
- // if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
- // gh60_fn_led_on();
- // } else {
- // gh60_fn_led_off();
- // }
-
- led_set_user(usb_led);
-}
+#include "gh60.h"
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ gh60_caps_led_on();
+ } else {
+ gh60_caps_led_off();
+ }
+
+ // if (usb_led & (1<<USB_LED_NUM_LOCK)) {
+ // gh60_esc_led_on();
+ // } else {
+ // gh60_esc_led_off();
+ // }
+
+ // if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
+ // gh60_fn_led_on();
+ // } else {
+ // gh60_fn_led_off();
+ // }
+
+ led_set_user(usb_led);
+}
diff --git a/keyboards/gh60/gh60.h b/keyboards/gh60/gh60.h
index ca30562a4..99ccf1757 100644
--- a/keyboards/gh60/gh60.h
+++ b/keyboards/gh60/gh60.h
@@ -1,74 +1,75 @@
-#ifndef GH60_H
-#define GH60_H
-
-#include "quantum.h"
-#include "led.h"
-
-/* GH60 LEDs
- * GPIO pads
- * 0 F7 WASD LEDs
- * 1 F6 ESC LED
- * 2 F5 FN LED
- * 3 F4 POKER Arrow LEDs
- * B2 Capslock LED
- * B0 not connected
- */
-inline void gh60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
-inline void gh60_poker_leds_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); }
-inline void gh60_fn_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); }
-inline void gh60_esc_led_on(void) { DDRF |= (1<<6); PORTF &= ~(1<<6); }
-inline void gh60_wasd_leds_on(void) { DDRF |= (1<<7); PORTF &= ~(1<<7); }
-
-inline void gh60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
-inline void gh60_poker_leds_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
-inline void gh60_fn_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); }
-inline void gh60_esc_led_off(void) { DDRF &= ~(1<<6); PORTF &= ~(1<<6); }
-inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); }
-
-/* GH60 keymap definition macro
- * K2C, K31 and K3C are extra keys for ISO
- */
-#define KEYMAP( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
-) { \
- { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \
- { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \
- { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D }, \
- { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D }, \
- { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \
-}
-
-/* ANSI valiant. No extra keys for ISO */
-#define KEYMAP_ANSI( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
- K40, K41, K42, K45, K4A, K4B, K4C, K4D \
-) KEYMAP( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
- K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, NO, K3D, \
- K40, K41, K42, K45, NO, K4A, K4B, K4C, K4D \
-)
-
-#define KEYMAP_HHKB( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \
- K40, K41, K42, K45, K4A, K4B, K4C, K4D \
-) KEYMAP( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
- K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
-)
-
-#endif
+#ifndef GH60_H
+#define GH60_H
+
+#include "quantum.h"
+#include "led.h"
+
+/* GH60 LEDs
+ * GPIO pads
+ * 0 F7 WASD LEDs
+ * 1 F6 ESC LED
+ * 2 F5 FN LED
+ * 3 F4 POKER Arrow LEDs
+ * B2 Capslock LED
+ * B0 not connected
+ */
+inline void gh60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
+inline void gh60_poker_leds_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); }
+inline void gh60_fn_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); }
+inline void gh60_esc_led_on(void) { DDRF |= (1<<6); PORTF &= ~(1<<6); }
+inline void gh60_wasd_leds_on(void) { DDRF |= (1<<7); PORTF &= ~(1<<7); }
+
+inline void gh60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
+inline void gh60_poker_leds_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
+inline void gh60_fn_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); }
+inline void gh60_esc_led_off(void) { DDRF &= ~(1<<6); PORTF &= ~(1<<6); }
+inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); }
+
+/* GH60 keymap definition macro
+ * K2C, K31 and K3C are extra keys for ISO
+ */
+#define KEYMAP( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
+ { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D } \
+}
+
+/* ANSI variant. No extra keys for ISO */
+#define KEYMAP_ANSI( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
+ K40, K41, K42, K45, K4A, K4B, K4C, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D }, \
+ { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D } \
+}
+
+/* HHKB Variant */
+#define KEYMAP_HHKB( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \
+ K40, K41, K42, K45, K4A, K4B, K4C, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
+ { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D } \
+}
+
+#endif \ No newline at end of file
diff --git a/keyboards/gh60/keymaps/dbroqua/Makefile b/keyboards/gh60/keymaps/dbroqua/Makefile
new file mode 100644
index 000000000..f1644a8e4
--- /dev/null
+++ b/keyboards/gh60/keymaps/dbroqua/Makefile
@@ -0,0 +1,112 @@
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device.
+# Please customize your programmer settings(PROGRAM_CMD)
+#
+# make teensy = Download the hex file to the device, using teensy_loader_cli.
+# (must have teensy_loader_cli installed).
+#
+# make dfu = Download the hex file to the device, using dfu-programmer (must
+# have dfu-programmer installed).
+#
+# make flip = Download the hex file to the device, using Atmel FLIP (must
+# have Atmel FLIP installed).
+#
+# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
+# (must have dfu-programmer installed).
+#
+# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
+# (must have Atmel FLIP installed).
+#
+# make debug = Start either simulavr or avarice as specified for debugging,
+# with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+# bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= 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
+KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
+NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
+# MIDI_ENABLE ?= YES # MIDI controls
+# UNICODE_ENABLE ?= YES # Unicode
+# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= yes # Enable RGB Underglow
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
+
diff --git a/keyboards/gh60/keymaps/dbroqua/config.h b/keyboards/gh60/keymaps/dbroqua/config.h
new file mode 100644
index 000000000..75ccec097
--- /dev/null
+++ b/keyboards/gh60/keymaps/dbroqua/config.h
@@ -0,0 +1,187 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER geekhack
+#define PRODUCT GH60
+#define DESCRIPTION t.m.k. keyboard firmware for GH60
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
+#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * 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
+
+/*
+ * RGB Underglow
+ * These settings are for the F4 by default:
+ *
+ *
+ * #define ws2812_PORTREG PORTF
+ * #define ws2812_DDRREG DDRF
+ * #define ws2812_pin PF4
+ * #define RGBLED_NUM 14 // Number of LEDs
+ * #define RGBLIGHT_HUE_STEP 10
+ * #define RGBLIGHT_SAT_STEP 17
+ * #define RGBLIGHT_VAL_STEP 17
+ *
+ * The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects.
+ * To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations.
+ * For details, please check this keymap. keyboard/planck/keymaps/yang/keymap.c
+*/
+
+/* Deprecated code below
+#define ws2812_PORTREG PORTF
+#define ws2812_DDRREG DDRF
+#define ws2812_pin PF4
+*/
+#define RGB_DI_PIN F4
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 11 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#endif
diff --git a/keyboards/gh60/keymaps/dbroqua/keymap.c b/keyboards/gh60/keymaps/dbroqua/keymap.c
new file mode 100644
index 000000000..be88edc09
--- /dev/null
+++ b/keyboards/gh60/keymaps/dbroqua/keymap.c
@@ -0,0 +1,198 @@
+#include "gh60.h"
+#include "action_layer.h"
+#include "rgblight.h"
+
+#define _DEFAULT 0
+#define _FN 1
+#define _WASD 2
+#define _SFX 3
+
+//bool esc_led_on;
+
+enum planck_keycodes {
+ DEFAULT = SAFE_RANGE
+};
+
+// Fillers to make layering more clear
+#define ______ KC_TRNS
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Qwerty gui/alt/space/alt/gui
+ * ,-----------------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
+ * |-----------------------------------------------------------------------------------------+
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
+ * |-----------------------------------------------------------------------------------------+
+ * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
+ * |-----------------------------------------------------------------------------------------+
+ * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
+ * |-----------------------------------------------------------------------------------------+
+ * |LGUI | LAlt | Space | RAlt |RGUI |
+ * `-----------------------------------------------------------------'
+ */
+ [_DEFAULT] = KEYMAP_HHKB( /* Basic QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), \
+ ______, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, ______, ______ \
+ ),
+
+/* FN Layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
+ * |-----------------------------------------------------------------------------------------+
+ * | CAPS | | | | | | | | Psc | Slck| Paus| Up | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Prev| Play| Next| | | + | - | End |PgDn| Down| | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | Stop | |
+ * `-----------------------------------------------------------------'
+ */
+ [_FN] = KEYMAP_HHKB( /* Layer 1 */
+ TG(_SFX),KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \
+ KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \
+ ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,______, \
+ ______, KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ______, ______, \
+ ______, ______, ______, TG(_WASD), KC_MSTP, ______, ______, ______ \
+ ),
+
+/* WASD Layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | Up | | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Left| Down|Right| | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | |
+ * `-----------------------------------------------------------------'
+ */
+ [_WASD] = KEYMAP_HHKB( /* Layer 2 */
+ ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
+ ______, ______, KC_UP, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
+ ______, KC_LEFT, KC_DOWN,KC_RGHT,______, ______, ______, ______, ______, ______, ______, ______, ______, \
+ ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,______, \
+ ______, ______, ______, ______, ______, ______, ______, ______ \
+ ),
+
+/* SFX Layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | BL- | BL+ | BL | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | RGBT| RGBM| | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Hue+| Hue-| Sat+| Sat-| Val+| Val-| | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | |
+ * `-----------------------------------------------------------------'
+ */
+ [_SFX] = KEYMAP_HHKB(
+ ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
+ ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
+ ______, F(0), F(1), ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
+ ______, F(2), F(3), F(4), F(5), F(6), F(7), ______, ______, ______, ______, ______, ______, \
+ ______, ______, ______, ______, ______, ______, ______, ______ \
+ )
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ return MACRO_NONE;
+};
+
+enum function_id {
+ RGBLED_TOGGLE,
+ RGBLED_STEP_MODE,
+ RGBLED_INCREASE_HUE,
+ RGBLED_DECREASE_HUE,
+ RGBLED_INCREASE_SAT,
+ RGBLED_DECREASE_SAT,
+ RGBLED_INCREASE_VAL,
+ RGBLED_DECREASE_VAL
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_FUNCTION(RGBLED_TOGGLE),
+ [1] = ACTION_FUNCTION(RGBLED_STEP_MODE),
+ [2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
+ [3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
+ [4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
+ [5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
+ [6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
+ [7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL)
+};
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ switch (id) {
+ case RGBLED_TOGGLE:
+ if (record->event.pressed) {
+ rgblight_toggle();
+ }
+ break;
+ case RGBLED_INCREASE_HUE:
+ if (record->event.pressed) {
+ rgblight_increase_hue();
+ }
+ break;
+ case RGBLED_DECREASE_HUE:
+ if (record->event.pressed) {
+ rgblight_decrease_hue();
+ }
+ break;
+ case RGBLED_INCREASE_SAT:
+ if (record->event.pressed) {
+ rgblight_increase_sat();
+ }
+ break;
+ case RGBLED_DECREASE_SAT:
+ if (record->event.pressed) {
+ rgblight_decrease_sat();
+ }
+ break;
+ case RGBLED_INCREASE_VAL:
+ if (record->event.pressed) {
+ rgblight_increase_val();
+ }
+ break;
+ case RGBLED_DECREASE_VAL:
+ if (record->event.pressed) {
+ rgblight_decrease_val();
+ }
+ break;
+ case RGBLED_STEP_MODE:
+ if (record->event.pressed) {
+ rgblight_step();
+ }
+ break;
+ }
+}
+
+void matrix_scan_user(void) {
+ uint32_t layer = layer_state;
+
+ if (layer & (1<<1)) {
+ gh60_fn_led_on();
+ } else {
+ gh60_fn_led_off();
+ }
+
+ if (layer & (1<<2)) {
+ gh60_wasd_leds_on();
+ } else {
+ gh60_wasd_leds_off();
+ }
+
+ if (layer & (1<<3)) {
+ gh60_esc_led_on();
+ } else {
+ gh60_esc_led_off();
+ }
+}; \ No newline at end of file
diff --git a/keyboards/gh60/keymaps/default/keymap.c b/keyboards/gh60/keymaps/default/keymap.c
index 3622be41b..92f545984 100644
--- a/keyboards/gh60/keymaps/default/keymap.c
+++ b/keyboards/gh60/keymaps/default/keymap.c
@@ -4,25 +4,25 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: qwerty */
KEYMAP(
- ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, GRV, \
- TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \
- CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,NO, ENT, \
- LSFT,FN1, Z, X, C, V, B, N, M, COMM,DOT, SLSH,FN0, RSFT, \
- LCTL,LGUI,LALT, SPC, BSLS,RALT,RGUI,APP, RCTL),
+ KC_ESC,KC_1,KC_2,KC_3,KC_4,KC_5,KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINS,KC_EQL,KC_GRV,\
+ KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_LBRC,KC_RBRC,KC_BSPC,\
+ KC_CAPS,KC_A,KC_S,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_SCLN,KC_QUOT,KC_NO,KC_ENT,\
+ KC_LSFT,F(1),KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH,F(0),KC_RSFT,\
+ KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_BSLS,KC_RALT,KC_RGUI,KC_APP,KC_RCTL),
/* 1: fn */
KEYMAP(
- ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
- TRNS,TRNS,UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS),
+ KC_ESC,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_F12,KC_TRNS,\
+ KC_TRNS,KC_TRNS,KC_UP,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_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,\
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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),
/* 2: arrows */
KEYMAP(
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,UP, \
- TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,LEFT,DOWN,RGHT),
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,\
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,\
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,\
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_UP,\
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT),
};
const uint16_t PROGMEM fn_actions[] = {
@@ -49,7 +49,7 @@ void matrix_scan_user(void) {
//Layer LED indicators
uint32_t layer = layer_state;
-
+
if (layer & (1<<1)) {
gh60_wasd_leds_on();
gh60_fn_led_on();
@@ -57,7 +57,7 @@ void matrix_scan_user(void) {
gh60_wasd_leds_off();
gh60_fn_led_off();
}
-
+
if (layer & (1<<2)) {
gh60_poker_leds_on();
gh60_esc_led_on();
@@ -65,5 +65,5 @@ void matrix_scan_user(void) {
gh60_poker_leds_off();
gh60_esc_led_off();
}
-
+
};
diff --git a/keyboards/gh60/keymaps/robotmaxtron/Makefile b/keyboards/gh60/keymaps/robotmaxtron/Makefile
index 2e69aee29..c73cf1141 100644
--- a/keyboards/gh60/keymaps/robotmaxtron/Makefile
+++ b/keyboards/gh60/keymaps/robotmaxtron/Makefile
@@ -1,112 +1,112 @@
-#----------------------------------------------------------------------------
-# On command line:
-#
-# make all = Make software.
-#
-# make clean = Clean out built project files.
-#
-# make coff = Convert ELF to AVR COFF.
-#
-# make extcoff = Convert ELF to AVR Extended COFF.
-#
-# make program = Download the hex file to the device.
-# Please customize your programmer settings(PROGRAM_CMD)
-#
-# make teensy = Download the hex file to the device, using teensy_loader_cli.
-# (must have teensy_loader_cli installed).
-#
-# make dfu = Download the hex file to the device, using dfu-programmer (must
-# have dfu-programmer installed).
-#
-# make flip = Download the hex file to the device, using Atmel FLIP (must
-# have Atmel FLIP installed).
-#
-# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
-# (must have dfu-programmer installed).
-#
-# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
-# (must have Atmel FLIP installed).
-#
-# make debug = Start either simulavr or avarice as specified for debugging,
-# with avr-gdb or avr-insight as the front end for debugging.
-#
-# make filename.s = Just compile filename.c into the assembler code only.
-#
-# make filename.i = Create a preprocessed source file for use in submitting
-# bug reports to the GCC project.
-#
-# To rebuild project do "make clean" then "make all".
-#----------------------------------------------------------------------------
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
-# Build Options
-# comment out to disable the options.
-#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= 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
-KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
-NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
-# MIDI_ENABLE ?= YES # MIDI controls
-# UNICODE_ENABLE ?= YES # Unicode
-# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE ?= yes # Enable RGB Underglow
-
-ifndef QUANTUM_DIR
- include ../../../../Makefile
-endif
-
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device.
+# Please customize your programmer settings(PROGRAM_CMD)
+#
+# make teensy = Download the hex file to the device, using teensy_loader_cli.
+# (must have teensy_loader_cli installed).
+#
+# make dfu = Download the hex file to the device, using dfu-programmer (must
+# have dfu-programmer installed).
+#
+# make flip = Download the hex file to the device, using Atmel FLIP (must
+# have Atmel FLIP installed).
+#
+# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
+# (must have dfu-programmer installed).
+#
+# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
+# (must have Atmel FLIP installed).
+#
+# make debug = Start either simulavr or avarice as specified for debugging,
+# with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+# bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= 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
+KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
+NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
+# MIDI_ENABLE ?= YES # MIDI controls
+# UNICODE_ENABLE ?= YES # Unicode
+# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= yes # Enable RGB Underglow
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
+
diff --git a/keyboards/gh60/keymaps/robotmaxtron/config.h b/keyboards/gh60/keymaps/robotmaxtron/config.h
index 8272875ed..bcd753461 100644
--- a/keyboards/gh60/keymaps/robotmaxtron/config.h
+++ b/keyboards/gh60/keymaps/robotmaxtron/config.h
@@ -1,190 +1,190 @@
-/*
-Copyright 2012 Jun Wako <wakojun@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 0x6060
-#define DEVICE_VER 0x0001
-#define MANUFACTURER geekhack
-#define PRODUCT GH60
-#define DESCRIPTION t.m.k. keyboard firmware for GH60
-
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 14
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
- #define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
-// Rev A
-// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 }
-// Rev B/C
- #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
-#define UNUSED_PINS
-
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
-
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCING_DELAY 5
-
-/* define if matrix has ghost (lacks anti-ghosting diodes) */
-//#define MATRIX_HAS_GHOST
-
-/* number of backlight levels */
-#define BACKLIGHT_LEVELS 3
-
-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
-#define LOCKING_SUPPORT_ENABLE
-/* Locking resynchronize hack */
-#define LOCKING_RESYNC_ENABLE
-
-/*
- * Force NKRO
- *
- * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
- * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
- * makefile for this to work.)
- *
- * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
- * until the next keyboard reset.
- *
- * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
- * fully operational during normal computer usage.
- *
- * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
- * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
- * bootmagic, NKRO mode will always be enabled until it is toggled again during a
- * power-up.
- *
- */
-//#define FORCE_NKRO
-
-/*
- * Magic Key Options
- *
- * Magic keys are hotkey commands that allow control over firmware functions of
- * the keyboard. They are best used in combination with the HID Listen program,
- * found here: https://www.pjrc.com/teensy/hid_listen.html
- *
- * The options below allow the magic key functionality to be changed. This is
- * useful if your keyboard/keypad is missing keys and you want magic key support.
- *
- */
-
-/* key combination for magic key command */
-#define IS_COMMAND() ( \
- keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
-)
-
-/* control how magic key switches layers */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
-
-/* override magic key keymap */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
-//#define MAGIC_KEY_HELP1 H
-//#define MAGIC_KEY_HELP2 SLASH
-//#define MAGIC_KEY_DEBUG D
-//#define MAGIC_KEY_DEBUG_MATRIX X
-//#define MAGIC_KEY_DEBUG_KBD K
-//#define MAGIC_KEY_DEBUG_MOUSE M
-//#define MAGIC_KEY_VERSION V
-//#define MAGIC_KEY_STATUS S
-//#define MAGIC_KEY_CONSOLE C
-//#define MAGIC_KEY_LAYER0_ALT1 ESC
-//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
-//#define MAGIC_KEY_LAYER0 0
-//#define MAGIC_KEY_LAYER1 1
-//#define MAGIC_KEY_LAYER2 2
-//#define MAGIC_KEY_LAYER3 3
-//#define MAGIC_KEY_LAYER4 4
-//#define MAGIC_KEY_LAYER5 5
-//#define MAGIC_KEY_LAYER6 6
-//#define MAGIC_KEY_LAYER7 7
-//#define MAGIC_KEY_LAYER8 8
-//#define MAGIC_KEY_LAYER9 9
-//#define MAGIC_KEY_BOOTLOADER PAUSE
-//#define MAGIC_KEY_LOCK CAPS
-//#define MAGIC_KEY_EEPROM E
-//#define MAGIC_KEY_NKRO N
-//#define MAGIC_KEY_SLEEP_LED Z
-
-/*
- * 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
-
-/*
- * RGB Underglow
- * These settings are for the F4 by default:
- *
- *
- * #define ws2812_PORTREG PORTF
- * #define ws2812_DDRREG DDRF
- * #define ws2812_pin PF4
- * #define RGBLED_NUM 14 // Number of LEDs
- * #define RGBLIGHT_HUE_STEP 10
- * #define RGBLIGHT_SAT_STEP 17
- * #define RGBLIGHT_VAL_STEP 17
- *
- * The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects.
- * To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations.
- * For details, please check this keymap. keyboard/planck/keymaps/yang/keymap.c
-*/
-
-/* Deprecated code below
-#define ws2812_PORTREG PORTF
-#define ws2812_DDRREG DDRF
-#define ws2812_pin PF4
-*/
-#define RGB_DI_PIN F4
-#define RGBLIGHT_TIMER
-#define RGBLED_NUM 8 // Number of LEDs
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
-#endif
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER geekhack
+#define PRODUCT GH60
+#define DESCRIPTION t.m.k. keyboard firmware for GH60
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+ #define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
+// Rev A
+// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 }
+// Rev B/C
+ #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * 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
+
+/*
+ * RGB Underglow
+ * These settings are for the F4 by default:
+ *
+ *
+ * #define ws2812_PORTREG PORTF
+ * #define ws2812_DDRREG DDRF
+ * #define ws2812_pin PF4
+ * #define RGBLED_NUM 14 // Number of LEDs
+ * #define RGBLIGHT_HUE_STEP 10
+ * #define RGBLIGHT_SAT_STEP 17
+ * #define RGBLIGHT_VAL_STEP 17
+ *
+ * The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects.
+ * To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations.
+ * For details, please check this keymap. keyboard/planck/keymaps/yang/keymap.c
+*/
+
+/* Deprecated code below
+#define ws2812_PORTREG PORTF
+#define ws2812_DDRREG DDRF
+#define ws2812_pin PF4
+*/
+#define RGB_DI_PIN F4
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 8 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#endif
diff --git a/keyboards/gh60/keymaps/robotmaxtron/keymap.c b/keyboards/gh60/keymaps/robotmaxtron/keymap.c
index 263eec4e5..9acac7cec 100644
--- a/keyboards/gh60/keymaps/robotmaxtron/keymap.c
+++ b/keyboards/gh60/keymaps/robotmaxtron/keymap.c
@@ -8,9 +8,9 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
- * Base layer, pretty standard ANSI layout.
+ * Base layer, pretty standard ANSI layout.
* ,-----------------------------------------------------------.
- * |FN12| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
+ * |F(12)| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
* |-----------------------------------------------------------|
@@ -22,13 +22,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------'
*/
[_BL] = KEYMAP(
- FN12,1,2,3,4,5,6,7,8,9,0,MINS,EQL,BSPC, \
- TAB,Q,W,E,R,T,Y,U,I,O,P,LBRC,RBRC,BSLS, \
- FN2,A,S,D,F,G,H,J,K,L,SCLN,QUOT,NO,ENT, \
- LSFT,NO,Z,X,C,V,B,N,M,COMM,DOT,SLSH,NO,RSFT, \
- LCTL,LGUI,LALT, SPC, NO,RALT,FN0,APP, RCTL),
-
- /*
+ F(12),KC_1,KC_2,KC_3,KC_4,KC_5,KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINS,KC_EQL,KC_BSPC, \
+ KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_LBRC,KC_RBRC,KC_BSLS, \
+ F(2),KC_A,KC_S,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_SCLN,KC_QUOT,KC_NO,KC_ENT, \
+ KC_LSFT,KC_NO,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_NO,KC_RSFT, \
+ KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_NO,KC_RALT,F(0),KC_APP,KC_RCTL),
+
+ /*
* Locking arrow keys to WASD for when you need dedicated arrow keys
* ,-----------------------------------------------------------.
* | | | | | | | | | | | | | | |
@@ -43,14 +43,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------'
*/
[_AL] = KEYMAP(
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,TRNS,UP,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,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_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \
+ KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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),
- /*
+ /*
* Primary function layer, mostly the same as the traditional Pok3r layout.
* ,-------------------------------------------------------------.
* |`~ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12|DEL |
@@ -65,15 +65,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-------------------------------------------------------------'
*/
[_FL] = KEYMAP(
- GRAVE,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12, DELETE, \
- TRNS,FN1,TRNS,TRNS,TRNS,TRNS,CALC,PGUP,UP,PGDN,PSCR,SLCK,PAUS,TRNS, \
- TRNS,MUTE,_VOLDOWN,_VOLUP,TRNS,TRNS,HOME,LEFT,DOWN,RGHT,INS,TRNS,TRNS,TRNS, \
- TRNS,TRNS,FN3,TRNS,TRNS,TRNS,TRNS,END,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS),
-
- /*
+ KC_GRAVE,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_F12,KC_DELETE, \
+ KC_TRNS,F(1),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_CALC,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,KC_SLCK,KC_PAUS,KC_TRNS, \
+ KC_TRNS,KC_MUTE,KC__VOLDOWN,KC__VOLUP,KC_TRNS,KC_TRNS,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_INS,KC_TRNS,KC_TRNS,KC_TRNS, \
+ KC_TRNS,KC_TRNS,F(3),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_END,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),
+
+ /*
* Locking layer for controlling the underglow.
- *
+ *
* ,-----------------------------------------------------------.
* | | | | | | | | | | | | | | |
* |-----------------------------------------------------------|
@@ -87,11 +87,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------'
*/
[_UL] = KEYMAP(
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,FN4,FN5,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,TRNS,TRNS,FN6,FN7,FN8,FN9,FN10,FN11,TRNS,TRNS,TRNS,TRNS,TRNS, \
- TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS),
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \
+ KC_TRNS,F(4),F(5),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \
+ KC_TRNS,KC_TRNS,KC_TRNS,F(6),F(7),F(8),F(9),F(10),F(11),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),
};
enum function_id {
@@ -124,7 +124,7 @@ 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
+ // MACRODOWN only works in this function
switch(id) {
case 0:
if (record->event.pressed) {
diff --git a/keyboards/gh60/keymaps/sethbc/Makefile b/keyboards/gh60/keymaps/sethbc/Makefile
new file mode 100644
index 000000000..457a3d01d
--- /dev/null
+++ b/keyboards/gh60/keymaps/sethbc/Makefile
@@ -0,0 +1,3 @@
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/gh60/keymaps/sethbc/keymap.c b/keyboards/gh60/keymaps/sethbc/keymap.c
new file mode 100644
index 000000000..599e664e2
--- /dev/null
+++ b/keyboards/gh60/keymaps/sethbc/keymap.c
@@ -0,0 +1,76 @@
+#include "gh60.h"
+#include "action_layer.h"
+
+#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* 0: qwerty */
+ KEYMAP_HHKB(
+ F(0),KC_1,KC_2,KC_3,KC_4,KC_5,KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINS,KC_EQL,KC_BSLS,KC_GRV,\
+ KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_LBRC,KC_RBRC,KC_BSPC,\
+ KC_LCTL,KC_A,KC_S,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_SCLN,KC_QUOT,KC_ENT,\
+ KC_LSFT,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_RSFT,F(1),\
+ KC_LCTL,KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT,KC_APP,KC_RCTL),
+ /* 1: fn */
+ KEYMAP_HHKB(
+ KC_GRV,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_F12,KC_TRNS,KC_TRNS,\
+ KC_CAPS,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_VOLD,KC_VOLU,KC_MUTE,KC_TRNS,KC_TRNS,KC_PAST,KC_PSLS,KC_HOME,KC_PGUP,KC_LEFT,KC_RIGHT,KC_PENT,\
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PPLS,KC_PMNS,KC_END,KC_PGDN,KC_DOWN,KC_TRNS,KC_TRNS,\
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS),
+};
+
+enum function_id {
+ SHIFT_ESC,
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_FUNCTION(SHIFT_ESC),
+ [1] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay
+};
+
+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;
+};
+
+void matrix_scan_user(void) {
+
+}
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ static uint8_t shift_esc_shift_mask;
+ switch (id) {
+ case SHIFT_ESC:
+ shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
+ if (record->event.pressed) {
+ if (shift_esc_shift_mask) {
+ add_key(KC_GRV);
+ send_keyboard_report();
+ } else {
+ add_key(KC_ESC);
+ send_keyboard_report();
+ }
+ } else {
+ if (shift_esc_shift_mask) {
+ del_key(KC_GRV);
+ send_keyboard_report();
+ } else {
+ del_key(KC_ESC);
+ send_keyboard_report();
+ }
+ }
+ break;
+ }
+}
diff --git a/keyboards/gh60/pinout.txt b/keyboards/gh60/pinout.txt
index 3787f938e..e9bf1983a 100644
--- a/keyboards/gh60/pinout.txt
+++ b/keyboards/gh60/pinout.txt
@@ -1,18 +1,18 @@
- /* Column pin configuration
- * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
- * pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C)
- */
-
- /* Row pin configuration
- * row: 0 1 2 3 4
- * pin: D0 D1 D2 D3 D5
- */
-
- GPIO pads
- 0 F7 WASD LEDs
- 1 F6 ESC LED
- 2 F5 FN LED
- 3 F4 POKER Arrow LEDs
-
- B2 Capslock LED
+ /* Column pin configuration
+ * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
+ * pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C)
+ */
+
+ /* Row pin configuration
+ * row: 0 1 2 3 4
+ * pin: D0 D1 D2 D3 D5
+ */
+
+ GPIO pads
+ 0 F7 WASD LEDs
+ 1 F6 ESC LED
+ 2 F5 FN LED
+ 3 F4 POKER Arrow LEDs
+
+ B2 Capslock LED
B0 not connected \ No newline at end of file
diff --git a/keyboards/gh60/readme.md b/keyboards/gh60/readme.md
index 92302d507..8c744bfd3 100644
--- a/keyboards/gh60/readme.md
+++ b/keyboards/gh60/readme.md
@@ -1,60 +1,62 @@
-## gh60 Rev C keyboard firmware
-
-![gh60 Rev C PCB](gh60revc.jpg)
-
- /* Column pin configuration
- * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
- * pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C)
- */
-
- /* Row pin configuration
- * row: 0 1 2 3 4
- * pin: D0 D1 D2 D3 D5
- */
-
- GPIO pads
- 0 F7 WASD LEDs
- 1 F6 ESC LED
- 2 F5 FN LED
- 3 F4 POKER Arrow LEDs
-
- B2 Capslock LED
- B0 not connected
-
-Functions to controls LED clusters
-
- gh60_caps_led_on()
- gh60_poker_leds_on()
- gh60_fn_led_on()
- gh60_esc_led_on()
- gh60_wasd_leds_on()
-
- gh60_caps_led_off()
- gh60_poker_leds_off()
- gh60_fn_led_off()
- gh60_esc_led_off()
- gh60_wasd_leds_off()
-
-======================
-
-## Quantum MK Firmware
-
-For the full Quantum feature list, see [the parent readme.md](/readme.md).
-
-## Building
-
-Download or clone the whole firmware and navigate to the keyboards/gh60_rev_c folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
-
-Depending on which keymap you would like to use, you will have to compile slightly differently.
-
-### Default
-To build with the default keymap, simply run `make`.
-
-### Other Keymaps
-Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files.
-
-To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
-```
-$ make KEYMAP=[default|jack|<name>]
-```
-Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
+## gh60 Rev C keyboard firmware
+
+![gh60 Rev C PCB](gh60revc.jpg)
+
+ /* Column pin configuration
+ * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
+ * pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C)
+ */
+
+ /* Row pin configuration
+ * row: 0 1 2 3 4
+ * pin: D0 D1 D2 D3 D5
+ */
+
+ GPIO pads
+ 0 F7 WASD LEDs
+ 1 F6 ESC LED
+ 2 F5 FN LED
+ 3 F4 POKER Arrow LEDs
+
+ B2 Capslock LED
+ B0 not connected
+
+Functions to controls LED clusters
+
+ gh60_caps_led_on()
+ gh60_poker_leds_on()
+ gh60_fn_led_on()
+ gh60_esc_led_on()
+ gh60_wasd_leds_on()
+
+ gh60_caps_led_off()
+ gh60_poker_leds_off()
+ gh60_fn_led_off()
+ gh60_esc_led_off()
+ gh60_wasd_leds_off()
+
+======================
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent readme.md](/readme.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/gh60_rev_c folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+To build with the default keymap, simply run `make default`.
+
+### Other Keymaps
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
+```
+$ make [default|jack|<name>]
+```
+
+Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboards/gh60/rules.mk b/keyboards/gh60/rules.mk
new file mode 100644
index 000000000..aba680e45
--- /dev/null
+++ b/keyboards/gh60/rules.mk
@@ -0,0 +1,66 @@
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= 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
+KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
+NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
+# MIDI_ENABLE ?= YES # MIDI controls
+# UNICODE_ENABLE ?= YES # Unicode
+# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/gonnerd/Makefile b/keyboards/gonnerd/Makefile
new file mode 100644
index 000000000..57b2ef62e
--- /dev/null
+++ b/keyboards/gonnerd/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif
diff --git a/keyboards/gonnerd/config.h b/keyboards/gonnerd/config.h
new file mode 100644
index 000000000..cad8fe586
--- /dev/null
+++ b/keyboards/gonnerd/config.h
@@ -0,0 +1,43 @@
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER GON
+#define PRODUCT NerD
+#define DESCRIPTION QMK port for the GON Nerd PCB
+
+/* key matrix size */
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 9
+
+/* backlight */
+#define BACKLIGHT_PIN B7
+#define BACKLIGHT_LEVELS 3
+
+/* matrix pins */
+#define MATRIX_ROW_PINS { B4, E2, F4, F7, F1, F6, C6, F5, D7, C7 }
+#define MATRIX_COL_PINS { E6, B0, B1, B2, B3, F0, D0, D5, D1 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+#endif
diff --git a/keyboards/gonnerd/gonnerd.c b/keyboards/gonnerd/gonnerd.c
new file mode 100644
index 000000000..f25d3a85f
--- /dev/null
+++ b/keyboards/gonnerd/gonnerd.c
@@ -0,0 +1 @@
+#include "gonnerd.h"
diff --git a/keyboards/gonnerd/gonnerd.h b/keyboards/gonnerd/gonnerd.h
new file mode 100644
index 000000000..e5070328e
--- /dev/null
+++ b/keyboards/gonnerd/gonnerd.h
@@ -0,0 +1,42 @@
+#ifndef GONNERD_H
+#define GONNERD_H
+
+#include "quantum.h"
+
+#define KEYMAP_TKL( \
+ K08, K09, K18, K19, K28, K29, K38, K39, K48, K49, K58, K59, K68, K69, K88, K89, \
+ K00, K01, K10, K11, K20, K21, K30, K31, K40, K41, K50, K51, K60, K61, K80, K81, K84, \
+ K02, K03, K12, K13, K22, K23, K32, K33, K42, K43, K52, K53, K62, K63, K82, K83, K85, \
+ K04, K14, K15, K24, K25, K34, K35, K44, K45, K54, K55, K64, K71, K65, \
+ K07, K79, K16, K17, K26, K27, K36, K37, K46, K47, K56, K57, K66, K67, K86, \
+ K06, K05, K78, K70, K72, K73, K74, K75, K76, K77, K87 \
+) \
+{ \
+ { K00, K10, K20, K30, K40, K50, K60, K70, K80 }, \
+ { K01, K11, K21, K31, K41, K51, K61, K71, K81 }, \
+ { K02, K12, K22, K32, K42, K52, K62, K72, K82 }, \
+ { K03, K13, K23, K33, K43, K53, K63, K73, K83 }, \
+ { K04, K14, K24, K34, K44, K54, K64, K74, K84 }, \
+ { K05, K15, K25, K35, K45, K55, K65, K75, K85 }, \
+ { K06, K16, K26, K36, K46, K56, K66, K76, K86 }, \
+ { K07, K17, K27, K37, K47, K57, K67, K77, K87 }, \
+ { K08, K18, K28, K38, K48, K58, K68, K78, K88 }, \
+ { K09, K19, K29, K39, K49, K59, K69, K79, K89 } \
+}
+
+#define KEYMAP_60( \
+ K08, K01, K10, K11, K20, K21, K30, K31, K40, K41, K50, K51, K60, K61, \
+ K02, K03, K12, K13, K22, K23, K32, K33, K42, K43, K52, K53, K62, K63, \
+ K04, K14, K15, K24, K25, K34, K35, K44, K45, K54, K55, K64, K71, K65, \
+ K07, K79, K16, K17, K26, K27, K36, K37, K46, K47, K56, K57, K66, K67, \
+ K06, K05, K78, K70, K72, K73, K74, K75 \
+) KEYMAP_TKL( \
+ K08, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
+ KC_NO, K01, K10, K11, K20, K21, K30, K31, K40, K41, K50, K51, K60, K61, KC_NO, KC_NO, KC_NO, \
+ K02, K03, K12, K13, K22, K23, K32, K33, K42, K43, K52, K53, K62, K63, KC_NO, KC_NO, KC_NO, \
+ K04, K14, K15, K24, K25, K34, K35, K44, K45, K54, K55, K64, K71, K65, \
+ K07, K79, K16, K17, K26, K27, K36, K37, K46, K47, K56, K57, K66, K67, KC_NO, \
+ K06, K05, K78, K70, K72, K73, K74, K75, KC_NO, KC_NO, KC_NO \
+)
+
+#endif
diff --git a/keyboards/gonnerd/keymaps/default/Makefile b/keyboards/gonnerd/keymaps/default/Makefile
new file mode 100644
index 000000000..772d7aee3
--- /dev/null
+++ b/keyboards/gonnerd/keymaps/default/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/gonnerd/keymaps/default/keymap.c b/keyboards/gonnerd/keymaps/default/keymap.c
new file mode 100644
index 000000000..d74f949dc
--- /dev/null
+++ b/keyboards/gonnerd/keymaps/default/keymap.c
@@ -0,0 +1,26 @@
+#include "gonnerd.h"
+
+#define __x__ KC_NO
+
+// Keymap layers
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = KEYMAP_60( /* Base */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, __x__, KC_ENT, \
+ KC_LSFT, __x__, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, __x__, \
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL \
+ ),
+
+ [1] = KEYMAP_60( /* System layer to have access to RESET button */
+ RESET, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
+ __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
+ __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
+ __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
+ __x__, __x__, __x__, __x__, __x__, __x__, KC_TRNS, __x__ \
+ ),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
diff --git a/keyboards/gonnerd/keymaps/mauin/Makefile b/keyboards/gonnerd/keymaps/mauin/Makefile
new file mode 100644
index 000000000..772d7aee3
--- /dev/null
+++ b/keyboards/gonnerd/keymaps/mauin/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/gonnerd/keymaps/mauin/keymap.c b/keyboards/gonnerd/keymaps/mauin/keymap.c
new file mode 100644
index 000000000..5979a7ca4
--- /dev/null
+++ b/keyboards/gonnerd/keymaps/mauin/keymap.c
@@ -0,0 +1,108 @@
+#include "gonnerd.h"
+
+// Keymap layers
+#define BASE_LAYER 0
+#define FUNCTION_LAYER 1
+#define SYSTEM_LAYER 2
+
+// Key aliases
+#define __x__ KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Layer 0: Default Layer
+ * ,-----------------------------------------------------------.
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| = | BSp |
+ * |-----------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
+ * |-----------------------------------------------------------|
+ * |Funct | A| S| D| F| G| H| J| K| L| ;| '|Enter |
+ * |-----------------------------------------------------------|
+ * |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift |
+ * |-----------------------------------------------------------'
+ * | Ctl|Alt|Gui | Space |Gui |Alt| F2| Ctl |
+ * `-----------------------------------------------------------'
+ */
+ [BASE_LAYER] = KEYMAP_60(
+ F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
+ MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, __x__, KC_ENT, \
+ KC_LSFT, __x__, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, __x__, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(2), KC_RCTL \
+ ),
+
+ /* Layer 1: Function Layer
+ * ,-----------------------------------------------------------.
+ * | | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11| F12| Del |
+ * |-----------------------------------------------------------|
+ * | |Prv|Ply|Nxt| | |Pg^|Hme|Up |End| |Br-|Br+| |
+ * |-----------------------------------------------------------|
+ * |Hold |Mte|Vl-|Vl+| | |Pgv|Lft|Dwn|Rgt| | | |
+ * |-----------------------------------------------------------|
+ * | | | | | | | | | | | | |
+ * |-----------------------------------------------------------'
+ * | | | | | | | | |
+ * `-----------------------------------------------------------'
+ */
+ [FUNCTION_LAYER] = KEYMAP_60(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
+ __x__, KC_MPRV, KC_MPLY, KC_MNXT, __x__, __x__, KC_PGUP, KC_HOME, KC_UP, KC_END, __x__, KC_SLCK, KC_PAUS, __x__, \
+ KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, __x__, __x__, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, __x__, __x__, __x__, __x__, \
+ KC_LSFT, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, __x__, __x__, __x__, __x__ \
+ ),
+
+ /* Layer 2: System Layer
+ * ,-----------------------------------------------------------.
+ * |Reset| | | | | | | | | | | | | |
+ * |-----------------------------------------------------------|
+ * | | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------|
+ * | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------|
+ * | | | | | | | | | | | | |
+ * |-----------------------------------------------------------'
+ * | | | | | | | | |
+ * `-----------------------------------------------------------'
+ */
+ [SYSTEM_LAYER] = KEYMAP_60(
+ RESET, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
+ __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
+ __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
+ __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
+ __x__, __x__, __x__, __x__, __x__, __x__, KC_TRNS, __x__ \
+ ),
+};
+
+enum function_id {
+ ESC_GRV, // Makes Esc behave like `~ when pressed with the left GUI modifier. This is the "switch between windows of the same application" key combination in macOS
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_FUNCTION(ESC_GRV),
+};
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ static uint8_t esc_grv_mask;
+ switch (id) {
+ case ESC_GRV:
+ esc_grv_mask = get_mods() & MOD_BIT(KC_LGUI);
+ if (record->event.pressed) {
+ if (esc_grv_mask) {
+ add_key(KC_GRV);
+ send_keyboard_report();
+ } else {
+ add_key(KC_ESC);
+ send_keyboard_report();
+ }
+ } else {
+ if (esc_grv_mask) {
+ del_key(KC_GRV);
+ send_keyboard_report();
+ } else {
+ del_key(KC_ESC);
+ send_keyboard_report();
+ }
+ }
+ break;
+ }
+}
diff --git a/keyboards/gonnerd/keymaps/mauin/readme.md b/keyboards/gonnerd/keymaps/mauin/readme.md
new file mode 100644
index 000000000..63be7c392
--- /dev/null
+++ b/keyboards/gonnerd/keymaps/mauin/readme.md
@@ -0,0 +1,5 @@
+# Mauin's keymap for the GON NerD
+
+This layout is based on a Pok3r style layout with a standard base layer.
+
+Function layers provide access to navigation and media keys.
diff --git a/keyboards/gonnerd/readme.md b/keyboards/gonnerd/readme.md
new file mode 100644
index 000000000..807df308a
--- /dev/null
+++ b/keyboards/gonnerd/readme.md
@@ -0,0 +1,38 @@
+GON NerD keyboard firmware
+======================
+
+## Changing Bootloader
+
+It's not possible to simply flash this firmware on the GON NerD keyboard as the original bootloader does not support DFU connections.
+
+It is possible to change the bootloader of the GON NerD with an ISP programmer. A guide on how to change the bootloader on your GON NerD can be found here:
+[Converting NerD60 to TMK](https://deskthority.net/wiki/Converting_NerD60_to_TMK). After changing the bootloader you can flash your QMK keymap onto the keyboard.
+
+_After changing the bootloader on your GON NerD PCB you will not be able to go back to the original firmware and the official configuration software will
+not work anymore. You will lose your warranty and official support from GON!_
+
+## Reset button
+
+To run the `make dfu` command to flash keymaps onto the board, you need to put the board into DFU mode. As the GON NerD PCBs do not have a reset button on the board to put it into DFU mode, be sure to include a `RESET` button on your keymap. Otherwise you'll have to unscrew your keyboard from the case and short the GND and RST pins.
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/gonnerd folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+
+To build with the default keymap, simply run `make default`.
+
+### Other Keymaps
+
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
+```
+$ make [default|jack|<name>]
+```
+
+Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboards/gonnerd/rules.mk b/keyboards/gonnerd/rules.mk
new file mode 100644
index 000000000..c9b584d54
--- /dev/null
+++ b/keyboards/gonnerd/rules.mk
@@ -0,0 +1,66 @@
+# MCU name
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 8000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+ # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+ # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= no # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no # Audio output on port C6
diff --git a/keyboards/handwired/CMD60/CMD60.c b/keyboards/handwired/CMD60/CMD60.c
new file mode 100644
index 000000000..799848e34
--- /dev/null
+++ b/keyboards/handwired/CMD60/CMD60.c
@@ -0,0 +1,8 @@
+#include "CMD60.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+}
diff --git a/keyboards/handwired/CMD60/CMD60.h b/keyboards/handwired/CMD60/CMD60.h
new file mode 100644
index 000000000..f90871fc7
--- /dev/null
+++ b/keyboards/handwired/CMD60/CMD60.h
@@ -0,0 +1,20 @@
+#ifndef CMD60_H
+#define CMD60_H
+
+#include "quantum.h"
+
+#define KEYMAP( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K40, K41, K42, K45, K4A, K4B, K4C, K4D \
+ ) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
+ { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO,K4A, K4B, K4C, K4D } \
+}
+
+#endif \ No newline at end of file
diff --git a/keyboards/handwired/CMD60/Makefile b/keyboards/handwired/CMD60/Makefile
new file mode 100644
index 000000000..191c6bb66
--- /dev/null
+++ b/keyboards/handwired/CMD60/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/handwired/CMD60/README.md b/keyboards/handwired/CMD60/README.md
new file mode 100644
index 000000000..83e371543
--- /dev/null
+++ b/keyboards/handwired/CMD60/README.md
@@ -0,0 +1,35 @@
+CMD60 keyboard firmware
+======================
+
+##CMD60
+
+This layout has been designed to optimize use of the left-hand, and it focussed specifically on programmers who work
+with text editors like SublimeText and Atom. It utilizes the power of Space_fn, and features a caps lock swap for Fn2
+and enter key on tap. These features allow you to keep your right hand on the mouse more and should enable you to
+achieve a higher level of productivity if you take the time to learn its function layers.
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/handwired/CMD60 folder.
+Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use
+the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+
+To build with the default keymap, simply run `make`.
+
+### Other Keymaps
+
+To build the firmware binary hex file with a keymap just do `make` with `keymap` option like:
+
+```
+$ make keymap=[default|jack|<name>]
+```
+
+Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/`
diff --git a/keyboards/handwired/CMD60/config.h b/keyboards/handwired/CMD60/config.h
new file mode 100644
index 000000000..27eb400b8
--- /dev/null
+++ b/keyboards/handwired/CMD60/config.h
@@ -0,0 +1,162 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER cmd
+#define PRODUCT CMD60
+#define DESCRIPTION Advanced Programming Keeb Layout
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { F0, F4, F5, F6, F7 }
+#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D0, D1, D2, D3, C6, D7, B4, B5, B6 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/handwired/CMD60/keymaps/default/keymap.c b/keyboards/handwired/CMD60/keymaps/default/keymap.c
new file mode 100644
index 000000000..9f9cbcd66
--- /dev/null
+++ b/keyboards/handwired/CMD60/keymaps/default/keymap.c
@@ -0,0 +1,66 @@
+#include "CMD60.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = KEYMAP( /* CMD60 - QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
+ LT(3, KC_ENT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_NO, KC_RSFT, \
+ KC_LCTL, KC_LGUI, KC_LALT, LT(2, KC_SPC), MO(3), MO(4), MO(5), TG(1) \
+ ),
+ [1] = KEYMAP( /* CMD60 - GameMode */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \
+ KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_RSFT, \
+ KC_TRNS, KC_NO, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \
+ ),
+ [2] = KEYMAP( /* CMD60 - Arrows */
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
+ KC_TRNS, KC_BSPC, KC_UP, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_UP, KC_DEL, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, \
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \
+ ),
+ [3] = KEYMAP( /* CMD60 - Functions */
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
+ KC_AUDIO_MUTE, KC_BSPC, KC_PGUP, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_PAUSE, KC_SLCK, KC_PSCREEN, \
+ KC_TRNS, KC_HOME, KC_PGDN, KC_END, KC_TRNS, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_INSERT, KC_NO, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \
+ ),
+ [4] = KEYMAP( /* CMD60 - Mouse */
+ KC_SYSTEM_SLEEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_NO, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_WH_UP, KC_MS_BTN3, KC_MS_WH_DOWN, KC_NO, KC_NO, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \
+ ),
+ [5] = KEYMAP( /* CMD60 - Media */
+ KC_SYSTEM_WAKE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, KC_MEDIA_PLAY_PAUSE, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WWW_BACK, KC_WWW_FORWARD, KC_NO, KC_NO, KC_WWW_REFRESH, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \
+ ),
+};
+
+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/keyboards/handwired/CMD60/rules.mk b/keyboards/handwired/CMD60/rules.mk
new file mode 100644
index 000000000..711759917
--- /dev/null
+++ b/keyboards/handwired/CMD60/rules.mk
@@ -0,0 +1,73 @@
+
+# MCU name
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=512
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= no # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no # Audio output on port C6
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif
+
+
diff --git a/keyboards/handwired/Makefile b/keyboards/handwired/Makefile
index 57493a47c..4e2a6f00f 100644
--- a/keyboards/handwired/Makefile
+++ b/keyboards/handwired/Makefile
@@ -1,3 +1,3 @@
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
endif \ No newline at end of file
diff --git a/keyboards/handwired/fivethirteen/Makefile b/keyboards/handwired/fivethirteen/Makefile
index 711759917..191c6bb66 100644
--- a/keyboards/handwired/fivethirteen/Makefile
+++ b/keyboards/handwired/fivethirteen/Makefile
@@ -1,73 +1,3 @@
-
-# MCU name
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=512
-
-
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
-# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-NKRO_ENABLE ?= no # USB Nkey Rollover
-BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE ?= no # MIDI controls
-UNICODE_ENABLE ?= no # Unicode
-BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
-AUDIO_ENABLE ?= no # Audio output on port C6
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../../Makefile
-endif
-
-
+endif \ No newline at end of file
diff --git a/keyboards/handwired/fivethirteen/rules.mk b/keyboards/handwired/fivethirteen/rules.mk
new file mode 100644
index 000000000..711759917
--- /dev/null
+++ b/keyboards/handwired/fivethirteen/rules.mk
@@ -0,0 +1,73 @@
+
+# MCU name
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=512
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= no # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no # Audio output on port C6
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif
+
+
diff --git a/keyboards/handwired/gamenum/Makefile b/keyboards/handwired/gamenum/Makefile
new file mode 100644
index 000000000..191c6bb66
--- /dev/null
+++ b/keyboards/handwired/gamenum/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/handwired/gamenum/README.md b/keyboards/handwired/gamenum/README.md
new file mode 100644
index 000000000..5b53004ef
--- /dev/null
+++ b/keyboards/handwired/gamenum/README.md
@@ -0,0 +1,102 @@
+GameNum firmware
+======================
+## Board overview
+
+The GameNum was designed to facilitate the use of mechanical keys for gaming even when your packing space is limited.
+It uses a standard numpad layout replacing the NumLock key with a layer toggle that allows you to cycle through the different layers.
+The standard layout features a default layer that acts as a standard numpad, a layer that was meant for simple WASD based games and a layer that was designed to be used for MOBA/RTS related games.
+The RTS layer is meant to be used rotating the device 90 degrees counterclockwise.
+
+The README.MD for this board is reasonably extensive and in-depth because the build is quite small and covers a lot of things that I feel that it would be a good starting point for getting into QMK.
+
+## Build considerations
+
+Since the GameNum is handwired and uses 2 of its pins to toggle indicator lights there are some things to keep in mind.
+Firmware was build for use with a Pro Micro based on a ATMEGA32u4 at 16mHz.
+The indicator LED's are normally assigned to `pin C6` and `pin D4`, C6 goes high when the first layer is used, D4 goes high when layer 2 is used. Both LED's are off when the default layer is enabled.
+'+' of the LED goes to the respective pins and can be joined together on the '-' into a resistor that runs to the ground pin of the pro micro. With a standard LED a resistor value of 100 ohm is fine, keep in mind that you cannot use high powered LEDS on these pins without ruining your pro micro.
+
+## schematic of the switches and diodes
+
+![schematic overview](http://i.imgur.com/fleitoA.jpg)
+
+Keep in mind that the minus of the diodes should point towards the pro micros inputs.
+
+##LED hookup
+
+![led overview](http://i.imgur.com/U6m865n.jpg)
+
+## Adding more layers
+
+Adding additional layers is pretty straight forward. Look in `keymaps/default/keymap.c` and find `#define OSY 2` add a new definition for the layer you are going to add. This can be named pretty much anything. Example: `#define NAMEHERE 3`.
+Keep in mind here that the number after the name should correspond with the number that the layer has in the stack of layers.
+
+Next thing to do is to add the actual layer for the keymap.
+
+```
+[DEF] = KEYMAP(
+ KC_FN0, KC_SLSH, KC_ASTR, KC_MINS, \
+ KC_7, KC_8, KC_9, KC_PLUS, \
+ KC_4, KC_5, KC_6, \
+ KC_1, KC_2, KC_3, \
+ KC_0, KC_DOT, KC_ENT \
+)
+```
+
+This is the default layer for the gamenum. It's generally easiest to just copy this and change things as you see fit. Keep in mind that at least 1 button on the pad has to be used to switch to the next layer in the stack or you will be stuck in that layer FOREVER! D:
+In the case of DEF this is key `KC_FN0`. Also keep in mind that the last layer that you add does not have a comma after its closing bracket but any other layer does!
+
+Which brings us nicely to the next part, the layer switching logic. Under the keymaps look for `PROGMEM fn_actions[]` this function handles the switching between layers, as you might have noticed every layer in the keymap has its own KC_FNx key. This is the key responsible for switching you from layer to layer.
+The number that is at the end of the keycode corresponds with the code in the function.
+`[0] = ACTION_LAYER_SET(HDN, ON_PRESS),` When `KC_FN0` is pressed the keyboard switches layer `HDN` on when the key is pressed down. Add an extra line for your layer here as well.
+
+Now for the LEDs, if you plan on adding extra LED's to the keyboard to indicate other layers you have to first define the pin that the LED will be using in `gamenum.c`.
+Look for this piece of code:
+
+```
+ DDRD |= (1<<4);
+ PORTD &= ~(1<<4);
+```
+
+Copy it and change the letter after DDR and PORT to the letter of your pin. Change the 4 to the number of your pin. `DDRx |= (1<<y);` defines that pin as an output. `PORTx &= ~(1<<y);` sets the pin to LOW turning off the LED.
+
+Now go back to `keymap.c` and look for the `process_record_user` function. The function is basically a switch case that checks if you pushed one of the defined layer-switch buttons. When it sees that you pushed one of them it sets the pins of the LED's either low or high.
+
+```
+ case KC_FN1:
+ if (record->event.pressed) {
+ PORTC &= ~(1 << 6); // PC6 goes low
+ PORTD |= (1<<4); //PD4 goes high
+ }
+ break;
+```
+
+This is the code for the KC_FN1 button. Notice how we check against what key is pressed in the case and then set pin C6 low and pin D4 high. Adjust this as you see fit.
+
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/handwired/gamenum folder.
+Read the README.md for the qmk repository on how to set up your developer enviroment to build your firmware with.
+Building firmware on Windows can be a bit of a hassle. Linux is a lot easier to use if you have some experience with it. A raspberry pi will already be able to build the firmware for you.
+Once your dev env is set up, you'll be able to type `make` to generate your .hex - you can then use AVRDudess to program your .hex file.
+
+### Default
+
+To build with the default keymap, simply run `make`.
+
+### Other Keymaps
+
+To build the firmware binary hex file with a keymap just do `make` with `keymap` option like:
+
+```
+$ make keymap=[default|jack|<name>]
+```
+
+Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/`
+
+
diff --git a/keyboards/handwired/gamenum/config.h b/keyboards/handwired/gamenum/config.h
new file mode 100644
index 000000000..6af876ab7
--- /dev/null
+++ b/keyboards/handwired/gamenum/config.h
@@ -0,0 +1,162 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x1234
+#define PRODUCT_ID 0x5678
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Seth-Senpai
+#define PRODUCT GameNum
+#define DESCRIPTION Numpad with gamelayers
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 4
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { B6, B2, B3, B1, F7 }
+#define MATRIX_COL_PINS { D7, E6, B4, B5 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION ROW2COL
+
+// #define BACKLIGHT_PIN C6
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/handwired/gamenum/gamenum.c b/keyboards/handwired/gamenum/gamenum.c
new file mode 100644
index 000000000..8048194bb
--- /dev/null
+++ b/keyboards/handwired/gamenum/gamenum.c
@@ -0,0 +1,14 @@
+#include "gamenum.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+ DDRC |= (1<<6);
+ PORTC &= ~(1<<6);
+
+ DDRD |= (1<<4);
+ PORTD &= ~(1<<4);
+
+ matrix_init_user();
+
+}
diff --git a/keyboards/handwired/gamenum/gamenum.h b/keyboards/handwired/gamenum/gamenum.h
new file mode 100644
index 000000000..ea633b9bf
--- /dev/null
+++ b/keyboards/handwired/gamenum/gamenum.h
@@ -0,0 +1,21 @@
+#ifndef GAMENUM_H
+#define GAMENUM_H
+
+#include "quantum.h"
+
+#define KEYMAP( \
+ k00, k01, k02, k03, \
+ k10, k11, k12, k13, \
+ k20, k21, k22, \
+ k30, k31, k32, \
+ k41, k42, k43 \
+) \
+{ \
+ { k00, k01, k02, k03}, \
+ { k10, k11, k12, k13}, \
+ { k20, k21, k22, KC_NO}, \
+ { k30, k31, k32, KC_NO}, \
+ { KC_NO, k41, k42, k43} \
+}
+
+#endif
diff --git a/keyboards/handwired/gamenum/keymaps/default/keymap.c b/keyboards/handwired/gamenum/keymaps/default/keymap.c
new file mode 100644
index 000000000..6950b741a
--- /dev/null
+++ b/keyboards/handwired/gamenum/keymaps/default/keymap.c
@@ -0,0 +1,68 @@
+#include "gamenum.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+
+#define _______ KC_TRNS
+
+#define DEF 0
+#define HDN 1
+#define OSY 2
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[DEF] = KEYMAP(
+ KC_FN0, KC_SLSH, KC_ASTR, KC_MINS, \
+ KC_7, KC_8, KC_9, KC_PLUS, \
+ KC_4, KC_5, KC_6, \
+ KC_1, KC_2, KC_3, \
+ KC_0, KC_DOT, KC_ENT \
+),
+[HDN] = KEYMAP(
+ KC_FN1, KC_1, KC_2, KC_3, \
+ KC_Q, KC_W, KC_E, KC_R, \
+ KC_A, KC_S, KC_D, \
+ KC_Z, KC_X, KC_C, \
+ KC_LSFT, KC_LALT, KC_SPC \
+),
+[OSY] = KEYMAP(
+ KC_A, KC_Q, KC_1, KC_FN2, \
+ KC_S, KC_W, KC_2, KC_LALT, \
+ KC_D, KC_E, KC_3, \
+ KC_F, KC_R, KC_4, \
+ KC_SPC, KC_T, KC_TAB \
+)
+};
+
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_SET(HDN, ON_PRESS),
+ [1] = ACTION_LAYER_SET(OSY, ON_PRESS),
+ [2] = ACTION_LAYER_SET(DEF, ON_PRESS),
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ return MACRO_NONE;
+};
+
+
+bool process_record_user (uint16_t keycode, keyrecord_t *record) {
+ switch(keycode) {
+ case KC_FN0:
+ if (record->event.pressed) {
+ PORTC |= (1 << 6); // PC6 goes high
+ }
+ break;
+ case KC_FN1:
+ if (record->event.pressed) {
+ PORTC &= ~(1 << 6); // PC6 goes high
+ PORTD |= (1<<4);
+ }
+ break;
+ case KC_FN2:
+ if (record->event.pressed) {
+ PORTD &= ~(1 << 4); // PC6 goes high
+ }
+ break;
+ }
+ return true;
+} \ No newline at end of file
diff --git a/keyboards/handwired/gamenum/rules.mk b/keyboards/handwired/gamenum/rules.mk
new file mode 100644
index 000000000..afb9372e1
--- /dev/null
+++ b/keyboards/handwired/gamenum/rules.mk
@@ -0,0 +1,73 @@
+
+# MCU name
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=512
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= no # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no # Audio output on port C6
+
+ifndef QUANTUM_DIR
+ include ../../Makefile
+endif
+
+
diff --git a/keyboards/handwired/minorca/Makefile b/keyboards/handwired/minorca/Makefile
new file mode 100644
index 000000000..191c6bb66
--- /dev/null
+++ b/keyboards/handwired/minorca/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/handwired/minorca/config.h b/keyboards/handwired/minorca/config.h
new file mode 100644
index 000000000..4cdafcbd2
--- /dev/null
+++ b/keyboards/handwired/minorca/config.h
@@ -0,0 +1,80 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6660
+#define DEVICE_VER 0x0001
+#define MANUFACTURER ME
+#define PRODUCT MinOrca
+#define DESCRIPTION Tiny Whale
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+/* MinOrca PCB default pin-out */
+#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, F7, F6, F5, F4, F1, F0 }
+#define MATRIX_ROW_PINS { B0, B1, B2, B3 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/handwired/minorca/keymaps/default/Makefile b/keyboards/handwired/minorca/keymaps/default/Makefile
new file mode 100644
index 000000000..a573488a5
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/default/Makefile
@@ -0,0 +1,25 @@
+
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../../Makefile
+endif
diff --git a/keyboards/handwired/minorca/keymaps/default/config.h b/keyboards/handwired/minorca/keymaps/default/config.h
new file mode 100644
index 000000000..bf40376c1
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/default/config.h
@@ -0,0 +1,12 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+/* bootmagic salt key */
+#define BOOTMAGIC_KEY_SALT KC_ESC
+
+/* skip bootmagic and eeconfig */
+#define BOOTMAGIC_KEY_SKIP KC_SPACE
+
+#endif
diff --git a/keyboards/handwired/minorca/keymaps/default/keymap.c b/keyboards/handwired/minorca/keymaps/default/keymap.c
new file mode 100644
index 000000000..a55d578e4
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/default/keymap.c
@@ -0,0 +1,44 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "minorca.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = { /* Base */
+ {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC },
+ {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, XXXXXXX, KC_ENT },
+ {KC_LCTRL,XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_QUOT, KC_FN1, KC_FN0 },
+ {KC_NO, XXXXXXX, KC_NO, KC_LALT, KC_SPC, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, KC_DOT, KC_SLSH, KC_NO }
+ },
+ [1] = { /* First */
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT },
+ {KC_TAB, KC_MPRV, KC_MPLY, KC_MNXT, KC_PGUP, KC_HOME, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, XXXXXXX, KC_LGUI },
+ {KC_LCTRL,XXXXXXX, KC_Z, KC_X, KC_C, KC_PGDN, KC_END, KC_L, KC_SCLN, KC_UP, KC_FN1, KC_FN0 },
+ {KC_NO, XXXXXXX, KC_NO, KC_LALT, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_DOWN, KC_RIGHT,KC_NO }
+ },
+ [2] = { /* Second */
+ {KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DELT },
+ {KC_TAB, KC_MUTE, KC_VOLD, KC_VOLU, KC_TILD, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, XXXXXXX, KC_ENT },
+ {KC_CAPS, XXXXXXX, KC_LSFT, KC_RSFT, KC_PAUSE,KC_F10, KC_F11, KC_F12, KC_NO, KC_UP, KC_FN1, KC_FN0 },
+ {KC_NO, XXXXXXX, KC_NO, KC_LALT, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_DOWN, KC_RIGHT,KC_NO }
+ },
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_MOMENTARY(1), // to First overlay
+ [1] = ACTION_LAYER_MOMENTARY(2), // to Second overlay
+
+}; \ No newline at end of file
diff --git a/keyboards/handwired/minorca/keymaps/default/readme.md b/keyboards/handwired/minorca/keymaps/default/readme.md
new file mode 100644
index 000000000..6ed31f82b
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/default/readme.md
@@ -0,0 +1,5 @@
+# The Default Minorca Layout
+
+Copied from https://github.com/pancinteractive/qmk_firmware/blob/master/keyboard/minorca_mkV/keymaps/default/keymap.c
+
+It looks incomplete. \ No newline at end of file
diff --git a/keyboards/handwired/minorca/keymaps/readme.md b/keyboards/handwired/minorca/keymaps/readme.md
new file mode 100644
index 000000000..058923ba2
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/readme.md
@@ -0,0 +1,23 @@
+# How to add your own keymap
+
+Folders can be named however you'd like (will be approved upon merging), or should follow the format with a preceding `_`:
+
+ _[ISO 3166-1 alpha-2 code*]_[layout variant]_[layout name/author]
+
+\* See full list: https://en.wikipedia.org/wiki/ISO_3166-1#Officially_assigned_code_elements
+
+and contain the following files:
+
+* `keymap.c`
+* `readme.md` *recommended*
+* `config.h` *optional*, found automatically when compiling
+* `Makefile` *optional*, found automatically when compling
+
+When adding your keymap to this list, keep it organised alphabetically (select list, edit->sort lines), and use this format:
+
+ * **folder_name** description
+
+# List of Minorca keymaps
+
+* **default** default Minorca layout
+* **rgb** layout with WS2812b control
diff --git a/keyboards/handwired/minorca/keymaps/rgb/Makefile b/keyboards/handwired/minorca/keymaps/rgb/Makefile
new file mode 100644
index 000000000..2b2af1335
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/rgb/Makefile
@@ -0,0 +1,25 @@
+
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../../Makefile
+endif
diff --git a/keyboards/handwired/minorca/keymaps/rgb/config.h b/keyboards/handwired/minorca/keymaps/rgb/config.h
new file mode 100644
index 000000000..43b3c5911
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/rgb/config.h
@@ -0,0 +1,20 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+/* bootmagic salt key */
+#define BOOTMAGIC_KEY_SALT KC_ESC
+
+/* skip bootmagic and eeconfig */
+#define BOOTMAGIC_KEY_SKIP KC_SPACE
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D5
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 13 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
+#endif
diff --git a/keyboards/handwired/minorca/keymaps/rgb/example.jpg b/keyboards/handwired/minorca/keymaps/rgb/example.jpg
new file mode 100644
index 000000000..a04c8d37d
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/rgb/example.jpg
Binary files differ
diff --git a/keyboards/handwired/minorca/keymaps/rgb/keymap.c b/keyboards/handwired/minorca/keymaps/rgb/keymap.c
new file mode 100644
index 000000000..9002afbb8
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/rgb/keymap.c
@@ -0,0 +1,65 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "minorca.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _TB 3
+
+// Macro name shortcuts
+#define QWERTY M(_QWERTY)
+#define LOWER M(_LOWER)
+#define RAISE M(_RAISE)
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_QWERTY] = { /* Qwerty */
+ {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {FUNC(0), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, XXXXXXX, KC_QUOT},
+ {KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, FUNC(1)},
+ {KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, FUNC(2), XXXXXXX, XXXXXXX, FUNC(3), XXXXXXX, KC_RALT, KC_APP, KC_RCTL}
+},
+
+[_RAISE] = {
+ {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUSE, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), XXXXXXX, S(KC_BSLS)},
+ {KC_TRNS, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_ENT},
+ {KC_TRNS, XXXXXXX, KC_TRNS, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, KC_MNXT, KC_MUTE, KC_MPLY}
+},
+
+[_LOWER] = {
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, XXXXXXX, KC_BSLS},
+ {KC_TRNS, XXXXXXX, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_PGUP, KC_ENT},
+ {KC_TRNS, XXXXXXX, KC_TRNS, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, KC_HOME, KC_PGDN, KC_END}
+},
+
+[_TB] = { /* Tab */
+ {KC_ESC, KC_CALC, KC_WHOM, KC_MAIL, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, XXXXXXX, KC_TRNS},
+ {KC_TRNS, XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_UP, KC_ENT},
+ {BL_STEP, XXXXXXX, KC_TRNS, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT}
+}
+};
+
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_TAP_KEY(_TB, KC_TAB),
+ [1] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),
+ [2] = ACTION_LAYER_TAP_KEY(_RAISE, KC_SPC),
+ [3] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC),
+};
diff --git a/keyboards/handwired/minorca/keymaps/rgb/readme.md b/keyboards/handwired/minorca/keymaps/rgb/readme.md
new file mode 100644
index 000000000..f50dfa546
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/rgb/readme.md
@@ -0,0 +1,25 @@
+#RGB backlight for MinOrca
+
+![wiring](example.jpg)
+
+Example of adding WS2812b LEDs to a MinOrca.
+
+http://www.40percent.club/2016/08/tiny-whale.html
+
+The keymap is a work in progress. The RGB functions are accessed by holding down the TAB key.
+
+* Tab + Z Toggle on/off
+* Tab + X Mode
+* Tab + C Hue+
+* Tab + V Hue-
+* Tab + B Saturation+
+* Tab + N Saturation-
+* Tab + M Brightness+
+* Tab + , Brightness-
+
+Example wiring:
+
+WS2812 data pin is connected to D5
+
+![wiring](wiring1.jpg)
+![wiring closeup](wiring2.jpg)
diff --git a/keyboards/handwired/minorca/keymaps/rgb/wiring1.jpg b/keyboards/handwired/minorca/keymaps/rgb/wiring1.jpg
new file mode 100644
index 000000000..7dcbe80c5
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/rgb/wiring1.jpg
Binary files differ
diff --git a/keyboards/handwired/minorca/keymaps/rgb/wiring2.jpg b/keyboards/handwired/minorca/keymaps/rgb/wiring2.jpg
new file mode 100644
index 000000000..fd91d3e1c
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/rgb/wiring2.jpg
Binary files differ
diff --git a/keyboards/handwired/minorca/minorca.c b/keyboards/handwired/minorca/minorca.c
new file mode 100644
index 000000000..24e72c2a5
--- /dev/null
+++ b/keyboards/handwired/minorca/minorca.c
@@ -0,0 +1,6 @@
+#include "minorca.h"
+
+void matrix_init_kb(void) {
+
+ matrix_init_user();
+} \ No newline at end of file
diff --git a/keyboards/handwired/minorca/minorca.h b/keyboards/handwired/minorca/minorca.h
new file mode 100644
index 000000000..158e5b4c5
--- /dev/null
+++ b/keyboards/handwired/minorca/minorca.h
@@ -0,0 +1,6 @@
+#ifndef MINORCA_H
+#define MINORCA_H
+
+#include "quantum.h"
+
+#endif
diff --git a/keyboards/handwired/minorca/readme.md b/keyboards/handwired/minorca/readme.md
new file mode 100644
index 000000000..93c767954
--- /dev/null
+++ b/keyboards/handwired/minorca/readme.md
@@ -0,0 +1,33 @@
+minorca keyboard firmware
+======================
+Handwired 40% keyboard
+
+http://www.panc.co/blog/minorcasebright-information-page
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent readme.md](/readme.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+To build with the default keymap, simply run `make`.
+
+### Other Keymaps
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
+```
+$ make KEYMAP=[default|jack|<name>]
+```
+Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
+
+### Notable forks (which some of the keymap files are from)
+- [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck)
+- [Pierre's Fork](https://github.com/pcarrier/tmk_keyboard/blob/pcarrier/planck/keyboard/gh60/keymap_planck.c)
+- [Nathan's Fork](https://github.com/nathanrosspowell/tmk_keyboard/tree/planck-jack/keyboard/planck)
+- [Matthew's Fork](https://github.com/pepers/tmk_keyboard/tree/master/keyboard/planck_grid)
diff --git a/keyboards/handwired/minorca/rules.mk b/keyboards/handwired/minorca/rules.mk
new file mode 100644
index 000000000..c51371a78
--- /dev/null
+++ b/keyboards/handwired/minorca/rules.mk
@@ -0,0 +1,67 @@
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=512
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+NKRO_ENABLE ?= yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no # Audio output on port C6
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend \ No newline at end of file
diff --git a/keyboards/handwired/onekey/Makefile b/keyboards/handwired/onekey/Makefile
index c6d10856a..191c6bb66 100644
--- a/keyboards/handwired/onekey/Makefile
+++ b/keyboards/handwired/onekey/Makefile
@@ -1,65 +1,3 @@
-
-
-# MCU name
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
-# Build Options
-# comment out to disable the options.
-#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
-#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../../Makefile
endif \ No newline at end of file
diff --git a/keyboards/handwired/onekey/keymaps/default/keymap.c b/keyboards/handwired/onekey/keymaps/default/keymap.c
index 756c4f51e..10c486718 100644
--- a/keyboards/handwired/onekey/keymaps/default/keymap.c
+++ b/keyboards/handwired/onekey/keymaps/default/keymap.c
@@ -1,5 +1,5 @@
#include "onekey.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- { KC_A }
+ {{ KC_A }}
};
diff --git a/keyboards/handwired/onekey/rules.mk b/keyboards/handwired/onekey/rules.mk
new file mode 100644
index 000000000..c6d10856a
--- /dev/null
+++ b/keyboards/handwired/onekey/rules.mk
@@ -0,0 +1,65 @@
+
+
+# MCU name
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
+#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/handwired/pilcrow/Makefile b/keyboards/handwired/pilcrow/Makefile
new file mode 100644
index 000000000..191c6bb66
--- /dev/null
+++ b/keyboards/handwired/pilcrow/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/handwired/pilcrow/config.h b/keyboards/handwired/pilcrow/config.h
new file mode 100644
index 000000000..d63eeba36
--- /dev/null
+++ b/keyboards/handwired/pilcrow/config.h
@@ -0,0 +1,162 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER You
+#define PRODUCT pilcrow
+#define DESCRIPTION A custom keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 10
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { B4, F7, B1, B3 }
+#define MATRIX_COL_PINS { D4, C6, D7, E6, F5, F6, B6, B2, F4, B5}
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/handwired/pilcrow/keymaps/default/Makefile b/keyboards/handwired/pilcrow/keymaps/default/Makefile
new file mode 100644
index 000000000..f4671a9d1
--- /dev/null
+++ b/keyboards/handwired/pilcrow/keymaps/default/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/handwired/pilcrow/keymaps/default/config.h b/keyboards/handwired/pilcrow/keymaps/default/config.h
new file mode 100644
index 000000000..df06a2620
--- /dev/null
+++ b/keyboards/handwired/pilcrow/keymaps/default/config.h
@@ -0,0 +1,8 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// place overrides here
+
+#endif \ No newline at end of file
diff --git a/keyboards/handwired/pilcrow/keymaps/default/keymap.c b/keyboards/handwired/pilcrow/keymaps/default/keymap.c
new file mode 100644
index 000000000..e382e4c6a
--- /dev/null
+++ b/keyboards/handwired/pilcrow/keymaps/default/keymap.c
@@ -0,0 +1,88 @@
+#include "pilcrow.h"
+#define _______ KC_TRNS
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = KEYMAP( \
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
+ KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MT(MOD_LSFT, KC_SPC), MO(2), MO(3), KC_DEL, KC_ESC \
+),
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | R | S | T | D | H | N | E | I | O | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[1] = KEYMAP( \
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, \
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_PIPE, S(KC_QUOT), \
+ _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_GRV \
+),
+[2] = KEYMAP( \
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \
+ KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, \
+ OSM(MOD_LSFT), KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_BSLS, KC_QUOT, \
+ _______, _______, _______, _______, KC_ENT, KC_ENT, _______, KC_MNXT, KC_VOLD, KC_VOLU \
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset| | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[3] = KEYMAP( \
+ RESET, KC_UP, _______, _______, _______, _______, _______, KC_MS_WH_DOWN, KC_MS_U, KC_MS_WH_UP, \
+ KC_LEFT, KC_DOWN, KC_RIGHT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_MS_L,KC_MS_D, KC_MS_R, \
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, \
+ _______, _______, _______, _______, KC_MS_BTN1, KC_MS_BTN2, _______, _______, _______, _______ \
+)
+};
+
+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;
+};
+
+
+void matrix_init_user(void) {
+
+}
+
+void matrix_scan_user(void) {
+
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+
+} \ No newline at end of file
diff --git a/keyboards/handwired/pilcrow/keymaps/default/readme.md b/keyboards/handwired/pilcrow/keymaps/default/readme.md
new file mode 100644
index 000000000..95472dfca
--- /dev/null
+++ b/keyboards/handwired/pilcrow/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for pilcrow \ No newline at end of file
diff --git a/keyboards/handwired/pilcrow/pilcrow.c b/keyboards/handwired/pilcrow/pilcrow.c
new file mode 100644
index 000000000..c8243df7b
--- /dev/null
+++ b/keyboards/handwired/pilcrow/pilcrow.c
@@ -0,0 +1,28 @@
+#include "pilcrow.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // put your per-action keyboard code here
+ // runs for every action, just before processing by the firmware
+
+ return process_record_user(keycode, record);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ led_set_user(usb_led);
+}
diff --git a/keyboards/handwired/pilcrow/pilcrow.h b/keyboards/handwired/pilcrow/pilcrow.h
new file mode 100644
index 000000000..7138ccb3f
--- /dev/null
+++ b/keyboards/handwired/pilcrow/pilcrow.h
@@ -0,0 +1,23 @@
+#ifndef PILCROW_H
+#define PILCROW_H
+
+#include "quantum.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, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 \
+) \
+{ \
+ { 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 }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 } \
+}
+
+#endif
diff --git a/keyboards/handwired/pilcrow/readme.md b/keyboards/handwired/pilcrow/readme.md
new file mode 100644
index 000000000..7a7f6d2af
--- /dev/null
+++ b/keyboards/handwired/pilcrow/readme.md
@@ -0,0 +1,28 @@
+pilcrow keyboard firmware
+======================
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent readme](/).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/pilcrow folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+
+To build with the default keymap, simply run `make default`.
+
+### Other Keymaps
+
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
+```
+$ make [default|jack|<name>]
+```
+
+Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboards/handwired/pilcrow/rules.mk b/keyboards/handwired/pilcrow/rules.mk
new file mode 100644
index 000000000..55898147d
--- /dev/null
+++ b/keyboards/handwired/pilcrow/rules.mk
@@ -0,0 +1,67 @@
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=512
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= no # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no # Audio output on port C6
diff --git a/keyboards/handwired/promethium/Makefile b/keyboards/handwired/promethium/Makefile
new file mode 100644
index 000000000..191c6bb66
--- /dev/null
+++ b/keyboards/handwired/promethium/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/handwired/promethium/config.h b/keyboards/handwired/promethium/config.h
new file mode 100644
index 000000000..24f02993f
--- /dev/null
+++ b/keyboards/handwired/promethium/config.h
@@ -0,0 +1,341 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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"
+
+#define USB_VENDOR_ID_LENOVO 0x17ef
+#define USB_DEVICE_ID_LENOVO_TPKBD 0x6009
+#define USB_DEVICE_ID_LENOVO_CUSBKBD 0x6047
+#define USB_DEVICE_ID_LENOVO_CBTKBD 0x6048
+#define USB_DEVICE_ID_LENOVO_TPPRODOCK 0x6067
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID USB_VENDOR_ID_LENOVO
+#define PRODUCT_ID USB_DEVICE_ID_LENOVO_CBTKBD
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Priyadi
+#define PRODUCT Promethium Keyboard
+#define DESCRIPTION
+
+/* key matrix size */
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 6
+
+/* default pin-out */
+#define MATRIX_COL_PINS { B6, B7, D6, C7, F6, F7 }
+#define MATRIX_ROW_PINS { D7, C6, D0, D1, F5, F4, F1, F0 }
+#define UNUSED_PINS
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define DIODE_DIRECTION COL2ROW
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+// #define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+// #define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT) | MOD_BIT(KC_LCTRL) | MOD_BIT(KC_RCTRL)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * 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 PS2_INIT_DELAY 2000
+#define BATTERY_PIN 9
+#define BATTERY_POLL 30000
+#define MAX_VOLTAGE 4.2
+#define MIN_VOLTAGE 3.2
+
+#define KEYMAP( \
+ k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
+ k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
+ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c \
+) \
+{ \
+ {k11, k12, k13, k14, k15, k16}, \
+ {k21, k22, k23, k24, k25, k26}, \
+ {k31, k32, k33, k34, k35, k36}, \
+ {k41, k42, k43, k44, k45, k46}, \
+ {k17, k18, k19, k1a, k1b, k1c}, \
+ {k27, k28, k29, k2a, k2b, k2c}, \
+ {k37, k38, k39, k3a, k3b, k3c}, \
+ {k47, k48, k49, k4a, k4b, k4c} \
+}
+
+#ifndef __ASSEMBLER__ // assembler doesn't like enum in .h file
+enum led_sequence {
+ LED_IND_BLUETOOTH,
+ LED_IND_USB,
+ LED_IND_BATTERY,
+
+ LED_IND_FUN,
+ LED_IND_NUM,
+ LED_IND_EMOJI,
+
+ LED_BKSP,
+ LED_ENT,
+ LED_RSFT,
+ LED_RCTL,
+
+ LED_RGUI,
+ LED_SLSH,
+ LED_SCLN,
+ LED_P,
+
+ LED_O,
+ LED_L,
+ LED_DOT,
+ LED_RALT,
+
+ LED_EMOJI,
+ LED_COMM,
+ LED_K,
+ LED_I,
+
+ LED_U,
+ LED_J,
+ LED_M,
+ LED_FUN,
+
+ LED_RSPC,
+ LED_N,
+ LED_HH,
+ LED_Y,
+
+ LED_TRACKPOINT3,
+ LED_TRACKPOINT2,
+ LED_TRACKPOINT1,
+
+ LED_LSPC,
+ LED_B,
+ LED_G,
+ LED_T,
+
+ LED_R,
+ LED_F,
+ LED_V,
+ LED_NUM,
+
+ LED_PUNC,
+ LED_C,
+ LED_D,
+ LED_E,
+
+ LED_W,
+ LED_S,
+ LED_X,
+ LED_LALT,
+
+ LED_LGUI,
+ LED_Z,
+ LED_A,
+ LED_Q,
+
+ LED_TAB,
+ LED_ESC,
+ LED_LSFT,
+ LED_LCTL,
+
+ LED_TOTAL
+};
+
+#define RGB_DI_PIN B5
+#define RGBSPS_NUM LED_TOTAL
+#endif
+
+/* PS/2 mouse */
+#ifdef PS2_USE_BUSYWAIT
+# define PS2_CLOCK_PORT PORTD
+# define PS2_CLOCK_PIN PIND
+# define PS2_CLOCK_DDR DDRD
+# define PS2_CLOCK_BIT 1
+# define PS2_DATA_PORT PORTD
+# define PS2_DATA_PIN PIND
+# define PS2_DATA_DDR DDRD
+# define PS2_DATA_BIT 2
+#endif
+
+/* PS/2 mouse interrupt version */
+#ifdef PS2_USE_INT
+/* uses INT1 for clock line(ATMega32U4) */
+#define PS2_CLOCK_PORT PORTD
+#define PS2_CLOCK_PIN PIND
+#define PS2_CLOCK_DDR DDRD
+#define PS2_CLOCK_BIT 3
+#define PS2_DATA_PORT PORTD
+#define PS2_DATA_PIN PIND
+#define PS2_DATA_DDR DDRD
+#define PS2_DATA_BIT 2
+
+#define PS2_INT_INIT() do { \
+ EICRA |= ((1<<ISC31) | \
+ (0<<ISC30)); \
+} while (0)
+#define PS2_INT_ON() do { \
+ EIMSK |= (1<<INT3); \
+} while (0)
+#define PS2_INT_OFF() do { \
+ EIMSK &= ~(1<<INT3); \
+} while (0)
+#define PS2_INT_VECT INT3_vect
+#endif
+
+/* PS/2 mouse USART version */
+#ifdef PS2_USE_USART
+/* XCK for clock line and RXD for data line */
+#define PS2_CLOCK_PORT PORTD
+#define PS2_CLOCK_PIN PIND
+#define PS2_CLOCK_DDR DDRD
+#define PS2_CLOCK_BIT 5
+#define PS2_DATA_PORT PORTD
+#define PS2_DATA_PIN PIND
+#define PS2_DATA_DDR DDRD
+#define PS2_DATA_BIT 2
+
+/* synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling edge */
+/* set DDR of CLOCK as input to be slave */
+#define PS2_USART_INIT() do { \
+ PS2_CLOCK_DDR &= ~(1<<PS2_CLOCK_BIT); \
+ PS2_DATA_DDR &= ~(1<<PS2_DATA_BIT); \
+ UCSR1C = ((1 << UMSEL10) | \
+ (3 << UPM10) | \
+ (0 << USBS1) | \
+ (3 << UCSZ10) | \
+ (0 << UCPOL1)); \
+ UCSR1A = 0; \
+ UBRR1H = 0; \
+ UBRR1L = 0; \
+} while (0)
+#define PS2_USART_RX_INT_ON() do { \
+ UCSR1B = ((1 << RXCIE1) | \
+ (1 << RXEN1)); \
+} while (0)
+#define PS2_USART_RX_POLL_ON() do { \
+ UCSR1B = (1 << RXEN1); \
+} while (0)
+#define PS2_USART_OFF() do { \
+ UCSR1C = 0; \
+ UCSR1B &= ~((1 << RXEN1) | \
+ (1 << TXEN1)); \
+} while (0)
+#define PS2_USART_RX_READY (UCSR1A & (1<<RXC1))
+#define PS2_USART_RX_DATA UDR1
+#define PS2_USART_ERROR (UCSR1A & ((1<<FE1) | (1<<DOR1) | (1<<UPE1)))
+#define PS2_USART_RX_VECT USART1_RX_vect
+#endif
+
+
+#endif
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/Makefile b/keyboards/handwired/promethium/keymaps/priyadi/Makefile
new file mode 100644
index 000000000..46fdfa011
--- /dev/null
+++ b/keyboards/handwired/promethium/keymaps/priyadi/Makefile
@@ -0,0 +1,29 @@
+
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+UNICODEMAP_ENABLE = yes
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+PS2_MOUSE_ENABLE = yes
+PS2_USE_INT = yes
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../../Makefile
+endif
+
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/README.md b/keyboards/handwired/promethium/keymaps/priyadi/README.md
new file mode 100644
index 000000000..37c2be6f9
--- /dev/null
+++ b/keyboards/handwired/promethium/keymaps/priyadi/README.md
@@ -0,0 +1,44 @@
+Priyadi Keymap for Planck-like Keyboards
+========================================
+
+Main layer modifications from default Planck layout:
+
+* Enter moved to quotes position
+* Quotes moved to semicolon position.
+* QWERTZ style colon & semicolon. shift-. = : shift-, = ; This is done in hardware, no layout switching needed in software.
+* < & > occupied precious real estate, and so they are moved down to punctuation layer.
+* Right-shift on Enter position.
+* Removed arrow keys, they are on another layer now.
+* Put Ctrl-Alt-Super and Super-AltGr-Ctrl in left & right corners.
+* Lower & Raise is now called Num and Fun.
+* OS & Left keys become another thumb modifier: Empty & Greek (Empty because I used this for another use and my muscle memory is not adapted to it yet)
+
+On Promethium, Trackpoint is enabled on PD2 and PD2. We impersonate a Thinkpad keyboard to be able to use Thinkpad driver on Windows (still needs verification).
+
+AltGr & Compose dual use key. Tap for Compose (mapped to Scroll Lock in hardware) and press for AltGr.
+
+Supported layouts: QWERTY, DVORAK, Colemak, Workman, Norman. Switchable from SYS layer. In DVORAK, semicolon is replaced by /? key.
+
+Num activates NUM layer: hexkeypad on the right side and most punctuation on the left side. Hexkeypad is optimized for C-style hex, IPv6, HTML RGB triplets, etc.
+
+Fun activates FUN layer: arrow cluster on right home row, F-numbers on left side.
+
+Pressing Num+Fun activates PUNC layer: same punctuations as NUM layer on the left side, parens on the right side.
+
+Greek activates either GREEKU or GREEKL layer, depending whether shift is pressed or not. Shift state changes are also taken into account when the layer is active.
+
+Greek+Empty activates EMOJI layer. The whole keyboard now outputs emojis!
+
+Pressing both spacebars (spacekeys, actually) activates GUI layer. QWERTYUIOP switches to a virtual desktop. J & L switches virtual desktop to the left or right. S & F behaves like Alt-Tab and Alt-Shift-Tab. This works by sending Alt press when entering the layer, and Alt release when other than S or F keys are pressed.
+
+Pressing both Ctrls activates SYS layer for configuring the keyboard.
+
+On Promethium, USB or Bluetooth output is detected on startup. If USB is connected, then USB is used initially. SYS-U and SYS-B switch output to USB or Bluetooth at runtime. Current active output is indicated with LEDs.
+
+SYS-W, SYS-L, SYS-M switch Unicode input method. SYS-Q, SYS-D, SYS-C, SYS-K, SYS-N switch to QWERTY, DVORAK, Colemak, Workman and Norman, respectively.
+
+On Planck, SYS-A (mnemonic: audio) toggles faux clicky: use buzzer to emit clicks on key presses and releases.
+
+On Promethium there are 6 indicator LEDs, and under switch LEDs on each switches, including Trackpoint buttons. Totaling 57 LEDs. Output is limited to 0xF for each LEDs to conserve power. SYS-G (mnemonic: glow) toggles various backlighting modes.
+
+On Promethium, there's a LED to indicate battery level. Hue indicates level: green is full, red is empty. \ No newline at end of file
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/config.h b/keyboards/handwired/promethium/keymaps/priyadi/config.h
new file mode 100644
index 000000000..3f5dd5817
--- /dev/null
+++ b/keyboards/handwired/promethium/keymaps/priyadi/config.h
@@ -0,0 +1,28 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#define PRIYADI_PROMETHIUM
+
+/* bootmagic salt key */
+#define BOOTMAGIC_KEY_SALT KC_ESC
+
+/* skip bootmagic and eeconfig */
+#define BOOTMAGIC_KEY_SKIP KC_SPACE
+
+#define PREVENT_STUCK_MODIFIERS
+
+#define RGBSPS_ENABLE
+
+#define UNICODE_TYPE_DELAY 0
+
+#define LAYOUT_DVORAK
+#define LAYOUT_COLEMAK
+#define LAYOUT_NORMAN
+#define LAYOUT_WORKMAN
+
+#define DOUBLESPACE_LAYER_ENABLE
+// #define TOLELOT_ENABLE
+
+#endif
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/flash.sh b/keyboards/handwired/promethium/keymaps/priyadi/flash.sh
new file mode 100755
index 000000000..14a3b4378
--- /dev/null
+++ b/keyboards/handwired/promethium/keymaps/priyadi/flash.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+sleep 10
+avrdude -p m32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:../../../../../.build/handwired_promethium_priyadi.hex
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c
new file mode 100644
index 000000000..2c43f9884
--- /dev/null
+++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c
@@ -0,0 +1,1204 @@
+/*
+Copyright 2017 Priyadi Iman Nurcahyo
+
+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/>.
+*/
+
+#if defined(PRIYADI_PROMETHIUM)
+ #include "promethium.h"
+#elif defined(PRIYADI_PLANCK)
+ #include "planck.h"
+#else
+ #error "no keyboard defined"
+#endif
+
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+ #include "musical_notes.h"
+#endif
+#include "eeconfig.h"
+#include "process_unicode.h"
+#include "quantum.h"
+#ifdef RGBSPS_ENABLE
+#include "rgbsps.h"
+#endif
+#ifdef PS2_MOUSE_ENABLE
+#include "ps2_mouse.h"
+#include "ps2.h"
+#endif
+#ifdef FAUXCLICKY_ENABLE
+#include "fauxclicky.h"
+#endif
+#include "outputselect.h"
+#include "led.h"
+#define COUNT(x) (sizeof (x) / sizeof (*(x)))
+
+// Fillers to make layering clearer
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+#define G(x) LGUI(x)
+#define KC_WWWB KC_WWW_BACK
+#define KC_WWWF KC_WWW_FORWARD
+
+// hybrid right-alt & scroll lock (mapped to Compose in OS)
+#undef KC_RALT
+#define KC_RALT MT(MOD_RALT, KC_SLCK)
+
+bool capslock = false;
+#ifdef DOUBLESPACE_LAYER_ENABLE
+bool lspace_active = false;
+bool rspace_active = false;
+bool lspace_emitted = false;
+bool rspace_emitted = false;
+bool space_layer_entered = false;
+#endif
+
+// glow
+enum glow_modes {
+ GLOW_NONE,
+ GLOW_MIN,
+ GLOW_FULL
+};
+uint8_t glow_mode = GLOW_MIN;
+
+void turn_off_capslock(void);
+extern keymap_config_t keymap_config;
+
+// layers, ordering is important!
+enum layers {
+ _QWERTY,
+ _DVORAK,
+ _COLEMAK,
+ _WORKMAN,
+ _NORMAN,
+ _DEFAULT_LAYER_MAX = _NORMAN,
+
+ _GREEKU,
+ _GREEKL,
+
+ _NUM,
+ _FUN,
+ _PUNC,
+
+ _EMPTY,
+ _EMOJI,
+ _GUI,
+ _SYS
+};
+
+// double-space layer
+#define _SPACE _GUI
+
+enum planck_keycodes {
+ // layouts
+ QWERTY = SAFE_RANGE,
+ DVORAK,
+ COLEMAK,
+ WORKMAN,
+ NORMAN,
+
+ // layer switchers
+ EMOJI,
+ GUI,
+ GREEK,
+
+ // os switchers
+ LINUX,
+ WIN,
+ OSX,
+
+ // others
+ LSPACE,
+ RSPACE,
+ GLOW,
+
+ // stub
+#ifndef FAUXCLICKY_ENABLE
+ FC_TOG,
+#endif
+#ifndef ADAFRUIT_BLE_ENABLE
+ OUT_BLE,
+#endif
+ KEYCODE_END
+};
+
+#define EMPTY MO(_EMPTY)
+#define NUM MO(_NUM)
+#define FUN MO(_FUN)
+#define FUN0 LT(_FUN, KC_0)
+
+// unicode map
+
+enum unicode_name {
+ GRIN, // grinning face 😊
+ TJOY, // tears of joy 😂
+ SMILE, // grining face with smiling eyes ðŸ˜
+ HEART, // heart â¤
+ EYERT, // smiling face with heart shaped eyes ðŸ˜
+ CRY, // crying face 😭
+ SMEYE, // smiling face with smiling eyes 😊
+ UNAMU, // unamused 😒
+ KISS, // kiss 😘
+ HART2, // two hearts 💕
+ WEARY, // weary 😩
+ OKHND, // ok hand sign 👌
+ PENSV, // pensive 😔
+ SMIRK, // smirk ðŸ˜
+ RECYC, // recycle â™»
+ WINK, // wink 😉
+ THMUP, // thumb up ðŸ‘
+ THMDN, // thumb down 👎
+ PRAY, // pray ðŸ™
+ PHEW, // relieved 😌
+ MUSIC, // musical notes
+ FLUSH, // flushed 😳
+ CELEB, // celebration 🙌
+ CRY2, // crying face 😢
+ COOL, // smile with sunglasses 😎
+ NOEVS, // see no evil
+ NOEVH, // hear no evil
+ NOEVK, // speak no evil
+ POO, // pile of poo
+ EYES, // eyes
+ VIC, // victory hand
+ BHART, // broken heart
+ SLEEP, // sleeping face
+ SMIL2, // smiling face with open mouth & sweat
+ HUNRD, // 100
+ CONFU, // confused
+ TONGU, // face with tongue & winking eye
+ DISAP, // disappointed
+ YUMMY, // face savoring delicious food
+ CLAP, // hand clapping
+ FEAR, // face screaming in fear
+ HORNS, // smiling face with horns
+ HALO, // smiling face with halo
+ BYE, // waving hand
+ SUN, // sun
+ MOON, // moon
+ SKULL, // skull
+
+ // greek letters
+ UALPH,
+ UBETA,
+ UGAMM,
+ UDELT,
+ UEPSI,
+ UZETA,
+ UETA,
+ UTHET,
+ UIOTA,
+ UKAPP,
+ ULAMB,
+ UMU,
+ UNU,
+ UXI,
+ UOMIC,
+ UPI,
+ URHO,
+ USIGM,
+ UTAU,
+ UUPSI,
+ UPHI,
+ UCHI,
+ UPSI,
+ UOMEG,
+
+ LALPH,
+ LBETA,
+ LGAMM,
+ LDELT,
+ LEPSI,
+ LZETA,
+ LETA,
+ LTHET,
+ LIOTA,
+ LKAPP,
+ LLAMB,
+ LMU,
+ LNU,
+ LXI,
+ LOMIC,
+ LPI,
+ LRHO,
+ LSIGM,
+ LTAU,
+ LUPSI,
+ LPHI,
+ LCHI,
+ LPSI,
+ LOMEG,
+
+ FSIGM,
+
+ LTEQ,
+ GTEQ,
+ NOTEQ,
+ PLMIN,
+};
+
+const uint32_t PROGMEM unicode_map[] = {
+ [GRIN] = 0x1F600,
+ [TJOY] = 0x1F602,
+ [SMILE] = 0x1F601,
+ [HEART] = 0x2764,
+ [EYERT] = 0x1f60d,
+ [CRY] = 0x1f62d,
+ [SMEYE] = 0x1F60A,
+ [UNAMU] = 0x1F612,
+ [KISS] = 0x1F618,
+ [HART2] = 0x1F495,
+ [WEARY] = 0x1F629,
+ [OKHND] = 0x1F44C,
+ [PENSV] = 0x1F614,
+ [SMIRK] = 0x1F60F,
+ [RECYC] = 0x267B,
+ [WINK] = 0x1F609,
+ [THMUP] = 0x1F44D,
+ [THMDN] = 0x1F44E,
+ [PRAY] = 0x1F64F,
+ [PHEW] = 0x1F60C,
+ [MUSIC] = 0x1F3B6,
+ [FLUSH] = 0x1F633,
+ [CELEB] = 0x1F64C,
+ [CRY2] = 0x1F622,
+ [COOL] = 0x1F60E,
+ [NOEVS] = 0x1F648,
+ [NOEVH] = 0x1F649,
+ [NOEVK] = 0x1F64A,
+ [POO] = 0x1F4A9,
+ [EYES] = 0x1F440,
+ [VIC] = 0x270C,
+ [BHART] = 0x1F494,
+ [SLEEP] = 0x1F634,
+ [SMIL2] = 0x1F605,
+ [HUNRD] = 0x1F4AF,
+ [CONFU] = 0x1F615,
+ [TONGU] = 0x1F61C,
+ [DISAP] = 0x1F61E,
+ [YUMMY] = 0x1F60B,
+ [CLAP] = 0x1F44F,
+ [FEAR] = 0x1F631,
+ [HORNS] = 0x1F608,
+ [HALO] = 0x1F607,
+ [BYE] = 0x1F44B,
+ [SUN] = 0x2600,
+ [MOON] = 0x1F314,
+ [SKULL] = 0x1F480,
+
+ // greek letters
+ [UALPH] = 0x0391,
+ [UBETA] = 0x0392,
+ [UGAMM] = 0x0393,
+ [UDELT] = 0x0394,
+ [UEPSI] = 0x0395,
+ [UZETA] = 0x0396,
+ [UETA] = 0x0397,
+ [UTHET] = 0x0398,
+ [UIOTA] = 0x0399,
+ [UKAPP] = 0x039A,
+ [ULAMB] = 0x039B,
+ [UMU] = 0x039C,
+ [UNU] = 0x039D,
+ [UXI] = 0x039E,
+ [UOMIC] = 0x039F,
+ [UPI] = 0x03A0,
+ [URHO] = 0x03A1,
+ [USIGM] = 0x03A3,
+ [UTAU] = 0x03A4,
+ [UUPSI] = 0x03A5,
+ [UPHI] = 0x03A6,
+ [UCHI] = 0x03A7,
+ [UPSI] = 0x03A8,
+ [UOMEG] = 0x03A9,
+ [LALPH] = 0x03B1,
+ [LBETA] = 0x03B2,
+ [LGAMM] = 0x03B3,
+ [LDELT] = 0x03B4,
+ [LEPSI] = 0x03B5,
+ [LZETA] = 0x03B6,
+ [LETA] = 0x03B7,
+ [LTHET] = 0x03B8,
+ [LIOTA] = 0x03B9,
+ [LKAPP] = 0x03BA,
+ [LLAMB] = 0x03BB,
+ [LMU] = 0x03BC,
+ [LNU] = 0x03BD,
+ [LXI] = 0x03BE,
+ [LOMIC] = 0x03BF,
+ [LPI] = 0x03C0,
+ [LRHO] = 0x03C1,
+ [LSIGM] = 0x03C3,
+ [LTAU] = 0x03C4,
+ [LUPSI] = 0x03C5,
+ [LPHI] = 0x03C6,
+ [LCHI] = 0x03C7,
+ [LPSI] = 0x03C8,
+ [LOMEG] = 0x03C9,
+ [FSIGM] = 0x03C2,
+
+ // other
+ [LTEQ] = 0x2264, // less than or equal
+ [GTEQ] = 0x2265, // greater than or equal
+ [NOTEQ] = 0x2260, // not equal
+ [PLMIN] = 0xB1, // plus minus
+};
+
+// RGBSPS
+
+#ifdef RGBSPS_ENABLE
+const uint8_t PROGMEM LED_ALNUM[] = {
+ LED_Z,
+ LED_A,
+ LED_Q,
+ LED_W,
+ LED_S,
+ LED_X,
+ LED_C,
+ LED_D,
+ LED_E,
+ LED_R,
+ LED_F,
+ LED_V,
+ LED_B,
+ LED_G,
+ LED_T,
+ LED_N,
+ LED_HH,
+ LED_Y,
+ LED_U,
+ LED_J,
+ LED_M,
+ LED_COMM,
+ LED_K,
+ LED_I,
+ LED_O,
+ LED_L,
+ LED_DOT,
+ LED_SLSH,
+ LED_SCLN,
+ LED_P,
+ LED_LSPC,
+ LED_RSPC
+};
+
+const uint8_t PROGMEM LED_HOMING[] = {
+ LED_A,
+ LED_S,
+ LED_D,
+ LED_F,
+ LED_J,
+ LED_K,
+ LED_L,
+ LED_SCLN
+};
+
+const uint8_t PROGMEM LED_MODS[] = {
+ LED_TAB,
+ LED_ESC,
+ LED_LSFT,
+ LED_LCTL,
+ LED_LGUI,
+ LED_LALT,
+ LED_RALT,
+ LED_RGUI,
+ LED_BKSP,
+ LED_ENT,
+ LED_RSFT,
+ LED_RCTL
+};
+
+const uint8_t PROGMEM LED_FN[] = {
+ LED_PUNC,
+ LED_NUM,
+ LED_FUN,
+ LED_EMOJI
+};
+
+const uint8_t PROGMEM LED_INDICATORS[] = {
+ LED_IND_EMOJI,
+ LED_IND_NUM,
+ LED_IND_FUN,
+ LED_IND_BATTERY,
+ LED_IND_USB,
+ LED_IND_BLUETOOTH,
+};
+
+const uint8_t PROGMEM LED_TRACKPOINT[] = {
+ LED_TRACKPOINT1,
+ LED_TRACKPOINT2,
+ LED_TRACKPOINT3,
+};
+
+void led_turnoff_keys(void) {
+ for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) {
+ rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 0, 0, 0);
+ }
+ for(uint8_t i = 0; i < COUNT(LED_MODS); i++) {
+ rgbsps_set(pgm_read_byte(&LED_MODS[i]), 0, 0, 0);
+ }
+ for(uint8_t i = 0; i < COUNT(LED_FN); i++) {
+ rgbsps_set(pgm_read_byte(&LED_FN[i]), 0, 0, 0);
+ }
+}
+
+void led_reset(void) {
+ switch (glow_mode) {
+ case GLOW_NONE:
+ led_turnoff_keys();
+ break;
+ case GLOW_MIN:
+ led_turnoff_keys();
+ for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) {
+ rgbsps_set(pgm_read_byte(&LED_HOMING[i]), 8, 8, 8);
+ }
+ rgbsps_set(LED_F, 15, 0, 0);
+ rgbsps_set(LED_J, 15, 0, 0);
+ break;
+ case GLOW_FULL:
+ for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) {
+ rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 8, 8, 8);
+ }
+ for(uint8_t i = 0; i < COUNT(LED_MODS); i++) {
+ rgbsps_set(pgm_read_byte(&LED_MODS[i]), 0, 15, 0);
+ }
+ for(uint8_t i = 0; i < COUNT(LED_FN); i++) {
+ rgbsps_set(pgm_read_byte(&LED_FN[i]), 0, 0, 15);
+ }
+ for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) {
+ rgbsps_set(pgm_read_byte(&LED_HOMING[i]), 15, 0, 0);
+ }
+ rgbsps_set(LED_F, 15, 15, 0);
+ rgbsps_set(LED_J, 15, 15, 0);
+ break;
+ }
+}
+
+void led_set_layer_indicator(void) {
+ static uint8_t oldlayer = 255;
+
+ rgbsps_set(LED_IND_FUN, 0, 0, 0);
+ // rgbsps_set(LED_IND_NUM, 0, 0, 0);
+ rgbsps_set(LED_IND_EMOJI, 0, 0, 0);
+
+ led_reset();
+
+ uint8_t layer = biton32(layer_state);
+ if (oldlayer == layer) {
+ return;
+ }
+
+ oldlayer = layer;
+
+ if (layer <= _DEFAULT_LAYER_MAX) {
+ rgbsps_send();
+ return;
+ }
+
+ switch(layer) {
+ case _FUN:
+ rgbsps_set(LED_IND_FUN, 15, 0, 0);
+ break;
+ // case _NUM:
+ // rgbsps_set(LED_IND_NUM, 0, 0, 15);
+ // break;
+ case _EMOJI:
+ rgbsps_set(LED_IND_EMOJI, 15, 15, 0);
+ break;
+ default:
+ rgbsps_set(LED_IND_FUN, 3, 3, 3);
+ // rgbsps_set(LED_IND_NUM, 3, 3, 3);
+ rgbsps_set(LED_IND_EMOJI, 3, 3, 3);
+ }
+
+ rgbsps_send();
+}
+
+void led_set_output_ble(void) {
+ rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 15);
+ rgbsps_set(LED_IND_USB, 0, 0, 0);
+ rgbsps_send();
+}
+
+void led_set_output_usb(void) {
+ rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 0);
+ rgbsps_set(LED_IND_USB, 15, 15, 15);
+ rgbsps_send();
+}
+
+void led_set_output_none(void) {
+ rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 0);
+ rgbsps_set(LED_IND_USB, 0, 0, 0);
+ rgbsps_send();
+}
+
+void led_init(void) {
+ // turn off all
+ rgbsps_turnoff();
+
+ // set trackpoint color
+ rgbsps_set(LED_TRACKPOINT1, 15, 0, 0);
+ rgbsps_set(LED_TRACKPOINT2, 0, 0, 15);
+ rgbsps_set(LED_TRACKPOINT3, 15, 0, 0);
+}
+#endif // RGBSPS_ENABLE
+
+// keymaps
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ' |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | GUI | Punc | Num | Space | Fun |Greek | GUI |AltGr | Ctrl |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = KEYMAP(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT ,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LALT, KC_LGUI, EMPTY, NUM, LSPACE, RSPACE, FUN, GREEK, KC_RGUI, KC_RALT, KC_RCTL
+),
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | O | E | U | I | D | H | T | N | S |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| / | Q | J | K | X | B | M | W | V | Z |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl |
+ * `-----------------------------------------------------------------------------------'
+ */
+#ifdef LAYOUT_DVORAK
+[_DVORAK] = KEYMAP(
+ _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______,
+ _______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, _______,
+ _______, KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+#endif
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | R | S | T | D | H | N | E | I | O |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+#ifdef LAYOUT_COLEMAK
+[_COLEMAK] = KEYMAP(
+ _______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, _______,
+ _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, _______,
+ _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+#endif
+
+/* Norman
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | D | F | K | J | U | R | L | ; | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | E | T | G | Y | N | I | O | H |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | P | M | , | . | / |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+#ifdef LAYOUT_NORMAN
+[_NORMAN] = KEYMAP(
+ _______, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_QUOT, _______,
+ _______, KC_A, KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H, _______,
+ _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+#endif
+
+/* Workman
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | H | T | G | Y | N | E | O | I |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | M | C | V | K | K | , | . | / |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+#ifdef LAYOUT_WORKMAN
+[_WORKMAN] = KEYMAP(
+ _______, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, _______,
+ _______, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, _______,
+ _______, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+#endif
+
+/* Punc
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ≤ | ≥ | ` |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | * | \ | - | = | / | ≠ | ( | ) | < | > | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | & | ^ | | | _ | + | ? | ± | [ | ] | { | } | : |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_PUNC] = KEYMAP(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, X(LTEQ), X(GTEQ), _______,
+ KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, X(NOTEQ),KC_LPRN, KC_RPRN, KC_LABK, KC_RABK, _______,
+ KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, X(PLMIN),KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, KC_COLN,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+/* Num
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | A | 7 | 8 | 9 | D | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | ` | * | \ | - | = | / | B | 4 | 5 | 6 | E | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | & | ^ | | | _ | + | ? | C | 1 | 2 | 3 | F | : |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | 0 | , | . | x | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_NUM] = KEYMAP(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, S(KC_A), KC_7, KC_8, KC_9, S(KC_D), _______,
+ KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, S(KC_B), KC_4, KC_5, KC_6, S(KC_E), _______,
+ KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, S(KC_C), KC_1, KC_2, KC_3, S(KC_F), KC_COLN,
+ _______, _______, _______, _______, _______, _______, _______, FUN0 , KC_COMM, KC_DOT, KC_X, _______
+),
+
+/* Func
+ * ,-----------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | | | PgUp | Up | PgDn | PgUp | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | F5 | F6 | F7 | F8 |PrtSc | | Left | Down | Right| PgDn | Ins |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F9 | F10 | F11 | F12 | | | | Home | End | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUN] = KEYMAP(
+ XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_PGUP, KC_DEL,
+ XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_PSCR, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_INS,
+ _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_END, XXXXXXX, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+/* Uppercase Greek
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_GREEKU] = KEYMAP(
+ _______, XXXXXXX, XXXXXXX,X(UEPSI), X(URHO), X(UTAU),X(UUPSI),X(UTHET),X(UIOTA),X(UOMIC), X(UPI), _______,
+ _______,X(UALPH),X(USIGM),X(UDELT), X(UPHI),X(UGAMM), X(UETA), X(UXI),X(UKAPP),X(ULAMB), KC_QUOT, _______,
+ _______,X(UZETA), X(UCHI), X(UPSI),X(UOMEG),X(UBETA), X(UNU), X(UMU), KC_COMM, KC_DOT, KC_SLSH, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+/* Lowercase Greek
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_GREEKL] = KEYMAP(
+ _______, XXXXXXX,X(FSIGM),X(LEPSI), X(LRHO), X(LTAU),X(LUPSI),X(LTHET),X(LIOTA),X(LOMIC), X(LPI), _______,
+ _______,X(LALPH),X(LSIGM),X(LDELT), X(LPHI),X(LGAMM), X(LETA), X(LXI),X(LKAPP),X(LLAMB), KC_QUOT, _______,
+ _______,X(LZETA), X(LCHI), X(LPSI),X(LOMEG),X(LBETA), X(LNU), X(LMU), KC_COMM, KC_DOT, KC_SLSH, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+/* Empty
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_EMPTY] = KEYMAP(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+/* Emoji
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_EMOJI] = KEYMAP(
+ X(HART2), X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY),X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV), X(PHEW),
+ X(THMUP), X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN),X(HEART), X(BYE), X(KISS),X(CELEB), X(COOL),X(NOEVS),
+ X(THMDN),X(SLEEP), X(CLAP), X(CRY), X(VIC),X(BHART), X(SUN),X(SMEYE), X(WINK), X(MOON),X(CONFU),X(NOEVH),
+ X(POO), X(EYES), X(HUNRD),_______, X(SKULL),X(HORNS), X(HALO), X(FEAR),_______,X(YUMMY),X(DISAP),X(NOEVK)
+),
+
+/* GUI
+ * ,-----------------------------------------------------------------------------------.
+ * | | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 | D10 | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | | Btab | Esc | Tab | | | Prev | | Next | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | Prev | Play | Next | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_GUI] = KEYMAP(
+ XXXXXXX, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), XXXXXXX,
+ KC_ESC, XXXXXXX, S(KC_TAB),KC_ESC, KC_TAB, XXXXXXX, XXXXXXX, KC_WWWB, XXXXXXX, KC_WWWF, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, KC_SPC, KC_SPC, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+),
+
+/* Sys
+ * ,-----------------------------------------------------------------------------------.
+ * | |Qwerty| Win | |Reset | | | USB | | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | |Audio | |Dvorak| | Glow | | |WorkMn|Linux | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | |Colmak| | BLE |Norman|MacOS | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_SYS] = KEYMAP(
+ XXXXXXX, QWERTY, WIN, XXXXXXX, RESET, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, FC_TOG, XXXXXXX, DVORAK, XXXXXXX, GLOW, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BLE, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______
+),
+
+
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+#ifdef DOUBLESPACE_LAYER_ENABLE
+void process_doublespace(bool pressed, bool *isactive, bool *otheractive, bool *isemitted) {
+ if (pressed) {
+ *isactive = true;
+ if (*otheractive) {
+ layer_on(_SPACE);
+ register_code(KC_LALT); // sends alt and enter layer
+ space_layer_entered = true;
+ }
+ } else {
+ *isactive = false;
+ if (space_layer_entered) {
+ unregister_code(KC_LALT); // release alt and exit layer
+ layer_off(_SPACE);
+ if (!*otheractive) {
+ space_layer_entered = false;
+ }
+ } else {
+ if (!*isemitted) {
+ register_code(KC_SPC);
+ unregister_code(KC_SPC);
+ }
+ *isemitted = false;
+ }
+ }
+}
+#endif
+
+uint32_t layer_state_set_kb(uint32_t state)
+{
+ // turn on punc layer if both fun & num are on
+ if ((state & ((1UL<<_NUM) | (1UL<<_FUN))) == ((1UL<<_NUM) | (1UL<<_FUN))) {
+ state |= (1UL<<_PUNC);
+ } else {
+ state &= ~(1UL<<_PUNC);
+ }
+
+ // turn on emoji layer if empty and greek layer are on
+ if (
+ (state & ((1UL<<_EMPTY) | (1UL<<_GREEKU))) == ((1UL<<_EMPTY) | (1UL<<_GREEKU))
+ || (state & ((1UL<<_EMPTY) | (1UL<<_GREEKL))) == ((1UL<<_EMPTY) | (1UL<<_GREEKL))
+ ) {
+ state |= (1UL<<_EMOJI);
+ } else {
+ state &= ~(1UL<<_EMOJI);
+ }
+ return state;
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ static bool lshift = false;
+ static bool rshift = false;
+ static uint8_t layer = 0;
+
+ lshift = keyboard_report->mods & MOD_BIT(KC_LSFT);
+ rshift = keyboard_report->mods & MOD_BIT(KC_RSFT);
+ layer = biton32(layer_state);
+
+#ifdef DOUBLESPACE_LAYER_ENABLE
+ // double-space: send space immediately if any other key depressed before space is released
+ if ((lspace_active ^ rspace_active)
+ && keycode != LSPACE
+ && keycode != RSPACE
+ && record->event.pressed)
+ {
+ if (lspace_active) {
+ if (!lspace_emitted) {
+ register_code(KC_SPC);
+ unregister_code(KC_SPC);
+ }
+ lspace_emitted = true;
+ }
+ if (rspace_active) {
+ if (!rspace_emitted) {
+ register_code(KC_SPC);
+ unregister_code(KC_SPC);
+ }
+ rspace_emitted = true;
+ }
+ }
+
+ if (layer == _SPACE && keycode != S(KC_TAB) && keycode != KC_TAB && keycode != KC_ESC && keycode != XXXXXXX) {
+ if (record->event.pressed) {
+ unregister_code(KC_LALT);
+ } else {
+ register_code(KC_LALT);
+ }
+ }
+#endif
+
+ switch (keycode) {
+
+#ifdef DOUBLESPACE_LAYER_ENABLE
+ // double-space enter space layer
+ case LSPACE:
+ process_doublespace(record->event.pressed, &lspace_active, &rspace_active, &lspace_emitted);
+ return false;
+ break;
+ case RSPACE:
+ process_doublespace(record->event.pressed, &rspace_active, &lspace_active, &rspace_emitted);
+ return false;
+ break;
+#endif
+
+ // handle greek layer shift
+ // handle both shift = capslock
+ case KC_LSFT:
+ case KC_RSFT:
+ ;
+ if (layer == _GREEKU || layer == _GREEKL) {
+ if (record->event.pressed) {
+ layer_on(_GREEKU);
+ layer_off(_GREEKL);
+ } else {
+ if (lshift ^ rshift) { // if only one shift was pressed
+ layer_on(_GREEKL);
+ layer_off(_GREEKU);
+ }
+ }
+ } else {
+ if (record->event.pressed) {
+ if (lshift ^ rshift) { // if only one shift was pressed
+ register_code(KC_CAPS);
+ unregister_code(KC_CAPS);
+ }
+ }
+ }
+ return true;
+ break;
+
+ // press both ctrls to activate SYS layer
+ case KC_LCTL:
+ case KC_RCTL:
+ ;
+ bool lctrl = keyboard_report->mods & MOD_BIT(KC_LCTL);
+ bool rctrl = keyboard_report->mods & MOD_BIT(KC_RCTL);
+ if (record->event.pressed) {
+ if (lctrl ^ rctrl) { // if only one ctrl was pressed
+ layer_on(_SYS);
+ }
+ } else {
+ layer_off(_SYS);
+ }
+ return true;
+ break;
+
+ // QWERTZ style comma and dot: semicolon and colon when shifted
+ case KC_COMM:
+ if (record->event.pressed) {
+ if (lshift || rshift) {
+ if (lshift) unregister_code(KC_LSFT);
+ if (rshift) unregister_code(KC_RSFT);
+ register_code(KC_SCLN);
+ unregister_code(KC_SCLN);
+ if (lshift) register_code(KC_LSFT);
+ if (rshift) register_code(KC_RSFT);
+ } else {
+ register_code(KC_COMM);
+ unregister_code(KC_COMM);
+ }
+ }
+ return false;
+ break;
+ case KC_DOT:
+ if (record->event.pressed) {
+ if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) || (keyboard_report->mods & MOD_BIT(KC_RSFT))) {
+ register_code(KC_SCLN);
+ unregister_code(KC_SCLN);
+ } else {
+ register_code(KC_DOT);
+ unregister_code(KC_DOT);
+ }
+ }
+ return false;
+ break;
+
+ // layout switchers
+ case QWERTY:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+#ifdef LAYOUT_DVORAK
+ case DVORAK:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_DVORAK);
+ }
+ return false;
+ break;
+#endif
+#ifdef LAYOUT_COLEMAK
+ case COLEMAK:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_COLEMAK);
+ }
+ return false;
+ break;
+#endif
+#ifdef LAYOUT_WORKMAN
+ case WORKMAN:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_WORKMAN);
+ }
+ return false;
+ break;
+#endif
+#ifdef LAYOUT_NORMAN
+ case NORMAN:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_NORMAN);
+ }
+ return false;
+ break;
+#endif
+
+ // layer switcher
+ //
+ case GREEK:
+ if (record->event.pressed) {
+ if (lshift || rshift) {
+ layer_on(_GREEKU);
+ layer_off(_GREEKL);
+ } else {
+ layer_on(_GREEKL);
+ layer_off(_GREEKU);
+ }
+ } else {
+ layer_off(_GREEKU);
+ layer_off(_GREEKL);
+ }
+ return false;
+ break;
+
+ // OS switchers
+ case LINUX:
+ set_unicode_input_mode(UC_LNX);
+ return false;
+ break;
+ case WIN:
+ set_unicode_input_mode(UC_WINC);
+ return false;
+ break;
+ case OSX:
+ set_unicode_input_mode(UC_OSX);
+ return false;
+ break;
+
+ // glow mode changer
+#ifdef RGBSPS_ENABLE
+ case GLOW:
+ if (record->event.pressed) {
+ glow_mode++;
+ if (glow_mode > GLOW_FULL) {
+ glow_mode = GLOW_NONE;
+ }
+ led_reset();
+ rgbsps_send();
+ }
+ return false;
+ break;
+#endif
+
+ // faux clicky indicator
+#ifdef FAUXCLICKY_ENABLE
+ case FC_TOG:
+ return true;
+ break;
+#endif
+ }
+ return true;
+}
+
+void set_output_user(uint8_t output) {
+#ifdef ADAFRUIT_BLE_ENABLE
+ switch(output) {
+ case OUTPUT_USB:
+ led_set_output_usb();
+ break;
+ case OUTPUT_ADAFRUIT_BLE:
+ led_set_output_ble();
+ break;
+ default:
+ led_set_output_none();
+ }
+#endif
+}
+
+void matrix_init_user() {
+ _delay_ms(500); // give time for usb to initialize
+
+ set_unicode_input_mode(UC_LNX);
+
+#ifdef RGBSPS_ENABLE
+ led_init();
+#endif
+
+ // auto detect output on init
+#ifdef ADAFRUIT_BLE_ENABLE
+ uint8_t output = auto_detect_output();
+ if (output == OUTPUT_USB) {
+ set_output(OUTPUT_USB);
+ } else {
+ set_output(OUTPUT_ADAFRUIT_BLE);
+ }
+#endif
+}
+
+void turn_off_capslock() {
+ if (capslock) {
+ register_code(KC_CAPS);
+ unregister_code(KC_CAPS);
+ }
+}
+
+#ifdef RGBSPS_ENABLE
+ void matrix_scan_user(void) {
+ led_set_layer_indicator();
+ }
+
+ void battery_poll(uint8_t level) {
+ rgbsps_sethsv(LED_IND_BATTERY, level * 120/255, 255, 15);
+ rgbsps_send();
+ }
+
+ void led_set_user(uint8_t usb_led) {
+ bool new_capslock = usb_led & (1<<USB_LED_CAPS_LOCK);
+ if (new_capslock ^ capslock) { // capslock state is different
+ if ((capslock = new_capslock)) {
+ rgbsps_set(LED_IND_NUM, 15, 0, 0);
+ } else {
+ rgbsps_set(LED_IND_NUM, 0, 0, 0);
+ }
+ rgbsps_send();
+ }
+ }
+#endif
+
+#ifdef PS2_MOUSE_ENABLE
+ void ps2_mouse_init_user() {
+ uint8_t rcv;
+
+ // set TrackPoint sensitivity
+ PS2_MOUSE_SEND(0xE2, "tpsens: 0xE2");
+ PS2_MOUSE_SEND(0x81, "tpsens: 0x81");
+ PS2_MOUSE_SEND(0x4A, "tpsens: 0x4A");
+ PS2_MOUSE_SEND(0x49, "tpsens: 0x59");
+
+ // set TrackPoint Negative Inertia factor
+ PS2_MOUSE_SEND(0xE2, "tpnegin: 0xE2");
+ PS2_MOUSE_SEND(0x81, "tpnegin: 0x81");
+ PS2_MOUSE_SEND(0x4D, "tpnegin: 0x4D");
+ PS2_MOUSE_SEND(0x06, "tpnegin: 0x06");
+
+ // set TrackPoint speed
+ // (transfer function upper plateau speed)
+ PS2_MOUSE_SEND(0xE2, "tpsp: 0xE2");
+ PS2_MOUSE_SEND(0x81, "tpsp: 0x81");
+ PS2_MOUSE_SEND(0x60, "tpsp: 0x60");
+ PS2_MOUSE_SEND(0x61, "tpsp: 0x61");
+
+ // inquire pts status
+ rcv = ps2_host_send(0xE2);
+ rcv = ps2_host_send(0x2C);
+ rcv = ps2_host_recv_response();
+ if ((rcv & 1) == 1) {
+ // if on, disable pts
+ rcv = ps2_host_send(0xE2);
+ rcv = ps2_host_send(0x47);
+ rcv = ps2_host_send(0x2C);
+ rcv = ps2_host_send(0x01);
+ }
+ }
+#endif \ No newline at end of file
diff --git a/keyboards/handwired/promethium/keymaps/readme.md b/keyboards/handwired/promethium/keymaps/readme.md
new file mode 100644
index 000000000..527691389
--- /dev/null
+++ b/keyboards/handwired/promethium/keymaps/readme.md
@@ -0,0 +1,22 @@
+# How to add your own keymap
+
+Folders can be named however you'd like (will be approved upon merging), or should follow the format with a preceding `_`:
+
+ _[ISO 3166-1 alpha-2 code*]_[layout variant]_[layout name/author]
+
+\* See full list: https://en.wikipedia.org/wiki/ISO_3166-1#Officially_assigned_code_elements
+
+and contain the following files:
+
+* `keymap.c`
+* `readme.md` *recommended*
+* `config.h` *optional*, found automatically when compiling
+* `Makefile` *optional*, found automatically when compling
+
+When adding your keymap to this list, keep it organised alphabetically (select list, edit->sort lines), and use this format:
+
+ * **folder_name** description
+
+# List of Promethium keymaps
+
+
diff --git a/keyboards/handwired/promethium/promethium.c b/keyboards/handwired/promethium/promethium.c
new file mode 100644
index 000000000..4943f8c9f
--- /dev/null
+++ b/keyboards/handwired/promethium/promethium.c
@@ -0,0 +1,42 @@
+#include "promethium.h"
+#include "analog.h"
+#include "timer.h"
+#include "matrix.h"
+
+// cubic fit {3.3, 0}, {3.5, 2.9}, {3.6, 5}, {3.7, 8.6}, {3.8, 36}, {3.9, 62}, {4.0, 73}, {4.05, 83}, {4.1, 89}, {4.15, 94}, {4.2, 100}
+
+uint8_t battery_level(void) {
+ float voltage = analogRead(BATTERY_PIN) * 2 * 3.3 / 1024;
+ if (voltage < MIN_VOLTAGE) return 0;
+ if (voltage > MAX_VOLTAGE) return 255;
+ return (voltage - MIN_VOLTAGE) / (MAX_VOLTAGE - MIN_VOLTAGE) * 255;
+}
+
+__attribute__ ((weak))
+void battery_poll(uint8_t level) {
+}
+
+void matrix_init_kb(void) {
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ static uint16_t counter = BATTERY_POLL;
+ counter++;
+
+ if (counter > BATTERY_POLL) {
+ counter = 0;
+ battery_poll(battery_level());
+ }
+
+ matrix_scan_user();
+}
+
+void led_set_kb(uint8_t usb_led) {
+ led_set_user(usb_led);
+}
+
+__attribute__ ((weak))
+void led_set_user(uint8_t usb_led) {
+}
+
diff --git a/keyboards/handwired/promethium/promethium.h b/keyboards/handwired/promethium/promethium.h
new file mode 100644
index 000000000..260f140c5
--- /dev/null
+++ b/keyboards/handwired/promethium/promethium.h
@@ -0,0 +1,10 @@
+#ifndef PROMETHIUM_H
+#define PROMETHIUM_H
+
+#include "stdint.h"
+
+void battery_poll(uint8_t level);
+void led_set_kb(uint8_t usb_led);
+void led_set_user(uint8_t usb_led);
+
+#endif
diff --git a/keyboards/handwired/promethium/readme.md b/keyboards/handwired/promethium/readme.md
new file mode 100644
index 000000000..e63d2f1ad
--- /dev/null
+++ b/keyboards/handwired/promethium/readme.md
@@ -0,0 +1,13 @@
+Promethium Keyboard Firmware
+============================
+A handwired Planck based keyboard using the Adafruit Feather 32u4 Bluefruit LE controller.
+
+Features:
+
+* Single piece split form factor
+* Columnar stagger
+* Trackpoint
+* Bluetooth LE *TBD*
+* Battery
+* Per switch RGB LED
+* Proximity sensor for energy conservation *TBD* \ No newline at end of file
diff --git a/keyboards/handwired/promethium/rgbsps.c b/keyboards/handwired/promethium/rgbsps.c
new file mode 100644
index 000000000..f30badd35
--- /dev/null
+++ b/keyboards/handwired/promethium/rgbsps.c
@@ -0,0 +1,73 @@
+#include "light_ws2812.h"
+#include "rgbsps.h"
+
+struct cRGB led[RGBSPS_NUM];
+
+void rgbsps_set(uint8_t index, uint8_t r, uint8_t g, uint8_t b) {
+ led[index].r = r;
+ led[index].g = g;
+ led[index].b = b;
+}
+
+void rgbsps_setall(uint8_t r, uint8_t g, uint8_t b) {
+ for (uint16_t i = 0; i < RGBSPS_NUM; i++) {
+ rgbsps_set(i, r, g, b);
+ }
+}
+
+void rgbsps_turnoff(void) {
+ rgbsps_setall(0, 0, 0);
+}
+
+void rgbsps_send(void) {
+ ws2812_setleds(led, RGBSPS_NUM);
+}
+
+void rgbsps_sethsv(uint8_t index, uint16_t hue, uint8_t sat, uint8_t val) {
+ uint8_t r = 0, g = 0, b = 0, base, color;
+
+ if (sat == 0) { // Acromatic color (gray). Hue doesn't mind.
+ r = val;
+ g = val;
+ b = val;
+ } else {
+ base = ((255 - sat) * val) >> 8;
+ color = (val - base) * (hue % 60) / 60;
+
+ switch (hue / 60) {
+ case 0:
+ r = val;
+ g = base + color;
+ b = base;
+ break;
+ case 1:
+ r = val - color;
+ g = val;
+ b = base;
+ break;
+ case 2:
+ r = base;
+ g = val;
+ b = base + color;
+ break;
+ case 3:
+ r = base;
+ g = val - color;
+ b = val;
+ break;
+ case 4:
+ r = base + color;
+ g = base;
+ b = val;
+ break;
+ case 5:
+ r = val;
+ g = base;
+ b = val - color;
+ break;
+ }
+ }
+
+ rgbsps_set(index, r, g, b);
+}
+
diff --git a/keyboards/handwired/promethium/rgbsps.h b/keyboards/handwired/promethium/rgbsps.h
new file mode 100644
index 000000000..72612a7a8
--- /dev/null
+++ b/keyboards/handwired/promethium/rgbsps.h
@@ -0,0 +1,5 @@
+void rgbsps_set(uint8_t index, uint8_t r, uint8_t g, uint8_t b);
+void rgbsps_setall(uint8_t r, uint8_t g, uint8_t b);
+void rgbsps_turnoff(void);
+void rgbsps_send(void);
+void rgbsps_sethsv(uint8_t index, uint16_t hue, uint8_t sat, uint8_t val); \ No newline at end of file
diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk
new file mode 100644
index 000000000..e75cf4dde
--- /dev/null
+++ b/keyboards/handwired/promethium/rules.mk
@@ -0,0 +1,76 @@
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 8000000
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= no # Commands for debug and configuration
+NKRO_ENABLE ?= yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no # Audio output on port C6
+UNICODE_ENABLE ?= no # Unicode
+UNICODEMAP_ENABLE ?= yes
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+PS2_MOUSE_ENABLE ?= yes
+PS2_USE_INT ?= yes
+ADAFRUIT_BLE_ENABLE ?= yes
+API_SYSEX_ENABLE ?= no
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+
+SRC += $(QUANTUM_DIR)/light_ws2812.c
+SRC += rgbsps.c
+SRC += $(QUANTUM_DIR)/analog.c \ No newline at end of file
diff --git a/keyboards/handwired/reddot/Makefile b/keyboards/handwired/reddot/Makefile
new file mode 100755
index 000000000..191c6bb66
--- /dev/null
+++ b/keyboards/handwired/reddot/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/handwired/reddot/config.h b/keyboards/handwired/reddot/config.h
new file mode 100755
index 000000000..15f114297
--- /dev/null
+++ b/keyboards/handwired/reddot/config.h
@@ -0,0 +1,162 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER upils
+#define PRODUCT reddot
+#define DESCRIPTION A custom keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 19
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { B0, B1, B2, B3, E6 }
+#define MATRIX_COL_PINS { B7, D0, D1, D2, D3, C6, C7, D5, D4, D7, B4, B5, B6, F7, F6, F5, F4, F1, F0 }
+#define UNUSED_PINS
+
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+//#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/handwired/reddot/keymaps/default/keymap.c b/keyboards/handwired/reddot/keymaps/default/keymap.c
new file mode 100755
index 000000000..44ee2ce51
--- /dev/null
+++ b/keyboards/handwired/reddot/keymaps/default/keymap.c
@@ -0,0 +1,29 @@
+#include "reddot.h"
+#include "../../../../../quantum/keymap_extras/keymap_french.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = KEYMAP(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TAB, KC_CAPS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_FN0, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS,\
+ KC_LALT, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPRN, KC_BSPACE, KC_DELETE, FR_MINS, FR_EGRV, FR_UNDS, FR_CCED, FR_AGRV, FR_RPRN, FR_EQL, KC_INSERT, KC_HOME, KC_PGUP,\
+ KC_LGUI, FR_A, FR_Z, KC_E, KC_R, KC_T, KC_LSFT, KC_ENT, KC_Y, KC_U, KC_I, KC_O, KC_P, FR_CIRC, FR_DLR, KC_DELETE, KC_END, KC_PGDOWN, KC_KP_PLUS,\
+ KC_LCTL, FR_Q, KC_S, KC_D, KC_F, KC_G, KC_ENT, KC_H, KC_J, KC_K, KC_L, FR_M, FR_UGRV, FR_ASTR, KC_KP_1, KC_UP, KC_KP_3,\
+ FR_LESS, FR_W, KC_X, KC_C, KC_V, KC_B, KC_SPACE, KC_SPACE, KC_N, FR_COMM, FR_SCLN, FR_COLN, FR_EXLM, NO_ALGR, KC_LEFT, KC_DOWN, KC_RIGHT, KC_KP_ENTER),
+
+ [1] = KEYMAP(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TAB, KC_CAPS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_FN0, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS,\
+ KC_LALT, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPRN, KC_BSPACE, KC_DELETE, FR_MINS, FR_EGRV, FR_UNDS, FR_CCED, FR_AGRV, FR_RPRN, FR_EQL, KC_7, KC_8, KC_9,\
+ KC_LGUI, FR_A, FR_Z, KC_E, KC_R, KC_T, KC_LSFT, KC_ENT, KC_Y, KC_U, KC_I, KC_O, KC_P, FR_CIRC, FR_DLR, KC_4, KC_5, KC_6, KC_KP_PLUS,\
+ KC_LCTL, FR_Q, KC_S, KC_D, KC_F, KC_G, KC_ENT, KC_H, KC_J, KC_K, KC_L, FR_M, FR_UGRV, FR_ASTR, KC_1, KC_2, KC_3,\
+ FR_LESS, FR_W, KC_X, KC_C, KC_V, KC_B, KC_SPACE, KC_SPACE, KC_N, FR_COMM, FR_SCLN, FR_COLN, FR_EXLM, NO_ALGR, KC_LEFT, KC_DOWN, KC_RIGHT, KC_KP_ENTER),
+};
+
+
+const uint16_t PROGMEM fn_actions[] = {
+ ACTION_LAYER_TOGGLE(1),
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ return MACRO_NONE;
+};
+
diff --git a/keyboards/handwired/reddot/keymaps/default/readme.md b/keyboards/handwired/reddot/keymaps/default/readme.md
new file mode 100755
index 000000000..f04833c3e
--- /dev/null
+++ b/keyboards/handwired/reddot/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for handwired/reddot
diff --git a/keyboards/handwired/reddot/readme.md b/keyboards/handwired/reddot/readme.md
new file mode 100755
index 000000000..11bcba54a
--- /dev/null
+++ b/keyboards/handwired/reddot/readme.md
@@ -0,0 +1,24 @@
+## RedDot Specific Info ##
+
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent README.md](/README.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboard/reddot folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+To build with the default keymap, simply run `make`.
+
+### Other Keymaps
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` and see keymap document (you can find in top README.md) and existent keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
+```
+$ make KEYMAP=[default|jack|<name>]
+```
+Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboards/handwired/reddot/reddot.c b/keyboards/handwired/reddot/reddot.c
new file mode 100755
index 000000000..4e1efc06c
--- /dev/null
+++ b/keyboards/handwired/reddot/reddot.c
@@ -0,0 +1,7 @@
+#include "reddot.h"
+
+void matrix_init_kb(void) {
+
+ matrix_init_user();
+}
+
diff --git a/keyboards/handwired/reddot/reddot.h b/keyboards/handwired/reddot/reddot.h
new file mode 100755
index 000000000..f0c4be557
--- /dev/null
+++ b/keyboards/handwired/reddot/reddot.h
@@ -0,0 +1,20 @@
+#ifndef REDDOT_H
+#define REDDOT_H
+
+#include "quantum.h"
+
+#define KEYMAP( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k10, k11, k12, k13, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k30, k31, k32, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k50, k51, k52, k53, \
+ k60, k61, k62, k63, k64, k65, k66, k68, k69, k6A, k6B, k6C, k6D, k6E, k70, k71, k72, \
+ k80, k81, k82, k83, k84, k85, k86, k88, k89, k8A, k8B, k8C, k8D, k8E, k90, k91, k92, k93\
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k10, k11, k12, k13 }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k30, k31, k32, KC_NO }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k50, k51, k52, k53 }, \
+ { k60, k61, k62, k63, k64, k65, k66, KC_NO, k68, k69, k6A, k6B, k6C, k6D, k6E, k70, k71, k72, KC_NO }, \
+ { k80, k81, k82, k83, k84, k85, k86, KC_NO, k88, k89, k8A, k8B, k8C, k8D, k8E, k90, k91, k92, k93 } \
+}
+
+#endif
diff --git a/keyboards/handwired/reddot/rules.mk b/keyboards/handwired/reddot/rules.mk
new file mode 100755
index 000000000..9a4409fe6
--- /dev/null
+++ b/keyboards/handwired/reddot/rules.mk
@@ -0,0 +1,88 @@
+
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+# for avr upload
+USB ?= /dev/cu.usbmodem1421
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+
+ifdef TEENSY2
+ OPT_DEFS += -DATREUS_TEENSY2
+ ATREUS_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex
+else
+ OPT_DEFS += -DATREUS_ASTAR
+ OPT_DEFS += -DCATERINA_BOOTLOADER
+ ATREUS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
+ avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
+endif
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# MCU name
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= no # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no # Audio output on port C6
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif
+
+upload: build
+ $(ATREUS_UPLOAD_COMMAND)
+
diff --git a/keyboards/handwired/retro_refit/Makefile b/keyboards/handwired/retro_refit/Makefile
new file mode 100644
index 000000000..191c6bb66
--- /dev/null
+++ b/keyboards/handwired/retro_refit/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/retro_refit/config.h b/keyboards/handwired/retro_refit/config.h
index f2194e550..f2194e550 100644
--- a/keyboards/retro_refit/config.h
+++ b/keyboards/handwired/retro_refit/config.h
diff --git a/keyboards/retro_refit/keymaps/default/keymap.c b/keyboards/handwired/retro_refit/keymaps/default/keymap.c
index 405402d5e..405402d5e 100644
--- a/keyboards/retro_refit/keymaps/default/keymap.c
+++ b/keyboards/handwired/retro_refit/keymaps/default/keymap.c
diff --git a/keyboards/handwired/retro_refit/readme.md b/keyboards/handwired/retro_refit/readme.md
new file mode 100644
index 000000000..9f10edf9f
--- /dev/null
+++ b/keyboards/handwired/retro_refit/readme.md
@@ -0,0 +1,60 @@
+retro_refit keyboard firmware
+======================
+
+## Keyboard Info
+
+The retro refit keyboard used a Teensy to replace the original controller on a 386 "laptop".
+
+http://imgur.com/a/08Fyj
+
+This keyboard uses a KEYMAP macro that is a great example of using a non-standard row-column matrix. The keyboard in question had 11 rows and 8 columns, but the rows were not all horizontal, and the columns were not all vertical. For example, row 2 contained "Print Screen", "N", "M", ",", ".", "/", "Right Shift", and"Left Alt". Column 0 contained "F6", "7", "O", "'", "Q", "D", "B", "Left Alt", "Up Arrow", and "Down Arrow".
+
+The macro makes programming the keys easier and in a more straight-forward manner because it realigns the keys into a 6x15 sensible keyboard layout instead of the obtuse 11x8 matrix. Each Kxy corrisponds to a key in row x column y.
+
+```
+#define KEYMAP( \
+ K77, K05, K04, K03, K02, K01, K00, KA7, KA6, KA5, KA4, KA3, KA2, K11, K94, \
+ K27, K76, K75, K74, K73, K72, K71, K70, K67, K66, K65, K64, K63, K62, KA1, \
+ K61, K60, K57, K56, K55, K54, K53, K52, K51, K50, K47, K46, K45, K97, \
+ K43, K42, K41, K40, K37, K36, K35, K34, K33, K32, K31, K30, K44, K87, \
+ K26, K24, K23, K22, K21, K20, K17, K16, K15, K14, K13, K12, KA0, K91, \
+ K10, K06, K25, K07, K86, K85, K95, K90, K93 \
+) { \
+{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, }, \
+{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, }, \
+{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, }, \
+{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, }, \
+{ KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47, }, \
+{ KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57, }, \
+{ KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67, }, \
+{ KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77, }, \
+{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K85, KC_##K86, KC_##K87, }, \
+{ KC_##K90, KC_##K91, KC_NO, KC_##K93, KC_##K94, KC_##K95, KC_NO, KC_##K97, }, \
+{ KC_##KA0, KC_##KA1, KC_##KA2, KC_##KA3, KC_##KA4, KC_##KA5, KC_##KA6, KC_##KA7, } \
+}
+```
+
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent readme.md](/readme.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/retro_refit folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+To build with the default keymap, simply run `make default`.
+
+### Other Keymaps
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` and see keymap document (you can find in top readme.md) and existent keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
+```
+$ make [default|jack|<name>]
+```
+
+Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder. \ No newline at end of file
diff --git a/keyboards/retro_refit/retro_refit.c b/keyboards/handwired/retro_refit/retro_refit.c
index 3d610eba3..3d610eba3 100644
--- a/keyboards/retro_refit/retro_refit.c
+++ b/keyboards/handwired/retro_refit/retro_refit.c
diff --git a/keyboards/retro_refit/retro_refit.h b/keyboards/handwired/retro_refit/retro_refit.h
index 109acdc39..109acdc39 100644
--- a/keyboards/retro_refit/retro_refit.h
+++ b/keyboards/handwired/retro_refit/retro_refit.h
diff --git a/keyboards/retro_refit/Makefile b/keyboards/handwired/retro_refit/rules.mk
index 2dd8cc5f7..10fbfa5c9 100644
--- a/keyboards/retro_refit/Makefile
+++ b/keyboards/handwired/retro_refit/rules.mk
@@ -66,9 +66,3 @@ NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https
# MIDI_ENABLE ?= YES # MIDI controls
# UNICODE_ENABLE ?= YES # Unicode
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
-
-
-ifndef QUANTUM_DIR
- include ../../Makefile
-endif
-
diff --git a/keyboards/handwired/rules.mk b/keyboards/handwired/rules.mk
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/keyboards/handwired/rules.mk
diff --git a/keyboards/handwired/traveller/Makefile b/keyboards/handwired/traveller/Makefile
new file mode 100644
index 000000000..191c6bb66
--- /dev/null
+++ b/keyboards/handwired/traveller/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/handwired/traveller/config.h b/keyboards/handwired/traveller/config.h
new file mode 100644
index 000000000..2b82da447
--- /dev/null
+++ b/keyboards/handwired/traveller/config.h
@@ -0,0 +1,173 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER You
+#define PRODUCT traveller
+#define DESCRIPTION A custom keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 13
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { D0, D1, D3, D2 }
+ // no I can't say why this order seemed like a good idea
+#define MATRIX_COL_PINS { B5, D6, B7, B6, F6, B1, B3, F7, B4, E6, D7, C6, D4 }
+#define UNUSED_PINS
+
+// LED stuff
+#define RGB_DI_PIN B2
+//#define RBLIGHT_TIMER
+#define RGBLED_NUM 1 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+//#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/handwired/traveller/keymaps/default/keymap.c b/keyboards/handwired/traveller/keymaps/default/keymap.c
new file mode 100644
index 000000000..13d889ab8
--- /dev/null
+++ b/keyboards/handwired/traveller/keymaps/default/keymap.c
@@ -0,0 +1,305 @@
+#include "traveller.h"
+#include "mousekey.h"
+#include "action_layer.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.
+#define _QW 0
+#define _LW 1
+#define _HI 2
+#define _NAV 4
+#define _CUR 5
+#define _FKEYS 6
+#define _TRNS 8
+
+// We do the same trick for functions
+#define RGBLED_TOGGLE 10
+#define _HIOUT 15
+#define _LWOUT 16
+// Macros
+#define MDL 4
+#define MDR 5
+#define MUR 6
+#define MUL 3
+
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Qwerty
+ * ,-----------------------------------------. .-----------------------------------------.
+ * | NAV | ` ~ | W | E | R | T | | Y | U | I | O | - | = |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Tab | Q | S | D | F | G | | H | J | K | L | P | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------+------|
+ *|ctrl/esc| A | X | C | V | B |Ctrl /| N | M | , | . | ; | ' |
+ * |------+------+------+------+------+------+ // +------+------+------+------+------+------|
+ * | Shift| Z | Del | GUI | Low | Bspc |/Enter| Spc | Hi | GUI | Alt | / |Shift |
+ * `------------------------------------------------------------------------------------------'
+ *
+ */
+[_QW] = KEYMAP(
+ F(_NAV), KC_GRV, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_MINS, KC_EQL,
+ KC_TAB, KC_Q, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_P, KC_BSLS,
+ CTL_T(KC_ESC), KC_A, KC_X, KC_C, KC_V, KC_B, KC_RCTL, KC_N, KC_M, KC_COMM, KC_DOT, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_DEL, KC_LGUI, MO(_LW), KC_BSPC, KC_ENTER, KC_SPC, MO(_HI), KC_RGUI, KC_RALT, KC_SLSH, KC_RSFT
+ ),
+
+/* LOW - numbers, missing or awkward programming keys
+ Doubled 1 key allows lazy reach with ring finger.
+ * ,-----------------------------------------. .-----------------------------------------.
+ * | FKeys| 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |Ctrl-alt-del|
+ * |------+------+------+------+------+------| +------+------+------+------+------+------|
+ * | Tab | 1 | ] | ( | ) | | | * | ( | ) | [ | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------+------|
+ * | Caps | [ | | { | } | ` | /| # | { | } | | ] | |
+ * |------+------+------+------+------+------+ // +------+------+------+------+------+------|
+ * | Shift| | | | Low | |/ | | Hi | | | |Shift |
+ * `------------------------------------------------------------------------------------------'
+ *
+ */
+
+[_LW] = KEYMAP(
+ F(_FKEYS), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, LCTL(LALT(KC_DEL)) ,
+ KC_TRNS, KC_1, KC_RBRC, KC_LPRN, KC_RPRN, KC_NO, KC_ASTR, KC_LPRN, KC_RPRN, KC_LBRC, KC_NO, KC_NO,
+ KC_CAPS, KC_LBRC, KC_NO, KC_LCBR, KC_RCBR, KC_TILD, KC_TRNS, KC_HASH, KC_LCBR, KC_RCBR, KC_NO, KC_RBRC, KC_NO,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+/* HI - Punctuation, shell and
+url ://@.com row on bottom, && is opposite || ^$ are in regex order: ^.*$
+Right hand nav keys work pretty well chorded with the Right hand Hi Key
+ * ,-----------------------------------------. .-----------------------------------------.
+ * |FKEYS | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | ! | & | "|" | $ | % | | Vol+| Mute| | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------+------|
+ * | CAPS | ^ | : | . | * | - | /| Vol-| Play | PgUp | Home | Up | End |
+ * |------+------+------+------+------+------+ // +------+------+------+------+------+------|
+ * | | / | | | Low | |/ | | Hi | PgDn | Left| Down | Right |
+ * `------------------------------------------------------------------------------------------'
+ *
+ */
+
+[_HI] = KEYMAP(
+ F(_FKEYS), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS,
+ KC_TRNS, KC_EXLM, KC_AMPR, KC_PIPE, KC_DLR, KC_PERC, KC_VOLU, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_CAPS, KC_CIRC, KC_COLN, KC_DOT, KC_ASTR, KC_MINS, KC_TRNS, KC_VOLD, KC_PPLS, KC_PGUP, KC_HOME, KC_UP, KC_END,
+ KC_TRNS, KC_SLSH, KC_TRNS, KC_TRNS, F(_LW), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT
+),
+
+/* NAV - mouse & navigation
+//gui left and right are line home/end, or fore & back in browser
+// Mouse buttons are reversed for comfort - bigger stretch is to the right button.
+
+ * ,-----------------------------------------. .-----------------------------------------.
+* | NAV | | | Up | |Gui-> | | MwU | MS_UL| MS_U |MS_UR | |Ms Norm|
+* |------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | |Gui<- | Left | Down |Right | C^E | | BTN3 | MS_L |MS Up | MS_R | |Ms Fast |
+* |------+------+------+------+------+------|------|------+------+------+------+------+--------|
+* | | C^A | GUI X| GUI C| GUI_V| |Enter/| MWD | M_DL |MS Dwn|MS_DR | Up |Ms Slow |
+* |------+------+------+------+------+------+ // +------+------+------+------+------+------|
+* | | GuiZ | | | Low | |/ButnR|ButnL | Hi | | Left | Down | Right |
+* `------------------------------------------------------------------------------------------'
+*/
+
+[_NAV] = KEYMAP(
+ F(_NAV), KC_NO, KC_NO, KC_UP, KC_NO, RGUI(KC_RIGHT), KC_WH_U, M(MUL), KC_MS_U, M(MUR), KC_NO, KC_ACL2,
+ KC_TRNS, RGUI(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_E), KC_BTN3, KC_MS_L, KC_MS_U, KC_MS_R, KC_NO, KC_ACL1,
+ KC_TRNS, LCTL(KC_A), LGUI(KC_X),RGUI(KC_C), RGUI(KC_V),KC_NO, KC_ENTER, KC_WH_D, M(MDL), KC_MS_D, M(MDR), KC_UP, KC_ACL0,
+ KC_TRNS, RGUI(KC_Z), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN1, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT
+),
+
+/* FKEYS - Funtion keys & mac stuff
+ * ,-----------------------------------------. .-----------------------------------------.
+ * | FKEYS| F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | Ctrl |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | F11 | F12 | F13 | F14 | F15 | Alt |
+ * |------+------+------+------+------+------|------+------+------+------+------+------+------|
+ * |Qwerty| | | | | | /| | | | | | Del |
+ * |------+------+------+------+------+------+ // +------+------+------+------+------+------|
+ * | . |RGBTog| . | | LO | Bspc |/ | | HI | | | | |
+ * `------------------------------------------------------------------------------------------'
+ *
+ */
+
+[_FKEYS] = KEYMAP(
+ F(_FKEYS), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_RCTL,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_LALT ,
+ F(_QW), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL,
+ KC_TRNS, F(RGBLED_TOGGLE), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+
+/* TRNS - skeleton for laters
+ * ,-----------------------------------------. .-----------------------------------------.
+ * | . | . | . | . | . | . | | ^ | & | * | ( | ) | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | . | . | . | . | . | . | | 6 | 7 | 8 | 9 | 0 | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------+------|
+ * | . | . | . | . | . | . | /| | | | . | ; | " |
+ * |------+------+------+------+------+------+ // +------+------+------+------+------+------|
+ * | . | . | . | GUI | LO | . |/ | Spc | HI | GUI | M0 | / |LSFT |
+ * `------------------------------------------------------------------------------------------'
+ *
+ */
+
+[_TRNS] = {
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+ }
+
+
+};
+
+
+const uint16_t PROGMEM fn_actions[] = {
+ [_QW] = ACTION_LAYER_ON(_QW,ON_RELEASE), // return to QWERTY layer
+ [_LW] = ACTION_LAYER_TAP_TOGGLE(_LW), // Turn on LW when holding, or tap 3 times to switch
+ [_HI] = ACTION_LAYER_TAP_TOGGLE(_HI), // Turn on LW when holding, or tap 3 times to switch
+ [_NAV] = ACTION_LAYER_TOGGLE(_NAV),
+ [_FKEYS] = ACTION_LAYER_TOGGLE(_FKEYS),
+ [_LWOUT] = ACTION_LAYER_OFF(_LW,ON_RELEASE),
+ [_HIOUT] = ACTION_LAYER_OFF(_HI,ON_RELEASE),
+
+ // Functions
+ [RGBLED_TOGGLE] = ACTION_FUNCTION(RGBLED_TOGGLE),
+
+};
+
+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);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+
+ // from algernon's ErgoDox EZ layout,
+ case MUL:
+ if (record->event.pressed) {
+ mousekey_on(KC_MS_UP);
+ mousekey_on(KC_MS_LEFT);
+ } else {
+ mousekey_off(KC_MS_UP);
+ mousekey_off(KC_MS_LEFT);
+ }
+ mousekey_send();
+ break;
+
+ case MUR:
+ if (record->event.pressed) {
+ mousekey_on(KC_MS_UP);
+ mousekey_on(KC_MS_RIGHT);
+ } else {
+ mousekey_off(KC_MS_UP);
+ mousekey_off(KC_MS_RIGHT);
+ }
+ mousekey_send();
+ break;
+
+ case MDL:
+ if (record->event.pressed) {
+ mousekey_on(KC_MS_DOWN);
+ mousekey_on(KC_MS_LEFT);
+ } else {
+ mousekey_off(KC_MS_DOWN);
+ mousekey_off(KC_MS_LEFT);
+ }
+ mousekey_send();
+ break;
+
+ case MDR:
+ if (record->event.pressed) {
+ mousekey_on(KC_MS_DOWN);
+ mousekey_on(KC_MS_RIGHT);
+ } else {
+ mousekey_off(KC_MS_DOWN);
+ mousekey_off(KC_MS_RIGHT);
+ }
+ mousekey_send();
+ break;
+
+
+ }
+ return MACRO_NONE;
+};
+
+
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ switch (id) {
+ case RGBLED_TOGGLE:
+ //led operations
+ if (record->event.pressed) {
+ rgblight_toggle();
+ }
+ break;
+ }
+}
+
+
+
+void LayerLEDSet(uint8_t layr) {
+
+ switch (layr) {
+ case _QW:
+ rgblight_setrgb(0,20, 0); // dim green
+ break;
+ case _LW:
+ // deep purple
+ rgblight_setrgb(20,0,35);
+ break;
+ case _HI:
+ // light blue
+ rgblight_setrgb(0,20,20);
+ break;
+ case _NAV:
+ // Yellowy orange
+ rgblight_setrgb(25,20,0); // brighter
+ break;
+ case _FKEYS:
+ // RED
+ rgblight_setrgb(20,0,0); // brighter
+ break;
+ default:
+ rgblight_setrgb(20,2,20);//error
+ break;
+ }
+
+ return;
+
+}
+
+void matrix_init_user(void) {
+}
+
+// Bleah globals need to be initialized.
+uint8_t old_layer=_QW;
+
+void matrix_scan_user(void) {
+ uint8_t layer = biton32(layer_state);
+ if (old_layer != layer) {
+ LayerLEDSet(layer);
+ old_layer=layer;
+ }
+}
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+
+}
+
+
diff --git a/keyboards/handwired/traveller/keymaps/default/readme.md b/keyboards/handwired/traveller/keymaps/default/readme.md
new file mode 100644
index 000000000..7ddc40b3c
--- /dev/null
+++ b/keyboards/handwired/traveller/keymaps/default/readme.md
@@ -0,0 +1,2 @@
+# The default keymap for handwired/traveller
+this is a kitchen sink build
diff --git a/keyboards/handwired/traveller/readme.md b/keyboards/handwired/traveller/readme.md
new file mode 100644
index 000000000..646844b1d
--- /dev/null
+++ b/keyboards/handwired/traveller/readme.md
@@ -0,0 +1,35 @@
+traveler keyboard firmware
+======================
+
+## Traveller Specific Info ##
+The traveller is a varient on the atreus keyboard.
+Like the Atreus, it is designed to be a good compromise between size and ergonomics.
+
+key differences are
+- an additional column for each pinky
+- an RGB LED in the center to show the current layer
+- more finger stagger, splay angle and contoured keycaps (F2 profile for space key).
+
+You can make your own traveller keyboard by using the openscad tools from the atreus repository, and adding a hole for the LED to shine through.
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent README.md](/README.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboard/traveler folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+To build with the default keymap, simply run `make`.
+
+### Other Keymaps
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` and see keymap document (you can find in top README.md) and existent keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
+```
+$ make KEYMAP=[default|jack|<name>]
+```
+Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboards/handwired/traveller/rules.mk b/keyboards/handwired/traveller/rules.mk
new file mode 100644
index 000000000..12a4b71f4
--- /dev/null
+++ b/keyboards/handwired/traveller/rules.mk
@@ -0,0 +1,89 @@
+
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+# for avr upload
+USB ?= /dev/cu.usbmodem1421
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+
+ifdef TEENSY2
+ OPT_DEFS += -DATREUS_TEENSY2
+ ATREUS_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex
+else
+ OPT_DEFS += -DATREUS_ASTAR
+ OPT_DEFS += -DCATERINA_BOOTLOADER
+ ATREUS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
+ avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
+endif
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# MCU name
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= no # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no # Audio output on port C6
+RGBLIGHT_ENABLE = yes
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif
+
+upload: build
+ $(ATREUS_UPLOAD_COMMAND)
+
diff --git a/keyboards/handwired/traveller/traveller.c b/keyboards/handwired/traveller/traveller.c
new file mode 100644
index 000000000..9d2534130
--- /dev/null
+++ b/keyboards/handwired/traveller/traveller.c
@@ -0,0 +1,61 @@
+#include "traveller.h"
+
+__attribute__ ((weak))
+void matrix_init_user(void) {
+ // leave this function blank - it can be defined in a keymap file
+};
+
+__attribute__ ((weak))
+void matrix_scan_user(void) {
+ // leave this function blank - it can be defined in a keymap file
+}
+
+__attribute__ ((weak))
+void process_action_user(keyrecord_t *record) {
+ // leave this function blank - it can be defined in a keymap file
+}
+
+__attribute__ ((weak))
+void led_set_user(uint8_t usb_led) {
+ // leave this function blank - it can be defined in a keymap file
+}
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+#ifdef RGBLIGHT_ENABLE
+ rgblight_init();
+ rgblight_mode(1); // solid, no timer
+ rgblight_setrgb(0,20,0);// dim green, happens to be same as _QW
+#endif
+
+// Turn status LED on
+ DDRC |= (1<<7);
+ PORTC |= (1<<7);
+
+ matrix_init_user();
+}
+
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // put your per-action keyboard code here
+ // runs for every action, just before processing by the firmware
+
+ return process_record_user(keycode, record);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ led_set_user(usb_led);
+}
+
+
diff --git a/keyboards/handwired/traveller/traveller.h b/keyboards/handwired/traveller/traveller.h
new file mode 100644
index 000000000..972a1a94a
--- /dev/null
+++ b/keyboards/handwired/traveller/traveller.h
@@ -0,0 +1,32 @@
+#ifndef TRAVELLER_H
+#define TRAVELLER_H
+
+#include "quantum.h"
+#include "led.h"
+
+#ifdef RGBLIGHT_ENABLE
+ #include "rgblight.h"
+#endif
+#ifdef BACKLIGHT_ENABLE
+ #include "backlight.h"
+#endif
+
+
+
+// This a shortcut to help you visually see your layout.
+// The first section contains all of the arguements
+// The second converts the arguments into a two-dimensional array
+#define KEYMAP( \
+ k00, k01, k02, k03, k04, k05, k07, k08, k09, k0a, k0b, k0c, \
+ k10, k11, k12, k13, k14, k15, k17, k18, k19, k1a, k1b, k1c, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, KC_NO, k07, k08, k09, k0a, k0b, k0c }, \
+ { k10, k11, k12, k13, k14, k15, KC_NO, k17, k18, k19, k1a, k1b, k1c }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c } \
+}
+
+#endif
diff --git a/keyboards/hhkb/Makefile b/keyboards/hhkb/Makefile
index 6fe973e1e..4e2a6f00f 100644
--- a/keyboards/hhkb/Makefile
+++ b/keyboards/hhkb/Makefile
@@ -1,90 +1,3 @@
-
-
-# project specific files
-SRC = matrix.c
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-#OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-# as per original hasu settings
-OPT_DEFS += -DBOOTLOADER_SIZE=512
-
-# Build Options
-# 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)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-CUSTOM_MATRIX ?= yes # Custom matrix file for the HHKB
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
-# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
-# MIDI_ENABLE ?= YES # MIDI controls
-# UNICODE_ENABLE ?= YES # Unicode
-# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
-
-
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
-endif
-
-ifneq (, $(findstring yes, $(HHKB_JP)))
- OPT_DEFS += -DHHKB_JP
-endif
-
-debug-on: EXTRAFLAGS += -DDEBUG -DDEBUG_ACTION
-debug-on: all
-
-debug-off: EXTRAFLAGS += -DNO_DEBUG -DNO_PRINT
-debug-off: OPT_DEFS := $(filter-out -DCONSOLE_ENABLE,$(OPT_DEFS))
-debug-off: all
+endif \ No newline at end of file
diff --git a/keyboards/hhkb/keymaps/dbroqua/keymap.c b/keyboards/hhkb/keymaps/dbroqua/keymap.c
new file mode 100644
index 000000000..2b6d3901a
--- /dev/null
+++ b/keyboards/hhkb/keymaps/dbroqua/keymap.c
@@ -0,0 +1,92 @@
+/*
+ * dbroqua HHKB Layout
+ */
+#include "hhkb.h"
+
+#define BASE 0
+#define FN 1
+#define MOUSE 2
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* BASE Level: Default Layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
+ * |-----------------------------------------------------------------------------------------+
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
+ * |-----------------------------------------------------------------------------------------+
+ * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
+ * |-----------------------------------------------------------------------------------------+
+ * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | fn |
+ * +-----------------------------------------------------------------------------------------+
+ * | Gui | Alt | Space | AltGr |Mouse|
+ * `----------------------------------------------------------------´
+ */
+ [BASE] = KEYMAP(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(FN), \
+ KC_LGUI, KC_LALT, /* */ KC_SPC, KC_RALT, MO(MOUSE)
+ ),
+
+ /* FN Layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F0 | F11 | F12 | Ins | Del|
+ * |-----------------------------------------------------------------------------------------+
+ * | Caps | | | | | | | |PrtSc| Slck| Paus| Up | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left |Right| |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Prev| Play| Next| | | + | - | End |PgDwn| Down| | |
+ * +-----------------------------------------------------------------------------------------+
+ * | | | | Stop | |
+ * `----------------------------------------------------------------´
+ */
+ [FN] = KEYMAP(
+ KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, \
+ KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS
+ ),
+
+ /* MOUSE Layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | WUp | | | | | | | | Btn1| Up | Btn2| |
+ * |-----------------------------------------------------------------------------------------+
+ * | | WLt | WDn | WRt | | | | | | | Left |Right| |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | | | Btn3| Down| | |
+ * +-----------------------------------------------------------------------------------------+
+ * | | | | | |
+ * `----------------------------------------------------------------´
+ */
+ [MOUSE] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, \
+ KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_R, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN3, KC_MS_D, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
+
+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/keyboards/hhkb/keymaps/dbroqua/readme.md b/keyboards/hhkb/keymaps/dbroqua/readme.md
new file mode 100644
index 000000000..0afebc84c
--- /dev/null
+++ b/keyboards/hhkb/keymaps/dbroqua/readme.md
@@ -0,0 +1,9 @@
+# Dbroqua Layout
+
+* Online keyboard layout editor: http://www.keyboard-layout-editor.com/#/gists/78eaf35e80bb714eea80cb4049dedb01
+
+# Programming Instructions:
+Enter into programming mode and run the following command.
+```
+$ sudo KEYMAP=dbroqua make dfu
+``` \ No newline at end of file
diff --git a/keyboards/hhkb/keymaps/jp/Makefile b/keyboards/hhkb/keymaps/jp/Makefile
index 92986292a..a7f700f01 100644
--- a/keyboards/hhkb/keymaps/jp/Makefile
+++ b/keyboards/hhkb/keymaps/jp/Makefile
@@ -1 +1 @@
-HHKB_JP=yes
+OPT_DEFS += -DHHKB_JP
diff --git a/keyboards/hhkb/keymaps/rdg_jp/Makefile b/keyboards/hhkb/keymaps/rdg_jp/Makefile
index 92986292a..a7f700f01 100644
--- a/keyboards/hhkb/keymaps/rdg_jp/Makefile
+++ b/keyboards/hhkb/keymaps/rdg_jp/Makefile
@@ -1 +1 @@
-HHKB_JP=yes
+OPT_DEFS += -DHHKB_JP
diff --git a/keyboards/hhkb/keymaps/sh_jp/Makefile b/keyboards/hhkb/keymaps/sh_jp/Makefile
new file mode 100644
index 000000000..a7f700f01
--- /dev/null
+++ b/keyboards/hhkb/keymaps/sh_jp/Makefile
@@ -0,0 +1 @@
+OPT_DEFS += -DHHKB_JP
diff --git a/keyboards/hhkb/keymaps/sh_jp/README.md b/keyboards/hhkb/keymaps/sh_jp/README.md
new file mode 100644
index 000000000..4f82f2f4e
--- /dev/null
+++ b/keyboards/hhkb/keymaps/sh_jp/README.md
@@ -0,0 +1,86 @@
+###Keymaps with both Dvorak layout and QWER layout for HHKB JP.
+
+1. The default layout is Dvorak.
+2. Use `Tog` to toggle between Dvorak and QWER
+3. Holding `NewCmd`, the original `LftCmd`, will activate the `NewCmd` layer which means `NewCmd+key` is the same as `Cmd+key` in normal QWER layout.<sup>[1](#cmdTab)</sup>
+ - For example, no matter you are in Dvorak layout or QWER layout, you can use `Cmd+s` to save a currently editing file.
+4. `Symb` makes type symbols easier
+ - for example: `Symb+a` is `!`.
+5. `Spc+key` equals to `Shft+key` while using `Spc` alone will yield a space as usual.
+6. There's an extra `Tab` in the last line.
+
+```
+Layer DVOR:
+,-----------------------------------------------------------.
+|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| |Bsp|
+|-----------------------------------------------------------|
+|Tab | '| ,| .| P| Y| F| G| C| R| L| /| =| |
+|------------------------------------------------------` Ent|
+|Ctrl | A| O| E| U| I| D| H| T| N| S| -| \| |
+|-----------------------------------------------------------|
+|Shft | ;| Q| J| K| X| B| M| W| V| Z| | Up| |
+|-----------------------------------------------------------|
+|FN| `| Alt|NewCmd|Symb| Spc |Symb|Tab|RCmd|Tog|Lft|Dwn|Rgh|
+`-----------------------------------------------------------'
+```
+
+```
+Layer QWER:
+,-----------------------------------------------------------.
+|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| -| =| |Bsp|
+|-----------------------------------------------------------|
+|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| |
+|------------------------------------------------------` Ent|
+|Ctrl | A| S| D| F| G| H| J| K| L| ;| '| \| |
+|-----------------------------------------------------------|
+|Shft | Z| X| C| V| B| N| M| ,| .| /| | Up| |
+|-----------------------------------------------------------|
+|FN| `| Alt|NewCmd|Symb| Spc |Symb|Tab|Cmd|Tog|Lft|Dwn|Rgh|
+`-----------------------------------------------------------'
+```
+
+```
+Layer Symb:
+,-----------------------------------------------------------.
+| | | | | | | | | | | | | | | |
+|-----------------------------------------------------------|
+| | | | [| ]| | | {| }| | | | | |
+|------------------------------------------------------` |
+| | !| @| #| $| %| ^| &| *| (| )| '| \| |
+|-----------------------------------------------------------|
+| | | | | | | | | | | | | | |
+|-----------------------------------------------------------|
+| | | | | | | | | | | | | |
+`-----------------------------------------------------------'
+```
+
+```
+Layer FUNC: HHKB mode (HHKB Fn)
+,-----------------------------------------------------------.
+|Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
+|-----------------------------------------------------------|
+|Caps | | | | | | | |Psc|Slk|Pus|Up | | |
+|------------------------------------------------------` |
+| |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig| | |
+|-----------------------------------------------------------|
+| | | | | | | +| -|End|PgD|Dow| | | |
+|-----------------------------------------------------------|
+| || | | | | | | | | || | | |
+`-----------------------------------------------------------'
+```
+
+```
+Empty Layer:
+,-----------------------------------------------------------.
+| | | | | | | | | | | | | | | |
+|-----------------------------------------------------------|
+| | | | | | | | | | | | | | |
+|------------------------------------------------------` |
+| | | | | | | | | | | | | | |
+|-----------------------------------------------------------|
+| | | | | | | | | | | | | | |
+|-----------------------------------------------------------|
+| | | | | | | | | | | | | |
+`-----------------------------------------------------------'
+```
+<a name="cmdTab">1</a>: `NewCmd + Tab` does not work, you can use `RCmd+Tab` to switch among applications.
diff --git a/keyboards/hhkb/keymaps/sh_jp/keymap.c b/keyboards/hhkb/keymaps/sh_jp/keymap.c
new file mode 100644
index 000000000..d4cb3b041
--- /dev/null
+++ b/keyboards/hhkb/keymaps/sh_jp/keymap.c
@@ -0,0 +1,60 @@
+#include "hhkb.h"
+
+#define _______ KC_TRNS
+
+enum {
+ DVOR,
+ QWER,
+ NEW_CMD,
+ SYMB,
+ FUNC
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [DVOR] = KEYMAP_JP(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_JYEN, KC_BSPC,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL,
+ KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_BSLS, KC_ENT,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RO, KC_UP, KC_RSFT,
+ MO(FUNC), KC_ZKHK, KC_LALT, MO(NEW_CMD), MO(SYMB), MT(MOD_LSFT, KC_SPC), MO(SYMB), KC_TAB, KC_RGUI, TG(QWER), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [QWER] = KEYMAP_JP(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_JYEN, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_UP, KC_RSFT,
+ MO(FUNC), KC_ZKHK, KC_LALT, MO(NEW_CMD), MO(SYMB), MT(MOD_LSFT, KC_SPC), MO(SYMB), KC_TAB, KC_RGUI, _______, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [NEW_CMD] = KEYMAP_JP(
+ _______, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), _______, _______, _______, LGUI(KC_BSPC),
+ _______, LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC),
+ _______, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), _______, _______, _______, _______,
+ LGUI(KC_LSFT), LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), _______, _______, _______,
+ _______, _______, _______, _______, _______, LGUI(KC_SPC), _______, _______, _______, _______, LGUI(KC_LEFT), LGUI(KC_DOWN), LGUI(KC_RGHT)
+ ),
+
+ [SYMB] = KEYMAP_JP(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, LSFT(KC_LBRC), LSFT(KC_RBRC), _______, _______,_______, _______,
+ _______, LSFT(KC_1),LSFT(KC_2),LSFT(KC_3),LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [FUNC] = KEYMAP_JP(
+ KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
+ KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______,
+ _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT,
+ _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______
+ )
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) {
+ return MACRO_NONE;
+}
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
diff --git a/keyboards/hhkb/keymaps/shela/Makefile b/keyboards/hhkb/keymaps/shela/Makefile
new file mode 100644
index 000000000..d0586bda6
--- /dev/null
+++ b/keyboards/hhkb/keymaps/shela/Makefile
@@ -0,0 +1 @@
+SRC += action_pseudo_lut.c
diff --git a/keyboards/hhkb/keymaps/shela/action_pseudo_lut.c b/keyboards/hhkb/keymaps/shela/action_pseudo_lut.c
new file mode 100644
index 000000000..b205968c7
--- /dev/null
+++ b/keyboards/hhkb/keymaps/shela/action_pseudo_lut.c
@@ -0,0 +1,142 @@
+#include "quantum.h"
+#include "action_pseudo_lut.h"
+
+static uint8_t send_key_shift_bit[SHIFT_BIT_SIZE];
+
+/*
+ * Pseudo layout action.
+ * This action converts a keycode in order to output the character according to the keymap you specified
+ * still your keyboard layout recognized wrongly on your OS.
+ * Memo: Using other layer keymap to get keycode
+ */
+void action_pseudo_lut(keyrecord_t *record, uint8_t base_keymap_id, const uint16_t (*keymap)[2]) {
+ static uint8_t prev_shift;
+ uint16_t keycode;
+ uint16_t pseudo_keycode;
+
+ /* get keycode from keymap you specified */
+ keycode = keymap_key_to_keycode(base_keymap_id, record->event.key);
+
+ prev_shift = keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+
+ if (record->event.pressed) {
+ /* when magic commands entered, keycode does not converted */
+ if (IS_COMMAND()) {
+ if (prev_shift) {
+ add_shift_bit(keycode);
+ }
+ register_code(keycode);
+ return;
+ }
+
+ if (prev_shift) {
+ pseudo_keycode = convert_keycode(keymap, keycode, true);
+ dprintf("pressed: %02X, converted: %04X\n", keycode, pseudo_keycode);
+ add_shift_bit(keycode);
+
+ if (IS_LSFT(pseudo_keycode)) {
+ register_code(QK_LSFT ^ pseudo_keycode);
+ } else {
+ /* delete shift mod temporarily */
+ del_mods(prev_shift);
+ send_keyboard_report();
+ register_code(pseudo_keycode);
+ add_mods(prev_shift);
+ send_keyboard_report();
+ }
+ } else {
+ pseudo_keycode = convert_keycode(keymap, keycode, false);
+ dprintf("pressed: %02X, converted: %04X\n", keycode, pseudo_keycode);
+
+ if (IS_LSFT(pseudo_keycode)) {
+ add_weak_mods(MOD_BIT(KC_LSFT));
+ send_keyboard_report();
+ register_code(QK_LSFT ^ pseudo_keycode);
+ /* on Windows, prevent key repeat to avoid unintended output */
+ unregister_code(QK_LSFT ^ pseudo_keycode);
+ del_weak_mods(MOD_BIT(KC_LSFT));
+ send_keyboard_report();
+ } else {
+ register_code(pseudo_keycode);
+ }
+ }
+ } else {
+ if (get_shift_bit(keycode)) {
+ del_shift_bit(keycode);
+ pseudo_keycode = convert_keycode(keymap, keycode, true);
+ } else {
+ pseudo_keycode = convert_keycode(keymap, keycode, false);
+ }
+ dprintf("released: %02X, converted: %04X\n", keycode, pseudo_keycode);
+
+ if (IS_LSFT(pseudo_keycode)) {
+ unregister_code(QK_LSFT ^ pseudo_keycode);
+ } else {
+ unregister_code(pseudo_keycode);
+ }
+ }
+}
+
+uint16_t convert_keycode(const uint16_t (*keymap)[2], uint16_t keycode, bool shift_modded)
+{
+ uint16_t pseudo_keycode;
+
+ switch (keycode) {
+ case KC_A ... KC_CAPSLOCK:
+#if defined(__AVR__)
+ if (shift_modded) {
+ pseudo_keycode = pgm_read_word(&keymap[keycode][1]);
+ } else {
+ pseudo_keycode = pgm_read_word(&keymap[keycode][0]);
+ }
+#else
+ if (shift_modded) {
+ pseudo_keycode = keymap[keycode][1];
+ } else {
+ pseudo_keycode = keymap[keycode][0];
+ }
+#endif
+ /* if undefined, use got keycode as it is */
+ if (pseudo_keycode == 0x00) {
+ if (shift_modded) {
+ pseudo_keycode = S(keycode);
+ } else {
+ pseudo_keycode = keycode;
+ }
+ }
+ break;
+ default:
+ if (shift_modded) {
+ pseudo_keycode = S(keycode);
+ } else {
+ pseudo_keycode = keycode;
+ }
+ break;
+ }
+ return pseudo_keycode;
+}
+
+uint8_t get_shift_bit(uint16_t keycode) {
+ if ((keycode >> 3) < SHIFT_BIT_SIZE) {
+ return send_key_shift_bit[keycode >> 3] & (1 << (keycode & 7));
+ } else {
+ dprintf("get_shift_bit: Can't get shift bit. keycode: %02X\n", keycode);
+ return 0;
+ }
+}
+
+void add_shift_bit(uint16_t keycode) {
+ if ((keycode >> 3) < SHIFT_BIT_SIZE) {
+ send_key_shift_bit[keycode >> 3] |= (1 << (keycode & 7));
+ } else {
+ dprintf("add_shift_bit: Can't add shift bit. keycode: %02X\n", keycode);
+ }
+}
+
+void del_shift_bit(uint16_t keycode) {
+ if ((keycode >> 3) < SHIFT_BIT_SIZE) {
+ send_key_shift_bit[keycode >> 3] &= ~(1 << (keycode & 7));
+ } else {
+ dprintf("del_shift_bit: Can't delete shift bit. keycode: %02X\n", keycode);
+ }
+}
diff --git a/keyboards/hhkb/keymaps/shela/action_pseudo_lut.h b/keyboards/hhkb/keymaps/shela/action_pseudo_lut.h
new file mode 100644
index 000000000..681252440
--- /dev/null
+++ b/keyboards/hhkb/keymaps/shela/action_pseudo_lut.h
@@ -0,0 +1,15 @@
+#ifndef ACTION_PSEUDO_LUT_H
+#define ACTION_PSEUDO_LUT_H
+
+#define SHIFT_BIT_SIZE (0xE7 / 8 + 1) // 1bit per 1key
+
+#define IS_LSFT(kc) ((QK_LSFT & (kc)) == QK_LSFT)
+
+void action_pseudo_lut(keyrecord_t *, uint8_t, const uint16_t (*)[2]);
+uint16_t convert_keycode(const uint16_t (*)[2], uint16_t, bool);
+
+uint8_t get_shift_bit(uint16_t);
+void add_shift_bit(uint16_t);
+void del_shift_bit(uint16_t);
+
+#endif
diff --git a/keyboards/hhkb/keymaps/shela/config.h b/keyboards/hhkb/keymaps/shela/config.h
new file mode 100644
index 000000000..08cc1fb46
--- /dev/null
+++ b/keyboards/hhkb/keymaps/shela/config.h
@@ -0,0 +1,12 @@
+#ifndef CONFIG_SHELA_H
+#define CONFIG_SHELA_H
+
+#include "../../config.h"
+
+#undef TAPPING_TERM
+#define TAPPING_TERM 230
+
+#define ONESHOT_TAP_TOGGLE 2
+#define ONESHOT_TIMEOUT 2000
+
+#endif
diff --git a/keyboards/hhkb/keymaps/shela/keymap.c b/keyboards/hhkb/keymaps/shela/keymap.c
new file mode 100644
index 000000000..c286b99de
--- /dev/null
+++ b/keyboards/hhkb/keymaps/shela/keymap.c
@@ -0,0 +1,179 @@
+/*
+ * HHKB Pro 2 US Layout for shela
+ */
+#include "hhkb.h"
+#include "keymap_jis2us.h"
+#include "action_pseudo_lut.h"
+
+enum keymap_layout {
+ BASE = 0,
+ PSEUDO_US,
+ DVORAK,
+ MOUSE,
+ TENKEY,
+ HHKB,
+ SPACE_FN,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* Layer 0: Default Layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | ` | BSp |
+ * |-----------------------------------------------------------------------------------------|
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
+ * |-----------------------------------------------------------------------------------------|
+ * | Control | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
+ * |-----------------------------------------------------------------------------------------|
+ * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 |
+ * `-----------------------------------------------------------------------------------------'
+ * |LAlt | LGui | SpaceFN | RGui |RAlt |
+ * `-----------------------------------------------------------------'
+ */
+ [BASE] =
+ KEYMAP(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_GRV, KC_BSPC, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, \
+ KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENT, \
+ OSM(MOD_LSFT),KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,KC_FN0, \
+ KC_LALT,KC_LGUI, KC_FN2, KC_RGUI,KC_RALT),
+
+ /* Layer 1: Pseudo US Layout Layer */
+ [PSEUDO_US] =
+ KEYMAP(KC_ESC, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_BSPC, \
+ KC_TAB, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, \
+ KC_LCTL,KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_ENT, \
+ OSM(MOD_LSFT),KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_RSFT,KC_FN0, \
+ KC_LGUI,KC_FN3, KC_FN2, KC_FN4 ,KC_RGUI),
+
+ /* Layer 2: Dvorak Layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | [ | ] | ` | BSp |
+ * |-----------------------------------------------------------------------------------------|
+ * | Tab | ' | , | . | P | Y | F | G | C | R | L | / | = | \ |
+ * |-----------------------------------------------------------------------------------------|
+ * | Control | A | O | E | U | I | D | H | T | N | S | - | Enter |
+ * |-----------------------------------------------------------------------------------------|
+ * | Shift | ; | Q | J | K | X | B | M | W | V | Z | Shift | Fn0 |
+ * `-----------------------------------------------------------------------------------------'
+ * |LAlt | LGui | SpaceFN | RGui |RAlt |
+ * `-----------------------------------------------------------------'
+ */
+ [DVORAK] =
+ KEYMAP(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC,KC_RBRC,KC_GRV, KC_BSPC, \
+ KC_TAB, KC_QUOT,KC_COMM,KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,KC_EQL, KC_BSLS, \
+ KC_LCTL,KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,KC_ENT, \
+ KC_LSFT,KC_SCLN,KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,KC_FN0, \
+ KC_LALT,KC_LGUI, KC_FN2, KC_RGUI,KC_RALT),
+
+ /* Layer 3: Mouse layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | |
+ * |-----------------------------------------------------------------------------------------|
+ * | | | | | | | MwL | MwD | MwU | MwR | | | | |
+ * |-----------------------------------------------------------------------------------------|
+ * | | | | | | | McL | McD | McU | McR | | | |
+ * |-----------------------------------------------------------------------------------------|
+ * | | | | | | | Mb1 | Mb2 | Mb3 | | | | Fn0 |
+ * `-----------------------------------------------------------------------------------------'
+ * | | | Mb1 | | |
+ * `-----------------------------------------------------------------'
+ */
+ [MOUSE] =
+ KEYMAP(KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_TRNS, \
+ KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_L,KC_WH_D,KC_WH_U,KC_WH_R,KC_NO, KC_NO, KC_NO, KC_NO, \
+ KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R,KC_NO, KC_NO, KC_TRNS, \
+ KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1,KC_BTN2,KC_BTN3,KC_NO, KC_NO, KC_TRNS,KC_FN0, \
+ KC_TRNS,KC_TRNS, KC_BTN1, KC_TRNS,KC_TRNS),
+
+ /* Layer 4: Tenkey layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | Esc | | | | | | | | | | / | * | - | | BSp |
+ * |-----------------------------------------------------------------------------------------|
+ * | | | | | | | | | | 7 | 8 | 9 | + | |
+ * |-----------------------------------------------------------------------------------------|
+ * | | | | | | | | | | 4 | 5 | 6 | Enter |
+ * |-----------------------------------------------------------------------------------------|
+ * | | | | | | | | | 1 | 2 | 3 | + | Fn0 |
+ * `-----------------------------------------------------------------------------------------'
+ * | | | SpaceFN | 0 | . |
+ * `-----------------------------------------------------------------'
+ */
+ [TENKEY] =
+ KEYMAP(KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSLS,KC_PAST,KC_PMNS,KC_NO, KC_BSPC, \
+ KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_7,KC_KP_8,KC_KP_9,KC_PPLS,KC_NO, \
+ KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_4,KC_KP_5,KC_KP_6,KC_PENT, \
+ KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_1,KC_KP_2,KC_KP_3,KC_PPLS,KC_FN0, \
+ KC_TRNS,KC_TRNS, KC_FN2, KC_KP_0,KC_PDOT),
+
+ /* Layer 5: HHKB mode (HHKB Fn)
+ * ,-----------------------------------------------------------------------------------------.
+ * | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
+ * |-----------------------------------------------------------------------------------------|
+ * | Caps | Fn5 | Fn6 | Fn7 | Fn8 | Fn9 | | | Psc | Slk | Pus | Up | | BSp |
+ * |-----------------------------------------------------------------------------------------|
+ * | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter |
+ * |-----------------------------------------------------------------------------------------|
+ * | | | | | | | + | - | End | PgD | Dow | | |
+ * `-----------------------------------------------------------------------------------------'
+ * | | | | | |
+ * `-----------------------------------------------------------------'
+ */
+ [HHKB] =
+ KEYMAP(KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \
+ KC_CAPS,KC_FN5, KC_FN6, KC_FN7, KC_FN8, KC_FN9, KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS,KC_UP, KC_TRNS,KC_BSPC, \
+ KC_TRNS,KC_VOLD,KC_VOLU,KC_MUTE,KC_TRNS,KC_TRNS,KC_PAST,KC_PSLS,KC_HOME,KC_PGUP,KC_LEFT,KC_RGHT,KC_PENT, \
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PPLS,KC_PMNS,KC_END, KC_PGDN,KC_DOWN,KC_TRNS,KC_TRNS, \
+ KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS),
+
+ /* Layer 6: SpaceFN
+ * ,-----------------------------------------------------------------------------------------.
+ * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | Del |
+ * |-----------------------------------------------------------------------------------------|
+ * | | End | Up | Hom | | | | Hom | Up | End | Psc | Slk | Pau | Ins |
+ * |-----------------------------------------------------------------------------------------|
+ * | | Lef | Dow | Rig | PgU | | PgU | Lef | Dow | Rig | | | |
+ * |-----------------------------------------------------------------------------------------|
+ * | | | | PgD | | Spc | PgD | ` | ~ | | | | |
+ * `-----------------------------------------------------------------------------------------'
+ * | | | | | |
+ * `-----------------------------------------------------------------'
+ */
+ [SPACE_FN] =
+ KEYMAP(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_DEL, \
+ KC_TRNS,KC_END, KC_UP, KC_HOME,KC_NO, KC_NO, KC_NO, KC_HOME,KC_UP, KC_END, KC_PSCR,KC_SLCK,KC_PAUS,KC_INS, \
+ KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_PGUP,KC_NO, KC_PGUP,KC_LEFT,KC_DOWN,KC_RGHT,KC_NO, KC_NO, KC_TRNS, \
+ KC_TRNS,KC_NO, KC_NO, KC_PGDN,KC_NO, KC_SPC, KC_PGDN,KC_GRV, KC_TILD,KC_NO, KC_NO, KC_TRNS,KC_NO, \
+ KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS),
+};
+
+/*
+ * user defined action function
+ */
+enum function_id {
+ PSEUDO_US_FUNCTION,
+};
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+
+ switch (id) {
+ case PSEUDO_US_FUNCTION:
+ action_pseudo_lut(record, BASE, keymap_jis2us);
+ break;
+ }
+}
+
+/*
+ * Fn action definition
+ */
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_MOMENTARY(HHKB),
+ [1] = ACTION_FUNCTION(PSEUDO_US_FUNCTION),
+ [2] = ACTION_LAYER_TAP_KEY(SPACE_FN, KC_SPACE),
+ [3] = ACTION_MODS_TAP_KEY(MOD_LALT, KC_MHEN),
+ [4] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_KANA),
+ [5] = ACTION_DEFAULT_LAYER_SET(BASE),
+ [6] = ACTION_DEFAULT_LAYER_SET(PSEUDO_US),
+ [7] = ACTION_DEFAULT_LAYER_SET(MOUSE),
+ [8] = ACTION_DEFAULT_LAYER_SET(TENKEY),
+ [9] = ACTION_DEFAULT_LAYER_SET(DVORAK),
+};
diff --git a/keyboards/hhkb/keymaps/shela/keymap_jis2us.h b/keyboards/hhkb/keymaps/shela/keymap_jis2us.h
new file mode 100644
index 000000000..cf2bd4f0e
--- /dev/null
+++ b/keyboards/hhkb/keymaps/shela/keymap_jis2us.h
@@ -0,0 +1,32 @@
+#ifndef KEYMAP_JIS2US_H
+#define KEYMAP_JIS2US_H
+
+/* keymap for convert from JIS to US */
+const uint16_t PROGMEM keymap_jis2us[][2] = {
+ [KC_A ... KC_CAPS] = { 0x00, 0x00 }, /* default value */
+
+ [KC_1] = { KC_1, KC_EXLM }, /* 1 and ! -> 1 and ! */
+ [KC_2] = { KC_2, KC_LBRC }, /* 2 and " -> 2 and @ */
+ [KC_3] = { KC_3, KC_HASH }, /* 3 and # -> 3 and # */
+ [KC_4] = { KC_4, KC_DLR }, /* 4 and $ -> 4 and $ */
+ [KC_5] = { KC_5, KC_PERC }, /* 5 and % -> 5 and % */
+ [KC_6] = { KC_6, KC_EQL }, /* 6 and & -> 6 and ^ */
+ [KC_7] = { KC_7, KC_CIRC }, /* 7 and ' -> 7 and & */
+ [KC_8] = { KC_8, KC_DQT }, /* 8 and ( -> 8 and * */
+ [KC_9] = { KC_9, KC_ASTR }, /* 9 and ) -> 9 and ( */
+ [KC_0] = { KC_0, KC_LPRN }, /* 0 and (no assign) -> 0 and ) */
+ [KC_MINS] = { KC_MINS, S(KC_RO) }, /* - and = -> - and _ */
+ [KC_EQL] = { KC_UNDS, KC_COLN }, /* ^ and ~ -> = and + */
+ [KC_LBRC] = { KC_RBRC, KC_RCBR }, /* @ and ` -> [ and { */
+ [KC_RBRC] = { KC_BSLS, KC_PIPE }, /* [ and { -> ] and } */
+ [KC_BSLS] = { KC_JYEN, S(KC_JYEN) }, /* ] and } -> / and | */
+ [KC_NUHS] = { KC_NUHS, S(KC_NUHS) }, /* (no assign) */
+ [KC_SCLN] = { KC_SCLN, KC_QUOT }, /* ; and + -> ; and : */
+ [KC_QUOT] = { KC_AMPR, KC_AT }, /* : and * -> ' and " */
+ [KC_GRV] = { KC_LCBR, KC_PLUS }, /* (no assign) -> ` and ~ */
+ [KC_COMM] = { KC_COMM, KC_LT }, /* , and < -> , and < */
+ [KC_DOT] = { KC_DOT, KC_GT }, /* . and > -> . and > */
+ [KC_SLSH] = { KC_SLSH, KC_QUES }, /* / and ? -> / and ? */
+};
+
+#endif
diff --git a/keyboards/hhkb/keymaps/shela/readme.md b/keyboards/hhkb/keymaps/shela/readme.md
new file mode 100644
index 000000000..5a06a8363
--- /dev/null
+++ b/keyboards/hhkb/keymaps/shela/readme.md
@@ -0,0 +1,14 @@
+# Shela's HHKB Layout
+
+Layer 0: US Layout
+Layer 1: Pseudo US Layout
+Layer 2: Dvorak Layout
+Layer 3: Mouse
+Layer 4: Tenkey
+Layer 5: HHKB Fn Key
+Layer 6: SpaceFN
+
+## Pseudo US Layout
+
+On japanese Windows, HHKB Professional 2 US layout model recognized wrongly as JIS layout without changing OS settings.
+But, you can use HHKB like a US layout keyboard as it is.
diff --git a/keyboards/hhkb/readme.md b/keyboards/hhkb/readme.md
index 39d49b32a..ee7d11121 100644
--- a/keyboards/hhkb/readme.md
+++ b/keyboards/hhkb/readme.md
@@ -82,7 +82,7 @@ We've added shortcuts to make common modifier/tap (mod-tap) mappings more compac
### Remember: These are just aliases
-These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action).
+These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action).
Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them.
@@ -168,13 +168,15 @@ Download or clone the whole firmware and navigate to the keyboards/planck folder
Depending on which keymap you would like to use, you will have to compile slightly differently.
### Default
-To build with the default keymap, simply run `make`.
+To build with the default keymap, simply run `make default`.
### Other Keymaps
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `<name>.c` and see keymap document (you can find in top readme.md) and existent keymap files.
-To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
```
-$ make KEYMAP=[default|jack|<name>]
+$ make [default|jack|<name>]
```
+
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboards/hhkb/rules.mk b/keyboards/hhkb/rules.mk
new file mode 100644
index 000000000..a46271f02
--- /dev/null
+++ b/keyboards/hhkb/rules.mk
@@ -0,0 +1,80 @@
+
+
+# project specific files
+SRC = matrix.c
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+#OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+# as per original hasu settings
+OPT_DEFS += -DBOOTLOADER_SIZE=512
+
+# Build Options
+# 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)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+CUSTOM_MATRIX ?= yes # Custom matrix file for the HHKB
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
+# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
+# MIDI_ENABLE ?= yes # MIDI controls
+# UNICODE_ENABLE ?= yes # Unicode
+# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
+
+debug-on: EXTRAFLAGS += -DDEBUG -DDEBUG_ACTION
+debug-on: all
+
+debug-off: EXTRAFLAGS += -DNO_DEBUG -DNO_PRINT
+debug-off: OPT_DEFS := $(filter-out -DCONSOLE_ENABLE,$(OPT_DEFS))
+debug-off: all
diff --git a/keyboards/infinity_ergodox/MEMO.txt b/keyboards/infinity60/MEMO.txt
index e2886aa00..e2886aa00 100644
--- a/keyboards/infinity_ergodox/MEMO.txt
+++ b/keyboards/infinity60/MEMO.txt
diff --git a/keyboards/infinity60/Makefile b/keyboards/infinity60/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/infinity60/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/infinity_ergodox/bootloader_defs.h b/keyboards/infinity60/bootloader_defs.h
index c67153be6..c67153be6 100644
--- a/keyboards/infinity_ergodox/bootloader_defs.h
+++ b/keyboards/infinity60/bootloader_defs.h
diff --git a/keyboards/infinity_chibios/chconf.h b/keyboards/infinity60/chconf.h
index b886c383b..d9114ec85 100644
--- a/keyboards/infinity_chibios/chconf.h
+++ b/keyboards/infinity60/chconf.h
@@ -1,524 +1,524 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/**
- * @file templates/chconf.h
- * @brief Configuration file template.
- * @details A copy of this file must be placed in each project directory, it
- * contains the application specific kernel settings.
- *
- * @addtogroup config
- * @details Kernel related settings and hooks.
- * @{
- */
-
-#ifndef CHCONF_H
-#define CHCONF_H
-
-#define _CHIBIOS_RT_CONF_
-
-/*===========================================================================*/
-/**
- * @name System timers settings
- * @{
- */
-/*===========================================================================*/
-
-/**
- * @brief System time counter resolution.
- * @note Allowed values are 16 or 32 bits.
- */
-#define CH_CFG_ST_RESOLUTION 32
-
-/**
- * @brief System tick frequency.
- * @details Frequency of the system timer that drives the system ticks. This
- * setting also defines the system tick time unit.
- */
-#define CH_CFG_ST_FREQUENCY 1000
-
-/**
- * @brief Time delta constant for the tick-less mode.
- * @note If this value is zero then the system uses the classic
- * periodic tick. This value represents the minimum number
- * of ticks that is safe to specify in a timeout directive.
- * The value one is not valid, timeouts are rounded up to
- * this value.
- */
-#define CH_CFG_ST_TIMEDELTA 0
-
-/** @} */
-
-/*===========================================================================*/
-/**
- * @name Kernel parameters and options
- * @{
- */
-/*===========================================================================*/
-
-/**
- * @brief Round robin interval.
- * @details This constant is the number of system ticks allowed for the
- * threads before preemption occurs. Setting this value to zero
- * disables the preemption for threads with equal priority and the
- * round robin becomes cooperative. Note that higher priority
- * threads can still preempt, the kernel is always preemptive.
- * @note Disabling the round robin preemption makes the kernel more compact
- * and generally faster.
- * @note The round robin preemption is not supported in tickless mode and
- * must be set to zero in that case.
- */
-#define CH_CFG_TIME_QUANTUM 20
-
-/**
- * @brief Managed RAM size.
- * @details Size of the RAM area to be managed by the OS. If set to zero
- * then the whole available RAM is used. The core memory is made
- * available to the heap allocator and/or can be used directly through
- * the simplified core memory allocator.
- *
- * @note In order to let the OS manage the whole RAM the linker script must
- * provide the @p __heap_base__ and @p __heap_end__ symbols.
- * @note Requires @p CH_CFG_USE_MEMCORE.
- */
-#define CH_CFG_MEMCORE_SIZE 0
-
-/**
- * @brief Idle thread automatic spawn suppression.
- * @details When this option is activated the function @p chSysInit()
- * does not spawn the idle thread. The application @p main()
- * function becomes the idle thread and must implement an
- * infinite loop.
- */
-#define CH_CFG_NO_IDLE_THREAD FALSE
-
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
-/** @} */
-
-/*===========================================================================*/
-/**
- * @name Performance options
- * @{
- */
-/*===========================================================================*/
-
-/**
- * @brief OS optimization.
- * @details If enabled then time efficient rather than space efficient code
- * is used when two possible implementations exist.
- *
- * @note This is not related to the compiler optimization options.
- * @note The default is @p TRUE.
- */
-#define CH_CFG_OPTIMIZE_SPEED TRUE
-
-/** @} */
-
-/*===========================================================================*/
-/**
- * @name Subsystem options
- * @{
- */
-/*===========================================================================*/
-
-/**
- * @brief Time Measurement APIs.
- * @details If enabled then the time measurement APIs are included in
- * the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_TM FALSE
-
-/**
- * @brief Threads registry APIs.
- * @details If enabled then the registry APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_REGISTRY TRUE
-
-/**
- * @brief Threads synchronization APIs.
- * @details If enabled then the @p chThdWait() function is included in
- * the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_WAITEXIT TRUE
-
-/**
- * @brief Semaphores APIs.
- * @details If enabled then the Semaphores APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_SEMAPHORES TRUE
-
-/**
- * @brief Semaphores queuing mode.
- * @details If enabled then the threads are enqueued on semaphores by
- * priority rather than in FIFO order.
- *
- * @note The default is @p FALSE. Enable this if you have special
- * requirements.
- * @note Requires @p CH_CFG_USE_SEMAPHORES.
- */
-#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
-
-/**
- * @brief Mutexes APIs.
- * @details If enabled then the mutexes APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_MUTEXES TRUE
-
-/**
- * @brief Enables recursive behavior on mutexes.
- * @note Recursive mutexes are heavier and have an increased
- * memory footprint.
- *
- * @note The default is @p FALSE.
- * @note Requires @p CH_CFG_USE_MUTEXES.
- */
-#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
-
-/**
- * @brief Conditional Variables APIs.
- * @details If enabled then the conditional variables APIs are included
- * in the kernel.
- *
- * @note The default is @p TRUE.
- * @note Requires @p CH_CFG_USE_MUTEXES.
- */
-#define CH_CFG_USE_CONDVARS TRUE
-
-/**
- * @brief Conditional Variables APIs with timeout.
- * @details If enabled then the conditional variables APIs with timeout
- * specification are included in the kernel.
- *
- * @note The default is @p TRUE.
- * @note Requires @p CH_CFG_USE_CONDVARS.
- */
-#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
-
-/**
- * @brief Events Flags APIs.
- * @details If enabled then the event flags APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_EVENTS TRUE
-
-/**
- * @brief Events Flags APIs with timeout.
- * @details If enabled then the events APIs with timeout specification
- * are included in the kernel.
- *
- * @note The default is @p TRUE.
- * @note Requires @p CH_CFG_USE_EVENTS.
- */
-#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
-
-/**
- * @brief Synchronous Messages APIs.
- * @details If enabled then the synchronous messages APIs are included
- * in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_MESSAGES TRUE
-
-/**
- * @brief Synchronous Messages queuing mode.
- * @details If enabled then messages are served by priority rather than in
- * FIFO order.
- *
- * @note The default is @p FALSE. Enable this if you have special
- * requirements.
- * @note Requires @p CH_CFG_USE_MESSAGES.
- */
-#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
-
-/**
- * @brief Mailboxes APIs.
- * @details If enabled then the asynchronous messages (mailboxes) APIs are
- * included in the kernel.
- *
- * @note The default is @p TRUE.
- * @note Requires @p CH_CFG_USE_SEMAPHORES.
- */
-#define CH_CFG_USE_MAILBOXES TRUE
-
-/**
- * @brief Core Memory Manager APIs.
- * @details If enabled then the core memory manager APIs are included
- * in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_MEMCORE TRUE
-
-/**
- * @brief Heap Allocator APIs.
- * @details If enabled then the memory heap allocator APIs are included
- * in the kernel.
- *
- * @note The default is @p TRUE.
- * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
- * @p CH_CFG_USE_SEMAPHORES.
- * @note Mutexes are recommended.
- */
-#define CH_CFG_USE_HEAP TRUE
-
-/**
- * @brief Memory Pools Allocator APIs.
- * @details If enabled then the memory pools allocator APIs are included
- * in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#define CH_CFG_USE_MEMPOOLS TRUE
-
-/**
- * @brief Dynamic Threads APIs.
- * @details If enabled then the dynamic threads creation APIs are included
- * in the kernel.
- *
- * @note The default is @p TRUE.
- * @note Requires @p CH_CFG_USE_WAITEXIT.
- * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
- */
-#define CH_CFG_USE_DYNAMIC TRUE
-
-/** @} */
-
-/*===========================================================================*/
-/**
- * @name Debug options
- * @{
- */
-/*===========================================================================*/
-
-/**
- * @brief Debug option, kernel statistics.
- *
- * @note The default is @p FALSE.
- */
-#define CH_DBG_STATISTICS FALSE
-
-/**
- * @brief Debug option, system state check.
- * @details If enabled the correct call protocol for system APIs is checked
- * at runtime.
- *
- * @note The default is @p FALSE.
- */
-#define CH_DBG_SYSTEM_STATE_CHECK FALSE
-
-/**
- * @brief Debug option, parameters checks.
- * @details If enabled then the checks on the API functions input
- * parameters are activated.
- *
- * @note The default is @p FALSE.
- */
-#define CH_DBG_ENABLE_CHECKS FALSE
-
-/**
- * @brief Debug option, consistency checks.
- * @details If enabled then all the assertions in the kernel code are
- * activated. This includes consistency checks inside the kernel,
- * runtime anomalies and port-defined checks.
- *
- * @note The default is @p FALSE.
- */
-#define CH_DBG_ENABLE_ASSERTS FALSE
-
-/**
- * @brief Debug option, trace buffer.
- * @details If enabled then the trace buffer is activated.
- *
- * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
- */
-#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
-
-/**
- * @brief Trace buffer entries.
- * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
- * different from @p CH_DBG_TRACE_MASK_DISABLED.
- */
-#define CH_DBG_TRACE_BUFFER_SIZE 128
-
-/**
- * @brief Debug option, stack checks.
- * @details If enabled then a runtime stack check is performed.
- *
- * @note The default is @p FALSE.
- * @note The stack check is performed in a architecture/port dependent way.
- * It may not be implemented or some ports.
- * @note The default failure mode is to halt the system with the global
- * @p panic_msg variable set to @p NULL.
- */
-#define CH_DBG_ENABLE_STACK_CHECK FALSE
-
-/**
- * @brief Debug option, stacks initialization.
- * @details If enabled then the threads working area is filled with a byte
- * value when a thread is created. This can be useful for the
- * runtime measurement of the used stack.
- *
- * @note The default is @p FALSE.
- */
-#define CH_DBG_FILL_THREADS FALSE
-
-/**
- * @brief Debug option, threads profiling.
- * @details If enabled then a field is added to the @p thread_t structure that
- * counts the system ticks occurred while executing the thread.
- *
- * @note The default is @p FALSE.
- * @note This debug option is not currently compatible with the
- * tickless mode.
- */
-#define CH_DBG_THREADS_PROFILING FALSE
-
-/** @} */
-
-/*===========================================================================*/
-/**
- * @name Kernel hooks
- * @{
- */
-/*===========================================================================*/
-
-/**
- * @brief Threads descriptor structure extension.
- * @details User fields added to the end of the @p thread_t structure.
- */
-#define CH_CFG_THREAD_EXTRA_FIELDS \
- /* Add threads custom fields here.*/
-
-/**
- * @brief Threads initialization hook.
- * @details User initialization code added to the @p chThdInit() API.
- *
- * @note It is invoked from within @p chThdInit() and implicitly from all
- * the threads creation APIs.
- */
-#define CH_CFG_THREAD_INIT_HOOK(tp) { \
- /* Add threads initialization code here.*/ \
-}
-
-/**
- * @brief Threads finalization hook.
- * @details User finalization code added to the @p chThdExit() API.
- */
-#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
- /* Add threads finalization code here.*/ \
-}
-
-/**
- * @brief Context switch hook.
- * @details This hook is invoked just before switching between threads.
- */
-#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
- /* Context switch code here.*/ \
-}
-
-/**
- * @brief ISR enter hook.
- */
-#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
- /* IRQ prologue code here.*/ \
-}
-
-/**
- * @brief ISR exit hook.
- */
-#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
- /* IRQ epilogue code here.*/ \
-}
-
-/**
- * @brief Idle thread enter hook.
- * @note This hook is invoked within a critical zone, no OS functions
- * should be invoked from here.
- * @note This macro can be used to activate a power saving mode.
- */
-#define CH_CFG_IDLE_ENTER_HOOK() { \
- /* Idle-enter code here.*/ \
-}
-
-/**
- * @brief Idle thread leave hook.
- * @note This hook is invoked within a critical zone, no OS functions
- * should be invoked from here.
- * @note This macro can be used to deactivate a power saving mode.
- */
-#define CH_CFG_IDLE_LEAVE_HOOK() { \
- /* Idle-leave code here.*/ \
-}
-
-/**
- * @brief Idle Loop hook.
- * @details This hook is continuously invoked by the idle thread loop.
- */
-#define CH_CFG_IDLE_LOOP_HOOK() { \
- /* Idle loop code here.*/ \
-}
-
-/**
- * @brief System tick event hook.
- * @details This hook is invoked in the system tick handler immediately
- * after processing the virtual timers queue.
- */
-#define CH_CFG_SYSTEM_TICK_HOOK() { \
- /* System tick event code here.*/ \
-}
-
-/**
- * @brief System halt hook.
- * @details This hook is invoked in case to a system halting error before
- * the system is halted.
- */
-#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
- /* System halt code here.*/ \
-}
-
-/**
- * @brief Trace hook.
- * @details This hook is invoked each time a new record is written in the
- * trace buffer.
- */
-#define CH_CFG_TRACE_HOOK(tep) { \
- /* Trace code here.*/ \
-}
-
-/** @} */
-
-/*===========================================================================*/
-/* Port-specific settings (override port settings defaulted in chcore.h). */
-/*===========================================================================*/
-
-#endif /* CHCONF_H */
-
-/** @} */
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file templates/chconf.h
+ * @brief Configuration file template.
+ * @details A copy of this file must be placed in each project directory, it
+ * contains the application specific kernel settings.
+ *
+ * @addtogroup config
+ * @details Kernel related settings and hooks.
+ * @{
+ */
+
+#ifndef CHCONF_H
+#define CHCONF_H
+
+#define _CHIBIOS_RT_CONF_
+
+/*===========================================================================*/
+/**
+ * @name System timers settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief System time counter resolution.
+ * @note Allowed values are 16 or 32 bits.
+ */
+#define CH_CFG_ST_RESOLUTION 32
+
+/**
+ * @brief System tick frequency.
+ * @details Frequency of the system timer that drives the system ticks. This
+ * setting also defines the system tick time unit.
+ */
+#define CH_CFG_ST_FREQUENCY 100000
+
+/**
+ * @brief Time delta constant for the tick-less mode.
+ * @note If this value is zero then the system uses the classic
+ * periodic tick. This value represents the minimum number
+ * of ticks that is safe to specify in a timeout directive.
+ * The value one is not valid, timeouts are rounded up to
+ * this value.
+ */
+#define CH_CFG_ST_TIMEDELTA 0
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel parameters and options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Round robin interval.
+ * @details This constant is the number of system ticks allowed for the
+ * threads before preemption occurs. Setting this value to zero
+ * disables the preemption for threads with equal priority and the
+ * round robin becomes cooperative. Note that higher priority
+ * threads can still preempt, the kernel is always preemptive.
+ * @note Disabling the round robin preemption makes the kernel more compact
+ * and generally faster.
+ * @note The round robin preemption is not supported in tickless mode and
+ * must be set to zero in that case.
+ */
+#define CH_CFG_TIME_QUANTUM 20
+
+/**
+ * @brief Managed RAM size.
+ * @details Size of the RAM area to be managed by the OS. If set to zero
+ * then the whole available RAM is used. The core memory is made
+ * available to the heap allocator and/or can be used directly through
+ * the simplified core memory allocator.
+ *
+ * @note In order to let the OS manage the whole RAM the linker script must
+ * provide the @p __heap_base__ and @p __heap_end__ symbols.
+ * @note Requires @p CH_CFG_USE_MEMCORE.
+ */
+#define CH_CFG_MEMCORE_SIZE 0
+
+/**
+ * @brief Idle thread automatic spawn suppression.
+ * @details When this option is activated the function @p chSysInit()
+ * does not spawn the idle thread. The application @p main()
+ * function becomes the idle thread and must implement an
+ * infinite loop.
+ */
+#define CH_CFG_NO_IDLE_THREAD FALSE
+
+/* Use __WFI in the idle thread for waiting. Does lower the power
+ * consumption. */
+#define CORTEX_ENABLE_WFI_IDLE TRUE
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Performance options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief OS optimization.
+ * @details If enabled then time efficient rather than space efficient code
+ * is used when two possible implementations exist.
+ *
+ * @note This is not related to the compiler optimization options.
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_OPTIMIZE_SPEED TRUE
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Subsystem options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Time Measurement APIs.
+ * @details If enabled then the time measurement APIs are included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_TM FALSE
+
+/**
+ * @brief Threads registry APIs.
+ * @details If enabled then the registry APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_REGISTRY TRUE
+
+/**
+ * @brief Threads synchronization APIs.
+ * @details If enabled then the @p chThdWait() function is included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_WAITEXIT TRUE
+
+/**
+ * @brief Semaphores APIs.
+ * @details If enabled then the Semaphores APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_SEMAPHORES TRUE
+
+/**
+ * @brief Semaphores queuing mode.
+ * @details If enabled then the threads are enqueued on semaphores by
+ * priority rather than in FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+
+/**
+ * @brief Mutexes APIs.
+ * @details If enabled then the mutexes APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_MUTEXES TRUE
+
+/**
+ * @brief Enables recursive behavior on mutexes.
+ * @note Recursive mutexes are heavier and have an increased
+ * memory footprint.
+ *
+ * @note The default is @p FALSE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+
+/**
+ * @brief Conditional Variables APIs.
+ * @details If enabled then the conditional variables APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#define CH_CFG_USE_CONDVARS TRUE
+
+/**
+ * @brief Conditional Variables APIs with timeout.
+ * @details If enabled then the conditional variables APIs with timeout
+ * specification are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_CONDVARS.
+ */
+#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+
+/**
+ * @brief Events Flags APIs.
+ * @details If enabled then the event flags APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_EVENTS TRUE
+
+/**
+ * @brief Events Flags APIs with timeout.
+ * @details If enabled then the events APIs with timeout specification
+ * are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_EVENTS.
+ */
+#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+
+/**
+ * @brief Synchronous Messages APIs.
+ * @details If enabled then the synchronous messages APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_MESSAGES TRUE
+
+/**
+ * @brief Synchronous Messages queuing mode.
+ * @details If enabled then messages are served by priority rather than in
+ * FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_MESSAGES.
+ */
+#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+
+/**
+ * @brief Mailboxes APIs.
+ * @details If enabled then the asynchronous messages (mailboxes) APIs are
+ * included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#define CH_CFG_USE_MAILBOXES TRUE
+
+/**
+ * @brief Core Memory Manager APIs.
+ * @details If enabled then the core memory manager APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_MEMCORE TRUE
+
+/**
+ * @brief Heap Allocator APIs.
+ * @details If enabled then the memory heap allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
+ * @p CH_CFG_USE_SEMAPHORES.
+ * @note Mutexes are recommended.
+ */
+#define CH_CFG_USE_HEAP TRUE
+
+/**
+ * @brief Memory Pools Allocator APIs.
+ * @details If enabled then the memory pools allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_MEMPOOLS TRUE
+
+/**
+ * @brief Dynamic Threads APIs.
+ * @details If enabled then the dynamic threads creation APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_WAITEXIT.
+ * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
+ */
+#define CH_CFG_USE_DYNAMIC TRUE
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Debug options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Debug option, kernel statistics.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_STATISTICS FALSE
+
+/**
+ * @brief Debug option, system state check.
+ * @details If enabled the correct call protocol for system APIs is checked
+ * at runtime.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_SYSTEM_STATE_CHECK FALSE
+
+/**
+ * @brief Debug option, parameters checks.
+ * @details If enabled then the checks on the API functions input
+ * parameters are activated.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_ENABLE_CHECKS FALSE
+
+/**
+ * @brief Debug option, consistency checks.
+ * @details If enabled then all the assertions in the kernel code are
+ * activated. This includes consistency checks inside the kernel,
+ * runtime anomalies and port-defined checks.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_ENABLE_ASSERTS FALSE
+
+/**
+ * @brief Debug option, trace buffer.
+ * @details If enabled then the trace buffer is activated.
+ *
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
+
+/**
+ * @brief Trace buffer entries.
+ * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
+ * different from @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+
+/**
+ * @brief Debug option, stack checks.
+ * @details If enabled then a runtime stack check is performed.
+ *
+ * @note The default is @p FALSE.
+ * @note The stack check is performed in a architecture/port dependent way.
+ * It may not be implemented or some ports.
+ * @note The default failure mode is to halt the system with the global
+ * @p panic_msg variable set to @p NULL.
+ */
+#define CH_DBG_ENABLE_STACK_CHECK FALSE
+
+/**
+ * @brief Debug option, stacks initialization.
+ * @details If enabled then the threads working area is filled with a byte
+ * value when a thread is created. This can be useful for the
+ * runtime measurement of the used stack.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_FILL_THREADS FALSE
+
+/**
+ * @brief Debug option, threads profiling.
+ * @details If enabled then a field is added to the @p thread_t structure that
+ * counts the system ticks occurred while executing the thread.
+ *
+ * @note The default is @p FALSE.
+ * @note This debug option is not currently compatible with the
+ * tickless mode.
+ */
+#define CH_DBG_THREADS_PROFILING FALSE
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel hooks
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Threads descriptor structure extension.
+ * @details User fields added to the end of the @p thread_t structure.
+ */
+#define CH_CFG_THREAD_EXTRA_FIELDS \
+ /* Add threads custom fields here.*/
+
+/**
+ * @brief Threads initialization hook.
+ * @details User initialization code added to the @p chThdInit() API.
+ *
+ * @note It is invoked from within @p chThdInit() and implicitly from all
+ * the threads creation APIs.
+ */
+#define CH_CFG_THREAD_INIT_HOOK(tp) { \
+ /* Add threads initialization code here.*/ \
+}
+
+/**
+ * @brief Threads finalization hook.
+ * @details User finalization code added to the @p chThdExit() API.
+ */
+#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
+ /* Add threads finalization code here.*/ \
+}
+
+/**
+ * @brief Context switch hook.
+ * @details This hook is invoked just before switching between threads.
+ */
+#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
+ /* Context switch code here.*/ \
+}
+
+/**
+ * @brief ISR enter hook.
+ */
+#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
+ /* IRQ prologue code here.*/ \
+}
+
+/**
+ * @brief ISR exit hook.
+ */
+#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
+ /* IRQ epilogue code here.*/ \
+}
+
+/**
+ * @brief Idle thread enter hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to activate a power saving mode.
+ */
+#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
+}
+
+/**
+ * @brief Idle thread leave hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to deactivate a power saving mode.
+ */
+#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
+}
+
+/**
+ * @brief Idle Loop hook.
+ * @details This hook is continuously invoked by the idle thread loop.
+ */
+#define CH_CFG_IDLE_LOOP_HOOK() { \
+ /* Idle loop code here.*/ \
+}
+
+/**
+ * @brief System tick event hook.
+ * @details This hook is invoked in the system tick handler immediately
+ * after processing the virtual timers queue.
+ */
+#define CH_CFG_SYSTEM_TICK_HOOK() { \
+ /* System tick event code here.*/ \
+}
+
+/**
+ * @brief System halt hook.
+ * @details This hook is invoked in case to a system halting error before
+ * the system is halted.
+ */
+#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
+ /* System halt code here.*/ \
+}
+
+/**
+ * @brief Trace hook.
+ * @details This hook is invoked each time a new record is written in the
+ * trace buffer.
+ */
+#define CH_CFG_TRACE_HOOK(tep) { \
+ /* Trace code here.*/ \
+}
+
+/** @} */
+
+/*===========================================================================*/
+/* Port-specific settings (override port settings defaulted in chcore.h). */
+/*===========================================================================*/
+
+#endif /* CHCONF_H */
+
+/** @} */
diff --git a/keyboards/infinity_chibios/config.h b/keyboards/infinity60/config.h
index cb9022205..f8346fe16 100644
--- a/keyboards/infinity_chibios/config.h
+++ b/keyboards/infinity60/config.h
@@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef CONFIG_H
#define CONFIG_H
+#define PREVENT_STUCK_MODIFIERS
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
@@ -25,11 +26,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001
/* in python2: list(u"whatever".encode('utf-16-le')) */
/* at most 32 characters or the ugly hack in usb_main.c borks */
-#define MANUFACTURER "TMK"
-#define USBSTR_MANUFACTURER 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', '\xc6', '\x00'
-#define PRODUCT "Infinity keyboard/TMK"
-#define USBSTR_PRODUCT 'I', '\x00', 'n', '\x00', 'f', '\x00', 'i', '\x00', 'n', '\x00', 'i', '\x00', 't', '\x00', 'y', '\x00', ' ', '\x00', 'k', '\x00', 'e', '\x00', 'y', '\x00', 'b', '\x00', 'o', '\x00', 'a', '\x00', 'r', '\x00', 'd', '\x00', '/', '\x00', 'T', '\x00', 'M', '\x00', 'K', '\x00'
-
+#define MANUFACTURER "Input Club"
+#define USBSTR_MANUFACTURER 'I', '\x00', 'n', '\x00', 'p', '\x00', 'u', '\x00', 't', '\x00', ' ', '\x00', 'C', '\x00', 'l', '\x00', 'u', '\x00', 'b', '\x00'
+#define PRODUCT "Infinity keyboard/QMK"
+#define USBSTR_PRODUCT 'I', '\x00', 'n', '\x00', 'f', '\x00', 'i', '\x00', 'n', '\x00', 'i', '\x00', 't', '\x00', 'y', '\x00', ' ', '\x00', 'k', '\x00', 'e', '\x00', 'y', '\x00', 'b', '\x00', 'o', '\x00', 'a', '\x00', 'r', '\x00', 'd', '\x00', '/', '\x00', 'Q', '\x00', 'M', '\x00', 'K', '\x00'
/* key matrix size */
#define MATRIX_ROWS 9
#define MATRIX_COLS 7
@@ -50,9 +50,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* Keymap for Infiity prototype */
-#define INFINITY_PROTOTYPE
+/* Keymap for Infinity prototype */
+//#define INFINITY_PROTOTYPE
+/* Keymap for Infinity 1.1a (first revision with LED support) */
+//#define INFINITY_LED
/*
* Feature disable options
diff --git a/keyboards/infinity_chibios/halconf.h b/keyboards/infinity60/halconf.h
index 53538de14..46b37a4f4 100644
--- a/keyboards/infinity_chibios/halconf.h
+++ b/keyboards/infinity60/halconf.h
@@ -1,353 +1,353 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/**
- * @file templates/halconf.h
- * @brief HAL configuration header.
- * @details HAL configuration file, this file allows to enable or disable the
- * various device drivers from your application. You may also use
- * this file in order to override the device drivers default settings.
- *
- * @addtogroup HAL_CONF
- * @{
- */
-
-#ifndef _HALCONF_H_
-#define _HALCONF_H_
-
-#include "mcuconf.h"
-
-/**
- * @brief Enables the PAL subsystem.
- */
-#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
-#define HAL_USE_PAL TRUE
-#endif
-
-/**
- * @brief Enables the ADC subsystem.
- */
-#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
-#define HAL_USE_ADC FALSE
-#endif
-
-/**
- * @brief Enables the CAN subsystem.
- */
-#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
-#define HAL_USE_CAN FALSE
-#endif
-
-/**
- * @brief Enables the DAC subsystem.
- */
-#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
-#define HAL_USE_DAC FALSE
-#endif
-
-/**
- * @brief Enables the EXT subsystem.
- */
-#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
-#define HAL_USE_EXT FALSE
-#endif
-
-/**
- * @brief Enables the GPT subsystem.
- */
-#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
-#define HAL_USE_GPT FALSE
-#endif
-
-/**
- * @brief Enables the I2C subsystem.
- */
-#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
-#define HAL_USE_I2C FALSE
-#endif
-
-/**
- * @brief Enables the I2S subsystem.
- */
-#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
-#define HAL_USE_I2S FALSE
-#endif
-
-/**
- * @brief Enables the ICU subsystem.
- */
-#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
-#define HAL_USE_ICU FALSE
-#endif
-
-/**
- * @brief Enables the MAC subsystem.
- */
-#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
-#define HAL_USE_MAC FALSE
-#endif
-
-/**
- * @brief Enables the MMC_SPI subsystem.
- */
-#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
-#define HAL_USE_MMC_SPI FALSE
-#endif
-
-/**
- * @brief Enables the PWM subsystem.
- */
-#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
-#define HAL_USE_PWM FALSE
-#endif
-
-/**
- * @brief Enables the RTC subsystem.
- */
-#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
-#define HAL_USE_RTC FALSE
-#endif
-
-/**
- * @brief Enables the SDC subsystem.
- */
-#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
-#define HAL_USE_SDC FALSE
-#endif
-
-/**
- * @brief Enables the SERIAL subsystem.
- */
-#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
-#define HAL_USE_SERIAL FALSE
-#endif
-
-/**
- * @brief Enables the SERIAL over USB subsystem.
- */
-#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
-#define HAL_USE_SERIAL_USB TRUE
-#endif
-
-/**
- * @brief Enables the SPI subsystem.
- */
-#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
-#define HAL_USE_SPI FALSE
-#endif
-
-/**
- * @brief Enables the UART subsystem.
- */
-#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
-#define HAL_USE_UART FALSE
-#endif
-
-/**
- * @brief Enables the USB subsystem.
- */
-#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
-#define HAL_USE_USB TRUE
-#endif
-
-/**
- * @brief Enables the WDG subsystem.
- */
-#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
-#define HAL_USE_WDG FALSE
-#endif
-
-/*===========================================================================*/
-/* ADC driver related settings. */
-/*===========================================================================*/
-
-/**
- * @brief Enables synchronous APIs.
- * @note Disabling this option saves both code and data space.
- */
-#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
-#define ADC_USE_WAIT TRUE
-#endif
-
-/**
- * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs.
- * @note Disabling this option saves both code and data space.
- */
-#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
-#define ADC_USE_MUTUAL_EXCLUSION TRUE
-#endif
-
-/*===========================================================================*/
-/* CAN driver related settings. */
-/*===========================================================================*/
-
-/**
- * @brief Sleep mode related APIs inclusion switch.
- */
-#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
-#define CAN_USE_SLEEP_MODE TRUE
-#endif
-
-/*===========================================================================*/
-/* I2C driver related settings. */
-/*===========================================================================*/
-
-/**
- * @brief Enables the mutual exclusion APIs on the I2C bus.
- */
-#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
-#define I2C_USE_MUTUAL_EXCLUSION TRUE
-#endif
-
-/*===========================================================================*/
-/* MAC driver related settings. */
-/*===========================================================================*/
-
-/**
- * @brief Enables an event sources for incoming packets.
- */
-#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
-#define MAC_USE_ZERO_COPY FALSE
-#endif
-
-/**
- * @brief Enables an event sources for incoming packets.
- */
-#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
-#define MAC_USE_EVENTS TRUE
-#endif
-
-/*===========================================================================*/
-/* MMC_SPI driver related settings. */
-/*===========================================================================*/
-
-/**
- * @brief Delays insertions.
- * @details If enabled this options inserts delays into the MMC waiting
- * routines releasing some extra CPU time for the threads with
- * lower priority, this may slow down the driver a bit however.
- * This option is recommended also if the SPI driver does not
- * use a DMA channel and heavily loads the CPU.
- */
-#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
-#define MMC_NICE_WAITING TRUE
-#endif
-
-/*===========================================================================*/
-/* SDC driver related settings. */
-/*===========================================================================*/
-
-/**
- * @brief Number of initialization attempts before rejecting the card.
- * @note Attempts are performed at 10mS intervals.
- */
-#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
-#define SDC_INIT_RETRY 100
-#endif
-
-/**
- * @brief Include support for MMC cards.
- * @note MMC support is not yet implemented so this option must be kept
- * at @p FALSE.
- */
-#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
-#define SDC_MMC_SUPPORT FALSE
-#endif
-
-/**
- * @brief Delays insertions.
- * @details If enabled this options inserts delays into the MMC waiting
- * routines releasing some extra CPU time for the threads with
- * lower priority, this may slow down the driver a bit however.
- */
-#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
-#define SDC_NICE_WAITING TRUE
-#endif
-
-/*===========================================================================*/
-/* SERIAL driver related settings. */
-/*===========================================================================*/
-
-/**
- * @brief Default bit rate.
- * @details Configuration parameter, this is the baud rate selected for the
- * default configuration.
- */
-#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
-#define SERIAL_DEFAULT_BITRATE 38400
-#endif
-
-/**
- * @brief Serial buffers size.
- * @details Configuration parameter, you can change the depth of the queue
- * buffers depending on the requirements of your application.
- * @note The default is 64 bytes for both the transmission and receive
- * buffers.
- */
-#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
-#define SERIAL_BUFFERS_SIZE 16
-#endif
-
-/*===========================================================================*/
-/* SERIAL_USB driver related setting. */
-/*===========================================================================*/
-
-/**
- * @brief Serial over USB buffers size.
- * @details Configuration parameter, the buffer size must be a multiple of
- * the USB data endpoint maximum packet size.
- * @note The default is 64 bytes for both the transmission and receive
- * buffers.
- */
-#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
-#define SERIAL_USB_BUFFERS_SIZE 256
-#endif
-
-/*===========================================================================*/
-/* SPI driver related settings. */
-/*===========================================================================*/
-
-/**
- * @brief Enables synchronous APIs.
- * @note Disabling this option saves both code and data space.
- */
-#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
-#define SPI_USE_WAIT TRUE
-#endif
-
-/**
- * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
- * @note Disabling this option saves both code and data space.
- */
-#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
-#define SPI_USE_MUTUAL_EXCLUSION TRUE
-#endif
-
-/*===========================================================================*/
-/* USB driver related settings. */
-/*===========================================================================*/
-
-/**
- * @brief Enables synchronous APIs.
- * @note Disabling this option saves both code and data space.
- */
-#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
-#define USB_USE_WAIT TRUE
-#endif
-
-#endif /* _HALCONF_H_ */
-
-/** @} */
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file templates/halconf.h
+ * @brief HAL configuration header.
+ * @details HAL configuration file, this file allows to enable or disable the
+ * various device drivers from your application. You may also use
+ * this file in order to override the device drivers default settings.
+ *
+ * @addtogroup HAL_CONF
+ * @{
+ */
+
+#ifndef _HALCONF_H_
+#define _HALCONF_H_
+
+#include "mcuconf.h"
+
+/**
+ * @brief Enables the PAL subsystem.
+ */
+#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
+#define HAL_USE_PAL TRUE
+#endif
+
+/**
+ * @brief Enables the ADC subsystem.
+ */
+#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
+#define HAL_USE_ADC FALSE
+#endif
+
+/**
+ * @brief Enables the CAN subsystem.
+ */
+#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
+#define HAL_USE_CAN FALSE
+#endif
+
+/**
+ * @brief Enables the DAC subsystem.
+ */
+#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
+#define HAL_USE_DAC FALSE
+#endif
+
+/**
+ * @brief Enables the EXT subsystem.
+ */
+#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
+#define HAL_USE_EXT FALSE
+#endif
+
+/**
+ * @brief Enables the GPT subsystem.
+ */
+#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
+#define HAL_USE_GPT FALSE
+#endif
+
+/**
+ * @brief Enables the I2C subsystem.
+ */
+#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
+#define HAL_USE_I2C FALSE
+#endif
+
+/**
+ * @brief Enables the I2S subsystem.
+ */
+#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
+#define HAL_USE_I2S FALSE
+#endif
+
+/**
+ * @brief Enables the ICU subsystem.
+ */
+#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
+#define HAL_USE_ICU FALSE
+#endif
+
+/**
+ * @brief Enables the MAC subsystem.
+ */
+#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
+#define HAL_USE_MAC FALSE
+#endif
+
+/**
+ * @brief Enables the MMC_SPI subsystem.
+ */
+#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_MMC_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the PWM subsystem.
+ */
+#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
+#define HAL_USE_PWM FALSE
+#endif
+
+/**
+ * @brief Enables the RTC subsystem.
+ */
+#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
+#define HAL_USE_RTC FALSE
+#endif
+
+/**
+ * @brief Enables the SDC subsystem.
+ */
+#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
+#define HAL_USE_SDC FALSE
+#endif
+
+/**
+ * @brief Enables the SERIAL subsystem.
+ */
+#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL FALSE
+#endif
+
+/**
+ * @brief Enables the SERIAL over USB subsystem.
+ */
+#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL_USB TRUE
+#endif
+
+/**
+ * @brief Enables the SPI subsystem.
+ */
+#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the UART subsystem.
+ */
+#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
+#define HAL_USE_UART FALSE
+#endif
+
+/**
+ * @brief Enables the USB subsystem.
+ */
+#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
+#define HAL_USE_USB TRUE
+#endif
+
+/**
+ * @brief Enables the WDG subsystem.
+ */
+#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
+#define HAL_USE_WDG FALSE
+#endif
+
+/*===========================================================================*/
+/* ADC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
+#define ADC_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define ADC_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* CAN driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Sleep mode related APIs inclusion switch.
+ */
+#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
+#define CAN_USE_SLEEP_MODE TRUE
+#endif
+
+/*===========================================================================*/
+/* I2C driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the mutual exclusion APIs on the I2C bus.
+ */
+#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define I2C_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* MAC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables an event sources for incoming packets.
+ */
+#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
+#define MAC_USE_ZERO_COPY FALSE
+#endif
+
+/**
+ * @brief Enables an event sources for incoming packets.
+ */
+#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
+#define MAC_USE_EVENTS TRUE
+#endif
+
+/*===========================================================================*/
+/* MMC_SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ * This option is recommended also if the SPI driver does not
+ * use a DMA channel and heavily loads the CPU.
+ */
+#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
+#define MMC_NICE_WAITING TRUE
+#endif
+
+/*===========================================================================*/
+/* SDC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Number of initialization attempts before rejecting the card.
+ * @note Attempts are performed at 10mS intervals.
+ */
+#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
+#define SDC_INIT_RETRY 100
+#endif
+
+/**
+ * @brief Include support for MMC cards.
+ * @note MMC support is not yet implemented so this option must be kept
+ * at @p FALSE.
+ */
+#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
+#define SDC_MMC_SUPPORT FALSE
+#endif
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ */
+#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
+#define SDC_NICE_WAITING TRUE
+#endif
+
+/*===========================================================================*/
+/* SERIAL driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Default bit rate.
+ * @details Configuration parameter, this is the baud rate selected for the
+ * default configuration.
+ */
+#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
+#define SERIAL_DEFAULT_BITRATE 38400
+#endif
+
+/**
+ * @brief Serial buffers size.
+ * @details Configuration parameter, you can change the depth of the queue
+ * buffers depending on the requirements of your application.
+ * @note The default is 64 bytes for both the transmission and receive
+ * buffers.
+ */
+#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
+#define SERIAL_BUFFERS_SIZE 16
+#endif
+
+/*===========================================================================*/
+/* SERIAL_USB driver related setting. */
+/*===========================================================================*/
+
+/**
+ * @brief Serial over USB buffers size.
+ * @details Configuration parameter, the buffer size must be a multiple of
+ * the USB data endpoint maximum packet size.
+ * @note The default is 64 bytes for both the transmission and receive
+ * buffers.
+ */
+#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
+#define SERIAL_USB_BUFFERS_SIZE 256
+#endif
+
+/*===========================================================================*/
+/* SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
+#define SPI_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define SPI_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* USB driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
+#define USB_USE_WAIT TRUE
+#endif
+
+#endif /* _HALCONF_H_ */
+
+/** @} */
diff --git a/keyboards/infinity60/infinity60.c b/keyboards/infinity60/infinity60.c
new file mode 100644
index 000000000..fdeed5124
--- /dev/null
+++ b/keyboards/infinity60/infinity60.c
@@ -0,0 +1,32 @@
+/*
+Copyright 2012,2013 Jun Wako <wakojun@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/>.
+*/
+#include "infinity60.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
diff --git a/keyboards/infinity_chibios/infinity_chibios.h b/keyboards/infinity60/infinity60.h
index a44c68b82..f1ba15e48 100644
--- a/keyboards/infinity_chibios/infinity_chibios.h
+++ b/keyboards/infinity60/infinity60.h
@@ -29,15 +29,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
K54, K64, K74, K84, K05, K15, K25, K35, K45, K55, K65, K75, K85, \
K06, K16, K26, K36, K46, K56, K66, K76 \
) { \
- { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06 }, \
- { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16 }, \
- { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26 }, \
- { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36 }, \
- { KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46 }, \
- { KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56 }, \
- { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66 }, \
- { KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76 }, \
- { KC_##K80, KC_##K81, KC_##K82, KC_##K83, KC_##K84, KC_##K85, KC_##K86 } \
+ { K00, K01, K02, K03, K04, K05, K06 }, \
+ { K10, K11, K12, K13, K14, K15, K16 }, \
+ { K20, K21, K22, K23, K24, K25, K26 }, \
+ { K30, K31, K32, K33, K34, K35, K36 }, \
+ { K40, K41, K42, K43, K44, K45, K46 }, \
+ { K50, K51, K52, K53, K54, K55, K56 }, \
+ { K60, K61, K62, K63, K64, K65, K66 }, \
+ { K70, K71, K72, K73, K74, K75, K76 }, \
+ { K80, K81, K82, K83, K84, K85, K86 } \
}
#else
@@ -50,15 +50,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
K64, K74, K84, K05, K15, K25, K35, K45, K55, K65, K75, K85, K06, \
K16, K26, K36, K46, K56, K66, K76, K86 \
) { \
- { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06 }, \
- { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16 }, \
- { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26 }, \
- { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36 }, \
- { KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46 }, \
- { KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56 }, \
- { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66 }, \
- { KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76 }, \
- { KC_##K80, KC_##K81, KC_##K82, KC_##K83, KC_##K84, KC_##K85, KC_##K86 } \
+ { K00, K01, K02, K03, K04, K05, K06 }, \
+ { K10, K11, K12, K13, K14, K15, K16 }, \
+ { K20, K21, K22, K23, K24, K25, K26 }, \
+ { K30, K31, K32, K33, K34, K35, K36 }, \
+ { K40, K41, K42, K43, K44, K45, K46 }, \
+ { K50, K51, K52, K53, K54, K55, K56 }, \
+ { K60, K61, K62, K63, K64, K65, K66 }, \
+ { K70, K71, K72, K73, K74, K75, K76 }, \
+ { K80, K81, K82, K83, K84, K85, K86 } \
}
#endif
diff --git a/keyboards/infinity_chibios/keymaps/default/keymap.c b/keyboards/infinity60/keymaps/default/keymap.c
index 2acf72849..8347c94b4 100644
--- a/keyboards/infinity_chibios/keymaps/default/keymap.c
+++ b/keyboards/infinity60/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-#include "infinity_chibios.h"
+#include "infinity60.h"
const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0: Default Layer
@@ -14,12 +14,12 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | |Gui|Alt | Space |Alt |Gui| | |
* `-----------------------------------------------------------'
*/
- [0] =
- KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS, GRV, \
- TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \
- LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \
- LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT,FN0, \
- NO, LGUI,LALT, SPC, RALT,RGUI,NO, NO),
+ [0] = KEYMAP(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS, KC_GRV, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, \
+ KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENT, \
+ KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,MO(1), \
+ KC_NO, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_NO, KC_NO),
/* Layer 1: HHKB mode (HHKB Fn)
* ,-----------------------------------------------------------.
@@ -34,15 +34,24 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | |Gui|Alt | Space |Alt |Gui| | |
* `-----------------------------------------------------------'
*/
- [1] =
- KEYMAP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
- CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS, UP, TRNS, BSPC, \
- TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT,PENT, \
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN,TRNS,TRNS, \
- TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS),
+ [1] = KEYMAP(
+ KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \
+ KC_CAPS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \
+ KC_TRNS,KC_VOLD,KC_VOLU,KC_MUTE,KC_TRNS,KC_TRNS,KC_PAST,KC_PSLS,KC_HOME,KC_PGUP,KC_LEFT,KC_RGHT,KC_PENT, \
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PPLS,KC_PMNS,KC_END, KC_PGDN,KC_DOWN,KC_TRNS,KC_TRNS, \
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS),
};
const uint16_t fn_actions[] = {
- [0] = ACTION_LAYER_MOMENTARY(1),
+
};
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+};
diff --git a/keyboards/infinity60/keymaps/depariel/keymap.c b/keyboards/infinity60/keymaps/depariel/keymap.c
new file mode 100755
index 000000000..57f9487f2
--- /dev/null
+++ b/keyboards/infinity60/keymaps/depariel/keymap.c
@@ -0,0 +1,91 @@
+#include "infinity60.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Layer 0: Default Layer
+ * ,-----------------------------------------------------------.
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|
+ * |-----------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Bksp|
+ * |-----------------------------------------------------------|
+ * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter |
+ * |-----------------------------------------------------------|
+ * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn2|
+ * |-----------------------------------------------------------'
+ * |Fn2 |Gui |Alt | Space |RAlt|Prv|PlPs|Next|
+ * `-----------------------------------------------------------'
+ */
+ [0] = KEYMAP(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, LT(5, KC_ENT), \
+ KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, MO(4), \
+ MO(4), KC_LGUI, KC_LALT, LT(3, KC_SPC), KC_RALT, KC_MPRV, KC_MPLY, KC_MNXT),
+
+ /* Layer 1: "Toggle" off SpaceFn for League of Legends
+ */
+ [1] = KEYMAP(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(4), \
+ MO(4), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_MPRV, KC_MPLY, KC_MNXT),
+
+ /* Layer 2: "Toggle" off SpaceFn for MapleRoyals
+ */
+ [2] = KEYMAP(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_LSFT, \
+ MO(4), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT),
+
+ /* Layer 3: FN layer 1
+ */
+ [3] = KEYMAP(
+ KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, \
+ KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, LALT(KC_F4), KC_HOME, KC_PGUP, KC_PSCR, KC_SLCK, KC_UP, KC_NO, KC_LPRN, KC_RPRN, KC_DEL, \
+ MO(6), KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_END, KC_PGDN, KC_TILD, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, \
+ LGUI(KC_SPC), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_CALC, KC_MENU, KC_TRNS, TG(4), \
+ KC_TRNS, KC_TRNS, KC_TRNS, LT(3, KC_SPC), KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU),
+
+ /* Layer 4: FN layer 2
+ */
+ [4] = KEYMAP(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PMNS, KC_PPLS, KC_PSLS, TG(2), \
+ KC_CAPS, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_NO, KC_P7, KC_P8, KC_P9, KC_PAST, KC_BSPC, \
+ KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_PENT, \
+ KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_RSFT, MO(4), \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P0, KC_PDOT, KC_NO, TG(1)),
+
+ /* Layer 5: FN layer 3
+ */
+ [5] = KEYMAP(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
+ KC_TAB , KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F13, KC_F14, KC_F15, KC_F16, KC_NO, KC_TRNS, \
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F17, KC_F18, KC_F19, KC_F20, LT(5, KC_ENT), \
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F21, KC_F22, KC_F23, KC_F24, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, KC_NO, KC_NO, KC_NO),
+
+ /* Layer 6: FN layer 4
+ */
+ [6] = KEYMAP(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
+ LCTL(LSFT(KC_TAB)), KC_NO, LGUI(KC_UP), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
+ MO(6), LGUI(KC_LEFT), LGUI(KC_DOWN), LGUI(KC_RGHT), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 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, KC_NO, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+};
diff --git a/keyboards/infinity60/keymaps/hasu/keymap.c b/keyboards/infinity60/keymaps/hasu/keymap.c
new file mode 100644
index 000000000..9982078c1
--- /dev/null
+++ b/keyboards/infinity60/keymaps/hasu/keymap.c
@@ -0,0 +1,123 @@
+#include "infinity60.h"
+
+const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Layer 0: Default Layer
+ * ,-----------------------------------------------------------.
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| `|BSp|
+ * |-----------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
+ * |-----------------------------------------------------------|
+ * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter |
+ * |-----------------------------------------------------------|
+ * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0|
+ * |-----------------------------------------------------------'
+ * | |Gui|Alt | Space |Alt |Gui| | |
+ * `-----------------------------------------------------------'
+ */
+ [0] = KEYMAP(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_GRV, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, \
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(3, KC_SCLN), KC_QUOT,MT(KC_RCTL, KC_ENT), \
+ OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, LT(2, KC_SLSH), KC_RSFT,TG(1), \
+ KC_NO, KC_LGUI,KC_LALT, LT(4, KC_SPC), MO(4), KC_RGUI,KC_NO, KC_NO),
+
+ /* Layer 1: HHKB mode (HHKB Fn)
+ * ,-----------------------------------------------------------.
+ * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
+ * |-----------------------------------------------------------|
+ * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs|
+ * |-----------------------------------------------------------|
+ * | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter |
+ * |-----------------------------------------------------------|
+ * | | | | | | | +| -|End|PgD|Dow| | |
+ * `-----------------------------------------------------------'
+ * | |Gui|Alt | Space |Alt |Gui| | |
+ * `-----------------------------------------------------------'
+ */
+ [1] = KEYMAP(
+ KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \
+ KC_CAPS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS, KC_UP, KC_TRNS,KC_BSPC, \
+ KC_LCTL,KC_VOLD,KC_VOLU,KC_MUTE,KC_TRNS,KC_TRNS,KC_PAST,KC_PSLS,KC_HOME,KC_PGUP,KC_LEFT,KC_RGHT,KC_ENT, \
+ KC_LSFT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PPLS,KC_PMNS,KC_END, KC_PGDN,KC_DOWN,KC_RSFT,KC_TRNS, \
+ KC_TRNS,KC_LGUI,KC_LALT, KC_TRNS, KC_RALT,KC_RGUI,KC_TRNS,KC_TRNS),
+
+ /* Layer 2: Vi mode[Slash]
+ * ,-----------------------------------------------------------.
+ * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
+ * |-----------------------------------------------------------|
+ * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgUlEnd| | | |Backs|
+ * |-----------------------------------------------------------|
+ * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return |
+ * |-----------------------------------------------------------|
+ * |Shift | | | | | |Hom|PgD|PgUlEnd|Fn0|Shift | |
+ * `-----------------------------------------------------------'
+ * |Gui|Alt | Space |Alt |Gui|
+ * `-------------------------------------------'
+ */
+ [2] = KEYMAP(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \
+ KC_TAB, KC_HOME,KC_PGDN,KC_UP, KC_PGUP,KC_END, KC_HOME,KC_PGDN,KC_PGUP,KC_END, KC_NO, KC_NO, KC_NO, KC_BSPC, \
+ KC_LCTL,KC_NO, KC_LEFT,KC_DOWN,KC_RGHT,KC_NO, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,KC_NO, KC_NO, KC_ENT, \
+ KC_LSFT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME,KC_PGDN,KC_PGUP,KC_END, LT(2, KC_SLSH), KC_RSFT,KC_TRNS, \
+ KC_TRNS,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_TRNS, KC_TRNS),
+
+ /* Layer 3: Mouse mode(IJKL)[Semicolon]
+ * ,-----------------------------------------------------------.
+ * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
+ * |-----------------------------------------------------------|
+ * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T|
+ * |-----------------------------------------------------------|
+ * |Contro| | | | | |Mb2|McL|McD|McR|Fn | |Return |
+ * |-----------------------------------------------------------|
+ * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | |
+ * `-----------------------------------------------------------'
+ * |Gui |Alt | Mb1 |Fn |Fn |
+ * `--------------------------------------------'
+ * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
+ */
+ [3] = KEYMAP(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \
+ LALT(KC_TAB), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_L,KC_WH_D,KC_MS_U, KC_WH_U, KC_WH_R, ALT_T(KC_LEFT), ALT_T(KC_RGHT),LALT(KC_TAB), \
+ KC_LCTL, KC_ACL0,KC_ACL1,KC_ACL2,KC_ACL2,KC_NO, KC_NO, KC_MS_L,KC_MS_D, KC_MS_R, LT(3, KC_SCLN), KC_NO, KC_ENT, \
+ KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN3,KC_BTN2,KC_BTN1,ALT_T(KC_LEFT), ALT_T(KC_RGHT), KC_NO, KC_RSFT, KC_TRNS, \
+ KC_TRNS, KC_LGUI,KC_LALT, KC_BTN1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ /* Layer 4: Mouse mode(IJKL)[Space]
+ * ,-----------------------------------------------------------.
+ * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
+ * |-----------------------------------------------------------|
+ * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T|
+ * |-----------------------------------------------------------|
+ * |Contro| | | | | |Mb2|McL|McD|McR|Mb1| |Return |
+ * |-----------------------------------------------------------|
+ * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | |
+ * `-----------------------------------------------------------'
+ * |Gui |Alt | Mb1 |Fn |Fn |
+ * `--------------------------------------------'
+ * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
+ */
+ [4] = KEYMAP(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \
+ LALT(KC_TAB), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_L,KC_WH_D,KC_MS_U, KC_WH_U, KC_WH_R,KC_BTN4,KC_BTN5,LALT(KC_TAB), \
+ KC_LCTL, KC_VOLD,KC_VOLU,KC_MUTE,KC_NO, KC_NO, KC_NO, KC_MS_L,KC_MS_D, KC_MS_R, KC_BTN1,KC_NO, KC_ENT, \
+ KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN3,KC_BTN2,KC_BTN1,ALT_T(KC_LEFT),ALT_T(KC_RGHT),KC_NO, KC_RSFT,KC_TRNS, \
+ KC_TRNS, KC_LGUI,KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS),
+
+};
+
+/*
+ * Fn action definition
+ */
+const uint16_t fn_actions[] = {
+
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+};
diff --git a/keyboards/infinity_chibios/led.c b/keyboards/infinity60/led.c
index aed66c7c0..aed66c7c0 100644
--- a/keyboards/infinity_chibios/led.c
+++ b/keyboards/infinity60/led.c
diff --git a/keyboards/infinity_chibios/matrix.c b/keyboards/infinity60/matrix.c
index 2c68ea83a..b6ccf86c3 100644
--- a/keyboards/infinity_chibios/matrix.c
+++ b/keyboards/infinity60/matrix.c
@@ -12,9 +12,12 @@
* Infinity Pinusage:
* Column pins are input with internal pull-down. Row pins are output and strobe with high.
* Key is high or 1 when it turns on.
- *
+ * INFINITY PRODUCTION (NO LED)
* col: { PTD1, PTD2, PTD3, PTD4, PTD5, PTD6, PTD7 }
* row: { PTB0, PTB1, PTB2, PTB3, PTB16, PTB17, PTC4, PTC5, PTD0 }
+ * INFINITY PRODUCTION (WITH LED)
+ * col: { PTD1, PTD2, PTD3, PTD4, PTD5, PTD6, PTD7 }
+ * row: { PTC0, PTC1, PTC2, PTC3, PTC4, PTC5, PTC6, PTC7, PTD0 }
*/
/* matrix state(1:on, 0:off) */
static matrix_row_t matrix[MATRIX_ROWS];
@@ -34,6 +37,18 @@ void matrix_init(void)
palSetPadMode(GPIOD, 6, PAL_MODE_INPUT_PULLDOWN);
palSetPadMode(GPIOD, 7, PAL_MODE_INPUT_PULLDOWN);
+#ifdef INFINITY_LED
+ /* Row(strobe) */
+ palSetPadMode(GPIOC, 0, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOC, 1, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOC, 2, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOC, 3, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOC, 4, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOC, 5, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOC, 6, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOC, 7, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOD, 0, PAL_MODE_OUTPUT_PUSHPULL);
+#else
/* Row(strobe) */
palSetPadMode(GPIOB, 0, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOB, 1, PAL_MODE_OUTPUT_PUSHPULL);
@@ -44,16 +59,31 @@ void matrix_init(void)
palSetPadMode(GPIOC, 4, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOC, 5, PAL_MODE_OUTPUT_PUSHPULL);
palSetPadMode(GPIOD, 0, PAL_MODE_OUTPUT_PUSHPULL);
-
+#endif
memset(matrix, 0, MATRIX_ROWS);
memset(matrix_debouncing, 0, MATRIX_ROWS);
+
+ matrix_init_quantum();
}
uint8_t matrix_scan(void)
{
for (int row = 0; row < MATRIX_ROWS; row++) {
matrix_row_t data = 0;
-
+ #ifdef INFINITY_LED
+ // strobe row
+ switch (row) {
+ case 0: palSetPad(GPIOC, 0); break;
+ case 1: palSetPad(GPIOC, 1); break;
+ case 2: palSetPad(GPIOC, 2); break;
+ case 3: palSetPad(GPIOC, 3); break;
+ case 4: palSetPad(GPIOC, 4); break;
+ case 5: palSetPad(GPIOC, 5); break;
+ case 6: palSetPad(GPIOC, 6); break;
+ case 7: palSetPad(GPIOC, 7); break;
+ case 8: palSetPad(GPIOD, 0); break;
+ }
+ #else
// strobe row
switch (row) {
case 0: palSetPad(GPIOB, 0); break;
@@ -66,12 +96,31 @@ uint8_t matrix_scan(void)
case 7: palSetPad(GPIOC, 5); break;
case 8: palSetPad(GPIOD, 0); break;
}
+ #endif
- wait_us(1); // need wait to settle pin state
+ // need wait to settle pin state
+ // if you wait too short, or have a too high update rate
+ // the keyboard might freeze, or there might not be enough
+ // processing power to update the LCD screen properly.
+ // 20us, or two ticks at 100000Hz seems to be OK
+ wait_us(20);
// read col data
data = (palReadPort(GPIOD)>>1);
-
+ #ifdef INFINITY_LED
+ // un-strobe row
+ switch (row) {
+ case 0: palClearPad(GPIOC, 0); break;
+ case 1: palClearPad(GPIOC, 1); break;
+ case 2: palClearPad(GPIOC, 2); break;
+ case 3: palClearPad(GPIOC, 3); break;
+ case 4: palClearPad(GPIOC, 4); break;
+ case 5: palClearPad(GPIOC, 5); break;
+ case 6: palClearPad(GPIOC, 6); break;
+ case 7: palClearPad(GPIOC, 7); break;
+ case 8: palClearPad(GPIOD, 0); break;
+ }
+ #else
// un-strobe row
switch (row) {
case 0: palClearPad(GPIOB, 0); break;
@@ -84,6 +133,7 @@ uint8_t matrix_scan(void)
case 7: palClearPad(GPIOC, 5); break;
case 8: palClearPad(GPIOD, 0); break;
}
+ #endif
if (matrix_debouncing[row] != data) {
matrix_debouncing[row] = data;
@@ -98,6 +148,7 @@ uint8_t matrix_scan(void)
}
debouncing = false;
}
+ matrix_scan_quantum();
return 1;
}
diff --git a/keyboards/infinity_chibios/mcuconf.h b/keyboards/infinity60/mcuconf.h
index 66b6ce25d..f453304b7 100644
--- a/keyboards/infinity_chibios/mcuconf.h
+++ b/keyboards/infinity60/mcuconf.h
@@ -1,55 +1,55 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#ifndef _MCUCONF_H_
-#define _MCUCONF_H_
-
-#define K20x_MCUCONF
-
-/*
- * HAL driver system settings.
- */
-
-/* Select the MCU clocking mode below by enabling the appropriate block. */
-
-#define KINETIS_NO_INIT FALSE
-
-/* FEI mode - 48 MHz with internal 32.768 kHz crystal */
-#define KINETIS_MCG_MODE KINETIS_MCG_MODE_FEI
-#define KINETIS_MCG_FLL_DMX32 1 /* Fine-tune for 32.768 kHz */
-#define KINETIS_MCG_FLL_DRS 1 /* 1464x FLL factor */
-#define KINETIS_SYSCLK_FREQUENCY 47972352UL /* 32.768 kHz * 1464 (~48 MHz) */
-#define KINETIS_CLKDIV1_OUTDIV1 1
-#define KINETIS_CLKDIV1_OUTDIV2 1
-#define KINETIS_CLKDIV1_OUTDIV4 2
-#define KINETIS_BUSCLK_FREQUENCY KINETIS_SYSCLK_FREQUENCY
-#define KINETIS_FLASHCLK_FREQUENCY KINETIS_SYSCLK_FREQUENCY/2
-
-/*
- * SERIAL driver system settings.
- */
-#define KINETIS_SERIAL_USE_UART0 TRUE
-
-/*
- * USB driver settings
- */
-#define KINETIS_USB_USE_USB0 TRUE
-/* Need to redefine this, since the default is for K20x */
-/* This is for Teensy LC; you should comment it out (or change to 5)
- * for Teensy 3.x */
-#define KINETIS_USB_USB0_IRQ_PRIORITY 2
-
-#endif /* _MCUCONF_H_ */
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _MCUCONF_H_
+#define _MCUCONF_H_
+
+#define K20x_MCUCONF
+
+/*
+ * HAL driver system settings.
+ */
+
+/* Select the MCU clocking mode below by enabling the appropriate block. */
+
+#define KINETIS_NO_INIT FALSE
+
+/* FEI mode - 48 MHz with internal 32.768 kHz crystal */
+#define KINETIS_MCG_MODE KINETIS_MCG_MODE_FEI
+#define KINETIS_MCG_FLL_DMX32 1 /* Fine-tune for 32.768 kHz */
+#define KINETIS_MCG_FLL_DRS 1 /* 1464x FLL factor */
+#define KINETIS_SYSCLK_FREQUENCY 47972352UL /* 32.768 kHz * 1464 (~48 MHz) */
+#define KINETIS_CLKDIV1_OUTDIV1 1
+#define KINETIS_CLKDIV1_OUTDIV2 1
+#define KINETIS_CLKDIV1_OUTDIV4 2
+#define KINETIS_BUSCLK_FREQUENCY KINETIS_SYSCLK_FREQUENCY
+#define KINETIS_FLASHCLK_FREQUENCY KINETIS_SYSCLK_FREQUENCY/2
+
+/*
+ * SERIAL driver system settings.
+ */
+#define KINETIS_SERIAL_USE_UART0 TRUE
+
+/*
+ * USB driver settings
+ */
+#define KINETIS_USB_USE_USB0 TRUE
+/* Need to redefine this, since the default is for K20x */
+/* This is for Teensy LC; you should comment it out (or change to 5)
+ * for Teensy 3.x */
+#define KINETIS_USB_USB0_IRQ_PRIORITY 2
+
+#endif /* _MCUCONF_H_ */
diff --git a/keyboards/infinity60/readme.md b/keyboards/infinity60/readme.md
new file mode 100644
index 000000000..97457b407
--- /dev/null
+++ b/keyboards/infinity60/readme.md
@@ -0,0 +1,29 @@
+Infinity 60% keyboard firmware
+======================
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent readme](/).
+
+## Keymaps
+
+Several versions of keymaps are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
+
+Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/`
+
+
+## Compiling
+
+Download or clone the whole firmware and navigate to the keyboards/infinity60 folder. Once your dev env is setup, you'll be able to use the `make` command to both compile your keymap and flash it to your keyboard.
+
+To just compile, which generates the output files in the `.build` folder at the root of the repository, run `make keymap`, where keymap is the name of the keymap that you want to compile.
+
+## Flashing
+
+To flash the firmware to the keyboard
+
+1. First press the flash button on the bottom of the keyboard. If you already have a flah button mapped in a keyboard layout running on the keyboard, you can also use that.
+2. Then run `make keymap-dfu-util`, where keymap is the name of the keymap you want to flash. On Linux based operating systems you might need to run the comamnd as root, for example `sudo make keymap-dfu-util` on Ubuntu.
+
+**Tip** `make keymap-dfu-util` will also compile the keymap if needed, so you can skip the compilation step if you want to.
+
diff --git a/keyboards/infinity_chibios/Makefile b/keyboards/infinity60/rules.mk
index 649b43e64..56d6470b5 100644
--- a/keyboards/infinity_chibios/Makefile
+++ b/keyboards/infinity60/rules.mk
@@ -63,8 +63,4 @@ CONSOLE_ENABLE ?= yes # Console for debug
COMMAND_ENABLE ?= yes # Commands for debug and configuration
SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover
-CUSTOM_MATRIX ?= yes # Custom matrix file
-
-ifndef QUANTUM_DIR
- include ../../Makefile
-endif \ No newline at end of file
+CUSTOM_MATRIX ?= yes # Custom matrix file \ No newline at end of file
diff --git a/keyboards/infinity_chibios/keymaps/hasu/keymap.c b/keyboards/infinity_chibios/keymaps/hasu/keymap.c
deleted file mode 100644
index e9a212f0e..000000000
--- a/keyboards/infinity_chibios/keymaps/hasu/keymap.c
+++ /dev/null
@@ -1,199 +0,0 @@
-#include "infinity_chibios.h"
-
-const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Layer 0: Default Layer
- * ,-----------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| `|BSp|
- * |-----------------------------------------------------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
- * |-----------------------------------------------------------|
- * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter |
- * |-----------------------------------------------------------|
- * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0|
- * |-----------------------------------------------------------'
- * | |Gui|Alt | Space |Alt |Gui| | |
- * `-----------------------------------------------------------'
- */
- [0] =
- KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,GRV, \
- TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \
- LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT,FN6, \
- FN7, Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT,FN1, \
- NO, LGUI,LALT, FN4, FN5, RGUI,NO, NO),
-
- /* Layer 1: HHKB mode (HHKB Fn)
- * ,-----------------------------------------------------------.
- * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
- * |-----------------------------------------------------------|
- * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs|
- * |-----------------------------------------------------------|
- * | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter |
- * |-----------------------------------------------------------|
- * | | | | | | | +| -|End|PgD|Dow| | |
- * `-----------------------------------------------------------'
- * | |Gui|Alt | Space |Alt |Gui| | |
- * `-----------------------------------------------------------'
- */
- [1] =
- KEYMAP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
- CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS, UP, TRNS,BSPC, \
- LCTL,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT,ENT, \
- LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN,RSFT,TRNS, \
- TRNS,LGUI,LALT, TRNS, RALT,RGUI,TRNS,TRNS),
-
- /* Layer 2: Vi mode[Slash]
- * ,-----------------------------------------------------------.
- * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
- * |-----------------------------------------------------------|
- * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgUlEnd| | | |Backs|
- * |-----------------------------------------------------------|
- * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return |
- * |-----------------------------------------------------------|
- * |Shift | | | | | |Hom|PgD|PgUlEnd|Fn0|Shift | |
- * `-----------------------------------------------------------'
- * |Gui|Alt | Space |Alt |Gui|
- * `-------------------------------------------'
- */
- [2] = \
- KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
- TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, BSPC, \
- LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \
- LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN2, RSFT,TRNS, \
- TRNS,LGUI,LALT, SPC, RALT,RGUI,TRNS,TRNS),
-
- /* Layer 3: Mouse mode(IJKL)[Semicolon]
- * ,-----------------------------------------------------------.
- * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
- * |-----------------------------------------------------------|
- * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T|
- * |-----------------------------------------------------------|
- * |Contro| | | | | |Mb2|McL|McD|McR|Fn | |Return |
- * |-----------------------------------------------------------|
- * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | |
- * `-----------------------------------------------------------'
- * |Gui |Alt | Mb1 |Fn |Fn |
- * `--------------------------------------------'
- * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
- */
- [3] = \
- KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
- FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,FN9, FN10,FN8, \
- LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,FN3, NO, ENT, \
- LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,TRNS, \
- TRNS,LGUI,LALT, BTN1, TRNS,TRNS,TRNS,TRNS),
-
- /* Layer 4: Mouse mode(IJKL)[Space]
- * ,-----------------------------------------------------------.
- * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
- * |-----------------------------------------------------------|
- * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T|
- * |-----------------------------------------------------------|
- * |Contro| | | | | |Mb2|McL|McD|McR|Mb1| |Return |
- * |-----------------------------------------------------------|
- * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | |
- * `-----------------------------------------------------------'
- * |Gui |Alt | Mb1 |Fn |Fn |
- * `--------------------------------------------'
- * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
- */
- [4] = \
- KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
- FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,BTN4,BTN5,FN8, \
- LCTL,VOLD,VOLU,MUTE,NO, NO, NO, MS_L,MS_D,MS_R,BTN1,NO, ENT, \
- LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,TRNS, \
- TRNS,LGUI,LALT, TRNS, TRNS,TRNS,TRNS,TRNS),
-
-};
-
-/* id for user defined functions */
-enum function_id {
- LSHIFT_LPAREN,
-};
-
-enum macro_id {
- HELLO,
- VOLUP,
- ALT_TAB,
-};
-
-/*
- * Fn action definition
- */
-const uint16_t fn_actions[] = {
- [0] = ACTION_DEFAULT_LAYER_SET(0), // Default layer(not used)
- [1] = ACTION_LAYER_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps)
- [2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash*
- [3] = ACTION_LAYER_TAP_KEY(3, KC_SCLN), // Mousekey layer with Semicolon*
- [4] = ACTION_LAYER_TAP_KEY(4, KC_SPC), // Mousekey layer with Space
- [5] = ACTION_LAYER_MOMENTARY(4), // Mousekey layer(IJKL)
- [6] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT), // RControl with tap Enter
- [7] = ACTION_MODS_ONESHOT(MOD_LSFT), // Oneshot Shift
- [8] = ACTION_MACRO(ALT_TAB), // Application switching
- [9] = ACTION_MODS_KEY(MOD_LALT, KC_LEFT),
- [10] = ACTION_MODS_KEY(MOD_LALT, KC_RIGHT),
-};
-
-/*
- * Macro definition
- */
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- switch (id) {
- case HELLO:
- return (record->event.pressed ?
- MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) :
- MACRO_NONE );
- case VOLUP:
- return (record->event.pressed ?
- MACRO( D(VOLU), U(VOLU), END ) :
- MACRO_NONE );
- case ALT_TAB:
- return (record->event.pressed ?
- MACRO( D(LALT), D(TAB), END ) :
- MACRO( U(TAB), END ));
- }
- return MACRO_NONE;
-}
-
-
-
-/*
- * user defined action function
- */
-void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- if (record->event.pressed) dprint("P"); else dprint("R");
- dprintf("%d", record->tap.count);
- if (record->tap.interrupted) dprint("i");
- dprint("\n");
-
- switch (id) {
- case LSHIFT_LPAREN:
- // Shift parentheses example: LShft + tap '('
- // http://stevelosh.com/blog/2012/10/a-modern-space-cadet/#shift-parentheses
- // http://geekhack.org/index.php?topic=41989.msg1304899#msg1304899
- if (record->event.pressed) {
- if (record->tap.count > 0 && !record->tap.interrupted) {
- if (record->tap.interrupted) {
- dprint("tap interrupted\n");
- register_mods(MOD_BIT(KC_LSHIFT));
- }
- } else {
- register_mods(MOD_BIT(KC_LSHIFT));
- }
- } else {
- if (record->tap.count > 0 && !(record->tap.interrupted)) {
- add_weak_mods(MOD_BIT(KC_LSHIFT));
- send_keyboard_report();
- register_code(KC_9);
- unregister_code(KC_9);
- del_weak_mods(MOD_BIT(KC_LSHIFT));
- send_keyboard_report();
- record->tap.count = 0; // ad hoc: cancel tap
- } else {
- unregister_mods(MOD_BIT(KC_LSHIFT));
- }
- }
- break;
- }
-}
diff --git a/keyboards/infinity_ergodox/infinity_ergodox.h b/keyboards/infinity_ergodox/infinity_ergodox.h
deleted file mode 100644
index de7267594..000000000
--- a/keyboards/infinity_ergodox/infinity_ergodox.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_
-#define KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_
-
-#include "quantum.h"
-
-#define KEYMAP( \
- A80, A70, A60, A50, A40, A30, A20, \
- A81, A71, A61, A51, A41, A31, A21, \
- A82, A72, A62, A52, A42, A32, \
- A83, A73, A63, A53, A43, A33, A23, \
- A84, A74, A64, A54, A44, \
- A13, A03, \
- A04, \
- A34, A24, A14, \
- B20, B30, B40, B50, B60, B70, B80, \
- B21, B31, B41, B51, B61, B71, B81, \
- B32, B42, B52, B62, B72, B82, \
- B23, B33, B43, B53, B63, B73, B83, \
- B44, B54, B64, B74, B84, \
- B03, B13, \
- B04, \
- B14, B24, B34 \
-) { \
- { KC_NO, KC_NO, KC_NO, KC_##A03, KC_##A04 }, \
- { KC_NO, KC_NO, KC_NO, KC_##A13, KC_##A14 }, \
- { KC_##A20, KC_##A21, KC_NO, KC_##A23, KC_##A24 }, \
- { KC_##A30, KC_##A31, KC_##A32, KC_##A33, KC_##A34 }, \
- { KC_##A40, KC_##A41, KC_##A42, KC_##A43, KC_##A44 }, \
- { KC_##A50, KC_##A51, KC_##A52, KC_##A53, KC_##A54 }, \
- { KC_##A60, KC_##A61, KC_##A62, KC_##A63, KC_##A64 }, \
- { KC_##A70, KC_##A71, KC_##A72, KC_##A73, KC_##A74 }, \
- { KC_##A80, KC_##A81, KC_##A82, KC_##A83, KC_##A84 }, \
- { KC_NO, KC_NO, KC_NO, KC_##B03, KC_##B04 }, \
- { KC_NO, KC_NO, KC_NO, KC_##B13, KC_##B14 }, \
- { KC_##B20, KC_##B21, KC_NO, KC_##B23, KC_##B24 }, \
- { KC_##B30, KC_##B31, KC_##B32, KC_##B33, KC_##B34 }, \
- { KC_##B40, KC_##B41, KC_##B42, KC_##B43, KC_##B44 }, \
- { KC_##B50, KC_##B51, KC_##B52, KC_##B53, KC_##B54 }, \
- { KC_##B60, KC_##B61, KC_##B62, KC_##B63, KC_##B64 }, \
- { KC_##B70, KC_##B71, KC_##B72, KC_##B73, KC_##B74 }, \
- { KC_##B80, KC_##B81, KC_##B82, KC_##B83, KC_##B84 } \
-}
-
-#endif /* KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_ */
diff --git a/keyboards/infinity_ergodox/keymaps/default/keymap.c b/keyboards/infinity_ergodox/keymaps/default/keymap.c
deleted file mode 100644
index f1e6b1c8a..000000000
--- a/keyboards/infinity_ergodox/keymaps/default/keymap.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
-Copyright 2016 Fred Sundvik <fsundvik@gmail.com>
-Jun Wako <wakojun@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/>.
-*/
-
-#include "infinity_ergodox.h"
-
-// Workaround for old keymap format
-#define KC_RESET RESET
-
-const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- KEYMAP( // layer 0 : default
- // left hand
- EQL, 1, 2, 3, 4, 5, ESC,
- BSLS,Q, W, E, R, T, FN1,
- TAB, A, S, D, F, G,
- LSFT,Z, X, C, V, B, FN0,
- LGUI,GRV, BSLS,LEFT,RGHT,
- LCTL,LALT,
- HOME,
- BSPC,DEL, END,
- // right hand
- FN2, 6, 7, 8, 9, 0, MINS,
- LBRC,Y, U, I, O, P, RBRC,
- H, J, K, L, SCLN,QUOT,
- FN0, N, M, COMM,DOT, SLSH,RSFT,
- LEFT,DOWN,UP, RGHT,RGUI,
- RALT,RCTL,
- PGUP,
- PGDN,ENT, SPC
- ),
-
- KEYMAP( // layer 1 : function and symbol keys
- // left hand
- TRNS,F1, F2, F3, F4, F5, F11,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN3,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,
- TRNS,
- TRNS,TRNS,TRNS,
- // right hand
- F12, F6, F7, F8, F9, F10, TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,
- TRNS,
- TRNS,TRNS,TRNS
- ),
-
- KEYMAP( // layer 2 : keyboard functions
- // left hand
- RESET,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, FN3,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,
- TRNS,
- TRNS,TRNS,TRNS,
- // right hand
- TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,
- TRNS,
- TRNS,TRNS,TRNS
- ),
-
- KEYMAP( // layer 3: numpad
- // left hand
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,TRNS,TRNS,TRNS,
- TRNS,TRNS,
- TRNS,
- TRNS,TRNS,TRNS,
- // right hand
- TRNS,NLCK,PSLS,PAST,PAST,PMNS,BSPC,
- TRNS,NO, P7, P8, P9, PMNS,BSPC,
- NO, P4, P5, P6, PPLS,PENT,
- TRNS,NO, P1, P2, P3, PPLS,PENT,
- P0, PDOT,SLSH,PENT,PENT,
- TRNS,TRNS,
- TRNS,
- TRNS,TRNS,TRNS
- ),
-};
-const uint16_t fn_actions[] = {
- ACTION_LAYER_MOMENTARY(1), // FN0 - switch to Layer1
- ACTION_LAYER_SET(2, ON_PRESS), // FN1 - set Layer2
- ACTION_LAYER_TOGGLE(3), // FN2 - toggle Layer3 aka Numpad layer
- ACTION_LAYER_SET(0, ON_PRESS), // FN3 - set Layer0
-};
diff --git a/keyboards/infinity_ergodox/keymaps/default/visualizer.c b/keyboards/infinity_ergodox/keymaps/default/visualizer.c
deleted file mode 100644
index c0d335ce6..000000000
--- a/keyboards/infinity_ergodox/keymaps/default/visualizer.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
-Copyright 2016 Fred Sundvik <fsundvik@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/>.
-*/
-
-// Currently we are assuming that both the backlight and LCD are enabled
-// But it's entirely possible to write a custom visualizer that use only
-// one of them
-#ifndef LCD_BACKLIGHT_ENABLE
-#error This visualizer needs that LCD backlight is enabled
-#endif
-
-#ifndef LCD_ENABLE
-#error This visualizer needs that LCD is enabled
-#endif
-
-#include "visualizer.h"
-#include "led_test.h"
-
-static const char* welcome_text[] = {"TMK", "Infinity Ergodox"};
-
-// Just an example how to write custom keyframe functions, we could have moved
-// all this into the init function
-bool display_welcome(keyframe_animation_t* animation, visualizer_state_t* state) {
- (void)animation;
- // Read the uGFX documentation for information how to use the displays
- // http://wiki.ugfx.org/index.php/Main_Page
- gdispClear(White);
- // You can use static variables for things that can't be found in the animation
- // or state structs
- gdispDrawString(0, 3, welcome_text[0], state->font_dejavusansbold12, Black);
- gdispDrawString(0, 15, welcome_text[1], state->font_dejavusansbold12, Black);
- // Always remember to flush the display
- gdispFlush();
- // you could set the backlight color as well, but we won't do it here, since
- // it's part of the following animation
- // lcd_backlight_color(hue, saturation, intensity);
- // We don't need constant updates, just drawing the screen once is enough
- return false;
-}
-
-// Feel free to modify the animations below, or even add new ones if needed
-
-// Don't worry, if the startup animation is long, you can use the keyboard like normal
-// during that time
-static keyframe_animation_t startup_animation = {
- .num_frames = 4,
- .loop = false,
- .frame_lengths = {0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0},
- .frame_functions = {
- display_welcome,
- keyframe_animate_backlight_color,
- keyframe_no_operation,
- enable_visualization
- },
-};
-
-// The color animation animates the LCD color when you change layers
-static keyframe_animation_t color_animation = {
- .num_frames = 2,
- .loop = false,
- // Note that there's a 200 ms no-operation frame,
- // this prevents the color from changing when activating the layer
- // momentarily
- .frame_lengths = {gfxMillisecondsToTicks(200), gfxMillisecondsToTicks(500)},
- .frame_functions = {keyframe_no_operation, keyframe_animate_backlight_color},
-};
-
-// The LCD animation alternates between the layer name display and a
-// bitmap that displays all active layers
-static keyframe_animation_t lcd_animation = {
- .num_frames = 2,
- .loop = true,
- .frame_lengths = {gfxMillisecondsToTicks(2000), gfxMillisecondsToTicks(2000)},
- .frame_functions = {keyframe_display_layer_text, keyframe_display_layer_bitmap},
-};
-
-static keyframe_animation_t suspend_animation = {
- .num_frames = 3,
- .loop = false,
- .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0},
- .frame_functions = {
- keyframe_display_layer_text,
- keyframe_animate_backlight_color,
- keyframe_disable_lcd_and_backlight,
- },
-};
-
-static keyframe_animation_t resume_animation = {
- .num_frames = 5,
- .loop = false,
- .frame_lengths = {0, 0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0},
- .frame_functions = {
- keyframe_enable_lcd_and_backlight,
- display_welcome,
- keyframe_animate_backlight_color,
- keyframe_no_operation,
- enable_visualization,
- },
-};
-
-void initialize_user_visualizer(visualizer_state_t* state) {
- // The brightness will be dynamically adjustable in the future
- // But for now, change it here.
- lcd_backlight_brightness(0x50);
- state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0xFF);
- state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF);
- start_keyframe_animation(&startup_animation);
- start_keyframe_animation(&led_test_animation);
-}
-
-void update_user_visualizer_state(visualizer_state_t* state) {
- // Add more tests, change the colors and layer texts here
- // Usually you want to check the high bits (higher layers first)
- // because that's the order layers are processed for keypresses
- // You can for check for example:
- // state->status.layer
- // state->status.default_layer
- // state->status.leds (see led.h for available statuses)
- if (state->status.layer & 0x8) {
- state->target_lcd_color = LCD_COLOR(0xC0, 0xB0, 0xFF);
- state->layer_text = "Numpad";
- }
- else if (state->status.layer & 0x4) {
- state->target_lcd_color = LCD_COLOR(0, 0xB0, 0xFF);
- state->layer_text = "KBD functions";
- }
- else if (state->status.layer & 0x2) {
- state->target_lcd_color = LCD_COLOR(0x80, 0xB0, 0xFF);
- state->layer_text = "Function keys";
- }
- else {
- state->target_lcd_color = LCD_COLOR(0x40, 0xB0, 0xFF);
- state->layer_text = "Default";
- }
- // You can also stop existing animations, and start your custom ones here
- // remember that you should normally have only one animation for the LCD
- // and one for the background. But you can also combine them if you want.
- start_keyframe_animation(&lcd_animation);
- start_keyframe_animation(&color_animation);
-}
-
-void user_visualizer_suspend(visualizer_state_t* state) {
- state->layer_text = "Suspending...";
- uint8_t hue = LCD_HUE(state->current_lcd_color);
- uint8_t sat = LCD_SAT(state->current_lcd_color);
- state->target_lcd_color = LCD_COLOR(hue, sat, 0);
- start_keyframe_animation(&suspend_animation);
-}
-
-void user_visualizer_resume(visualizer_state_t* state) {
- state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0x00);
- state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF);
- start_keyframe_animation(&resume_animation);
- start_keyframe_animation(&led_test_animation);
-}
diff --git a/keyboards/infinity_ergodox/led.c b/keyboards/infinity_ergodox/led.c
deleted file mode 100644
index 77195bb35..000000000
--- a/keyboards/infinity_ergodox/led.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-Copyright 2012 Jun Wako <wakojun@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/>.
-*/
-
-#include "hal.h"
-
-#include "led.h"
-
-
-void led_set(uint8_t usb_led) {
-// The LCD backlight functionality conflicts with this simple
-// red backlight
-#if !defined(LCD_BACKLIGHT_ENABLE) && defined(STATUS_LED_ENABLE)
- // PTC1: LCD Backlight Red(0:on/1:off)
- GPIOC->PDDR |= (1<<1);
- PORTC->PCR[1] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1);
- if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
- GPIOC->PCOR |= (1<<1);
- } else {
- GPIOC->PSOR |= (1<<1);
- }
-#elif !defined(LCD_BACKLIGHT_ENABLE)
- (void)usb_led;
- GPIOC->PDDR |= (1<<1);
- PORTC->PCR[1] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1);
- GPIOC->PSOR |= (1<<1);
- GPIOC->PDDR |= (1<<2);
- PORTC->PCR[2] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1);
- GPIOC->PSOR |= (1<<2);
- GPIOC->PDDR |= (1<<3);
- PORTC->PCR[3] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1);
- GPIOC->PSOR |= (1<<3);
-#else
- (void)usb_led;
-#endif
-}
diff --git a/keyboards/jd40/Makefile b/keyboards/jd40/Makefile
new file mode 100644
index 000000000..57b2ef62e
--- /dev/null
+++ b/keyboards/jd40/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif
diff --git a/keyboards/jd40/config.h b/keyboards/jd40/config.h
new file mode 100644
index 000000000..047be5707
--- /dev/null
+++ b/keyboards/jd40/config.h
@@ -0,0 +1,79 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER geekhack
+#define PRODUCT jd40v2
+#define DESCRIPTION t.m.k. keyboard firmware for JD40 MKII
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { F0, F1, F5, B4 }
+#define MATRIX_COL_PINS { F4, D7, B5, B6, C6, C7, D4, D6, D5, D0, D1, D2 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* 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 magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+#define RGB_DI_PIN D3
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 12 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+
+#endif
diff --git a/keyboards/jd40/jd40.c b/keyboards/jd40/jd40.c
new file mode 100644
index 000000000..fa06356d9
--- /dev/null
+++ b/keyboards/jd40/jd40.c
@@ -0,0 +1,26 @@
+#include "jd40.h"
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+
+ // if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ // gh60_caps_led_on();
+ // } else {
+ // gh60_caps_led_off();
+ // }
+
+ // if (usb_led & (1<<USB_LED_NUM_LOCK)) {
+ // gh60_esc_led_on();
+ // } else {
+ // gh60_esc_led_off();
+ // }
+
+ // if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
+ // gh60_fn_led_on();
+ // } else {
+ // gh60_fn_led_off();
+ // }
+
+ led_set_user(usb_led);
+}
diff --git a/keyboards/jd40/jd40.h b/keyboards/jd40/jd40.h
new file mode 100644
index 000000000..77a122299
--- /dev/null
+++ b/keyboards/jd40/jd40.h
@@ -0,0 +1,45 @@
+#ifndef JD40_H
+#define JD40_H
+
+#include "quantum.h"
+#include "led.h"
+
+/* GH60 LEDs
+ * GPIO pads
+ * 0 F7 WASD LEDs
+ * 1 F6 ESC LED
+ * 2 F5 FN LED
+ * 3 F4 POKER Arrow LEDs
+ * B2 Capslock LED
+ * B0 not connected
+ */
+
+ /*
+inline void gh60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
+inline void gh60_poker_leds_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); }
+inline void gh60_fn_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); }
+inline void gh60_esc_led_on(void) { DDRF |= (1<<6); PORTF &= ~(1<<6); }
+inline void gh60_wasd_leds_on(void) { DDRF |= (1<<7); PORTF &= ~(1<<7); }
+
+inline void gh60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
+inline void gh60_poker_leds_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
+inline void gh60_fn_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); }
+inline void gh60_esc_led_off(void) { DDRF &= ~(1<<6); PORTF &= ~(1<<6); }
+inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); }
+*/
+
+/* JD40 MKII keymap definition macro
+ */
+#define KEYMAP( \
+ 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, K30, K31, K32, K33, K34, \
+ K35, K36, K37, K38, K39, K40, K41, K42, K43, K44 \
+) { \
+ { KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K10, KC_##K11, KC_##K12 }, \
+ { KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_NO }, \
+ { KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_NO }, \
+ { KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_NO, KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_NO } \
+}
+
+#endif
diff --git a/keyboards/jd40/keymaps/default/keymap.c b/keyboards/jd40/keymaps/default/keymap.c
new file mode 100644
index 000000000..79ac146c9
--- /dev/null
+++ b/keyboards/jd40/keymaps/default/keymap.c
@@ -0,0 +1,164 @@
+#include "jd40.h"
+#include "action_layer.h"
+
+#define _BL 0
+#define _AL 1
+#define _FL 2
+#define _UL 3
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BL] = KEYMAP(
+ F12, Q, W, E, R, T, Y, U, I, O, P, BSPC,
+ TAB, A, S, D, F, G, H, J, K, L, ENT,
+ LSFT, Z, X, C, V, B, N, M, COMM, UP, DOT,
+ LCTL, LGUI, LALT, FN0, SPC, SPC, FN0, LEFT, DOWN, RIGHT ),
+
+ [_AL] = KEYMAP(
+ GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, DEL,
+ CAPS, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, SCLN, PGUP, QUOT,
+ TRNS, TRNS, TRNS, TRNS, FN3, FN3, TRNS, HOME, PGDN, END ),
+
+ [_FL] = KEYMAP(
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ),
+
+ [_UL] = KEYMAP(
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
+ TRNS, FN4, FN5, FN11, FN10, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ),
+};
+
+enum function_id {
+ RGBLED_TOGGLE,
+ RGBLED_STEP_MODE,
+ RGBLED_INCREASE_HUE,
+ RGBLED_DECREASE_HUE,
+ RGBLED_INCREASE_SAT,
+ RGBLED_DECREASE_SAT,
+ RGBLED_INCREASE_VAL,
+ RGBLED_DECREASE_VAL,
+ SHIFT_ESC,
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_MOMENTARY(1), // Momentary Fn overlay
+ [1] = ACTION_LAYER_TOGGLE(2), // Toggle Arrow Layer overlay
+ [2] = ACTION_LAYER_TAP_KEY(2, KC_CAPS), // Tap to toggle caps lock and hold to activate function layer
+ [3] = ACTION_LAYER_TOGGLE(3), // Toggle Underglow Layer overlay
+ [4] = ACTION_FUNCTION(RGBLED_TOGGLE), //Turn on/off underglow
+ [5] = ACTION_FUNCTION(RGBLED_STEP_MODE), // Change underglow mode
+ [6] = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
+ [7] = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
+ [8] = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
+ [9] = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
+ [10] = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
+ [11] = ACTION_FUNCTION(RGBLED_DECREASE_VAL),
+ [12] = ACTION_FUNCTION(SHIFT_ESC),
+};
+
+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;
+};
+
+void matrix_scan_user(void) {
+
+// Layer LED indicators
+// ESC led on when in function layer, WASD cluster leds enabled when on arrow cluster
+ uint32_t layer = layer_state;
+ if (layer & (1<<1)) {
+ //gh60_wasd_leds_on();
+ } else {
+ //gh60_wasd_leds_off();
+ }
+
+ if (layer & (1<<2)) {
+ //gh60_esc_led_on();
+ } else {
+ //gh60_esc_led_off();
+ }
+};
+
+#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ switch (id) {
+ case RGBLED_TOGGLE:
+ //led operations
+ if (record->event.pressed) {
+ rgblight_toggle();
+ }
+ break;
+ case RGBLED_INCREASE_HUE:
+ if (record->event.pressed) {
+ rgblight_increase_hue();
+ }
+ break;
+ case RGBLED_DECREASE_HUE:
+ if (record->event.pressed) {
+ rgblight_decrease_hue();
+ }
+ break;
+ case RGBLED_INCREASE_SAT:
+ if (record->event.pressed) {
+ rgblight_increase_sat();
+ }
+ break;
+ case RGBLED_DECREASE_SAT:
+ if (record->event.pressed) {
+ rgblight_decrease_sat();
+ }
+ break;
+ case RGBLED_INCREASE_VAL:
+ if (record->event.pressed) {
+ rgblight_increase_val();
+ }
+ break;
+ case RGBLED_DECREASE_VAL:
+ if (record->event.pressed) {
+ rgblight_decrease_val();
+ }
+ break;
+ case RGBLED_STEP_MODE:
+ if (record->event.pressed) {
+ rgblight_step();
+ }
+ break;
+ static uint8_t shift_esc_shift_mask;
+ // Shift + ESC = ~
+ case SHIFT_ESC:
+ shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
+ if (record->event.pressed) {
+ if (shift_esc_shift_mask) {
+ add_key(KC_GRV);
+ send_keyboard_report();
+ } else {
+ add_key(KC_ESC);
+ send_keyboard_report();
+ }
+ } else {
+ if (shift_esc_shift_mask) {
+ del_key(KC_GRV);
+ send_keyboard_report();
+ } else {
+ del_key(KC_ESC);
+ send_keyboard_report();
+ }
+ }
+ break;
+ }
+};
diff --git a/keyboards/jd40/readme.md b/keyboards/jd40/readme.md
new file mode 100644
index 000000000..7daa0980e
--- /dev/null
+++ b/keyboards/jd40/readme.md
@@ -0,0 +1,17 @@
+## jd40 mkii keyboard firmware
+
+ Pins:
+ MATRIX_ROW_PINS { F0, F1, F5, B4 }
+ MATRIX_COL_PINS { F4, D7, B5, B6, C6, C7, D4, D6, D5, D0, D1, D2 }
+ RGB_DI_PIN D3
+
+======================
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent readme.md](/readme.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/jd40 folder.
+Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Amtel Flip to program your .hex file.
diff --git a/keyboards/jd40/rules.mk b/keyboards/jd40/rules.mk
new file mode 100644
index 000000000..2f18fdf10
--- /dev/null
+++ b/keyboards/jd40/rules.mk
@@ -0,0 +1,69 @@
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= 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
+KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
+NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
+# MIDI_ENABLE ?= YES # MIDI controls
+# UNICODE_ENABLE ?= YES # Unicode
+# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= yes # Enable RGB Underglow \ No newline at end of file
diff --git a/keyboards/jd45/Makefile b/keyboards/jd45/Makefile
index 75d544f16..4e2a6f00f 100644
--- a/keyboards/jd45/Makefile
+++ b/keyboards/jd45/Makefile
@@ -1,71 +1,3 @@
-
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
-# Build Options
-# comment out to disable the options.
-#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
-# NKRO_ENABLE ?= yes # USB Nkey Rollover - not yet supported in LUFA
-BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
-MIDI_ENABLE ?= YES # MIDI controls
-# UNICODE_ENABLE ?= YES # Unicode
-BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
-endif
+endif \ No newline at end of file
diff --git a/keyboards/jd45/keymaps/jeebak/config.h b/keyboards/jd45/keymaps/jeebak/config.h
new file mode 100644
index 000000000..53a1f0a30
--- /dev/null
+++ b/keyboards/jd45/keymaps/jeebak/config.h
@@ -0,0 +1,16 @@
+#include "../../config.h"
+
+/**
+ *JD45 keymap definition macro
+ */
+#define KEYMAP_JD45( \
+ 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, K30, K31, K32, K33, K34, K35, K36, K37, \
+ K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \
+) { \
+ { 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, KC_NO }, \
+ { K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, KC_NO }, \
+ { K38, K39, K40, K41, K42, KC_NO, K43, KC_NO, K44, K45, K46, K47, KC_NO } \
+}
diff --git a/keyboards/jd45/keymaps/jeebak/keymap.c b/keyboards/jd45/keymaps/jeebak/keymap.c
new file mode 100644
index 000000000..8d26cbde1
--- /dev/null
+++ b/keyboards/jd45/keymaps/jeebak/keymap.c
@@ -0,0 +1,423 @@
+#include "jd45.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _COLEMAK 1
+#define _DVORAK 2
+#define _LOWER 3
+#define _RAISE 4
+#define _PLOVER 5
+#define _TOUCHCURSOR 6
+#define _MOUSECURSOR 7
+#define _ADJUST 16
+
+// Keycodes
+enum planck_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK,
+ PLOVER,
+ LOWER,
+ RAISE,
+ BACKLIT,
+ EXT_PLV
+};
+
+enum macro_keycodes {
+ KC_ALT_TAB,
+ KC_CMD_TAB,
+ KC_CTL_TAB,
+ KC_CMD_SLSH,
+ KC_AG_FIND,
+ KC_AG_AGAIN,
+ KC_AG_UNDO,
+ KC_AG_CUT,
+ KC_AG_COPY,
+ KC_AG_PASTE,
+ KC_AG_DESK_L,
+ KC_AG_DESK_R,
+ KC_AG_TAB_C,
+ KC_AG_TAB_N,
+ KC_AG_TAB_R,
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+// Custom macros
+#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl
+#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
+#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper
+#define GUI_SEM GUI_T(KC_SCLN) // Tap for Semicolon, hold for GUI
+#define ALT_QUO ALT_T(KC_QUOT) // Tap for Quote, hold for Alt
+// Requires KC_TRNS/_______ for the trigger key in the destination layer
+#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor
+#define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor
+#define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab
+#define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab
+#define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab
+#define CMD_SLSH M(KC_CMD_SLSH) // Macro for Cmd-Slash (personal shortcut to toggle iTerm2 visibility)
+#define AG_FIND M(KC_AG_FIND) // Macros for Cmd-[x] vs Ctrl-[x] based on current AG_NORM or AG_SWAP settings
+#define AG_AGAIN M(KC_AG_AGAIN)
+#define AG_UNDO M(KC_AG_UNDO)
+#define AG_CUT M(KC_AG_CUT)
+#define AG_COPY M(KC_AG_COPY)
+#define AG_PASTE M(KC_AG_PASTE)
+#define AG_D_L M(KC_AG_DESK_L) // For Virtual Desktop Switching: Left, and
+#define AG_D_R M(KC_AG_DESK_R) // Right
+#define AG_T_C M(KC_AG_TAB_C) // For Chrome, etc. Tab Close,
+#define AG_T_N M(KC_AG_TAB_N) // Tab New, and
+#define AG_T_R M(KC_AG_TAB_R) // Tab Reopen Closed
+
+/* Qwerty
+ *
+ * ,---------+------+------+------+------+------+------+------+------+------+------+------+------.
+ * |Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp | Bksp |
+ * |---------`------`------`------`------`------`------`------`------`------`------`------`------|
+ * | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L |GUI/; | Alt/" |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | Shift | Z | X | C | V | B | N | M | , | . | / | Sft/Ent |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | RGUI | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol- | Vol+ | Play |
+ * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------'
+ */
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_QWERTY] = KEYMAP_JD45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/
+ HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_BSPC,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/
+ CTL_ESC , KC_A, KC_S,LT_MC(KC_D), KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, GUI_SEM, ALT_QUO ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ KC_RGUI , KC_LALT , KC_LGUI , LOWER , LT_TC , LT_TC , RAISE , KC_VOLD , KC_VOLU , KC_MPLY),
+/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/
+
+/* Colemak
+ * ,---------+------+------+------+------+------+------+------+------+------+------+------+------.
+ * |Hyper/Tab| Q | W | F | P | G | J | L | U | Y | ; | Bksp | Bksp |
+ * |---------`------`------`------`------`------`------`------`------`------`------`------`------|
+ * | Ctrl/Esc | A | R | MC/S | T | D | H | N | E | I | O | " |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | Shift | Z | X | C | V | B | K | M | , | . | / | Sft/Ent |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | RGUI | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol- | Vol+ | Play |
+ * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------'
+ */
+[_COLEMAK] = KEYMAP_JD45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/
+ HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, KC_BSPC,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/
+ CTL_ESC , KC_A, KC_R,LT_MC(KC_S), KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ KC_RGUI , KC_LALT , KC_LGUI , LOWER , LT_TC , LT_TC , RAISE , KC_VOLD , KC_VOLU , KC_MPLY),
+/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/
+
+/* Dvorak
+ * ,---------+------+------+------+------+------+------+------+------+------+------+------+------.
+ * |Hyper/Tab| " | , | . | P | Y | F | G | C | R | L | Bksp | Bksp |
+ * |---------`------`------`------`------`------`------`------`------`------`------`------`------|
+ * | Ctrl/Esc | A | O | MC/E | U | I | D | H | T | N | S | / |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | Shift | ; | Q | J | K | X | B | M | W | V | Z | Sft/Ent |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | RGUI | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol- | Vol+ | Play |
+ * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------'
+ */
+[_DVORAK] = KEYMAP_JD45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/
+ HPR_TAB,KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, KC_BSPC,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/
+ CTL_ESC , KC_A, KC_O,LT_MC(KC_E), KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_LSFT , KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ KC_RGUI , KC_LALT , KC_LGUI , LOWER , LT_TC , LT_TC , RAISE , KC_VOLD , KC_VOLU , KC_MPLY),
+/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/
+
+/* Lower
+ * ,---------+------+------+------+------+------+------+------+------+------+------+------+------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | Bksp |
+ * |---------`------`------`------`------`------`------`------`------`------`------`------`------|
+ * | [ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | "|" |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | ] | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | Brite | | | | | | | Prev | Next | Mute |
+ * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------'
+ */
+[_LOWER] = KEYMAP_JD45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/
+ KC_TILD,KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_BSPC,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/
+ KC_LBRC , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_RBRC , KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ BACKLIT , _______, _______, _______, _______ , _______ , _______, KC_MPRV, KC_MNXT, KC_MUTE),
+/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/
+
+/* Raise
+ * ,---------+------+------+------+------+------+------+------+------+------+------+------+------.
+ * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | Bksp |
+ * |---------`------`------`------`------`------`------`------`------`------`------`------`------|
+ * | $ | 4 | 5 | 6 | . | + | . | 4 | 5 | 6 | * | "|" |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | = | 7 | 8 | 9 | 0 | - | . | 1 | 2 | 3 | / | \ |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | Brite | | | | | | | Prev | Next | Mute |
+ * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------'
+ */
+[_RAISE] = KEYMAP_JD45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/
+ KC_0 , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_BSPC,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/
+ KC_DLR , KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_DOT, KC_4, KC_5, KC_6, KC_ASTR, KC_PIPE ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_EQL , KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DOT, KC_1, KC_2, KC_3, KC_SLSH, KC_BSLS ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ BACKLIT , _______, _______, _______, _______ , _______ , _______, KC_MPRV, KC_MNXT, KC_MUTE),
+/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/
+
+/* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations
+ * ,---------+------+------+------+------+------+------+------+------+------+------+------+------.
+ * | AltTab |CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | |
+ * |---------`------`------`------`------`------`------`------`------`------`------`------`------|
+ * | | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L| Desk_R |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | | | | | | | | | | |
+ * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------'
+ *
+ * The KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND, and KC_AGAIN keycodes don't
+ * seem to work on Mac. Presumably they'll work under Windows.
+ */
+
+[_TOUCHCURSOR] = KEYMAP_JD45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/
+ ALT_TAB,CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______, _______,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/
+ _______ ,KC_LALT, KC_SPC, AG_T_C, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, AG_D_L, AG_D_R ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ _______ ,AG_UNDO, AG_CUT, AG_COPY,AG_PASTE, KC_GRV, KC_PGDN, KC_DEL, AG_T_N, AG_T_R,CMD_SLSH, _______ ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ _______ , _______, _______, _______, _______ , _______ , _______, _______, _______, _______),
+/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/
+
+/* Mouse Layer
+ * ,---------+------+------+------+------+------+------+------+------+------+------+------+------.
+ * | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | | |
+ * |---------`------`------`------`------`------`------`------`------`------`------`------`------|
+ * | |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | | | | | | | | | | |
+ * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------'
+ */
+
+[_MOUSECURSOR] = KEYMAP_JD45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/
+ _______,_______, KC_ACL0, _______, _______, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______, _______,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/
+ _______ ,KC_ACL2, KC_BTN2, _______, KC_BTN1, KC_ACL1, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN4, KC_BTN5 ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ _______ ,_______, _______, _______, KC_BTN3, _______, KC_WH_D, KC_BTN1, _______, _______, KC_BTN3, _______ ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______),
+/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/
+
+/* Plover layer (http://opensteno.org)
+ * ,---------+------+------+------+------+------+------+------+------+------+------+------+------.
+ * | # | # | # | # | # | # | # | # | # | # | # | # | # |
+ * |---------`------`------`------`------`------`------`------`------`------`------`------`------|
+ * | | S | T | P | H | * | * | F | P | L | T | D |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | TogOut | S | K | W | R | * | * | R | B | G | S | Z |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | Exit | | A | O | | | E | U | | |
+ * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------'
+ */
+
+[_PLOVER] = KEYMAP_JD45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/
+ KC_1 , KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/
+ XXXXXXX , KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ XXXXXXX , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ EXT_PLV , XXXXXXX, KC_C, KC_V, XXXXXXX , XXXXXXX , KC_N, KC_M, XXXXXXX, XXXXXXX),
+/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/
+
+/* Adjust (Lower + Raise)
+ * ,---------+------+------+------+------+------+------+------+------+------+------+------+------.
+ * | | | | | | | | | | | | | Del |
+ * |---------`------`------`------`------`------`------`------`------`------`------`------`------|
+ * | | | | | |AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | | | | | | | | | | | | |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | | | | | | | | | | Reset |
+ * `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------'
+ */
+[_ADJUST] = KEYMAP_JD45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.*/
+ _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------`--------|*/
+ _______ ,_______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______ ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ _______ , _______, _______, _______, _______ , _______ , _______, _______, _______, RESET)
+/*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ default_layer_set(1UL<<_COLEMAK);
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ default_layer_set(1UL<<_DVORAK);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ return false;
+ break;
+ case PLOVER:
+ if (record->event.pressed) {
+ layer_off(_RAISE);
+ layer_off(_LOWER);
+ layer_off(_ADJUST);
+ layer_on(_PLOVER);
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+ keymap_config.raw = eeconfig_read_keymap();
+ keymap_config.nkro = 1;
+ eeconfig_update_keymap(keymap_config.raw);
+ }
+ return false;
+ break;
+ case EXT_PLV:
+ if (record->event.pressed) {
+ layer_off(_PLOVER);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+/*
+ * Macro definition
+ */
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+
+ bool use_cmd = true; // Use, for example, Cmd-Tab, Cmd-C, Cmd-V, etc.
+ // Compare to MAGIC_SWAP_ALT_GUI and MAGIC_UNSWAP_ALT_GUI configs, set in:
+ // quantum/quantum.c
+ if(keymap_config.swap_lalt_lgui == 1 && keymap_config.swap_ralt_rgui == 1) {
+ use_cmd = false; // ... or, Alt-Tab, Ctrl-C, Ctrl-V, etc.
+ }
+
+ switch (id) {
+ case KC_ALT_TAB:
+ if(use_cmd) { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); }
+ else { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); }
+ case KC_CMD_TAB:
+ if(use_cmd) { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); }
+ else { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); }
+
+ case KC_CTL_TAB:
+ return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END ));
+ case KC_CMD_SLSH:
+ return (record->event.pressed ? MACRO( D(LGUI), D(SLSH),END ) : MACRO( U(SLSH),END ));
+
+ case KC_AG_FIND:
+ return use_cmd ? MACRODOWN( D(LGUI), T(F), END ) : MACRODOWN( D(LCTRL), T(F), END );
+ case KC_AG_AGAIN:
+ return use_cmd ? MACRODOWN( D(LGUI), T(G), END ) : MACRODOWN( D(LCTRL), T(G), END );
+ case KC_AG_UNDO:
+ return use_cmd ? MACRODOWN( D(LGUI), T(Z), END ) : MACRODOWN( D(LCTRL), T(Z), END );
+ case KC_AG_CUT:
+ return use_cmd ? MACRODOWN( D(LGUI), T(X), END ) : MACRODOWN( D(LCTRL), T(X), END );
+ case KC_AG_COPY:
+ return use_cmd ? MACRODOWN( D(LGUI), T(C), END ) : MACRODOWN( D(LCTRL), T(C), END );
+ case KC_AG_PASTE:
+ return use_cmd ? MACRODOWN( D(LGUI), T(V), END ) : MACRODOWN( D(LCTRL), T(V), END );
+
+ case KC_AG_DESK_L:
+ return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(SCLN), END ) : MACRODOWN( D(LALT), D(LCTRL), T(SCLN), END );
+ case KC_AG_DESK_R:
+ return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(QUOT), END ) : MACRODOWN( D(LALT), D(LCTRL), T(QUOT), END );
+
+ case KC_AG_TAB_C:
+ return use_cmd ? MACRODOWN( D(LGUI), T(W), END ) : MACRODOWN( D(LCTRL), T(W), END );
+ case KC_AG_TAB_N:
+ return use_cmd ? MACRODOWN( D(LGUI), T(T), END ) : MACRODOWN( D(LCTRL), T(T), END );
+ case KC_AG_TAB_R:
+ return use_cmd ? MACRODOWN( D(LGUI), D(LSHIFT), T(T), END ) : MACRODOWN( D(LCTRL), D(LSHIFT), T(T), END );
+ }
+
+ return MACRO_NONE;
+}
diff --git a/keyboards/jd45/keymaps/jeebak/readme.md b/keyboards/jd45/keymaps/jeebak/readme.md
new file mode 100644
index 000000000..2e45a46d9
--- /dev/null
+++ b/keyboards/jd45/keymaps/jeebak/readme.md
@@ -0,0 +1,129 @@
+jeebak's JD45 layout
+=======================
+NOTE: This is a port of jeebak's planck layout, for jd45.
+
+This WIP keymap attempts to minimize fingers straying away from the home row.
+To aid in this endeavor, when additional modifyer keys to switch layers are
+needed, they will be mapped to home row keys. The `keymap.c` file will contain
+the exact changes. The diagrams in this README shows the highlights of the
+changes from the default mappings.
+
+I also decided to change all calls to `persistant_default_layer_set()` to
+`default_layer_set()` since this is my personal perference.
+
+## Macros
+```
+#define ALT_TAB M(KC_ALT_TAB)
+```
+
+## Base Layers (Qwerty/Colemak/Dvorak)
+These base layers are mostly the same as the default mappings. The interesting
+changes are shown below.
+
+- The `Ctrl/Esc`, will emit an `Escape` when tapped, and act as a `Control` key when held,
+- `GUI/;` as `;` and `GUI`,
+- `Alt/"` as `"` and `Alt`,
+- `Sft/Ent` as `Enter` and `Shift`, and
+- `Hyper/Tab` as `Tab` and `Hyper`
+
+A `TODO` item is to see if it can also act as a `CapsLock` when double-tapped.
+The arrow keys, which have been moved to the
+[TouchCursor](http://martin-stone.github.io/touchcursor/) layer, have been
+replaced with the Media keys as shown. The `MC/kc` key activates the
+`MouseCursor` layer when held, and emits the corresponding `kc` for its layer,
+when tapped.
+```
+ ,---------+------+------+------+------+------+------+------+------+------+------+------+------.
+ |Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | [ | Bksp |
+ |---------`------`------`------`------`------`------`------`------`------`------`------`------|
+ | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L |GUI/; | Alt/" |
+ |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ | Shift | Z | X | C | V | B | N | M | , | . | / | Sft/Ent |
+ |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ | RGUI | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol- | Vol+ | Play |
+ `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------'
+```
+
+## Lower Layer (Symbols and Function Keys)
+The symbols and functions keys are essentially the same as the default mapping.
+The most notable changes are that the symbol keys from the `RAISE` layer have
+been moved here. The remaining Media keys replace those that are now on the
+base layers. The `BACKLIT` key has also been moved here.
+```
+ ,---------+------+------+------+------+------+------+------+------+------+------+------+------.
+ | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | Bksp |
+ |---------`------`------`------`------`------`------`------`------`------`------`------`------|
+ | [ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | "|" |
+ |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ | ] | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ |
+ |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ | Brite | | | | | | | Prev | Next | Mute |
+ `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------'
+```
+
+## Raise Layer (Numbers and Arithmetic Operators)
+All of the numbers and arithmetic operators are available on this layer. Some
+keys are duplicated for the convenience of their positions. The `0` and `$`
+keys at the far left are for quick access to beginning and end of line in vim.
+```
+ ,---------+------+------+------+------+------+------+------+------+------+------+------+------.
+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | Bksp |
+ |---------`------`------`------`------`------`------`------`------`------`------`------`------|
+ | $ | 4 | 5 | 6 | . | + | . | 4 | 5 | 6 | * | "|" |
+ |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ | = | 7 | 8 | 9 | 0 | - | . | 1 | 2 | 3 | / | \ |
+ |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ | Brite | | | | | | | Prev | Next | Mute |
+ `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------'
+```
+
+## TouchCursor layer plus personal customizations
+[TouchCursor](http://martin-stone.github.io/touchcursor/) uses the `Space` key
+as the modifier, with the `IJKL` home row keys representing the inverted-T of
+the arrow keys. All of the default TouchCursor keymappings for the right hand
+are represented below. My personalizations include all of the keys shown for
+the left hand. Having the `Alt` and `Shift` keys (as well as the `Control` key
+from the base layers) readily accessible from the home row allows quick word
+jumps and highlighting when used in conjunction with the arrow keys. The
+`Alt-Tab` macro is not only useful under Windows, but also under Mac when used
+with alternative switchers like [HyperSwitch](https://bahoom.com/hyperswitch).
+The `Cmd-Tab` and `Ctrl-Tab` sequences are duplicated for easy access while in
+this layer. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN`
+keycodes do not seem to work. There are macros in place that'll "automatically"
+choose the correct version (`Cmd-Tab` vs. `Alt-Tab`, `Cmd-C` vs. `Ctrl-C`,
+etc.) depending on which layout you've currently selected (`AG_NORM` or
+`AG_SWAP`) in the `_ADJUST` layer. The `Desk_L` and `Desk_R` macros are what I
+use to switch between Virtual Desktops Left/Right. The `Tab_C`, `Tab_N` and
+`Tab_R` are for "Close Tab," "New Tab" and "Reopen Closed Tab" for apps such as
+Google Chrome.
+```
+ ,---------+------+------+------+------+------+------+------+------+------+------+------+------.
+ | AltTab |CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | |
+ |---------`------`------`------`------`------`------`------`------`------`------`------`------|
+ | | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L| Desk_R |
+ |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ | | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| |
+ |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ | | | | | | | | | | |
+ `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------'
+```
+
+## Mouse Layer
+The Mouse layer, closely mimics the layout/behaviour of the TouchCursor layer.
+The `D` key (on QWERTY) is used to activate this layer. All 16 keycodes for the
+mouse from the `doc/keycode.txt` file are represented, and logically located,
+IMHO. The left and right click buttons are duplicated; on the right hand side,
+for a quick click here and there, and again on the left hand side for when the
+buttons need to be held for dragging things or highlighting text, thus allowing
+the right hand to be free to use the up/down/left/right actions.
+```
+ ,---------+------+------+------+------+------+------+------+------+------+------+------+------.
+ | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | | |
+ |---------`------`------`------`------`------`------`------`------`------`------`------`------|
+ | |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 |
+ |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | |
+ |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ | | | | | | | | | | |
+ `-------+-------+-------+-------+---^^^----+---^^^----+---------+--------+--------+----------'
+```
diff --git a/keyboards/jd45/readme.md b/keyboards/jd45/readme.md
new file mode 100644
index 000000000..2822666e8
--- /dev/null
+++ b/keyboards/jd45/readme.md
@@ -0,0 +1,4 @@
+JD45 keyboard firmware
+======================
+
+TODO: to be updated.
diff --git a/keyboards/jd45/rules.mk b/keyboards/jd45/rules.mk
new file mode 100644
index 000000000..2f1e266a1
--- /dev/null
+++ b/keyboards/jd45/rules.mk
@@ -0,0 +1,67 @@
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
+# NKRO_ENABLE ?= yes # USB Nkey Rollover - not yet supported in LUFA
+BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
+MIDI_ENABLE ?= YES # MIDI controls
+# UNICODE_ENABLE ?= YES # Unicode
+BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID \ No newline at end of file
diff --git a/keyboards/kc60/Makefile b/keyboards/kc60/Makefile
index b00a488b9..57b2ef62e 100644
--- a/keyboards/kc60/Makefile
+++ b/keyboards/kc60/Makefile
@@ -1,76 +1,3 @@
-
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
-# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-NKRO_ENABLE ?= no # USB Nkey Rollover
-BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
-MIDI_ENABLE ?= no # MIDI controls
-UNICODE_ENABLE ?= no # Unicode
-BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
-AUDIO_ENABLE ?= no # Audio output on port C6
-
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
endif
-
diff --git a/keyboards/kc60/config.h b/keyboards/kc60/config.h
index c4a9b9ff8..29695d0b9 100644
--- a/keyboards/kc60/config.h
+++ b/keyboards/kc60/config.h
@@ -62,7 +62,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define MATRIX_HAS_GHOST
/* number of backlight levels */
-#define BACKLIGHT_LEVELS 3
+#define BACKLIGHT_LEVELS 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/kc60/kc60.c b/keyboards/kc60/kc60.c
index 746ac634a..09b924b28 100644
--- a/keyboards/kc60/kc60.c
+++ b/keyboards/kc60/kc60.c
@@ -1 +1,16 @@
#include "kc60.h"
+
+void led_set_kb(uint8_t usb_led)
+{
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ // output low
+ DDRB |= (1<<2);
+ PORTB &= ~(1<<2);
+ } else {
+ // Hi-Z
+ DDRB &= ~(1<<2);
+ PORTB &= ~(1<<2);
+ }
+
+ led_set_user(usb_led);
+} \ No newline at end of file
diff --git a/keyboards/kc60/kc60.h b/keyboards/kc60/kc60.h
index 34eab4b2a..c3a0165c0 100644
--- a/keyboards/kc60/kc60.h
+++ b/keyboards/kc60/kc60.h
@@ -3,21 +3,92 @@
#include "quantum.h"
+// K49 key is for the key at row 1 and column 15 when you split the backspace in 2 1U key.
+
// This a shortcut to help you visually see your layout.
// The first section contains all of the arguements
// The second converts the arguments into a multi-dimensional array
+/*
+ * ,-----------------------------------------------------------------------------------------.
+ * | K00 | K01 | K02 | K03 | K04 | K05 | K06 | K07 | K08 | K09 | K0A | K0B | K0C | K0D | K49 |
+ * |-----------------------------------------------------------------------------------------+
+ * | K10 | K11 | K12 | K13 | K14 | K15 | K16 | K17 | K18 | K19 | K1A | K1B | K1C | K1D |
+ * |-----------------------------------------------------------------------------------------+
+ * | K20 | K21 | K22 | K23 | K24 | K25 | K26 | K17 | K28 | K29 | K2A | K2B | K2C |
+ * |-----------------------------------------------------------------------------------------+
+ * | K30 | K32 | K33 | K34 | K35 | K36 | K37 | K38 | K39 | K3A | K3B | K3D | K3C |
+ * |-----------------------------------------------------------------------------------------+
+ * | K40 | K41 | K42 | K45 | K4A | K4B | K4C | K4D |
+ * `-----------------------------------------------------------------------------------------'
+ */
#define KEYMAP( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K45, K4A, K4B, K4C, K4D \
+ K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
- { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO,K4A, K4B, K4C, K4D } \
+ { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D } \
}
#endif
+
+/* Default layout
+ * ,-----------------------------------------------------------------------------------------.
+ * | K00 | K01 | K02 | K03 | K04 | K05 | K06 | K07 | K08 | K09 | K0A | K0B | K0C | K0D |
+ * |-----------------------------------------------------------------------------------------+
+ * | K10 | K11 | K12 | K13 | K14 | K15 | K16 | K17 | K18 | K19 | K1A | K1B | K1C | K1D |
+ * |-----------------------------------------------------------------------------------------+
+ * | K20 | K21 | K22 | K23 | K24 | K25 | K26 | K17 | K28 | K29 | K2A | K2B | K2C |
+ * |-----------------------------------------------------------------------------------------+
+ * | K30 | K32 | K33 | K34 | K35 | K36 | K37 | K38 | K39 | K3A | K3B | K3C |
+ * |-----------------------------------------------------------------------------------------+
+ * | K40 | K41 | K42 | K45 | K4A | K4B | K4C | K4D |
+ * `-----------------------------------------------------------------------------------------'
+ */
+
+/* Mini Lshift
+ * ,-----------------------------------------------------------------------------------------.
+ * | K00 | K01 | K02 | K03 | K04 | K05 | K06 | K07 | K08 | K09 | K0A | K0B | K0C | K0D |
+ * |-----------------------------------------------------------------------------------------+
+ * | K10 | K11 | K12 | K13 | K14 | K15 | K16 | K17 | K18 | K19 | K1A | K1B | K1C | K1D |
+ * |-----------------------------------------------------------------------------------------+
+ * | K20 | K21 | K22 | K23 | K24 | K25 | K26 | K17 | K28 | K29 | K2A | K2B | K2C |
+ * |-----------------------------------------------------------------------------------------+
+ * | K30 |K31| K32 | K33 | K34 | K35 | K36 | K37 | K38 | K39 | K3A | K3B | K3C |
+ * |-----------------------------------------------------------------------------------------+
+ * | K40 | K41 | K42 | K45 | K4A | K4B | K4C | K4D |
+ * `-----------------------------------------------------------------------------------------'
+ */
+
+/* Mini Rshift
+ * ,-----------------------------------------------------------------------------------------.
+ * | K00 | K01 | K02 | K03 | K04 | K05 | K06 | K07 | K08 | K09 | K0A | K0B | K0C | K0D |
+ * |-----------------------------------------------------------------------------------------+
+ * | K10 | K11 | K12 | K13 | K14 | K15 | K16 | K17 | K18 | K19 | K1A | K1B | K1C | K1D |
+ * |-----------------------------------------------------------------------------------------+
+ * | K20 | K21 | K22 | K23 | K24 | K25 | K26 | K17 | K28 | K29 | K2A | K2B | K2C |
+ * |-----------------------------------------------------------------------------------------+
+ * | K30 | K32 | K33 | K34 | K35 | K36 | K37 | K38 | K39 | K3A | K3B | K3C | K3D |
+ * |-----------------------------------------------------------------------------------------+
+ * | K40 | K41 | K42 | K45 | K4A | K4B | K4C | K4D |
+ * `-----------------------------------------------------------------------------------------'
+ */
+
+/* Mini Enter
+ * ,-----------------------------------------------------------------------------------------.
+ * | K00 | K01 | K02 | K03 | K04 | K05 | K06 | K07 | K08 | K09 | K0A | K0B | K0C | K0D |
+ * |-----------------------------------------------------------------------------------------+
+ * | K10 | K11 | K12 | K13 | K14 | K15 | K16 | K17 | K18 | K19 | K1A | K1B | K1C | K1D |
+ * |-----------------------------------------------------------------------------------------+
+ * | K20 | K21 | K22 | K23 | K24 | K25 | K26 | K17 | K28 | K29 | K2A | K2B | K2C | K2D |
+ * |-----------------------------------------------------------------------------------------+
+ * | K30 | K32 | K33 | K34 | K35 | K36 | K37 | K38 | K39 | K3A | K3B | K3C |
+ * |-----------------------------------------------------------------------------------------+
+ * | K40 | K41 | K42 | K45 | K4A | K4B | K4C | K4D |
+ * `-----------------------------------------------------------------------------------------'
+ */ \ No newline at end of file
diff --git a/keyboards/kc60/keymaps/dbroqua/keymap.c b/keyboards/kc60/keymaps/dbroqua/keymap.c
new file mode 100644
index 000000000..8b5efd0ce
--- /dev/null
+++ b/keyboards/kc60/keymaps/dbroqua/keymap.c
@@ -0,0 +1,103 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "kc60.h"
+
+#define _QWERTY 0
+#define _FNCAPS 1
+#define _FNRIGHTSHIFT 2
+
+// Fillers to make layering more clear
+#define ______ KC_TRNS
+#define XXXXXXX KC_NO
+
+// Func macro definitions.
+#define S_LED FUNC(0)
+#define S_LEDI FUNC(1)
+#define S_LEDD FUNC(2)
+
+// Enable these functions using FUNC(n) macro.
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_BACKLIGHT_TOGGLE(),
+ [1] = ACTION_BACKLIGHT_INCREASE(),
+ [2] = ACTION_BACKLIGHT_DECREASE()
+ };
+
+/*
+ * | | |
+ * | | |
+ * | | |
+ * | | |
+ * | |
+ */
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
+ * |-----------------------------------------------------------------------------------------+
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
+ * |-----------------------------------------------------------------------------------------+
+ * | Caps/FN1| A | S | D | F | G | H | J | K | L | ; | ' | Enter |
+ * |-----------------------------------------------------------------------------------------+
+ * | Shift | Z | X | C | V | B | N | M | , | . | / | Up | FN2 |
+ * |-----------------------------------------------------------------------------------------+
+ * | Ctrl | Gui | Alt | Space | AltGr | Left | Down | Right |
+ * `-----------------------------------------------------------------------------------------'
+ */
+ [0] = KEYMAP( /* Basic QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
+ LT(_FNCAPS, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
+ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_FNRIGHTSHIFT), KC_UP, \
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_GRV, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT \
+ ),
+
+/* Layer 1
+ * ,-----------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | Psc | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Led | Led+| Led-| | Mute| Vol+| Vol-| | | | Play | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | Prev | Stop | Next |
+ * `-----------------------------------------------------------------------------------------'
+ */
+ [_FNCAPS] = KEYMAP( /* Layer 1 */
+ ______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, \
+ ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
+ ______, ______, ______, ______, ______, ______, ______, KC_PSCR,______, ______, ______, ______, ______, ______, \
+ ______, ______, S_LED, S_LEDI, S_LEDD,______,KC_MUTE,KC_VOLU,KC_VOLD,______, ______, ______, ______,KC_MPLY, \
+ ______, ______, ______, ______, KC_DEL, ______, KC_MPRV, KC_MSTP, KC_MNXT \
+ ),
+
+/* Layer 2
+ * ,-----------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | PgUp | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | Home | PgDown| End |
+ * `-----------------------------------------------------------------------------------------'
+ */
+ [_FNRIGHTSHIFT] = KEYMAP( /* Layer 2 */
+ ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
+ ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
+ ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
+ ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_PGUP, \
+ ______, ______, ______, ______, ______, ______, KC_HOME,KC_PGDN,KC_END \
+ ),
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ return MACRO_NONE;
+};
diff --git a/keyboards/kc60/keymaps/dbroqua/readme.md b/keyboards/kc60/keymaps/dbroqua/readme.md
new file mode 100644
index 000000000..b71d10ab0
--- /dev/null
+++ b/keyboards/kc60/keymaps/dbroqua/readme.md
@@ -0,0 +1,11 @@
+# Dbroqua Layout
+
+* Online keyboard layout editor: http://www.keyboard-layout-editor.com/#/gists/24fa7821d4955ec3c76037c8e159a199
+* Online keyboard layout editor (caps layer): http://www.keyboard-layout-editor.com/#/gists/4136d4d1555d6f0d9403c21aaf50fd37
+* Online keyboard layout editor (fn2 layer): http://www.keyboard-layout-editor.com/#/gists/cf4955f73f339020dbb41c15364e7e4f
+
+# Programming Instructions:
+Enter into programming mode and run the following command.
+```
+$ sudo KEYMAP=dbroqua make dfu
+``` \ No newline at end of file
diff --git a/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c b/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c
new file mode 100644
index 000000000..123c53a6d
--- /dev/null
+++ b/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c
@@ -0,0 +1,73 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "kc60.h"
+
+#define _QWERTY 0
+#define _FN 1
+
+// Fillers to make layering more clear
+#define ______ KC_TRNS
+#define XXXXXXX KC_NO
+
+// Func macro definitions.
+#define S_LED FUNC(0)
+#define S_LEDI FUNC(1)
+#define S_LEDD FUNC(2)
+
+// Enable these functions using FUNC(n) macro.
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_BACKLIGHT_TOGGLE(),
+ [1] = ACTION_BACKLIGHT_INCREASE(),
+ [2] = ACTION_BACKLIGHT_DECREASE()
+ };
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
+ * |-----------------------------------------------------------------------------------------+
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
+ * |-----------------------------------------------------------------------------------------+
+ * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
+ * |-----------------------------------------------------------------------------------------+
+ * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
+ * |-----------------------------------------------------------------------------------------+
+ * | LGUI | LAlt | Space | RAlt | RGUI |
+ * `-----------------------------------------------------------------'
+ */
+ [0] = KEYMAP( /* Basic QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
+ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_FN), KC_RSFT, \
+ ______, KC_LGUI, KC_LALT, KC_SPC, KC_GRV, KC_RALT, KC_RGUI, ______, ______ \
+ ),
+
+/* Layer 1
+ * ,-----------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
+ * |-----------------------------------------------------------------------------------------+
+ * | CAPS | Led | Led-| Led+| | | | | Psc | Slck| Paus| Up | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Prev| Play| Next| | | + | - | End |PgDn| Down| | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | Stop | |
+ * `-----------------------------------------------------------------'
+ */
+ [_FN] = KEYMAP( /* Layer 1 */
+ ______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, \
+ KC_CAPS, S_LED, S_LEDI, S_LEDD, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \
+ ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS,KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______, ______, \
+ ______, ______, KC_MPRV, KC_MPLY, KC_MNXT,______,______,KC_PPLS,KC_PMNS,KC_END, KC_PGDN, KC_DOWN, ______,______, \
+ ______, ______, ______, ______, KC_DEL, KC_MSTP, ______, ______, ______ \
+ )
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ return MACRO_NONE;
+};
diff --git a/keyboards/kc60/keymaps/dbroqua_hhkb/readme.md b/keyboards/kc60/keymaps/dbroqua_hhkb/readme.md
new file mode 100644
index 000000000..be99a3bc7
--- /dev/null
+++ b/keyboards/kc60/keymaps/dbroqua_hhkb/readme.md
@@ -0,0 +1,9 @@
+# Dbroqua HHKB like Layout
+
+Like the HHKB but with a KC60 PCB :D.
+
+# Programming Instructions:
+Enter into programming mode and run the following command.
+```
+$ sudo KEYMAP=dbroqua_hhkb make dfu
+``` \ No newline at end of file
diff --git a/keyboards/kc60/keymaps/default/keymap.c b/keyboards/kc60/keymaps/default/keymap.c
index 6f8352c69..293ff3ab4 100644
--- a/keyboards/kc60/keymaps/default/keymap.c
+++ b/keyboards/kc60/keymaps/default/keymap.c
@@ -9,7 +9,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, RESET \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_RGUI, KC_RALT, KC_RCTL, RESET \
),
};
diff --git a/keyboards/kc60/keymaps/sgoodwin/keymap.c b/keyboards/kc60/keymaps/sgoodwin/keymap.c
index 99e95c232..3192b2514 100644
--- a/keyboards/kc60/keymaps/sgoodwin/keymap.c
+++ b/keyboards/kc60/keymaps/sgoodwin/keymap.c
@@ -13,21 +13,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, \
MO(2), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_NO, KC_ENT, \
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, DF(1) \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_RGUI, KC_RALT, KC_RCTL, DF(1) \
),
[1] = KEYMAP( /* Basic QWERTY */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, DF(0) \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_RGUI, KC_RALT, KC_RCTL, DF(0) \
),
[2] = KEYMAP( /* KBP v60-like arrows, media keys, etc */
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, BL_INC, BL_DEC, BL_STEP, \
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_TRNS, \
KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, DEBUG, RESET, KC_TRNS, KC_NO \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_NO, DEBUG, RESET, KC_TRNS, KC_NO \
),
};
diff --git a/keyboards/kc60/keymaps/stanleylai/keymap.c b/keyboards/kc60/keymaps/stanleylai/keymap.c
index 057c73bf4..212fa88bd 100644
--- a/keyboards/kc60/keymaps/stanleylai/keymap.c
+++ b/keyboards/kc60/keymaps/stanleylai/keymap.c
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
LT(_FL, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_NO, KC_ENT, \
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, MO(_FL), KC_UP, \
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI,KC_LEFT, KC_DOWN, KC_RGHT),
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_RGUI,KC_LEFT, KC_DOWN, KC_RGHT),
// Function layer
[_FL] = KEYMAP(
@@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_NO, KC_MPRV,KC_UP, KC_MNXT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR,KC_SLCK, KC_PAUS, KC_INS, \
KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_TRNS,KC_NO, KC_MUTE,KC_VOLD,KC_VOLU,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, LT(_RGBL, KC_PGUP),\
- KC_TRNS,KC_TRNS,KC_TRNS, KC_MPLY, KC_TRNS,KC_HOME, KC_PGDN, KC_END),
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_MPLY, KC_NO, KC_TRNS,KC_HOME, KC_PGDN, KC_END),
// RGB Layer
[_RGBL] = KEYMAP(
@@ -39,13 +39,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_TRNS,KC_NO, RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,BL_STEP,BL_TOGG, KC_TRNS, KC_TRNS,\
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS),
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_NO, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS),
#else
RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 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, BL_STEP,BL_TOGG, KC_TRNS, KC_TRNS,\
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS),
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_NO, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS),
#endif
};
diff --git a/keyboards/kc60/keymaps/wigguno/keymap.c b/keyboards/kc60/keymaps/wigguno/keymap.c
index 50b1d0f98..dca2826eb 100644
--- a/keyboards/kc60/keymaps/wigguno/keymap.c
+++ b/keyboards/kc60/keymaps/wigguno/keymap.c
@@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL \
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, MO(1), KC_RGUI, KC_RCTL \
),
/*
@@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, BL_DEC, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, \
- RESET, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \
+ RESET, KC_TRNS, KC_TRNS, BL_TOGG, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \
),
};
diff --git a/keyboards/kc60/keymaps/workman-dead/kc60-wm-dead.png b/keyboards/kc60/keymaps/workman-dead/kc60-wm-dead.png
new file mode 100644
index 000000000..cc6a630a5
--- /dev/null
+++ b/keyboards/kc60/keymaps/workman-dead/kc60-wm-dead.png
Binary files differ
diff --git a/keyboards/kc60/keymaps/workman-dead/keymap.c b/keyboards/kc60/keymaps/workman-dead/keymap.c
new file mode 100644
index 000000000..9e3b9bb65
--- /dev/null
+++ b/keyboards/kc60/keymaps/workman-dead/keymap.c
@@ -0,0 +1,183 @@
+#include "kc60.h"
+
+#define _WM 0
+#define _QW 1
+#define _DK 2
+#define _FUN 3
+#define _MS 4
+
+#define _______ KC_NO
+#define XXXXXXX KC_TRNS
+
+#define _DK_ACT 0
+#define _DK_REL 1
+#define _KC_COMS 2
+#define _KC_CENT 3
+
+#define DK_ACT M(_DK_ACT) // activate dead key layer
+#define DK_REL M(_DK_REL) // release dead key layer
+#define KC_COMS M(_KC_COMS) // comma + space
+#define KC_CENT M(_KC_CENT) // comma + enter
+#define KC_TABM LT(_MS, KC_TAB) // press for tab, hold for mouse layer
+#define KC_SPFN LT(_FUN, KC_SPC) // press for space, hold for function layer (aka spacefn)
+#define KC_DFQW DF(_QW) // set default layer to qwerty
+#define KC_DFWM DF(_WM) // set default layer to workman
+#define KC_CMDQ LGUI(KC_Q) // command + q
+#define KC_CMDD LGUI(KC_D) // command + d
+#define KC_CMDA LGUI(KC_A) // command + a
+#define KC_CMDS LGUI(KC_S) // command + s
+#define KC_CMDZ LGUI(KC_Z) // command + z
+#define KC_CMDX LGUI(KC_X) // command + x
+#define KC_CMDC LGUI(KC_C) // command + c
+#define KC_CMDV LGUI(KC_V) // command + v
+#define KC_CSTB S(RCTL(KC_TAB)) // shift + control + tab
+#define KC_C_TB RCTL(KC_TAB) // control + tab
+#define KC_C_LF RCTL(KC_LEFT) // control + left
+#define KC_C_RT RCTL(KC_RGHT) // control + right
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+// Workman
+/*
+* ,-----------------------------------------------------------.
+* |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Bsp |
+* |-----------------------------------------------------------|
+* |Tab/M| Q| D| R| W| B| J| F| U| P| ;| [| ]| \ |
+* |-----------------------------------------------------------|
+* |Ctrl | A| S| H| T| G| Y| N| E| O| I| '| Return |
+* |-----------------------------------------------------------|
+* |Shift | Z| X| M| C| V| K| L| ,| .| /| Shift |
+* |-----------------------------------------------------------|
+* |Ctrl | Alt | GUI | Space/FN | Alt | GUI | Ctrl | qwerty |
+* `-----------------------------------------------------------'
+*/
+[_WM] = KEYMAP( /* Workman */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
+ KC_TABM, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, \
+ KC_LCTL, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, _______, KC_ENT, \
+ KC_LSFT, _______, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, DK_ACT, KC_DOT, KC_SLSH, _______, KC_RSFT, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPFN, _______, KC_RALT, KC_RGUI, KC_RCTL, KC_DFQW),
+
+// QWERTY
+/*
+* ,-----------------------------------------------------------.
+* |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Bsp |
+* |-----------------------------------------------------------|
+* |Tab/M| Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
+* |-----------------------------------------------------------|
+* |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| Return |
+* |-----------------------------------------------------------|
+* |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift |
+* |-----------------------------------------------------------|
+* |Ctrl | Alt | GUI | Space/FN | Alt | GUI | Ctrl | workman |
+* `-----------------------------------------------------------'
+*/
+[_QW] = KEYMAP( /* QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
+ KC_TABM, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, _______, KC_ENT, \
+ KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, DK_ACT, KC_DOT, KC_SLSH, _______, KC_RSFT, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPFN, _______, KC_RALT, KC_RGUI, KC_RCTL, KC_DFWM),
+
+// dead key layer
+/*
+* ,-----------------------------------------------------------.
+* | | | | | | | | | | | | | | Bsp |
+* |-----------------------------------------------------------|
+* | | %| &| ?| +| @| $| _| [| ]| !| ~| ^| |
+* |-----------------------------------------------------------|
+* | | #| (| =| 0| {| }| 1| *| )| -| `| Return |
+* |-----------------------------------------------------------|
+* | | 6| 7| 8| 9| || \| 2| 3| 4| 5| |
+* |-----------------------------------------------------------|
+* |Ctrl | Alt | GUI | , | Alt | GUI | Ctrl | |
+* `-----------------------------------------------------------'
+*/
+[_DK] = KEYMAP( /* dead key layer */
+ XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC, \
+ XXXXXXX, KC_PERC, KC_AMPR, KC_QUES, KC_PLUS, KC_AT, KC_DLR, KC_UNDS, KC_LBRC, KC_RBRC, KC_EXLM, KC_TILD, KC_CIRC, _______, \
+ _______, KC_HASH, KC_LPRN, KC_EQL, KC_0, KC_LCBR, KC_RCBR, KC_1, KC_ASTR, KC_RPRN, KC_MINS, KC_GRV, _______, KC_CENT, \
+ _______, _______, KC_6, KC_7, KC_8, KC_9, KC_PIPE, KC_BSLS, KC_2, DK_REL, KC_4, KC_5, _______, _______, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_COMS, _______, KC_RALT, KC_RGUI, KC_RCTL, _______),
+
+// function layer
+/*
+* ,-----------------------------------------------------------.
+* | | F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12|Del |
+* |-----------------------------------------------------------|
+* |Esc | Cq| Cd|cstb|ctb| | |pgd| up|pgu| | | |ins |
+* |-----------------------------------------------------------|
+* |Shift | Ca| Cs|clt|crt| | | lt| dw| rt|home|end| Bsp |
+* |-----------------------------------------------------------|
+* |Shift | Cz| Cx| | Cc| Cv| V-| V+|mute| | | |
+* |-----------------------------------------------------------|
+* |Ctrl | Alt | GUI | | Alt | GUI | Ctrl | Reset |
+* `-----------------------------------------------------------'
+*/
+[_FUN] = KEYMAP( /* function layer */
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
+ KC_ESC, KC_CMDQ, KC_CMDD, KC_CSTB, KC_C_TB, _______, _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_INS, \
+ KC_LSFT, KC_CMDA, KC_CMDS, KC_C_LF, KC_C_RT, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_END, _______, KC_BSPC, \
+ KC_LSFT, _______, KC_CMDZ, KC_CMDX, _______, KC_CMDC, KC_CMDV, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, _______, KC_RALT, KC_RGUI, KC_RCTL, RESET),
+
+// mouse layer
+/*
+* ,-----------------------------------------------------------.
+* | | | | | | | | | | | | | | |
+* |-----------------------------------------------------------|
+* | |fast|med|slow| | | | | up| | | | | |
+* |-----------------------------------------------------------|
+* | | | | | | | | lt| dw| rt| rc| | |
+* |-----------------------------------------------------------|
+* | | | | | | | | | | | | |
+* |-----------------------------------------------------------|
+* | | | | lc | | | | |
+* `-----------------------------------------------------------'
+*/
+[_MS] = KEYMAP( /* mouse layer */
+ XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ XXXXXXX, KC_ACL2, KC_ACL1, KC_ACL0, _______, _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN2, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, KC_BTN1, _______, _______, _______, _______, _______),
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case _KC_COMS:
+ if (record->event.pressed) {
+ return MACRO(T(COMM), T(SPC), END); // comma + space
+ }
+ break;
+ case _KC_CENT:
+ if (record->event.pressed) {
+ return MACRO(T(COMM), T(ENT), END); // comma + enter
+ }
+ break;
+ case _DK_ACT:
+ if (record->event.pressed) {
+ if (keyboard_report->mods & MOD_BIT(KC_LSFT) || keyboard_report->mods & MOD_BIT(KC_RSFT)) { // act as comma when shift is pressed (eg <)
+ register_code(KC_COMM);
+ } else { // activate oneshot dead key layer otherwise
+ layer_on(_DK);
+ set_oneshot_layer(_DK, ONESHOT_START);
+ }
+ } else { // make sure to deactive dead key layer on key release
+ clear_oneshot_layer_state(ONESHOT_PRESSED);
+ unregister_code(KC_COMM);
+ }
+ break;
+ case _DK_REL:
+ if (record->event.pressed) { // act as 3 on keypress
+ register_code(KC_3);
+ } else { // make sure to deactive dead key layer on key release
+ clear_oneshot_layer_state(ONESHOT_PRESSED);
+ unregister_code(KC_3);
+ }
+ break;
+ }
+
+ return MACRO_NONE;
+};
diff --git a/keyboards/kc60/keymaps/workman-dead/readme.md b/keyboards/kc60/keymaps/workman-dead/readme.md
new file mode 100644
index 000000000..f1fcdc960
--- /dev/null
+++ b/keyboards/kc60/keymaps/workman-dead/readme.md
@@ -0,0 +1,17 @@
+# Workman dead with spacefn (kc60 @ QMK)
+
+## Layout reference
+![workman dead with spacefn](./kc60-wm-dead.png)
+
+## Build
+
+To build this keymap, simply run `make KEYMAP=workman-dead`.
+
+## Notes
+
+* the default layout is `workman` (try it out, it's awesome!), but it can be changed to `qwerty` with the `rebel` key (the function layer won't change though)
+* `comma` acts as a dead key, that means tapping/holding it will activate the **oneshot** `dead key` layer (marked red in the reference)
+* hold `space` to access the `function` layer (marked blue in the reference)
+* hold `tab` to activate the mouse layer
+* the `function` layer contains mostly osx specific shortcuts
+* on the right side of the bottom row `alt` and `super` are switched compared to a standard layout
diff --git a/keyboards/kc60/keymaps/ws2812/config.h b/keyboards/kc60/keymaps/ws2812/config.h
index 2f39ea8e5..43abf6228 100644
--- a/keyboards/kc60/keymaps/ws2812/config.h
+++ b/keyboards/kc60/keymaps/ws2812/config.h
@@ -2,7 +2,7 @@
/* WS2812B RGB Underglow LED */
#define RGB_DI_PIN F5 // Based on wiring depicted in ws2812_wiring.jpg
-#define RGBLIGHT_TIMER
+#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 16 // Number of LEDs. Change this to match your use case.
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
diff --git a/keyboards/kc60/keymaps/ws2812/keymap.c b/keyboards/kc60/keymaps/ws2812/keymap.c
index 1c0574df0..ae11ebf91 100644
--- a/keyboards/kc60/keymaps/ws2812/keymap.c
+++ b/keyboards/kc60/keymaps/ws2812/keymap.c
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_NO, KC_ENT, \
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,KC_RGUI, MO(_FL), KC_RCTL),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT,KC_RGUI, MO(_FL), KC_RCTL),
/* Keymap _FL: Function Layer
* ,-----------------------------------------------------------.
@@ -53,13 +53,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET),
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, RESET),
#else
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET),
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, RESET),
#endif
};
diff --git a/keyboards/kc60/readme.md b/keyboards/kc60/readme.md
index acc0df68d..da84f6159 100644
--- a/keyboards/kc60/readme.md
+++ b/keyboards/kc60/readme.md
@@ -10,18 +10,27 @@ Download or clone the whole firmware and navigate to the keyboards/kc60 folder.
Depending on which keymap you would like to use, you will have to compile slightly differently.
### Default
-To build with the default keymap, simply run `make`.
+To build with the default keymap, simply run `make default`.
### Other Keymaps
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files.
-To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
```
-$ make KEYMAP=[default|jack|<name>]
+$ make [default|jack|<name>]
```
+
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
## WS2812 Support
![Image of KC60 with RGB Underglow](keymaps/ws2812/ws2812_example.jpg)
-Build with WS2812 Support by running `make KEYMAP=ws2812`.
+Build with WS2812 Support by running `make ws2812`.
+
+## Warning
+For those who want to use 2x1U instead of classic backspace you need to use K0D and K49 like this:
+* K0D represents the key at the right of =.
+* K49 represents the last key of the row (is wired at the right of the space key on the PCB)
+
+In kc60.h I've put several definitions' examples of possible layouts proposed by online editor (http://123.57.250.164:9128/).
diff --git a/keyboards/kc60/rules.mk b/keyboards/kc60/rules.mk
new file mode 100644
index 000000000..06bd5dc92
--- /dev/null
+++ b/keyboards/kc60/rules.mk
@@ -0,0 +1,68 @@
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= no # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no # Audio output on port C6
diff --git a/keyboards/kinesis/Makefile b/keyboards/kinesis/Makefile
new file mode 100644
index 000000000..fbf05ca4a
--- /dev/null
+++ b/keyboards/kinesis/Makefile
@@ -0,0 +1,5 @@
+SUBPROJECT_DEFAULT = alvicstep
+
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif
diff --git a/keyboards/kinesis/alvicstep/Makefile b/keyboards/kinesis/alvicstep/Makefile
new file mode 100644
index 000000000..bd09e5885
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../../Makefile
+endif
diff --git a/keyboards/kinesis/alvicstep/alvicstep.c b/keyboards/kinesis/alvicstep/alvicstep.c
new file mode 100644
index 000000000..fba9f5136
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/alvicstep.c
@@ -0,0 +1,105 @@
+#include "kinesis.h"
+
+// begin section origin https://github.com/alvicstep/tmk_keyboard
+
+void all_led_off(void)
+{
+ PORTD = 0b11111111;
+}
+
+void all_led_on(void)
+{
+ PORTD = 0b00000000;
+}
+void num_lock_led_on(void)
+{
+ PORTD = 0b11101111;
+}
+
+void caps_lock_led_on(void)
+{
+ PORTD = 0b01111111;
+}
+
+void scroll_lock_led_on(void)
+{
+ PORTD = 0b11011111;
+}
+void keypad_led_on(void)
+{
+ PORTD = 0b10111111;
+}
+void blink_all_leds(void)
+{
+ all_led_on();
+ _delay_ms(500);
+
+ all_led_off();
+ _delay_ms(100);
+
+ caps_lock_led_on();
+ _delay_ms(100);
+
+ num_lock_led_on();
+ _delay_ms(100);
+
+ scroll_lock_led_on();
+ _delay_ms(100);
+
+ keypad_led_on();
+ _delay_ms(100);
+
+ //back
+
+ scroll_lock_led_on();
+ _delay_ms(100);
+
+ num_lock_led_on();
+ _delay_ms(100);
+
+ caps_lock_led_on();
+ _delay_ms(100);
+
+ all_led_off();
+}
+
+// End section origin https://github.com/alvicstep/tmk_keyboard
+
+ void matrix_init_kb(void) {
+ blink_all_leds();
+ matrix_init_user();
+}
+
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // put your per-action keyboard code here
+ // runs for every action, just before processing by the firmware
+
+ return process_record_user(keycode, record);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+//Copyright 2014 Warren Janssens <warren.janssens@gmail.com>
+ uint8_t leds = 0xF0;
+ if (usb_led & 1 << USB_LED_NUM_LOCK)
+ leds &= ~0x10;
+ if (usb_led & 1 << USB_LED_CAPS_LOCK)
+ leds &= ~0x80;
+ if (usb_led & 1 << USB_LED_SCROLL_LOCK)
+ leds &= ~0x20;
+ PORTD = (PORTD & 0x0F) | leds;
+
+ led_set_user(usb_led);
+
+}
+
+
diff --git a/keyboards/kinesis/alvicstep/alvicstep.h b/keyboards/kinesis/alvicstep/alvicstep.h
new file mode 100644
index 000000000..f91a52314
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/alvicstep.h
@@ -0,0 +1,67 @@
+#ifndef KINESIS_ALVICSTEP_H
+#define KINESIS_ALVICSTEP_H
+
+#include "../kinesis.h"
+
+
+#define KEYMAP( \
+ k02,k22,k12,k01,k21,k11,k00,k20,k10, \
+ k80,k70,k60,k50,k40,k30, \
+ k81,k71,k61,k51,k41,k31, \
+ k82,k72,k62,k52,k42,k32, \
+ k83,k73,k63,k53,k43,k33, \
+ k74,k64,k54,k34, \
+ k36,k35, \
+ k55, \
+ k56,k46,k75, \
+ k03,k23,k13,k04,k24,k14,k05,k85,k84, \
+ k94,kA4,kB4,kD4,kE4,kF4, \
+ k95,kA5,kB5,kD5,kE5,kF5, \
+ k96,kA6,kB6,kD6,kE6,kF6, \
+ k97,kA7,kB7,kD7,kE7,kF7, \
+ k93,kB3,kD3,kE3, \
+ k47,k66, \
+ k67, \
+ k87,k76,k86 \
+) { \
+ { k00, k01, k02, k03, k04, k05, KC_NO, KC_NO }, \
+ { k10, k11, k12, k13, k14, KC_NO, KC_NO, KC_NO }, \
+ { k20, k21, k22, k23, k24, KC_NO, KC_NO, KC_NO }, \
+ { k30, k31, k32, k33, k34, k35, k36, KC_NO }, \
+ { k40, k41, k42, k43, KC_NO, KC_NO, k46, k47 }, \
+ { k50, k51, k52, k53, k54, k55, k56, KC_NO }, \
+ { k60, k61, k62, k63, k64, KC_NO, k66, k67 }, \
+ { k70, k71, k72, k73, k74, k75, k76, KC_NO }, \
+ { k80, k81, k82, k83, k84, k85, k86, k87}, \
+ { KC_NO, KC_NO ,KC_NO ,k93, k94, k95, k96, k97}, \
+ { KC_NO, KC_NO ,KC_NO ,KC_NO, kA4, kA5, kA6, kA7}, \
+ { KC_NO, KC_NO ,KC_NO ,kB3, kB4, kB5, kB6, kB7}, \
+ { KC_NO, KC_NO ,KC_NO ,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, \
+ { KC_NO, KC_NO ,KC_NO ,kD3, kD4, kD5, kD6, kD7}, \
+ { KC_NO, KC_NO ,KC_NO ,kE3, kE4, kE5, kE6, kE7}, \
+ { KC_NO, KC_NO ,KC_NO ,KC_NO, kF4, kF5, kF6, kF7} \
+}
+
+
+/* Row pin configuration
+PF0 A
+PF1 B
+PF2 C
+PF3 G 0 = U4, 1 = U5
+
+
+ r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 rA rB rC rD rE rF
+PB0 c0| f6 f8 f7 5 4 3 2 1 =+
+PB1 c1| f3 f5 f4 t r e w q TAB
+PB2 c2| ESC f2 f1 g f d s a CL
+PB3 c3| f9 f11 f10 b v c x z LS UP DN [{ ]}
+PB4 c4| f12 SL PS RT LT §± `~ 6 7 8 9 0 -_
+PB5 c5| PB PGM KPD y u i o p \
+PB6 c6| LC DL BS RC EN SP h j k l ;: '"
+PB7 c7| RA PU PD n m ,< .> /? RS
+ */
+
+
+
+
+#endif
diff --git a/keyboards/kinesis/alvicstep/config.h b/keyboards/kinesis/alvicstep/config.h
new file mode 100644
index 000000000..88b7e2644
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/config.h
@@ -0,0 +1,35 @@
+#ifndef ALVICSTEP_CONFIG_H
+#define ALVICSTEP_CONFIG_H
+
+#include "../config.h"
+
+/* USB Device descriptor parameter */
+#define PRODUCT_ID 0x6060
+#define DEVICE_VER 0x0001
+
+/* key matrix size */
+#define MATRIX_ROWS 16
+#define MATRIX_COLS 8
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+//Passed through the port multipler, so 4 pins =16
+#define MATRIX_ROW_PINS { F0,F1, F2, F3 }
+
+// May be upside down.
+#define MATRIX_COL_PINS { B0,B1, B2, B3, B4, B5, B6, B7 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+
+#endif
diff --git a/keyboards/kinesis/alvicstep/docs/kicad/kinesis-cache.lib b/keyboards/kinesis/alvicstep/docs/kicad/kinesis-cache.lib
new file mode 100644
index 000000000..f798d39d6
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/docs/kicad/kinesis-cache.lib
@@ -0,0 +1,232 @@
+EESchema-LIBRARY Version 2.3 Date: Wednesday, November 12, 2014 'pmt' 10:15:19 pm
+#encoding utf-8
+#
+# AT90S4414-P
+#
+DEF AT90S4414-P IC 0 40 Y Y 1 F N
+F0 "IC" -850 1880 40 H V L BNN
+F1 "AT90S4414-P" 450 -1950 40 H V L BNN
+F2 "DIL40" 0 0 30 H V C CIN
+F3 "~" 0 0 60 H V C CNN
+ALIAS AT90S8515-P
+$FPLIST
+ 40DIP-ELL600
+ 40dip600
+$ENDFPLIST
+DRAW
+S -850 1850 850 -1850 0 1 10 f
+X (T0)PB0 1 1000 700 150 L 40 40 1 1 B
+X (T1)PB1 2 1000 600 150 L 40 40 1 1 B
+X (AIN0)PB2 3 1000 500 150 L 40 40 1 1 B
+X (AIN1)PB3 4 1000 400 150 L 40 40 1 1 B
+X (~SS~)PB4 5 1000 300 150 L 40 40 1 1 B
+X (MOSI)PB5 6 1000 200 150 L 40 40 1 1 B
+X (MISO)PB6 7 1000 100 150 L 40 40 1 1 B
+X (SCK)PB7 8 1000 0 150 L 40 40 1 1 B
+X ~RESET 9 -1000 1700 150 R 40 40 1 1 I
+X (RXD)PD0 10 1000 -1000 150 L 40 40 1 1 B
+X GND 20 0 -2000 150 U 40 40 1 1 W
+X ALE 30 1000 850 150 L 40 40 1 1 O
+X VCC 40 0 2000 150 D 40 40 1 1 W
+X (TXD)PD1 11 1000 -1100 150 L 40 40 1 1 B
+X (A8)PC0 21 1000 -150 150 L 40 40 1 1 B
+X ICP 31 -1000 -1400 150 R 40 40 1 1 I
+X (INT0)PD2 12 1000 -1200 150 L 40 40 1 1 B
+X (A9)PC1 22 1000 -250 150 L 40 40 1 1 B
+X (AD7)PA7 32 1000 1000 150 L 40 40 1 1 B
+X (INT1)PD3 13 1000 -1300 150 L 40 40 1 1 B
+X (A10)PC2 23 1000 -350 150 L 40 40 1 1 B
+X (AD6)PA6 33 1000 1100 150 L 40 40 1 1 B
+X PD4 14 1000 -1400 150 L 40 40 1 1 B
+X (A11)PC3 24 1000 -450 150 L 40 40 1 1 B
+X (AD5)PA5 34 1000 1200 150 L 40 40 1 1 B
+X (OC1A)PD5 15 1000 -1500 150 L 40 40 1 1 B
+X (A12)PC4 25 1000 -550 150 L 40 40 1 1 B
+X (AD4)PA4 35 1000 1300 150 L 40 40 1 1 B
+X (~WR~)PD6 16 1000 -1600 150 L 40 40 1 1 B
+X (A13)PC5 26 1000 -650 150 L 40 40 1 1 B
+X (AD3)PA3 36 1000 1400 150 L 40 40 1 1 B
+X (~RD~)PD7 17 1000 -1700 150 L 40 40 1 1 B
+X (A14)PC6 27 1000 -750 150 L 40 40 1 1 B
+X (AD2)PA2 37 1000 1500 150 L 40 40 1 1 B
+X XTAL2 18 -1000 1200 150 R 40 40 1 1 B
+X (A15)PC7 28 1000 -850 150 L 40 40 1 1 B
+X (AD1)PA1 38 1000 1600 150 L 40 40 1 1 B
+X XTAL1 19 -1000 800 150 R 40 40 1 1 B
+X OC1B 29 -1000 -1500 150 R 40 40 1 1 W
+X (AD0)PA0 39 1000 1700 150 L 40 40 1 1 B
+ENDDRAW
+ENDDEF
+#
+# ATMEGA16U4-A
+#
+DEF ATMEGA16U4-A U 0 40 Y Y 1 F N
+F0 "U" -950 1700 40 H V C CNN
+F1 "ATMEGA16U4-A" 700 -1500 40 H V C CNN
+F2 "TQFP44" 0 0 35 H V C CIN
+F3 "~" 1100 1100 60 H V C CNN
+ALIAS ATMEGA16U4RC-A ATMEGA32U4-A ATMEGA32U4RC-A
+$FPLIST
+ TQFP44
+$ENDFPLIST
+DRAW
+S -1000 1650 950 -1450 0 1 10 f
+X (INT6/AIN0)PE6 1 1100 -650 150 L 40 40 1 1 B
+X UVCC 2 -450 1800 150 D 40 40 1 1 W
+X D- 3 -1150 100 150 R 40 40 1 1 B
+X D+ 4 -1150 200 150 R 40 40 1 1 B
+X UGND 5 -400 -1600 150 U 40 40 1 1 P
+X UCAP 6 -1150 -50 150 R 40 40 1 1 P
+X VBUS 7 -1150 350 150 R 40 40 1 1 P
+X (SS/PCINT0)PB0 8 1100 1550 150 L 40 40 1 1 B
+X (SCLK/PCINT1)PB1 9 1100 1450 150 L 40 40 1 1 B
+X (PDI/MOSI/PCINT2)PB2 10 1100 1350 150 L 40 40 1 1 B
+X (RXD/INT2)PD2 20 1100 150 150 L 40 40 1 1 B
+X (ADC13/OC1B/OC4B/PCINT13)PB6 30 1100 950 150 L 40 40 1 1 B
+X (ADC1)PF1 40 1100 -950 150 L 40 40 1 1 B
+X (PDO/MISO/PCINT3)PB3 11 1100 1250 150 L 40 40 1 1 B
+X (TXD/INT3)PD3 21 1100 50 150 L 40 40 1 1 B
+X (OC3A/~OC4A~)PC6 31 1100 650 150 L 40 40 1 1 B
+X (ADC0)PF0 41 1100 -850 150 L 40 40 1 1 B
+X (OC0A/OC1C/~RTS~/PCINT7)PB7 12 1100 850 150 L 40 40 1 1 B
+X (XCK1/~CTS~)PD5 22 1100 -150 150 L 40 40 1 1 B
+X (ICP3/CLK0/OC4A)PC7 32 1100 550 150 L 40 40 1 1 B
+X AREF 42 -1150 -850 150 R 40 40 1 1 P
+X ~RESET~ 13 -1150 1550 150 R 40 40 1 1 I
+X GND 23 -50 -1600 150 U 40 40 1 1 W
+X (~HWB~)PE2 33 1100 -550 150 L 40 40 1 1 B
+X GND 43 150 -1600 150 U 40 40 1 1 W
+X VCC 14 -200 1800 150 D 40 40 1 1 W
+X AVCC 24 150 1800 150 D 40 40 1 1 W
+X VCC 34 -100 1800 150 D 40 40 1 1 W
+X AVCC 44 250 1800 150 D 40 40 1 1 W
+X GND 15 -150 -1600 150 U 40 40 1 1 W
+X (ICP2/ADC8)PD4 25 1100 -50 150 L 40 40 1 1 B
+X GND 35 50 -1600 150 U 40 40 1 1 W
+X XTAL2 16 -1150 950 150 R 40 40 1 1 O
+X (T1/~OC4D~/ADC9)PD6 26 1100 -250 150 L 40 40 1 1 B
+X (ADC7/TDI)PF7 36 1100 -1350 150 L 40 40 1 1 B
+X XTAL1 17 -1150 1150 150 R 40 40 1 1 I
+X (T0/OC4D/ADC10)PD7 27 1100 -350 150 L 40 40 1 1 B
+X (ADC6/TDO)PF6 37 1100 -1250 150 L 40 40 1 1 B
+X (OC0B/SCL/INT0)PD0 18 1100 350 150 L 40 40 1 1 B
+X (ADC11/PCINT4)PB4 28 1100 1150 150 L 40 40 1 1 B
+X (ADC5/TMS)PF5 38 1100 -1150 150 L 40 40 1 1 B
+X (SDA/INT1)PD1 19 1100 250 150 L 40 40 1 1 B
+X (ADC12/OC1A/~OC4B~/PCINT12)PB5 29 1100 1050 150 L 40 40 1 1 B
+X (ADC4/TCK)PF4 39 1100 -1050 150 L 40 40 1 1 B
+ENDDRAW
+ENDDEF
+#
+# C
+#
+DEF C C 0 10 N Y 1 F N
+F0 "C" 0 100 40 H V L CNN
+F1 "C" 6 -85 40 H V L CNN
+F2 "~" 38 -150 30 H V C CNN
+F3 "~" 0 0 60 H V C CNN
+$FPLIST
+ SM*
+ C?
+ C1-1
+$ENDFPLIST
+DRAW
+P 2 0 1 20 -80 -30 80 -30 N
+P 2 0 1 20 -80 30 80 30 N
+X ~ 1 0 200 170 D 40 40 1 1 P
+X ~ 2 0 -200 170 U 40 40 1 1 P
+ENDDRAW
+ENDDEF
+#
+# CONN_7
+#
+DEF CONN_7 P 0 40 Y N 1 F N
+F0 "P" -30 0 60 V V C CNN
+F1 "CONN_7" 70 0 60 V V C CNN
+F2 "~" 0 0 60 H V C CNN
+F3 "~" 0 0 60 H V C CNN
+DRAW
+S -100 350 150 -350 0 1 0 N
+X P1 1 -350 300 250 R 50 50 1 1 P I
+X P2 2 -350 200 250 R 50 50 1 1 P I
+X P3 3 -350 100 250 R 50 50 1 1 P I
+X P4 4 -350 0 250 R 50 50 1 1 P I
+X P5 5 -350 -100 250 R 50 50 1 1 P I
+X P6 6 -350 -200 250 R 50 50 1 1 P I
+X P7 7 -350 -300 250 R 50 50 1 1 P I
+ENDDRAW
+ENDDEF
+#
+# GND
+#
+DEF ~GND #PWR 0 0 Y Y 1 F P
+F0 "#PWR" 0 0 30 H I C CNN
+F1 "GND" 0 -70 30 H I C CNN
+F2 "~" 0 0 60 H V C CNN
+F3 "~" 0 0 60 H V C CNN
+DRAW
+P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N
+X GND 1 0 0 0 U 30 30 1 1 W N
+ENDDRAW
+ENDDEF
+#
+# R
+#
+DEF R R 0 0 N Y 1 F N
+F0 "R" 80 0 40 V V C CNN
+F1 "R" 7 1 40 V V C CNN
+F2 "~" -70 0 30 V V C CNN
+F3 "~" 0 0 30 H V C CNN
+$FPLIST
+ R?
+ SM0603
+ SM0805
+ R?-*
+ SM1206
+$ENDFPLIST
+DRAW
+S -40 150 40 -150 0 1 12 N
+X ~ 1 0 250 100 D 60 60 1 1 P
+X ~ 2 0 -250 100 U 60 60 1 1 P
+ENDDRAW
+ENDDEF
+#
+# USB-MINI-B
+#
+DEF USB-MINI-B CON 0 40 Y Y 1 F N
+F0 "CON" -250 450 60 H V C CNN
+F1 "USB-MINI-B" -50 -500 60 H V C CNN
+F2 "~" 0 0 60 H V C CNN
+F3 "~" 0 0 60 H V C CNN
+$FPLIST
+ USB-Mini-B-Jack
+$ENDFPLIST
+DRAW
+S -350 400 350 -400 0 1 0 N
+X VBUS 1 -550 300 200 R 50 50 1 1 W
+X D- 2 -550 150 200 R 50 50 1 1 B
+X D+ 3 -550 0 200 R 50 50 1 1 B
+X ID 4 -550 -150 200 R 50 50 1 1 B
+X GND 5 -550 -300 200 R 50 50 1 1 W
+X SHELL1 6 550 300 200 L 50 50 1 1 B
+X SHELL2 7 550 150 200 L 50 50 1 1 B
+X SHELL3 8 550 -150 200 L 50 50 1 1 B
+X SHELL4 9 550 -300 200 L 50 50 1 1 B
+ENDDRAW
+ENDDEF
+#
+# VCC
+#
+DEF VCC #PWR 0 0 Y Y 1 F P
+F0 "#PWR" 0 100 30 H I C CNN
+F1 "VCC" 0 100 30 H V C CNN
+F2 "~" 0 0 60 H V C CNN
+F3 "~" 0 0 60 H V C CNN
+DRAW
+X VCC 1 0 0 0 U 20 20 0 0 W N
+C 0 50 20 0 1 0 N
+P 3 0 1 0 0 0 0 30 0 30 N
+ENDDRAW
+ENDDEF
+#
+#End Library
diff --git a/keyboards/kinesis/alvicstep/docs/kicad/kinesis.pro b/keyboards/kinesis/alvicstep/docs/kicad/kinesis.pro
new file mode 100644
index 000000000..9f130b509
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/docs/kicad/kinesis.pro
@@ -0,0 +1,83 @@
+update=Wednesday, November 05, 2014 'pmt' 12:08:47 pm
+version=1
+last_client=pcbnew
+[cvpcb]
+version=1
+NetIExt=net
+[cvpcb/libraries]
+EquName1=devcms
+[general]
+version=1
+[eeschema]
+version=1
+PageLayoutDescrFile=
+SubpartIdSeparator=0
+SubpartFirstId=65
+LibDir=../../../lib/kicad/library
+NetFmtName=
+RptD_X=0
+RptD_Y=100
+RptLab=1
+LabSize=60
+[eeschema/libraries]
+LibName1=power
+LibName2=device
+LibName3=transistors
+LibName4=conn
+LibName5=linear
+LibName6=regul
+LibName7=74xx
+LibName8=cmos4000
+LibName9=adc-dac
+LibName10=memory
+LibName11=xilinx
+LibName12=special
+LibName13=microcontrollers
+LibName14=dsp
+LibName15=microchip
+LibName16=analog_switches
+LibName17=motorola
+LibName18=texas
+LibName19=intel
+LibName20=audio
+LibName21=interface
+LibName22=digital-audio
+LibName23=philips
+LibName24=display
+LibName25=cypress
+LibName26=siliconi
+LibName27=opto
+LibName28=atmel
+LibName29=contrib
+LibName30=valves
+LibName31=custom
+[pcbnew]
+version=1
+LastNetListRead=
+UseCmpFile=1
+PadDrill=1.016000000000
+PadDrillOvalY=1.016000000000
+PadSizeH=1.524000000000
+PadSizeV=1.524000000000
+PcbTextSizeV=1.500000000000
+PcbTextSizeH=1.500000000000
+PcbTextThickness=0.300000000000
+ModuleTextSizeV=1.000000000000
+ModuleTextSizeH=1.000000000000
+ModuleTextSizeThickness=0.150000000000
+SolderMaskClearance=0.000000000000
+SolderMaskMinWidth=0.000000000000
+DrawSegmentWidth=0.200000000000
+BoardOutlineThickness=0.100000000000
+ModuleOutlineThickness=0.150000000000
+[pcbnew/libraries]
+LibDir=../../../lib/kicad/modules
+LibName1=custom
+LibName2=Sockets
+LibName3=Connect
+LibName4=Discret
+LibName5=Divers
+LibName6=Display
+LibName7=LEDs
+LibName8=SMD_Packages
+LibName9=Sockets_DIP
diff --git a/keyboards/kinesis/alvicstep/docs/kicad/kinesis.sch b/keyboards/kinesis/alvicstep/docs/kicad/kinesis.sch
new file mode 100644
index 000000000..f75335aa0
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/docs/kicad/kinesis.sch
@@ -0,0 +1,634 @@
+EESchema Schematic File Version 2
+LIBS:power
+LIBS:device
+LIBS:transistors
+LIBS:conn
+LIBS:linear
+LIBS:regul
+LIBS:74xx
+LIBS:cmos4000
+LIBS:adc-dac
+LIBS:memory
+LIBS:xilinx
+LIBS:special
+LIBS:microcontrollers
+LIBS:dsp
+LIBS:microchip
+LIBS:analog_switches
+LIBS:motorola
+LIBS:texas
+LIBS:intel
+LIBS:audio
+LIBS:interface
+LIBS:digital-audio
+LIBS:philips
+LIBS:display
+LIBS:cypress
+LIBS:siliconi
+LIBS:opto
+LIBS:atmel
+LIBS:contrib
+LIBS:valves
+LIBS:custom
+LIBS:kinesis-cache
+EELAYER 27 0
+EELAYER END
+$Descr A4 11693 8268
+encoding utf-8
+Sheet 1 1
+Title ""
+Date "13 nov 2014"
+Rev ""
+Comp ""
+Comment1 ""
+Comment2 ""
+Comment3 ""
+Comment4 ""
+$EndDescr
+$Comp
+L C C4
+U 1 1 545804FB
+P 2850 4250
+F 0 "C4" H 2850 4350 40 0000 L CNN
+F 1 "1uF" H 2856 4165 40 0000 L CNN
+F 2 "~" H 2888 4100 30 0000 C CNN
+F 3 "~" H 2850 4250 60 0000 C CNN
+ 1 2850 4250
+ -1 0 0 1
+$EndComp
+$Comp
+L R R3
+U 1 1 545805E8
+P 2500 4000
+F 0 "R3" V 2580 4000 40 0000 C CNN
+F 1 "22" V 2507 4001 40 0000 C CNN
+F 2 "~" V 2430 4000 30 0000 C CNN
+F 3 "~" H 2500 4000 30 0000 C CNN
+ 1 2500 4000
+ 0 -1 -1 0
+$EndComp
+$Comp
+L R R2
+U 1 1 545805FA
+P 2500 3800
+F 0 "R2" V 2580 3800 40 0000 C CNN
+F 1 "22" V 2507 3801 40 0000 C CNN
+F 2 "~" V 2430 3800 30 0000 C CNN
+F 3 "~" H 2500 3800 30 0000 C CNN
+ 1 2500 3800
+ 0 -1 -1 0
+$EndComp
+Entry Wire Line
+ 6450 2450 6550 2550
+Entry Wire Line
+ 6450 2550 6550 2650
+Entry Wire Line
+ 6450 2650 6550 2750
+Entry Wire Line
+ 6450 2750 6550 2850
+Entry Wire Line
+ 6450 2950 6550 3050
+Entry Wire Line
+ 6450 3050 6550 3150
+Entry Wire Line
+ 6450 2850 6550 2950
+Entry Wire Line
+ 6450 3150 6550 3250
+Wire Wire Line
+ 10250 1800 10750 1800
+Entry Wire Line
+ 10750 1800 10850 1900
+Entry Wire Line
+ 10750 1900 10850 2000
+Entry Wire Line
+ 10750 2000 10850 2100
+Entry Wire Line
+ 10750 2800 10850 2900
+Entry Wire Line
+ 10750 2900 10850 3000
+Entry Wire Line
+ 10750 3000 10850 3100
+Entry Wire Line
+ 10750 3100 10850 3200
+Entry Wire Line
+ 10750 3200 10850 3300
+Entry Wire Line
+ 10750 3300 10850 3400
+$Comp
+L AT90S8515-P IC2
+U 1 1 545A62EA
+P 9250 3500
+F 0 "IC2" H 8400 5380 40 0000 L BNN
+F 1 "AT90S8515-P" H 9700 1550 40 0000 L BNN
+F 2 "DIL40" H 9250 3500 30 0000 C CIN
+F 3 "" H 9250 3500 60 0000 C CNN
+ 1 9250 3500
+ 1 0 0 -1
+$EndComp
+NoConn ~ 10250 2650
+Entry Wire Line
+ 10750 3650 10850 3750
+Entry Wire Line
+ 10750 3750 10850 3850
+Entry Wire Line
+ 10750 3850 10850 3950
+Entry Wire Line
+ 10750 3950 10850 4050
+Entry Wire Line
+ 10750 4050 10850 4150
+Entry Wire Line
+ 10750 4150 10850 4250
+Entry Wire Line
+ 10750 4350 10850 4450
+Entry Wire Line
+ 10750 4250 10850 4350
+NoConn ~ 8250 4900
+NoConn ~ 8250 5000
+NoConn ~ 8250 1800
+Wire Wire Line
+ 10250 1900 10750 1900
+Wire Wire Line
+ 10250 2000 10750 2000
+Wire Wire Line
+ 10250 2100 10750 2100
+Wire Wire Line
+ 10250 2200 10750 2200
+Wire Wire Line
+ 10250 2300 10750 2300
+Wire Wire Line
+ 10250 2400 10750 2400
+Wire Wire Line
+ 10250 2500 10750 2500
+Text Label 10350 1800 0 60 ~ 0
+A
+Text Label 10350 1900 0 60 ~ 0
+B
+Text Label 10350 2000 0 60 ~ 0
+C
+Text Label 10350 2100 0 60 ~ 0
+G
+Wire Wire Line
+ 10250 2800 10750 2800
+Wire Wire Line
+ 10250 2900 10750 2900
+Wire Wire Line
+ 10250 3000 10750 3000
+Wire Wire Line
+ 10250 3100 10750 3100
+Wire Wire Line
+ 10250 3200 10750 3200
+Wire Wire Line
+ 10250 3300 10750 3300
+Wire Wire Line
+ 10250 3400 10750 3400
+Wire Wire Line
+ 10250 3500 10750 3500
+Text Label 10350 2800 0 60 ~ 0
+DL2
+Text Label 10350 2900 0 60 ~ 0
+DR1
+Text Label 10350 3000 0 60 ~ 0
+DR2
+Text Label 10350 3100 0 60 ~ 0
+DL1
+Text Label 10350 3400 0 60 ~ 0
+SCL
+Text Label 10350 3500 0 60 ~ 0
+SDA
+Wire Wire Line
+ 10250 3650 10750 3650
+Wire Wire Line
+ 10250 3750 10750 3750
+Wire Wire Line
+ 10250 3850 10750 3850
+Wire Wire Line
+ 10250 3950 10750 3950
+Wire Wire Line
+ 10250 4050 10750 4050
+Wire Wire Line
+ 10250 4150 10750 4150
+Wire Wire Line
+ 10250 4250 10750 4250
+Wire Wire Line
+ 10250 4350 10750 4350
+Text Label 10350 3650 0 60 ~ 0
+R1
+Text Label 10350 3750 0 60 ~ 0
+R2
+Text Label 10350 3850 0 60 ~ 0
+R3
+Text Label 10350 3950 0 60 ~ 0
+R4
+Text Label 10350 4050 0 60 ~ 0
+R5
+Text Label 10350 4150 0 60 ~ 0
+R6
+Text Label 10350 4250 0 60 ~ 0
+R7
+Text Label 10350 4350 0 60 ~ 0
+R8
+Wire Wire Line
+ 10250 4500 10750 4500
+Wire Wire Line
+ 10250 4600 10750 4600
+Wire Wire Line
+ 10250 4700 10750 4700
+Wire Wire Line
+ 10250 4800 10750 4800
+Wire Wire Line
+ 10250 4900 10750 4900
+Wire Wire Line
+ 10250 5000 10750 5000
+Wire Wire Line
+ 10250 5100 10750 5100
+Wire Wire Line
+ 10250 5200 10750 5200
+Text Label 10350 4600 0 60 ~ 0
+FS1
+Text Label 10350 5000 0 60 ~ 0
+FS3
+Text Label 10350 5200 0 60 ~ 0
+FS2
+$Comp
+L GND #PWR01
+U 1 1 545A7377
+P 9250 5600
+F 0 "#PWR01" H 9250 5600 30 0001 C CNN
+F 1 "GND" H 9250 5530 30 0001 C CNN
+F 2 "" H 9250 5600 60 0000 C CNN
+F 3 "" H 9250 5600 60 0000 C CNN
+ 1 9250 5600
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 9250 5500 9250 5600
+Text Label 10350 4700 0 60 ~ 0
+CLOCK
+Text Label 10350 4800 0 60 ~ 0
+DATA
+NoConn ~ 10750 4700
+NoConn ~ 10750 4800
+Text Label 10350 3200 0 60 ~ 0
+KP
+Text Label 10350 3300 0 60 ~ 0
+PGM
+Text Label 10350 2500 0 60 ~ 0
+BUZZ
+NoConn ~ 8250 2300
+NoConn ~ 8250 2700
+$Comp
+L GND #PWR02
+U 1 1 545A7565
+P 4750 5700
+F 0 "#PWR02" H 4750 5700 30 0001 C CNN
+F 1 "GND" H 4750 5630 30 0001 C CNN
+F 2 "" H 4750 5700 60 0000 C CNN
+F 3 "" H 4750 5700 60 0000 C CNN
+ 1 4750 5700
+ 1 0 0 -1
+$EndComp
+Entry Wire Line
+ 6450 3650 6550 3750
+Entry Wire Line
+ 6450 3750 6550 3850
+Entry Wire Line
+ 6450 4150 6550 4250
+Entry Wire Line
+ 6450 4250 6550 4350
+Entry Wire Line
+ 6450 4050 6550 4150
+Entry Wire Line
+ 6450 4350 6550 4450
+NoConn ~ 3750 2850
+Wire Wire Line
+ 1200 2000 6450 2000
+NoConn ~ 3750 3050
+Wire Wire Line
+ 2750 3800 3750 3800
+Wire Wire Line
+ 2750 3900 3750 3900
+Wire Wire Line
+ 2750 3900 2750 4000
+Wire Bus Line
+ 6550 2100 6550 6050
+Wire Bus Line
+ 10850 1600 10850 6050
+Text Label 6050 4350 0 60 ~ 0
+DL1
+Text Label 6050 4250 0 60 ~ 0
+DR2
+Text Label 6050 4150 0 60 ~ 0
+DR1
+Text Label 6050 4050 0 60 ~ 0
+DL2
+Text Label 6050 2450 0 60 ~ 0
+R1
+Text Label 6050 2550 0 60 ~ 0
+R2
+Text Label 6050 2650 0 60 ~ 0
+R3
+Text Label 6050 2750 0 60 ~ 0
+R4
+Text Label 6050 2850 0 60 ~ 0
+R5
+Text Label 6050 2950 0 60 ~ 0
+R6
+Text Label 6050 3050 0 60 ~ 0
+R7
+Text Label 6050 3150 0 60 ~ 0
+R8
+Text Label 6050 5050 0 60 ~ 0
+A
+Text Label 6050 5150 0 60 ~ 0
+B
+Text Label 6050 5250 0 60 ~ 0
+C
+Text Label 6050 5350 0 60 ~ 0
+G
+Text Label 1300 3800 0 60 ~ 0
+D+
+Text Label 1300 4000 0 60 ~ 0
+D-
+NoConn ~ 10750 2200
+NoConn ~ 10750 2300
+NoConn ~ 10750 2400
+Text Label 10350 4500 0 60 ~ 0
+GND
+NoConn ~ 10750 4900
+NoConn ~ 10750 5100
+Text Label 6050 3450 0 60 ~ 0
+KP
+Text Label 6050 3350 0 60 ~ 0
+PGM
+$Comp
+L ATMEGA32U4-A U1
+U 1 1 5462E0B1
+P 4900 4000
+F 0 "U1" H 3950 5700 40 0000 C CNN
+F 1 "ATMEGA32U4-A" H 5600 2500 40 0000 C CNN
+F 2 "TQFP44" H 4900 4000 35 0000 C CIN
+F 3 "" H 6000 5100 60 0000 C CNN
+ 1 4900 4000
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 3750 4850 3750 5600
+Wire Wire Line
+ 4450 2200 5150 2200
+Connection ~ 4700 2200
+Connection ~ 4800 2200
+Connection ~ 5050 2200
+Connection ~ 4800 2000
+Wire Wire Line
+ 6000 2450 6450 2450
+Wire Wire Line
+ 6000 2550 6450 2550
+Wire Wire Line
+ 6000 2650 6450 2650
+Wire Wire Line
+ 6000 2750 6450 2750
+Wire Wire Line
+ 6000 2850 6450 2850
+Wire Wire Line
+ 6000 2950 6450 2950
+Wire Wire Line
+ 6000 3050 6450 3050
+Wire Wire Line
+ 6000 3150 6450 3150
+Wire Wire Line
+ 6000 5050 6450 5050
+Wire Wire Line
+ 6000 5150 6450 5150
+Wire Wire Line
+ 6000 5250 6450 5250
+Wire Wire Line
+ 6000 4050 6450 4050
+Wire Wire Line
+ 6000 4150 6450 4150
+Wire Wire Line
+ 6000 4250 6450 4250
+Wire Wire Line
+ 6000 4350 6450 4350
+Wire Wire Line
+ 6000 4550 6450 4550
+Entry Wire Line
+ 6450 3350 6550 3450
+Entry Wire Line
+ 6450 3450 6550 3550
+Entry Wire Line
+ 6450 5050 6550 5150
+Entry Wire Line
+ 6450 5150 6550 5250
+Entry Wire Line
+ 6450 5250 6550 5350
+Entry Wire Line
+ 6450 5350 6550 5450
+Entry Wire Line
+ 6450 4650 6550 4750
+Wire Wire Line
+ 6000 3350 6450 3350
+Wire Wire Line
+ 6000 3450 6450 3450
+Wire Wire Line
+ 1200 5600 6450 5600
+Connection ~ 4950 5600
+Connection ~ 4850 5600
+Wire Wire Line
+ 4750 5600 4750 5700
+Connection ~ 4750 5600
+Connection ~ 4500 5600
+Text Label 6050 4550 0 60 ~ 0
+HWB
+Wire Wire Line
+ 6000 5350 6450 5350
+Wire Wire Line
+ 6000 3650 6450 3650
+Wire Wire Line
+ 6000 3750 6450 3750
+Text Label 6050 3650 0 60 ~ 0
+SCL
+Text Label 6050 3750 0 60 ~ 0
+SDA
+Wire Wire Line
+ 6000 3850 6450 3850
+Wire Wire Line
+ 6000 3950 6450 3950
+Wire Wire Line
+ 6000 4650 6450 4650
+Text Label 6050 4650 0 60 ~ 0
+BUZZ
+NoConn ~ 10750 4600
+NoConn ~ 10750 5000
+NoConn ~ 10750 5200
+Entry Wire Line
+ 10750 3400 10850 3500
+Entry Wire Line
+ 10750 3500 10850 3600
+Entry Wire Line
+ 10750 4500 10850 4600
+Wire Wire Line
+ 2850 4050 3750 4050
+Text Label 2950 4050 0 60 ~ 0
+UCAP
+Wire Wire Line
+ 6000 4850 6450 4850
+Wire Wire Line
+ 6000 4950 6450 4950
+NoConn ~ 6450 4850
+NoConn ~ 6450 4950
+NoConn ~ 6450 4550
+$Comp
+L USB-MINI-B CON1
+U 1 1 546431C1
+P 2100 5050
+F 0 "CON1" H 1850 5500 60 0000 C CNN
+F 1 "USB-MINI-B" H 2050 4550 60 0000 C CNN
+F 2 "" H 2100 5050 60 0000 C CNN
+F 3 "" H 2100 5050 60 0000 C CNN
+ 1 2100 5050
+ 0 1 1 0
+$EndComp
+$Comp
+L VCC #PWR03
+U 1 1 54643698
+P 2400 4400
+F 0 "#PWR03" H 2400 4500 30 0001 C CNN
+F 1 "VCC" H 2400 4500 30 0000 C CNN
+F 2 "" H 2400 4400 60 0000 C CNN
+F 3 "" H 2400 4400 60 0000 C CNN
+ 1 2400 4400
+ 1 0 0 -1
+$EndComp
+Text Notes 2600 2750 0 60 ~ 0
+Teensy 2.0\n(not fully drawn)
+$Comp
+L CONN_7 B7K-PH-K-S1
+U 1 1 54643939
+P 1950 6900
+F 0 "B7K-PH-K-S1" V 1920 6900 60 0000 C CNN
+F 1 "CONN_7" V 2020 6900 60 0000 C CNN
+F 2 "" H 1950 6900 60 0000 C CNN
+F 3 "" H 1950 6900 60 0000 C CNN
+ 1 1950 6900
+ 1 0 0 -1
+$EndComp
+Connection ~ 3750 5600
+Connection ~ 2400 5600
+Connection ~ 2250 5600
+Connection ~ 1950 5600
+Wire Wire Line
+ 2400 4400 2400 4500
+Wire Wire Line
+ 2250 4000 2250 4500
+Wire Wire Line
+ 1200 3800 2250 3800
+Wire Wire Line
+ 2100 3800 2100 4500
+Wire Wire Line
+ 2850 4450 2850 5600
+Connection ~ 2850 5600
+Entry Wire Line
+ 1100 6800 1200 6900
+Entry Wire Line
+ 1100 6900 1200 7000
+Entry Wire Line
+ 1100 7000 1200 7100
+Entry Wire Line
+ 1100 6700 1200 6800
+Wire Wire Line
+ 1200 6600 1600 6600
+Wire Wire Line
+ 1200 6700 1600 6700
+Wire Wire Line
+ 1200 6800 1600 6800
+Wire Wire Line
+ 1200 6900 1600 6900
+Wire Wire Line
+ 1200 7000 1600 7000
+Wire Wire Line
+ 1200 7100 1600 7100
+Wire Wire Line
+ 1200 7200 1600 7200
+Text Label 1300 6600 0 60 ~ 0
+FS2
+Text Label 1300 6700 0 60 ~ 0
+FS1
+Text Label 1300 6800 0 60 ~ 0
+VCC
+Text Label 1300 6900 0 60 ~ 0
+D-
+Text Label 1300 7000 0 60 ~ 0
+D+
+Text Label 1300 7100 0 60 ~ 0
+GND
+Text Label 1300 7200 0 60 ~ 0
+FS3
+NoConn ~ 3750 2450
+Wire Wire Line
+ 3600 2000 3600 3650
+Wire Wire Line
+ 3600 3650 3750 3650
+NoConn ~ 1950 4500
+Wire Bus Line
+ 1100 1900 1100 7100
+NoConn ~ 1200 6600
+NoConn ~ 1200 6700
+NoConn ~ 1200 7200
+Connection ~ 2100 3800
+Wire Wire Line
+ 1200 4000 2250 4000
+Entry Wire Line
+ 1100 3700 1200 3800
+Entry Wire Line
+ 1100 3900 1200 4000
+Text Label 10350 1500 0 60 ~ 0
+VCC
+Entry Wire Line
+ 1100 1900 1200 2000
+Text Label 1250 2000 0 60 ~ 0
+VCC
+Entry Wire Line
+ 1100 5500 1200 5600
+Connection ~ 1800 5600
+Text Label 1300 5600 0 60 ~ 0
+GND
+Wire Wire Line
+ 9250 5500 10750 5500
+Entry Wire Line
+ 10750 5500 10850 5600
+Text Label 10350 5500 0 60 ~ 0
+GND
+Wire Wire Line
+ 9250 1500 10750 1500
+Entry Wire Line
+ 10750 1500 10850 1600
+Connection ~ 3600 2000
+Wire Wire Line
+ 4800 2000 4800 2200
+Entry Wire Line
+ 6450 2000 6550 2100
+Text Label 6050 2000 0 60 ~ 0
+VCC
+Connection ~ 5050 5600
+Entry Wire Line
+ 6450 5600 6550 5700
+Text Label 6050 5600 0 60 ~ 0
+GND
+NoConn ~ 6450 3850
+NoConn ~ 6450 3950
+Wire Wire Line
+ 1800 4500 1500 4500
+Wire Wire Line
+ 1500 4500 1500 5600
+Connection ~ 1500 5600
+Entry Wire Line
+ 10750 2500 10850 2600
+Entry Wire Line
+ 10750 2100 10850 2200
+Text Notes 1000 5300 1 60 ~ 0
+Sacrificial USB cable from header to Teensy
+Text Notes 7850 5950 0 60 ~ 0
+Ribbon cable between Teensy pins and socket
+Wire Bus Line
+ 10850 6050 6550 6050
+$EndSCHEMATC
diff --git a/keyboards/kinesis/alvicstep/docs/photos/P1050573.jpg b/keyboards/kinesis/alvicstep/docs/photos/P1050573.jpg
new file mode 100644
index 000000000..027ab9efb
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/docs/photos/P1050573.jpg
Binary files differ
diff --git a/keyboards/kinesis/alvicstep/docs/photos/P1050574.jpg b/keyboards/kinesis/alvicstep/docs/photos/P1050574.jpg
new file mode 100644
index 000000000..d49c492b8
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/docs/photos/P1050574.jpg
Binary files differ
diff --git a/keyboards/kinesis/alvicstep/docs/photos/P1050575.jpg b/keyboards/kinesis/alvicstep/docs/photos/P1050575.jpg
new file mode 100644
index 000000000..50cc9897c
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/docs/photos/P1050575.jpg
Binary files differ
diff --git a/keyboards/kinesis/alvicstep/docs/readme.txt b/keyboards/kinesis/alvicstep/docs/readme.txt
new file mode 100644
index 000000000..af33ac490
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/docs/readme.txt
@@ -0,0 +1,52 @@
+This directory of documentation was copied from https://github.com/wjanssens/tmk_keyboard/tree/master/keyboard/kinesis
+and is probably Copyright 2014 Warren Janssens <warren.janssens@gmail.com>
+and probably released under GPL v2, which may be recovered at <http://www.gnu.org/licenses/>.
+
+Row configuration
+PF0 A
+PF1 B
+PF2 C
+PF3 G 0 = U4, 1 = U5
+
+Column configuration
+ 4y0 4y1 4y2 4y3 4y4 4y5 4y6 4y7 5y0 5y1 5y2 5y3 5y4 5y5 5y6 5y7
+ r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16
+PB0 21 c1 f6 f8 f7 5 4 3 2 1 =+
+PB1 22 c2 f3 f5 f4 t r e w q TAB
+PB2 23 c3 ESC f2 f1 g f d s a CL
+PB3 24 c4 f9 f11 f10 b v c x z LS UP DN [{ ]}
+PB4 25 c5 f12 SL PS RT LT §± `~ 6 7 8 9 0 -_
+PB5 26 c6 PB PGM KPD y u i o p \
+PB6 27 c7 LC DL BS RC EN SP h j k l ;: '"
+PB7 28 c8 RA PU PD n m ,< .> /? RS
+ */
+
+
+40 pin connector
+
+ DL2 1 40 VCC
+ DR1 2 39 A
+ DR2 3 38 B
+ DL1 4 37 C
+ KPD 5 36 G
+ PGM 6 35
+ SCL 7 34
+ SDA 8 33
+ RST 9 32 BUZZ
+ WP 10 31 EA
+ FS1 11 30 ALE
+ CLOCK 12 29 PSEN
+ DATA 13 28 r8
+ 14 27 r7
+ FS3 15 26 r6
+ 16 25 r5
+ FS2 17 24 r4
+ XTAL1 18 23 r3
+ XTAL2 19 22 r2
+ GND 20 21 r1
+
+
+references:
+https://github.com/chrisandreae/keyboard-firmware
+
+
diff --git a/keyboards/kinesis/alvicstep/docs/schematic.png b/keyboards/kinesis/alvicstep/docs/schematic.png
new file mode 100644
index 000000000..fa9405a1f
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/docs/schematic.png
Binary files differ
diff --git a/keyboards/kinesis/alvicstep/matrix.c b/keyboards/kinesis/alvicstep/matrix.c
new file mode 100644
index 000000000..cb0d5ad7d
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/matrix.c
@@ -0,0 +1,228 @@
+/*
+Copyright 2014 Warren Janssens <warren.janssens@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/>.
+*/
+
+/*
+ * scan matrix
+ */
+#include <stdint.h>
+#include <stdbool.h>
+#include <avr/io.h>
+#include <util/delay.h>
+#include "action_layer.h"
+#include "print.h"
+#include "debug.h"
+#include "util.h"
+#include "matrix.h"
+#include "led.h"
+#include "config.h"
+
+#ifndef DEBOUNCE
+# define DEBOUNCE 5
+#endif
+static uint8_t debouncing = DEBOUNCE;
+
+/* matrix state(1:on, 0:off) */
+static uint8_t matrix[MATRIX_ROWS];
+static uint8_t matrix_debouncing[MATRIX_ROWS];
+
+static matrix_row_t read_row(uint8_t row);
+static void unselect_rows(void);
+static void select_rows(uint8_t row);
+
+__attribute__ ((weak))
+void matrix_init_quantum(void) {
+ matrix_init_kb();
+}
+
+__attribute__ ((weak))
+void matrix_scan_quantum(void) {
+ matrix_scan_kb();
+}
+
+__attribute__ ((weak))
+void matrix_init_kb(void) {
+ matrix_init_user();
+}
+
+__attribute__ ((weak))
+void matrix_scan_kb(void) {
+ matrix_scan_user();
+}
+
+__attribute__ ((weak))
+void matrix_init_user(void) {
+}
+
+__attribute__ ((weak))
+void matrix_scan_user(void) {
+}
+
+inline
+uint8_t matrix_rows(void)
+{
+ return MATRIX_ROWS;
+}
+
+
+inline
+uint8_t matrix_cols(void)
+{
+ return MATRIX_COLS;
+}
+
+void matrix_init(void)
+{
+ //debug_enable = true;
+
+ //dprint("matrix_init"); dprintln();
+ // output high (leds)
+ DDRD = 0xFF;
+ PORTD = 0xFF;
+
+ // output low (multiplexers)
+ DDRF = 0xFF;
+ PORTF = 0x00;
+
+ // input with pullup (matrix)
+ DDRB = 0x00;
+ PORTB = 0xFF;
+
+ // input with pullup (program and keypad buttons)
+ DDRC = 0x00;
+ PORTC = 0xFF;
+
+ // initialize row and col
+ unselect_rows();
+
+ // initialize matrix state: all keys off
+ for (uint8_t i=0; i < MATRIX_ROWS; i++) {
+ matrix[i] = 0;
+ matrix_debouncing[i] = 0;
+ }
+
+}
+
+uint8_t matrix_scan(void)
+{
+
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ select_rows(i);
+ uint8_t row = read_row(i);
+ if (matrix_debouncing[i] != row) {
+ matrix_debouncing[i] = row;
+ if (debouncing) {
+ debug("bounce!: "); debug_hex(debouncing); debug("\n");
+ }
+ debouncing = DEBOUNCE;
+ }
+ unselect_rows();
+ }
+
+ if (debouncing) {
+ if (--debouncing) {
+ _delay_ms(1);
+ } else {
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ matrix[i] = matrix_debouncing[i];
+ }
+ }
+ }
+ matrix_scan_quantum();
+ return 1;
+}
+
+bool matrix_is_modified(void)
+{
+ if (debouncing) return false;
+ return true;
+}
+
+inline
+bool matrix_is_on(uint8_t row, uint8_t col)
+{
+ return (matrix[row] & ((matrix_row_t)1<<col));
+}
+
+inline
+matrix_row_t matrix_get_row(uint8_t row)
+{
+ return matrix[row];
+}
+
+void matrix_print(void)
+{
+ print("\nr/c 01234567\n");
+ for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
+ phex(row); print(": ");
+ pbin_reverse(matrix_get_row(row));
+ print("\n");
+ }
+}
+
+uint8_t matrix_key_count(void)
+{
+ uint8_t count = 0;
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ count += bitpop16(matrix[i]);
+ }
+ return count;
+}
+
+static matrix_row_t read_row(uint8_t row)
+{
+ _delay_us(30); // without this wait read unstable value.
+
+ //keypad and program buttons
+ if (row == 12)
+ {
+ return ~(PINC | 0b00111111);
+ }
+ return ~PINB;
+}
+
+static void unselect_rows(void)
+{
+ // set A,B,C,G to 0 (F4 - F7)
+ PORTF &= 0x0F;
+}
+
+static void select_rows(uint8_t row)
+{
+ // set A,B,C,G to row value
+ PORTF |= row << 4;
+}
+
+
+/* Row pin configuration
+PF0 A
+PF1 B
+PF2 C
+PF3 G 0 = U4, 1 = U5
+
+ 4y0 4y1 4y2 4y3 4y4 4y5 4y6 4y7 5y0 5y1 5y2 5y3 5y4 5y5 5y6 5y7
+ r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16
+PB0 21 c1 f6 f8 f7 5 4 3 2 1 =+
+PB1 22 c2 f3 f5 f4 t r e w q TAB
+PB2 23 c3 ESC f2 f1 g f d s a CL
+PB3 24 c4 f9 f11 f10 b v c x z LS UP DN [{ ]}
+PB4 25 c5 f12 SL PS RT LT §± `~ 6 7 8 9 0 -_
+PB5 26 c6 PB PGM KPD y u i o p \
+PB6 27 c7 LC DL BS RC EN SP h j k l ;: '"
+PB7 28 c8 RA PU PD n m ,< .> /? RS
+ */
+
+
diff --git a/keyboards/kinesis/alvicstep/readme.md b/keyboards/kinesis/alvicstep/readme.md
new file mode 100644
index 000000000..974e42e50
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/readme.md
@@ -0,0 +1,46 @@
+kinesis-advantage keyboard firmware
+======================
+
+This directory is called alvicstep because https://github.com/alvicstep did the heavy work and took the photos in the doc directory.
+alvicstep did NOT do anything related to the QMK implementation, so don't bug him/her.
+
+There are other ways of replacing the CPU in the kinesis, this one uses jumper wires from the Teensy to the original DIP socket
+
+
+## Kinesis specific information
+This is a port of https://github.com/alvicstep/tmk_keyboard,
+which is a fork of https://github.com/wjanssens/tmk_keyboard,
+which is based on work from https://github.com/chrisandreae/keyboard-firmware
+
+If you replace the kinesis CPU as described in the doc folder, then this code should allow you to use QMK.
+I've tested with a Teensy 2++, remember to change the CPU if you use a 32u4 instead.
+
+Not yet implemented:
+- Kinesis EEProm reading or writing
+- Audio - this should be simple if we remove hardcoded pins from audio.h and switch to E7
+
+
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/kinesis-advantage folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+
+To build with the default keymap, simply run `make`.
+
+### Other Keymaps
+
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with `keymap` option like:
+
+$ make keymap=[default|jack|<name>]
+
+Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/`
diff --git a/keyboards/kinesis/alvicstep/rules.mk b/keyboards/kinesis/alvicstep/rules.mk
new file mode 100644
index 000000000..fb421a34f
--- /dev/null
+++ b/keyboards/kinesis/alvicstep/rules.mk
@@ -0,0 +1,10 @@
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif
+
+# just silently stop, since we need to upload with teensy uploader
+upload: build
+
+
+
+
diff --git a/keyboards/kinesis/config.h b/keyboards/kinesis/config.h
new file mode 100644
index 000000000..7cb0532c6
--- /dev/null
+++ b/keyboards/kinesis/config.h
@@ -0,0 +1,147 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 MANUFACTURER You
+#define PRODUCT kinesis-advantage
+#define DESCRIPTION A custom keyboard
+
+// Mouse
+#define MOUSEKEY_DELAY 60
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_MAX_SPEED 4
+#define MOUSEKEY_TIME_TO_MAX 10
+#define MOUSEKEY_WHEEL_MAX_SPEED 1
+#define MOUSEKEY_WHEEL_DELTA 1
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 1
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * 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
+
+
+
+#ifdef SUBPROJECT_alvicstep
+ #include "alvicstep/config.h"
+#endif
+#ifdef SUBPROJECT_stapelberg
+ #include "stapelberg/config.h"
+#endif
+
+#endif
diff --git a/keyboards/kinesis/keymaps/default/Makefile b/keyboards/kinesis/keymaps/default/Makefile
new file mode 100644
index 000000000..9d3df5964
--- /dev/null
+++ b/keyboards/kinesis/keymaps/default/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/kinesis/keymaps/default/config.h b/keyboards/kinesis/keymaps/default/config.h
new file mode 100644
index 000000000..8893d122e
--- /dev/null
+++ b/keyboards/kinesis/keymaps/default/config.h
@@ -0,0 +1,8 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// place overrides here
+
+#endif
diff --git a/keyboards/kinesis/keymaps/default/keymap.c b/keyboards/kinesis/keymaps/default/keymap.c
new file mode 100644
index 000000000..01a66b5e5
--- /dev/null
+++ b/keyboards/kinesis/keymaps/default/keymap.c
@@ -0,0 +1,90 @@
+#include "kinesis.h"
+
+#define QWERTY 0 // Base qwerty
+
+
+/****************************************************************************************************
+*
+* Keymap: Default Layer in Qwerty
+*
+* ,-------------------------------------------------------------------------------------------------------------------.
+* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | PSCR | SLCK | PAUS | FN0 | BOOT |
+* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
+* | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ |
+* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
+* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | Caps | A | S | D | F | G | | H | J | K | L | ;: | '" |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? | Shift |
+* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
+* | `~ | INS | Left | Right| | Up | Down | [{ | ]} |
+* `---------------------------' `---------------------------'
+* ,-------------. ,-------------.
+* | Ctrl | Alt | | Gui | Ctrl |
+* ,------|------|------| |------+------+------.
+* | | | Home | | PgUp | | |
+* | BkSp | Del |------| |------|Return| Space|
+* | | | End | | PgDn | | |
+* `--------------------' `--------------------'
+*/
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[QWERTY] = KEYMAP(
+ KC_ESC, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8,
+ KC_EQL, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,
+ KC_TAB, KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,
+ KC_CAPS,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,
+ KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,
+ KC_GRV ,KC_INS ,KC_LEFT,KC_RGHT,
+ KC_LCTL,KC_LALT,
+ KC_HOME,
+ KC_BSPC,KC_DEL ,KC_END ,
+ KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_PSCR ,KC_SLCK ,KC_PAUS, KC_FN0, KC_1,
+ KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS,
+ KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS,
+ KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT,
+ KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT,
+ KC_UP ,KC_DOWN,KC_LBRC,KC_RBRC,
+ KC_RGUI,KC_RCTL,
+ KC_PGUP,
+ KC_PGDN,KC_ENTER ,KC_SPC
+ )
+};
+
+
+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;
+};
+
+
+void matrix_init_user(void) {
+
+}
+
+void matrix_scan_user(void) {
+
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+
+}
diff --git a/keyboards/kinesis/keymaps/default/readme.md b/keyboards/kinesis/keymaps/default/readme.md
new file mode 100644
index 000000000..da033be1e
--- /dev/null
+++ b/keyboards/kinesis/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for kinesis-advantage
diff --git a/keyboards/kinesis/keymaps/dvorak/Makefile b/keyboards/kinesis/keymaps/dvorak/Makefile
new file mode 100644
index 000000000..9d3df5964
--- /dev/null
+++ b/keyboards/kinesis/keymaps/dvorak/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/kinesis/keymaps/dvorak/config.h b/keyboards/kinesis/keymaps/dvorak/config.h
new file mode 100644
index 000000000..8893d122e
--- /dev/null
+++ b/keyboards/kinesis/keymaps/dvorak/config.h
@@ -0,0 +1,8 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// place overrides here
+
+#endif
diff --git a/keyboards/kinesis/keymaps/dvorak/keymap.c b/keyboards/kinesis/keymaps/dvorak/keymap.c
new file mode 100644
index 000000000..9008bc808
--- /dev/null
+++ b/keyboards/kinesis/keymaps/dvorak/keymap.c
@@ -0,0 +1,93 @@
+#include "kinesis.h"
+
+#define _DVORAK 0 // Base Dvorak layer
+#define _MEDIA 1 // Media layer
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_DVORAK] = KEYMAP(
+ // left hand
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y,
+ KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X,
+ KC_ESC, KC_LBRC, KC_DOWN, KC_UP,
+ // left thumb
+ KC_LGUI, KC_LCTL,
+ KC_LALT,
+ KC_BSPC, KC_DEL, TG(_MEDIA),
+ // right hand
+ KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_FN0, KC_1,
+ KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
+ KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
+ KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
+ KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
+ KC_LEFT, KC_RIGHT, KC_RBRC, KC_BSLS,
+ // right thumb
+ KC_RCTL, KC_RGUI,
+ KC_RALT,
+ TG(_MEDIA), KC_ENT, KC_SPC
+ ),
+
+[_MEDIA] = KEYMAP(
+ // left hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_BTN4, KC_BTN3, KC_BTN2, KC_BTN1, KC_NO,
+ KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO,
+ KC_NO, KC_NO, KC_MS_D, KC_MS_U,
+ // left thumb
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_NO, KC_NO, KC_TRNS,
+ // right hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_POWER,
+ KC_NO, KC_VOLU, KC_MS_U, KC_VOLD, KC_NO, KC_NO,
+ KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO,
+ KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_NO,
+ KC_MS_L, KC_MS_R, KC_NO, KC_NO,
+ // right thumb
+ KC_NO, KC_NO,
+ KC_NO,
+ KC_TRNS, KC_ENT, KC_NO
+)
+};
+
+
+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;
+};
+
+
+void matrix_init_user(void) {
+
+}
+
+void matrix_scan_user(void) {
+
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+
+}
diff --git a/keyboards/kinesis/keymaps/milestogo/Makefile b/keyboards/kinesis/keymaps/milestogo/Makefile
new file mode 100644
index 000000000..9d3df5964
--- /dev/null
+++ b/keyboards/kinesis/keymaps/milestogo/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/kinesis/keymaps/milestogo/config.h b/keyboards/kinesis/keymaps/milestogo/config.h
new file mode 100644
index 000000000..8893d122e
--- /dev/null
+++ b/keyboards/kinesis/keymaps/milestogo/config.h
@@ -0,0 +1,8 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// place overrides here
+
+#endif
diff --git a/keyboards/kinesis/keymaps/milestogo/keymap.c b/keyboards/kinesis/keymaps/milestogo/keymap.c
new file mode 100644
index 000000000..bf1f9c591
--- /dev/null
+++ b/keyboards/kinesis/keymaps/milestogo/keymap.c
@@ -0,0 +1,384 @@
+#include "kinesis.h"
+#include "action_layer.h"
+#include "mousekey.h"
+
+#define _QWERTY 0 // Base qerty
+#define _SYMB 1// Symbol layer
+#define _MOUSE 2//
+#define _TRANS 3//
+#define _SYMB2 4// old symbol level, more ergodox like
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+/* Macros */
+enum {
+ NONE = 0,
+ // Diagonal mouse movement
+ A_MUL,
+ A_MUR,
+ A_MDL,
+ A_MDR,
+};
+
+
+// Train out of using uncomfortable esc and GUI keys.
+/****************************************************************************************************
+*
+* Keymap: Default Layer in Qwerty
+*
+* ,-------------------------------------------------------------------------------------------------------------------.
+* | no | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | FN0 | FN1 | FN2 | | bOOT |
+* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
+* | `~ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ |
+* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
+* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* |MouseFN0| A | S | D | F | G | | H | J | K | L | ;: | '" |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | Shift | Z | X | C | V | B | | N | M | ,< | .> | /? | Shift |
+* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
+* | ~` | ESC |GUI/L |L1/RT | | L1/UP|GUI/DN| [{ | ]} |
+* `---------------------------' `---------------------------'
+* ,-------------. ,-------------.
+* | CTRL | ALT | | ALT | GUI |
+* ,------|------|------| |------+------+------.
+* | | | Del | | PgUp | | |
+* | BkSp | BkSp |------| |------|Return| Space|
+* | | | FN0 | | PgDn | | |
+* `--------------------' `--------------------'
+*/
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_QWERTY] = KEYMAP(
+ XXXXXXX, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8,
+ KC_GRAVE, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,
+ KC_TAB, KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,
+ KC_FN0 ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,
+ KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,
+ KC_GRAVE, KC_ESC, KC_FN4, KC_FN5,
+ KC_LCTL,KC_LALT,
+ KC_DEL,
+ KC_BSPC, KC_DEL ,KC_FN0 ,
+ KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_FN0 ,KC_FN1 ,KC_FN2, KC_NO, RESET,
+ KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS,
+ KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS,
+ KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT,
+ KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT,
+ KC_FN6, KC_FN7, KC_LBRC ,KC_RBRC,
+ KC_RALT,KC_RGUI,
+ KC_PGUP,
+ KC_PGDN,KC_ENTER ,KC_SPC
+ ),
+
+
+/* _SYMB level, more planck like. Much work to make sequences into multi-finger rolls. eg ([1,0]), !=0
+* Also sorted by frequency / strength of finger.
+*
+* ,-------------------------------------------------------------------------------------------------------------------.
+* | | | | | | | | | | | | | | | | |
+* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
+* | | | | | | | | | | | | | |
+* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
+* | | ^ | { | } | @ | % | | & | [ | ( | ) | _ | \ |
+* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
+* | | ! | # | 0 | = | ~ | | * | + | 1 | - | ] | ` |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | | 6 | 7 | 8 | 9 | pipe | | $ | 2 | 3 | 4 | 5 | |
+* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
+* | | : |GUI/L |L1/RT | | L1/UP|GUI/DN| \ | |
+* `---------------------------' `---------------------------'
+* ,-------------. ,-------------.
+* | CTRL | | | ALT | GUI |
+* ,------|------|------| |------+------+------.
+* | | | | | | | |
+* | Cut | Paste|------| |------| | |
+* | | |Reset | | | | |
+* `--------------------' `--------------------'
+*/
+
+
+
+[_SYMB] = KEYMAP(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, KC_CIRC, KC_LCBR, KC_RCBR, KC_AT, KC_PERC,
+ _______, KC_EXLM, KC_HASH, KC_0, KC_EQL, KC_TILD,
+ _______, KC_6, KC_7, KC_8, KC_9, KC_PIPE,
+ _______, KC_COLON, KC_FN4, KC_FN5,
+ _______, _______,
+ _______,
+ _______, _______, RESET,
+ _______, _______, _______, _______, _______, _______, _______, KC_FN0, KC_2,
+ _______, _______, _______, _______, _______, _______,
+ KC_AMPR, KC_LBRC, KC_LPRN, KC_RPRN, KC_UNDS, _______,
+ KC_ASTR, KC_PLUS, KC_1, KC_MINS, KC_RBRC, KC_GRV,
+ KC_DLR, KC_2, KC_3, KC_4, KC_5, XXXXXXX,
+ KC_FN6, KC_FN7, KC_BSLS, XXXXXXX,
+ _______, _______,
+ _______,
+ _______, _______, _______
+ ),
+
+
+/* _SYMB2ol level, more ergodox like
+*
+* ,-------------------------------------------------------------------------------------------------------------------.
+* | | | | | | | | | | | | | | | | |
+* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
+* | | | * | # | | | | | | | | | |
+* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
+* | | / | < | > | | | | | | + | * | | |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | | | { | } | | | | | | = | - | | |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | | = | ( | ) | | | | | | | | | | |
+* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
+* | | |GUI/L |L1/RT | | L1/UP|GUI/DN| { | } |
+* `---------------------------' `---------------------------'
+* ,-------------. ,-------------.
+* | CTRL | | | ALT | GUI |
+* ,------|------|------| |------+------+------.
+* | | | | | | | |
+* | BkSp | Del |------| |------|Mouse1|Mouse2|
+* | | |Reset | | |LClick|Rclick|
+* `--------------------' `--------------------'
+*/
+
+
+
+[_SYMB2] = KEYMAP(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_ASTR, KC_HASH, _______, _______,
+ _______, KC_SLSH, RSFT(KC_COMM), RSFT(KC_DOT), _______, _______,
+ _______, _______, RSFT(KC_LBRC), RSFT(KC_RBRC), _______, _______,
+ _______, KC_EQL, RSFT(KC_9), RSFT(KC_0), _______, _______,
+ _______, _______, KC_FN4, KC_FN5,
+ _______, _______,
+ _______,
+ _______, _______, RESET,
+ _______, _______, _______, _______, _______, _______, _______, KC_FN0, KC_2,
+ _______, _______, _______, KC_ASTR, _______, _______,
+ _______, _______, KC_PLUS, KC_MINS, _______, _______,
+ _______, _______, KC_EQL, KC_PIPE, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ KC_FN6, KC_FN7, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______
+ ),
+/* Keymap: Movement and function layer
+*
+* ,-------------------------------------------------------------------------------------------------------------------.
+* | Caps | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | FN0 | FN1 | FN2 | Tada | bOOT |
+* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
+* | =+ | ! | @ | # | $ | % | | ^ | & | * | ( | ) |MS Fast |
+* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
+* | Tab | | | | |PgUp | | MwU |MS_UL | MS_U |MS_UR | | Ms Norm|
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* |MouseFN1|GUI_V |GUI X |GUI C |GUI_V | | | | MS_L |Mouse1| MS_R | |MS Slow |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | | | | | |PgDown| | MWD | MDown|MS Dwn|MS_DR | ? | |
+* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
+* | `~ | ESC | | | | | | { | } |
+* `---------------------------' `---------------------------'
+* ,-------------. ,-------------.
+* | CTRL | GUI | | ALT | GUI |
+* ,------|------|------| |------+------+------.
+* | | | Home | | PgUp | | |
+* | BkSp | Del |------| |------|Mouse1|Mouse2|
+* | | | End | | PgDn |LClick|Rclick|
+* `--------------------' `--------------------'
+*/
+
+
+[_MOUSE] = KEYMAP(
+ KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_EXLM ,KC_AT, KC_HASH, KC_DLR ,KC_PERC ,
+ _______, KC_NO, KC_NO, KC_UP, KC_NO, KC_PGUP,
+ KC_FN1, LGUI(KC_Z),LGUI(KC_X),LGUI(KC_C),LGUI(KC_V), KC_NO,
+ _______, KC_NO, KC_NO, KC_UP, KC_NO, KC_PGDN,
+ _______, _______, KC_NO, KC_NO,
+ _______, _______,
+ _______,
+ _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_FN0,RESET,
+ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_ACL2,
+ KC_WH_U, M(A_MUL), KC_MS_U, M(A_MUR), KC_NO, KC_ACL1,
+ KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_ACL0,
+ KC_WH_D, M(A_MDL), KC_MS_D, M(A_MDR), RSFT(KC_LBRC), RSFT(KC_RBRC),
+ KC_LCBR, KC_RCBR, KC_NO, KC_NO,
+ _______, _______,
+ _______,
+ _______, KC_BTN1, KC_BTN2
+ ),
+
+
+
+/* EMPTY
+*
+* ,-------------------------------------------------------------------------------------------------------------------.
+* | | | | | | | | | | | | | | | | bOOT |
+* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
+* | | | | | | | | | | | | | |
+* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
+* | | | | | | | | | | | | | |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | | | | | | | | | | | | | |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | | | | | | | | | | | | | |
+* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
+* | | | | | | | | | |
+* `---------------------------' `---------------------------'
+* ,-------------. ,-------------.
+* | Ctrl | Alt | | Gui | Ctrl |
+* ,------|------|------| |------+------+------.
+* | | | Home | | PgUp | | |
+* | BkSp | Del |------| |------|Mouse1|Mouse2|
+* | | | End | | PgDn |LClick|Rclick|
+* `--------------------' `--------------------'
+*/
+
+
+
+[_TRANS] = KEYMAP(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_FN0, KC_2,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______
+ ),
+
+
+};
+
+
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_TAP_TOGGLE(_MOUSE) ,
+ [1] = ACTION_LAYER_TOGGLE(_MOUSE) ,
+ [2] = ACTION_LAYER_TAP_TOGGLE(_SYMB) ,
+ [5]= ACTION_LAYER_TAP_KEY(_SYMB,KC_RIGHT),
+ [4]= ACTION_MODS_TAP_KEY(MOD_LGUI,KC_LEFT),
+ [6]= ACTION_LAYER_TAP_KEY(_SYMB,KC_UP),
+ [7]= ACTION_MODS_TAP_KEY(MOD_LGUI,KC_DOWN),
+
+
+};
+
+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;
+
+ // from algernon's ErgoDox EZ layout,
+ case A_MUL:
+ if (record->event.pressed) {
+ mousekey_on(KC_MS_UP);
+ mousekey_on(KC_MS_LEFT);
+ } else {
+ mousekey_off(KC_MS_UP);
+ mousekey_off(KC_MS_LEFT);
+ }
+ mousekey_send();
+ break;
+
+ case A_MUR:
+ if (record->event.pressed) {
+ mousekey_on(KC_MS_UP);
+ mousekey_on(KC_MS_RIGHT);
+ } else {
+ mousekey_off(KC_MS_UP);
+ mousekey_off(KC_MS_RIGHT);
+ }
+ mousekey_send();
+ break;
+
+ case A_MDL:
+ if (record->event.pressed) {
+ mousekey_on(KC_MS_DOWN);
+ mousekey_on(KC_MS_LEFT);
+ } else {
+ mousekey_off(KC_MS_DOWN);
+ mousekey_off(KC_MS_LEFT);
+ }
+ mousekey_send();
+ break;
+
+ case A_MDR:
+ if (record->event.pressed) {
+ mousekey_on(KC_MS_DOWN);
+ mousekey_on(KC_MS_RIGHT);
+ } else {
+ mousekey_off(KC_MS_DOWN);
+ mousekey_off(KC_MS_RIGHT);
+ }
+ mousekey_send();
+ break;
+ }
+ return MACRO_NONE;
+};
+
+
+void matrix_init_user(void) {
+
+
+}
+
+void matrix_scan_user(void) {
+
+#ifdef ALVICSTEP_CONFIG_H
+ int8_t layer = biton32(layer_state);
+
+ switch (layer) {
+ case 1:
+ if (!(host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK))) {
+ all_led_off();
+ caps_lock_led_on();
+ }
+ break;
+
+ case 2:
+ if (!(host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK))) {
+ all_led_off();
+ scroll_lock_led_on();
+ }
+ case 0:
+ all_led_off();
+ num_lock_led_on();
+ break;
+ default:
+ break;
+ }
+#endif
+
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+
+}
diff --git a/keyboards/kinesis/keymaps/milestogo/readme.md b/keyboards/kinesis/keymaps/milestogo/readme.md
new file mode 100644
index 000000000..76356a687
--- /dev/null
+++ b/keyboards/kinesis/keymaps/milestogo/readme.md
@@ -0,0 +1,2 @@
+# a programmer friendly keymap for the kinesis-advantage
+# not really baked yet.
diff --git a/keyboards/kinesis/kinesis.c b/keyboards/kinesis/kinesis.c
new file mode 100644
index 000000000..7a6a1be54
--- /dev/null
+++ b/keyboards/kinesis/kinesis.c
@@ -0,0 +1 @@
+#include "kinesis.h"
diff --git a/keyboards/kinesis/kinesis.h b/keyboards/kinesis/kinesis.h
new file mode 100644
index 000000000..66713731f
--- /dev/null
+++ b/keyboards/kinesis/kinesis.h
@@ -0,0 +1,23 @@
+#ifndef KINESIS_H
+#define KINESIS_H
+
+#ifdef SUBPROJECT_alvicstep
+ #include "alvicstep.h"
+#endif
+#ifdef SUBPROJECT_stapelberg
+ #include "stapelberg.h"
+#endif
+
+#include "quantum.h"
+
+
+void all_led_off(void);
+void all_led_on(void);
+void num_lock_led_on(void);
+void caps_lock_led_on(void);
+void scroll_lock_led_on(void);
+void keypad_led_on(void);
+
+
+
+#endif
diff --git a/keyboards/kinesis/readme.md b/keyboards/kinesis/readme.md
new file mode 100644
index 000000000..2813ee273
--- /dev/null
+++ b/keyboards/kinesis/readme.md
@@ -0,0 +1,12 @@
+# Firmware for the Kinesis advantage keyboard
+
+There are at least two different ways to replace the controller in this keyboard.
+
+The Stapelberg folder contains the docs and configuration for using the custom controller created by Michael Stapelberg.
+
+The alvicstep folder contains docs and configuration for directly wiring a Teensy2++ to the existing controller board. This follows the pinouts described in https://github.com/alvicstep/tmk_keyboard, which is where the name comes from.
+
+## Keymaps
+Both hardware solutions should work with the same keymaps
+
+
diff --git a/keyboards/kinesis/rules.mk b/keyboards/kinesis/rules.mk
new file mode 100644
index 000000000..956a64bdd
--- /dev/null
+++ b/keyboards/kinesis/rules.mk
@@ -0,0 +1,73 @@
+
+## Project specific files
+
+SRC= matrix.c
+
+# MCU name
+MCU = at90usb1286
+#MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 2048
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=2048
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= no
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= no # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output should be port E6, current quantum library hardcodes C6, which we use for programming
+CUSTOM_MATRIX=yes # need to do our own thing with the matrix
diff --git a/keyboards/kinesis/stapelberg/Makefile b/keyboards/kinesis/stapelberg/Makefile
new file mode 100644
index 000000000..bd09e5885
--- /dev/null
+++ b/keyboards/kinesis/stapelberg/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../../Makefile
+endif
diff --git a/keyboards/kinesis/stapelberg/config.h b/keyboards/kinesis/stapelberg/config.h
new file mode 100644
index 000000000..0677e0ade
--- /dev/null
+++ b/keyboards/kinesis/stapelberg/config.h
@@ -0,0 +1,50 @@
+#ifndef STAPELBERG_CONFIG_H
+#define STAPELBERG_CONFIG_H
+
+#include "../config.h"
+
+/* USB Device descriptor parameter */
+#define PRODUCT_ID 0x6060
+#define DEVICE_VER 0x0002
+
+/* key matrix size */
+#define MATRIX_ROWS 15
+#define MATRIX_COLS 7
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { D0, D1, D2, D3, D4, D5, D6, D7, C0, C1, C2, C3, C4, C5, C6 }
+#define MATRIX_COL_PINS { B0, B1, B2, B3, B4, B5, B6 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* don't know if this should be defined at the board or top level. Assuming board
+#define MOUSEKEY_DELAY 100
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_MAX_SPEED 3
+#define MOUSEKEY_TIME_TO_MAX 10
+*/
+
+#define IGNORE_MOD_TAP_INTERRUPT
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+
+#endif
diff --git a/keyboards/kinesis/stapelberg/images/controller_board.jpg b/keyboards/kinesis/stapelberg/images/controller_board.jpg
new file mode 100644
index 000000000..b18f76f7e
--- /dev/null
+++ b/keyboards/kinesis/stapelberg/images/controller_board.jpg
Binary files differ
diff --git a/keyboards/kinesis/stapelberg/images/exterior_reset.jpg b/keyboards/kinesis/stapelberg/images/exterior_reset.jpg
new file mode 100644
index 000000000..6edda8130
--- /dev/null
+++ b/keyboards/kinesis/stapelberg/images/exterior_reset.jpg
Binary files differ
diff --git a/keyboards/kinesis/stapelberg/images/teensy_detail.jpg b/keyboards/kinesis/stapelberg/images/teensy_detail.jpg
new file mode 100644
index 000000000..12e6c1c8a
--- /dev/null
+++ b/keyboards/kinesis/stapelberg/images/teensy_detail.jpg
Binary files differ
diff --git a/keyboards/kinesis/stapelberg/readme.md b/keyboards/kinesis/stapelberg/readme.md
new file mode 100644
index 000000000..b04a0bd49
--- /dev/null
+++ b/keyboards/kinesis/stapelberg/readme.md
@@ -0,0 +1,55 @@
+# kinesis_stapelberg keyboard firmware
+
+This folder contains the firmware customization required to run QMK on the custom controller for the Kinesis Advantage created by Michael Stapelberg.
+It differs from the `alvicstep keyboard in that the existing QMK Kinesis Advantage project uses the existing controller board provided by Kinesis.
+
+The controller board hardware is described
+[here](http://michael.stapelberg.de/Artikel/kinesis_custom_controller)
+
+Mapping the pin assignments was done using the corresponding matrix description provided at this
+[link](https://github.com/stapelberg/kinesis-firmware/blob/master/kb_kinesis/config.kspec)
+
+This code makes no attempt to drive the four LEDs provided on the controller board.
+
+
+## Building the Hardware
+
+If you want to perform this customization, these parts may be helpful.
+
+| Function | Quantity | Vendor | Part Number |
+| ------------------------------------------------------ | -------- | ------- | ------------ |
+| 13 pin connector for function keys and finger keywells | 4 | Digi-Key | WM14526-ND |
+| 10 pin headers for thumb clusters | 4 | Digi-Key | 609-3250-ND |
+| 8 pin cable for thumb clusters | 2 | Digi-Key | SAM8928-ND |
+| Teensy++ 2.0 | 1 | Digi-Key | 1528-1056-ND |
+| 2 pin right angle header for reset | 1 | Digi-Key | 3M9467-ND |
+| Reset cables | 2 | Sparkfun | PRT-09140 |
+
+The board and connections are shown here
+![](images/controller_board.jpg)
+
+The Teensy mounting detail can be seen here.
+I used a socket for prototyping.
+![](images/teensy_detail.jpg)
+
+
+Since the proper mounting of the Teensy board places the reset button in a tight space, I added a 2-pin header to the reset and ground pins on the edge of the board.
+Shorting these two pins together will reset the board.
+I also put female to male header jumper cables on these so they could be accessed outside the enclosure.
+The exterior cables can be seen here.
+![](images/exterior_reset.jpg)
+
+
+## Keymaps
+
+### Default
+
+To build with the default keymap, run `make default` while in the
+`kinesis_stapelberg` working directory.
+
+### Dvorak
+
+This keymap contains a dvorak implementation as well as media and symbol layers.
+
+Run `make dvorak` while in the `kinesis_stapelberg` working directory.
+
diff --git a/keyboards/kinesis/stapelberg/rules.mk b/keyboards/kinesis/stapelberg/rules.mk
new file mode 100644
index 000000000..fb421a34f
--- /dev/null
+++ b/keyboards/kinesis/stapelberg/rules.mk
@@ -0,0 +1,10 @@
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif
+
+# just silently stop, since we need to upload with teensy uploader
+upload: build
+
+
+
+
diff --git a/keyboards/kinesis/stapelberg/stapelberg.c b/keyboards/kinesis/stapelberg/stapelberg.c
new file mode 100644
index 000000000..111db81fe
--- /dev/null
+++ b/keyboards/kinesis/stapelberg/stapelberg.c
@@ -0,0 +1,28 @@
+#include "stapelberg.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // put your per-action keyboard code here
+ // runs for every action, just before processing by the firmware
+
+ return process_record_user(keycode, record);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ led_set_user(usb_led);
+}
diff --git a/keyboards/kinesis/stapelberg/stapelberg.h b/keyboards/kinesis/stapelberg/stapelberg.h
new file mode 100644
index 000000000..c90fc3d52
--- /dev/null
+++ b/keyboards/kinesis/stapelberg/stapelberg.h
@@ -0,0 +1,72 @@
+#ifndef KINESIS_STAPELBERG_H
+#define KINESIS_STAPELBERG_H
+
+#include "quantum.h"
+
+// This a shortcut to help you visually see your layout.
+// The first section contains all of the arguments as on the physical keyboard
+// The second converts the arguments into the 2-D scanned array
+
+#define KEYMAP( \
+ kC0,kD0,kE0,kC1,kD1,kE1,kC2,kD2,kE2, \
+ k00,k10,k20,k30,k40,k50, \
+ k01,k11,k21,k31,k41,k51, \
+ k02,k12,k22,k32,k42,k52, \
+ k03,k13,k23,k33,k43,k53, \
+ k14,k24,k34,k54, \
+ k56,k55, \
+ k35, \
+ k36,k46,k25, \
+ kC3,kD3,kE3,kC4,kD4,kE4,kC5,kE5,kD5, \
+ k60,k70,k80,k90,kA0,kB0, \
+ k61,k71,k81,k91,kA1,kB1, \
+ k62,k72,k82,k92,kA2,kB2, \
+ k63,k73,k83,k93,kA3,kB3, \
+ k64,k84,k94,kA4, \
+ k96,k85, \
+ k86, \
+ k66,k75,k65 \
+) { \
+ { k00, k01, k02, k03, KC_NO, KC_NO, KC_NO }, \
+ { k10, k11, k12, k13, k14, KC_NO, KC_NO }, \
+ { k20, k21, k22, k23, k24, k25, KC_NO }, \
+ { k30, k31, k32, k33, k34, k35, k36 }, \
+ { k40, k41, k42, k43, KC_NO, KC_NO, k46 }, \
+ { k50, k51, k52, k53, k54, k55, k56 }, \
+ { k60, k61, k62, k63, k64, k65, k66 }, \
+ { k70, k71, k72, k73, KC_NO, k75, KC_NO }, \
+ { k80, k81, k82, k83, k84, k85, k86 }, \
+ { k90, k91, k92, k93, k94, KC_NO, k96 }, \
+ { kA0, kA1, kA2, kA3, kA4, KC_NO, KC_NO }, \
+ { kB0, kB1, kB2, kB3, KC_NO, KC_NO, KC_NO }, \
+ { kC0, kC1, kC2, kC3, kC4, kC5, KC_NO }, \
+ { kD0, kD1, kD2, kD3, kD4, kD5, KC_NO }, \
+ { kE0, kE1, kE2, kE3, kE4, kE5, KC_NO } \
+}
+
+/*
+This is the Stapelberg matrix as published at
+https://github.com/stapelberg/kinesis-firmware/blob/master/kb_kinesis/config.kspec
+Along with the pins for each row and column
+ PB0 PB1 PB2 PB3 PB4 PB5 PB6
+ kx0 kx1 kx2 kx3 kx4 kx5 kx6
+PD0 k0x Row: EQL TAB CAP LSH X2 -- --
+PD1 k1x Row: 1 Q A Z BQ -- --
+PD2 k2x Row: 2 W S X INS END --
+PD3 k3x Row: 3 E D C LFT HOM BAK
+PD4 k4x Row: 4 R F V -- -- DEL
+PD5 k5x Row: 5 T G B RT LAL LCT
+PD6 k6x Row: 6 Y H N UP SPC PGD
+PD7 k7x Row: 7 U J M -- RET --
+PB0 k8x Row: 8 I K COM DWN RCT PGU
+PB1 k9x Row: 9 O L PER LBR -- RAL
+PB2 kAx Row: 0 P SEM SLA RBR -- --
+PB3 kBx Row: MIN BSL APO RSH X1 -- --
+PB4 kCx Row: ESC F3 F6 F9 F12 PAU --
+PB5 kDx Row: F1 F4 F7 F10 PRT PRG --
+PB6 kEx Row: F2 F5 F8 F11 SLK KEY --
+*/
+
+
+
+#endif
diff --git a/keyboards/kitten_paw/Makefile b/keyboards/kitten_paw/Makefile
new file mode 100644
index 000000000..57b2ef62e
--- /dev/null
+++ b/keyboards/kitten_paw/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif
diff --git a/keyboards/kitten_paw/config.h b/keyboards/kitten_paw/config.h
new file mode 100644
index 000000000..d7089734a
--- /dev/null
+++ b/keyboards/kitten_paw/config.h
@@ -0,0 +1,162 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6050
+#define DEVICE_VER 0x0104
+#define MANUFACTURER Costar
+#define PRODUCT Majestouch
+
+/* key matrix size */
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 18
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+//#define MATRIX_ROW_PINS { D0, D5 }
+//#define MATRIX_COL_PINS { F1, F0, B0 }
+//#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/kitten_paw/keymaps/default/keymap.c b/keyboards/kitten_paw/keymaps/default/keymap.c
new file mode 100644
index 000000000..64aa672d0
--- /dev/null
+++ b/keyboards/kitten_paw/keymaps/default/keymap.c
@@ -0,0 +1,51 @@
+#include "kitten_paw.h"
+
+enum layers {
+ DEFAULT,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [DEFAULT] = KEYMAP(\
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \
+ KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, \
+ KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT)
+};
+
+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;
+};
+
+
+void matrix_init_user(void) {
+
+}
+
+void matrix_scan_user(void) {
+
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+
+} \ No newline at end of file
diff --git a/keyboards/kitten_paw/keymaps/ickerwx/config.h b/keyboards/kitten_paw/keymaps/ickerwx/config.h
new file mode 100644
index 000000000..04a2d253c
--- /dev/null
+++ b/keyboards/kitten_paw/keymaps/ickerwx/config.h
@@ -0,0 +1,31 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#undef MOUSEKEY_MOVE_MAX
+#define MOUSEKEY_MOVE_MAX 127
+#undef MOUSEKEY_WHEEL_MAX
+#define MOUSEKEY_WHEEL_MAX 110
+#undef MOUSEKEY_MOVE_DELTA
+#define MOUSEKEY_MOVE_DELTA 5
+#undef MOUSEKEY_WHEEL_DELTA
+#define MOUSEKEY_WHEEL_DELTA 1
+#undef MOUSEKEY_DELAY
+#define MOUSEKEY_DELAY 50
+#undef MOUSEKEY_INTERVAL
+#define MOUSEKEY_INTERVAL 20
+#undef MOUSEKEY_MAX_SPEED
+#define MOUSEKEY_MAX_SPEED 4
+#undef MOUSEKEY_TIME_TO_MAX
+#define MOUSEKEY_TIME_TO_MAX 30
+#undef MOUSEKEY_WHEEL_MAX_SPEED
+#define MOUSEKEY_WHEEL_MAX_SPEED 3
+#undef MOUSEKEY_WHEEL_TIME_TO_MAX
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 1000
+#undef ONESHOT_TIMEOUT
+#define ONESHOT_TIMEOUT 500
+#undef TAPPING_TOGGLE
+#define TAPPING_TOGGLE 2
+
+#endif
diff --git a/keyboards/kitten_paw/keymaps/ickerwx/keymap.c b/keyboards/kitten_paw/keymaps/ickerwx/keymap.c
new file mode 100644
index 000000000..9a00c80dc
--- /dev/null
+++ b/keyboards/kitten_paw/keymaps/ickerwx/keymap.c
@@ -0,0 +1,242 @@
+#include "kitten_paw.h"
+#include "mousekey.h"
+
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+#define C(kc) LCTL(KC_##kc)
+#define RA(kc) RALT(KC_##kc)
+#define KC_SLCT KC_SELECT
+#define MEDAPP LT(MEDIA, KC_APP)
+#undef S
+#define S(kc) LSFT(KC_##kc)
+
+uint8_t current_layer_global = 255;
+
+enum layers {
+ DEFAULT,
+ PROG1,
+ PROG2,
+ MEDIA,
+ MOUSE1,
+ MOUSE2,
+ MISC,
+};
+
+enum function_id {
+ LSHFT_PAREN,
+ RSHFT_PAREN,
+ LCTRL_BRACKET,
+ RCTRL_BRACKET,
+ LALT_CURLY,
+ RALT_CURLY,
+ CTRL_CLICK
+};
+
+enum macro_id {
+ GRV,
+ CFLEX
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [DEFAULT] = KEYMAP(\
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \
+ F(0), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \
+ F(8),KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, F(9), KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, \
+ F(1),KC_LGUI, F(3), LT(MISC, KC_SPC), F(4), F(5), MEDAPP, F(2), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT),
+ /* Layer 1: Programming Layer 1, emulating US l ayout */
+ [PROG1] = KEYMAP(\
+ KC_ESC,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
+ M(GRV),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_SLSH, S(0),_______, _______,_______,_______, _______,_______,_______,_______, \
+ _______,_______,_______,_______,_______,_______, KC_Z,_______,_______,_______,_______, RA(8), RA(9),RA(MINS), _______,_______,_______, _______,_______,_______,_______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,S(COMM),S(BSLS), _______, _______,_______,_______, \
+ MO(PROG2),_______, KC_Y,_______,_______,_______,_______,_______,_______,_______,_______, S(7), MO(PROG2), _______, _______,_______,_______,_______, \
+ _______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______),
+ /* Layer 2: programming layer 2
+ all keys that are not FN keys are sent as LSFT+key on this layer
+ */
+ [PROG2] = KEYMAP(\
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
+ RA(RBRC),_______, RA(Q),KC_BSLS,_______,_______,M(CFLEX), S(6),S(RBRC), S(8), S(9),S(SLSH),KC_RBRC,_______, _______,_______,_______, _______,_______,_______,_______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, RA(7), RA(0),RA(NUBS), _______,_______,_______, _______,_______,_______,_______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, S(DOT), S(2), _______, _______,_______,_______, \
+ _______,S(NUBS),_______,_______,_______,_______,_______,_______,_______,KC_NUBS,S(NUBS),S(MINS), _______, _______, _______,_______,_______,_______, \
+ _______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______),
+ /* Layer 3: media layer */
+ [MEDIA] = KEYMAP(\
+ KC_PWR,KC_SLEP,KC_WAKE,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, \
+ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_MPRV,KC_MPLY,KC_MNXT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
+ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_VOLD,KC_MUTE,KC_VOLU, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
+ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, \
+ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, KC_EJCT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
+ XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,_______,XXXXXXX, KC_MRWD,KC_MSTP,KC_MFFD, XXXXXXX,XXXXXXX),
+ /* Layer 4: Mouse layer */
+ [MOUSE1] = KEYMAP(\
+ F(6),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
+ _______,KC_ACL0,KC_ACL1,KC_ACL2,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
+ _______,KC_BTN4,KC_WH_D,KC_MS_U,KC_WH_U,_______, C(Z),_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
+ _______,KC_BTN5,KC_MS_L,KC_MS_D,KC_MS_R, F(7),KC_WH_L,KC_WH_D,KC_WH_U,KC_WH_R,_______,_______, _______, _______,_______,_______, \
+ MO(MOUSE2),_______, C(Y), C(X), C(C), C(V),_______,KC_BTN2,KC_BTN3,C(PGUP),C(PGDN),_______, KC_RSFT, _______, _______,_______,_______,_______, \
+ KC_LCTL,_______,KC_LALT, KC_BTN1, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, _______,_______,_______, _______,_______),
+ /* Layer 5: Mouse layer 2*/
+ [MOUSE2] = KEYMAP(\
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
+ _______,_______,KC_BTN2,KC_WH_U,KC_BTN3,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
+ _______,_______,KC_WH_L,KC_WH_D,KC_WH_R,_______,KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R,_______,_______, _______, _______,_______,_______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______,_______,_______, \
+ _______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______),
+ /* Layer 6: Misc layer */
+ [MISC] = KEYMAP(\
+ _______, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______,_______,_______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
+ _______,KC_SLCT, C(W), KC_UP,_______,_______,_______,_______,KC_BSPC, KC_DEL,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
+ _______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_HOME,KC_PGDN,KC_PGUP,_______,_______,_______, _______, _______,_______,_______, \
+ KC_LSFT,_______, C(Y), C(X), C(C), C(V), KC_SPC, KC_END,_______,C(PGUP),C(PGDN),_______, _______, _______, _______,_______,_______,_______, \
+ _______,_______,_______, LT(MISC, KC_SPC), _______,_______,_______,_______, _______,_______,_______, _______,_______),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_TAP_TOGGLE(MOUSE1), // tap-toggle mouse layer (4)
+ [1] = ACTION_FUNCTION_TAP(LCTRL_BRACKET), // tap to print [
+ [2] = ACTION_FUNCTION_TAP(RCTRL_BRACKET), // tap to print ]
+ [3] = ACTION_FUNCTION_TAP(LALT_CURLY), // tap to print {
+ [4] = ACTION_FUNCTION_TAP(RALT_CURLY), // tap to print }
+ [5] = ACTION_LAYER_TAP_TOGGLE(PROG1), // tap-toggle programming layer 1
+ [6] = ACTION_LAYER_SET_CLEAR(DEFAULT),
+ [7] = ACTION_FUNCTION_TAP(CTRL_CLICK),
+ [8] = ACTION_FUNCTION_TAP(LSHFT_PAREN), // tap to print (
+ [9] = ACTION_FUNCTION_TAP(RSHFT_PAREN), // tap to print )
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case GRV: // macro to print accent grave
+ return (record->event.pressed ?
+ MACRO( D(LSFT), T(EQL), U(RALT), T(SPC), END) :
+ MACRO_NONE );
+ case CFLEX: // print accent circonflex
+ return (record->event.pressed ?
+ MACRO( T(GRV), T(SPC), END ) :
+ MACRO_NONE );
+ }
+ return MACRO_NONE;
+};
+
+
+void matrix_init_user(void) {
+
+}
+
+void matrix_scan_user(void) {
+ uint8_t layer;
+ layer = biton32(layer_state);
+
+ if (current_layer_global != layer) {
+ current_layer_global = layer;
+
+ // unset CAPSLOCK and SCROLL LOCK LEDs
+ led_set_kb(host_keyboard_leds() & ~(1<<USB_LED_CAPS_LOCK));
+ led_set_kb(host_keyboard_leds() & ~(1<<USB_LED_SCROLL_LOCK));
+ // set SCROLL LOCK LED when the mouse layer is active, CAPS LOCK when PROG layer is active
+ if (layer == MOUSE1 || layer == MOUSE2) {
+ led_set_kb(host_keyboard_leds() | (1<<USB_LED_SCROLL_LOCK));
+ } else if (layer == PROG1 || layer == PROG2) {
+ led_set_kb(host_keyboard_leds() | (1<<USB_LED_CAPS_LOCK));
+ }
+ }
+}
+
+void led_set_user(uint8_t usb_led) {
+
+}
+
+void tap_helper(keyrecord_t *record, uint16_t orig_mod, uint16_t macro_mod, uint16_t macro_kc ) {
+ if (record->event.pressed) {
+ if (record->tap.count > 0 && !record->tap.interrupted) {
+ if (record->tap.interrupted) {
+ register_mods(MOD_BIT(orig_mod));
+ }
+ } else {
+ register_mods(MOD_BIT(orig_mod));
+ }
+ } else {
+ if (record->tap.count > 0 && !(record->tap.interrupted)) {
+ add_weak_mods(MOD_BIT(macro_mod));
+ send_keyboard_report();
+ register_code(macro_kc);
+ unregister_code(macro_kc);
+ del_weak_mods(MOD_BIT(macro_mod));
+ send_keyboard_report();
+ record->tap.count = 0; // ad hoc: cancel tap
+ } else {
+ unregister_mods(MOD_BIT(orig_mod));
+ }
+ }
+}
+
+/* if LCTRL is tabbed, print (, or ) if RCTRL is tabbed, same for LALT/RALT and [/] */
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ // The code is copied from keymap_hasu.c in the tmk keyboards hhkb folder
+ switch (id) {
+ case LCTRL_BRACKET:
+ tap_helper(record, KC_LCTL, KC_RALT, KC_8);
+ break;
+ case RCTRL_BRACKET:
+ tap_helper(record, KC_RCTL, KC_RALT, KC_9);
+ break;
+ case LALT_CURLY:
+ tap_helper(record, KC_LALT, KC_RALT, KC_7);
+ break;
+ case RALT_CURLY:
+ tap_helper(record, KC_RALT, KC_RALT, KC_0);
+ break;
+ case LSHFT_PAREN:
+ tap_helper(record, KC_LSFT, KC_LSFT, KC_8);
+ break;
+ case RSHFT_PAREN:
+ tap_helper(record, KC_RSFT, KC_LSFT, KC_9);
+ break;
+ case CTRL_CLICK:
+ if (record->event.pressed) {
+ mousekey_clear();
+ register_mods(MOD_BIT(KC_LCTL));
+ send_keyboard_report();
+ wait_ms(5);
+ mousekey_on(KC_BTN1);
+ mousekey_send();
+ wait_ms(10);
+ mousekey_off(KC_BTN1);
+ mousekey_send();
+ wait_ms(5);
+ unregister_mods(MOD_BIT(KC_LCTL));
+ send_keyboard_report();
+ }
+ break;
+ }
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ uint8_t layer;
+ layer = biton32(layer_state);
+ if (layer == PROG2) {
+ if (keycode >= KC_A && keycode <= KC_EXSEL && \
+ !( // do not send LSFT + these keycodes, they are needed for emulating the US layout
+ keycode == KC_NONUS_BSLASH ||
+ keycode == KC_RBRC ||
+ keycode == KC_BSLS ||
+ keycode == KC_GRV
+ )) {
+ // LSFT is the modifier for this layer, so we set LSFT for every key to get the expected behavior
+ if (record->event.pressed) {
+ register_mods(MOD_LSFT);
+ } else {
+ unregister_mods(MOD_LSFT);
+ }
+ }
+ }
+ return true;
+}
diff --git a/keyboards/kitten_paw/keymaps/ickerwx/readme.md b/keyboards/kitten_paw/keymaps/ickerwx/readme.md
new file mode 100644
index 000000000..0d23be4ea
--- /dev/null
+++ b/keyboards/kitten_paw/keymaps/ickerwx/readme.md
@@ -0,0 +1,18 @@
+# My personal keymap for the Kitten Paw controller
+
+This keymap only works correctly when you have your OS configured with a German keymap. Use the keymap however you like. It's most likely a living thing that will never be quite finished.
+
+## Description of the layers
+Layer 0 (DEFAULT) works just like you would expect a keyboard to work, mostly, except:
+Caps Lock switches to the mouse layer, RGUI and APP are switches to the programming layer and media layer.
+Mouse and programming layer switches can be held or double-tapped to lock.
+Holding space switches to the MISC layer where I currently accumulate useful shortcuts.
+Tapping left and right Shift, Ctrl and Alt will send (), [] and {} respectively.
+
+Layers 1 and 2 (PROG1 and PROG2) emulate the US layout while still using a German OS keymap setting. I was annoyed of having to change the OS settings every time I wanted to use the US layout for coding, so I made these layers to behave just like the US layout even though the OS still uses German. The shift keys were a bit tricky, I had to use them as MO(PROG2) switches, so to get the actual expected behavior I enable LSFT for almost every keypress on PROG2 in ```process_record_user```. Since the shift keys are MO() function keys, they do not print () at the moment, which sucks. I'm working on it.
+
+Layer 3 (MEDIA) just has a couple of media keys on it, mainly around the cursor keys and nav key cluster.
+
+Layers 4 and 5 (MOUSE1 and MOUSE2) are mouse layers. Move the cursor using ESDF, scroll using HJKL, Space for left click, N and M for right and middle click. There's more, look at the keymap.
+
+Layer 6 is a layer I don't have a good name for, so I call it MISC. You'll find cursor keys at ESDF, other navigation keys around the HJKL cluster and F12 to F24 on the F-keys. For now. \ No newline at end of file
diff --git a/keyboards/kitten_paw/kitten_paw.c b/keyboards/kitten_paw/kitten_paw.c
new file mode 100644
index 000000000..92f64b06b
--- /dev/null
+++ b/keyboards/kitten_paw/kitten_paw.c
@@ -0,0 +1,43 @@
+#include "kitten_paw.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // put your per-action keyboard code here
+ // runs for every action, just before processing by the firmware
+
+ return process_record_user(keycode, record);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+ CONFIG_LED_IO;
+ CONFIG_LED_IO;
+ print_dec(usb_led);
+ if (usb_led & (1<<USB_LED_CAPS_LOCK))
+ USB_LED_CAPS_LOCK_ON;
+ else
+ USB_LED_CAPS_LOCK_OFF;
+
+ if (usb_led & (1<<USB_LED_NUM_LOCK))
+ USB_LED_NUM_LOCK_ON;
+ else
+ USB_LED_NUM_LOCK_OFF;
+ if (usb_led & (1<<USB_LED_SCROLL_LOCK))
+ USB_LED_SCROLL_LOCK_ON;
+ else
+ USB_LED_SCROLL_LOCK_OFF;
+ led_set_user(usb_led);
+}
diff --git a/keyboards/kitten_paw/kitten_paw.h b/keyboards/kitten_paw/kitten_paw.h
new file mode 100644
index 000000000..189b721b9
--- /dev/null
+++ b/keyboards/kitten_paw/kitten_paw.h
@@ -0,0 +1,58 @@
+#ifndef KITTEN_PAW_H
+#define KITTEN_PAW_H
+
+#include "quantum.h"
+
+#define CONFIG_LED_IO \
+ DDRB |= (1<<7); \
+ DDRC |= (1<<5) | (1<<6);
+
+#define USB_LED_CAPS_LOCK_ON PORTC &= ~(1<<6)
+#define USB_LED_CAPS_LOCK_OFF PORTC |= (1<<6)
+#define USB_LED_NUM_LOCK_ON PORTB &= ~(1<<7)
+#define USB_LED_NUM_LOCK_OFF PORTB |= (1<<7)
+#define USB_LED_SCROLL_LOCK_ON PORTC &= ~(1<<5)
+#define USB_LED_SCROLL_LOCK_OFF PORTC |= (1<<5)
+
+// This a shortcut to help you visually see your layout.
+// The first section contains all of the arguements
+// The second converts the arguments into a two-dimensional array
+/*
+ Matrix col/row mapping
+
+ ,----. ,-------------------. ,-------------------. ,-------------------. ,--------------.
+ | J6 | | I4 | H4 | H2 | H6 | | A7 | E6 | D2 | D4 | | B4 | B7 | B6 | B0 | | C7 | C5 | A5 |
+ `----' `-------------------' `-------------------' `-------------------' `--------------'
+ ,-------------------------------------------------------------------------. ,--------------. ,-------------------.
+ | J4 | J7 | I7 | H7 | G7 | G4 | F4 | F7 | E7 | D7 | R7 | R4 | E4 | B2 | | L4 | O4 | Q4 | | K1 | L1 | Q1 | Q0 |
+ |-------------------------------------------------------------------------| |--------------| |-------------------|
+ | J2 | J5 | I5 | H5 | G5 | G2 | F2 | F5 | E5 | D5 | R5 | R2 | E2 | B3 | | K4 | O7 | Q7 | | K5 | L5 | Q5 | O5 |
+ |-------------------------------------------------------------------------| '--------------' |-------------- |
+ | O5 | J3 | I3 | H3 | G3 | G6 | F6 | F3 | E3 | D3 | R3 | R6 | B1 | | K2 | L2 | Q2 | |
+ |-------------------------------------------------------------------------| ,----. |-------------------|
+ | N2 | J1 | I1 | H1 | G1 | G0 | F0 | F1 | E1 | D1 | R0 | N3 | | O6 | | K3 | L3 | Q3 | O3 |
+ |-------------------------------------------------------------------------| ,--------------. |-------------- |
+ | A4 | P2 | C6 | K6 | C0 | M3 | D0 | A1 | | O0 | K0 | L0 | | L6 | Q6 | |
+ `-------------------------------------------------------------------------' `--------------' `-------------------'
+*/
+
+#define KEYMAP( \
+ KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
+ KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, KK1, KL1, KQ1, KQ0, \
+ KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, KK5, KL5, KQ5, KO5, \
+ KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, KK2, KL2, KQ2, \
+ KN2, KI6, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, KK3, KL3, KQ3, KO3, \
+ KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0, KL6, KQ6 \
+) \
+{ \
+ {KC_NO, KB0, KC0, KD0,KC_NO, KF0, KG0,KC_NO,KC_NO,KC_NO, KK0, KL0,KC_NO,KC_NO, KO0,KC_NO, KQ0, KR0}, \
+ { KA1, KB1,KC_NO, KD1, KE1, KF1, KG1, KH1, KI1, KJ1, KK1, KL1,KC_NO,KC_NO,KC_NO,KC_NO, KQ1,KC_NO}, \
+ {KC_NO, KB2,KC_NO, KD2, KE2, KF2, KG2, KH2, KI2, KJ2, KK2, KL2,KC_NO, KN2,KC_NO, KP2, KQ2, KR2}, \
+ {KC_NO, KB3,KC_NO, KD3, KE3, KF3, KG3, KH3, KI3, KJ3, KK3, KL3, KM3, KN3, KO3,KC_NO, KQ3, KR3}, \
+ { KA4, KB4,KC_NO, KD4, KE4, KF4, KG4, KH4, KI4, KJ4, KK4, KL4,KC_NO,KC_NO, KO4,KC_NO, KQ4, KR4}, \
+ { KA5,KC_NO, KC5, KD5, KE5, KF5, KG5, KH5, KI5, KJ5, KK5, KL5,KC_NO,KC_NO, KO5,KC_NO, KQ5, KR5}, \
+ {KC_NO, KB6, KC6,KC_NO, KE6, KF6, KG6, KH6, KI6, KJ6, KK6, KL6,KC_NO,KC_NO, KO6,KC_NO, KQ6, KR6}, \
+ { KA7, KB7, KC7, KD7, KE7, KF7, KG7, KH7, KI7, KJ7,KC_NO,KC_NO,KC_NO,KC_NO, KO7,KC_NO, KQ7, KR7} \
+}
+
+#endif
diff --git a/keyboards/kitten_paw/matrix.c b/keyboards/kitten_paw/matrix.c
new file mode 100644
index 000000000..d436ad56c
--- /dev/null
+++ b/keyboards/kitten_paw/matrix.c
@@ -0,0 +1,165 @@
+/*
+ Copyright 2014 Ralf Schmitt <ralf@bunkertor.net>
+
+ 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/>.
+*/
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <avr/io.h>
+#include <util/delay.h>
+#include "print.h"
+#include "debug.h"
+#include "util.h"
+#include "matrix.h"
+
+#ifndef DEBOUNCING_DELAY
+# define DEBOUNCING_DELAY 5
+#endif
+static uint8_t debouncing = DEBOUNCING_DELAY;
+
+static matrix_row_t matrix[MATRIX_ROWS];
+static matrix_row_t matrix_debouncing[MATRIX_ROWS];
+
+static uint8_t read_rows(void);
+static void select_col(uint8_t col);
+
+inline uint8_t matrix_rows(void) {
+ return MATRIX_ROWS;
+}
+
+inline uint8_t matrix_cols(void) {
+ return MATRIX_COLS;
+}
+
+/* Column pin configuration
+ *
+ * col: 0 1 2 3 4 5 6 7
+ * pin: PC7 PD5 PD3 PD1 PC2 PD6 PD4 PD2
+ *
+ * Rrr pin configuration
+ *
+ * These rrrs uses one 74HC154 4 to 16 bit demultiplexer (low
+ * active), together with 2 rrrs driven directly from the micro
+ * controller, to control the 18 rrrs. The rrrs are driven from
+ * pins B6,5,4,3,2,1,0.
+ */
+void matrix_init(void) {
+ DDRC &= ~0b10000100; // Row input pins
+ DDRD &= ~0b01111110;
+ PORTC |= 0b10000100;
+ PORTD |= 0b01111110;
+
+ DDRB |= 0b01111111; // Column output pins
+
+ for (uint8_t i=0; i < MATRIX_ROWS; i++) {
+ matrix[i] = 0;
+ matrix_debouncing[i] = 0;
+ }
+ matrix_init_quantum();
+}
+
+uint8_t matrix_scan(void) {
+ for (uint8_t col = 0; col < MATRIX_COLS; col++) {
+ select_col(col);
+ _delay_us(3);
+ uint8_t rows = read_rows();
+ for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
+ bool prev_bit = matrix_debouncing[row] & ((matrix_row_t)1<<col);
+ bool curr_bit = rows & (1<<row);
+ if (prev_bit != curr_bit) {
+ matrix_debouncing[row] ^= ((matrix_row_t)1<<col);
+ debouncing = DEBOUNCING_DELAY;
+ }
+ }
+ }
+
+ if (debouncing) {
+ if (--debouncing) {
+ _delay_ms(1);
+ }
+ else {
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ matrix[i] = matrix_debouncing[i];
+ }
+ }
+ }
+ matrix_scan_quantum();
+ return 1;
+}
+
+bool matrix_is_modified(void) {
+ if (debouncing)
+ return false;
+ else
+ return true;
+}
+
+inline bool matrix_is_on(uint8_t row, uint8_t col) {
+ return (matrix[row] & ((matrix_row_t)1<<col));
+}
+
+inline matrix_row_t matrix_get_row(uint8_t row) {
+ return matrix[row];
+}
+
+void matrix_print(void) {
+ print("\nr/c 0123456789ABCDEF\n");
+ for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
+ xprintf("%02X: %032lb\n", row, bitrev32(matrix_get_row(row)));
+ }
+}
+
+uint8_t matrix_key_count(void) {
+ uint8_t count = 0;
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ count += bitpop32(matrix[i]);
+ }
+ return count;
+}
+
+static uint8_t read_rows(void) {
+ return
+ (PINC&(1<<7) ? 0 : (1<<0)) |
+ (PIND&(1<<5) ? 0 : (1<<1)) |
+ (PIND&(1<<3) ? 0 : (1<<2)) |
+ (PIND&(1<<1) ? 0 : (1<<3)) |
+ (PINC&(1<<2) ? 0 : (1<<4)) |
+ (PIND&(1<<2) ? 0 : (1<<5)) |
+ (PIND&(1<<4) ? 0 : (1<<6)) |
+ (PIND&(1<<6) ? 0 : (1<<7));
+}
+
+static void select_col(uint8_t col) {
+ switch (col) {
+ case 0: PORTB = (PORTB & ~0b01111111) | 0b01100100; break;
+ case 1: PORTB = (PORTB & ~0b01111111) | 0b01101100; break;
+ case 2: PORTB = (PORTB & ~0b01111111) | 0b01100010; break;
+ case 3: PORTB = (PORTB & ~0b01111111) | 0b01111010; break;
+ case 4: PORTB = (PORTB & ~0b01111111) | 0b01100110; break;
+ case 5: PORTB = (PORTB & ~0b01111111) | 0b01110110; break;
+ case 6: PORTB = (PORTB & ~0b01111111) | 0b01101110; break;
+ case 7: PORTB = (PORTB & ~0b01111111) | 0b01111110; break;
+ case 8: PORTB = (PORTB & ~0b01111111) | 0b01000001; break;
+ case 9: PORTB = (PORTB & ~0b01111111) | 0b00100001; break;
+ case 10: PORTB = (PORTB & ~0b01111111) | 0b01101010; break;
+ case 11: PORTB = (PORTB & ~0b01111111) | 0b01110010; break;
+ case 12: PORTB = (PORTB & ~0b01111111) | 0b01111100; break;
+ case 13: PORTB = (PORTB & ~0b01111111) | 0b01110100; break;
+ case 14: PORTB = (PORTB & ~0b01111111) | 0b01111000; break;
+ case 15: PORTB = (PORTB & ~0b01111111) | 0b01110000; break;
+ case 16: PORTB = (PORTB & ~0b01111111) | 0b01100000; break;
+ case 17: PORTB = (PORTB & ~0b01111111) | 0b01101000; break;
+ }
+}
diff --git a/keyboards/kitten_paw/readme.md b/keyboards/kitten_paw/readme.md
new file mode 100644
index 000000000..a6ef2a067
--- /dev/null
+++ b/keyboards/kitten_paw/readme.md
@@ -0,0 +1,32 @@
+kitten_paw keyboard firmware
+======================
+This is the firmware for the 2016 revision of the Kitten Paw controller by Bathroom Epiphanies.
+Most of the boilerplate code is the work of [BathroomEpiphanies](https://github.com/BathroomEpiphanies).
+
+NKRO doesn't work at the moment, I don't know if I will take the time to find out how to fix this, so far 6KRO is enough for me.
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/kitten_paw folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+
+To build with the default keymap, simply run `make`.
+
+### Other Keymaps
+
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with `keymap` option like:
+
+```
+$ make keymap=[default|jack|<name>]
+```
+
+Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/`
diff --git a/keyboards/kitten_paw/rules.mk b/keyboards/kitten_paw/rules.mk
new file mode 100644
index 000000000..b0c909d11
--- /dev/null
+++ b/keyboards/kitten_paw/rules.mk
@@ -0,0 +1,72 @@
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u2
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+ OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= no # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no # Audio output on port C6
+
+CUSTOM_MATRIX = yes
+SRC += matrix.c
diff --git a/keyboards/lets_split/Makefile b/keyboards/lets_split/Makefile
index b9f07636b..f5c87d4d6 100644
--- a/keyboards/lets_split/Makefile
+++ b/keyboards/lets_split/Makefile
@@ -1,78 +1,5 @@
-SRC += matrix.c \
- i2c.c \
- split_util.c \
- serial.c
+SUBPROJECT_DEFAULT = rev2
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
-MIDI_ENABLE ?= no # MIDI controls
-AUDIO_ENABLE ?= yes # Audio output on port C6
-UNICODE_ENABLE ?= no # Unicode
-BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
-
-CUSTOM_MATRIX = yes
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
-endif \ No newline at end of file
+endif
diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h
index 833818ce6..008fb0978 100644
--- a/keyboards/lets_split/config.h
+++ b/keyboards/lets_split/config.h
@@ -20,78 +20,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x3060
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Wootpatoot
-#define PRODUCT Lets Split
-#define DESCRIPTION A split keyboard for the cheap makers
-
-/* key matrix size */
-// Rows are doubled-up
-#define MATRIX_ROWS 8
-#define MATRIX_COLS 6
-
-// wiring of each half
-#define MATRIX_ROW_PINS { B5, B4, E6, D7 }
-#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
-
-#define CATERINA_BOOTLOADER
-
-// #define USE_I2C
-
-// #define EE_HANDS
-
-#define I2C_MASTER_LEFT
-// #define I2C_MASTER_RIGHT
-
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
-
-/* define if matrix has ghost */
-//#define MATRIX_HAS_GHOST
-
-/* number of backlight levels */
-// #define BACKLIGHT_LEVELS 3
-
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCING_DELAY 5
-
-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
-#define LOCKING_SUPPORT_ENABLE
-/* Locking resynchronize hack */
-#define LOCKING_RESYNC_ENABLE
-
-/* key combination for command */
-#define IS_COMMAND() ( \
- keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
-)
-
-/* ws2812 RGB LED */
-#define RGB_DI_PIN D2
-#define RGBLIGHT_TIMER
-#define RGBLED_NUM 28 // Number of LEDs
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 17
-#define RGBLIGHT_VAL_STEP 17
-
-/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
- */
-
-/* disable debug print */
-// #define NO_DEBUG
-
-/* disable print */
-// #define NO_PRINT
-
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
-#endif \ No newline at end of file
+#ifdef SUBPROJECT_rev1
+ #include "rev1/config.h"
+#endif
+#ifdef SUBPROJECT_rev2
+ #include "rev2/config.h"
+#endif
+#ifdef SUBPROJECT_rev2fliphalf
+ #include "../../rev2fliphalf/config.h"
+#endif
+#endif
diff --git a/keyboards/lets_split/eeprom-lefthand.eep b/keyboards/lets_split/eeprom-lefthand.eep
index a92200b12..b9666a74c 100644
--- a/keyboards/lets_split/eeprom-lefthand.eep
+++ b/keyboards/lets_split/eeprom-lefthand.eep
@@ -1,2 +1,2 @@
-:080000000000000000000001F7
+:0B0000000000000000000000000001F4
:00000001FF
diff --git a/keyboards/lets_split/eeprom-righthand.eep b/keyboards/lets_split/eeprom-righthand.eep
index 91a683170..94cc5be7f 100644
--- a/keyboards/lets_split/eeprom-righthand.eep
+++ b/keyboards/lets_split/eeprom-righthand.eep
@@ -1,2 +1,2 @@
-:080000000000000000000000F8
+:0B0000000000000000000000000000F5
:00000001FF
diff --git a/keyboards/lets_split/i2c.c b/keyboards/lets_split/i2c.c
index c72789403..084c890c4 100644
--- a/keyboards/lets_split/i2c.c
+++ b/keyboards/lets_split/i2c.c
@@ -6,6 +6,8 @@
#include <stdbool.h>
#include "i2c.h"
+#ifdef USE_I2C
+
// Limits the amount of we wait for any one i2c transaction.
// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is
// 9 bits, a single transaction will take around 90μs to complete.
@@ -157,3 +159,4 @@ ISR(TWI_vect) {
// Reset everything, so we are ready for the next TWI interrupt
TWCR |= (1<<TWIE) | (1<<TWINT) | (ack<<TWEA) | (1<<TWEN);
}
+#endif
diff --git a/keyboards/lets_split/imgs/left.stl b/keyboards/lets_split/imgs/left.stl
new file mode 100644
index 000000000..ea738d626
--- /dev/null
+++ b/keyboards/lets_split/imgs/left.stl
Binary files differ
diff --git a/keyboards/lets_split/imgs/lets split rev2 case.iges b/keyboards/lets_split/imgs/lets split rev2 case.iges
new file mode 100644
index 000000000..5677d0970
--- /dev/null
+++ b/keyboards/lets_split/imgs/lets split rev2 case.iges
@@ -0,0 +1,17931 @@
+ S 1
+,,20Hlets split rev2 case,20Hlets split rev2 case,7Hunknown,7Hunknown, G 1
+32,38,7,99,15,,1.,2,2HMM,1,0.08,15H20161218.141108,0.01,10000.,7HunknownG 2
+,7Hunknown,11,0,; G 3
+ 186 1 00000000D 1
+ 186 -5703 1 0 0D 2
+ 186 2 00000000D 3
+ 186 -5705 1 0 0D 4
+ 186 3 00000000D 5
+ 186 -5705 1 0 0D 6
+ 514 4 00010000D 7
+ 514 29 1 0D 8
+ 514 33 00010000D 9
+ 514 7 1 0D 10
+ 514 40 00010000D 11
+ 514 9 1 0D 12
+ 510 49 00010000D 13
+ 510 -5703 1 1 0D 14
+ 510 50 00010000D 15
+ 510 -5703 1 1 0D 16
+ 510 51 00010000D 17
+ 510 -5703 1 1 0D 18
+ 510 52 00010000D 19
+ 510 -5703 1 1 0D 20
+ 510 53 00010000D 21
+ 510 -5703 1 1 0D 22
+ 510 54 00010000D 23
+ 510 -5703 1 1 0D 24
+ 510 55 00010000D 25
+ 510 -5703 1 1 0D 26
+ 510 56 00010000D 27
+ 510 -5703 1 1 0D 28
+ 510 57 00010000D 29
+ 510 -5703 1 1 0D 30
+ 510 58 00010000D 31
+ 510 -5703 1 1 0D 32
+ 510 59 00010000D 33
+ 510 -5703 1 1 0D 34
+ 510 60 00010000D 35
+ 510 -5703 1 1 0D 36
+ 510 61 00010000D 37
+ 510 -5703 1 1 0D 38
+ 510 62 00010000D 39
+ 510 -5703 1 1 0D 40
+ 510 63 00010000D 41
+ 510 -5703 1 1 0D 42
+ 510 64 00010000D 43
+ 510 -5703 1 1 0D 44
+ 510 65 00010000D 45
+ 510 -5703 1 1 0D 46
+ 510 66 00010000D 47
+ 510 -5703 1 1 0D 48
+ 510 67 00010000D 49
+ 510 -5703 1 1 0D 50
+ 510 68 00010000D 51
+ 510 -5703 1 1 0D 52
+ 510 69 00010000D 53
+ 510 -5703 1 1 0D 54
+ 510 70 00010000D 55
+ 510 -5703 1 1 0D 56
+ 510 71 00010000D 57
+ 510 -5703 1 1 0D 58
+ 510 72 00010000D 59
+ 510 -5703 1 1 0D 60
+ 510 73 00010000D 61
+ 510 -5703 1 1 0D 62
+ 510 74 00010000D 63
+ 510 -5703 1 1 0D 64
+ 510 75 00010000D 65
+ 510 -5703 1 1 0D 66
+ 510 76 00010000D 67
+ 510 -5703 1 1 0D 68
+ 510 77 00010000D 69
+ 510 -5703 1 1 0D 70
+ 510 78 00010000D 71
+ 510 -5703 1 1 0D 72
+ 510 79 00010000D 73
+ 510 -5703 1 1 0D 74
+ 510 80 00010000D 75
+ 510 -5703 1 1 0D 76
+ 510 81 00010000D 77
+ 510 -5703 1 1 0D 78
+ 510 82 00010000D 79
+ 510 -5703 1 1 0D 80
+ 510 83 00010000D 81
+ 510 -5703 1 1 0D 82
+ 510 84 00010000D 83
+ 510 -5703 1 1 0D 84
+ 510 85 00010000D 85
+ 510 -5703 1 1 0D 86
+ 510 86 00010000D 87
+ 510 -5703 1 1 0D 88
+ 510 87 00010000D 89
+ 510 -5703 1 1 0D 90
+ 510 88 00010000D 91
+ 510 -5703 1 1 0D 92
+ 510 89 00010000D 93
+ 510 -5703 1 1 0D 94
+ 510 90 00010000D 95
+ 510 -5703 1 1 0D 96
+ 510 91 00010000D 97
+ 510 -5703 1 1 0D 98
+ 510 92 00010000D 99
+ 510 -5703 1 1 0D 100
+ 510 93 00010000D 101
+ 510 -5703 1 1 0D 102
+ 510 94 00010000D 103
+ 510 -5703 1 1 0D 104
+ 510 95 00010000D 105
+ 510 -5703 1 1 0D 106
+ 510 96 00010000D 107
+ 510 -5703 1 1 0D 108
+ 510 97 00010000D 109
+ 510 -5703 1 1 0D 110
+ 510 98 00010000D 111
+ 510 -5703 1 1 0D 112
+ 510 99 00010000D 113
+ 510 -5703 1 1 0D 114
+ 510 100 00010000D 115
+ 510 -5703 1 1 0D 116
+ 510 101 00010000D 117
+ 510 -5703 1 1 0D 118
+ 510 102 00010000D 119
+ 510 -5703 1 1 0D 120
+ 510 103 00010000D 121
+ 510 -5703 1 1 0D 122
+ 510 104 00010000D 123
+ 510 -5703 1 1 0D 124
+ 510 105 00010000D 125
+ 510 -5703 1 1 0D 126
+ 510 106 00010000D 127
+ 510 -5703 1 1 0D 128
+ 510 107 00010000D 129
+ 510 -5703 1 1 0D 130
+ 510 108 00010000D 131
+ 510 -5703 1 1 0D 132
+ 510 109 00010000D 133
+ 510 -5703 1 1 0D 134
+ 510 110 00010000D 135
+ 510 -5703 1 1 0D 136
+ 510 111 00010000D 137
+ 510 -5703 1 1 0D 138
+ 510 112 00010000D 139
+ 510 -5703 1 1 0D 140
+ 510 113 00010000D 141
+ 510 -5703 1 1 0D 142
+ 510 114 00010000D 143
+ 510 -5703 1 1 0D 144
+ 510 115 00010000D 145
+ 510 -5703 1 1 0D 146
+ 510 116 00010000D 147
+ 510 -5703 1 1 0D 148
+ 510 117 00010000D 149
+ 510 -5703 1 1 0D 150
+ 510 118 00010000D 151
+ 510 -5703 1 1 0D 152
+ 510 119 00010000D 153
+ 510 -5703 1 1 0D 154
+ 510 120 00010000D 155
+ 510 -5703 1 1 0D 156
+ 510 121 00010000D 157
+ 510 -5703 1 1 0D 158
+ 510 122 00010000D 159
+ 510 -5703 1 1 0D 160
+ 510 123 00010000D 161
+ 510 -5703 1 1 0D 162
+ 510 124 00010000D 163
+ 510 -5703 1 1 0D 164
+ 510 125 00010000D 165
+ 510 -5703 1 1 0D 166
+ 510 126 00010000D 167
+ 510 -5703 1 1 0D 168
+ 510 127 00010000D 169
+ 510 -5703 1 1 0D 170
+ 510 128 00010000D 171
+ 510 -5703 1 1 0D 172
+ 510 129 00010000D 173
+ 510 -5703 1 1 0D 174
+ 510 130 00010000D 175
+ 510 -5703 1 1 0D 176
+ 510 131 00010000D 177
+ 510 -5703 1 1 0D 178
+ 510 132 00010000D 179
+ 510 -5703 1 1 0D 180
+ 510 133 00010000D 181
+ 510 -5703 1 1 0D 182
+ 510 134 00010000D 183
+ 510 -5703 1 1 0D 184
+ 510 135 00010000D 185
+ 510 -5703 1 1 0D 186
+ 510 136 00010000D 187
+ 510 -5703 1 1 0D 188
+ 510 137 00010000D 189
+ 510 -5703 1 1 0D 190
+ 510 138 00010000D 191
+ 510 -5703 1 1 0D 192
+ 510 139 00010000D 193
+ 510 -5703 1 1 0D 194
+ 510 140 00010000D 195
+ 510 -5703 1 1 0D 196
+ 510 141 00010000D 197
+ 510 -5703 1 1 0D 198
+ 510 142 00010000D 199
+ 510 -5703 1 1 0D 200
+ 510 143 00010000D 201
+ 510 -5703 1 1 0D 202
+ 510 144 00010000D 203
+ 510 -5703 1 1 0D 204
+ 510 145 00010000D 205
+ 510 -5703 1 1 0D 206
+ 510 146 00010000D 207
+ 510 -5703 1 1 0D 208
+ 510 147 00010000D 209
+ 510 -5703 1 1 0D 210
+ 510 148 00010000D 211
+ 510 -5703 1 1 0D 212
+ 510 149 00010000D 213
+ 510 -5703 1 1 0D 214
+ 510 150 00010000D 215
+ 510 -5703 1 1 0D 216
+ 510 151 00010000D 217
+ 510 -5703 1 1 0D 218
+ 510 152 00010000D 219
+ 510 -5703 1 1 0D 220
+ 510 153 00010000D 221
+ 510 -5703 1 1 0D 222
+ 510 154 00010000D 223
+ 510 -5703 1 1 0D 224
+ 510 155 00010000D 225
+ 510 -5703 1 1 0D 226
+ 510 156 00010000D 227
+ 510 -5703 1 1 0D 228
+ 510 157 00010000D 229
+ 510 -5703 1 1 0D 230
+ 510 158 00010000D 231
+ 510 -5703 1 1 0D 232
+ 510 159 00010000D 233
+ 510 -5703 1 1 0D 234
+ 510 160 00010000D 235
+ 510 -5703 1 1 0D 236
+ 510 161 00010000D 237
+ 510 -5703 1 1 0D 238
+ 510 162 00010000D 239
+ 510 -5703 1 1 0D 240
+ 510 163 00010000D 241
+ 510 -5703 1 1 0D 242
+ 510 164 00010000D 243
+ 510 -5703 1 1 0D 244
+ 510 165 00010000D 245
+ 510 -5703 1 1 0D 246
+ 510 166 00010000D 247
+ 510 -5703 1 1 0D 248
+ 510 167 00010000D 249
+ 510 -5703 1 1 0D 250
+ 510 168 00010000D 251
+ 510 -5703 1 1 0D 252
+ 510 169 00010000D 253
+ 510 -5703 1 1 0D 254
+ 510 170 00010000D 255
+ 510 -5703 1 1 0D 256
+ 510 171 00010000D 257
+ 510 -5703 1 1 0D 258
+ 510 172 00010000D 259
+ 510 -5703 1 1 0D 260
+ 510 173 00010000D 261
+ 510 -5703 1 1 0D 262
+ 510 174 00010000D 263
+ 510 -5703 1 1 0D 264
+ 510 175 00010000D 265
+ 510 -5703 1 1 0D 266
+ 510 176 00010000D 267
+ 510 -5703 1 1 0D 268
+ 510 177 00010000D 269
+ 510 -5703 1 1 0D 270
+ 510 178 00010000D 271
+ 510 -5703 1 1 0D 272
+ 510 179 00010000D 273
+ 510 -5703 1 1 0D 274
+ 510 180 00010000D 275
+ 510 -5703 1 1 0D 276
+ 510 181 00010000D 277
+ 510 -5703 1 1 0D 278
+ 510 182 00010000D 279
+ 510 -5703 1 1 0D 280
+ 510 183 00010000D 281
+ 510 -5703 1 1 0D 282
+ 510 184 00010000D 283
+ 510 -5703 1 1 0D 284
+ 510 185 00010000D 285
+ 510 -5703 1 1 0D 286
+ 510 186 00010000D 287
+ 510 -5703 1 1 0D 288
+ 510 187 00010000D 289
+ 510 -5703 1 1 0D 290
+ 510 188 00010000D 291
+ 510 -5703 1 1 0D 292
+ 510 189 00010000D 293
+ 510 -5703 1 1 0D 294
+ 510 190 00010000D 295
+ 510 -5703 1 1 0D 296
+ 510 191 00010000D 297
+ 510 -5703 1 1 0D 298
+ 510 192 00010000D 299
+ 510 -5703 1 1 0D 300
+ 510 193 00010000D 301
+ 510 -5703 1 1 0D 302
+ 510 194 00010000D 303
+ 510 -5703 1 1 0D 304
+ 510 195 00010000D 305
+ 510 -5703 1 1 0D 306
+ 510 196 00010000D 307
+ 510 -5703 1 1 0D 308
+ 510 197 00010000D 309
+ 510 -5703 1 1 0D 310
+ 510 198 00010000D 311
+ 510 -5703 1 1 0D 312
+ 510 199 00010000D 313
+ 510 -5703 1 1 0D 314
+ 510 200 00010000D 315
+ 510 -5703 1 1 0D 316
+ 510 201 00010000D 317
+ 510 -5703 1 1 0D 318
+ 510 202 00010000D 319
+ 510 -5703 1 1 0D 320
+ 510 203 00010000D 321
+ 510 -5703 1 1 0D 322
+ 510 204 00010000D 323
+ 510 -5703 1 1 0D 324
+ 510 205 00010000D 325
+ 510 -5703 1 1 0D 326
+ 510 206 00010000D 327
+ 510 -5703 1 1 0D 328
+ 510 207 00010000D 329
+ 510 -5703 1 1 0D 330
+ 510 208 00010000D 331
+ 510 -5703 1 1 0D 332
+ 510 209 00010000D 333
+ 510 -5703 1 1 0D 334
+ 510 210 00010000D 335
+ 510 -5703 1 1 0D 336
+ 510 211 00010000D 337
+ 510 -5703 1 1 0D 338
+ 510 212 00010000D 339
+ 510 -5703 1 1 0D 340
+ 510 213 00010000D 341
+ 510 -5703 1 1 0D 342
+ 510 214 00010000D 343
+ 510 -5703 1 1 0D 344
+ 510 215 00010000D 345
+ 510 -5703 1 1 0D 346
+ 510 216 00010000D 347
+ 510 -5703 1 1 0D 348
+ 510 217 00010000D 349
+ 510 -5703 1 1 0D 350
+ 510 218 00010000D 351
+ 510 -5703 1 1 0D 352
+ 510 219 00010000D 353
+ 510 -5703 1 1 0D 354
+ 510 220 00010000D 355
+ 510 -5703 1 1 0D 356
+ 510 221 00010000D 357
+ 510 -5703 1 1 0D 358
+ 510 222 00010000D 359
+ 510 -5703 1 1 0D 360
+ 510 223 00010000D 361
+ 510 -5703 1 1 0D 362
+ 510 224 00010000D 363
+ 510 -5703 1 1 0D 364
+ 510 225 00010000D 365
+ 510 -5703 1 1 0D 366
+ 510 226 00010000D 367
+ 510 -5703 1 1 0D 368
+ 510 227 00010000D 369
+ 510 -5703 1 1 0D 370
+ 510 228 00010000D 371
+ 510 -5703 1 1 0D 372
+ 510 229 00010000D 373
+ 510 -5703 1 1 0D 374
+ 510 230 00010000D 375
+ 510 -5703 1 1 0D 376
+ 510 231 00010000D 377
+ 510 -5703 1 1 0D 378
+ 510 232 00010000D 379
+ 510 -5703 1 1 0D 380
+ 510 233 00010000D 381
+ 510 -5703 1 1 0D 382
+ 510 234 00010000D 383
+ 510 -5703 1 1 0D 384
+ 510 235 00010000D 385
+ 510 -5703 1 1 0D 386
+ 510 236 00010000D 387
+ 510 -5703 1 1 0D 388
+ 510 237 00010000D 389
+ 510 -5703 1 1 0D 390
+ 510 238 00010000D 391
+ 510 -5703 1 1 0D 392
+ 510 239 00010000D 393
+ 510 -5703 1 1 0D 394
+ 510 240 00010000D 395
+ 510 -5703 1 1 0D 396
+ 510 241 00010000D 397
+ 510 -5703 1 1 0D 398
+ 510 242 00010000D 399
+ 510 -5703 1 1 0D 400
+ 510 243 00010000D 401
+ 510 -5703 1 1 0D 402
+ 510 244 00010000D 403
+ 510 -5703 1 1 0D 404
+ 510 245 00010000D 405
+ 510 -5703 1 1 0D 406
+ 510 246 00010000D 407
+ 510 -5703 1 1 0D 408
+ 510 247 00010000D 409
+ 510 -5703 1 1 0D 410
+ 510 248 00010000D 411
+ 510 -5703 1 1 0D 412
+ 510 249 00010000D 413
+ 510 -5703 1 1 0D 414
+ 510 250 00010000D 415
+ 510 -5703 1 1 0D 416
+ 510 251 00010000D 417
+ 510 -5703 1 1 0D 418
+ 510 252 00010000D 419
+ 510 -5703 1 1 0D 420
+ 510 253 00010000D 421
+ 510 -5703 1 1 0D 422
+ 510 254 00010000D 423
+ 510 -5703 1 1 0D 424
+ 510 255 00010000D 425
+ 510 -5703 1 1 0D 426
+ 510 256 00010000D 427
+ 510 -5703 1 1 0D 428
+ 510 257 00010000D 429
+ 510 -5703 1 1 0D 430
+ 510 258 00010000D 431
+ 510 -5703 1 1 0D 432
+ 510 259 00010000D 433
+ 510 -5703 1 1 0D 434
+ 510 260 00010000D 435
+ 510 -5703 1 1 0D 436
+ 510 261 00010000D 437
+ 510 -5703 1 1 0D 438
+ 510 262 00010000D 439
+ 510 -5703 1 1 0D 440
+ 510 263 00010000D 441
+ 510 -5703 1 1 0D 442
+ 510 264 00010000D 443
+ 510 -5703 1 1 0D 444
+ 510 265 00010000D 445
+ 510 -5703 1 1 0D 446
+ 510 266 00010000D 447
+ 510 -5703 1 1 0D 448
+ 510 267 00010000D 449
+ 510 -5703 1 1 0D 450
+ 510 268 00010000D 451
+ 510 -5703 1 1 0D 452
+ 510 269 00010000D 453
+ 510 -5703 1 1 0D 454
+ 510 270 00010000D 455
+ 510 -5703 1 1 0D 456
+ 510 271 00010000D 457
+ 510 -5703 1 1 0D 458
+ 510 272 00010000D 459
+ 510 -5703 1 1 0D 460
+ 510 273 00010000D 461
+ 510 -5703 1 1 0D 462
+ 510 274 00010000D 463
+ 510 -5703 1 1 0D 464
+ 510 275 00010000D 465
+ 510 -5703 1 1 0D 466
+ 510 276 00010000D 467
+ 510 -5703 1 1 0D 468
+ 510 277 00010000D 469
+ 510 -5703 1 1 0D 470
+ 510 278 00010000D 471
+ 510 -5703 1 1 0D 472
+ 510 279 00010000D 473
+ 510 -5703 1 1 0D 474
+ 510 280 00010000D 475
+ 510 -5703 1 1 0D 476
+ 510 281 00010000D 477
+ 510 -5703 1 1 0D 478
+ 510 282 00010000D 479
+ 510 -5703 1 1 0D 480
+ 510 283 00010000D 481
+ 510 -5703 1 1 0D 482
+ 510 284 00010000D 483
+ 510 -5703 1 1 0D 484
+ 510 285 00010000D 485
+ 510 -5703 1 1 0D 486
+ 510 286 00010000D 487
+ 510 -5703 1 1 0D 488
+ 510 287 00010000D 489
+ 510 -5703 1 1 0D 490
+ 510 288 00010000D 491
+ 510 -5703 1 1 0D 492
+ 510 289 00010000D 493
+ 510 -5703 1 1 0D 494
+ 510 290 00010000D 495
+ 510 -5703 1 1 0D 496
+ 510 291 00010000D 497
+ 510 -5703 1 1 0D 498
+ 510 292 00010000D 499
+ 510 -5703 1 1 0D 500
+ 510 293 00010000D 501
+ 510 -5703 1 1 0D 502
+ 510 294 00010000D 503
+ 510 -5703 1 1 0D 504
+ 510 295 00010000D 505
+ 510 -5703 1 1 0D 506
+ 510 296 00010000D 507
+ 510 -5703 1 1 0D 508
+ 510 297 00010000D 509
+ 510 -5703 1 1 0D 510
+ 510 298 00010000D 511
+ 510 -5703 1 1 0D 512
+ 510 299 00010000D 513
+ 510 -5703 1 1 0D 514
+ 510 300 00010000D 515
+ 510 -5703 1 1 0D 516
+ 510 301 00010000D 517
+ 510 -5703 1 1 0D 518
+ 510 302 00010000D 519
+ 510 -5703 1 1 0D 520
+ 510 303 00010000D 521
+ 510 -5703 1 1 0D 522
+ 510 304 00010000D 523
+ 510 -5703 1 1 0D 524
+ 510 305 00010000D 525
+ 510 -5703 1 1 0D 526
+ 510 306 00010000D 527
+ 510 -5703 1 1 0D 528
+ 510 307 00010000D 529
+ 510 -5703 1 1 0D 530
+ 510 308 00010000D 531
+ 510 -5703 1 1 0D 532
+ 510 309 00010000D 533
+ 510 -5703 1 1 0D 534
+ 510 310 00010000D 535
+ 510 -5703 1 1 0D 536
+ 510 311 00010000D 537
+ 510 -5703 1 1 0D 538
+ 510 312 00010000D 539
+ 510 -5703 1 1 0D 540
+ 510 313 00010000D 541
+ 510 -5703 1 1 0D 542
+ 510 314 00010000D 543
+ 510 -5703 1 1 0D 544
+ 510 315 00010000D 545
+ 510 -5703 1 1 0D 546
+ 510 316 00010000D 547
+ 510 -5703 1 1 0D 548
+ 510 317 00010000D 549
+ 510 -5703 1 1 0D 550
+ 510 318 00010000D 551
+ 510 -5703 1 1 0D 552
+ 510 319 00010000D 553
+ 510 -5703 1 1 0D 554
+ 510 320 00010000D 555
+ 510 -5703 1 1 0D 556
+ 510 321 00010000D 557
+ 510 -5703 1 1 0D 558
+ 510 322 00010000D 559
+ 510 -5703 1 1 0D 560
+ 510 323 00010000D 561
+ 510 -5703 1 1 0D 562
+ 510 324 00010000D 563
+ 510 -5703 1 1 0D 564
+ 510 325 00010000D 565
+ 510 -5703 1 1 0D 566
+ 510 326 00010000D 567
+ 510 -5703 1 1 0D 568
+ 510 327 00010000D 569
+ 510 -5703 1 1 0D 570
+ 510 328 00010000D 571
+ 510 -5703 1 1 0D 572
+ 510 329 00010000D 573
+ 510 -5703 1 1 0D 574
+ 510 330 00010000D 575
+ 510 -5703 1 1 0D 576
+ 510 331 00010000D 577
+ 510 -5703 1 1 0D 578
+ 510 332 00010000D 579
+ 510 -5703 1 1 0D 580
+ 510 333 00010000D 581
+ 510 -5703 1 1 0D 582
+ 510 334 00010000D 583
+ 510 -5703 1 1 0D 584
+ 510 335 00010000D 585
+ 510 -5703 1 1 0D 586
+ 510 336 00010000D 587
+ 510 -5703 1 1 0D 588
+ 510 337 00010000D 589
+ 510 -5703 1 1 0D 590
+ 510 338 00010000D 591
+ 510 -5703 1 1 0D 592
+ 510 339 00010000D 593
+ 510 -5703 1 1 0D 594
+ 510 340 00010000D 595
+ 510 -5703 1 1 0D 596
+ 510 341 00010000D 597
+ 510 -5703 1 1 0D 598
+ 510 342 00010000D 599
+ 510 -5703 1 1 0D 600
+ 510 343 00010000D 601
+ 510 -5703 1 1 0D 602
+ 510 344 00010000D 603
+ 510 -5703 1 1 0D 604
+ 510 345 00010000D 605
+ 510 -5703 1 1 0D 606
+ 510 346 00010000D 607
+ 510 -5703 1 1 0D 608
+ 510 347 00010000D 609
+ 510 -5703 1 1 0D 610
+ 510 348 00010000D 611
+ 510 -5703 1 1 0D 612
+ 510 349 00010000D 613
+ 510 -5703 1 1 0D 614
+ 510 350 00010000D 615
+ 510 -5703 1 1 0D 616
+ 510 351 00010000D 617
+ 510 -5703 1 1 0D 618
+ 510 352 00010000D 619
+ 510 -5703 1 1 0D 620
+ 510 353 00010000D 621
+ 510 -5703 1 1 0D 622
+ 510 354 00010000D 623
+ 510 -5703 3 1 0D 624
+ 510 357 00010000D 625
+ 510 -5703 3 1 0D 626
+ 510 360 00010000D 627
+ 510 -5705 1 1 0D 628
+ 510 361 00010000D 629
+ 510 -5705 1 1 0D 630
+ 510 362 00010000D 631
+ 510 -5705 1 1 0D 632
+ 510 363 00010000D 633
+ 510 -5705 1 1 0D 634
+ 510 364 00010000D 635
+ 510 -5705 1 1 0D 636
+ 510 365 00010000D 637
+ 510 -5705 1 1 0D 638
+ 510 366 00010000D 639
+ 510 -5705 1 1 0D 640
+ 510 367 00010000D 641
+ 510 -5705 1 1 0D 642
+ 510 368 00010000D 643
+ 510 -5705 1 1 0D 644
+ 510 369 00010000D 645
+ 510 -5705 1 1 0D 646
+ 510 370 00010000D 647
+ 510 -5705 1 1 0D 648
+ 510 371 00010000D 649
+ 510 -5705 1 1 0D 650
+ 510 372 00010000D 651
+ 510 -5705 1 1 0D 652
+ 510 373 00010000D 653
+ 510 -5705 1 1 0D 654
+ 510 374 00010000D 655
+ 510 -5705 1 1 0D 656
+ 510 375 00010000D 657
+ 510 -5705 1 1 0D 658
+ 510 376 00010000D 659
+ 510 -5705 1 1 0D 660
+ 510 377 00010000D 661
+ 510 -5705 1 1 0D 662
+ 510 378 00010000D 663
+ 510 -5705 1 1 0D 664
+ 510 379 00010000D 665
+ 510 -5705 1 1 0D 666
+ 510 380 00010000D 667
+ 510 -5705 1 1 0D 668
+ 510 381 00010000D 669
+ 510 -5705 1 1 0D 670
+ 510 382 00010000D 671
+ 510 -5705 1 1 0D 672
+ 510 383 00010000D 673
+ 510 -5705 1 1 0D 674
+ 510 384 00010000D 675
+ 510 -5705 1 1 0D 676
+ 510 385 00010000D 677
+ 510 -5705 1 1 0D 678
+ 510 386 00010000D 679
+ 510 -5705 1 1 0D 680
+ 510 387 00010000D 681
+ 510 -5705 1 1 0D 682
+ 510 388 00010000D 683
+ 510 -5705 1 1 0D 684
+ 510 389 00010000D 685
+ 510 -5705 1 1 0D 686
+ 510 390 00010000D 687
+ 510 -5705 1 1 0D 688
+ 510 391 00010000D 689
+ 510 -5705 1 1 0D 690
+ 510 392 00010000D 691
+ 510 -5705 1 1 0D 692
+ 510 393 00010000D 693
+ 510 -5705 1 1 0D 694
+ 510 394 00010000D 695
+ 510 -5705 1 1 0D 696
+ 510 395 00010000D 697
+ 510 -5705 1 1 0D 698
+ 510 396 00010000D 699
+ 510 -5705 1 1 0D 700
+ 510 397 00010000D 701
+ 510 -5705 1 1 0D 702
+ 510 398 00010000D 703
+ 510 -5705 1 1 0D 704
+ 510 399 00010000D 705
+ 510 -5705 1 1 0D 706
+ 510 400 00010000D 707
+ 510 -5705 1 1 0D 708
+ 510 401 00010000D 709
+ 510 -5705 1 1 0D 710
+ 510 402 00010000D 711
+ 510 -5705 1 1 0D 712
+ 510 403 00010000D 713
+ 510 -5705 1 1 0D 714
+ 510 404 00010000D 715
+ 510 -5705 1 1 0D 716
+ 510 405 00010000D 717
+ 510 -5705 1 1 0D 718
+ 510 406 00010000D 719
+ 510 -5705 1 1 0D 720
+ 510 407 00010000D 721
+ 510 -5705 1 1 0D 722
+ 510 408 00010000D 723
+ 510 -5705 1 1 0D 724
+ 510 409 00010000D 725
+ 510 -5705 1 1 0D 726
+ 510 410 00010000D 727
+ 510 -5705 1 1 0D 728
+ 510 411 00010000D 729
+ 510 -5705 1 1 0D 730
+ 510 412 00010000D 731
+ 510 -5705 1 1 0D 732
+ 510 413 00010000D 733
+ 510 -5705 1 1 0D 734
+ 510 414 00010000D 735
+ 510 -5705 1 1 0D 736
+ 510 415 00010000D 737
+ 510 -5705 1 1 0D 738
+ 510 416 00010000D 739
+ 510 -5705 1 1 0D 740
+ 510 417 00010000D 741
+ 510 -5705 1 1 0D 742
+ 510 418 00010000D 743
+ 510 -5705 1 1 0D 744
+ 510 419 00010000D 745
+ 510 -5705 1 1 0D 746
+ 510 420 00010000D 747
+ 510 -5705 1 1 0D 748
+ 510 421 00010000D 749
+ 510 -5705 1 1 0D 750
+ 510 422 00010000D 751
+ 510 -5705 1 1 0D 752
+ 510 423 00010000D 753
+ 510 -5705 1 1 0D 754
+ 510 424 00010000D 755
+ 510 -5705 1 1 0D 756
+ 510 425 00010000D 757
+ 510 -5705 1 1 0D 758
+ 510 426 00010000D 759
+ 510 -5705 1 1 0D 760
+ 510 427 00010000D 761
+ 510 -5705 1 1 0D 762
+ 510 428 00010000D 763
+ 510 -5705 1 1 0D 764
+ 510 429 00010000D 765
+ 510 -5705 1 1 0D 766
+ 510 430 00010000D 767
+ 510 -5705 1 1 0D 768
+ 510 431 00010000D 769
+ 510 -5705 1 1 0D 770
+ 510 432 00010000D 771
+ 510 -5705 1 1 0D 772
+ 510 433 00010000D 773
+ 510 -5705 1 1 0D 774
+ 510 434 00010000D 775
+ 510 -5705 1 1 0D 776
+ 510 435 00010000D 777
+ 510 -5705 1 1 0D 778
+ 510 436 00010000D 779
+ 510 -5705 1 1 0D 780
+ 510 437 00010000D 781
+ 510 -5705 1 1 0D 782
+ 510 438 00010000D 783
+ 510 -5705 1 1 0D 784
+ 510 439 00010000D 785
+ 510 -5705 1 1 0D 786
+ 510 440 00010000D 787
+ 510 -5705 1 1 0D 788
+ 510 441 00010000D 789
+ 510 -5705 1 1 0D 790
+ 510 442 00010000D 791
+ 510 -5705 1 1 0D 792
+ 510 443 00010000D 793
+ 510 -5705 1 1 0D 794
+ 510 444 00010000D 795
+ 510 -5705 1 1 0D 796
+ 510 445 00010000D 797
+ 510 -5705 1 1 0D 798
+ 510 446 00010000D 799
+ 510 -5705 1 1 0D 800
+ 510 447 00010000D 801
+ 510 -5705 1 1 0D 802
+ 510 448 00010000D 803
+ 510 -5705 1 1 0D 804
+ 510 449 00010000D 805
+ 510 -5705 1 1 0D 806
+ 510 450 00010000D 807
+ 510 -5705 1 1 0D 808
+ 510 451 00010000D 809
+ 510 -5705 1 1 0D 810
+ 510 452 00010000D 811
+ 510 -5705 1 1 0D 812
+ 510 453 00010000D 813
+ 510 -5705 1 1 0D 814
+ 510 454 00010000D 815
+ 510 -5705 1 1 0D 816
+ 510 455 00010000D 817
+ 510 -5705 1 1 0D 818
+ 510 456 00010000D 819
+ 510 -5705 1 1 0D 820
+ 510 457 00010000D 821
+ 510 -5705 1 1 0D 822
+ 510 458 00010000D 823
+ 510 -5705 1 1 0D 824
+ 510 459 00010000D 825
+ 510 -5705 1 1 0D 826
+ 510 460 00010000D 827
+ 510 -5705 1 1 0D 828
+ 510 461 00010000D 829
+ 510 -5705 1 1 0D 830
+ 510 462 00010000D 831
+ 510 -5705 1 1 0D 832
+ 510 463 00010000D 833
+ 510 -5705 1 1 0D 834
+ 510 464 00010000D 835
+ 510 -5705 1 1 0D 836
+ 510 465 00010000D 837
+ 510 -5705 1 1 0D 838
+ 510 466 00010000D 839
+ 510 -5705 1 1 0D 840
+ 510 467 00010000D 841
+ 510 -5705 1 1 0D 842
+ 510 468 00010000D 843
+ 510 -5705 1 1 0D 844
+ 510 469 00010000D 845
+ 510 -5705 1 1 0D 846
+ 510 470 00010000D 847
+ 510 -5705 1 1 0D 848
+ 510 471 00010000D 849
+ 510 -5705 1 1 0D 850
+ 510 472 00010000D 851
+ 510 -5705 1 1 0D 852
+ 510 473 00010000D 853
+ 510 -5705 1 1 0D 854
+ 510 474 00010000D 855
+ 510 -5705 1 1 0D 856
+ 510 475 00010000D 857
+ 510 -5705 1 1 0D 858
+ 510 476 00010000D 859
+ 510 -5705 1 1 0D 860
+ 510 477 00010000D 861
+ 510 -5705 1 1 0D 862
+ 510 478 00010000D 863
+ 510 -5705 1 1 0D 864
+ 510 479 00010000D 865
+ 510 -5705 1 1 0D 866
+ 510 480 00010000D 867
+ 510 -5705 1 1 0D 868
+ 510 481 00010000D 869
+ 510 -5705 1 1 0D 870
+ 510 482 00010000D 871
+ 510 -5705 1 1 0D 872
+ 510 483 00010000D 873
+ 510 -5705 1 1 0D 874
+ 510 484 00010000D 875
+ 510 -5705 1 1 0D 876
+ 510 485 00010000D 877
+ 510 -5705 1 1 0D 878
+ 510 486 00010000D 879
+ 510 -5705 1 1 0D 880
+ 510 487 00010000D 881
+ 510 -5705 1 1 0D 882
+ 510 488 00010000D 883
+ 510 -5705 1 1 0D 884
+ 510 489 00010000D 885
+ 510 -5705 1 1 0D 886
+ 510 490 00010000D 887
+ 510 -5705 1 1 0D 888
+ 510 491 00010000D 889
+ 510 -5705 1 1 0D 890
+ 510 492 00010000D 891
+ 510 -5705 1 1 0D 892
+ 510 493 00010000D 893
+ 510 -5705 1 1 0D 894
+ 510 494 00010000D 895
+ 510 -5705 1 1 0D 896
+ 510 495 00010000D 897
+ 510 -5705 1 1 0D 898
+ 510 496 00010000D 899
+ 510 -5705 1 1 0D 900
+ 510 497 00010000D 901
+ 510 -5705 1 1 0D 902
+ 510 498 00010000D 903
+ 510 -5705 1 1 0D 904
+ 510 499 00010000D 905
+ 510 -5705 1 1 0D 906
+ 510 500 00010000D 907
+ 510 -5705 1 1 0D 908
+ 510 501 00010000D 909
+ 510 -5705 1 1 0D 910
+ 510 502 00010000D 911
+ 510 -5705 1 1 0D 912
+ 510 503 00010000D 913
+ 510 -5705 1 1 0D 914
+ 510 504 00010000D 915
+ 510 -5705 1 1 0D 916
+ 510 505 00010000D 917
+ 510 -5705 1 1 0D 918
+ 510 506 00010000D 919
+ 510 -5705 1 1 0D 920
+ 510 507 00010000D 921
+ 510 -5705 1 1 0D 922
+ 510 508 00010000D 923
+ 510 -5705 1 1 0D 924
+ 510 509 00010000D 925
+ 510 -5705 1 1 0D 926
+ 510 510 00010000D 927
+ 510 -5705 1 1 0D 928
+ 510 511 00010000D 929
+ 510 -5705 1 1 0D 930
+ 510 512 00010000D 931
+ 510 -5705 1 1 0D 932
+ 510 513 00010000D 933
+ 510 -5705 1 1 0D 934
+ 508 514 00010000D 935
+ 508 1 1 0D 936
+ 508 515 00010000D 937
+ 508 1 1 0D 938
+ 508 516 00010000D 939
+ 508 1 1 0D 940
+ 508 517 00010000D 941
+ 508 1 1 0D 942
+ 508 518 00010000D 943
+ 508 1 1 0D 944
+ 508 519 00010000D 945
+ 508 1 1 0D 946
+ 508 520 00010000D 947
+ 508 1 1 0D 948
+ 508 521 00010000D 949
+ 508 1 1 0D 950
+ 508 522 00010000D 951
+ 508 1 1 0D 952
+ 508 523 00010000D 953
+ 508 1 1 0D 954
+ 508 524 00010000D 955
+ 508 1 1 0D 956
+ 508 525 00010000D 957
+ 508 1 1 0D 958
+ 508 526 00010000D 959
+ 508 1 1 0D 960
+ 508 527 00010000D 961
+ 508 1 1 0D 962
+ 508 528 00010000D 963
+ 508 1 1 0D 964
+ 508 529 00010000D 965
+ 508 1 1 0D 966
+ 508 530 00010000D 967
+ 508 1 1 0D 968
+ 508 531 00010000D 969
+ 508 1 1 0D 970
+ 508 532 00010000D 971
+ 508 1 1 0D 972
+ 508 533 00010000D 973
+ 508 1 1 0D 974
+ 508 534 00010000D 975
+ 508 1 1 0D 976
+ 508 535 00010000D 977
+ 508 1 1 0D 978
+ 508 536 00010000D 979
+ 508 1 1 0D 980
+ 508 537 00010000D 981
+ 508 1 1 0D 982
+ 508 538 00010000D 983
+ 508 1 1 0D 984
+ 508 539 00010000D 985
+ 508 1 1 0D 986
+ 508 540 00010000D 987
+ 508 1 1 0D 988
+ 508 541 00010000D 989
+ 508 1 1 0D 990
+ 508 542 00010000D 991
+ 508 1 1 0D 992
+ 508 543 00010000D 993
+ 508 1 1 0D 994
+ 508 544 00010000D 995
+ 508 1 1 0D 996
+ 508 545 00010000D 997
+ 508 1 1 0D 998
+ 508 546 00010000D 999
+ 508 1 1 0D 1000
+ 508 547 00010000D 1001
+ 508 2 1 0D 1002
+ 508 549 00010000D 1003
+ 508 2 1 0D 1004
+ 508 551 00010000D 1005
+ 508 2 1 0D 1006
+ 508 553 00010000D 1007
+ 508 2 1 0D 1008
+ 508 555 00010000D 1009
+ 508 2 1 0D 1010
+ 508 557 00010000D 1011
+ 508 2 1 0D 1012
+ 508 559 00010000D 1013
+ 508 2 1 0D 1014
+ 508 561 00010000D 1015
+ 508 2 1 0D 1016
+ 508 563 00010000D 1017
+ 508 2 1 0D 1018
+ 508 565 00010000D 1019
+ 508 2 1 0D 1020
+ 508 567 00010000D 1021
+ 508 2 1 0D 1022
+ 508 569 00010000D 1023
+ 508 2 1 0D 1024
+ 508 571 00010000D 1025
+ 508 2 1 0D 1026
+ 508 573 00010000D 1027
+ 508 2 1 0D 1028
+ 508 575 00010000D 1029
+ 508 2 1 0D 1030
+ 508 577 00010000D 1031
+ 508 2 1 0D 1032
+ 508 579 00010000D 1033
+ 508 2 1 0D 1034
+ 508 581 00010000D 1035
+ 508 2 1 0D 1036
+ 508 583 00010000D 1037
+ 508 2 1 0D 1038
+ 508 585 00010000D 1039
+ 508 2 1 0D 1040
+ 508 587 00010000D 1041
+ 508 2 1 0D 1042
+ 508 589 00010000D 1043
+ 508 2 1 0D 1044
+ 508 591 00010000D 1045
+ 508 2 1 0D 1046
+ 508 593 00010000D 1047
+ 508 2 1 0D 1048
+ 508 595 00010000D 1049
+ 508 2 1 0D 1050
+ 508 597 00010000D 1051
+ 508 2 1 0D 1052
+ 508 599 00010000D 1053
+ 508 2 1 0D 1054
+ 508 601 00010000D 1055
+ 508 2 1 0D 1056
+ 508 603 00010000D 1057
+ 508 2 1 0D 1058
+ 508 605 00010000D 1059
+ 508 2 1 0D 1060
+ 508 607 00010000D 1061
+ 508 2 1 0D 1062
+ 508 609 00010000D 1063
+ 508 2 1 0D 1064
+ 508 611 00010000D 1065
+ 508 2 1 0D 1066
+ 508 613 00010000D 1067
+ 508 2 1 0D 1068
+ 508 615 00010000D 1069
+ 508 2 1 0D 1070
+ 508 617 00010000D 1071
+ 508 2 1 0D 1072
+ 508 619 00010000D 1073
+ 508 2 1 0D 1074
+ 508 621 00010000D 1075
+ 508 2 1 0D 1076
+ 508 623 00010000D 1077
+ 508 2 1 0D 1078
+ 508 625 00010000D 1079
+ 508 2 1 0D 1080
+ 508 627 00010000D 1081
+ 508 2 1 0D 1082
+ 508 629 00010000D 1083
+ 508 2 1 0D 1084
+ 508 631 00010000D 1085
+ 508 2 1 0D 1086
+ 508 633 00010000D 1087
+ 508 2 1 0D 1088
+ 508 635 00010000D 1089
+ 508 2 1 0D 1090
+ 508 637 00010000D 1091
+ 508 2 1 0D 1092
+ 508 639 00010000D 1093
+ 508 2 1 0D 1094
+ 508 641 00010000D 1095
+ 508 2 1 0D 1096
+ 508 643 00010000D 1097
+ 508 2 1 0D 1098
+ 508 645 00010000D 1099
+ 508 2 1 0D 1100
+ 508 647 00010000D 1101
+ 508 2 1 0D 1102
+ 508 649 00010000D 1103
+ 508 2 1 0D 1104
+ 508 651 00010000D 1105
+ 508 2 1 0D 1106
+ 508 653 00010000D 1107
+ 508 2 1 0D 1108
+ 508 655 00010000D 1109
+ 508 2 1 0D 1110
+ 508 657 00010000D 1111
+ 508 2 1 0D 1112
+ 508 659 00010000D 1113
+ 508 2 1 0D 1114
+ 508 661 00010000D 1115
+ 508 2 1 0D 1116
+ 508 663 00010000D 1117
+ 508 2 1 0D 1118
+ 508 665 00010000D 1119
+ 508 2 1 0D 1120
+ 508 667 00010000D 1121
+ 508 2 1 0D 1122
+ 508 669 00010000D 1123
+ 508 2 1 0D 1124
+ 508 671 00010000D 1125
+ 508 2 1 0D 1126
+ 508 673 00010000D 1127
+ 508 2 1 0D 1128
+ 508 675 00010000D 1129
+ 508 2 1 0D 1130
+ 508 677 00010000D 1131
+ 508 2 1 0D 1132
+ 508 679 00010000D 1133
+ 508 2 1 0D 1134
+ 508 681 00010000D 1135
+ 508 2 1 0D 1136
+ 508 683 00010000D 1137
+ 508 2 1 0D 1138
+ 508 685 00010000D 1139
+ 508 2 1 0D 1140
+ 508 687 00010000D 1141
+ 508 2 1 0D 1142
+ 508 689 00010000D 1143
+ 508 2 1 0D 1144
+ 508 691 00010000D 1145
+ 508 2 1 0D 1146
+ 508 693 00010000D 1147
+ 508 2 1 0D 1148
+ 508 695 00010000D 1149
+ 508 2 1 0D 1150
+ 508 697 00010000D 1151
+ 508 2 1 0D 1152
+ 508 699 00010000D 1153
+ 508 2 1 0D 1154
+ 508 701 00010000D 1155
+ 508 2 1 0D 1156
+ 508 703 00010000D 1157
+ 508 2 1 0D 1158
+ 508 705 00010000D 1159
+ 508 2 1 0D 1160
+ 508 707 00010000D 1161
+ 508 2 1 0D 1162
+ 508 709 00010000D 1163
+ 508 2 1 0D 1164
+ 508 711 00010000D 1165
+ 508 2 1 0D 1166
+ 508 713 00010000D 1167
+ 508 2 1 0D 1168
+ 508 715 00010000D 1169
+ 508 2 1 0D 1170
+ 508 717 00010000D 1171
+ 508 2 1 0D 1172
+ 508 719 00010000D 1173
+ 508 2 1 0D 1174
+ 508 721 00010000D 1175
+ 508 2 1 0D 1176
+ 508 723 00010000D 1177
+ 508 2 1 0D 1178
+ 508 725 00010000D 1179
+ 508 2 1 0D 1180
+ 508 727 00010000D 1181
+ 508 2 1 0D 1182
+ 508 729 00010000D 1183
+ 508 2 1 0D 1184
+ 508 731 00010000D 1185
+ 508 2 1 0D 1186
+ 508 733 00010000D 1187
+ 508 2 1 0D 1188
+ 508 735 00010000D 1189
+ 508 2 1 0D 1190
+ 508 737 00010000D 1191
+ 508 2 1 0D 1192
+ 508 739 00010000D 1193
+ 508 2 1 0D 1194
+ 508 741 00010000D 1195
+ 508 2 1 0D 1196
+ 508 743 00010000D 1197
+ 508 2 1 0D 1198
+ 508 745 00010000D 1199
+ 508 2 1 0D 1200
+ 508 747 00010000D 1201
+ 508 2 1 0D 1202
+ 508 749 00010000D 1203
+ 508 2 1 0D 1204
+ 508 751 00010000D 1205
+ 508 2 1 0D 1206
+ 508 753 00010000D 1207
+ 508 2 1 0D 1208
+ 508 755 00010000D 1209
+ 508 2 1 0D 1210
+ 508 757 00010000D 1211
+ 508 2 1 0D 1212
+ 508 759 00010000D 1213
+ 508 2 1 0D 1214
+ 508 761 00010000D 1215
+ 508 2 1 0D 1216
+ 508 763 00010000D 1217
+ 508 2 1 0D 1218
+ 508 765 00010000D 1219
+ 508 2 1 0D 1220
+ 508 767 00010000D 1221
+ 508 2 1 0D 1222
+ 508 769 00010000D 1223
+ 508 2 1 0D 1224
+ 508 771 00010000D 1225
+ 508 2 1 0D 1226
+ 508 773 00010000D 1227
+ 508 2 1 0D 1228
+ 508 775 00010000D 1229
+ 508 2 1 0D 1230
+ 508 777 00010000D 1231
+ 508 2 1 0D 1232
+ 508 779 00010000D 1233
+ 508 2 1 0D 1234
+ 508 781 00010000D 1235
+ 508 2 1 0D 1236
+ 508 783 00010000D 1237
+ 508 2 1 0D 1238
+ 508 785 00010000D 1239
+ 508 2 1 0D 1240
+ 508 787 00010000D 1241
+ 508 2 1 0D 1242
+ 508 789 00010000D 1243
+ 508 2 1 0D 1244
+ 508 791 00010000D 1245
+ 508 2 1 0D 1246
+ 508 793 00010000D 1247
+ 508 2 1 0D 1248
+ 508 795 00010000D 1249
+ 508 2 1 0D 1250
+ 508 797 00010000D 1251
+ 508 2 1 0D 1252
+ 508 799 00010000D 1253
+ 508 2 1 0D 1254
+ 508 801 00010000D 1255
+ 508 2 1 0D 1256
+ 508 803 00010000D 1257
+ 508 2 1 0D 1258
+ 508 805 00010000D 1259
+ 508 2 1 0D 1260
+ 508 807 00010000D 1261
+ 508 2 1 0D 1262
+ 508 809 00010000D 1263
+ 508 2 1 0D 1264
+ 508 811 00010000D 1265
+ 508 2 1 0D 1266
+ 508 813 00010000D 1267
+ 508 2 1 0D 1268
+ 508 815 00010000D 1269
+ 508 2 1 0D 1270
+ 508 817 00010000D 1271
+ 508 2 1 0D 1272
+ 508 819 00010000D 1273
+ 508 2 1 0D 1274
+ 508 821 00010000D 1275
+ 508 2 1 0D 1276
+ 508 823 00010000D 1277
+ 508 2 1 0D 1278
+ 508 825 00010000D 1279
+ 508 2 1 0D 1280
+ 508 827 00010000D 1281
+ 508 2 1 0D 1282
+ 508 829 00010000D 1283
+ 508 2 1 0D 1284
+ 508 831 00010000D 1285
+ 508 2 1 0D 1286
+ 508 833 00010000D 1287
+ 508 2 1 0D 1288
+ 508 835 00010000D 1289
+ 508 2 1 0D 1290
+ 508 837 00010000D 1291
+ 508 2 1 0D 1292
+ 508 839 00010000D 1293
+ 508 2 1 0D 1294
+ 508 841 00010000D 1295
+ 508 2 1 0D 1296
+ 508 843 00010000D 1297
+ 508 2 1 0D 1298
+ 508 845 00010000D 1299
+ 508 2 1 0D 1300
+ 508 847 00010000D 1301
+ 508 2 1 0D 1302
+ 508 849 00010000D 1303
+ 508 2 1 0D 1304
+ 508 851 00010000D 1305
+ 508 2 1 0D 1306
+ 508 853 00010000D 1307
+ 508 2 1 0D 1308
+ 508 855 00010000D 1309
+ 508 2 1 0D 1310
+ 508 857 00010000D 1311
+ 508 2 1 0D 1312
+ 508 859 00010000D 1313
+ 508 2 1 0D 1314
+ 508 861 00010000D 1315
+ 508 2 1 0D 1316
+ 508 863 00010000D 1317
+ 508 2 1 0D 1318
+ 508 865 00010000D 1319
+ 508 2 1 0D 1320
+ 508 867 00010000D 1321
+ 508 2 1 0D 1322
+ 508 869 00010000D 1323
+ 508 2 1 0D 1324
+ 508 871 00010000D 1325
+ 508 2 1 0D 1326
+ 508 873 00010000D 1327
+ 508 2 1 0D 1328
+ 508 875 00010000D 1329
+ 508 2 1 0D 1330
+ 508 877 00010000D 1331
+ 508 2 1 0D 1332
+ 508 879 00010000D 1333
+ 508 2 1 0D 1334
+ 508 881 00010000D 1335
+ 508 2 1 0D 1336
+ 508 883 00010000D 1337
+ 508 2 1 0D 1338
+ 508 885 00010000D 1339
+ 508 2 1 0D 1340
+ 508 887 00010000D 1341
+ 508 2 1 0D 1342
+ 508 889 00010000D 1343
+ 508 2 1 0D 1344
+ 508 891 00010000D 1345
+ 508 2 1 0D 1346
+ 508 893 00010000D 1347
+ 508 2 1 0D 1348
+ 508 895 00010000D 1349
+ 508 2 1 0D 1350
+ 508 897 00010000D 1351
+ 508 2 1 0D 1352
+ 508 899 00010000D 1353
+ 508 2 1 0D 1354
+ 508 901 00010000D 1355
+ 508 2 1 0D 1356
+ 508 903 00010000D 1357
+ 508 2 1 0D 1358
+ 508 905 00010000D 1359
+ 508 2 1 0D 1360
+ 508 907 00010000D 1361
+ 508 2 1 0D 1362
+ 508 909 00010000D 1363
+ 508 2 1 0D 1364
+ 508 911 00010000D 1365
+ 508 2 1 0D 1366
+ 508 913 00010000D 1367
+ 508 2 1 0D 1368
+ 508 915 00010000D 1369
+ 508 2 1 0D 1370
+ 508 917 00010000D 1371
+ 508 2 1 0D 1372
+ 508 919 00010000D 1373
+ 508 2 1 0D 1374
+ 508 921 00010000D 1375
+ 508 2 1 0D 1376
+ 508 923 00010000D 1377
+ 508 2 1 0D 1378
+ 508 925 00010000D 1379
+ 508 2 1 0D 1380
+ 508 927 00010000D 1381
+ 508 2 1 0D 1382
+ 508 929 00010000D 1383
+ 508 2 1 0D 1384
+ 508 931 00010000D 1385
+ 508 2 1 0D 1386
+ 508 933 00010000D 1387
+ 508 2 1 0D 1388
+ 508 935 00010000D 1389
+ 508 2 1 0D 1390
+ 508 937 00010000D 1391
+ 508 2 1 0D 1392
+ 508 939 00010000D 1393
+ 508 2 1 0D 1394
+ 508 941 00010000D 1395
+ 508 2 1 0D 1396
+ 508 943 00010000D 1397
+ 508 2 1 0D 1398
+ 508 945 00010000D 1399
+ 508 2 1 0D 1400
+ 508 947 00010000D 1401
+ 508 2 1 0D 1402
+ 508 949 00010000D 1403
+ 508 2 1 0D 1404
+ 508 951 00010000D 1405
+ 508 2 1 0D 1406
+ 508 953 00010000D 1407
+ 508 2 1 0D 1408
+ 508 955 00010000D 1409
+ 508 2 1 0D 1410
+ 508 957 00010000D 1411
+ 508 2 1 0D 1412
+ 508 959 00010000D 1413
+ 508 2 1 0D 1414
+ 508 961 00010000D 1415
+ 508 2 1 0D 1416
+ 508 963 00010000D 1417
+ 508 2 1 0D 1418
+ 508 965 00010000D 1419
+ 508 2 1 0D 1420
+ 508 967 00010000D 1421
+ 508 2 1 0D 1422
+ 508 969 00010000D 1423
+ 508 2 1 0D 1424
+ 508 971 00010000D 1425
+ 508 2 1 0D 1426
+ 508 973 00010000D 1427
+ 508 2 1 0D 1428
+ 508 975 00010000D 1429
+ 508 2 1 0D 1430
+ 508 977 00010000D 1431
+ 508 2 1 0D 1432
+ 508 979 00010000D 1433
+ 508 2 1 0D 1434
+ 508 981 00010000D 1435
+ 508 2 1 0D 1436
+ 508 983 00010000D 1437
+ 508 2 1 0D 1438
+ 508 985 00010000D 1439
+ 508 2 1 0D 1440
+ 508 987 00010000D 1441
+ 508 2 1 0D 1442
+ 508 989 00010000D 1443
+ 508 2 1 0D 1444
+ 508 991 00010000D 1445
+ 508 2 1 0D 1446
+ 508 993 00010000D 1447
+ 508 2 1 0D 1448
+ 508 995 00010000D 1449
+ 508 2 1 0D 1450
+ 508 997 00010000D 1451
+ 508 2 1 0D 1452
+ 508 999 00010000D 1453
+ 508 2 1 0D 1454
+ 508 1001 00010000D 1455
+ 508 2 1 0D 1456
+ 508 1003 00010000D 1457
+ 508 2 1 0D 1458
+ 508 1005 00010000D 1459
+ 508 2 1 0D 1460
+ 508 1007 00010000D 1461
+ 508 2 1 0D 1462
+ 508 1009 00010000D 1463
+ 508 2 1 0D 1464
+ 508 1011 00010000D 1465
+ 508 2 1 0D 1466
+ 508 1013 00010000D 1467
+ 508 2 1 0D 1468
+ 508 1015 00010000D 1469
+ 508 2 1 0D 1470
+ 508 1017 00010000D 1471
+ 508 2 1 0D 1472
+ 508 1019 00010000D 1473
+ 508 2 1 0D 1474
+ 508 1021 00010000D 1475
+ 508 2 1 0D 1476
+ 508 1023 00010000D 1477
+ 508 2 1 0D 1478
+ 508 1025 00010000D 1479
+ 508 2 1 0D 1480
+ 508 1027 00010000D 1481
+ 508 2 1 0D 1482
+ 508 1029 00010000D 1483
+ 508 2 1 0D 1484
+ 508 1031 00010000D 1485
+ 508 2 1 0D 1486
+ 508 1033 00010000D 1487
+ 508 2 1 0D 1488
+ 508 1035 00010000D 1489
+ 508 2 1 0D 1490
+ 508 1037 00010000D 1491
+ 508 2 1 0D 1492
+ 508 1039 00010000D 1493
+ 508 2 1 0D 1494
+ 508 1041 00010000D 1495
+ 508 2 1 0D 1496
+ 508 1043 00010000D 1497
+ 508 2 1 0D 1498
+ 508 1045 00010000D 1499
+ 508 2 1 0D 1500
+ 508 1047 00010000D 1501
+ 508 2 1 0D 1502
+ 508 1049 00010000D 1503
+ 508 2 1 0D 1504
+ 508 1051 00010000D 1505
+ 508 2 1 0D 1506
+ 508 1053 00010000D 1507
+ 508 2 1 0D 1508
+ 508 1055 00010000D 1509
+ 508 2 1 0D 1510
+ 508 1057 00010000D 1511
+ 508 2 1 0D 1512
+ 508 1059 00010000D 1513
+ 508 2 1 0D 1514
+ 508 1061 00010000D 1515
+ 508 2 1 0D 1516
+ 508 1063 00010000D 1517
+ 508 2 1 0D 1518
+ 508 1065 00010000D 1519
+ 508 2 1 0D 1520
+ 508 1067 00010000D 1521
+ 508 2 1 0D 1522
+ 508 1069 00010000D 1523
+ 508 2 1 0D 1524
+ 508 1071 00010000D 1525
+ 508 2 1 0D 1526
+ 508 1073 00010000D 1527
+ 508 2 1 0D 1528
+ 508 1075 00010000D 1529
+ 508 2 1 0D 1530
+ 508 1077 00010000D 1531
+ 508 2 1 0D 1532
+ 508 1079 00010000D 1533
+ 508 2 1 0D 1534
+ 508 1081 00010000D 1535
+ 508 2 1 0D 1536
+ 508 1083 00010000D 1537
+ 508 2 1 0D 1538
+ 508 1085 00010000D 1539
+ 508 2 1 0D 1540
+ 508 1087 00010000D 1541
+ 508 2 1 0D 1542
+ 508 1089 00010000D 1543
+ 508 2 1 0D 1544
+ 508 1091 00010000D 1545
+ 508 3 1 0D 1546
+ 508 1094 00010000D 1547
+ 508 3 1 0D 1548
+ 508 1097 00010000D 1549
+ 508 3 1 0D 1550
+ 508 1100 00010000D 1551
+ 508 3 1 0D 1552
+ 508 1103 00010000D 1553
+ 508 3 1 0D 1554
+ 508 1106 00010000D 1555
+ 508 3 1 0D 1556
+ 508 1109 00010000D 1557
+ 508 3 1 0D 1558
+ 508 1112 00010000D 1559
+ 508 3 1 0D 1560
+ 508 1115 00010000D 1561
+ 508 3 1 0D 1562
+ 508 1118 00010000D 1563
+ 508 3 1 0D 1564
+ 508 1121 00010000D 1565
+ 508 3 1 0D 1566
+ 508 1124 00010000D 1567
+ 508 3 1 0D 1568
+ 508 1127 00010000D 1569
+ 508 3 1 0D 1570
+ 508 1130 00010000D 1571
+ 508 3 1 0D 1572
+ 508 1133 00010000D 1573
+ 508 3 1 0D 1574
+ 508 1136 00010000D 1575
+ 508 3 1 0D 1576
+ 508 1139 00010000D 1577
+ 508 3 1 0D 1578
+ 508 1142 00010000D 1579
+ 508 3 1 0D 1580
+ 508 1145 00010000D 1581
+ 508 3 1 0D 1582
+ 508 1148 00010000D 1583
+ 508 3 1 0D 1584
+ 508 1151 00010000D 1585
+ 508 3 1 0D 1586
+ 508 1154 00010000D 1587
+ 508 3 1 0D 1588
+ 508 1157 00010000D 1589
+ 508 3 1 0D 1590
+ 508 1160 00010000D 1591
+ 508 3 1 0D 1592
+ 508 1163 00010000D 1593
+ 508 3 1 0D 1594
+ 508 1166 00010000D 1595
+ 508 1 1 0D 1596
+ 508 1167 00010000D 1597
+ 508 1 1 0D 1598
+ 508 1168 00010000D 1599
+ 508 1 1 0D 1600
+ 508 1169 00010000D 1601
+ 508 1 1 0D 1602
+ 508 1170 00010000D 1603
+ 508 3 1 0D 1604
+ 508 1173 00010000D 1605
+ 508 3 1 0D 1606
+ 508 1176 00010000D 1607
+ 508 3 1 0D 1608
+ 508 1179 00010000D 1609
+ 508 3 1 0D 1610
+ 508 1182 00010000D 1611
+ 508 3 1 0D 1612
+ 508 1185 00010000D 1613
+ 508 3 1 0D 1614
+ 508 1188 00010000D 1615
+ 508 3 1 0D 1616
+ 508 1191 00010000D 1617
+ 508 3 1 0D 1618
+ 508 1194 00010000D 1619
+ 508 3 1 0D 1620
+ 508 1197 00010000D 1621
+ 508 3 1 0D 1622
+ 508 1200 00010000D 1623
+ 508 3 1 0D 1624
+ 508 1203 00010000D 1625
+ 508 3 1 0D 1626
+ 508 1206 00010000D 1627
+ 508 3 1 0D 1628
+ 508 1209 00010000D 1629
+ 508 3 1 0D 1630
+ 508 1212 00010000D 1631
+ 508 3 1 0D 1632
+ 508 1215 00010000D 1633
+ 508 3 1 0D 1634
+ 508 1218 00010000D 1635
+ 508 3 1 0D 1636
+ 508 1221 00010000D 1637
+ 508 3 1 0D 1638
+ 508 1224 00010000D 1639
+ 508 3 1 0D 1640
+ 508 1227 00010000D 1641
+ 508 3 1 0D 1642
+ 508 1230 00010000D 1643
+ 508 3 1 0D 1644
+ 508 1233 00010000D 1645
+ 508 3 1 0D 1646
+ 508 1236 00010000D 1647
+ 508 3 1 0D 1648
+ 508 1239 00010000D 1649
+ 508 3 1 0D 1650
+ 508 1242 00010000D 1651
+ 508 3 1 0D 1652
+ 508 1245 00010000D 1653
+ 508 1 1 0D 1654
+ 508 1246 00010000D 1655
+ 508 1 1 0D 1656
+ 508 1247 00010000D 1657
+ 508 1 1 0D 1658
+ 508 1248 00010000D 1659
+ 508 1 1 0D 1660
+ 508 1249 00010000D 1661
+ 508 1 1 0D 1662
+ 508 1250 00010000D 1663
+ 508 1 1 0D 1664
+ 508 1251 00010000D 1665
+ 508 1 1 0D 1666
+ 508 1252 00010000D 1667
+ 508 1 1 0D 1668
+ 508 1253 00010000D 1669
+ 508 1 1 0D 1670
+ 508 1254 00010000D 1671
+ 508 1 1 0D 1672
+ 508 1255 00010000D 1673
+ 508 2 1 0D 1674
+ 508 1257 00010000D 1675
+ 508 1 1 0D 1676
+ 508 1258 00010000D 1677
+ 508 1 1 0D 1678
+ 508 1259 00010000D 1679
+ 508 1 1 0D 1680
+ 508 1260 00010000D 1681
+ 508 1 1 0D 1682
+ 508 1261 00010000D 1683
+ 508 1 1 0D 1684
+ 508 1262 00010000D 1685
+ 508 1 1 0D 1686
+ 508 1263 00010000D 1687
+ 508 1 1 0D 1688
+ 508 1264 00010000D 1689
+ 508 1 1 0D 1690
+ 508 1265 00010000D 1691
+ 508 2 1 0D 1692
+ 508 1267 00010000D 1693
+ 508 1 1 0D 1694
+ 508 1268 00010000D 1695
+ 508 1 1 0D 1696
+ 508 1269 00010000D 1697
+ 508 1 1 0D 1698
+ 508 1270 00010000D 1699
+ 508 1 1 0D 1700
+ 508 1271 00010000D 1701
+ 508 1 1 0D 1702
+ 508 1272 00010000D 1703
+ 508 1 1 0D 1704
+ 508 1273 00010000D 1705
+ 508 1 1 0D 1706
+ 508 1274 00010000D 1707
+ 508 1 1 0D 1708
+ 508 1275 00010000D 1709
+ 508 1 1 0D 1710
+ 508 1276 00010000D 1711
+ 508 1 1 0D 1712
+ 508 1277 00010000D 1713
+ 508 1 1 0D 1714
+ 508 1278 00010000D 1715
+ 508 1 1 0D 1716
+ 508 1279 00010000D 1717
+ 508 1 1 0D 1718
+ 508 1280 00010000D 1719
+ 508 1 1 0D 1720
+ 508 1281 00010000D 1721
+ 508 2 1 0D 1722
+ 508 1283 00010000D 1723
+ 508 5 1 0D 1724
+ 508 1288 00010000D 1725
+ 508 2 1 0D 1726
+ 508 1290 00010000D 1727
+ 508 1 1 0D 1728
+ 508 1291 00010000D 1729
+ 508 1 1 0D 1730
+ 508 1292 00010000D 1731
+ 508 1 1 0D 1732
+ 508 1293 00010000D 1733
+ 508 1 1 0D 1734
+ 508 1294 00010000D 1735
+ 508 1 1 0D 1736
+ 508 1295 00010000D 1737
+ 508 1 1 0D 1738
+ 508 1296 00010000D 1739
+ 508 2 1 0D 1740
+ 508 1298 00010000D 1741
+ 508 2 1 0D 1742
+ 508 1300 00010000D 1743
+ 508 2 1 0D 1744
+ 508 1302 00010000D 1745
+ 508 2 1 0D 1746
+ 508 1304 00010000D 1747
+ 508 3 1 0D 1748
+ 508 1307 00010000D 1749
+ 508 2 1 0D 1750
+ 508 1309 00010000D 1751
+ 508 2 1 0D 1752
+ 508 1311 00010000D 1753
+ 508 2 1 0D 1754
+ 508 1313 00010000D 1755
+ 508 2 1 0D 1756
+ 508 1315 00010000D 1757
+ 508 2 1 0D 1758
+ 508 1317 00010000D 1759
+ 508 2 1 0D 1760
+ 508 1319 00010000D 1761
+ 508 2 1 0D 1762
+ 508 1321 00010000D 1763
+ 508 2 1 0D 1764
+ 508 1323 00010000D 1765
+ 508 2 1 0D 1766
+ 508 1325 00010000D 1767
+ 508 1 1 0D 1768
+ 508 1326 00010000D 1769
+ 508 2 1 0D 1770
+ 508 1328 00010000D 1771
+ 508 2 1 0D 1772
+ 508 1330 00010000D 1773
+ 508 2 1 0D 1774
+ 508 1332 00010000D 1775
+ 508 2 1 0D 1776
+ 508 1334 00010000D 1777
+ 508 2 1 0D 1778
+ 508 1336 00010000D 1779
+ 508 2 1 0D 1780
+ 508 1338 00010000D 1781
+ 508 3 1 0D 1782
+ 508 1341 00010000D 1783
+ 508 2 1 0D 1784
+ 508 1343 00010000D 1785
+ 508 3 1 0D 1786
+ 508 1346 00010000D 1787
+ 508 3 1 0D 1788
+ 508 1349 00010000D 1789
+ 508 2 1 0D 1790
+ 508 1351 00010000D 1791
+ 508 2 1 0D 1792
+ 508 1353 00010000D 1793
+ 508 2 1 0D 1794
+ 508 1355 00010000D 1795
+ 508 2 1 0D 1796
+ 508 1357 00010000D 1797
+ 508 2 1 0D 1798
+ 508 1359 00010000D 1799
+ 508 2 1 0D 1800
+ 508 1361 00010000D 1801
+ 508 2 1 0D 1802
+ 508 1363 00010000D 1803
+ 508 3 1 0D 1804
+ 508 1366 00010000D 1805
+ 508 2 1 0D 1806
+ 508 1368 00010000D 1807
+ 508 5 1 0D 1808
+ 508 1373 00010000D 1809
+ 508 1 1 0D 1810
+ 508 1374 00010000D 1811
+ 508 1 1 0D 1812
+ 508 1375 00010000D 1813
+ 508 1 1 0D 1814
+ 508 1376 00010000D 1815
+ 508 1 1 0D 1816
+ 508 1377 00010000D 1817
+ 508 1 1 0D 1818
+ 508 1378 00010000D 1819
+ 508 1 1 0D 1820
+ 508 1379 00010000D 1821
+ 508 1 1 0D 1822
+ 508 1380 00010000D 1823
+ 508 2 1 0D 1824
+ 508 1382 00010000D 1825
+ 508 3 1 0D 1826
+ 508 1385 00010000D 1827
+ 508 2 1 0D 1828
+ 508 1387 00010000D 1829
+ 508 2 1 0D 1830
+ 508 1389 00010000D 1831
+ 508 1 1 0D 1832
+ 508 1390 00010000D 1833
+ 508 3 1 0D 1834
+ 508 1393 00010000D 1835
+ 508 4 1 0D 1836
+ 508 1397 00010000D 1837
+ 508 1 1 0D 1838
+ 508 1398 00010000D 1839
+ 508 1 1 0D 1840
+ 508 1399 00010000D 1841
+ 508 1 1 0D 1842
+ 508 1400 00010000D 1843
+ 508 1 1 0D 1844
+ 508 1401 00010000D 1845
+ 508 1 1 0D 1846
+ 508 1402 00010000D 1847
+ 508 1 1 0D 1848
+ 508 1403 00010000D 1849
+ 508 1 1 0D 1850
+ 508 1404 00010000D 1851
+ 508 1 1 0D 1852
+ 508 1405 00010000D 1853
+ 508 1 1 0D 1854
+ 508 1406 00010000D 1855
+ 508 1 1 0D 1856
+ 508 1407 00010000D 1857
+ 508 1 1 0D 1858
+ 508 1408 00010000D 1859
+ 508 1 1 0D 1860
+ 508 1409 00010000D 1861
+ 508 1 1 0D 1862
+ 508 1410 00010000D 1863
+ 508 1 1 0D 1864
+ 508 1411 00010000D 1865
+ 508 1 1 0D 1866
+ 508 1412 00010000D 1867
+ 508 1 1 0D 1868
+ 508 1413 00010000D 1869
+ 508 2 1 0D 1870
+ 508 1415 00010000D 1871
+ 508 2 1 0D 1872
+ 508 1417 00010000D 1873
+ 508 2 1 0D 1874
+ 508 1419 00010000D 1875
+ 508 2 1 0D 1876
+ 508 1421 00010000D 1877
+ 508 2 1 0D 1878
+ 508 1423 00010000D 1879
+ 508 2 1 0D 1880
+ 508 1425 00010000D 1881
+ 508 2 1 0D 1882
+ 508 1427 00010000D 1883
+ 508 2 1 0D 1884
+ 508 1429 00010000D 1885
+ 508 2 1 0D 1886
+ 508 1431 00010000D 1887
+ 508 2 1 0D 1888
+ 508 1433 00010000D 1889
+ 508 2 1 0D 1890
+ 508 1435 00010000D 1891
+ 508 2 1 0D 1892
+ 508 1437 00010000D 1893
+ 508 2 1 0D 1894
+ 508 1439 00010000D 1895
+ 508 2 1 0D 1896
+ 508 1441 00010000D 1897
+ 508 2 1 0D 1898
+ 508 1443 00010000D 1899
+ 508 2 1 0D 1900
+ 508 1445 00010000D 1901
+ 508 2 1 0D 1902
+ 508 1447 00010000D 1903
+ 508 5 1 0D 1904
+ 508 1452 00010000D 1905
+ 508 3 1 0D 1906
+ 508 1455 00010000D 1907
+ 508 5 1 0D 1908
+ 508 1460 00010000D 1909
+ 508 1 1 0D 1910
+ 508 1461 00010000D 1911
+ 508 1 1 0D 1912
+ 508 1462 00010000D 1913
+ 508 1 1 0D 1914
+ 508 1463 00010000D 1915
+ 508 1 1 0D 1916
+ 508 1464 00010000D 1917
+ 508 1 1 0D 1918
+ 508 1465 00010000D 1919
+ 508 1 1 0D 1920
+ 508 1466 00010000D 1921
+ 508 5 1 0D 1922
+ 508 1471 00010000D 1923
+ 508 2 1 0D 1924
+ 508 1473 00010000D 1925
+ 508 2 1 0D 1926
+ 508 1475 00010000D 1927
+ 508 2 1 0D 1928
+ 508 1477 00010000D 1929
+ 508 2 1 0D 1930
+ 508 1479 00010000D 1931
+ 508 2 1 0D 1932
+ 508 1481 00010000D 1933
+ 508 2 1 0D 1934
+ 508 1483 00010000D 1935
+ 508 2 1 0D 1936
+ 508 1485 00010000D 1937
+ 508 1 1 0D 1938
+ 508 1486 00010000D 1939
+ 508 2 1 0D 1940
+ 508 1488 00010000D 1941
+ 508 2 1 0D 1942
+ 508 1490 00010000D 1943
+ 508 2 1 0D 1944
+ 508 1492 00010000D 1945
+ 508 2 1 0D 1946
+ 508 1494 00010000D 1947
+ 508 2 1 0D 1948
+ 508 1496 00010000D 1949
+ 508 2 1 0D 1950
+ 508 1498 00010000D 1951
+ 508 2 1 0D 1952
+ 508 1500 00010000D 1953
+ 508 2 1 0D 1954
+ 508 1502 00010000D 1955
+ 508 2 1 0D 1956
+ 508 1504 00010000D 1957
+ 508 2 1 0D 1958
+ 508 1506 00010000D 1959
+ 508 2 1 0D 1960
+ 508 1508 00010000D 1961
+ 508 2 1 0D 1962
+ 508 1510 00010000D 1963
+ 508 2 1 0D 1964
+ 508 1512 00010000D 1965
+ 508 1 1 0D 1966
+ 508 1513 00010000D 1967
+ 508 2 1 0D 1968
+ 508 1515 00010000D 1969
+ 508 3 1 0D 1970
+ 508 1518 00010000D 1971
+ 508 1 1 0D 1972
+ 508 1519 00010000D 1973
+ 508 2 1 0D 1974
+ 508 1521 00010000D 1975
+ 508 1 1 0D 1976
+ 508 1522 00010000D 1977
+ 508 1 1 0D 1978
+ 508 1523 00010000D 1979
+ 508 1 1 0D 1980
+ 508 1524 00010000D 1981
+ 508 1 1 0D 1982
+ 508 1525 00010000D 1983
+ 508 2 1 0D 1984
+ 508 1527 00010000D 1985
+ 508 1 1 0D 1986
+ 508 1528 00010000D 1987
+ 508 2 1 0D 1988
+ 508 1530 00010000D 1989
+ 508 2 1 0D 1990
+ 508 1532 00010000D 1991
+ 508 2 1 0D 1992
+ 508 1534 00010000D 1993
+ 508 2 1 0D 1994
+ 508 1536 00010000D 1995
+ 508 2 1 0D 1996
+ 508 1538 00010000D 1997
+ 508 2 1 0D 1998
+ 508 1540 00010000D 1999
+ 508 2 1 0D 2000
+ 508 1542 00010000D 2001
+ 508 2 1 0D 2002
+ 508 1544 00010000D 2003
+ 508 3 1 0D 2004
+ 508 1547 00010000D 2005
+ 508 2 1 0D 2006
+ 508 1549 00010000D 2007
+ 508 3 1 0D 2008
+ 508 1552 00010000D 2009
+ 508 3 1 0D 2010
+ 508 1555 00010000D 2011
+ 508 2 1 0D 2012
+ 508 1557 00010000D 2013
+ 508 2 1 0D 2014
+ 508 1559 00010000D 2015
+ 508 2 1 0D 2016
+ 508 1561 00010000D 2017
+ 508 2 1 0D 2018
+ 508 1563 00010000D 2019
+ 508 2 1 0D 2020
+ 508 1565 00010000D 2021
+ 508 2 1 0D 2022
+ 508 1567 00010000D 2023
+ 508 1 1 0D 2024
+ 508 1568 00010000D 2025
+ 508 1 1 0D 2026
+ 126 1569 00010000D 2027
+ 126 0 13 0 0D 2028
+ 126 1582 00010000D 2029
+ 126 0 4 0 0D 2030
+ 126 1586 00010000D 2031
+ 126 0 13 0 0D 2032
+ 126 1599 00010000D 2033
+ 126 0 3 0 0D 2034
+ 126 1602 00010000D 2035
+ 126 0 13 0 0D 2036
+ 126 1615 00010000D 2037
+ 126 0 13 0 0D 2038
+ 126 1628 00010000D 2039
+ 126 0 13 0 0D 2040
+ 126 1641 00010000D 2041
+ 126 0 4 0 0D 2042
+ 126 1645 00010000D 2043
+ 126 0 13 0 0D 2044
+ 126 1658 00010000D 2045
+ 126 0 3 0 0D 2046
+ 126 1661 00010000D 2047
+ 126 0 13 0 0D 2048
+ 126 1674 00010000D 2049
+ 126 0 13 0 0D 2050
+ 126 1687 00010000D 2051
+ 126 0 11 0 0D 2052
+ 126 1698 00010000D 2053
+ 126 0 3 0 0D 2054
+ 126 1701 00010000D 2055
+ 126 0 11 0 0D 2056
+ 126 1712 00010000D 2057
+ 126 0 3 0 0D 2058
+ 126 1715 00010000D 2059
+ 126 0 11 0 0D 2060
+ 126 1726 00010000D 2061
+ 126 0 11 0 0D 2062
+ 126 1737 00010000D 2063
+ 126 0 11 0 0D 2064
+ 126 1748 00010000D 2065
+ 126 0 3 0 0D 2066
+ 126 1751 00010000D 2067
+ 126 0 11 0 0D 2068
+ 126 1762 00010000D 2069
+ 126 0 3 0 0D 2070
+ 126 1765 00010000D 2071
+ 126 0 11 0 0D 2072
+ 126 1776 00010000D 2073
+ 126 0 11 0 0D 2074
+ 126 1787 00010000D 2075
+ 126 0 4 0 0D 2076
+ 126 1791 00010000D 2077
+ 126 0 3 0 0D 2078
+ 126 1794 00010000D 2079
+ 126 0 4 0 0D 2080
+ 126 1798 00010000D 2081
+ 126 0 3 0 0D 2082
+ 126 1801 00010000D 2083
+ 126 0 4 0 0D 2084
+ 126 1805 00010000D 2085
+ 126 0 4 0 0D 2086
+ 126 1809 00010000D 2087
+ 126 0 3 0 0D 2088
+ 126 1812 00010000D 2089
+ 126 0 4 0 0D 2090
+ 126 1816 00010000D 2091
+ 126 0 4 0 0D 2092
+ 126 1820 00010000D 2093
+ 126 0 3 0 0D 2094
+ 126 1823 00010000D 2095
+ 126 0 4 0 0D 2096
+ 126 1827 00010000D 2097
+ 126 0 4 0 0D 2098
+ 126 1831 00010000D 2099
+ 126 0 3 0 0D 2100
+ 126 1834 00010000D 2101
+ 126 0 4 0 0D 2102
+ 126 1838 00010000D 2103
+ 126 0 4 0 0D 2104
+ 126 1842 00010000D 2105
+ 126 0 3 0 0D 2106
+ 126 1845 00010000D 2107
+ 126 0 4 0 0D 2108
+ 126 1849 00010000D 2109
+ 126 0 4 0 0D 2110
+ 126 1853 00010000D 2111
+ 126 0 3 0 0D 2112
+ 126 1856 00010000D 2113
+ 126 0 4 0 0D 2114
+ 126 1860 00010000D 2115
+ 126 0 4 0 0D 2116
+ 126 1864 00010000D 2117
+ 126 0 3 0 0D 2118
+ 126 1867 00010000D 2119
+ 126 0 4 0 0D 2120
+ 126 1871 00010000D 2121
+ 126 0 4 0 0D 2122
+ 126 1875 00010000D 2123
+ 126 0 3 0 0D 2124
+ 126 1878 00010000D 2125
+ 126 0 4 0 0D 2126
+ 126 1882 00010000D 2127
+ 126 0 4 0 0D 2128
+ 126 1886 00010000D 2129
+ 126 0 3 0 0D 2130
+ 126 1889 00010000D 2131
+ 126 0 4 0 0D 2132
+ 126 1893 00010000D 2133
+ 126 0 4 0 0D 2134
+ 126 1897 00010000D 2135
+ 126 0 3 0 0D 2136
+ 126 1900 00010000D 2137
+ 126 0 4 0 0D 2138
+ 126 1904 00010000D 2139
+ 126 0 4 0 0D 2140
+ 126 1908 00010000D 2141
+ 126 0 3 0 0D 2142
+ 126 1911 00010000D 2143
+ 126 0 4 0 0D 2144
+ 126 1915 00010000D 2145
+ 126 0 4 0 0D 2146
+ 126 1919 00010000D 2147
+ 126 0 4 0 0D 2148
+ 126 1923 00010000D 2149
+ 126 0 3 0 0D 2150
+ 126 1926 00010000D 2151
+ 126 0 4 0 0D 2152
+ 126 1930 00010000D 2153
+ 126 0 3 0 0D 2154
+ 126 1933 00010000D 2155
+ 126 0 4 0 0D 2156
+ 126 1937 00010000D 2157
+ 126 0 4 0 0D 2158
+ 126 1941 00010000D 2159
+ 126 0 3 0 0D 2160
+ 126 1944 00010000D 2161
+ 126 0 4 0 0D 2162
+ 126 1948 00010000D 2163
+ 126 0 4 0 0D 2164
+ 126 1952 00010000D 2165
+ 126 0 3 0 0D 2166
+ 126 1955 00010000D 2167
+ 126 0 4 0 0D 2168
+ 126 1959 00010000D 2169
+ 126 0 4 0 0D 2170
+ 126 1963 00010000D 2171
+ 126 0 3 0 0D 2172
+ 126 1966 00010000D 2173
+ 126 0 4 0 0D 2174
+ 126 1970 00010000D 2175
+ 126 0 4 0 0D 2176
+ 126 1974 00010000D 2177
+ 126 0 3 0 0D 2178
+ 126 1977 00010000D 2179
+ 126 0 4 0 0D 2180
+ 126 1981 00010000D 2181
+ 126 0 4 0 0D 2182
+ 126 1985 00010000D 2183
+ 126 0 3 0 0D 2184
+ 126 1988 00010000D 2185
+ 126 0 4 0 0D 2186
+ 126 1992 00010000D 2187
+ 126 0 4 0 0D 2188
+ 126 1996 00010000D 2189
+ 126 0 3 0 0D 2190
+ 126 1999 00010000D 2191
+ 126 0 4 0 0D 2192
+ 126 2003 00010000D 2193
+ 126 0 4 0 0D 2194
+ 126 2007 00010000D 2195
+ 126 0 3 0 0D 2196
+ 126 2010 00010000D 2197
+ 126 0 4 0 0D 2198
+ 126 2014 00010000D 2199
+ 126 0 4 0 0D 2200
+ 126 2018 00010000D 2201
+ 126 0 3 0 0D 2202
+ 126 2021 00010000D 2203
+ 126 0 4 0 0D 2204
+ 126 2025 00010000D 2205
+ 126 0 3 0 0D 2206
+ 126 2028 00010000D 2207
+ 126 0 3 0 0D 2208
+ 126 2031 00010000D 2209
+ 126 0 4 0 0D 2210
+ 126 2035 00010000D 2211
+ 126 0 4 0 0D 2212
+ 126 2039 00010000D 2213
+ 126 0 3 0 0D 2214
+ 126 2042 00010000D 2215
+ 126 0 4 0 0D 2216
+ 126 2046 00010000D 2217
+ 126 0 4 0 0D 2218
+ 126 2050 00010000D 2219
+ 126 0 4 0 0D 2220
+ 126 2054 00010000D 2221
+ 126 0 3 0 0D 2222
+ 126 2057 00010000D 2223
+ 126 0 3 0 0D 2224
+ 126 2060 00010000D 2225
+ 126 0 3 0 0D 2226
+ 126 2063 00010000D 2227
+ 126 0 4 0 0D 2228
+ 126 2067 00010000D 2229
+ 126 0 4 0 0D 2230
+ 126 2071 00010000D 2231
+ 126 0 3 0 0D 2232
+ 126 2074 00010000D 2233
+ 126 0 4 0 0D 2234
+ 126 2078 00010000D 2235
+ 126 0 4 0 0D 2236
+ 126 2082 00010000D 2237
+ 126 0 3 0 0D 2238
+ 126 2085 00010000D 2239
+ 126 0 4 0 0D 2240
+ 126 2089 00010000D 2241
+ 126 0 3 0 0D 2242
+ 126 2092 00010000D 2243
+ 126 0 3 0 0D 2244
+ 126 2095 00010000D 2245
+ 126 0 4 0 0D 2246
+ 126 2099 00010000D 2247
+ 126 0 4 0 0D 2248
+ 126 2103 00010000D 2249
+ 126 0 3 0 0D 2250
+ 126 2106 00010000D 2251
+ 126 0 4 0 0D 2252
+ 126 2110 00010000D 2253
+ 126 0 3 0 0D 2254
+ 126 2113 00010000D 2255
+ 126 0 3 0 0D 2256
+ 126 2116 00010000D 2257
+ 126 0 4 0 0D 2258
+ 126 2120 00010000D 2259
+ 126 0 3 0 0D 2260
+ 126 2123 00010000D 2261
+ 126 0 3 0 0D 2262
+ 126 2126 00010000D 2263
+ 126 0 4 0 0D 2264
+ 126 2130 00010000D 2265
+ 126 0 4 0 0D 2266
+ 126 2134 00010000D 2267
+ 126 0 3 0 0D 2268
+ 126 2137 00010000D 2269
+ 126 0 4 0 0D 2270
+ 126 2141 00010000D 2271
+ 126 0 4 0 0D 2272
+ 126 2145 00010000D 2273
+ 126 0 3 0 0D 2274
+ 126 2148 00010000D 2275
+ 126 0 4 0 0D 2276
+ 126 2152 00010000D 2277
+ 126 0 3 0 0D 2278
+ 126 2155 00010000D 2279
+ 126 0 3 0 0D 2280
+ 126 2158 00010000D 2281
+ 126 0 4 0 0D 2282
+ 126 2162 00010000D 2283
+ 126 0 4 0 0D 2284
+ 126 2166 00010000D 2285
+ 126 0 3 0 0D 2286
+ 126 2169 00010000D 2287
+ 126 0 4 0 0D 2288
+ 126 2173 00010000D 2289
+ 126 0 4 0 0D 2290
+ 126 2177 00010000D 2291
+ 126 0 3 0 0D 2292
+ 126 2180 00010000D 2293
+ 126 0 3 0 0D 2294
+ 126 2183 00010000D 2295
+ 126 0 3 0 0D 2296
+ 126 2186 00010000D 2297
+ 126 0 3 0 0D 2298
+ 126 2189 00010000D 2299
+ 126 0 4 0 0D 2300
+ 126 2193 00010000D 2301
+ 126 0 4 0 0D 2302
+ 126 2197 00010000D 2303
+ 126 0 3 0 0D 2304
+ 126 2200 00010000D 2305
+ 126 0 4 0 0D 2306
+ 126 2204 00010000D 2307
+ 126 0 4 0 0D 2308
+ 126 2208 00010000D 2309
+ 126 0 3 0 0D 2310
+ 126 2211 00010000D 2311
+ 126 0 4 0 0D 2312
+ 126 2215 00010000D 2313
+ 126 0 3 0 0D 2314
+ 126 2218 00010000D 2315
+ 126 0 3 0 0D 2316
+ 126 2221 00010000D 2317
+ 126 0 4 0 0D 2318
+ 126 2225 00010000D 2319
+ 126 0 4 0 0D 2320
+ 126 2229 00010000D 2321
+ 126 0 3 0 0D 2322
+ 126 2232 00010000D 2323
+ 126 0 4 0 0D 2324
+ 126 2236 00010000D 2325
+ 126 0 3 0 0D 2326
+ 126 2239 00010000D 2327
+ 126 0 3 0 0D 2328
+ 126 2242 00010000D 2329
+ 126 0 4 0 0D 2330
+ 126 2246 00010000D 2331
+ 126 0 3 0 0D 2332
+ 126 2249 00010000D 2333
+ 126 0 3 0 0D 2334
+ 126 2252 00010000D 2335
+ 126 0 3 0 0D 2336
+ 126 2255 00010000D 2337
+ 126 0 4 0 0D 2338
+ 126 2259 00010000D 2339
+ 126 0 3 0 0D 2340
+ 126 2262 00010000D 2341
+ 126 0 3 0 0D 2342
+ 126 2265 00010000D 2343
+ 126 0 4 0 0D 2344
+ 126 2269 00010000D 2345
+ 126 0 3 0 0D 2346
+ 126 2272 00010000D 2347
+ 126 0 3 0 0D 2348
+ 126 2275 00010000D 2349
+ 126 0 3 0 0D 2350
+ 126 2278 00010000D 2351
+ 126 0 3 0 0D 2352
+ 126 2281 00010000D 2353
+ 126 0 3 0 0D 2354
+ 126 2284 00010000D 2355
+ 126 0 4 0 0D 2356
+ 126 2288 00010000D 2357
+ 126 0 3 0 0D 2358
+ 126 2291 00010000D 2359
+ 126 0 3 0 0D 2360
+ 126 2294 00010000D 2361
+ 126 0 4 0 0D 2362
+ 126 2298 00010000D 2363
+ 126 0 3 0 0D 2364
+ 126 2301 00010000D 2365
+ 126 0 3 0 0D 2366
+ 126 2304 00010000D 2367
+ 126 0 3 0 0D 2368
+ 126 2307 00010000D 2369
+ 126 0 3 0 0D 2370
+ 126 2310 00010000D 2371
+ 126 0 3 0 0D 2372
+ 126 2313 00010000D 2373
+ 126 0 4 0 0D 2374
+ 126 2317 00010000D 2375
+ 126 0 3 0 0D 2376
+ 126 2320 00010000D 2377
+ 126 0 3 0 0D 2378
+ 126 2323 00010000D 2379
+ 126 0 4 0 0D 2380
+ 126 2327 00010000D 2381
+ 126 0 3 0 0D 2382
+ 126 2330 00010000D 2383
+ 126 0 3 0 0D 2384
+ 126 2333 00010000D 2385
+ 126 0 3 0 0D 2386
+ 126 2336 00010000D 2387
+ 126 0 3 0 0D 2388
+ 126 2339 00010000D 2389
+ 126 0 3 0 0D 2390
+ 126 2342 00010000D 2391
+ 126 0 4 0 0D 2392
+ 126 2346 00010000D 2393
+ 126 0 3 0 0D 2394
+ 126 2349 00010000D 2395
+ 126 0 3 0 0D 2396
+ 126 2352 00010000D 2397
+ 126 0 3 0 0D 2398
+ 126 2355 00010000D 2399
+ 126 0 3 0 0D 2400
+ 126 2358 00010000D 2401
+ 126 0 3 0 0D 2402
+ 126 2361 00010000D 2403
+ 126 0 3 0 0D 2404
+ 126 2364 00010000D 2405
+ 126 0 3 0 0D 2406
+ 126 2367 00010000D 2407
+ 126 0 3 0 0D 2408
+ 126 2370 00010000D 2409
+ 126 0 4 0 0D 2410
+ 126 2374 00010000D 2411
+ 126 0 3 0 0D 2412
+ 126 2377 00010000D 2413
+ 126 0 3 0 0D 2414
+ 126 2380 00010000D 2415
+ 126 0 4 0 0D 2416
+ 126 2384 00010000D 2417
+ 126 0 3 0 0D 2418
+ 126 2387 00010000D 2419
+ 126 0 3 0 0D 2420
+ 126 2390 00010000D 2421
+ 126 0 3 0 0D 2422
+ 126 2393 00010000D 2423
+ 126 0 3 0 0D 2424
+ 126 2396 00010000D 2425
+ 126 0 3 0 0D 2426
+ 126 2399 00010000D 2427
+ 126 0 4 0 0D 2428
+ 126 2403 00010000D 2429
+ 126 0 3 0 0D 2430
+ 126 2406 00010000D 2431
+ 126 0 3 0 0D 2432
+ 126 2409 00010000D 2433
+ 126 0 4 0 0D 2434
+ 126 2413 00010000D 2435
+ 126 0 3 0 0D 2436
+ 126 2416 00010000D 2437
+ 126 0 3 0 0D 2438
+ 126 2419 00010000D 2439
+ 126 0 3 0 0D 2440
+ 126 2422 00010000D 2441
+ 126 0 3 0 0D 2442
+ 126 2425 00010000D 2443
+ 126 0 3 0 0D 2444
+ 126 2428 00010000D 2445
+ 126 0 4 0 0D 2446
+ 126 2432 00010000D 2447
+ 126 0 3 0 0D 2448
+ 126 2435 00010000D 2449
+ 126 0 3 0 0D 2450
+ 126 2438 00010000D 2451
+ 126 0 4 0 0D 2452
+ 126 2442 00010000D 2453
+ 126 0 3 0 0D 2454
+ 126 2445 00010000D 2455
+ 126 0 3 0 0D 2456
+ 126 2448 00010000D 2457
+ 126 0 3 0 0D 2458
+ 126 2451 00010000D 2459
+ 126 0 3 0 0D 2460
+ 126 2454 00010000D 2461
+ 126 0 3 0 0D 2462
+ 126 2457 00010000D 2463
+ 126 0 4 0 0D 2464
+ 126 2461 00010000D 2465
+ 126 0 3 0 0D 2466
+ 126 2464 00010000D 2467
+ 126 0 3 0 0D 2468
+ 126 2467 00010000D 2469
+ 126 0 3 0 0D 2470
+ 126 2470 00010000D 2471
+ 126 0 3 0 0D 2472
+ 126 2473 00010000D 2473
+ 126 0 3 0 0D 2474
+ 126 2476 00010000D 2475
+ 126 0 4 0 0D 2476
+ 126 2480 00010000D 2477
+ 126 0 3 0 0D 2478
+ 126 2483 00010000D 2479
+ 126 0 3 0 0D 2480
+ 126 2486 00010000D 2481
+ 126 0 4 0 0D 2482
+ 126 2490 00010000D 2483
+ 126 0 3 0 0D 2484
+ 126 2493 00010000D 2485
+ 126 0 3 0 0D 2486
+ 126 2496 00010000D 2487
+ 126 0 4 0 0D 2488
+ 126 2500 00010000D 2489
+ 126 0 3 0 0D 2490
+ 126 2503 00010000D 2491
+ 126 0 3 0 0D 2492
+ 126 2506 00010000D 2493
+ 126 0 3 0 0D 2494
+ 126 2509 00010000D 2495
+ 126 0 3 0 0D 2496
+ 126 2512 00010000D 2497
+ 126 0 3 0 0D 2498
+ 126 2515 00010000D 2499
+ 126 0 4 0 0D 2500
+ 126 2519 00010000D 2501
+ 126 0 3 0 0D 2502
+ 126 2522 00010000D 2503
+ 126 0 3 0 0D 2504
+ 126 2525 00010000D 2505
+ 126 0 4 0 0D 2506
+ 126 2529 00010000D 2507
+ 126 0 4 0 0D 2508
+ 126 2533 00010000D 2509
+ 126 0 3 0 0D 2510
+ 126 2536 00010000D 2511
+ 126 0 4 0 0D 2512
+ 126 2540 00010000D 2513
+ 126 0 3 0 0D 2514
+ 126 2543 00010000D 2515
+ 126 0 4 0 0D 2516
+ 126 2547 00010000D 2517
+ 126 0 4 0 0D 2518
+ 126 2551 00010000D 2519
+ 126 0 3 0 0D 2520
+ 126 2554 00010000D 2521
+ 126 0 4 0 0D 2522
+ 126 2558 00010000D 2523
+ 126 0 4 0 0D 2524
+ 126 2562 00010000D 2525
+ 126 0 3 0 0D 2526
+ 126 2565 00010000D 2527
+ 126 0 4 0 0D 2528
+ 126 2569 00010000D 2529
+ 126 0 4 0 0D 2530
+ 126 2573 00010000D 2531
+ 126 0 3 0 0D 2532
+ 126 2576 00010000D 2533
+ 126 0 4 0 0D 2534
+ 126 2580 00010000D 2535
+ 126 0 4 0 0D 2536
+ 126 2584 00010000D 2537
+ 126 0 3 0 0D 2538
+ 126 2587 00010000D 2539
+ 126 0 4 0 0D 2540
+ 126 2591 00010000D 2541
+ 126 0 4 0 0D 2542
+ 126 2595 00010000D 2543
+ 126 0 3 0 0D 2544
+ 126 2598 00010000D 2545
+ 126 0 4 0 0D 2546
+ 126 2602 00010000D 2547
+ 126 0 4 0 0D 2548
+ 126 2606 00010000D 2549
+ 126 0 3 0 0D 2550
+ 126 2609 00010000D 2551
+ 126 0 4 0 0D 2552
+ 126 2613 00010000D 2553
+ 126 0 4 0 0D 2554
+ 126 2617 00010000D 2555
+ 126 0 3 0 0D 2556
+ 126 2620 00010000D 2557
+ 126 0 4 0 0D 2558
+ 126 2624 00010000D 2559
+ 126 0 4 0 0D 2560
+ 126 2628 00010000D 2561
+ 126 0 3 0 0D 2562
+ 126 2631 00010000D 2563
+ 126 0 4 0 0D 2564
+ 126 2635 00010000D 2565
+ 126 0 4 0 0D 2566
+ 126 2639 00010000D 2567
+ 126 0 3 0 0D 2568
+ 126 2642 00010000D 2569
+ 126 0 4 0 0D 2570
+ 126 2646 00010000D 2571
+ 126 0 4 0 0D 2572
+ 126 2650 00010000D 2573
+ 126 0 3 0 0D 2574
+ 126 2653 00010000D 2575
+ 126 0 4 0 0D 2576
+ 126 2657 00010000D 2577
+ 126 0 4 0 0D 2578
+ 126 2661 00010000D 2579
+ 126 0 4 0 0D 2580
+ 126 2665 00010000D 2581
+ 126 0 3 0 0D 2582
+ 126 2668 00010000D 2583
+ 126 0 4 0 0D 2584
+ 126 2672 00010000D 2585
+ 126 0 3 0 0D 2586
+ 126 2675 00010000D 2587
+ 126 0 4 0 0D 2588
+ 126 2679 00010000D 2589
+ 126 0 4 0 0D 2590
+ 126 2683 00010000D 2591
+ 126 0 3 0 0D 2592
+ 126 2686 00010000D 2593
+ 126 0 4 0 0D 2594
+ 126 2690 00010000D 2595
+ 126 0 4 0 0D 2596
+ 126 2694 00010000D 2597
+ 126 0 3 0 0D 2598
+ 126 2697 00010000D 2599
+ 126 0 4 0 0D 2600
+ 126 2701 00010000D 2601
+ 126 0 4 0 0D 2602
+ 126 2705 00010000D 2603
+ 126 0 3 0 0D 2604
+ 126 2708 00010000D 2605
+ 126 0 4 0 0D 2606
+ 126 2712 00010000D 2607
+ 126 0 4 0 0D 2608
+ 126 2716 00010000D 2609
+ 126 0 3 0 0D 2610
+ 126 2719 00010000D 2611
+ 126 0 4 0 0D 2612
+ 126 2723 00010000D 2613
+ 126 0 4 0 0D 2614
+ 126 2727 00010000D 2615
+ 126 0 3 0 0D 2616
+ 126 2730 00010000D 2617
+ 126 0 4 0 0D 2618
+ 126 2734 00010000D 2619
+ 126 0 4 0 0D 2620
+ 126 2738 00010000D 2621
+ 126 0 3 0 0D 2622
+ 126 2741 00010000D 2623
+ 126 0 4 0 0D 2624
+ 126 2745 00010000D 2625
+ 126 0 4 0 0D 2626
+ 126 2749 00010000D 2627
+ 126 0 3 0 0D 2628
+ 126 2752 00010000D 2629
+ 126 0 4 0 0D 2630
+ 126 2756 00010000D 2631
+ 126 0 4 0 0D 2632
+ 126 2760 00010000D 2633
+ 126 0 3 0 0D 2634
+ 126 2763 00010000D 2635
+ 126 0 4 0 0D 2636
+ 126 2767 00010000D 2637
+ 126 0 3 0 0D 2638
+ 126 2770 00010000D 2639
+ 126 0 3 0 0D 2640
+ 126 2773 00010000D 2641
+ 126 0 4 0 0D 2642
+ 126 2777 00010000D 2643
+ 126 0 4 0 0D 2644
+ 126 2781 00010000D 2645
+ 126 0 3 0 0D 2646
+ 126 2784 00010000D 2647
+ 126 0 4 0 0D 2648
+ 126 2788 00010000D 2649
+ 126 0 4 0 0D 2650
+ 126 2792 00010000D 2651
+ 126 0 4 0 0D 2652
+ 126 2796 00010000D 2653
+ 126 0 3 0 0D 2654
+ 126 2799 00010000D 2655
+ 126 0 3 0 0D 2656
+ 126 2802 00010000D 2657
+ 126 0 3 0 0D 2658
+ 126 2805 00010000D 2659
+ 126 0 4 0 0D 2660
+ 126 2809 00010000D 2661
+ 126 0 4 0 0D 2662
+ 126 2813 00010000D 2663
+ 126 0 3 0 0D 2664
+ 126 2816 00010000D 2665
+ 126 0 4 0 0D 2666
+ 126 2820 00010000D 2667
+ 126 0 4 0 0D 2668
+ 126 2824 00010000D 2669
+ 126 0 3 0 0D 2670
+ 126 2827 00010000D 2671
+ 126 0 4 0 0D 2672
+ 126 2831 00010000D 2673
+ 126 0 3 0 0D 2674
+ 126 2834 00010000D 2675
+ 126 0 3 0 0D 2676
+ 126 2837 00010000D 2677
+ 126 0 4 0 0D 2678
+ 126 2841 00010000D 2679
+ 126 0 4 0 0D 2680
+ 126 2845 00010000D 2681
+ 126 0 3 0 0D 2682
+ 126 2848 00010000D 2683
+ 126 0 4 0 0D 2684
+ 126 2852 00010000D 2685
+ 126 0 4 0 0D 2686
+ 126 2856 00010000D 2687
+ 126 0 3 0 0D 2688
+ 126 2859 00010000D 2689
+ 126 0 4 0 0D 2690
+ 126 2863 00010000D 2691
+ 126 0 3 0 0D 2692
+ 126 2866 00010000D 2693
+ 126 0 3 0 0D 2694
+ 126 2869 00010000D 2695
+ 126 0 4 0 0D 2696
+ 126 2873 00010000D 2697
+ 126 0 4 0 0D 2698
+ 126 2877 00010000D 2699
+ 126 0 3 0 0D 2700
+ 126 2880 00010000D 2701
+ 126 0 4 0 0D 2702
+ 126 2884 00010000D 2703
+ 126 0 4 0 0D 2704
+ 126 2888 00010000D 2705
+ 126 0 3 0 0D 2706
+ 126 2891 00010000D 2707
+ 126 0 4 0 0D 2708
+ 126 2895 00010000D 2709
+ 126 0 3 0 0D 2710
+ 126 2898 00010000D 2711
+ 126 0 3 0 0D 2712
+ 126 2901 00010000D 2713
+ 126 0 4 0 0D 2714
+ 126 2905 00010000D 2715
+ 126 0 4 0 0D 2716
+ 126 2909 00010000D 2717
+ 126 0 3 0 0D 2718
+ 126 2912 00010000D 2719
+ 126 0 4 0 0D 2720
+ 126 2916 00010000D 2721
+ 126 0 4 0 0D 2722
+ 126 2920 00010000D 2723
+ 126 0 3 0 0D 2724
+ 126 2923 00010000D 2725
+ 126 0 3 0 0D 2726
+ 126 2926 00010000D 2727
+ 126 0 3 0 0D 2728
+ 126 2929 00010000D 2729
+ 126 0 3 0 0D 2730
+ 126 2932 00010000D 2731
+ 126 0 4 0 0D 2732
+ 126 2936 00010000D 2733
+ 126 0 4 0 0D 2734
+ 126 2940 00010000D 2735
+ 126 0 3 0 0D 2736
+ 126 2943 00010000D 2737
+ 126 0 4 0 0D 2738
+ 126 2947 00010000D 2739
+ 126 0 4 0 0D 2740
+ 126 2951 00010000D 2741
+ 126 0 3 0 0D 2742
+ 126 2954 00010000D 2743
+ 126 0 4 0 0D 2744
+ 126 2958 00010000D 2745
+ 126 0 3 0 0D 2746
+ 126 2961 00010000D 2747
+ 126 0 3 0 0D 2748
+ 126 2964 00010000D 2749
+ 126 0 4 0 0D 2750
+ 126 2968 00010000D 2751
+ 126 0 4 0 0D 2752
+ 126 2972 00010000D 2753
+ 126 0 3 0 0D 2754
+ 126 2975 00010000D 2755
+ 126 0 4 0 0D 2756
+ 126 2979 00010000D 2757
+ 126 0 4 0 0D 2758
+ 126 2983 00010000D 2759
+ 126 0 3 0 0D 2760
+ 126 2986 00010000D 2761
+ 126 0 4 0 0D 2762
+ 126 2990 00010000D 2763
+ 126 0 3 0 0D 2764
+ 126 2993 00010000D 2765
+ 126 0 3 0 0D 2766
+ 126 2996 00010000D 2767
+ 126 0 3 0 0D 2768
+ 126 2999 00010000D 2769
+ 126 0 4 0 0D 2770
+ 126 3003 00010000D 2771
+ 126 0 3 0 0D 2772
+ 126 3006 00010000D 2773
+ 126 0 3 0 0D 2774
+ 126 3009 00010000D 2775
+ 126 0 4 0 0D 2776
+ 126 3013 00010000D 2777
+ 126 0 3 0 0D 2778
+ 126 3016 00010000D 2779
+ 126 0 3 0 0D 2780
+ 126 3019 00010000D 2781
+ 126 0 3 0 0D 2782
+ 126 3022 00010000D 2783
+ 126 0 3 0 0D 2784
+ 126 3025 00010000D 2785
+ 126 0 3 0 0D 2786
+ 126 3028 00010000D 2787
+ 126 0 4 0 0D 2788
+ 126 3032 00010000D 2789
+ 126 0 3 0 0D 2790
+ 126 3035 00010000D 2791
+ 126 0 3 0 0D 2792
+ 126 3038 00010000D 2793
+ 126 0 4 0 0D 2794
+ 126 3042 00010000D 2795
+ 126 0 3 0 0D 2796
+ 126 3045 00010000D 2797
+ 126 0 3 0 0D 2798
+ 126 3048 00010000D 2799
+ 126 0 3 0 0D 2800
+ 126 3051 00010000D 2801
+ 126 0 3 0 0D 2802
+ 126 3054 00010000D 2803
+ 126 0 3 0 0D 2804
+ 126 3057 00010000D 2805
+ 126 0 4 0 0D 2806
+ 126 3061 00010000D 2807
+ 126 0 3 0 0D 2808
+ 126 3064 00010000D 2809
+ 126 0 3 0 0D 2810
+ 126 3067 00010000D 2811
+ 126 0 4 0 0D 2812
+ 126 3071 00010000D 2813
+ 126 0 3 0 0D 2814
+ 126 3074 00010000D 2815
+ 126 0 3 0 0D 2816
+ 126 3077 00010000D 2817
+ 126 0 3 0 0D 2818
+ 126 3080 00010000D 2819
+ 126 0 3 0 0D 2820
+ 126 3083 00010000D 2821
+ 126 0 3 0 0D 2822
+ 126 3086 00010000D 2823
+ 126 0 4 0 0D 2824
+ 126 3090 00010000D 2825
+ 126 0 3 0 0D 2826
+ 126 3093 00010000D 2827
+ 126 0 3 0 0D 2828
+ 126 3096 00010000D 2829
+ 126 0 4 0 0D 2830
+ 126 3100 00010000D 2831
+ 126 0 3 0 0D 2832
+ 126 3103 00010000D 2833
+ 126 0 3 0 0D 2834
+ 126 3106 00010000D 2835
+ 126 0 3 0 0D 2836
+ 126 3109 00010000D 2837
+ 126 0 3 0 0D 2838
+ 126 3112 00010000D 2839
+ 126 0 3 0 0D 2840
+ 126 3115 00010000D 2841
+ 126 0 4 0 0D 2842
+ 126 3119 00010000D 2843
+ 126 0 3 0 0D 2844
+ 126 3122 00010000D 2845
+ 126 0 3 0 0D 2846
+ 126 3125 00010000D 2847
+ 126 0 4 0 0D 2848
+ 126 3129 00010000D 2849
+ 126 0 3 0 0D 2850
+ 126 3132 00010000D 2851
+ 126 0 3 0 0D 2852
+ 126 3135 00010000D 2853
+ 126 0 3 0 0D 2854
+ 126 3138 00010000D 2855
+ 126 0 3 0 0D 2856
+ 126 3141 00010000D 2857
+ 126 0 3 0 0D 2858
+ 126 3144 00010000D 2859
+ 126 0 4 0 0D 2860
+ 126 3148 00010000D 2861
+ 126 0 3 0 0D 2862
+ 126 3151 00010000D 2863
+ 126 0 3 0 0D 2864
+ 126 3154 00010000D 2865
+ 126 0 4 0 0D 2866
+ 126 3158 00010000D 2867
+ 126 0 3 0 0D 2868
+ 126 3161 00010000D 2869
+ 126 0 3 0 0D 2870
+ 126 3164 00010000D 2871
+ 126 0 3 0 0D 2872
+ 126 3167 00010000D 2873
+ 126 0 3 0 0D 2874
+ 126 3170 00010000D 2875
+ 126 0 3 0 0D 2876
+ 126 3173 00010000D 2877
+ 126 0 4 0 0D 2878
+ 126 3177 00010000D 2879
+ 126 0 3 0 0D 2880
+ 126 3180 00010000D 2881
+ 126 0 3 0 0D 2882
+ 126 3183 00010000D 2883
+ 126 0 4 0 0D 2884
+ 126 3187 00010000D 2885
+ 126 0 3 0 0D 2886
+ 126 3190 00010000D 2887
+ 126 0 3 0 0D 2888
+ 126 3193 00010000D 2889
+ 126 0 3 0 0D 2890
+ 126 3196 00010000D 2891
+ 126 0 3 0 0D 2892
+ 126 3199 00010000D 2893
+ 126 0 3 0 0D 2894
+ 126 3202 00010000D 2895
+ 126 0 4 0 0D 2896
+ 126 3206 00010000D 2897
+ 126 0 3 0 0D 2898
+ 126 3209 00010000D 2899
+ 126 0 3 0 0D 2900
+ 126 3212 00010000D 2901
+ 126 0 4 0 0D 2902
+ 126 3216 00010000D 2903
+ 126 0 3 0 0D 2904
+ 126 3219 00010000D 2905
+ 126 0 3 0 0D 2906
+ 126 3222 00010000D 2907
+ 126 0 4 0 0D 2908
+ 126 3226 00010000D 2909
+ 126 0 3 0 0D 2910
+ 126 3229 00010000D 2911
+ 126 0 3 0 0D 2912
+ 126 3232 00010000D 2913
+ 126 0 4 0 0D 2914
+ 126 3236 00010000D 2915
+ 126 0 3 0 0D 2916
+ 126 3239 00010000D 2917
+ 126 0 3 0 0D 2918
+ 126 3242 00010000D 2919
+ 126 0 4 0 0D 2920
+ 126 3246 00010000D 2921
+ 126 0 3 0 0D 2922
+ 126 3249 00010000D 2923
+ 126 0 3 0 0D 2924
+ 126 3252 00010000D 2925
+ 126 0 3 0 0D 2926
+ 126 3255 00010000D 2927
+ 126 0 3 0 0D 2928
+ 126 3258 00010000D 2929
+ 126 0 3 0 0D 2930
+ 126 3261 00010000D 2931
+ 126 0 4 0 0D 2932
+ 126 3265 00010000D 2933
+ 126 0 3 0 0D 2934
+ 126 3268 00010000D 2935
+ 126 0 3 0 0D 2936
+ 126 3271 00010000D 2937
+ 126 0 4 0 0D 2938
+ 126 3275 00010000D 2939
+ 126 0 4 0 0D 2940
+ 126 3279 00010000D 2941
+ 126 0 3 0 0D 2942
+ 126 3282 00010000D 2943
+ 126 0 4 0 0D 2944
+ 126 3286 00010000D 2945
+ 126 0 3 0 0D 2946
+ 126 3289 00010000D 2947
+ 126 0 4 0 0D 2948
+ 126 3293 00010000D 2949
+ 126 0 4 0 0D 2950
+ 126 3297 00010000D 2951
+ 126 0 3 0 0D 2952
+ 126 3300 00010000D 2953
+ 126 0 4 0 0D 2954
+ 126 3304 00010000D 2955
+ 126 0 4 0 0D 2956
+ 126 3308 00010000D 2957
+ 126 0 3 0 0D 2958
+ 126 3311 00010000D 2959
+ 126 0 4 0 0D 2960
+ 126 3315 00010000D 2961
+ 126 0 4 0 0D 2962
+ 126 3319 00010000D 2963
+ 126 0 3 0 0D 2964
+ 126 3322 00010000D 2965
+ 126 0 4 0 0D 2966
+ 126 3326 00010000D 2967
+ 126 0 4 0 0D 2968
+ 126 3330 00010000D 2969
+ 126 0 3 0 0D 2970
+ 126 3333 00010000D 2971
+ 126 0 4 0 0D 2972
+ 126 3337 00010000D 2973
+ 126 0 4 0 0D 2974
+ 126 3341 00010000D 2975
+ 126 0 3 0 0D 2976
+ 126 3344 00010000D 2977
+ 126 0 4 0 0D 2978
+ 126 3348 00010000D 2979
+ 126 0 4 0 0D 2980
+ 126 3352 00010000D 2981
+ 126 0 3 0 0D 2982
+ 126 3355 00010000D 2983
+ 126 0 4 0 0D 2984
+ 126 3359 00010000D 2985
+ 126 0 4 0 0D 2986
+ 126 3363 00010000D 2987
+ 126 0 3 0 0D 2988
+ 126 3366 00010000D 2989
+ 126 0 4 0 0D 2990
+ 126 3370 00010000D 2991
+ 126 0 4 0 0D 2992
+ 126 3374 00010000D 2993
+ 126 0 3 0 0D 2994
+ 126 3377 00010000D 2995
+ 126 0 4 0 0D 2996
+ 126 3381 00010000D 2997
+ 126 0 4 0 0D 2998
+ 126 3385 00010000D 2999
+ 126 0 3 0 0D 3000
+ 126 3388 00010000D 3001
+ 126 0 4 0 0D 3002
+ 126 3392 00010000D 3003
+ 126 0 4 0 0D 3004
+ 126 3396 00010000D 3005
+ 126 0 3 0 0D 3006
+ 126 3399 00010000D 3007
+ 126 0 4 0 0D 3008
+ 126 3403 00010000D 3009
+ 126 0 4 0 0D 3010
+ 126 3407 00010000D 3011
+ 126 0 4 0 0D 3012
+ 126 3411 00010000D 3013
+ 126 0 3 0 0D 3014
+ 126 3414 00010000D 3015
+ 126 0 4 0 0D 3016
+ 126 3418 00010000D 3017
+ 126 0 3 0 0D 3018
+ 126 3421 00010000D 3019
+ 126 0 4 0 0D 3020
+ 126 3425 00010000D 3021
+ 126 0 4 0 0D 3022
+ 126 3429 00010000D 3023
+ 126 0 3 0 0D 3024
+ 126 3432 00010000D 3025
+ 126 0 4 0 0D 3026
+ 126 3436 00010000D 3027
+ 126 0 4 0 0D 3028
+ 126 3440 00010000D 3029
+ 126 0 3 0 0D 3030
+ 126 3443 00010000D 3031
+ 126 0 4 0 0D 3032
+ 126 3447 00010000D 3033
+ 126 0 4 0 0D 3034
+ 126 3451 00010000D 3035
+ 126 0 3 0 0D 3036
+ 126 3454 00010000D 3037
+ 126 0 4 0 0D 3038
+ 126 3458 00010000D 3039
+ 126 0 4 0 0D 3040
+ 126 3462 00010000D 3041
+ 126 0 3 0 0D 3042
+ 126 3465 00010000D 3043
+ 126 0 4 0 0D 3044
+ 126 3469 00010000D 3045
+ 126 0 4 0 0D 3046
+ 126 3473 00010000D 3047
+ 126 0 3 0 0D 3048
+ 126 3476 00010000D 3049
+ 126 0 4 0 0D 3050
+ 126 3480 00010000D 3051
+ 126 0 4 0 0D 3052
+ 126 3484 00010000D 3053
+ 126 0 3 0 0D 3054
+ 126 3487 00010000D 3055
+ 126 0 4 0 0D 3056
+ 126 3491 00010000D 3057
+ 126 0 4 0 0D 3058
+ 126 3495 00010000D 3059
+ 126 0 3 0 0D 3060
+ 126 3498 00010000D 3061
+ 126 0 4 0 0D 3062
+ 126 3502 00010000D 3063
+ 126 0 4 0 0D 3064
+ 126 3506 00010000D 3065
+ 126 0 3 0 0D 3066
+ 126 3509 00010000D 3067
+ 126 0 4 0 0D 3068
+ 126 3513 00010000D 3069
+ 126 0 3 0 0D 3070
+ 126 3516 00010000D 3071
+ 126 0 3 0 0D 3072
+ 126 3519 00010000D 3073
+ 126 0 4 0 0D 3074
+ 126 3523 00010000D 3075
+ 126 0 4 0 0D 3076
+ 126 3527 00010000D 3077
+ 126 0 3 0 0D 3078
+ 126 3530 00010000D 3079
+ 126 0 4 0 0D 3080
+ 126 3534 00010000D 3081
+ 126 0 4 0 0D 3082
+ 126 3538 00010000D 3083
+ 126 0 4 0 0D 3084
+ 126 3542 00010000D 3085
+ 126 0 3 0 0D 3086
+ 126 3545 00010000D 3087
+ 126 0 3 0 0D 3088
+ 126 3548 00010000D 3089
+ 126 0 3 0 0D 3090
+ 126 3551 00010000D 3091
+ 126 0 4 0 0D 3092
+ 126 3555 00010000D 3093
+ 126 0 4 0 0D 3094
+ 126 3559 00010000D 3095
+ 126 0 3 0 0D 3096
+ 126 3562 00010000D 3097
+ 126 0 4 0 0D 3098
+ 126 3566 00010000D 3099
+ 126 0 4 0 0D 3100
+ 126 3570 00010000D 3101
+ 126 0 3 0 0D 3102
+ 126 3573 00010000D 3103
+ 126 0 4 0 0D 3104
+ 126 3577 00010000D 3105
+ 126 0 3 0 0D 3106
+ 126 3580 00010000D 3107
+ 126 0 3 0 0D 3108
+ 126 3583 00010000D 3109
+ 126 0 4 0 0D 3110
+ 126 3587 00010000D 3111
+ 126 0 4 0 0D 3112
+ 126 3591 00010000D 3113
+ 126 0 3 0 0D 3114
+ 126 3594 00010000D 3115
+ 126 0 4 0 0D 3116
+ 126 3598 00010000D 3117
+ 126 0 4 0 0D 3118
+ 126 3602 00010000D 3119
+ 126 0 3 0 0D 3120
+ 126 3605 00010000D 3121
+ 126 0 4 0 0D 3122
+ 126 3609 00010000D 3123
+ 126 0 3 0 0D 3124
+ 126 3612 00010000D 3125
+ 126 0 3 0 0D 3126
+ 126 3615 00010000D 3127
+ 126 0 4 0 0D 3128
+ 126 3619 00010000D 3129
+ 126 0 4 0 0D 3130
+ 126 3623 00010000D 3131
+ 126 0 3 0 0D 3132
+ 126 3626 00010000D 3133
+ 126 0 4 0 0D 3134
+ 126 3630 00010000D 3135
+ 126 0 4 0 0D 3136
+ 126 3634 00010000D 3137
+ 126 0 3 0 0D 3138
+ 126 3637 00010000D 3139
+ 126 0 4 0 0D 3140
+ 126 3641 00010000D 3141
+ 126 0 3 0 0D 3142
+ 126 3644 00010000D 3143
+ 126 0 3 0 0D 3144
+ 126 3647 00010000D 3145
+ 126 0 4 0 0D 3146
+ 126 3651 00010000D 3147
+ 126 0 4 0 0D 3148
+ 126 3655 00010000D 3149
+ 126 0 3 0 0D 3150
+ 126 3658 00010000D 3151
+ 126 0 4 0 0D 3152
+ 126 3662 00010000D 3153
+ 126 0 4 0 0D 3154
+ 126 3666 00010000D 3155
+ 126 0 3 0 0D 3156
+ 126 3669 00010000D 3157
+ 126 0 3 0 0D 3158
+ 126 3672 00010000D 3159
+ 126 0 3 0 0D 3160
+ 126 3675 00010000D 3161
+ 126 0 3 0 0D 3162
+ 126 3678 00010000D 3163
+ 126 0 4 0 0D 3164
+ 126 3682 00010000D 3165
+ 126 0 4 0 0D 3166
+ 126 3686 00010000D 3167
+ 126 0 3 0 0D 3168
+ 126 3689 00010000D 3169
+ 126 0 4 0 0D 3170
+ 126 3693 00010000D 3171
+ 126 0 4 0 0D 3172
+ 126 3697 00010000D 3173
+ 126 0 3 0 0D 3174
+ 126 3700 00010000D 3175
+ 126 0 4 0 0D 3176
+ 126 3704 00010000D 3177
+ 126 0 3 0 0D 3178
+ 126 3707 00010000D 3179
+ 126 0 3 0 0D 3180
+ 126 3710 00010000D 3181
+ 126 0 4 0 0D 3182
+ 126 3714 00010000D 3183
+ 126 0 4 0 0D 3184
+ 126 3718 00010000D 3185
+ 126 0 3 0 0D 3186
+ 126 3721 00010000D 3187
+ 126 0 4 0 0D 3188
+ 126 3725 00010000D 3189
+ 126 0 4 0 0D 3190
+ 126 3729 00010000D 3191
+ 126 0 3 0 0D 3192
+ 126 3732 00010000D 3193
+ 126 0 4 0 0D 3194
+ 126 3736 00010000D 3195
+ 126 0 3 0 0D 3196
+ 126 3739 00010000D 3197
+ 126 0 3 0 0D 3198
+ 126 3742 00010000D 3199
+ 126 0 3 0 0D 3200
+ 126 3745 00010000D 3201
+ 126 0 4 0 0D 3202
+ 126 3749 00010000D 3203
+ 126 0 3 0 0D 3204
+ 126 3752 00010000D 3205
+ 126 0 3 0 0D 3206
+ 126 3755 00010000D 3207
+ 126 0 4 0 0D 3208
+ 126 3759 00010000D 3209
+ 126 0 3 0 0D 3210
+ 126 3762 00010000D 3211
+ 126 0 3 0 0D 3212
+ 126 3765 00010000D 3213
+ 126 0 3 0 0D 3214
+ 126 3768 00010000D 3215
+ 126 0 3 0 0D 3216
+ 126 3771 00010000D 3217
+ 126 0 3 0 0D 3218
+ 126 3774 00010000D 3219
+ 126 0 4 0 0D 3220
+ 126 3778 00010000D 3221
+ 126 0 3 0 0D 3222
+ 126 3781 00010000D 3223
+ 126 0 3 0 0D 3224
+ 126 3784 00010000D 3225
+ 126 0 4 0 0D 3226
+ 126 3788 00010000D 3227
+ 126 0 3 0 0D 3228
+ 126 3791 00010000D 3229
+ 126 0 3 0 0D 3230
+ 126 3794 00010000D 3231
+ 126 0 3 0 0D 3232
+ 126 3797 00010000D 3233
+ 126 0 3 0 0D 3234
+ 126 3800 00010000D 3235
+ 126 0 3 0 0D 3236
+ 126 3803 00010000D 3237
+ 126 0 4 0 0D 3238
+ 126 3807 00010000D 3239
+ 126 0 3 0 0D 3240
+ 126 3810 00010000D 3241
+ 126 0 3 0 0D 3242
+ 126 3813 00010000D 3243
+ 126 0 4 0 0D 3244
+ 126 3817 00010000D 3245
+ 126 0 3 0 0D 3246
+ 126 3820 00010000D 3247
+ 126 0 3 0 0D 3248
+ 126 3823 00010000D 3249
+ 126 0 3 0 0D 3250
+ 126 3826 00010000D 3251
+ 126 0 3 0 0D 3252
+ 126 3829 00010000D 3253
+ 126 0 3 0 0D 3254
+ 126 3832 00010000D 3255
+ 126 0 4 0 0D 3256
+ 126 3836 00010000D 3257
+ 126 0 3 0 0D 3258
+ 126 3839 00010000D 3259
+ 126 0 3 0 0D 3260
+ 126 3842 00010000D 3261
+ 126 0 4 0 0D 3262
+ 126 3846 00010000D 3263
+ 126 0 3 0 0D 3264
+ 126 3849 00010000D 3265
+ 126 0 3 0 0D 3266
+ 126 3852 00010000D 3267
+ 126 0 3 0 0D 3268
+ 126 3855 00010000D 3269
+ 126 0 3 0 0D 3270
+ 126 3858 00010000D 3271
+ 126 0 3 0 0D 3272
+ 126 3861 00010000D 3273
+ 126 0 4 0 0D 3274
+ 126 3865 00010000D 3275
+ 126 0 3 0 0D 3276
+ 126 3868 00010000D 3277
+ 126 0 3 0 0D 3278
+ 126 3871 00010000D 3279
+ 126 0 4 0 0D 3280
+ 126 3875 00010000D 3281
+ 126 0 3 0 0D 3282
+ 126 3878 00010000D 3283
+ 126 0 3 0 0D 3284
+ 126 3881 00010000D 3285
+ 126 0 3 0 0D 3286
+ 126 3884 00010000D 3287
+ 126 0 3 0 0D 3288
+ 126 3887 00010000D 3289
+ 126 0 3 0 0D 3290
+ 126 3890 00010000D 3291
+ 126 0 4 0 0D 3292
+ 126 3894 00010000D 3293
+ 126 0 3 0 0D 3294
+ 126 3897 00010000D 3295
+ 126 0 3 0 0D 3296
+ 126 3900 00010000D 3297
+ 126 0 4 0 0D 3298
+ 126 3904 00010000D 3299
+ 126 0 3 0 0D 3300
+ 126 3907 00010000D 3301
+ 126 0 3 0 0D 3302
+ 126 3910 00010000D 3303
+ 126 0 3 0 0D 3304
+ 126 3913 00010000D 3305
+ 126 0 3 0 0D 3306
+ 126 3916 00010000D 3307
+ 126 0 3 0 0D 3308
+ 126 3919 00010000D 3309
+ 126 0 4 0 0D 3310
+ 126 3923 00010000D 3311
+ 126 0 3 0 0D 3312
+ 126 3926 00010000D 3313
+ 126 0 3 0 0D 3314
+ 126 3929 00010000D 3315
+ 126 0 4 0 0D 3316
+ 126 3933 00010000D 3317
+ 126 0 3 0 0D 3318
+ 126 3936 00010000D 3319
+ 126 0 3 0 0D 3320
+ 126 3939 00010000D 3321
+ 126 0 3 0 0D 3322
+ 126 3942 00010000D 3323
+ 126 0 3 0 0D 3324
+ 126 3945 00010000D 3325
+ 126 0 3 0 0D 3326
+ 126 3948 00010000D 3327
+ 126 0 4 0 0D 3328
+ 126 3952 00010000D 3329
+ 126 0 3 0 0D 3330
+ 126 3955 00010000D 3331
+ 126 0 3 0 0D 3332
+ 126 3958 00010000D 3333
+ 126 0 4 0 0D 3334
+ 126 3962 00010000D 3335
+ 126 0 3 0 0D 3336
+ 126 3965 00010000D 3337
+ 126 0 3 0 0D 3338
+ 126 3968 00010000D 3339
+ 126 0 4 0 0D 3340
+ 126 3972 00010000D 3341
+ 126 0 3 0 0D 3342
+ 126 3975 00010000D 3343
+ 126 0 3 0 0D 3344
+ 126 3978 00010000D 3345
+ 126 0 4 0 0D 3346
+ 126 3982 00010000D 3347
+ 126 0 3 0 0D 3348
+ 126 3985 00010000D 3349
+ 126 0 3 0 0D 3350
+ 126 3988 00010000D 3351
+ 126 0 4 0 0D 3352
+ 126 3992 00010000D 3353
+ 126 0 3 0 0D 3354
+ 126 3995 00010000D 3355
+ 126 0 3 0 0D 3356
+ 126 3998 00010000D 3357
+ 126 0 3 0 0D 3358
+ 126 4001 00010000D 3359
+ 126 0 3 0 0D 3360
+ 126 4004 00010000D 3361
+ 126 0 3 0 0D 3362
+ 126 4007 00010000D 3363
+ 126 0 4 0 0D 3364
+ 126 4011 00010000D 3365
+ 126 0 3 0 0D 3366
+ 126 4014 00010000D 3367
+ 126 0 3 0 0D 3368
+ 126 4017 00010000D 3369
+ 126 0 4 0 0D 3370
+ 126 4021 00010000D 3371
+ 126 0 4 0 0D 3372
+ 126 4025 00010000D 3373
+ 126 0 3 0 0D 3374
+ 126 4028 00010000D 3375
+ 126 0 4 0 0D 3376
+ 126 4032 00010000D 3377
+ 126 0 3 0 0D 3378
+ 126 4035 00010000D 3379
+ 126 0 4 0 0D 3380
+ 126 4039 00010000D 3381
+ 126 0 4 0 0D 3382
+ 126 4043 00010000D 3383
+ 126 0 3 0 0D 3384
+ 126 4046 00010000D 3385
+ 126 0 4 0 0D 3386
+ 126 4050 00010000D 3387
+ 126 0 4 0 0D 3388
+ 126 4054 00010000D 3389
+ 126 0 3 0 0D 3390
+ 126 4057 00010000D 3391
+ 126 0 4 0 0D 3392
+ 126 4061 00010000D 3393
+ 126 0 4 0 0D 3394
+ 126 4065 00010000D 3395
+ 126 0 3 0 0D 3396
+ 126 4068 00010000D 3397
+ 126 0 4 0 0D 3398
+ 126 4072 00010000D 3399
+ 126 0 4 0 0D 3400
+ 126 4076 00010000D 3401
+ 126 0 3 0 0D 3402
+ 126 4079 00010000D 3403
+ 126 0 4 0 0D 3404
+ 126 4083 00010000D 3405
+ 126 0 4 0 0D 3406
+ 126 4087 00010000D 3407
+ 126 0 3 0 0D 3408
+ 126 4090 00010000D 3409
+ 126 0 4 0 0D 3410
+ 126 4094 00010000D 3411
+ 126 0 4 0 0D 3412
+ 126 4098 00010000D 3413
+ 126 0 3 0 0D 3414
+ 126 4101 00010000D 3415
+ 126 0 4 0 0D 3416
+ 126 4105 00010000D 3417
+ 126 0 4 0 0D 3418
+ 126 4109 00010000D 3419
+ 126 0 3 0 0D 3420
+ 126 4112 00010000D 3421
+ 126 0 4 0 0D 3422
+ 126 4116 00010000D 3423
+ 126 0 4 0 0D 3424
+ 126 4120 00010000D 3425
+ 126 0 3 0 0D 3426
+ 126 4123 00010000D 3427
+ 126 0 4 0 0D 3428
+ 126 4127 00010000D 3429
+ 126 0 4 0 0D 3430
+ 126 4131 00010000D 3431
+ 126 0 3 0 0D 3432
+ 126 4134 00010000D 3433
+ 126 0 4 0 0D 3434
+ 126 4138 00010000D 3435
+ 126 0 4 0 0D 3436
+ 126 4142 00010000D 3437
+ 126 0 3 0 0D 3438
+ 126 4145 00010000D 3439
+ 126 0 4 0 0D 3440
+ 126 4149 00010000D 3441
+ 126 0 4 0 0D 3442
+ 126 4153 00010000D 3443
+ 126 0 4 0 0D 3444
+ 126 4157 00010000D 3445
+ 126 0 3 0 0D 3446
+ 126 4160 00010000D 3447
+ 126 0 4 0 0D 3448
+ 126 4164 00010000D 3449
+ 126 0 3 0 0D 3450
+ 126 4167 00010000D 3451
+ 126 0 4 0 0D 3452
+ 126 4171 00010000D 3453
+ 126 0 4 0 0D 3454
+ 126 4175 00010000D 3455
+ 126 0 3 0 0D 3456
+ 126 4178 00010000D 3457
+ 126 0 4 0 0D 3458
+ 126 4182 00010000D 3459
+ 126 0 4 0 0D 3460
+ 126 4186 00010000D 3461
+ 126 0 3 0 0D 3462
+ 126 4189 00010000D 3463
+ 126 0 4 0 0D 3464
+ 126 4193 00010000D 3465
+ 126 0 4 0 0D 3466
+ 126 4197 00010000D 3467
+ 126 0 3 0 0D 3468
+ 126 4200 00010000D 3469
+ 126 0 4 0 0D 3470
+ 126 4204 00010000D 3471
+ 126 0 4 0 0D 3472
+ 126 4208 00010000D 3473
+ 126 0 3 0 0D 3474
+ 126 4211 00010000D 3475
+ 126 0 4 0 0D 3476
+ 126 4215 00010000D 3477
+ 126 0 4 0 0D 3478
+ 126 4219 00010000D 3479
+ 126 0 3 0 0D 3480
+ 126 4222 00010000D 3481
+ 126 0 4 0 0D 3482
+ 126 4226 00010000D 3483
+ 126 0 4 0 0D 3484
+ 126 4230 00010000D 3485
+ 126 0 3 0 0D 3486
+ 126 4233 00010000D 3487
+ 126 0 4 0 0D 3488
+ 126 4237 00010000D 3489
+ 126 0 4 0 0D 3490
+ 126 4241 00010000D 3491
+ 126 0 3 0 0D 3492
+ 126 4244 00010000D 3493
+ 126 0 4 0 0D 3494
+ 126 4248 00010000D 3495
+ 126 0 4 0 0D 3496
+ 126 4252 00010000D 3497
+ 126 0 3 0 0D 3498
+ 126 4255 00010000D 3499
+ 126 0 4 0 0D 3500
+ 126 4259 00010000D 3501
+ 126 0 3 0 0D 3502
+ 126 4262 00010000D 3503
+ 126 0 3 0 0D 3504
+ 126 4265 00010000D 3505
+ 126 0 4 0 0D 3506
+ 126 4269 00010000D 3507
+ 126 0 4 0 0D 3508
+ 126 4273 00010000D 3509
+ 126 0 3 0 0D 3510
+ 126 4276 00010000D 3511
+ 126 0 4 0 0D 3512
+ 126 4280 00010000D 3513
+ 126 0 4 0 0D 3514
+ 126 4284 00010000D 3515
+ 126 0 4 0 0D 3516
+ 126 4288 00010000D 3517
+ 126 0 3 0 0D 3518
+ 126 4291 00010000D 3519
+ 126 0 3 0 0D 3520
+ 126 4294 00010000D 3521
+ 126 0 3 0 0D 3522
+ 126 4297 00010000D 3523
+ 126 0 4 0 0D 3524
+ 126 4301 00010000D 3525
+ 126 0 4 0 0D 3526
+ 126 4305 00010000D 3527
+ 126 0 3 0 0D 3528
+ 126 4308 00010000D 3529
+ 126 0 4 0 0D 3530
+ 126 4312 00010000D 3531
+ 126 0 4 0 0D 3532
+ 126 4316 00010000D 3533
+ 126 0 3 0 0D 3534
+ 126 4319 00010000D 3535
+ 126 0 4 0 0D 3536
+ 126 4323 00010000D 3537
+ 126 0 3 0 0D 3538
+ 126 4326 00010000D 3539
+ 126 0 3 0 0D 3540
+ 126 4329 00010000D 3541
+ 126 0 4 0 0D 3542
+ 126 4333 00010000D 3543
+ 126 0 4 0 0D 3544
+ 126 4337 00010000D 3545
+ 126 0 3 0 0D 3546
+ 126 4340 00010000D 3547
+ 126 0 4 0 0D 3548
+ 126 4344 00010000D 3549
+ 126 0 4 0 0D 3550
+ 126 4348 00010000D 3551
+ 126 0 3 0 0D 3552
+ 126 4351 00010000D 3553
+ 126 0 4 0 0D 3554
+ 126 4355 00010000D 3555
+ 126 0 3 0 0D 3556
+ 126 4358 00010000D 3557
+ 126 0 3 0 0D 3558
+ 126 4361 00010000D 3559
+ 126 0 4 0 0D 3560
+ 126 4365 00010000D 3561
+ 126 0 4 0 0D 3562
+ 126 4369 00010000D 3563
+ 126 0 3 0 0D 3564
+ 126 4372 00010000D 3565
+ 126 0 4 0 0D 3566
+ 126 4376 00010000D 3567
+ 126 0 4 0 0D 3568
+ 126 4380 00010000D 3569
+ 126 0 3 0 0D 3570
+ 126 4383 00010000D 3571
+ 126 0 4 0 0D 3572
+ 126 4387 00010000D 3573
+ 126 0 3 0 0D 3574
+ 126 4390 00010000D 3575
+ 126 0 3 0 0D 3576
+ 126 4393 00010000D 3577
+ 126 0 4 0 0D 3578
+ 126 4397 00010000D 3579
+ 126 0 4 0 0D 3580
+ 126 4401 00010000D 3581
+ 126 0 3 0 0D 3582
+ 126 4404 00010000D 3583
+ 126 0 4 0 0D 3584
+ 126 4408 00010000D 3585
+ 126 0 4 0 0D 3586
+ 126 4412 00010000D 3587
+ 126 0 3 0 0D 3588
+ 126 4415 00010000D 3589
+ 126 0 3 0 0D 3590
+ 126 4418 00010000D 3591
+ 126 0 3 0 0D 3592
+ 126 4421 00010000D 3593
+ 126 0 3 0 0D 3594
+ 126 4424 00010000D 3595
+ 126 0 4 0 0D 3596
+ 126 4428 00010000D 3597
+ 126 0 4 0 0D 3598
+ 126 4432 00010000D 3599
+ 126 0 3 0 0D 3600
+ 126 4435 00010000D 3601
+ 126 0 4 0 0D 3602
+ 126 4439 00010000D 3603
+ 126 0 4 0 0D 3604
+ 126 4443 00010000D 3605
+ 126 0 3 0 0D 3606
+ 126 4446 00010000D 3607
+ 126 0 4 0 0D 3608
+ 126 4450 00010000D 3609
+ 126 0 3 0 0D 3610
+ 126 4453 00010000D 3611
+ 126 0 3 0 0D 3612
+ 126 4456 00010000D 3613
+ 126 0 4 0 0D 3614
+ 126 4460 00010000D 3615
+ 126 0 4 0 0D 3616
+ 126 4464 00010000D 3617
+ 126 0 3 0 0D 3618
+ 126 4467 00010000D 3619
+ 126 0 4 0 0D 3620
+ 126 4471 00010000D 3621
+ 126 0 4 0 0D 3622
+ 126 4475 00010000D 3623
+ 126 0 3 0 0D 3624
+ 126 4478 00010000D 3625
+ 126 0 4 0 0D 3626
+ 126 4482 00010000D 3627
+ 126 0 3 0 0D 3628
+ 126 4485 00010000D 3629
+ 126 0 3 0 0D 3630
+ 126 4488 00010000D 3631
+ 126 0 3 0 0D 3632
+ 126 4491 00010000D 3633
+ 126 0 3 0 0D 3634
+ 126 4494 00010000D 3635
+ 126 0 3 0 0D 3636
+ 126 4497 00010000D 3637
+ 126 0 3 0 0D 3638
+ 126 4500 00010000D 3639
+ 126 0 4 0 0D 3640
+ 126 4504 00010000D 3641
+ 126 0 3 0 0D 3642
+ 126 4507 00010000D 3643
+ 126 0 3 0 0D 3644
+ 126 4510 00010000D 3645
+ 126 0 3 0 0D 3646
+ 126 4513 00010000D 3647
+ 126 0 3 0 0D 3648
+ 126 4516 00010000D 3649
+ 126 0 3 0 0D 3650
+ 126 4519 00010000D 3651
+ 126 0 4 0 0D 3652
+ 126 4523 00010000D 3653
+ 126 0 3 0 0D 3654
+ 126 4526 00010000D 3655
+ 126 0 3 0 0D 3656
+ 126 4529 00010000D 3657
+ 126 0 4 0 0D 3658
+ 126 4533 00010000D 3659
+ 126 0 3 0 0D 3660
+ 126 4536 00010000D 3661
+ 126 0 3 0 0D 3662
+ 126 4539 00010000D 3663
+ 126 0 3 0 0D 3664
+ 126 4542 00010000D 3665
+ 126 0 3 0 0D 3666
+ 126 4545 00010000D 3667
+ 126 0 3 0 0D 3668
+ 126 4548 00010000D 3669
+ 126 0 4 0 0D 3670
+ 126 4552 00010000D 3671
+ 126 0 3 0 0D 3672
+ 126 4555 00010000D 3673
+ 126 0 3 0 0D 3674
+ 126 4558 00010000D 3675
+ 126 0 4 0 0D 3676
+ 126 4562 00010000D 3677
+ 126 0 3 0 0D 3678
+ 126 4565 00010000D 3679
+ 126 0 3 0 0D 3680
+ 126 4568 00010000D 3681
+ 126 0 3 0 0D 3682
+ 126 4571 00010000D 3683
+ 126 0 3 0 0D 3684
+ 126 4574 00010000D 3685
+ 126 0 3 0 0D 3686
+ 126 4577 00010000D 3687
+ 126 0 4 0 0D 3688
+ 126 4581 00010000D 3689
+ 126 0 3 0 0D 3690
+ 126 4584 00010000D 3691
+ 126 0 3 0 0D 3692
+ 126 4587 00010000D 3693
+ 126 0 4 0 0D 3694
+ 126 4591 00010000D 3695
+ 126 0 3 0 0D 3696
+ 126 4594 00010000D 3697
+ 126 0 3 0 0D 3698
+ 126 4597 00010000D 3699
+ 126 0 3 0 0D 3700
+ 126 4600 00010000D 3701
+ 126 0 3 0 0D 3702
+ 126 4603 00010000D 3703
+ 126 0 3 0 0D 3704
+ 126 4606 00010000D 3705
+ 126 0 4 0 0D 3706
+ 126 4610 00010000D 3707
+ 126 0 3 0 0D 3708
+ 126 4613 00010000D 3709
+ 126 0 3 0 0D 3710
+ 126 4616 00010000D 3711
+ 126 0 4 0 0D 3712
+ 126 4620 00010000D 3713
+ 126 0 3 0 0D 3714
+ 126 4623 00010000D 3715
+ 126 0 3 0 0D 3716
+ 126 4626 00010000D 3717
+ 126 0 3 0 0D 3718
+ 126 4629 00010000D 3719
+ 126 0 3 0 0D 3720
+ 126 4632 00010000D 3721
+ 126 0 3 0 0D 3722
+ 126 4635 00010000D 3723
+ 126 0 4 0 0D 3724
+ 126 4639 00010000D 3725
+ 126 0 3 0 0D 3726
+ 126 4642 00010000D 3727
+ 126 0 3 0 0D 3728
+ 126 4645 00010000D 3729
+ 126 0 4 0 0D 3730
+ 126 4649 00010000D 3731
+ 126 0 3 0 0D 3732
+ 126 4652 00010000D 3733
+ 126 0 3 0 0D 3734
+ 126 4655 00010000D 3735
+ 126 0 3 0 0D 3736
+ 126 4658 00010000D 3737
+ 126 0 3 0 0D 3738
+ 126 4661 00010000D 3739
+ 126 0 3 0 0D 3740
+ 126 4664 00010000D 3741
+ 126 0 4 0 0D 3742
+ 126 4668 00010000D 3743
+ 126 0 3 0 0D 3744
+ 126 4671 00010000D 3745
+ 126 0 3 0 0D 3746
+ 126 4674 00010000D 3747
+ 126 0 4 0 0D 3748
+ 126 4678 00010000D 3749
+ 126 0 3 0 0D 3750
+ 126 4681 00010000D 3751
+ 126 0 3 0 0D 3752
+ 126 4684 00010000D 3753
+ 126 0 3 0 0D 3754
+ 126 4687 00010000D 3755
+ 126 0 3 0 0D 3756
+ 126 4690 00010000D 3757
+ 126 0 3 0 0D 3758
+ 126 4693 00010000D 3759
+ 126 0 4 0 0D 3760
+ 126 4697 00010000D 3761
+ 126 0 3 0 0D 3762
+ 126 4700 00010000D 3763
+ 126 0 3 0 0D 3764
+ 126 4703 00010000D 3765
+ 126 0 4 0 0D 3766
+ 126 4707 00010000D 3767
+ 126 0 3 0 0D 3768
+ 126 4710 00010000D 3769
+ 126 0 3 0 0D 3770
+ 126 4713 00010000D 3771
+ 126 0 4 0 0D 3772
+ 126 4717 00010000D 3773
+ 126 0 3 0 0D 3774
+ 126 4720 00010000D 3775
+ 126 0 3 0 0D 3776
+ 126 4723 00010000D 3777
+ 126 0 4 0 0D 3778
+ 126 4727 00010000D 3779
+ 126 0 3 0 0D 3780
+ 126 4730 00010000D 3781
+ 126 0 3 0 0D 3782
+ 126 4733 00010000D 3783
+ 126 0 4 0 0D 3784
+ 126 4737 00010000D 3785
+ 126 0 3 0 0D 3786
+ 126 4740 00010000D 3787
+ 126 0 3 0 0D 3788
+ 126 4743 00010000D 3789
+ 126 0 3 0 0D 3790
+ 126 4746 00010000D 3791
+ 126 0 3 0 0D 3792
+ 126 4749 00010000D 3793
+ 126 0 3 0 0D 3794
+ 126 4752 00010000D 3795
+ 126 0 4 0 0D 3796
+ 126 4756 00010000D 3797
+ 126 0 3 0 0D 3798
+ 126 4759 00010000D 3799
+ 126 0 3 0 0D 3800
+ 126 4762 00010000D 3801
+ 126 0 3 0 0D 3802
+ 126 4765 00010000D 3803
+ 126 0 5 0 0D 3804
+ 126 4770 00010000D 3805
+ 126 0 3 0 0D 3806
+ 126 4773 00010000D 3807
+ 126 0 5 0 0D 3808
+ 126 4778 00010000D 3809
+ 126 0 3 0 0D 3810
+ 126 4781 00010000D 3811
+ 126 0 3 0 0D 3812
+ 126 4784 00010000D 3813
+ 126 0 3 0 0D 3814
+ 126 4787 00010000D 3815
+ 126 0 3 0 0D 3816
+ 126 4790 00010000D 3817
+ 126 0 5 0 0D 3818
+ 126 4795 00010000D 3819
+ 126 0 5 0 0D 3820
+ 126 4800 00010000D 3821
+ 126 0 3 0 0D 3822
+ 126 4803 00010000D 3823
+ 126 0 3 0 0D 3824
+ 126 4806 00010000D 3825
+ 126 0 3 0 0D 3826
+ 126 4809 00010000D 3827
+ 126 0 3 0 0D 3828
+ 126 4812 00010000D 3829
+ 126 0 5 0 0D 3830
+ 126 4817 00010000D 3831
+ 126 0 5 0 0D 3832
+ 126 4822 00010000D 3833
+ 126 0 3 0 0D 3834
+ 126 4825 00010000D 3835
+ 126 0 4 0 0D 3836
+ 126 4829 00010000D 3837
+ 126 0 4 0 0D 3838
+ 126 4833 00010000D 3839
+ 126 0 3 0 0D 3840
+ 126 4836 00010000D 3841
+ 126 0 8 0 0D 3842
+ 126 4844 00010000D 3843
+ 126 0 8 0 0D 3844
+ 126 4852 00010000D 3845
+ 126 0 3 0 0D 3846
+ 126 4855 00010000D 3847
+ 126 0 4 0 0D 3848
+ 126 4859 00010000D 3849
+ 126 0 4 0 0D 3850
+ 126 4863 00010000D 3851
+ 126 0 3 0 0D 3852
+ 126 4866 00010000D 3853
+ 126 0 5 0 0D 3854
+ 126 4871 00010000D 3855
+ 126 0 5 0 0D 3856
+ 126 4876 00010000D 3857
+ 126 0 5 0 0D 3858
+ 126 4881 00010000D 3859
+ 126 0 3 0 0D 3860
+ 126 4884 00010000D 3861
+ 126 0 4 0 0D 3862
+ 126 4888 00010000D 3863
+ 126 0 3 0 0D 3864
+ 126 4891 00010000D 3865
+ 126 0 5 0 0D 3866
+ 126 4896 00010000D 3867
+ 126 0 3 0 0D 3868
+ 126 4899 00010000D 3869
+ 126 0 3 0 0D 3870
+ 126 4902 00010000D 3871
+ 126 0 5 0 0D 3872
+ 126 4907 00010000D 3873
+ 126 0 3 0 0D 3874
+ 126 4910 00010000D 3875
+ 126 0 4 0 0D 3876
+ 126 4914 00010000D 3877
+ 126 0 5 0 0D 3878
+ 126 4919 00010000D 3879
+ 126 0 3 0 0D 3880
+ 126 4922 00010000D 3881
+ 126 0 4 0 0D 3882
+ 126 4926 00010000D 3883
+ 126 0 5 0 0D 3884
+ 126 4931 00010000D 3885
+ 126 0 3 0 0D 3886
+ 126 4934 00010000D 3887
+ 126 0 4 0 0D 3888
+ 126 4938 00010000D 3889
+ 126 0 5 0 0D 3890
+ 126 4943 00010000D 3891
+ 126 0 4 0 0D 3892
+ 126 4947 00010000D 3893
+ 126 0 13 0 0D 3894
+ 126 4960 00010000D 3895
+ 126 0 4 0 0D 3896
+ 126 4964 00010000D 3897
+ 126 0 9 0 0D 3898
+ 126 4973 00010000D 3899
+ 126 0 4 0 0D 3900
+ 126 4977 00010000D 3901
+ 126 0 13 0 0D 3902
+ 126 4990 00010000D 3903
+ 126 0 11 0 0D 3904
+ 126 5001 00010000D 3905
+ 126 0 13 0 0D 3906
+ 126 5014 00010000D 3907
+ 126 0 4 0 0D 3908
+ 126 5018 00010000D 3909
+ 126 0 9 0 0D 3910
+ 126 5027 00010000D 3911
+ 126 0 4 0 0D 3912
+ 126 5031 00010000D 3913
+ 126 0 13 0 0D 3914
+ 126 5044 00010000D 3915
+ 126 0 11 0 0D 3916
+ 126 5055 00010000D 3917
+ 126 0 7 0 0D 3918
+ 126 5062 00010000D 3919
+ 126 0 3 0 0D 3920
+ 126 5065 00010000D 3921
+ 126 0 7 0 0D 3922
+ 126 5072 00010000D 3923
+ 126 0 3 0 0D 3924
+ 126 5075 00010000D 3925
+ 126 0 3 0 0D 3926
+ 126 5078 00010000D 3927
+ 126 0 5 0 0D 3928
+ 126 5083 00010000D 3929
+ 126 0 3 0 0D 3930
+ 126 5086 00010000D 3931
+ 126 0 5 0 0D 3932
+ 126 5091 00010000D 3933
+ 126 0 3 0 0D 3934
+ 126 5094 00010000D 3935
+ 126 0 4 0 0D 3936
+ 126 5098 00010000D 3937
+ 126 0 3 0 0D 3938
+ 126 5101 00010000D 3939
+ 126 0 5 0 0D 3940
+ 126 5106 00010000D 3941
+ 126 0 6 0 0D 3942
+ 126 5112 00010000D 3943
+ 126 0 5 0 0D 3944
+ 126 5117 00010000D 3945
+ 126 0 5 0 0D 3946
+ 126 5122 00010000D 3947
+ 126 0 5 0 0D 3948
+ 126 5127 00010000D 3949
+ 126 0 7 0 0D 3950
+ 126 5134 00010000D 3951
+ 126 0 5 0 0D 3952
+ 126 5139 00010000D 3953
+ 126 0 5 0 0D 3954
+ 126 5144 00010000D 3955
+ 126 0 5 0 0D 3956
+ 126 5149 00010000D 3957
+ 126 0 7 0 0D 3958
+ 126 5156 00010000D 3959
+ 126 0 7 0 0D 3960
+ 126 5163 00010000D 3961
+ 126 0 5 0 0D 3962
+ 126 5168 00010000D 3963
+ 126 0 3 0 0D 3964
+ 126 5171 00010000D 3965
+ 126 0 5 0 0D 3966
+ 126 5176 00010000D 3967
+ 126 0 3 0 0D 3968
+ 126 5179 00010000D 3969
+ 126 0 3 0 0D 3970
+ 126 5182 00010000D 3971
+ 126 0 5 0 0D 3972
+ 126 5187 00010000D 3973
+ 126 0 3 0 0D 3974
+ 126 5190 00010000D 3975
+ 126 0 5 0 0D 3976
+ 126 5195 00010000D 3977
+ 126 0 7 0 0D 3978
+ 126 5202 00010000D 3979
+ 126 0 5 0 0D 3980
+ 126 5207 00010000D 3981
+ 126 0 7 0 0D 3982
+ 126 5214 00010000D 3983
+ 126 0 5 0 0D 3984
+ 126 5219 00010000D 3985
+ 126 0 7 0 0D 3986
+ 126 5226 00010000D 3987
+ 126 0 5 0 0D 3988
+ 126 5231 00010000D 3989
+ 126 0 5 0 0D 3990
+ 126 5236 00010000D 3991
+ 126 0 13 0 0D 3992
+ 126 5249 00010000D 3993
+ 126 0 3 0 0D 3994
+ 126 5252 00010000D 3995
+ 126 0 11 0 0D 3996
+ 126 5263 00010000D 3997
+ 126 0 3 0 0D 3998
+ 126 5266 00010000D 3999
+ 126 0 13 0 0D 4000
+ 126 5279 00010000D 4001
+ 126 0 11 0 0D 4002
+ 126 5290 00010000D 4003
+ 126 0 13 0 0D 4004
+ 126 5303 00010000D 4005
+ 126 0 3 0 0D 4006
+ 126 5306 00010000D 4007
+ 126 0 13 0 0D 4008
+ 126 5319 00010000D 4009
+ 126 0 3 0 0D 4010
+ 126 5322 00010000D 4011
+ 126 0 13 0 0D 4012
+ 126 5335 00010000D 4013
+ 126 0 13 0 0D 4014
+ 126 5348 00010000D 4015
+ 126 0 13 0 0D 4016
+ 126 5361 00010000D 4017
+ 126 0 3 0 0D 4018
+ 126 5364 00010000D 4019
+ 126 0 11 0 0D 4020
+ 126 5375 00010000D 4021
+ 126 0 3 0 0D 4022
+ 126 5378 00010000D 4023
+ 126 0 13 0 0D 4024
+ 126 5391 00010000D 4025
+ 126 0 11 0 0D 4026
+ 126 5402 00010000D 4027
+ 126 0 13 0 0D 4028
+ 126 5415 00010000D 4029
+ 126 0 3 0 0D 4030
+ 126 5418 00010000D 4031
+ 126 0 13 0 0D 4032
+ 126 5431 00010000D 4033
+ 126 0 3 0 0D 4034
+ 126 5434 00010000D 4035
+ 126 0 13 0 0D 4036
+ 126 5447 00010000D 4037
+ 126 0 13 0 0D 4038
+ 126 5460 00010000D 4039
+ 126 0 5 0 0D 4040
+ 126 5465 00010000D 4041
+ 126 0 3 0 0D 4042
+ 126 5468 00010000D 4043
+ 126 0 4 0 0D 4044
+ 126 5472 00010000D 4045
+ 126 0 3 0 0D 4046
+ 126 5475 00010000D 4047
+ 126 0 3 0 0D 4048
+ 126 5478 00010000D 4049
+ 126 0 5 0 0D 4050
+ 126 5483 00010000D 4051
+ 126 0 3 0 0D 4052
+ 126 5486 00010000D 4053
+ 126 0 5 0 0D 4054
+ 126 5491 00010000D 4055
+ 126 0 5 0 0D 4056
+ 126 5496 00010000D 4057
+ 126 0 7 0 0D 4058
+ 126 5503 00010000D 4059
+ 126 0 10 0 0D 4060
+ 126 5513 00010000D 4061
+ 126 0 5 0 0D 4062
+ 126 5518 00010000D 4063
+ 126 0 5 0 0D 4064
+ 126 5523 00010000D 4065
+ 126 0 5 0 0D 4066
+ 126 5528 00010000D 4067
+ 126 0 5 0 0D 4068
+ 126 5533 00010000D 4069
+ 126 0 5 0 0D 4070
+ 126 5538 00010000D 4071
+ 126 0 5 0 0D 4072
+ 126 5543 00010000D 4073
+ 126 0 10 0 0D 4074
+ 126 5553 00010000D 4075
+ 126 0 5 0 0D 4076
+ 126 5558 00010000D 4077
+ 126 0 5 0 0D 4078
+ 126 5563 00010000D 4079
+ 126 0 13 0 0D 4080
+ 126 5576 00010000D 4081
+ 126 0 13 0 0D 4082
+ 126 5589 00010000D 4083
+ 126 0 3 0 0D 4084
+ 126 5592 00010000D 4085
+ 126 0 4 0 0D 4086
+ 126 5596 00010000D 4087
+ 126 0 3 0 0D 4088
+ 126 5599 00010000D 4089
+ 126 0 4 0 0D 4090
+ 126 5603 00010000D 4091
+ 126 0 5 0 0D 4092
+ 126 5608 00010000D 4093
+ 126 0 5 0 0D 4094
+ 126 5613 00010000D 4095
+ 126 0 5 0 0D 4096
+ 126 5618 00010000D 4097
+ 126 0 3 0 0D 4098
+ 126 5621 00010000D 4099
+ 126 0 4 0 0D 4100
+ 126 5625 00010000D 4101
+ 126 0 5 0 0D 4102
+ 126 5630 00010000D 4103
+ 126 0 5 0 0D 4104
+ 126 5635 00010000D 4105
+ 126 0 5 0 0D 4106
+ 126 5640 00010000D 4107
+ 126 0 5 0 0D 4108
+ 126 5645 00010000D 4109
+ 126 0 5 0 0D 4110
+ 126 5650 00010000D 4111
+ 126 0 5 0 0D 4112
+ 126 5655 00010000D 4113
+ 126 0 5 0 0D 4114
+ 126 5660 00010000D 4115
+ 126 0 4 0 0D 4116
+ 126 5664 00010000D 4117
+ 126 0 3 0 0D 4118
+ 126 5667 00010000D 4119
+ 126 0 5 0 0D 4120
+ 126 5672 00010000D 4121
+ 126 0 3 0 0D 4122
+ 126 5675 00010000D 4123
+ 126 0 3 0 0D 4124
+ 126 5678 00010000D 4125
+ 126 0 4 0 0D 4126
+ 126 5682 00010000D 4127
+ 126 0 3 0 0D 4128
+ 126 5685 00010000D 4129
+ 126 0 5 0 0D 4130
+ 126 5690 00010000D 4131
+ 126 0 3 0 0D 4132
+ 126 5693 00010000D 4133
+ 126 0 5 0 0D 4134
+ 126 5698 00010000D 4135
+ 126 0 4 0 0D 4136
+ 126 5702 00010000D 4137
+ 126 0 4 0 0D 4138
+ 126 5706 00010000D 4139
+ 126 0 5 0 0D 4140
+ 126 5711 00010000D 4141
+ 126 0 5 0 0D 4142
+ 126 5716 00010000D 4143
+ 126 0 5 0 0D 4144
+ 126 5721 00010000D 4145
+ 126 0 5 0 0D 4146
+ 126 5726 00010000D 4147
+ 126 0 5 0 0D 4148
+ 126 5731 00010000D 4149
+ 126 0 3 0 0D 4150
+ 126 5734 00010000D 4151
+ 126 0 3 0 0D 4152
+ 126 5737 00010000D 4153
+ 126 0 3 0 0D 4154
+ 126 5740 00010000D 4155
+ 126 0 3 0 0D 4156
+ 126 5743 00010000D 4157
+ 126 0 3 0 0D 4158
+ 126 5746 00010000D 4159
+ 126 0 5 0 0D 4160
+ 126 5751 00010000D 4161
+ 126 0 3 0 0D 4162
+ 126 5754 00010000D 4163
+ 126 0 3 0 0D 4164
+ 126 5757 00010000D 4165
+ 126 0 5 0 0D 4166
+ 126 5762 00010000D 4167
+ 126 0 3 0 0D 4168
+ 126 5765 00010000D 4169
+ 126 0 9 0 0D 4170
+ 126 5774 00010000D 4171
+ 126 0 3 0 0D 4172
+ 126 5777 00010000D 4173
+ 126 0 5 0 0D 4174
+ 126 5782 00010000D 4175
+ 126 0 3 0 0D 4176
+ 126 5785 00010000D 4177
+ 126 0 6 0 0D 4178
+ 126 5791 00010000D 4179
+ 126 0 3 0 0D 4180
+ 126 5794 00010000D 4181
+ 126 0 5 0 0D 4182
+ 126 5799 00010000D 4183
+ 126 0 3 0 0D 4184
+ 126 5802 00010000D 4185
+ 126 0 6 0 0D 4186
+ 126 5808 00010000D 4187
+ 126 0 6 0 0D 4188
+ 126 5814 00010000D 4189
+ 126 0 5 0 0D 4190
+ 126 5819 00010000D 4191
+ 126 0 5 0 0D 4192
+ 126 5824 00010000D 4193
+ 126 0 4 0 0D 4194
+ 126 5828 00010000D 4195
+ 126 0 8 0 0D 4196
+ 126 5836 00010000D 4197
+ 126 0 4 0 0D 4198
+ 126 5840 00010000D 4199
+ 126 0 5 0 0D 4200
+ 126 5845 00010000D 4201
+ 126 0 4 0 0D 4202
+ 126 5849 00010000D 4203
+ 126 0 5 0 0D 4204
+ 126 5854 00010000D 4205
+ 126 0 4 0 0D 4206
+ 126 5858 00010000D 4207
+ 126 0 3 0 0D 4208
+ 126 5861 00010000D 4209
+ 126 0 3 0 0D 4210
+ 126 5864 00010000D 4211
+ 126 0 3 0 0D 4212
+ 126 5867 00010000D 4213
+ 126 0 3 0 0D 4214
+ 126 5870 00010000D 4215
+ 126 0 3 0 0D 4216
+ 126 5873 00010000D 4217
+ 126 0 7 0 0D 4218
+ 126 5880 00010000D 4219
+ 126 0 3 0 0D 4220
+ 126 5883 00010000D 4221
+ 126 0 4 0 0D 4222
+ 126 5887 00010000D 4223
+ 126 0 3 0 0D 4224
+ 126 5890 00010000D 4225
+ 126 0 6 0 0D 4226
+ 126 5896 00010000D 4227
+ 126 0 3 0 0D 4228
+ 126 5899 00010000D 4229
+ 126 0 4 0 0D 4230
+ 126 5903 00010000D 4231
+ 126 0 3 0 0D 4232
+ 126 5906 00010000D 4233
+ 126 0 6 0 0D 4234
+ 126 5912 00010000D 4235
+ 126 0 3 0 0D 4236
+ 126 5915 00010000D 4237
+ 126 0 4 0 0D 4238
+ 126 5919 00010000D 4239
+ 126 0 4 0 0D 4240
+ 126 5923 00010000D 4241
+ 126 0 3 0 0D 4242
+ 126 5926 00010000D 4243
+ 126 0 4 0 0D 4244
+ 126 5930 00010000D 4245
+ 126 0 5 0 0D 4246
+ 126 5935 00010000D 4247
+ 126 0 3 0 0D 4248
+ 126 5938 00010000D 4249
+ 126 0 4 0 0D 4250
+ 126 5942 00010000D 4251
+ 126 0 3 0 0D 4252
+ 126 5945 00010000D 4253
+ 126 0 4 0 0D 4254
+ 126 5949 00010000D 4255
+ 126 0 4 0 0D 4256
+ 126 5953 00010000D 4257
+ 126 0 4 0 0D 4258
+ 126 5957 00010000D 4259
+ 126 0 4 0 0D 4260
+ 126 5961 00010000D 4261
+ 126 0 4 0 0D 4262
+ 126 5965 00010000D 4263
+ 126 0 4 0 0D 4264
+ 126 5969 00010000D 4265
+ 126 0 4 0 0D 4266
+ 126 5973 00010000D 4267
+ 126 0 4 0 0D 4268
+ 126 5977 00010000D 4269
+ 126 0 4 0 0D 4270
+ 126 5981 00010000D 4271
+ 126 0 3 0 0D 4272
+ 126 5984 00010000D 4273
+ 126 0 4 0 0D 4274
+ 126 5988 00010000D 4275
+ 126 0 3 0 0D 4276
+ 126 5991 00010000D 4277
+ 126 0 4 0 0D 4278
+ 126 5995 00010000D 4279
+ 126 0 3 0 0D 4280
+ 126 5998 00010000D 4281
+ 126 0 4 0 0D 4282
+ 126 6002 00010000D 4283
+ 126 0 3 0 0D 4284
+ 126 6005 00010000D 4285
+ 126 0 4 0 0D 4286
+ 126 6009 00010000D 4287
+ 126 0 3 0 0D 4288
+ 126 6012 00010000D 4289
+ 126 0 3 0 0D 4290
+ 126 6015 00010000D 4291
+ 126 0 4 0 0D 4292
+ 126 6019 00010000D 4293
+ 126 0 3 0 0D 4294
+ 126 6022 00010000D 4295
+ 126 0 5 0 0D 4296
+ 126 6027 00010000D 4297
+ 126 0 4 0 0D 4298
+ 126 6031 00010000D 4299
+ 126 0 3 0 0D 4300
+ 126 6034 00010000D 4301
+ 126 0 3 0 0D 4302
+ 126 6037 00010000D 4303
+ 126 0 4 0 0D 4304
+ 126 6041 00010000D 4305
+ 126 0 3 0 0D 4306
+ 126 6044 00010000D 4307
+ 126 0 4 0 0D 4308
+ 126 6048 00010000D 4309
+ 126 0 3 0 0D 4310
+ 126 6051 00010000D 4311
+ 126 0 4 0 0D 4312
+ 126 6055 00010000D 4313
+ 126 0 3 0 0D 4314
+ 126 6058 00010000D 4315
+ 126 0 4 0 0D 4316
+ 126 6062 00010000D 4317
+ 126 0 4 0 0D 4318
+ 126 6066 00010000D 4319
+ 126 0 4 0 0D 4320
+ 126 6070 00010000D 4321
+ 126 0 3 0 0D 4322
+ 126 6073 00010000D 4323
+ 126 0 3 0 0D 4324
+ 126 6076 00010000D 4325
+ 126 0 3 0 0D 4326
+ 126 6079 00010000D 4327
+ 126 0 3 0 0D 4328
+ 126 6082 00010000D 4329
+ 126 0 3 0 0D 4330
+ 126 6085 00010000D 4331
+ 126 0 4 0 0D 4332
+ 126 6089 00010000D 4333
+ 126 0 4 0 0D 4334
+ 126 6093 00010000D 4335
+ 126 0 3 0 0D 4336
+ 126 6096 00010000D 4337
+ 126 0 4 0 0D 4338
+ 126 6100 00010000D 4339
+ 126 0 4 0 0D 4340
+ 126 6104 00010000D 4341
+ 126 0 4 0 0D 4342
+ 126 6108 00010000D 4343
+ 126 0 4 0 0D 4344
+ 126 6112 00010000D 4345
+ 126 0 5 0 0D 4346
+ 126 6117 00010000D 4347
+ 126 0 3 0 0D 4348
+ 126 6120 00010000D 4349
+ 126 0 5 0 0D 4350
+ 126 6125 00010000D 4351
+ 126 0 3 0 0D 4352
+ 126 6128 00010000D 4353
+ 126 0 7 0 0D 4354
+ 126 6135 00010000D 4355
+ 126 0 3 0 0D 4356
+ 126 6138 00010000D 4357
+ 126 0 3 0 0D 4358
+ 126 6141 00010000D 4359
+ 126 0 5 0 0D 4360
+ 126 6146 00010000D 4361
+ 126 0 11 0 0D 4362
+ 126 6157 00010000D 4363
+ 126 0 11 0 0D 4364
+ 126 6168 00010000D 4365
+ 126 0 11 0 0D 4366
+ 126 6179 00010000D 4367
+ 126 0 11 0 0D 4368
+ 126 6190 00010000D 4369
+ 126 0 11 0 0D 4370
+ 126 6201 00010000D 4371
+ 126 0 11 0 0D 4372
+ 126 6212 00010000D 4373
+ 126 0 11 0 0D 4374
+ 126 6223 00010000D 4375
+ 126 0 11 0 0D 4376
+ 126 6234 00010000D 4377
+ 126 0 11 0 0D 4378
+ 126 6245 00010000D 4379
+ 126 0 9 0 0D 4380
+ 126 6254 00010000D 4381
+ 126 0 11 0 0D 4382
+ 126 6265 00010000D 4383
+ 126 0 9 0 0D 4384
+ 126 6274 00010000D 4385
+ 126 0 4 0 0D 4386
+ 126 6278 00010000D 4387
+ 126 0 3 0 0D 4388
+ 126 6281 00010000D 4389
+ 126 0 3 0 0D 4390
+ 126 6284 00010000D 4391
+ 126 0 3 0 0D 4392
+ 126 6287 00010000D 4393
+ 126 0 6 0 0D 4394
+ 126 6293 00010000D 4395
+ 126 0 3 0 0D 4396
+ 126 6296 00010000D 4397
+ 126 0 6 0 0D 4398
+ 126 6302 00010000D 4399
+ 126 0 6 0 0D 4400
+ 126 6308 00010000D 4401
+ 126 0 3 0 0D 4402
+ 126 6311 00010000D 4403
+ 126 0 6 0 0D 4404
+ 126 6317 00010000D 4405
+ 126 0 6 0 0D 4406
+ 126 6323 00010000D 4407
+ 126 0 3 0 0D 4408
+ 126 6326 00010000D 4409
+ 126 0 6 0 0D 4410
+ 126 6332 00010000D 4411
+ 126 0 6 0 0D 4412
+ 126 6338 00010000D 4413
+ 126 0 3 0 0D 4414
+ 126 6341 00010000D 4415
+ 126 0 6 0 0D 4416
+ 126 6347 00010000D 4417
+ 126 0 6 0 0D 4418
+ 126 6353 00010000D 4419
+ 126 0 3 0 0D 4420
+ 126 6356 00010000D 4421
+ 126 0 6 0 0D 4422
+ 126 6362 00010000D 4423
+ 126 0 6 0 0D 4424
+ 126 6368 00010000D 4425
+ 126 0 3 0 0D 4426
+ 126 6371 00010000D 4427
+ 126 0 6 0 0D 4428
+ 126 6377 00010000D 4429
+ 126 0 4 0 0D 4430
+ 126 6381 00010000D 4431
+ 126 0 3 0 0D 4432
+ 126 6384 00010000D 4433
+ 126 0 3 0 0D 4434
+ 126 6387 00010000D 4435
+ 126 0 4 0 0D 4436
+ 126 6391 00010000D 4437
+ 126 0 3 0 0D 4438
+ 126 6394 00010000D 4439
+ 126 0 4 0 0D 4440
+ 126 6398 00010000D 4441
+ 126 0 3 0 0D 4442
+ 126 6401 00010000D 4443
+ 126 0 3 0 0D 4444
+ 126 6404 00010000D 4445
+ 126 0 3 0 0D 4446
+ 126 6407 00010000D 4447
+ 126 0 4 0 0D 4448
+ 126 6411 00010000D 4449
+ 126 0 3 0 0D 4450
+ 126 6414 00010000D 4451
+ 126 0 3 0 0D 4452
+ 126 6417 00010000D 4453
+ 126 0 6 0 0D 4454
+ 126 6423 00010000D 4455
+ 126 0 3 0 0D 4456
+ 126 6426 00010000D 4457
+ 126 0 6 0 0D 4458
+ 126 6432 00010000D 4459
+ 126 0 6 0 0D 4460
+ 126 6438 00010000D 4461
+ 126 0 3 0 0D 4462
+ 126 6441 00010000D 4463
+ 126 0 6 0 0D 4464
+ 126 6447 00010000D 4465
+ 126 0 6 0 0D 4466
+ 126 6453 00010000D 4467
+ 126 0 3 0 0D 4468
+ 126 6456 00010000D 4469
+ 126 0 6 0 0D 4470
+ 126 6462 00010000D 4471
+ 126 0 4 0 0D 4472
+ 126 6466 00010000D 4473
+ 126 0 3 0 0D 4474
+ 126 6469 00010000D 4475
+ 126 0 3 0 0D 4476
+ 126 6472 00010000D 4477
+ 126 0 4 0 0D 4478
+ 126 6476 00010000D 4479
+ 126 0 3 0 0D 4480
+ 126 6479 00010000D 4481
+ 126 0 3 0 0D 4482
+ 126 6482 00010000D 4483
+ 126 0 4 0 0D 4484
+ 126 6486 00010000D 4485
+ 126 0 3 0 0D 4486
+ 126 6489 00010000D 4487
+ 126 0 3 0 0D 4488
+ 126 6492 00010000D 4489
+ 126 0 6 0 0D 4490
+ 126 6498 00010000D 4491
+ 126 0 3 0 0D 4492
+ 126 6501 00010000D 4493
+ 126 0 6 0 0D 4494
+ 126 6507 00010000D 4495
+ 126 0 6 0 0D 4496
+ 126 6513 00010000D 4497
+ 126 0 3 0 0D 4498
+ 126 6516 00010000D 4499
+ 126 0 6 0 0D 4500
+ 126 6522 00010000D 4501
+ 126 0 6 0 0D 4502
+ 126 6528 00010000D 4503
+ 126 0 3 0 0D 4504
+ 126 6531 00010000D 4505
+ 126 0 6 0 0D 4506
+ 126 6537 00010000D 4507
+ 126 0 6 0 0D 4508
+ 126 6543 00010000D 4509
+ 126 0 3 0 0D 4510
+ 126 6546 00010000D 4511
+ 126 0 6 0 0D 4512
+ 126 6552 00010000D 4513
+ 126 0 6 0 0D 4514
+ 126 6558 00010000D 4515
+ 126 0 3 0 0D 4516
+ 126 6561 00010000D 4517
+ 126 0 6 0 0D 4518
+ 126 6567 00010000D 4519
+ 126 0 6 0 0D 4520
+ 126 6573 00010000D 4521
+ 126 0 3 0 0D 4522
+ 126 6576 00010000D 4523
+ 126 0 6 0 0D 4524
+ 126 6582 00010000D 4525
+ 126 0 6 0 0D 4526
+ 126 6588 00010000D 4527
+ 126 0 3 0 0D 4528
+ 126 6591 00010000D 4529
+ 126 0 6 0 0D 4530
+ 126 6597 00010000D 4531
+ 126 0 4 0 0D 4532
+ 126 6601 00010000D 4533
+ 126 0 3 0 0D 4534
+ 126 6604 00010000D 4535
+ 126 0 3 0 0D 4536
+ 126 6607 00010000D 4537
+ 126 0 4 0 0D 4538
+ 126 6611 00010000D 4539
+ 126 0 3 0 0D 4540
+ 126 6614 00010000D 4541
+ 126 0 3 0 0D 4542
+ 126 6617 00010000D 4543
+ 126 0 4 0 0D 4544
+ 126 6621 00010000D 4545
+ 126 0 3 0 0D 4546
+ 126 6624 00010000D 4547
+ 126 0 4 0 0D 4548
+ 126 6628 00010000D 4549
+ 126 0 6 0 0D 4550
+ 126 6634 00010000D 4551
+ 126 0 8 0 0D 4552
+ 126 6642 00010000D 4553
+ 126 0 4 0 0D 4554
+ 126 6646 00010000D 4555
+ 126 0 4 0 0D 4556
+ 126 6650 00010000D 4557
+ 126 0 4 0 0D 4558
+ 126 6654 00010000D 4559
+ 126 0 4 0 0D 4560
+ 126 6658 00010000D 4561
+ 126 0 4 0 0D 4562
+ 126 6662 00010000D 4563
+ 126 0 4 0 0D 4564
+ 126 6666 00010000D 4565
+ 126 0 4 0 0D 4566
+ 126 6670 00010000D 4567
+ 126 0 8 0 0D 4568
+ 126 6678 00010000D 4569
+ 126 0 4 0 0D 4570
+ 126 6682 00010000D 4571
+ 126 0 6 0 0D 4572
+ 126 6688 00010000D 4573
+ 126 0 4 0 0D 4574
+ 126 6692 00010000D 4575
+ 126 0 3 0 0D 4576
+ 126 6695 00010000D 4577
+ 126 0 11 0 0D 4578
+ 126 6706 00010000D 4579
+ 126 0 4 0 0D 4580
+ 126 6710 00010000D 4581
+ 126 0 11 0 0D 4582
+ 126 6721 00010000D 4583
+ 126 0 11 0 0D 4584
+ 126 6732 00010000D 4585
+ 126 0 11 0 0D 4586
+ 126 6743 00010000D 4587
+ 126 0 11 0 0D 4588
+ 126 6754 00010000D 4589
+ 126 0 11 0 0D 4590
+ 126 6765 00010000D 4591
+ 126 0 11 0 0D 4592
+ 126 6776 00010000D 4593
+ 126 0 11 0 0D 4594
+ 126 6787 00010000D 4595
+ 126 0 11 0 0D 4596
+ 126 6798 00010000D 4597
+ 126 0 11 0 0D 4598
+ 126 6809 00010000D 4599
+ 126 0 13 0 0D 4600
+ 126 6822 00010000D 4601
+ 126 0 13 0 0D 4602
+ 126 6835 00010000D 4603
+ 126 0 11 0 0D 4604
+ 126 6846 00010000D 4605
+ 126 0 11 0 0D 4606
+ 126 6857 00010000D 4607
+ 126 0 3 0 0D 4608
+ 126 6860 00010000D 4609
+ 126 0 3 0 0D 4610
+ 126 6863 00010000D 4611
+ 126 0 3 0 0D 4612
+ 126 6866 00010000D 4613
+ 126 0 3 0 0D 4614
+ 126 6869 00010000D 4615
+ 126 0 6 0 0D 4616
+ 126 6875 00010000D 4617
+ 126 0 3 0 0D 4618
+ 126 6878 00010000D 4619
+ 126 0 3 0 0D 4620
+ 126 6881 00010000D 4621
+ 126 0 3 0 0D 4622
+ 126 6884 00010000D 4623
+ 126 0 3 0 0D 4624
+ 126 6887 00010000D 4625
+ 126 0 4 0 0D 4626
+ 126 6891 00010000D 4627
+ 126 0 3 0 0D 4628
+ 126 6894 00010000D 4629
+ 126 0 3 0 0D 4630
+ 126 6897 00010000D 4631
+ 126 0 4 0 0D 4632
+ 126 6901 00010000D 4633
+ 126 0 5 0 0D 4634
+ 126 6906 00010000D 4635
+ 126 0 6 0 0D 4636
+ 126 6912 00010000D 4637
+ 126 0 4 0 0D 4638
+ 126 6916 00010000D 4639
+ 126 0 4 0 0D 4640
+ 126 6920 00010000D 4641
+ 126 0 4 0 0D 4642
+ 126 6924 00010000D 4643
+ 126 0 6 0 0D 4644
+ 126 6930 00010000D 4645
+ 126 0 6 0 0D 4646
+ 126 6936 00010000D 4647
+ 126 0 4 0 0D 4648
+ 126 6940 00010000D 4649
+ 126 0 3 0 0D 4650
+ 126 6943 00010000D 4651
+ 126 0 4 0 0D 4652
+ 126 6947 00010000D 4653
+ 126 0 3 0 0D 4654
+ 126 6950 00010000D 4655
+ 126 0 6 0 0D 4656
+ 126 6956 00010000D 4657
+ 126 0 4 0 0D 4658
+ 126 6960 00010000D 4659
+ 126 0 6 0 0D 4660
+ 126 6966 00010000D 4661
+ 126 0 4 0 0D 4662
+ 126 6970 00010000D 4663
+ 126 0 6 0 0D 4664
+ 126 6976 00010000D 4665
+ 126 0 4 0 0D 4666
+ 126 6980 00010000D 4667
+ 126 0 3 0 0D 4668
+ 126 6983 00010000D 4669
+ 126 0 3 0 0D 4670
+ 126 6986 00010000D 4671
+ 126 0 3 0 0D 4672
+ 126 6989 00010000D 4673
+ 126 0 3 0 0D 4674
+ 126 6992 00010000D 4675
+ 126 0 3 0 0D 4676
+ 126 6995 00010000D 4677
+ 126 0 3 0 0D 4678
+ 126 6998 00010000D 4679
+ 126 0 3 0 0D 4680
+ 126 7001 00010000D 4681
+ 126 0 3 0 0D 4682
+ 126 7004 00010000D 4683
+ 126 0 3 0 0D 4684
+ 126 7007 00010000D 4685
+ 126 0 4 0 0D 4686
+ 126 7011 00010000D 4687
+ 126 0 3 0 0D 4688
+ 126 7014 00010000D 4689
+ 126 0 3 0 0D 4690
+ 126 7017 00010000D 4691
+ 126 0 4 0 0D 4692
+ 126 7021 00010000D 4693
+ 126 0 3 0 0D 4694
+ 126 7024 00010000D 4695
+ 126 0 3 0 0D 4696
+ 126 7027 00010000D 4697
+ 126 0 3 0 0D 4698
+ 126 7030 00010000D 4699
+ 126 0 3 0 0D 4700
+ 126 7033 00010000D 4701
+ 126 0 3 0 0D 4702
+ 126 7036 00010000D 4703
+ 126 0 4 0 0D 4704
+ 126 7040 00010000D 4705
+ 126 0 3 0 0D 4706
+ 126 7043 00010000D 4707
+ 126 0 3 0 0D 4708
+ 126 7046 00010000D 4709
+ 126 0 4 0 0D 4710
+ 126 7050 00010000D 4711
+ 126 0 3 0 0D 4712
+ 126 7053 00010000D 4713
+ 126 0 7 0 0D 4714
+ 126 7060 00010000D 4715
+ 126 0 3 0 0D 4716
+ 126 7063 00010000D 4717
+ 126 0 4 0 0D 4718
+ 126 7067 00010000D 4719
+ 126 0 3 0 0D 4720
+ 126 7070 00010000D 4721
+ 126 0 5 0 0D 4722
+ 126 7075 00010000D 4723
+ 126 0 3 0 0D 4724
+ 126 7078 00010000D 4725
+ 126 0 4 0 0D 4726
+ 126 7082 00010000D 4727
+ 126 0 3 0 0D 4728
+ 126 7085 00010000D 4729
+ 126 0 5 0 0D 4730
+ 126 7090 00010000D 4731
+ 126 0 5 0 0D 4732
+ 126 7095 00010000D 4733
+ 126 0 5 0 0D 4734
+ 126 7100 00010000D 4735
+ 126 0 4 0 0D 4736
+ 126 7104 00010000D 4737
+ 126 0 3 0 0D 4738
+ 126 7107 00010000D 4739
+ 126 0 7 0 0D 4740
+ 126 7114 00010000D 4741
+ 126 0 3 0 0D 4742
+ 126 7117 00010000D 4743
+ 126 0 5 0 0D 4744
+ 126 7122 00010000D 4745
+ 126 0 3 0 0D 4746
+ 126 7125 00010000D 4747
+ 126 0 5 0 0D 4748
+ 126 7130 00010000D 4749
+ 126 0 3 0 0D 4750
+ 126 7133 00010000D 4751
+ 126 0 3 0 0D 4752
+ 126 7136 00010000D 4753
+ 126 0 3 0 0D 4754
+ 126 7139 00010000D 4755
+ 126 0 3 0 0D 4756
+ 126 7142 00010000D 4757
+ 126 0 3 0 0D 4758
+ 126 7145 00010000D 4759
+ 126 0 3 0 0D 4760
+ 126 7148 00010000D 4761
+ 126 0 3 0 0D 4762
+ 128 7151 00010000D 4763
+ 128 0 -5703 23 0 0D 4764
+ 128 7174 00010000D 4765
+ 128 0 -5703 23 0 0D 4766
+ 128 7197 00010000D 4767
+ 128 0 -5703 23 0 0D 4768
+ 128 7220 00010000D 4769
+ 128 0 -5703 23 0 0D 4770
+ 128 7243 00010000D 4771
+ 128 0 -5703 20 0 0D 4772
+ 128 7263 00010000D 4773
+ 128 0 -5703 20 0 0D 4774
+ 128 7283 00010000D 4775
+ 128 0 -5703 20 0 0D 4776
+ 128 7303 00010000D 4777
+ 128 0 -5703 20 0 0D 4778
+ 128 7323 00010000D 4779
+ 128 0 -5703 8 0 0D 4780
+ 128 7331 00010000D 4781
+ 128 0 -5703 7 0 0D 4782
+ 128 7338 00010000D 4783
+ 128 0 -5703 7 0 0D 4784
+ 128 7345 00010000D 4785
+ 128 0 -5703 7 0 0D 4786
+ 128 7352 00010000D 4787
+ 128 0 -5703 8 0 0D 4788
+ 128 7360 00010000D 4789
+ 128 0 -5703 7 0 0D 4790
+ 128 7367 00010000D 4791
+ 128 0 -5703 7 0 0D 4792
+ 128 7374 00010000D 4793
+ 128 0 -5703 7 0 0D 4794
+ 128 7381 00010000D 4795
+ 128 0 -5703 8 0 0D 4796
+ 128 7389 00010000D 4797
+ 128 0 -5703 7 0 0D 4798
+ 128 7396 00010000D 4799
+ 128 0 -5703 7 0 0D 4800
+ 128 7403 00010000D 4801
+ 128 0 -5703 7 0 0D 4802
+ 128 7410 00010000D 4803
+ 128 0 -5703 8 0 0D 4804
+ 128 7418 00010000D 4805
+ 128 0 -5703 7 0 0D 4806
+ 128 7425 00010000D 4807
+ 128 0 -5703 7 0 0D 4808
+ 128 7432 00010000D 4809
+ 128 0 -5703 7 0 0D 4810
+ 128 7439 00010000D 4811
+ 128 0 -5703 8 0 0D 4812
+ 128 7447 00010000D 4813
+ 128 0 -5703 7 0 0D 4814
+ 128 7454 00010000D 4815
+ 128 0 -5703 7 0 0D 4816
+ 128 7461 00010000D 4817
+ 128 0 -5703 7 0 0D 4818
+ 128 7468 00010000D 4819
+ 128 0 -5703 8 0 0D 4820
+ 128 7476 00010000D 4821
+ 128 0 -5703 7 0 0D 4822
+ 128 7483 00010000D 4823
+ 128 0 -5703 7 0 0D 4824
+ 128 7490 00010000D 4825
+ 128 0 -5703 7 0 0D 4826
+ 128 7497 00010000D 4827
+ 128 0 -5703 8 0 0D 4828
+ 128 7505 00010000D 4829
+ 128 0 -5703 7 0 0D 4830
+ 128 7512 00010000D 4831
+ 128 0 -5703 7 0 0D 4832
+ 128 7519 00010000D 4833
+ 128 0 -5703 7 0 0D 4834
+ 128 7526 00010000D 4835
+ 128 0 -5703 8 0 0D 4836
+ 128 7534 00010000D 4837
+ 128 0 -5703 7 0 0D 4838
+ 128 7541 00010000D 4839
+ 128 0 -5703 7 0 0D 4840
+ 128 7548 00010000D 4841
+ 128 0 -5703 6 0 0D 4842
+ 128 7554 00010000D 4843
+ 128 0 -5703 8 0 0D 4844
+ 128 7562 00010000D 4845
+ 128 0 -5703 6 0 0D 4846
+ 128 7568 00010000D 4847
+ 128 0 -5703 7 0 0D 4848
+ 128 7575 00010000D 4849
+ 128 0 -5703 6 0 0D 4850
+ 128 7581 00010000D 4851
+ 128 0 -5703 8 0 0D 4852
+ 128 7589 00010000D 4853
+ 128 0 -5703 7 0 0D 4854
+ 128 7596 00010000D 4855
+ 128 0 -5703 7 0 0D 4856
+ 128 7603 00010000D 4857
+ 128 0 -5703 6 0 0D 4858
+ 128 7609 00010000D 4859
+ 128 0 -5703 8 0 0D 4860
+ 128 7617 00010000D 4861
+ 128 0 -5703 6 0 0D 4862
+ 128 7623 00010000D 4863
+ 128 0 -5703 6 0 0D 4864
+ 128 7629 00010000D 4865
+ 128 0 -5703 6 0 0D 4866
+ 128 7635 00010000D 4867
+ 128 0 -5703 8 0 0D 4868
+ 128 7643 00010000D 4869
+ 128 0 -5703 6 0 0D 4870
+ 128 7649 00010000D 4871
+ 128 0 -5703 6 0 0D 4872
+ 128 7655 00010000D 4873
+ 128 0 -5703 6 0 0D 4874
+ 128 7661 00010000D 4875
+ 128 0 -5703 8 0 0D 4876
+ 128 7669 00010000D 4877
+ 128 0 -5703 6 0 0D 4878
+ 128 7675 00010000D 4879
+ 128 0 -5703 6 0 0D 4880
+ 128 7681 00010000D 4881
+ 128 0 -5703 6 0 0D 4882
+ 128 7687 00010000D 4883
+ 128 0 -5703 8 0 0D 4884
+ 128 7695 00010000D 4885
+ 128 0 -5703 6 0 0D 4886
+ 128 7701 00010000D 4887
+ 128 0 -5703 6 0 0D 4888
+ 128 7707 00010000D 4889
+ 128 0 -5703 6 0 0D 4890
+ 128 7713 00010000D 4891
+ 128 0 -5703 8 0 0D 4892
+ 128 7721 00010000D 4893
+ 128 0 -5703 6 0 0D 4894
+ 128 7727 00010000D 4895
+ 128 0 -5703 6 0 0D 4896
+ 128 7733 00010000D 4897
+ 128 0 -5703 6 0 0D 4898
+ 128 7739 00010000D 4899
+ 128 0 -5703 6 0 0D 4900
+ 128 7745 00010000D 4901
+ 128 0 -5703 6 0 0D 4902
+ 128 7751 00010000D 4903
+ 128 0 -5703 8 0 0D 4904
+ 128 7759 00010000D 4905
+ 128 0 -5703 6 0 0D 4906
+ 128 7765 00010000D 4907
+ 128 0 -5703 6 0 0D 4908
+ 128 7771 00010000D 4909
+ 128 0 -5703 6 0 0D 4910
+ 128 7777 00010000D 4911
+ 128 0 -5703 7 0 0D 4912
+ 128 7784 00010000D 4913
+ 128 0 -5703 6 0 0D 4914
+ 128 7790 00010000D 4915
+ 128 0 -5703 7 0 0D 4916
+ 128 7797 00010000D 4917
+ 128 0 -5703 6 0 0D 4918
+ 128 7803 00010000D 4919
+ 128 0 -5703 6 0 0D 4920
+ 128 7809 00010000D 4921
+ 128 0 -5703 6 0 0D 4922
+ 128 7815 00010000D 4923
+ 128 0 -5703 8 0 0D 4924
+ 128 7823 00010000D 4925
+ 128 0 -5703 7 0 0D 4926
+ 128 7830 00010000D 4927
+ 128 0 -5703 7 0 0D 4928
+ 128 7837 00010000D 4929
+ 128 0 -5703 7 0 0D 4930
+ 128 7844 00010000D 4931
+ 128 0 -5703 8 0 0D 4932
+ 128 7852 00010000D 4933
+ 128 0 -5703 7 0 0D 4934
+ 128 7859 00010000D 4935
+ 128 0 -5703 7 0 0D 4936
+ 128 7866 00010000D 4937
+ 128 0 -5703 7 0 0D 4938
+ 128 7873 00010000D 4939
+ 128 0 -5703 8 0 0D 4940
+ 128 7881 00010000D 4941
+ 128 0 -5703 7 0 0D 4942
+ 128 7888 00010000D 4943
+ 128 0 -5703 7 0 0D 4944
+ 128 7895 00010000D 4945
+ 128 0 -5703 7 0 0D 4946
+ 128 7902 00010000D 4947
+ 128 0 -5703 8 0 0D 4948
+ 128 7910 00010000D 4949
+ 128 0 -5703 7 0 0D 4950
+ 128 7917 00010000D 4951
+ 128 0 -5703 7 0 0D 4952
+ 128 7924 00010000D 4953
+ 128 0 -5703 7 0 0D 4954
+ 128 7931 00010000D 4955
+ 128 0 -5703 8 0 0D 4956
+ 128 7939 00010000D 4957
+ 128 0 -5703 7 0 0D 4958
+ 128 7946 00010000D 4959
+ 128 0 -5703 7 0 0D 4960
+ 128 7953 00010000D 4961
+ 128 0 -5703 7 0 0D 4962
+ 128 7960 00010000D 4963
+ 128 0 -5703 8 0 0D 4964
+ 128 7968 00010000D 4965
+ 128 0 -5703 7 0 0D 4966
+ 128 7975 00010000D 4967
+ 128 0 -5703 7 0 0D 4968
+ 128 7982 00010000D 4969
+ 128 0 -5703 7 0 0D 4970
+ 128 7989 00010000D 4971
+ 128 0 -5703 8 0 0D 4972
+ 128 7997 00010000D 4973
+ 128 0 -5703 7 0 0D 4974
+ 128 8004 00010000D 4975
+ 128 0 -5703 7 0 0D 4976
+ 128 8011 00010000D 4977
+ 128 0 -5703 7 0 0D 4978
+ 128 8018 00010000D 4979
+ 128 0 -5703 8 0 0D 4980
+ 128 8026 00010000D 4981
+ 128 0 -5703 7 0 0D 4982
+ 128 8033 00010000D 4983
+ 128 0 -5703 7 0 0D 4984
+ 128 8040 00010000D 4985
+ 128 0 -5703 7 0 0D 4986
+ 128 8047 00010000D 4987
+ 128 0 -5703 8 0 0D 4988
+ 128 8055 00010000D 4989
+ 128 0 -5703 6 0 0D 4990
+ 128 8061 00010000D 4991
+ 128 0 -5703 7 0 0D 4992
+ 128 8068 00010000D 4993
+ 128 0 -5703 6 0 0D 4994
+ 128 8074 00010000D 4995
+ 128 0 -5703 8 0 0D 4996
+ 128 8082 00010000D 4997
+ 128 0 -5703 7 0 0D 4998
+ 128 8089 00010000D 4999
+ 128 0 -5703 7 0 0D 5000
+ 128 8096 00010000D 5001
+ 128 0 -5703 6 0 0D 5002
+ 128 8102 00010000D 5003
+ 128 0 -5703 8 0 0D 5004
+ 128 8110 00010000D 5005
+ 128 0 -5703 6 0 0D 5006
+ 128 8116 00010000D 5007
+ 128 0 -5703 6 0 0D 5008
+ 128 8122 00010000D 5009
+ 128 0 -5703 6 0 0D 5010
+ 128 8128 00010000D 5011
+ 128 0 -5703 8 0 0D 5012
+ 128 8136 00010000D 5013
+ 128 0 -5703 6 0 0D 5014
+ 128 8142 00010000D 5015
+ 128 0 -5703 6 0 0D 5016
+ 128 8148 00010000D 5017
+ 128 0 -5703 6 0 0D 5018
+ 128 8154 00010000D 5019
+ 128 0 -5703 8 0 0D 5020
+ 128 8162 00010000D 5021
+ 128 0 -5703 6 0 0D 5022
+ 128 8168 00010000D 5023
+ 128 0 -5703 6 0 0D 5024
+ 128 8174 00010000D 5025
+ 128 0 -5703 6 0 0D 5026
+ 128 8180 00010000D 5027
+ 128 0 -5703 8 0 0D 5028
+ 128 8188 00010000D 5029
+ 128 0 -5703 6 0 0D 5030
+ 128 8194 00010000D 5031
+ 128 0 -5703 6 0 0D 5032
+ 128 8200 00010000D 5033
+ 128 0 -5703 6 0 0D 5034
+ 128 8206 00010000D 5035
+ 128 0 -5703 8 0 0D 5036
+ 128 8214 00010000D 5037
+ 128 0 -5703 6 0 0D 5038
+ 128 8220 00010000D 5039
+ 128 0 -5703 6 0 0D 5040
+ 128 8226 00010000D 5041
+ 128 0 -5703 6 0 0D 5042
+ 128 8232 00010000D 5043
+ 128 0 -5703 6 0 0D 5044
+ 128 8238 00010000D 5045
+ 128 0 -5703 6 0 0D 5046
+ 128 8244 00010000D 5047
+ 128 0 -5703 8 0 0D 5048
+ 128 8252 00010000D 5049
+ 128 0 -5703 6 0 0D 5050
+ 128 8258 00010000D 5051
+ 128 0 -5703 6 0 0D 5052
+ 128 8264 00010000D 5053
+ 128 0 -5703 6 0 0D 5054
+ 128 8270 00010000D 5055
+ 128 0 -5703 7 0 0D 5056
+ 128 8277 00010000D 5057
+ 128 0 -5703 6 0 0D 5058
+ 128 8283 00010000D 5059
+ 128 0 -5703 7 0 0D 5060
+ 128 8290 00010000D 5061
+ 128 0 -5703 6 0 0D 5062
+ 128 8296 00010000D 5063
+ 128 0 -5703 6 0 0D 5064
+ 128 8302 00010000D 5065
+ 128 0 -5703 6 0 0D 5066
+ 128 8308 00010000D 5067
+ 128 0 -5703 8 0 0D 5068
+ 128 8316 00010000D 5069
+ 128 0 -5703 7 0 0D 5070
+ 128 8323 00010000D 5071
+ 128 0 -5703 7 0 0D 5072
+ 128 8330 00010000D 5073
+ 128 0 -5703 7 0 0D 5074
+ 128 8337 00010000D 5075
+ 128 0 -5703 8 0 0D 5076
+ 128 8345 00010000D 5077
+ 128 0 -5703 7 0 0D 5078
+ 128 8352 00010000D 5079
+ 128 0 -5703 7 0 0D 5080
+ 128 8359 00010000D 5081
+ 128 0 -5703 7 0 0D 5082
+ 128 8366 00010000D 5083
+ 128 0 -5703 8 0 0D 5084
+ 128 8374 00010000D 5085
+ 128 0 -5703 7 0 0D 5086
+ 128 8381 00010000D 5087
+ 128 0 -5703 7 0 0D 5088
+ 128 8388 00010000D 5089
+ 128 0 -5703 7 0 0D 5090
+ 128 8395 00010000D 5091
+ 128 0 -5703 8 0 0D 5092
+ 128 8403 00010000D 5093
+ 128 0 -5703 7 0 0D 5094
+ 128 8410 00010000D 5095
+ 128 0 -5703 7 0 0D 5096
+ 128 8417 00010000D 5097
+ 128 0 -5703 7 0 0D 5098
+ 128 8424 00010000D 5099
+ 128 0 -5703 8 0 0D 5100
+ 128 8432 00010000D 5101
+ 128 0 -5703 7 0 0D 5102
+ 128 8439 00010000D 5103
+ 128 0 -5703 7 0 0D 5104
+ 128 8446 00010000D 5105
+ 128 0 -5703 7 0 0D 5106
+ 128 8453 00010000D 5107
+ 128 0 -5703 8 0 0D 5108
+ 128 8461 00010000D 5109
+ 128 0 -5703 7 0 0D 5110
+ 128 8468 00010000D 5111
+ 128 0 -5703 7 0 0D 5112
+ 128 8475 00010000D 5113
+ 128 0 -5703 7 0 0D 5114
+ 128 8482 00010000D 5115
+ 128 0 -5703 8 0 0D 5116
+ 128 8490 00010000D 5117
+ 128 0 -5703 7 0 0D 5118
+ 128 8497 00010000D 5119
+ 128 0 -5703 7 0 0D 5120
+ 128 8504 00010000D 5121
+ 128 0 -5703 7 0 0D 5122
+ 128 8511 00010000D 5123
+ 128 0 -5703 8 0 0D 5124
+ 128 8519 00010000D 5125
+ 128 0 -5703 7 0 0D 5126
+ 128 8526 00010000D 5127
+ 128 0 -5703 7 0 0D 5128
+ 128 8533 00010000D 5129
+ 128 0 -5703 7 0 0D 5130
+ 128 8540 00010000D 5131
+ 128 0 -5703 8 0 0D 5132
+ 128 8548 00010000D 5133
+ 128 0 -5703 6 0 0D 5134
+ 128 8554 00010000D 5135
+ 128 0 -5703 7 0 0D 5136
+ 128 8561 00010000D 5137
+ 128 0 -5703 6 0 0D 5138
+ 128 8567 00010000D 5139
+ 128 0 -5703 8 0 0D 5140
+ 128 8575 00010000D 5141
+ 128 0 -5703 7 0 0D 5142
+ 128 8582 00010000D 5143
+ 128 0 -5703 7 0 0D 5144
+ 128 8589 00010000D 5145
+ 128 0 -5703 6 0 0D 5146
+ 128 8595 00010000D 5147
+ 128 0 -5703 8 0 0D 5148
+ 128 8603 00010000D 5149
+ 128 0 -5703 7 0 0D 5150
+ 128 8610 00010000D 5151
+ 128 0 -5703 6 0 0D 5152
+ 128 8616 00010000D 5153
+ 128 0 -5703 6 0 0D 5154
+ 128 8622 00010000D 5155
+ 128 0 -5703 8 0 0D 5156
+ 128 8630 00010000D 5157
+ 128 0 -5703 6 0 0D 5158
+ 128 8636 00010000D 5159
+ 128 0 -5703 6 0 0D 5160
+ 128 8642 00010000D 5161
+ 128 0 -5703 6 0 0D 5162
+ 128 8648 00010000D 5163
+ 128 0 -5703 8 0 0D 5164
+ 128 8656 00010000D 5165
+ 128 0 -5703 6 0 0D 5166
+ 128 8662 00010000D 5167
+ 128 0 -5703 6 0 0D 5168
+ 128 8668 00010000D 5169
+ 128 0 -5703 6 0 0D 5170
+ 128 8674 00010000D 5171
+ 128 0 -5703 8 0 0D 5172
+ 128 8682 00010000D 5173
+ 128 0 -5703 6 0 0D 5174
+ 128 8688 00010000D 5175
+ 128 0 -5703 6 0 0D 5176
+ 128 8694 00010000D 5177
+ 128 0 -5703 6 0 0D 5178
+ 128 8700 00010000D 5179
+ 128 0 -5703 8 0 0D 5180
+ 128 8708 00010000D 5181
+ 128 0 -5703 6 0 0D 5182
+ 128 8714 00010000D 5183
+ 128 0 -5703 6 0 0D 5184
+ 128 8720 00010000D 5185
+ 128 0 -5703 6 0 0D 5186
+ 128 8726 00010000D 5187
+ 128 0 -5703 6 0 0D 5188
+ 128 8732 00010000D 5189
+ 128 0 -5703 6 0 0D 5190
+ 128 8738 00010000D 5191
+ 128 0 -5703 8 0 0D 5192
+ 128 8746 00010000D 5193
+ 128 0 -5703 6 0 0D 5194
+ 128 8752 00010000D 5195
+ 128 0 -5703 6 0 0D 5196
+ 128 8758 00010000D 5197
+ 128 0 -5703 6 0 0D 5198
+ 128 8764 00010000D 5199
+ 128 0 -5703 7 0 0D 5200
+ 128 8771 00010000D 5201
+ 128 0 -5703 6 0 0D 5202
+ 128 8777 00010000D 5203
+ 128 0 -5703 7 0 0D 5204
+ 128 8784 00010000D 5205
+ 128 0 -5703 6 0 0D 5206
+ 128 8790 00010000D 5207
+ 128 0 -5703 6 0 0D 5208
+ 128 8796 00010000D 5209
+ 128 0 -5703 6 0 0D 5210
+ 128 8802 00010000D 5211
+ 128 0 -5703 8 0 0D 5212
+ 128 8810 00010000D 5213
+ 128 0 -5703 7 0 0D 5214
+ 128 8817 00010000D 5215
+ 128 0 -5703 7 0 0D 5216
+ 128 8824 00010000D 5217
+ 128 0 -5703 7 0 0D 5218
+ 128 8831 00010000D 5219
+ 128 0 -5703 8 0 0D 5220
+ 128 8839 00010000D 5221
+ 128 0 -5703 7 0 0D 5222
+ 128 8846 00010000D 5223
+ 128 0 -5703 7 0 0D 5224
+ 128 8853 00010000D 5225
+ 128 0 -5703 7 0 0D 5226
+ 128 8860 00010000D 5227
+ 128 0 -5703 8 0 0D 5228
+ 128 8868 00010000D 5229
+ 128 0 -5703 7 0 0D 5230
+ 128 8875 00010000D 5231
+ 128 0 -5703 7 0 0D 5232
+ 128 8882 00010000D 5233
+ 128 0 -5703 7 0 0D 5234
+ 128 8889 00010000D 5235
+ 128 0 -5703 8 0 0D 5236
+ 128 8897 00010000D 5237
+ 128 0 -5703 7 0 0D 5238
+ 128 8904 00010000D 5239
+ 128 0 -5703 7 0 0D 5240
+ 128 8911 00010000D 5241
+ 128 0 -5703 7 0 0D 5242
+ 128 8918 00010000D 5243
+ 128 0 -5703 8 0 0D 5244
+ 128 8926 00010000D 5245
+ 128 0 -5703 7 0 0D 5246
+ 128 8933 00010000D 5247
+ 128 0 -5703 7 0 0D 5248
+ 128 8940 00010000D 5249
+ 128 0 -5703 7 0 0D 5250
+ 128 8947 00010000D 5251
+ 128 0 -5703 8 0 0D 5252
+ 128 8955 00010000D 5253
+ 128 0 -5703 7 0 0D 5254
+ 128 8962 00010000D 5255
+ 128 0 -5703 7 0 0D 5256
+ 128 8969 00010000D 5257
+ 128 0 -5703 7 0 0D 5258
+ 128 8976 00010000D 5259
+ 128 0 -5703 8 0 0D 5260
+ 128 8984 00010000D 5261
+ 128 0 -5703 7 0 0D 5262
+ 128 8991 00010000D 5263
+ 128 0 -5703 7 0 0D 5264
+ 128 8998 00010000D 5265
+ 128 0 -5703 7 0 0D 5266
+ 128 9005 00010000D 5267
+ 128 0 -5703 8 0 0D 5268
+ 128 9013 00010000D 5269
+ 128 0 -5703 7 0 0D 5270
+ 128 9020 00010000D 5271
+ 128 0 -5703 7 0 0D 5272
+ 128 9027 00010000D 5273
+ 128 0 -5703 7 0 0D 5274
+ 128 9034 00010000D 5275
+ 128 0 -5703 8 0 0D 5276
+ 128 9042 00010000D 5277
+ 128 0 -5703 6 0 0D 5278
+ 128 9048 00010000D 5279
+ 128 0 -5703 7 0 0D 5280
+ 128 9055 00010000D 5281
+ 128 0 -5703 6 0 0D 5282
+ 128 9061 00010000D 5283
+ 128 0 -5703 8 0 0D 5284
+ 128 9069 00010000D 5285
+ 128 0 -5703 6 0 0D 5286
+ 128 9075 00010000D 5287
+ 128 0 -5703 7 0 0D 5288
+ 128 9082 00010000D 5289
+ 128 0 -5703 7 0 0D 5290
+ 128 9089 00010000D 5291
+ 128 0 -5703 8 0 0D 5292
+ 128 9097 00010000D 5293
+ 128 0 -5703 7 0 0D 5294
+ 128 9104 00010000D 5295
+ 128 0 -5703 6 0 0D 5296
+ 128 9110 00010000D 5297
+ 128 0 -5703 6 0 0D 5298
+ 128 9116 00010000D 5299
+ 128 0 -5703 7 0 0D 5300
+ 128 9123 00010000D 5301
+ 128 0 -5703 6 0 0D 5302
+ 128 9129 00010000D 5303
+ 128 0 -5703 6 0 0D 5304
+ 128 9135 00010000D 5305
+ 128 0 -5703 6 0 0D 5306
+ 128 9141 00010000D 5307
+ 128 0 -5703 8 0 0D 5308
+ 128 9149 00010000D 5309
+ 128 0 -5703 6 0 0D 5310
+ 128 9155 00010000D 5311
+ 128 0 -5703 6 0 0D 5312
+ 128 9161 00010000D 5313
+ 128 0 -5703 6 0 0D 5314
+ 128 9167 00010000D 5315
+ 128 0 -5703 8 0 0D 5316
+ 128 9175 00010000D 5317
+ 128 0 -5703 6 0 0D 5318
+ 128 9181 00010000D 5319
+ 128 0 -5703 6 0 0D 5320
+ 128 9187 00010000D 5321
+ 128 0 -5703 6 0 0D 5322
+ 128 9193 00010000D 5323
+ 128 0 -5703 8 0 0D 5324
+ 128 9201 00010000D 5325
+ 128 0 -5703 6 0 0D 5326
+ 128 9207 00010000D 5327
+ 128 0 -5703 6 0 0D 5328
+ 128 9213 00010000D 5329
+ 128 0 -5703 6 0 0D 5330
+ 128 9219 00010000D 5331
+ 128 0 -5703 6 0 0D 5332
+ 128 9225 00010000D 5333
+ 128 0 -5703 6 0 0D 5334
+ 128 9231 00010000D 5335
+ 128 0 -5703 8 0 0D 5336
+ 128 9239 00010000D 5337
+ 128 0 -5703 6 0 0D 5338
+ 128 9245 00010000D 5339
+ 128 0 -5703 6 0 0D 5340
+ 128 9251 00010000D 5341
+ 128 0 -5703 6 0 0D 5342
+ 128 9257 00010000D 5343
+ 128 0 -5703 7 0 0D 5344
+ 128 9264 00010000D 5345
+ 128 0 -5703 6 0 0D 5346
+ 128 9270 00010000D 5347
+ 128 0 -5703 8 0 0D 5348
+ 128 9278 00010000D 5349
+ 128 0 -5703 6 0 0D 5350
+ 128 9284 00010000D 5351
+ 128 0 -5703 6 0 0D 5352
+ 128 9290 00010000D 5353
+ 128 0 -5703 6 0 0D 5354
+ 128 9296 00010000D 5355
+ 128 0 -5703 11 0 0D 5356
+ 128 9307 00010000D 5357
+ 128 0 -5703 7 0 0D 5358
+ 128 9314 00010000D 5359
+ 128 0 -5703 11 0 0D 5360
+ 128 9325 00010000D 5361
+ 128 0 -5703 6 0 0D 5362
+ 128 9331 00010000D 5363
+ 128 0 -5703 11 0 0D 5364
+ 128 9342 00010000D 5365
+ 128 0 -5703 7 0 0D 5366
+ 128 9349 00010000D 5367
+ 128 0 -5703 18 0 0D 5368
+ 128 9367 00010000D 5369
+ 128 0 -5703 7 0 0D 5370
+ 128 9374 00010000D 5371
+ 128 0 -5703 7 0 0D 5372
+ 128 9381 00010000D 5373
+ 128 0 -5703 8 0 0D 5374
+ 128 9389 00010000D 5375
+ 128 0 -5703 8 0 0D 5376
+ 128 9397 00010000D 5377
+ 128 0 -5705 7 0 0D 5378
+ 128 9404 00010000D 5379
+ 128 0 -5705 9 0 0D 5380
+ 128 9413 00010000D 5381
+ 128 0 -5705 7 0 0D 5382
+ 128 9420 00010000D 5383
+ 128 0 -5705 8 0 0D 5384
+ 128 9428 00010000D 5385
+ 128 0 -5705 7 0 0D 5386
+ 128 9435 00010000D 5387
+ 128 0 -5705 7 0 0D 5388
+ 128 9442 00010000D 5389
+ 128 0 -5705 8 0 0D 5390
+ 128 9450 00010000D 5391
+ 128 0 -5705 20 0 0D 5392
+ 128 9470 00010000D 5393
+ 128 0 -5705 20 0 0D 5394
+ 128 9490 00010000D 5395
+ 128 0 -5705 20 0 0D 5396
+ 128 9510 00010000D 5397
+ 128 0 -5705 20 0 0D 5398
+ 128 9530 00010000D 5399
+ 128 0 -5705 12 0 0D 5400
+ 128 9542 00010000D 5401
+ 128 0 -5705 7 0 0D 5402
+ 128 9549 00010000D 5403
+ 128 0 -5705 8 0 0D 5404
+ 128 9557 00010000D 5405
+ 128 0 -5705 9 0 0D 5406
+ 128 9566 00010000D 5407
+ 128 0 -5705 9 0 0D 5408
+ 128 9575 00010000D 5409
+ 128 0 -5705 9 0 0D 5410
+ 128 9584 00010000D 5411
+ 128 0 -5705 7 0 0D 5412
+ 128 9591 00010000D 5413
+ 128 0 -5705 8 0 0D 5414
+ 128 9599 00010000D 5415
+ 128 0 -5705 9 0 0D 5416
+ 128 9608 00010000D 5417
+ 128 0 -5705 9 0 0D 5418
+ 128 9617 00010000D 5419
+ 128 0 -5705 20 0 0D 5420
+ 128 9637 00010000D 5421
+ 128 0 -5705 20 0 0D 5422
+ 128 9657 00010000D 5423
+ 128 0 -5705 23 0 0D 5424
+ 128 9680 00010000D 5425
+ 128 0 -5705 23 0 0D 5426
+ 128 9703 00010000D 5427
+ 128 0 -5705 20 0 0D 5428
+ 128 9723 00010000D 5429
+ 128 0 -5705 20 0 0D 5430
+ 128 9743 00010000D 5431
+ 128 0 -5705 23 0 0D 5432
+ 128 9766 00010000D 5433
+ 128 0 -5705 23 0 0D 5434
+ 128 9789 00010000D 5435
+ 128 0 -5705 7 0 0D 5436
+ 128 9796 00010000D 5437
+ 128 0 -5705 7 0 0D 5438
+ 128 9803 00010000D 5439
+ 128 0 -5705 9 0 0D 5440
+ 128 9812 00010000D 5441
+ 128 0 -5705 8 0 0D 5442
+ 128 9820 00010000D 5443
+ 128 0 -5705 7 0 0D 5444
+ 128 9827 00010000D 5445
+ 128 0 -5705 8 0 0D 5446
+ 128 9835 00010000D 5447
+ 128 0 -5705 8 0 0D 5448
+ 128 9843 00010000D 5449
+ 128 0 -5705 9 0 0D 5450
+ 128 9852 00010000D 5451
+ 128 0 -5705 6 0 0D 5452
+ 128 9858 00010000D 5453
+ 128 0 -5705 7 0 0D 5454
+ 128 9865 00010000D 5455
+ 128 0 -5705 7 0 0D 5456
+ 128 9872 00010000D 5457
+ 128 0 -5705 9 0 0D 5458
+ 128 9881 00010000D 5459
+ 128 0 -5705 7 0 0D 5460
+ 128 9888 00010000D 5461
+ 128 0 -5705 8 0 0D 5462
+ 128 9896 00010000D 5463
+ 128 0 -5705 7 0 0D 5464
+ 128 9903 00010000D 5465
+ 128 0 -5705 8 0 0D 5466
+ 128 9911 00010000D 5467
+ 128 0 -5705 7 0 0D 5468
+ 128 9918 00010000D 5469
+ 128 0 -5705 8 0 0D 5470
+ 128 9926 00010000D 5471
+ 128 0 -5705 7 0 0D 5472
+ 128 9933 00010000D 5473
+ 128 0 -5705 7 0 0D 5474
+ 128 9940 00010000D 5475
+ 128 0 -5705 23 0 0D 5476
+ 128 9963 00010000D 5477
+ 128 0 -5705 8 0 0D 5478
+ 128 9971 00010000D 5479
+ 128 0 -5705 23 0 0D 5480
+ 128 9994 00010000D 5481
+ 128 0 -5705 7 0 0D 5482
+ 128 10001 00010000D 5483
+ 128 0 -5705 23 0 0D 5484
+ 128 10024 00010000D 5485
+ 128 0 -5705 18 0 0D 5486
+ 128 10042 00010000D 5487
+ 128 0 -5705 9 0 0D 5488
+ 128 10051 00010000D 5489
+ 128 0 -5705 6 0 0D 5490
+ 128 10057 00010000D 5491
+ 128 0 -5705 6 0 0D 5492
+ 128 10063 00010000D 5493
+ 128 0 -5705 15 0 0D 5494
+ 128 10078 00010000D 5495
+ 128 0 -5705 7 0 0D 5496
+ 128 10085 00010000D 5497
+ 128 0 -5705 12 0 0D 5498
+ 128 10097 00010000D 5499
+ 128 0 -5705 7 0 0D 5500
+ 128 10104 00010000D 5501
+ 128 0 -5705 13 0 0D 5502
+ 128 10117 00010000D 5503
+ 128 0 -5705 8 0 0D 5504
+ 128 10125 00010000D 5505
+ 128 0 -5705 12 0 0D 5506
+ 128 10137 00010000D 5507
+ 128 0 -5705 8 0 0D 5508
+ 128 10145 00010000D 5509
+ 128 0 -5705 6 0 0D 5510
+ 128 10151 00010000D 5511
+ 128 0 -5705 7 0 0D 5512
+ 128 10158 00010000D 5513
+ 128 0 -5705 6 0 0D 5514
+ 128 10164 00010000D 5515
+ 128 0 -5705 7 0 0D 5516
+ 128 10171 00010000D 5517
+ 128 0 -5705 6 0 0D 5518
+ 128 10177 00010000D 5519
+ 128 0 -5705 6 0 0D 5520
+ 128 10183 00010000D 5521
+ 128 0 -5705 6 0 0D 5522
+ 128 10189 00010000D 5523
+ 128 0 -5705 8 0 0D 5524
+ 128 10197 00010000D 5525
+ 128 0 -5705 5 0 0D 5526
+ 128 10202 00010000D 5527
+ 128 0 -5705 11 0 0D 5528
+ 128 10213 00010000D 5529
+ 128 0 -5705 11 0 0D 5530
+ 128 10224 00010000D 5531
+ 128 0 -5705 11 0 0D 5532
+ 128 10235 00010000D 5533
+ 128 0 -5705 11 0 0D 5534
+ 128 10246 00010000D 5535
+ 128 0 -5705 11 0 0D 5536
+ 128 10257 00010000D 5537
+ 128 0 -5705 11 0 0D 5538
+ 128 10268 00010000D 5539
+ 128 0 -5705 5 0 0D 5540
+ 128 10273 00010000D 5541
+ 128 0 -5705 5 0 0D 5542
+ 128 10278 00010000D 5543
+ 128 0 -5705 5 0 0D 5544
+ 128 10283 00010000D 5545
+ 128 0 -5705 5 0 0D 5546
+ 128 10288 00010000D 5547
+ 128 0 -5705 11 0 0D 5548
+ 128 10299 00010000D 5549
+ 128 0 -5705 11 0 0D 5550
+ 128 10310 00010000D 5551
+ 128 0 -5705 11 0 0D 5552
+ 128 10321 00010000D 5553
+ 128 0 -5705 6 0 0D 5554
+ 128 10327 00010000D 5555
+ 128 0 -5705 5 0 0D 5556
+ 128 10332 00010000D 5557
+ 128 0 -5705 6 0 0D 5558
+ 128 10338 00010000D 5559
+ 128 0 -5705 11 0 0D 5560
+ 128 10349 00010000D 5561
+ 128 0 -5705 11 0 0D 5562
+ 128 10360 00010000D 5563
+ 128 0 -5705 11 0 0D 5564
+ 128 10371 00010000D 5565
+ 128 0 -5705 11 0 0D 5566
+ 128 10382 00010000D 5567
+ 128 0 -5705 11 0 0D 5568
+ 128 10393 00010000D 5569
+ 128 0 -5705 11 0 0D 5570
+ 128 10404 00010000D 5571
+ 128 0 -5705 11 0 0D 5572
+ 128 10415 00010000D 5573
+ 128 0 -5705 5 0 0D 5574
+ 128 10420 00010000D 5575
+ 128 0 -5705 5 0 0D 5576
+ 128 10425 00010000D 5577
+ 128 0 -5705 5 0 0D 5578
+ 128 10430 00010000D 5579
+ 128 0 -5705 6 0 0D 5580
+ 128 10436 00010000D 5581
+ 128 0 -5705 7 0 0D 5582
+ 128 10443 00010000D 5583
+ 128 0 -5705 18 0 0D 5584
+ 128 10461 00010000D 5585
+ 128 0 -5705 18 0 0D 5586
+ 128 10479 00010000D 5587
+ 128 0 -5705 18 0 0D 5588
+ 128 10497 00010000D 5589
+ 128 0 -5705 18 0 0D 5590
+ 128 10515 00010000D 5591
+ 128 0 -5705 10 0 0D 5592
+ 128 10525 00010000D 5593
+ 128 0 -5705 6 0 0D 5594
+ 128 10531 00010000D 5595
+ 128 0 -5705 6 0 0D 5596
+ 128 10537 00010000D 5597
+ 128 0 -5705 7 0 0D 5598
+ 128 10544 00010000D 5599
+ 128 0 -5705 7 0 0D 5600
+ 128 10551 00010000D 5601
+ 128 0 -5705 7 0 0D 5602
+ 128 10558 00010000D 5603
+ 128 0 -5705 6 0 0D 5604
+ 128 10564 00010000D 5605
+ 128 0 -5705 7 0 0D 5606
+ 128 10571 00010000D 5607
+ 128 0 -5705 7 0 0D 5608
+ 128 10578 00010000D 5609
+ 128 0 -5705 18 0 0D 5610
+ 128 10596 00010000D 5611
+ 128 0 -5705 18 0 0D 5612
+ 128 10614 00010000D 5613
+ 128 0 -5705 18 0 0D 5614
+ 128 10632 00010000D 5615
+ 128 0 -5705 18 0 0D 5616
+ 128 10650 00010000D 5617
+ 128 0 -5705 18 0 0D 5618
+ 128 10668 00010000D 5619
+ 128 0 -5705 18 0 0D 5620
+ 128 10686 00010000D 5621
+ 128 0 -5705 18 0 0D 5622
+ 128 10704 00010000D 5623
+ 128 0 -5705 18 0 0D 5624
+ 128 10722 00010000D 5625
+ 128 0 -5705 6 0 0D 5626
+ 128 10728 00010000D 5627
+ 128 0 -5705 6 0 0D 5628
+ 128 10734 00010000D 5629
+ 128 0 -5705 7 0 0D 5630
+ 128 10741 00010000D 5631
+ 128 0 -5705 6 0 0D 5632
+ 128 10747 00010000D 5633
+ 128 0 -5705 6 0 0D 5634
+ 128 10753 00010000D 5635
+ 128 0 -5705 7 0 0D 5636
+ 128 10760 00010000D 5637
+ 128 0 -5705 6 0 0D 5638
+ 128 10766 00010000D 5639
+ 128 0 -5705 6 0 0D 5640
+ 128 10772 00010000D 5641
+ 128 0 -5705 6 0 0D 5642
+ 128 10778 00010000D 5643
+ 128 0 -5705 6 0 0D 5644
+ 128 10784 00010000D 5645
+ 128 0 -5705 6 0 0D 5646
+ 128 10790 00010000D 5647
+ 128 0 -5705 6 0 0D 5648
+ 128 10796 00010000D 5649
+ 128 0 -5705 6 0 0D 5650
+ 128 10802 00010000D 5651
+ 128 0 -5705 6 0 0D 5652
+ 128 10808 00010000D 5653
+ 128 0 -5705 6 0 0D 5654
+ 128 10814 00010000D 5655
+ 128 0 -5705 17 0 0D 5656
+ 128 10831 00010000D 5657
+ 128 0 -5705 6 0 0D 5658
+ 128 10837 00010000D 5659
+ 128 0 -5705 17 0 0D 5660
+ 128 10854 00010000D 5661
+ 128 0 -5705 6 0 0D 5662
+ 128 10860 00010000D 5663
+ 128 0 -5705 17 0 0D 5664
+ 128 10877 00010000D 5665
+ 128 0 -5705 13 0 0D 5666
+ 128 10890 00010000D 5667
+ 128 0 -5705 7 0 0D 5668
+ 128 10897 00010000D 5669
+ 128 0 -5705 6 0 0D 5670
+ 128 10903 00010000D 5671
+ 128 0 -5705 6 0 0D 5672
+ 128 10909 00010000D 5673
+ 128 0 -5705 13 0 0D 5674
+ 128 10922 00010000D 5675
+ 128 0 -5705 6 0 0D 5676
+ 128 10928 00010000D 5677
+ 128 0 -5705 9 0 0D 5678
+ 128 10937 00010000D 5679
+ 128 0 -5705 6 0 0D 5680
+ 128 10943 00010000D 5681
+ 128 0 -5705 9 0 0D 5682
+ 128 10952 00010000D 5683
+ 128 0 -5705 9 0 0D 5684
+ 502 10961 00010000D 5685
+ 502 514 1 0D 5686
+ 502 11475 00010000D 5687
+ 502 125 1 0D 5688
+ 502 11600 00010000D 5689
+ 502 115 1 0D 5690
+ 504 11715 00010001D 5691
+ 504 337 1 0D 5692
+ 504 12052 00010001D 5693
+ 504 67 1 0D 5694
+ 504 12119 00010001D 5695
+ 504 91 1 0D 5696
+ 406 12210 00000000D 5697
+ 406 1 15 0D 5698
+ 406 12211 00000000D 5699
+ 406 1 15 0D 5700
+ 406 12212 00000000D 5701
+ 406 1 15 0D 5702
+ 314 12213 00000200D 5703
+ 314 2 0 0D 5704
+ 314 12215 00000200D 5705
+ 314 2 0 0D 5706
+ 314 12217 00000200D 5707
+ 314 2 0 0D 5708
+186,7,1,0,0,1,5697; 1P 1
+186,9,1,0,0,1,5699; 3P 2
+186,11,1,0,0,1,5701; 5P 3
+514,307,13,1,15,1,17,1,19,1,21,1,23,1,25,1,27,1,29,1,31,1,33,1, 7P 4
+35,1,37,1,39,1,41,1,43,1,45,1,47,1,49,1,51,1,53,1,55,1,57,1,59, 7P 5
+1,61,1,63,1,65,1,67,1,69,1,71,1,73,1,75,1,77,1,79,1,81,1,83,1, 7P 6
+85,1,87,1,89,1,91,1,93,1,95,1,97,1,99,1,101,1,103,1,105,1,107,1, 7P 7
+109,1,111,1,113,1,115,1,117,1,119,1,121,1,123,1,125,1,127,1,129, 7P 8
+1,131,1,133,1,135,1,137,1,139,1,141,1,143,1,145,1,147,1,149,1, 7P 9
+151,1,153,1,155,1,157,1,159,1,161,1,163,1,165,1,167,1,169,1,171, 7P 10
+1,173,1,175,1,177,1,179,1,181,1,183,1,185,1,187,1,189,1,191,1, 7P 11
+193,1,195,1,197,1,199,1,201,1,203,1,205,1,207,1,209,1,211,1,213, 7P 12
+1,215,1,217,1,219,1,221,1,223,1,225,1,227,1,229,1,231,1,233,1, 7P 13
+235,1,237,1,239,1,241,1,243,1,245,1,247,1,249,1,251,1,253,1,255, 7P 14
+1,257,1,259,1,261,1,263,1,265,1,267,1,269,1,271,1,273,1,275,1, 7P 15
+277,1,279,1,281,1,283,1,285,1,287,1,289,1,291,1,293,1,295,1,297, 7P 16
+1,299,1,301,1,303,1,305,1,307,1,309,1,311,1,313,1,315,1,317,1, 7P 17
+319,1,321,1,323,1,325,1,327,1,329,1,331,1,333,1,335,1,337,1,339, 7P 18
+1,341,1,343,1,345,1,347,1,349,1,351,1,353,1,355,1,357,1,359,1, 7P 19
+361,1,363,1,365,1,367,1,369,1,371,1,373,1,375,1,377,1,379,1,381, 7P 20
+1,383,1,385,1,387,1,389,1,391,1,393,1,395,1,397,1,399,1,401,1, 7P 21
+403,1,405,1,407,1,409,1,411,1,413,1,415,1,417,1,419,1,421,1,423, 7P 22
+1,425,1,427,1,429,1,431,1,433,1,435,1,437,1,439,1,441,1,443,1, 7P 23
+445,1,447,1,449,1,451,1,453,1,455,1,457,1,459,1,461,1,463,1,465, 7P 24
+1,467,1,469,1,471,1,473,1,475,1,477,1,479,1,481,1,483,1,485,1, 7P 25
+487,1,489,1,491,1,493,1,495,1,497,1,499,1,501,1,503,1,505,1,507, 7P 26
+1,509,1,511,1,513,1,515,1,517,1,519,1,521,1,523,1,525,1,527,1, 7P 27
+529,1,531,1,533,1,535,1,537,1,539,1,541,1,543,1,545,1,547,1,549, 7P 28
+1,551,1,553,1,555,1,557,1,559,1,561,1,563,1,565,1,567,1,569,1, 7P 29
+571,1,573,1,575,1,577,1,579,1,581,1,583,1,585,1,587,1,589,1,591, 7P 30
+1,593,1,595,1,597,1,599,1,601,1,603,1,605,1,607,1,609,1,611,1, 7P 31
+613,1,615,1,617,1,619,1,621,1,623,1,625,1; 7P 32
+514,66,627,1,629,1,631,1,633,1,635,1,637,1,639,1,641,1,643,1, 9P 33
+645,1,647,1,649,1,651,1,653,1,655,1,657,1,659,1,661,1,663,1,665, 9P 34
+1,667,1,669,1,671,1,673,1,675,1,677,1,679,1,681,1,683,1,685,1, 9P 35
+687,1,689,1,691,1,693,1,695,1,697,1,699,1,701,1,703,1,705,1,707, 9P 36
+1,709,1,711,1,713,1,715,1,717,1,719,1,721,1,723,1,725,1,727,1, 9P 37
+729,1,731,1,733,1,735,1,737,1,739,1,741,1,743,1,745,1,747,1,749, 9P 38
+1,751,1,753,1,755,1,757,1; 9P 39
+514,88,759,1,761,1,763,1,765,1,767,1,769,1,771,1,773,1,775,1, 11P 40
+777,1,779,1,781,1,783,1,785,1,787,1,789,1,791,1,793,1,795,1,797, 11P 41
+1,799,1,801,1,803,1,805,1,807,1,809,1,811,1,813,1,815,1,817,1, 11P 42
+819,1,821,1,823,1,825,1,827,1,829,1,831,1,833,1,835,1,837,1,839, 11P 43
+1,841,1,843,1,845,1,847,1,849,1,851,1,853,1,855,1,857,1,859,1, 11P 44
+861,1,863,1,865,1,867,1,869,1,871,1,873,1,875,1,877,1,879,1,881, 11P 45
+1,883,1,885,1,887,1,889,1,891,1,893,1,895,1,897,1,899,1,901,1, 11P 46
+903,1,905,1,907,1,909,1,911,1,913,1,915,1,917,1,919,1,921,1,923, 11P 47
+1,925,1,927,1,929,1,931,1,933,1; 11P 48
+510,4763,1,1,935; 13P 49
+510,4765,1,1,937; 15P 50
+510,4767,1,1,939; 17P 51
+510,4769,1,1,941; 19P 52
+510,4771,1,1,943; 21P 53
+510,4773,1,1,945; 23P 54
+510,4775,1,1,947; 25P 55
+510,4777,1,1,949; 27P 56
+510,4779,1,1,951; 29P 57
+510,4781,1,1,953; 31P 58
+510,4783,1,1,955; 33P 59
+510,4785,1,1,957; 35P 60
+510,4787,1,1,959; 37P 61
+510,4789,1,1,961; 39P 62
+510,4791,1,1,963; 41P 63
+510,4793,1,1,965; 43P 64
+510,4795,1,1,967; 45P 65
+510,4797,1,1,969; 47P 66
+510,4799,1,1,971; 49P 67
+510,4801,1,1,973; 51P 68
+510,4803,1,1,975; 53P 69
+510,4805,1,1,977; 55P 70
+510,4807,1,1,979; 57P 71
+510,4809,1,1,981; 59P 72
+510,4811,1,1,983; 61P 73
+510,4813,1,1,985; 63P 74
+510,4815,1,1,987; 65P 75
+510,4817,1,1,989; 67P 76
+510,4819,1,1,991; 69P 77
+510,4821,1,1,993; 71P 78
+510,4823,1,1,995; 73P 79
+510,4825,1,1,997; 75P 80
+510,4827,1,1,999; 77P 81
+510,4829,1,1,1001; 79P 82
+510,4831,1,1,1003; 81P 83
+510,4833,1,1,1005; 83P 84
+510,4835,1,1,1007; 85P 85
+510,4837,1,1,1009; 87P 86
+510,4839,1,1,1011; 89P 87
+510,4841,1,1,1013; 91P 88
+510,4843,1,1,1015; 93P 89
+510,4845,1,1,1017; 95P 90
+510,4847,1,1,1019; 97P 91
+510,4849,1,1,1021; 99P 92
+510,4851,1,1,1023; 101P 93
+510,4853,1,1,1025; 103P 94
+510,4855,1,1,1027; 105P 95
+510,4857,1,1,1029; 107P 96
+510,4859,1,1,1031; 109P 97
+510,4861,1,1,1033; 111P 98
+510,4863,1,1,1035; 113P 99
+510,4865,1,1,1037; 115P 100
+510,4867,1,1,1039; 117P 101
+510,4869,1,1,1041; 119P 102
+510,4871,1,1,1043; 121P 103
+510,4873,1,1,1045; 123P 104
+510,4875,1,1,1047; 125P 105
+510,4877,1,1,1049; 127P 106
+510,4879,1,1,1051; 129P 107
+510,4881,1,1,1053; 131P 108
+510,4883,1,1,1055; 133P 109
+510,4885,1,1,1057; 135P 110
+510,4887,1,1,1059; 137P 111
+510,4889,1,1,1061; 139P 112
+510,4891,1,1,1063; 141P 113
+510,4893,1,1,1065; 143P 114
+510,4895,1,1,1067; 145P 115
+510,4897,1,1,1069; 147P 116
+510,4899,1,1,1071; 149P 117
+510,4901,1,1,1073; 151P 118
+510,4903,1,1,1075; 153P 119
+510,4905,1,1,1077; 155P 120
+510,4907,1,1,1079; 157P 121
+510,4909,1,1,1081; 159P 122
+510,4911,1,1,1083; 161P 123
+510,4913,1,1,1085; 163P 124
+510,4915,1,1,1087; 165P 125
+510,4917,1,1,1089; 167P 126
+510,4919,1,1,1091; 169P 127
+510,4921,1,1,1093; 171P 128
+510,4923,1,1,1095; 173P 129
+510,4925,1,1,1097; 175P 130
+510,4927,1,1,1099; 177P 131
+510,4929,1,1,1101; 179P 132
+510,4931,1,1,1103; 181P 133
+510,4933,1,1,1105; 183P 134
+510,4935,1,1,1107; 185P 135
+510,4937,1,1,1109; 187P 136
+510,4939,1,1,1111; 189P 137
+510,4941,1,1,1113; 191P 138
+510,4943,1,1,1115; 193P 139
+510,4945,1,1,1117; 195P 140
+510,4947,1,1,1119; 197P 141
+510,4949,1,1,1121; 199P 142
+510,4951,1,1,1123; 201P 143
+510,4953,1,1,1125; 203P 144
+510,4955,1,1,1127; 205P 145
+510,4957,1,1,1129; 207P 146
+510,4959,1,1,1131; 209P 147
+510,4961,1,1,1133; 211P 148
+510,4963,1,1,1135; 213P 149
+510,4965,1,1,1137; 215P 150
+510,4967,1,1,1139; 217P 151
+510,4969,1,1,1141; 219P 152
+510,4971,1,1,1143; 221P 153
+510,4973,1,1,1145; 223P 154
+510,4975,1,1,1147; 225P 155
+510,4977,1,1,1149; 227P 156
+510,4979,1,1,1151; 229P 157
+510,4981,1,1,1153; 231P 158
+510,4983,1,1,1155; 233P 159
+510,4985,1,1,1157; 235P 160
+510,4987,1,1,1159; 237P 161
+510,4989,1,1,1161; 239P 162
+510,4991,1,1,1163; 241P 163
+510,4993,1,1,1165; 243P 164
+510,4995,1,1,1167; 245P 165
+510,4997,1,1,1169; 247P 166
+510,4999,1,1,1171; 249P 167
+510,5001,1,1,1173; 251P 168
+510,5003,1,1,1175; 253P 169
+510,5005,1,1,1177; 255P 170
+510,5007,1,1,1179; 257P 171
+510,5009,1,1,1181; 259P 172
+510,5011,1,1,1183; 261P 173
+510,5013,1,1,1185; 263P 174
+510,5015,1,1,1187; 265P 175
+510,5017,1,1,1189; 267P 176
+510,5019,1,1,1191; 269P 177
+510,5021,1,1,1193; 271P 178
+510,5023,1,1,1195; 273P 179
+510,5025,1,1,1197; 275P 180
+510,5027,1,1,1199; 277P 181
+510,5029,1,1,1201; 279P 182
+510,5031,1,1,1203; 281P 183
+510,5033,1,1,1205; 283P 184
+510,5035,1,1,1207; 285P 185
+510,5037,1,1,1209; 287P 186
+510,5039,1,1,1211; 289P 187
+510,5041,1,1,1213; 291P 188
+510,5043,1,1,1215; 293P 189
+510,5045,1,1,1217; 295P 190
+510,5047,1,1,1219; 297P 191
+510,5049,1,1,1221; 299P 192
+510,5051,1,1,1223; 301P 193
+510,5053,1,1,1225; 303P 194
+510,5055,1,1,1227; 305P 195
+510,5057,1,1,1229; 307P 196
+510,5059,1,1,1231; 309P 197
+510,5061,1,1,1233; 311P 198
+510,5063,1,1,1235; 313P 199
+510,5065,1,1,1237; 315P 200
+510,5067,1,1,1239; 317P 201
+510,5069,1,1,1241; 319P 202
+510,5071,1,1,1243; 321P 203
+510,5073,1,1,1245; 323P 204
+510,5075,1,1,1247; 325P 205
+510,5077,1,1,1249; 327P 206
+510,5079,1,1,1251; 329P 207
+510,5081,1,1,1253; 331P 208
+510,5083,1,1,1255; 333P 209
+510,5085,1,1,1257; 335P 210
+510,5087,1,1,1259; 337P 211
+510,5089,1,1,1261; 339P 212
+510,5091,1,1,1263; 341P 213
+510,5093,1,1,1265; 343P 214
+510,5095,1,1,1267; 345P 215
+510,5097,1,1,1269; 347P 216
+510,5099,1,1,1271; 349P 217
+510,5101,1,1,1273; 351P 218
+510,5103,1,1,1275; 353P 219
+510,5105,1,1,1277; 355P 220
+510,5107,1,1,1279; 357P 221
+510,5109,1,1,1281; 359P 222
+510,5111,1,1,1283; 361P 223
+510,5113,1,1,1285; 363P 224
+510,5115,1,1,1287; 365P 225
+510,5117,1,1,1289; 367P 226
+510,5119,1,1,1291; 369P 227
+510,5121,1,1,1293; 371P 228
+510,5123,1,1,1295; 373P 229
+510,5125,1,1,1297; 375P 230
+510,5127,1,1,1299; 377P 231
+510,5129,1,1,1301; 379P 232
+510,5131,1,1,1303; 381P 233
+510,5133,1,1,1305; 383P 234
+510,5135,1,1,1307; 385P 235
+510,5137,1,1,1309; 387P 236
+510,5139,1,1,1311; 389P 237
+510,5141,1,1,1313; 391P 238
+510,5143,1,1,1315; 393P 239
+510,5145,1,1,1317; 395P 240
+510,5147,1,1,1319; 397P 241
+510,5149,1,1,1321; 399P 242
+510,5151,1,1,1323; 401P 243
+510,5153,1,1,1325; 403P 244
+510,5155,1,1,1327; 405P 245
+510,5157,1,1,1329; 407P 246
+510,5159,1,1,1331; 409P 247
+510,5161,1,1,1333; 411P 248
+510,5163,1,1,1335; 413P 249
+510,5165,1,1,1337; 415P 250
+510,5167,1,1,1339; 417P 251
+510,5169,1,1,1341; 419P 252
+510,5171,1,1,1343; 421P 253
+510,5173,1,1,1345; 423P 254
+510,5175,1,1,1347; 425P 255
+510,5177,1,1,1349; 427P 256
+510,5179,1,1,1351; 429P 257
+510,5181,1,1,1353; 431P 258
+510,5183,1,1,1355; 433P 259
+510,5185,1,1,1357; 435P 260
+510,5187,1,1,1359; 437P 261
+510,5189,1,1,1361; 439P 262
+510,5191,1,1,1363; 441P 263
+510,5193,1,1,1365; 443P 264
+510,5195,1,1,1367; 445P 265
+510,5197,1,1,1369; 447P 266
+510,5199,1,1,1371; 449P 267
+510,5201,1,1,1373; 451P 268
+510,5203,1,1,1375; 453P 269
+510,5205,1,1,1377; 455P 270
+510,5207,1,1,1379; 457P 271
+510,5209,1,1,1381; 459P 272
+510,5211,1,1,1383; 461P 273
+510,5213,1,1,1385; 463P 274
+510,5215,1,1,1387; 465P 275
+510,5217,1,1,1389; 467P 276
+510,5219,1,1,1391; 469P 277
+510,5221,1,1,1393; 471P 278
+510,5223,1,1,1395; 473P 279
+510,5225,1,1,1397; 475P 280
+510,5227,1,1,1399; 477P 281
+510,5229,1,1,1401; 479P 282
+510,5231,1,1,1403; 481P 283
+510,5233,1,1,1405; 483P 284
+510,5235,1,1,1407; 485P 285
+510,5237,1,1,1409; 487P 286
+510,5239,1,1,1411; 489P 287
+510,5241,1,1,1413; 491P 288
+510,5243,1,1,1415; 493P 289
+510,5245,1,1,1417; 495P 290
+510,5247,1,1,1419; 497P 291
+510,5249,1,1,1421; 499P 292
+510,5251,1,1,1423; 501P 293
+510,5253,1,1,1425; 503P 294
+510,5255,1,1,1427; 505P 295
+510,5257,1,1,1429; 507P 296
+510,5259,1,1,1431; 509P 297
+510,5261,1,1,1433; 511P 298
+510,5263,1,1,1435; 513P 299
+510,5265,1,1,1437; 515P 300
+510,5267,1,1,1439; 517P 301
+510,5269,1,1,1441; 519P 302
+510,5271,1,1,1443; 521P 303
+510,5273,1,1,1445; 523P 304
+510,5275,1,1,1447; 525P 305
+510,5277,1,1,1449; 527P 306
+510,5279,1,1,1451; 529P 307
+510,5281,1,1,1453; 531P 308
+510,5283,1,1,1455; 533P 309
+510,5285,1,1,1457; 535P 310
+510,5287,1,1,1459; 537P 311
+510,5289,1,1,1461; 539P 312
+510,5291,1,1,1463; 541P 313
+510,5293,1,1,1465; 543P 314
+510,5295,1,1,1467; 545P 315
+510,5297,1,1,1469; 547P 316
+510,5299,1,1,1471; 549P 317
+510,5301,1,1,1473; 551P 318
+510,5303,1,1,1475; 553P 319
+510,5305,1,1,1477; 555P 320
+510,5307,1,1,1479; 557P 321
+510,5309,1,1,1481; 559P 322
+510,5311,1,1,1483; 561P 323
+510,5313,1,1,1485; 563P 324
+510,5315,1,1,1487; 565P 325
+510,5317,1,1,1489; 567P 326
+510,5319,1,1,1491; 569P 327
+510,5321,1,1,1493; 571P 328
+510,5323,1,1,1495; 573P 329
+510,5325,1,1,1497; 575P 330
+510,5327,1,1,1499; 577P 331
+510,5329,1,1,1501; 579P 332
+510,5331,1,1,1503; 581P 333
+510,5333,1,1,1505; 583P 334
+510,5335,1,1,1507; 585P 335
+510,5337,1,1,1509; 587P 336
+510,5339,1,1,1511; 589P 337
+510,5341,1,1,1513; 591P 338
+510,5343,1,1,1515; 593P 339
+510,5345,1,1,1517; 595P 340
+510,5347,1,1,1519; 597P 341
+510,5349,1,1,1521; 599P 342
+510,5351,1,1,1523; 601P 343
+510,5353,1,1,1525; 603P 344
+510,5355,1,1,1527; 605P 345
+510,5357,1,1,1529; 607P 346
+510,5359,1,1,1531; 609P 347
+510,5361,1,1,1533; 611P 348
+510,5363,1,1,1535; 613P 349
+510,5365,1,1,1537; 615P 350
+510,5367,1,1,1539; 617P 351
+510,5369,1,1,1541; 619P 352
+510,5371,1,1,1543; 621P 353
+510,5373,29,1,1545,1547,1549,1551,1553,1555,1557,1559,1561,1563, 623P 354
+1565,1567,1569,1571,1573,1575,1577,1579,1581,1583,1585,1587, 623P 355
+1589,1591,1593,1595,1597,1599,1601; 623P 356
+510,5375,29,1,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621, 625P 357
+1623,1625,1627,1629,1631,1633,1635,1637,1639,1641,1643,1645, 625P 358
+1647,1649,1651,1653,1655,1657,1659; 625P 359
+510,5377,1,1,1661; 627P 360
+510,5379,1,1,1663; 629P 361
+510,5381,1,1,1665; 631P 362
+510,5383,1,1,1667; 633P 363
+510,5385,1,1,1669; 635P 364
+510,5387,1,1,1671; 637P 365
+510,5389,1,1,1673; 639P 366
+510,5391,1,1,1675; 641P 367
+510,5393,1,1,1677; 643P 368
+510,5395,1,1,1679; 645P 369
+510,5397,1,1,1681; 647P 370
+510,5399,1,1,1683; 649P 371
+510,5401,1,1,1685; 651P 372
+510,5403,1,1,1687; 653P 373
+510,5405,1,1,1689; 655P 374
+510,5407,1,1,1691; 657P 375
+510,5409,1,1,1693; 659P 376
+510,5411,1,1,1695; 661P 377
+510,5413,1,1,1697; 663P 378
+510,5415,1,1,1699; 665P 379
+510,5417,1,1,1701; 667P 380
+510,5419,1,1,1703; 669P 381
+510,5421,1,1,1705; 671P 382
+510,5423,1,1,1707; 673P 383
+510,5425,1,1,1709; 675P 384
+510,5427,1,1,1711; 677P 385
+510,5429,1,1,1713; 679P 386
+510,5431,1,1,1715; 681P 387
+510,5433,1,1,1717; 683P 388
+510,5435,1,1,1719; 685P 389
+510,5437,1,1,1721; 687P 390
+510,5439,8,1,1723,1725,1727,1729,1731,1733,1735,1737; 689P 391
+510,5441,1,1,1739; 691P 392
+510,5443,1,1,1741; 693P 393
+510,5445,1,1,1743; 695P 394
+510,5447,1,1,1745; 697P 395
+510,5449,1,1,1747; 699P 396
+510,5451,1,1,1749; 701P 397
+510,5453,1,1,1751; 703P 398
+510,5455,1,1,1753; 705P 399
+510,5457,1,1,1755; 707P 400
+510,5459,1,1,1757; 709P 401
+510,5461,1,1,1759; 711P 402
+510,5463,1,1,1761; 713P 403
+510,5465,1,1,1763; 715P 404
+510,5467,1,1,1765; 717P 405
+510,5469,1,1,1767; 719P 406
+510,5471,1,1,1769; 721P 407
+510,5473,1,1,1771; 723P 408
+510,5475,1,1,1773; 725P 409
+510,5477,1,1,1775; 727P 410
+510,5479,1,1,1777; 729P 411
+510,5481,1,1,1779; 731P 412
+510,5483,1,1,1781; 733P 413
+510,5485,1,1,1783; 735P 414
+510,5487,2,1,1785,1787; 737P 415
+510,5489,1,1,1789; 739P 416
+510,5491,1,1,1791; 741P 417
+510,5493,1,1,1793; 743P 418
+510,5495,1,1,1795; 745P 419
+510,5497,1,1,1797; 747P 420
+510,5499,1,1,1799; 749P 421
+510,5501,1,1,1801; 751P 422
+510,5503,1,1,1803; 753P 423
+510,5505,1,1,1805; 755P 424
+510,5507,7,1,1807,1809,1811,1813,1815,1817,1819; 757P 425
+510,5509,1,1,1821; 759P 426
+510,5511,1,1,1823; 761P 427
+510,5513,1,1,1825; 763P 428
+510,5515,1,1,1827; 765P 429
+510,5517,1,1,1829; 767P 430
+510,5519,1,1,1831; 769P 431
+510,5521,1,1,1833; 771P 432
+510,5523,7,1,1835,1837,1839,1841,1843,1845,1847; 773P 433
+510,5525,1,1,1849; 775P 434
+510,5527,1,1,1851; 777P 435
+510,5529,1,1,1853; 779P 436
+510,5531,1,1,1855; 781P 437
+510,5533,1,1,1857; 783P 438
+510,5535,1,1,1859; 785P 439
+510,5537,1,1,1861; 787P 440
+510,5539,1,1,1863; 789P 441
+510,5541,1,1,1865; 791P 442
+510,5543,1,1,1867; 793P 443
+510,5545,1,1,1869; 795P 444
+510,5547,1,1,1871; 797P 445
+510,5549,1,1,1873; 799P 446
+510,5551,1,1,1875; 801P 447
+510,5553,1,1,1877; 803P 448
+510,5555,1,1,1879; 805P 449
+510,5557,1,1,1881; 807P 450
+510,5559,1,1,1883; 809P 451
+510,5561,1,1,1885; 811P 452
+510,5563,1,1,1887; 813P 453
+510,5565,1,1,1889; 815P 454
+510,5567,1,1,1891; 817P 455
+510,5569,1,1,1893; 819P 456
+510,5571,1,1,1895; 821P 457
+510,5573,1,1,1897; 823P 458
+510,5575,1,1,1899; 825P 459
+510,5577,1,1,1901; 827P 460
+510,5579,2,1,1903,1905; 829P 461
+510,5581,8,1,1907,1909,1911,1913,1915,1917,1919,1921; 831P 462
+510,5583,1,1,1923; 833P 463
+510,5585,1,1,1925; 835P 464
+510,5587,1,1,1927; 837P 465
+510,5589,1,1,1929; 839P 466
+510,5591,1,1,1931; 841P 467
+510,5593,1,1,1933; 843P 468
+510,5595,1,1,1935; 845P 469
+510,5597,1,1,1937; 847P 470
+510,5599,1,1,1939; 849P 471
+510,5601,1,1,1941; 851P 472
+510,5603,1,1,1943; 853P 473
+510,5605,1,1,1945; 855P 474
+510,5607,1,1,1947; 857P 475
+510,5609,1,1,1949; 859P 476
+510,5611,1,1,1951; 861P 477
+510,5613,1,1,1953; 863P 478
+510,5615,1,1,1955; 865P 479
+510,5617,1,1,1957; 867P 480
+510,5619,1,1,1959; 869P 481
+510,5621,1,1,1961; 871P 482
+510,5623,1,1,1963; 873P 483
+510,5625,1,1,1965; 875P 484
+510,5627,1,1,1967; 877P 485
+510,5629,1,1,1969; 879P 486
+510,5631,1,1,1971; 881P 487
+510,5633,1,1,1973; 883P 488
+510,5635,1,1,1975; 885P 489
+510,5637,1,1,1977; 887P 490
+510,5639,1,1,1979; 889P 491
+510,5641,1,1,1981; 891P 492
+510,5643,1,1,1983; 893P 493
+510,5645,1,1,1985; 895P 494
+510,5647,1,1,1987; 897P 495
+510,5649,1,1,1989; 899P 496
+510,5651,1,1,1991; 901P 497
+510,5653,1,1,1993; 903P 498
+510,5655,1,1,1995; 905P 499
+510,5657,1,1,1997; 907P 500
+510,5659,1,1,1999; 909P 501
+510,5661,1,1,2001; 911P 502
+510,5663,1,1,2003; 913P 503
+510,5665,1,1,2005; 915P 504
+510,5667,2,1,2007,2009; 917P 505
+510,5669,1,1,2011; 919P 506
+510,5671,1,1,2013; 921P 507
+510,5673,1,1,2015; 923P 508
+510,5675,1,1,2017; 925P 509
+510,5677,1,1,2019; 927P 510
+510,5679,1,1,2021; 929P 511
+510,5681,1,1,2023; 931P 512
+510,5683,1,1,2025; 933P 513
+508,4,0,5691,1,1,0,0,5691,2,1,0,0,5691,3,0,0,0,5691,4,0,0; 935P 514
+508,4,0,5691,5,1,0,0,5691,4,1,0,0,5691,6,0,0,0,5691,2,0,0; 937P 515
+508,4,0,5691,7,1,0,0,5691,8,1,0,0,5691,9,0,0,0,5691,10,0,0; 939P 516
+508,4,0,5691,11,1,0,0,5691,10,1,0,0,5691,12,0,0,0,5691,8,0,0; 941P 517
+508,4,0,5691,13,1,0,0,5691,14,1,0,0,5691,15,0,0,0,5691,16,0,0; 943P 518
+508,4,0,5691,17,1,0,0,5691,16,1,0,0,5691,18,0,0,0,5691,14,0,0; 945P 519
+508,4,0,5691,19,1,0,0,5691,20,1,0,0,5691,21,0,0,0,5691,22,0,0; 947P 520
+508,4,0,5691,23,1,0,0,5691,22,1,0,0,5691,24,0,0,0,5691,20,0,0; 949P 521
+508,4,0,5691,25,0,0,0,5691,26,1,0,0,5691,27,0,0,0,5691,28,0,0; 951P 522
+508,4,0,5691,29,0,0,0,5691,28,1,0,0,5691,30,0,0,0,5691,31,0,0; 953P 523
+508,4,0,5691,32,0,0,0,5691,31,1,0,0,5691,33,0,0,0,5691,34,0,0; 955P 524
+508,4,0,5691,35,0,0,0,5691,34,1,0,0,5691,36,0,0,0,5691,37,0,0; 957P 525
+508,4,0,5691,38,0,0,0,5691,37,1,0,0,5691,39,0,0,0,5691,40,0,0; 959P 526
+508,4,0,5691,41,0,0,0,5691,40,1,0,0,5691,42,0,0,0,5691,43,0,0; 961P 527
+508,4,0,5691,44,0,0,0,5691,43,1,0,0,5691,45,0,0,0,5691,46,0,0; 963P 528
+508,4,0,5691,47,0,0,0,5691,46,1,0,0,5691,48,0,0,0,5691,49,0,0; 965P 529
+508,4,0,5691,50,0,0,0,5691,49,1,0,0,5691,51,0,0,0,5691,52,0,0; 967P 530
+508,4,0,5691,53,0,0,0,5691,52,1,0,0,5691,54,0,0,0,5691,55,0,0; 969P 531
+508,4,0,5691,56,0,0,0,5691,55,1,0,0,5691,57,0,0,0,5691,58,0,0; 971P 532
+508,4,0,5691,59,0,0,0,5691,58,1,0,0,5691,60,0,0,0,5691,26,0,0; 973P 533
+508,4,0,5691,61,0,0,0,5691,62,1,0,0,5691,63,0,0,0,5691,64,0,0; 975P 534
+508,4,0,5691,65,0,0,0,5691,64,1,0,0,5691,66,0,0,0,5691,67,0,0; 977P 535
+508,4,0,5691,68,0,0,0,5691,67,1,0,0,5691,69,0,0,0,5691,70,0,0; 979P 536
+508,4,0,5691,71,0,0,0,5691,70,1,0,0,5691,72,0,0,0,5691,73,0,0; 981P 537
+508,4,0,5691,74,0,0,0,5691,73,1,0,0,5691,75,0,0,0,5691,76,0,0; 983P 538
+508,4,0,5691,77,0,0,0,5691,76,1,0,0,5691,78,0,0,0,5691,79,0,0; 985P 539
+508,4,0,5691,80,0,0,0,5691,79,1,0,0,5691,81,0,0,0,5691,82,0,0; 987P 540
+508,4,0,5691,83,0,0,0,5691,82,1,0,0,5691,84,0,0,0,5691,85,0,0; 989P 541
+508,4,0,5691,86,0,0,0,5691,85,1,0,0,5691,87,0,0,0,5691,88,0,0; 991P 542
+508,4,0,5691,89,0,0,0,5691,88,1,0,0,5691,90,0,0,0,5691,91,0,0; 993P 543
+508,4,0,5691,92,0,0,0,5691,91,1,0,0,5691,93,0,0,0,5691,94,0,0; 995P 544
+508,4,0,5691,95,0,0,0,5691,94,1,0,0,5691,96,0,0,0,5691,62,0,0; 997P 545
+508,4,0,5691,97,0,0,0,5691,98,1,0,0,5691,99,0,0,0,5691,100,0,0; 999P 546
+508,4,0,5691,101,0,0,0,5691,100,1,0,0,5691,102,0,0,0,5691,103,0, 1001P 547
+0; 1001P 548
+508,4,0,5691,104,0,0,0,5691,103,1,0,0,5691,105,0,0,0,5691,106,0, 1003P 549
+0; 1003P 550
+508,4,0,5691,107,0,0,0,5691,106,1,0,0,5691,108,0,0,0,5691,109,0, 1005P 551
+0; 1005P 552
+508,4,0,5691,110,0,0,0,5691,109,1,0,0,5691,111,0,0,0,5691,112,0, 1007P 553
+0; 1007P 554
+508,4,0,5691,113,0,0,0,5691,112,1,0,0,5691,114,0,0,0,5691,115,0, 1009P 555
+0; 1009P 556
+508,4,0,5691,116,0,0,0,5691,115,1,0,0,5691,117,0,0,0,5691,118,0, 1011P 557
+0; 1011P 558
+508,4,0,5691,119,0,0,0,5691,118,1,0,0,5691,120,0,0,0,5691,121,0, 1013P 559
+0; 1013P 560
+508,4,0,5691,122,0,0,0,5691,121,1,0,0,5691,123,0,0,0,5691,124,0, 1015P 561
+0; 1015P 562
+508,4,0,5691,125,0,0,0,5691,124,1,0,0,5691,126,0,0,0,5691,127,0, 1017P 563
+0; 1017P 564
+508,4,0,5691,128,0,0,0,5691,127,1,0,0,5691,129,0,0,0,5691,130,0, 1019P 565
+0; 1019P 566
+508,4,0,5691,131,0,0,0,5691,130,1,0,0,5691,132,0,0,0,5691,98,0, 1021P 567
+0; 1021P 568
+508,4,0,5691,133,0,0,0,5691,134,1,0,0,5691,135,0,0,0,5691,136,0, 1023P 569
+0; 1023P 570
+508,4,0,5691,137,0,0,0,5691,136,1,0,0,5691,138,0,0,0,5691,139,0, 1025P 571
+0; 1025P 572
+508,4,0,5691,140,0,0,0,5691,139,1,0,0,5691,141,0,0,0,5691,142,0, 1027P 573
+0; 1027P 574
+508,4,0,5691,143,0,0,0,5691,142,1,0,0,5691,144,0,0,0,5691,145,0, 1029P 575
+0; 1029P 576
+508,4,0,5691,146,0,0,0,5691,145,1,0,0,5691,147,0,0,0,5691,148,0, 1031P 577
+0; 1031P 578
+508,4,0,5691,149,0,0,0,5691,148,1,0,0,5691,150,0,0,0,5691,151,0, 1033P 579
+0; 1033P 580
+508,4,0,5691,152,0,0,0,5691,151,1,0,0,5691,153,0,0,0,5691,154,0, 1035P 581
+0; 1035P 582
+508,4,0,5691,155,0,0,0,5691,154,1,0,0,5691,156,0,0,0,5691,157,0, 1037P 583
+0; 1037P 584
+508,4,0,5691,158,0,0,0,5691,157,1,0,0,5691,159,0,0,0,5691,160,0, 1039P 585
+0; 1039P 586
+508,4,0,5691,161,0,0,0,5691,160,1,0,0,5691,162,0,0,0,5691,163,0, 1041P 587
+0; 1041P 588
+508,4,0,5691,164,0,0,0,5691,163,1,0,0,5691,165,0,0,0,5691,166,0, 1043P 589
+0; 1043P 590
+508,4,0,5691,167,0,0,0,5691,166,1,0,0,5691,168,0,0,0,5691,134,0, 1045P 591
+0; 1045P 592
+508,4,0,5691,169,0,0,0,5691,170,1,0,0,5691,171,0,0,0,5691,172,0, 1047P 593
+0; 1047P 594
+508,4,0,5691,173,0,0,0,5691,172,1,0,0,5691,174,0,0,0,5691,175,0, 1049P 595
+0; 1049P 596
+508,4,0,5691,176,0,0,0,5691,175,1,0,0,5691,177,0,0,0,5691,178,0, 1051P 597
+0; 1051P 598
+508,4,0,5691,179,0,0,0,5691,178,1,0,0,5691,180,0,0,0,5691,181,0, 1053P 599
+0; 1053P 600
+508,4,0,5691,182,0,0,0,5691,181,1,0,0,5691,183,0,0,0,5691,184,0, 1055P 601
+0; 1055P 602
+508,4,0,5691,185,0,0,0,5691,184,1,0,0,5691,186,0,0,0,5691,187,0, 1057P 603
+0; 1057P 604
+508,4,0,5691,188,0,0,0,5691,187,1,0,0,5691,189,0,0,0,5691,190,0, 1059P 605
+0; 1059P 606
+508,4,0,5691,191,0,0,0,5691,190,1,0,0,5691,192,0,0,0,5691,193,0, 1061P 607
+0; 1061P 608
+508,4,0,5691,194,0,0,0,5691,193,1,0,0,5691,195,0,0,0,5691,196,0, 1063P 609
+0; 1063P 610
+508,4,0,5691,197,0,0,0,5691,196,1,0,0,5691,198,0,0,0,5691,199,0, 1065P 611
+0; 1065P 612
+508,4,0,5691,200,0,0,0,5691,199,1,0,0,5691,201,0,0,0,5691,202,0, 1067P 613
+0; 1067P 614
+508,4,0,5691,203,0,0,0,5691,202,1,0,0,5691,204,0,0,0,5691,170,0, 1069P 615
+0; 1069P 616
+508,4,0,5691,205,0,0,0,5691,206,1,0,0,5691,207,0,0,0,5691,208,0, 1071P 617
+0; 1071P 618
+508,4,0,5691,209,0,0,0,5691,208,1,0,0,5691,210,0,0,0,5691,211,0, 1073P 619
+0; 1073P 620
+508,4,0,5691,212,0,0,0,5691,211,1,0,0,5691,213,0,0,0,5691,214,0, 1075P 621
+0; 1075P 622
+508,4,0,5691,215,0,0,0,5691,214,1,0,0,5691,216,0,0,0,5691,217,0, 1077P 623
+0; 1077P 624
+508,4,0,5691,218,0,0,0,5691,217,1,0,0,5691,219,0,0,0,5691,220,0, 1079P 625
+0; 1079P 626
+508,4,0,5691,221,0,0,0,5691,220,1,0,0,5691,222,0,0,0,5691,223,0, 1081P 627
+0; 1081P 628
+508,4,0,5691,224,0,0,0,5691,223,1,0,0,5691,225,0,0,0,5691,226,0, 1083P 629
+0; 1083P 630
+508,4,0,5691,227,0,0,0,5691,226,1,0,0,5691,228,0,0,0,5691,229,0, 1085P 631
+0; 1085P 632
+508,4,0,5691,230,0,0,0,5691,229,1,0,0,5691,231,0,0,0,5691,232,0, 1087P 633
+0; 1087P 634
+508,4,0,5691,233,0,0,0,5691,232,1,0,0,5691,234,0,0,0,5691,235,0, 1089P 635
+0; 1089P 636
+508,4,0,5691,236,0,0,0,5691,235,1,0,0,5691,237,0,0,0,5691,238,0, 1091P 637
+0; 1091P 638
+508,4,0,5691,239,0,0,0,5691,238,1,0,0,5691,240,0,0,0,5691,206,0, 1093P 639
+0; 1093P 640
+508,4,0,5691,241,0,0,0,5691,242,1,0,0,5691,243,0,0,0,5691,244,0, 1095P 641
+0; 1095P 642
+508,4,0,5691,245,0,0,0,5691,244,1,0,0,5691,246,0,0,0,5691,247,0, 1097P 643
+0; 1097P 644
+508,4,0,5691,248,0,0,0,5691,247,1,0,0,5691,249,0,0,0,5691,250,0, 1099P 645
+0; 1099P 646
+508,4,0,5691,251,0,0,0,5691,250,1,0,0,5691,252,0,0,0,5691,253,0, 1101P 647
+0; 1101P 648
+508,4,0,5691,254,0,0,0,5691,253,1,0,0,5691,255,0,0,0,5691,256,0, 1103P 649
+0; 1103P 650
+508,4,0,5691,257,0,0,0,5691,256,1,0,0,5691,258,0,0,0,5691,259,0, 1105P 651
+0; 1105P 652
+508,4,0,5691,260,0,0,0,5691,259,1,0,0,5691,261,0,0,0,5691,262,0, 1107P 653
+0; 1107P 654
+508,4,0,5691,263,0,0,0,5691,262,1,0,0,5691,264,0,0,0,5691,265,0, 1109P 655
+0; 1109P 656
+508,4,0,5691,266,0,0,0,5691,265,1,0,0,5691,267,0,0,0,5691,268,0, 1111P 657
+0; 1111P 658
+508,4,0,5691,269,0,0,0,5691,268,1,0,0,5691,270,0,0,0,5691,271,0, 1113P 659
+0; 1113P 660
+508,4,0,5691,272,0,0,0,5691,271,1,0,0,5691,273,0,0,0,5691,274,0, 1115P 661
+0; 1115P 662
+508,4,0,5691,275,0,0,0,5691,274,1,0,0,5691,276,0,0,0,5691,242,0, 1117P 663
+0; 1117P 664
+508,4,0,5691,277,0,0,0,5691,278,1,0,0,5691,279,0,0,0,5691,280,0, 1119P 665
+0; 1119P 666
+508,4,0,5691,281,0,0,0,5691,280,1,0,0,5691,282,0,0,0,5691,283,0, 1121P 667
+0; 1121P 668
+508,4,0,5691,284,0,0,0,5691,283,1,0,0,5691,285,0,0,0,5691,286,0, 1123P 669
+0; 1123P 670
+508,4,0,5691,287,0,0,0,5691,286,1,0,0,5691,288,0,0,0,5691,289,0, 1125P 671
+0; 1125P 672
+508,4,0,5691,290,0,0,0,5691,289,1,0,0,5691,291,0,0,0,5691,292,0, 1127P 673
+0; 1127P 674
+508,4,0,5691,293,0,0,0,5691,292,1,0,0,5691,294,0,0,0,5691,295,0, 1129P 675
+0; 1129P 676
+508,4,0,5691,296,0,0,0,5691,295,1,0,0,5691,297,0,0,0,5691,298,0, 1131P 677
+0; 1131P 678
+508,4,0,5691,299,0,0,0,5691,298,1,0,0,5691,300,0,0,0,5691,301,0, 1133P 679
+0; 1133P 680
+508,4,0,5691,302,0,0,0,5691,301,1,0,0,5691,303,0,0,0,5691,304,0, 1135P 681
+0; 1135P 682
+508,4,0,5691,305,0,0,0,5691,304,1,0,0,5691,306,0,0,0,5691,307,0, 1137P 683
+0; 1137P 684
+508,4,0,5691,308,0,0,0,5691,307,1,0,0,5691,309,0,0,0,5691,310,0, 1139P 685
+0; 1139P 686
+508,4,0,5691,311,0,0,0,5691,310,1,0,0,5691,312,0,0,0,5691,278,0, 1141P 687
+0; 1141P 688
+508,4,0,5691,313,0,0,0,5691,314,1,0,0,5691,315,0,0,0,5691,316,0, 1143P 689
+0; 1143P 690
+508,4,0,5691,317,0,0,0,5691,316,1,0,0,5691,318,0,0,0,5691,319,0, 1145P 691
+0; 1145P 692
+508,4,0,5691,320,0,0,0,5691,319,1,0,0,5691,321,0,0,0,5691,322,0, 1147P 693
+0; 1147P 694
+508,4,0,5691,323,0,0,0,5691,322,1,0,0,5691,324,0,0,0,5691,325,0, 1149P 695
+0; 1149P 696
+508,4,0,5691,326,0,0,0,5691,325,1,0,0,5691,327,0,0,0,5691,328,0, 1151P 697
+0; 1151P 698
+508,4,0,5691,329,0,0,0,5691,328,1,0,0,5691,330,0,0,0,5691,331,0, 1153P 699
+0; 1153P 700
+508,4,0,5691,332,0,0,0,5691,331,1,0,0,5691,333,0,0,0,5691,334,0, 1155P 701
+0; 1155P 702
+508,4,0,5691,335,0,0,0,5691,334,1,0,0,5691,336,0,0,0,5691,337,0, 1157P 703
+0; 1157P 704
+508,4,0,5691,338,0,0,0,5691,337,1,0,0,5691,339,0,0,0,5691,340,0, 1159P 705
+0; 1159P 706
+508,4,0,5691,341,0,0,0,5691,340,1,0,0,5691,342,0,0,0,5691,343,0, 1161P 707
+0; 1161P 708
+508,4,0,5691,344,0,0,0,5691,343,1,0,0,5691,345,0,0,0,5691,346,0, 1163P 709
+0; 1163P 710
+508,4,0,5691,347,0,0,0,5691,346,1,0,0,5691,348,0,0,0,5691,314,0, 1165P 711
+0; 1165P 712
+508,4,0,5691,349,0,0,0,5691,350,1,0,0,5691,351,0,0,0,5691,352,0, 1167P 713
+0; 1167P 714
+508,4,0,5691,353,0,0,0,5691,352,1,0,0,5691,354,0,0,0,5691,355,0, 1169P 715
+0; 1169P 716
+508,4,0,5691,356,0,0,0,5691,355,1,0,0,5691,357,0,0,0,5691,358,0, 1171P 717
+0; 1171P 718
+508,4,0,5691,359,0,0,0,5691,358,1,0,0,5691,360,0,0,0,5691,361,0, 1173P 719
+0; 1173P 720
+508,4,0,5691,362,0,0,0,5691,361,1,0,0,5691,363,0,0,0,5691,364,0, 1175P 721
+0; 1175P 722
+508,4,0,5691,365,0,0,0,5691,364,1,0,0,5691,366,0,0,0,5691,367,0, 1177P 723
+0; 1177P 724
+508,4,0,5691,368,0,0,0,5691,367,1,0,0,5691,369,0,0,0,5691,370,0, 1179P 725
+0; 1179P 726
+508,4,0,5691,371,0,0,0,5691,370,1,0,0,5691,372,0,0,0,5691,373,0, 1181P 727
+0; 1181P 728
+508,4,0,5691,374,0,0,0,5691,373,1,0,0,5691,375,0,0,0,5691,376,0, 1183P 729
+0; 1183P 730
+508,4,0,5691,377,0,0,0,5691,376,1,0,0,5691,378,0,0,0,5691,379,0, 1185P 731
+0; 1185P 732
+508,4,0,5691,380,0,0,0,5691,379,1,0,0,5691,381,0,0,0,5691,382,0, 1187P 733
+0; 1187P 734
+508,4,0,5691,383,0,0,0,5691,382,1,0,0,5691,384,0,0,0,5691,350,0, 1189P 735
+0; 1189P 736
+508,4,0,5691,385,0,0,0,5691,386,1,0,0,5691,387,0,0,0,5691,388,0, 1191P 737
+0; 1191P 738
+508,4,0,5691,389,0,0,0,5691,388,1,0,0,5691,390,0,0,0,5691,391,0, 1193P 739
+0; 1193P 740
+508,4,0,5691,392,0,0,0,5691,391,1,0,0,5691,393,0,0,0,5691,394,0, 1195P 741
+0; 1195P 742
+508,4,0,5691,395,0,0,0,5691,394,1,0,0,5691,396,0,0,0,5691,397,0, 1197P 743
+0; 1197P 744
+508,4,0,5691,398,0,0,0,5691,397,1,0,0,5691,399,0,0,0,5691,400,0, 1199P 745
+0; 1199P 746
+508,4,0,5691,401,0,0,0,5691,400,1,0,0,5691,402,0,0,0,5691,403,0, 1201P 747
+0; 1201P 748
+508,4,0,5691,404,0,0,0,5691,403,1,0,0,5691,405,0,0,0,5691,406,0, 1203P 749
+0; 1203P 750
+508,4,0,5691,407,0,0,0,5691,406,1,0,0,5691,408,0,0,0,5691,409,0, 1205P 751
+0; 1205P 752
+508,4,0,5691,410,0,0,0,5691,409,1,0,0,5691,411,0,0,0,5691,412,0, 1207P 753
+0; 1207P 754
+508,4,0,5691,413,0,0,0,5691,412,1,0,0,5691,414,0,0,0,5691,415,0, 1209P 755
+0; 1209P 756
+508,4,0,5691,416,0,0,0,5691,415,1,0,0,5691,417,0,0,0,5691,418,0, 1211P 757
+0; 1211P 758
+508,4,0,5691,419,0,0,0,5691,418,1,0,0,5691,420,0,0,0,5691,386,0, 1213P 759
+0; 1213P 760
+508,4,0,5691,421,0,0,0,5691,422,1,0,0,5691,423,0,0,0,5691,424,0, 1215P 761
+0; 1215P 762
+508,4,0,5691,425,0,0,0,5691,424,1,0,0,5691,426,0,0,0,5691,427,0, 1217P 763
+0; 1217P 764
+508,4,0,5691,428,0,0,0,5691,427,1,0,0,5691,429,0,0,0,5691,430,0, 1219P 765
+0; 1219P 766
+508,4,0,5691,431,0,0,0,5691,430,1,0,0,5691,432,0,0,0,5691,433,0, 1221P 767
+0; 1221P 768
+508,4,0,5691,434,0,0,0,5691,433,1,0,0,5691,435,0,0,0,5691,436,0, 1223P 769
+0; 1223P 770
+508,4,0,5691,437,0,0,0,5691,436,1,0,0,5691,438,0,0,0,5691,439,0, 1225P 771
+0; 1225P 772
+508,4,0,5691,440,0,0,0,5691,439,1,0,0,5691,441,0,0,0,5691,442,0, 1227P 773
+0; 1227P 774
+508,4,0,5691,443,0,0,0,5691,442,1,0,0,5691,444,0,0,0,5691,445,0, 1229P 775
+0; 1229P 776
+508,4,0,5691,446,0,0,0,5691,445,1,0,0,5691,447,0,0,0,5691,448,0, 1231P 777
+0; 1231P 778
+508,4,0,5691,449,0,0,0,5691,448,1,0,0,5691,450,0,0,0,5691,451,0, 1233P 779
+0; 1233P 780
+508,4,0,5691,452,0,0,0,5691,451,1,0,0,5691,453,0,0,0,5691,454,0, 1235P 781
+0; 1235P 782
+508,4,0,5691,455,0,0,0,5691,454,1,0,0,5691,456,0,0,0,5691,422,0, 1237P 783
+0; 1237P 784
+508,4,0,5691,457,0,0,0,5691,458,1,0,0,5691,459,0,0,0,5691,460,0, 1239P 785
+0; 1239P 786
+508,4,0,5691,461,0,0,0,5691,460,1,0,0,5691,462,0,0,0,5691,463,0, 1241P 787
+0; 1241P 788
+508,4,0,5691,464,0,0,0,5691,463,1,0,0,5691,465,0,0,0,5691,466,0, 1243P 789
+0; 1243P 790
+508,4,0,5691,467,0,0,0,5691,466,1,0,0,5691,468,0,0,0,5691,469,0, 1245P 791
+0; 1245P 792
+508,4,0,5691,470,0,0,0,5691,469,1,0,0,5691,471,0,0,0,5691,472,0, 1247P 793
+0; 1247P 794
+508,4,0,5691,473,0,0,0,5691,472,1,0,0,5691,474,0,0,0,5691,475,0, 1249P 795
+0; 1249P 796
+508,4,0,5691,476,0,0,0,5691,475,1,0,0,5691,477,0,0,0,5691,478,0, 1251P 797
+0; 1251P 798
+508,4,0,5691,479,0,0,0,5691,478,1,0,0,5691,480,0,0,0,5691,481,0, 1253P 799
+0; 1253P 800
+508,4,0,5691,482,0,0,0,5691,481,1,0,0,5691,483,0,0,0,5691,484,0, 1255P 801
+0; 1255P 802
+508,4,0,5691,485,0,0,0,5691,484,1,0,0,5691,486,0,0,0,5691,487,0, 1257P 803
+0; 1257P 804
+508,4,0,5691,488,0,0,0,5691,487,1,0,0,5691,489,0,0,0,5691,490,0, 1259P 805
+0; 1259P 806
+508,4,0,5691,491,0,0,0,5691,490,1,0,0,5691,492,0,0,0,5691,458,0, 1261P 807
+0; 1261P 808
+508,4,0,5691,493,0,0,0,5691,494,1,0,0,5691,495,0,0,0,5691,496,0, 1263P 809
+0; 1263P 810
+508,4,0,5691,497,0,0,0,5691,496,1,0,0,5691,498,0,0,0,5691,499,0, 1265P 811
+0; 1265P 812
+508,4,0,5691,500,0,0,0,5691,499,1,0,0,5691,501,0,0,0,5691,502,0, 1267P 813
+0; 1267P 814
+508,4,0,5691,503,0,0,0,5691,502,1,0,0,5691,504,0,0,0,5691,505,0, 1269P 815
+0; 1269P 816
+508,4,0,5691,506,0,0,0,5691,505,1,0,0,5691,507,0,0,0,5691,508,0, 1271P 817
+0; 1271P 818
+508,4,0,5691,509,0,0,0,5691,508,1,0,0,5691,510,0,0,0,5691,511,0, 1273P 819
+0; 1273P 820
+508,4,0,5691,512,0,0,0,5691,511,1,0,0,5691,513,0,0,0,5691,514,0, 1275P 821
+0; 1275P 822
+508,4,0,5691,515,0,0,0,5691,514,1,0,0,5691,516,0,0,0,5691,517,0, 1277P 823
+0; 1277P 824
+508,4,0,5691,518,0,0,0,5691,517,1,0,0,5691,519,0,0,0,5691,520,0, 1279P 825
+0; 1279P 826
+508,4,0,5691,521,0,0,0,5691,520,1,0,0,5691,522,0,0,0,5691,523,0, 1281P 827
+0; 1281P 828
+508,4,0,5691,524,0,0,0,5691,523,1,0,0,5691,525,0,0,0,5691,526,0, 1283P 829
+0; 1283P 830
+508,4,0,5691,527,0,0,0,5691,526,1,0,0,5691,528,0,0,0,5691,494,0, 1285P 831
+0; 1285P 832
+508,4,0,5691,529,0,0,0,5691,530,1,0,0,5691,531,0,0,0,5691,532,0, 1287P 833
+0; 1287P 834
+508,4,0,5691,533,0,0,0,5691,532,1,0,0,5691,534,0,0,0,5691,535,0, 1289P 835
+0; 1289P 836
+508,4,0,5691,536,0,0,0,5691,535,1,0,0,5691,537,0,0,0,5691,538,0, 1291P 837
+0; 1291P 838
+508,4,0,5691,539,0,0,0,5691,538,1,0,0,5691,540,0,0,0,5691,541,0, 1293P 839
+0; 1293P 840
+508,4,0,5691,542,0,0,0,5691,541,1,0,0,5691,543,0,0,0,5691,544,0, 1295P 841
+0; 1295P 842
+508,4,0,5691,545,0,0,0,5691,544,1,0,0,5691,546,0,0,0,5691,547,0, 1297P 843
+0; 1297P 844
+508,4,0,5691,548,0,0,0,5691,547,1,0,0,5691,549,0,0,0,5691,550,0, 1299P 845
+0; 1299P 846
+508,4,0,5691,551,0,0,0,5691,550,1,0,0,5691,552,0,0,0,5691,553,0, 1301P 847
+0; 1301P 848
+508,4,0,5691,554,0,0,0,5691,553,1,0,0,5691,555,0,0,0,5691,556,0, 1303P 849
+0; 1303P 850
+508,4,0,5691,557,0,0,0,5691,556,1,0,0,5691,558,0,0,0,5691,559,0, 1305P 851
+0; 1305P 852
+508,4,0,5691,560,0,0,0,5691,559,1,0,0,5691,561,0,0,0,5691,562,0, 1307P 853
+0; 1307P 854
+508,4,0,5691,563,0,0,0,5691,562,1,0,0,5691,564,0,0,0,5691,530,0, 1309P 855
+0; 1309P 856
+508,4,0,5691,565,0,0,0,5691,566,1,0,0,5691,567,0,0,0,5691,568,0, 1311P 857
+0; 1311P 858
+508,4,0,5691,569,0,0,0,5691,568,1,0,0,5691,570,0,0,0,5691,571,0, 1313P 859
+0; 1313P 860
+508,4,0,5691,572,0,0,0,5691,571,1,0,0,5691,573,0,0,0,5691,574,0, 1315P 861
+0; 1315P 862
+508,4,0,5691,575,0,0,0,5691,574,1,0,0,5691,576,0,0,0,5691,577,0, 1317P 863
+0; 1317P 864
+508,4,0,5691,578,0,0,0,5691,577,1,0,0,5691,579,0,0,0,5691,580,0, 1319P 865
+0; 1319P 866
+508,4,0,5691,581,0,0,0,5691,580,1,0,0,5691,582,0,0,0,5691,583,0, 1321P 867
+0; 1321P 868
+508,4,0,5691,584,0,0,0,5691,583,1,0,0,5691,585,0,0,0,5691,586,0, 1323P 869
+0; 1323P 870
+508,4,0,5691,587,0,0,0,5691,586,1,0,0,5691,588,0,0,0,5691,589,0, 1325P 871
+0; 1325P 872
+508,4,0,5691,590,0,0,0,5691,589,1,0,0,5691,591,0,0,0,5691,592,0, 1327P 873
+0; 1327P 874
+508,4,0,5691,593,0,0,0,5691,592,1,0,0,5691,594,0,0,0,5691,595,0, 1329P 875
+0; 1329P 876
+508,4,0,5691,596,0,0,0,5691,595,1,0,0,5691,597,0,0,0,5691,598,0, 1331P 877
+0; 1331P 878
+508,4,0,5691,599,0,0,0,5691,598,1,0,0,5691,600,0,0,0,5691,566,0, 1333P 879
+0; 1333P 880
+508,4,0,5691,601,0,0,0,5691,602,1,0,0,5691,603,0,0,0,5691,604,0, 1335P 881
+0; 1335P 882
+508,4,0,5691,605,0,0,0,5691,604,1,0,0,5691,606,0,0,0,5691,607,0, 1337P 883
+0; 1337P 884
+508,4,0,5691,608,0,0,0,5691,607,1,0,0,5691,609,0,0,0,5691,610,0, 1339P 885
+0; 1339P 886
+508,4,0,5691,611,0,0,0,5691,610,1,0,0,5691,612,0,0,0,5691,613,0, 1341P 887
+0; 1341P 888
+508,4,0,5691,614,0,0,0,5691,613,1,0,0,5691,615,0,0,0,5691,616,0, 1343P 889
+0; 1343P 890
+508,4,0,5691,617,0,0,0,5691,616,1,0,0,5691,618,0,0,0,5691,619,0, 1345P 891
+0; 1345P 892
+508,4,0,5691,620,0,0,0,5691,619,1,0,0,5691,621,0,0,0,5691,622,0, 1347P 893
+0; 1347P 894
+508,4,0,5691,623,0,0,0,5691,622,1,0,0,5691,624,0,0,0,5691,625,0, 1349P 895
+0; 1349P 896
+508,4,0,5691,626,0,0,0,5691,625,1,0,0,5691,627,0,0,0,5691,628,0, 1351P 897
+0; 1351P 898
+508,4,0,5691,629,0,0,0,5691,628,1,0,0,5691,630,0,0,0,5691,631,0, 1353P 899
+0; 1353P 900
+508,4,0,5691,632,0,0,0,5691,631,1,0,0,5691,633,0,0,0,5691,634,0, 1355P 901
+0; 1355P 902
+508,4,0,5691,635,0,0,0,5691,634,1,0,0,5691,636,0,0,0,5691,602,0, 1357P 903
+0; 1357P 904
+508,4,0,5691,637,0,0,0,5691,638,1,0,0,5691,639,0,0,0,5691,640,0, 1359P 905
+0; 1359P 906
+508,4,0,5691,641,0,0,0,5691,640,1,0,0,5691,642,0,0,0,5691,643,0, 1361P 907
+0; 1361P 908
+508,4,0,5691,644,0,0,0,5691,643,1,0,0,5691,645,0,0,0,5691,646,0, 1363P 909
+0; 1363P 910
+508,4,0,5691,647,0,0,0,5691,646,1,0,0,5691,648,0,0,0,5691,649,0, 1365P 911
+0; 1365P 912
+508,4,0,5691,650,0,0,0,5691,649,1,0,0,5691,651,0,0,0,5691,652,0, 1367P 913
+0; 1367P 914
+508,4,0,5691,653,0,0,0,5691,652,1,0,0,5691,654,0,0,0,5691,655,0, 1369P 915
+0; 1369P 916
+508,4,0,5691,656,0,0,0,5691,655,1,0,0,5691,657,0,0,0,5691,658,0, 1371P 917
+0; 1371P 918
+508,4,0,5691,659,0,0,0,5691,658,1,0,0,5691,660,0,0,0,5691,661,0, 1373P 919
+0; 1373P 920
+508,4,0,5691,662,0,0,0,5691,661,1,0,0,5691,663,0,0,0,5691,664,0, 1375P 921
+0; 1375P 922
+508,4,0,5691,665,0,0,0,5691,664,1,0,0,5691,666,0,0,0,5691,667,0, 1377P 923
+0; 1377P 924
+508,4,0,5691,668,0,0,0,5691,667,1,0,0,5691,669,0,0,0,5691,670,0, 1379P 925
+0; 1379P 926
+508,4,0,5691,671,0,0,0,5691,670,1,0,0,5691,672,0,0,0,5691,638,0, 1381P 927
+0; 1381P 928
+508,4,0,5691,673,0,0,0,5691,674,1,0,0,5691,675,0,0,0,5691,676,0, 1383P 929
+0; 1383P 930
+508,4,0,5691,677,0,0,0,5691,676,1,0,0,5691,678,0,0,0,5691,679,0, 1385P 931
+0; 1385P 932
+508,4,0,5691,680,0,0,0,5691,679,1,0,0,5691,681,0,0,0,5691,682,0, 1387P 933
+0; 1387P 934
+508,4,0,5691,683,0,0,0,5691,682,1,0,0,5691,684,0,0,0,5691,685,0, 1389P 935
+0; 1389P 936
+508,4,0,5691,686,0,0,0,5691,685,1,0,0,5691,687,0,0,0,5691,688,0, 1391P 937
+0; 1391P 938
+508,4,0,5691,689,0,0,0,5691,688,1,0,0,5691,690,0,0,0,5691,691,0, 1393P 939
+0; 1393P 940
+508,4,0,5691,692,0,0,0,5691,691,1,0,0,5691,693,0,0,0,5691,694,0, 1395P 941
+0; 1395P 942
+508,4,0,5691,695,0,0,0,5691,694,1,0,0,5691,696,0,0,0,5691,697,0, 1397P 943
+0; 1397P 944
+508,4,0,5691,698,0,0,0,5691,697,1,0,0,5691,699,0,0,0,5691,700,0, 1399P 945
+0; 1399P 946
+508,4,0,5691,701,0,0,0,5691,700,1,0,0,5691,702,0,0,0,5691,703,0, 1401P 947
+0; 1401P 948
+508,4,0,5691,704,0,0,0,5691,703,1,0,0,5691,705,0,0,0,5691,706,0, 1403P 949
+0; 1403P 950
+508,4,0,5691,707,0,0,0,5691,706,1,0,0,5691,708,0,0,0,5691,674,0, 1405P 951
+0; 1405P 952
+508,4,0,5691,709,0,0,0,5691,710,1,0,0,5691,711,0,0,0,5691,712,0, 1407P 953
+0; 1407P 954
+508,4,0,5691,713,0,0,0,5691,712,1,0,0,5691,714,0,0,0,5691,715,0, 1409P 955
+0; 1409P 956
+508,4,0,5691,716,0,0,0,5691,715,1,0,0,5691,717,0,0,0,5691,718,0, 1411P 957
+0; 1411P 958
+508,4,0,5691,719,0,0,0,5691,718,1,0,0,5691,720,0,0,0,5691,721,0, 1413P 959
+0; 1413P 960
+508,4,0,5691,722,0,0,0,5691,721,1,0,0,5691,723,0,0,0,5691,724,0, 1415P 961
+0; 1415P 962
+508,4,0,5691,725,0,0,0,5691,724,1,0,0,5691,726,0,0,0,5691,727,0, 1417P 963
+0; 1417P 964
+508,4,0,5691,728,0,0,0,5691,727,1,0,0,5691,729,0,0,0,5691,730,0, 1419P 965
+0; 1419P 966
+508,4,0,5691,731,0,0,0,5691,730,1,0,0,5691,732,0,0,0,5691,733,0, 1421P 967
+0; 1421P 968
+508,4,0,5691,734,0,0,0,5691,733,1,0,0,5691,735,0,0,0,5691,736,0, 1423P 969
+0; 1423P 970
+508,4,0,5691,737,0,0,0,5691,736,1,0,0,5691,738,0,0,0,5691,739,0, 1425P 971
+0; 1425P 972
+508,4,0,5691,740,0,0,0,5691,739,1,0,0,5691,741,0,0,0,5691,742,0, 1427P 973
+0; 1427P 974
+508,4,0,5691,743,0,0,0,5691,742,1,0,0,5691,744,0,0,0,5691,710,0, 1429P 975
+0; 1429P 976
+508,4,0,5691,745,0,0,0,5691,746,1,0,0,5691,747,0,0,0,5691,748,0, 1431P 977
+0; 1431P 978
+508,4,0,5691,749,0,0,0,5691,748,1,0,0,5691,750,0,0,0,5691,751,0, 1433P 979
+0; 1433P 980
+508,4,0,5691,752,0,0,0,5691,751,1,0,0,5691,753,0,0,0,5691,754,0, 1435P 981
+0; 1435P 982
+508,4,0,5691,755,0,0,0,5691,754,1,0,0,5691,756,0,0,0,5691,757,0, 1437P 983
+0; 1437P 984
+508,4,0,5691,758,0,0,0,5691,757,1,0,0,5691,759,0,0,0,5691,760,0, 1439P 985
+0; 1439P 986
+508,4,0,5691,761,0,0,0,5691,760,1,0,0,5691,762,0,0,0,5691,763,0, 1441P 987
+0; 1441P 988
+508,4,0,5691,764,0,0,0,5691,763,1,0,0,5691,765,0,0,0,5691,766,0, 1443P 989
+0; 1443P 990
+508,4,0,5691,767,0,0,0,5691,766,1,0,0,5691,768,0,0,0,5691,769,0, 1445P 991
+0; 1445P 992
+508,4,0,5691,770,0,0,0,5691,769,1,0,0,5691,771,0,0,0,5691,772,0, 1447P 993
+0; 1447P 994
+508,4,0,5691,773,0,0,0,5691,772,1,0,0,5691,774,0,0,0,5691,775,0, 1449P 995
+0; 1449P 996
+508,4,0,5691,776,0,0,0,5691,775,1,0,0,5691,777,0,0,0,5691,778,0, 1451P 997
+0; 1451P 998
+508,4,0,5691,779,0,0,0,5691,778,1,0,0,5691,780,0,0,0,5691,746,0, 1453P 999
+0; 1453P 1000
+508,4,0,5691,781,0,0,0,5691,782,1,0,0,5691,783,0,0,0,5691,784,0, 1455P 1001
+0; 1455P 1002
+508,4,0,5691,785,0,0,0,5691,784,1,0,0,5691,786,0,0,0,5691,787,0, 1457P 1003
+0; 1457P 1004
+508,4,0,5691,788,0,0,0,5691,787,1,0,0,5691,789,0,0,0,5691,790,0, 1459P 1005
+0; 1459P 1006
+508,4,0,5691,791,0,0,0,5691,790,1,0,0,5691,792,0,0,0,5691,793,0, 1461P 1007
+0; 1461P 1008
+508,4,0,5691,794,0,0,0,5691,793,1,0,0,5691,795,0,0,0,5691,796,0, 1463P 1009
+0; 1463P 1010
+508,4,0,5691,797,0,0,0,5691,796,1,0,0,5691,798,0,0,0,5691,799,0, 1465P 1011
+0; 1465P 1012
+508,4,0,5691,800,0,0,0,5691,799,1,0,0,5691,801,0,0,0,5691,802,0, 1467P 1013
+0; 1467P 1014
+508,4,0,5691,803,0,0,0,5691,802,1,0,0,5691,804,0,0,0,5691,805,0, 1469P 1015
+0; 1469P 1016
+508,4,0,5691,806,0,0,0,5691,805,1,0,0,5691,807,0,0,0,5691,808,0, 1471P 1017
+0; 1471P 1018
+508,4,0,5691,809,0,0,0,5691,808,1,0,0,5691,810,0,0,0,5691,811,0, 1473P 1019
+0; 1473P 1020
+508,4,0,5691,812,0,0,0,5691,811,1,0,0,5691,813,0,0,0,5691,814,0, 1475P 1021
+0; 1475P 1022
+508,4,0,5691,815,0,0,0,5691,814,1,0,0,5691,816,0,0,0,5691,782,0, 1477P 1023
+0; 1477P 1024
+508,4,0,5691,817,0,0,0,5691,818,1,0,0,5691,819,0,0,0,5691,820,0, 1479P 1025
+0; 1479P 1026
+508,4,0,5691,821,0,0,0,5691,820,1,0,0,5691,822,0,0,0,5691,823,0, 1481P 1027
+0; 1481P 1028
+508,4,0,5691,824,0,0,0,5691,823,1,0,0,5691,825,0,0,0,5691,826,0, 1483P 1029
+0; 1483P 1030
+508,4,0,5691,827,0,0,0,5691,826,1,0,0,5691,828,0,0,0,5691,829,0, 1485P 1031
+0; 1485P 1032
+508,4,0,5691,830,0,0,0,5691,829,1,0,0,5691,831,0,0,0,5691,832,0, 1487P 1033
+0; 1487P 1034
+508,4,0,5691,833,0,0,0,5691,832,1,0,0,5691,834,0,0,0,5691,835,0, 1489P 1035
+0; 1489P 1036
+508,4,0,5691,836,0,0,0,5691,835,1,0,0,5691,837,0,0,0,5691,838,0, 1491P 1037
+0; 1491P 1038
+508,4,0,5691,839,0,0,0,5691,838,1,0,0,5691,840,0,0,0,5691,841,0, 1493P 1039
+0; 1493P 1040
+508,4,0,5691,842,0,0,0,5691,841,1,0,0,5691,843,0,0,0,5691,844,0, 1495P 1041
+0; 1495P 1042
+508,4,0,5691,845,0,0,0,5691,844,1,0,0,5691,846,0,0,0,5691,847,0, 1497P 1043
+0; 1497P 1044
+508,4,0,5691,848,0,0,0,5691,847,1,0,0,5691,849,0,0,0,5691,850,0, 1499P 1045
+0; 1499P 1046
+508,4,0,5691,851,0,0,0,5691,850,1,0,0,5691,852,0,0,0,5691,818,0, 1501P 1047
+0; 1501P 1048
+508,4,0,5691,853,0,0,0,5691,854,1,0,0,5691,855,0,0,0,5691,856,0, 1503P 1049
+0; 1503P 1050
+508,4,0,5691,857,0,0,0,5691,856,1,0,0,5691,858,0,0,0,5691,859,0, 1505P 1051
+0; 1505P 1052
+508,4,0,5691,860,0,0,0,5691,859,1,0,0,5691,861,0,0,0,5691,862,0, 1507P 1053
+0; 1507P 1054
+508,4,0,5691,863,0,0,0,5691,862,1,0,0,5691,864,0,0,0,5691,865,0, 1509P 1055
+0; 1509P 1056
+508,4,0,5691,866,0,0,0,5691,865,1,0,0,5691,867,0,0,0,5691,868,0, 1511P 1057
+0; 1511P 1058
+508,4,0,5691,869,0,0,0,5691,868,1,0,0,5691,870,0,0,0,5691,871,0, 1513P 1059
+0; 1513P 1060
+508,4,0,5691,872,0,0,0,5691,871,1,0,0,5691,873,0,0,0,5691,874,0, 1515P 1061
+0; 1515P 1062
+508,4,0,5691,875,0,0,0,5691,874,1,0,0,5691,876,0,0,0,5691,877,0, 1517P 1063
+0; 1517P 1064
+508,4,0,5691,878,0,0,0,5691,877,1,0,0,5691,879,0,0,0,5691,880,0, 1519P 1065
+0; 1519P 1066
+508,4,0,5691,881,0,0,0,5691,880,1,0,0,5691,882,0,0,0,5691,883,0, 1521P 1067
+0; 1521P 1068
+508,4,0,5691,884,0,0,0,5691,883,1,0,0,5691,885,0,0,0,5691,886,0, 1523P 1069
+0; 1523P 1070
+508,4,0,5691,887,0,0,0,5691,886,1,0,0,5691,888,0,0,0,5691,854,0, 1525P 1071
+0; 1525P 1072
+508,4,0,5691,889,1,0,0,5691,890,1,0,0,5691,891,0,0,0,5691,892,0, 1527P 1073
+0; 1527P 1074
+508,4,0,5691,893,1,0,0,5691,892,1,0,0,5691,894,0,0,0,5691,895,0, 1529P 1075
+0; 1529P 1076
+508,4,0,5691,896,1,0,0,5691,895,1,0,0,5691,897,0,0,0,5691,898,0, 1531P 1077
+0; 1531P 1078
+508,4,0,5691,899,1,0,0,5691,898,1,0,0,5691,900,0,0,0,5691,901,0, 1533P 1079
+0; 1533P 1080
+508,4,0,5691,902,1,0,0,5691,901,1,0,0,5691,903,0,0,0,5691,904,0, 1535P 1081
+0; 1535P 1082
+508,4,0,5691,905,1,0,0,5691,904,1,0,0,5691,906,0,0,0,5691,907,0, 1537P 1083
+0; 1537P 1084
+508,4,0,5691,908,1,0,0,5691,907,1,0,0,5691,909,0,0,0,5691,910,0, 1539P 1085
+0; 1539P 1086
+508,4,0,5691,911,1,0,0,5691,910,1,0,0,5691,912,0,0,0,5691,913,0, 1541P 1087
+0; 1541P 1088
+508,4,0,5691,914,1,0,0,5691,913,1,0,0,5691,915,0,0,0,5691,890,0, 1543P 1089
+0; 1543P 1090
+508,9,0,5691,915,1,0,0,5691,912,1,0,0,5691,909,1,0,0,5691,906,1, 1545P 1091
+0,0,5691,903,1,0,0,5691,900,1,0,0,5691,897,1,0,0,5691,894,1,0,0, 1545P 1092
+5691,891,1,0; 1545P 1093
+508,12,0,5691,888,1,0,0,5691,885,1,0,0,5691,882,1,0,0,5691,879, 1547P 1094
+1,0,0,5691,876,1,0,0,5691,873,1,0,0,5691,870,1,0,0,5691,867,1,0, 1547P 1095
+0,5691,864,1,0,0,5691,861,1,0,0,5691,858,1,0,0,5691,855,1,0; 1547P 1096
+508,12,0,5691,852,1,0,0,5691,849,1,0,0,5691,846,1,0,0,5691,843, 1549P 1097
+1,0,0,5691,840,1,0,0,5691,837,1,0,0,5691,834,1,0,0,5691,831,1,0, 1549P 1098
+0,5691,828,1,0,0,5691,825,1,0,0,5691,822,1,0,0,5691,819,1,0; 1549P 1099
+508,12,0,5691,816,1,0,0,5691,813,1,0,0,5691,810,1,0,0,5691,807, 1551P 1100
+1,0,0,5691,804,1,0,0,5691,801,1,0,0,5691,798,1,0,0,5691,795,1,0, 1551P 1101
+0,5691,792,1,0,0,5691,789,1,0,0,5691,786,1,0,0,5691,783,1,0; 1551P 1102
+508,12,0,5691,780,1,0,0,5691,777,1,0,0,5691,774,1,0,0,5691,771, 1553P 1103
+1,0,0,5691,768,1,0,0,5691,765,1,0,0,5691,762,1,0,0,5691,759,1,0, 1553P 1104
+0,5691,756,1,0,0,5691,753,1,0,0,5691,750,1,0,0,5691,747,1,0; 1553P 1105
+508,12,0,5691,744,1,0,0,5691,741,1,0,0,5691,738,1,0,0,5691,735, 1555P 1106
+1,0,0,5691,732,1,0,0,5691,729,1,0,0,5691,726,1,0,0,5691,723,1,0, 1555P 1107
+0,5691,720,1,0,0,5691,717,1,0,0,5691,714,1,0,0,5691,711,1,0; 1555P 1108
+508,12,0,5691,708,1,0,0,5691,705,1,0,0,5691,702,1,0,0,5691,699, 1557P 1109
+1,0,0,5691,696,1,0,0,5691,693,1,0,0,5691,690,1,0,0,5691,687,1,0, 1557P 1110
+0,5691,684,1,0,0,5691,681,1,0,0,5691,678,1,0,0,5691,675,1,0; 1557P 1111
+508,12,0,5691,672,1,0,0,5691,669,1,0,0,5691,666,1,0,0,5691,663, 1559P 1112
+1,0,0,5691,660,1,0,0,5691,657,1,0,0,5691,654,1,0,0,5691,651,1,0, 1559P 1113
+0,5691,648,1,0,0,5691,645,1,0,0,5691,642,1,0,0,5691,639,1,0; 1559P 1114
+508,12,0,5691,636,1,0,0,5691,633,1,0,0,5691,630,1,0,0,5691,627, 1561P 1115
+1,0,0,5691,624,1,0,0,5691,621,1,0,0,5691,618,1,0,0,5691,615,1,0, 1561P 1116
+0,5691,612,1,0,0,5691,609,1,0,0,5691,606,1,0,0,5691,603,1,0; 1561P 1117
+508,12,0,5691,600,1,0,0,5691,597,1,0,0,5691,594,1,0,0,5691,591, 1563P 1118
+1,0,0,5691,588,1,0,0,5691,585,1,0,0,5691,582,1,0,0,5691,579,1,0, 1563P 1119
+0,5691,576,1,0,0,5691,573,1,0,0,5691,570,1,0,0,5691,567,1,0; 1563P 1120
+508,12,0,5691,564,1,0,0,5691,561,1,0,0,5691,558,1,0,0,5691,555, 1565P 1121
+1,0,0,5691,552,1,0,0,5691,549,1,0,0,5691,546,1,0,0,5691,543,1,0, 1565P 1122
+0,5691,540,1,0,0,5691,537,1,0,0,5691,534,1,0,0,5691,531,1,0; 1565P 1123
+508,12,0,5691,528,1,0,0,5691,525,1,0,0,5691,522,1,0,0,5691,519, 1567P 1124
+1,0,0,5691,516,1,0,0,5691,513,1,0,0,5691,510,1,0,0,5691,507,1,0, 1567P 1125
+0,5691,504,1,0,0,5691,501,1,0,0,5691,498,1,0,0,5691,495,1,0; 1567P 1126
+508,12,0,5691,492,1,0,0,5691,489,1,0,0,5691,486,1,0,0,5691,483, 1569P 1127
+1,0,0,5691,480,1,0,0,5691,477,1,0,0,5691,474,1,0,0,5691,471,1,0, 1569P 1128
+0,5691,468,1,0,0,5691,465,1,0,0,5691,462,1,0,0,5691,459,1,0; 1569P 1129
+508,12,0,5691,456,1,0,0,5691,453,1,0,0,5691,450,1,0,0,5691,447, 1571P 1130
+1,0,0,5691,444,1,0,0,5691,441,1,0,0,5691,438,1,0,0,5691,435,1,0, 1571P 1131
+0,5691,432,1,0,0,5691,429,1,0,0,5691,426,1,0,0,5691,423,1,0; 1571P 1132
+508,12,0,5691,420,1,0,0,5691,417,1,0,0,5691,414,1,0,0,5691,411, 1573P 1133
+1,0,0,5691,408,1,0,0,5691,405,1,0,0,5691,402,1,0,0,5691,399,1,0, 1573P 1134
+0,5691,396,1,0,0,5691,393,1,0,0,5691,390,1,0,0,5691,387,1,0; 1573P 1135
+508,12,0,5691,384,1,0,0,5691,381,1,0,0,5691,378,1,0,0,5691,375, 1575P 1136
+1,0,0,5691,372,1,0,0,5691,369,1,0,0,5691,366,1,0,0,5691,363,1,0, 1575P 1137
+0,5691,360,1,0,0,5691,357,1,0,0,5691,354,1,0,0,5691,351,1,0; 1575P 1138
+508,12,0,5691,348,1,0,0,5691,345,1,0,0,5691,342,1,0,0,5691,339, 1577P 1139
+1,0,0,5691,336,1,0,0,5691,333,1,0,0,5691,330,1,0,0,5691,327,1,0, 1577P 1140
+0,5691,324,1,0,0,5691,321,1,0,0,5691,318,1,0,0,5691,315,1,0; 1577P 1141
+508,12,0,5691,312,1,0,0,5691,309,1,0,0,5691,306,1,0,0,5691,303, 1579P 1142
+1,0,0,5691,300,1,0,0,5691,297,1,0,0,5691,294,1,0,0,5691,291,1,0, 1579P 1143
+0,5691,288,1,0,0,5691,285,1,0,0,5691,282,1,0,0,5691,279,1,0; 1579P 1144
+508,12,0,5691,276,1,0,0,5691,273,1,0,0,5691,270,1,0,0,5691,267, 1581P 1145
+1,0,0,5691,264,1,0,0,5691,261,1,0,0,5691,258,1,0,0,5691,255,1,0, 1581P 1146
+0,5691,252,1,0,0,5691,249,1,0,0,5691,246,1,0,0,5691,243,1,0; 1581P 1147
+508,12,0,5691,240,1,0,0,5691,237,1,0,0,5691,234,1,0,0,5691,231, 1583P 1148
+1,0,0,5691,228,1,0,0,5691,225,1,0,0,5691,222,1,0,0,5691,219,1,0, 1583P 1149
+0,5691,216,1,0,0,5691,213,1,0,0,5691,210,1,0,0,5691,207,1,0; 1583P 1150
+508,12,0,5691,204,1,0,0,5691,201,1,0,0,5691,198,1,0,0,5691,195, 1585P 1151
+1,0,0,5691,192,1,0,0,5691,189,1,0,0,5691,186,1,0,0,5691,183,1,0, 1585P 1152
+0,5691,180,1,0,0,5691,177,1,0,0,5691,174,1,0,0,5691,171,1,0; 1585P 1153
+508,12,0,5691,168,1,0,0,5691,165,1,0,0,5691,162,1,0,0,5691,159, 1587P 1154
+1,0,0,5691,156,1,0,0,5691,153,1,0,0,5691,150,1,0,0,5691,147,1,0, 1587P 1155
+0,5691,144,1,0,0,5691,141,1,0,0,5691,138,1,0,0,5691,135,1,0; 1587P 1156
+508,12,0,5691,132,1,0,0,5691,129,1,0,0,5691,126,1,0,0,5691,123, 1589P 1157
+1,0,0,5691,120,1,0,0,5691,117,1,0,0,5691,114,1,0,0,5691,111,1,0, 1589P 1158
+0,5691,108,1,0,0,5691,105,1,0,0,5691,102,1,0,0,5691,99,1,0; 1589P 1159
+508,12,0,5691,96,1,0,0,5691,93,1,0,0,5691,90,1,0,0,5691,87,1,0, 1591P 1160
+0,5691,84,1,0,0,5691,81,1,0,0,5691,78,1,0,0,5691,75,1,0,0,5691, 1591P 1161
+72,1,0,0,5691,69,1,0,0,5691,66,1,0,0,5691,63,1,0; 1591P 1162
+508,12,0,5691,60,1,0,0,5691,57,1,0,0,5691,54,1,0,0,5691,51,1,0, 1593P 1163
+0,5691,48,1,0,0,5691,45,1,0,0,5691,42,1,0,0,5691,39,1,0,0,5691, 1593P 1164
+36,1,0,0,5691,33,1,0,0,5691,30,1,0,0,5691,27,1,0; 1593P 1165
+508,2,0,5691,24,1,0,0,5691,21,1,0; 1595P 1166
+508,2,0,5691,18,1,0,0,5691,15,1,0; 1597P 1167
+508,2,0,5691,12,1,0,0,5691,9,1,0; 1599P 1168
+508,2,0,5691,6,1,0,0,5691,3,1,0; 1601P 1169
+508,9,0,5691,914,0,0,0,5691,889,0,0,0,5691,893,0,0,0,5691,896,0, 1603P 1170
+0,0,5691,899,0,0,0,5691,902,0,0,0,5691,905,0,0,0,5691,908,0,0,0, 1603P 1171
+5691,911,0,0; 1603P 1172
+508,12,0,5691,887,1,0,0,5691,853,1,0,0,5691,857,1,0,0,5691,860, 1605P 1173
+1,0,0,5691,863,1,0,0,5691,866,1,0,0,5691,869,1,0,0,5691,872,1,0, 1605P 1174
+0,5691,875,1,0,0,5691,878,1,0,0,5691,881,1,0,0,5691,884,1,0; 1605P 1175
+508,12,0,5691,851,1,0,0,5691,817,1,0,0,5691,821,1,0,0,5691,824, 1607P 1176
+1,0,0,5691,827,1,0,0,5691,830,1,0,0,5691,833,1,0,0,5691,836,1,0, 1607P 1177
+0,5691,839,1,0,0,5691,842,1,0,0,5691,845,1,0,0,5691,848,1,0; 1607P 1178
+508,12,0,5691,815,1,0,0,5691,781,1,0,0,5691,785,1,0,0,5691,788, 1609P 1179
+1,0,0,5691,791,1,0,0,5691,794,1,0,0,5691,797,1,0,0,5691,800,1,0, 1609P 1180
+0,5691,803,1,0,0,5691,806,1,0,0,5691,809,1,0,0,5691,812,1,0; 1609P 1181
+508,12,0,5691,779,1,0,0,5691,745,1,0,0,5691,749,1,0,0,5691,752, 1611P 1182
+1,0,0,5691,755,1,0,0,5691,758,1,0,0,5691,761,1,0,0,5691,764,1,0, 1611P 1183
+0,5691,767,1,0,0,5691,770,1,0,0,5691,773,1,0,0,5691,776,1,0; 1611P 1184
+508,12,0,5691,743,1,0,0,5691,709,1,0,0,5691,713,1,0,0,5691,716, 1613P 1185
+1,0,0,5691,719,1,0,0,5691,722,1,0,0,5691,725,1,0,0,5691,728,1,0, 1613P 1186
+0,5691,731,1,0,0,5691,734,1,0,0,5691,737,1,0,0,5691,740,1,0; 1613P 1187
+508,12,0,5691,707,1,0,0,5691,673,1,0,0,5691,677,1,0,0,5691,680, 1615P 1188
+1,0,0,5691,683,1,0,0,5691,686,1,0,0,5691,689,1,0,0,5691,692,1,0, 1615P 1189
+0,5691,695,1,0,0,5691,698,1,0,0,5691,701,1,0,0,5691,704,1,0; 1615P 1190
+508,12,0,5691,671,1,0,0,5691,637,1,0,0,5691,641,1,0,0,5691,644, 1617P 1191
+1,0,0,5691,647,1,0,0,5691,650,1,0,0,5691,653,1,0,0,5691,656,1,0, 1617P 1192
+0,5691,659,1,0,0,5691,662,1,0,0,5691,665,1,0,0,5691,668,1,0; 1617P 1193
+508,12,0,5691,635,1,0,0,5691,601,1,0,0,5691,605,1,0,0,5691,608, 1619P 1194
+1,0,0,5691,611,1,0,0,5691,614,1,0,0,5691,617,1,0,0,5691,620,1,0, 1619P 1195
+0,5691,623,1,0,0,5691,626,1,0,0,5691,629,1,0,0,5691,632,1,0; 1619P 1196
+508,12,0,5691,599,1,0,0,5691,565,1,0,0,5691,569,1,0,0,5691,572, 1621P 1197
+1,0,0,5691,575,1,0,0,5691,578,1,0,0,5691,581,1,0,0,5691,584,1,0, 1621P 1198
+0,5691,587,1,0,0,5691,590,1,0,0,5691,593,1,0,0,5691,596,1,0; 1621P 1199
+508,12,0,5691,563,1,0,0,5691,529,1,0,0,5691,533,1,0,0,5691,536, 1623P 1200
+1,0,0,5691,539,1,0,0,5691,542,1,0,0,5691,545,1,0,0,5691,548,1,0, 1623P 1201
+0,5691,551,1,0,0,5691,554,1,0,0,5691,557,1,0,0,5691,560,1,0; 1623P 1202
+508,12,0,5691,527,1,0,0,5691,493,1,0,0,5691,497,1,0,0,5691,500, 1625P 1203
+1,0,0,5691,503,1,0,0,5691,506,1,0,0,5691,509,1,0,0,5691,512,1,0, 1625P 1204
+0,5691,515,1,0,0,5691,518,1,0,0,5691,521,1,0,0,5691,524,1,0; 1625P 1205
+508,12,0,5691,491,1,0,0,5691,457,1,0,0,5691,461,1,0,0,5691,464, 1627P 1206
+1,0,0,5691,467,1,0,0,5691,470,1,0,0,5691,473,1,0,0,5691,476,1,0, 1627P 1207
+0,5691,479,1,0,0,5691,482,1,0,0,5691,485,1,0,0,5691,488,1,0; 1627P 1208
+508,12,0,5691,455,1,0,0,5691,421,1,0,0,5691,425,1,0,0,5691,428, 1629P 1209
+1,0,0,5691,431,1,0,0,5691,434,1,0,0,5691,437,1,0,0,5691,440,1,0, 1629P 1210
+0,5691,443,1,0,0,5691,446,1,0,0,5691,449,1,0,0,5691,452,1,0; 1629P 1211
+508,12,0,5691,419,1,0,0,5691,385,1,0,0,5691,389,1,0,0,5691,392, 1631P 1212
+1,0,0,5691,395,1,0,0,5691,398,1,0,0,5691,401,1,0,0,5691,404,1,0, 1631P 1213
+0,5691,407,1,0,0,5691,410,1,0,0,5691,413,1,0,0,5691,416,1,0; 1631P 1214
+508,12,0,5691,383,1,0,0,5691,349,1,0,0,5691,353,1,0,0,5691,356, 1633P 1215
+1,0,0,5691,359,1,0,0,5691,362,1,0,0,5691,365,1,0,0,5691,368,1,0, 1633P 1216
+0,5691,371,1,0,0,5691,374,1,0,0,5691,377,1,0,0,5691,380,1,0; 1633P 1217
+508,12,0,5691,347,1,0,0,5691,313,1,0,0,5691,317,1,0,0,5691,320, 1635P 1218
+1,0,0,5691,323,1,0,0,5691,326,1,0,0,5691,329,1,0,0,5691,332,1,0, 1635P 1219
+0,5691,335,1,0,0,5691,338,1,0,0,5691,341,1,0,0,5691,344,1,0; 1635P 1220
+508,12,0,5691,311,1,0,0,5691,277,1,0,0,5691,281,1,0,0,5691,284, 1637P 1221
+1,0,0,5691,287,1,0,0,5691,290,1,0,0,5691,293,1,0,0,5691,296,1,0, 1637P 1222
+0,5691,299,1,0,0,5691,302,1,0,0,5691,305,1,0,0,5691,308,1,0; 1637P 1223
+508,12,0,5691,275,1,0,0,5691,241,1,0,0,5691,245,1,0,0,5691,248, 1639P 1224
+1,0,0,5691,251,1,0,0,5691,254,1,0,0,5691,257,1,0,0,5691,260,1,0, 1639P 1225
+0,5691,263,1,0,0,5691,266,1,0,0,5691,269,1,0,0,5691,272,1,0; 1639P 1226
+508,12,0,5691,239,1,0,0,5691,205,1,0,0,5691,209,1,0,0,5691,212, 1641P 1227
+1,0,0,5691,215,1,0,0,5691,218,1,0,0,5691,221,1,0,0,5691,224,1,0, 1641P 1228
+0,5691,227,1,0,0,5691,230,1,0,0,5691,233,1,0,0,5691,236,1,0; 1641P 1229
+508,12,0,5691,203,1,0,0,5691,169,1,0,0,5691,173,1,0,0,5691,176, 1643P 1230
+1,0,0,5691,179,1,0,0,5691,182,1,0,0,5691,185,1,0,0,5691,188,1,0, 1643P 1231
+0,5691,191,1,0,0,5691,194,1,0,0,5691,197,1,0,0,5691,200,1,0; 1643P 1232
+508,12,0,5691,167,1,0,0,5691,133,1,0,0,5691,137,1,0,0,5691,140, 1645P 1233
+1,0,0,5691,143,1,0,0,5691,146,1,0,0,5691,149,1,0,0,5691,152,1,0, 1645P 1234
+0,5691,155,1,0,0,5691,158,1,0,0,5691,161,1,0,0,5691,164,1,0; 1645P 1235
+508,12,0,5691,131,1,0,0,5691,97,1,0,0,5691,101,1,0,0,5691,104,1, 1647P 1236
+0,0,5691,107,1,0,0,5691,110,1,0,0,5691,113,1,0,0,5691,116,1,0,0, 1647P 1237
+5691,119,1,0,0,5691,122,1,0,0,5691,125,1,0,0,5691,128,1,0; 1647P 1238
+508,12,0,5691,95,1,0,0,5691,61,1,0,0,5691,65,1,0,0,5691,68,1,0, 1649P 1239
+0,5691,71,1,0,0,5691,74,1,0,0,5691,77,1,0,0,5691,80,1,0,0,5691, 1649P 1240
+83,1,0,0,5691,86,1,0,0,5691,89,1,0,0,5691,92,1,0; 1649P 1241
+508,12,0,5691,59,1,0,0,5691,25,1,0,0,5691,29,1,0,0,5691,32,1,0, 1651P 1242
+0,5691,35,1,0,0,5691,38,1,0,0,5691,41,1,0,0,5691,44,1,0,0,5691, 1651P 1243
+47,1,0,0,5691,50,1,0,0,5691,53,1,0,0,5691,56,1,0; 1651P 1244
+508,2,0,5691,23,0,0,0,5691,19,0,0; 1653P 1245
+508,2,0,5691,17,0,0,0,5691,13,0,0; 1655P 1246
+508,2,0,5691,11,0,0,0,5691,7,0,0; 1657P 1247
+508,2,0,5691,5,0,0,0,5691,1,0,0; 1659P 1248
+508,4,0,5693,1,0,0,0,5693,2,1,0,0,5693,3,1,0,0,5693,4,0,0; 1661P 1249
+508,4,0,5693,5,0,0,0,5693,6,1,0,0,5693,7,1,0,0,5693,2,0,0; 1663P 1250
+508,4,0,5693,8,0,0,0,5693,9,1,0,0,5693,10,1,0,0,5693,6,0,0; 1665P 1251
+508,4,0,5693,11,0,0,0,5693,12,1,0,0,5693,13,1,0,0,5693,9,0,0; 1667P 1252
+508,4,0,5693,14,0,0,0,5693,15,1,0,0,5693,16,1,0,0,5693,12,0,0; 1669P 1253
+508,4,0,5693,17,0,0,0,5693,4,1,0,0,5693,18,1,0,0,5693,15,0,0; 1671P 1254
+508,6,0,5693,18,0,0,0,5693,3,0,0,0,5693,7,0,0,0,5693,10,0,0,0, 1673P 1255
+5693,13,0,0,0,5693,16,0,0; 1673P 1256
+508,4,0,5693,19,0,0,0,5693,20,1,0,0,5693,21,0,0,0,5693,22,0,0; 1675P 1257
+508,4,0,5693,23,0,0,0,5693,22,1,0,0,5693,24,0,0,0,5693,20,0,0; 1677P 1258
+508,4,0,5693,25,0,0,0,5693,26,1,0,0,5693,27,0,0,0,5693,28,0,0; 1679P 1259
+508,4,0,5693,29,0,0,0,5693,28,1,0,0,5693,30,0,0,0,5693,26,0,0; 1681P 1260
+508,4,0,5693,31,0,0,0,5693,32,0,0,0,5693,33,1,0,0,5693,34,0,0; 1683P 1261
+508,4,0,5693,35,1,0,0,5693,36,1,0,0,5693,37,1,0,0,5693,38,1,0; 1685P 1262
+508,4,0,5693,39,1,0,0,5693,40,1,0,0,5693,41,0,0,0,5693,42,1,0; 1687P 1263
+508,4,0,5693,43,1,0,0,5693,44,0,0,0,5693,45,1,0,0,5693,46,0,0; 1689P 1264
+508,6,0,5693,47,1,0,0,5693,42,0,0,0,5693,48,0,0,0,5693,31,1,0,0, 1691P 1265
+5693,49,0,0,0,5693,50,0,0; 1691P 1266
+508,4,0,5693,51,1,0,0,5693,38,0,0,0,5693,52,1,0,0,5693,53,0,0; 1693P 1267
+508,4,0,5693,54,1,0,0,5693,55,1,0,0,5693,56,1,0,0,5693,44,1,0; 1695P 1268
+508,4,0,5693,57,1,0,0,5693,58,1,0,0,5693,59,1,0,0,5693,60,1,0; 1697P 1269
+508,4,0,5693,61,1,0,0,5693,62,0,0,0,5693,63,1,0,0,5693,64,0,0; 1699P 1270
+508,4,0,5693,65,1,0,0,5693,66,0,0,0,5693,67,1,0,0,5693,58,0,0; 1701P 1271
+508,4,0,5693,68,0,0,0,5693,69,1,0,0,5693,70,0,0,0,5693,71,0,0; 1703P 1272
+508,4,0,5693,72,0,0,0,5693,71,1,0,0,5693,73,0,0,0,5693,69,0,0; 1705P 1273
+508,4,0,5693,74,0,0,0,5693,75,1,0,0,5693,76,0,0,0,5693,77,0,0; 1707P 1274
+508,4,0,5693,78,0,0,0,5693,77,1,0,0,5693,79,0,0,0,5693,75,0,0; 1709P 1275
+508,4,0,5693,80,0,0,0,5693,81,1,0,0,5693,82,0,0,0,5693,83,0,0; 1711P 1276
+508,4,0,5693,84,0,0,0,5693,83,1,0,0,5693,85,0,0,0,5693,81,0,0; 1713P 1277
+508,4,0,5693,86,0,0,0,5693,87,1,0,0,5693,88,0,0,0,5693,89,0,0; 1715P 1278
+508,4,0,5693,90,0,0,0,5693,89,1,0,0,5693,91,0,0,0,5693,87,0,0; 1717P 1279
+508,4,0,5693,92,0,0,0,5693,93,1,0,0,5693,94,0,0,0,5693,95,0,0; 1719P 1280
+508,7,0,5693,59,0,0,0,5693,67,0,0,0,5693,96,1,0,0,5693,97,1,0,0, 1721P 1281
+5693,98,0,0,0,5693,99,0,0,0,5693,93,0,0; 1721P 1282
+508,20,0,5693,100,0,0,0,5693,101,0,0,0,5693,102,0,0,0,5693,60,0, 1723P 1283
+0,0,5693,92,1,0,0,5693,103,0,0,0,5693,104,1,0,0,5693,105,1,0,0, 1723P 1284
+5693,106,1,0,0,5693,107,0,0,0,5693,108,1,0,0,5693,55,0,0,0,5693, 1723P 1285
+109,0,0,0,5693,110,0,0,0,5693,33,0,0,0,5693,111,0,0,0,5693,40,0, 1723P 1286
+0,0,5693,112,0,0,0,5693,36,0,0,0,5693,113,0,0; 1723P 1287
+508,6,0,5693,1,1,0,0,5693,17,1,0,0,5693,14,1,0,0,5693,11,1,0,0, 1725P 1288
+5693,8,1,0,0,5693,5,1,0; 1725P 1289
+508,2,0,5693,23,1,0,0,5693,19,1,0; 1727P 1290
+508,2,0,5693,29,1,0,0,5693,25,1,0; 1729P 1291
+508,2,0,5693,72,1,0,0,5693,68,1,0; 1731P 1292
+508,2,0,5693,78,1,0,0,5693,74,1,0; 1733P 1293
+508,2,0,5693,84,1,0,0,5693,80,1,0; 1735P 1294
+508,2,0,5693,90,1,0,0,5693,86,1,0; 1737P 1295
+508,4,0,5693,108,0,0,0,5693,114,1,0,0,5693,115,0,0,0,5693,116,0, 1739P 1296
+0; 1739P 1297
+508,7,0,5693,117,0,0,0,5693,118,0,0,0,5693,119,1,0,0,5693,120,1, 1741P 1298
+0,0,5693,121,0,0,0,5693,122,0,0,0,5693,114,0,0; 1741P 1299
+508,4,0,5693,123,0,0,0,5693,120,0,0,0,5693,124,0,0,0,5693,125,1, 1743P 1300
+0; 1743P 1301
+508,4,0,5693,126,0,0,0,5693,97,0,0,0,5693,127,0,0,0,5693,128,1, 1745P 1302
+0; 1745P 1303
+508,12,0,5693,124,1,0,0,5693,119,0,0,0,5693,129,1,0,0,5693,130, 1747P 1304
+0,0,0,5693,127,1,0,0,5693,96,0,0,0,5693,66,1,0,0,5693,131,0,0,0, 1747P 1305
+5693,132,0,0,0,5693,133,1,0,0,5693,46,1,0,0,5693,134,0,0; 1747P 1306
+508,7,0,5693,116,1,0,0,5693,135,0,0,0,5693,136,0,0,0,5693,125,0, 1749P 1307
+0,0,5693,134,1,0,0,5693,45,0,0,0,5693,56,0,0; 1749P 1308
+508,7,0,5693,95,1,0,0,5693,137,0,0,0,5693,138,0,0,0,5693,128,0, 1751P 1309
+0,0,5693,130,1,0,0,5693,139,0,0,0,5693,140,0,0; 1751P 1310
+508,4,0,5693,117,1,0,0,5693,107,1,0,0,5693,141,1,0,0,5693,142,1, 1753P 1311
+0; 1753P 1312
+508,8,0,5693,118,1,0,0,5693,142,0,0,0,5693,143,1,0,0,5693,144,1, 1755P 1313
+0,0,5693,145,1,0,0,5693,146,0,0,0,5693,139,1,0,0,5693,129,0,0; 1755P 1314
+508,4,0,5693,104,0,0,0,5693,147,0,0,0,5693,145,0,0,0,5693,148,0, 1757P 1315
+0; 1757P 1316
+508,4,0,5693,105,0,0,0,5693,148,1,0,0,5693,144,0,0,0,5693,149,0, 1759P 1317
+0; 1759P 1318
+508,4,0,5693,106,0,0,0,5693,149,1,0,0,5693,143,0,0,0,5693,141,0, 1761P 1319
+0; 1761P 1320
+508,4,0,5693,150,1,0,0,5693,64,1,0,0,5693,151,1,0,0,5693,100,1, 1763P 1321
+0; 1763P 1322
+508,4,0,5693,140,1,0,0,5693,146,1,0,0,5693,147,1,0,0,5693,103,1, 1765P 1323
+0; 1765P 1324
+508,4,0,5693,32,1,0,0,5693,48,1,0,0,5693,41,1,0,0,5693,111,1,0; 1767P 1325
+508,6,0,5693,152,0,0,0,5693,153,1,0,0,5693,49,1,0,0,5693,34,1,0, 1769P 1326
+0,5693,110,1,0,0,5693,154,0,0; 1769P 1327
+508,4,0,5693,155,0,0,0,5693,156,1,0,0,5693,50,1,0,0,5693,153,0, 1771P 1328
+0; 1771P 1329
+508,8,0,5693,157,0,0,0,5693,158,1,0,0,5693,52,0,0,0,5693,37,0,0, 1773P 1330
+0,5693,112,1,0,0,5693,39,0,0,0,5693,47,0,0,0,5693,156,0,0; 1773P 1331
+508,4,0,5693,159,0,0,0,5693,160,1,0,0,5693,53,1,0,0,5693,158,0, 1775P 1332
+0; 1775P 1333
+508,8,0,5693,161,0,0,0,5693,162,1,0,0,5693,61,0,0,0,5693,150,0, 1777P 1334
+0,0,5693,113,1,0,0,5693,35,0,0,0,5693,51,0,0,0,5693,160,0,0; 1777P 1335
+508,4,0,5693,163,0,0,0,5693,164,1,0,0,5693,62,1,0,0,5693,162,0, 1779P 1336
+0; 1779P 1337
+508,9,0,5693,165,0,0,0,5693,131,1,0,0,5693,65,0,0,0,5693,57,0,0, 1781P 1338
+0,5693,102,1,0,0,5693,101,1,0,0,5693,151,0,0,0,5693,63,0,0,0, 1781P 1339
+5693,164,0,0; 1781P 1340
+508,6,0,5693,166,0,0,0,5693,154,1,0,0,5693,109,1,0,0,5693,54,0, 1783P 1341
+0,0,5693,43,0,0,0,5693,133,0,0; 1783P 1342
+508,9,0,5693,167,1,0,0,5693,168,1,0,0,5693,169,1,0,0,5693,170,1, 1785P 1343
+0,0,5693,171,1,0,0,5693,172,1,0,0,5693,173,1,0,0,5693,174,1,0,0, 1785P 1344
+5693,175,1,0; 1785P 1345
+508,9,0,5693,152,1,0,0,5693,166,1,0,0,5693,132,1,0,0,5693,165,1, 1787P 1346
+0,0,5693,163,1,0,0,5693,161,1,0,0,5693,159,1,0,0,5693,157,1,0,0, 1787P 1347
+5693,155,1,0; 1787P 1348
+508,4,0,5693,168,0,0,0,5693,176,1,0,0,5693,177,0,0,0,5693,178,0, 1789P 1349
+0; 1789P 1350
+508,4,0,5693,169,0,0,0,5693,178,1,0,0,5693,179,0,0,0,5693,180,0, 1791P 1351
+0; 1791P 1352
+508,4,0,5693,170,0,0,0,5693,180,1,0,0,5693,181,0,0,0,5693,182,0, 1793P 1353
+0; 1793P 1354
+508,4,0,5693,171,0,0,0,5693,182,1,0,0,5693,183,0,0,0,5693,184,0, 1795P 1355
+0; 1795P 1356
+508,4,0,5693,172,0,0,0,5693,184,1,0,0,5693,185,0,0,0,5693,186,0, 1797P 1357
+0; 1797P 1358
+508,4,0,5693,173,0,0,0,5693,186,1,0,0,5693,187,0,0,0,5693,188,0, 1799P 1359
+0; 1799P 1360
+508,4,0,5693,174,0,0,0,5693,188,1,0,0,5693,189,0,0,0,5693,190,0, 1801P 1361
+0; 1801P 1362
+508,12,0,5693,98,1,0,0,5693,126,1,0,0,5693,138,1,0,0,5693,191,0, 1803P 1363
+0,0,5693,121,1,0,0,5693,123,1,0,0,5693,136,1,0,0,5693,192,0,0,0, 1803P 1364
+5693,193,0,0,0,5693,175,0,0,0,5693,190,1,0,0,5693,194,0,0; 1803P 1365
+508,4,0,5693,167,0,0,0,5693,193,1,0,0,5693,195,0,0,0,5693,176,0, 1805P 1366
+0; 1805P 1367
+508,17,0,5693,99,1,0,0,5693,194,1,0,0,5693,189,1,0,0,5693,187,1, 1807P 1368
+0,0,5693,185,1,0,0,5693,183,1,0,0,5693,181,1,0,0,5693,179,1,0,0, 1807P 1369
+5693,177,1,0,0,5693,195,1,0,0,5693,192,1,0,0,5693,135,1,0,0, 1807P 1370
+5693,115,1,0,0,5693,122,1,0,0,5693,191,1,0,0,5693,137,1,0,0, 1807P 1371
+5693,94,1,0; 1807P 1372
+508,2,0,5693,24,1,0,0,5693,21,1,0; 1809P 1373
+508,2,0,5693,30,1,0,0,5693,27,1,0; 1811P 1374
+508,2,0,5693,73,1,0,0,5693,70,1,0; 1813P 1375
+508,2,0,5693,79,1,0,0,5693,76,1,0; 1815P 1376
+508,2,0,5693,85,1,0,0,5693,82,1,0; 1817P 1377
+508,2,0,5693,91,1,0,0,5693,88,1,0; 1819P 1378
+508,4,0,5695,1,1,0,0,5695,2,1,0,0,5695,3,1,0,0,5695,4,1,0; 1821P 1379
+508,8,0,5695,5,1,0,0,5695,6,0,0,0,5695,7,1,0,0,5695,8,0,0,0, 1823P 1380
+5695,9,1,0,0,5695,10,1,0,0,5695,11,1,0,0,5695,2,0,0; 1823P 1381
+508,12,0,5695,12,1,0,0,5695,13,0,0,0,5695,14,1,0,0,5695,15,0,0, 1825P 1382
+0,5695,16,0,0,0,5695,17,1,0,0,5695,18,1,0,0,5695,19,0,0,0,5695, 1825P 1383
+20,1,0,0,5695,21,0,0,0,5695,6,1,0,0,5695,22,0,0; 1825P 1384
+508,7,0,5695,23,0,0,0,5695,24,0,0,0,5695,25,1,0,0,5695,19,1,0,0, 1827P 1385
+5695,26,0,0,0,5695,27,0,0,0,5695,28,0,0; 1827P 1386
+508,7,0,5695,29,0,0,0,5695,30,0,0,0,5695,31,1,0,0,5695,22,1,0,0, 1829P 1387
+5695,5,0,0,0,5695,1,0,0,0,5695,32,0,0; 1829P 1388
+508,4,0,5695,27,1,0,0,5695,33,1,0,0,5695,34,1,0,0,5695,35,1,0; 1831P 1389
+508,12,0,5695,36,1,0,0,5695,24,1,0,0,5695,37,0,0,0,5695,38,0,0, 1833P 1390
+0,5695,39,0,0,0,5695,40,1,0,0,5695,41,0,0,0,5695,42,1,0,0,5695, 1833P 1391
+43,1,0,0,5695,30,1,0,0,5695,44,0,0,0,5695,45,1,0; 1833P 1392
+508,17,0,5695,23,1,0,0,5695,46,1,0,0,5695,47,1,0,0,5695,44,1,0, 1835P 1393
+0,5695,29,1,0,0,5695,48,1,0,0,5695,49,1,0,0,5695,41,1,0,0,5695, 1835P 1394
+50,1,0,0,5695,51,1,0,0,5695,52,1,0,0,5695,53,1,0,0,5695,54,1,0, 1835P 1395
+0,5695,55,1,0,0,5695,56,1,0,0,5695,57,1,0,0,5695,37,1,0; 1835P 1396
+508,2,0,5695,58,1,0,0,5695,59,1,0; 1837P 1397
+508,2,0,5695,60,1,0,0,5695,61,1,0; 1839P 1398
+508,2,0,5695,62,1,0,0,5695,63,1,0; 1841P 1399
+508,2,0,5695,64,1,0,0,5695,65,1,0; 1843P 1400
+508,2,0,5695,66,1,0,0,5695,67,1,0; 1845P 1401
+508,2,0,5695,68,1,0,0,5695,69,1,0; 1847P 1402
+508,4,0,5695,70,0,0,0,5695,71,1,0,0,5695,72,1,0,0,5695,73,0,0; 1849P 1403
+508,4,0,5695,74,0,0,0,5695,75,1,0,0,5695,76,1,0,0,5695,71,0,0; 1851P 1404
+508,4,0,5695,77,0,0,0,5695,78,1,0,0,5695,79,1,0,0,5695,75,0,0; 1853P 1405
+508,4,0,5695,80,0,0,0,5695,81,1,0,0,5695,82,1,0,0,5695,78,0,0; 1855P 1406
+508,4,0,5695,83,0,0,0,5695,84,1,0,0,5695,85,1,0,0,5695,81,0,0; 1857P 1407
+508,4,0,5695,86,0,0,0,5695,87,1,0,0,5695,88,1,0,0,5695,84,0,0; 1859P 1408
+508,4,0,5695,89,0,0,0,5695,90,1,0,0,5695,91,1,0,0,5695,87,0,0; 1861P 1409
+508,4,0,5695,92,0,0,0,5695,93,1,0,0,5695,94,1,0,0,5695,90,0,0; 1863P 1410
+508,4,0,5695,95,0,0,0,5695,73,1,0,0,5695,96,1,0,0,5695,93,0,0; 1865P 1411
+508,4,0,5695,97,0,0,0,5695,98,1,0,0,5695,99,1,0,0,5695,100,0,0; 1867P 1412
+508,4,0,5695,101,0,0,0,5695,102,1,0,0,5695,103,1,0,0,5695,98,0, 1869P 1413
+0; 1869P 1414
+508,4,0,5695,104,0,0,0,5695,105,1,0,0,5695,106,1,0,0,5695,102,0, 1871P 1415
+0; 1871P 1416
+508,4,0,5695,107,0,0,0,5695,108,1,0,0,5695,109,1,0,0,5695,105,0, 1873P 1417
+0; 1873P 1418
+508,4,0,5695,110,0,0,0,5695,111,1,0,0,5695,112,1,0,0,5695,108,0, 1875P 1419
+0; 1875P 1420
+508,4,0,5695,113,0,0,0,5695,114,1,0,0,5695,115,1,0,0,5695,111,0, 1877P 1421
+0; 1877P 1422
+508,4,0,5695,116,0,0,0,5695,117,1,0,0,5695,118,1,0,0,5695,114,0, 1879P 1423
+0; 1879P 1424
+508,4,0,5695,119,0,0,0,5695,120,1,0,0,5695,121,1,0,0,5695,117,0, 1881P 1425
+0; 1881P 1426
+508,4,0,5695,122,0,0,0,5695,123,1,0,0,5695,124,1,0,0,5695,120,0, 1883P 1427
+0; 1883P 1428
+508,4,0,5695,125,0,0,0,5695,126,1,0,0,5695,127,1,0,0,5695,123,0, 1885P 1429
+0; 1885P 1430
+508,4,0,5695,128,0,0,0,5695,129,1,0,0,5695,130,1,0,0,5695,126,0, 1887P 1431
+0; 1887P 1432
+508,4,0,5695,131,0,0,0,5695,132,1,0,0,5695,133,1,0,0,5695,129,0, 1889P 1433
+0; 1889P 1434
+508,4,0,5695,134,0,0,0,5695,135,1,0,0,5695,136,1,0,0,5695,132,0, 1891P 1435
+0; 1891P 1436
+508,4,0,5695,137,0,0,0,5695,138,1,0,0,5695,139,1,0,0,5695,135,0, 1893P 1437
+0; 1893P 1438
+508,4,0,5695,140,0,0,0,5695,141,1,0,0,5695,142,1,0,0,5695,138,0, 1895P 1439
+0; 1895P 1440
+508,4,0,5695,143,0,0,0,5695,144,1,0,0,5695,145,1,0,0,5695,141,0, 1897P 1441
+0; 1897P 1442
+508,4,0,5695,146,0,0,0,5695,147,1,0,0,5695,148,1,0,0,5695,144,0, 1899P 1443
+0; 1899P 1444
+508,4,0,5695,149,0,0,0,5695,100,1,0,0,5695,150,1,0,0,5695,147,0, 1901P 1445
+0; 1901P 1446
+508,18,0,5695,150,0,0,0,5695,99,0,0,0,5695,103,0,0,0,5695,106,0, 1903P 1447
+0,0,5695,109,0,0,0,5695,112,0,0,0,5695,115,0,0,0,5695,118,0,0,0, 1903P 1448
+5695,121,0,0,0,5695,124,0,0,0,5695,127,0,0,0,5695,130,0,0,0, 1903P 1449
+5695,133,0,0,0,5695,136,0,0,0,5695,139,0,0,0,5695,142,0,0,0, 1903P 1450
+5695,145,0,0,0,5695,148,0,0; 1903P 1451
+508,9,0,5695,96,0,0,0,5695,72,0,0,0,5695,76,0,0,0,5695,79,0,0,0, 1905P 1452
+5695,82,0,0,0,5695,85,0,0,0,5695,88,0,0,0,5695,91,0,0,0,5695,94, 1905P 1453
+0,0; 1905P 1454
+508,20,0,5695,151,0,0,0,5695,152,0,0,0,5695,153,0,0,0,5695,154, 1907P 1455
+0,0,0,5695,155,1,0,0,5695,4,0,0,0,5695,156,1,0,0,5695,157,1,0,0, 1907P 1456
+5695,158,1,0,0,5695,159,0,0,0,5695,160,1,0,0,5695,35,0,0,0,5695, 1907P 1457
+161,0,0,0,5695,162,0,0,0,5695,163,0,0,0,5695,164,0,0,0,5695,165, 1907P 1458
+0,0,0,5695,166,0,0,0,5695,167,0,0,0,5695,168,0,0; 1907P 1459
+508,2,0,5695,169,1,0,0,5695,170,1,0; 1909P 1460
+508,2,0,5695,171,1,0,0,5695,172,1,0; 1911P 1461
+508,2,0,5695,173,1,0,0,5695,174,1,0; 1913P 1462
+508,2,0,5695,175,1,0,0,5695,176,1,0; 1915P 1463
+508,2,0,5695,177,1,0,0,5695,178,1,0; 1917P 1464
+508,2,0,5695,179,1,0,0,5695,180,1,0; 1919P 1465
+508,18,0,5695,97,1,0,0,5695,149,1,0,0,5695,146,1,0,0,5695,143,1, 1921P 1466
+0,0,5695,140,1,0,0,5695,137,1,0,0,5695,134,1,0,0,5695,131,1,0,0, 1921P 1467
+5695,128,1,0,0,5695,125,1,0,0,5695,122,1,0,0,5695,119,1,0,0, 1921P 1468
+5695,116,1,0,0,5695,113,1,0,0,5695,110,1,0,0,5695,107,1,0,0, 1921P 1469
+5695,104,1,0,0,5695,101,1,0; 1921P 1470
+508,4,0,5695,180,0,0,0,5695,181,1,0,0,5695,69,0,0,0,5695,182,0, 1923P 1471
+0; 1923P 1472
+508,4,0,5695,179,0,0,0,5695,182,1,0,0,5695,68,0,0,0,5695,181,0, 1925P 1473
+0; 1925P 1474
+508,4,0,5695,178,0,0,0,5695,183,1,0,0,5695,67,0,0,0,5695,184,0, 1927P 1475
+0; 1927P 1476
+508,4,0,5695,177,0,0,0,5695,184,1,0,0,5695,66,0,0,0,5695,183,0, 1929P 1477
+0; 1929P 1478
+508,4,0,5695,185,0,0,0,5695,186,0,0,0,5695,163,1,0,0,5695,187,0, 1931P 1479
+0; 1931P 1480
+508,4,0,5695,188,1,0,0,5695,167,1,0,0,5695,189,1,0,0,5695,190,1, 1933P 1481
+0; 1933P 1482
+508,4,0,5695,191,1,0,0,5695,165,1,0,0,5695,192,0,0,0,5695,193,1, 1935P 1483
+0; 1935P 1484
+508,4,0,5695,26,1,0,0,5695,18,0,0,0,5695,194,1,0,0,5695,33,0,0; 1937P 1485
+508,6,0,5695,195,1,0,0,5695,193,0,0,0,5695,196,0,0,0,5695,185,1, 1939P 1486
+0,0,5695,197,0,0,0,5695,198,0,0; 1939P 1487
+508,4,0,5695,199,1,0,0,5695,190,0,0,0,5695,200,1,0,0,5695,201,0, 1941P 1488
+0; 1941P 1489
+508,4,0,5695,202,1,0,0,5695,203,1,0,0,5695,204,1,0,0,5695,154,1, 1943P 1490
+0; 1943P 1491
+508,4,0,5695,205,1,0,0,5695,206,0,0,0,5695,207,1,0,0,5695,208,0, 1945P 1492
+0; 1945P 1493
+508,4,0,5695,209,1,0,0,5695,14,0,0,0,5695,210,1,0,0,5695,203,0, 1947P 1494
+0; 1947P 1495
+508,4,0,5695,176,0,0,0,5695,211,1,0,0,5695,65,0,0,0,5695,212,0, 1949P 1496
+0; 1949P 1497
+508,4,0,5695,175,0,0,0,5695,212,1,0,0,5695,64,0,0,0,5695,211,0, 1951P 1498
+0; 1951P 1499
+508,4,0,5695,174,0,0,0,5695,213,1,0,0,5695,63,0,0,0,5695,214,0, 1953P 1500
+0; 1953P 1501
+508,4,0,5695,173,0,0,0,5695,214,1,0,0,5695,62,0,0,0,5695,213,0, 1955P 1502
+0; 1955P 1503
+508,4,0,5695,172,0,0,0,5695,215,1,0,0,5695,61,0,0,0,5695,216,0, 1957P 1504
+0; 1957P 1505
+508,4,0,5695,171,0,0,0,5695,216,1,0,0,5695,60,0,0,0,5695,215,0, 1959P 1506
+0; 1959P 1507
+508,4,0,5695,170,0,0,0,5695,217,1,0,0,5695,59,0,0,0,5695,218,0, 1961P 1508
+0; 1961P 1509
+508,4,0,5695,169,0,0,0,5695,218,1,0,0,5695,58,0,0,0,5695,217,0, 1963P 1510
+0; 1963P 1511
+508,4,0,5695,155,0,0,0,5695,219,1,0,0,5695,48,0,0,0,5695,32,1,0; 1965P 1512
+508,7,0,5695,204,0,0,0,5695,210,0,0,0,5695,13,1,0,0,5695,220,1, 1967P 1513
+0,0,5695,42,0,0,0,5695,49,0,0,0,5695,219,0,0; 1967P 1514
+508,9,0,5695,70,1,0,0,5695,95,1,0,0,5695,92,1,0,0,5695,89,1,0,0, 1969P 1515
+5695,86,1,0,0,5695,83,1,0,0,5695,80,1,0,0,5695,77,1,0,0,5695,74, 1969P 1516
+1,0; 1969P 1517
+508,4,0,5695,160,0,0,0,5695,221,1,0,0,5695,46,0,0,0,5695,28,1,0; 1971P 1518
+508,7,0,5695,222,0,0,0,5695,7,0,0,0,5695,21,1,0,0,5695,223,1,0, 1973P 1519
+0,5695,45,0,0,0,5695,47,0,0,0,5695,221,0,0; 1973P 1520
+508,4,0,5695,20,0,0,0,5695,25,0,0,0,5695,36,0,0,0,5695,223,0,0; 1975P 1521
+508,4,0,5695,12,0,0,0,5695,31,0,0,0,5695,43,0,0,0,5695,220,0,0; 1977P 1522
+508,4,0,5695,222,1,0,0,5695,159,1,0,0,5695,224,1,0,0,5695,8,1,0; 1979P 1523
+508,4,0,5695,156,0,0,0,5695,3,0,0,0,5695,11,0,0,0,5695,225,0,0; 1981P 1524
+508,4,0,5695,157,0,0,0,5695,225,1,0,0,5695,10,0,0,0,5695,226,0, 1983P 1525
+0; 1983P 1526
+508,4,0,5695,158,0,0,0,5695,226,1,0,0,5695,9,0,0,0,5695,224,0,0; 1985P 1527
+508,4,0,5695,227,1,0,0,5695,208,1,0,0,5695,228,1,0,0,5695,151,1, 1987P 1528
+0; 1987P 1529
+508,4,0,5695,186,1,0,0,5695,196,1,0,0,5695,192,1,0,0,5695,164,1, 1989P 1530
+0; 1989P 1531
+508,6,0,5695,229,0,0,0,5695,230,1,0,0,5695,197,1,0,0,5695,187,1, 1991P 1532
+0,0,5695,162,1,0,0,5695,231,0,0; 1991P 1533
+508,4,0,5695,232,0,0,0,5695,233,1,0,0,5695,198,1,0,0,5695,230,0, 1993P 1534
+0; 1993P 1535
+508,8,0,5695,234,0,0,0,5695,235,1,0,0,5695,200,0,0,0,5695,189,0, 1995P 1536
+0,0,5695,166,1,0,0,5695,191,0,0,0,5695,195,0,0,0,5695,233,0,0; 1995P 1537
+508,4,0,5695,236,0,0,0,5695,237,1,0,0,5695,201,1,0,0,5695,235,0, 1997P 1538
+0; 1997P 1539
+508,8,0,5695,238,0,0,0,5695,239,1,0,0,5695,205,0,0,0,5695,227,0, 1999P 1540
+0,0,5695,168,1,0,0,5695,188,0,0,0,5695,199,0,0,0,5695,237,0,0; 1999P 1541
+508,4,0,5695,240,0,0,0,5695,241,1,0,0,5695,206,1,0,0,5695,239,0, 2001P 1542
+0; 2001P 1543
+508,9,0,5695,242,0,0,0,5695,15,1,0,0,5695,209,0,0,0,5695,202,0, 2003P 1544
+0,0,5695,153,1,0,0,5695,152,1,0,0,5695,228,0,0,0,5695,207,0,0,0, 2003P 1545
+5695,241,0,0; 2003P 1546
+508,6,0,5695,243,0,0,0,5695,231,1,0,0,5695,161,1,0,0,5695,34,0, 2005P 1547
+0,0,5695,194,0,0,0,5695,17,0,0; 2005P 1548
+508,9,0,5695,244,1,0,0,5695,245,1,0,0,5695,246,1,0,0,5695,247,1, 2007P 1549
+0,0,5695,248,1,0,0,5695,249,1,0,0,5695,250,1,0,0,5695,251,1,0,0, 2007P 1550
+5695,39,1,0; 2007P 1551
+508,9,0,5695,229,1,0,0,5695,243,1,0,0,5695,16,1,0,0,5695,242,1, 2009P 1552
+0,0,5695,240,1,0,0,5695,238,1,0,0,5695,236,1,0,0,5695,234,1,0,0, 2009P 1553
+5695,232,1,0; 2009P 1554
+508,4,0,5695,245,0,0,0,5695,252,1,0,0,5695,56,0,0,0,5695,253,0, 2011P 1555
+0; 2011P 1556
+508,4,0,5695,246,0,0,0,5695,253,1,0,0,5695,55,0,0,0,5695,254,0, 2013P 1557
+0; 2013P 1558
+508,4,0,5695,247,0,0,0,5695,254,1,0,0,5695,54,0,0,0,5695,255,0, 2015P 1559
+0; 2015P 1560
+508,4,0,5695,248,0,0,0,5695,255,1,0,0,5695,53,0,0,0,5695,256,0, 2017P 1561
+0; 2017P 1562
+508,4,0,5695,249,0,0,0,5695,256,1,0,0,5695,52,0,0,0,5695,257,0, 2019P 1563
+0; 2019P 1564
+508,4,0,5695,250,0,0,0,5695,257,1,0,0,5695,51,0,0,0,5695,258,0, 2021P 1565
+0; 2021P 1566
+508,4,0,5695,251,0,0,0,5695,258,1,0,0,5695,50,0,0,0,5695,40,0,0; 2023P 1567
+508,4,0,5695,244,0,0,0,5695,38,1,0,0,5695,57,0,0,0,5695,252,0,0; 2025P 1568
+126,6,2,0,0,0,0,-6.28326580027829,-6.28326580027829, 2027P 1569
+-6.28326580027829,-5.23526324929942,-5.23526324929942, 2027P 1570
+-4.18726069832056,-4.18726069832056,-3.1392581473417, 2027P 1571
+-3.1392581473417,-3.1392581473417,1.,0.865824083693573,1., 2027P 1572
+0.865824083693555,1.,0.865824083693611,1.,139.68226259674, 2027P 1573
+-80.5980231141957,8.73624999999999,139.683239604231, 2027P 1574
+-79.7889073538704,8.73624999999999,138.982687181724, 2027P 1575
+-79.3840671737141,8.73624999999999,138.282134759216, 2027P 1576
+-78.9792269935579,8.73624999999999,137.581582336708, 2027P 1577
+-79.3840671737141,8.73624999999999,136.8810299142, 2027P 1578
+-79.7889073538704,8.73624999999999,136.882006921691, 2027P 1579
+-80.5980231141957,8.73624999999999,-6.28326580027829, 2027P 1580
+-3.1392581473417,0.,0.,0.; 2027P 1581
+126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1., 2029P 1582
+136.882006921691,-80.5980231141957,8.73624999999999, 2029P 1583
+136.882006921691,-80.5980231141957,7.11812499999999,0., 2029P 1584
+0.1618125,0.,0.,0.; 2029P 1585
+126,6,2,0,0,0,0,-6.28326580027829,-6.28326580027829, 2031P 1586
+-6.28326580027829,-5.23526324929942,-5.23526324929942, 2031P 1587
+-4.18726069832056,-4.18726069832056,-3.1392581473417, 2031P 1588
+-3.1392581473417,-3.1392581473417,1.,0.865824083693573,1., 2031P 1589
+0.865824083693555,1.,0.865824083693611,1.,139.68226259674, 2031P 1590
+-80.5980231141957,7.11812499999999,139.683239604231, 2031P 1591
+-79.7889073538704,7.11812499999999,138.982687181724, 2031P 1592
+-79.3840671737141,7.11812499999999,138.282134759216, 2031P 1593
+-78.9792269935579,7.11812499999999,137.581582336708, 2031P 1594
+-79.3840671737141,7.11812499999999,136.8810299142, 2031P 1595
+-79.7889073538704,7.11812499999999,136.882006921691, 2031P 1596
+-80.5980231141957,7.11812499999999,-6.28326580027829, 2031P 1597
+-3.1392581473417,0.,0.,0.; 2031P 1598
+126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1.,139.68226259674, 2033P 1599
+-80.5980231141957,8.73624999999999,139.68226259674, 2033P 1600
+-80.5980231141957,7.11812499999999,0.,0.1618125,0.,0.,0.; 2033P 1601
+126,6,2,0,0,0,0,-6.28326580027831,-6.28326580027831, 2035P 1602
+-6.28326580027831,-5.23526324929943,-5.23526324929943, 2035P 1603
+-4.18726069832055,-4.18726069832055,-3.13925814734167, 2035P 1604
+-3.13925814734167,-3.13925814734167,1.,0.865824083693529,1., 2035P 1605
+0.865824083693519,1.,0.865824083693529,1.,136.882006921691, 2035P 1606
+-80.5980231141957,8.73624999999999,136.8810299142, 2035P 1607
+-81.4071388745211,8.73624999999999,137.581582336708, 2035P 1608
+-81.8119790546774,8.73624999999999,138.282134759216, 2035P 1609
+-82.2168192348336,8.73624999999999,138.982687181724, 2035P 1610
+-81.8119790546774,8.73624999999999,139.683239604231, 2035P 1611
+-81.4071388745211,8.73624999999999,139.68226259674, 2035P 1612
+-80.5980231141957,8.73624999999999,-6.28326580027831, 2035P 1613
+-3.13925814734167,0.,0.,0.; 2035P 1614
+126,6,2,0,0,0,0,-6.28326580027831,-6.28326580027831, 2037P 1615
+-6.28326580027831,-5.23526324929943,-5.23526324929943, 2037P 1616
+-4.18726069832055,-4.18726069832055,-3.13925814734167, 2037P 1617
+-3.13925814734167,-3.13925814734167,1.,0.865824083693529,1., 2037P 1618
+0.865824083693519,1.,0.865824083693529,1.,136.882006921691, 2037P 1619
+-80.5980231141957,7.11812499999999,136.8810299142, 2037P 1620
+-81.4071388745211,7.11812499999999,137.581582336708, 2037P 1621
+-81.8119790546774,7.11812499999999,138.282134759216, 2037P 1622
+-82.2168192348336,7.11812499999999,138.982687181724, 2037P 1623
+-81.8119790546774,7.11812499999999,139.683239604231, 2037P 1624
+-81.4071388745211,7.11812499999999,139.68226259674, 2037P 1625
+-80.5980231141957,7.11812499999999,-6.28326580027831, 2037P 1626
+-3.13925814734167,0.,0.,0.; 2037P 1627
+126,6,2,0,0,0,0,-6.28326580027829,-6.28326580027829, 2039P 1628
+-6.28326580027829,-5.23526324929942,-5.23526324929942, 2039P 1629
+-4.18726069832056,-4.18726069832056,-3.1392581473417, 2039P 1630
+-3.1392581473417,-3.1392581473417,1.,0.86582408369359,1., 2039P 1631
+0.865824083693519,1.,0.865824083693555,1.,139.68226259674, 2039P 1632
+-118.69865621105,8.73624999999999,139.683239604231, 2039P 1633
+-117.889540450724,8.73624999999999,138.982687181724, 2039P 1634
+-117.484700270568,8.73624999999999,138.282134759216, 2039P 1635
+-117.079860090412,8.73624999999999,137.581582336708, 2039P 1636
+-117.484700270568,8.73624999999999,136.8810299142, 2039P 1637
+-117.889540450724,8.73624999999999,136.882006921691, 2039P 1638
+-118.69865621105,8.73624999999999,-6.28326580027829, 2039P 1639
+-3.1392581473417,0.,0.,0.; 2039P 1640
+126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1., 2041P 1641
+136.882006921691,-118.69865621105,8.73624999999999, 2041P 1642
+136.882006921691,-118.69865621105,7.11812499999999,0.,0.1618125, 2041P 1643
+0.,0.,0.; 2041P 1644
+126,6,2,0,0,0,0,-6.28326580027829,-6.28326580027829, 2043P 1645
+-6.28326580027829,-5.23526324929942,-5.23526324929942, 2043P 1646
+-4.18726069832056,-4.18726069832056,-3.1392581473417, 2043P 1647
+-3.1392581473417,-3.1392581473417,1.,0.86582408369359,1., 2043P 1648
+0.865824083693519,1.,0.865824083693555,1.,139.68226259674, 2043P 1649
+-118.69865621105,7.11812499999999,139.683239604231, 2043P 1650
+-117.889540450724,7.11812499999999,138.982687181724, 2043P 1651
+-117.484700270568,7.11812499999999,138.282134759216, 2043P 1652
+-117.079860090412,7.11812499999999,137.581582336708, 2043P 1653
+-117.484700270568,7.11812499999999,136.8810299142, 2043P 1654
+-117.889540450724,7.11812499999999,136.882006921691, 2043P 1655
+-118.69865621105,7.11812499999999,-6.28326580027829, 2043P 1656
+-3.1392581473417,0.,0.,0.; 2043P 1657
+126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1.,139.68226259674, 2045P 1658
+-118.69865621105,8.73624999999999,139.68226259674, 2045P 1659
+-118.69865621105,7.11812499999999,0.,0.1618125,0.,0.,0.; 2045P 1660
+126,6,2,0,0,0,0,-6.28326580027831,-6.28326580027831, 2047P 1661
+-6.28326580027831,-5.23526324929943,-5.23526324929943, 2047P 1662
+-4.18726069832055,-4.18726069832055,-3.13925814734167, 2047P 1663
+-3.13925814734167,-3.13925814734167,1.,0.865824083693529,1., 2047P 1664
+0.865824083693519,1.,0.865824083693529,1.,136.882006921691, 2047P 1665
+-118.69865621105,8.73624999999999,136.8810299142, 2047P 1666
+-119.507771971375,8.73624999999999,137.581582336708, 2047P 1667
+-119.912612151531,8.73624999999999,138.282134759216, 2047P 1668
+-120.317452331688,8.73624999999999,138.982687181724, 2047P 1669
+-119.912612151531,8.73624999999999,139.683239604231, 2047P 1670
+-119.507771971375,8.73624999999999,139.68226259674, 2047P 1671
+-118.69865621105,8.73624999999999,-6.28326580027831, 2047P 1672
+-3.13925814734167,0.,0.,0.; 2047P 1673
+126,6,2,0,0,0,0,-6.28326580027831,-6.28326580027831, 2049P 1674
+-6.28326580027831,-5.23526324929943,-5.23526324929943, 2049P 1675
+-4.18726069832055,-4.18726069832055,-3.13925814734167, 2049P 1676
+-3.13925814734167,-3.13925814734167,1.,0.865824083693529,1., 2049P 1677
+0.865824083693519,1.,0.865824083693529,1.,136.882006921691, 2049P 1678
+-118.69865621105,7.11812499999999,136.8810299142, 2049P 1679
+-119.507771971375,7.11812499999999,137.581582336708, 2049P 1680
+-119.912612151531,7.11812499999999,138.282134759216, 2049P 1681
+-120.317452331688,7.11812499999999,138.982687181724, 2049P 1682
+-119.912612151531,7.11812499999999,139.683239604231, 2049P 1683
+-119.507771971375,7.11812499999999,139.68226259674, 2049P 1684
+-118.69865621105,7.11812499999999,-6.28326580027831, 2049P 1685
+-3.13925814734167,0.,0.,0.; 2049P 1686
+126,6,2,0,0,0,0,-6.28328621059597,-6.28328621059597, 2051P 1687
+-6.28328621059597,-5.2350795389254,-5.2350795389254, 2051P 1688
+-4.18687286725483,-4.18687286725483,-3.13866619558426, 2051P 1689
+-3.13866619558426,-3.13866619558426,1.,0.865773013439842,1., 2051P 1690
+0.865773013439768,1.,0.865773013439842,1.,63.4808744198821, 2051P 1691
+-118.698656211056,8.73625,63.4820994522559,-117.889349843306, 2051P 1692
+8.73625,62.7814230367476,-117.484342610857,8.73625, 2051P 1693
+62.0807466212394,-117.079335378408,8.73625,61.3800702057312, 2051P 1694
+-117.484342610857,8.73625,60.679393790223,-117.889349843306, 2051P 1695
+8.73625,60.6806188225967,-118.698656211056,8.73625, 2051P 1696
+-6.28328621059597,-3.13866619558426,0.,0.,0.; 2051P 1697
+126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1., 2053P 1698
+60.6806188225967,-118.698656211056,8.73625,60.6806188225967, 2053P 1699
+-118.698656211056,7.118125,0.,0.1618125,0.,0.,0.; 2053P 1700
+126,6,2,0,0,0,0,-6.28328621059597,-6.28328621059597, 2055P 1701
+-6.28328621059597,-5.2350795389254,-5.2350795389254, 2055P 1702
+-4.18687286725483,-4.18687286725483,-3.13866619558426, 2055P 1703
+-3.13866619558426,-3.13866619558426,1.,0.865773013439842,1., 2055P 1704
+0.865773013439768,1.,0.865773013439842,1.,63.4808744198821, 2055P 1705
+-118.698656211056,7.118125,63.4820994522559,-117.889349843306, 2055P 1706
+7.118125,62.7814230367476,-117.484342610857,7.118125, 2055P 1707
+62.0807466212394,-117.079335378408,7.118125,61.3800702057312, 2055P 1708
+-117.484342610857,7.118125,60.679393790223,-117.889349843306, 2055P 1709
+7.118125,60.6806188225967,-118.698656211056,7.118125, 2055P 1710
+-6.28328621059597,-3.13866619558426,0.,0.,0.; 2055P 1711
+126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1., 2057P 1712
+63.4808744198821,-118.698656211056,8.73625,63.4808744198821, 2057P 1713
+-118.698656211056,7.118125,0.,0.1618125,0.,0.,0.; 2057P 1714
+126,6,2,0,0,0,0,-6.28328621058691,-6.28328621058691, 2059P 1715
+-6.28328621058691,-5.23507953892236,-5.23507953892236, 2059P 1716
+-4.18687286725781,-4.18687286725781,-3.13866619559326, 2059P 1717
+-3.13866619559326,-3.13866619559326,1.,0.865773013441318,1., 2059P 1718
+0.865773013441294,1.,0.865773013441318,1.,60.6806188225967, 2059P 1719
+-118.698656211056,8.73625,60.6793937902303,-119.507962578801, 2059P 1720
+8.73625,61.3800702057349,-119.912969811245,8.73625, 2059P 1721
+62.0807466212394,-120.317977043689,8.73625,62.781423036744, 2059P 1722
+-119.912969811245,8.73625,63.4820994522485,-119.507962578801, 2059P 1723
+8.73625,63.4808744198821,-118.698656211056,8.73625, 2059P 1724
+-6.28328621058691,-3.13866619559326,0.,0.,0.; 2059P 1725
+126,6,2,0,0,0,0,-6.28328621058691,-6.28328621058691, 2061P 1726
+-6.28328621058691,-5.23507953892236,-5.23507953892236, 2061P 1727
+-4.18687286725781,-4.18687286725781,-3.13866619559326, 2061P 1728
+-3.13866619559326,-3.13866619559326,1.,0.865773013441318,1., 2061P 1729
+0.865773013441294,1.,0.865773013441318,1.,60.6806188225967, 2061P 1730
+-118.698656211056,7.118125,60.6793937902303,-119.507962578801, 2061P 1731
+7.118125,61.3800702057349,-119.912969811245,7.118125, 2061P 1732
+62.0807466212394,-120.317977043689,7.118125,62.781423036744, 2061P 1733
+-119.912969811245,7.118125,63.4820994522485,-119.507962578801, 2061P 1734
+7.118125,63.4808744198821,-118.698656211056,7.118125, 2061P 1735
+-6.28328621058691,-3.13866619559326,0.,0.,0.; 2061P 1736
+126,6,2,0,0,0,0,-6.28326580028397,-6.28326580028397, 2063P 1737
+-6.28326580028397,-5.23526324930132,-5.23526324930132, 2063P 1738
+-4.18726069831867,-4.18726069831867,-3.13925814733601, 2063P 1739
+-3.13925814733601,-3.13925814733601,1.,0.865824083692607,1., 2063P 1740
+0.865824083692642,1.,0.865824083692673,1.,60.9078068409501, 2063P 1741
+-62.1212017504367,8.73625,60.9087838484459,-61.3120859901078, 2063P 1742
+8.73625,60.2082314259358,-60.9072458099485,8.73625, 2063P 1743
+59.5076790034257,-60.5024056297891,8.73625,58.8071265809156, 2063P 1744
+-60.9072458099485,8.73625,58.1065741584055,-61.3120859901078, 2063P 1745
+8.73625,58.1075511659012,-62.1212017504367,8.73625, 2063P 1746
+-6.28326580028397,-3.13925814733601,0.,0.,0.; 2063P 1747
+126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1., 2065P 1748
+58.1075511659012,-62.1212017504367,8.73625,58.1075511659012, 2065P 1749
+-62.1212017504367,7.118125,0.,0.1618125,0.,0.,0.; 2065P 1750
+126,6,2,0,0,0,0,-6.28326580028397,-6.28326580028397, 2067P 1751
+-6.28326580028397,-5.23526324930132,-5.23526324930132, 2067P 1752
+-4.18726069831867,-4.18726069831867,-3.13925814733601, 2067P 1753
+-3.13925814733601,-3.13925814733601,1.,0.865824083692607,1., 2067P 1754
+0.865824083692642,1.,0.865824083692673,1.,60.9078068409501, 2067P 1755
+-62.1212017504367,7.118125,60.9087838484459,-61.3120859901078, 2067P 1756
+7.118125,60.2082314259358,-60.9072458099485,7.118125, 2067P 1757
+59.5076790034257,-60.5024056297891,7.118125,58.8071265809156, 2067P 1758
+-60.9072458099485,7.118125,58.1065741584055,-61.3120859901078, 2067P 1759
+7.118125,58.1075511659012,-62.1212017504367,7.118125, 2067P 1760
+-6.28326580028397,-3.13925814733601,0.,0.,0.; 2067P 1761
+126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1., 2069P 1762
+60.9078068409501,-62.1212017504367,8.73625,60.9078068409501, 2069P 1763
+-62.1212017504367,7.118125,0.,0.1618125,0.,0.,0.; 2069P 1764
+126,6,2,0,0,0,0,-6.2832658002726,-6.2832658002726, 2071P 1765
+-6.2832658002726,-5.23526324929753,-5.23526324929753, 2071P 1766
+-4.18726069832246,-4.18726069832246,-3.13925814734738, 2071P 1767
+-3.13925814734738,-3.13925814734738,1.,0.86582408369451,1., 2071P 1768
+0.865824083694544,1.,0.86582408369451,1.,58.1075511659012, 2071P 1769
+-62.1212017504367,8.73625,58.1065741584147,-62.9303175107585, 2071P 1770
+8.73625,58.8071265809202,-63.3351576909116,8.73625, 2071P 1771
+59.5076790034257,-63.7399978710648,8.73625,60.2082314259312, 2071P 1772
+-63.3351576909116,8.73625,60.9087838484367,-62.9303175107585, 2071P 1773
+8.73625,60.9078068409501,-62.1212017504367,8.73625, 2071P 1774
+-6.2832658002726,-3.13925814734738,0.,0.,0.; 2071P 1775
+126,6,2,0,0,0,0,-6.2832658002726,-6.2832658002726, 2073P 1776
+-6.2832658002726,-5.23526324929753,-5.23526324929753, 2073P 1777
+-4.18726069832246,-4.18726069832246,-3.13925814734738, 2073P 1778
+-3.13925814734738,-3.13925814734738,1.,0.86582408369451,1., 2073P 1779
+0.865824083694544,1.,0.86582408369451,1.,58.1075511659012, 2073P 1780
+-62.1212017504367,7.118125,58.1065741584147,-62.9303175107585, 2073P 1781
+7.118125,58.8071265809202,-63.3351576909116,7.118125, 2073P 1782
+59.5076790034257,-63.7399978710648,7.118125,60.2082314259312, 2073P 1783
+-63.3351576909116,7.118125,60.9087838484367,-62.9303175107585, 2073P 1784
+7.118125,60.9078068409501,-62.1212017504367,7.118125, 2073P 1785
+-6.2832658002726,-3.13925814734738,0.,0.,0.; 2073P 1786
+126,1,1,0,0,1,0,0.,0.,1.29791011810403,1.29791011810403,1.,1., 2075P 1787
+140.806868895161,-121.223895544679,8.73624999999999, 2075P 1788
+154.808074294198,-121.223878124069,8.73624999999999,0., 2075P 1789
+1.29791011810403,0.,0.,0.; 2075P 1790
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 2077P 1791
+-121.223895544679,8.73624999999999,140.806868895161, 2077P 1792
+-121.223895544679,7.11812499999999,0.,0.15,0.,0.,0.; 2077P 1793
+126,1,1,0,0,1,0,-1.29791011810403,-1.29791011810403,0.,0.,1.,1., 2079P 1794
+154.808074294198,-121.223878124069,7.11812499999999, 2079P 1795
+140.806868895161,-121.223895544679,7.11812499999999, 2079P 1796
+-1.29791011810403,0.,0.,0.,0.; 2079P 1797
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2081P 1798
+-121.223878124069,8.73624999999999,154.808074294198, 2081P 1799
+-121.223878124069,7.11812499999999,0.,0.15,0.,0.,0.; 2081P 1800
+126,1,1,0,0,1,0,0.,0.,0.0554439671834324,0.0554439671834324,1., 2083P 1801
+1.,154.808074294198,-121.223878124069,8.73624999999999, 2083P 1802
+154.808074294198,-121.821979920061,8.73624999999999,0., 2083P 1803
+0.0554439671834324,0.,0.,0.; 2083P 1804
+126,1,1,0,0,1,0,-0.0554439671834324,-0.0554439671834324,0.,0., 2085P 1805
+1.,1.,154.808074294198,-121.821979920061,7.11812499999999, 2085P 1806
+154.808074294198,-121.223878124069,7.11812499999999, 2085P 1807
+-0.0554439671834324,0.,0.,0.,0.; 2085P 1808
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2087P 1809
+-121.821979920061,8.73624999999999,154.808074294198, 2087P 1810
+-121.821979920061,7.11812499999999,0.,0.15,0.,0.,0.; 2087P 1811
+126,1,1,0,0,1,0,0.,0.,0.0740926997042853,0.0740926997042853,1., 2089P 1812
+1.,154.808074294198,-121.821979920061,8.73624999999999, 2089P 1813
+155.607349292068,-121.82199734067,8.73624999999999,0., 2089P 1814
+0.0740926997042853,0.,0.,0.; 2089P 1815
+126,1,1,0,0,1,0,-0.0740926997042853,-0.0740926997042853,0.,0., 2091P 1816
+1.,1.,155.607349292068,-121.82199734067,7.11812499999999, 2091P 1817
+154.808074294198,-121.821979920061,7.11812499999999, 2091P 1818
+-0.0740926997042853,0.,0.,0.,0.; 2091P 1819
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 2093P 1820
+-121.82199734067,8.73624999999999,155.607349292068, 2093P 1821
+-121.82199734067,7.11812499999999,0.,0.15,0.,0.,0.; 2093P 1822
+126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2095P 1823
+155.607349292068,-121.82199734067,8.73624999999999, 2095P 1824
+155.607349292068,-134.624194429548,8.73624999999999,0., 2095P 1825
+1.1867621866862,0.,0.,0.; 2095P 1826
+126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2097P 1827
+155.607349292068,-134.624194429548,7.11812499999999, 2097P 1828
+155.607349292068,-121.82199734067,7.11812499999999, 2097P 1829
+-1.1867621866862,0.,0.,0.,0.; 2097P 1830
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 2099P 1831
+-134.624194429548,8.73624999999999,155.607349292068, 2099P 1832
+-134.624194429548,7.11812499999999,0.,0.15,0.,0.,0.; 2099P 1833
+126,1,1,0,0,1,0,0.,0.,0.0740926997042853,0.0740926997042853,1., 2101P 1834
+1.,155.607349292068,-134.624194429548,8.73624999999999, 2101P 1835
+154.808074294198,-134.624177008938,8.73624999999999,0., 2101P 1836
+0.0740926997042853,0.,0.,0.; 2101P 1837
+126,1,1,0,0,1,0,-0.0740926997042853,-0.0740926997042853,0.,0., 2103P 1838
+1.,1.,154.808074294198,-134.624177008938,7.11812499999999, 2103P 1839
+155.607349292068,-134.624194429548,7.11812499999999, 2103P 1840
+-0.0740926997042853,0.,0.,0.,0.; 2103P 1841
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2105P 1842
+-134.624177008938,8.73624999999999,154.808074294198, 2105P 1843
+-134.624177008938,7.11812499999999,0.,0.15,0.,0.,0.; 2105P 1844
+126,1,1,0,0,1,0,0.,0.,0.055571543375649,0.055571543375649,1.,1., 2107P 1845
+154.808074294198,-134.624177008938,8.73624999999999, 2107P 1846
+154.808074294198,-135.223655033103,8.73624999999999,0., 2107P 1847
+0.055571543375649,0.,0.,0.; 2107P 1848
+126,1,1,0,0,1,0,-0.055571543375649,-0.055571543375649,0.,0.,1., 2109P 1849
+1.,154.808074294198,-135.223655033103,7.11812499999999, 2109P 1850
+154.808074294198,-134.624177008938,7.11812499999999, 2109P 1851
+-0.055571543375649,0.,0.,0.,0.; 2109P 1852
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2111P 1853
+-135.223655033103,8.73624999999999,154.808074294198, 2111P 1854
+-135.223655033103,7.11812499999999,0.,0.15,0.,0.,0.; 2111P 1855
+126,1,1,0,0,1,0,0.,0.,1.2979097143809,1.2979097143809,1.,1., 2113P 1856
+154.808074294198,-135.223655033103,8.73624999999999, 2113P 1857
+140.806873250314,-135.223655033103,8.73624999999999,0., 2113P 1858
+1.2979097143809,0.,0.,0.; 2113P 1859
+126,1,1,0,0,1,0,-1.2979097143809,-1.2979097143809,0.,0.,1.,1., 2115P 1860
+140.806873250314,-135.223655033103,7.11812499999999, 2115P 1861
+154.808074294198,-135.223655033103,7.11812499999999, 2115P 1862
+-1.2979097143809,0.,0.,0.,0.; 2115P 1863
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 2117P 1864
+-135.223655033103,8.73624999999999,140.806873250314, 2117P 1865
+-135.223655033103,7.11812499999999,0.,0.15,0.,0.,0.; 2117P 1866
+126,1,1,0,0,1,0,0.,0.,0.055571543377119,0.055571543377119,1.,1., 2119P 1867
+140.806873250314,-135.223655033103,8.73624999999999, 2119P 1868
+140.806868895161,-134.624177008938,8.73624999999999,0., 2119P 1869
+0.055571543377119,0.,0.,0.; 2119P 1870
+126,1,1,0,0,1,0,-0.055571543377119,-0.055571543377119,0.,0.,1., 2121P 1871
+1.,140.806868895161,-134.624177008938,7.11812499999999, 2121P 1872
+140.806873250314,-135.223655033103,7.11812499999999, 2121P 1873
+-0.055571543377119,0.,0.,0.,0.; 2121P 1874
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 2123P 1875
+-134.624177008938,8.73624999999999,140.806868895161, 2123P 1876
+-134.624177008938,7.11812499999999,0.,0.15,0.,0.,0.; 2123P 1877
+126,1,1,0,0,1,0,0.,0.,0.0740874512990315,0.0740874512990315,1., 2125P 1878
+1.,140.806868895161,-134.624177008938,8.73624999999999, 2125P 1879
+140.007650514273,-134.624177008938,8.73624999999999,0., 2125P 1880
+0.0740874512990315,0.,0.,0.; 2125P 1881
+126,1,1,0,0,1,0,-0.0740874512990315,-0.0740874512990315,0.,0., 2127P 1882
+1.,1.,140.007650514273,-134.624177008938,7.11812499999999, 2127P 1883
+140.806868895161,-134.624177008938,7.11812499999999, 2127P 1884
+-0.0740874512990315,0.,0.,0.,0.; 2127P 1885
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007650514273, 2129P 1886
+-134.624177008938,8.73624999999999,140.007650514273, 2129P 1887
+-134.624177008938,7.11812499999999,0.,0.15,0.,0.,0.; 2129P 1888
+126,1,1,0,0,1,0,0.,0.,1.18676218668627,1.18676218668627,1.,1., 2131P 1889
+140.007650514273,-134.624177008938,8.73624999999999, 2131P 1890
+140.007654869426,-121.821979920061,8.73624999999999,0., 2131P 1891
+1.18676218668627,0.,0.,0.; 2131P 1892
+126,1,1,0,0,1,0,-1.18676218668627,-1.18676218668627,0.,0.,1.,1., 2133P 1893
+140.007654869426,-121.821979920061,7.11812499999999, 2133P 1894
+140.007650514273,-134.624177008938,7.11812499999999, 2133P 1895
+-1.18676218668627,0.,0.,0.,0.; 2133P 1896
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007654869426, 2135P 1897
+-121.821979920061,8.73624999999999,140.007654869426, 2135P 1898
+-121.821979920061,7.11812499999999,0.,0.15,0.,0.,0.; 2135P 1899
+126,1,1,0,0,1,0,0.,0.,0.0740874513166314,0.0740874513166314,1., 2137P 1900
+1.,140.007654869426,-121.821979920061,8.73624999999999, 2137P 1901
+140.806873250314,-121.82199734067,8.73624999999999,0., 2137P 1902
+0.0740874513166314,0.,0.,0.; 2137P 1903
+126,1,1,0,0,1,0,-0.0740874513166314,-0.0740874513166314,0.,0., 2139P 1904
+1.,1.,140.806873250314,-121.82199734067,7.11812499999999, 2139P 1905
+140.007654869426,-121.821979920061,7.11812499999999, 2139P 1906
+-0.0740874513166314,0.,0.,0.,0.; 2139P 1907
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 2141P 1908
+-121.82199734067,8.73624999999999,140.806873250314, 2141P 1909
+-121.82199734067,7.11812499999999,0.,0.15,0.,0.,0.; 2141P 1910
+126,1,1,0,0,1,0,0.,0.,0.0554439671848987,0.0554439671848987,1., 2143P 1911
+1.,140.806873250314,-121.82199734067,8.73624999999999, 2143P 1912
+140.806868895161,-121.223895544679,8.73624999999999,0., 2143P 1913
+0.0554439671848987,0.,0.,0.; 2143P 1914
+126,1,1,0,0,1,0,-0.0554439671848987,-0.0554439671848987,0.,0., 2145P 1915
+1.,1.,140.806868895161,-121.223895544679,7.11812499999999, 2145P 1916
+140.806873250314,-121.82199734067,7.11812499999999, 2145P 1917
+-0.0554439671848987,0.,0.,0.,0.; 2145P 1918
+126,1,1,0,0,1,0,0.,0.,1.29788872083129,1.29788872083129,1.,1., 2147P 1919
+121.756696066765,-121.223895544679,8.73624999999999, 2147P 1920
+135.757670642722,-121.223878124069,8.73624999999999,0., 2147P 1921
+1.29788872083129,0.,0.,0.; 2147P 1922
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2149P 1923
+-121.223895544679,8.73624999999999,121.756696066765, 2149P 1924
+-121.223895544679,7.11812499999999,0.,0.15,0.,0.,0.; 2149P 1925
+126,1,1,0,0,1,0,-1.29788872083129,-1.29788872083129,0.,0.,1.,1., 2151P 1926
+135.757670642722,-121.223878124069,7.11812499999999, 2151P 1927
+121.756696066765,-121.223895544679,7.118125,-1.29788872083129, 2151P 1928
+0.,0.,0.,0.; 2151P 1929
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2153P 1930
+-121.223878124069,8.73624999999999,135.757670642722, 2153P 1931
+-121.223878124069,7.11812499999999,0.,0.15,0.,0.,0.; 2153P 1932
+126,1,1,0,0,1,0,0.,0.,0.0554439671834324,0.0554439671834324,1., 2155P 1933
+1.,135.757670642722,-121.223878124069,8.73624999999999, 2155P 1934
+135.757670642722,-121.821979920061,8.73624999999999,0., 2155P 1935
+0.0554439671834324,0.,0.,0.; 2155P 1936
+126,1,1,0,0,1,0,-0.0554439671834324,-0.0554439671834324,0.,0., 2157P 1937
+1.,1.,135.757670642722,-121.821979920061,7.11812499999999, 2157P 1938
+135.757670642722,-121.223878124069,7.11812499999999, 2157P 1939
+-0.0554439671834324,0.,0.,0.,0.; 2157P 1940
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2159P 1941
+-121.821979920061,8.73624999999999,135.757670642722, 2159P 1942
+-121.821979920061,7.11812499999999,0.,0.15,0.,0.,0.; 2159P 1943
+126,1,1,0,0,1,0,0.,0.,0.0740967369255563,0.0740967369255563,1., 2161P 1944
+1.,135.757670642722,-121.821979920061,8.73624999999999, 2161P 1945
+136.556989192117,-121.82199734067,8.73624999999999,0., 2161P 1946
+0.0740967369255563,0.,0.,0.; 2161P 1947
+126,1,1,0,0,1,0,-0.0740967369255563,-0.0740967369255563,0.,0., 2163P 1948
+1.,1.,136.556989192117,-121.82199734067,7.11812499999999, 2163P 1949
+135.757670642722,-121.821979920061,7.11812499999999, 2163P 1950
+-0.0740967369255563,0.,0.,0.,0.; 2163P 1951
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 2165P 1952
+-121.82199734067,8.73624999999999,136.556989192117, 2165P 1953
+-121.82199734067,7.11812499999999,0.,0.15,0.,0.,0.; 2165P 1954
+126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2167P 1955
+136.556989192117,-121.82199734067,8.73624999999999, 2167P 1956
+136.556989192117,-134.624194429548,8.73624999999999,0., 2167P 1957
+1.1867621866862,0.,0.,0.; 2167P 1958
+126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2169P 1959
+136.556989192117,-134.624194429548,7.11812499999999, 2169P 1960
+136.556989192117,-121.82199734067,7.11812499999999, 2169P 1961
+-1.1867621866862,0.,0.,0.,0.; 2169P 1962
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 2171P 1963
+-134.624194429548,8.73624999999999,136.556989192117, 2171P 1964
+-134.624194429548,7.11812499999999,0.,0.15,0.,0.,0.; 2171P 1965
+126,1,1,0,0,1,0,0.,0.,0.0740967369255563,0.0740967369255563,1., 2173P 1966
+1.,136.556989192117,-134.624194429548,8.73624999999999, 2173P 1967
+135.757670642722,-134.624177008938,8.73624999999999,0., 2173P 1968
+0.0740967369255563,0.,0.,0.; 2173P 1969
+126,1,1,0,0,1,0,-0.0740967369255563,-0.0740967369255563,0.,0., 2175P 1970
+1.,1.,135.757670642722,-134.624177008938,7.11812499999999, 2175P 1971
+136.556989192117,-134.624194429548,7.11812499999999, 2175P 1972
+-0.0740967369255563,0.,0.,0.,0.; 2175P 1973
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2177P 1974
+-134.624177008938,8.73624999999999,135.757670642722, 2177P 1975
+-134.624177008938,7.11812499999999,0.,0.15,0.,0.,0.; 2177P 1976
+126,1,1,0,0,1,0,0.,0.,0.055571543375649,0.055571543375649,1.,1., 2179P 1977
+135.757670642722,-134.624177008938,8.73624999999999, 2179P 1978
+135.757670642722,-135.223655033103,8.73624999999999,0., 2179P 1979
+0.055571543375649,0.,0.,0.; 2179P 1980
+126,1,1,0,0,1,0,-0.055571543375649,-0.055571543375649,0.,0.,1., 2181P 1981
+1.,135.757670642722,-135.223655033103,7.11812499999999, 2181P 1982
+135.757670642722,-134.624177008938,7.11812499999999, 2181P 1983
+-0.055571543375649,0.,0.,0.,0.; 2181P 1984
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2183P 1985
+-135.223655033103,8.73624999999999,135.757670642722, 2183P 1986
+-135.223655033103,7.11812499999999,0.,0.15,0.,0.,0.; 2183P 1987
+126,1,1,0,0,1,0,0.,0.,1.29788872083028,1.29788872083028,1.,1., 2185P 1988
+135.757670642722,-135.223655033103,8.73624999999999, 2185P 1989
+121.756696066765,-135.223655033103,8.73624999999999,0., 2185P 1990
+1.29788872083028,0.,0.,0.; 2185P 1991
+126,1,1,0,0,1,0,-1.29788872083028,-1.29788872083028,0.,0.,1.,1., 2187P 1992
+121.756696066765,-135.223655033103,7.118125,135.757670642722, 2187P 1993
+-135.223655033103,7.11812499999999,-1.29788872083028,0.,0.,0., 2187P 1994
+0.; 2187P 1995
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2189P 1996
+-135.223655033103,8.73624999999999,121.756696066765, 2189P 1997
+-135.223655033103,7.11812499999999,0.,0.15,0.,0.,0.; 2189P 1998
+126,1,1,0,0,1,0,0.,0.,0.0555715433756525,0.0555715433756525,1., 2191P 1999
+1.,121.756696066765,-135.223655033103,8.73624999999999, 2191P 2000
+121.756696066765,-134.624177008938,8.73624999999999,0., 2191P 2001
+0.0555715433756525,0.,0.,0.; 2191P 2002
+126,1,1,0,0,1,0,-0.0555715433756525,-0.0555715433756525,0.,0., 2193P 2003
+1.,1.,121.756696066765,-134.624177008938,7.118125, 2193P 2004
+121.756696066765,-135.223655033103,7.118125,-0.0555715433756525, 2193P 2005
+0.,0.,0.,0.; 2193P 2006
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2195P 2007
+-134.624177008938,8.73624999999999,121.756696066765, 2195P 2008
+-134.624177008938,7.11812499999999,0.,0.15,0.,0.,0.; 2195P 2009
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2197P 2010
+1.,121.756696066765,-134.624177008938,8.73624999999999, 2197P 2011
+120.957281704017,-134.624177008938,8.73624999999999,0., 2197P 2012
+0.0741056187947589,0.,0.,0.; 2197P 2013
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2199P 2014
+1.,1.,120.957281704017,-134.624177008938,7.118125, 2199P 2015
+121.756696066765,-134.624177008938,7.118125,-0.0741056187947589, 2199P 2016
+0.,0.,0.,0.; 2199P 2017
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 2201P 2018
+-134.624177008938,8.73624999999999,120.957281704017, 2201P 2019
+-134.624177008938,7.11812499999999,0.,0.15,0.,0.,0.; 2201P 2020
+126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2203P 2021
+120.957281704017,-134.624177008938,8.73624999999999, 2203P 2022
+120.957281704017,-121.821979920061,8.73624999999999,0., 2203P 2023
+1.1867621866862,0.,0.,0.; 2203P 2024
+126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2205P 2025
+120.957281704017,-121.821979920061,7.118125,120.957281704017, 2205P 2026
+-134.624177008938,7.118125,-1.1867621866862,0.,0.,0.,0.; 2205P 2027
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 2207P 2028
+-121.821979920061,8.73624999999999,120.957281704017, 2207P 2029
+-121.821979920061,7.11812499999999,0.,0.15,0.,0.,0.; 2207P 2030
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2209P 2031
+1.,120.957281704017,-121.821979920061,8.73624999999999, 2209P 2032
+121.756696066765,-121.82199734067,8.73624999999999,0., 2209P 2033
+0.0741056188123544,0.,0.,0.; 2209P 2034
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2211P 2035
+1.,1.,121.756696066765,-121.82199734067,7.118125, 2211P 2036
+120.957281704017,-121.821979920061,7.118125,-0.0741056188123544, 2211P 2037
+0.,0.,0.,0.; 2211P 2038
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2213P 2039
+-121.82199734067,8.73624999999999,121.756696066765, 2213P 2040
+-121.82199734067,7.11812499999999,0.,0.15,0.,0.,0.; 2213P 2041
+126,1,1,0,0,1,0,0.,0.,0.0554439671834288,0.0554439671834288,1., 2215P 2042
+1.,121.756696066765,-121.82199734067,8.73624999999999, 2215P 2043
+121.756696066765,-121.223895544679,8.73624999999999,0., 2215P 2044
+0.0554439671834288,0.,0.,0.; 2215P 2045
+126,1,1,0,0,1,0,-0.0554439671834288,-0.0554439671834288,0.,0., 2217P 2046
+1.,1.,121.756696066765,-121.223895544679,7.118125, 2217P 2047
+121.756696066765,-121.82199734067,7.118125,-0.0554439671834288, 2217P 2048
+0.,0.,0.,0.; 2217P 2049
+126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 2219P 2050
+102.706327256509,-121.223895544679,8.73624999999999, 2219P 2051
+116.707297477313,-121.223878124069,8.73624999999999,0., 2219P 2052
+1.29788831710916,0.,0.,0.; 2219P 2053
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2221P 2054
+-121.223895544679,8.73624999999999,102.706327256509, 2221P 2055
+-121.223895544679,7.118125,0.,0.15,0.,0.,0.; 2221P 2056
+126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 2223P 2057
+116.707297477313,-121.223878124069,7.118125,102.706327256509, 2223P 2058
+-121.223895544679,7.118125,-1.29788831710916,0.,0.,0.,0.; 2223P 2059
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 2225P 2060
+-121.223878124069,8.73624999999999,116.707297477313, 2225P 2061
+-121.223878124069,7.11812499999999,0.,0.15,0.,0.,0.; 2225P 2062
+126,1,1,0,0,1,0,0.,0.,0.0554439671834324,0.0554439671834324,1., 2227P 2063
+1.,116.707297477313,-121.223878124069,8.73624999999999, 2227P 2064
+116.707297477313,-121.821979920061,8.73624999999999,0., 2227P 2065
+0.0554439671834324,0.,0.,0.; 2227P 2066
+126,1,1,0,0,1,0,-0.0554439671834324,-0.0554439671834324,0.,0., 2229P 2067
+1.,1.,116.707297477313,-121.821979920061,7.118125, 2229P 2068
+116.707297477313,-121.223878124069,7.118125,-0.0554439671834324, 2229P 2069
+0.,0.,0.,0.; 2229P 2070
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 2231P 2071
+-121.821979920061,8.73624999999999,116.707297477313, 2231P 2072
+-121.821979920061,7.11812499999999,0.,0.15,0.,0.,0.; 2231P 2073
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2233P 2074
+1.,116.707297477313,-121.821979920061,8.73624999999999, 2233P 2075
+117.506711840062,-121.82199734067,8.73624999999999,0., 2233P 2076
+0.0741056188123544,0.,0.,0.; 2233P 2077
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2235P 2078
+1.,1.,117.506711840062,-121.82199734067,7.118125, 2235P 2079
+116.707297477313,-121.821979920061,7.118125,-0.0741056188123544, 2235P 2080
+0.,0.,0.,0.; 2235P 2081
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506711840062, 2237P 2082
+-121.82199734067,8.73624999999999,117.506711840062, 2237P 2083
+-121.82199734067,7.11812499999999,0.,0.15,0.,0.,0.; 2237P 2084
+126,1,1,0,0,1,0,0.,0.,1.18676218668648,1.18676218668648,1.,1., 2239P 2085
+117.506711840062,-121.82199734067,8.73624999999999, 2239P 2086
+117.506720550367,-134.624194429548,8.73624999999999,0., 2239P 2087
+1.18676218668648,0.,0.,0.; 2239P 2088
+126,1,1,0,0,1,0,-1.18676218668648,-1.18676218668648,0.,0.,1.,1., 2241P 2089
+117.506720550367,-134.624194429548,7.118125,117.506711840062, 2241P 2090
+-121.82199734067,7.118125,-1.18676218668648,0.,0.,0.,0.; 2241P 2091
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506720550367, 2243P 2092
+-134.624194429548,8.73624999999999,117.506720550367, 2243P 2093
+-134.624194429548,7.11812499999999,0.,0.15,0.,0.,0.; 2243P 2094
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2245P 2095
+1.,117.506720550367,-134.624194429548,8.73624999999999, 2245P 2096
+116.707306187618,-134.624177008938,8.73624999999999,0., 2245P 2097
+0.0741056188123544,0.,0.,0.; 2245P 2098
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2247P 2099
+1.,1.,116.707306187618,-134.624177008938,7.118125, 2247P 2100
+117.506720550367,-134.624194429548,7.118125,-0.0741056188123544, 2247P 2101
+0.,0.,0.,0.; 2247P 2102
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707306187618, 2249P 2103
+-134.624177008938,8.73624999999999,116.707306187618, 2249P 2104
+-134.624177008938,7.11812499999999,0.,0.15,0.,0.,0.; 2249P 2105
+126,1,1,0,0,1,0,0.,0.,0.055571543381515,0.055571543381515,1.,1., 2251P 2106
+116.707306187618,-134.624177008938,8.73624999999999, 2251P 2107
+116.707297477313,-135.223655033103,8.73624999999999,0., 2251P 2108
+0.055571543381515,0.,0.,0.; 2251P 2109
+126,1,1,0,0,1,0,-0.055571543381515,-0.055571543381515,0.,0.,1., 2253P 2110
+1.,116.707297477313,-135.223655033103,7.118125,116.707306187618, 2253P 2111
+-134.624177008938,7.118125,-0.055571543381515,0.,0.,0.,0.; 2253P 2112
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 2255P 2113
+-135.223655033103,8.73624999999999,116.707297477313, 2255P 2114
+-135.223655033103,7.11812499999999,0.,0.15,0.,0.,0.; 2255P 2115
+126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 2257P 2116
+116.707297477313,-135.223655033103,8.73624999999999, 2257P 2117
+102.706327256509,-135.223655033103,8.73624999999999,0., 2257P 2118
+1.29788831710816,0.,0.,0.; 2257P 2119
+126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 2259P 2120
+102.706327256509,-135.223655033103,7.118125,116.707297477313, 2259P 2121
+-135.223655033103,7.118125,-1.29788831710816,0.,0.,0.,0.; 2259P 2122
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2261P 2123
+-135.223655033103,8.73624999999999,102.706327256509, 2261P 2124
+-135.223655033103,7.118125,0.,0.15,0.,0.,0.; 2261P 2125
+126,1,1,0,0,1,0,0.,0.,0.0555715433756525,0.0555715433756525,1., 2263P 2126
+1.,102.706327256509,-135.223655033103,8.73624999999999, 2263P 2127
+102.706327256509,-134.624177008938,8.73624999999999,0., 2263P 2128
+0.0555715433756525,0.,0.,0.; 2263P 2129
+126,1,1,0,0,1,0,-0.0555715433756525,-0.0555715433756525,0.,0., 2265P 2130
+1.,1.,102.706327256509,-134.624177008938,7.118125, 2265P 2131
+102.706327256509,-135.223655033103,7.118125,-0.0555715433756525, 2265P 2132
+0.,0.,0.,0.; 2265P 2133
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2267P 2134
+-134.624177008938,8.73624999999999,102.706327256509, 2267P 2135
+-134.624177008938,7.118125,0.,0.15,0.,0.,0.; 2267P 2136
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2269P 2137
+1.,102.706327256509,-134.624177008938,8.73624999999999, 2269P 2138
+101.90691289376,-134.624177008938,8.73624999999999,0., 2269P 2139
+0.0741056187947589,0.,0.,0.; 2269P 2140
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2271P 2141
+1.,1.,101.90691289376,-134.624177008938,7.118125, 2271P 2142
+102.706327256509,-134.624177008938,7.118125,-0.0741056187947589, 2271P 2143
+0.,0.,0.,0.; 2271P 2144
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 2273P 2145
+-134.624177008938,8.73624999999999,101.90691289376, 2273P 2146
+-134.624177008938,7.118125,0.,0.15,0.,0.,0.; 2273P 2147
+126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2275P 2148
+101.90691289376,-134.624177008938,8.73624999999999, 2275P 2149
+101.90691289376,-121.821979920061,8.73624999999999,0., 2275P 2150
+1.1867621866862,0.,0.,0.; 2275P 2151
+126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2277P 2152
+101.90691289376,-121.821979920061,7.118125,101.90691289376, 2277P 2153
+-134.624177008938,7.118125,-1.1867621866862,0.,0.,0.,0.; 2277P 2154
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 2279P 2155
+-121.821979920061,8.73624999999999,101.90691289376, 2279P 2156
+-121.821979920061,7.118125,0.,0.15,0.,0.,0.; 2279P 2157
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2281P 2158
+1.,101.90691289376,-121.821979920061,8.73624999999999, 2281P 2159
+102.706327256509,-121.82199734067,8.73624999999999,0., 2281P 2160
+0.0741056188123544,0.,0.,0.; 2281P 2161
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2283P 2162
+1.,1.,102.706327256509,-121.82199734067,7.118125, 2283P 2163
+101.90691289376,-121.821979920061,7.118125,-0.0741056188123544, 2283P 2164
+0.,0.,0.,0.; 2283P 2165
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2285P 2166
+-121.82199734067,8.73624999999999,102.706327256509, 2285P 2167
+-121.82199734067,7.118125,0.,0.15,0.,0.,0.; 2285P 2168
+126,1,1,0,0,1,0,0.,0.,0.0554439671834288,0.0554439671834288,1., 2287P 2169
+1.,102.706327256509,-121.82199734067,8.73624999999999, 2287P 2170
+102.706327256509,-121.223895544679,8.73624999999999,0., 2287P 2171
+0.0554439671834288,0.,0.,0.; 2287P 2172
+126,1,1,0,0,1,0,-0.0554439671834288,-0.0554439671834288,0.,0., 2289P 2173
+1.,1.,102.706327256509,-121.223895544679,7.118125, 2289P 2174
+102.706327256509,-121.82199734067,7.118125,-0.0554439671834288, 2289P 2175
+0.,0.,0.,0.; 2289P 2176
+126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 2291P 2177
+83.6559584462526,-121.223895544679,8.73625,97.6569286670568, 2291P 2178
+-121.223878124069,8.73624999999999,0.,1.29788831710916,0.,0.,0.; 2291P 2179
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 2293P 2180
+-121.223895544679,8.73625,83.6559584462526,-121.223895544679, 2293P 2181
+7.118125,0.,0.15,0.,0.,0.; 2293P 2182
+126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 2295P 2183
+97.6569286670568,-121.223878124069,7.118125,83.6559584462526, 2295P 2184
+-121.223895544679,7.118125,-1.29788831710916,0.,0.,0.,0.; 2295P 2185
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2297P 2186
+-121.223878124069,8.73624999999999,97.6569286670568, 2297P 2187
+-121.223878124069,7.118125,0.,0.15,0.,0.,0.; 2297P 2188
+126,1,1,0,0,1,0,0.,0.,0.0554439671834324,0.0554439671834324,1., 2299P 2189
+1.,97.6569286670568,-121.223878124069,8.73624999999999, 2299P 2190
+97.6569286670568,-121.821979920061,8.73624999999999,0., 2299P 2191
+0.0554439671834324,0.,0.,0.; 2299P 2192
+126,1,1,0,0,1,0,-0.0554439671834324,-0.0554439671834324,0.,0., 2301P 2193
+1.,1.,97.6569286670568,-121.821979920061,7.118125, 2301P 2194
+97.6569286670568,-121.223878124069,7.118125,-0.0554439671834324, 2301P 2195
+0.,0.,0.,0.; 2301P 2196
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2303P 2197
+-121.821979920061,8.73624999999999,97.6569286670568, 2303P 2198
+-121.821979920061,7.118125,0.,0.15,0.,0.,0.; 2303P 2199
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2305P 2200
+1.,97.6569286670568,-121.821979920061,8.73624999999999, 2305P 2201
+98.4563430298053,-121.82199734067,8.73624999999999,0., 2305P 2202
+0.0741056188123544,0.,0.,0.; 2305P 2203
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2307P 2204
+1.,1.,98.4563430298053,-121.82199734067,7.118125, 2307P 2205
+97.6569286670568,-121.821979920061,7.118125,-0.0741056188123544, 2307P 2206
+0.,0.,0.,0.; 2307P 2207
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 2309P 2208
+-121.82199734067,8.73624999999999,98.4563430298053, 2309P 2209
+-121.82199734067,7.118125,0.,0.15,0.,0.,0.; 2309P 2210
+126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2311P 2211
+98.4563430298053,-121.82199734067,8.73624999999999, 2311P 2212
+98.4563430298053,-134.624194429548,8.73624999999999,0., 2311P 2213
+1.1867621866862,0.,0.,0.; 2311P 2214
+126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2313P 2215
+98.4563430298053,-134.624194429548,7.118125,98.4563430298053, 2313P 2216
+-121.82199734067,7.118125,-1.1867621866862,0.,0.,0.,0.; 2313P 2217
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 2315P 2218
+-134.624194429548,8.73624999999999,98.4563430298053, 2315P 2219
+-134.624194429548,7.118125,0.,0.15,0.,0.,0.; 2315P 2220
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2317P 2221
+1.,98.4563430298053,-134.624194429548,8.73624999999999, 2317P 2222
+97.6569286670568,-134.624177008938,8.73624999999999,0., 2317P 2223
+0.0741056188123544,0.,0.,0.; 2317P 2224
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2319P 2225
+1.,1.,97.6569286670568,-134.624177008938,7.118125, 2319P 2226
+98.4563430298053,-134.624194429548,7.118125,-0.0741056188123544, 2319P 2227
+0.,0.,0.,0.; 2319P 2228
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2321P 2229
+-134.624177008938,8.73624999999999,97.6569286670568, 2321P 2230
+-134.624177008938,7.118125,0.,0.15,0.,0.,0.; 2321P 2231
+126,1,1,0,0,1,0,0.,0.,0.055571543375649,0.055571543375649,1.,1., 2323P 2232
+97.6569286670568,-134.624177008938,8.73624999999999, 2323P 2233
+97.6569286670568,-135.223655033103,8.73624999999999,0., 2323P 2234
+0.055571543375649,0.,0.,0.; 2323P 2235
+126,1,1,0,0,1,0,-0.055571543375649,-0.055571543375649,0.,0.,1., 2325P 2236
+1.,97.6569286670568,-135.223655033103,7.118125,97.6569286670568, 2325P 2237
+-134.624177008938,7.118125,-0.055571543375649,0.,0.,0.,0.; 2325P 2238
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2327P 2239
+-135.223655033103,8.73624999999999,97.6569286670568, 2327P 2240
+-135.223655033103,7.118125,0.,0.15,0.,0.,0.; 2327P 2241
+126,1,1,0,0,1,0,0.,0.,1.29788912455241,1.29788912455241,1.,1., 2329P 2242
+97.6569286670568,-135.223655033103,8.73624999999999, 2329P 2243
+83.6559497359477,-135.223655033103,8.73625,0.,1.29788912455241, 2329P 2244
+0.,0.,0.; 2329P 2245
+126,1,1,0,0,1,0,-1.29788912455241,-1.29788912455241,0.,0.,1.,1., 2331P 2246
+83.6559497359477,-135.223655033103,7.118125,97.6569286670568, 2331P 2247
+-135.223655033103,7.118125,-1.29788912455241,0.,0.,0.,0.; 2331P 2248
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559497359477, 2333P 2249
+-135.223655033103,8.73625,83.6559497359477,-135.223655033103, 2333P 2250
+7.118125,0.,0.15,0.,0.,0.; 2333P 2251
+126,1,1,0,0,1,0,0.,0.,0.0555715433815185,0.0555715433815185,1., 2335P 2252
+1.,83.6559497359477,-135.223655033103,8.73625,83.6559584462526, 2335P 2253
+-134.624177008938,8.73625,0.,0.0555715433815185,0.,0.,0.; 2335P 2254
+126,1,1,0,0,1,0,-0.0555715433815185,-0.0555715433815185,0.,0., 2337P 2255
+1.,1.,83.6559584462526,-134.624177008938,7.118125, 2337P 2256
+83.6559497359477,-135.223655033103,7.118125,-0.0555715433815185, 2337P 2257
+0.,0.,0.,0.; 2337P 2258
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 2339P 2259
+-134.624177008938,8.73625,83.6559584462526,-134.624177008938, 2339P 2260
+7.118125,0.,0.15,0.,0.,0.; 2339P 2261
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2341P 2262
+1.,83.6559584462526,-134.624177008938,8.73625,82.8565440835041, 2341P 2263
+-134.624177008938,8.73625,0.,0.0741056187947589,0.,0.,0.; 2341P 2264
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2343P 2265
+1.,1.,82.8565440835041,-134.624177008938,7.118125, 2343P 2266
+83.6559584462526,-134.624177008938,7.118125,-0.0741056187947589, 2343P 2267
+0.,0.,0.,0.; 2343P 2268
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 2345P 2269
+-134.624177008938,8.73625,82.8565440835042,-134.624177008938, 2345P 2270
+7.118125,0.,0.15,0.,0.,0.; 2345P 2271
+126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2347P 2272
+82.8565440835042,-134.624177008938,8.73625,82.8565440835042, 2347P 2273
+-121.821979920061,8.73625,0.,1.1867621866862,0.,0.,0.; 2347P 2274
+126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2349P 2275
+82.8565440835042,-121.821979920061,7.118125,82.8565440835042, 2349P 2276
+-134.624177008938,7.118125,-1.1867621866862,0.,0.,0.,0.; 2349P 2277
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 2351P 2278
+-121.821979920061,8.73625,82.8565440835042,-121.821979920061, 2351P 2279
+7.118125,0.,0.15,0.,0.,0.; 2351P 2280
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2353P 2281
+1.,82.8565440835042,-121.821979920061,8.73625,83.6559584462526, 2353P 2282
+-121.82199734067,8.73625,0.,0.0741056188123544,0.,0.,0.; 2353P 2283
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2355P 2284
+1.,1.,83.6559584462526,-121.82199734067,7.118125, 2355P 2285
+82.8565440835042,-121.821979920061,7.118125,-0.0741056188123544, 2355P 2286
+0.,0.,0.,0.; 2355P 2287
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 2357P 2288
+-121.82199734067,8.73625,83.6559584462526,-121.82199734067, 2357P 2289
+7.118125,0.,0.15,0.,0.,0.; 2357P 2290
+126,1,1,0,0,1,0,0.,0.,0.0554439671834288,0.0554439671834288,1., 2359P 2291
+1.,83.6559584462526,-121.82199734067,8.73625,83.6559584462526, 2359P 2292
+-121.223895544679,8.73625,0.,0.0554439671834288,0.,0.,0.; 2359P 2293
+126,1,1,0,0,1,0,-0.0554439671834288,-0.0554439671834288,0.,0., 2361P 2294
+1.,1.,83.6559584462526,-121.223895544679,7.118125, 2361P 2295
+83.6559584462526,-121.82199734067,7.118125,-0.0554439671834288, 2361P 2296
+0.,0.,0.,0.; 2361P 2297
+126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 2363P 2298
+64.6055896359963,-121.223895544679,8.73625,78.6065598568005, 2363P 2299
+-121.223878124069,8.73625,0.,1.29788831710916,0.,0.,0.; 2363P 2300
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2365P 2301
+-121.223895544679,8.73625,64.6055896359963,-121.223895544679, 2365P 2302
+7.118125,0.,0.15,0.,0.,0.; 2365P 2303
+126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 2367P 2304
+78.6065598568005,-121.223878124069,7.118125,64.6055896359963, 2367P 2305
+-121.223895544679,7.118125,-1.29788831710916,0.,0.,0.,0.; 2367P 2306
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2369P 2307
+-121.223878124069,8.73625,78.6065598568005,-121.223878124069, 2369P 2308
+7.118125,0.,0.15,0.,0.,0.; 2369P 2309
+126,1,1,0,0,1,0,0.,0.,0.0554439671834324,0.0554439671834324,1., 2371P 2310
+1.,78.6065598568005,-121.223878124069,8.73625,78.6065598568005, 2371P 2311
+-121.821979920061,8.73625,0.,0.0554439671834324,0.,0.,0.; 2371P 2312
+126,1,1,0,0,1,0,-0.0554439671834324,-0.0554439671834324,0.,0., 2373P 2313
+1.,1.,78.6065598568005,-121.821979920061,7.118125, 2373P 2314
+78.6065598568005,-121.223878124069,7.118125,-0.0554439671834324, 2373P 2315
+0.,0.,0.,0.; 2373P 2316
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2375P 2317
+-121.821979920061,8.73625,78.6065598568005,-121.821979920061, 2375P 2318
+7.118125,0.,0.15,0.,0.,0.; 2375P 2319
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2377P 2320
+1.,78.6065598568005,-121.821979920061,8.73625,79.405974219549, 2377P 2321
+-121.82199734067,8.73625,0.,0.0741056188123544,0.,0.,0.; 2377P 2322
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2379P 2323
+1.,1.,79.405974219549,-121.82199734067,7.118125, 2379P 2324
+78.6065598568005,-121.821979920061,7.118125,-0.0741056188123544, 2379P 2325
+0.,0.,0.,0.; 2379P 2326
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 2381P 2327
+-121.82199734067,8.73625,79.4059742195489,-121.82199734067, 2381P 2328
+7.118125,0.,0.15,0.,0.,0.; 2381P 2329
+126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2383P 2330
+79.4059742195489,-121.82199734067,8.73625,79.4059742195489, 2383P 2331
+-134.624194429548,8.73625,0.,1.1867621866862,0.,0.,0.; 2383P 2332
+126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2385P 2333
+79.4059742195489,-134.624194429548,7.118125,79.4059742195489, 2385P 2334
+-121.82199734067,7.118125,-1.1867621866862,0.,0.,0.,0.; 2385P 2335
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 2387P 2336
+-134.624194429548,8.73625,79.4059742195489,-134.624194429548, 2387P 2337
+7.118125,0.,0.15,0.,0.,0.; 2387P 2338
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2389P 2339
+1.,79.4059742195489,-134.624194429548,8.73625,78.6065598568005, 2389P 2340
+-134.624177008938,8.73625,0.,0.0741056188123544,0.,0.,0.; 2389P 2341
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2391P 2342
+1.,1.,78.6065598568005,-134.624177008938,7.118125, 2391P 2343
+79.4059742195489,-134.624194429548,7.118125,-0.0741056188123544, 2391P 2344
+0.,0.,0.,0.; 2391P 2345
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2393P 2346
+-134.624177008938,8.73625,78.6065598568005,-134.624177008938, 2393P 2347
+7.118125,0.,0.15,0.,0.,0.; 2393P 2348
+126,1,1,0,0,1,0,0.,0.,0.055571543375649,0.055571543375649,1.,1., 2395P 2349
+78.6065598568005,-134.624177008938,8.73625,78.6065598568005, 2395P 2350
+-135.223655033103,8.73625,0.,0.055571543375649,0.,0.,0.; 2395P 2351
+126,1,1,0,0,1,0,-0.055571543375649,-0.055571543375649,0.,0.,1., 2397P 2352
+1.,78.6065598568005,-135.223655033103,7.118125,78.6065598568005, 2397P 2353
+-134.624177008938,7.118125,-0.055571543375649,0.,0.,0.,0.; 2397P 2354
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2399P 2355
+-135.223655033103,8.73625,78.6065598568005,-135.223655033103, 2399P 2356
+7.118125,0.,0.15,0.,0.,0.; 2399P 2357
+126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 2401P 2358
+78.6065598568005,-135.223655033103,8.73625,64.6055896359963, 2401P 2359
+-135.223655033103,8.73625,0.,1.29788831710816,0.,0.,0.; 2401P 2360
+126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 2403P 2361
+64.6055896359963,-135.223655033103,7.118125,78.6065598568005, 2403P 2362
+-135.223655033103,7.118125,-1.29788831710816,0.,0.,0.,0.; 2403P 2363
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2405P 2364
+-135.223655033103,8.73625,64.6055896359963,-135.223655033103, 2405P 2365
+7.118125,0.,0.15,0.,0.,0.; 2405P 2366
+126,1,1,0,0,1,0,0.,0.,0.0555715433756525,0.0555715433756525,1., 2407P 2367
+1.,64.6055896359963,-135.223655033103,8.73625,64.6055896359963, 2407P 2368
+-134.624177008938,8.73625,0.,0.0555715433756525,0.,0.,0.; 2407P 2369
+126,1,1,0,0,1,0,-0.0555715433756525,-0.0555715433756525,0.,0., 2409P 2370
+1.,1.,64.6055896359963,-134.624177008938,7.118125, 2409P 2371
+64.6055896359963,-135.223655033103,7.118125,-0.0555715433756525, 2409P 2372
+0.,0.,0.,0.; 2409P 2373
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2411P 2374
+-134.624177008938,8.73625,64.6055896359963,-134.624177008938, 2411P 2375
+7.118125,0.,0.15,0.,0.,0.; 2411P 2376
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2413P 2377
+1.,64.6055896359963,-134.624177008938,8.73625,63.8061752732478, 2413P 2378
+-134.624177008938,8.73625,0.,0.0741056187947589,0.,0.,0.; 2413P 2379
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2415P 2380
+1.,1.,63.8061752732478,-134.624177008938,7.118125, 2415P 2381
+64.6055896359963,-134.624177008938,7.118125,-0.0741056187947589, 2415P 2382
+0.,0.,0.,0.; 2415P 2383
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 2417P 2384
+-134.624177008938,8.73625,63.8061752732478,-134.624177008938, 2417P 2385
+7.118125,0.,0.15,0.,0.,0.; 2417P 2386
+126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2419P 2387
+63.8061752732478,-134.624177008938,8.73625,63.8061752732478, 2419P 2388
+-121.821979920061,8.73625,0.,1.1867621866862,0.,0.,0.; 2419P 2389
+126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2421P 2390
+63.8061752732478,-121.821979920061,7.118125,63.8061752732478, 2421P 2391
+-134.624177008938,7.118125,-1.1867621866862,0.,0.,0.,0.; 2421P 2392
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 2423P 2393
+-121.821979920061,8.73625,63.8061752732478,-121.821979920061, 2423P 2394
+7.118125,0.,0.15,0.,0.,0.; 2423P 2395
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2425P 2396
+1.,63.8061752732478,-121.821979920061,8.73625,64.6055896359963, 2425P 2397
+-121.82199734067,8.73625,0.,0.0741056188123544,0.,0.,0.; 2425P 2398
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2427P 2399
+1.,1.,64.6055896359963,-121.82199734067,7.118125, 2427P 2400
+63.8061752732478,-121.821979920061,7.118125,-0.0741056188123544, 2427P 2401
+0.,0.,0.,0.; 2427P 2402
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2429P 2403
+-121.82199734067,8.73625,64.6055896359963,-121.82199734067, 2429P 2404
+7.118125,0.,0.15,0.,0.,0.; 2429P 2405
+126,1,1,0,0,1,0,0.,0.,0.0554439671834288,0.0554439671834288,1., 2431P 2406
+1.,64.6055896359963,-121.82199734067,8.73625,64.6055896359963, 2431P 2407
+-121.223895544679,8.73625,0.,0.0554439671834288,0.,0.,0.; 2431P 2408
+126,1,1,0,0,1,0,-0.0554439671834288,-0.0554439671834288,0.,0., 2433P 2409
+1.,1.,64.6055896359963,-121.223895544679,7.118125, 2433P 2410
+64.6055896359963,-121.82199734067,7.118125,-0.0554439671834288, 2433P 2411
+0.,0.,0.,0.; 2433P 2412
+126,1,1,0,0,1,0,0.,0.,1.29779546101989,1.29779546101989,1.,1., 2435P 2413
+45.556222510803,-121.223895544679,8.73625,59.5561910465442, 2435P 2414
+-121.223878124069,8.73625,0.,1.29779546101989,0.,0.,0.; 2435P 2415
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2437P 2416
+-121.223895544679,8.73625,45.556222510803,-121.223895544679, 2437P 2417
+7.118125,0.,0.15,0.,0.,0.; 2437P 2418
+126,1,1,0,0,1,0,-1.29779546101989,-1.29779546101989,0.,0.,1.,1., 2439P 2419
+59.5561910465442,-121.223878124069,7.118125,45.556222510803, 2439P 2420
+-121.223895544679,7.118125,-1.29779546101989,0.,0.,0.,0.; 2439P 2421
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2441P 2422
+-121.223878124069,8.73625,59.5561910465442,-121.223878124069, 2441P 2423
+7.118125,0.,0.15,0.,0.,0.; 2441P 2424
+126,1,1,0,0,1,0,0.,0.,0.0554439671834324,0.0554439671834324,1., 2443P 2425
+1.,59.5561910465442,-121.223878124069,8.73625,59.5561910465442, 2443P 2426
+-121.821979920061,8.73625,0.,0.0554439671834324,0.,0.,0.; 2443P 2427
+126,1,1,0,0,1,0,-0.0554439671834324,-0.0554439671834324,0.,0., 2445P 2428
+1.,1.,59.5561910465442,-121.821979920061,7.118125, 2445P 2429
+59.5561910465442,-121.223878124069,7.118125,-0.0554439671834324, 2445P 2430
+0.,0.,0.,0.; 2445P 2431
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2447P 2432
+-121.821979920061,8.73625,59.5561910465442,-121.821979920061, 2447P 2433
+7.118125,0.,0.15,0.,0.,0.; 2447P 2434
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2449P 2435
+1.,59.5561910465442,-121.821979920061,8.73625,60.3556054092927, 2449P 2436
+-121.82199734067,8.73625,0.,0.0741056188123544,0.,0.,0.; 2449P 2437
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2451P 2438
+1.,1.,60.3556054092927,-121.82199734067,7.118125, 2451P 2439
+59.5561910465442,-121.821979920061,7.118125,-0.0741056188123544, 2451P 2440
+0.,0.,0.,0.; 2451P 2441
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3556054092926, 2453P 2442
+-121.82199734067,8.73625,60.3556054092926,-121.82199734067, 2453P 2443
+7.118125,0.,0.15,0.,0.,0.; 2453P 2444
+126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2455P 2445
+60.3556054092926,-121.82199734067,8.73625,60.3556054092926, 2455P 2446
+-134.624194429548,8.73625,0.,1.1867621866862,0.,0.,0.; 2455P 2447
+126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2457P 2448
+60.3556054092926,-134.624194429548,7.118125,60.3556054092926, 2457P 2449
+-121.82199734067,7.118125,-1.1867621866862,0.,0.,0.,0.; 2457P 2450
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3556054092926, 2459P 2451
+-134.624194429548,8.73625,60.3556054092926,-134.624194429548, 2459P 2452
+7.118125,0.,0.15,0.,0.,0.; 2459P 2453
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2461P 2454
+1.,60.3556054092926,-134.624194429548,8.73625,59.5561910465442, 2461P 2455
+-134.624177008938,8.73625,0.,0.0741056188123544,0.,0.,0.; 2461P 2456
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2463P 2457
+1.,1.,59.5561910465442,-134.624177008938,7.118125, 2463P 2458
+60.3556054092926,-134.624194429548,7.118125,-0.0741056188123544, 2463P 2459
+0.,0.,0.,0.; 2463P 2460
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2465P 2461
+-134.624177008938,8.73625,59.5561910465442,-134.624177008938, 2465P 2462
+7.118125,0.,0.15,0.,0.,0.; 2465P 2463
+126,1,1,0,0,1,0,0.,0.,0.055571543375649,0.055571543375649,1.,1., 2467P 2464
+59.5561910465442,-134.624177008938,8.73625,59.5561910465442, 2467P 2465
+-135.223655033103,8.73625,0.,0.055571543375649,0.,0.,0.; 2467P 2466
+126,1,1,0,0,1,0,-0.055571543375649,-0.055571543375649,0.,0.,1., 2469P 2467
+1.,59.5561910465442,-135.223655033103,7.118125,59.5561910465442, 2469P 2468
+-134.624177008938,7.118125,-0.055571543375649,0.,0.,0.,0.; 2469P 2469
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2471P 2470
+-135.223655033103,8.73625,59.5561910465442,-135.223655033103, 2471P 2471
+7.118125,0.,0.15,0.,0.,0.; 2471P 2472
+126,1,1,0,0,1,0,0.,0.,1.29779546101888,1.29779546101888,1.,1., 2473P 2473
+59.5561910465442,-135.223655033103,8.73625,45.556222510803, 2473P 2474
+-135.223655033103,8.73625,0.,1.29779546101888,0.,0.,0.; 2473P 2475
+126,1,1,0,0,1,0,-1.29779546101888,-1.29779546101888,0.,0.,1.,1., 2475P 2476
+45.556222510803,-135.223655033103,7.11812500000001, 2475P 2477
+59.5561910465442,-135.223655033103,7.118125,-1.29779546101888, 2475P 2478
+0.,0.,0.,0.; 2475P 2479
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2477P 2480
+-135.223655033103,8.73625,45.556222510803,-135.223655033103, 2477P 2481
+7.118125,0.,0.15,0.,0.,0.; 2477P 2482
+126,1,1,0,0,1,0,0.,0.,0.0555715433756525,0.0555715433756525,1., 2479P 2483
+1.,45.556222510803,-135.223655033103,8.73625,45.556222510803, 2479P 2484
+-134.624177008938,8.73625,0.,0.0555715433756525,0.,0.,0.; 2479P 2485
+126,1,1,0,0,1,0,-0.0555715433756525,-0.0555715433756525,0.,0., 2481P 2486
+1.,1.,45.556222510803,-134.624177008938,7.118125, 2481P 2487
+45.556222510803,-135.223655033103,7.118125,-0.0555715433756525, 2481P 2488
+0.,0.,0.,0.; 2481P 2489
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2483P 2490
+-134.624177008938,8.73625,45.556222510803,-134.624177008938, 2483P 2491
+7.118125,0.,0.15,0.,0.,0.; 2483P 2492
+126,1,1,0,0,1,0,0.,0.,0.0741621398925787,0.0741621398925787,1., 2485P 2493
+1.,45.556222510803,-134.624177008938,8.73625,44.7561984267118, 2485P 2494
+-134.624177008938,8.73625,0.,0.0741621398925787,0.,0.,0.; 2485P 2495
+126,1,1,0,0,1,0,-0.0741621398925787,-0.0741621398925787,0.,0., 2487P 2496
+1.,1.,44.7561984267118,-134.624177008938,7.118125, 2487P 2497
+45.556222510803,-134.624177008938,7.118125,-0.0741621398925787, 2487P 2498
+0.,0.,0.,0.; 2487P 2499
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7561984267118, 2489P 2500
+-134.624177008938,8.73625,44.7561984267118,-134.624177008938, 2489P 2501
+7.118125,0.,0.15,0.,0.,0.; 2489P 2502
+126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2491P 2503
+44.7561984267118,-134.624177008938,8.73625,44.7561984267118, 2491P 2504
+-121.821979920061,8.73625,0.,1.1867621866862,0.,0.,0.; 2491P 2505
+126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2493P 2506
+44.7561984267118,-121.821979920061,7.118125,44.7561984267118, 2493P 2507
+-134.624177008938,7.118125,-1.1867621866862,0.,0.,0.,0.; 2493P 2508
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7561984267118, 2495P 2509
+-121.821979920061,8.73625,44.7561984267118,-121.821979920061, 2495P 2510
+7.118125,0.,0.15,0.,0.,0.; 2495P 2511
+126,1,1,0,0,1,0,0.,0.,0.0741621399101609,0.0741621399101609,1., 2497P 2512
+1.,44.7561984267118,-121.821979920061,8.73625,45.556222510803, 2497P 2513
+-121.82199734067,8.73625,0.,0.0741621399101609,0.,0.,0.; 2497P 2514
+126,1,1,0,0,1,0,-0.0741621399101609,-0.0741621399101609,0.,0., 2499P 2515
+1.,1.,45.556222510803,-121.82199734067,7.118125, 2499P 2516
+44.7561984267118,-121.821979920061,7.118125,-0.0741621399101609, 2499P 2517
+0.,0.,0.,0.; 2499P 2518
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2501P 2519
+-121.82199734067,8.73625,45.556222510803,-121.82199734067, 2501P 2520
+7.118125,0.,0.15,0.,0.,0.; 2501P 2521
+126,1,1,0,0,1,0,0.,0.,0.0554439671834288,0.0554439671834288,1., 2503P 2522
+1.,45.556222510803,-121.82199734067,8.73625,45.556222510803, 2503P 2523
+-121.223895544679,8.73625,0.,0.0554439671834288,0.,0.,0.; 2503P 2524
+126,1,1,0,0,1,0,-0.0554439671834288,-0.0554439671834288,0.,0., 2505P 2525
+1.,1.,45.556222510803,-121.223895544679,7.118125, 2505P 2526
+45.556222510803,-121.82199734067,7.118125,-0.0554439671834288, 2505P 2527
+0.,0.,0.,0.; 2505P 2528
+126,1,1,0,0,1,0,0.,0.,1.29791011810403,1.29791011810403,1.,1., 2507P 2529
+140.806868895161,-102.173622547777,8.73624999999999, 2507P 2530
+154.808074294198,-102.173605127167,8.73624999999999,0., 2507P 2531
+1.29791011810403,0.,0.,0.; 2507P 2532
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 2509P 2533
+-102.173622547777,8.73624999999999,140.806868895161, 2509P 2534
+-102.173622547777,7.11812499999999,0.,0.15,0.,0.,0.; 2509P 2535
+126,1,1,0,0,1,0,-1.29791011810403,-1.29791011810403,0.,0.,1.,1., 2511P 2536
+154.808074294198,-102.173605127167,7.11812499999999, 2511P 2537
+140.806868895161,-102.173622547777,7.11812499999999, 2511P 2538
+-1.29791011810403,0.,0.,0.,0.; 2511P 2539
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2513P 2540
+-102.173605127167,8.73624999999999,154.808074294198, 2513P 2541
+-102.173605127167,7.11812499999999,0.,0.15,0.,0.,0.; 2513P 2542
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2515P 2543
+1.,154.808074294198,-102.173605127167,8.73624999999999, 2515P 2544
+154.808074294198,-102.772908945234,8.73624999999999,0., 2515P 2545
+0.0555553944905611,0.,0.,0.; 2515P 2546
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2517P 2547
+1.,1.,154.808074294198,-102.772908945234,7.11812499999999, 2517P 2548
+154.808074294198,-102.173605127167,7.11812499999999, 2517P 2549
+-0.0555553944905611,0.,0.,0.,0.; 2517P 2550
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2519P 2551
+-102.772908945234,8.73624999999999,154.808074294198, 2519P 2552
+-102.772908945234,7.11812499999999,0.,0.15,0.,0.,0.; 2519P 2553
+126,1,1,0,0,1,0,0.,0.,0.0740926997042853,0.0740926997042853,1., 2521P 2554
+1.,154.808074294198,-102.772908945234,8.73624999999999, 2521P 2555
+155.607349292068,-102.772926365844,8.73624999999999,0., 2521P 2556
+0.0740926997042853,0.,0.,0.; 2521P 2557
+126,1,1,0,0,1,0,-0.0740926997042853,-0.0740926997042853,0.,0., 2523P 2558
+1.,1.,155.607349292068,-102.772926365844,7.11812499999999, 2523P 2559
+154.808074294198,-102.772908945234,7.11812499999999, 2523P 2560
+-0.0740926997042853,0.,0.,0.,0.; 2523P 2561
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 2525P 2562
+-102.772926365844,8.73624999999999,155.607349292068, 2525P 2563
+-102.772926365844,7.11812499999999,0.,0.15,0.,0.,0.; 2525P 2564
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2527P 2565
+155.607349292068,-102.772926365844,8.73624999999999, 2527P 2566
+155.607349292068,-115.573782067767,8.73624999999999,0., 2527P 2567
+1.186637840271,0.,0.,0.; 2527P 2568
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2529P 2569
+155.607349292068,-115.573782067767,7.11812499999999, 2529P 2570
+155.607349292068,-102.772926365844,7.11812499999999, 2529P 2571
+-1.186637840271,0.,0.,0.,0.; 2529P 2572
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 2531P 2573
+-115.573782067767,8.73624999999999,155.607349292068, 2531P 2574
+-115.573782067767,7.11812499999999,0.,0.15,0.,0.,0.; 2531P 2575
+126,1,1,0,0,1,0,0.,0.,0.0740926997042853,0.0740926997042853,1., 2533P 2576
+1.,155.607349292068,-115.573782067767,8.73624999999999, 2533P 2577
+154.808074294198,-115.573764647157,8.73624999999999,0., 2533P 2578
+0.0740926997042853,0.,0.,0.; 2533P 2579
+126,1,1,0,0,1,0,-0.0740926997042853,-0.0740926997042853,0.,0., 2535P 2580
+1.,1.,154.808074294198,-115.573764647157,7.11812499999999, 2535P 2581
+155.607349292068,-115.573782067767,7.11812499999999, 2535P 2582
+-0.0740926997042853,0.,0.,0.,0.; 2535P 2583
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2537P 2584
+-115.573764647157,8.73624999999999,154.808074294198, 2537P 2585
+-115.573764647157,7.11812499999999,0.,0.15,0.,0.,0.; 2537P 2586
+126,1,1,0,0,1,0,0.,0.,0.0555747731526672,0.0555747731526672,1., 2539P 2587
+1.,154.808074294198,-115.573764647157,8.73624999999999, 2539P 2588
+154.808074294198,-116.173277512542,8.73624999999999,0., 2539P 2589
+0.0555747731526672,0.,0.,0.; 2539P 2590
+126,1,1,0,0,1,0,-0.0555747731526672,-0.0555747731526672,0.,0., 2541P 2591
+1.,1.,154.808074294198,-116.173277512542,7.11812499999999, 2541P 2592
+154.808074294198,-115.573764647157,7.11812499999999, 2541P 2593
+-0.0555747731526672,0.,0.,0.,0.; 2541P 2594
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2543P 2595
+-116.173277512542,8.73624999999999,154.808074294198, 2543P 2596
+-116.173277512542,7.11812499999999,0.,0.15,0.,0.,0.; 2543P 2597
+126,1,1,0,0,1,0,0.,0.,1.2979097143809,1.2979097143809,1.,1., 2545P 2598
+154.808074294198,-116.173277512542,8.73624999999999, 2545P 2599
+140.806873250314,-116.173277512542,8.73624999999999,0., 2545P 2600
+1.2979097143809,0.,0.,0.; 2545P 2601
+126,1,1,0,0,1,0,-1.2979097143809,-1.2979097143809,0.,0.,1.,1., 2547P 2602
+140.806873250314,-116.173277512542,7.11812499999999, 2547P 2603
+154.808074294198,-116.173277512542,7.11812499999999, 2547P 2604
+-1.2979097143809,0.,0.,0.,0.; 2547P 2605
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 2549P 2606
+-116.173277512542,8.73624999999999,140.806873250314, 2549P 2607
+-116.173277512542,7.11812499999999,0.,0.15,0.,0.,0.; 2549P 2608
+126,1,1,0,0,1,0,0.,0.,0.0555747731541372,0.0555747731541372,1., 2551P 2609
+1.,140.806873250314,-116.173277512542,8.73624999999999, 2551P 2610
+140.806868895161,-115.573764647157,8.73624999999999,0., 2551P 2611
+0.0555747731541372,0.,0.,0.; 2551P 2612
+126,1,1,0,0,1,0,-0.0555747731541372,-0.0555747731541372,0.,0., 2553P 2613
+1.,1.,140.806868895161,-115.573764647157,7.11812499999999, 2553P 2614
+140.806873250314,-116.173277512542,7.11812499999999, 2553P 2615
+-0.0555747731541372,0.,0.,0.,0.; 2553P 2616
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 2555P 2617
+-115.573764647157,8.73624999999999,140.806868895161, 2555P 2618
+-115.573764647157,7.11812499999999,0.,0.15,0.,0.,0.; 2555P 2619
+126,1,1,0,0,1,0,0.,0.,0.0740874512990315,0.0740874512990315,1., 2557P 2620
+1.,140.806868895161,-115.573764647157,8.73624999999999, 2557P 2621
+140.007650514273,-115.573764647157,8.73624999999999,0., 2557P 2622
+0.0740874512990315,0.,0.,0.; 2557P 2623
+126,1,1,0,0,1,0,-0.0740874512990315,-0.0740874512990315,0.,0., 2559P 2624
+1.,1.,140.007650514273,-115.573764647157,7.11812499999999, 2559P 2625
+140.806868895161,-115.573764647157,7.11812499999999, 2559P 2626
+-0.0740874512990315,0.,0.,0.,0.; 2559P 2627
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007650514273, 2561P 2628
+-115.573764647157,8.73624999999999,140.007650514273, 2561P 2629
+-115.573764647157,7.11812499999999,0.,0.15,0.,0.,0.; 2561P 2630
+126,1,1,0,0,1,0,0.,0.,1.18663784027107,1.18663784027107,1.,1., 2563P 2631
+140.007650514273,-115.573764647157,8.73624999999999, 2563P 2632
+140.007654869426,-102.772908945234,8.73624999999999,0., 2563P 2633
+1.18663784027107,0.,0.,0.; 2563P 2634
+126,1,1,0,0,1,0,-1.18663784027107,-1.18663784027107,0.,0.,1.,1., 2565P 2635
+140.007654869426,-102.772908945234,7.11812499999999, 2565P 2636
+140.007650514273,-115.573764647157,7.11812499999999, 2565P 2637
+-1.18663784027107,0.,0.,0.,0.; 2565P 2638
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007654869426, 2567P 2639
+-102.772908945234,8.73624999999999,140.007654869426, 2567P 2640
+-102.772908945234,7.11812499999999,0.,0.15,0.,0.,0.; 2567P 2641
+126,1,1,0,0,1,0,0.,0.,0.0740874513166314,0.0740874513166314,1., 2569P 2642
+1.,140.007654869426,-102.772908945234,8.73624999999999, 2569P 2643
+140.806873250314,-102.772926365844,8.73624999999999,0., 2569P 2644
+0.0740874513166314,0.,0.,0.; 2569P 2645
+126,1,1,0,0,1,0,-0.0740874513166314,-0.0740874513166314,0.,0., 2571P 2646
+1.,1.,140.806873250314,-102.772926365844,7.11812499999999, 2571P 2647
+140.007654869426,-102.772908945234,7.11812499999999, 2571P 2648
+-0.0740874513166314,0.,0.,0.,0.; 2571P 2649
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 2573P 2650
+-102.772926365844,8.73624999999999,140.806873250314, 2573P 2651
+-102.772926365844,7.11812499999999,0.,0.15,0.,0.,0.; 2573P 2652
+126,1,1,0,0,1,0,0.,0.,0.0555553944920281,0.0555553944920281,1., 2575P 2653
+1.,140.806873250314,-102.772926365844,8.73624999999999, 2575P 2654
+140.806868895161,-102.173622547777,8.73624999999999,0., 2575P 2655
+0.0555553944920281,0.,0.,0.; 2575P 2656
+126,1,1,0,0,1,0,-0.0555553944920281,-0.0555553944920281,0.,0., 2577P 2657
+1.,1.,140.806868895161,-102.173622547777,7.11812499999999, 2577P 2658
+140.806873250314,-102.772926365844,7.11812499999999, 2577P 2659
+-0.0555553944920281,0.,0.,0.,0.; 2577P 2660
+126,1,1,0,0,1,0,0.,0.,1.29788872083129,1.29788872083129,1.,1., 2579P 2661
+121.756696066765,-102.173622547777,8.73624999999999, 2579P 2662
+135.757670642722,-102.173605127167,8.73624999999999,0., 2579P 2663
+1.29788872083129,0.,0.,0.; 2579P 2664
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2581P 2665
+-102.173622547777,8.73624999999999,121.756696066765, 2581P 2666
+-102.173622547777,7.11812499999999,0.,0.15,0.,0.,0.; 2581P 2667
+126,1,1,0,0,1,0,-1.29788872083129,-1.29788872083129,0.,0.,1.,1., 2583P 2668
+135.757670642722,-102.173605127167,7.11812499999999, 2583P 2669
+121.756696066765,-102.173622547777,7.118125,-1.29788872083129, 2583P 2670
+0.,0.,0.,0.; 2583P 2671
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2585P 2672
+-102.173605127167,8.73624999999999,135.757670642722, 2585P 2673
+-102.173605127167,7.11812499999999,0.,0.15,0.,0.,0.; 2585P 2674
+126,1,1,0,0,1,0,0.,0.,0.0681531397501622,0.0681531397501622,1., 2587P 2675
+1.,135.757670642722,-102.173605127167,8.73624999999999, 2587P 2676
+135.757670642722,-102.908807122222,8.73624999999999,0., 2587P 2677
+0.0681531397501622,0.,0.,0.; 2587P 2678
+126,1,1,0,0,1,0,-0.0681531397501622,-0.0681531397501622,0.,0., 2589P 2679
+1.,1.,135.757670642722,-102.908807122222,7.11812499999999, 2589P 2680
+135.757670642722,-102.173605127167,7.11812499999999, 2589P 2681
+-0.0681531397501622,0.,0.,0.,0.; 2589P 2682
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2591P 2683
+-102.908807122222,8.73624999999999,135.757670642722, 2591P 2684
+-102.908807122222,7.11812499999999,0.,0.15,0.,0.,0.; 2591P 2685
+126,1,1,0,0,1,0,0.,0.,0.0740967369079586,0.0740967369079586,1., 2593P 2686
+1.,135.757670642722,-102.908807122222,8.73624999999999, 2593P 2687
+136.556989192117,-102.908807122222,8.73624999999999,0., 2593P 2688
+0.0740967369079586,0.,0.,0.; 2593P 2689
+126,1,1,0,0,1,0,-0.0740967369079586,-0.0740967369079586,0.,0., 2595P 2690
+1.,1.,136.556989192117,-102.908807122222,7.11812499999999, 2595P 2691
+135.757670642722,-102.908807122222,7.11812499999999, 2595P 2692
+-0.0740967369079586,0.,0.,0.,0.; 2595P 2693
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 2597P 2694
+-102.908807122222,8.73624999999999,136.556989192117, 2597P 2695
+-102.908807122222,7.11812499999999,0.,0.15,0.,0.,0.; 2597P 2696
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2599P 2697
+136.556989192117,-102.908807122222,8.73624999999999, 2599P 2698
+136.556989192117,-115.709662824145,8.73624999999999,0., 2599P 2699
+1.186637840271,0.,0.,0.; 2599P 2700
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2601P 2701
+136.556989192117,-115.709662824145,7.11812499999999, 2601P 2702
+136.556989192117,-102.908807122222,7.11812499999999, 2601P 2703
+-1.186637840271,0.,0.,0.,0.; 2601P 2704
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 2603P 2705
+-115.709662824145,8.73624999999999,136.556989192117, 2603P 2706
+-115.709662824145,7.11812499999999,0.,0.15,0.,0.,0.; 2603P 2707
+126,1,1,0,0,1,0,0.,0.,0.0740967369079586,0.0740967369079586,1., 2605P 2708
+1.,136.556989192117,-115.709662824145,8.73624999999999, 2605P 2709
+135.757670642722,-115.709662824145,8.73624999999999,0., 2605P 2710
+0.0740967369079586,0.,0.,0.; 2605P 2711
+126,1,1,0,0,1,0,-0.0740967369079586,-0.0740967369079586,0.,0., 2607P 2712
+1.,1.,135.757670642722,-115.709662824145,7.11812499999999, 2607P 2713
+136.556989192117,-115.709662824145,7.11812499999999, 2607P 2714
+-0.0740967369079586,0.,0.,0.,0.; 2607P 2715
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2609P 2716
+-115.709662824145,8.73624999999999,135.757670642722, 2609P 2717
+-115.709662824145,7.11812499999999,0.,0.15,0.,0.,0.; 2609P 2718
+126,1,1,0,0,1,0,0.,0.,0.0431191380818667,0.0431191380818667,1., 2611P 2719
+1.,135.757670642722,-115.709662824145,8.73624999999999, 2611P 2720
+135.757670642722,-116.174810526203,8.73624999999999,0., 2611P 2721
+0.0431191380818667,0.,0.,0.; 2611P 2722
+126,1,1,0,0,1,0,-0.0431191380818667,-0.0431191380818667,0.,0., 2613P 2723
+1.,1.,135.757670642722,-116.174810526203,7.11812499999999, 2613P 2724
+135.757670642722,-115.709662824145,7.11812499999999, 2613P 2725
+-0.0431191380818667,0.,0.,0.,0.; 2613P 2726
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2615P 2727
+-116.174810526203,8.73624999999999,135.757670642722, 2615P 2728
+-116.174810526203,7.11812499999999,0.,0.15,0.,0.,0.; 2615P 2729
+126,1,1,0,0,1,0,0.,0.,1.29788872083028,1.29788872083028,1.,1., 2617P 2730
+135.757670642722,-116.174810526203,8.73624999999999, 2617P 2731
+121.756696066765,-116.174810526203,8.73624999999999,0., 2617P 2732
+1.29788872083028,0.,0.,0.; 2617P 2733
+126,1,1,0,0,1,0,-1.29788872083028,-1.29788872083028,0.,0.,1.,1., 2619P 2734
+121.756696066765,-116.174810526203,7.118125,135.757670642722, 2619P 2735
+-116.174810526203,7.11812499999999,-1.29788872083028,0.,0.,0., 2619P 2736
+0.; 2619P 2737
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2621P 2738
+-116.174810526203,8.73624999999999,121.756696066765, 2621P 2739
+-116.174810526203,7.11812499999999,0.,0.15,0.,0.,0.; 2621P 2740
+126,1,1,0,0,1,0,0.,0.,0.0555747731526708,0.0555747731526708,1., 2623P 2741
+1.,121.756696066765,-116.174810526203,8.73624999999999, 2623P 2742
+121.756696066765,-115.575297660819,8.73624999999999,0., 2623P 2743
+0.0555747731526708,0.,0.,0.; 2623P 2744
+126,1,1,0,0,1,0,-0.0555747731526708,-0.0555747731526708,0.,0., 2625P 2745
+1.,1.,121.756696066765,-115.575297660819,7.118125, 2625P 2746
+121.756696066765,-116.174810526203,7.118125,-0.0555747731526708, 2625P 2747
+0.,0.,0.,0.; 2625P 2748
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2627P 2749
+-115.575297660819,8.73624999999999,121.756696066765, 2627P 2750
+-115.575297660819,7.11812499999999,0.,0.15,0.,0.,0.; 2627P 2751
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2629P 2752
+1.,121.756696066765,-115.575297660819,8.73624999999999, 2629P 2753
+120.957281704017,-115.575297660819,8.73624999999999,0., 2629P 2754
+0.0741056187947589,0.,0.,0.; 2629P 2755
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2631P 2756
+1.,1.,120.957281704017,-115.575297660819,7.118125, 2631P 2757
+121.756696066765,-115.575297660819,7.118125,-0.0741056187947589, 2631P 2758
+0.,0.,0.,0.; 2631P 2759
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 2633P 2760
+-115.575297660819,8.73624999999999,120.957281704017, 2633P 2761
+-115.575297660819,7.11812499999999,0.,0.15,0.,0.,0.; 2633P 2762
+126,1,1,0,0,1,0,0.,0.,1.1867799504598,1.1867799504598,1.,1., 2635P 2763
+120.957281704017,-115.575297660819,8.73624999999999, 2635P 2764
+120.957281704017,-102.772908945234,8.73624999999999,0., 2635P 2765
+1.1867799504598,0.,0.,0.; 2635P 2766
+126,1,1,0,0,1,0,-1.1867799504598,-1.1867799504598,0.,0.,1.,1., 2637P 2767
+120.957281704017,-102.772908945234,7.118125,120.957281704017, 2637P 2768
+-115.575297660819,7.118125,-1.1867799504598,0.,0.,0.,0.; 2637P 2769
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 2639P 2770
+-102.772908945234,8.73624999999999,120.957281704017, 2639P 2771
+-102.772908945234,7.11812499999999,0.,0.15,0.,0.,0.; 2639P 2772
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2641P 2773
+1.,120.957281704017,-102.772908945234,8.73624999999999, 2641P 2774
+121.756696066765,-102.772926365844,8.73624999999999,0., 2641P 2775
+0.0741056188123544,0.,0.,0.; 2641P 2776
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2643P 2777
+1.,1.,121.756696066765,-102.772926365844,7.118125, 2643P 2778
+120.957281704017,-102.772908945234,7.118125,-0.0741056188123544, 2643P 2779
+0.,0.,0.,0.; 2643P 2780
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2645P 2781
+-102.772926365844,8.73624999999999,121.756696066765, 2645P 2782
+-102.772926365844,7.11812499999999,0.,0.15,0.,0.,0.; 2645P 2783
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2647P 2784
+1.,121.756696066765,-102.772926365844,8.73624999999999, 2647P 2785
+121.756696066765,-102.173622547777,8.73624999999999,0., 2647P 2786
+0.0555553944905611,0.,0.,0.; 2647P 2787
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2649P 2788
+1.,1.,121.756696066765,-102.173622547777,7.118125, 2649P 2789
+121.756696066765,-102.772926365844,7.118125,-0.0555553944905611, 2649P 2790
+0.,0.,0.,0.; 2649P 2791
+126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 2651P 2792
+102.706327256509,-102.173622547777,8.73624999999999, 2651P 2793
+116.707297477313,-102.173605127167,8.73624999999999,0., 2651P 2794
+1.29788831710916,0.,0.,0.; 2651P 2795
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2653P 2796
+-102.173622547777,8.73624999999999,102.706327256509, 2653P 2797
+-102.173622547777,7.118125,0.,0.15,0.,0.,0.; 2653P 2798
+126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 2655P 2799
+116.707297477313,-102.173605127167,7.118125,102.706327256509, 2655P 2800
+-102.173622547777,7.118125,-1.29788831710916,0.,0.,0.,0.; 2655P 2801
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 2657P 2802
+-102.173605127167,8.73624999999999,116.707297477313, 2657P 2803
+-102.173605127167,7.11812499999999,0.,0.15,0.,0.,0.; 2657P 2804
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2659P 2805
+1.,116.707297477313,-102.173605127167,8.73624999999999, 2659P 2806
+116.707297477313,-102.772908945234,8.73624999999999,0., 2659P 2807
+0.0555553944905611,0.,0.,0.; 2659P 2808
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2661P 2809
+1.,1.,116.707297477313,-102.772908945234,7.118125, 2661P 2810
+116.707297477313,-102.173605127167,7.118125,-0.0555553944905611, 2661P 2811
+0.,0.,0.,0.; 2661P 2812
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 2663P 2813
+-102.772908945234,8.73624999999999,116.707297477313, 2663P 2814
+-102.772908945234,7.11812499999999,0.,0.15,0.,0.,0.; 2663P 2815
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2665P 2816
+1.,116.707297477313,-102.772908945234,8.73624999999999, 2665P 2817
+117.506711840062,-102.772926365844,8.73624999999999,0., 2665P 2818
+0.0741056188123544,0.,0.,0.; 2665P 2819
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2667P 2820
+1.,1.,117.506711840062,-102.772926365844,7.118125, 2667P 2821
+116.707297477313,-102.772908945234,7.118125,-0.0741056188123544, 2667P 2822
+0.,0.,0.,0.; 2667P 2823
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506711840062, 2669P 2824
+-102.772926365844,8.73624999999999,117.506711840062, 2669P 2825
+-102.772926365844,7.11812499999999,0.,0.15,0.,0.,0.; 2669P 2826
+126,1,1,0,0,1,0,0.,0.,1.18663784027127,1.18663784027127,1.,1., 2671P 2827
+117.506711840062,-102.772926365844,8.73624999999999, 2671P 2828
+117.506720550367,-115.573782067767,8.73624999999999,0., 2671P 2829
+1.18663784027127,0.,0.,0.; 2671P 2830
+126,1,1,0,0,1,0,-1.18663784027127,-1.18663784027127,0.,0.,1.,1., 2673P 2831
+117.506720550367,-115.573782067767,7.118125,117.506711840062, 2673P 2832
+-102.772926365844,7.118125,-1.18663784027127,0.,0.,0.,0.; 2673P 2833
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506720550367, 2675P 2834
+-115.573782067767,8.73624999999999,117.506720550367, 2675P 2835
+-115.573782067767,7.11812499999999,0.,0.15,0.,0.,0.; 2675P 2836
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2677P 2837
+1.,117.506720550367,-115.573782067767,8.73624999999999, 2677P 2838
+116.707306187618,-115.573764647157,8.73624999999999,0., 2677P 2839
+0.0741056188123544,0.,0.,0.; 2677P 2840
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2679P 2841
+1.,1.,116.707306187618,-115.573764647157,7.118125, 2679P 2842
+117.506720550367,-115.573782067767,7.118125,-0.0741056188123544, 2679P 2843
+0.,0.,0.,0.; 2679P 2844
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707306187618, 2681P 2845
+-115.573764647157,8.73624999999999,116.707306187618, 2681P 2846
+-115.573764647157,7.11812499999999,0.,0.15,0.,0.,0.; 2681P 2847
+126,1,1,0,0,1,0,0.,0.,0.0555747731585329,0.0555747731585329,1., 2683P 2848
+1.,116.707306187618,-115.573764647157,8.73624999999999, 2683P 2849
+116.707297477313,-116.173277512542,8.73624999999999,0., 2683P 2850
+0.0555747731585329,0.,0.,0.; 2683P 2851
+126,1,1,0,0,1,0,-0.0555747731585329,-0.0555747731585329,0.,0., 2685P 2852
+1.,1.,116.707297477313,-116.173277512542,7.118125, 2685P 2853
+116.707306187618,-115.573764647157,7.118125,-0.0555747731585329, 2685P 2854
+0.,0.,0.,0.; 2685P 2855
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 2687P 2856
+-116.173277512542,8.73624999999999,116.707297477313, 2687P 2857
+-116.173277512542,7.11812499999999,0.,0.15,0.,0.,0.; 2687P 2858
+126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 2689P 2859
+116.707297477313,-116.173277512542,8.73624999999999, 2689P 2860
+102.706327256509,-116.173277512542,8.73624999999999,0., 2689P 2861
+1.29788831710816,0.,0.,0.; 2689P 2862
+126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 2691P 2863
+102.706327256509,-116.173277512542,7.118125,116.707297477313, 2691P 2864
+-116.173277512542,7.118125,-1.29788831710816,0.,0.,0.,0.; 2691P 2865
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2693P 2866
+-116.173277512542,8.73624999999999,102.706327256509, 2693P 2867
+-116.173277512542,7.118125,0.,0.15,0.,0.,0.; 2693P 2868
+126,1,1,0,0,1,0,0.,0.,0.0555747731526708,0.0555747731526708,1., 2695P 2869
+1.,102.706327256509,-116.173277512542,8.73624999999999, 2695P 2870
+102.706327256509,-115.573764647157,8.73624999999999,0., 2695P 2871
+0.0555747731526708,0.,0.,0.; 2695P 2872
+126,1,1,0,0,1,0,-0.0555747731526708,-0.0555747731526708,0.,0., 2697P 2873
+1.,1.,102.706327256509,-115.573764647157,7.118125, 2697P 2874
+102.706327256509,-116.173277512542,7.118125,-0.0555747731526708, 2697P 2875
+0.,0.,0.,0.; 2697P 2876
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2699P 2877
+-115.573764647157,8.73624999999999,102.706327256509, 2699P 2878
+-115.573764647157,7.118125,0.,0.15,0.,0.,0.; 2699P 2879
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2701P 2880
+1.,102.706327256509,-115.573764647157,8.73624999999999, 2701P 2881
+101.90691289376,-115.573764647157,8.73624999999999,0., 2701P 2882
+0.0741056187947589,0.,0.,0.; 2701P 2883
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2703P 2884
+1.,1.,101.90691289376,-115.573764647157,7.118125, 2703P 2885
+102.706327256509,-115.573764647157,7.118125,-0.0741056187947589, 2703P 2886
+0.,0.,0.,0.; 2703P 2887
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 2705P 2888
+-115.573764647157,8.73624999999999,101.90691289376, 2705P 2889
+-115.573764647157,7.118125,0.,0.15,0.,0.,0.; 2705P 2890
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2707P 2891
+101.90691289376,-115.573764647157,8.73624999999999, 2707P 2892
+101.90691289376,-102.772908945234,8.73624999999999,0., 2707P 2893
+1.186637840271,0.,0.,0.; 2707P 2894
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2709P 2895
+101.90691289376,-102.772908945234,7.118125,101.90691289376, 2709P 2896
+-115.573764647157,7.118125,-1.186637840271,0.,0.,0.,0.; 2709P 2897
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 2711P 2898
+-102.772908945234,8.73624999999999,101.90691289376, 2711P 2899
+-102.772908945234,7.118125,0.,0.15,0.,0.,0.; 2711P 2900
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2713P 2901
+1.,101.90691289376,-102.772908945234,8.73624999999999, 2713P 2902
+102.706327256509,-102.772926365844,8.73624999999999,0., 2713P 2903
+0.0741056188123544,0.,0.,0.; 2713P 2904
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2715P 2905
+1.,1.,102.706327256509,-102.772926365844,7.118125, 2715P 2906
+101.90691289376,-102.772908945234,7.118125,-0.0741056188123544, 2715P 2907
+0.,0.,0.,0.; 2715P 2908
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2717P 2909
+-102.772926365844,8.73624999999999,102.706327256509, 2717P 2910
+-102.772926365844,7.118125,0.,0.15,0.,0.,0.; 2717P 2911
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2719P 2912
+1.,102.706327256509,-102.772926365844,8.73624999999999, 2719P 2913
+102.706327256509,-102.173622547777,8.73624999999999,0., 2719P 2914
+0.0555553944905611,0.,0.,0.; 2719P 2915
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2721P 2916
+1.,1.,102.706327256509,-102.173622547777,7.118125, 2721P 2917
+102.706327256509,-102.772926365844,7.118125,-0.0555553944905611, 2721P 2918
+0.,0.,0.,0.; 2721P 2919
+126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 2723P 2920
+83.6559584462526,-102.173622547777,8.73625,97.6569286670568, 2723P 2921
+-102.173605127167,8.73624999999999,0.,1.29788831710916,0.,0.,0.; 2723P 2922
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 2725P 2923
+-102.173622547777,8.73625,83.6559584462526,-102.173622547777, 2725P 2924
+7.118125,0.,0.15,0.,0.,0.; 2725P 2925
+126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 2727P 2926
+97.6569286670568,-102.173605127167,7.118125,83.6559584462526, 2727P 2927
+-102.173622547777,7.118125,-1.29788831710916,0.,0.,0.,0.; 2727P 2928
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2729P 2929
+-102.173605127167,8.73624999999999,97.6569286670568, 2729P 2930
+-102.173605127167,7.118125,0.,0.15,0.,0.,0.; 2729P 2931
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2731P 2932
+1.,97.6569286670568,-102.173605127167,8.73624999999999, 2731P 2933
+97.6569286670568,-102.772908945234,8.73624999999999,0., 2731P 2934
+0.0555553944905611,0.,0.,0.; 2731P 2935
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2733P 2936
+1.,1.,97.6569286670568,-102.772908945234,7.118125, 2733P 2937
+97.6569286670568,-102.173605127167,7.118125,-0.0555553944905611, 2733P 2938
+0.,0.,0.,0.; 2733P 2939
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2735P 2940
+-102.772908945234,8.73624999999999,97.6569286670568, 2735P 2941
+-102.772908945234,7.118125,0.,0.15,0.,0.,0.; 2735P 2942
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2737P 2943
+1.,97.6569286670568,-102.772908945234,8.73624999999999, 2737P 2944
+98.4563430298053,-102.772926365844,8.73624999999999,0., 2737P 2945
+0.0741056188123544,0.,0.,0.; 2737P 2946
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2739P 2947
+1.,1.,98.4563430298053,-102.772926365844,7.118125, 2739P 2948
+97.6569286670568,-102.772908945234,7.118125,-0.0741056188123544, 2739P 2949
+0.,0.,0.,0.; 2739P 2950
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 2741P 2951
+-102.772926365844,8.73624999999999,98.4563430298053, 2741P 2952
+-102.772926365844,7.118125,0.,0.15,0.,0.,0.; 2741P 2953
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2743P 2954
+98.4563430298053,-102.772926365844,8.73624999999999, 2743P 2955
+98.4563430298053,-115.573782067767,8.73624999999999,0., 2743P 2956
+1.186637840271,0.,0.,0.; 2743P 2957
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2745P 2958
+98.4563430298053,-115.573782067767,7.118125,98.4563430298053, 2745P 2959
+-102.772926365844,7.118125,-1.186637840271,0.,0.,0.,0.; 2745P 2960
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 2747P 2961
+-115.573782067767,8.73624999999999,98.4563430298053, 2747P 2962
+-115.573782067767,7.118125,0.,0.15,0.,0.,0.; 2747P 2963
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2749P 2964
+1.,98.4563430298053,-115.573782067767,8.73624999999999, 2749P 2965
+97.6569286670568,-115.573764647157,8.73624999999999,0., 2749P 2966
+0.0741056188123544,0.,0.,0.; 2749P 2967
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2751P 2968
+1.,1.,97.6569286670568,-115.573764647157,7.118125, 2751P 2969
+98.4563430298053,-115.573782067767,7.118125,-0.0741056188123544, 2751P 2970
+0.,0.,0.,0.; 2751P 2971
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2753P 2972
+-115.573764647157,8.73624999999999,97.6569286670568, 2753P 2973
+-115.573764647157,7.118125,0.,0.15,0.,0.,0.; 2753P 2974
+126,1,1,0,0,1,0,0.,0.,0.0555747731526672,0.0555747731526672,1., 2755P 2975
+1.,97.6569286670568,-115.573764647157,8.73624999999999, 2755P 2976
+97.6569286670568,-116.173277512542,8.73624999999999,0., 2755P 2977
+0.0555747731526672,0.,0.,0.; 2755P 2978
+126,1,1,0,0,1,0,-0.0555747731526672,-0.0555747731526672,0.,0., 2757P 2979
+1.,1.,97.6569286670568,-116.173277512542,7.118125, 2757P 2980
+97.6569286670568,-115.573764647157,7.118125,-0.0555747731526672, 2757P 2981
+0.,0.,0.,0.; 2757P 2982
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2759P 2983
+-116.173277512542,8.73624999999999,97.6569286670568, 2759P 2984
+-116.173277512542,7.118125,0.,0.15,0.,0.,0.; 2759P 2985
+126,1,1,0,0,1,0,0.,0.,1.29788912455241,1.29788912455241,1.,1., 2761P 2986
+97.6569286670568,-116.173277512542,8.73624999999999, 2761P 2987
+83.6559497359477,-116.173277512542,8.73625,0.,1.29788912455241, 2761P 2988
+0.,0.,0.; 2761P 2989
+126,1,1,0,0,1,0,-1.29788912455241,-1.29788912455241,0.,0.,1.,1., 2763P 2990
+83.6559497359477,-116.173277512542,7.118125,97.6569286670568, 2763P 2991
+-116.173277512542,7.118125,-1.29788912455241,0.,0.,0.,0.; 2763P 2992
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559497359477, 2765P 2993
+-116.173277512542,8.73625,83.6559497359477,-116.173277512542, 2765P 2994
+7.118125,0.,0.15,0.,0.,0.; 2765P 2995
+126,1,1,0,0,1,0,0.,0.,0.0555747731585365,0.0555747731585365,1., 2767P 2996
+1.,83.6559497359477,-116.173277512542,8.73625,83.6559584462526, 2767P 2997
+-115.573764647157,8.73625,0.,0.0555747731585365,0.,0.,0.; 2767P 2998
+126,1,1,0,0,1,0,-0.0555747731585365,-0.0555747731585365,0.,0., 2769P 2999
+1.,1.,83.6559584462526,-115.573764647157,7.118125, 2769P 3000
+83.6559497359477,-116.173277512542,7.118125,-0.0555747731585365, 2769P 3001
+0.,0.,0.,0.; 2769P 3002
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 2771P 3003
+-115.573764647157,8.73625,83.6559584462526,-115.573764647157, 2771P 3004
+7.118125,0.,0.15,0.,0.,0.; 2771P 3005
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2773P 3006
+1.,83.6559584462526,-115.573764647157,8.73625,82.8565440835041, 2773P 3007
+-115.573764647157,8.73625,0.,0.0741056187947589,0.,0.,0.; 2773P 3008
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2775P 3009
+1.,1.,82.8565440835041,-115.573764647157,7.118125, 2775P 3010
+83.6559584462526,-115.573764647157,7.118125,-0.0741056187947589, 2775P 3011
+0.,0.,0.,0.; 2775P 3012
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 2777P 3013
+-115.573764647157,8.73625,82.8565440835042,-115.573764647157, 2777P 3014
+7.118125,0.,0.15,0.,0.,0.; 2777P 3015
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2779P 3016
+82.8565440835042,-115.573764647157,8.73625,82.8565440835042, 2779P 3017
+-102.772908945234,8.73625,0.,1.186637840271,0.,0.,0.; 2779P 3018
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2781P 3019
+82.8565440835042,-102.772908945234,7.118125,82.8565440835042, 2781P 3020
+-115.573764647157,7.118125,-1.186637840271,0.,0.,0.,0.; 2781P 3021
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 2783P 3022
+-102.772908945234,8.73625,82.8565440835042,-102.772908945234, 2783P 3023
+7.118125,0.,0.15,0.,0.,0.; 2783P 3024
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2785P 3025
+1.,82.8565440835042,-102.772908945234,8.73625,83.6559584462526, 2785P 3026
+-102.772926365844,8.73625,0.,0.0741056188123544,0.,0.,0.; 2785P 3027
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2787P 3028
+1.,1.,83.6559584462526,-102.772926365844,7.118125, 2787P 3029
+82.8565440835042,-102.772908945234,7.118125,-0.0741056188123544, 2787P 3030
+0.,0.,0.,0.; 2787P 3031
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 2789P 3032
+-102.772926365844,8.73625,83.6559584462526,-102.772926365844, 2789P 3033
+7.118125,0.,0.15,0.,0.,0.; 2789P 3034
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2791P 3035
+1.,83.6559584462526,-102.772926365844,8.73625,83.6559584462526, 2791P 3036
+-102.173622547777,8.73625,0.,0.0555553944905611,0.,0.,0.; 2791P 3037
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2793P 3038
+1.,1.,83.6559584462526,-102.173622547777,7.118125, 2793P 3039
+83.6559584462526,-102.772926365844,7.118125,-0.0555553944905611, 2793P 3040
+0.,0.,0.,0.; 2793P 3041
+126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 2795P 3042
+64.6055896359963,-102.173622547777,8.73625,78.6065598568005, 2795P 3043
+-102.173605127167,8.73625,0.,1.29788831710916,0.,0.,0.; 2795P 3044
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2797P 3045
+-102.173622547777,8.73625,64.6055896359963,-102.173622547777, 2797P 3046
+7.118125,0.,0.15,0.,0.,0.; 2797P 3047
+126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 2799P 3048
+78.6065598568005,-102.173605127167,7.118125,64.6055896359963, 2799P 3049
+-102.173622547777,7.118125,-1.29788831710916,0.,0.,0.,0.; 2799P 3050
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2801P 3051
+-102.173605127167,8.73625,78.6065598568005,-102.173605127167, 2801P 3052
+7.118125,0.,0.15,0.,0.,0.; 2801P 3053
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2803P 3054
+1.,78.6065598568005,-102.173605127167,8.73625,78.6065598568005, 2803P 3055
+-102.772908945234,8.73625,0.,0.0555553944905611,0.,0.,0.; 2803P 3056
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2805P 3057
+1.,1.,78.6065598568005,-102.772908945234,7.118125, 2805P 3058
+78.6065598568005,-102.173605127167,7.118125,-0.0555553944905611, 2805P 3059
+0.,0.,0.,0.; 2805P 3060
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2807P 3061
+-102.772908945234,8.73625,78.6065598568005,-102.772908945234, 2807P 3062
+7.118125,0.,0.15,0.,0.,0.; 2807P 3063
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2809P 3064
+1.,78.6065598568005,-102.772908945234,8.73625,79.405974219549, 2809P 3065
+-102.772926365844,8.73625,0.,0.0741056188123544,0.,0.,0.; 2809P 3066
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2811P 3067
+1.,1.,79.405974219549,-102.772926365844,7.118125, 2811P 3068
+78.6065598568005,-102.772908945234,7.118125,-0.0741056188123544, 2811P 3069
+0.,0.,0.,0.; 2811P 3070
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 2813P 3071
+-102.772926365844,8.73625,79.4059742195489,-102.772926365844, 2813P 3072
+7.118125,0.,0.15,0.,0.,0.; 2813P 3073
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2815P 3074
+79.4059742195489,-102.772926365844,8.73625,79.4059742195489, 2815P 3075
+-115.573782067767,8.73625,0.,1.186637840271,0.,0.,0.; 2815P 3076
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2817P 3077
+79.4059742195489,-115.573782067767,7.118125,79.4059742195489, 2817P 3078
+-102.772926365844,7.118125,-1.186637840271,0.,0.,0.,0.; 2817P 3079
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 2819P 3080
+-115.573782067767,8.73625,79.4059742195489,-115.573782067767, 2819P 3081
+7.118125,0.,0.15,0.,0.,0.; 2819P 3082
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2821P 3083
+1.,79.4059742195489,-115.573782067767,8.73625,78.6065598568005, 2821P 3084
+-115.573764647157,8.73625,0.,0.0741056188123544,0.,0.,0.; 2821P 3085
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2823P 3086
+1.,1.,78.6065598568005,-115.573764647157,7.118125, 2823P 3087
+79.4059742195489,-115.573782067767,7.118125,-0.0741056188123544, 2823P 3088
+0.,0.,0.,0.; 2823P 3089
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2825P 3090
+-115.573764647157,8.73625,78.6065598568005,-115.573764647157, 2825P 3091
+7.118125,0.,0.15,0.,0.,0.; 2825P 3092
+126,1,1,0,0,1,0,0.,0.,0.0555747731526672,0.0555747731526672,1., 2827P 3093
+1.,78.6065598568005,-115.573764647157,8.73625,78.6065598568005, 2827P 3094
+-116.173277512542,8.73625,0.,0.0555747731526672,0.,0.,0.; 2827P 3095
+126,1,1,0,0,1,0,-0.0555747731526672,-0.0555747731526672,0.,0., 2829P 3096
+1.,1.,78.6065598568005,-116.173277512542,7.118125, 2829P 3097
+78.6065598568005,-115.573764647157,7.118125,-0.0555747731526672, 2829P 3098
+0.,0.,0.,0.; 2829P 3099
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2831P 3100
+-116.173277512542,8.73625,78.6065598568005,-116.173277512542, 2831P 3101
+7.118125,0.,0.15,0.,0.,0.; 2831P 3102
+126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 2833P 3103
+78.6065598568005,-116.173277512542,8.73625,64.6055896359963, 2833P 3104
+-116.173277512542,8.73625,0.,1.29788831710816,0.,0.,0.; 2833P 3105
+126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 2835P 3106
+64.6055896359963,-116.173277512542,7.118125,78.6065598568005, 2835P 3107
+-116.173277512542,7.118125,-1.29788831710816,0.,0.,0.,0.; 2835P 3108
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2837P 3109
+-116.173277512542,8.73625,64.6055896359963,-116.173277512542, 2837P 3110
+7.118125,0.,0.15,0.,0.,0.; 2837P 3111
+126,1,1,0,0,1,0,0.,0.,0.0555747731526708,0.0555747731526708,1., 2839P 3112
+1.,64.6055896359963,-116.173277512542,8.73625,64.6055896359963, 2839P 3113
+-115.573764647157,8.73625,0.,0.0555747731526708,0.,0.,0.; 2839P 3114
+126,1,1,0,0,1,0,-0.0555747731526708,-0.0555747731526708,0.,0., 2841P 3115
+1.,1.,64.6055896359963,-115.573764647157,7.118125, 2841P 3116
+64.6055896359963,-116.173277512542,7.118125,-0.0555747731526708, 2841P 3117
+0.,0.,0.,0.; 2841P 3118
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2843P 3119
+-115.573764647157,8.73625,64.6055896359963,-115.573764647157, 2843P 3120
+7.118125,0.,0.15,0.,0.,0.; 2843P 3121
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2845P 3122
+1.,64.6055896359963,-115.573764647157,8.73625,63.8061752732478, 2845P 3123
+-115.573764647157,8.73625,0.,0.0741056187947589,0.,0.,0.; 2845P 3124
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2847P 3125
+1.,1.,63.8061752732478,-115.573764647157,7.118125, 2847P 3126
+64.6055896359963,-115.573764647157,7.118125,-0.0741056187947589, 2847P 3127
+0.,0.,0.,0.; 2847P 3128
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 2849P 3129
+-115.573764647157,8.73625,63.8061752732478,-115.573764647157, 2849P 3130
+7.118125,0.,0.15,0.,0.,0.; 2849P 3131
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2851P 3132
+63.8061752732478,-115.573764647157,8.73625,63.8061752732478, 2851P 3133
+-102.772908945234,8.73625,0.,1.186637840271,0.,0.,0.; 2851P 3134
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2853P 3135
+63.8061752732478,-102.772908945234,7.118125,63.8061752732478, 2853P 3136
+-115.573764647157,7.118125,-1.186637840271,0.,0.,0.,0.; 2853P 3137
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 2855P 3138
+-102.772908945234,8.73625,63.8061752732478,-102.772908945234, 2855P 3139
+7.118125,0.,0.15,0.,0.,0.; 2855P 3140
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2857P 3141
+1.,63.8061752732478,-102.772908945234,8.73625,64.6055896359963, 2857P 3142
+-102.772926365844,8.73625,0.,0.0741056188123544,0.,0.,0.; 2857P 3143
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2859P 3144
+1.,1.,64.6055896359963,-102.772926365844,7.118125, 2859P 3145
+63.8061752732478,-102.772908945234,7.118125,-0.0741056188123544, 2859P 3146
+0.,0.,0.,0.; 2859P 3147
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2861P 3148
+-102.772926365844,8.73625,64.6055896359963,-102.772926365844, 2861P 3149
+7.118125,0.,0.15,0.,0.,0.; 2861P 3150
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2863P 3151
+1.,64.6055896359963,-102.772926365844,8.73625,64.6055896359963, 2863P 3152
+-102.173622547777,8.73625,0.,0.0555553944905611,0.,0.,0.; 2863P 3153
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2865P 3154
+1.,1.,64.6055896359963,-102.173622547777,7.118125, 2865P 3155
+64.6055896359963,-102.772926365844,7.118125,-0.0555553944905611, 2865P 3156
+0.,0.,0.,0.; 2865P 3157
+126,1,1,0,0,1,0,0.,0.,1.29779546101989,1.29779546101989,1.,1., 2867P 3158
+45.556222510803,-102.173622547777,8.73625,59.5561910465442, 2867P 3159
+-102.173605127167,8.73625,0.,1.29779546101989,0.,0.,0.; 2867P 3160
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2869P 3161
+-102.173622547777,8.73625,45.556222510803,-102.173622547777, 2869P 3162
+7.118125,0.,0.15,0.,0.,0.; 2869P 3163
+126,1,1,0,0,1,0,-1.29779546101989,-1.29779546101989,0.,0.,1.,1., 2871P 3164
+59.5561910465442,-102.173605127167,7.118125,45.556222510803, 2871P 3165
+-102.173622547777,7.118125,-1.29779546101989,0.,0.,0.,0.; 2871P 3166
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2873P 3167
+-102.173605127167,8.73625,59.5561910465442,-102.173605127167, 2873P 3168
+7.118125,0.,0.15,0.,0.,0.; 2873P 3169
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2875P 3170
+1.,59.5561910465442,-102.173605127167,8.73625,59.5561910465442, 2875P 3171
+-102.772908945234,8.73625,0.,0.0555553944905611,0.,0.,0.; 2875P 3172
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2877P 3173
+1.,1.,59.5561910465442,-102.772908945234,7.118125, 2877P 3174
+59.5561910465442,-102.173605127167,7.118125,-0.0555553944905611, 2877P 3175
+0.,0.,0.,0.; 2877P 3176
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2879P 3177
+-102.772908945234,8.73625,59.5561910465442,-102.772908945234, 2879P 3178
+7.118125,0.,0.15,0.,0.,0.; 2879P 3179
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2881P 3180
+1.,59.5561910465442,-102.772908945234,8.73625,60.3556054092927, 2881P 3181
+-102.772926365844,8.73625,0.,0.0741056188123544,0.,0.,0.; 2881P 3182
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2883P 3183
+1.,1.,60.3556054092927,-102.772926365844,7.118125, 2883P 3184
+59.5561910465442,-102.772908945234,7.118125,-0.0741056188123544, 2883P 3185
+0.,0.,0.,0.; 2883P 3186
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3556054092926, 2885P 3187
+-102.772926365844,8.73625,60.3556054092926,-102.772926365844, 2885P 3188
+7.118125,0.,0.15,0.,0.,0.; 2885P 3189
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2887P 3190
+60.3556054092926,-102.772926365844,8.73625,60.3556054092926, 2887P 3191
+-115.573782067767,8.73625,0.,1.186637840271,0.,0.,0.; 2887P 3192
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2889P 3193
+60.3556054092926,-115.573782067767,7.118125,60.3556054092926, 2889P 3194
+-102.772926365844,7.118125,-1.186637840271,0.,0.,0.,0.; 2889P 3195
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3556054092926, 2891P 3196
+-115.573782067767,8.73625,60.3556054092926,-115.573782067767, 2891P 3197
+7.118125,0.,0.15,0.,0.,0.; 2891P 3198
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2893P 3199
+1.,60.3556054092926,-115.573782067767,8.73625,59.5561910465442, 2893P 3200
+-115.573764647157,8.73625,0.,0.0741056188123544,0.,0.,0.; 2893P 3201
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2895P 3202
+1.,1.,59.5561910465442,-115.573764647157,7.118125, 2895P 3203
+60.3556054092926,-115.573782067767,7.118125,-0.0741056188123544, 2895P 3204
+0.,0.,0.,0.; 2895P 3205
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2897P 3206
+-115.573764647157,8.73625,59.5561910465442,-115.573764647157, 2897P 3207
+7.118125,0.,0.15,0.,0.,0.; 2897P 3208
+126,1,1,0,0,1,0,0.,0.,0.0555747731526672,0.0555747731526672,1., 2899P 3209
+1.,59.5561910465442,-115.573764647157,8.73625,59.5561910465442, 2899P 3210
+-116.173277512542,8.73625,0.,0.0555747731526672,0.,0.,0.; 2899P 3211
+126,1,1,0,0,1,0,-0.0555747731526672,-0.0555747731526672,0.,0., 2901P 3212
+1.,1.,59.5561910465442,-116.173277512542,7.118125, 2901P 3213
+59.5561910465442,-115.573764647157,7.118125,-0.0555747731526672, 2901P 3214
+0.,0.,0.,0.; 2901P 3215
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2903P 3216
+-116.173277512542,8.73625,59.5561910465442,-116.173277512542, 2903P 3217
+7.118125,0.,0.15,0.,0.,0.; 2903P 3218
+126,1,1,0,0,1,0,0.,0.,1.29779546101888,1.29779546101888,1.,1., 2905P 3219
+59.5561910465442,-116.173277512542,8.73625,45.556222510803, 2905P 3220
+-116.173277512542,8.73625,0.,1.29779546101888,0.,0.,0.; 2905P 3221
+126,1,1,0,0,1,0,-1.29779546101888,-1.29779546101888,0.,0.,1.,1., 2907P 3222
+45.556222510803,-116.173277512542,7.11812500000001, 2907P 3223
+59.5561910465442,-116.173277512542,7.118125,-1.29779546101888, 2907P 3224
+0.,0.,0.,0.; 2907P 3225
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2909P 3226
+-116.173277512542,8.73625,45.556222510803,-116.173277512542, 2909P 3227
+7.118125,0.,0.15,0.,0.,0.; 2909P 3228
+126,1,1,0,0,1,0,0.,0.,0.0555747731526708,0.0555747731526708,1., 2911P 3229
+1.,45.556222510803,-116.173277512542,8.73625,45.556222510803, 2911P 3230
+-115.573764647157,8.73625,0.,0.0555747731526708,0.,0.,0.; 2911P 3231
+126,1,1,0,0,1,0,-0.0555747731526708,-0.0555747731526708,0.,0., 2913P 3232
+1.,1.,45.556222510803,-115.573764647157,7.118125, 2913P 3233
+45.556222510803,-116.173277512542,7.118125,-0.0555747731526708, 2913P 3234
+0.,0.,0.,0.; 2913P 3235
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2915P 3236
+-115.573764647157,8.73625,45.556222510803,-115.573764647157, 2915P 3237
+7.118125,0.,0.15,0.,0.,0.; 2915P 3238
+126,1,1,0,0,1,0,0.,0.,0.0741621398925787,0.0741621398925787,1., 2917P 3239
+1.,45.556222510803,-115.573764647157,8.73625,44.7561984267118, 2917P 3240
+-115.573764647157,8.73625,0.,0.0741621398925787,0.,0.,0.; 2917P 3241
+126,1,1,0,0,1,0,-0.0741621398925787,-0.0741621398925787,0.,0., 2919P 3242
+1.,1.,44.7561984267118,-115.573764647157,7.118125, 2919P 3243
+45.556222510803,-115.573764647157,7.118125,-0.0741621398925787, 2919P 3244
+0.,0.,0.,0.; 2919P 3245
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7561984267118, 2921P 3246
+-115.573764647157,8.73625,44.7561984267118,-115.573764647157, 2921P 3247
+7.118125,0.,0.15,0.,0.,0.; 2921P 3248
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2923P 3249
+44.7561984267118,-115.573764647157,8.73625,44.7561984267118, 2923P 3250
+-102.772908945234,8.73625,0.,1.186637840271,0.,0.,0.; 2923P 3251
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2925P 3252
+44.7561984267118,-102.772908945234,7.118125,44.7561984267118, 2925P 3253
+-115.573764647157,7.118125,-1.186637840271,0.,0.,0.,0.; 2925P 3254
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7561984267118, 2927P 3255
+-102.772908945234,8.73625,44.7561984267118,-102.772908945234, 2927P 3256
+7.118125,0.,0.15,0.,0.,0.; 2927P 3257
+126,1,1,0,0,1,0,0.,0.,0.0741621399101609,0.0741621399101609,1., 2929P 3258
+1.,44.7561984267118,-102.772908945234,8.73625,45.556222510803, 2929P 3259
+-102.772926365844,8.73625,0.,0.0741621399101609,0.,0.,0.; 2929P 3260
+126,1,1,0,0,1,0,-0.0741621399101609,-0.0741621399101609,0.,0., 2931P 3261
+1.,1.,45.556222510803,-102.772926365844,7.118125, 2931P 3262
+44.7561984267118,-102.772908945234,7.118125,-0.0741621399101609, 2931P 3263
+0.,0.,0.,0.; 2931P 3264
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2933P 3265
+-102.772926365844,8.73625,45.556222510803,-102.772926365844, 2933P 3266
+7.118125,0.,0.15,0.,0.,0.; 2933P 3267
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2935P 3268
+1.,45.556222510803,-102.772926365844,8.73625,45.556222510803, 2935P 3269
+-102.173622547777,8.73625,0.,0.0555553944905611,0.,0.,0.; 2935P 3270
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2937P 3271
+1.,1.,45.556222510803,-102.173622547777,7.118125, 2937P 3272
+45.556222510803,-102.772926365844,7.118125,-0.0555553944905611, 2937P 3273
+0.,0.,0.,0.; 2937P 3274
+126,1,1,0,0,1,0,0.,0.,1.29791011810303,1.29791011810303,1.,1., 2939P 3275
+140.806868895161,-83.1232450272155,8.73624999999999, 2939P 3276
+154.808074294198,-83.1232450272155,8.73624999999999,0., 2939P 3277
+1.29791011810303,0.,0.,0.; 2939P 3278
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 2941P 3279
+-83.1232450272155,8.73624999999999,140.806868895161, 2941P 3280
+-83.1232450272155,7.11812499999999,0.,0.15,0.,0.,0.; 2941P 3281
+126,1,1,0,0,1,0,-1.29791011810303,-1.29791011810303,0.,0.,1.,1., 2943P 3282
+154.808074294198,-83.1232450272155,7.11812499999999, 2943P 3283
+140.806868895161,-83.1232450272155,7.11812499999999, 2943P 3284
+-1.29791011810303,0.,0.,0.,0.; 2943P 3285
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2945P 3286
+-83.1232450272156,8.73624999999999,154.808074294198, 2945P 3287
+-83.1232450272156,7.11812499999999,0.,0.15,0.,0.,0.; 2945P 3288
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2947P 3289
+1.,154.808074294198,-83.1232450272156,8.73624999999999, 2947P 3290
+154.808074294198,-83.7225488452825,8.73624999999999,0., 2947P 3291
+0.0555553944905611,0.,0.,0.; 2947P 3292
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2949P 3293
+1.,1.,154.808074294198,-83.7225488452825,7.11812499999999, 2949P 3294
+154.808074294198,-83.1232450272156,7.11812499999999, 2949P 3295
+-0.0555553944905611,0.,0.,0.,0.; 2949P 3296
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2951P 3297
+-83.7225488452825,8.73624999999999,154.808074294198, 2951P 3298
+-83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 2951P 3299
+126,1,1,0,0,1,0,0.,0.,0.0740926996866866,0.0740926996866866,1., 2953P 3300
+1.,154.808074294198,-83.7225488452825,8.73624999999999, 2953P 3301
+155.607349292068,-83.7225488452825,8.73624999999999,0., 2953P 3302
+0.0740926996866866,0.,0.,0.; 2953P 3303
+126,1,1,0,0,1,0,-0.0740926996866866,-0.0740926996866866,0.,0., 2955P 3304
+1.,1.,155.607349292068,-83.7225488452825,7.11812499999999, 2955P 3305
+154.808074294198,-83.7225488452825,7.11812499999999, 2955P 3306
+-0.0740926996866866,0.,0.,0.,0.; 2955P 3307
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 2957P 3308
+-83.7225488452825,8.73624999999999,155.607349292068, 2957P 3309
+-83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 2957P 3310
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2959P 3311
+155.607349292068,-83.7225488452825,8.73624999999999, 2959P 3312
+155.607349292068,-96.5234045472058,8.73624999999999,0., 2959P 3313
+1.186637840271,0.,0.,0.; 2959P 3314
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2961P 3315
+155.607349292068,-96.5234045472058,7.11812499999999, 2961P 3316
+155.607349292068,-83.7225488452825,7.11812499999999, 2961P 3317
+-1.186637840271,0.,0.,0.,0.; 2961P 3318
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 2963P 3319
+-96.5234045472058,8.73624999999999,155.607349292068, 2963P 3320
+-96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 2963P 3321
+126,1,1,0,0,1,0,0.,0.,0.0740926996866866,0.0740926996866866,1., 2965P 3322
+1.,155.607349292068,-96.5234045472058,8.73624999999999, 2965P 3323
+154.808074294198,-96.5234045472058,8.73624999999999,0., 2965P 3324
+0.0740926996866866,0.,0.,0.; 2965P 3325
+126,1,1,0,0,1,0,-0.0740926996866866,-0.0740926996866866,0.,0., 2967P 3326
+1.,1.,154.808074294198,-96.5234045472058,7.11812499999999, 2967P 3327
+155.607349292068,-96.5234045472058,7.11812499999999, 2967P 3328
+-0.0740926996866866,0.,0.,0.,0.; 2967P 3329
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2969P 3330
+-96.5234045472058,8.73624999999999,154.808074294198, 2969P 3331
+-96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 2969P 3332
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2971P 3333
+1.,154.808074294198,-96.5234045472058,8.73624999999999, 2971P 3334
+154.808074294198,-97.1227083652728,8.73624999999999,0., 2971P 3335
+0.0555553944905611,0.,0.,0.; 2971P 3336
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2973P 3337
+1.,1.,154.808074294198,-97.1227083652728,7.11812499999999, 2973P 3338
+154.808074294198,-96.5234045472058,7.11812499999999, 2973P 3339
+-0.0555553944905611,0.,0.,0.,0.; 2973P 3340
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2975P 3341
+-97.1227083652727,8.73624999999999,154.808074294198, 2975P 3342
+-97.1227083652727,7.11812499999999,0.,0.15,0.,0.,0.; 2975P 3343
+126,1,1,0,0,1,0,0.,0.,1.2979097143809,1.2979097143809,1.,1., 2977P 3344
+154.808074294198,-97.1227083652727,8.73624999999999, 2977P 3345
+140.806873250314,-97.1227083652727,8.73624999999999,0., 2977P 3346
+1.2979097143809,0.,0.,0.; 2977P 3347
+126,1,1,0,0,1,0,-1.2979097143809,-1.2979097143809,0.,0.,1.,1., 2979P 3348
+140.806873250314,-97.1227083652727,7.11812499999999, 2979P 3349
+154.808074294198,-97.1227083652727,7.11812499999999, 2979P 3350
+-1.2979097143809,0.,0.,0.,0.; 2979P 3351
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 2981P 3352
+-97.1227083652727,8.73624999999999,140.806873250314, 2981P 3353
+-97.1227083652727,7.11812499999999,0.,0.15,0.,0.,0.; 2981P 3354
+126,1,1,0,0,1,0,0.,0.,0.0555553944920281,0.0555553944920281,1., 2983P 3355
+1.,140.806873250314,-97.1227083652727,8.73624999999999, 2983P 3356
+140.806868895161,-96.5234045472058,8.73624999999999,0., 2983P 3357
+0.0555553944920281,0.,0.,0.; 2983P 3358
+126,1,1,0,0,1,0,-0.0555553944920281,-0.0555553944920281,0.,0., 2985P 3359
+1.,1.,140.806868895161,-96.5234045472058,7.11812499999999, 2985P 3360
+140.806873250314,-97.1227083652727,7.11812499999999, 2985P 3361
+-0.0555553944920281,0.,0.,0.,0.; 2985P 3362
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 2987P 3363
+-96.5234045472058,8.73624999999999,140.806868895161, 2987P 3364
+-96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 2987P 3365
+126,1,1,0,0,1,0,0.,0.,0.0740874512990315,0.0740874512990315,1., 2989P 3366
+1.,140.806868895161,-96.5234045472058,8.73624999999999, 2989P 3367
+140.007650514273,-96.5234045472058,8.73624999999999,0., 2989P 3368
+0.0740874512990315,0.,0.,0.; 2989P 3369
+126,1,1,0,0,1,0,-0.0740874512990315,-0.0740874512990315,0.,0., 2991P 3370
+1.,1.,140.007650514273,-96.5234045472058,7.11812499999999, 2991P 3371
+140.806868895161,-96.5234045472058,7.11812499999999, 2991P 3372
+-0.0740874512990315,0.,0.,0.,0.; 2991P 3373
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007650514273, 2993P 3374
+-96.5234045472058,8.73624999999999,140.007650514273, 2993P 3375
+-96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 2993P 3376
+126,1,1,0,0,1,0,0.,0.,1.18663784027107,1.18663784027107,1.,1., 2995P 3377
+140.007650514273,-96.5234045472058,8.73624999999999, 2995P 3378
+140.007654869426,-83.7225488452825,8.73624999999999,0., 2995P 3379
+1.18663784027107,0.,0.,0.; 2995P 3380
+126,1,1,0,0,1,0,-1.18663784027107,-1.18663784027107,0.,0.,1.,1., 2997P 3381
+140.007654869426,-83.7225488452825,7.11812499999999, 2997P 3382
+140.007650514273,-96.5234045472058,7.11812499999999, 2997P 3383
+-1.18663784027107,0.,0.,0.,0.; 2997P 3384
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007654869426, 2999P 3385
+-83.7225488452825,8.73624999999999,140.007654869426, 2999P 3386
+-83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 2999P 3387
+126,1,1,0,0,1,0,0.,0.,0.0740874512990315,0.0740874512990315,1., 3001P 3388
+1.,140.007654869426,-83.7225488452825,8.73624999999999, 3001P 3389
+140.806873250314,-83.7225488452825,8.73624999999999,0., 3001P 3390
+0.0740874512990315,0.,0.,0.; 3001P 3391
+126,1,1,0,0,1,0,-0.0740874512990315,-0.0740874512990315,0.,0., 3003P 3392
+1.,1.,140.806873250314,-83.7225488452825,7.11812499999999, 3003P 3393
+140.007654869426,-83.7225488452825,7.11812499999999, 3003P 3394
+-0.0740874512990315,0.,0.,0.,0.; 3003P 3395
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 3005P 3396
+-83.7225488452825,8.73624999999999,140.806873250314, 3005P 3397
+-83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 3005P 3398
+126,1,1,0,0,1,0,0.,0.,0.0555553944920281,0.0555553944920281,1., 3007P 3399
+1.,140.806873250314,-83.7225488452825,8.73624999999999, 3007P 3400
+140.806868895161,-83.1232450272155,8.73624999999999,0., 3007P 3401
+0.0555553944920281,0.,0.,0.; 3007P 3402
+126,1,1,0,0,1,0,-0.0555553944920281,-0.0555553944920281,0.,0., 3009P 3403
+1.,1.,140.806868895161,-83.1232450272155,7.11812499999999, 3009P 3404
+140.806873250314,-83.7225488452825,7.11812499999999, 3009P 3405
+-0.0555553944920281,0.,0.,0.,0.; 3009P 3406
+126,1,1,0,0,1,0,0.,0.,1.29788872083028,1.29788872083028,1.,1., 3011P 3407
+121.756696066765,-83.1232450272155,8.73624999999999, 3011P 3408
+135.757670642722,-83.1232450272155,8.73624999999999,0., 3011P 3409
+1.29788872083028,0.,0.,0.; 3011P 3410
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3013P 3411
+-83.1232450272155,8.73624999999999,121.756696066765, 3013P 3412
+-83.1232450272155,7.11812499999999,0.,0.15,0.,0.,0.; 3013P 3413
+126,1,1,0,0,1,0,-1.29788872083028,-1.29788872083028,0.,0.,1.,1., 3015P 3414
+135.757670642722,-83.1232450272155,7.11812499999999, 3015P 3415
+121.756696066765,-83.1232450272155,7.118125,-1.29788872083028, 3015P 3416
+0.,0.,0.,0.; 3015P 3417
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3017P 3418
+-83.1232450272156,8.73624999999999,135.757670642722, 3017P 3419
+-83.1232450272156,7.11812499999999,0.,0.15,0.,0.,0.; 3017P 3420
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3019P 3421
+1.,135.757670642722,-83.1232450272156,8.73624999999999, 3019P 3422
+135.757670642722,-83.7225488452825,8.73624999999999,0., 3019P 3423
+0.0555553944905611,0.,0.,0.; 3019P 3424
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3021P 3425
+1.,1.,135.757670642722,-83.7225488452825,7.11812499999999, 3021P 3426
+135.757670642722,-83.1232450272156,7.11812499999999, 3021P 3427
+-0.0555553944905611,0.,0.,0.,0.; 3021P 3428
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3023P 3429
+-83.7225488452825,8.73624999999999,135.757670642722, 3023P 3430
+-83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 3023P 3431
+126,1,1,0,0,1,0,0.,0.,0.0740967369079586,0.0740967369079586,1., 3025P 3432
+1.,135.757670642722,-83.7225488452825,8.73624999999999, 3025P 3433
+136.556989192117,-83.7225488452825,8.73624999999999,0., 3025P 3434
+0.0740967369079586,0.,0.,0.; 3025P 3435
+126,1,1,0,0,1,0,-0.0740967369079586,-0.0740967369079586,0.,0., 3027P 3436
+1.,1.,136.556989192117,-83.7225488452825,7.11812499999999, 3027P 3437
+135.757670642722,-83.7225488452825,7.11812499999999, 3027P 3438
+-0.0740967369079586,0.,0.,0.,0.; 3027P 3439
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 3029P 3440
+-83.7225488452825,8.73624999999999,136.556989192117, 3029P 3441
+-83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 3029P 3442
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3031P 3443
+136.556989192117,-83.7225488452825,8.73624999999999, 3031P 3444
+136.556989192117,-96.5234045472058,8.73624999999999,0., 3031P 3445
+1.186637840271,0.,0.,0.; 3031P 3446
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3033P 3447
+136.556989192117,-96.5234045472058,7.11812499999999, 3033P 3448
+136.556989192117,-83.7225488452825,7.11812499999999, 3033P 3449
+-1.186637840271,0.,0.,0.,0.; 3033P 3450
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 3035P 3451
+-96.5234045472058,8.73624999999999,136.556989192117, 3035P 3452
+-96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 3035P 3453
+126,1,1,0,0,1,0,0.,0.,0.0740967369079586,0.0740967369079586,1., 3037P 3454
+1.,136.556989192117,-96.5234045472058,8.73624999999999, 3037P 3455
+135.757670642722,-96.5234045472058,8.73624999999999,0., 3037P 3456
+0.0740967369079586,0.,0.,0.; 3037P 3457
+126,1,1,0,0,1,0,-0.0740967369079586,-0.0740967369079586,0.,0., 3039P 3458
+1.,1.,135.757670642722,-96.5234045472058,7.11812499999999, 3039P 3459
+136.556989192117,-96.5234045472058,7.11812499999999, 3039P 3460
+-0.0740967369079586,0.,0.,0.,0.; 3039P 3461
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3041P 3462
+-96.5234045472058,8.73624999999999,135.757670642722, 3041P 3463
+-96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 3041P 3464
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3043P 3465
+1.,135.757670642722,-96.5234045472058,8.73624999999999, 3043P 3466
+135.757670642722,-97.1227083652728,8.73624999999999,0., 3043P 3467
+0.0555553944905611,0.,0.,0.; 3043P 3468
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3045P 3469
+1.,1.,135.757670642722,-97.1227083652728,7.11812499999999, 3045P 3470
+135.757670642722,-96.5234045472058,7.11812499999999, 3045P 3471
+-0.0555553944905611,0.,0.,0.,0.; 3045P 3472
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3047P 3473
+-97.1227083652727,8.73624999999999,135.757670642722, 3047P 3474
+-97.1227083652727,7.11812499999999,0.,0.15,0.,0.,0.; 3047P 3475
+126,1,1,0,0,1,0,0.,0.,1.29788872083028,1.29788872083028,1.,1., 3049P 3476
+135.757670642722,-97.1227083652727,8.73624999999999, 3049P 3477
+121.756696066765,-97.1227083652727,8.73624999999999,0., 3049P 3478
+1.29788872083028,0.,0.,0.; 3049P 3479
+126,1,1,0,0,1,0,-1.29788872083028,-1.29788872083028,0.,0.,1.,1., 3051P 3480
+121.756696066765,-97.1227083652727,7.118125,135.757670642722, 3051P 3481
+-97.1227083652727,7.11812499999999,-1.29788872083028,0.,0.,0., 3051P 3482
+0.; 3051P 3483
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3053P 3484
+-97.1227083652727,8.73624999999999,121.756696066765, 3053P 3485
+-97.1227083652727,7.11812499999999,0.,0.15,0.,0.,0.; 3053P 3486
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3055P 3487
+1.,121.756696066765,-97.1227083652727,8.73624999999999, 3055P 3488
+121.756696066765,-96.5234045472058,8.73624999999999,0., 3055P 3489
+0.0555553944905611,0.,0.,0.; 3055P 3490
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3057P 3491
+1.,1.,121.756696066765,-96.5234045472058,7.118125, 3057P 3492
+121.756696066765,-97.1227083652727,7.118125,-0.0555553944905611, 3057P 3493
+0.,0.,0.,0.; 3057P 3494
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3059P 3495
+-96.5234045472058,8.73624999999999,121.756696066765, 3059P 3496
+-96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 3059P 3497
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3061P 3498
+1.,121.756696066765,-96.5234045472058,8.73624999999999, 3061P 3499
+120.957281704017,-96.5234045472058,8.73624999999999,0., 3061P 3500
+0.0741056187947589,0.,0.,0.; 3061P 3501
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3063P 3502
+1.,1.,120.957281704017,-96.5234045472058,7.118125, 3063P 3503
+121.756696066765,-96.5234045472058,7.118125,-0.0741056187947589, 3063P 3504
+0.,0.,0.,0.; 3063P 3505
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 3065P 3506
+-96.5234045472058,8.73624999999999,120.957281704017, 3065P 3507
+-96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 3065P 3508
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3067P 3509
+120.957281704017,-96.5234045472058,8.73624999999999, 3067P 3510
+120.957281704017,-83.7225488452825,8.73624999999999,0., 3067P 3511
+1.186637840271,0.,0.,0.; 3067P 3512
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3069P 3513
+120.957281704017,-83.7225488452825,7.118125,120.957281704017, 3069P 3514
+-96.5234045472058,7.118125,-1.186637840271,0.,0.,0.,0.; 3069P 3515
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 3071P 3516
+-83.7225488452825,8.73624999999999,120.957281704017, 3071P 3517
+-83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 3071P 3518
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3073P 3519
+1.,120.957281704017,-83.7225488452825,8.73624999999999, 3073P 3520
+121.756696066765,-83.7225488452825,8.73624999999999,0., 3073P 3521
+0.0741056187947589,0.,0.,0.; 3073P 3522
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3075P 3523
+1.,1.,121.756696066765,-83.7225488452825,7.118125, 3075P 3524
+120.957281704017,-83.7225488452825,7.118125,-0.0741056187947589, 3075P 3525
+0.,0.,0.,0.; 3075P 3526
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3077P 3527
+-83.7225488452825,8.73624999999999,121.756696066765, 3077P 3528
+-83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 3077P 3529
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3079P 3530
+1.,121.756696066765,-83.7225488452825,8.73624999999999, 3079P 3531
+121.756696066765,-83.1232450272155,8.73624999999999,0., 3079P 3532
+0.0555553944905611,0.,0.,0.; 3079P 3533
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3081P 3534
+1.,1.,121.756696066765,-83.1232450272155,7.118125, 3081P 3535
+121.756696066765,-83.7225488452825,7.118125,-0.0555553944905611, 3081P 3536
+0.,0.,0.,0.; 3081P 3537
+126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 3083P 3538
+102.706327256509,-83.1232450272155,8.73624999999999, 3083P 3539
+116.707297477313,-83.1232450272155,8.73624999999999,0., 3083P 3540
+1.29788831710816,0.,0.,0.; 3083P 3541
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3085P 3542
+-83.1232450272155,8.73624999999999,102.706327256509, 3085P 3543
+-83.1232450272155,7.118125,0.,0.15,0.,0.,0.; 3085P 3544
+126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 3087P 3545
+116.707297477313,-83.1232450272155,7.118125,102.706327256509, 3087P 3546
+-83.1232450272155,7.118125,-1.29788831710816,0.,0.,0.,0.; 3087P 3547
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 3089P 3548
+-83.1232450272156,8.73624999999999,116.707297477313, 3089P 3549
+-83.1232450272156,7.11812499999999,0.,0.15,0.,0.,0.; 3089P 3550
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3091P 3551
+1.,116.707297477313,-83.1232450272156,8.73624999999999, 3091P 3552
+116.707297477313,-83.7225488452825,8.73624999999999,0., 3091P 3553
+0.0555553944905611,0.,0.,0.; 3091P 3554
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3093P 3555
+1.,1.,116.707297477313,-83.7225488452825,7.118125, 3093P 3556
+116.707297477313,-83.1232450272156,7.118125,-0.0555553944905611, 3093P 3557
+0.,0.,0.,0.; 3093P 3558
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 3095P 3559
+-83.7225488452825,8.73624999999999,116.707297477313, 3095P 3560
+-83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 3095P 3561
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3097P 3562
+1.,116.707297477313,-83.7225488452825,8.73624999999999, 3097P 3563
+117.506711840062,-83.7225488452825,8.73624999999999,0., 3097P 3564
+0.0741056187947589,0.,0.,0.; 3097P 3565
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3099P 3566
+1.,1.,117.506711840062,-83.7225488452825,7.118125, 3099P 3567
+116.707297477313,-83.7225488452825,7.118125,-0.0741056187947589, 3099P 3568
+0.,0.,0.,0.; 3099P 3569
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506711840062, 3101P 3570
+-83.7225488452825,8.73624999999999,117.506711840062, 3101P 3571
+-83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 3101P 3572
+126,1,1,0,0,1,0,0.,0.,1.18663784027127,1.18663784027127,1.,1., 3103P 3573
+117.506711840062,-83.7225488452825,8.73624999999999, 3103P 3574
+117.506720550367,-96.5234045472058,8.73624999999999,0., 3103P 3575
+1.18663784027127,0.,0.,0.; 3103P 3576
+126,1,1,0,0,1,0,-1.18663784027127,-1.18663784027127,0.,0.,1.,1., 3105P 3577
+117.506720550367,-96.5234045472058,7.118125,117.506711840062, 3105P 3578
+-83.7225488452825,7.118125,-1.18663784027127,0.,0.,0.,0.; 3105P 3579
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506720550367, 3107P 3580
+-96.5234045472058,8.73624999999999,117.506720550367, 3107P 3581
+-96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 3107P 3582
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3109P 3583
+1.,117.506720550367,-96.5234045472058,8.73624999999999, 3109P 3584
+116.707306187618,-96.5234045472058,8.73624999999999,0., 3109P 3585
+0.0741056187947589,0.,0.,0.; 3109P 3586
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3111P 3587
+1.,1.,116.707306187618,-96.5234045472058,7.118125, 3111P 3588
+117.506720550367,-96.5234045472058,7.118125,-0.0741056187947589, 3111P 3589
+0.,0.,0.,0.; 3111P 3590
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707306187618, 3113P 3591
+-96.5234045472058,8.73624999999999,116.707306187618, 3113P 3592
+-96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 3113P 3593
+126,1,1,0,0,1,0,0.,0.,0.0555553944964288,0.0555553944964288,1., 3115P 3594
+1.,116.707306187618,-96.5234045472058,8.73624999999999, 3115P 3595
+116.707297477313,-97.1227083652728,8.73624999999999,0., 3115P 3596
+0.0555553944964288,0.,0.,0.; 3115P 3597
+126,1,1,0,0,1,0,-0.0555553944964288,-0.0555553944964288,0.,0., 3117P 3598
+1.,1.,116.707297477313,-97.1227083652728,7.118125, 3117P 3599
+116.707306187618,-96.5234045472058,7.118125,-0.0555553944964288, 3117P 3600
+0.,0.,0.,0.; 3117P 3601
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 3119P 3602
+-97.1227083652727,8.73624999999999,116.707297477313, 3119P 3603
+-97.1227083652727,7.11812499999999,0.,0.15,0.,0.,0.; 3119P 3604
+126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 3121P 3605
+116.707297477313,-97.1227083652727,8.73624999999999, 3121P 3606
+102.706327256509,-97.1227083652727,8.73624999999999,0., 3121P 3607
+1.29788831710816,0.,0.,0.; 3121P 3608
+126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 3123P 3609
+102.706327256509,-97.1227083652727,7.118125,116.707297477313, 3123P 3610
+-97.1227083652727,7.118125,-1.29788831710816,0.,0.,0.,0.; 3123P 3611
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3125P 3612
+-97.1227083652727,8.73624999999999,102.706327256509, 3125P 3613
+-97.1227083652727,7.118125,0.,0.15,0.,0.,0.; 3125P 3614
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3127P 3615
+1.,102.706327256509,-97.1227083652727,8.73624999999999, 3127P 3616
+102.706327256509,-96.5234045472058,8.73624999999999,0., 3127P 3617
+0.0555553944905611,0.,0.,0.; 3127P 3618
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3129P 3619
+1.,1.,102.706327256509,-96.5234045472058,7.118125, 3129P 3620
+102.706327256509,-97.1227083652727,7.118125,-0.0555553944905611, 3129P 3621
+0.,0.,0.,0.; 3129P 3622
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3131P 3623
+-96.5234045472058,8.73624999999999,102.706327256509, 3131P 3624
+-96.5234045472058,7.118125,0.,0.15,0.,0.,0.; 3131P 3625
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3133P 3626
+1.,102.706327256509,-96.5234045472058,8.73624999999999, 3133P 3627
+101.90691289376,-96.5234045472058,8.73624999999999,0., 3133P 3628
+0.0741056187947589,0.,0.,0.; 3133P 3629
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3135P 3630
+1.,1.,101.90691289376,-96.5234045472058,7.118125, 3135P 3631
+102.706327256509,-96.5234045472058,7.118125,-0.0741056187947589, 3135P 3632
+0.,0.,0.,0.; 3135P 3633
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 3137P 3634
+-96.5234045472058,8.73624999999999,101.90691289376, 3137P 3635
+-96.5234045472058,7.118125,0.,0.15,0.,0.,0.; 3137P 3636
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3139P 3637
+101.90691289376,-96.5234045472058,8.73624999999999, 3139P 3638
+101.90691289376,-83.7225488452825,8.73624999999999,0., 3139P 3639
+1.186637840271,0.,0.,0.; 3139P 3640
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3141P 3641
+101.90691289376,-83.7225488452825,7.118125,101.90691289376, 3141P 3642
+-96.5234045472058,7.118125,-1.186637840271,0.,0.,0.,0.; 3141P 3643
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 3143P 3644
+-83.7225488452825,8.73624999999999,101.90691289376, 3143P 3645
+-83.7225488452825,7.118125,0.,0.15,0.,0.,0.; 3143P 3646
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3145P 3647
+1.,101.90691289376,-83.7225488452825,8.73624999999999, 3145P 3648
+102.706327256509,-83.7225488452825,8.73624999999999,0., 3145P 3649
+0.0741056187947589,0.,0.,0.; 3145P 3650
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3147P 3651
+1.,1.,102.706327256509,-83.7225488452825,7.118125, 3147P 3652
+101.90691289376,-83.7225488452825,7.118125,-0.0741056187947589, 3147P 3653
+0.,0.,0.,0.; 3147P 3654
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3149P 3655
+-83.7225488452825,8.73624999999999,102.706327256509, 3149P 3656
+-83.7225488452825,7.118125,0.,0.15,0.,0.,0.; 3149P 3657
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3151P 3658
+1.,102.706327256509,-83.7225488452825,8.73624999999999, 3151P 3659
+102.706327256509,-83.1232450272155,8.73624999999999,0., 3151P 3660
+0.0555553944905611,0.,0.,0.; 3151P 3661
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3153P 3662
+1.,1.,102.706327256509,-83.1232450272155,7.118125, 3153P 3663
+102.706327256509,-83.7225488452825,7.118125,-0.0555553944905611, 3153P 3664
+0.,0.,0.,0.; 3153P 3665
+126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 3155P 3666
+83.6559584462526,-83.1232450272155,8.73625,97.6569286670568, 3155P 3667
+-83.1232450272155,8.73624999999999,0.,1.29788831710816,0.,0.,0.; 3155P 3668
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 3157P 3669
+-83.1232450272155,8.73625,83.6559584462526,-83.1232450272155, 3157P 3670
+7.118125,0.,0.15,0.,0.,0.; 3157P 3671
+126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 3159P 3672
+97.6569286670568,-83.1232450272155,7.118125,83.6559584462526, 3159P 3673
+-83.1232450272155,7.118125,-1.29788831710816,0.,0.,0.,0.; 3159P 3674
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3161P 3675
+-83.1232450272156,8.73624999999999,97.6569286670568, 3161P 3676
+-83.1232450272156,7.118125,0.,0.15,0.,0.,0.; 3161P 3677
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3163P 3678
+1.,97.6569286670568,-83.1232450272156,8.73624999999999, 3163P 3679
+97.6569286670568,-83.7225488452825,8.73624999999999,0., 3163P 3680
+0.0555553944905611,0.,0.,0.; 3163P 3681
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3165P 3682
+1.,1.,97.6569286670568,-83.7225488452825,7.118125, 3165P 3683
+97.6569286670568,-83.1232450272156,7.118125,-0.0555553944905611, 3165P 3684
+0.,0.,0.,0.; 3165P 3685
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3167P 3686
+-83.7225488452825,8.73624999999999,97.6569286670568, 3167P 3687
+-83.7225488452825,7.118125,0.,0.15,0.,0.,0.; 3167P 3688
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3169P 3689
+1.,97.6569286670568,-83.7225488452825,8.73624999999999, 3169P 3690
+98.4563430298053,-83.7225488452825,8.73624999999999,0., 3169P 3691
+0.0741056187947589,0.,0.,0.; 3169P 3692
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3171P 3693
+1.,1.,98.4563430298053,-83.7225488452825,7.118125, 3171P 3694
+97.6569286670568,-83.7225488452825,7.118125,-0.0741056187947589, 3171P 3695
+0.,0.,0.,0.; 3171P 3696
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 3173P 3697
+-83.7225488452825,8.73624999999999,98.4563430298053, 3173P 3698
+-83.7225488452825,7.118125,0.,0.15,0.,0.,0.; 3173P 3699
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3175P 3700
+98.4563430298053,-83.7225488452825,8.73624999999999, 3175P 3701
+98.4563430298053,-96.5234045472058,8.73624999999999,0., 3175P 3702
+1.186637840271,0.,0.,0.; 3175P 3703
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3177P 3704
+98.4563430298053,-96.5234045472058,7.118125,98.4563430298053, 3177P 3705
+-83.7225488452825,7.118125,-1.186637840271,0.,0.,0.,0.; 3177P 3706
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 3179P 3707
+-96.5234045472058,8.73624999999999,98.4563430298053, 3179P 3708
+-96.5234045472058,7.118125,0.,0.15,0.,0.,0.; 3179P 3709
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3181P 3710
+1.,98.4563430298053,-96.5234045472058,8.73624999999999, 3181P 3711
+97.6569286670568,-96.5234045472058,8.73624999999999,0., 3181P 3712
+0.0741056187947589,0.,0.,0.; 3181P 3713
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3183P 3714
+1.,1.,97.6569286670568,-96.5234045472058,7.118125, 3183P 3715
+98.4563430298053,-96.5234045472058,7.118125,-0.0741056187947589, 3183P 3716
+0.,0.,0.,0.; 3183P 3717
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3185P 3718
+-96.5234045472058,8.73624999999999,97.6569286670568, 3185P 3719
+-96.5234045472058,7.118125,0.,0.15,0.,0.,0.; 3185P 3720
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3187P 3721
+1.,97.6569286670568,-96.5234045472058,8.73624999999999, 3187P 3722
+97.6569286670568,-97.1227083652728,8.73624999999999,0., 3187P 3723
+0.0555553944905611,0.,0.,0.; 3187P 3724
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3189P 3725
+1.,1.,97.6569286670568,-97.1227083652728,7.118125, 3189P 3726
+97.6569286670568,-96.5234045472058,7.118125,-0.0555553944905611, 3189P 3727
+0.,0.,0.,0.; 3189P 3728
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3191P 3729
+-97.1227083652727,8.73624999999999,97.6569286670568, 3191P 3730
+-97.1227083652727,7.118125,0.,0.15,0.,0.,0.; 3191P 3731
+126,1,1,0,0,1,0,0.,0.,1.29788912455241,1.29788912455241,1.,1., 3193P 3732
+97.6569286670568,-97.1227083652727,8.73624999999999, 3193P 3733
+83.6559497359477,-97.1227083652727,8.73625,0.,1.29788912455241, 3193P 3734
+0.,0.,0.; 3193P 3735
+126,1,1,0,0,1,0,-1.29788912455241,-1.29788912455241,0.,0.,1.,1., 3195P 3736
+83.6559497359477,-97.1227083652727,7.118125,97.6569286670568, 3195P 3737
+-97.1227083652727,7.118125,-1.29788912455241,0.,0.,0.,0.; 3195P 3738
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559497359477, 3197P 3739
+-97.1227083652727,8.73625,83.6559497359477,-97.1227083652727, 3197P 3740
+7.118125,0.,0.15,0.,0.,0.; 3197P 3741
+126,1,1,0,0,1,0,0.,0.,0.0555553944964288,0.0555553944964288,1., 3199P 3742
+1.,83.6559497359477,-97.1227083652727,8.73625,83.6559584462526, 3199P 3743
+-96.5234045472058,8.73625,0.,0.0555553944964288,0.,0.,0.; 3199P 3744
+126,1,1,0,0,1,0,-0.0555553944964288,-0.0555553944964288,0.,0., 3201P 3745
+1.,1.,83.6559584462526,-96.5234045472058,7.118125, 3201P 3746
+83.6559497359477,-97.1227083652727,7.118125,-0.0555553944964288, 3201P 3747
+0.,0.,0.,0.; 3201P 3748
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 3203P 3749
+-96.5234045472058,8.73625,83.6559584462526,-96.5234045472058, 3203P 3750
+7.118125,0.,0.15,0.,0.,0.; 3203P 3751
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3205P 3752
+1.,83.6559584462526,-96.5234045472058,8.73625,82.8565440835041, 3205P 3753
+-96.5234045472058,8.73625,0.,0.0741056187947589,0.,0.,0.; 3205P 3754
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3207P 3755
+1.,1.,82.8565440835041,-96.5234045472058,7.118125, 3207P 3756
+83.6559584462526,-96.5234045472058,7.118125,-0.0741056187947589, 3207P 3757
+0.,0.,0.,0.; 3207P 3758
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 3209P 3759
+-96.5234045472058,8.73625,82.8565440835042,-96.5234045472058, 3209P 3760
+7.118125,0.,0.15,0.,0.,0.; 3209P 3761
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3211P 3762
+82.8565440835042,-96.5234045472058,8.73625,82.8565440835042, 3211P 3763
+-83.7225488452825,8.73625,0.,1.186637840271,0.,0.,0.; 3211P 3764
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3213P 3765
+82.8565440835042,-83.7225488452825,7.118125,82.8565440835042, 3213P 3766
+-96.5234045472058,7.118125,-1.186637840271,0.,0.,0.,0.; 3213P 3767
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 3215P 3768
+-83.7225488452825,8.73625,82.8565440835042,-83.7225488452825, 3215P 3769
+7.118125,0.,0.15,0.,0.,0.; 3215P 3770
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3217P 3771
+1.,82.8565440835042,-83.7225488452825,8.73625,83.6559584462526, 3217P 3772
+-83.7225488452825,8.73625,0.,0.0741056187947589,0.,0.,0.; 3217P 3773
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3219P 3774
+1.,1.,83.6559584462526,-83.7225488452825,7.118125, 3219P 3775
+82.8565440835042,-83.7225488452825,7.118125,-0.0741056187947589, 3219P 3776
+0.,0.,0.,0.; 3219P 3777
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 3221P 3778
+-83.7225488452825,8.73625,83.6559584462526,-83.7225488452825, 3221P 3779
+7.118125,0.,0.15,0.,0.,0.; 3221P 3780
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3223P 3781
+1.,83.6559584462526,-83.7225488452825,8.73625,83.6559584462526, 3223P 3782
+-83.1232450272155,8.73625,0.,0.0555553944905611,0.,0.,0.; 3223P 3783
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3225P 3784
+1.,1.,83.6559584462526,-83.1232450272155,7.118125, 3225P 3785
+83.6559584462526,-83.7225488452825,7.118125,-0.0555553944905611, 3225P 3786
+0.,0.,0.,0.; 3225P 3787
+126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 3227P 3788
+64.6055896359963,-83.1232450272155,8.73625,78.6065598568005, 3227P 3789
+-83.1232450272155,8.73625,0.,1.29788831710816,0.,0.,0.; 3227P 3790
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3229P 3791
+-83.1232450272155,8.73625,64.6055896359963,-83.1232450272155, 3229P 3792
+7.118125,0.,0.15,0.,0.,0.; 3229P 3793
+126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 3231P 3794
+78.6065598568005,-83.1232450272155,7.118125,64.6055896359963, 3231P 3795
+-83.1232450272155,7.118125,-1.29788831710816,0.,0.,0.,0.; 3231P 3796
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3233P 3797
+-83.1232450272156,8.73625,78.6065598568005,-83.1232450272156, 3233P 3798
+7.118125,0.,0.15,0.,0.,0.; 3233P 3799
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3235P 3800
+1.,78.6065598568005,-83.1232450272156,8.73625,78.6065598568005, 3235P 3801
+-83.7225488452825,8.73625,0.,0.0555553944905611,0.,0.,0.; 3235P 3802
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3237P 3803
+1.,1.,78.6065598568005,-83.7225488452825,7.118125, 3237P 3804
+78.6065598568005,-83.1232450272156,7.118125,-0.0555553944905611, 3237P 3805
+0.,0.,0.,0.; 3237P 3806
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3239P 3807
+-83.7225488452825,8.73625,78.6065598568005,-83.7225488452825, 3239P 3808
+7.118125,0.,0.15,0.,0.,0.; 3239P 3809
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3241P 3810
+1.,78.6065598568005,-83.7225488452825,8.73625,79.405974219549, 3241P 3811
+-83.7225488452825,8.73625,0.,0.0741056187947589,0.,0.,0.; 3241P 3812
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3243P 3813
+1.,1.,79.405974219549,-83.7225488452825,7.118125, 3243P 3814
+78.6065598568005,-83.7225488452825,7.118125,-0.0741056187947589, 3243P 3815
+0.,0.,0.,0.; 3243P 3816
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 3245P 3817
+-83.7225488452825,8.73625,79.4059742195489,-83.7225488452825, 3245P 3818
+7.118125,0.,0.15,0.,0.,0.; 3245P 3819
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3247P 3820
+79.4059742195489,-83.7225488452825,8.73625,79.4059742195489, 3247P 3821
+-96.5234045472058,8.73625,0.,1.186637840271,0.,0.,0.; 3247P 3822
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3249P 3823
+79.4059742195489,-96.5234045472058,7.118125,79.4059742195489, 3249P 3824
+-83.7225488452825,7.118125,-1.186637840271,0.,0.,0.,0.; 3249P 3825
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 3251P 3826
+-96.5234045472058,8.73625,79.4059742195489,-96.5234045472058, 3251P 3827
+7.118125,0.,0.15,0.,0.,0.; 3251P 3828
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3253P 3829
+1.,79.4059742195489,-96.5234045472058,8.73625,78.6065598568005, 3253P 3830
+-96.5234045472058,8.73625,0.,0.0741056187947589,0.,0.,0.; 3253P 3831
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3255P 3832
+1.,1.,78.6065598568005,-96.5234045472058,7.118125, 3255P 3833
+79.4059742195489,-96.5234045472058,7.118125,-0.0741056187947589, 3255P 3834
+0.,0.,0.,0.; 3255P 3835
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3257P 3836
+-96.5234045472058,8.73625,78.6065598568005,-96.5234045472058, 3257P 3837
+7.118125,0.,0.15,0.,0.,0.; 3257P 3838
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3259P 3839
+1.,78.6065598568005,-96.5234045472058,8.73625,78.6065598568005, 3259P 3840
+-97.1227083652728,8.73625,0.,0.0555553944905611,0.,0.,0.; 3259P 3841
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3261P 3842
+1.,1.,78.6065598568005,-97.1227083652728,7.118125, 3261P 3843
+78.6065598568005,-96.5234045472058,7.118125,-0.0555553944905611, 3261P 3844
+0.,0.,0.,0.; 3261P 3845
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3263P 3846
+-97.1227083652727,8.73625,78.6065598568005,-97.1227083652727, 3263P 3847
+7.118125,0.,0.15,0.,0.,0.; 3263P 3848
+126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 3265P 3849
+78.6065598568005,-97.1227083652727,8.73625,64.6055896359963, 3265P 3850
+-97.1227083652727,8.73625,0.,1.29788831710816,0.,0.,0.; 3265P 3851
+126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 3267P 3852
+64.6055896359963,-97.1227083652727,7.118125,78.6065598568005, 3267P 3853
+-97.1227083652727,7.118125,-1.29788831710816,0.,0.,0.,0.; 3267P 3854
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3269P 3855
+-97.1227083652727,8.73625,64.6055896359963,-97.1227083652727, 3269P 3856
+7.118125,0.,0.15,0.,0.,0.; 3269P 3857
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3271P 3858
+1.,64.6055896359963,-97.1227083652727,8.73625,64.6055896359963, 3271P 3859
+-96.5234045472058,8.73625,0.,0.0555553944905611,0.,0.,0.; 3271P 3860
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3273P 3861
+1.,1.,64.6055896359963,-96.5234045472058,7.118125, 3273P 3862
+64.6055896359963,-97.1227083652727,7.118125,-0.0555553944905611, 3273P 3863
+0.,0.,0.,0.; 3273P 3864
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3275P 3865
+-96.5234045472058,8.73625,64.6055896359963,-96.5234045472058, 3275P 3866
+7.118125,0.,0.15,0.,0.,0.; 3275P 3867
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3277P 3868
+1.,64.6055896359963,-96.5234045472058,8.73625,63.8061752732478, 3277P 3869
+-96.5234045472058,8.73625,0.,0.0741056187947589,0.,0.,0.; 3277P 3870
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3279P 3871
+1.,1.,63.8061752732478,-96.5234045472058,7.118125, 3279P 3872
+64.6055896359963,-96.5234045472058,7.118125,-0.0741056187947589, 3279P 3873
+0.,0.,0.,0.; 3279P 3874
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 3281P 3875
+-96.5234045472058,8.73625,63.8061752732478,-96.5234045472058, 3281P 3876
+7.118125,0.,0.15,0.,0.,0.; 3281P 3877
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3283P 3878
+63.8061752732478,-96.5234045472058,8.73625,63.8061752732478, 3283P 3879
+-83.7225488452825,8.73625,0.,1.186637840271,0.,0.,0.; 3283P 3880
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3285P 3881
+63.8061752732478,-83.7225488452825,7.118125,63.8061752732478, 3285P 3882
+-96.5234045472058,7.118125,-1.186637840271,0.,0.,0.,0.; 3285P 3883
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 3287P 3884
+-83.7225488452825,8.73625,63.8061752732478,-83.7225488452825, 3287P 3885
+7.118125,0.,0.15,0.,0.,0.; 3287P 3886
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3289P 3887
+1.,63.8061752732478,-83.7225488452825,8.73625,64.6055896359963, 3289P 3888
+-83.7225488452825,8.73625,0.,0.0741056187947589,0.,0.,0.; 3289P 3889
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3291P 3890
+1.,1.,64.6055896359963,-83.7225488452825,7.118125, 3291P 3891
+63.8061752732478,-83.7225488452825,7.118125,-0.0741056187947589, 3291P 3892
+0.,0.,0.,0.; 3291P 3893
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3293P 3894
+-83.7225488452825,8.73625,64.6055896359963,-83.7225488452825, 3293P 3895
+7.118125,0.,0.15,0.,0.,0.; 3293P 3896
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3295P 3897
+1.,64.6055896359963,-83.7225488452825,8.73625,64.6055896359963, 3295P 3898
+-83.1232450272155,8.73625,0.,0.0555553944905611,0.,0.,0.; 3295P 3899
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3297P 3900
+1.,1.,64.6055896359963,-83.1232450272155,7.118125, 3297P 3901
+64.6055896359963,-83.7225488452825,7.118125,-0.0555553944905611, 3297P 3902
+0.,0.,0.,0.; 3297P 3903
+126,1,1,0,0,1,0,0.,0.,1.29779546101888,1.29779546101888,1.,1., 3299P 3904
+45.556222510803,-83.1232450272155,8.73625,59.5561910465442, 3299P 3905
+-83.1232450272155,8.73625,0.,1.29779546101888,0.,0.,0.; 3299P 3906
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 3301P 3907
+-83.1232450272155,8.73625,45.556222510803,-83.1232450272155, 3301P 3908
+7.118125,0.,0.15,0.,0.,0.; 3301P 3909
+126,1,1,0,0,1,0,-1.29779546101888,-1.29779546101888,0.,0.,1.,1., 3303P 3910
+59.5561910465442,-83.1232450272155,7.118125,45.556222510803, 3303P 3911
+-83.1232450272155,7.118125,-1.29779546101888,0.,0.,0.,0.; 3303P 3912
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 3305P 3913
+-83.1232450272156,8.73625,59.5561910465442,-83.1232450272156, 3305P 3914
+7.118125,0.,0.15,0.,0.,0.; 3305P 3915
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3307P 3916
+1.,59.5561910465442,-83.1232450272156,8.73625,59.5561910465442, 3307P 3917
+-83.7225488452825,8.73625,0.,0.0555553944905611,0.,0.,0.; 3307P 3918
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3309P 3919
+1.,1.,59.5561910465442,-83.7225488452825,7.118125, 3309P 3920
+59.5561910465442,-83.1232450272156,7.118125,-0.0555553944905611, 3309P 3921
+0.,0.,0.,0.; 3309P 3922
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 3311P 3923
+-83.7225488452825,8.73625,59.5561910465442,-83.7225488452825, 3311P 3924
+7.118125,0.,0.15,0.,0.,0.; 3311P 3925
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3313P 3926
+1.,59.5561910465442,-83.7225488452825,8.73625,60.3556054092927, 3313P 3927
+-83.7225488452825,8.73625,0.,0.0741056187947589,0.,0.,0.; 3313P 3928
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3315P 3929
+1.,1.,60.3556054092927,-83.7225488452825,7.118125, 3315P 3930
+59.5561910465442,-83.7225488452825,7.118125,-0.0741056187947589, 3315P 3931
+0.,0.,0.,0.; 3315P 3932
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3556054092926, 3317P 3933
+-83.7225488452825,8.73625,60.3556054092926,-83.7225488452825, 3317P 3934
+7.118125,0.,0.15,0.,0.,0.; 3317P 3935
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3319P 3936
+60.3556054092926,-83.7225488452825,8.73625,60.3556054092926, 3319P 3937
+-96.5234045472058,8.73625,0.,1.186637840271,0.,0.,0.; 3319P 3938
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3321P 3939
+60.3556054092926,-96.5234045472058,7.118125,60.3556054092926, 3321P 3940
+-83.7225488452825,7.118125,-1.186637840271,0.,0.,0.,0.; 3321P 3941
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3556054092926, 3323P 3942
+-96.5234045472058,8.73625,60.3556054092926,-96.5234045472058, 3323P 3943
+7.118125,0.,0.15,0.,0.,0.; 3323P 3944
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3325P 3945
+1.,60.3556054092926,-96.5234045472058,8.73625,59.5561910465442, 3325P 3946
+-96.5234045472058,8.73625,0.,0.0741056187947589,0.,0.,0.; 3325P 3947
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3327P 3948
+1.,1.,59.5561910465442,-96.5234045472058,7.118125, 3327P 3949
+60.3556054092926,-96.5234045472058,7.118125,-0.0741056187947589, 3327P 3950
+0.,0.,0.,0.; 3327P 3951
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 3329P 3952
+-96.5234045472058,8.73625,59.5561910465442,-96.5234045472058, 3329P 3953
+7.118125,0.,0.15,0.,0.,0.; 3329P 3954
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3331P 3955
+1.,59.5561910465442,-96.5234045472058,8.73625,59.5561910465442, 3331P 3956
+-97.1227083652728,8.73625,0.,0.0555553944905611,0.,0.,0.; 3331P 3957
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3333P 3958
+1.,1.,59.5561910465442,-97.1227083652728,7.118125, 3333P 3959
+59.5561910465442,-96.5234045472058,7.118125,-0.0555553944905611, 3333P 3960
+0.,0.,0.,0.; 3333P 3961
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 3335P 3962
+-97.1227083652727,8.73625,59.5561910465442,-97.1227083652727, 3335P 3963
+7.118125,0.,0.15,0.,0.,0.; 3335P 3964
+126,1,1,0,0,1,0,0.,0.,1.29779546101888,1.29779546101888,1.,1., 3337P 3965
+59.5561910465442,-97.1227083652727,8.73625,45.556222510803, 3337P 3966
+-97.1227083652727,8.73625,0.,1.29779546101888,0.,0.,0.; 3337P 3967
+126,1,1,0,0,1,0,-1.29779546101888,-1.29779546101888,0.,0.,1.,1., 3339P 3968
+45.556222510803,-97.1227083652727,7.11812500000001, 3339P 3969
+59.5561910465442,-97.1227083652727,7.118125,-1.29779546101888, 3339P 3970
+0.,0.,0.,0.; 3339P 3971
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 3341P 3972
+-97.1227083652727,8.73625,45.556222510803,-97.1227083652727, 3341P 3973
+7.118125,0.,0.15,0.,0.,0.; 3341P 3974
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3343P 3975
+1.,45.556222510803,-97.1227083652727,8.73625,45.556222510803, 3343P 3976
+-96.5234045472058,8.73625,0.,0.0555553944905611,0.,0.,0.; 3343P 3977
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3345P 3978
+1.,1.,45.556222510803,-96.5234045472058,7.118125, 3345P 3979
+45.556222510803,-97.1227083652727,7.118125,-0.0555553944905611, 3345P 3980
+0.,0.,0.,0.; 3345P 3981
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 3347P 3982
+-96.5234045472058,8.73625,45.556222510803,-96.5234045472058, 3347P 3983
+7.118125,0.,0.15,0.,0.,0.; 3347P 3984
+126,1,1,0,0,1,0,0.,0.,0.0741621398925787,0.0741621398925787,1., 3349P 3985
+1.,45.556222510803,-96.5234045472058,8.73625,44.7561984267118, 3349P 3986
+-96.5234045472058,8.73625,0.,0.0741621398925787,0.,0.,0.; 3349P 3987
+126,1,1,0,0,1,0,-0.0741621398925787,-0.0741621398925787,0.,0., 3351P 3988
+1.,1.,44.7561984267118,-96.5234045472058,7.118125, 3351P 3989
+45.556222510803,-96.5234045472058,7.118125,-0.0741621398925787, 3351P 3990
+0.,0.,0.,0.; 3351P 3991
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7561984267118, 3353P 3992
+-96.5234045472058,8.73625,44.7561984267118,-96.5234045472058, 3353P 3993
+7.118125,0.,0.15,0.,0.,0.; 3353P 3994
+126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3355P 3995
+44.7561984267118,-96.5234045472058,8.73625,44.7561984267118, 3355P 3996
+-83.7225488452825,8.73625,0.,1.186637840271,0.,0.,0.; 3355P 3997
+126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3357P 3998
+44.7561984267118,-83.7225488452825,7.118125,44.7561984267118, 3357P 3999
+-96.5234045472058,7.118125,-1.186637840271,0.,0.,0.,0.; 3357P 4000
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7561984267118, 3359P 4001
+-83.7225488452825,8.73625,44.7561984267118,-83.7225488452825, 3359P 4002
+7.118125,0.,0.15,0.,0.,0.; 3359P 4003
+126,1,1,0,0,1,0,0.,0.,0.0741621398925787,0.0741621398925787,1., 3361P 4004
+1.,44.7561984267118,-83.7225488452825,8.73625,45.556222510803, 3361P 4005
+-83.7225488452825,8.73625,0.,0.0741621398925787,0.,0.,0.; 3361P 4006
+126,1,1,0,0,1,0,-0.0741621398925787,-0.0741621398925787,0.,0., 3363P 4007
+1.,1.,45.556222510803,-83.7225488452825,7.118125, 3363P 4008
+44.7561984267118,-83.7225488452825,7.118125,-0.0741621398925787, 3363P 4009
+0.,0.,0.,0.; 3363P 4010
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 3365P 4011
+-83.7225488452825,8.73625,45.556222510803,-83.7225488452825, 3365P 4012
+7.118125,0.,0.15,0.,0.,0.; 3365P 4013
+126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3367P 4014
+1.,45.556222510803,-83.7225488452825,8.73625,45.556222510803, 3367P 4015
+-83.1232450272155,8.73625,0.,0.0555553944905611,0.,0.,0.; 3367P 4016
+126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3369P 4017
+1.,1.,45.556222510803,-83.1232450272155,7.118125, 3369P 4018
+45.556222510803,-83.7225488452825,7.118125,-0.0555553944905611, 3369P 4019
+0.,0.,0.,0.; 3369P 4020
+126,1,1,0,0,1,0,0.,0.,1.29791011810303,1.29791011810303,1.,1., 3371P 4021
+140.806868895161,-64.0711428662849,8.73624999999999, 3371P 4022
+154.808074294198,-64.0711428662849,8.73624999999999,0., 3371P 4023
+1.29791011810303,0.,0.,0.; 3371P 4024
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 3373P 4025
+-64.0711428662849,8.73624999999999,140.806868895161, 3373P 4026
+-64.0711428662849,7.11812499999999,0.,0.15,0.,0.,0.; 3373P 4027
+126,1,1,0,0,1,0,-1.29791011810303,-1.29791011810303,0.,0.,1.,1., 3375P 4028
+154.808074294198,-64.0711428662849,7.11812499999999, 3375P 4029
+140.806868895161,-64.0711428662849,7.11812499999999, 3375P 4030
+-1.29791011810303,0.,0.,0.,0.; 3375P 4031
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 3377P 4032
+-64.0711428662849,8.73624999999999,154.808074294198, 3377P 4033
+-64.0711428662849,7.11812499999999,0.,0.15,0.,0.,0.; 3377P 4034
+126,1,1,0,0,1,0,0.,0.,0.0557168833414714,0.0557168833414714,1., 3379P 4035
+1.,154.808074294198,-64.0711428662849,8.73624999999999, 3379P 4036
+154.808074294198,-64.672188745331,8.73624999999999,0., 3379P 4037
+0.0557168833414714,0.,0.,0.; 3379P 4038
+126,1,1,0,0,1,0,-0.0557168833414714,-0.0557168833414714,0.,0., 3381P 4039
+1.,1.,154.808074294198,-64.672188745331,7.11812499999999, 3381P 4040
+154.808074294198,-64.0711428662849,7.11812499999999, 3381P 4041
+-0.0557168833414714,0.,0.,0.,0.; 3381P 4042
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 3383P 4043
+-64.672188745331,8.73624999999999,154.808074294198, 3383P 4044
+-64.672188745331,7.11812499999999,0.,0.15,0.,0.,0.; 3383P 4045
+126,1,1,0,0,1,0,0.,0.,0.0740926997042853,0.0740926997042853,1., 3385P 4046
+1.,154.808074294198,-64.672188745331,8.73624999999999, 3385P 4047
+155.607349292068,-64.6721713247213,8.73624999999999,0., 3385P 4048
+0.0740926997042853,0.,0.,0.; 3385P 4049
+126,1,1,0,0,1,0,-0.0740926997042853,-0.0740926997042853,0.,0., 3387P 4050
+1.,1.,155.607349292068,-64.6721713247213,7.11812499999999, 3387P 4051
+154.808074294198,-64.672188745331,7.11812499999999, 3387P 4052
+-0.0740926997042853,0.,0.,0.,0.; 3387P 4053
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 3389P 4054
+-64.6721713247213,8.73624999999999,155.607349292068, 3389P 4055
+-64.6721713247213,7.11812499999999,0.,0.15,0.,0.,0.; 3389P 4056
+126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3391P 4057
+155.607349292068,-64.6721713247213,8.73624999999999, 3391P 4058
+155.607349292068,-77.4716159572515,8.73624999999999,0., 3391P 4059
+1.18650703430176,0.,0.,0.; 3391P 4060
+126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3393P 4061
+155.607349292068,-77.4716159572515,7.11812499999999, 3393P 4062
+155.607349292068,-64.6721713247213,7.11812499999999, 3393P 4063
+-1.18650703430176,0.,0.,0.,0.; 3393P 4064
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 3395P 4065
+-77.4716159572515,8.73624999999999,155.607349292068, 3395P 4066
+-77.4716159572515,7.11812499999999,0.,0.15,0.,0.,0.; 3395P 4067
+126,1,1,0,0,1,0,0.,0.,0.0740926997042853,0.0740926997042853,1., 3397P 4068
+1.,155.607349292068,-77.4716159572515,8.73624999999999, 3397P 4069
+154.808074294198,-77.4716333778612,8.73624999999999,0., 3397P 4070
+0.0740926997042853,0.,0.,0.; 3397P 4071
+126,1,1,0,0,1,0,-0.0740926997042853,-0.0740926997042853,0.,0., 3399P 4072
+1.,1.,154.808074294198,-77.4716333778612,7.11812499999999, 3399P 4073
+155.607349292068,-77.4716159572515,7.11812499999999, 3399P 4074
+-0.0740926997042853,0.,0.,0.,0.; 3399P 4075
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 3401P 4076
+-77.4716333778613,8.73624999999999,154.808074294198, 3401P 4077
+-77.4716333778613,7.11812499999999,0.,0.15,0.,0.,0.; 3401P 4078
+126,1,1,0,0,1,0,0.,0.,0.0556862004597996,0.0556862004597996,1., 3403P 4079
+1.,154.808074294198,-77.4716333778613,8.73624999999999, 3403P 4080
+154.808074294198,-78.0723482653214,8.73624999999999,0., 3403P 4081
+0.0556862004597996,0.,0.,0.; 3403P 4082
+126,1,1,0,0,1,0,-0.0556862004597996,-0.0556862004597996,0.,0., 3405P 4083
+1.,1.,154.808074294198,-78.0723482653214,7.11812499999999, 3405P 4084
+154.808074294198,-77.4716333778613,7.11812499999999, 3405P 4085
+-0.0556862004597996,0.,0.,0.,0.; 3405P 4086
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 3407P 4087
+-78.0723482653214,8.73624999999999,154.808074294198, 3407P 4088
+-78.0723482653214,7.11812499999999,0.,0.15,0.,0.,0.; 3407P 4089
+126,1,1,0,0,1,0,0.,0.,1.2979097143819,1.2979097143819,1.,1., 3409P 4090
+154.808074294198,-78.0723482653214,8.73624999999999, 3409P 4091
+140.806873250314,-78.0723308447116,8.73624999999999,0., 3409P 4092
+1.2979097143819,0.,0.,0.; 3409P 4093
+126,1,1,0,0,1,0,-1.2979097143819,-1.2979097143819,0.,0.,1.,1., 3411P 4094
+140.806873250314,-78.0723308447116,7.11812499999999, 3411P 4095
+154.808074294198,-78.0723482653214,7.11812499999999, 3411P 4096
+-1.2979097143819,0.,0.,0.,0.; 3411P 4097
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 3413P 4098
+-78.0723308447116,8.73624999999999,140.806873250314, 3413P 4099
+-78.0723308447116,7.11812499999999,0.,0.15,0.,0.,0.; 3413P 4100
+126,1,1,0,0,1,0,0.,0.,0.0556862004612666,0.0556862004612666,1., 3415P 4101
+1.,140.806873250314,-78.0723308447116,8.73624999999999, 3415P 4102
+140.806868895161,-77.4716159572514,8.73624999999999,0., 3415P 4103
+0.0556862004612666,0.,0.,0.; 3415P 4104
+126,1,1,0,0,1,0,-0.0556862004612666,-0.0556862004612666,0.,0., 3417P 4105
+1.,1.,140.806868895161,-77.4716159572514,7.11812499999999, 3417P 4106
+140.806873250314,-78.0723308447116,7.11812499999999, 3417P 4107
+-0.0556862004612666,0.,0.,0.,0.; 3417P 4108
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 3419P 4109
+-77.4716159572515,8.73624999999999,140.806868895161, 3419P 4110
+-77.4716159572515,7.11812499999999,0.,0.15,0.,0.,0.; 3419P 4111
+126,1,1,0,0,1,0,0.,0.,0.0740874513166314,0.0740874513166314,1., 3421P 4112
+1.,140.806868895161,-77.4716159572515,8.73624999999999, 3421P 4113
+140.007650514273,-77.4716333778613,8.73624999999999,0., 3421P 4114
+0.0740874513166314,0.,0.,0.; 3421P 4115
+126,1,1,0,0,1,0,-0.0740874513166314,-0.0740874513166314,0.,0., 3423P 4116
+1.,1.,140.007650514273,-77.4716333778613,7.11812499999999, 3423P 4117
+140.806868895161,-77.4716159572515,7.11812499999999, 3423P 4118
+-0.0740874513166314,0.,0.,0.,0.; 3423P 4119
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007650514273, 3425P 4120
+-77.4716333778613,8.73624999999999,140.007650514273, 3425P 4121
+-77.4716333778613,7.11812499999999,0.,0.15,0.,0.,0.; 3425P 4122
+126,1,1,0,0,1,0,0.,0.,1.18652964274096,1.18652964274096,1.,1., 3427P 4123
+140.007650514273,-77.4716333778613,8.73624999999999, 3427P 4124
+140.007654869426,-64.671944856794,8.73624999999999,0., 3427P 4125
+1.18652964274096,0.,0.,0.; 3427P 4126
+126,1,1,0,0,1,0,-1.18652964274096,-1.18652964274096,0.,0.,1.,1., 3429P 4127
+140.007654869426,-64.671944856794,7.11812499999999, 3429P 4128
+140.007650514273,-77.4716333778613,7.11812499999999, 3429P 4129
+-1.18652964274096,0.,0.,0.,0.; 3429P 4130
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007654869426, 3431P 4131
+-64.6719448567939,8.73624999999999,140.007654869426, 3431P 4132
+-64.6719448567939,7.11812499999999,0.,0.15,0.,0.,0.; 3431P 4133
+126,1,1,0,0,1,0,0.,0.,0.0740874512990315,0.0740874512990315,1., 3433P 4134
+1.,140.007654869426,-64.6719448567939,8.73624999999999, 3433P 4135
+140.806873250314,-64.6719448567939,8.73624999999999,0., 3433P 4136
+0.0740874512990315,0.,0.,0.; 3433P 4137
+126,1,1,0,0,1,0,-0.0740874512990315,-0.0740874512990315,0.,0., 3435P 4138
+1.,1.,140.806873250314,-64.6719448567939,7.11812499999999, 3435P 4139
+140.007654869426,-64.6719448567939,7.11812499999999, 3435P 4140
+-0.0740874512990315,0.,0.,0.,0.; 3435P 4141
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 3437P 4142
+-64.6719448567939,8.73624999999999,140.806873250314, 3437P 4143
+-64.6719448567939,7.11812499999999,0.,0.15,0.,0.,0.; 3437P 4144
+126,1,1,0,0,1,0,0.,0.,0.0556942749038067,0.0556942749038067,1., 3439P 4145
+1.,140.806873250314,-64.6719448567939,8.73624999999999, 3439P 4146
+140.806868895161,-64.0711428662849,8.73624999999999,0., 3439P 4147
+0.0556942749038067,0.,0.,0.; 3439P 4148
+126,1,1,0,0,1,0,-0.0556942749038067,-0.0556942749038067,0.,0., 3441P 4149
+1.,1.,140.806868895161,-64.0711428662849,7.11812499999999, 3441P 4150
+140.806873250314,-64.6719448567939,7.11812499999999, 3441P 4151
+-0.0556942749038067,0.,0.,0.,0.; 3441P 4152
+126,1,1,0,0,1,0,0.,0.,1.29788872083028,1.29788872083028,1.,1., 3443P 4153
+121.756696066765,-64.0711428662849,8.73624999999999, 3443P 4154
+135.757670642722,-64.0711428662849,8.73624999999999,0., 3443P 4155
+1.29788872083028,0.,0.,0.; 3443P 4156
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3445P 4157
+-64.0711428662849,8.73624999999999,121.756696066765, 3445P 4158
+-64.0711428662849,7.11812499999999,0.,0.15,0.,0.,0.; 3445P 4159
+126,1,1,0,0,1,0,-1.29788872083028,-1.29788872083028,0.,0.,1.,1., 3447P 4160
+135.757670642722,-64.0711428662849,7.11812499999999, 3447P 4161
+121.756696066765,-64.0711428662849,7.118125,-1.29788872083028, 3447P 4162
+0.,0.,0.,0.; 3447P 4163
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3449P 4164
+-64.0711428662849,8.73624999999999,135.757670642722, 3449P 4165
+-64.0711428662849,7.11812499999999,0.,0.15,0.,0.,0.; 3449P 4166
+126,1,1,0,0,1,0,0.,0.,0.0684050623575843,0.0684050623575843,1., 3451P 4167
+1.,135.757670642722,-64.0711428662849,8.73624999999999, 3451P 4168
+135.757670642722,-64.8090624764673,8.73624999999999,0., 3451P 4169
+0.0684050623575843,0.,0.,0.; 3451P 4170
+126,1,1,0,0,1,0,-0.0684050623575843,-0.0684050623575843,0.,0., 3453P 4171
+1.,1.,135.757670642722,-64.8090624764673,7.11812499999999, 3453P 4172
+135.757670642722,-64.0711428662849,7.11812499999999, 3453P 4173
+-0.0684050623575843,0.,0.,0.,0.; 3453P 4174
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3455P 4175
+-64.8090624764674,8.73624999999999,135.757670642722, 3455P 4176
+-64.8090624764674,7.11812499999999,0.,0.15,0.,0.,0.; 3455P 4177
+126,1,1,0,0,1,0,0.,0.,0.0740967369255563,0.0740967369255563,1., 3457P 4178
+1.,135.757670642722,-64.8090624764674,8.73624999999999, 3457P 4179
+136.556989192117,-64.8090450558576,8.73624999999999,0., 3457P 4180
+0.0740967369255563,0.,0.,0.; 3457P 4181
+126,1,1,0,0,1,0,-0.0740967369255563,-0.0740967369255563,0.,0., 3459P 4182
+1.,1.,136.556989192117,-64.8090450558576,7.11812499999999, 3459P 4183
+135.757670642722,-64.8090624764674,7.11812499999999, 3459P 4184
+-0.0740967369255563,0.,0.,0.,0.; 3459P 4185
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 3461P 4186
+-64.8090450558576,8.73624999999999,136.556989192117, 3461P 4187
+-64.8090450558576,7.11812499999999,0.,0.15,0.,0.,0.; 3461P 4188
+126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3463P 4189
+136.556989192117,-64.8090450558576,8.73624999999999, 3463P 4190
+136.556989192117,-77.6084896883878,8.73624999999999,0., 3463P 4191
+1.18650703430176,0.,0.,0.; 3463P 4192
+126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3465P 4193
+136.556989192117,-77.6084896883878,7.11812499999999, 3465P 4194
+136.556989192117,-64.8090450558576,7.11812499999999, 3465P 4195
+-1.18650703430176,0.,0.,0.,0.; 3465P 4196
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 3467P 4197
+-77.6084896883878,8.73624999999999,136.556989192117, 3467P 4198
+-77.6084896883878,7.11812499999999,0.,0.15,0.,0.,0.; 3467P 4199
+126,1,1,0,0,1,0,0.,0.,0.0740967369255563,0.0740967369255563,1., 3469P 4200
+1.,136.556989192117,-77.6084896883878,8.73624999999999, 3469P 4201
+135.757670642722,-77.6085071089976,8.73624999999999,0., 3469P 4202
+0.0740967369255563,0.,0.,0.; 3469P 4203
+126,1,1,0,0,1,0,-0.0740967369255563,-0.0740967369255563,0.,0., 3471P 4204
+1.,1.,135.757670642722,-77.6085071089976,7.11812499999999, 3471P 4205
+136.556989192117,-77.6084896883878,7.11812499999999, 3471P 4206
+-0.0740967369255563,0.,0.,0.,0.; 3471P 4207
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3473P 4208
+-77.6085071089976,8.73624999999999,135.757670642722, 3473P 4209
+-77.6085071089976,7.11812499999999,0.,0.15,0.,0.,0.; 3473P 4210
+126,1,1,0,0,1,0,0.,0.,0.0429980214436831,0.0429980214436831,1., 3475P 4211
+1.,135.757670642722,-77.6085071089976,8.73624999999999, 3475P 4212
+135.757670642722,-78.0723482653213,8.73624999999999,0., 3475P 4213
+0.0429980214436831,0.,0.,0.; 3475P 4214
+126,1,1,0,0,1,0,-0.0429980214436831,-0.0429980214436831,0.,0., 3477P 4215
+1.,1.,135.757670642722,-78.0723482653213,7.11812499999999, 3477P 4216
+135.757670642722,-77.6085071089976,7.11812499999999, 3477P 4217
+-0.0429980214436831,0.,0.,0.,0.; 3477P 4218
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3479P 4219
+-78.0723482653213,8.73624999999999,135.757670642722, 3479P 4220
+-78.0723482653213,7.11812499999999,0.,0.15,0.,0.,0.; 3479P 4221
+126,1,1,0,0,1,0,0.,0.,1.29788872083129,1.29788872083129,1.,1., 3481P 4222
+135.757670642722,-78.0723482653213,8.73624999999999, 3481P 4223
+121.756696066765,-78.0723308447116,8.73624999999999,0., 3481P 4224
+1.29788872083129,0.,0.,0.; 3481P 4225
+126,1,1,0,0,1,0,-1.29788872083129,-1.29788872083129,0.,0.,1.,1., 3483P 4226
+121.756696066765,-78.0723308447116,7.118125,135.757670642722, 3483P 4227
+-78.0723482653213,7.11812499999999,-1.29788872083129,0.,0.,0., 3483P 4228
+0.; 3483P 4229
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3485P 4230
+-78.0723308447116,8.73624999999999,121.756696066765, 3485P 4231
+-78.0723308447116,7.11812499999999,0.,0.15,0.,0.,0.; 3485P 4232
+126,1,1,0,0,1,0,0.,0.,0.0556862004598031,0.0556862004598031,1., 3487P 4233
+1.,121.756696066765,-78.0723308447116,8.73624999999999, 3487P 4234
+121.756696066765,-77.4716159572514,8.73624999999999,0., 3487P 4235
+0.0556862004598031,0.,0.,0.; 3487P 4236
+126,1,1,0,0,1,0,-0.0556862004598031,-0.0556862004598031,0.,0., 3489P 4237
+1.,1.,121.756696066765,-77.4716159572514,7.118125, 3489P 4238
+121.756696066765,-78.0723308447116,7.118125,-0.0556862004598031, 3489P 4239
+0.,0.,0.,0.; 3489P 4240
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3491P 4241
+-77.4716159572515,8.73624999999999,121.756696066765, 3491P 4242
+-77.4716159572515,7.11812499999999,0.,0.15,0.,0.,0.; 3491P 4243
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3493P 4244
+1.,121.756696066765,-77.4716159572515,8.73624999999999, 3493P 4245
+120.957281704017,-77.4716333778613,8.73624999999999,0., 3493P 4246
+0.0741056188123544,0.,0.,0.; 3493P 4247
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3495P 4248
+1.,1.,120.957281704017,-77.4716333778613,7.118125, 3495P 4249
+121.756696066765,-77.4716159572515,7.118125,-0.0741056188123544, 3495P 4250
+0.,0.,0.,0.; 3495P 4251
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 3497P 4252
+-77.4716333778613,8.73624999999999,120.957281704017, 3497P 4253
+-77.4716333778613,7.11812499999999,0.,0.15,0.,0.,0.; 3497P 4254
+126,1,1,0,0,1,0,0.,0.,1.18652964274089,1.18652964274089,1.,1., 3499P 4255
+120.957281704017,-77.4716333778613,8.73624999999999, 3499P 4256
+120.957281704017,-64.671944856794,8.73624999999999,0., 3499P 4257
+1.18652964274089,0.,0.,0.; 3499P 4258
+126,1,1,0,0,1,0,-1.18652964274089,-1.18652964274089,0.,0.,1.,1., 3501P 4259
+120.957281704017,-64.671944856794,7.118125,120.957281704017, 3501P 4260
+-77.4716333778613,7.118125,-1.18652964274089,0.,0.,0.,0.; 3501P 4261
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 3503P 4262
+-64.6719448567939,8.73624999999999,120.957281704017, 3503P 4263
+-64.6719448567939,7.11812499999999,0.,0.15,0.,0.,0.; 3503P 4264
+126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3505P 4265
+1.,120.957281704017,-64.6719448567939,8.73624999999999, 3505P 4266
+121.756696066765,-64.6719448567939,8.73624999999999,0., 3505P 4267
+0.0741056187947589,0.,0.,0.; 3505P 4268
+126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3507P 4269
+1.,1.,121.756696066765,-64.6719448567939,7.118125, 3507P 4270
+120.957281704017,-64.6719448567939,7.118125,-0.0741056187947589, 3507P 4271
+0.,0.,0.,0.; 3507P 4272
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3509P 4273
+-64.6719448567939,8.73624999999999,121.756696066765, 3509P 4274
+-64.6719448567939,7.11812499999999,0.,0.15,0.,0.,0.; 3509P 4275
+126,1,1,0,0,1,0,0.,0.,0.0556942749023435,0.0556942749023435,1., 3511P 4276
+1.,121.756696066765,-64.6719448567939,8.73624999999999, 3511P 4277
+121.756696066765,-64.0711428662849,8.73624999999999,0., 3511P 4278
+0.0556942749023435,0.,0.,0.; 3511P 4279
+126,1,1,0,0,1,0,-0.0556942749023435,-0.0556942749023435,0.,0., 3513P 4280
+1.,1.,121.756696066765,-64.0711428662849,7.118125, 3513P 4281
+121.756696066765,-64.6719448567939,7.118125,-0.0556942749023435, 3513P 4282
+0.,0.,0.,0.; 3513P 4283
+126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 3515P 4284
+102.706327256509,-64.0713519136024,8.73624999999999, 3515P 4285
+116.707297477313,-64.0713693342122,8.73624999999999,0., 3515P 4286
+1.29788831710916,0.,0.,0.; 3515P 4287
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3517P 4288
+-64.0713519136024,8.73624999999999,102.706327256509, 3517P 4289
+-64.0713519136024,7.118125,0.,0.15,0.,0.,0.; 3517P 4290
+126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 3519P 4291
+116.707297477313,-64.0713693342122,7.118125,102.706327256509, 3519P 4292
+-64.0713519136024,7.118125,-1.29788831710916,0.,0.,0.,0.; 3519P 4293
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 3521P 4294
+-64.0713693342122,8.73624999999999,116.707297477313, 3521P 4295
+-64.0713693342122,7.11812499999999,0.,0.15,0.,0.,0.; 3521P 4296
+126,1,1,0,0,1,0,0.,0.,0.0556958897908544,0.0556958897908544,1., 3523P 4297
+1.,116.707297477313,-64.0713693342122,8.73624999999999, 3523P 4298
+116.707297477313,-64.672188745331,8.73624999999999,0., 3523P 4299
+0.0556958897908544,0.,0.,0.; 3523P 4300
+126,1,1,0,0,1,0,-0.0556958897908544,-0.0556958897908544,0.,0., 3525P 4301
+1.,1.,116.707297477313,-64.672188745331,7.118125, 3525P 4302
+116.707297477313,-64.0713693342122,7.118125,-0.0556958897908544, 3525P 4303
+0.,0.,0.,0.; 3525P 4304
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 3527P 4305
+-64.6721887453311,8.73624999999999,116.707297477313, 3527P 4306
+-64.6721887453311,7.11812499999999,0.,0.15,0.,0.,0.; 3527P 4307
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3529P 4308
+1.,116.707297477313,-64.6721887453311,8.73624999999999, 3529P 4309
+117.506711840062,-64.6721713247213,8.73624999999999,0., 3529P 4310
+0.0741056188123544,0.,0.,0.; 3529P 4311
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3531P 4312
+1.,1.,117.506711840062,-64.6721713247213,7.118125, 3531P 4313
+116.707297477313,-64.6721887453311,7.118125,-0.0741056188123544, 3531P 4314
+0.,0.,0.,0.; 3531P 4315
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506711840062, 3533P 4316
+-64.6721713247213,8.73624999999999,117.506711840062, 3533P 4317
+-64.6721713247213,7.11812499999999,0.,0.15,0.,0.,0.; 3533P 4318
+126,1,1,0,0,1,0,0.,0.,1.18650703430203,1.18650703430203,1.,1., 3535P 4319
+117.506711840062,-64.6721713247213,8.73624999999999, 3535P 4320
+117.506720550367,-77.4716159572515,8.73624999999999,0., 3535P 4321
+1.18650703430203,0.,0.,0.; 3535P 4322
+126,1,1,0,0,1,0,-1.18650703430203,-1.18650703430203,0.,0.,1.,1., 3537P 4323
+117.506720550367,-77.4716159572515,7.118125,117.506711840062, 3537P 4324
+-64.6721713247213,7.118125,-1.18650703430203,0.,0.,0.,0.; 3537P 4325
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506720550367, 3539P 4326
+-77.4716159572515,8.73624999999999,117.506720550367, 3539P 4327
+-77.4716159572515,7.11812499999999,0.,0.15,0.,0.,0.; 3539P 4328
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3541P 4329
+1.,117.506720550367,-77.4716159572515,8.73624999999999, 3541P 4330
+116.707306187618,-77.4716333778612,8.73624999999999,0., 3541P 4331
+0.0741056188123544,0.,0.,0.; 3541P 4332
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3543P 4333
+1.,1.,116.707306187618,-77.4716333778612,7.118125, 3543P 4334
+117.506720550367,-77.4716159572515,7.118125,-0.0741056188123544, 3543P 4335
+0.,0.,0.,0.; 3543P 4336
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707306187618, 3545P 4337
+-77.4716333778613,8.73624999999999,116.707306187618, 3545P 4338
+-77.4716333778613,7.11812499999999,0.,0.15,0.,0.,0.; 3545P 4339
+126,1,1,0,0,1,0,0.,0.,0.0556862004656535,0.0556862004656535,1., 3547P 4340
+1.,116.707306187618,-77.4716333778613,8.73624999999999, 3547P 4341
+116.707297477313,-78.0723482653214,8.73624999999999,0., 3547P 4342
+0.0556862004656535,0.,0.,0.; 3547P 4343
+126,1,1,0,0,1,0,-0.0556862004656535,-0.0556862004656535,0.,0., 3549P 4344
+1.,1.,116.707297477313,-78.0723482653214,7.118125, 3549P 4345
+116.707306187618,-77.4716333778613,7.118125,-0.0556862004656535, 3549P 4346
+0.,0.,0.,0.; 3549P 4347
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 3551P 4348
+-78.0723482653214,8.73624999999999,116.707297477313, 3551P 4349
+-78.0723482653214,7.11812499999999,0.,0.15,0.,0.,0.; 3551P 4350
+126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 3553P 4351
+116.707297477313,-78.0723482653214,8.73624999999999, 3553P 4352
+102.706327256509,-78.0723308447116,8.73624999999999,0., 3553P 4353
+1.29788831710916,0.,0.,0.; 3553P 4354
+126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 3555P 4355
+102.706327256509,-78.0723308447116,7.118125,116.707297477313, 3555P 4356
+-78.0723482653214,7.118125,-1.29788831710916,0.,0.,0.,0.; 3555P 4357
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3557P 4358
+-78.0723308447116,8.73624999999999,102.706327256509, 3557P 4359
+-78.0723308447116,7.118125,0.,0.15,0.,0.,0.; 3557P 4360
+126,1,1,0,0,1,0,0.,0.,0.0556862004598031,0.0556862004598031,1., 3559P 4361
+1.,102.706327256509,-78.0723308447116,8.73624999999999, 3559P 4362
+102.706327256509,-77.4716159572514,8.73624999999999,0., 3559P 4363
+0.0556862004598031,0.,0.,0.; 3559P 4364
+126,1,1,0,0,1,0,-0.0556862004598031,-0.0556862004598031,0.,0., 3561P 4365
+1.,1.,102.706327256509,-77.4716159572514,7.118125, 3561P 4366
+102.706327256509,-78.0723308447116,7.118125,-0.0556862004598031, 3561P 4367
+0.,0.,0.,0.; 3561P 4368
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3563P 4369
+-77.4716159572515,8.73624999999999,102.706327256509, 3563P 4370
+-77.4716159572515,7.118125,0.,0.15,0.,0.,0.; 3563P 4371
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3565P 4372
+1.,102.706327256509,-77.4716159572515,8.73624999999999, 3565P 4373
+101.90691289376,-77.4716333778613,8.73624999999999,0., 3565P 4374
+0.0741056188123544,0.,0.,0.; 3565P 4375
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3567P 4376
+1.,1.,101.90691289376,-77.4716333778613,7.118125, 3567P 4377
+102.706327256509,-77.4716159572515,7.118125,-0.0741056188123544, 3567P 4378
+0.,0.,0.,0.; 3567P 4379
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 3569P 4380
+-77.4716333778613,8.73624999999999,101.90691289376, 3569P 4381
+-77.4716333778613,7.118125,0.,0.15,0.,0.,0.; 3569P 4382
+126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3571P 4383
+101.90691289376,-77.4716333778613,8.73624999999999, 3571P 4384
+101.90691289376,-64.672188745331,8.73624999999999,0., 3571P 4385
+1.18650703430176,0.,0.,0.; 3571P 4386
+126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3573P 4387
+101.90691289376,-64.672188745331,7.118125,101.90691289376, 3573P 4388
+-77.4716333778613,7.118125,-1.18650703430176,0.,0.,0.,0.; 3573P 4389
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 3575P 4390
+-64.672188745331,8.73624999999999,101.90691289376, 3575P 4391
+-64.672188745331,7.118125,0.,0.15,0.,0.,0.; 3575P 4392
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3577P 4393
+1.,101.90691289376,-64.672188745331,8.73624999999999, 3577P 4394
+102.706327256509,-64.6721713247213,8.73624999999999,0., 3577P 4395
+0.0741056188123544,0.,0.,0.; 3577P 4396
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3579P 4397
+1.,1.,102.706327256509,-64.6721713247213,7.118125, 3579P 4398
+101.90691289376,-64.672188745331,7.118125,-0.0741056188123544, 3579P 4399
+0.,0.,0.,0.; 3579P 4400
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3581P 4401
+-64.6721713247213,8.73624999999999,102.706327256509, 3581P 4402
+-64.6721713247213,7.118125,0.,0.15,0.,0.,0.; 3581P 4403
+126,1,1,0,0,1,0,0.,0.,0.0556958897908544,0.0556958897908544,1., 3583P 4404
+1.,102.706327256509,-64.6721713247213,8.73624999999999, 3583P 4405
+102.706327256509,-64.0713519136024,8.73624999999999,0., 3583P 4406
+0.0556958897908544,0.,0.,0.; 3583P 4407
+126,1,1,0,0,1,0,-0.0556958897908544,-0.0556958897908544,0.,0., 3585P 4408
+1.,1.,102.706327256509,-64.0713519136024,7.118125, 3585P 4409
+102.706327256509,-64.6721713247213,7.118125,-0.0556958897908544, 3585P 4410
+0.,0.,0.,0.; 3585P 4411
+126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 3587P 4412
+83.6559584462526,-64.0713519136024,8.73625,97.6569286670568, 3587P 4413
+-64.0713693342122,8.73624999999999,0.,1.29788831710916,0.,0.,0.; 3587P 4414
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 3589P 4415
+-64.0713519136024,8.73625,83.6559584462526,-64.0713519136024, 3589P 4416
+7.118125,0.,0.15,0.,0.,0.; 3589P 4417
+126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 3591P 4418
+97.6569286670568,-64.0713693342122,7.118125,83.6559584462526, 3591P 4419
+-64.0713519136024,7.118125,-1.29788831710916,0.,0.,0.,0.; 3591P 4420
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3593P 4421
+-64.0713693342122,8.73624999999999,97.6569286670568, 3593P 4422
+-64.0713693342122,7.118125,0.,0.15,0.,0.,0.; 3593P 4423
+126,1,1,0,0,1,0,0.,0.,0.0556958897908544,0.0556958897908544,1., 3595P 4424
+1.,97.6569286670568,-64.0713693342122,8.73624999999999, 3595P 4425
+97.6569286670568,-64.672188745331,8.73624999999999,0., 3595P 4426
+0.0556958897908544,0.,0.,0.; 3595P 4427
+126,1,1,0,0,1,0,-0.0556958897908544,-0.0556958897908544,0.,0., 3597P 4428
+1.,1.,97.6569286670568,-64.672188745331,7.118125, 3597P 4429
+97.6569286670568,-64.0713693342122,7.118125,-0.0556958897908544, 3597P 4430
+0.,0.,0.,0.; 3597P 4431
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3599P 4432
+-64.6721887453311,8.73624999999999,97.6569286670568, 3599P 4433
+-64.6721887453311,7.118125,0.,0.15,0.,0.,0.; 3599P 4434
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3601P 4435
+1.,97.6569286670568,-64.6721887453311,8.73624999999999, 3601P 4436
+98.4563430298053,-64.6721713247213,8.73624999999999,0., 3601P 4437
+0.0741056188123544,0.,0.,0.; 3601P 4438
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3603P 4439
+1.,1.,98.4563430298053,-64.6721713247213,7.118125, 3603P 4440
+97.6569286670568,-64.6721887453311,7.118125,-0.0741056188123544, 3603P 4441
+0.,0.,0.,0.; 3603P 4442
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 3605P 4443
+-64.6721713247213,8.73624999999999,98.4563430298053, 3605P 4444
+-64.6721713247213,7.118125,0.,0.15,0.,0.,0.; 3605P 4445
+126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3607P 4446
+98.4563430298053,-64.6721713247213,8.73624999999999, 3607P 4447
+98.4563430298053,-77.4716159572515,8.73624999999999,0., 3607P 4448
+1.18650703430176,0.,0.,0.; 3607P 4449
+126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3609P 4450
+98.4563430298053,-77.4716159572515,7.118125,98.4563430298053, 3609P 4451
+-64.6721713247213,7.118125,-1.18650703430176,0.,0.,0.,0.; 3609P 4452
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 3611P 4453
+-77.4716159572515,8.73624999999999,98.4563430298053, 3611P 4454
+-77.4716159572515,7.118125,0.,0.15,0.,0.,0.; 3611P 4455
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3613P 4456
+1.,98.4563430298053,-77.4716159572515,8.73624999999999, 3613P 4457
+97.6569286670568,-77.4716333778612,8.73624999999999,0., 3613P 4458
+0.0741056188123544,0.,0.,0.; 3613P 4459
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3615P 4460
+1.,1.,97.6569286670568,-77.4716333778612,7.118125, 3615P 4461
+98.4563430298053,-77.4716159572515,7.118125,-0.0741056188123544, 3615P 4462
+0.,0.,0.,0.; 3615P 4463
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3617P 4464
+-77.4716333778613,8.73624999999999,97.6569286670568, 3617P 4465
+-77.4716333778613,7.118125,0.,0.15,0.,0.,0.; 3617P 4466
+126,1,1,0,0,1,0,0.,0.,0.0556862004597996,0.0556862004597996,1., 3619P 4467
+1.,97.6569286670568,-77.4716333778613,8.73624999999999, 3619P 4468
+97.6569286670568,-78.0723482653214,8.73624999999999,0., 3619P 4469
+0.0556862004597996,0.,0.,0.; 3619P 4470
+126,1,1,0,0,1,0,-0.0556862004597996,-0.0556862004597996,0.,0., 3621P 4471
+1.,1.,97.6569286670568,-78.0723482653214,7.118125, 3621P 4472
+97.6569286670568,-77.4716333778613,7.118125,-0.0556862004597996, 3621P 4473
+0.,0.,0.,0.; 3621P 4474
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3623P 4475
+-78.0723482653214,8.73624999999999,97.6569286670568, 3623P 4476
+-78.0723482653214,7.118125,0.,0.15,0.,0.,0.; 3623P 4477
+126,1,1,0,0,1,0,0.,0.,1.29788912455341,1.29788912455341,1.,1., 3625P 4478
+97.6569286670568,-78.0723482653214,8.73624999999999, 3625P 4479
+83.6559497359477,-78.0723308447116,8.73625,0.,1.29788912455341, 3625P 4480
+0.,0.,0.; 3625P 4481
+126,1,1,0,0,1,0,-1.29788912455341,-1.29788912455341,0.,0.,1.,1., 3627P 4482
+83.6559497359477,-78.0723308447116,7.118125,97.6569286670568, 3627P 4483
+-78.0723482653214,7.118125,-1.29788912455341,0.,0.,0.,0.; 3627P 4484
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559497359477, 3629P 4485
+-78.0723308447116,8.73625,83.6559497359477,-78.0723308447116, 3629P 4486
+7.118125,0.,0.15,0.,0.,0.; 3629P 4487
+126,1,1,0,0,1,0,0.,0.,0.055686200465657,0.055686200465657,1.,1., 3631P 4488
+83.6559497359477,-78.0723308447116,8.73625,83.6559584462526, 3631P 4489
+-77.4716159572514,8.73625,0.,0.055686200465657,0.,0.,0.; 3631P 4490
+126,1,1,0,0,1,0,-0.055686200465657,-0.055686200465657,0.,0.,1., 3633P 4491
+1.,83.6559584462526,-77.4716159572514,7.118125,83.6559497359477, 3633P 4492
+-78.0723308447116,7.118125,-0.055686200465657,0.,0.,0.,0.; 3633P 4493
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 3635P 4494
+-77.4716159572515,8.73625,83.6559584462526,-77.4716159572515, 3635P 4495
+7.118125,0.,0.15,0.,0.,0.; 3635P 4496
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3637P 4497
+1.,83.6559584462526,-77.4716159572515,8.73625,82.8565440835041, 3637P 4498
+-77.4716333778613,8.73625,0.,0.0741056188123544,0.,0.,0.; 3637P 4499
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3639P 4500
+1.,1.,82.8565440835041,-77.4716333778613,7.118125, 3639P 4501
+83.6559584462526,-77.4716159572515,7.118125,-0.0741056188123544, 3639P 4502
+0.,0.,0.,0.; 3639P 4503
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 3641P 4504
+-77.4716333778613,8.73625,82.8565440835042,-77.4716333778613, 3641P 4505
+7.118125,0.,0.15,0.,0.,0.; 3641P 4506
+126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3643P 4507
+82.8565440835042,-77.4716333778613,8.73625,82.8565440835042, 3643P 4508
+-64.672188745331,8.73625,0.,1.18650703430176,0.,0.,0.; 3643P 4509
+126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3645P 4510
+82.8565440835042,-64.672188745331,7.118125,82.8565440835042, 3645P 4511
+-77.4716333778613,7.118125,-1.18650703430176,0.,0.,0.,0.; 3645P 4512
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 3647P 4513
+-64.672188745331,8.73625,82.8565440835042,-64.672188745331, 3647P 4514
+7.118125,0.,0.15,0.,0.,0.; 3647P 4515
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3649P 4516
+1.,82.8565440835042,-64.672188745331,8.73625,83.6559584462526, 3649P 4517
+-64.6721713247213,8.73625,0.,0.0741056188123544,0.,0.,0.; 3649P 4518
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3651P 4519
+1.,1.,83.6559584462526,-64.6721713247213,7.118125, 3651P 4520
+82.8565440835042,-64.672188745331,7.118125,-0.0741056188123544, 3651P 4521
+0.,0.,0.,0.; 3651P 4522
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 3653P 4523
+-64.6721713247213,8.73625,83.6559584462526,-64.6721713247213, 3653P 4524
+7.118125,0.,0.15,0.,0.,0.; 3653P 4525
+126,1,1,0,0,1,0,0.,0.,0.0556958897908544,0.0556958897908544,1., 3655P 4526
+1.,83.6559584462526,-64.6721713247213,8.73625,83.6559584462526, 3655P 4527
+-64.0713519136024,8.73625,0.,0.0556958897908544,0.,0.,0.; 3655P 4528
+126,1,1,0,0,1,0,-0.0556958897908544,-0.0556958897908544,0.,0., 3657P 4529
+1.,1.,83.6559584462526,-64.0713519136024,7.118125, 3657P 4530
+83.6559584462526,-64.6721713247213,7.118125,-0.0556958897908544, 3657P 4531
+0.,0.,0.,0.; 3657P 4532
+126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 3659P 4533
+64.6055896359963,-64.0713519136024,8.73625,78.6065598568005, 3659P 4534
+-64.0713693342122,8.73625,0.,1.29788831710916,0.,0.,0.; 3659P 4535
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3661P 4536
+-64.0713519136024,8.73625,64.6055896359963,-64.0713519136024, 3661P 4537
+7.118125,0.,0.15,0.,0.,0.; 3661P 4538
+126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 3663P 4539
+78.6065598568005,-64.0713693342122,7.118125,64.6055896359963, 3663P 4540
+-64.0713519136024,7.118125,-1.29788831710916,0.,0.,0.,0.; 3663P 4541
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3665P 4542
+-64.0713693342122,8.73625,78.6065598568005,-64.0713693342122, 3665P 4543
+7.118125,0.,0.15,0.,0.,0.; 3665P 4544
+126,1,1,0,0,1,0,0.,0.,0.0556958897908544,0.0556958897908544,1., 3667P 4545
+1.,78.6065598568005,-64.0713693342122,8.73625,78.6065598568005, 3667P 4546
+-64.672188745331,8.73625,0.,0.0556958897908544,0.,0.,0.; 3667P 4547
+126,1,1,0,0,1,0,-0.0556958897908544,-0.0556958897908544,0.,0., 3669P 4548
+1.,1.,78.6065598568005,-64.672188745331,7.118125, 3669P 4549
+78.6065598568005,-64.0713693342122,7.118125,-0.0556958897908544, 3669P 4550
+0.,0.,0.,0.; 3669P 4551
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3671P 4552
+-64.6721887453311,8.73625,78.6065598568005,-64.6721887453311, 3671P 4553
+7.118125,0.,0.15,0.,0.,0.; 3671P 4554
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3673P 4555
+1.,78.6065598568005,-64.6721887453311,8.73625,79.405974219549, 3673P 4556
+-64.6721713247213,8.73625,0.,0.0741056188123544,0.,0.,0.; 3673P 4557
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3675P 4558
+1.,1.,79.405974219549,-64.6721713247213,7.118125, 3675P 4559
+78.6065598568005,-64.6721887453311,7.118125,-0.0741056188123544, 3675P 4560
+0.,0.,0.,0.; 3675P 4561
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 3677P 4562
+-64.6721713247213,8.73625,79.4059742195489,-64.6721713247213, 3677P 4563
+7.118125,0.,0.15,0.,0.,0.; 3677P 4564
+126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3679P 4565
+79.4059742195489,-64.6721713247213,8.73625,79.4059742195489, 3679P 4566
+-77.4716159572515,8.73625,0.,1.18650703430176,0.,0.,0.; 3679P 4567
+126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3681P 4568
+79.4059742195489,-77.4716159572515,7.118125,79.4059742195489, 3681P 4569
+-64.6721713247213,7.118125,-1.18650703430176,0.,0.,0.,0.; 3681P 4570
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 3683P 4571
+-77.4716159572515,8.73625,79.4059742195489,-77.4716159572515, 3683P 4572
+7.118125,0.,0.15,0.,0.,0.; 3683P 4573
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3685P 4574
+1.,79.4059742195489,-77.4716159572515,8.73625,78.6065598568005, 3685P 4575
+-77.4716333778612,8.73625,0.,0.0741056188123544,0.,0.,0.; 3685P 4576
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3687P 4577
+1.,1.,78.6065598568005,-77.4716333778612,7.118125, 3687P 4578
+79.4059742195489,-77.4716159572515,7.118125,-0.0741056188123544, 3687P 4579
+0.,0.,0.,0.; 3687P 4580
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3689P 4581
+-77.4716333778613,8.73625,78.6065598568005,-77.4716333778613, 3689P 4582
+7.118125,0.,0.15,0.,0.,0.; 3689P 4583
+126,1,1,0,0,1,0,0.,0.,0.0556862004597996,0.0556862004597996,1., 3691P 4584
+1.,78.6065598568005,-77.4716333778613,8.73625,78.6065598568005, 3691P 4585
+-78.0723482653214,8.73625,0.,0.0556862004597996,0.,0.,0.; 3691P 4586
+126,1,1,0,0,1,0,-0.0556862004597996,-0.0556862004597996,0.,0., 3693P 4587
+1.,1.,78.6065598568005,-78.0723482653214,7.118125, 3693P 4588
+78.6065598568005,-77.4716333778613,7.118125,-0.0556862004597996, 3693P 4589
+0.,0.,0.,0.; 3693P 4590
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3695P 4591
+-78.0723482653214,8.73625,78.6065598568005,-78.0723482653214, 3695P 4592
+7.118125,0.,0.15,0.,0.,0.; 3695P 4593
+126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 3697P 4594
+78.6065598568005,-78.0723482653214,8.73625,64.6055896359963, 3697P 4595
+-78.0723308447116,8.73625,0.,1.29788831710916,0.,0.,0.; 3697P 4596
+126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 3699P 4597
+64.6055896359963,-78.0723308447116,7.118125,78.6065598568005, 3699P 4598
+-78.0723482653214,7.118125,-1.29788831710916,0.,0.,0.,0.; 3699P 4599
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3701P 4600
+-78.0723308447116,8.73625,64.6055896359963,-78.0723308447116, 3701P 4601
+7.118125,0.,0.15,0.,0.,0.; 3701P 4602
+126,1,1,0,0,1,0,0.,0.,0.0556862004598031,0.0556862004598031,1., 3703P 4603
+1.,64.6055896359963,-78.0723308447116,8.73625,64.6055896359963, 3703P 4604
+-77.4716159572514,8.73625,0.,0.0556862004598031,0.,0.,0.; 3703P 4605
+126,1,1,0,0,1,0,-0.0556862004598031,-0.0556862004598031,0.,0., 3705P 4606
+1.,1.,64.6055896359963,-77.4716159572514,7.118125, 3705P 4607
+64.6055896359963,-78.0723308447116,7.118125,-0.0556862004598031, 3705P 4608
+0.,0.,0.,0.; 3705P 4609
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3707P 4610
+-77.4716159572515,8.73625,64.6055896359963,-77.4716159572515, 3707P 4611
+7.118125,0.,0.15,0.,0.,0.; 3707P 4612
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3709P 4613
+1.,64.6055896359963,-77.4716159572515,8.73625,63.8061752732478, 3709P 4614
+-77.4716333778613,8.73625,0.,0.0741056188123544,0.,0.,0.; 3709P 4615
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3711P 4616
+1.,1.,63.8061752732478,-77.4716333778613,7.118125, 3711P 4617
+64.6055896359963,-77.4716159572515,7.118125,-0.0741056188123544, 3711P 4618
+0.,0.,0.,0.; 3711P 4619
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 3713P 4620
+-77.4716333778613,8.73625,63.8061752732478,-77.4716333778613, 3713P 4621
+7.118125,0.,0.15,0.,0.,0.; 3713P 4622
+126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3715P 4623
+63.8061752732478,-77.4716333778613,8.73625,63.8061752732478, 3715P 4624
+-64.672188745331,8.73625,0.,1.18650703430176,0.,0.,0.; 3715P 4625
+126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3717P 4626
+63.8061752732478,-64.672188745331,7.118125,63.8061752732478, 3717P 4627
+-77.4716333778613,7.118125,-1.18650703430176,0.,0.,0.,0.; 3717P 4628
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 3719P 4629
+-64.672188745331,8.73625,63.8061752732478,-64.672188745331, 3719P 4630
+7.118125,0.,0.15,0.,0.,0.; 3719P 4631
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3721P 4632
+1.,63.8061752732478,-64.672188745331,8.73625,64.6055896359963, 3721P 4633
+-64.6721713247213,8.73625,0.,0.0741056188123544,0.,0.,0.; 3721P 4634
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3723P 4635
+1.,1.,64.6055896359963,-64.6721713247213,7.118125, 3723P 4636
+63.8061752732478,-64.672188745331,7.118125,-0.0741056188123544, 3723P 4637
+0.,0.,0.,0.; 3723P 4638
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3725P 4639
+-64.6721713247213,8.73625,64.6055896359963,-64.6721713247213, 3725P 4640
+7.118125,0.,0.15,0.,0.,0.; 3725P 4641
+126,1,1,0,0,1,0,0.,0.,0.0556958897908544,0.0556958897908544,1., 3727P 4642
+1.,64.6055896359963,-64.6721713247213,8.73625,64.6055896359963, 3727P 4643
+-64.0713519136024,8.73625,0.,0.0556958897908544,0.,0.,0.; 3727P 4644
+126,1,1,0,0,1,0,-0.0556958897908544,-0.0556958897908544,0.,0., 3729P 4645
+1.,1.,64.6055896359963,-64.0713519136024,7.118125, 3729P 4646
+64.6055896359963,-64.6721713247213,7.118125,-0.0556958897908544, 3729P 4647
+0.,0.,0.,0.; 3729P 4648
+126,1,1,0,0,1,0,0.,0.,1.29779626846414,1.29779626846414,1.,1., 3731P 4649
+45.5564838199499,-64.0713519136024,8.73625,59.5564610659959, 3731P 4650
+-64.0713693342122,8.73625,0.,1.29779626846414,0.,0.,0.; 3731P 4651
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.5564838199499, 3733P 4652
+-64.0713519136024,8.73625,45.5564838199499,-64.0713519136024, 3733P 4653
+7.118125,0.,0.15,0.,0.,0.; 3733P 4654
+126,1,1,0,0,1,0,-1.29779626846414,-1.29779626846414,0.,0.,1.,1., 3735P 4655
+59.5564610659959,-64.0713693342122,7.118125,45.5564838199499, 3735P 4656
+-64.0713519136024,7.118125,-1.29779626846414,0.,0.,0.,0.; 3735P 4657
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5564610659959, 3737P 4658
+-64.0713693342122,8.73625,59.5564610659959,-64.0713693342122, 3737P 4659
+7.118125,0.,0.15,0.,0.,0.; 3737P 4660
+126,1,1,0,0,1,0,0.,0.,0.0556958897908544,0.0556958897908544,1., 3739P 4661
+1.,59.5564610659959,-64.0713693342122,8.73625,59.5564610659959, 3739P 4662
+-64.672188745331,8.73625,0.,0.0556958897908544,0.,0.,0.; 3739P 4663
+126,1,1,0,0,1,0,-0.0556958897908544,-0.0556958897908544,0.,0., 3741P 4664
+1.,1.,59.5564610659959,-64.672188745331,7.118125, 3741P 4665
+59.5564610659959,-64.0713693342122,7.118125,-0.0556958897908544, 3741P 4666
+0.,0.,0.,0.; 3741P 4667
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5564610659959, 3743P 4668
+-64.6721887453311,8.73625,59.5564610659959,-64.6721887453311, 3743P 4669
+7.118125,0.,0.15,0.,0.,0.; 3743P 4670
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3745P 4671
+1.,59.5564610659959,-64.6721887453311,8.73625,60.3558754287444, 3745P 4672
+-64.6721713247213,8.73625,0.,0.0741056188123544,0.,0.,0.; 3745P 4673
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3747P 4674
+1.,1.,60.3558754287444,-64.6721713247213,7.118125, 3747P 4675
+59.5564610659959,-64.6721887453311,7.118125,-0.0741056188123544, 3747P 4676
+0.,0.,0.,0.; 3747P 4677
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3558754287444, 3749P 4678
+-64.6721713247213,8.73625,60.3558754287444,-64.6721713247213, 3749P 4679
+7.118125,0.,0.15,0.,0.,0.; 3749P 4680
+126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3751P 4681
+60.3558754287444,-64.6721713247213,8.73625,60.3558754287444, 3751P 4682
+-77.4716159572515,8.73625,0.,1.18650703430176,0.,0.,0.; 3751P 4683
+126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3753P 4684
+60.3558754287444,-77.4716159572515,7.118125,60.3558754287444, 3753P 4685
+-64.6721713247213,7.118125,-1.18650703430176,0.,0.,0.,0.; 3753P 4686
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3558754287444, 3755P 4687
+-77.4716159572515,8.73625,60.3558754287444,-77.4716159572515, 3755P 4688
+7.118125,0.,0.15,0.,0.,0.; 3755P 4689
+126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3757P 4690
+1.,60.3558754287444,-77.4716159572515,8.73625,59.5564610659959, 3757P 4691
+-77.4716333778612,8.73625,0.,0.0741056188123544,0.,0.,0.; 3757P 4692
+126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3759P 4693
+1.,1.,59.5564610659959,-77.4716333778612,7.118125, 3759P 4694
+60.3558754287444,-77.4716159572515,7.118125,-0.0741056188123544, 3759P 4695
+0.,0.,0.,0.; 3759P 4696
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5564610659959, 3761P 4697
+-77.4716333778613,8.73625,59.5564610659959,-77.4716333778613, 3761P 4698
+7.118125,0.,0.15,0.,0.,0.; 3761P 4699
+126,1,1,0,0,1,0,0.,0.,0.0556862004597996,0.0556862004597996,1., 3763P 4700
+1.,59.5564610659959,-77.4716333778613,8.73625,59.5564610659959, 3763P 4701
+-78.0723482653214,8.73625,0.,0.0556862004597996,0.,0.,0.; 3763P 4702
+126,1,1,0,0,1,0,-0.0556862004597996,-0.0556862004597996,0.,0., 3765P 4703
+1.,1.,59.5564610659959,-78.0723482653214,7.118125, 3765P 4704
+59.5564610659959,-77.4716333778613,7.118125,-0.0556862004597996, 3765P 4705
+0.,0.,0.,0.; 3765P 4706
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5564610659959, 3767P 4707
+-78.0723482653214,8.73625,59.5564610659959,-78.0723482653214, 3767P 4708
+7.118125,0.,0.15,0.,0.,0.; 3767P 4709
+126,1,1,0,0,1,0,0.,0.,1.29779626846414,1.29779626846414,1.,1., 3769P 4710
+59.5564610659959,-78.0723482653214,8.73625,45.5564838199499, 3769P 4711
+-78.0723308447116,8.73625,0.,1.29779626846414,0.,0.,0.; 3769P 4712
+126,1,1,0,0,1,0,-1.29779626846414,-1.29779626846414,0.,0.,1.,1., 3771P 4713
+45.5564838199499,-78.0723308447116,7.11812500000001, 3771P 4714
+59.5564610659959,-78.0723482653214,7.118125,-1.29779626846414, 3771P 4715
+0.,0.,0.,0.; 3771P 4716
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.5564838199499, 3773P 4717
+-78.0723308447116,8.73625,45.5564838199499,-78.0723308447116, 3773P 4718
+7.118125,0.,0.15,0.,0.,0.; 3773P 4719
+126,1,1,0,0,1,0,0.,0.,0.0556862004598031,0.0556862004598031,1., 3775P 4720
+1.,45.5564838199499,-78.0723308447116,8.73625,45.5564838199499, 3775P 4721
+-77.4716159572514,8.73625,0.,0.0556862004598031,0.,0.,0.; 3775P 4722
+126,1,1,0,0,1,0,-0.0556862004598031,-0.0556862004598031,0.,0., 3777P 4723
+1.,1.,45.5564838199499,-77.4716159572514,7.118125, 3777P 4724
+45.5564838199499,-78.0723308447116,7.118125,-0.0556862004598031, 3777P 4725
+0.,0.,0.,0.; 3777P 4726
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.5564838199499, 3779P 4727
+-77.4716159572515,8.73625,45.5564838199499,-77.4716159572515, 3779P 4728
+7.118125,0.,0.15,0.,0.,0.; 3779P 4729
+126,1,1,0,0,1,0,0.,0.,0.0741621399101609,0.0741621399101609,1., 3781P 4730
+1.,45.5564838199499,-77.4716159572515,8.73625,44.7564597358587, 3781P 4731
+-77.4716333778613,8.73625,0.,0.0741621399101609,0.,0.,0.; 3781P 4732
+126,1,1,0,0,1,0,-0.0741621399101609,-0.0741621399101609,0.,0., 3783P 4733
+1.,1.,44.7564597358587,-77.4716333778613,7.118125, 3783P 4734
+45.5564838199499,-77.4716159572515,7.118125,-0.0741621399101609, 3783P 4735
+0.,0.,0.,0.; 3783P 4736
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7564597358587, 3785P 4737
+-77.4716333778613,8.73625,44.7564597358587,-77.4716333778613, 3785P 4738
+7.118125,0.,0.15,0.,0.,0.; 3785P 4739
+126,1,1,0,0,1,0,0.,0.,1.18650703430286,1.18650703430286,1.,1., 3787P 4740
+44.7564597358587,-77.4716333778613,8.73625,44.7564771564685, 3787P 4741
+-64.672188745331,8.73625,0.,1.18650703430286,0.,0.,0.; 3787P 4742
+126,1,1,0,0,1,0,-1.18650703430286,-1.18650703430286,0.,0.,1.,1., 3789P 4743
+44.7564771564685,-64.672188745331,7.118125,44.7564597358587, 3789P 4744
+-77.4716333778613,7.118125,-1.18650703430286,0.,0.,0.,0.; 3789P 4745
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7564771564685, 3791P 4746
+-64.672188745331,8.73625,44.7564771564685,-64.672188745331, 3791P 4747
+7.118125,0.,0.15,0.,0.,0.; 3791P 4748
+126,1,1,0,0,1,0,0.,0.,0.0741621399101609,0.0741621399101609,1., 3793P 4749
+1.,44.7564771564685,-64.672188745331,8.73625,45.5565012405597, 3793P 4750
+-64.6721713247213,8.73625,0.,0.0741621399101609,0.,0.,0.; 3793P 4751
+126,1,1,0,0,1,0,-0.0741621399101609,-0.0741621399101609,0.,0., 3795P 4752
+1.,1.,45.5565012405597,-64.6721713247213,7.118125, 3795P 4753
+44.7564771564685,-64.672188745331,7.118125,-0.0741621399101609, 3795P 4754
+0.,0.,0.,0.; 3795P 4755
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.5565012405597, 3797P 4756
+-64.6721713247213,8.73625,45.5565012405597,-64.6721713247213, 3797P 4757
+7.118125,0.,0.15,0.,0.,0.; 3797P 4758
+126,1,1,0,0,1,0,0.,0.,0.055695889814266,0.055695889814266,1.,1., 3799P 4759
+45.5565012405597,-64.6721713247213,8.73625,45.5564838199499, 3799P 4760
+-64.0713519136024,8.73625,0.,0.055695889814266,0.,0.,0.; 3799P 4761
+126,1,1,0,0,1,0,-0.055695889814266,-0.055695889814266,0.,0.,1., 3801P 4762
+1.,45.5564838199499,-64.0713519136024,7.118125,45.5565012405597, 3801P 4763
+-64.6721713247213,7.118125,-0.055695889814266,0.,0.,0.,0.; 3801P 4764
+126,2,2,0,0,0,0,0.,0.,0.,1.53806598054936,1.53806598054936, 3803P 4765
+1.53806598054936,1.,0.718583503390014,1.,155.763761628875, 3803P 4766
+-53.5475075752323,8.73624999999999,157.701439739527, 3803P 4767
+-53.5475075752323,8.73624999999999,157.764849292068, 3803P 4768
+-55.4841478849295,8.73624999999999,0.,1.53806598054936,0.,0.,0.; 3803P 4769
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,157.764849292068, 3805P 4770
+-55.4841478849295,8.73624999999999,157.764849292068, 3805P 4771
+-55.4841478849295,7.11812499999999,0.,0.15,0.,0.,0.; 3805P 4772
+126,2,2,0,0,0,0,0.,0.,0.,1.53806598054936,1.53806598054936, 3807P 4773
+1.53806598054936,1.,0.718583503390014,1.,155.763761628875, 3807P 4774
+-53.5475075752323,7.11812499999999,157.701439739527, 3807P 4775
+-53.5475075752323,7.11812499999999,157.764849292068, 3807P 4776
+-55.4841478849295,7.11812499999999,0.,1.53806598054936,0.,0.,0.; 3807P 4777
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.763761628875, 3809P 4778
+-53.5475075752323,8.73624999999999,155.763761628875, 3809P 4779
+-53.5475075752323,7.11812499999999,0.,0.15,0.,0.,0.; 3809P 4780
+126,1,1,0,0,1,0,0.,0.,10.304761256663,10.304761256663,1.,1., 3811P 4781
+44.6011495726228,-53.5475075752323,8.73625,155.763761628875, 3811P 4782
+-53.5475075752323,8.73624999999999,0.,10.304761256663,0.,0.,0.; 3811P 4783
+126,1,1,0,0,1,0,0.,0.,10.304761256663,10.304761256663,1.,1., 3813P 4784
+44.6011495726228,-53.5475075752323,7.118125,155.763761628875, 3813P 4785
+-53.5475075752323,7.11812499999999,0.,10.304761256663,0.,0.,0.; 3813P 4786
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.6011495726228, 3815P 4787
+-53.5475075752323,8.73625,44.6011495726228,-53.5475075752323, 3815P 4788
+7.118125,0.,0.15,0.,0.,0.; 3815P 4789
+126,2,2,0,0,0,0,0.,0.,0.,1.57079496575076,1.57079496575076, 3817P 4790
+1.57079496575076,1.,0.707107262388153,1.,42.5989895726247, 3817P 4791
+-55.5496648502041,8.73625,42.5989922976491,-53.5475075752323, 3817P 4792
+8.73625,44.6011495726228,-53.5475075752324,8.73625,0., 3817P 4793
+1.57079496575076,0.,0.,0.; 3817P 4794
+126,2,2,0,0,0,0,0.,0.,0.,1.57079496575076,1.57079496575076, 3819P 4795
+1.57079496575076,1.,0.707107262388153,1.,42.5989895726247, 3819P 4796
+-55.5496648502041,7.118125,42.5989922976491,-53.5475075752323, 3819P 4797
+7.118125,44.6011495726228,-53.5475075752324,7.118125,0., 3819P 4798
+1.57079496575076,0.,0.,0.; 3819P 4799
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,42.5989895726247, 3821P 4800
+-55.5496648502042,8.73625,42.5989895726247,-55.5496648502042, 3821P 4801
+7.118125,0.,0.15,0.,0.,0.; 3821P 4802
+126,1,1,0,0,1,0,0.,0.,7.61968862441745,7.61968862441745,1.,1., 3823P 4803
+42.5989922976492,-137.747055886107,8.73625,42.5989895726247, 3823P 4804
+-55.5496648502041,8.73625,0.,7.61968862441745,0.,0.,0.; 3823P 4805
+126,1,1,0,0,1,0,0.,0.,7.61968862441745,7.61968862441745,1.,1., 3825P 4806
+42.5989922976492,-137.747055886107,7.118125,42.5989895726247, 3825P 4807
+-55.5496648502041,7.118125,0.,7.61968862441745,0.,0.,0.; 3825P 4808
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,42.5989922976492, 3827P 4809
+-137.747055886107,8.73625,42.5989922976492,-137.747055886107, 3827P 4810
+7.118125,0.,0.15,0.,0.,0.; 3827P 4811
+126,2,2,0,0,0,0,0.,0.,0.,1.57079632679493,1.57079632679493, 3829P 4812
+1.57079632679493,1.,0.707106781186538,1.,44.6011522976492, 3829P 4813
+-139.749215886107,8.73625,42.5989922976492,-139.749215886107, 3829P 4814
+8.73625,42.5989922976492,-137.747055886107,8.73625,0., 3829P 4815
+1.57079632679493,0.,0.,0.; 3829P 4816
+126,2,2,0,0,0,0,0.,0.,0.,1.57079632679493,1.57079632679493, 3831P 4817
+1.57079632679493,1.,0.707106781186538,1.,44.6011522976492, 3831P 4818
+-139.749215886107,7.118125,42.5989922976492,-139.749215886107, 3831P 4819
+7.118125,42.5989922976492,-137.747055886107,7.118125,0., 3831P 4820
+1.57079632679493,0.,0.,0.; 3831P 4821
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.6011522976492, 3833P 4822
+-139.749215886107,8.73625,44.6011522976492,-139.749215886107, 3833P 4823
+7.118125,0.,0.15,0.,0.,0.; 3833P 4824
+126,1,1,0,0,1,0,0.,0.,10.3047578082426,10.3047578082426,1.,1., 3835P 4825
+155.763727154066,-139.749215886107,8.73624999999999, 3835P 4826
+44.6011522976492,-139.749215886107,8.73625,0.,10.3047578082426, 3835P 4827
+0.,0.,0.; 3835P 4828
+126,1,1,0,0,1,0,0.,0.,10.3047578082426,10.3047578082426,1.,1., 3837P 4829
+155.763727154066,-139.749215886107,7.11812499999999, 3837P 4830
+44.6011522976492,-139.749215886107,7.118125,0.,10.3047578082426, 3837P 4831
+0.,0.,0.; 3837P 4832
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.763727154066, 3839P 4833
+-139.749215886107,8.73624999999999,155.763727154066, 3839P 4834
+-139.749215886107,7.11812499999999,0.,0.15,0.,0.,0.; 3839P 4835
+126,4,2,0,0,0,0,0.,0.,0.,0.785406772727343,0.785406772727343, 3841P 4836
+1.57081354545469,1.57081354545469,1.57081354545469,1., 3841P 4837
+0.923877885178717,1.,0.923877885178737,1.,157.76588715377, 3841P 4838
+-137.747021411595,8.73624999999999,157.765901433754, 3841P 4839
+-138.576353334882,8.73624999999999,157.179480255615, 3841P 4840
+-139.162784610495,8.73624999999999,156.593059077476, 3841P 4841
+-139.749215886107,8.73624999999999,155.763727154066, 3841P 4842
+-139.749215886107,8.73624999999999,0.,1.57081354545469,0.,0.,0.; 3841P 4843
+126,4,2,0,0,0,0,0.,0.,0.,0.785406772727343,0.785406772727343, 3843P 4844
+1.57081354545469,1.57081354545469,1.57081354545469,1., 3843P 4845
+0.923877885178717,1.,0.923877885178737,1.,157.76588715377, 3843P 4846
+-137.747021411595,7.11812499999999,157.765901433754, 3843P 4847
+-138.576353334882,7.11812499999999,157.179480255615, 3843P 4848
+-139.162784610495,7.11812499999999,156.593059077476, 3843P 4849
+-139.749215886107,7.11812499999999,155.763727154066, 3843P 4850
+-139.749215886107,7.11812499999999,0.,1.57081354545469,0.,0.,0.; 3843P 4851
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,157.76588715377, 3845P 4852
+-137.747021411595,8.73624999999999,157.76588715377, 3845P 4853
+-137.747021411595,7.11812499999999,0.,0.15,0.,0.,0.; 3845P 4854
+126,1,1,0,0,1,0,0.,0.,5.58752310204211,5.58752310204211,1.,1., 3847P 4855
+157.764849292068,-77.4716159572515,8.73624999999999, 3847P 4856
+157.76588715377,-137.747021411595,8.73624999999999,0., 3847P 4857
+5.58752310204211,0.,0.,0.; 3847P 4858
+126,1,1,0,0,1,0,0.,0.,5.58752310204211,5.58752310204211,1.,1., 3849P 4859
+157.764849292068,-77.4716159572515,7.11812499999999, 3849P 4860
+157.76588715377,-137.747021411595,7.11812499999999,0., 3849P 4861
+5.58752310204211,0.,0.,0.; 3849P 4862
+126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,157.764849292068, 3851P 4863
+-77.4716159572515,8.73624999999999,157.764849292068, 3851P 4864
+-77.4716159572515,7.11812499999999,0.,0.15,0.,0.,0.; 3851P 4865
+126,1,1,0,0,1,0,-0.851617485069212,-0.851617485069212, 3853P 4866
+1.18661825744036,1.18661825744036,1.,1.,157.764849292068, 3853P 4867
+-55.4841478849295,8.73624999999999,157.764849292068, 3853P 4868
+-77.4716159572515,8.73624999999999,-0.851617485069212, 3853P 4869
+1.18661825744036,0.,0.,0.; 3853P 4870
+126,1,1,0,0,1,0,-0.851617485069212,-0.851617485069212, 3855P 4871
+1.18661825744036,1.18661825744036,1.,1.,157.764849292068, 3855P 4872
+-55.4841478849295,7.11812499999999,157.764849292068, 3855P 4873
+-77.4716159572515,7.11812499999999,-0.851617485069212, 3855P 4874
+1.18661825744036,0.,0.,0.; 3855P 4875
+126,1,1,0,0,1,0,0.873529002643732,0.873529002643732, 3857P 4876
+1.71776728389373,1.71776728389373,1.,1.,83.9631823855374, 3857P 4877
+-224.118941783543,-7.49999999999994,83.9631823855374, 3857P 4878
+-232.561324596043,-7.49999999999994,0.873529002643732, 3857P 4879
+1.71776728389373,0.,0.,0.; 3857P 4880
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,83.9631823855374, 3859P 4881
+-224.118941783543,-7.49999999999994,83.9631823855374, 3859P 4882
+-224.118941783543,-8.49999999999994,0.,0.1,0.,0.,0.; 3859P 4883
+126,1,1,0,0,1,0,0.,0.,0.84423828125,0.84423828125,1.,1., 3861P 4884
+83.9631823855374,-224.118941783543,-8.49999999999993, 3861P 4885
+83.9631823855374,-232.561324596043,-8.49999999999993,0., 3861P 4886
+0.84423828125,0.,0.,0.; 3861P 4887
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,83.9631823855374, 3863P 4888
+-232.561324596043,-7.49999999999994,83.9631823855374, 3863P 4889
+-232.561324596043,-8.49999999999994,0.,0.1,0.,0.,0.; 3863P 4890
+126,1,1,0,0,1,0,-0.110430982629394,-0.110430982629394, 3865P 4891
+2.40519401737061,2.40519401737061,1.,1.,58.8069323855374, 3865P 4892
+-224.118941783543,-7.49999999999996,83.9631823855374, 3865P 4893
+-224.118941783543,-7.49999999999995,-0.110430982629394, 3865P 4894
+2.40519401737061,0.,0.,0.; 3865P 4895
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,58.8069323855374, 3867P 4896
+-224.118941783543,-7.49999999999996,58.8069323855374, 3867P 4897
+-224.118941783543,-8.49999999999996,0.,0.1,0.,0.,0.; 3867P 4898
+126,1,1,0,0,1,0,0.,0.,2.515625,2.515625,1.,1.,58.8069323855374, 3869P 4899
+-224.118941783543,-8.49999999999997,83.9631823855374, 3869P 4900
+-224.118941783543,-8.49999999999996,0.,2.515625,0.,0.,0.; 3869P 4901
+126,1,1,0,0,1,0,-1.18921513798127,-1.18921513798127, 3871P 4902
+2.93627314326873,2.93627314326873,1.,1.,58.8069323855374, 3871P 4903
+-182.864058971043,-7.49999999999996,58.8069323855374, 3871P 4904
+-224.118941783543,-7.49999999999996,-1.18921513798127, 3871P 4905
+2.93627314326873,0.,0.,0.; 3871P 4906
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,58.8069323855374, 3873P 4907
+-182.864058971043,-7.49999999999996,58.8069323855374, 3873P 4908
+-182.864058971043,-8.49999999999996,0.,0.1,0.,0.,0.; 3873P 4909
+126,1,1,0,0,1,0,0.,0.,4.12548828125,4.12548828125,1.,1., 3875P 4910
+58.8069323855374,-182.864058971043,-8.49999999999997, 3875P 4911
+58.8069323855374,-224.118941783543,-8.49999999999997,0., 3875P 4912
+4.12548828125,0.,0.,0.; 3875P 4913
+126,1,1,0,0,1,0,-0.616290357629394,-0.616290357629394, 3877P 4914
+0.395428392370606,0.395428392370606,1.,1.,48.6897448855374, 3877P 4915
+-182.864058971043,-7.49999999999996,58.8069323855374, 3877P 4916
+-182.864058971043,-7.49999999999995,-0.616290357629394, 3877P 4917
+0.395428392370606,0.,0.,0.; 3877P 4918
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,48.6897448855374, 3879P 4919
+-182.864058971043,-7.49999999999996,48.6897448855374, 3879P 4920
+-182.864058971043,-8.49999999999996,0.,0.1,0.,0.,0.; 3879P 4921
+126,1,1,0,0,1,0,0.,0.,1.01171875,1.01171875,1.,1., 3881P 4922
+48.6897448855374,-182.864058971043,-8.49999999999997, 3881P 4923
+58.8069323855374,-182.864058971043,-8.49999999999997,0., 3881P 4924
+1.01171875,0.,0.,0.; 3881P 4925
+126,1,1,0,0,1,0,-1.29564814326873,-1.29564814326873, 3883P 4926
+3.67407841923127,3.67407841923127,1.,1.,48.6897448855374, 3883P 4927
+-232.561324596043,-7.49999999999996,48.6897448855374, 3883P 4928
+-182.864058971043,-7.49999999999996,-1.29564814326873, 3883P 4929
+3.67407841923127,0.,0.,0.; 3883P 4930
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,48.6897448855374, 3885P 4931
+-232.561324596043,-7.49999999999996,48.6897448855374, 3885P 4932
+-232.561324596043,-8.49999999999996,0.,0.1,0.,0.,0.; 3885P 4933
+126,1,1,0,0,1,0,0.,0.,4.9697265625,4.9697265625,1.,1., 3887P 4934
+48.6897448855374,-232.561324596043,-8.49999999999997, 3887P 4935
+48.6897448855374,-182.864058971043,-8.49999999999997,0., 3887P 4936
+4.9697265625,0.,0.,0.; 3887P 4937
+126,1,1,0,0,1,0,-1.1473815173706,-1.1473815173706, 3889P 4938
+2.37996223262939,2.37996223262939,1.,1.,83.9631823855374, 3889P 4939
+-232.561324596043,-7.49999999999995,48.6897448855374, 3889P 4940
+-232.561324596043,-7.49999999999996,-1.1473815173706, 3889P 4941
+2.37996223262939,0.,0.,0.; 3889P 4942
+126,1,1,0,0,1,0,0.,0.,3.52734375,3.52734375,1.,1., 3891P 4943
+83.9631823855374,-232.561324596043,-8.49999999999993, 3891P 4944
+48.6897448855374,-232.561324596043,-8.49999999999994,0., 3891P 4945
+3.52734375,0.,0.,0.; 3891P 4946
+126,6,2,0,0,0,0,3.13917765423161,3.13917765423161, 3893P 4947
+3.13917765423161,4.18718020521427,4.18718020521427, 3893P 4948
+5.23518275619693,5.23518275619693,6.28318530717959, 3893P 4949
+6.28318530717959,6.28318530717959,1.,0.865824083692505,1., 3893P 4950
+0.865824083692489,1.,0.865824083692615,1.,18.9406505609936, 3893P 4951
+-172.121201750437,-7.49999999999996,18.9396735534978, 3893P 4952
+-171.312085990108,-7.49999999999996,19.6402259760079, 3893P 4953
+-170.907245809948,-7.49999999999996,20.340778398518, 3893P 4954
+-170.502405629789,-7.49999999999996,21.0413308210281, 3893P 4955
+-170.907245809948,-7.49999999999996,21.7418832435383, 3893P 4956
+-171.312085990108,-7.49999999999996,21.7409062360425, 3893P 4957
+-172.121201750437,-7.49999999999996,3.13917765423161, 3893P 4958
+6.28318530717959,0.,0.,0.; 3893P 4959
+126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 3895P 4960
+18.9406505609936,-172.121201750437,-7.49999999999997, 3895P 4961
+18.9406505609936,-172.121201750437,-11.6,1.623625,2.033625,0., 3895P 4962
+0.,0.; 3895P 4963
+126,6,2,0,0,0,0,0.,0.,0.,1.04800255098266,1.04800255098266, 3897P 4964
+2.09600510196532,2.09600510196532,3.14400765294798, 3897P 4965
+3.14400765294798,3.14400765294798,1.,0.865824083692615,1., 3897P 4966
+0.865824083692489,1.,0.865824083692505,1.,21.7409062360425, 3897P 4967
+-172.121201750437,-11.6,21.7418832435383,-171.312085990108, 3897P 4968
+-11.6,21.0413308210281,-170.907245809948,-11.6,20.340778398518, 3897P 4969
+-170.502405629789,-11.6,19.6402259760079,-170.907245809948, 3897P 4970
+-11.6,18.9396735534978,-171.312085990108,-11.6,18.9406505609936, 3897P 4971
+-172.121201750437,-11.6,0.,3.14400765294798,0.,0.,0.; 3897P 4972
+126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 3899P 4973
+21.7409062360425,-172.121201750437,-7.49999999999997, 3899P 4974
+21.7409062360425,-172.121201750437,-11.6,1.623625,2.033625,0., 3899P 4975
+0.,0.; 3899P 4976
+126,6,2,0,0,0,0,3.13917765425437,3.13917765425437, 3901P 4977
+3.13917765425437,4.18718020522943,4.18718020522943, 3901P 4978
+5.2351827562045,5.2351827562045,6.28318530717956, 3901P 4979
+6.28318530717956,6.28318530717956,1.,0.865824083694517,1., 3901P 4980
+0.865824083694691,1.,0.865824083694548,1.,21.7409062360425, 3901P 4981
+-172.121201750437,-7.49999999999996,21.7418832435291, 3901P 4982
+-172.930317510758,-7.49999999999996,21.0413308210236, 3901P 4983
+-173.335157690912,-7.49999999999996,20.3407783985181, 3901P 4984
+-173.739997871065,-7.49999999999996,19.6402259760126, 3901P 4985
+-173.335157690912,-7.49999999999996,18.939673553507, 3901P 4986
+-172.930317510759,-7.49999999999996,18.9406505609936, 3901P 4987
+-172.121201750437,-7.49999999999996,3.13917765425437, 3901P 4988
+6.28318530717956,0.,0.,0.; 3901P 4989
+126,6,2,0,0,0,0,2.53741645654159D-14,2.53741645654159D-14, 3903P 4990
+2.53741645654159D-14,1.04800255097509,1.04800255097509, 3903P 4991
+2.09600510195016,2.09600510195016,3.14400765292522, 3903P 4992
+3.14400765292522,3.14400765292522,1.,0.86582408369456,1., 3903P 4993
+0.865824083694691,1.,0.865824083694517,1.,18.9406505609936, 3903P 4994
+-172.121201750437,-11.6,18.939673553507,-172.930317510759,-11.6, 3903P 4995
+19.6402259760125,-173.335157690912,-11.6,20.3407783985181, 3903P 4996
+-173.739997871065,-11.6,21.0413308210236,-173.335157690912, 3903P 4997
+-11.6,21.7418832435291,-172.930317510758,-11.6,21.7409062360425, 3903P 4998
+-172.121201750437,-11.6,2.53741645654159D-14,3.14400765292522, 3903P 4999
+0.,0.,0.; 3903P 5000
+126,6,2,0,0,0,0,3.13917765424305,3.13917765424305, 3905P 5001
+3.13917765424305,4.1871802052219,4.1871802052219, 3905P 5002
+5.23518275620074,5.23518275620074,6.28318530717959, 3905P 5003
+6.28318530717959,6.28318530717959,1.,0.86582408369356,1., 3905P 5004
+0.865824083693437,1.,0.865824083693555,1.,97.7151063167837, 3905P 5005
+-190.598023114196,-7.49999999999996,97.7141293092926, 3905P 5006
+-189.78890735387,-7.49999999999996,98.4146817318004, 3905P 5007
+-189.384067173714,-7.49999999999996,99.1152341543082, 3905P 5008
+-188.979226993558,-7.49999999999996,99.815786576816, 3905P 5009
+-189.384067173714,-7.49999999999996,100.516338999324, 3905P 5010
+-189.78890735387,-7.49999999999996,100.515361991833, 3905P 5011
+-190.598023114196,-7.49999999999996,3.13917765424305, 3905P 5012
+6.28318530717959,0.,0.,0.; 3905P 5013
+126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 3907P 5014
+97.7151063167837,-190.598023114196,-7.49999999999994, 3907P 5015
+97.7151063167837,-190.598023114196,-11.5999999999999,1.623625, 3907P 5016
+2.033625,0.,0.,0.; 3907P 5017
+126,6,2,0,0,0,0,0.,0.,0.,1.04800255097885,1.04800255097885, 3909P 5018
+2.09600510195769,2.09600510195769,3.14400765293654, 3909P 5019
+3.14400765293654,3.14400765293654,1.,0.865824083693555,1., 3909P 5020
+0.865824083693437,1.,0.86582408369356,1.,100.515361991833, 3909P 5021
+-190.598023114196,-11.6,100.516338999324,-189.78890735387,-11.6, 3909P 5022
+99.815786576816,-189.384067173714,-11.6,99.1152341543082, 3909P 5023
+-188.979226993558,-11.6,98.4146817318004,-189.384067173714, 3909P 5024
+-11.6,97.7141293092926,-189.78890735387,-11.6,97.7151063167837, 3909P 5025
+-190.598023114196,-11.6,0.,3.14400765293654,0.,0.,0.; 3909P 5026
+126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 3911P 5027
+100.515361991833,-190.598023114196,-7.49999999999994, 3911P 5028
+100.515361991833,-190.598023114196,-11.5999999999999,1.623625, 3911P 5029
+2.033625,0.,0.,0.; 3911P 5030
+126,6,2,0,0,0,0,3.13917765424295,3.13917765424295, 3913P 5031
+3.13917765424295,4.18718020522184,4.18718020522184, 3913P 5032
+5.23518275620074,5.23518275620074,6.28318530717964, 3913P 5033
+6.28318530717964,6.28318530717964,1.,0.86582408369357,1., 3913P 5034
+0.865824083693601,1.,0.865824083693503,1.,100.515361991833, 3913P 5035
+-190.598023114196,-7.49999999999996,100.516338999324, 3913P 5036
+-191.407138874521,-7.49999999999996,99.815786576816, 3913P 5037
+-191.811979054677,-7.49999999999996,99.1152341543081, 3913P 5038
+-192.216819234834,-7.49999999999996,98.4146817318003, 3913P 5039
+-191.811979054677,-7.49999999999996,97.7141293092924, 3913P 5040
+-191.407138874521,-7.49999999999996,97.7151063167837, 3913P 5041
+-190.598023114196,-7.49999999999996,3.13917765424295, 3913P 5042
+6.28318530717964,0.,0.,0.; 3913P 5043
+126,6,2,0,0,0,0,-5.0748329130831D-14,-5.0748329130831D-14, 3915P 5044
+-5.0748329130831D-14,1.04800255097885,1.04800255097885, 3915P 5045
+2.09600510195774,2.09600510195774,3.14400765293664, 3915P 5046
+3.14400765293664,3.14400765293664,1.,0.865824083693503,1., 3915P 5047
+0.865824083693601,1.,0.865824083693605,1.,97.7151063167837, 3915P 5048
+-190.598023114196,-11.6,97.7141293092924,-191.407138874521, 3915P 5049
+-11.6,98.4146817318003,-191.811979054677,-11.6,99.1152341543081, 3915P 5050
+-192.216819234834,-11.6,99.8157865768159,-191.811979054677, 3915P 5051
+-11.6,100.516338999324,-191.407138874521,-11.6,100.515361991833, 3915P 5052
+-190.598023114196,-11.6,-5.0748329130831D-14,3.14400765293664, 3915P 5053
+0.,0.,0.; 3915P 5054
+126,2,2,0,0,0,0,-1.15918194829754,-1.15918194829754, 3917P 5055
+-1.15918194829754,-0.0292778092733589,-0.0292778092733589, 3917P 5056
+-0.0292778092733589,1.,0.844614262194451,1.,4.43314110940288, 3917P 5057
+-167.842837467805,5.50000000000003,2.97957034725773, 3917P 5058
+-167.208278396419,5.50000000000003,2.93314110940286, 3917P 5059
+-165.622914872961,5.50000000000003,-1.15918194829754, 3917P 5060
+-0.0292778092733589,0.,0.,0.; 3917P 5061
+126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,4.43314110940286, 3919P 5062
+-167.842837467805,-7.49999999999997,4.43314110940285, 3919P 5063
+-167.842837467805,5.50000000000003,-1.5,-0.2,0.,0.,0.; 3919P 5064
+126,2,2,0,0,0,0,-1.15918194829754,-1.15918194829754, 3921P 5065
+-1.15918194829754,-0.0292778092733589,-0.0292778092733589, 3921P 5066
+-0.0292778092733589,1.,0.844614262194451,1.,4.43314110940287, 3921P 5067
+-167.842837467805,-7.49999999999997,2.97957034725773, 3921P 5068
+-167.208278396419,-7.49999999999997,2.93314110940286, 3921P 5069
+-165.622914872961,-7.49999999999997,-1.15918194829754, 3921P 5070
+-0.0292778092733589,0.,0.,0.; 3921P 5071
+126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,2.93314110940287, 3923P 5072
+-165.622914872961,5.50000000000003,2.93314110940287, 3923P 5073
+-165.622914872961,-7.49999999999997,0.2,1.5,0.,0.,0.; 3923P 5074
+126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,114.304136640482, 3925P 5075
+-248.749215886107,5.50000000000006,114.304136640482, 3925P 5076
+-248.749215886107,-7.49999999999994,0.2,1.5,0.,0.,0.; 3925P 5077
+126,1,1,0,0,1,0,-10.8869873393078,-10.8869873393078, 3927P 5078
+-0.22927014633397,-0.22927014633397,1.,1.,114.304136640482, 3927P 5079
+-248.749215886107,-7.49999999999995,7.72696471074416, 3927P 5080
+-248.749215886107,-7.49999999999997,-10.8869873393078, 3927P 5081
+-0.22927014633397,0.,0.,0.; 3927P 5082
+126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,7.72696471074419, 3929P 5083
+-248.749215886107,-7.49999999999997,7.72696471074418, 3929P 5084
+-248.749215886107,5.50000000000003,-1.5,-0.2,0.,0.,0.; 3929P 5085
+126,1,1,0,0,1,0,-8.10792303602294,-8.10792303602294, 3931P 5086
+2.54979415695085,2.54979415695085,1.,1.,7.72696471074415, 3931P 5087
+-248.749215886107,5.50000000000003,114.304136640482, 3931P 5088
+-248.749215886107,5.50000000000006,-8.10792303602294, 3931P 5089
+2.54979415695085,0.,0.,0.; 3931P 5090
+126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,4.43214272479956, 3933P 5091
+-245.454337167255,5.50000000000003,4.43214272479957, 3933P 5092
+-245.454337167255,-7.49999999999997,0.2,1.5,0.,0.,0.; 3933P 5093
+126,1,1,0,0,1,0,-5.79827126090288,-5.79827126090288,0.,0.,1.,1., 3935P 5094
+4.43214272479954,-245.454337167255,-7.49999999999997, 3935P 5095
+4.43314110940289,-187.471624566822,-7.49999999999997, 3935P 5096
+-5.79827126090288,0.,0.,0.,0.; 3935P 5097
+126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,4.43314110940289, 3937P 5098
+-187.471624566822,5.50000000000003,4.43314110940289, 3937P 5099
+-187.471624566822,-7.49999999999997,0.2,1.5,0.,0.,0.; 3937P 5100
+126,1,1,0,0,1,0,-3.97255884800442,-3.97255884800442, 3939P 5101
+1.82571241289845,1.82571241289845,1.,1.,4.43314110940289, 3939P 5102
+-187.471624566822,5.50000000000003,4.43214272479954, 3939P 5103
+-245.454337167255,5.50000000000003,-3.97255884800442, 3939P 5104
+1.82571241289845,0.,0.,0.; 3939P 5105
+126,2,2,0,0,0,0,1.5707963267949,1.5707963267949,1.5707963267949, 3941P 5106
+2.72951060528473,2.72951060528473,2.72951060528473,1., 3941P 5107
+0.836814780130269,1.,5.4342287725957,-163.047507575232, 3941P 5108
+5.50000000000003,7.07126702638247,-163.047507575232, 3941P 5109
+5.50000000000003,7.72693023593538,-164.547507575232, 3941P 5110
+5.50000000000003,1.5707963267949,2.72951060528473,0.,0.,0.; 3941P 5111
+126,1,1,0,0,1,0,0.978120675558471,0.978120675558471, 3943P 5112
+2.54979601694251,2.54979601694251,1.,1.,23.4436836497758, 3943P 5113
+-164.547507575232,5.50000000000003,7.7269302359354, 3943P 5114
+-164.547507575232,5.50000000000003,0.978120675558471, 3943P 5115
+2.54979601694251,0.,0.,0.; 3943P 5116
+126,1,1,0,0,1,0,2.10504270777188,2.10504270777188, 3945P 5117
+2.25504270777187,2.25504270777187,1.,1.,23.4436836497758, 3945P 5118
+-164.547507575232,5.50000000000003,23.4436836497758, 3945P 5119
+-163.047507575232,5.50000000000003,2.10504270777188, 3945P 5120
+2.25504270777187,0.,0.,0.; 3945P 5121
+126,1,1,0,0,1,0,-2.77906616327648,-2.77906616327648, 3947P 5122
+-0.978120675558472,-0.978120675558472,1.,1.,5.43422877259571, 3947P 5123
+-163.047507575232,5.50000000000003,23.4436836497758, 3947P 5124
+-163.047507575232,5.50000000000003,-2.77906616327648, 3947P 5125
+-0.978120675558472,0.,0.,0.; 3947P 5126
+126,2,2,0,0,0,0,1.72186597884763D-5,1.72186597884763D-5, 3949P 5127
+1.72186597884763D-5,1.15873149714963,1.15873149714963, 3949P 5128
+1.15873149714963,1.,0.836814780130323,1.,2.93210324777536, 3949P 5129
+-247.747012802266,5.50000000000003,2.93213143538011, 3949P 5130
+-246.109974548721,5.50000000000003,4.43214272479955, 3949P 5131
+-245.454337167255,5.50000000000003,1.72186597884763D-5, 3949P 5132
+1.15873149714963,0.,0.,0.; 3949P 5133
+126,1,1,0,0,1,0,-2.92171556809407,-2.92171556809407, 3951P 5134
+-0.958836858192392,-0.958836858192392,1.,1.,4.43314110940287, 3951P 5135
+-167.842837467805,5.50000000000003,4.43314110940288, 3951P 5136
+-187.471624566822,5.50000000000003,-2.92171556809407, 3951P 5137
+-0.958836858192392,0.,0.,0.; 3951P 5138
+126,1,1,0,0,1,0,0.958837288670924,0.958837288670924, 3953P 5139
+3.14370739710002,3.14370739710002,1.,1.,2.9331411094029, 3953P 5140
+-187.471615957251,5.50000000000003,2.93314110940288, 3953P 5141
+-165.622914872961,5.50000000000003,0.958837288670924, 3953P 5142
+3.14370739710002,0.,0.,0.; 3953P 5143
+126,1,1,0,0,1,0,-2.054982559236,-2.054982559236, 3955P 5144
+3.97255712615894,3.97255712615894,1.,1.,2.93210324777536, 3955P 5145
+-247.747012802266,5.50000000000003,2.9331411094029, 3955P 5146
+-187.471615957251,5.50000000000003,-2.054982559236, 3955P 5147
+3.97255712615894,0.,0.,0.; 3955P 5148
+126,2,2,0,0,0,0,-1.5707963267949,-1.5707963267949, 3957P 5149
+-1.5707963267949,-0.412082048305059,-0.412082048305059, 3957P 5150
+-0.412082048305059,1.,0.836814780130369,1.,116.596838103822, 3957P 5151
+-250.249215886107,5.50000000000007,114.959799850035, 3957P 5152
+-250.249215886107,5.50000000000007,114.304136640482, 3957P 5153
+-248.749215886107,5.50000000000007,-1.5707963267949, 3957P 5154
+-0.412082048305059,0.,0.,0.; 3957P 5155
+126,2,2,0,0,0,0,-2.72951060528471,-2.72951060528471, 3959P 5156
+-2.72951060528471,-1.5707963267949,-1.5707963267949, 3959P 5157
+-1.5707963267949,1.,0.83681478013024,1.,7.72696471074414, 3959P 5158
+-248.749215886107,5.50000000000003,7.0713015011912, 3959P 5159
+-250.249215886107,5.50000000000003,5.43426324740444, 3959P 5160
+-250.249215886107,5.50000000000003,-2.72951060528471, 3959P 5161
+-1.5707963267949,0.,0.,0.; 3959P 5162
+126,1,1,0,0,1,0,-2.77906430328482,-2.77906430328482, 3961P 5163
+8.33719318235691,8.33719318235691,1.,1.,116.596838103822, 3961P 5164
+-250.249215886107,5.50000000000006,5.43426324740444, 3961P 5165
+-250.249215886107,5.50000000000003,-2.77906430328482, 3961P 5166
+8.33719318235691,0.,0.,0.; 3961P 5167
+126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,7.7269302359354, 3963P 5168
+-164.547507575232,5.50000000000003,7.7269302359354, 3963P 5169
+-164.547507575232,-7.49999999999997,0.2,1.5,0.,0.,0.; 3963P 5170
+126,1,1,0,0,1,0,-10.8869910592913,-10.8869910592913, 3965P 5171
+-9.31531571790723,-9.31531571790723,1.,1.,7.7269302359354, 3965P 5172
+-164.547507575232,-7.49999999999996,23.4436836497758, 3965P 5173
+-164.547507575232,-7.49999999999996,-10.8869910592913, 3965P 5174
+-9.31531571790723,0.,0.,0.; 3965P 5175
+126,1,1,0,0,1,0,-0.75,-0.75,0.55,0.55,1.,1.,23.4436836497758, 3967P 5176
+-164.547507575232,-7.49999999999997,23.4436836497758, 3967P 5177
+-164.547507575232,5.50000000000003,-0.75,0.55,0.,0.,0.; 3967P 5178
+126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,114.304139365509, 3969P 5179
+-164.547507575232,-7.49999999999994,114.304139365509, 3969P 5180
+-164.547507575232,5.50000000000006,-1.5,-0.2,0.,0.,0.; 3969P 5181
+126,1,1,0,0,1,0,-8.10792489601484,-8.10792489601484, 3971P 5182
+-7.23888737412926,-7.23888737412926,1.,1.,114.304139365509, 3971P 5183
+-164.547507575232,5.50000000000005,105.613764146653, 3971P 5184
+-164.547507575232,5.50000000000005,-8.10792489601484, 3971P 5185
+-7.23888737412926,0.,0.,0.; 3971P 5186
+126,1,1,0,0,1,0,-0.2,-0.2,1.1,1.1,1.,1.,105.613764146653, 3973P 5187
+-164.547507575232,5.50000000000006,105.613764146653, 3973P 5188
+-164.547507575232,-7.49999999999994,-0.2,1.1,0.,0.,0.; 3973P 5189
+126,1,1,0,0,1,0,-1.0983076682195,-1.0983076682195, 3975P 5190
+-0.229270146333919,-0.229270146333919,1.,1.,105.613764146653, 3975P 5191
+-164.547507575232,-7.49999999999994,114.304139365509, 3975P 5192
+-164.547507575232,-7.49999999999994,-1.0983076682195, 3975P 5193
+-0.229270146333919,0.,0.,0.; 3975P 5194
+126,2,2,0,0,0,0,1.98287840825217,1.98287840825217, 3977P 5195
+1.98287840825217,3.14159265358978,3.14159265358978, 3977P 5196
+3.14159265358978,1.,0.83681478920549,1.,117.59899817983, 3977P 5197
+-245.454354455992,5.50000000000007,119.098998103822, 3977P 5198
+-246.11001769155,5.50000000000007,119.098998103822, 3977P 5199
+-247.747055886107,5.50000000000007,1.98287840825217, 3977P 5200
+3.14159265358978,0.,0.,0.; 3977P 5201
+126,1,1,0,0,1,0,-2.05493493947419,-2.05493493947419, 3979P 5202
+6.16480416245852,6.16480416245852,1.,1.,119.099000828846, 3979P 5203
+-165.54966486678,5.50000000000007,119.098998103822, 3979P 5204
+-247.747055886107,5.50000000000007,-2.05493493947419, 3979P 5205
+6.16480416245852,0.,0.,0.; 3979P 5206
+126,2,2,0,0,0,0,-3.14159373603537,-3.14159373603537, 3981P 5207
+-3.14159373603537,-1.98287834194696,-1.98287834194696, 3981P 5208
+-1.98287834194696,1.,0.836814474742864,1.,119.099000828846, 3981P 5209
+-165.54966486678,5.50000000000007,119.099002600853, 3981P 5210
+-167.186705113691,5.50000000000007,117.599000752838, 3981P 5211
+-167.842369071796,5.50000000000007,-3.14159373603537, 3981P 5212
+-1.98287834194696,0.,0.,0.; 3981P 5213
+126,1,1,0,0,1,0,-5.93553402441977,-5.93553402441977, 3983P 5214
+1.82566451399977,1.82566451399977,1.,1.,117.59899817983, 3983P 5215
+-245.454354455992,5.50000000000007,117.599000752838, 3983P 5216
+-167.842369071796,5.50000000000007,-5.93553402441977, 3983P 5217
+1.82566451399977,0.,0.,0.; 3983P 5218
+126,2,2,0,0,0,0,0.412082048305129,0.412082048305129, 3985P 5219
+0.412082048305129,1.57079632679488,1.57079632679488, 3985P 5220
+1.57079632679488,1.,0.836814780130278,1.,114.304139365509, 3985P 5221
+-164.547507575232,5.50000000000007,114.959802575062, 3985P 5222
+-163.047507575233,5.50000000000007,116.596840828848, 3985P 5223
+-163.047507575233,5.50000000000007,0.412082048305129, 3985P 5224
+1.57079632679488,0.,0.,0.; 3985P 5225
+126,1,1,0,0,1,0,7.23888737412926,7.23888737412926, 3987P 5226
+8.33719504234876,8.33719504234876,1.,1.,105.613764146653, 3987P 5227
+-163.047507575232,5.50000000000005,116.596840828848, 3987P 5228
+-163.047507575232,5.50000000000005,7.23888737412926, 3987P 5229
+8.33719504234876,0.,0.,0.; 3987P 5230
+126,1,1,0,0,1,0,-2.25504270777187,-2.25504270777187, 3989P 5231
+-2.10504270777188,-2.10504270777188,1.,1.,105.613764146653, 3989P 5232
+-163.047507575232,5.50000000000005,105.613764146653, 3989P 5233
+-164.547507575232,5.50000000000005,-2.25504270777187, 3989P 5234
+-2.10504270777188,0.,0.,0.; 3989P 5235
+126,6,2,0,0,0,0,3.13925814733116,3.13925814733116, 3991P 5236
+3.13925814733116,4.18720703624771,4.18720703624771, 3991P 5237
+5.23515592516426,5.23515592516426,6.28310481408081, 3991P 5238
+6.28310481408081,6.28310481408081,1.,0.865837508248997,1., 3991P 5239
+0.865837508248987,1.,0.865837508249069,1.,21.4157277366876, 3991P 5240
+-228.698656211065,-7.49999999999997,21.4147507896972, 3991P 5241
+-227.831805396136,-7.49999999999997,22.1653032159716, 3991P 5242
+-227.39809772364,-7.49999999999997,22.915855642246, 3991P 5243
+-226.964390051143,-7.49999999999997,23.6664080685249, 3991P 5244
+-227.398097723632,-7.49999999999997,24.4169604948039, 3991P 5245
+-227.83180539612,-7.49999999999997,24.4159835478226, 3991P 5246
+-228.69865621105,-7.49999999999997,3.13925814733116, 3991P 5247
+6.28310481408081,0.,0.,0.; 3991P 5248
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,21.4157277366876, 3993P 5249
+-228.698656211065,-7.49999999999997,21.4157277366876, 3993P 5250
+-228.698656211065,-11.6,1.5,1.91,0.,0.,0.; 3993P 5251
+126,6,2,0,0,0,0,-6.28310481408081,-6.28310481408081, 3995P 5252
+-6.28310481408081,-5.23515592516426,-5.23515592516426, 3995P 5253
+-4.18720703624771,-4.18720703624771,-3.13925814733116, 3995P 5254
+-3.13925814733116,-3.13925814733116,1.,0.865837508249069,1., 3995P 5255
+0.865837508248987,1.,0.865837508248997,1.,24.4159835478226, 3995P 5256
+-228.69865621105,-11.6,24.4169604948039,-227.83180539612,-11.6, 3995P 5257
+23.6664080685249,-227.398097723632,-11.6,22.915855642246, 3995P 5258
+-226.964390051143,-11.6,22.1653032159716,-227.39809772364,-11.6, 3995P 5259
+21.4147507896972,-227.831805396136,-11.6,21.4157277366876, 3995P 5260
+-228.698656211065,-11.6,-6.28310481408081,-3.13925814733116,0., 3995P 5261
+0.,0.; 3995P 5262
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,24.4159835478226, 3997P 5263
+-228.69865621105,-7.49999999999997,24.4159835478226, 3997P 5264
+-228.69865621105,-11.6,1.5,1.91,0.,0.,0.; 3997P 5265
+126,6,2,0,0,0,0,3.13925814734168,3.13925814734168, 3999P 5266
+3.13925814734168,4.18720703625123,4.18720703625123, 3999P 5267
+5.23515592516079,5.23515592516079,6.28310481407034, 3999P 5268
+6.28310481407034,6.28310481407034,1.,0.865837508250833,1., 3999P 5269
+0.865837508250854,1.,0.865837508250777,1.,24.4159835478226, 3999P 5270
+-228.69865621105,-7.49999999999997,24.4169604948039, 3999P 5271
+-229.565507025972,-7.49999999999997,23.666408068534, 3999P 5272
+-229.999214698462,-7.49999999999997,22.9158556422641, 3999P 5273
+-230.432922370953,-7.49999999999997,22.1653032159898, 3999P 5274
+-229.99921469847,-7.49999999999997,21.4147507897154, 3999P 5275
+-229.565507025988,-7.49999999999997,21.4157277366876, 3999P 5276
+-228.698656211065,-7.49999999999997,3.13925814734168, 3999P 5277
+6.28310481407034,0.,0.,0.; 3999P 5278
+126,6,2,0,0,0,0,-6.28310481407037,-6.28310481407037, 4001P 5279
+-6.28310481407037,-5.2351559251608,-5.2351559251608, 4001P 5280
+-4.18720703625122,-4.18720703625122,-3.13925814734165, 4001P 5281
+-3.13925814734165,-3.13925814734165,1.,0.865837508250796,1., 4001P 5282
+0.865837508250931,1.,0.865837508250911,1.,21.4157277366876, 4001P 5283
+-228.698656211065,-11.6,21.4147507897153,-229.565507025988, 4001P 5284
+-11.6,22.1653032159898,-229.99921469847,-11.6,22.9158556422642, 4001P 5285
+-230.432922370953,-11.6,23.666408068534,-229.999214698462,-11.6, 4001P 5286
+24.4169604948039,-229.565507025972,-11.6,24.4159835478226, 4001P 5287
+-228.69865621105,-11.6,-6.28310481407037,-3.13925814734165,0., 4001P 5288
+0.,0.; 4001P 5289
+126,6,2,0,0,0,0,3.13866619557958,3.13866619557958, 4003P 5290
+3.13866619557958,4.18680559830898,4.18680559830898, 4003P 5291
+5.23494500103838,5.23494500103838,6.28308440376778, 4003P 5292
+6.28308440376778,6.28308440376778,1.,0.865789844880318,1., 4003P 5293
+0.865789844880317,1.,0.865789844880318,1.,97.617115874664, 4003P 5294
+-228.698656211057,-7.49999999999994,97.6158909373877, 4003P 5295
+-227.831614772873,-7.49999999999994,98.3665673588096, 4003P 5296
+-227.397740060174,-7.49999999999994,99.1172437802314, 4003P 5297
+-226.963865347475,-7.49999999999994,99.8679202016533, 4003P 5298
+-227.397740060174,-7.49999999999994,100.618596623075, 4003P 5299
+-227.831614772873,-7.49999999999994,100.617371685799, 4003P 5300
+-228.698656211057,-7.49999999999994,3.13866619557958, 4003P 5301
+6.28308440376778,0.,0.,0.; 4003P 5302
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,97.6171158746639, 4005P 5303
+-228.698656211057,-7.49999999999994,97.6171158746639, 4005P 5304
+-228.698656211057,-11.5999999999999,1.5,1.91,0.,0.,0.; 4005P 5305
+126,6,2,0,0,0,0,-6.28308440376778,-6.28308440376778, 4007P 5306
+-6.28308440376778,-5.23494500103838,-5.23494500103838, 4007P 5307
+-4.18680559830898,-4.18680559830898,-3.13866619557958, 4007P 5308
+-3.13866619557958,-3.13866619557958,1.,0.865789844880318,1., 4007P 5309
+0.865789844880317,1.,0.865789844880318,1.,100.617371685799, 4007P 5310
+-228.698656211057,-11.5999999999999,100.618596623075, 4007P 5311
+-227.831614772873,-11.5999999999999,99.8679202016533, 4007P 5312
+-227.397740060174,-11.5999999999999,99.1172437802314, 4007P 5313
+-226.963865347475,-11.5999999999999,98.3665673588096, 4007P 5314
+-227.397740060174,-11.5999999999999,97.6158909373877, 4007P 5315
+-227.831614772873,-11.5999999999999,97.617115874664, 4007P 5316
+-228.698656211057,-11.5999999999999,-6.28308440376778, 4007P 5317
+-3.13866619557958,0.,0.,0.; 4007P 5318
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,100.617371685799, 4009P 5319
+-228.698656211057,-7.49999999999994,100.617371685799, 4009P 5320
+-228.698656211057,-11.5999999999999,1.5,1.91,0.,0.,0.; 4009P 5321
+126,6,2,0,0,0,0,3.13866619559787,3.13866619559787, 4011P 5322
+3.13866619559787,4.18680559832114,4.18680559832114, 4011P 5323
+5.2349450010444,5.2349450010444,6.28308440376766, 4011P 5324
+6.28308440376766,6.28308440376766,1.,0.865789844881819,1., 4011P 5325
+0.865789844881894,1.,0.865789844881819,1.,100.617371685799, 4011P 5326
+-228.698656211057,-7.49999999999994,100.618596623067, 4011P 5327
+-229.565697649234,-7.49999999999994,99.8679202016493, 4011P 5328
+-229.999572361928,-7.49999999999994,99.1172437802314, 4011P 5329
+-230.433447074621,-7.49999999999994,98.3665673588136, 4011P 5330
+-229.999572361928,-7.49999999999994,97.6158909373957, 4011P 5331
+-229.565697649234,-7.49999999999994,97.617115874664, 4011P 5332
+-228.698656211057,-7.49999999999994,3.13866619559787, 4011P 5333
+6.28308440376766,0.,0.,0.; 4011P 5334
+126,6,2,0,0,0,0,-6.2830844037677,-6.2830844037677, 4013P 5335
+-6.2830844037677,-5.23494500104441,-5.23494500104441, 4013P 5336
+-4.18680559832112,-4.18680559832112,-3.13866619559783, 4013P 5337
+-3.13866619559783,-3.13866619559783,1.,0.865789844881757,1., 4013P 5338
+0.865789844882047,1.,0.865789844881757,1.,97.617115874664, 4013P 5339
+-228.698656211056,-11.5999999999999,97.6158909373956, 4013P 5340
+-229.565697649234,-11.5999999999999,98.3665673588135, 4013P 5341
+-229.999572361928,-11.5999999999999,99.1172437802314, 4013P 5342
+-230.433447074621,-11.5999999999999,99.8679202016494, 4013P 5343
+-229.999572361928,-11.5999999999999,100.618596623067, 4013P 5344
+-229.565697649234,-11.5999999999999,100.617371685799, 4013P 5345
+-228.698656211056,-11.5999999999999,-6.2830844037677, 4013P 5346
+-3.13866619559783,0.,0.,0.; 4013P 5347
+126,6,2,0,0,0,0,3.13925814733116,3.13925814733116, 4015P 5348
+3.13925814733116,4.18720703624771,4.18720703624771, 4015P 5349
+5.23515592516426,5.23515592516426,6.28310481408081, 4015P 5350
+6.28310481408081,6.28310481408081,1.,0.865837508248997,1., 4015P 5351
+0.865837508248987,1.,0.865837508249069,1.,21.4157277366876, 4015P 5352
+-190.598023114212,-7.49999999999997,21.4147507896972, 4015P 5353
+-189.731172299282,-7.49999999999997,22.1653032159716, 4015P 5354
+-189.297464626786,-7.49999999999997,22.915855642246, 4015P 5355
+-188.863756954289,-7.49999999999997,23.6664080685249, 4015P 5356
+-189.297464626778,-7.49999999999997,24.4169604948039, 4015P 5357
+-189.731172299267,-7.49999999999997,24.4159835478226, 4015P 5358
+-190.598023114196,-7.49999999999997,3.13925814733116, 4015P 5359
+6.28310481408081,0.,0.,0.; 4015P 5360
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,21.4157277366876, 4017P 5361
+-190.598023114212,-7.49999999999997,21.4157277366876, 4017P 5362
+-190.598023114212,-11.6,1.5,1.91,0.,0.,0.; 4017P 5363
+126,6,2,0,0,0,0,-6.28310481408081,-6.28310481408081, 4019P 5364
+-6.28310481408081,-5.23515592516426,-5.23515592516426, 4019P 5365
+-4.18720703624771,-4.18720703624771,-3.13925814733116, 4019P 5366
+-3.13925814733116,-3.13925814733116,1.,0.865837508249069,1., 4019P 5367
+0.865837508248987,1.,0.865837508248997,1.,24.4159835478226, 4019P 5368
+-190.598023114196,-11.6,24.4169604948039,-189.731172299267, 4019P 5369
+-11.6,23.6664080685249,-189.297464626778,-11.6,22.915855642246, 4019P 5370
+-188.863756954289,-11.6,22.1653032159716,-189.297464626786, 4019P 5371
+-11.6,21.4147507896972,-189.731172299282,-11.6,21.4157277366876, 4019P 5372
+-190.598023114212,-11.6,-6.28310481408081,-3.13925814733116,0., 4019P 5373
+0.,0.; 4019P 5374
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,24.4159835478226, 4021P 5375
+-190.598023114196,-7.49999999999997,24.4159835478226, 4021P 5376
+-190.598023114196,-11.6,1.5,1.91,0.,0.,0.; 4021P 5377
+126,6,2,0,0,0,0,3.13925814734168,3.13925814734168, 4023P 5378
+3.13925814734168,4.18720703625123,4.18720703625123, 4023P 5379
+5.23515592516079,5.23515592516079,6.28310481407034, 4023P 5380
+6.28310481407034,6.28310481407034,1.,0.865837508250833,1., 4023P 5381
+0.865837508250854,1.,0.865837508250777,1.,24.4159835478226, 4023P 5382
+-190.598023114196,-7.49999999999997,24.4169604948039, 4023P 5383
+-191.464873929118,-7.49999999999997,23.666408068534, 4023P 5384
+-191.898581601608,-7.49999999999997,22.9158556422641, 4023P 5385
+-192.332289274099,-7.49999999999997,22.1653032159898, 4023P 5386
+-191.898581601616,-7.49999999999997,21.4147507897154, 4023P 5387
+-191.464873929134,-7.49999999999997,21.4157277366876, 4023P 5388
+-190.598023114212,-7.49999999999997,3.13925814734168, 4023P 5389
+6.28310481407034,0.,0.,0.; 4023P 5390
+126,6,2,0,0,0,0,-6.28310481407034,-6.28310481407034, 4025P 5391
+-6.28310481407034,-5.23515592516079,-5.23515592516079, 4025P 5392
+-4.18720703625123,-4.18720703625123,-3.13925814734168, 4025P 5393
+-3.13925814734168,-3.13925814734168,1.,0.865837508250777,1., 4025P 5394
+0.865837508250854,1.,0.865837508250833,1.,21.4157277366876, 4025P 5395
+-190.598023114212,-11.6,21.4147507897154,-191.464873929134, 4025P 5396
+-11.6,22.1653032159898,-191.898581601616,-11.6,22.9158556422641, 4025P 5397
+-192.332289274099,-11.6,23.666408068534,-191.898581601608,-11.6, 4025P 5398
+24.4169604948039,-191.464873929118,-11.6,24.4159835478226, 4025P 5399
+-190.598023114196,-11.6,-6.28310481407034,-3.13925814734168,0., 4025P 5400
+0.,0.; 4025P 5401
+126,6,2,0,0,0,0,3.13925814731996,3.13925814731996, 4027P 5402
+3.13925814731996,4.1872070362402,4.1872070362402, 4027P 5403
+5.23515592516045,5.23515592516045,6.28310481408069, 4027P 5404
+6.28310481408069,6.28310481408069,1.,0.865837508248116,1., 4027P 5405
+0.865837508248067,1.,0.865837508248112,1.,100.190183492478, 4027P 5406
+-172.121201750453,-7.49999999999994,100.189206545482, 4027P 5407
+-171.25435093552,-7.49999999999994,100.939758971759, 4027P 5408
+-170.82064326302,-7.49999999999994,101.690311398036, 4027P 5409
+-170.38693559052,-7.49999999999994,102.440863824317, 4027P 5410
+-170.820643263012,-7.49999999999994,103.191416250599, 4027P 5411
+-171.254350935504,-7.49999999999994,103.190439303613, 4027P 5412
+-172.121201750437,-7.49999999999994,3.13925814731996, 4027P 5413
+6.28310481408069,0.,0.,0.; 4027P 5414
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,100.190183492478, 4029P 5415
+-172.121201750453,-7.49999999999994,100.190183492478, 4029P 5416
+-172.121201750453,-11.5999999999999,1.5,1.91,0.,0.,0.; 4029P 5417
+126,6,2,0,0,0,0,-6.28310481408069,-6.28310481408069, 4031P 5418
+-6.28310481408069,-5.23515592516045,-5.23515592516045, 4031P 5419
+-4.1872070362402,-4.1872070362402,-3.13925814731996, 4031P 5420
+-3.13925814731996,-3.13925814731996,1.,0.865837508248112,1., 4031P 5421
+0.865837508248067,1.,0.865837508248116,1.,103.190439303613, 4031P 5422
+-172.121201750437,-11.5999999999999,103.191416250599, 4031P 5423
+-171.254350935504,-11.5999999999999,102.440863824317, 4031P 5424
+-170.820643263012,-11.5999999999999,101.690311398036, 4031P 5425
+-170.38693559052,-11.5999999999999,100.939758971759, 4031P 5426
+-170.82064326302,-11.5999999999999,100.189206545482, 4031P 5427
+-171.25435093552,-11.5999999999999,100.190183492478, 4031P 5428
+-172.121201750453,-11.5999999999999,-6.28310481408069, 4031P 5429
+-3.13925814731996,0.,0.,0.; 4031P 5430
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,103.190439303613, 4033P 5431
+-172.121201750437,-7.49999999999994,103.190439303613, 4033P 5432
+-172.121201750437,-11.5999999999999,1.5,1.91,0.,0.,0.; 4033P 5433
+126,6,2,0,0,0,0,3.13925814735297,3.13925814735297, 4035P 5434
+3.13925814735297,4.1872070362588,4.1872070362588, 4035P 5435
+5.23515592516463,5.23515592516463,6.28310481407046, 4035P 5436
+6.28310481407046,6.28310481407046,1.,0.865837508251611,1., 4035P 5437
+0.865837508251546,1.,0.865837508251607,1.,103.190439303613, 4035P 5438
+-172.121201750437,-7.49999999999994,103.191416250589, 4035P 5439
+-172.988052565356,-7.49999999999994,102.440863824322, 4035P 5440
+-173.421760237843,-7.49999999999994,101.690311398054, 4035P 5441
+-173.85546791033,-7.49999999999994,100.939758971782, 4035P 5442
+-173.421760237851,-7.49999999999994,100.18920654551, 4035P 5443
+-172.988052565371,-7.49999999999994,100.190183492478, 4035P 5444
+-172.121201750453,-7.49999999999994,3.13925814735297, 4035P 5445
+6.28310481407046,0.,0.,0.; 4035P 5446
+126,6,2,0,0,0,0,-6.28310481407046,-6.28310481407046, 4037P 5447
+-6.28310481407046,-5.23515592516463,-5.23515592516463, 4037P 5448
+-4.1872070362588,-4.1872070362588,-3.13925814735297, 4037P 5449
+-3.13925814735297,-3.13925814735297,1.,0.865837508251607,1., 4037P 5450
+0.865837508251546,1.,0.865837508251611,1.,100.190183492478, 4037P 5451
+-172.121201750453,-11.5999999999999,100.18920654551, 4037P 5452
+-172.988052565371,-11.5999999999999,100.939758971782, 4037P 5453
+-173.421760237851,-11.5999999999999,101.690311398054, 4037P 5454
+-173.85546791033,-11.5999999999999,102.440863824322, 4037P 5455
+-173.421760237843,-11.5999999999999,103.191416250589, 4037P 5456
+-172.988052565356,-11.5999999999999,103.190439303613, 4037P 5457
+-172.121201750437,-11.5999999999999,-6.28310481407046, 4037P 5458
+-3.13925814735297,0.,0.,0.; 4037P 5459
+126,1,1,0,0,1,0,-2.57991060542639,-2.57991060542639, 4039P 5460
+-1.17773192390871,-1.17773192390871,1.,1.,105.613764146653, 4039P 5461
+-164.547507575232,-7.49999999999995,91.5919773314763, 4039P 5462
+-164.547507575232,-7.49999999999995,-2.57991060542639, 4039P 5463
+-1.17773192390871,0.,0.,0.; 4039P 5464
+126,1,1,0,0,1,0,0.8,0.8,1.21,1.21,1.,1.,105.613764146653, 4041P 5465
+-164.547507575232,-7.49999999999993,105.613764146653, 4041P 5466
+-164.547507575232,-11.5999999999999,0.8,1.21,0.,0.,0.; 4041P 5467
+126,1,1,0,0,1,0,1.17773192390871,1.17773192390871, 4043P 5468
+2.57991060542639,2.57991060542639,1.,1.,91.5919773314763, 4043P 5469
+-164.547507575232,-11.6,105.613764146653,-164.547507575232, 4043P 5470
+-11.5999999999999,1.17773192390871,2.57991060542639,0.,0.,0.; 4043P 5471
+126,1,1,0,0,1,0,0.45,0.45,0.86,0.86,1.,1.,91.5919773314763, 4045P 5472
+-164.547507575232,-7.49999999999994,91.5919773314763, 4045P 5473
+-164.547507575232,-11.5999999999999,0.45,0.86,0.,0.,0.; 4045P 5474
+126,1,1,0,0,1,0,-0.2,-0.2,0.2,0.2,1.,1.,105.613764146653, 4047P 5475
+-163.047507575232,5.50000000000006,105.613764146653, 4047P 5476
+-163.047507575232,1.50000000000006,-0.2,0.2,0.,0.,0.; 4047P 5477
+126,1,1,0,0,1,0,0.0749999999999993,0.0749999999999993, 4049P 5478
+0.724999999999998,0.724999999999998,1.,1.,105.613764146653, 4049P 5479
+-163.047507575232,1.50000000000007,105.613764146653, 4049P 5480
+-156.547507575232,1.50000000000007,0.0749999999999993, 4049P 5481
+0.724999999999998,0.,0.,0.; 4049P 5482
+126,1,1,0,0,1,0,-1.51,-1.51,-0.2,-0.2,1.,1.,105.613764146653, 4051P 5483
+-156.547507575232,-11.5999999999999,105.613764146653, 4051P 5484
+-156.547507575232,1.50000000000006,-1.51,-0.2,0.,0.,0.; 4051P 5485
+126,1,1,0,0,1,0,2.10504270777188,2.10504270777188, 4053P 5486
+2.90504270777187,2.90504270777187,1.,1.,105.613764146653, 4053P 5487
+-164.547507575232,-11.5999999999999,105.613764146653, 4053P 5488
+-156.547507575232,-11.5999999999999,2.10504270777188, 4053P 5489
+2.90504270777187,0.,0.,0.; 4053P 5490
+126,1,1,0,0,1,0,-7.99046868143113,-7.99046868143113, 4055P 5491
+-0.229270143011589,-0.229270143011589,1.,1.,117.599000752838, 4055P 5492
+-167.842369071796,-7.49999999999994,117.59899817983, 4055P 5493
+-245.454354455992,-7.49999999999994,-7.99046868143113, 4055P 5494
+-0.229270143011589,0.,0.,0.; 4055P 5495
+126,2,2,0,0,0,0,-3.14159259057679,-3.14159259057679, 4057P 5496
+-3.14159259057679,-1.98287834194696,-1.98287834194696, 4057P 5497
+-1.98287834194696,0.999999677363267,0.83681463606139,1., 4057P 5498
+119.099000828848,-165.549667575233,-7.49999999999994, 4057P 5499
+119.099000828847,-167.18670588825,-7.49999999999994, 4057P 5500
+117.599000752838,-167.842369071796,-7.49999999999994, 4057P 5501
+-3.14159259057679,-1.98287834194696,0.,0.,0.; 4057P 5502
+126,4,2,0,0,0,0,0.412082048305129,0.412082048305129, 4059P 5503
+0.412082048305129,1.77683680972467,1.77683680972467, 4059P 5504
+3.14159157114422,3.14159157114422,3.14159157114422,1., 4059P 5505
+0.776075642357578,1.,0.776075642357596,1.,114.304139365509, 4059P 5506
+-164.547507575232,-7.49999999999994,115.118495569018, 4059P 5507
+-162.684456106938,-7.49999999999994,117.108747098487, 4059P 5508
+-163.100431646069,-7.49999999999994,119.098998627955, 4059P 5509
+-163.516407185201,-7.49999999999994,119.099000828846, 4059P 5510
+-165.54966486678,-7.49999999999994,0.412082048305129, 4059P 5511
+3.14159157114422,0.,0.,0.; 4059P 5512
+126,1,1,0,0,1,0,-4.21636997194452,-4.21636997194452, 4061P 5513
+-2.50048634973718,-2.50048634973718,1.,1.,74.4331411094029, 4061P 5514
+-164.547507575232,-7.49999999999995,91.5919773314763, 4061P 5515
+-164.547507575232,-7.49999999999994,-4.21636997194452, 4061P 5516
+-2.50048634973718,0.,0.,0.; 4061P 5517
+126,1,1,0,0,1,0,-2.45504270777187,-2.45504270777187, 4063P 5518
+-1.75504270777187,-1.75504270777187,1.,1.,74.4331411094029, 4063P 5519
+-164.547507575232,-7.49999999999996,74.4331411094029, 4063P 5520
+-171.547507575232,-7.49999999999996,-2.45504270777187, 4063P 5521
+-1.75504270777187,0.,0.,0.; 4063P 5522
+126,1,1,0,0,1,0,-1.67087945356388,-1.67087945356388, 4065P 5523
+0.329120546436124,0.329120546436124,1.,1.,74.4331411094029, 4065P 5524
+-171.547507575232,-7.49999999999995,54.4331411094029, 4065P 5525
+-171.547507575231,-7.49999999999996,-1.67087945356388, 4065P 5526
+0.329120546436124,0.,0.,0.; 4065P 5527
+126,1,1,0,0,1,0,1.40504270777187,1.40504270777187, 4067P 5528
+2.10504270777187,2.10504270777187,1.,1.,54.4331411094029, 4067P 5529
+-171.547507575231,-7.49999999999996,54.4331411094029, 4067P 5530
+-164.547507575232,-7.49999999999996,1.40504270777187, 4067P 5531
+2.10504270777187,0.,0.,0.; 4067P 5532
+126,1,1,0,0,1,0,-7.61515214233563,-7.61515214233563, 4069P 5533
+-6.21636997194452,-6.21636997194452,1.,1.,40.4453194054918, 4069P 5534
+-164.547507575232,-7.49999999999996,54.4331411094029, 4069P 5535
+-164.547507575232,-7.49999999999995,-7.61515214233563, 4069P 5536
+-6.21636997194452,0.,0.,0.; 4069P 5537
+126,1,1,0,0,1,0,1.12851163163168,1.12851163163168, 4071P 5538
+2.82867520720327,2.82867520720327,1.,1.,40.4453194054917, 4071P 5539
+-164.547507575232,-7.49999999999996,23.4436836497758, 4071P 5540
+-164.547507575232,-7.49999999999996,1.12851163163168, 4071P 5541
+2.82867520720327,0.,0.,0.; 4071P 5542
+126,4,2,0,0,0,0,-6.25390749790614,-6.25390749790614, 4073P 5543
+-6.25390749790614,-4.9037910999005,-4.9037910999005, 4073P 5544
+-3.55367470189486,-3.55367470189486,-3.55367470189486,1., 4073P 5545
+0.780670581409548,1.,0.780670581409585,1.,2.93314110940287, 4073P 5546
+-165.476420277504,-7.49999999999997,2.99177706791294, 4073P 5547
+-163.474248497833,-7.49999999999997,4.95822887324418, 4073P 5548
+-163.093200852189,-7.49999999999997,6.92468067857541, 4073P 5549
+-162.712153206546,-7.49999999999997,7.72693023593538, 4073P 5550
+-164.547507575232,-7.49999999999997,-6.25390749790614, 4073P 5551
+-3.55367470189486,0.,0.,0.; 4073P 5552
+126,1,1,0,0,1,0,2.18487010842909,2.18487010842909, 4075P 5553
+2.19951956797476,2.19951956797476,1.,1.,2.93314110940288, 4075P 5554
+-165.622914872961,-7.49999999999997,2.93314110940288, 4075P 5555
+-165.476420277504,-7.49999999999997,2.18487010842909, 4075P 5556
+2.19951956797476,0.,0.,0.; 4075P 5557
+126,1,1,0,0,1,0,-2.19683051976291,-2.19683051976291, 4077P 5558
+-0.233951809861228,-0.233951809861228,1.,1.,4.43314110940287, 4077P 5559
+-187.471624566822,-7.49999999999997,4.43314110940286, 4077P 5560
+-167.842837467805,-7.49999999999997,-2.19683051976291, 4077P 5561
+-0.233951809861228,0.,0.,0.; 4077P 5562
+126,6,2,0,0,0,0,-9.01269591246431,-9.01269591246431, 4079P 5563
+-9.01269591246431,-7.71661521165286,-7.71661521165286, 4079P 5564
+-6.42053451084141,-6.42053451084141,-5.12445381002996, 4079P 5565
+-5.12445381002996,-5.12445381002996,1.,0.797268222513898,1., 4079P 5566
+0.797268222513902,1.,0.797268222513904,1.,7.72696471074416, 4079P 5567
+-248.749215886107,-7.49999999999997,6.96821249566285, 4079P 5568
+-250.485058779287,-7.49999999999997,5.09163041069214, 4079P 5569
+-250.22564568775,-7.49999999999997,3.21504832572143, 4079P 5570
+-249.966232596213,-7.49999999999997,2.95566754645106, 4079P 5571
+-248.089646044774,-7.49999999999997,2.69628676718068, 4079P 5572
+-246.213059493336,-7.49999999999997,4.43214272479953, 4079P 5573
+-245.454337167255,-7.49999999999997,-9.01269591246431, 4079P 5574
+-5.12445381002996,0.,0.,0.; 4079P 5575
+126,6,2,0,0,0,0,-4.30030689892742,-4.30030689892742, 4081P 5576
+-4.30030689892742,-3.00423194871996,-3.00423194871996, 4081P 5577
+-1.7081569985125,-1.7081569985125,-0.412082048305046, 4081P 5578
+-0.412082048305046,-0.412082048305046,1.,0.797269958115279,1., 4081P 5579
+0.797269958115353,1.,0.797269958115315,1.,117.59899817983, 4081P 5580
+-245.454354455992,-7.49999999999994,119.334830676844, 4081P 5581
+-246.213102195359,-7.49999999999994,119.07542986441, 4081P 5582
+-248.089674551596,-7.49999999999994,118.816029051977, 4081P 5583
+-249.966246907834,-7.49999999999994,116.93945668714, 4081P 5584
+-250.225647658055,-7.49999999999994,115.062884322303, 4081P 5585
+-250.485048408276,-7.49999999999994,114.304136640482, 4081P 5586
+-248.749215886107,-7.49999999999994,-4.30030689892742, 4081P 5587
+-0.412082048305046,0.,0.,0.; 4081P 5588
+126,1,1,0,0,1,0,0.8,0.8,1.21,1.21,1.,1.,40.4453194054918, 4083P 5589
+-164.547507575232,-7.49999999999997,40.4453194054918, 4083P 5590
+-164.547507575232,-11.6,0.8,1.21,0.,0.,0.; 4083P 5591
+126,1,1,0,0,1,0,-2.82867520720327,-2.82867520720327, 4085P 5592
+-1.12851163163168,-1.12851163163168,1.,1.,23.4436836497758, 4085P 5593
+-164.547507575232,-11.6,40.4453194054917,-164.547507575232, 4085P 5594
+-11.6,-2.82867520720327,-1.12851163163168,0.,0.,0.; 4085P 5595
+126,1,1,0,0,1,0,0.45,0.45,0.86,0.86,1.,1.,23.4436836497758, 4087P 5596
+-164.547507575232,-7.49999999999996,23.4436836497758, 4087P 5597
+-164.547507575232,-11.6,0.45,0.86,0.,0.,0.; 4087P 5598
+126,1,1,0,0,1,0,-0.199999999999999,-0.199999999999999,1.1,1.1, 4089P 5599
+1.,1.,40.4453194054918,-164.547507575232,5.50000000000003, 4089P 5600
+40.4453194054918,-164.547507575232,-7.49999999999997, 4089P 5601
+-0.199999999999999,1.1,0.,0.,0.; 4089P 5602
+126,1,1,0,0,1,0,-2.25504270777188,-2.25504270777188, 4091P 5603
+-2.10504270777188,-2.10504270777188,1.,1.,40.4453194054918, 4091P 5604
+-163.047507575232,5.50000000000003,40.4453194054918, 4091P 5605
+-164.547507575232,5.50000000000003,-2.25504270777188, 4091P 5606
+-2.10504270777188,0.,0.,0.; 4091P 5607
+126,1,1,0,0,1,0,-0.199999999999999,-0.199999999999999, 4093P 5608
+0.200000000000001,0.200000000000001,1.,1.,40.4453194054918, 4093P 5609
+-163.047507575232,5.50000000000003,40.4453194054918, 4093P 5610
+-163.047507575232,1.50000000000003,-0.199999999999999, 4093P 5611
+0.200000000000001,0.,0.,0.; 4093P 5612
+126,1,1,0,0,1,0,0.0749999999999993,0.0749999999999993, 4095P 5613
+0.724999999999998,0.724999999999998,1.,1.,40.4453194054918, 4095P 5614
+-163.047507575232,1.50000000000003,40.4453194054918, 4095P 5615
+-156.547507575232,1.50000000000003,0.0749999999999993, 4095P 5616
+0.724999999999998,0.,0.,0.; 4095P 5617
+126,1,1,0,0,1,0,-1.51,-1.51,-0.2,-0.2,1.,1.,40.4453194054918, 4097P 5618
+-156.547507575232,-11.6,40.4453194054918,-156.547507575232, 4097P 5619
+1.50000000000004,-1.51,-0.2,0.,0.,0.; 4097P 5620
+126,1,1,0,0,1,0,2.10504270777188,2.10504270777188, 4099P 5621
+2.90504270777187,2.90504270777187,1.,1.,40.4453194054918, 4099P 5622
+-164.547507575232,-11.6,40.4453194054918,-156.547507575232, 4099P 5623
+-11.6,2.10504270777188,2.90504270777187,0.,0.,0.; 4099P 5624
+126,1,1,0,0,1,0,-2.6006363194306,-2.6006363194306, 4101P 5625
+-0.900472743859004,-0.900472743859004,1.,1.,40.4453194054918, 4101P 5626
+-156.547507575232,1.50000000000004,23.4436836497758, 4101P 5627
+-156.547507575232,1.50000000000003,-2.6006363194306, 4101P 5628
+-0.900472743859004,0.,0.,0.; 4101P 5629
+126,1,1,0,0,1,0,0.900472743859004,0.900472743859004, 4103P 5630
+2.6006363194306,2.6006363194306,1.,1.,23.4436836497758, 4103P 5631
+-163.047507575232,1.50000000000003,40.4453194054918, 4103P 5632
+-163.047507575232,1.50000000000004,0.900472743859004, 4103P 5633
+2.6006363194306,0.,0.,0.; 4103P 5634
+126,1,1,0,0,1,0,0.0749999999999957,0.0749999999999957, 4105P 5635
+0.724999999999998,0.724999999999998,1.,1.,23.4436836497758, 4105P 5636
+-163.047507575232,1.50000000000003,23.4436836497758, 4105P 5637
+-156.547507575232,1.50000000000003,0.0749999999999957, 4105P 5638
+0.724999999999998,0.,0.,0.; 4105P 5639
+126,1,1,0,0,1,0,-6.31006610946171,-6.31006610946171, 4107P 5640
+-4.90788742794403,-4.90788742794403,1.,1.,105.613764146653, 4107P 5641
+-156.547507575232,1.50000000000004,91.5919773314763, 4107P 5642
+-156.547507575232,1.50000000000004,-6.31006610946171, 4107P 5643
+-4.90788742794403,0.,0.,0.; 4107P 5644
+126,1,1,0,0,1,0,4.90788742794403,4.90788742794403, 4109P 5645
+6.31006610946171,6.31006610946171,1.,1.,91.5919773314763, 4109P 5646
+-163.047507575232,1.50000000000004,105.613764146653, 4109P 5647
+-163.047507575232,1.50000000000004,4.90788742794403, 4109P 5648
+6.31006610946171,0.,0.,0.; 4109P 5649
+126,1,1,0,0,1,0,0.0750000000000028,0.0750000000000028, 4111P 5650
+0.724999999999998,0.724999999999998,1.,1.,91.5919773314763, 4111P 5651
+-163.047507575232,1.50000000000007,91.5919773314763, 4111P 5652
+-156.547507575232,1.50000000000007,0.0750000000000028, 4111P 5653
+0.724999999999998,0.,0.,0.; 4111P 5654
+126,1,1,0,0,1,0,0.722042900013125,0.722042900013125, 4113P 5655
+5.83670869261158,5.83670869261158,1.,1.,40.4453194054918, 4113P 5656
+-163.047507575232,5.50000000000003,91.5919773314763, 4113P 5657
+-163.047507575232,5.50000000000004,0.722042900013125, 4113P 5658
+5.83670869261158,0.,0.,0.; 4113P 5659
+126,1,1,0,0,1,0,0.15,0.15,0.549999999999998,0.549999999999998, 4115P 5660
+1.,1.,91.5919773314763,-163.047507575232,1.50000000000007, 4115P 5661
+91.5919773314763,-163.047507575232,5.50000000000004,0.15, 4115P 5662
+0.549999999999998,0.,0.,0.; 4115P 5663
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,116.596840828848, 4117P 5664
+-163.047507575232,7.50000000000006,116.596840828848, 4117P 5665
+-163.047507575232,5.50000000000006,0.,0.2,0.,0.,0.; 4117P 5666
+126,1,1,0,0,1,0,-2.77906616327648,-2.77906616327648, 4119P 5667
+8.33719504234876,8.33719504234876,1.,1.,5.43422877259571, 4119P 5668
+-163.047507575232,7.50000000000002,116.596840828848, 4119P 5669
+-163.047507575232,7.50000000000005,-2.77906616327648, 4119P 5670
+8.33719504234876,0.,0.,0.; 4119P 5671
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,5.43422877259573, 4121P 5672
+-163.047507575232,7.50000000000003,5.43422877259573, 4121P 5673
+-163.047507575232,5.50000000000003,0.,0.2,0.,0.,0.; 4121P 5674
+126,1,1,0,0,1,0,0.9,0.9,1.3,1.3,1.,1.,23.4436836497758, 4123P 5675
+-163.047507575232,1.50000000000003,23.4436836497758, 4123P 5676
+-163.047507575232,5.50000000000002,0.9,1.3,0.,0.,0.; 4123P 5677
+126,1,1,0,0,1,0,-2.83004270777188,-2.83004270777188, 4125P 5678
+-2.03004270777188,-2.03004270777188,1.,1.,23.4436836497758, 4125P 5679
+-156.547507575232,-11.6,23.4436836497758,-164.547507575232, 4125P 5680
+-11.6,-2.83004270777188,-2.03004270777188,0.,0.,0.; 4125P 5681
+126,1,1,0,0,1,0,-0.15,-0.15,1.16,1.16,1.,1.,23.4436836497758, 4127P 5682
+-156.547507575232,1.50000000000003,23.4436836497758, 4127P 5683
+-156.547507575232,-11.6,-0.15,1.16,0.,0.,0.; 4127P 5684
+126,1,1,0,0,1,0,-2.90504270777187,-2.90504270777187, 4129P 5685
+-2.10504270777188,-2.10504270777188,1.,1.,91.5919773314763, 4129P 5686
+-156.547507575232,-11.5999999999999,91.5919773314763, 4129P 5687
+-164.547507575232,-11.5999999999999,-2.90504270777187, 4129P 5688
+-2.10504270777188,0.,0.,0.; 4129P 5689
+126,1,1,0,0,1,0,-0.15,-0.15,1.16,1.16,1.,1.,91.5919773314763, 4131P 5690
+-156.547507575232,1.50000000000006,91.5919773314763, 4131P 5691
+-156.547507575232,-11.5999999999999,-0.15,1.16,0.,0.,0.; 4131P 5692
+126,1,1,0,0,1,0,2.10504270777188,2.10504270777188, 4133P 5693
+2.25504270777187,2.25504270777187,1.,1.,91.5919773314763, 4133P 5694
+-164.547507575232,5.50000000000004,91.5919773314763, 4133P 5695
+-163.047507575232,5.50000000000004,2.10504270777188, 4133P 5696
+2.25504270777187,0.,0.,0.; 4133P 5697
+126,1,1,0,0,1,0,-0.75,-0.75,0.549999999999998,0.549999999999998, 4135P 5698
+1.,1.,91.5919773314763,-164.547507575232,-7.49999999999994, 4135P 5699
+91.5919773314763,-164.547507575232,5.50000000000004,-0.75, 4135P 5700
+0.549999999999998,0.,0.,0.; 4135P 5701
+126,1,1,0,0,1,0,-0.75,-0.75,0.549999999999999,0.549999999999999, 4137P 5702
+1.,1.,54.4331411094029,-164.547507575232,-7.49999999999996, 4137P 5703
+54.4331411094029,-164.547507575232,5.50000000000004,-0.75, 4137P 5704
+0.549999999999999,0.,0.,0.; 4137P 5705
+126,1,1,0,0,1,0,-2.12082507040424,-2.12082507040424, 4139P 5706
+-0.722042900013125,-0.722042900013125,1.,1.,54.4331411094029, 4139P 5707
+-164.547507575232,5.50000000000004,40.4453194054918, 4139P 5708
+-164.547507575232,5.50000000000003,-2.12082507040424, 4139P 5709
+-0.722042900013125,0.,0.,0.; 4139P 5710
+126,1,1,0,0,1,0,-2.10504270777183,-2.10504270777183, 4141P 5711
+-1.40504270777192,-1.40504270777192,1.,1.,54.4331411094029, 4141P 5712
+-164.547507575232,5.50000000000003,54.4331411094029, 4141P 5713
+-171.547507575231,5.50000000000003,-2.10504270777183, 4141P 5714
+-1.40504270777192,0.,0.,0.; 4141P 5715
+126,1,1,0,0,1,0,-0.329120546436126,-0.329120546436126, 4143P 5716
+1.67087945356387,1.67087945356387,1.,1.,54.4331411094029, 4143P 5717
+-171.547507575231,5.50000000000003,74.4331411094029, 4143P 5718
+-171.547507575232,5.50000000000004,-0.329120546436126, 4143P 5719
+1.67087945356387,0.,0.,0.; 4143P 5720
+126,1,1,0,0,1,0,1.75504270777192,1.75504270777192, 4145P 5721
+2.45504270777183,2.45504270777183,1.,1.,74.4331411094029, 4145P 5722
+-171.547507575232,5.50000000000004,74.4331411094029, 4145P 5723
+-164.547507575232,5.50000000000004,1.75504270777192, 4145P 5724
+2.45504270777183,0.,0.,0.; 4145P 5725
+126,1,1,0,0,1,0,-5.83670869261158,-5.83670869261158, 4147P 5726
+-4.12082507040424,-4.12082507040424,1.,1.,91.5919773314763, 4147P 5727
+-164.547507575232,5.50000000000004,74.4331411094029, 4147P 5728
+-164.547507575232,5.50000000000004,-5.83670869261158, 4147P 5729
+-4.12082507040424,0.,0.,0.; 4147P 5730
+126,1,1,0,0,1,0,-0.55,-0.55,0.75,0.75,1.,1.,74.4331411094029, 4149P 5731
+-164.547507575232,5.50000000000004,74.4331411094029, 4149P 5732
+-164.547507575232,-7.49999999999996,-0.55,0.75,0.,0.,0.; 4149P 5733
+126,1,1,0,0,1,0,0.,0.,1.3,1.3,1.,1.,74.4331411094029, 4151P 5734
+-171.547507575232,-7.49999999999996,74.4331411094029, 4151P 5735
+-171.547507575232,5.50000000000004,0.,1.3,0.,0.,0.; 4151P 5736
+126,1,1,0,0,1,0,0.,0.,1.3,1.3,1.,1.,54.4331411094029, 4153P 5737
+-171.547507575231,-7.49999999999996,54.4331411094029, 4153P 5738
+-171.547507575231,5.50000000000004,0.,1.3,0.,0.,0.; 4153P 5739
+126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,117.59899817983, 4155P 5740
+-245.454354455992,-7.49999999999994,117.59899817983, 4155P 5741
+-245.454354455992,5.50000000000006,-1.5,-0.2,0.,0.,0.; 4155P 5742
+126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,117.599000752838, 4157P 5743
+-167.842369071796,5.50000000000006,117.599000752838, 4157P 5744
+-167.842369071796,-7.49999999999994,0.2,1.5,0.,0.,0.; 4157P 5745
+126,1,1,0,0,1,0,0.958837288670924,0.958837288670924, 4159P 5746
+3.15835685664568,3.15835685664568,1.,1.,2.9331411094029, 4159P 5747
+-187.471615957251,7.50000000000003,2.93314110940288, 4159P 5748
+-165.476420277504,7.50000000000003,0.958837288670924, 4159P 5749
+3.15835685664568,0.,0.,0.; 4159P 5750
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,2.9331411094029, 4161P 5751
+-187.471615957251,7.50000000000003,2.9331411094029, 4161P 5752
+-187.471615957251,5.50000000000003,0.,0.2,0.,0.,0.; 4161P 5753
+126,1,1,0,0,1,0,0.,0.,1.5,1.5,1.,1.,2.93314110940287, 4163P 5754
+-165.476420277504,7.50000000000003,2.93314110940287, 4163P 5755
+-165.476420277504,-7.49999999999997,0.,1.5,0.,0.,0.; 4163P 5756
+126,1,1,0,0,1,0,-2.054982559236,-2.054982559236, 4165P 5757
+3.97255712615894,3.97255712615894,1.,1.,2.93210324777536, 4165P 5758
+-247.747012802266,7.50000000000003,2.9331411094029, 4165P 5759
+-187.471615957251,7.50000000000003,-2.054982559236, 4165P 5760
+3.97255712615894,0.,0.,0.; 4165P 5761
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,2.93210324777537, 4167P 5762
+-247.747012802266,7.50000000000003,2.93210324777537, 4167P 5763
+-247.747012802266,5.50000000000003,0.,0.2,0.,0.,0.; 4167P 5764
+126,4,2,0,0,0,0,-1.57081354545468,-1.57081354545468, 4169P 5765
+-1.57081354545468,-0.785406772727342,-0.785406772727342,0.,0., 4169P 5766
+0.,1.,0.923877885178856,1.,0.923877885178848,1., 4169P 5767
+5.43426324740444,-250.249215886107,7.50000000000003, 4169P 5768
+4.39782202118939,-250.249215886107,7.50000000000003, 4169P 5769
+3.66495371141794,-249.516334957217,7.50000000000003, 4169P 5770
+2.93208540164649,-248.783454028327,7.50000000000003, 4169P 5771
+2.93210324777536,-247.747012802266,7.50000000000003, 4169P 5772
+-1.57081354545468,0.,0.,0.,0.; 4169P 5773
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,5.43426324740444, 4171P 5774
+-250.249215886107,7.50000000000003,5.43426324740444, 4171P 5775
+-250.249215886107,5.50000000000003,0.,0.2,0.,0.,0.; 4171P 5776
+126,1,1,0,0,1,0,-2.77906430328482,-2.77906430328482, 4173P 5777
+8.33719318235691,8.33719318235691,1.,1.,116.596838103822, 4173P 5778
+-250.249215886107,7.50000000000007,5.43426324740444, 4173P 5779
+-250.249215886107,7.50000000000004,-2.77906430328482, 4173P 5780
+8.33719318235691,0.,0.,0.; 4173P 5781
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,116.596838103822, 4175P 5782
+-250.249215886107,7.50000000000006,116.596838103822, 4175P 5783
+-250.249215886107,5.50000000000006,0.,0.2,0.,0.,0.; 4175P 5784
+126,2,2,0,0,0,0,-1.5707963267949,-1.5707963267949, 4177P 5785
+-1.5707963267949,0.,0.,0.,1.,0.707106781186533,1., 4177P 5786
+119.098998103822,-247.747055886107,7.50000000000006, 4177P 5787
+119.098998103822,-250.249215886107,7.50000000000006, 4177P 5788
+116.596838103822,-250.249215886107,7.50000000000006, 4177P 5789
+-1.5707963267949,0.,0.,0.,0.; 4177P 5790
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,119.098998103822, 4179P 5791
+-247.747055886107,7.50000000000006,119.098998103822, 4179P 5792
+-247.747055886107,5.50000000000006,0.,0.2,0.,0.,0.; 4179P 5793
+126,1,1,0,0,1,0,-2.05493493947419,-2.05493493947419, 4181P 5794
+6.16480416245852,6.16480416245852,1.,1.,119.099000828846, 4181P 5795
+-165.54966486678,7.50000000000006,119.098998103822, 4181P 5796
+-247.747055886107,7.50000000000006,-2.05493493947419, 4181P 5797
+6.16480416245852,0.,0.,0.; 4181P 5798
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,119.099000828846, 4183P 5799
+-165.54966486678,7.50000000000006,119.099000828846, 4183P 5800
+-165.54966486678,5.50000000000006,0.,0.2,0.,0.,0.; 4183P 5801
+126,2,2,0,0,0,0,-1.57079524434933,-1.57079524434933, 4185P 5802
+-1.57079524434933,0.,0.,0.,1.,0.707107163888751,1., 4185P 5803
+116.596840828848,-163.047507575233,7.50000000000006, 4185P 5804
+119.098998120397,-163.047507575233,7.50000000000006, 4185P 5805
+119.099000828846,-165.54966486678,7.50000000000006, 4185P 5806
+-1.57079524434933,0.,0.,0.,0.; 4185P 5807
+126,2,2,0,0,0,0,-1.54151851752146,-1.54151851752146, 4187P 5808
+-1.54151851752146,0.,0.,0.,1.,0.71738191595478,1., 4187P 5809
+2.93314110940286,-165.476420277504,7.50000000000003, 4187P 5810
+3.00427467840082,-163.047507575232,7.50000000000003, 4187P 5811
+5.4342287725957,-163.047507575232,7.50000000000003, 4187P 5812
+-1.54151851752146,0.,0.,0.,0.; 4187P 5813
+126,2,2,0,0,0,0,0.,0.,0.,1.55536115200856,1.55536115200856, 4189P 5814
+1.55536115200856,1.,0.712542827450542,1.,5.4342287725957, 4189P 5815
+-156.547507575232,7.50000000000003,-3.43004274316727, 4189P 5816
+-156.547507575232,7.50000000000002,-3.56685889059713, 4189P 5817
+-165.410723179457,7.50000000000002,0.,1.55536115200856,0.,0.,0.; 4189P 5818
+126,1,1,0,0,1,0,7.15168754189355D-31,7.15168754189355D-31, 4191P 5819
+2.20608325126057,2.20608325126057,1.,1.,-3.56685889059712, 4191P 5820
+-165.410723179457,7.50000000000003,-3.5668588905971, 4191P 5821
+-187.471555692063,7.50000000000003,7.15168754189355D-31, 4191P 5822
+2.20608325126057,0.,0.,0.; 4191P 5823
+126,1,1,0,0,1,0,0.,0.,6.02753451978495,6.02753451978495,1.,1., 4193P 5824
+-3.56685889059712,-187.471555692063,7.50000000000003, 4193P 5825
+-3.56789675126108,-247.746900880977,7.50000000000003,0., 4193P 5826
+6.02753451978495,0.,0.,0.; 4193P 5827
+126,4,2,0,0,0,0,0.,0.,0.,0.785406772727353,0.785406772727353, 4195P 5828
+1.57081354545471,1.57081354545471,1.57081354545471,1., 4195P 5829
+0.92387788517878,1.,0.92387788517879,1.,-3.56789675126107, 4195P 5830
+-247.746900880977,7.50000000000002,-3.56796095727013, 4195P 5831
+-251.475763043109,7.50000000000002,-0.931279936275423, 4195P 5832
+-254.112489464608,7.50000000000003,1.70540108471928, 4195P 5833
+-256.749215886107,7.50000000000003,5.43426324740445, 4195P 5834
+-256.749215886107,7.50000000000003,0.,1.57081354545471,0.,0.,0.; 4195P 5835
+126,1,1,0,0,1,0,0.,0.,11.1162574856417,11.1162574856417,1.,1., 4197P 5836
+5.43426324740444,-256.749215886107,7.50000000000003, 4197P 5837
+116.596838103822,-256.749215886107,7.50000000000005,0., 4197P 5838
+11.1162574856417,0.,0.,0.; 4197P 5839
+126,2,2,0,0,0,0,0.,0.,0.,1.57079632679491,1.57079632679491, 4199P 5840
+1.57079632679491,1.,0.707106781186541,1.,116.596838103822, 4199P 5841
+-256.749215886107,7.50000000000006,125.598998103822, 4199P 5842
+-256.749215886107,7.50000000000006,125.598998103822, 4199P 5843
+-247.747055886107,7.50000000000006,0.,1.57079632679491,0.,0.,0.; 4199P 5844
+126,1,1,0,0,1,0,0.,0.,8.21973908038377,8.21973908038377,1.,1., 4201P 5845
+125.598998103822,-247.747055886107,7.50000000000006, 4201P 5846
+125.599000828846,-165.54966508227,7.50000000000006,0., 4201P 5847
+8.21973908038377,0.,0.,0.; 4201P 5848
+126,2,2,0,0,0,0,0.,0.,0.,1.57079604986551,1.57079604986551, 4203P 5849
+1.57079604986551,1.,0.707106879095863,1.,125.599000828846, 4203P 5850
+-165.54966508227,7.50000000000006,125.598998335884, 4203P 5851
+-156.547507575234,7.50000000000006,116.596840828848, 4203P 5852
+-156.547507575234,7.50000000000006,0.,1.57079604986551,0.,0.,0.; 4203P 5853
+126,1,1,0,0,1,0,0.,0.,11.1162612056252,11.1162612056252,1.,1., 4205P 5854
+116.596840828848,-156.547507575232,7.50000000000006, 4205P 5855
+5.43422877259571,-156.547507575232,7.50000000000003,0., 4205P 5856
+11.1162612056252,0.,0.,0.; 4205P 5857
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,-3.56685889059712, 4207P 5858
+-165.410723179457,7.50000000000003,-3.56685889059711, 4207P 5859
+-165.410723179457,-11.6,0.,1.91,0.,0.,0.; 4207P 5860
+126,1,1,0,0,1,0,-2.20608325126057,-2.20608325126057,0.,0.,1.,1., 4209P 5861
+-3.5668588905971,-187.471555692063,-11.6,-3.56685889059712, 4209P 5862
+-165.410723179457,-11.6,-2.20608325126057,0.,0.,0.,0.; 4209P 5863
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,-3.56685889059712, 4211P 5864
+-187.471555692063,7.50000000000003,-3.56685889059711, 4211P 5865
+-187.471555692063,-11.6,0.,1.91,0.,0.,0.; 4211P 5866
+126,1,1,0,0,1,0,-6.02753451978495,-6.02753451978495,0.,0.,1.,1., 4213P 5867
+-3.56789675126108,-247.746900880977,-11.6,-3.56685889059712, 4213P 5868
+-187.471555692063,-11.6,-6.02753451978495,0.,0.,0.,0.; 4213P 5869
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,-3.56789675126109, 4215P 5870
+-247.746900880977,7.50000000000003,-3.56789675126108, 4215P 5871
+-247.746900880977,-11.6,0.,1.91,0.,0.,0.; 4215P 5872
+126,4,2,0,0,0,0,-1.57081354545471,-1.57081354545471, 4217P 5873
+-1.57081354545471,-0.785406772727353,-0.785406772727353,0.,0., 4217P 5874
+0.,1.,0.92387788517879,1.,0.92387788517878,1.,5.43426324740445, 4217P 5875
+-256.749215886107,-11.6,1.70540108471928,-256.749215886107, 4217P 5876
+-11.6,-0.931279936275423,-254.112489464608,-11.6, 4217P 5877
+-3.56796095727013,-251.475763043109,-11.6,-3.56789675126107, 4217P 5878
+-247.746900880977,-11.6,-1.57081354545471,0.,0.,0.,0.; 4217P 5879
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,5.43426324740444, 4219P 5880
+-256.749215886107,7.50000000000003,5.43426324740445, 4219P 5881
+-256.749215886107,-11.6,0.,1.91,0.,0.,0.; 4219P 5882
+126,1,1,0,0,1,0,-11.1162574856417,-11.1162574856417,0.,0.,1.,1., 4221P 5883
+116.596838103822,-256.749215886107,-11.5999999999999, 4221P 5884
+5.43426324740444,-256.749215886107,-11.6,-11.1162574856417,0., 4221P 5885
+0.,0.,0.; 4221P 5886
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,116.596838103822, 4223P 5887
+-256.749215886107,7.50000000000006,116.596838103822, 4223P 5888
+-256.749215886107,-11.5999999999999,0.,1.91,0.,0.,0.; 4223P 5889
+126,2,2,0,0,0,0,-1.57079632679491,-1.57079632679491, 4225P 5890
+-1.57079632679491,0.,0.,0.,1.,0.707106781186541,1., 4225P 5891
+125.598998103822,-247.747055886107,-11.5999999999999, 4225P 5892
+125.598998103822,-256.749215886107,-11.5999999999999, 4225P 5893
+116.596838103822,-256.749215886107,-11.5999999999999, 4225P 5894
+-1.57079632679491,0.,0.,0.,0.; 4225P 5895
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,125.598998103822, 4227P 5896
+-247.747055886107,7.50000000000006,125.598998103822, 4227P 5897
+-247.747055886107,-11.5999999999999,0.,1.91,0.,0.,0.; 4227P 5898
+126,1,1,0,0,1,0,-8.21973908038377,-8.21973908038377,0.,0.,1.,1., 4229P 5899
+125.599000828846,-165.54966508227,-11.5999999999999, 4229P 5900
+125.598998103822,-247.747055886107,-11.5999999999999, 4229P 5901
+-8.21973908038377,0.,0.,0.,0.; 4229P 5902
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,125.599000828846, 4231P 5903
+-165.54966508227,7.50000000000006,125.599000828846, 4231P 5904
+-165.54966508227,-11.5999999999999,0.,1.91,0.,0.,0.; 4231P 5905
+126,2,2,0,0,0,0,-1.57079604986551,-1.57079604986551, 4233P 5906
+-1.57079604986551,0.,0.,0.,1.,0.707106879095863,1., 4233P 5907
+116.596840828848,-156.547507575234,-11.5999999999999, 4233P 5908
+125.598998335884,-156.547507575234,-11.5999999999999, 4233P 5909
+125.599000828846,-165.54966508227,-11.5999999999999, 4233P 5910
+-1.57079604986551,0.,0.,0.,0.; 4233P 5911
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,116.596840828848, 4235P 5912
+-156.547507575232,7.50000000000006,116.596840828848, 4235P 5913
+-156.547507575232,-11.5999999999999,0.,1.91,0.,0.,0.; 4235P 5914
+126,1,1,0,0,1,0,-7.61515214233563,-7.61515214233563, 4237P 5915
+-2.50048634973717,-2.50048634973717,1.,1.,40.4453194054918, 4237P 5916
+-156.547507575232,-11.6,91.5919773314763,-156.547507575232, 4237P 5917
+-11.5999999999999,-7.61515214233563,-2.50048634973717,0.,0.,0.; 4237P 5918
+126,1,1,0,0,1,0,-11.1162612056252,-11.1162612056252, 4239P 5919
+-9.31531571790722,-9.31531571790722,1.,1.,5.43422877259571, 4239P 5920
+-156.547507575232,-11.6,23.4436836497758,-156.547507575232, 4239P 5921
+-11.6,-11.1162612056252,-9.31531571790722,0.,0.,0.; 4239P 5922
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,5.43422877259573, 4241P 5923
+-156.547507575232,7.50000000000003,5.43422877259574, 4241P 5924
+-156.547507575232,-11.6,0.,1.91,0.,0.,0.; 4241P 5925
+126,1,1,0,0,1,0,-1.09830766821949,-1.09830766821949,0.,0.,1.,1., 4243P 5926
+105.613764146653,-156.547507575232,-11.5999999999999, 4243P 5927
+116.596840828848,-156.547507575232,-11.5999999999999, 4243P 5928
+-1.09830766821949,0.,0.,0.,0.; 4243P 5929
+126,2,2,0,0,0,0,-1.55536115200856,-1.55536115200856, 4245P 5930
+-1.55536115200856,0.,0.,0.,1.,0.712542827450542,1., 4245P 5931
+-3.56685889059713,-165.410723179457,-11.6,-3.43004274316727, 4245P 5932
+-156.547507575232,-11.6,5.4342287725957,-156.547507575232,-11.6, 4245P 5933
+-1.55536115200856,0.,0.,0.,0.; 4245P 5934
+126,1,1,0,0,1,0,4.455,4.455,5.755,5.755,1.,1.,220.752682252201, 4247P 5935
+-164.547507575232,-7.5,220.752682252201,-164.547507575232,5.5, 4247P 5936
+4.455,5.755,0.,0.,0.; 4247P 5937
+126,1,1,0,0,1,0,-4.83608912419324,-4.83608912419324, 4249P 5938
+-4.12082507040424,-4.12082507040424,1.,1.,220.752682252201, 4249P 5939
+-164.547507575232,5.5,213.600041714311,-164.547507575232,5.5, 4249P 5940
+-4.83608912419324,-4.12082507040424,0.,0.,0.; 4249P 5941
+126,1,1,0,0,1,0,-0.55,-0.55,0.75,0.75,1.,1.,213.600041714311, 4251P 5942
+-164.547507575232,5.5,213.600041714311,-164.547507575232,-7.5, 4251P 5943
+-0.55,0.75,0.,0.,0.; 4251P 5944
+126,1,1,0,0,1,0,-4.21636997194452,-4.21636997194452, 4253P 5945
+-3.50110591815552,-3.50110591815552,1.,1.,213.600041714311, 4253P 5946
+-164.547507575232,-7.5,220.752682252201,-164.547507575232,-7.5, 4253P 5947
+-4.21636997194452,-3.50110591815552,0.,0.,0.; 4253P 5948
+126,1,1,0,0,1,0,2.03004270777188,2.03004270777188, 4255P 5949
+2.18004270777188,2.18004270777188,1.,1.,220.752682252201, 4255P 5950
+-164.547507575232,5.5,220.752682252201,-163.047507575232,5.5, 4255P 5951
+2.03004270777188,2.18004270777188,0.,0.,0.; 4255P 5952
+126,1,1,0,0,1,0,-0.277957099986875,-0.277957099986875, 4257P 5953
+4.83608912419324,4.83608912419324,1.,1.,169.612220010399, 4257P 5954
+-163.047507575232,5.5,220.752682252201,-163.047507575232,5.5, 4257P 5955
+-0.277957099986875,4.83608912419324,0.,0.,0.; 4257P 5956
+126,1,1,0,0,1,0,-2.25504270777188,-2.25504270777188, 4259P 5957
+-2.10504270777188,-2.10504270777188,1.,1.,169.612220010399, 4259P 5958
+-163.047507575232,5.5,169.612220010399,-164.547507575232,5.5, 4259P 5959
+-2.25504270777188,-2.10504270777188,0.,0.,0.; 4259P 5960
+126,1,1,0,0,1,0,-2.12082507040424,-2.12082507040424, 4261P 5961
+0.277957099986875,0.277957099986875,1.,1.,193.600041714311, 4261P 5962
+-164.547507575232,5.5,169.612220010399,-164.547507575232,5.5, 4261P 5963
+-2.12082507040424,0.277957099986875,0.,0.,0.; 4261P 5964
+126,1,1,0,0,1,0,-2.10504270777183,-2.10504270777183, 4263P 5965
+-1.40504270777192,-1.40504270777192,1.,1.,193.600041714311, 4263P 5966
+-164.547507575232,5.5,193.600041714311,-171.547507575231,5.5, 4263P 5967
+-2.10504270777183,-1.40504270777192,0.,0.,0.; 4263P 5968
+126,1,1,0,0,1,0,-0.329120546436126,-0.329120546436126, 4265P 5969
+1.67087945356387,1.67087945356387,1.,1.,193.600041714311, 4265P 5970
+-171.547507575231,5.5,213.600041714311,-171.547507575232,5.5, 4265P 5971
+-0.329120546436126,1.67087945356387,0.,0.,0.; 4265P 5972
+126,1,1,0,0,1,0,1.75504270777192,1.75504270777192, 4267P 5973
+2.45504270777183,2.45504270777183,1.,1.,213.600041714311, 4267P 5974
+-171.547507575232,5.5,213.600041714311,-164.547507575232,5.5, 4267P 5975
+1.75504270777192,2.45504270777183,0.,0.,0.; 4267P 5976
+126,1,1,0,0,1,0,3.90726785952569,3.90726785952569, 4269P 5977
+5.61006610946171,5.61006610946171,1.,1.,220.752682252201, 4269P 5978
+-163.047507575232,1.5,237.780664751561,-163.047507575232,1.5, 4269P 5979
+3.90726785952569,5.61006610946171,0.,0.,0.; 4269P 5980
+126,1,1,0,0,1,0,-0.2,-0.2,0.2,0.2,1.,1.,237.780664751561, 4271P 5981
+-163.047507575232,5.5,237.780664751561,-163.047507575232,1.5, 4271P 5982
+-0.2,0.2,0.,0.,0.; 4271P 5983
+126,1,1,0,0,1,0,6.53888737412926,6.53888737412926, 4273P 5984
+8.33719504234876,8.33719504234876,1.,1.,237.780664751561, 4273P 5985
+-163.047507575232,5.5,255.763741433756,-163.047507575232,5.5, 4273P 5986
+6.53888737412926,8.33719504234876,0.,0.,0.; 4273P 5987
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,255.763741433756, 4275P 5988
+-163.047507575232,7.5,255.763741433756,-163.047507575232,5.5,0., 4275P 5989
+0.2,0.,0.,0.; 4275P 5990
+126,1,1,0,0,1,0,-2.77906616327648,-2.77906616327648, 4277P 5991
+8.33719504234876,8.33719504234876,1.,1.,144.601129377503, 4277P 5992
+-163.047507575232,7.5,255.763741433756,-163.047507575232,7.5, 4277P 5993
+-2.77906616327648,8.33719504234876,0.,0.,0.; 4277P 5994
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,144.601129377503, 4279P 5995
+-163.047507575232,7.5,144.601129377503,-163.047507575232,5.5,0., 4279P 5996
+0.2,0.,0.,0.; 4279P 5997
+126,1,1,0,0,1,0,-2.77906616327648,-2.77906616327648, 4281P 5998
+-1.6807553499229,-1.6807553499229,1.,1.,144.601129377503, 4281P 5999
+-163.047507575232,5.5,155.584237511039,-163.047507575232,5.5, 4281P 6000
+-2.77906616327648,-1.6807553499229,0.,0.,0.; 4281P 6001
+126,1,1,0,0,1,0,0.,0.,0.4,0.4,1.,1.,155.584237511039, 4283P 6002
+-163.047507575232,1.5,155.584237511039,-163.047507575232,5.5,0., 4283P 6003
+0.4,0.,0.,0.; 4283P 6004
+126,1,1,0,0,1,0,0.19783806949458,0.19783806949458, 4285P 6005
+1.6006363194306,1.6006363194306,1.,1.,155.584237511039, 4285P 6006
+-163.047507575232,1.5,169.612220010399,-163.047507575232,1.5, 4285P 6007
+0.19783806949458,1.6006363194306,0.,0.,0.; 4285P 6008
+126,1,1,0,0,1,0,-0.2,-0.2,0.2,0.2,1.,1.,169.612220010399, 4287P 6009
+-163.047507575232,5.5,169.612220010399,-163.047507575232,1.5, 4287P 6010
+-0.2,0.2,0.,0.,0.; 4287P 6011
+126,1,1,0,0,1,0,0.,0.,0.4,0.4,1.,1.,220.752682252201, 4289P 6012
+-163.047507575232,1.5,220.752682252201,-163.047507575232,5.5,0., 4289P 6013
+0.4,0.,0.,0.; 4289P 6014
+126,1,1,0,0,1,0,-2.50504270777187,-2.50504270777187, 4291P 6015
+-1.70504270777188,-1.70504270777188,1.,1.,155.584237511039, 4291P 6016
+-156.547507575232,-11.6,155.584237511039,-164.547507575232, 4291P 6017
+-11.6,-2.50504270777187,-1.70504270777188,0.,0.,0.; 4291P 6018
+126,1,1,0,0,1,0,-5.355,-5.355,-4.045,-4.045,1.,1., 4293P 6019
+155.584237511039,-156.547507575232,1.49999999999999, 4293P 6020
+155.584237511039,-156.547507575232,-11.6,-5.355,-4.045,0.,0.,0.; 4293P 6021
+126,1,1,0,0,1,0,-0.79999999999999,-0.79999999999999, 4295P 6022
+-0.149999999999991,-0.149999999999991,1.,1.,155.584237511039, 4295P 6023
+-156.547507575232,1.49999999999999,155.584237511039, 4295P 6024
+-163.047507575232,1.49999999999999,-0.79999999999999, 4295P 6025
+-0.149999999999991,0.,0.,0.; 4295P 6026
+126,1,1,0,0,1,0,2.03004270777188,2.03004270777188, 4297P 6027
+2.18004270777188,2.18004270777188,1.,1.,155.584237511039, 4297P 6028
+-164.547507575232,5.5,155.584237511039,-163.047507575232,5.5, 4297P 6029
+2.03004270777188,2.18004270777188,0.,0.,0.; 4297P 6030
+126,1,1,0,0,1,0,4.455,4.455,5.755,5.755,1.,1.,155.584237511039, 4299P 6031
+-164.547507575232,-7.5,155.584237511039,-164.547507575232,5.5, 4299P 6032
+4.455,5.755,0.,0.,0.; 4299P 6033
+126,1,1,0,0,1,0,10.,10.,10.41,10.41,1.,1.,155.584237511039, 4301P 6034
+-164.547507575232,-11.6,155.584237511039,-164.547507575232,-7.5, 4301P 6035
+10.,10.41,0.,0.,0.; 4301P 6036
+126,1,1,0,0,1,0,-2.50504270777188,-2.50504270777188, 4303P 6037
+-1.70504270777188,-1.70504270777188,1.,1.,220.752682252201, 4303P 6038
+-156.547507575232,-11.6,220.752682252201,-164.547507575232, 4303P 6039
+-11.6,-2.50504270777188,-1.70504270777188,0.,0.,0.; 4303P 6040
+126,1,1,0,0,1,0,-5.355,-5.355,-4.045,-4.045,1.,1., 4305P 6041
+220.752682252201,-156.547507575232,1.5,220.752682252201, 4305P 6042
+-156.547507575232,-11.6,-5.355,-4.045,0.,0.,0.; 4305P 6043
+126,1,1,0,0,1,0,-0.799999999999992,-0.799999999999992, 4307P 6044
+-0.149999999999991,-0.149999999999991,1.,1.,220.752682252201, 4307P 6045
+-156.547507575232,1.5,220.752682252201,-163.047507575232,1.5, 4307P 6046
+-0.799999999999992,-0.149999999999991,0.,0.,0.; 4307P 6047
+126,1,1,0,0,1,0,10.,10.,10.41,10.41,1.,1.,220.752682252201, 4309P 6048
+-164.547507575232,-11.6,220.752682252201,-164.547507575232,-7.5, 4309P 6049
+10.,10.41,0.,0.,0.; 4309P 6050
+126,1,1,0,0,1,0,1.6807553499229,1.6807553499229, 4311P 6051
+2.54979601694251,2.54979601694251,1.,1.,155.584237511039, 4311P 6052
+-164.547507575232,5.5,146.893830840843,-164.547507575232,5.5, 4311P 6053
+1.6807553499229,2.54979601694251,0.,0.,0.; 4311P 6054
+126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,146.893830840843, 4313P 6055
+-164.547507575232,5.5,146.893830840843,-164.547507575232,-7.5, 4313P 6056
+0.2,1.5,0.,0.,0.; 4313P 6057
+126,1,1,0,0,1,0,-10.8869910592913,-10.8869910592913, 4315P 6058
+-10.0179503922717,-10.0179503922717,1.,1.,146.893830840843, 4315P 6059
+-164.547507575232,-7.5,155.584237511039,-164.547507575232,-7.5, 4315P 6060
+-10.8869910592913,-10.0179503922717,0.,0.,0.; 4315P 6061
+126,1,1,0,0,1,0,-1.6006363194306,-1.6006363194306, 4317P 6062
+-0.19783806949458,-0.19783806949458,1.,1.,169.612220010399, 4317P 6063
+-156.547507575232,1.5,155.584237511039,-156.547507575232,1.5, 4317P 6064
+-1.6006363194306,-0.19783806949458,0.,0.,0.; 4317P 6065
+126,1,1,0,0,1,0,-11.1162612056252,-11.1162612056252, 4319P 6066
+-10.0179503922716,-10.0179503922716,1.,1.,144.601129377503, 4319P 6067
+-156.547507575232,-11.6,155.584237511039,-156.547507575232, 4319P 6068
+-11.6,-11.1162612056252,-10.0179503922716,0.,0.,0.; 4319P 6069
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,144.601129377503, 4321P 6070
+-156.547507575232,7.5,144.601129377503,-156.547507575232,-11.6, 4321P 6071
+0.,1.91,0.,0.,0.; 4321P 6072
+126,1,1,0,0,1,0,0.,0.,11.1162612056252,11.1162612056252,1.,1., 4323P 6073
+255.763741433756,-156.547507575232,7.5,144.601129377503, 4323P 6074
+-156.547507575232,7.5,0.,11.1162612056252,0.,0.,0.; 4323P 6075
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,255.763741433756, 4325P 6076
+-156.547507575232,7.5,255.763741433756,-156.547507575232,-11.6, 4325P 6077
+0.,1.91,0.,0.,0.; 4325P 6078
+126,1,1,0,0,1,0,-1.79830766821949,-1.79830766821949,0.,0.,1.,1., 4327P 6079
+237.780664751561,-156.547507575232,-11.6,255.763741433756, 4327P 6080
+-156.547507575232,-11.6,-1.79830766821949,0.,0.,0.,0.; 4327P 6081
+126,1,1,0,0,1,0,-1.51,-1.51,-0.2,-0.2,1.,1.,237.780664751561, 4329P 6082
+-156.547507575232,-11.6,237.780664751561,-156.547507575232,1.5, 4329P 6083
+-1.51,-0.2,0.,0.,0.; 4329P 6084
+126,1,1,0,0,1,0,-5.61006610946171,-5.61006610946171, 4331P 6085
+-3.90726785952569,-3.90726785952569,1.,1.,237.780664751561, 4331P 6086
+-156.547507575232,1.5,220.752682252201,-156.547507575232,1.5, 4331P 6087
+-5.61006610946171,-3.90726785952569,0.,0.,0.; 4331P 6088
+126,1,1,0,0,1,0,-8.61515214233562,-8.61515214233562, 4333P 6089
+-3.50110591815551,-3.50110591815551,1.,1.,169.612220010399, 4333P 6090
+-156.547507575232,-11.6,220.752682252201,-156.547507575232, 4333P 6091
+-11.6,-8.61515214233562,-3.50110591815551,0.,0.,0.; 4333P 6092
+126,1,1,0,0,1,0,-1.51,-1.51,-0.2,-0.2,1.,1.,169.612220010399, 4335P 6093
+-156.547507575232,-11.6,169.612220010399,-156.547507575232,1.5, 4335P 6094
+-1.51,-0.2,0.,0.,0.; 4335P 6095
+126,1,1,0,0,1,0,-3.5313098815677,-3.5313098815677, 4337P 6096
+-2.12851163163167,-2.12851163163167,1.,1.,155.584237511039, 4337P 6097
+-164.547507575232,-11.6,169.612220010399,-164.547507575232, 4337P 6098
+-11.6,-3.5313098815677,-2.12851163163167,0.,0.,0.; 4337P 6099
+126,1,1,0,0,1,0,2.10504270777188,2.10504270777188, 4339P 6100
+2.90504270777188,2.90504270777188,1.,1.,169.612220010399, 4339P 6101
+-164.547507575232,-11.6,169.612220010399,-156.547507575232, 4339P 6102
+-11.6,2.10504270777188,2.90504270777188,0.,0.,0.; 4339P 6103
+126,1,1,0,0,1,0,0.177112355490372,0.177112355490372, 4341P 6104
+1.87991060542639,1.87991060542639,1.,1.,220.752682252201, 4341P 6105
+-164.547507575232,-11.6,237.780664751561,-164.547507575232, 4341P 6106
+-11.6,0.177112355490372,1.87991060542639,0.,0.,0.; 4341P 6107
+126,1,1,0,0,1,0,2.10504270777188,2.10504270777188, 4343P 6108
+2.90504270777187,2.90504270777187,1.,1.,237.780664751561, 4343P 6109
+-164.547507575232,-11.6,237.780664751561,-156.547507575232, 4343P 6110
+-11.6,2.10504270777188,2.90504270777187,0.,0.,0.; 4343P 6111
+126,2,2,0,0,0,0,-1.57079604986551,-1.57079604986551, 4345P 6112
+-1.57079604986551,0.,0.,0.,1.,0.707106879095859,1., 4345P 6113
+255.763741433756,-156.547507575234,-11.6,264.765898940792, 4345P 6114
+-156.547507575234,-11.6,264.765901433754,-165.54966508227,-11.6, 4345P 6115
+-1.57079604986551,0.,0.,0.,0.; 4345P 6116
+126,1,1,0,0,1,0,-8.21973908038377,-8.21973908038377,0.,0.,1.,1., 4347P 6117
+264.765901433754,-165.54966508227,-11.6,264.765898708729, 4347P 6118
+-247.747055886107,-11.6,-8.21973908038377,0.,0.,0.,0.; 4347P 6119
+126,2,2,0,0,0,0,-1.57079632679491,-1.57079632679491, 4349P 6120
+-1.57079632679491,0.,0.,0.,1.,0.707106781186549,1., 4349P 6121
+264.765898708729,-247.747055886107,-11.6,264.765898708729, 4349P 6122
+-256.749215886107,-11.6,255.763738708729,-256.749215886107, 4349P 6123
+-11.6,-1.57079632679491,0.,0.,0.,0.; 4349P 6124
+126,1,1,0,0,1,0,-11.1162574856417,-11.1162574856417,0.,0.,1.,1., 4351P 6125
+255.763738708729,-256.749215886107,-11.6,144.601163852312, 4351P 6126
+-256.749215886107,-11.6,-11.1162574856417,0.,0.,0.,0.; 4351P 6127
+126,4,2,0,0,0,0,-1.57081354545471,-1.57081354545471, 4353P 6128
+-1.57081354545471,-0.785406772727353,-0.785406772727353,0.,0., 4353P 6129
+0.,1.,0.923877885178803,1.,0.923877885178792,1., 4353P 6130
+144.601163852312,-256.749215886107,-11.6,140.872301689627, 4353P 6131
+-256.749215886107,-11.6,138.235620668632,-254.112489464608, 4353P 6132
+-11.6,135.598939647638,-251.475763043109,-11.6,135.599003853647, 4353P 6133
+-247.746900880977,-11.6,-1.57081354545471,0.,0.,0.,0.; 4353P 6134
+126,1,1,0,0,1,0,-6.02753451978495,-6.02753451978495,0.,0.,1.,1., 4355P 6135
+135.599003853647,-247.746900880977,-11.6,135.600041714311, 4355P 6136
+-187.471555692063,-11.6,-6.02753451978495,0.,0.,0.,0.; 4355P 6137
+126,1,1,0,0,1,0,-2.20608325126057,-2.20608325126057,0.,0.,1.,1., 4357P 6138
+135.600041714311,-187.471555692063,-11.6,135.600041714311, 4357P 6139
+-165.410723179457,-11.6,-2.20608325126057,0.,0.,0.,0.; 4357P 6140
+126,2,2,0,0,0,0,-1.55536115200856,-1.55536115200856, 4359P 6141
+-1.55536115200856,0.,0.,0.,1.,0.712542827450536,1., 4359P 6142
+135.600041714311,-165.410723179457,-11.6,135.73685786174, 4359P 6143
+-156.547507575232,-11.6,144.601129377503,-156.547507575232, 4359P 6144
+-11.6,-1.55536115200856,0.,0.,0.,0.; 4359P 6145
+126,6,2,0,0,0,0,-6.28310481407046,-6.28310481407046, 4361P 6146
+-6.28310481407046,-5.23515592516463,-5.23515592516463, 4361P 6147
+-4.1872070362588,-4.1872070362588,-3.13925814735297, 4361P 6148
+-3.13925814735297,-3.13925814735297,1.,0.865837508251788,1., 4361P 6149
+0.865837508251546,1.,0.865837508251611,1.,239.357084097385, 4361P 6150
+-172.121201750453,-11.6,239.356107150418,-172.988052565371, 4361P 6151
+-11.6,240.10665957669,-173.421760237851,-11.6,240.857212002962, 4361P 6152
+-173.85546791033,-11.6,241.607764429229,-173.421760237843,-11.6, 4361P 6153
+242.358316855497,-172.988052565356,-11.6,242.35733990852, 4361P 6154
+-172.121201750437,-11.6,-6.28310481407046,-3.13925814735297,0., 4361P 6155
+0.,0.; 4361P 6156
+126,6,2,0,0,0,0,-6.28310481408069,-6.28310481408069, 4363P 6157
+-6.28310481408069,-5.23515592516045,-5.23515592516045, 4363P 6158
+-4.1872070362402,-4.1872070362402,-3.13925814731996, 4363P 6159
+-3.13925814731996,-3.13925814731996,1.,0.865837508248292,1., 4363P 6160
+0.865837508248067,1.,0.865837508248116,1.,242.35733990852, 4363P 6161
+-172.121201750437,-11.6,242.358316855506,-171.254350935504, 4363P 6162
+-11.6,241.607764429225,-170.820643263012,-11.6,240.857212002944, 4363P 6163
+-170.38693559052,-11.6,240.106659576667,-170.82064326302,-11.6, 4363P 6164
+239.35610715039,-171.25435093552,-11.6,239.357084097385, 4363P 6165
+-172.121201750453,-11.6,-6.28310481408069,-3.13925814731996,0., 4363P 6166
+0.,0.; 4363P 6167
+126,6,2,0,0,0,0,-6.28310481407034,-6.28310481407034, 4365P 6168
+-6.28310481407034,-5.23515592516079,-5.23515592516079, 4365P 6169
+-4.18720703625123,-4.18720703625123,-3.13925814734168, 4365P 6170
+-3.13925814734168,-3.13925814734168,1.,0.865837508250881,1., 4365P 6171
+0.865837508250855,1.,0.865837508250857,1.,160.582628341595, 4365P 6172
+-190.598023114212,-11.6,160.581651394623,-191.464873929134, 4365P 6173
+-11.6,161.332203820897,-191.898581601616,-11.6,162.082756247172, 4365P 6174
+-192.332289274099,-11.6,162.833308673442,-191.898581601608, 4365P 6175
+-11.6,163.583861099711,-191.464873929118,-11.6,163.58288415273, 4365P 6176
+-190.598023114196,-11.6,-6.28310481407034,-3.13925814734168,0., 4365P 6177
+0.,0.; 4365P 6178
+126,6,2,0,0,0,0,-6.28310481408081,-6.28310481408081, 4367P 6179
+-6.28310481408081,-5.23515592516426,-5.23515592516426, 4367P 6180
+-4.18720703624771,-4.18720703624771,-3.13925814733116, 4367P 6181
+-3.13925814733116,-3.13925814733116,1.,0.86583750824897,1., 4367P 6182
+0.865837508248987,1.,0.865837508248909,1.,163.58288415273, 4367P 6183
+-190.598023114196,-11.6,163.583861099712,-189.731172299267, 4367P 6184
+-11.6,162.833308673433,-189.297464626778,-11.6,162.082756247154, 4367P 6185
+-188.863756954289,-11.6,161.332203820879,-189.297464626786, 4367P 6186
+-11.6,160.581651394605,-189.731172299282,-11.6,160.582628341595, 4367P 6187
+-190.598023114212,-11.6,-6.28310481408081,-3.13925814733116,0., 4367P 6188
+0.,0.; 4367P 6189
+126,6,2,0,0,0,0,-6.2830844037677,-6.2830844037677, 4369P 6190
+-6.2830844037677,-5.23494500104441,-5.23494500104441, 4369P 6191
+-4.18680559832112,-4.18680559832112,-3.13866619559783, 4369P 6192
+-3.13866619559783,-3.13866619559783,1.,0.865789844881724,1., 4369P 6193
+0.865789844882047,1.,0.865789844881724,1.,236.784016479572, 4369P 6194
+-228.698656211056,-11.6,236.782791542303,-229.565697649234, 4369P 6195
+-11.6,237.533467963721,-229.999572361928,-11.6,238.284144385139, 4369P 6196
+-230.433447074621,-11.6,239.034820806557,-229.999572361928, 4369P 6197
+-11.6,239.785497227975,-229.565697649234,-11.6,239.784272290707, 4369P 6198
+-228.698656211056,-11.6,-6.2830844037677,-3.13866619559783,0., 4369P 6199
+0.,0.; 4369P 6200
+126,6,2,0,0,0,0,-6.28308440376778,-6.28308440376778, 4371P 6201
+-6.28308440376778,-5.23494500103838,-5.23494500103838, 4371P 6202
+-4.18680559830898,-4.18680559830898,-3.13866619557958, 4371P 6203
+-3.13866619557958,-3.13866619557958,1.,0.865789844880162,1., 4371P 6204
+0.865789844880317,1.,0.865789844880162,1.,239.784272290707, 4371P 6205
+-228.698656211057,-11.6,239.785497227983,-227.831614772873, 4371P 6206
+-11.6,239.034820806561,-227.397740060174,-11.6,238.284144385139, 4371P 6207
+-226.963865347475,-11.6,237.533467963717,-227.397740060174, 4371P 6208
+-11.6,236.782791542295,-227.831614772873,-11.6,236.784016479572, 4371P 6209
+-228.698656211057,-11.6,-6.28308440376778,-3.13866619557958,0., 4371P 6210
+0.,0.; 4371P 6211
+126,6,2,0,0,0,0,-6.28310481407037,-6.28310481407037, 4373P 6212
+-6.28310481407037,-5.2351559251608,-5.2351559251608, 4373P 6213
+-4.18720703625122,-4.18720703625122,-3.13925814734165, 4373P 6214
+-3.13925814734165,-3.13925814734165,1.,0.865837508250947,1., 4373P 6215
+0.865837508251063,1.,0.865837508251028,1.,160.582628341595, 4373P 6216
+-228.698656211065,-11.6,160.581651394623,-229.565507025988, 4373P 6217
+-11.6,161.332203820897,-229.99921469847,-11.6,162.082756247172, 4373P 6218
+-230.432922370953,-11.6,162.833308673442,-229.999214698462, 4373P 6219
+-11.6,163.583861099712,-229.565507025972,-11.6,163.58288415273, 4373P 6220
+-228.69865621105,-11.6,-6.28310481407037,-3.13925814734165,0., 4373P 6221
+0.,0.; 4373P 6222
+126,6,2,0,0,0,0,-6.28310481408081,-6.28310481408081, 4375P 6223
+-6.28310481408081,-5.23515592516426,-5.23515592516426, 4375P 6224
+-4.18720703624771,-4.18720703624771,-3.13925814733116, 4375P 6225
+-3.13925814733116,-3.13925814733116,1.,0.86583750824897,1., 4375P 6226
+0.865837508248987,1.,0.865837508248909,1.,163.58288415273, 4375P 6227
+-228.69865621105,-11.6,163.583861099712,-227.83180539612,-11.6, 4375P 6228
+162.833308673433,-227.398097723632,-11.6,162.082756247154, 4375P 6229
+-226.964390051143,-11.6,161.332203820879,-227.39809772364,-11.6, 4375P 6230
+160.581651394605,-227.831805396136,-11.6,160.582628341595, 4375P 6231
+-228.698656211065,-11.6,-6.28310481408081,-3.13925814733116,0., 4375P 6232
+0.,0.; 4375P 6233
+126,6,2,0,0,0,0,-5.0748329130831D-14,-5.0748329130831D-14, 4377P 6234
+-5.0748329130831D-14,1.04800255097885,1.04800255097885, 4377P 6235
+2.09600510195774,2.09600510195774,3.14400765293664, 4377P 6236
+3.14400765293664,3.14400765293664,1.,0.865824083693706,1., 4377P 6237
+0.865824083693601,1.,0.865824083693605,1.,236.882006921691, 4377P 6238
+-190.598023114196,-11.6,236.8810299142,-191.407138874521,-11.6, 4377P 6239
+237.581582336708,-191.811979054677,-11.6,238.282134759216, 4377P 6240
+-192.216819234834,-11.6,238.982687181724,-191.811979054677, 4377P 6241
+-11.6,239.683239604231,-191.407138874521,-11.6,239.68226259674, 4377P 6242
+-190.598023114196,-11.6,-5.0748329130831D-14,3.14400765293664, 4377P 6243
+0.,0.,0.; 4377P 6244
+126,6,2,0,0,0,0,0.,0.,0.,1.04800255097885,1.04800255097885, 4379P 6245
+2.09600510195769,2.09600510195769,3.14400765293654, 4379P 6246
+3.14400765293654,3.14400765293654,1.,0.865824083693493,1., 4379P 6247
+0.865824083693437,1.,0.865824083693657,1.,239.68226259674, 4379P 6248
+-190.598023114196,-11.6,239.683239604231,-189.78890735387,-11.6, 4379P 6249
+238.982687181724,-189.384067173714,-11.6,238.282134759216, 4379P 6250
+-188.979226993558,-11.6,237.581582336708,-189.384067173714, 4379P 6251
+-11.6,236.8810299142,-189.78890735387,-11.6,236.882006921691, 4379P 6252
+-190.598023114196,-11.6,0.,3.14400765293654,0.,0.,0.; 4379P 6253
+126,6,2,0,0,0,0,2.53741645654159D-14,2.53741645654159D-14, 4381P 6254
+2.53741645654159D-14,1.04800255097509,1.04800255097509, 4381P 6255
+2.09600510195016,2.09600510195016,3.14400765292522, 4381P 6256
+3.14400765292522,3.14400765292522,1.,0.865824083694492,1., 4381P 6257
+0.865824083694691,1.,0.865824083694451,1.,158.107551165901, 4381P 6258
+-172.121201750437,-11.6,158.106574158415,-172.930317510759, 4381P 6259
+-11.6,158.80712658092,-173.335157690912,-11.6,159.507679003426, 4381P 6260
+-173.739997871065,-11.6,160.208231425931,-173.335157690912, 4381P 6261
+-11.6,160.908783848437,-172.930317510758,-11.6,160.90780684095, 4381P 6262
+-172.121201750437,-11.6,2.53741645654159D-14,3.14400765292522, 4381P 6263
+0.,0.,0.; 4381P 6264
+126,6,2,0,0,0,0,0.,0.,0.,1.04800255098266,1.04800255098266, 4383P 6265
+2.09600510196532,2.09600510196532,3.14400765294798, 4383P 6266
+3.14400765294798,3.14400765294798,1.,0.865824083692465,1., 4383P 6267
+0.865824083692489,1.,0.865824083692486,1.,160.90780684095, 4383P 6268
+-172.121201750437,-11.6,160.908783848446,-171.312085990108, 4383P 6269
+-11.6,160.208231425936,-170.907245809948,-11.6,159.507679003426, 4383P 6270
+-170.502405629789,-11.6,158.807126580916,-170.907245809948, 4383P 6271
+-11.6,158.106574158405,-171.312085990108,-11.6,158.107551165901, 4383P 6272
+-172.121201750437,-11.6,0.,3.14400765294798,0.,0.,0.; 4383P 6273
+126,1,1,0,0,1,0,0.091322211691871,0.091322211691871, 4385P 6274
+0.993665961691871,0.993665961691871,1.,1.,198.356008409196, 4385P 6275
+-187.660756010089,-7.5,189.332570909196,-187.660756010089,-7.5, 4385P 6276
+0.091322211691871,0.993665961691871,0.,0.,0.; 4385P 6277
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,198.356008409196, 4387P 6278
+-187.660756010089,-7.5,198.356008409196,-187.660756010089,-8.5, 4387P 6279
+0.,0.1,0.,0.,0.; 4387P 6280
+126,1,1,0,0,1,0,0.,0.,0.90234375,0.90234375,1.,1., 4389P 6281
+198.356008409196,-187.660756010089,-8.5,189.332570909196, 4389P 6282
+-187.660756010089,-8.5,0.,0.90234375,0.,0.,0.; 4389P 6283
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,189.332570909196, 4391P 6284
+-187.660756010089,-7.5,189.332570909196,-187.660756010089,-8.5, 4391P 6285
+0.,0.1,0.,0.,0.; 4391P 6286
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.281631211376139,0.844152403739511, 4393P 6287
+0.844152403739511,0.844152403739511,0.844152403739511,1.,1.,1., 4393P 6288
+1.,1.,206.793508409196,-187.856068510089,-7.5,205.856214479556, 4393P 6289
+-187.800454535029,-7.5,203.046799571848,-187.633758981298,-7.5, 4393P 6290
+200.231830522622,-187.649960043727,-7.5,198.356008409196, 4393P 6291
+-187.660756010089,-7.5,0.,0.844152403739511,0.,0.,0.; 4393P 6292
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,206.793508409196, 4395P 6293
+-187.856068510089,-7.5,206.793508409196,-187.856068510089,-8.5, 4395P 6294
+0.,0.1,0.,0.,0.; 4395P 6295
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.281631211376139,0.844152403739511, 4397P 6296
+0.844152403739511,0.844152403739511,0.844152403739511,1.,1.,1., 4397P 6297
+1.,1.,206.793508409196,-187.856068510089,-8.5,205.856214479556, 4397P 6298
+-187.800454535029,-8.5,203.046799571848,-187.633758981298,-8.5, 4397P 6299
+200.231830522622,-187.649960043727,-8.5,198.356008409196, 4397P 6300
+-187.660756010089,-8.5,0.,0.844152403739511,0.,0.,0.; 4397P 6301
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.235880783034421,0.497778933126644, 4399P 6302
+0.497778933126644,0.497778933126644,0.497778933126644,1.,1.,1., 4399P 6303
+1.,1.,211.148977159196,-190.102162260089,-7.5,210.559416215435, 4399P 6304
+-189.560844484626,-7.5,209.315266463925,-188.418502233228,-7.5, 4399P 6305
+207.662882757985,-188.049967147936,-7.5,206.793508409196, 4399P 6306
+-187.856068510089,-7.5,0.,0.497778933126644,0.,0.,0.; 4399P 6307
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,211.148977159196, 4401P 6308
+-190.102162260089,-7.5,211.148977159196,-190.102162260089,-8.5, 4401P 6309
+0.,0.1,0.,0.,0.; 4401P 6310
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.235880783034421,0.497778933126644, 4403P 6311
+0.497778933126644,0.497778933126644,0.497778933126644,1.,1.,1., 4403P 6312
+1.,1.,211.148977159196,-190.102162260089,-8.5,210.559416215435, 4403P 6313
+-189.560844484626,-8.5,209.315266463925,-188.418502233228,-8.5, 4403P 6314
+207.662882757985,-188.049967147936,-8.5,206.793508409196, 4403P 6315
+-187.856068510089,-8.5,0.,0.497778933126644,0.,0.,0.; 4403P 6316
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.264063113962396,0.499964111306824, 4405P 6317
+0.499964111306824,0.499964111306824,0.499964111306824,1.,1.,1., 4405P 6318
+1.,1.,212.691945909196,-194.770131010089,-7.5,212.643437973881, 4405P 6319
+-193.871965743153,-7.5,212.551595435151,-192.171423805461,-7.5, 4405P 6320
+211.598623495598,-190.765518704879,-7.5,211.148977159196, 4405P 6321
+-190.102162260089,-7.5,0.,0.499964111306824,0.,0.,0.; 4405P 6322
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,212.691945909196, 4407P 6323
+-194.770131010089,-7.5,212.691945909196,-194.770131010089,-8.5, 4407P 6324
+0.,0.1,0.,0.,0.; 4407P 6325
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.264063113962396,0.499964111306824, 4409P 6326
+0.499964111306824,0.499964111306824,0.499964111306824,1.,1.,1., 4409P 6327
+1.,1.,212.691945909196,-194.770131010089,-8.5,212.643437973881, 4409P 6328
+-193.871965743153,-8.5,212.551595435151,-192.171423805461,-8.5, 4409P 6329
+211.598623495598,-190.765518704879,-8.5,211.148977159196, 4409P 6330
+-190.102162260089,-8.5,0.,0.499964111306824,0.,0.,0.; 4409P 6331
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.212397292504592,0.450534415924653, 4411P 6332
+0.450534415924653,0.450534415924653,0.450534415924653,1.,1.,1., 4411P 6333
+1.,1.,211.520070909196,-199.067006010089,-7.5,211.861566257095, 4411P 6334
+-198.436165560765,-7.5,212.585941814299,-197.098034881101,-7.5, 4411P 6335
+212.655290538983,-195.575101594424,-7.5,212.691945909196, 4411P 6336
+-194.770131010089,-7.5,0.,0.450534415924653,0.,0.,0.; 4411P 6337
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,211.520070909196, 4413P 6338
+-199.067006010089,-7.5,211.520070909196,-199.067006010089,-8.5, 4413P 6339
+0.,0.1,0.,0.,0.; 4413P 6340
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.212397292504592,0.450534415924653, 4415P 6341
+0.450534415924653,0.450534415924653,0.450534415924653,1.,1.,1., 4415P 6342
+1.,1.,211.520070909196,-199.067006010089,-8.5,211.861566257095, 4415P 6343
+-198.436165560765,-8.5,212.585941814299,-197.098034881101,-8.5, 4415P 6344
+212.655290538983,-195.575101594424,-8.5,212.691945909196, 4415P 6345
+-194.770131010089,-8.5,0.,0.450534415924653,0.,0.,0.; 4415P 6346
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.207906922422302,0.410291107118963, 4417P 6347
+0.410291107118963,0.410291107118963,0.410291107118963,1.,1.,1., 4417P 6348
+1.,1.,208.277883409196,-201.488881010089,-7.5,208.927838177421, 4417P 6349
+-201.216133860944,-7.5,210.210482633534,-200.677884684425,-7.5, 4417P 6350
+211.087476419098,-199.599125342313,-7.5,211.520070909196, 4417P 6351
+-199.067006010089,-7.5,0.,0.410291107118963,0.,0.,0.; 4417P 6352
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,208.277883409196, 4419P 6353
+-201.488881010089,-7.5,208.277883409196,-201.488881010089,-8.5, 4419P 6354
+0.,0.1,0.,0.,0.; 4419P 6355
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.207906922422302,0.410291107118963, 4421P 6356
+0.410291107118963,0.410291107118963,0.410291107118963,1.,1.,1., 4421P 6357
+1.,1.,208.277883409196,-201.488881010089,-8.5,208.927838177421, 4421P 6358
+-201.216133860944,-8.5,210.210482633534,-200.677884684425,-8.5, 4421P 6359
+211.087476419098,-199.599125342313,-8.5,211.520070909196, 4421P 6360
+-199.067006010089,-8.5,0.,0.410291107118963,0.,0.,0.; 4421P 6361
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.676009828575057,1.04309862016124, 4423P 6362
+1.04309862016124,1.04309862016124,1.04309862016124,1.,1.,1.,1., 4423P 6363
+1.,197.887258409196,-202.192006010089,-7.5,200.147189290955, 4423P 6364
+-202.219319929824,-7.5,203.634314307158,-202.261465932413,-7.5, 4423P 6365
+207.069106365723,-201.689994183538,-7.5,208.277883409196, 4423P 6366
+-201.488881010089,-7.5,0.,1.04309862016124,0.,0.,0.; 4423P 6367
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,197.887258409196, 4425P 6368
+-202.192006010089,-7.5,197.887258409196,-202.192006010089,-8.5, 4425P 6369
+0.,0.1,0.,0.,0.; 4425P 6370
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.676009828575057,1.04309862016124, 4427P 6371
+1.04309862016124,1.04309862016124,1.04309862016124,1.,1.,1.,1., 4427P 6372
+1.,197.887258409196,-202.192006010089,-8.5,200.147189290955, 4427P 6373
+-202.219319929824,-8.5,203.634314307158,-202.261465932413,-8.5, 4427P 6374
+207.069106365723,-201.689994183538,-8.5,208.277883409196, 4427P 6375
+-201.488881010089,-8.5,0.,1.04309862016124,0.,0.,0.; 4427P 6376
+126,1,1,0,0,1,0,-0.542494086691871,-0.542494086691871, 4429P 6377
+0.312974663308129,0.312974663308129,1.,1.,189.332570909196, 4429P 6378
+-202.192006010089,-7.5,197.887258409196,-202.192006010089,-7.5, 4429P 6379
+-0.542494086691871,0.312974663308129,0.,0.,0.; 4429P 6380
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,189.332570909196, 4431P 6381
+-202.192006010089,-7.5,189.332570909196,-202.192006010089,-8.5, 4431P 6382
+0.,0.1,0.,0.,0.; 4431P 6383
+126,1,1,0,0,1,0,0.,0.,0.85546875,0.85546875,1.,1., 4433P 6384
+189.332570909196,-202.192006010089,-8.5,197.887258409196, 4433P 6385
+-202.192006010089,-8.5,0.,0.85546875,0.,0.,0.; 4433P 6386
+126,1,1,0,0,1,0,-0.949380286028976,-0.949380286028976, 4435P 6387
+0.503744713971024,0.503744713971024,1.,1.,189.332570909196, 4435P 6388
+-187.660756010089,-7.5,189.332570909196,-202.192006010089,-7.5, 4435P 6389
+-0.949380286028976,0.503744713971024,0.,0.,0.; 4435P 6390
+126,1,1,0,0,1,0,0.,0.,1.453125,1.453125,1.,1.,189.332570909196, 4437P 6391
+-187.660756010089,-8.5,189.332570909196,-202.192006010089,-8.5, 4437P 6392
+0.,1.453125,0.,0.,0.; 4437P 6393
+126,1,1,0,0,1,0,0.234213463971024,0.234213463971024, 4439P 6394
+2.62483846397102,2.62483846397102,1.,1.,189.332570909196, 4439P 6395
+-211.332631010089,-7.5,189.332570909196,-235.238881010089,-7.5, 4439P 6396
+0.234213463971024,2.62483846397102,0.,0.,0.; 4439P 6397
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,189.332570909196, 4441P 6398
+-211.332631010089,-7.5,189.332570909196,-211.332631010089,-8.5, 4441P 6399
+0.,0.1,0.,0.,0.; 4441P 6400
+126,1,1,0,0,1,0,0.,0.,2.390625,2.390625,1.,1.,189.332570909196, 4443P 6401
+-211.332631010089,-8.5,189.332570909196,-235.238881010089,-8.5, 4443P 6402
+0.,2.390625,0.,0.,0.; 4443P 6403
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,189.332570909196, 4445P 6404
+-235.238881010089,-7.5,189.332570909196,-235.238881010089,-8.5, 4445P 6405
+0.,0.1,0.,0.,0.; 4445P 6406
+126,1,1,0,0,1,0,0.425306586691871,0.425306586691871, 4447P 6407
+0.659681586691871,0.659681586691871,1.,1.,191.676320909196, 4447P 6408
+-211.332631010089,-7.5,189.332570909196,-211.332631010089,-7.5, 4447P 6409
+0.425306586691871,0.659681586691871,0.,0.,0.; 4447P 6410
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,191.676320909196, 4449P 6411
+-211.332631010089,-7.5,191.676320909196,-211.332631010089,-8.5, 4449P 6412
+0.,0.1,0.,0.,0.; 4449P 6413
+126,1,1,0,0,1,0,0.,0.,0.234375,0.234375,1.,1.,191.676320909196, 4451P 6414
+-211.332631010089,-8.5,189.332570909196,-211.332631010089,-8.5, 4451P 6415
+0.,0.234375,0.,0.,0.; 4451P 6416
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.242178147658386,0.58728108987376, 4453P 6417
+0.58728108987376,0.58728108987376,0.58728108987376,1.,1.,1.,1., 4453P 6418
+1.,197.496633409196,-211.977162260089,-7.5,196.708785715842, 4453P 6419
+-211.790577691044,-7.5,194.798258046518,-211.338110818527,-7.5, 4453P 6420
+192.831842297831,-211.334659249473,-7.5,191.676320909196, 4453P 6421
+-211.332631010089,-7.5,0.,0.58728108987376,0.,0.,0.; 4453P 6422
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,197.496633409196, 4455P 6423
+-211.977162260089,-7.5,197.496633409196,-211.977162260089,-8.5, 4455P 6424
+0.,0.1,0.,0.,0.; 4455P 6425
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.242178147658386,0.58728108987376, 4457P 6426
+0.58728108987376,0.58728108987376,0.58728108987376,1.,1.,1.,1., 4457P 6427
+1.,197.496633409196,-211.977162260089,-8.5,196.708785715842, 4457P 6428
+-211.790577691044,-8.5,194.798258046518,-211.338110818527,-8.5, 4457P 6429
+192.831842297831,-211.334659249473,-8.5,191.676320909196, 4457P 6430
+-211.332631010089,-8.5,0.,0.58728108987376,0.,0.,0.; 4457P 6431
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.223607224245692,0.424515823966796, 4459P 6432
+0.424515823966796,0.424515823966796,0.424515823966796,1.,1.,1., 4459P 6433
+1.,1.,200.973195909196,-214.359974760089,-7.5,200.436343293178, 4459P 6434
+-213.832788618144,-7.5,199.417134582878,-212.831931601172,-7.5, 4459P 6435
+198.113566785881,-212.251744615522,-7.5,197.496633409196, 4459P 6436
+-211.977162260089,-7.5,0.,0.424515823966796,0.,0.,0.; 4459P 6437
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,200.973195909196, 4461P 6438
+-214.359974760089,-7.5,200.973195909196,-214.359974760089,-8.5, 4461P 6439
+0.,0.1,0.,0.,0.; 4461P 6440
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.223607224245692,0.424515823966796, 4463P 6441
+0.424515823966796,0.424515823966796,0.424515823966796,1.,1.,1., 4463P 6442
+1.,1.,200.973195909196,-214.359974760089,-8.5,200.436343293178, 4463P 6443
+-213.832788618144,-8.5,199.417134582878,-212.831931601172,-8.5, 4463P 6444
+198.113566785881,-212.251744615522,-8.5,197.496633409196, 4463P 6445
+-211.977162260089,-8.5,0.,0.424515823966796,0.,0.,0.; 4463P 6446
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.661084667802499,1.03970923338266, 4465P 6447
+1.03970923338266,1.03970923338266,1.03970923338266,1.,1.,1.,1., 4465P 6448
+1.,207.066945909196,-222.777943510089,-7.5,205.853212488561, 4465P 6449
+-220.936425355574,-7.5,203.94433469157,-218.04021020804,-7.5, 4465P 6450
+201.766342156981,-215.342414541706,-7.5,200.973195909196, 4465P 6451
+-214.359974760089,-7.5,0.,1.03970923338266,0.,0.,0.; 4465P 6452
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,207.066945909196, 4467P 6453
+-222.777943510089,-7.5,207.066945909196,-222.777943510089,-8.5, 4467P 6454
+0.,0.1,0.,0.,0.; 4467P 6455
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.661084667802499,1.03970923338266, 4469P 6456
+1.03970923338266,1.03970923338266,1.03970923338266,1.,1.,1.,1., 4469P 6457
+1.,207.066945909196,-222.777943510089,-8.5,205.853212488561, 4469P 6458
+-220.936425355574,-8.5,203.94433469157,-218.04021020804,-8.5, 4469P 6459
+201.766342156981,-215.342414541706,-8.5,200.973195909196, 4469P 6460
+-214.359974760089,-8.5,0.,1.03970923338266,0.,0.,0.; 4469P 6461
+126,1,1,0,0,1,0,-1.61176105695361,-1.61176105695361, 4471P 6462
+-0.111247432325258,-0.111247432325258,1.,1.,215.426320909196, 4471P 6463
+-235.238881010089,-7.5,207.066945909196,-222.777943510089,-7.5, 4471P 6464
+-1.61176105695361,-0.111247432325258,0.,0.,0.; 4471P 6465
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,215.426320909196, 4473P 6466
+-235.238881010089,-7.5,215.426320909196,-235.238881010089,-8.5, 4473P 6467
+0.,0.1,0.,0.,0.; 4473P 6468
+126,1,1,0,0,1,0,0.,0.,1.50051362462835,1.50051362462835,1.,1., 4475P 6469
+215.426320909196,-235.238881010089,-8.5,207.066945909196, 4475P 6470
+-222.777943510089,-8.5,0.,1.50051362462835,0.,0.,0.; 4475P 6471
+126,1,1,0,0,1,0,-1.45359966330813,-1.45359966330813, 4477P 6472
+-0.070787163308129,-0.070787163308129,1.,1.,229.254445909196, 4477P 6473
+-235.238881010089,-7.5,215.426320909196,-235.238881010089,-7.5, 4477P 6474
+-1.45359966330813,-0.070787163308129,0.,0.,0.; 4477P 6475
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,229.254445909196, 4479P 6476
+-235.238881010089,-7.5,229.254445909196,-235.238881010089,-8.5, 4479P 6477
+0.,0.1,0.,0.,0.; 4479P 6478
+126,1,1,0,0,1,0,0.,0.,1.3828125,1.3828125,1.,1., 4481P 6479
+229.254445909196,-235.238881010089,-8.5,215.426320909196, 4481P 6480
+-235.238881010089,-8.5,0.,1.3828125,0.,0.,0.; 4481P 6481
+126,1,1,0,0,1,0,1.32396066373505,1.32396066373505, 4483P 6482
+2.64191922549176,2.64191922549176,1.,1.,222.262258409196, 4483P 6483
+-224.067006010089,-7.5,229.254445909196,-235.238881010089,-7.5, 4483P 6484
+1.32396066373505,2.64191922549176,0.,0.,0.; 4483P 6485
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,222.262258409196, 4485P 6486
+-224.067006010089,-7.5,222.262258409196,-224.067006010089,-8.5, 4485P 6487
+0.,0.1,0.,0.,0.; 4485P 6488
+126,1,1,0,0,1,0,0.,0.,1.31795856175671,1.31795856175671,1.,1., 4487P 6489
+222.262258409196,-224.067006010089,-8.5,229.254445909196, 4487P 6490
+-235.238881010089,-8.5,0.,1.31795856175671,0.,0.,0.; 4487P 6491
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.462736337436351,1.14014998210771, 4489P 6492
+1.14014998210771,1.14014998210771,1.14014998210771,1.,1.,1.,1., 4489P 6493
+1.,215.680227159196,-214.770131010089,-7.5,216.657814949634, 4489P 6494
+-215.965086764049,-7.5,219.066522914849,-218.90937419357,-7.5, 4489P 6495
+221.071194285368,-222.144734836071,-7.5,222.262258409196, 4489P 6496
+-224.067006010089,-7.5,0.,1.14014998210771,0.,0.,0.; 4489P 6497
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,215.680227159196, 4491P 6498
+-214.770131010089,-7.5,215.680227159196,-214.770131010089,-8.5, 4491P 6499
+0.,0.1,0.,0.,0.; 4491P 6500
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.462736337436351,1.14014998210771, 4493P 6501
+1.14014998210771,1.14014998210771,1.14014998210771,1.,1.,1.,1., 4493P 6502
+1.,215.680227159196,-214.770131010089,-8.5,216.657814949634, 4493P 6503
+-215.965086764049,-8.5,219.066522914849,-218.90937419357,-8.5, 4493P 6504
+221.071194285368,-222.144734836071,-8.5,222.262258409196, 4493P 6505
+-224.067006010089,-8.5,0.,1.14014998210771,0.,0.,0.; 4493P 6506
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.412099250560617,0.785781181487306, 4495P 6507
+0.785781181487306,0.785781181487306,0.785781181487306,1.,1.,1., 4495P 6508
+1.,1.,209.488820909196,-209.965443510089,-7.5,210.662083255283, 4495P 6509
+-210.689085359138,-7.5,212.899232367418,-212.068908657398,-7.5, 4495P 6510
+214.783943791004,-213.899557402522,-7.5,215.680227159196, 4495P 6511
+-214.770131010089,-7.5,0.,0.785781181487306,0.,0.,0.; 4495P 6512
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,209.488820909196, 4497P 6513
+-209.965443510089,-7.5,209.488820909196,-209.965443510089,-8.5, 4497P 6514
+0.,0.1,0.,0.,0.; 4497P 6515
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.412099250560617,0.785781181487306, 4499P 6516
+0.785781181487306,0.785781181487306,0.785781181487306,1.,1.,1., 4499P 6517
+1.,1.,209.488820909196,-209.965443510089,-8.5,210.662083255283, 4499P 6518
+-210.689085359138,-8.5,212.899232367418,-212.068908657398,-8.5, 4499P 6519
+214.783943791004,-213.899557402522,-8.5,215.680227159196, 4499P 6520
+-214.770131010089,-8.5,0.,0.785781181487306,0.,0.,0.; 4499P 6521
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.58357780873946,1.26971165673407, 4501P 6522
+1.26971165673407,1.26971165673407,1.26971165673407,1.,1.,1.,1., 4501P 6523
+1.,220.816945909196,-204.672474760089,-7.5,219.30946855557, 4501P 6524
+-205.953780785553,-7.5,216.029594750405,-208.741565331179,-7.5, 4501P 6525
+211.783402108826,-209.536092499316,-7.5,209.488820909196, 4501P 6526
+-209.965443510089,-7.5,0.,1.26971165673407,0.,0.,0.; 4501P 6527
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,220.816945909196, 4503P 6528
+-204.672474760089,-7.5,220.816945909196,-204.672474760089,-8.5, 4503P 6529
+0.,0.1,0.,0.,0.; 4503P 6530
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.58357780873946,1.26971165673407, 4505P 6531
+1.26971165673407,1.26971165673407,1.26971165673407,1.,1.,1.,1., 4505P 6532
+1.,220.816945909196,-204.672474760089,-8.5,219.30946855557, 4505P 6533
+-205.953780785553,-8.5,216.029594750405,-208.741565331179,-8.5, 4505P 6534
+211.783402108826,-209.536092499316,-8.5,209.488820909196, 4505P 6535
+-209.965443510089,-8.5,0.,1.26971165673407,0.,0.,0.; 4505P 6536
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.595955416925639,1.15039635746486, 4507P 6537
+1.15039635746486,1.15039635746486,1.15039635746486,1.,1.,1.,1., 4507P 6538
+1.,224.606008409196,-194.027943510089,-7.5,224.472199977234, 4507P 6539
+-196.055393519306,-7.5,224.213904258538,-199.969060614703,-7.5, 4507P 6540
+221.921692259118,-203.14284764226,-7.5,220.816945909196, 4507P 6541
+-204.672474760089,-7.5,0.,1.15039635746486,0.,0.,0.; 4507P 6542
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,224.606008409196, 4509P 6543
+-194.027943510089,-7.5,224.606008409196,-194.027943510089,-8.5, 4509P 6544
+0.,0.1,0.,0.,0.; 4509P 6545
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.595955416925639,1.15039635746486, 4511P 6546
+1.15039635746486,1.15039635746486,1.15039635746486,1.,1.,1.,1., 4511P 6547
+1.,224.606008409196,-194.027943510089,-8.5,224.472199977234, 4511P 6548
+-196.055393519306,-8.5,224.213904258538,-199.969060614703,-8.5, 4511P 6549
+221.921692259118,-203.14284764226,-8.5,220.816945909196, 4511P 6550
+-204.672474760089,-8.5,0.,1.15039635746486,0.,0.,0.; 4511P 6551
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.462557773590166,0.946106124712921, 4513P 6552
+0.946106124712921,0.946106124712921,0.946106124712921,1.,1.,1., 4513P 6553
+1.,1.,222.106008409196,-185.004506010089,-7.5,222.835074753493, 4513P 6554
+-186.384818489344,-7.5,224.326292009032,-189.208081150147,-7.5, 4513P 6555
+224.51140065161,-192.397733878194,-7.5,224.606008409196, 4513P 6556
+-194.027943510089,-7.5,0.,0.946106124712921,0.,0.,0.; 4513P 6557
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,222.106008409196, 4515P 6558
+-185.004506010089,-7.5,222.106008409196,-185.004506010089,-8.5, 4515P 6559
+0.,0.1,0.,0.,0.; 4515P 6560
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.462557773590166,0.946106124712921, 4517P 6561
+0.946106124712921,0.946106124712921,0.946106124712921,1.,1.,1., 4517P 6562
+1.,1.,222.106008409196,-185.004506010089,-8.5,222.835074753493, 4517P 6563
+-186.384818489344,-8.5,224.326292009032,-189.208081150147,-8.5, 4517P 6564
+224.51140065161,-192.397733878194,-8.5,224.606008409196, 4517P 6565
+-194.027943510089,-8.5,0.,0.946106124712921,0.,0.,0.; 4517P 6566
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.431517432398868,0.875191282358429, 4519P 6567
+0.875191282358429,0.875191282358429,0.875191282358429,1.,1.,1., 4519P 6568
+1.,1.,215.445852159196,-179.516224760089,-7.5,216.769000336918, 4519P 6569
+-180.1395665842,-7.5,219.45257152887,-181.403810597143,-7.5, 4519P 6570
+221.213376913017,-183.793211270963,-7.5,222.106008409196, 4519P 6571
+-185.004506010089,-7.5,0.,0.875191282358429,0.,0.,0.; 4519P 6572
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,215.445852159196, 4521P 6573
+-179.516224760089,-7.5,215.445852159196,-179.516224760089,-8.5, 4521P 6574
+0.,0.1,0.,0.,0.; 4521P 6575
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.431517432398868,0.875191282358429, 4523P 6576
+0.875191282358429,0.875191282358429,0.875191282358429,1.,1.,1., 4523P 6577
+1.,1.,215.445852159196,-179.516224760089,-8.5,216.769000336918, 4523P 6578
+-180.1395665842,-8.5,219.45257152887,-181.403810597143,-8.5, 4523P 6579
+221.213376913017,-183.793211270963,-8.5,222.106008409196, 4523P 6580
+-185.004506010089,-8.5,0.,0.875191282358429,0.,0.,0.; 4523P 6581
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.793418719026967,1.34714989356346, 4525P 6582
+1.34714989356346,1.34714989356346,1.34714989356346,1.,1.,1.,1., 4525P 6583
+1.,202.106008409196,-177.973256010089,-7.5,204.763886597037, 4525P 6584
+-177.976937713112,-7.5,209.276712211041,-177.983188896397,-7.5, 4525P 6585
+213.648767024992,-179.069647768159,-7.5,215.445852159196, 4525P 6586
+-179.516224760089,-7.5,0.,1.34714989356346,0.,0.,0.; 4525P 6587
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,202.106008409196, 4527P 6588
+-177.973256010089,-7.5,202.106008409196,-177.973256010089,-8.5, 4527P 6589
+0.,0.1,0.,0.,0.; 4527P 6590
+126,4,3,0,0,1,0,0.,0.,0.,0.,0.793418719026967,1.34714989356346, 4529P 6591
+1.34714989356346,1.34714989356346,1.34714989356346,1.,1.,1.,1., 4529P 6592
+1.,202.106008409196,-177.973256010089,-8.5,204.763886597037, 4529P 6593
+-177.976937713112,-8.5,209.276712211041,-177.983188896397,-8.5, 4529P 6594
+213.648767024992,-179.069647768159,-8.5,215.445852159196, 4529P 6595
+-179.516224760089,-8.5,0.,1.34714989356346,0.,0.,0.; 4529P 6596
+126,1,1,0,0,1,0,-1.12061908669187,-1.12061908669187, 4531P 6597
+1.31297466330813,1.31297466330813,1.,1.,177.770070909196, 4531P 6598
+-177.973256010089,-7.5,202.106008409196,-177.973256010089,-7.5, 4531P 6599
+-1.12061908669187,1.31297466330813,0.,0.,0.; 4531P 6600
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,177.770070909196, 4533P 6601
+-177.973256010089,-7.5,177.770070909196,-177.973256010089,-8.5, 4533P 6602
+0.,0.1,0.,0.,0.; 4533P 6603
+126,1,1,0,0,1,0,0.,0.,2.43359375,2.43359375,1.,1., 4535P 6604
+177.770070909196,-177.973256010089,-8.5,202.106008409196, 4535P 6605
+-177.973256010089,-8.5,0.,2.43359375,0.,0.,0.; 4535P 6606
+126,1,1,0,0,1,0,-1.42952596397102,-1.42952596397102, 4537P 6607
+4.29703653602898,4.29703653602898,1.,1.,177.770070909196, 4537P 6608
+-235.238881010089,-7.5,177.770070909196,-177.973256010089,-7.5, 4537P 6609
+-1.42952596397102,4.29703653602898,0.,0.,0.; 4537P 6610
+126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,177.770070909196, 4539P 6611
+-235.238881010089,-7.5,177.770070909196,-235.238881010089,-8.5, 4539P 6612
+0.,0.1,0.,0.,0.; 4539P 6613
+126,1,1,0,0,1,0,0.,0.,5.7265625,5.7265625,1.,1., 4541P 6614
+177.770070909196,-235.238881010089,-8.5,177.770070909196, 4541P 6615
+-177.973256010089,-8.5,0.,5.7265625,0.,0.,0.; 4541P 6616
+126,1,1,0,0,1,0,0.542494086691871,0.542494086691871, 4543P 6617
+1.69874408669187,1.69874408669187,1.,1.,189.332570909196, 4543P 6618
+-235.238881010089,-7.5,177.770070909196,-235.238881010089,-7.5, 4543P 6619
+0.542494086691871,1.69874408669187,0.,0.,0.; 4543P 6620
+126,1,1,0,0,1,0,0.,0.,1.15625,1.15625,1.,1.,189.332570909196, 4545P 6621
+-235.238881010089,-8.5,177.770070909196,-235.238881010089,-8.5, 4545P 6622
+0.,1.15625,0.,0.,0.; 4545P 6623
+126,1,1,0,0,1,0,-7.99046868143113,-7.99046868143113, 4547P 6624
+-0.229270143011589,-0.229270143011589,1.,1.,256.765901357746, 4547P 6625
+-167.842369071796,-7.5,256.765898784737,-245.454354455992,-7.5, 4547P 6626
+-7.99046868143113,-0.229270143011589,0.,0.,0.; 4547P 6627
+126,2,2,0,0,0,0,-3.14159259057679,-3.14159259057679, 4549P 6628
+-3.14159259057679,-1.98287834194696,-1.98287834194696, 4549P 6629
+-1.98287834194696,0.999999677363267,0.836814636061334,1., 4549P 6630
+258.265901433755,-165.549667575233,-7.5,258.265901433755, 4549P 6631
+-167.18670588825,-7.5,256.765901357746,-167.842369071796,-7.5, 4549P 6632
+-3.14159259057679,-1.98287834194696,0.,0.,0.; 4549P 6633
+126,4,2,0,0,0,0,0.412082048305129,0.412082048305129, 4551P 6634
+0.412082048305129,1.77683680972467,1.77683680972467, 4551P 6635
+3.14159157114422,3.14159157114422,3.14159157114422,1., 4551P 6636
+0.776075642357549,1.,0.776075642357572,1.,253.471039970417, 4551P 6637
+-164.547507575232,-7.5,254.285396173926,-162.684456106938,-7.5, 4551P 6638
+256.275647703394,-163.100431646069,-7.5,258.265899232863, 4551P 6639
+-163.516407185201,-7.5,258.265901433754,-165.54966486678,-7.5, 4551P 6640
+0.412082048305129,3.14159157114422,0.,0.,0.; 4551P 6641
+126,1,1,0,0,1,0,-1.7983076682195,-1.7983076682195, 4553P 6642
+-0.229270146333917,-0.229270146333917,1.,1.,237.780664751561, 4553P 6643
+-164.547507575232,-7.5,253.471039970417,-164.547507575232,-7.5, 4553P 6644
+-1.7983076682195,-0.229270146333917,0.,0.,0.; 4553P 6645
+126,1,1,0,0,1,0,-1.87991060542639,-1.87991060542639, 4555P 6646
+-0.177112355490372,-0.177112355490372,1.,1.,237.780664751561, 4555P 6647
+-164.547507575232,-7.5,220.752682252201,-164.547507575232,-7.5, 4555P 6648
+-1.87991060542639,-0.177112355490372,0.,0.,0.; 4555P 6649
+126,1,1,0,0,1,0,-2.45504270777187,-2.45504270777187, 4557P 6650
+-1.75504270777187,-1.75504270777187,1.,1.,213.600041714311, 4557P 6651
+-164.547507575232,-7.5,213.600041714311,-171.547507575232,-7.5, 4557P 6652
+-2.45504270777187,-1.75504270777187,0.,0.,0.; 4557P 6653
+126,1,1,0,0,1,0,-1.67087945356388,-1.67087945356388, 4559P 6654
+0.329120546436124,0.329120546436124,1.,1.,213.600041714311, 4559P 6655
+-171.547507575232,-7.5,193.600041714311,-171.547507575231,-7.5, 4559P 6656
+-1.67087945356388,0.329120546436124,0.,0.,0.; 4559P 6657
+126,1,1,0,0,1,0,1.40504270777187,1.40504270777187, 4561P 6658
+2.10504270777187,2.10504270777187,1.,1.,193.600041714311, 4561P 6659
+-171.547507575231,-7.5,193.600041714311,-164.547507575232,-7.5, 4561P 6660
+1.40504270777187,2.10504270777187,0.,0.,0.; 4561P 6661
+126,1,1,0,0,1,0,-8.61515214233563,-8.61515214233563, 4563P 6662
+-6.21636997194452,-6.21636997194452,1.,1.,169.612220010399, 4563P 6663
+-164.547507575232,-7.5,193.600041714311,-164.547507575232,-7.5, 4563P 6664
+-8.61515214233563,-6.21636997194452,0.,0.,0.; 4563P 6665
+126,1,1,0,0,1,0,2.12851163163167,2.12851163163167, 4565P 6666
+3.5313098815677,3.5313098815677,1.,1.,169.612220010399, 4565P 6667
+-164.547507575232,-7.5,155.584237511039,-164.547507575232,-7.5, 4565P 6668
+2.12851163163167,3.5313098815677,0.,0.,0.; 4565P 6669
+126,4,2,0,0,0,0,-6.25390749790614,-6.25390749790614, 4567P 6670
+-6.25390749790614,-4.9037910999005,-4.9037910999005, 4567P 6671
+-3.55367470189486,-3.55367470189486,-3.55367470189486,1., 4567P 6672
+0.78067058140956,1.,0.780670581409572,1.,142.100041714311, 4567P 6673
+-165.476420277504,-7.5,142.158677672821,-163.474248497833,-7.5, 4567P 6674
+144.125129478152,-163.093200852189,-7.5,146.091581283483, 4567P 6675
+-162.712153206546,-7.5,146.893830840843,-164.547507575232,-7.5, 4567P 6676
+-6.25390749790614,-3.55367470189486,0.,0.,0.; 4567P 6677
+126,1,1,0,0,1,0,2.18487010842909,2.18487010842909, 4569P 6678
+2.19951956797476,2.19951956797476,1.,1.,142.100041714311, 4569P 6679
+-165.622914872961,-7.5,142.100041714311,-165.476420277504,-7.5, 4569P 6680
+2.18487010842909,2.19951956797476,0.,0.,0.; 4569P 6681
+126,2,2,0,0,0,0,-1.15918194829754,-1.15918194829754, 4571P 6682
+-1.15918194829754,-0.0292778092733589,-0.0292778092733589, 4571P 6683
+-0.0292778092733589,1.,0.844614262194479,1.,143.600041714311, 4571P 6684
+-167.842837467805,-7.5,142.146470952165,-167.208278396419,-7.5, 4571P 6685
+142.100041714311,-165.622914872961,-7.5,-1.15918194829754, 4571P 6686
+-0.0292778092733589,0.,0.,0.; 4571P 6687
+126,1,1,0,0,1,0,-2.19683051976291,-2.19683051976291, 4573P 6688
+-0.233951809861228,-0.233951809861228,1.,1.,143.600041714311, 4573P 6689
+-187.471624566822,-7.5,143.600041714311,-167.842837467805,-7.5, 4573P 6690
+-2.19683051976291,-0.233951809861228,0.,0.,0.; 4573P 6691
+126,1,1,0,0,1,0,-5.79827126090288,-5.79827126090288,0.,0.,1.,1., 4575P 6692
+143.599043329707,-245.454337167255,-7.5,143.600041714311, 4575P 6693
+-187.471624566822,-7.5,-5.79827126090288,0.,0.,0.,0.; 4575P 6694
+126,6,2,0,0,0,0,-9.01269591246431,-9.01269591246431, 4577P 6695
+-9.01269591246431,-7.71661521165286,-7.71661521165286, 4577P 6696
+-6.42053451084141,-6.42053451084141,-5.12445381002996, 4577P 6697
+-5.12445381002996,-5.12445381002996,1.,0.797268222513902,1., 4577P 6698
+0.797268222513893,1.,0.797268222513928,1.,146.893865315652, 4577P 6699
+-248.749215886107,-7.5,146.13511310057,-250.485058779287,-7.5, 4577P 6700
+144.2585310156,-250.22564568775,-7.5,142.381948930629, 4577P 6701
+-249.966232596213,-7.5,142.122568151359,-248.089646044774,-7.5, 4577P 6702
+141.863187372088,-246.213059493336,-7.5,143.599043329707, 4577P 6703
+-245.454337167255,-7.5,-9.01269591246431,-5.12445381002996,0., 4577P 6704
+0.,0.; 4577P 6705
+126,1,1,0,0,1,0,-10.8869873393078,-10.8869873393078, 4579P 6706
+-0.22927014633397,-0.22927014633397,1.,1.,253.47103724539, 4579P 6707
+-248.749215886107,-7.5,146.893865315652,-248.749215886107,-7.5, 4579P 6708
+-10.8869873393078,-0.22927014633397,0.,0.,0.; 4579P 6709
+126,6,2,0,0,0,0,-4.30030689892742,-4.30030689892742, 4581P 6710
+-4.30030689892742,-3.00423194871996,-3.00423194871996, 4581P 6711
+-1.7081569985125,-1.7081569985125,-0.412082048305046, 4581P 6712
+-0.412082048305046,-0.412082048305046,1.,0.79726995811531,1., 4581P 6713
+0.797269958115373,1.,0.797269958115304,1.,256.765898784737, 4581P 6714
+-245.454354455992,-7.5,258.501731281752,-246.213102195359,-7.5, 4581P 6715
+258.242330469318,-248.089674551596,-7.5,257.982929656885, 4581P 6716
+-249.966246907834,-7.5,256.106357292048,-250.225647658055,-7.5, 4581P 6717
+254.22978492721,-250.485048408276,-7.5,253.47103724539, 4581P 6718
+-248.749215886107,-7.5,-4.30030689892742,-0.412082048305046,0., 4581P 6719
+0.,0.; 4581P 6720
+126,6,2,0,0,0,0,3.13925814735297,3.13925814735297, 4583P 6721
+3.13925814735297,4.1872070362588,4.1872070362588, 4583P 6722
+5.23515592516463,5.23515592516463,6.28310481407046, 4583P 6723
+6.28310481407046,6.28310481407046,1.,0.865837508251611,1., 4583P 6724
+0.865837508251546,1.,0.865837508251788,1.,242.35733990852, 4583P 6725
+-172.121201750437,-7.5,242.358316855497,-172.988052565356,-7.5, 4583P 6726
+241.607764429229,-173.421760237843,-7.5,240.857212002962, 4583P 6727
+-173.85546791033,-7.5,240.10665957669,-173.421760237851,-7.5, 4583P 6728
+239.356107150418,-172.988052565371,-7.5,239.357084097385, 4583P 6729
+-172.121201750453,-7.5,3.13925814735297,6.28310481407046,0.,0., 4583P 6730
+0.; 4583P 6731
+126,6,2,0,0,0,0,3.13925814731996,3.13925814731996, 4585P 6732
+3.13925814731996,4.1872070362402,4.1872070362402, 4585P 6733
+5.23515592516045,5.23515592516045,6.28310481408069, 4585P 6734
+6.28310481408069,6.28310481408069,1.,0.865837508248116,1., 4585P 6735
+0.865837508248067,1.,0.865837508248292,1.,239.357084097385, 4585P 6736
+-172.121201750453,-7.5,239.35610715039,-171.25435093552,-7.5, 4585P 6737
+240.106659576667,-170.82064326302,-7.5,240.857212002944, 4585P 6738
+-170.38693559052,-7.5,241.607764429225,-170.820643263012,-7.5, 4585P 6739
+242.358316855506,-171.254350935504,-7.5,242.35733990852, 4585P 6740
+-172.121201750437,-7.5,3.13925814731996,6.28310481408069,0.,0., 4585P 6741
+0.; 4585P 6742
+126,6,2,0,0,0,0,3.13925814734168,3.13925814734168, 4587P 6743
+3.13925814734168,4.18720703625123,4.18720703625123, 4587P 6744
+5.23515592516079,5.23515592516079,6.28310481407034, 4587P 6745
+6.28310481407034,6.28310481407034,1.,0.865837508250857,1., 4587P 6746
+0.865837508250855,1.,0.865837508250881,1.,163.58288415273, 4587P 6747
+-190.598023114196,-7.5,163.583861099711,-191.464873929118,-7.5, 4587P 6748
+162.833308673442,-191.898581601608,-7.5,162.082756247172, 4587P 6749
+-192.332289274099,-7.5,161.332203820897,-191.898581601616,-7.5, 4587P 6750
+160.581651394623,-191.464873929134,-7.5,160.582628341595, 4587P 6751
+-190.598023114212,-7.5,3.13925814734168,6.28310481407034,0.,0., 4587P 6752
+0.; 4587P 6753
+126,6,2,0,0,0,0,3.13925814733116,3.13925814733116, 4589P 6754
+3.13925814733116,4.18720703624771,4.18720703624771, 4589P 6755
+5.23515592516426,5.23515592516426,6.28310481408081, 4589P 6756
+6.28310481408081,6.28310481408081,1.,0.865837508248909,1., 4589P 6757
+0.865837508248987,1.,0.86583750824897,1.,160.582628341595, 4589P 6758
+-190.598023114212,-7.5,160.581651394605,-189.731172299282,-7.5, 4589P 6759
+161.332203820879,-189.297464626786,-7.5,162.082756247154, 4589P 6760
+-188.863756954289,-7.5,162.833308673433,-189.297464626778,-7.5, 4589P 6761
+163.583861099712,-189.731172299267,-7.5,163.58288415273, 4589P 6762
+-190.598023114196,-7.5,3.13925814733116,6.28310481408081,0.,0., 4589P 6763
+0.; 4589P 6764
+126,6,2,0,0,0,0,3.13866619559787,3.13866619559787, 4591P 6765
+3.13866619559787,4.18680559832114,4.18680559832114, 4591P 6766
+5.2349450010444,5.2349450010444,6.28308440376766, 4591P 6767
+6.28308440376766,6.28308440376766,1.,0.865789844881696,1., 4591P 6768
+0.865789844881894,1.,0.865789844881696,1.,239.784272290707, 4591P 6769
+-228.698656211057,-7.5,239.785497227975,-229.565697649234,-7.5, 4591P 6770
+239.034820806557,-229.999572361928,-7.5,238.284144385139, 4591P 6771
+-230.433447074621,-7.5,237.533467963721,-229.999572361928,-7.5, 4591P 6772
+236.782791542303,-229.565697649234,-7.5,236.784016479572, 4591P 6773
+-228.698656211057,-7.5,3.13866619559787,6.28308440376766,0.,0., 4591P 6774
+0.; 4591P 6775
+126,6,2,0,0,0,0,3.13866619557958,3.13866619557958, 4593P 6776
+3.13866619557958,4.18680559830898,4.18680559830898, 4593P 6777
+5.23494500103838,5.23494500103838,6.28308440376778, 4593P 6778
+6.28308440376778,6.28308440376778,1.,0.865789844880162,1., 4593P 6779
+0.865789844880317,1.,0.865789844880162,1.,236.784016479572, 4593P 6780
+-228.698656211057,-7.5,236.782791542295,-227.831614772873,-7.5, 4593P 6781
+237.533467963717,-227.397740060174,-7.5,238.284144385139, 4593P 6782
+-226.963865347475,-7.5,239.034820806561,-227.397740060174,-7.5, 4593P 6783
+239.785497227983,-227.831614772873,-7.5,239.784272290707, 4593P 6784
+-228.698656211057,-7.5,3.13866619557958,6.28308440376778,0.,0., 4593P 6785
+0.; 4593P 6786
+126,6,2,0,0,0,0,3.13925814734168,3.13925814734168, 4595P 6787
+3.13925814734168,4.18720703625123,4.18720703625123, 4595P 6788
+5.23515592516079,5.23515592516079,6.28310481407034, 4595P 6789
+6.28310481407034,6.28310481407034,1.,0.865837508250857,1., 4595P 6790
+0.865837508250855,1.,0.865837508250881,1.,163.58288415273, 4595P 6791
+-228.69865621105,-7.5,163.583861099711,-229.565507025972,-7.5, 4595P 6792
+162.833308673442,-229.999214698462,-7.5,162.082756247172, 4595P 6793
+-230.432922370953,-7.5,161.332203820897,-229.99921469847,-7.5, 4595P 6794
+160.581651394623,-229.565507025988,-7.5,160.582628341595, 4595P 6795
+-228.698656211065,-7.5,3.13925814734168,6.28310481407034,0.,0., 4595P 6796
+0.; 4595P 6797
+126,6,2,0,0,0,0,3.13925814733116,3.13925814733116, 4597P 6798
+3.13925814733116,4.18720703624771,4.18720703624771, 4597P 6799
+5.23515592516426,5.23515592516426,6.28310481408081, 4597P 6800
+6.28310481408081,6.28310481408081,1.,0.865837508248909,1., 4597P 6801
+0.865837508248987,1.,0.86583750824897,1.,160.582628341595, 4597P 6802
+-228.698656211065,-7.5,160.581651394605,-227.831805396136,-7.5, 4597P 6803
+161.332203820879,-227.39809772364,-7.5,162.082756247154, 4597P 6804
+-226.964390051143,-7.5,162.833308673433,-227.398097723632,-7.5, 4597P 6805
+163.583861099712,-227.83180539612,-7.5,163.58288415273, 4597P 6806
+-228.69865621105,-7.5,3.13925814733116,6.28310481408081,0.,0., 4597P 6807
+0.; 4597P 6808
+126,6,2,0,0,0,0,3.13917765424295,3.13917765424295, 4599P 6809
+3.13917765424295,4.18718020522184,4.18718020522184, 4599P 6810
+5.23518275620074,5.23518275620074,6.28318530717964, 4599P 6811
+6.28318530717964,6.28318530717964,1.,0.865824083693605,1., 4599P 6812
+0.865824083693601,1.,0.865824083693706,1.,239.68226259674, 4599P 6813
+-190.598023114196,-7.50000000000001,239.683239604231, 4599P 6814
+-191.407138874521,-7.50000000000001,238.982687181724, 4599P 6815
+-191.811979054677,-7.50000000000001,238.282134759216, 4599P 6816
+-192.216819234834,-7.50000000000001,237.581582336708, 4599P 6817
+-191.811979054677,-7.50000000000001,236.8810299142, 4599P 6818
+-191.407138874521,-7.50000000000001,236.882006921691, 4599P 6819
+-190.598023114196,-7.50000000000001,3.13917765424295, 4599P 6820
+6.28318530717964,0.,0.,0.; 4599P 6821
+126,6,2,0,0,0,0,3.13917765424305,3.13917765424305, 4601P 6822
+3.13917765424305,4.1871802052219,4.1871802052219, 4601P 6823
+5.23518275620074,5.23518275620074,6.28318530717959, 4601P 6824
+6.28318530717959,6.28318530717959,1.,0.865824083693657,1., 4601P 6825
+0.865824083693437,1.,0.865824083693493,1.,236.882006921691, 4601P 6826
+-190.598023114196,-7.50000000000001,236.8810299142, 4601P 6827
+-189.78890735387,-7.50000000000001,237.581582336708, 4601P 6828
+-189.384067173714,-7.50000000000001,238.282134759216, 4601P 6829
+-188.979226993558,-7.50000000000001,238.982687181724, 4601P 6830
+-189.384067173714,-7.50000000000001,239.683239604231, 4601P 6831
+-189.78890735387,-7.50000000000001,239.68226259674, 4601P 6832
+-190.598023114196,-7.50000000000001,3.13917765424305, 4601P 6833
+6.28318530717959,0.,0.,0.; 4601P 6834
+126,6,2,0,0,0,0,3.13917765425437,3.13917765425437, 4603P 6835
+3.13917765425437,4.18718020522943,4.18718020522943, 4603P 6836
+5.2351827562045,5.2351827562045,6.28318530717956, 4603P 6837
+6.28318530717956,6.28318530717956,1.,0.865824083694451,1., 4603P 6838
+0.865824083694691,1.,0.865824083694492,1.,160.90780684095, 4603P 6839
+-172.121201750437,-7.5,160.908783848437,-172.930317510758,-7.5, 4603P 6840
+160.208231425931,-173.335157690912,-7.5,159.507679003426, 4603P 6841
+-173.739997871065,-7.5,158.80712658092,-173.335157690912,-7.5, 4603P 6842
+158.106574158415,-172.930317510759,-7.5,158.107551165901, 4603P 6843
+-172.121201750437,-7.5,3.13917765425437,6.28318530717956,0.,0., 4603P 6844
+0.; 4603P 6845
+126,6,2,0,0,0,0,3.13917765423161,3.13917765423161, 4605P 6846
+3.13917765423161,4.18718020521427,4.18718020521427, 4605P 6847
+5.23518275619693,5.23518275619693,6.28318530717959, 4605P 6848
+6.28318530717959,6.28318530717959,1.,0.865824083692486,1., 4605P 6849
+0.865824083692489,1.,0.865824083692465,1.,158.107551165901, 4605P 6850
+-172.121201750437,-7.5,158.106574158405,-171.312085990108,-7.5, 4605P 6851
+158.807126580916,-170.907245809948,-7.5,159.507679003426, 4605P 6852
+-170.502405629789,-7.5,160.208231425936,-170.907245809948,-7.5, 4605P 6853
+160.908783848446,-171.312085990108,-7.5,160.90780684095, 4605P 6854
+-172.121201750437,-7.5,3.13917765423161,6.28318530717959,0.,0., 4605P 6855
+0.; 4605P 6856
+126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 4607P 6857
+158.107551165901,-172.121201750437,-7.5,158.107551165901, 4607P 6858
+-172.121201750437,-11.6,1.623625,2.033625,0.,0.,0.; 4607P 6859
+126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 4609P 6860
+160.90780684095,-172.121201750437,-7.5,160.90780684095, 4609P 6861
+-172.121201750437,-11.6,1.623625,2.033625,0.,0.,0.; 4609P 6862
+126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 4611P 6863
+236.882006921691,-190.598023114196,-7.5,236.882006921691, 4611P 6864
+-190.598023114196,-11.6,1.623625,2.033625,0.,0.,0.; 4611P 6865
+126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 4613P 6866
+239.68226259674,-190.598023114196,-7.5,239.68226259674, 4613P 6867
+-190.598023114196,-11.6,1.623625,2.033625,0.,0.,0.; 4613P 6868
+126,2,2,0,0,0,0,-1.15918194829754,-1.15918194829754, 4615P 6869
+-1.15918194829754,-0.0292778092733589,-0.0292778092733589, 4615P 6870
+-0.0292778092733589,1.,0.84461426219442,1.,143.600041714311, 4615P 6871
+-167.842837467805,5.5,142.146470952165,-167.208278396419,5.5, 4615P 6872
+142.100041714311,-165.622914872961,5.5,-1.15918194829754, 4615P 6873
+-0.0292778092733589,0.,0.,0.; 4615P 6874
+126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,143.600041714311, 4617P 6875
+-167.842837467805,-7.5,143.600041714311,-167.842837467805,5.5, 4617P 6876
+-1.5,-0.2,0.,0.,0.; 4617P 6877
+126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,142.100041714311, 4619P 6878
+-165.622914872961,5.5,142.100041714311,-165.622914872961,-7.5, 4619P 6879
+0.2,1.5,0.,0.,0.; 4619P 6880
+126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,253.47103724539, 4621P 6881
+-248.749215886107,5.5,253.47103724539,-248.749215886107,-7.5, 4621P 6882
+0.2,1.5,0.,0.,0.; 4621P 6883
+126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,146.893865315652, 4623P 6884
+-248.749215886107,-7.5,146.893865315652,-248.749215886107,5.5, 4623P 6885
+-1.5,-0.2,0.,0.,0.; 4623P 6886
+126,1,1,0,0,1,0,-8.10792303602294,-8.10792303602294, 4625P 6887
+2.54979415695085,2.54979415695085,1.,1.,146.893865315652, 4625P 6888
+-248.749215886107,5.5,253.47103724539,-248.749215886107,5.5, 4625P 6889
+-8.10792303602294,2.54979415695085,0.,0.,0.; 4625P 6890
+126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,143.599043329707, 4627P 6891
+-245.454337167255,5.5,143.599043329707,-245.454337167255,-7.5, 4627P 6892
+0.2,1.5,0.,0.,0.; 4627P 6893
+126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,143.600041714311, 4629P 6894
+-187.471624566822,5.5,143.600041714311,-187.471624566822,-7.5, 4629P 6895
+0.2,1.5,0.,0.,0.; 4629P 6896
+126,1,1,0,0,1,0,-3.97255884800442,-3.97255884800442, 4631P 6897
+1.82571241289845,1.82571241289845,1.,1.,143.600041714311, 4631P 6898
+-187.471624566822,5.5,143.599043329707,-245.454337167255,5.5, 4631P 6899
+-3.97255884800442,1.82571241289845,0.,0.,0.; 4631P 6900
+126,2,2,0,0,0,0,1.5707963267949,1.5707963267949,1.5707963267949, 4633P 6901
+2.72951060528473,2.72951060528473,2.72951060528473,1., 4633P 6902
+0.836814780130264,1.,144.601129377503,-163.047507575232,5.5, 4633P 6903
+146.23816763129,-163.047507575232,5.5,146.893830840843, 4633P 6904
+-164.547507575232,5.5,1.5707963267949,2.72951060528473,0.,0.,0.; 4633P 6905
+126,2,2,0,0,0,0,1.72186597884763D-5,1.72186597884763D-5, 4635P 6906
+1.72186597884763D-5,1.15873149714963,1.15873149714963, 4635P 6907
+1.15873149714963,1.,0.836814780130337,1.,142.099003852683, 4635P 6908
+-247.747012802266,5.5,142.099032040288,-246.109974548721,5.5, 4635P 6909
+143.599043329707,-245.454337167255,5.5,1.72186597884763D-5, 4635P 6910
+1.15873149714963,0.,0.,0.; 4635P 6911
+126,1,1,0,0,1,0,-2.92171556809407,-2.92171556809407, 4637P 6912
+-0.958836858192392,-0.958836858192392,1.,1.,143.600041714311, 4637P 6913
+-167.842837467805,5.5,143.600041714311,-187.471624566822,5.5, 4637P 6914
+-2.92171556809407,-0.958836858192392,0.,0.,0.; 4637P 6915
+126,1,1,0,0,1,0,0.958837288670924,0.958837288670924, 4639P 6916
+3.14370739710002,3.14370739710002,1.,1.,142.100041714311, 4639P 6917
+-187.471615957251,5.5,142.100041714311,-165.622914872961,5.5, 4639P 6918
+0.958837288670924,3.14370739710002,0.,0.,0.; 4639P 6919
+126,1,1,0,0,1,0,-2.054982559236,-2.054982559236, 4641P 6920
+3.97255712615894,3.97255712615894,1.,1.,142.099003852683, 4641P 6921
+-247.747012802266,5.5,142.100041714311,-187.471615957251,5.5, 4641P 6922
+-2.054982559236,3.97255712615894,0.,0.,0.; 4641P 6923
+126,2,2,0,0,0,0,-1.5707963267949,-1.5707963267949, 4643P 6924
+-1.5707963267949,-0.412082048305059,-0.412082048305059, 4643P 6925
+-0.412082048305059,1.,0.836814780130349,1.,255.763738708729, 4643P 6926
+-250.249215886107,5.5,254.126700454943,-250.249215886107,5.5, 4643P 6927
+253.47103724539,-248.749215886107,5.5,-1.5707963267949, 4643P 6928
+-0.412082048305059,0.,0.,0.; 4643P 6929
+126,2,2,0,0,0,0,-2.72951060528471,-2.72951060528471, 4645P 6930
+-2.72951060528471,-1.5707963267949,-1.5707963267949, 4645P 6931
+-1.5707963267949,1.,0.83681478013024,1.,146.893865315652, 4645P 6932
+-248.749215886107,5.5,146.238202106099,-250.249215886107,5.5, 4645P 6933
+144.601163852312,-250.249215886107,5.5,-2.72951060528471, 4645P 6934
+-1.5707963267949,0.,0.,0.; 4645P 6935
+126,1,1,0,0,1,0,-2.77906430328482,-2.77906430328482, 4647P 6936
+8.33719318235691,8.33719318235691,1.,1.,255.763738708729, 4647P 6937
+-250.249215886107,5.5,144.601163852312,-250.249215886107,5.5, 4647P 6938
+-2.77906430328482,8.33719318235691,0.,0.,0.; 4647P 6939
+126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,253.471039970417, 4649P 6940
+-164.547507575232,-7.5,253.471039970417,-164.547507575232,5.5, 4649P 6941
+-1.5,-0.2,0.,0.,0.; 4649P 6942
+126,1,1,0,0,1,0,-8.10792489601484,-8.10792489601484, 4651P 6943
+-6.53888737412926,-6.53888737412926,1.,1.,253.471039970417, 4651P 6944
+-164.547507575232,5.5,237.780664751561,-164.547507575232,5.5, 4651P 6945
+-8.10792489601484,-6.53888737412926,0.,0.,0.; 4651P 6946
+126,1,1,0,0,1,0,-0.2,-0.2,1.1,1.1,1.,1.,237.780664751561, 4653P 6947
+-164.547507575232,5.5,237.780664751561,-164.547507575232,-7.5, 4653P 6948
+-0.2,1.1,0.,0.,0.; 4653P 6949
+126,2,2,0,0,0,0,1.98287840825217,1.98287840825217, 4655P 6950
+1.98287840825217,3.14159265358978,3.14159265358978, 4655P 6951
+3.14159265358978,1.,0.836814789205546,1.,256.765898784737, 4655P 6952
+-245.454354455992,5.5,258.265898708729,-246.11001769155,5.5, 4655P 6953
+258.265898708729,-247.747055886107,5.5,1.98287840825217, 4655P 6954
+3.14159265358978,0.,0.,0.; 4655P 6955
+126,1,1,0,0,1,0,-2.05493493947419,-2.05493493947419, 4657P 6956
+6.16480416245852,6.16480416245852,1.,1.,258.265901433754, 4657P 6957
+-165.54966486678,5.5,258.265898708729,-247.747055886107,5.5, 4657P 6958
+-2.05493493947419,6.16480416245852,0.,0.,0.; 4657P 6959
+126,2,2,0,0,0,0,-3.14159373603537,-3.14159373603537, 4659P 6960
+-3.14159373603537,-1.98287834194696,-1.98287834194696, 4659P 6961
+-1.98287834194696,1.,0.836814474742808,1.,258.265901433754, 4659P 6962
+-165.54966486678,5.5,258.265903205761,-167.186705113691,5.5, 4659P 6963
+256.765901357746,-167.842369071796,5.5,-3.14159373603537, 4659P 6964
+-1.98287834194696,0.,0.,0.; 4659P 6965
+126,1,1,0,0,1,0,-5.93553402441977,-5.93553402441977, 4661P 6966
+1.82566451399977,1.82566451399977,1.,1.,256.765898784737, 4661P 6967
+-245.454354455992,5.5,256.765901357746,-167.842369071796,5.5, 4661P 6968
+-5.93553402441977,1.82566451399977,0.,0.,0.; 4661P 6969
+126,2,2,0,0,0,0,0.412082048305129,0.412082048305129, 4663P 6970
+0.412082048305129,1.57079632679488,1.57079632679488, 4663P 6971
+1.57079632679488,1.,0.836814780130332,1.,253.471039970417, 4663P 6972
+-164.547507575232,5.5,254.126703179969,-163.047507575233,5.5, 4663P 6973
+255.763741433756,-163.047507575233,5.5,0.412082048305129, 4663P 6974
+1.57079632679488,0.,0.,0.; 4663P 6975
+126,1,1,0,0,1,0,-2.25504270777187,-2.25504270777187, 4665P 6976
+-2.10504270777188,-2.10504270777188,1.,1.,237.780664751561, 4665P 6977
+-163.047507575232,5.5,237.780664751561,-164.547507575232,5.5, 4665P 6978
+-2.25504270777187,-2.10504270777188,0.,0.,0.; 4665P 6979
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,160.582628341595, 4667P 6980
+-228.698656211065,-7.5,160.582628341595,-228.698656211065,-11.6, 4667P 6981
+1.5,1.91,0.,0.,0.; 4667P 6982
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,163.58288415273, 4669P 6983
+-228.69865621105,-7.5,163.58288415273,-228.69865621105,-11.6, 4669P 6984
+1.5,1.91,0.,0.,0.; 4669P 6985
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,236.784016479572, 4671P 6986
+-228.698656211057,-7.5,236.784016479572,-228.698656211057,-11.6, 4671P 6987
+1.5,1.91,0.,0.,0.; 4671P 6988
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,239.784272290707, 4673P 6989
+-228.698656211057,-7.5,239.784272290707,-228.698656211057,-11.6, 4673P 6990
+1.5,1.91,0.,0.,0.; 4673P 6991
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,160.582628341595, 4675P 6992
+-190.598023114212,-7.5,160.582628341595,-190.598023114212,-11.6, 4675P 6993
+1.5,1.91,0.,0.,0.; 4675P 6994
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,163.58288415273, 4677P 6995
+-190.598023114196,-7.5,163.58288415273,-190.598023114196,-11.6, 4677P 6996
+1.5,1.91,0.,0.,0.; 4677P 6997
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,239.357084097385, 4679P 6998
+-172.121201750453,-7.5,239.357084097385,-172.121201750453,-11.6, 4679P 6999
+1.5,1.91,0.,0.,0.; 4679P 7000
+126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,242.35733990852, 4681P 7001
+-172.121201750437,-7.5,242.35733990852,-172.121201750437,-11.6, 4681P 7002
+1.5,1.91,0.,0.,0.; 4681P 7003
+126,1,1,0,0,1,0,0.8,0.8,1.21,1.21,1.,1.,237.780664751561, 4683P 7004
+-164.547507575232,-7.5,237.780664751561,-164.547507575232,-11.6, 4683P 7005
+0.8,1.21,0.,0.,0.; 4683P 7006
+126,1,1,0,0,1,0,0.0749999999999993,0.0749999999999993, 4685P 7007
+0.724999999999998,0.724999999999998,1.,1.,237.780664751561, 4685P 7008
+-163.047507575232,1.5,237.780664751561,-156.547507575232,1.5, 4685P 7009
+0.0749999999999993,0.724999999999998,0.,0.,0.; 4685P 7010
+126,1,1,0,0,1,0,0.8,0.8,1.21,1.21,1.,1.,169.612220010399, 4687P 7011
+-164.547507575232,-7.5,169.612220010399,-164.547507575232,-11.6, 4687P 7012
+0.8,1.21,0.,0.,0.; 4687P 7013
+126,1,1,0,0,1,0,-0.2,-0.2,1.1,1.1,1.,1.,169.612220010399, 4689P 7014
+-164.547507575232,5.5,169.612220010399,-164.547507575232,-7.5, 4689P 7015
+-0.2,1.1,0.,0.,0.; 4689P 7016
+126,1,1,0,0,1,0,0.0749999999999993,0.0749999999999993, 4691P 7017
+0.724999999999998,0.724999999999998,1.,1.,169.612220010399, 4691P 7018
+-163.047507575232,1.5,169.612220010399,-156.547507575232,1.5, 4691P 7019
+0.0749999999999993,0.724999999999998,0.,0.,0.; 4691P 7020
+126,1,1,0,0,1,0,-0.75,-0.75,0.55,0.55,1.,1.,193.600041714311, 4693P 7021
+-164.547507575232,-7.5,193.600041714311,-164.547507575232,5.5, 4693P 7022
+-0.75,0.55,0.,0.,0.; 4693P 7023
+126,1,1,0,0,1,0,0.,0.,1.3,1.3,1.,1.,213.600041714311, 4695P 7024
+-171.547507575232,-7.5,213.600041714311,-171.547507575232,5.5, 4695P 7025
+0.,1.3,0.,0.,0.; 4695P 7026
+126,1,1,0,0,1,0,0.,0.,1.3,1.3,1.,1.,193.600041714311, 4697P 7027
+-171.547507575231,-7.5,193.600041714311,-171.547507575231,5.5, 4697P 7028
+0.,1.3,0.,0.,0.; 4697P 7029
+126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,256.765898784737, 4699P 7030
+-245.454354455992,-7.5,256.765898784737,-245.454354455992,5.5, 4699P 7031
+-1.5,-0.2,0.,0.,0.; 4699P 7032
+126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,256.765901357746, 4701P 7033
+-167.842369071796,5.5,256.765901357746,-167.842369071796,-7.5, 4701P 7034
+0.2,1.5,0.,0.,0.; 4701P 7035
+126,1,1,0,0,1,0,0.958837288670924,0.958837288670924, 4703P 7036
+3.15835685664568,3.15835685664568,1.,1.,142.100041714311, 4703P 7037
+-187.471615957251,7.5,142.100041714311,-165.476420277504,7.5, 4703P 7038
+0.958837288670924,3.15835685664568,0.,0.,0.; 4703P 7039
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,142.100041714311, 4705P 7040
+-187.471615957251,7.5,142.100041714311,-187.471615957251,5.5,0., 4705P 7041
+0.2,0.,0.,0.; 4705P 7042
+126,1,1,0,0,1,0,0.,0.,1.5,1.5,1.,1.,142.100041714311, 4707P 7043
+-165.476420277504,7.5,142.100041714311,-165.476420277504,-7.5, 4707P 7044
+0.,1.5,0.,0.,0.; 4707P 7045
+126,1,1,0,0,1,0,-2.054982559236,-2.054982559236, 4709P 7046
+3.97255712615894,3.97255712615894,1.,1.,142.099003852683, 4709P 7047
+-247.747012802266,7.5,142.100041714311,-187.471615957251,7.5, 4709P 7048
+-2.054982559236,3.97255712615894,0.,0.,0.; 4709P 7049
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,142.099003852683, 4711P 7050
+-247.747012802266,7.5,142.099003852683,-247.747012802266,5.5,0., 4711P 7051
+0.2,0.,0.,0.; 4711P 7052
+126,4,2,0,0,0,0,-1.57081354545468,-1.57081354545468, 4713P 7053
+-1.57081354545468,-0.785406772727342,-0.785406772727342,0.,0., 4713P 7054
+0.,1.,0.92387788517883,1.,0.923877885178821,1.,144.601163852312, 4713P 7055
+-250.249215886107,7.5,143.564722626097,-250.249215886107,7.5, 4713P 7056
+142.831854316326,-249.516334957217,7.5,142.098986006554, 4713P 7057
+-248.783454028327,7.5,142.099003852683,-247.747012802266,7.5, 4713P 7058
+-1.57081354545468,0.,0.,0.,0.; 4713P 7059
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,144.601163852312, 4715P 7060
+-250.249215886107,7.5,144.601163852312,-250.249215886107,5.5,0., 4715P 7061
+0.2,0.,0.,0.; 4715P 7062
+126,1,1,0,0,1,0,-2.77906430328482,-2.77906430328482, 4717P 7063
+8.33719318235691,8.33719318235691,1.,1.,255.763738708729, 4717P 7064
+-250.249215886107,7.5,144.601163852312,-250.249215886107,7.5, 4717P 7065
+-2.77906430328482,8.33719318235691,0.,0.,0.; 4717P 7066
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,255.763738708729, 4719P 7067
+-250.249215886107,7.5,255.763738708729,-250.249215886107,5.5,0., 4719P 7068
+0.2,0.,0.,0.; 4719P 7069
+126,2,2,0,0,0,0,-1.5707963267949,-1.5707963267949, 4721P 7070
+-1.5707963267949,0.,0.,0.,1.,0.707106781186518,1., 4721P 7071
+258.265898708729,-247.747055886107,7.5,258.265898708729, 4721P 7072
+-250.249215886107,7.5,255.763738708729,-250.249215886107,7.5, 4721P 7073
+-1.5707963267949,0.,0.,0.,0.; 4721P 7074
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,258.265898708729, 4723P 7075
+-247.747055886107,7.5,258.265898708729,-247.747055886107,5.5,0., 4723P 7076
+0.2,0.,0.,0.; 4723P 7077
+126,1,1,0,0,1,0,-2.05493493947419,-2.05493493947419, 4725P 7078
+6.16480416245852,6.16480416245852,1.,1.,258.265901433754, 4725P 7079
+-165.54966486678,7.5,258.265898708729,-247.747055886107,7.5, 4725P 7080
+-2.05493493947419,6.16480416245852,0.,0.,0.; 4725P 7081
+126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,258.265901433754, 4727P 7082
+-165.54966486678,7.5,258.265901433754,-165.54966486678,5.5,0., 4727P 7083
+0.2,0.,0.,0.; 4727P 7084
+126,2,2,0,0,0,0,-1.57079524434933,-1.57079524434933, 4729P 7085
+-1.57079524434933,0.,0.,0.,1.,0.707107163888743,1., 4729P 7086
+255.763741433756,-163.047507575233,7.5,258.265898725305, 4729P 7087
+-163.047507575233,7.5,258.265901433754,-165.54966486678,7.5, 4729P 7088
+-1.57079524434933,0.,0.,0.,0.; 4729P 7089
+126,2,2,0,0,0,0,-1.54151851752146,-1.54151851752146, 4731P 7090
+-1.54151851752146,0.,0.,0.,1.,0.717381915954777,1., 4731P 7091
+142.100041714311,-165.476420277504,7.5,142.171175283308, 4731P 7092
+-163.047507575232,7.5,144.601129377503,-163.047507575232,7.5, 4731P 7093
+-1.54151851752146,0.,0.,0.,0.; 4731P 7094
+126,2,2,0,0,0,0,0.,0.,0.,1.55536115200856,1.55536115200856, 4733P 7095
+1.55536115200856,1.,0.712542827450536,1.,144.601129377503, 4733P 7096
+-156.547507575232,7.5,135.73685786174,-156.547507575232,7.5, 4733P 7097
+135.600041714311,-165.410723179457,7.5,0.,1.55536115200856,0., 4733P 7098
+0.,0.; 4733P 7099
+126,1,1,0,0,1,0,7.15168754189355D-31,7.15168754189355D-31, 4735P 7100
+2.20608325126057,2.20608325126057,1.,1.,135.600041714311, 4735P 7101
+-165.410723179457,7.5,135.600041714311,-187.471555692063,7.5, 4735P 7102
+7.15168754189355D-31,2.20608325126057,0.,0.,0.; 4735P 7103
+126,1,1,0,0,1,0,0.,0.,6.02753451978495,6.02753451978495,1.,1., 4737P 7104
+135.600041714311,-187.471555692063,7.5,135.599003853647, 4737P 7105
+-247.746900880977,7.5,0.,6.02753451978495,0.,0.,0.; 4737P 7106
+126,4,2,0,0,0,0,0.,0.,0.,0.785406772727353,0.785406772727353, 4739P 7107
+1.57081354545471,1.57081354545471,1.57081354545471,1., 4739P 7108
+0.923877885178792,1.,0.923877885178803,1.,135.599003853647, 4739P 7109
+-247.746900880977,7.5,135.598939647638,-251.475763043109,7.5, 4739P 7110
+138.235620668632,-254.112489464608,7.5,140.872301689627, 4739P 7111
+-256.749215886107,7.5,144.601163852312,-256.749215886107,7.5,0., 4739P 7112
+1.57081354545471,0.,0.,0.; 4739P 7113
+126,1,1,0,0,1,0,0.,0.,11.1162574856417,11.1162574856417,1.,1., 4741P 7114
+144.601163852312,-256.749215886107,7.5,255.763738708729, 4741P 7115
+-256.749215886107,7.5,0.,11.1162574856417,0.,0.,0.; 4741P 7116
+126,2,2,0,0,0,0,0.,0.,0.,1.57079632679491,1.57079632679491, 4743P 7117
+1.57079632679491,1.,0.707106781186549,1.,255.763738708729, 4743P 7118
+-256.749215886107,7.5,264.765898708729,-256.749215886107,7.5, 4743P 7119
+264.765898708729,-247.747055886107,7.5,0.,1.57079632679491,0., 4743P 7120
+0.,0.; 4743P 7121
+126,1,1,0,0,1,0,0.,0.,8.21973908038377,8.21973908038377,1.,1., 4745P 7122
+264.765898708729,-247.747055886107,7.5,264.765901433754, 4745P 7123
+-165.54966508227,7.5,0.,8.21973908038377,0.,0.,0.; 4745P 7124
+126,2,2,0,0,0,0,0.,0.,0.,1.57079604986551,1.57079604986551, 4747P 7125
+1.57079604986551,1.,0.707106879095859,1.,264.765901433754, 4747P 7126
+-165.54966508227,7.5,264.765898940792,-156.547507575234,7.5, 4747P 7127
+255.763741433756,-156.547507575234,7.5,0.,1.57079604986551,0., 4747P 7128
+0.,0.; 4747P 7129
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,135.600041714311, 4749P 7130
+-165.410723179457,7.5,135.600041714311,-165.410723179457,-11.6, 4749P 7131
+0.,1.91,0.,0.,0.; 4749P 7132
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,135.600041714311, 4751P 7133
+-187.471555692063,7.5,135.600041714311,-187.471555692063,-11.6, 4751P 7134
+0.,1.91,0.,0.,0.; 4751P 7135
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,135.599003853647, 4753P 7136
+-247.746900880977,7.5,135.599003853647,-247.746900880977,-11.6, 4753P 7137
+0.,1.91,0.,0.,0.; 4753P 7138
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,144.601163852312, 4755P 7139
+-256.749215886107,7.5,144.601163852312,-256.749215886107,-11.6, 4755P 7140
+0.,1.91,0.,0.,0.; 4755P 7141
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,255.763738708729, 4757P 7142
+-256.749215886107,7.5,255.763738708729,-256.749215886107,-11.6, 4757P 7143
+0.,1.91,0.,0.,0.; 4757P 7144
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,264.765898708729, 4759P 7145
+-247.747055886107,7.5,264.765898708729,-247.747055886107,-11.6, 4759P 7146
+0.,1.91,0.,0.,0.; 4759P 7147
+126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,264.765901433754, 4761P 7148
+-165.54966508227,7.5,264.765901433754,-165.54966508227,-11.6,0., 4761P 7149
+1.91,0.,0.,0.; 4761P 7150
+128,1,6,1,2,0,0,0,0,0,-1.14300985890878D-16, 4763P 7151
+-1.14300985890878D-16,1.07865733739701,1.07865733739701, 4763P 7152
+3.1392581473417,3.1392581473417,3.1392581473417, 4763P 7153
+4.18726069832056,4.18726069832056,5.23526324929942, 4763P 7154
+5.23526324929942,6.28326580027829,6.28326580027829, 4763P 7155
+6.28326580027829,1.,1.,0.865824083693581,0.865824083693581,1., 4763P 7156
+1.,0.865824083693581,0.865824083693581,1.,1.,0.865824083693581, 4763P 7157
+0.865824083693581,1.,1.,136.882006921691,-80.5980231141957, 4763P 7158
+8.73624999999999,136.882006921691,-80.5980231141957, 4763P 7159
+7.11812499999999,136.8810299142,-79.7889073538704, 4763P 7160
+8.73624999999999,136.8810299142,-79.7889073538704, 4763P 7161
+7.11812499999999,137.581582336708,-79.3840671737142, 4763P 7162
+8.73624999999999,137.581582336708,-79.3840671737142, 4763P 7163
+7.11812499999999,138.282134759216,-78.9792269935579, 4763P 7164
+8.73624999999999,138.282134759216,-78.9792269935579, 4763P 7165
+7.11812499999999,138.982687181724,-79.3840671737142, 4763P 7166
+8.73624999999999,138.982687181724,-79.3840671737142, 4763P 7167
+7.11812499999999,139.683239604231,-79.7889073538704, 4763P 7168
+8.73624999999999,139.683239604231,-79.7889073538704, 4763P 7169
+7.11812499999999,139.68226259674,-80.5980231141957, 4763P 7170
+8.73624999999999,139.68226259674,-80.5980231141957, 4763P 7171
+7.11812499999999,-1.14300985890878D-16,1.07865733739701, 4763P 7172
+3.1392581473417,6.28326580027829; 4763P 7173
+128,1,6,1,2,0,0,0,0,0,-1.14300985890878D-16, 4765P 7174
+-1.14300985890878D-16,1.07865733739701,1.07865733739701, 4765P 7175
+3.13925814734167,3.13925814734167,3.13925814734167, 4765P 7176
+4.18726069832055,4.18726069832055,5.23526324929943, 4765P 7177
+5.23526324929943,6.28326580027831,6.28326580027831, 4765P 7178
+6.28326580027831,1.,1.,0.865824083693577,0.865824083693577,1., 4765P 7179
+1.,0.865824083693577,0.865824083693577,1.,1.,0.865824083693577, 4765P 7180
+0.865824083693577,1.,1.,139.68226259674,-80.5980231141957, 4765P 7181
+8.73624999999999,139.68226259674,-80.5980231141957, 4765P 7182
+7.11812499999999,139.683239604231,-81.4071388745211, 4765P 7183
+8.73624999999999,139.683239604231,-81.4071388745211, 4765P 7184
+7.11812499999999,138.982687181724,-81.8119790546774, 4765P 7185
+8.73624999999999,138.982687181724,-81.8119790546774, 4765P 7186
+7.11812499999999,138.282134759216,-82.2168192348336, 4765P 7187
+8.73624999999999,138.282134759216,-82.2168192348336, 4765P 7188
+7.11812499999999,137.581582336708,-81.8119790546774, 4765P 7189
+8.73624999999999,137.581582336708,-81.8119790546774, 4765P 7190
+7.11812499999999,136.8810299142,-81.4071388745211, 4765P 7191
+8.73624999999999,136.8810299142,-81.4071388745211, 4765P 7192
+7.11812499999999,136.882006921691,-80.5980231141957, 4765P 7193
+8.73624999999999,136.882006921691,-80.5980231141957, 4765P 7194
+7.11812499999999,-1.14300985890878D-16,1.07865733739701, 4765P 7195
+3.13925814734167,6.28326580027831; 4765P 7196
+128,1,6,1,2,0,0,0,0,0,-1.14300985890878D-16, 4767P 7197
+-1.14300985890878D-16,1.07865733739701,1.07865733739701, 4767P 7198
+3.1392581473417,3.1392581473417,3.1392581473417, 4767P 7199
+4.18726069832056,4.18726069832056,5.23526324929942, 4767P 7200
+5.23526324929942,6.28326580027829,6.28326580027829, 4767P 7201
+6.28326580027829,1.,1.,0.865824083693581,0.865824083693581,1., 4767P 7202
+1.,0.865824083693581,0.865824083693581,1.,1.,0.865824083693581, 4767P 7203
+0.865824083693581,1.,1.,136.882006921691,-118.69865621105, 4767P 7204
+8.73624999999999,136.882006921691,-118.69865621105, 4767P 7205
+7.11812499999999,136.8810299142,-117.889540450724, 4767P 7206
+8.73624999999999,136.8810299142,-117.889540450724, 4767P 7207
+7.11812499999999,137.581582336708,-117.484700270568, 4767P 7208
+8.73624999999999,137.581582336708,-117.484700270568, 4767P 7209
+7.11812499999999,138.282134759216,-117.079860090412, 4767P 7210
+8.73624999999999,138.282134759216,-117.079860090412, 4767P 7211
+7.11812499999999,138.982687181724,-117.484700270568, 4767P 7212
+8.73624999999999,138.982687181724,-117.484700270568, 4767P 7213
+7.11812499999999,139.683239604231,-117.889540450724, 4767P 7214
+8.73624999999999,139.683239604231,-117.889540450724, 4767P 7215
+7.11812499999999,139.68226259674,-118.69865621105, 4767P 7216
+8.73624999999999,139.68226259674,-118.69865621105, 4767P 7217
+7.11812499999999,-1.14300985890878D-16,1.07865733739701, 4767P 7218
+3.1392581473417,6.28326580027829; 4767P 7219
+128,1,6,1,2,0,0,0,0,0,-1.14300985890878D-16, 4769P 7220
+-1.14300985890878D-16,1.07865733739701,1.07865733739701, 4769P 7221
+3.13925814734167,3.13925814734167,3.13925814734167, 4769P 7222
+4.18726069832055,4.18726069832055,5.23526324929943, 4769P 7223
+5.23526324929943,6.28326580027831,6.28326580027831, 4769P 7224
+6.28326580027831,1.,1.,0.865824083693577,0.865824083693577,1., 4769P 7225
+1.,0.865824083693577,0.865824083693577,1.,1.,0.865824083693577, 4769P 7226
+0.865824083693577,1.,1.,139.68226259674,-118.69865621105, 4769P 7227
+8.73624999999999,139.68226259674,-118.69865621105, 4769P 7228
+7.11812499999999,139.683239604231,-119.507771971375, 4769P 7229
+8.73624999999999,139.683239604231,-119.507771971375, 4769P 7230
+7.11812499999999,138.982687181724,-119.912612151531, 4769P 7231
+8.73624999999999,138.982687181724,-119.912612151531, 4769P 7232
+7.11812499999999,138.282134759216,-120.317452331688, 4769P 7233
+8.73624999999999,138.282134759216,-120.317452331688, 4769P 7234
+7.11812499999999,137.581582336708,-119.912612151531, 4769P 7235
+8.73624999999999,137.581582336708,-119.912612151531, 4769P 7236
+7.11812499999999,136.8810299142,-119.507771971375, 4769P 7237
+8.73624999999999,136.8810299142,-119.507771971375, 4769P 7238
+7.11812499999999,136.882006921691,-118.69865621105, 4769P 7239
+8.73624999999999,136.882006921691,-118.69865621105, 4769P 7240
+7.11812499999999,-1.14300985890878D-16,1.07865733739701, 4769P 7241
+3.13925814734167,6.28326580027831; 4769P 7242
+128,1,6,1,2,0,0,0,0,0,-1.14300941237118D-16, 4771P 7243
+-1.14300941237118D-16,1.07865694595434,1.07865694595434, 4771P 7244
+3.13866619558426,3.13866619558426,3.13866619558426, 4771P 7245
+4.18687286725483,4.18687286725483,5.2350795389254, 4771P 7246
+5.2350795389254,6.28328621059597,6.28328621059597, 4771P 7247
+6.28328621059597,1.,1.,0.865773013439831,0.865773013439831,1., 4771P 7248
+1.,0.865773013439831,0.865773013439831,1.,1.,0.865773013439831, 4771P 7249
+0.865773013439831,1.,1.,60.6806188225967,-118.698656211056, 4771P 7250
+8.73625,60.6806188225967,-118.698656211056,7.118125, 4771P 7251
+60.679393790223,-117.889349843306,8.73625,60.679393790223, 4771P 7252
+-117.889349843306,7.118125,61.3800702057312,-117.484342610857, 4771P 7253
+8.73625,61.3800702057312,-117.484342610857,7.118125, 4771P 7254
+62.0807466212394,-117.079335378408,8.73625,62.0807466212394, 4771P 7255
+-117.079335378408,7.118125,62.7814230367476,-117.484342610857, 4771P 7256
+8.73625,62.7814230367476,-117.484342610857,7.118125, 4771P 7257
+63.4820994522559,-117.889349843306,8.73625,63.4820994522559, 4771P 7258
+-117.889349843306,7.118125,63.4808744198821,-118.698656211056, 4771P 7259
+8.73625,63.4808744198821,-118.698656211056,7.118125, 4771P 7260
+-1.14300941237118D-16,1.07865694595434,3.13866619558426, 4771P 7261
+6.28328621059597; 4771P 7262
+128,1,6,1,2,0,0,0,0,0,-1.14300941237119D-16, 4773P 7263
+-1.14300941237119D-16,1.07865694595435,1.07865694595435, 4773P 7264
+3.13866619559326,3.13866619559326,3.13866619559326, 4773P 7265
+4.18687286725781,4.18687286725781,5.23507953892236, 4773P 7266
+5.23507953892236,6.28328621058691,6.28328621058691, 4773P 7267
+6.28328621058691,1.,1.,0.865773013441338,0.865773013441338,1., 4773P 7268
+1.,0.865773013441338,0.865773013441338,1.,1.,0.865773013441338, 4773P 7269
+0.865773013441338,1.,1.,63.4808744198821,-118.698656211056, 4773P 7270
+8.73625,63.4808744198821,-118.698656211056,7.118125, 4773P 7271
+63.4820994522485,-119.507962578801,8.73625,63.4820994522485, 4773P 7272
+-119.507962578801,7.118125,62.781423036744,-119.912969811245, 4773P 7273
+8.73625,62.781423036744,-119.912969811245,7.118125, 4773P 7274
+62.0807466212394,-120.317977043689,8.73625,62.0807466212394, 4773P 7275
+-120.317977043689,7.118125,61.3800702057349,-119.912969811245, 4773P 7276
+8.73625,61.3800702057349,-119.912969811245,7.118125, 4773P 7277
+60.6793937902303,-119.507962578801,8.73625,60.6793937902303, 4773P 7278
+-119.507962578801,7.118125,60.6806188225967,-118.698656211056, 4773P 7279
+8.73625,60.6806188225967,-118.698656211056,7.118125, 4773P 7280
+-1.14300941237119D-16,1.07865694595435,3.13866619559326, 4773P 7281
+6.28328621058691; 4773P 7282
+128,1,6,1,2,0,0,0,0,0,-1.14300985890877D-16, 4775P 7283
+-1.14300985890877D-16,1.078657337397,1.078657337397, 4775P 7284
+3.13925814733601,3.13925814733601,3.13925814733601, 4775P 7285
+4.18726069831867,4.18726069831867,5.23526324930132, 4775P 7286
+5.23526324930132,6.28326580028397,6.28326580028397, 4775P 7287
+6.28326580028397,1.,1.,0.865824083692633,0.865824083692633,1., 4775P 7288
+1.,0.865824083692633,0.865824083692633,1.,1.,0.865824083692633, 4775P 7289
+0.865824083692633,1.,1.,58.1075511659013,-62.1212017504367, 4775P 7290
+8.73625,58.1075511659013,-62.1212017504367,7.118125, 4775P 7291
+58.1065741584055,-61.3120859901078,8.73625,58.1065741584055, 4775P 7292
+-61.3120859901078,7.118125,58.8071265809156,-60.9072458099485, 4775P 7293
+8.73625,58.8071265809156,-60.9072458099485,7.118125, 4775P 7294
+59.5076790034257,-60.5024056297891,8.73625,59.5076790034257, 4775P 7295
+-60.5024056297891,7.118125,60.2082314259358,-60.9072458099485, 4775P 7296
+8.73625,60.2082314259358,-60.9072458099485,7.118125, 4775P 7297
+60.9087838484459,-61.3120859901078,8.73625,60.9087838484459, 4775P 7298
+-61.3120859901078,7.118125,60.9078068409501,-62.1212017504367, 4775P 7299
+8.73625,60.9078068409501,-62.1212017504367,7.118125, 4775P 7300
+-1.14300985890877D-16,1.078657337397,3.13925814733601, 4775P 7301
+6.28326580028397; 4775P 7302
+128,1,6,1,2,0,0,0,0,0,-1.14300985890879D-16, 4777P 7303
+-1.14300985890879D-16,1.07865733739701,1.07865733739701, 4777P 7304
+3.13925814734738,3.13925814734738,3.13925814734738, 4777P 7305
+4.18726069832246,4.18726069832246,5.23526324929753, 4777P 7306
+5.23526324929753,6.2832658002726,6.2832658002726, 4777P 7307
+6.2832658002726,1.,1.,0.865824083694529,0.865824083694529,1.,1., 4777P 7308
+0.865824083694529,0.865824083694529,1.,1.,0.865824083694529, 4777P 7309
+0.865824083694529,1.,1.,60.9078068409501,-62.1212017504367, 4777P 7310
+8.73625,60.9078068409501,-62.1212017504367,7.118125, 4777P 7311
+60.9087838484367,-62.9303175107585,8.73625,60.9087838484367, 4777P 7312
+-62.9303175107585,7.118125,60.2082314259312,-63.3351576909116, 4777P 7313
+8.73625,60.2082314259312,-63.3351576909116,7.118125, 4777P 7314
+59.5076790034257,-63.7399978710648,8.73625,59.5076790034257, 4777P 7315
+-63.7399978710648,7.118125,58.8071265809202,-63.3351576909116, 4777P 7316
+8.73625,58.8071265809202,-63.3351576909116,7.118125, 4777P 7317
+58.1065741584147,-62.9303175107585,8.73625,58.1065741584147, 4777P 7318
+-62.9303175107585,7.118125,58.1075511659013,-62.1212017504367, 4777P 7319
+8.73625,58.1075511659013,-62.1212017504367,7.118125, 4777P 7320
+-1.14300985890879D-16,1.07865733739701,3.13925814734738, 4777P 7321
+6.2832658002726; 4777P 7322
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4779P 7323
+1.29891011810403,1.29891011810403,-0.00100000000000011, 4779P 7324
+-0.00100000000000011,0.151,0.151,1.,1.,1.,1.,154.818861794198, 4779P 7325
+-121.223878110647,8.74703749999999,140.796081395161, 4779P 7326
+-121.223895558101,8.74703749999999,154.818861794198, 4779P 7327
+-121.223878110647,7.10733749999999,140.796081395161, 4779P 7328
+-121.223895558101,7.10733749999999,-0.00100000000000002, 4779P 7329
+1.29891011810403,-0.00100000000000011,0.151; 4779P 7330
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4781P 7331
+0.0564439671834306,0.0564439671834306,-0.001,-0.001,0.151,0.151, 4781P 7332
+1.,1.,1.,1.,154.808074294198,-121.832767420061,8.74703749999999, 4781P 7333
+154.808074294198,-121.213090624069,8.74703749999999, 4781P 7334
+154.808074294198,-121.832767420061,7.10733749999999, 4781P 7335
+154.808074294198,-121.213090624069,7.10733749999999, 4781P 7336
+-0.00100000000000178,0.0564439671834306,-0.001,0.151; 4781P 7337
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4783P 7338
+0.0750926997042853,0.0750926997042853,-0.001,-0.001,0.151,0.151, 4783P 7339
+1.,1.,1.,1.,155.618136792065,-121.82199757579,8.74703749999999, 4783P 7340
+154.7972867942,-121.821979684942,8.74703749999999, 4783P 7341
+155.618136792065,-121.82199757579,7.10733749999999, 4783P 7342
+154.7972867942,-121.821979684942,7.10733749999999, 4783P 7343
+-0.00100000000000002,0.0750926997042853,-0.001,0.151; 4783P 7344
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4785P 7345
+1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4785P 7346
+155.607349292068,-134.634981929548,8.74703749999999, 4785P 7347
+155.607349292068,-121.81120984067,8.74703749999999, 4785P 7348
+155.607349292068,-134.634981929548,7.10733749999999, 4785P 7349
+155.607349292068,-121.81120984067,7.10733749999999,-0.001, 4785P 7350
+1.1877621866862,-0.001,0.151; 4785P 7351
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4787P 7352
+0.0750926997042836,0.0750926997042836,-0.00100000000000001, 4787P 7353
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,154.7972867942, 4787P 7354
+-134.624176773819,8.74703749999999,155.618136792065, 4787P 7355
+-134.624194664667,8.74703749999999,154.7972867942, 4787P 7356
+-134.624176773819,7.10733749999999,155.618136792065, 4787P 7357
+-134.624194664667,7.10733749999999,-0.00100000000000178, 4787P 7358
+0.0750926997042836,-0.00100000000000001,0.151; 4787P 7359
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.056571543375649, 4789P 7360
+0.056571543375649,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4789P 7361
+154.808074294198,-135.234442533103,8.74703749999999, 4789P 7362
+154.808074294198,-134.613389508938,8.74703749999999, 4789P 7363
+154.808074294198,-135.234442533103,7.10733749999999, 4789P 7364
+154.808074294198,-134.613389508938,7.10733749999999,-0.001, 4789P 7365
+0.056571543375649,-0.001,0.151; 4789P 7366
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.2989097143809, 4791P 7367
+1.2989097143809,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4791P 7368
+140.796085750314,-135.223655033103,8.74703749999999, 4791P 7369
+154.818861794198,-135.223655033103,8.74703749999999, 4791P 7370
+140.796085750314,-135.223655033103,7.10733749999999, 4791P 7371
+154.818861794198,-135.223655033103,7.10733749999999,-0.001, 4791P 7372
+1.2989097143809,-0.001,0.151; 4791P 7373
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565715433771185, 4793P 7374
+0.0565715433771185,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4793P 7375
+140.806868816791,-134.613389508938,8.74703749999999, 4793P 7376
+140.806873328684,-135.234442533103,8.74703749999999, 4793P 7377
+140.806868816791,-134.613389508938,7.10733749999999, 4793P 7378
+140.806873328684,-135.234442533103,7.10733749999999,-0.001, 4793P 7379
+0.0565715433771185,-0.001,0.151; 4793P 7380
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750874512990324, 4795P 7381
+0.0750874512990324,-0.00100000000000011,-0.00100000000000011, 4795P 7382
+0.151,0.151,1.,1.,1.,1.,139.996863014273,-134.624177008938, 4795P 7383
+8.74703749999999,140.817656395161,-134.624177008938, 4795P 7384
+8.74703749999999,139.996863014273,-134.624177008938, 4795P 7385
+7.10733749999999,140.817656395161,-134.624177008938, 4795P 7386
+7.10733749999999,-0.001,0.0750874512990324,-0.00100000000000011, 4795P 7387
+0.151; 4795P 7388
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18776218668627, 4797P 7389
+1.18776218668627,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4797P 7390
+140.007654873095,-121.811192420061,8.74703749999999, 4797P 7391
+140.007650510603,-134.634964508938,8.74703749999999, 4797P 7392
+140.007654873095,-121.811192420061,7.10733749999999, 4797P 7393
+140.007650510603,-134.634964508938,7.10733749999999,-0.001, 4797P 7394
+1.18776218668627,-0.001,0.151; 4797P 7395
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4799P 7396
+0.075087451316632,0.075087451316632,-0.001,-0.001,0.151,0.151, 4799P 7397
+1.,1.,1.,1.,140.817660750311,-121.821997575806,8.74703749999999, 4799P 7398
+139.996867369428,-121.821979684925,8.74703749999999, 4799P 7399
+140.817660750311,-121.821997575806,7.10733749999999, 4799P 7400
+139.996867369428,-121.821979684925,7.10733749999999, 4799P 7401
+-0.00100000000000002,0.075087451316632,-0.001,0.151; 4799P 7402
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0564439671849002, 4801P 7403
+0.0564439671849002,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4801P 7404
+140.806868816611,-121.21310804468,8.74703749999999, 4801P 7405
+140.806873328864,-121.83278484067,8.74703749999999, 4801P 7406
+140.806868816611,-121.21310804468,7.10733749999999, 4801P 7407
+140.806873328864,-121.83278484067,7.10733749999999,-0.001, 4801P 7408
+0.0564439671849002,-0.001,0.151; 4801P 7409
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4803P 7410
+1.29888872083129,1.29888872083129,-0.00100000000000009, 4803P 7411
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,135.768458142722, 4803P 7412
+-121.223878110647,8.74703749999999,121.745908566765, 4803P 7413
+-121.223895558102,8.74703749999999,135.768458142722, 4803P 7414
+-121.223878110647,7.10733749999999,121.745908566765, 4803P 7415
+-121.223895558102,7.10733749999999,-0.00100000000000002, 4803P 7416
+1.29888872083129,-0.00100000000000009,0.151; 4803P 7417
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4805P 7418
+0.0564439671834306,0.0564439671834306,-0.001,-0.001,0.151,0.151, 4805P 7419
+1.,1.,1.,1.,135.757670642722,-121.832767420061,8.74703749999999, 4805P 7420
+135.757670642722,-121.213090624069,8.74703749999999, 4805P 7421
+135.757670642722,-121.832767420061,7.10733749999999, 4805P 7422
+135.757670642722,-121.213090624069,7.10733749999999, 4805P 7423
+-0.00100000000000178,0.0564439671834306,-0.001,0.151; 4805P 7424
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4807P 7425
+0.0750967369255578,0.0750967369255578,-0.001,-0.001,0.151,0.151, 4807P 7426
+1.,1.,1.,1.,136.567776692114,-121.821997575777,8.74703749999999, 4807P 7427
+135.746883142724,-121.821979684954,8.74703749999999, 4807P 7428
+136.567776692114,-121.821997575777,7.10733749999999, 4807P 7429
+135.746883142724,-121.821979684954,7.10733749999999, 4807P 7430
+-0.00100000000000002,0.0750967369255578,-0.001,0.151; 4807P 7431
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4809P 7432
+1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4809P 7433
+136.556989192117,-134.634981929548,8.74703749999999, 4809P 7434
+136.556989192117,-121.81120984067,8.74703749999999, 4809P 7435
+136.556989192117,-134.634981929548,7.10733749999999, 4809P 7436
+136.556989192117,-121.81120984067,7.10733749999999,-0.001, 4809P 7437
+1.1877621866862,-0.001,0.151; 4809P 7438
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750967369255578, 4811P 7439
+0.0750967369255578,-0.00100000000000001,-0.00100000000000001, 4811P 7440
+0.151,0.151,1.,1.,1.,1.,135.746883142724,-134.624176773832, 4811P 7441
+8.74703749999999,136.567776692114,-134.624194664654, 4811P 7442
+8.74703749999999,135.746883142724,-134.624176773832, 4811P 7443
+7.10733749999999,136.567776692114,-134.624194664654, 4811P 7444
+7.10733749999999,-0.001,0.0750967369255578,-0.00100000000000001, 4811P 7445
+0.151; 4811P 7446
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.056571543375649, 4813P 7447
+0.056571543375649,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4813P 7448
+135.757670642722,-135.234442533103,8.74703749999999, 4813P 7449
+135.757670642722,-134.613389508938,8.74703749999999, 4813P 7450
+135.757670642722,-135.234442533103,7.10733749999999, 4813P 7451
+135.757670642722,-134.613389508938,7.10733749999999,-0.001, 4813P 7452
+0.056571543375649,-0.001,0.151; 4813P 7453
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888872083028, 4815P 7454
+1.29888872083028,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4815P 7455
+121.745908566765,-135.223655033103,8.74703749999999, 4815P 7456
+135.768458142722,-135.223655033103,8.74703749999999, 4815P 7457
+121.745908566765,-135.223655033103,7.10733749999999, 4815P 7458
+135.768458142722,-135.223655033103,7.10733749999999,-0.001, 4815P 7459
+1.29888872083028,-0.001,0.151; 4815P 7460
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565715433756525, 4817P 7461
+0.0565715433756525,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4817P 7462
+121.756696066765,-134.613389508938,8.74703749999999, 4817P 7463
+121.756696066765,-135.234442533103,8.74703749999999, 4817P 7464
+121.756696066765,-134.613389508938,7.10733749999999, 4817P 7465
+121.756696066765,-135.234442533103,7.10733749999999,-0.001, 4817P 7466
+0.0565715433756525,-0.001,0.151; 4817P 7467
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056187947589, 4819P 7468
+0.0751056187947589,-0.00100000000000001,-0.00100000000000001, 4819P 7469
+0.151,0.151,1.,1.,1.,1.,120.946494204017,-134.624177008938, 4819P 7470
+8.74703749999999,121.767483566765,-134.624177008938, 4819P 7471
+8.74703749999999,120.946494204017,-134.624177008938, 4819P 7472
+7.10733749999999,121.767483566765,-134.624177008938, 4819P 7473
+7.10733749999999,-0.001,0.0751056187947589,-0.00100000000000001, 4819P 7474
+0.151; 4819P 7475
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4821P 7476
+1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4821P 7477
+120.957281704017,-121.811192420061,8.74703749999999, 4821P 7478
+120.957281704017,-134.634964508938,8.74703749999999, 4821P 7479
+120.957281704017,-121.811192420061,7.10733749999999, 4821P 7480
+120.957281704017,-134.634964508938,7.10733749999999,-0.001, 4821P 7481
+1.1877621866862,-0.001,0.151; 4821P 7482
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4823P 7483
+0.0751056188123538,0.0751056188123538,-0.001,-0.001,0.151,0.151, 4823P 7484
+1.,1.,1.,1.,121.767483566763,-121.821997575749,8.74703749999999, 4823P 7485
+120.946494204019,-121.821979684983,8.74703749999999, 4823P 7486
+121.767483566763,-121.821997575749,7.10733749999999, 4823P 7487
+120.946494204019,-121.821979684983,7.10733749999999, 4823P 7488
+-0.00100000000000002,0.0751056188123538,-0.001,0.151; 4823P 7489
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0564439671834303, 4825P 7490
+0.0564439671834303,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4825P 7491
+121.756696066765,-121.213108044679,8.74703749999999, 4825P 7492
+121.756696066765,-121.83278484067,8.74703749999999, 4825P 7493
+121.756696066765,-121.213108044679,7.10733749999999, 4825P 7494
+121.756696066765,-121.83278484067,7.10733749999999,-0.001, 4825P 7495
+0.0564439671834303,-0.001,0.151; 4825P 7496
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4827P 7497
+1.29888831710916,1.29888831710916,-0.00100000000000009, 4827P 7498
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,116.718084977313, 4827P 7499
+-121.223878110647,8.74703749999999,102.695539756509, 4827P 7500
+-121.223895558102,8.7470375,116.718084977313,-121.223878110647, 4827P 7501
+7.10733749999999,102.695539756509,-121.223895558102, 4827P 7502
+7.10733749999999,-0.00100000000000002,1.29888831710916, 4827P 7503
+-0.00100000000000009,0.151; 4827P 7504
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4829P 7505
+0.0564439671834306,0.0564439671834306,-0.001,-0.001,0.151,0.151, 4829P 7506
+1.,1.,1.,1.,116.707297477313,-121.832767420061,8.74703749999999, 4829P 7507
+116.707297477313,-121.213090624069,8.74703749999999, 4829P 7508
+116.707297477313,-121.832767420061,7.10733749999999, 4829P 7509
+116.707297477313,-121.213090624069,7.10733749999999, 4829P 7510
+-0.00100000000000178,0.0564439671834306,-0.001,0.151; 4829P 7511
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4831P 7512
+0.0751056188123572,0.0751056188123572,-0.001,-0.001,0.151,0.151, 4831P 7513
+1.,1.,1.,1.,117.517499340059,-121.821997575749,8.74703749999999, 4831P 7514
+116.696509977316,-121.821979684983,8.74703749999999, 4831P 7515
+117.517499340059,-121.821997575749,7.10733749999999, 4831P 7516
+116.696509977316,-121.821979684983,7.10733749999999, 4831P 7517
+-0.00100000000000002,0.0751056188123572,-0.001,0.151; 4831P 7518
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18776218668648, 4833P 7519
+1.18776218668648,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4833P 7520
+117.506720557706,-134.634981929548,8.74703749999999, 4833P 7521
+117.506711832722,-121.81120984067,8.74703749999999, 4833P 7522
+117.506720557706,-134.634981929548,7.10733749999999, 4833P 7523
+117.506711832722,-121.81120984067,7.10733749999999,-0.001, 4833P 7524
+1.18776218668648,-0.001,0.151; 4833P 7525
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056188123538, 4835P 7526
+0.0751056188123538,-0.00100000000000001,-0.00100000000000001, 4835P 7527
+0.151,0.151,1.,1.,1.,1.,116.696518687621,-134.62417677386, 4835P 7528
+8.74703749999999,117.517508050364,-134.624194664626, 4835P 7529
+8.74703749999999,116.696518687621,-134.62417677386, 4835P 7530
+7.10733749999999,117.517508050364,-134.624194664626, 4835P 7531
+7.10733749999999,-0.001,0.0751056188123538,-0.00100000000000001, 4835P 7532
+0.151; 4835P 7533
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565715433815147, 4837P 7534
+0.0565715433815147,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4837P 7535
+116.707297320573,-135.234442533102,8.74703749999999, 4837P 7536
+116.707306344358,-134.613389508939,8.74703749999999, 4837P 7537
+116.707297320573,-135.234442533102,7.10733749999999, 4837P 7538
+116.707306344358,-134.613389508939,7.10733749999999,-0.001, 4837P 7539
+0.0565715433815147,-0.001,0.151; 4837P 7540
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710816, 4839P 7541
+1.29888831710816,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4839P 7542
+102.695539756509,-135.223655033103,8.7470375,116.718084977313, 4839P 7543
+-135.223655033103,8.74703749999999,102.695539756509, 4839P 7544
+-135.223655033103,7.10733749999999,116.718084977313, 4839P 7545
+-135.223655033103,7.10733749999999,-0.001,1.29888831710816, 4839P 7546
+-0.001,0.151; 4839P 7547
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565715433756525, 4841P 7548
+0.0565715433756525,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4841P 7549
+102.706327256509,-134.613389508938,8.7470375,102.706327256509, 4841P 7550
+-135.234442533103,8.7470375,102.706327256509,-134.613389508938, 4841P 7551
+7.10733749999999,102.706327256509,-135.234442533103, 4841P 7552
+7.10733749999999,-0.001,0.0565715433756525,-0.001,0.151; 4841P 7553
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4843P 7554
+0.0751056187947571,0.0751056187947571,-0.00100000000000001, 4843P 7555
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,101.89612539376, 4843P 7556
+-134.624177008938,8.7470375,102.717114756509,-134.624177008938, 4843P 7557
+8.7470375,101.89612539376,-134.624177008938,7.10733749999999, 4843P 7558
+102.717114756509,-134.624177008938,7.10733749999999, 4843P 7559
+-0.00100000000000178,0.0751056187947571,-0.00100000000000001, 4843P 7560
+0.151; 4843P 7561
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4845P 7562
+1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4845P 7563
+101.90691289376,-121.811192420061,8.7470375,101.90691289376, 4845P 7564
+-134.634964508938,8.7470375,101.90691289376,-121.811192420061, 4845P 7565
+7.10733749999999,101.90691289376,-134.634964508938, 4845P 7566
+7.10733749999999,-0.001,1.1877621866862,-0.001,0.151; 4845P 7567
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4847P 7568
+0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 4847P 7569
+1.,1.,1.,1.,102.717114756506,-121.821997575749,8.7470375, 4847P 7570
+101.896125393763,-121.821979684983,8.7470375,102.717114756506, 4847P 7571
+-121.821997575749,7.10733749999999,101.896125393763, 4847P 7572
+-121.821979684983,7.10733749999999,-0.00100000000000178, 4847P 7573
+0.0751056188123521,-0.001,0.151; 4847P 7574
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0564439671834303, 4849P 7575
+0.0564439671834303,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4849P 7576
+102.706327256509,-121.213108044679,8.7470375,102.706327256509, 4849P 7577
+-121.83278484067,8.7470375,102.706327256509,-121.213108044679, 4849P 7578
+7.10733749999999,102.706327256509,-121.83278484067, 4849P 7579
+7.10733749999999,-0.001,0.0564439671834303,-0.001,0.151; 4849P 7580
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4851P 7581
+1.29888831710916,1.29888831710916,-0.00100000000000009, 4851P 7582
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,97.6677161670568, 4851P 7583
+-121.223878110647,8.7470375,83.6451709462526,-121.223895558102, 4851P 7584
+8.7470375,97.6677161670568,-121.223878110647,7.10733749999999, 4851P 7585
+83.6451709462526,-121.223895558102,7.1073375, 4851P 7586
+-0.00100000000000002,1.29888831710916,-0.00100000000000009, 4851P 7587
+0.151; 4851P 7588
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4853P 7589
+0.0564439671834306,0.0564439671834306,-0.001,-0.001,0.151,0.151, 4853P 7590
+1.,1.,1.,1.,97.6569286670568,-121.832767420061,8.7470375, 4853P 7591
+97.6569286670568,-121.213090624069,8.7470375,97.6569286670568, 4853P 7592
+-121.832767420061,7.10733749999999,97.6569286670568, 4853P 7593
+-121.213090624069,7.10733749999999,-0.00100000000000178, 4853P 7594
+0.0564439671834306,-0.001,0.151; 4853P 7595
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4855P 7596
+0.0751056188123537,0.0751056188123537,-0.001,-0.001,0.151,0.151, 4855P 7597
+1.,1.,1.,1.,98.4671305298027,-121.821997575749,8.7470375, 4855P 7598
+97.6461411670594,-121.821979684983,8.7470375,98.4671305298027, 4855P 7599
+-121.821997575749,7.10733749999999,97.6461411670594, 4855P 7600
+-121.821979684983,7.10733749999999,-0.00100000000000178, 4855P 7601
+0.0751056188123537,-0.001,0.151; 4855P 7602
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4857P 7603
+1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4857P 7604
+98.4563430298053,-134.634981929548,8.7470375,98.4563430298053, 4857P 7605
+-121.81120984067,8.7470375,98.4563430298053,-134.634981929548, 4857P 7606
+7.10733749999999,98.4563430298053,-121.81120984067, 4857P 7607
+7.10733749999999,-0.001,1.1877621866862,-0.001,0.151; 4857P 7608
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4859P 7609
+0.0751056188123537,0.0751056188123537,-0.00100000000000001, 4859P 7610
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,97.6461411670594, 4859P 7611
+-134.62417677386,8.7470375,98.4671305298027,-134.624194664626, 4859P 7612
+8.7470375,97.6461411670594,-134.62417677386,7.10733749999999, 4859P 7613
+98.4671305298027,-134.624194664626,7.10733749999999, 4859P 7614
+-0.00100000000000178,0.0751056188123537,-0.00100000000000001, 4859P 7615
+0.151; 4859P 7616
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.056571543375649, 4861P 7617
+0.056571543375649,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4861P 7618
+97.6569286670568,-135.234442533103,8.7470375,97.6569286670568, 4861P 7619
+-134.613389508938,8.7470375,97.6569286670568,-135.234442533103, 4861P 7620
+7.10733749999999,97.6569286670568,-134.613389508938, 4861P 7621
+7.10733749999999,-0.001,0.056571543375649,-0.001,0.151; 4861P 7622
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888912455241, 4863P 7623
+1.29888912455241,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4863P 7624
+83.6451622359477,-135.223655033103,8.7470375,97.6677161670568, 4863P 7625
+-135.223655033103,8.7470375,83.6451622359477,-135.223655033103, 4863P 7626
+7.1073375,97.6677161670569,-135.223655033103,7.1073375,-0.001, 4863P 7627
+1.29888912455241,-0.001,0.151; 4863P 7628
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.056571543381518, 4865P 7629
+0.056571543381518,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4865P 7630
+83.655958602993,-134.613389508939,8.7470375,83.6559495792073, 4865P 7631
+-135.234442533102,8.7470375,83.655958602993,-134.613389508939, 4865P 7632
+7.1073375,83.6559495792073,-135.234442533102,7.1073375,-0.001, 4865P 7633
+0.056571543381518,-0.001,0.151; 4865P 7634
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000165,-0.00100000000000165, 4867P 7635
+0.0751056187947571,0.0751056187947571,-0.00100000000000001, 4867P 7636
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,82.8457565835041, 4867P 7637
+-134.624177008938,8.7470375,83.6667459462526,-134.624177008938, 4867P 7638
+8.7470375,82.8457565835041,-134.624177008938,7.1073375, 4867P 7639
+83.6667459462526,-134.624177008938,7.1073375, 4867P 7640
+-0.00100000000000165,0.0751056187947571,-0.00100000000000001, 4867P 7641
+0.151; 4867P 7642
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4869P 7643
+1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4869P 7644
+82.8565440835042,-121.811192420061,8.7470375,82.8565440835042, 4869P 7645
+-134.634964508938,8.7470375,82.8565440835042,-121.811192420061, 4869P 7646
+7.1073375,82.8565440835042,-134.634964508938,7.1073375,-0.001, 4869P 7647
+1.1877621866862,-0.001,0.151; 4869P 7648
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4871P 7649
+0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 4871P 7650
+1.,1.,1.,1.,83.66674594625,-121.821997575749,8.7470375, 4871P 7651
+82.8457565835067,-121.821979684983,8.7470375,83.66674594625, 4871P 7652
+-121.821997575749,7.1073375,82.8457565835067,-121.821979684983, 4871P 7653
+7.1073375,-0.00100000000000178,0.0751056188123521,-0.001,0.151; 4871P 7654
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0564439671834303, 4873P 7655
+0.0564439671834303,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4873P 7656
+83.6559584462526,-121.213108044679,8.7470375,83.6559584462526, 4873P 7657
+-121.83278484067,8.7470375,83.6559584462526,-121.213108044679, 4873P 7658
+7.1073375,83.6559584462526,-121.83278484067,7.1073375,-0.001, 4873P 7659
+0.0564439671834303,-0.001,0.151; 4873P 7660
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4875P 7661
+1.29888831710916,1.29888831710916,-0.00100000000000009, 4875P 7662
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,78.6173473568005, 4875P 7663
+-121.223878110647,8.7470375,64.5948021359963,-121.223895558102, 4875P 7664
+8.7470375,78.6173473568005,-121.223878110647,7.1073375, 4875P 7665
+64.5948021359963,-121.223895558102,7.1073375, 4875P 7666
+-0.00100000000000002,1.29888831710916,-0.00100000000000009, 4875P 7667
+0.151; 4875P 7668
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4877P 7669
+0.0564439671834306,0.0564439671834306,-0.001,-0.001,0.151,0.151, 4877P 7670
+1.,1.,1.,1.,78.6065598568005,-121.832767420061,8.7470375, 4877P 7671
+78.6065598568005,-121.213090624069,8.7470375,78.6065598568005, 4877P 7672
+-121.832767420061,7.1073375,78.6065598568005,-121.213090624069, 4877P 7673
+7.1073375,-0.00100000000000178,0.0564439671834306,-0.001,0.151; 4877P 7674
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 4879P 7675
+0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 4879P 7676
+1.,1.,1.,1.,79.4167617195464,-121.821997575749,8.7470375, 4879P 7677
+78.5957723568031,-121.821979684983,8.7470375,79.4167617195464, 4879P 7678
+-121.821997575749,7.1073375,78.5957723568031,-121.821979684983, 4879P 7679
+7.1073375,-0.00100000000000266,0.0751056188123521,-0.001,0.151; 4879P 7680
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4881P 7681
+1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4881P 7682
+79.4059742195489,-134.634981929548,8.7470375,79.4059742195489, 4881P 7683
+-121.81120984067,8.7470375,79.4059742195489,-134.634981929548, 4881P 7684
+7.1073375,79.4059742195489,-121.81120984067,7.1073375,-0.001, 4881P 7685
+1.1877621866862,-0.001,0.151; 4881P 7686
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 4883P 7687
+0.0751056188123522,0.0751056188123522,-0.00100000000000001, 4883P 7688
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,78.595772356803, 4883P 7689
+-134.62417677386,8.7470375,79.4167617195464,-134.624194664626, 4883P 7690
+8.7470375,78.595772356803,-134.62417677386,7.1073375, 4883P 7691
+79.4167617195464,-134.624194664626,7.1073375, 4883P 7692
+-0.00100000000000266,0.0751056188123522,-0.00100000000000001, 4883P 7693
+0.151; 4883P 7694
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.056571543375649, 4885P 7695
+0.056571543375649,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4885P 7696
+78.6065598568005,-135.234442533103,8.7470375,78.6065598568005, 4885P 7697
+-134.613389508938,8.7470375,78.6065598568005,-135.234442533103, 4885P 7698
+7.1073375,78.6065598568005,-134.613389508938,7.1073375,-0.001, 4885P 7699
+0.056571543375649,-0.001,0.151; 4885P 7700
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710816, 4887P 7701
+1.29888831710816,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4887P 7702
+64.5948021359963,-135.223655033103,8.7470375,78.6173473568005, 4887P 7703
+-135.223655033103,8.7470375,64.5948021359963,-135.223655033103, 4887P 7704
+7.1073375,78.6173473568005,-135.223655033103,7.1073375,-0.001, 4887P 7705
+1.29888831710816,-0.001,0.151; 4887P 7706
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565715433756525, 4889P 7707
+0.0565715433756525,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4889P 7708
+64.6055896359963,-134.613389508938,8.7470375,64.6055896359963, 4889P 7709
+-135.234442533103,8.7470375,64.6055896359963,-134.613389508938, 4889P 7710
+7.1073375,64.6055896359963,-135.234442533103,7.1073375,-0.001, 4889P 7711
+0.0565715433756525,-0.001,0.151; 4889P 7712
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000247,-0.00100000000000247, 4891P 7713
+0.0751056187947571,0.0751056187947571,-0.00100000000000001, 4891P 7714
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,63.7953877732478, 4891P 7715
+-134.624177008938,8.7470375,64.6163771359963,-134.624177008938, 4891P 7716
+8.7470375,63.7953877732478,-134.624177008938,7.1073375, 4891P 7717
+64.6163771359963,-134.624177008938,7.1073375, 4891P 7718
+-0.00100000000000247,0.0751056187947571,-0.00100000000000001, 4891P 7719
+0.151; 4891P 7720
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4893P 7721
+1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4893P 7722
+63.8061752732478,-121.811192420061,8.7470375,63.8061752732478, 4893P 7723
+-134.634964508938,8.7470375,63.8061752732478,-121.811192420061, 4893P 7724
+7.1073375,63.8061752732478,-134.634964508938,7.1073375,-0.001, 4893P 7725
+1.1877621866862,-0.001,0.151; 4893P 7726
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 4895P 7727
+0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 4895P 7728
+1.,1.,1.,1.,64.6163771359937,-121.821997575749,8.7470375, 4895P 7729
+63.7953877732504,-121.821979684983,8.7470375,64.6163771359937, 4895P 7730
+-121.821997575749,7.1073375,63.7953877732504,-121.821979684983, 4895P 7731
+7.1073375,-0.00100000000000266,0.0751056188123521,-0.001,0.151; 4895P 7732
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0564439671834303, 4897P 7733
+0.0564439671834303,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4897P 7734
+64.6055896359963,-121.213108044679,8.7470375,64.6055896359963, 4897P 7735
+-121.83278484067,8.7470375,64.6055896359963,-121.213108044679, 4897P 7736
+7.1073375,64.6055896359963,-121.83278484067,7.1073375,-0.001, 4897P 7737
+0.0564439671834303,-0.001,0.151; 4897P 7738
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4899P 7739
+1.29879546101989,1.29879546101989,-0.001,-0.001,0.151,0.151,1., 4899P 7740
+1.,1.,1.,59.5669785465442,-121.223878110646,8.7470375, 4899P 7741
+45.545435010803,-121.223895558102,8.7470375,59.5669785465442, 4899P 7742
+-121.223878110646,7.1073375,45.545435010803,-121.223895558102, 4899P 7743
+7.1073375,-0.00100000000000002,1.29879546101989,-0.001,0.151; 4899P 7744
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4901P 7745
+0.0564439671834306,0.0564439671834306,-0.001,-0.001,0.151,0.151, 4901P 7746
+1.,1.,1.,1.,59.5561910465442,-121.832767420061,8.7470375, 4901P 7747
+59.5561910465442,-121.213090624069,8.7470375,59.5561910465442, 4901P 7748
+-121.832767420061,7.1073375,59.5561910465442,-121.213090624069, 4901P 7749
+7.1073375,-0.00100000000000178,0.0564439671834306,-0.001,0.151; 4901P 7750
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 4903P 7751
+0.0751056188123521,0.0751056188123521,-0.00100000000000011, 4903P 7752
+-0.00100000000000011,0.151,0.151,1.,1.,1.,1.,60.3663929092901, 4903P 7753
+-121.821997575749,8.7470375,59.5454035465468,-121.821979684983, 4903P 7754
+8.7470375,60.3663929092901,-121.821997575749,7.1073375, 4903P 7755
+59.5454035465468,-121.821979684983,7.1073375, 4903P 7756
+-0.00100000000000266,0.0751056188123521,-0.00100000000000011, 4903P 7757
+0.151; 4903P 7758
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4905P 7759
+1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4905P 7760
+60.3556054092926,-134.634981929548,8.7470375,60.3556054092926, 4905P 7761
+-121.81120984067,8.7470375,60.3556054092926,-134.634981929548, 4905P 7762
+7.1073375,60.3556054092926,-121.81120984067,7.1073375,-0.001, 4905P 7763
+1.1877621866862,-0.001,0.151; 4905P 7764
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 4907P 7765
+0.0751056188123522,0.0751056188123522,-0.001,-0.001,0.151,0.151, 4907P 7766
+1.,1.,1.,1.,59.5454035465467,-134.62417677386,8.7470375, 4907P 7767
+60.3663929092901,-134.624194664626,8.7470375,59.5454035465467, 4907P 7768
+-134.62417677386,7.1073375,60.3663929092901,-134.624194664626, 4907P 7769
+7.1073375,-0.00100000000000266,0.0751056188123522,-0.001,0.151; 4907P 7770
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.056571543375649, 4909P 7771
+0.056571543375649,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4909P 7772
+59.5561910465442,-135.234442533103,8.7470375,59.5561910465442, 4909P 7773
+-134.613389508938,8.7470375,59.5561910465442,-135.234442533103, 4909P 7774
+7.1073375,59.5561910465442,-134.613389508938,7.1073375,-0.001, 4909P 7775
+0.056571543375649,-0.001,0.151; 4909P 7776
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29879546101888, 4911P 7777
+1.29879546101888,-0.00100000000000011,-0.00100000000000011, 4911P 7778
+0.151,0.151,1.,1.,1.,1.,45.545435010803,-135.223655033103, 4911P 7779
+8.7470375,59.5669785465442,-135.223655033103,8.7470375, 4911P 7780
+45.545435010803,-135.223655033103,7.1073375,59.5669785465442, 4911P 7781
+-135.223655033103,7.1073375,-0.001,1.29879546101888, 4911P 7782
+-0.00100000000000011,0.151; 4911P 7783
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565715433756525, 4913P 7784
+0.0565715433756525,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4913P 7785
+45.556222510803,-134.613389508938,8.7470375,45.556222510803, 4913P 7786
+-135.234442533103,8.7470375,45.556222510803,-134.613389508938, 4913P 7787
+7.1073375,45.556222510803,-135.234442533103,7.1073375,-0.001, 4913P 7788
+0.0565715433756525,-0.001,0.151; 4913P 7789
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751621398925796, 4915P 7790
+0.0751621398925796,-0.00100000000000001,-0.00100000000000001, 4915P 7791
+0.151,0.151,1.,1.,1.,1.,44.7454109267118,-134.624177008938, 4915P 7792
+8.7470375,45.567010010803,-134.624177008938,8.7470375, 4915P 7793
+44.7454109267118,-134.624177008938,7.1073375,45.567010010803, 4915P 7794
+-134.624177008938,7.1073375,-0.001,0.0751621398925796, 4915P 7795
+-0.00100000000000001,0.151; 4915P 7796
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4917P 7797
+1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4917P 7798
+44.7561984267118,-121.811192420061,8.7470375,44.7561984267118, 4917P 7799
+-134.634964508938,8.7470375,44.7561984267118,-121.811192420061, 4917P 7800
+7.1073375,44.7561984267118,-134.634964508938,7.1073375,-0.001, 4917P 7801
+1.1877621866862,-0.001,0.151; 4917P 7802
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4919P 7803
+0.0751621399101629,0.0751621399101629,-0.001,-0.001,0.151,0.151, 4919P 7804
+1.,1.,1.,1.,45.5670100108004,-121.821997575569,8.7470375, 4919P 7805
+44.7454109267143,-121.821979685162,8.7470375,45.5670100108004, 4919P 7806
+-121.821997575569,7.1073375,44.7454109267143,-121.821979685162, 4919P 7807
+7.1073375,-0.00100000000000002,0.0751621399101629,-0.001,0.151; 4919P 7808
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0564439671834303, 4921P 7809
+0.0564439671834303,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4921P 7810
+45.556222510803,-121.213108044679,8.7470375,45.556222510803, 4921P 7811
+-121.83278484067,8.7470375,45.556222510803,-121.213108044679, 4921P 7812
+7.1073375,45.556222510803,-121.83278484067,7.1073375,-0.001, 4921P 7813
+0.0564439671834303,-0.001,0.151; 4921P 7814
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4923P 7815
+1.29891011810403,1.29891011810403,-0.00100000000000011, 4923P 7816
+-0.00100000000000011,0.151,0.151,1.,1.,1.,1.,154.818861794198, 4923P 7817
+-102.173605113745,8.74703749999999,140.796081395161, 4923P 7818
+-102.173622561199,8.74703749999999,154.818861794198, 4923P 7819
+-102.173605113745,7.10733749999999,140.796081395161, 4923P 7820
+-102.173622561199,7.10733749999999,-0.00100000000000002, 4923P 7821
+1.29891011810403,-0.00100000000000011,0.151; 4923P 7822
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4925P 7823
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 4925P 7824
+1.,1.,1.,1.,154.808074294198,-102.783696445234,8.74703749999999, 4925P 7825
+154.808074294198,-102.162817627167,8.74703749999999, 4925P 7826
+154.808074294198,-102.783696445234,7.10733749999999, 4925P 7827
+154.808074294198,-102.162817627167,7.10733749999999, 4925P 7828
+-0.00100000000000178,0.0565553944905594,-0.001,0.151; 4925P 7829
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4927P 7830
+0.0750926997042859,0.0750926997042859,-0.001,-0.001,0.151,0.151, 4927P 7831
+1.,1.,1.,1.,155.618136792065,-102.772926600963,8.74703749999999, 4927P 7832
+154.7972867942,-102.772908710115,8.74703749999999, 4927P 7833
+155.618136792065,-102.772926600963,7.10733749999999, 4927P 7834
+154.7972867942,-102.772908710115,7.10733749999999, 4927P 7835
+-0.00100000000000002,0.0750926997042859,-0.001,0.151; 4927P 7836
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 4929P 7837
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4929P 7838
+155.607349292068,-115.584569567767,8.74703749999999, 4929P 7839
+155.607349292068,-102.762138865844,8.74703749999999, 4929P 7840
+155.607349292068,-115.584569567767,7.10733749999999, 4929P 7841
+155.607349292068,-102.762138865844,7.10733749999999,-0.001, 4929P 7842
+1.187637840271,-0.001,0.151; 4929P 7843
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4931P 7844
+0.0750926997042836,0.0750926997042836,-0.00100000000000001, 4931P 7845
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,154.7972867942, 4931P 7846
+-115.573764412038,8.74703749999999,155.618136792065, 4931P 7847
+-115.573782302886,8.74703749999999,154.7972867942, 4931P 7848
+-115.573764412038,7.10733749999999,155.618136792065, 4931P 7849
+-115.573782302886,7.10733749999999,-0.00100000000000178, 4931P 7850
+0.0750926997042836,-0.00100000000000001,0.151; 4931P 7851
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565747731526666, 4933P 7852
+0.0565747731526666,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4933P 7853
+154.808074294198,-116.184065012542,8.74703749999999, 4933P 7854
+154.808074294198,-115.562977147157,8.74703749999999, 4933P 7855
+154.808074294198,-116.184065012542,7.10733749999999, 4933P 7856
+154.808074294198,-115.562977147157,7.10733749999999,-0.001, 4933P 7857
+0.0565747731526666,-0.001,0.151; 4933P 7858
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.2989097143809, 4935P 7859
+1.2989097143809,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4935P 7860
+140.796085750314,-116.173277512542,8.74703749999999, 4935P 7861
+154.818861794198,-116.173277512542,8.74703749999999, 4935P 7862
+140.796085750314,-116.173277512542,7.10733749999999, 4935P 7863
+154.818861794198,-116.173277512542,7.10733749999999,-0.001, 4935P 7864
+1.2989097143809,-0.001,0.151; 4935P 7865
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4937P 7866
+0.0565747731541363,0.0565747731541363,-0.001,-0.001,0.151,0.151, 4937P 7867
+1.,1.,1.,1.,140.806868816796,-115.562977147158,8.74703749999999, 4937P 7868
+140.80687332868,-116.184065012541,8.74703749999999, 4937P 7869
+140.806868816796,-115.562977147158,7.10733749999999, 4937P 7870
+140.80687332868,-116.184065012541,7.10733749999999, 4937P 7871
+-0.00100000000000178,0.0565747731541363,-0.001,0.151; 4937P 7872
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750874512990324, 4939P 7873
+0.0750874512990324,-0.00100000000000011,-0.00100000000000011, 4939P 7874
+0.151,0.151,1.,1.,1.,1.,139.996863014273,-115.573764647157, 4939P 7875
+8.74703749999999,140.817656395161,-115.573764647157, 4939P 7876
+8.74703749999999,139.996863014273,-115.573764647157, 4939P 7877
+7.10733749999999,140.817656395161,-115.573764647157, 4939P 7878
+7.10733749999999,-0.001,0.0750874512990324,-0.00100000000000011, 4939P 7879
+0.151; 4939P 7880
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18763784027106, 4941P 7881
+1.18763784027106,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4941P 7882
+140.007654873096,-102.762121445234,8.74703749999999, 4941P 7883
+140.007650510603,-115.584552147157,8.74703749999999, 4941P 7884
+140.007654873096,-102.762121445234,7.10733749999999, 4941P 7885
+140.007650510603,-115.584552147157,7.10733749999999,-0.001, 4941P 7886
+1.18763784027106,-0.001,0.151; 4941P 7887
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4943P 7888
+0.075087451316632,0.075087451316632,-0.001,-0.001,0.151,0.151, 4943P 7889
+1.,1.,1.,1.,140.817660750311,-102.772926600979,8.74703749999999, 4943P 7890
+139.996867369428,-102.772908710098,8.74703749999999, 4943P 7891
+140.817660750311,-102.772926600979,7.10733749999999, 4943P 7892
+139.996867369428,-102.772908710098,7.10733749999999, 4943P 7893
+-0.00100000000000002,0.075087451316632,-0.001,0.151; 4943P 7894
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944920294, 4945P 7895
+0.0565553944920294,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4945P 7896
+140.806868816768,-102.162835047777,8.74703749999999, 4945P 7897
+140.806873328707,-102.783713865843,8.74703749999999, 4945P 7898
+140.806868816768,-102.162835047777,7.10733749999999, 4945P 7899
+140.806873328707,-102.783713865843,7.10733749999999,-0.001, 4945P 7900
+0.0565553944920294,-0.001,0.151; 4945P 7901
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4947P 7902
+1.29888872083129,1.29888872083129,-0.00100000000000009, 4947P 7903
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,135.768458142722, 4947P 7904
+-102.173605113745,8.74703749999999,121.745908566765, 4947P 7905
+-102.173622561199,8.74703749999999,135.768458142722, 4947P 7906
+-102.173605113745,7.10733749999999,121.745908566765, 4947P 7907
+-102.173622561199,7.10733749999999,-0.00100000000000002, 4947P 7908
+1.29888872083129,-0.00100000000000009,0.151; 4947P 7909
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.069153139750164, 4949P 7910
+0.069153139750164,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4949P 7911
+135.757670642722,-102.919594622222,8.74703749999999, 4949P 7912
+135.757670642722,-102.162817627167,8.74703749999999, 4949P 7913
+135.757670642722,-102.919594622222,7.10733749999999, 4949P 7914
+135.757670642722,-102.162817627167,7.10733749999999,-0.001, 4949P 7915
+0.069153139750164,-0.001,0.151; 4949P 7916
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4951P 7917
+0.0750967369079582,0.0750967369079582,-0.001,-0.001,0.151,0.151, 4951P 7918
+1.,1.,1.,1.,136.567776692117,-102.908807122222,8.74703749999999, 4951P 7919
+135.746883142722,-102.908807122222,8.74703749999999, 4951P 7920
+136.567776692117,-102.908807122222,7.10733749999999, 4951P 7921
+135.746883142722,-102.908807122222,7.10733749999999, 4951P 7922
+-0.00100000000000002,0.0750967369079582,-0.001,0.151; 4951P 7923
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 4953P 7924
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4953P 7925
+136.556989192117,-115.720450324145,8.74703749999999, 4953P 7926
+136.556989192117,-102.898019622222,8.74703749999999, 4953P 7927
+136.556989192117,-115.720450324145,7.10733749999999, 4953P 7928
+136.556989192117,-102.898019622222,7.10733749999999,-0.001, 4953P 7929
+1.187637840271,-0.001,0.151; 4953P 7930
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750967369079582, 4955P 7931
+0.0750967369079582,-0.00100000000000001,-0.00100000000000001, 4955P 7932
+0.151,0.151,1.,1.,1.,1.,135.746883142722,-115.709662824145, 4955P 7933
+8.74703749999999,136.567776692117,-115.709662824145, 4955P 7934
+8.74703749999999,135.746883142722,-115.709662824145, 4955P 7935
+7.10733749999999,136.567776692117,-115.709662824145, 4955P 7936
+7.10733749999999,-0.001,0.0750967369079582,-0.00100000000000001, 4955P 7937
+0.151; 4955P 7938
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0441191380818669, 4957P 7939
+0.0441191380818669,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4957P 7940
+135.757670642722,-116.185598026203,8.74703749999999, 4957P 7941
+135.757670642722,-115.698875324145,8.74703749999999, 4957P 7942
+135.757670642722,-116.185598026203,7.10733749999999, 4957P 7943
+135.757670642722,-115.698875324145,7.10733749999999,-0.001, 4957P 7944
+0.0441191380818669,-0.001,0.151; 4957P 7945
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888872083028, 4959P 7946
+1.29888872083028,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4959P 7947
+121.745908566765,-116.174810526203,8.74703749999999, 4959P 7948
+135.768458142722,-116.174810526203,8.74703749999999, 4959P 7949
+121.745908566765,-116.174810526203,7.10733749999999, 4959P 7950
+135.768458142722,-116.174810526203,7.10733749999999,-0.001, 4959P 7951
+1.29888872083028,-0.001,0.151; 4959P 7952
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4961P 7953
+0.0565747731526699,0.0565747731526699,-0.001,-0.001,0.151,0.151, 4961P 7954
+1.,1.,1.,1.,121.756696066765,-115.564510160819,8.74703749999999, 4961P 7955
+121.756696066765,-116.185598026203,8.74703749999999, 4961P 7956
+121.756696066765,-115.564510160819,7.10733749999999, 4961P 7957
+121.756696066765,-116.185598026203,7.10733749999999, 4961P 7958
+-0.00100000000000178,0.0565747731526699,-0.001,0.151; 4961P 7959
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056187947582, 4963P 7960
+0.0751056187947582,-0.00100000000000001,-0.00100000000000001, 4963P 7961
+0.151,0.151,1.,1.,1.,1.,120.946494204017,-115.575297660819, 4963P 7962
+8.74703749999999,121.767483566765,-115.575297660819, 4963P 7963
+8.74703749999999,120.946494204017,-115.575297660819, 4963P 7964
+7.10733749999999,121.767483566765,-115.575297660819, 4963P 7965
+7.10733749999999,-0.001,0.0751056187947582,-0.00100000000000001, 4963P 7966
+0.151; 4963P 7967
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877799504598, 4965P 7968
+1.1877799504598,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4965P 7969
+120.957281704017,-102.762121445234,8.74703749999999, 4965P 7970
+120.957281704017,-115.586085160819,8.74703749999999, 4965P 7971
+120.957281704017,-102.762121445234,7.10733749999999, 4965P 7972
+120.957281704017,-115.586085160819,7.10733749999999,-0.001, 4965P 7973
+1.1877799504598,-0.001,0.151; 4965P 7974
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4967P 7975
+0.0751056188123538,0.0751056188123538,-0.001,-0.001,0.151,0.151, 4967P 7976
+1.,1.,1.,1.,121.767483566763,-102.772926600922,8.74703749999999, 4967P 7977
+120.946494204019,-102.772908710156,8.74703749999999, 4967P 7978
+121.767483566763,-102.772926600922,7.10733749999999, 4967P 7979
+120.946494204019,-102.772908710156,7.10733749999999, 4967P 7980
+-0.00100000000000002,0.0751056188123538,-0.001,0.151; 4967P 7981
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905629, 4969P 7982
+0.0565553944905629,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4969P 7983
+121.756696066765,-102.162835047777,8.74703749999999, 4969P 7984
+121.756696066765,-102.783713865844,8.74703749999999, 4969P 7985
+121.756696066765,-102.162835047777,7.10733749999999, 4969P 7986
+121.756696066765,-102.783713865844,7.10733749999999,-0.001, 4969P 7987
+0.0565553944905629,-0.001,0.151; 4969P 7988
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4971P 7989
+1.29888831710916,1.29888831710916,-0.00100000000000009, 4971P 7990
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,116.718084977313, 4971P 7991
+-102.173605113745,8.74703749999999,102.695539756509, 4971P 7992
+-102.173622561199,8.7470375,116.718084977313,-102.173605113745, 4971P 7993
+7.10733749999999,102.695539756509,-102.173622561199, 4971P 7994
+7.10733749999999,-0.00100000000000002,1.29888831710916, 4971P 7995
+-0.00100000000000009,0.151; 4971P 7996
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4973P 7997
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 4973P 7998
+1.,1.,1.,1.,116.707297477313,-102.783696445234,8.74703749999999, 4973P 7999
+116.707297477313,-102.162817627167,8.74703749999999, 4973P 8000
+116.707297477313,-102.783696445234,7.10733749999999, 4973P 8001
+116.707297477313,-102.162817627167,7.10733749999999, 4973P 8002
+-0.00100000000000178,0.0565553944905594,-0.001,0.151; 4973P 8003
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4975P 8004
+0.0751056188123572,0.0751056188123572,-0.001,-0.001,0.151,0.151, 4975P 8005
+1.,1.,1.,1.,117.517499340059,-102.772926600922,8.74703749999999, 4975P 8006
+116.696509977316,-102.772908710156,8.74703749999999, 4975P 8007
+117.517499340059,-102.772926600922,7.10733749999999, 4975P 8008
+116.696509977316,-102.772908710156,7.10733749999999, 4975P 8009
+-0.00100000000000002,0.0751056188123572,-0.001,0.151; 4975P 8010
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18763784027127, 4977P 8011
+1.18763784027127,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4977P 8012
+117.506720557707,-115.584569567767,8.74703749999999, 4977P 8013
+117.506711832721,-102.762138865844,8.74703749999999, 4977P 8014
+117.506720557707,-115.584569567767,7.10733749999999, 4977P 8015
+117.506711832721,-102.762138865844,7.10733749999999,-0.001, 4977P 8016
+1.18763784027127,-0.001,0.151; 4977P 8017
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056188123554, 4979P 8018
+0.0751056188123554,-0.00100000000000001,-0.00100000000000001, 4979P 8019
+0.151,0.151,1.,1.,1.,1.,116.696518687621,-115.573764412079, 4979P 8020
+8.74703749999999,117.517508050364,-115.573782302845, 4979P 8021
+8.74703749999999,116.696518687621,-115.573764412079, 4979P 8022
+7.10733749999999,117.517508050364,-115.573782302845, 4979P 8023
+7.10733749999999,-0.001,0.0751056188123554,-0.00100000000000001, 4979P 8024
+0.151; 4979P 8025
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565747731585322, 4981P 8026
+0.0565747731585322,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4981P 8027
+116.707297320582,-116.184065012541,8.74703749999999, 4981P 8028
+116.707306344349,-115.562977147158,8.74703749999999, 4981P 8029
+116.707297320582,-116.184065012541,7.10733749999999, 4981P 8030
+116.707306344349,-115.562977147158,7.10733749999999,-0.001, 4981P 8031
+0.0565747731585322,-0.001,0.151; 4981P 8032
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710816, 4983P 8033
+1.29888831710816,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4983P 8034
+102.695539756509,-116.173277512542,8.7470375,116.718084977313, 4983P 8035
+-116.173277512542,8.74703749999999,102.695539756509, 4983P 8036
+-116.173277512542,7.10733749999999,116.718084977313, 4983P 8037
+-116.173277512542,7.10733749999999,-0.001,1.29888831710816, 4983P 8038
+-0.001,0.151; 4983P 8039
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4985P 8040
+0.0565747731526699,0.0565747731526699,-0.001,-0.001,0.151,0.151, 4985P 8041
+1.,1.,1.,1.,102.706327256509,-115.562977147157,8.7470375, 4985P 8042
+102.706327256509,-116.184065012542,8.7470375,102.706327256509, 4985P 8043
+-115.562977147157,7.10733749999999,102.706327256509, 4985P 8044
+-116.184065012542,7.10733749999999,-0.00100000000000178, 4985P 8045
+0.0565747731526699,-0.001,0.151; 4985P 8046
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4987P 8047
+0.0751056187947571,0.0751056187947571,-0.00100000000000001, 4987P 8048
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,101.89612539376, 4987P 8049
+-115.573764647157,8.7470375,102.717114756509,-115.573764647157, 4987P 8050
+8.7470375,101.89612539376,-115.573764647157,7.10733749999999, 4987P 8051
+102.717114756509,-115.573764647157,7.10733749999999, 4987P 8052
+-0.00100000000000178,0.0751056187947571,-0.00100000000000001, 4987P 8053
+0.151; 4987P 8054
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 4989P 8055
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4989P 8056
+101.90691289376,-102.762121445234,8.7470375,101.90691289376, 4989P 8057
+-115.584552147157,8.7470375,101.90691289376,-102.762121445234, 4989P 8058
+7.10733749999999,101.90691289376,-115.584552147157, 4989P 8059
+7.10733749999999,-0.001,1.187637840271,-0.001,0.151; 4989P 8060
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4991P 8061
+0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 4991P 8062
+1.,1.,1.,1.,102.717114756506,-102.772926600922,8.7470375, 4991P 8063
+101.896125393763,-102.772908710156,8.7470375,102.717114756506, 4991P 8064
+-102.772926600922,7.10733749999999,101.896125393763, 4991P 8065
+-102.772908710156,7.10733749999999,-0.00100000000000178, 4991P 8066
+0.0751056188123521,-0.001,0.151; 4991P 8067
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905629, 4993P 8068
+0.0565553944905629,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4993P 8069
+102.706327256509,-102.162835047777,8.7470375,102.706327256509, 4993P 8070
+-102.783713865844,8.7470375,102.706327256509,-102.162835047777, 4993P 8071
+7.10733749999999,102.706327256509,-102.783713865844, 4993P 8072
+7.10733749999999,-0.001,0.0565553944905629,-0.001,0.151; 4993P 8073
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4995P 8074
+1.29888831710916,1.29888831710916,-0.00100000000000009, 4995P 8075
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,97.6677161670568, 4995P 8076
+-102.173605113745,8.7470375,83.6451709462526,-102.173622561199, 4995P 8077
+8.7470375,97.6677161670568,-102.173605113745,7.10733749999999, 4995P 8078
+83.6451709462526,-102.173622561199,7.1073375, 4995P 8079
+-0.00100000000000002,1.29888831710916,-0.00100000000000009, 4995P 8080
+0.151; 4995P 8081
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4997P 8082
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 4997P 8083
+1.,1.,1.,1.,97.6569286670568,-102.783696445234,8.7470375, 4997P 8084
+97.6569286670568,-102.162817627167,8.7470375,97.6569286670568, 4997P 8085
+-102.783696445234,7.10733749999999,97.6569286670568, 4997P 8086
+-102.162817627167,7.10733749999999,-0.00100000000000178, 4997P 8087
+0.0565553944905594,-0.001,0.151; 4997P 8088
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4999P 8089
+0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 4999P 8090
+1.,1.,1.,1.,98.4671305298027,-102.772926600922,8.7470375, 4999P 8091
+97.6461411670594,-102.772908710156,8.7470375,98.4671305298027, 4999P 8092
+-102.772926600922,7.10733749999999,97.6461411670594, 4999P 8093
+-102.772908710156,7.10733749999999,-0.00100000000000178, 4999P 8094
+0.0751056188123521,-0.001,0.151; 4999P 8095
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5001P 8096
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5001P 8097
+98.4563430298053,-115.584569567767,8.7470375,98.4563430298053, 5001P 8098
+-102.762138865844,8.7470375,98.4563430298053,-115.584569567767, 5001P 8099
+7.10733749999999,98.4563430298053,-102.762138865844, 5001P 8100
+7.10733749999999,-0.001,1.187637840271,-0.001,0.151; 5001P 8101
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5003P 8102
+0.0751056188123522,0.0751056188123522,-0.00100000000000001, 5003P 8103
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,97.6461411670594, 5003P 8104
+-115.573764412079,8.7470375,98.4671305298027,-115.573782302845, 5003P 8105
+8.7470375,97.6461411670594,-115.573764412079,7.10733749999999, 5003P 8106
+98.4671305298027,-115.573782302845,7.10733749999999, 5003P 8107
+-0.00100000000000178,0.0751056188123522,-0.00100000000000001, 5003P 8108
+0.151; 5003P 8109
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565747731526666, 5005P 8110
+0.0565747731526666,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5005P 8111
+97.6569286670568,-116.184065012542,8.7470375,97.6569286670568, 5005P 8112
+-115.562977147157,8.7470375,97.6569286670568,-116.184065012542, 5005P 8113
+7.10733749999999,97.6569286670568,-115.562977147157, 5005P 8114
+7.10733749999999,-0.001,0.0565747731526666,-0.001,0.151; 5005P 8115
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888912455241, 5007P 8116
+1.29888912455241,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5007P 8117
+83.6451622359477,-116.173277512542,8.7470375,97.6677161670568, 5007P 8118
+-116.173277512542,8.7470375,83.6451622359477,-116.173277512542, 5007P 8119
+7.1073375,97.6677161670569,-116.173277512542,7.1073375,-0.001, 5007P 8120
+1.29888912455241,-0.001,0.151; 5007P 8121
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5009P 8122
+0.0565747731585355,0.0565747731585355,-0.001,-0.001,0.151,0.151, 5009P 8123
+1.,1.,1.,1.,83.6559586029839,-115.562977147158,8.7470375, 5009P 8124
+83.6559495792164,-116.184065012541,8.7470375,83.6559586029839, 5009P 8125
+-115.562977147158,7.1073375,83.6559495792164,-116.184065012541, 5009P 8126
+7.1073375,-0.00100000000000178,0.0565747731585355,-0.001,0.151; 5009P 8127
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000165,-0.00100000000000165, 5011P 8128
+0.0751056187947571,0.0751056187947571,-0.00100000000000001, 5011P 8129
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,82.8457565835041, 5011P 8130
+-115.573764647157,8.7470375,83.6667459462526,-115.573764647157, 5011P 8131
+8.7470375,82.8457565835041,-115.573764647157,7.1073375, 5011P 8132
+83.6667459462526,-115.573764647157,7.1073375, 5011P 8133
+-0.00100000000000165,0.0751056187947571,-0.00100000000000001, 5011P 8134
+0.151; 5011P 8135
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5013P 8136
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5013P 8137
+82.8565440835042,-102.762121445234,8.7470375,82.8565440835042, 5013P 8138
+-115.584552147157,8.7470375,82.8565440835042,-102.762121445234, 5013P 8139
+7.1073375,82.8565440835042,-115.584552147157,7.1073375,-0.001, 5013P 8140
+1.187637840271,-0.001,0.151; 5013P 8141
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5015P 8142
+0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 5015P 8143
+1.,1.,1.,1.,83.66674594625,-102.772926600922,8.7470375, 5015P 8144
+82.8457565835067,-102.772908710156,8.7470375,83.66674594625, 5015P 8145
+-102.772926600922,7.1073375,82.8457565835067,-102.772908710156, 5015P 8146
+7.1073375,-0.00100000000000178,0.0751056188123521,-0.001,0.151; 5015P 8147
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905629, 5017P 8148
+0.0565553944905629,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5017P 8149
+83.6559584462526,-102.162835047777,8.7470375,83.6559584462526, 5017P 8150
+-102.783713865844,8.7470375,83.6559584462526,-102.162835047777, 5017P 8151
+7.1073375,83.6559584462526,-102.783713865844,7.1073375,-0.001, 5017P 8152
+0.0565553944905629,-0.001,0.151; 5017P 8153
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5019P 8154
+1.29888831710916,1.29888831710916,-0.00100000000000009, 5019P 8155
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,78.6173473568005, 5019P 8156
+-102.173605113745,8.7470375,64.5948021359963,-102.173622561199, 5019P 8157
+8.7470375,78.6173473568005,-102.173605113745,7.1073375, 5019P 8158
+64.5948021359963,-102.173622561199,7.1073375, 5019P 8159
+-0.00100000000000002,1.29888831710916,-0.00100000000000009, 5019P 8160
+0.151; 5019P 8161
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5021P 8162
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5021P 8163
+1.,1.,1.,1.,78.6065598568005,-102.783696445234,8.7470375, 5021P 8164
+78.6065598568005,-102.162817627167,8.7470375,78.6065598568005, 5021P 8165
+-102.783696445234,7.1073375,78.6065598568005,-102.162817627167, 5021P 8166
+7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5021P 8167
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5023P 8168
+0.0751056188123528,0.0751056188123528,-0.001,-0.001,0.151,0.151, 5023P 8169
+1.,1.,1.,1.,79.4167617195464,-102.772926600922,8.7470375, 5023P 8170
+78.5957723568031,-102.772908710156,8.7470375,79.4167617195464, 5023P 8171
+-102.772926600922,7.1073375,78.5957723568031,-102.772908710156, 5023P 8172
+7.1073375,-0.00100000000000266,0.0751056188123528,-0.001,0.151; 5023P 8173
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5025P 8174
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5025P 8175
+79.4059742195489,-115.584569567767,8.7470375,79.4059742195489, 5025P 8176
+-102.762138865844,8.7470375,79.4059742195489,-115.584569567767, 5025P 8177
+7.1073375,79.4059742195489,-102.762138865844,7.1073375,-0.001, 5025P 8178
+1.187637840271,-0.001,0.151; 5025P 8179
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5027P 8180
+0.0751056188123522,0.0751056188123522,-0.00100000000000001, 5027P 8181
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,78.595772356803, 5027P 8182
+-115.573764412079,8.7470375,79.4167617195464,-115.573782302845, 5027P 8183
+8.7470375,78.595772356803,-115.573764412079,7.1073375, 5027P 8184
+79.4167617195464,-115.573782302845,7.1073375, 5027P 8185
+-0.00100000000000266,0.0751056188123522,-0.00100000000000001, 5027P 8186
+0.151; 5027P 8187
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565747731526666, 5029P 8188
+0.0565747731526666,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5029P 8189
+78.6065598568005,-116.184065012542,8.7470375,78.6065598568005, 5029P 8190
+-115.562977147157,8.7470375,78.6065598568005,-116.184065012542, 5029P 8191
+7.1073375,78.6065598568005,-115.562977147157,7.1073375,-0.001, 5029P 8192
+0.0565747731526666,-0.001,0.151; 5029P 8193
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710816, 5031P 8194
+1.29888831710816,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5031P 8195
+64.5948021359963,-116.173277512542,8.7470375,78.6173473568005, 5031P 8196
+-116.173277512542,8.7470375,64.5948021359963,-116.173277512542, 5031P 8197
+7.1073375,78.6173473568005,-116.173277512542,7.1073375,-0.001, 5031P 8198
+1.29888831710816,-0.001,0.151; 5031P 8199
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5033P 8200
+0.0565747731526699,0.0565747731526699,-0.001,-0.001,0.151,0.151, 5033P 8201
+1.,1.,1.,1.,64.6055896359963,-115.562977147157,8.7470375, 5033P 8202
+64.6055896359963,-116.184065012542,8.7470375,64.6055896359963, 5033P 8203
+-115.562977147157,7.1073375,64.6055896359963,-116.184065012542, 5033P 8204
+7.1073375,-0.00100000000000178,0.0565747731526699,-0.001,0.151; 5033P 8205
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000247,-0.00100000000000247, 5035P 8206
+0.0751056187947571,0.0751056187947571,-0.00100000000000001, 5035P 8207
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,63.7953877732478, 5035P 8208
+-115.573764647157,8.7470375,64.6163771359963,-115.573764647157, 5035P 8209
+8.7470375,63.7953877732478,-115.573764647157,7.1073375, 5035P 8210
+64.6163771359963,-115.573764647157,7.1073375, 5035P 8211
+-0.00100000000000247,0.0751056187947571,-0.00100000000000001, 5035P 8212
+0.151; 5035P 8213
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5037P 8214
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5037P 8215
+63.8061752732478,-102.762121445234,8.7470375,63.8061752732478, 5037P 8216
+-115.584552147157,8.7470375,63.8061752732478,-102.762121445234, 5037P 8217
+7.1073375,63.8061752732478,-115.584552147157,7.1073375,-0.001, 5037P 8218
+1.187637840271,-0.001,0.151; 5037P 8219
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5039P 8220
+0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 5039P 8221
+1.,1.,1.,1.,64.6163771359937,-102.772926600922,8.7470375, 5039P 8222
+63.7953877732504,-102.772908710156,8.7470375,64.6163771359937, 5039P 8223
+-102.772926600922,7.1073375,63.7953877732504,-102.772908710156, 5039P 8224
+7.1073375,-0.00100000000000266,0.0751056188123521,-0.001,0.151; 5039P 8225
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905629, 5041P 8226
+0.0565553944905629,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5041P 8227
+64.6055896359963,-102.162835047777,8.7470375,64.6055896359963, 5041P 8228
+-102.783713865844,8.7470375,64.6055896359963,-102.162835047777, 5041P 8229
+7.1073375,64.6055896359963,-102.783713865844,7.1073375,-0.001, 5041P 8230
+0.0565553944905629,-0.001,0.151; 5041P 8231
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5043P 8232
+1.29879546101989,1.29879546101989,-0.001,-0.001,0.151,0.151,1., 5043P 8233
+1.,1.,1.,59.5669785465442,-102.173605113744,8.7470375, 5043P 8234
+45.545435010803,-102.1736225612,8.7470375,59.5669785465442, 5043P 8235
+-102.173605113744,7.1073375,45.545435010803,-102.1736225612, 5043P 8236
+7.1073375,-0.00100000000000002,1.29879546101989,-0.001,0.151; 5043P 8237
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5045P 8238
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5045P 8239
+1.,1.,1.,1.,59.5561910465442,-102.783696445234,8.7470375, 5045P 8240
+59.5561910465442,-102.162817627167,8.7470375,59.5561910465442, 5045P 8241
+-102.783696445234,7.1073375,59.5561910465442,-102.162817627167, 5045P 8242
+7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5045P 8243
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000249,-0.00100000000000249, 5047P 8244
+0.0751056188123528,0.0751056188123528,-0.00100000000000011, 5047P 8245
+-0.00100000000000011,0.151,0.151,1.,1.,1.,1.,60.3663929092901, 5047P 8246
+-102.772926600922,8.7470375,59.5454035465467,-102.772908710156, 5047P 8247
+8.7470375,60.3663929092901,-102.772926600922,7.1073375, 5047P 8248
+59.5454035465467,-102.772908710156,7.1073375, 5047P 8249
+-0.00100000000000249,0.0751056188123528,-0.00100000000000011, 5047P 8250
+0.151; 5047P 8251
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5049P 8252
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5049P 8253
+60.3556054092926,-115.584569567767,8.7470375,60.3556054092926, 5049P 8254
+-102.762138865844,8.7470375,60.3556054092926,-115.584569567767, 5049P 8255
+7.1073375,60.3556054092926,-102.762138865844,7.1073375,-0.001, 5049P 8256
+1.187637840271,-0.001,0.151; 5049P 8257
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000247,-0.00100000000000247, 5051P 8258
+0.0751056188123528,0.0751056188123528,-0.001,-0.001,0.151,0.151, 5051P 8259
+1.,1.,1.,1.,59.5454035465467,-115.573764412079,8.7470375, 5051P 8260
+60.3663929092901,-115.573782302845,8.7470375,59.5454035465467, 5051P 8261
+-115.573764412079,7.1073375,60.3663929092901,-115.573782302845, 5051P 8262
+7.1073375,-0.00100000000000247,0.0751056188123528,-0.001,0.151; 5051P 8263
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565747731526666, 5053P 8264
+0.0565747731526666,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5053P 8265
+59.5561910465442,-116.184065012542,8.7470375,59.5561910465442, 5053P 8266
+-115.562977147157,8.7470375,59.5561910465442,-116.184065012542, 5053P 8267
+7.1073375,59.5561910465442,-115.562977147157,7.1073375,-0.001, 5053P 8268
+0.0565747731526666,-0.001,0.151; 5053P 8269
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29879546101888, 5055P 8270
+1.29879546101888,-0.00100000000000011,-0.00100000000000011, 5055P 8271
+0.151,0.151,1.,1.,1.,1.,45.545435010803,-116.173277512542, 5055P 8272
+8.7470375,59.5669785465442,-116.173277512542,8.7470375, 5055P 8273
+45.545435010803,-116.173277512542,7.1073375,59.5669785465442, 5055P 8274
+-116.173277512542,7.1073375,-0.001,1.29879546101888, 5055P 8275
+-0.00100000000000011,0.151; 5055P 8276
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5057P 8277
+0.0565747731526699,0.0565747731526699,-0.001,-0.001,0.151,0.151, 5057P 8278
+1.,1.,1.,1.,45.556222510803,-115.562977147157,8.7470375, 5057P 8279
+45.556222510803,-116.184065012542,8.7470375,45.556222510803, 5057P 8280
+-115.562977147157,7.1073375,45.556222510803,-116.184065012542, 5057P 8281
+7.1073375,-0.00100000000000178,0.0565747731526699,-0.001,0.151; 5057P 8282
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751621398925796, 5059P 8283
+0.0751621398925796,-0.00100000000000001,-0.00100000000000001, 5059P 8284
+0.151,0.151,1.,1.,1.,1.,44.7454109267118,-115.573764647157, 5059P 8285
+8.7470375,45.567010010803,-115.573764647157,8.7470375, 5059P 8286
+44.7454109267118,-115.573764647157,7.1073375,45.567010010803, 5059P 8287
+-115.573764647157,7.1073375,-0.001,0.0751621398925796, 5059P 8288
+-0.00100000000000001,0.151; 5059P 8289
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5061P 8290
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5061P 8291
+44.7561984267118,-102.762121445234,8.7470375,44.7561984267118, 5061P 8292
+-115.584552147157,8.7470375,44.7561984267118,-102.762121445234, 5061P 8293
+7.1073375,44.7561984267118,-115.584552147157,7.1073375,-0.001, 5061P 8294
+1.187637840271,-0.001,0.151; 5061P 8295
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5063P 8296
+0.075162139910162,0.075162139910162,-0.001,-0.001,0.151,0.151, 5063P 8297
+1.,1.,1.,1.,45.5670100108004,-102.772926600743,8.7470375, 5063P 8298
+44.7454109267143,-102.772908710335,8.7470375,45.5670100108004, 5063P 8299
+-102.772926600743,7.1073375,44.7454109267143,-102.772908710335, 5063P 8300
+7.1073375,-0.00100000000000002,0.075162139910162,-0.001,0.151; 5063P 8301
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905629, 5065P 8302
+0.0565553944905629,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5065P 8303
+45.556222510803,-102.162835047777,8.7470375,45.556222510803, 5065P 8304
+-102.783713865844,8.7470375,45.556222510803,-102.162835047777, 5065P 8305
+7.1073375,45.556222510803,-102.783713865844,7.1073375,-0.001, 5065P 8306
+0.0565553944905629,-0.001,0.151; 5065P 8307
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5067P 8308
+1.29891011810303,1.29891011810303,-0.00100000000000011, 5067P 8309
+-0.00100000000000011,0.151,0.151,1.,1.,1.,1.,154.818861794198, 5067P 8310
+-83.1232450272156,8.74703749999999,140.796081395161, 5067P 8311
+-83.1232450272155,8.74703749999999,154.818861794198, 5067P 8312
+-83.1232450272156,7.10733749999999,140.796081395161, 5067P 8313
+-83.1232450272155,7.10733749999999,-0.00100000000000002, 5067P 8314
+1.29891011810303,-0.00100000000000011,0.151; 5067P 8315
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5069P 8316
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5069P 8317
+1.,1.,1.,1.,154.808074294198,-83.7333363452825,8.74703749999999, 5069P 8318
+154.808074294198,-83.1124575272156,8.74703749999999, 5069P 8319
+154.808074294198,-83.7333363452825,7.10733749999999, 5069P 8320
+154.808074294198,-83.1124575272156,7.10733749999999, 5069P 8321
+-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5069P 8322
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5071P 8323
+0.0750926996866866,0.0750926996866866,-0.001,-0.001,0.151,0.151, 5071P 8324
+1.,1.,1.,1.,155.618136792068,-83.7225488452825,8.74703749999999, 5071P 8325
+154.797286794198,-83.7225488452825,8.74703749999999, 5071P 8326
+155.618136792068,-83.7225488452825,7.10733749999999, 5071P 8327
+154.797286794198,-83.7225488452825,7.10733749999999, 5071P 8328
+-0.00100000000000002,0.0750926996866866,-0.001,0.151; 5071P 8329
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5073P 8330
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5073P 8331
+155.607349292068,-96.5341920472058,8.74703749999999, 5073P 8332
+155.607349292068,-83.7117613452824,8.74703749999999, 5073P 8333
+155.607349292068,-96.5341920472058,7.10733749999999, 5073P 8334
+155.607349292068,-83.7117613452824,7.10733749999999,-0.001, 5073P 8335
+1.187637840271,-0.001,0.151; 5073P 8336
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5075P 8337
+0.0750926996866857,0.0750926996866857,-0.00100000000000001, 5075P 8338
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,154.797286794198, 5075P 8339
+-96.5234045472058,8.74703749999999,155.618136792068, 5075P 8340
+-96.5234045472058,8.74703749999999,154.797286794198, 5075P 8341
+-96.5234045472058,7.10733749999999,155.618136792068, 5075P 8342
+-96.5234045472058,7.10733749999999,-0.00100000000000178, 5075P 8343
+0.0750926996866857,-0.00100000000000001,0.151; 5075P 8344
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5077P 8345
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5077P 8346
+1.,1.,1.,1.,154.808074294198,-97.1334958652727,8.74703749999999, 5077P 8347
+154.808074294198,-96.5126170472058,8.74703749999999, 5077P 8348
+154.808074294198,-97.1334958652727,7.10733749999999, 5077P 8349
+154.808074294198,-96.5126170472059,7.10733749999999, 5077P 8350
+-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5077P 8351
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.2989097143809, 5079P 8352
+1.2989097143809,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5079P 8353
+140.796085750314,-97.1227083652727,8.74703749999999, 5079P 8354
+154.818861794198,-97.1227083652727,8.74703749999999, 5079P 8355
+140.796085750314,-97.1227083652727,7.10733749999999, 5079P 8356
+154.818861794198,-97.1227083652727,7.10733749999999,-0.001, 5079P 8357
+1.2989097143809,-0.001,0.151; 5079P 8358
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000165,-0.00100000000000165, 5081P 8359
+0.0565553944920266,0.0565553944920266,-0.001,-0.001,0.151,0.151, 5081P 8360
+1.,1.,1.,1.,140.806868816768,-96.5126170472061,8.74703749999999, 5081P 8361
+140.806873328707,-97.1334958652725,8.74703749999999, 5081P 8362
+140.806868816768,-96.5126170472061,7.10733749999999, 5081P 8363
+140.806873328707,-97.1334958652725,7.10733749999999, 5081P 8364
+-0.00100000000000165,0.0565553944920266,-0.001,0.151; 5081P 8365
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750874512990324, 5083P 8366
+0.0750874512990324,-0.00100000000000011,-0.00100000000000011, 5083P 8367
+0.151,0.151,1.,1.,1.,1.,139.996863014273,-96.5234045472058, 5083P 8368
+8.74703749999999,140.817656395161,-96.5234045472058, 5083P 8369
+8.74703749999999,139.996863014273,-96.5234045472058, 5083P 8370
+7.10733749999999,140.817656395161,-96.5234045472058, 5083P 8371
+7.10733749999999,-0.001,0.0750874512990324,-0.00100000000000011, 5083P 8372
+0.151; 5083P 8373
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18763784027107, 5085P 8374
+1.18763784027107,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5085P 8375
+140.007654873096,-83.7117613452825,8.74703749999999, 5085P 8376
+140.007650510603,-96.5341920472058,8.74703749999999, 5085P 8377
+140.007654873096,-83.7117613452825,7.10733749999999, 5085P 8378
+140.007650510603,-96.5341920472059,7.10733749999999,-0.001, 5085P 8379
+1.18763784027107,-0.001,0.151; 5085P 8380
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5087P 8381
+0.0750874512990324,0.0750874512990324,-0.001,-0.001,0.151,0.151, 5087P 8382
+1.,1.,1.,1.,140.817660750314,-83.7225488452825,8.74703749999999, 5087P 8383
+139.996867369426,-83.7225488452825,8.74703749999999, 5087P 8384
+140.817660750314,-83.7225488452825,7.10733749999999, 5087P 8385
+139.996867369426,-83.7225488452825,7.10733749999999, 5087P 8386
+-0.00100000000000002,0.0750874512990324,-0.001,0.151; 5087P 8387
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944920294, 5089P 8388
+0.0565553944920294,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5089P 8389
+140.806868816768,-83.1124575272158,8.74703749999999, 5089P 8390
+140.806873328707,-83.7333363452822,8.74703749999999, 5089P 8391
+140.806868816768,-83.1124575272158,7.10733749999999, 5089P 8392
+140.806873328707,-83.7333363452822,7.10733749999999,-0.001, 5089P 8393
+0.0565553944920294,-0.001,0.151; 5089P 8394
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5091P 8395
+1.29888872083028,1.29888872083028,-0.00100000000000009, 5091P 8396
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,135.768458142722, 5091P 8397
+-83.1232450272156,8.74703749999999,121.745908566765, 5091P 8398
+-83.1232450272155,8.74703749999999,135.768458142722, 5091P 8399
+-83.1232450272156,7.10733749999999,121.745908566765, 5091P 8400
+-83.1232450272155,7.10733749999999,-0.00100000000000002, 5091P 8401
+1.29888872083028,-0.00100000000000009,0.151; 5091P 8402
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5093P 8403
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5093P 8404
+1.,1.,1.,1.,135.757670642722,-83.7333363452825,8.74703749999999, 5093P 8405
+135.757670642722,-83.1124575272156,8.74703749999999, 5093P 8406
+135.757670642722,-83.7333363452825,7.10733749999999, 5093P 8407
+135.757670642722,-83.1124575272156,7.10733749999999, 5093P 8408
+-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5093P 8409
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5095P 8410
+0.0750967369079582,0.0750967369079582,-0.001,-0.001,0.151,0.151, 5095P 8411
+1.,1.,1.,1.,136.567776692117,-83.7225488452825,8.74703749999999, 5095P 8412
+135.746883142722,-83.7225488452825,8.74703749999999, 5095P 8413
+136.567776692117,-83.7225488452825,7.10733749999999, 5095P 8414
+135.746883142722,-83.7225488452825,7.10733749999999, 5095P 8415
+-0.00100000000000002,0.0750967369079582,-0.001,0.151; 5095P 8416
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5097P 8417
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5097P 8418
+136.556989192117,-96.5341920472058,8.74703749999999, 5097P 8419
+136.556989192117,-83.7117613452825,8.74703749999999, 5097P 8420
+136.556989192117,-96.5341920472058,7.10733749999999, 5097P 8421
+136.556989192117,-83.7117613452825,7.10733749999999,-0.001, 5097P 8422
+1.187637840271,-0.001,0.151; 5097P 8423
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750967369079582, 5099P 8424
+0.0750967369079582,-0.00100000000000001,-0.00100000000000001, 5099P 8425
+0.151,0.151,1.,1.,1.,1.,135.746883142722,-96.5234045472058, 5099P 8426
+8.74703749999999,136.567776692117,-96.5234045472058, 5099P 8427
+8.74703749999999,135.746883142722,-96.5234045472058, 5099P 8428
+7.10733749999999,136.567776692117,-96.5234045472058, 5099P 8429
+7.10733749999999,-0.001,0.0750967369079582,-0.00100000000000001, 5099P 8430
+0.151; 5099P 8431
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5101P 8432
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5101P 8433
+1.,1.,1.,1.,135.757670642722,-97.1334958652727,8.74703749999999, 5101P 8434
+135.757670642722,-96.5126170472058,8.74703749999999, 5101P 8435
+135.757670642722,-97.1334958652727,7.10733749999999, 5101P 8436
+135.757670642722,-96.5126170472059,7.10733749999999, 5101P 8437
+-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5101P 8438
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888872083028, 5103P 8439
+1.29888872083028,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5103P 8440
+121.745908566765,-97.1227083652727,8.74703749999999, 5103P 8441
+135.768458142722,-97.1227083652727,8.74703749999999, 5103P 8442
+121.745908566765,-97.1227083652727,7.10733749999999, 5103P 8443
+135.768458142722,-97.1227083652727,7.10733749999999,-0.001, 5103P 8444
+1.29888872083028,-0.001,0.151; 5103P 8445
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5105P 8446
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5105P 8447
+1.,1.,1.,1.,121.756696066765,-96.5126170472058,8.74703749999999, 5105P 8448
+121.756696066765,-97.1334958652727,8.74703749999999, 5105P 8449
+121.756696066765,-96.5126170472058,7.10733749999999, 5105P 8450
+121.756696066765,-97.1334958652727,7.10733749999999, 5105P 8451
+-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5105P 8452
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056187947589, 5107P 8453
+0.0751056187947589,-0.00100000000000001,-0.00100000000000001, 5107P 8454
+0.151,0.151,1.,1.,1.,1.,120.946494204017,-96.5234045472058, 5107P 8455
+8.74703749999999,121.767483566765,-96.5234045472058, 5107P 8456
+8.74703749999999,120.946494204017,-96.5234045472058, 5107P 8457
+7.10733749999999,121.767483566765,-96.5234045472058, 5107P 8458
+7.10733749999999,-0.001,0.0751056187947589,-0.00100000000000001, 5107P 8459
+0.151; 5107P 8460
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5109P 8461
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5109P 8462
+120.957281704017,-83.7117613452825,8.74703749999999, 5109P 8463
+120.957281704017,-96.5341920472058,8.74703749999999, 5109P 8464
+120.957281704017,-83.7117613452825,7.10733749999999, 5109P 8465
+120.957281704017,-96.5341920472058,7.10733749999999,-0.001, 5109P 8466
+1.187637840271,-0.001,0.151; 5109P 8467
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5111P 8468
+0.0751056187947589,0.0751056187947589,-0.001,-0.001,0.151,0.151, 5111P 8469
+1.,1.,1.,1.,121.767483566765,-83.7225488452825,8.74703749999999, 5111P 8470
+120.946494204017,-83.7225488452825,8.74703749999999, 5111P 8471
+121.767483566765,-83.7225488452825,7.10733749999999, 5111P 8472
+120.946494204017,-83.7225488452825,7.10733749999999, 5111P 8473
+-0.00100000000000002,0.0751056187947589,-0.001,0.151; 5111P 8474
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905625, 5113P 8475
+0.0565553944905625,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5113P 8476
+121.756696066765,-83.1124575272155,8.74703749999999, 5113P 8477
+121.756696066765,-83.7333363452825,8.74703749999999, 5113P 8478
+121.756696066765,-83.1124575272155,7.10733749999999, 5113P 8479
+121.756696066765,-83.7333363452825,7.10733749999999,-0.001, 5113P 8480
+0.0565553944905625,-0.001,0.151; 5113P 8481
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5115P 8482
+1.29888831710816,1.29888831710816,-0.00100000000000009, 5115P 8483
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,116.718084977313, 5115P 8484
+-83.1232450272156,8.74703749999999,102.695539756509, 5115P 8485
+-83.1232450272155,8.7470375,116.718084977313,-83.1232450272156, 5115P 8486
+7.10733749999999,102.695539756509,-83.1232450272155, 5115P 8487
+7.10733749999999,-0.00100000000000002,1.29888831710816, 5115P 8488
+-0.00100000000000009,0.151; 5115P 8489
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5117P 8490
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5117P 8491
+1.,1.,1.,1.,116.707297477313,-83.7333363452825,8.74703749999999, 5117P 8492
+116.707297477313,-83.1124575272156,8.74703749999999, 5117P 8493
+116.707297477313,-83.7333363452825,7.10733749999999, 5117P 8494
+116.707297477313,-83.1124575272156,7.10733749999999, 5117P 8495
+-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5117P 8496
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5119P 8497
+0.0751056187947606,0.0751056187947606,-0.001,-0.001,0.151,0.151, 5119P 8498
+1.,1.,1.,1.,117.517499340062,-83.7225488452825,8.74703749999999, 5119P 8499
+116.696509977313,-83.7225488452825,8.74703749999999, 5119P 8500
+117.517499340062,-83.7225488452825,7.10733749999999, 5119P 8501
+116.696509977313,-83.7225488452825,7.10733749999999, 5119P 8502
+-0.00100000000000002,0.0751056187947606,-0.001,0.151; 5119P 8503
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18763784027127, 5121P 8504
+1.18763784027127,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5121P 8505
+117.506720557707,-96.5341920472058,8.74703749999999, 5121P 8506
+117.506711832721,-83.7117613452824,8.74703749999999, 5121P 8507
+117.506720557707,-96.5341920472058,7.10733749999999, 5121P 8508
+117.506711832721,-83.7117613452824,7.10733749999999,-0.001, 5121P 8509
+1.18763784027127,-0.001,0.151; 5121P 8510
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056187947589, 5123P 8511
+0.0751056187947589,-0.00100000000000001,-0.00100000000000001, 5123P 8512
+0.151,0.151,1.,1.,1.,1.,116.696518687618,-96.5234045472058, 5123P 8513
+8.74703749999999,117.517508050367,-96.5234045472058, 5123P 8514
+8.74703749999999,116.696518687618,-96.5234045472058, 5123P 8515
+7.10733749999999,117.517508050367,-96.5234045472058, 5123P 8516
+7.10733749999999,-0.001,0.0751056187947589,-0.00100000000000001, 5123P 8517
+0.151; 5123P 8518
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5125P 8519
+0.0565553944964269,0.0565553944964269,-0.001,-0.001,0.151,0.151, 5125P 8520
+1.,1.,1.,1.,116.707297320527,-97.1334958652716,8.74703749999999, 5125P 8521
+116.707306344404,-96.512617047207,8.74703749999999, 5125P 8522
+116.707297320527,-97.1334958652716,7.10733749999999, 5125P 8523
+116.707306344404,-96.512617047207,7.10733749999999, 5125P 8524
+-0.00100000000000178,0.0565553944964269,-0.001,0.151; 5125P 8525
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710816, 5127P 8526
+1.29888831710816,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5127P 8527
+102.695539756509,-97.1227083652727,8.7470375,116.718084977313, 5127P 8528
+-97.1227083652727,8.74703749999999,102.695539756509, 5127P 8529
+-97.1227083652727,7.10733749999999,116.718084977313, 5127P 8530
+-97.1227083652727,7.10733749999999,-0.001,1.29888831710816, 5127P 8531
+-0.001,0.151; 5127P 8532
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5129P 8533
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5129P 8534
+1.,1.,1.,1.,102.706327256509,-96.5126170472058,8.7470375, 5129P 8535
+102.706327256509,-97.1334958652727,8.7470375,102.706327256509, 5129P 8536
+-96.5126170472058,7.10733749999999,102.706327256509, 5129P 8537
+-97.1334958652727,7.10733749999999,-0.00100000000000178, 5129P 8538
+0.0565553944905594,-0.001,0.151; 5129P 8539
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5131P 8540
+0.0751056187947571,0.0751056187947571,-0.00100000000000001, 5131P 8541
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,101.89612539376, 5131P 8542
+-96.5234045472058,8.7470375,102.717114756509,-96.5234045472058, 5131P 8543
+8.7470375,101.89612539376,-96.5234045472058,7.10733749999999, 5131P 8544
+102.717114756509,-96.5234045472058,7.10733749999999, 5131P 8545
+-0.00100000000000178,0.0751056187947571,-0.00100000000000001, 5131P 8546
+0.151; 5131P 8547
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5133P 8548
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5133P 8549
+101.90691289376,-83.7117613452825,8.7470375,101.90691289376, 5133P 8550
+-96.5341920472058,8.7470375,101.90691289376,-83.7117613452825, 5133P 8551
+7.10733749999999,101.90691289376,-96.5341920472058, 5133P 8552
+7.10733749999999,-0.001,1.187637840271,-0.001,0.151; 5133P 8553
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5135P 8554
+0.0751056187947571,0.0751056187947571,-0.001,-0.001,0.151,0.151, 5135P 8555
+1.,1.,1.,1.,102.717114756509,-83.7225488452825,8.7470375, 5135P 8556
+101.89612539376,-83.7225488452825,8.7470375,102.717114756509, 5135P 8557
+-83.7225488452825,7.10733749999999,101.89612539376, 5135P 8558
+-83.7225488452825,7.10733749999999,-0.00100000000000178, 5135P 8559
+0.0751056187947571,-0.001,0.151; 5135P 8560
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905625, 5137P 8561
+0.0565553944905625,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5137P 8562
+102.706327256509,-83.1124575272155,8.7470375,102.706327256509, 5137P 8563
+-83.7333363452825,8.7470375,102.706327256509,-83.1124575272155, 5137P 8564
+7.10733749999999,102.706327256509,-83.7333363452825, 5137P 8565
+7.10733749999999,-0.001,0.0565553944905625,-0.001,0.151; 5137P 8566
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5139P 8567
+1.29888831710816,1.29888831710816,-0.00100000000000009, 5139P 8568
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,97.6677161670568, 5139P 8569
+-83.1232450272156,8.7470375,83.6451709462526,-83.1232450272155, 5139P 8570
+8.7470375,97.6677161670568,-83.1232450272156,7.10733749999999, 5139P 8571
+83.6451709462526,-83.1232450272155,7.1073375, 5139P 8572
+-0.00100000000000002,1.29888831710816,-0.00100000000000009, 5139P 8573
+0.151; 5139P 8574
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5141P 8575
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5141P 8576
+1.,1.,1.,1.,97.6569286670568,-83.7333363452825,8.7470375, 5141P 8577
+97.6569286670568,-83.1124575272156,8.7470375,97.6569286670568, 5141P 8578
+-83.7333363452825,7.10733749999999,97.6569286670568, 5141P 8579
+-83.1124575272156,7.10733749999999,-0.00100000000000178, 5141P 8580
+0.0565553944905594,-0.001,0.151; 5141P 8581
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5143P 8582
+0.0751056187947571,0.0751056187947571,-0.001,-0.001,0.151,0.151, 5143P 8583
+1.,1.,1.,1.,98.4671305298053,-83.7225488452825,8.7470375, 5143P 8584
+97.6461411670568,-83.7225488452825,8.7470375,98.4671305298053, 5143P 8585
+-83.7225488452825,7.10733749999999,97.6461411670568, 5143P 8586
+-83.7225488452825,7.10733749999999,-0.00100000000000178, 5143P 8587
+0.0751056187947571,-0.001,0.151; 5143P 8588
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5145P 8589
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5145P 8590
+98.4563430298053,-96.5341920472058,8.7470375,98.4563430298053, 5145P 8591
+-83.7117613452825,8.7470375,98.4563430298053,-96.5341920472058, 5145P 8592
+7.10733749999999,98.4563430298053,-83.7117613452825, 5145P 8593
+7.10733749999999,-0.001,1.187637840271,-0.001,0.151; 5145P 8594
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5147P 8595
+0.0751056187947566,0.0751056187947566,-0.00100000000000001, 5147P 8596
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,97.6461411670568, 5147P 8597
+-96.5234045472058,8.7470375,98.4671305298053,-96.5234045472058, 5147P 8598
+8.7470375,97.6461411670568,-96.5234045472058,7.10733749999999, 5147P 8599
+98.4671305298053,-96.5234045472058,7.10733749999999, 5147P 8600
+-0.00100000000000178,0.0751056187947566,-0.00100000000000001, 5147P 8601
+0.151; 5147P 8602
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5149P 8603
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5149P 8604
+1.,1.,1.,1.,97.6569286670568,-97.1334958652727,8.7470375, 5149P 8605
+97.6569286670568,-96.5126170472058,8.7470375,97.6569286670568, 5149P 8606
+-97.1334958652727,7.10733749999999,97.6569286670568, 5149P 8607
+-96.5126170472059,7.10733749999999,-0.00100000000000178, 5149P 8608
+0.0565553944905594,-0.001,0.151; 5149P 8609
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888912455241, 5151P 8610
+1.29888912455241,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5151P 8611
+83.6451622359477,-97.1227083652727,8.7470375,97.6677161670568, 5151P 8612
+-97.1227083652727,8.7470375,83.6451622359477,-97.1227083652727, 5151P 8613
+7.1073375,97.6677161670569,-97.1227083652727,7.1073375,-0.001, 5151P 8614
+1.29888912455241,-0.001,0.151; 5151P 8615
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5153P 8616
+0.0565553944964269,0.0565553944964269,-0.001,-0.001,0.151,0.151, 5153P 8617
+1.,1.,1.,1.,83.6559586030385,-96.512617047207,8.7470375, 5153P 8618
+83.6559495791618,-97.1334958652716,8.7470375,83.6559586030385, 5153P 8619
+-96.512617047207,7.1073375,83.6559495791617,-97.1334958652716, 5153P 8620
+7.1073375,-0.00100000000000178,0.0565553944964269,-0.001,0.151; 5153P 8621
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000165,-0.00100000000000165, 5155P 8622
+0.0751056187947571,0.0751056187947571,-0.00100000000000001, 5155P 8623
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,82.8457565835041, 5155P 8624
+-96.5234045472058,8.7470375,83.6667459462526,-96.5234045472058, 5155P 8625
+8.7470375,82.8457565835041,-96.5234045472058,7.1073375, 5155P 8626
+83.6667459462526,-96.5234045472058,7.1073375, 5155P 8627
+-0.00100000000000165,0.0751056187947571,-0.00100000000000001, 5155P 8628
+0.151; 5155P 8629
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5157P 8630
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5157P 8631
+82.8565440835042,-83.7117613452825,8.7470375,82.8565440835042, 5157P 8632
+-96.5341920472058,8.7470375,82.8565440835042,-83.7117613452825, 5157P 8633
+7.1073375,82.8565440835042,-96.5341920472058,7.1073375,-0.001, 5157P 8634
+1.187637840271,-0.001,0.151; 5157P 8635
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5159P 8636
+0.0751056187947571,0.0751056187947571,-0.001,-0.001,0.151,0.151, 5159P 8637
+1.,1.,1.,1.,83.6667459462526,-83.7225488452825,8.7470375, 5159P 8638
+82.8457565835041,-83.7225488452825,8.7470375,83.6667459462526, 5159P 8639
+-83.7225488452825,7.1073375,82.8457565835041,-83.7225488452825, 5159P 8640
+7.1073375,-0.00100000000000178,0.0751056187947571,-0.001,0.151; 5159P 8641
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905625, 5161P 8642
+0.0565553944905625,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5161P 8643
+83.6559584462526,-83.1124575272155,8.7470375,83.6559584462526, 5161P 8644
+-83.7333363452825,8.7470375,83.6559584462526,-83.1124575272155, 5161P 8645
+7.1073375,83.6559584462526,-83.7333363452825,7.1073375,-0.001, 5161P 8646
+0.0565553944905625,-0.001,0.151; 5161P 8647
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5163P 8648
+1.29888831710816,1.29888831710816,-0.00100000000000009, 5163P 8649
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,78.6173473568005, 5163P 8650
+-83.1232450272156,8.7470375,64.5948021359962,-83.1232450272155, 5163P 8651
+8.7470375,78.6173473568005,-83.1232450272156,7.1073375, 5163P 8652
+64.5948021359962,-83.1232450272155,7.1073375, 5163P 8653
+-0.00100000000000002,1.29888831710816,-0.00100000000000009, 5163P 8654
+0.151; 5163P 8655
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5165P 8656
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5165P 8657
+1.,1.,1.,1.,78.6065598568005,-83.7333363452825,8.7470375, 5165P 8658
+78.6065598568005,-83.1124575272156,8.7470375,78.6065598568005, 5165P 8659
+-83.7333363452825,7.1073375,78.6065598568005,-83.1124575272156, 5165P 8660
+7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5165P 8661
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5167P 8662
+0.0751056187947565,0.0751056187947565,-0.001,-0.001,0.151,0.151, 5167P 8663
+1.,1.,1.,1.,79.416761719549,-83.7225488452825,8.7470375, 5167P 8664
+78.5957723568005,-83.7225488452825,8.7470375,79.416761719549, 5167P 8665
+-83.7225488452825,7.1073375,78.5957723568005,-83.7225488452825, 5167P 8666
+7.1073375,-0.00100000000000266,0.0751056187947565,-0.001,0.151; 5167P 8667
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5169P 8668
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5169P 8669
+79.4059742195489,-96.5341920472058,8.7470375,79.4059742195489, 5169P 8670
+-83.7117613452825,8.7470375,79.4059742195489,-96.5341920472058, 5169P 8671
+7.1073375,79.4059742195489,-83.7117613452825,7.1073375,-0.001, 5169P 8672
+1.187637840271,-0.001,0.151; 5169P 8673
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5171P 8674
+0.0751056187947566,0.0751056187947566,-0.00100000000000001, 5171P 8675
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,78.5957723568005, 5171P 8676
+-96.5234045472058,8.7470375,79.4167617195489,-96.5234045472058, 5171P 8677
+8.7470375,78.5957723568005,-96.5234045472058,7.1073375, 5171P 8678
+79.4167617195489,-96.5234045472058,7.1073375, 5171P 8679
+-0.00100000000000266,0.0751056187947566,-0.00100000000000001, 5171P 8680
+0.151; 5171P 8681
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5173P 8682
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5173P 8683
+1.,1.,1.,1.,78.6065598568005,-97.1334958652727,8.7470375, 5173P 8684
+78.6065598568005,-96.5126170472058,8.7470375,78.6065598568005, 5173P 8685
+-97.1334958652727,7.1073375,78.6065598568005,-96.5126170472059, 5173P 8686
+7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5173P 8687
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710816, 5175P 8688
+1.29888831710816,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5175P 8689
+64.5948021359963,-97.1227083652727,8.7470375,78.6173473568005, 5175P 8690
+-97.1227083652727,8.7470375,64.5948021359963,-97.1227083652727, 5175P 8691
+7.1073375,78.6173473568005,-97.1227083652727,7.1073375,-0.001, 5175P 8692
+1.29888831710816,-0.001,0.151; 5175P 8693
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5177P 8694
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5177P 8695
+1.,1.,1.,1.,64.6055896359963,-96.5126170472058,8.7470375, 5177P 8696
+64.6055896359963,-97.1334958652727,8.7470375,64.6055896359963, 5177P 8697
+-96.5126170472058,7.1073375,64.6055896359963,-97.1334958652727, 5177P 8698
+7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5177P 8699
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000247,-0.00100000000000247, 5179P 8700
+0.0751056187947571,0.0751056187947571,-0.00100000000000001, 5179P 8701
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,63.7953877732478, 5179P 8702
+-96.5234045472058,8.7470375,64.6163771359963,-96.5234045472058, 5179P 8703
+8.7470375,63.7953877732478,-96.5234045472058,7.1073375, 5179P 8704
+64.6163771359963,-96.5234045472058,7.1073375, 5179P 8705
+-0.00100000000000247,0.0751056187947571,-0.00100000000000001, 5179P 8706
+0.151; 5179P 8707
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5181P 8708
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5181P 8709
+63.8061752732478,-83.7117613452825,8.7470375,63.8061752732478, 5181P 8710
+-96.5341920472058,8.7470375,63.8061752732478,-83.7117613452825, 5181P 8711
+7.1073375,63.8061752732478,-96.5341920472058,7.1073375,-0.001, 5181P 8712
+1.187637840271,-0.001,0.151; 5181P 8713
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5183P 8714
+0.0751056187947571,0.0751056187947571,-0.001,-0.001,0.151,0.151, 5183P 8715
+1.,1.,1.,1.,64.6163771359963,-83.7225488452825,8.7470375, 5183P 8716
+63.7953877732478,-83.7225488452825,8.7470375,64.6163771359963, 5183P 8717
+-83.7225488452825,7.1073375,63.7953877732478,-83.7225488452825, 5183P 8718
+7.1073375,-0.00100000000000266,0.0751056187947571,-0.001,0.151; 5183P 8719
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905625, 5185P 8720
+0.0565553944905625,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5185P 8721
+64.6055896359963,-83.1124575272155,8.7470375,64.6055896359963, 5185P 8722
+-83.7333363452825,8.7470375,64.6055896359963,-83.1124575272155, 5185P 8723
+7.1073375,64.6055896359963,-83.7333363452825,7.1073375,-0.001, 5185P 8724
+0.0565553944905625,-0.001,0.151; 5185P 8725
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5187P 8726
+1.29879546101888,1.29879546101888,-0.001,-0.001,0.151,0.151,1., 5187P 8727
+1.,1.,1.,59.5669785465442,-83.1232450272156,8.7470375, 5187P 8728
+45.545435010803,-83.1232450272155,8.7470375,59.5669785465442, 5187P 8729
+-83.1232450272156,7.1073375,45.545435010803,-83.1232450272155, 5187P 8730
+7.1073375,-0.00100000000000002,1.29879546101888,-0.001,0.151; 5187P 8731
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5189P 8732
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5189P 8733
+1.,1.,1.,1.,59.5561910465442,-83.7333363452825,8.7470375, 5189P 8734
+59.5561910465442,-83.1124575272156,8.7470375,59.5561910465442, 5189P 8735
+-83.7333363452825,7.1073375,59.5561910465442,-83.1124575272156, 5189P 8736
+7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5189P 8737
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5191P 8738
+0.0751056187947571,0.0751056187947571,-0.00100000000000011, 5191P 8739
+-0.00100000000000011,0.151,0.151,1.,1.,1.,1.,60.3663929092927, 5191P 8740
+-83.7225488452825,8.7470375,59.5454035465442,-83.7225488452825, 5191P 8741
+8.7470375,60.3663929092927,-83.7225488452825,7.1073375, 5191P 8742
+59.5454035465442,-83.7225488452825,7.1073375, 5191P 8743
+-0.00100000000000266,0.0751056187947571,-0.00100000000000011, 5191P 8744
+0.151; 5191P 8745
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5193P 8746
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5193P 8747
+60.3556054092926,-96.5341920472058,8.7470375,60.3556054092926, 5193P 8748
+-83.7117613452825,8.7470375,60.3556054092926,-96.5341920472058, 5193P 8749
+7.1073375,60.3556054092926,-83.7117613452825,7.1073375,-0.001, 5193P 8750
+1.187637840271,-0.001,0.151; 5193P 8751
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000247,-0.00100000000000247, 5195P 8752
+0.0751056187947571,0.0751056187947571,-0.001,-0.001,0.151,0.151, 5195P 8753
+1.,1.,1.,1.,59.5454035465442,-96.5234045472058,8.7470375, 5195P 8754
+60.3663929092926,-96.5234045472058,8.7470375,59.5454035465442, 5195P 8755
+-96.5234045472058,7.1073375,60.3663929092926,-96.5234045472058, 5195P 8756
+7.1073375,-0.00100000000000247,0.0751056187947571,-0.001,0.151; 5195P 8757
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5197P 8758
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5197P 8759
+1.,1.,1.,1.,59.5561910465442,-97.1334958652727,8.7470375, 5197P 8760
+59.5561910465442,-96.5126170472058,8.7470375,59.5561910465442, 5197P 8761
+-97.1334958652727,7.1073375,59.5561910465442,-96.5126170472059, 5197P 8762
+7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5197P 8763
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29879546101888, 5199P 8764
+1.29879546101888,-0.00100000000000011,-0.00100000000000011, 5199P 8765
+0.151,0.151,1.,1.,1.,1.,45.545435010803,-97.1227083652727, 5199P 8766
+8.7470375,59.5669785465442,-97.1227083652727,8.7470375, 5199P 8767
+45.545435010803,-97.1227083652727,7.1073375,59.5669785465442, 5199P 8768
+-97.1227083652727,7.1073375,-0.001,1.29879546101888, 5199P 8769
+-0.00100000000000011,0.151; 5199P 8770
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5201P 8771
+0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5201P 8772
+1.,1.,1.,1.,45.556222510803,-96.5126170472058,8.7470375, 5201P 8773
+45.556222510803,-97.1334958652727,8.7470375,45.556222510803, 5201P 8774
+-96.5126170472058,7.1073375,45.556222510803,-97.1334958652727, 5201P 8775
+7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5201P 8776
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751621398925796, 5203P 8777
+0.0751621398925796,-0.00100000000000001,-0.00100000000000001, 5203P 8778
+0.151,0.151,1.,1.,1.,1.,44.7454109267118,-96.5234045472058, 5203P 8779
+8.7470375,45.567010010803,-96.5234045472058,8.7470375, 5203P 8780
+44.7454109267118,-96.5234045472058,7.1073375,45.567010010803, 5203P 8781
+-96.5234045472058,7.1073375,-0.001,0.0751621398925796, 5203P 8782
+-0.00100000000000001,0.151; 5203P 8783
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5205P 8784
+1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5205P 8785
+44.7561984267118,-83.7117613452825,8.7470375,44.7561984267118, 5205P 8786
+-96.5341920472058,8.7470375,44.7561984267118,-83.7117613452825, 5205P 8787
+7.1073375,44.7561984267118,-96.5341920472058,7.1073375,-0.001, 5205P 8788
+1.187637840271,-0.001,0.151; 5205P 8789
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5207P 8790
+0.0751621398925796,0.0751621398925796,-0.001,-0.001,0.151,0.151, 5207P 8791
+1.,1.,1.,1.,45.567010010803,-83.7225488452825,8.7470375, 5207P 8792
+44.7454109267118,-83.7225488452825,8.7470375,45.567010010803, 5207P 8793
+-83.7225488452825,7.1073375,44.7454109267118,-83.7225488452825, 5207P 8794
+7.1073375,-0.00100000000000002,0.0751621398925796,-0.001,0.151; 5207P 8795
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905625, 5209P 8796
+0.0565553944905625,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5209P 8797
+45.556222510803,-83.1124575272155,8.7470375,45.556222510803, 5209P 8798
+-83.7333363452825,8.7470375,45.556222510803,-83.1124575272155, 5209P 8799
+7.1073375,45.556222510803,-83.7333363452825,7.1073375,-0.001, 5209P 8800
+0.0565553944905625,-0.001,0.151; 5209P 8801
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5211P 8802
+1.29891011810303,1.29891011810303,-0.00100000000000011, 5211P 8803
+-0.00100000000000011,0.151,0.151,1.,1.,1.,1.,154.818861794198, 5211P 8804
+-64.0711428662849,8.74703749999999,140.796081395161, 5211P 8805
+-64.0711428662849,8.74703749999999,154.818861794198, 5211P 8806
+-64.0711428662849,7.10733749999999,140.796081395161, 5211P 8807
+-64.0711428662849,7.10733749999999,-0.00100000000000002, 5211P 8808
+1.29891011810303,-0.00100000000000011,0.151; 5211P 8809
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5213P 8810
+0.0567168833414705,0.0567168833414705,-0.001,-0.001,0.151,0.151, 5213P 8811
+1.,1.,1.,1.,154.808074294198,-64.682976245331,8.74703749999999, 5213P 8812
+154.808074294198,-64.0603553662849,8.74703749999999, 5213P 8813
+154.808074294198,-64.682976245331,7.10733749999999, 5213P 8814
+154.808074294198,-64.0603553662849,7.10733749999999, 5213P 8815
+-0.00100000000000089,0.0567168833414705,-0.001,0.151; 5213P 8816
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5215P 8817
+0.0750926997042853,0.0750926997042853,-0.001,-0.001,0.151,0.151, 5215P 8818
+1.,1.,1.,1.,155.618136792065,-64.6721710896021,8.74703749999999, 5215P 8819
+154.7972867942,-64.6721889804501,8.74703749999999, 5215P 8820
+155.618136792065,-64.6721710896021,7.10733749999999, 5215P 8821
+154.7972867942,-64.6721889804501,7.10733749999999, 5215P 8822
+-0.00100000000000002,0.0750926997042853,-0.001,0.151; 5215P 8823
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5217P 8824
+1.18750703430176,1.18750703430176,-0.001,-0.001,0.151,0.151,1., 5217P 8825
+1.,1.,1.,155.607349292068,-77.4824034572515,8.74703749999999, 5217P 8826
+155.607349292068,-64.6613838247213,8.74703749999999, 5217P 8827
+155.607349292068,-77.4824034572515,7.10733749999999, 5217P 8828
+155.607349292068,-64.6613838247213,7.10733749999999, 5217P 8829
+-0.00100000000000178,1.18750703430176,-0.001,0.151; 5217P 8830
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5219P 8831
+0.0750926997042836,0.0750926997042836,-0.00100000000000001, 5219P 8832
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,154.7972867942, 5219P 8833
+-77.4716336129804,8.74703749999999,155.618136792065, 5219P 8834
+-77.4716157221324,8.74703749999999,154.7972867942, 5219P 8835
+-77.4716336129804,7.10733749999999,155.618136792065, 5219P 8836
+-77.4716157221324,7.10733749999999,-0.00100000000000178, 5219P 8837
+0.0750926997042836,-0.00100000000000001,0.151; 5219P 8838
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5221P 8839
+0.0566862004597987,0.0566862004597987,-0.001,-0.001,0.151,0.151, 5221P 8840
+1.,1.,1.,1.,154.808074294198,-78.0831357653214,8.74703749999999, 5221P 8841
+154.808074294198,-77.4608458778613,8.74703749999999, 5221P 8842
+154.808074294198,-78.0831357653214,7.10733749999999, 5221P 8843
+154.808074294198,-77.4608458778613,7.10733749999999, 5221P 8844
+-0.00100000000000089,0.0566862004597987,-0.001,0.151; 5221P 8845
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.2989097143819, 5223P 8846
+1.2989097143819,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5223P 8847
+140.796085750314,-78.0723308312895,8.74703749999999, 5223P 8848
+154.818861794198,-78.0723482787434,8.74703749999999, 5223P 8849
+140.796085750314,-78.0723308312895,7.10733749999999, 5223P 8850
+154.818861794198,-78.0723482787434,7.10733749999999,-0.001, 5223P 8851
+1.2989097143819,-0.001,0.151; 5223P 8852
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000082,-0.00100000000000082, 5225P 8853
+0.0566862004612659,0.0566862004612659,-0.001,-0.001,0.151,0.151, 5225P 8854
+1.,1.,1.,1.,140.806868816953,-77.4608284572517,8.74703749999999, 5225P 8855
+140.806873328523,-78.0831183447113,8.74703749999999, 5225P 8856
+140.806868816953,-77.4608284572517,7.10733749999999, 5225P 8857
+140.806873328523,-78.0831183447113,7.10733749999999, 5225P 8858
+-0.00100000000000082,0.0566862004612659,-0.001,0.151; 5225P 8859
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750874513166321, 5227P 8860
+0.0750874513166321,-0.00100000000000011,-0.00100000000000011, 5227P 8861
+0.151,0.151,1.,1.,1.,1.,139.996863014276,-77.471633612997, 5227P 8862
+8.74703749999999,140.817656395159,-77.4716157221157, 5227P 8863
+8.74703749999999,139.996863014276,-77.471633612997, 5227P 8864
+7.10733749999999,140.817656395159,-77.4716157221157, 5227P 8865
+7.10733749999999,-0.001,0.0750874513166321,-0.00100000000000011, 5227P 8866
+0.151; 5227P 8867
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18752964274096, 5229P 8868
+1.18752964274096,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5229P 8869
+140.007654873096,-64.6611573567939,8.74703749999999, 5229P 8870
+140.007650510603,-77.4824208778613,8.74703749999999, 5229P 8871
+140.007654873096,-64.6611573567939,7.10733749999999, 5229P 8872
+140.007650510603,-77.4824208778613,7.10733749999999,-0.001, 5229P 8873
+1.18752964274096,-0.001,0.151; 5229P 8874
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5231P 8875
+0.0750874512990324,0.0750874512990324,-0.001,-0.001,0.151,0.151, 5231P 8876
+1.,1.,1.,1.,140.817660750314,-64.6719448567939,8.74703749999999, 5231P 8877
+139.996867369426,-64.6719448567939,8.74703749999999, 5231P 8878
+140.817660750314,-64.6719448567939,7.10733749999999, 5231P 8879
+139.996867369426,-64.6719448567939,7.10733749999999, 5231P 8880
+-0.00100000000000002,0.0750874512990324,-0.001,0.151; 5231P 8881
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5233P 8882
+0.0566942749038051,0.0566942749038051,-0.001,-0.001,0.151,0.151, 5233P 8883
+1.,1.,1.,1.,140.806868816964,-64.0603553662852,8.74703749999999, 5233P 8884
+140.806873328511,-64.6827323567937,8.74703749999999, 5233P 8885
+140.806868816964,-64.0603553662852,7.10733749999999, 5233P 8886
+140.806873328511,-64.6827323567937,7.10733749999999, 5233P 8887
+-0.00100000000000178,0.0566942749038051,-0.001,0.151; 5233P 8888
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5235P 8889
+1.29888872083028,1.29888872083028,-0.00100000000000009, 5235P 8890
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,135.768458142722, 5235P 8891
+-64.0711428662849,8.74703749999999,121.745908566765, 5235P 8892
+-64.0711428662849,8.74703749999999,135.768458142722, 5235P 8893
+-64.0711428662849,7.10733749999999,121.745908566765, 5235P 8894
+-64.0711428662849,7.10733749999999,-0.00100000000000002, 5235P 8895
+1.29888872083028,-0.00100000000000009,0.151; 5235P 8896
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0694050623575851, 5237P 8897
+0.0694050623575851,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5237P 8898
+135.757670642722,-64.8198499764674,8.74703749999999, 5237P 8899
+135.757670642722,-64.0603553662849,8.74703749999999, 5237P 8900
+135.757670642722,-64.8198499764674,7.10733749999999, 5237P 8901
+135.757670642722,-64.0603553662849,7.10733749999999,-0.001, 5237P 8902
+0.0694050623575851,-0.001,0.151; 5237P 8903
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5239P 8904
+0.0750967369255561,0.0750967369255561,-0.001,-0.001,0.151,0.151, 5239P 8905
+1.,1.,1.,1.,136.567776692114,-64.8090448207513,8.74703749999999, 5239P 8906
+135.746883142724,-64.8090627115737,8.74703749999999, 5239P 8907
+136.567776692114,-64.8090448207513,7.10733749999999, 5239P 8908
+135.746883142724,-64.8090627115737,7.10733749999999, 5239P 8909
+-0.00100000000000002,0.0750967369255561,-0.001,0.151; 5239P 8910
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5241P 8911
+1.18750703430176,1.18750703430176,-0.001,-0.001,0.151,0.151,1., 5241P 8912
+1.,1.,1.,136.556989192117,-77.6192771883878,8.74703749999999, 5241P 8913
+136.556989192117,-64.7982575558576,8.74703749999999, 5241P 8914
+136.556989192117,-77.6192771883878,7.10733749999999, 5241P 8915
+136.556989192117,-64.7982575558576,7.10733749999999, 5241P 8916
+-0.00100000000000178,1.18750703430176,-0.001,0.151; 5241P 8917
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750967369255578, 5243P 8918
+0.0750967369255578,-0.00100000000000001,-0.00100000000000001, 5243P 8919
+0.151,0.151,1.,1.,1.,1.,135.746883142724,-77.6085073441039, 5243P 8920
+8.74703749999999,136.567776692114,-77.6084894532815, 5243P 8921
+8.74703749999999,135.746883142724,-77.6085073441039, 5243P 8922
+7.10733749999999,136.567776692114,-77.6084894532815, 5243P 8923
+7.10733749999999,-0.001,0.0750967369255578,-0.00100000000000001, 5243P 8924
+0.151; 5243P 8925
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5245P 8926
+0.0439980214436811,0.0439980214436811,-0.001,-0.001,0.151,0.151, 5245P 8927
+1.,1.,1.,1.,135.757670642722,-78.0831357653213,8.74703749999999, 5245P 8928
+135.757670642722,-77.5977196089976,8.74703749999999, 5245P 8929
+135.757670642722,-78.0831357653213,7.10733749999999, 5245P 8930
+135.757670642722,-77.5977196089976,7.10733749999999, 5245P 8931
+-0.00100000000000178,0.0439980214436811,-0.001,0.151; 5245P 8932
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888872083129, 5247P 8933
+1.29888872083129,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5247P 8934
+121.745908566765,-78.0723308312893,8.74703749999999, 5247P 8935
+135.768458142722,-78.0723482787436,8.74703749999999, 5247P 8936
+121.745908566765,-78.0723308312893,7.10733749999999, 5247P 8937
+135.768458142722,-78.0723482787436,7.10733749999999,-0.001, 5247P 8938
+1.29888872083129,-0.001,0.151; 5247P 8939
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000082,-0.00100000000000082, 5249P 8940
+0.0566862004598022,0.0566862004598022,-0.001,-0.001,0.151,0.151, 5249P 8941
+1.,1.,1.,1.,121.756696066765,-77.4608284572515,8.74703749999999, 5249P 8942
+121.756696066765,-78.0831183447116,8.74703749999999, 5249P 8943
+121.756696066765,-77.4608284572515,7.10733749999999, 5249P 8944
+121.756696066765,-78.0831183447116,7.10733749999999, 5249P 8945
+-0.00100000000000082,0.0566862004598022,-0.001,0.151; 5249P 8946
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056188123554, 5251P 8947
+0.0751056188123554,-0.00100000000000001,-0.00100000000000001, 5251P 8948
+0.151,0.151,1.,1.,1.,1.,120.946494204019,-77.4716336129394, 5251P 8949
+8.74703749999999,121.767483566763,-77.4716157221733, 5251P 8950
+8.74703749999999,120.946494204019,-77.4716336129394, 5251P 8951
+7.10733749999999,121.767483566763,-77.4716157221733, 5251P 8952
+7.10733749999999,-0.001,0.0751056188123554,-0.00100000000000001, 5251P 8953
+0.151; 5251P 8954
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18752964274089, 5253P 8955
+1.18752964274089,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5253P 8956
+120.957281704017,-64.6611573567939,8.74703749999999, 5253P 8957
+120.957281704017,-77.4824208778613,8.74703749999999, 5253P 8958
+120.957281704017,-64.6611573567939,7.10733749999999, 5253P 8959
+120.957281704017,-77.4824208778613,7.10733749999999,-0.001, 5253P 8960
+1.18752964274089,-0.001,0.151; 5253P 8961
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5255P 8962
+0.0751056187947589,0.0751056187947589,-0.001,-0.001,0.151,0.151, 5255P 8963
+1.,1.,1.,1.,121.767483566765,-64.6719448567939,8.74703749999999, 5255P 8964
+120.946494204017,-64.6719448567939,8.74703749999999, 5255P 8965
+121.767483566765,-64.6719448567939,7.10733749999999, 5255P 8966
+120.946494204017,-64.6719448567939,7.10733749999999, 5255P 8967
+-0.00100000000000002,0.0751056187947589,-0.001,0.151; 5255P 8968
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5257P 8969
+0.0566942749023418,0.0566942749023418,-0.001,-0.001,0.151,0.151, 5257P 8970
+1.,1.,1.,1.,121.756696066765,-64.0603553662849,8.74703749999999, 5257P 8971
+121.756696066765,-64.6827323567939,8.74703749999999, 5257P 8972
+121.756696066765,-64.0603553662849,7.10733749999999, 5257P 8973
+121.756696066765,-64.6827323567939,7.10733749999999, 5257P 8974
+-0.00100000000000178,0.0566942749023418,-0.001,0.151; 5257P 8975
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5259P 8976
+1.29888831710916,1.29888831710916,-0.00100000000000009, 5259P 8977
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,116.718084977313, 5259P 8978
+-64.0713693476345,8.74703749999999,102.695539756509, 5259P 8979
+-64.0713519001801,8.7470375,116.718084977313,-64.0713693476345, 5259P 8980
+7.10733749999999,102.695539756509,-64.0713519001801, 5259P 8981
+7.10733749999999,-0.00100000000000002,1.29888831710916, 5259P 8982
+-0.00100000000000009,0.151; 5259P 8983
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958897908597, 5261P 8984
+0.0566958897908597,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5261P 8985
+116.707297477313,-64.6829762453311,8.74703749999999, 5261P 8986
+116.707297477313,-64.0605818342122,8.74703749999999, 5261P 8987
+116.707297477313,-64.6829762453311,7.10733749999999, 5261P 8988
+116.707297477313,-64.0605818342122,7.10733749999999,-0.001, 5261P 8989
+0.0566958897908597,-0.001,0.151; 5261P 8990
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5263P 8991
+0.0751056188123554,0.0751056188123554,-0.001,-0.001,0.151,0.151, 5263P 8992
+1.,1.,1.,1.,117.517499340059,-64.6721710896431,8.74703749999999, 5263P 8993
+116.696509977316,-64.6721889804092,8.74703749999999, 5263P 8994
+117.517499340059,-64.6721710896431,7.10733749999999, 5263P 8995
+116.696509977316,-64.6721889804092,7.10733749999999, 5263P 8996
+-0.00100000000000002,0.0751056188123554,-0.001,0.151; 5263P 8997
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000165,-0.00100000000000165, 5265P 8998
+1.18750703430203,1.18750703430203,-0.001,-0.001,0.151,0.151,1., 5265P 8999
+1.,1.,1.,117.506720557708,-77.4824034572515,8.74703749999999, 5265P 9000
+117.50671183272,-64.6613838247212,8.74703749999999, 5265P 9001
+117.506720557708,-77.4824034572515,7.10733749999999, 5265P 9002
+117.50671183272,-64.6613838247212,7.10733749999999, 5265P 9003
+-0.00100000000000165,1.18750703430203,-0.001,0.151; 5265P 9004
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056188123554, 5267P 9005
+0.0751056188123554,-0.00100000000000001,-0.00100000000000001, 5267P 9006
+0.151,0.151,1.,1.,1.,1.,116.696518687621,-77.4716336129394, 5267P 9007
+8.74703749999999,117.517508050364,-77.4716157221734, 5267P 9008
+8.74703749999999,116.696518687621,-77.4716336129394, 5267P 9009
+7.10733749999999,117.517508050364,-77.4716157221734, 5267P 9010
+7.10733749999999,-0.001,0.0751056188123554,-0.00100000000000001, 5267P 9011
+0.151; 5267P 9012
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5269P 9013
+0.0566862004656526,0.0566862004656526,-0.001,-0.001,0.151,0.151, 5269P 9014
+1.,1.,1.,1.,116.707297320895,-78.0831357653202,8.74703749999999, 5269P 9015
+116.707306344036,-77.4608458778624,8.74703749999999, 5269P 9016
+116.707297320895,-78.0831357653202,7.10733749999999, 5269P 9017
+116.707306344036,-77.4608458778624,7.10733749999999, 5269P 9018
+-0.00100000000000089,0.0566862004656526,-0.001,0.151; 5269P 9019
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710916, 5271P 9020
+1.29888831710916,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5271P 9021
+102.695539756509,-78.0723308312893,8.7470375,116.718084977313, 5271P 9022
+-78.0723482787436,8.74703749999999,102.695539756509, 5271P 9023
+-78.0723308312893,7.10733749999999,116.718084977313, 5271P 9024
+-78.0723482787436,7.10733749999999,-0.001,1.29888831710916, 5271P 9025
+-0.001,0.151; 5271P 9026
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000082,-0.00100000000000082, 5273P 9027
+0.0566862004598022,0.0566862004598022,-0.001,-0.001,0.151,0.151, 5273P 9028
+1.,1.,1.,1.,102.706327256509,-77.4608284572515,8.7470375, 5273P 9029
+102.706327256509,-78.0831183447116,8.7470375,102.706327256509, 5273P 9030
+-77.4608284572515,7.10733749999999,102.706327256509, 5273P 9031
+-78.0831183447116,7.10733749999999,-0.00100000000000082, 5273P 9032
+0.0566862004598022,-0.001,0.151; 5273P 9033
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5275P 9034
+0.0751056188123522,0.0751056188123522,-0.00100000000000001, 5275P 9035
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,101.896125393763, 5275P 9036
+-77.4716336129394,8.7470375,102.717114756506,-77.4716157221733, 5275P 9037
+8.7470375,101.896125393763,-77.4716336129394,7.10733749999999, 5275P 9038
+102.717114756506,-77.4716157221733,7.10733749999999, 5275P 9039
+-0.00100000000000178,0.0751056188123522,-0.00100000000000001, 5275P 9040
+0.151; 5275P 9041
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18750703430176, 5277P 9042
+1.18750703430176,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5277P 9043
+101.90691289376,-64.661401245331,8.7470375,101.90691289376, 5277P 9044
+-77.4824208778613,8.7470375,101.90691289376,-64.661401245331, 5277P 9045
+7.10733749999999,101.90691289376,-77.4824208778613, 5277P 9046
+7.10733749999999,-0.001,1.18750703430176,-0.001,0.151; 5277P 9047
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5279P 9048
+0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 5279P 9049
+1.,1.,1.,1.,102.717114756506,-64.6721710896431,8.7470375, 5279P 9050
+101.896125393763,-64.6721889804091,8.7470375,102.717114756506, 5279P 9051
+-64.6721710896431,7.10733749999999,101.896125393763, 5279P 9052
+-64.6721889804091,7.10733749999999,-0.00100000000000178, 5279P 9053
+0.0751056188123521,-0.001,0.151; 5279P 9054
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958897908557, 5281P 9055
+0.0566958897908557,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5281P 9056
+102.706327256509,-64.0605644136024,8.7470375,102.706327256509, 5281P 9057
+-64.6829588247213,8.7470375,102.706327256509,-64.0605644136024, 5281P 9058
+7.10733749999999,102.706327256509,-64.6829588247213, 5281P 9059
+7.10733749999999,-0.001,0.0566958897908557,-0.001,0.151; 5281P 9060
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5283P 9061
+1.29888831710916,1.29888831710916,-0.00100000000000009, 5283P 9062
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,97.6677161670568, 5283P 9063
+-64.0713693476345,8.7470375,83.6451709462526,-64.0713519001801, 5283P 9064
+8.7470375,97.6677161670568,-64.0713693476345,7.10733749999999, 5283P 9065
+83.6451709462526,-64.0713519001801,7.1073375, 5283P 9066
+-0.00100000000000002,1.29888831710916,-0.00100000000000009, 5283P 9067
+0.151; 5283P 9068
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958897908597, 5285P 9069
+0.0566958897908597,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5285P 9070
+97.6569286670568,-64.6829762453311,8.7470375,97.6569286670568, 5285P 9071
+-64.0605818342122,8.7470375,97.6569286670568,-64.6829762453311, 5285P 9072
+7.10733749999999,97.6569286670568,-64.0605818342122, 5285P 9073
+7.10733749999999,-0.001,0.0566958897908597,-0.001,0.151; 5285P 9074
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5287P 9075
+0.0751056188123537,0.0751056188123537,-0.001,-0.001,0.151,0.151, 5287P 9076
+1.,1.,1.,1.,98.4671305298027,-64.6721710896431,8.7470375, 5287P 9077
+97.6461411670594,-64.6721889804092,8.7470375,98.4671305298027, 5287P 9078
+-64.6721710896431,7.10733749999999,97.6461411670594, 5287P 9079
+-64.6721889804092,7.10733749999999,-0.00100000000000178, 5287P 9080
+0.0751056188123537,-0.001,0.151; 5287P 9081
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5289P 9082
+1.18750703430176,1.18750703430176,-0.001,-0.001,0.151,0.151,1., 5289P 9083
+1.,1.,1.,98.4563430298053,-77.4824034572515,8.7470375, 5289P 9084
+98.4563430298053,-64.6613838247213,8.7470375,98.4563430298053, 5289P 9085
+-77.4824034572515,7.10733749999999,98.4563430298053, 5289P 9086
+-64.6613838247213,7.10733749999999,-0.00100000000000178, 5289P 9087
+1.18750703430176,-0.001,0.151; 5289P 9088
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000165,-0.00100000000000165, 5291P 9089
+0.0751056188123537,0.0751056188123537,-0.00100000000000001, 5291P 9090
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,97.6461411670594, 5291P 9091
+-77.4716336129394,8.7470375,98.4671305298027,-77.4716157221734, 5291P 9092
+8.7470375,97.6461411670594,-77.4716336129394,7.10733749999999, 5291P 9093
+98.4671305298027,-77.4716157221734,7.10733749999999, 5291P 9094
+-0.00100000000000165,0.0751056188123537,-0.00100000000000001, 5291P 9095
+0.151; 5291P 9096
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5293P 9097
+0.0566862004597987,0.0566862004597987,-0.001,-0.001,0.151,0.151, 5293P 9098
+1.,1.,1.,1.,97.6569286670568,-78.0831357653214,8.7470375, 5293P 9099
+97.6569286670568,-77.4608458778613,8.7470375,97.6569286670568, 5293P 9100
+-78.0831357653214,7.10733749999999,97.6569286670568, 5293P 9101
+-77.4608458778613,7.10733749999999,-0.00100000000000089, 5293P 9102
+0.0566862004597987,-0.001,0.151; 5293P 9103
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888912455341, 5295P 9104
+1.29888912455341,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5295P 9105
+83.6451622359477,-78.0723308312893,8.7470375,97.6677161670568, 5295P 9106
+-78.0723482787436,8.7470375,83.6451622359477,-78.0723308312893, 5295P 9107
+7.1073375,97.6677161670569,-78.0723482787436,7.1073375,-0.001, 5295P 9108
+1.29888912455341,-0.001,0.151; 5295P 9109
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5297P 9110
+0.0566862004656559,0.0566862004656559,-0.001,-0.001,0.151,0.151, 5297P 9111
+1.,1.,1.,1.,83.6559586026702,-77.4608284572526,8.7470375, 5297P 9112
+83.6559495795301,-78.0831183447104,8.7470375,83.6559586026702, 5297P 9113
+-77.4608284572526,7.1073375,83.65594957953,-78.0831183447104, 5297P 9114
+7.1073375,-0.00100000000000089,0.0566862004656559,-0.001,0.151; 5297P 9115
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5299P 9116
+0.0751056188123522,0.0751056188123522,-0.00100000000000001, 5299P 9117
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,82.8457565835067, 5299P 9118
+-77.4716336129394,8.7470375,83.66674594625,-77.4716157221733, 5299P 9119
+8.7470375,82.8457565835067,-77.4716336129394,7.1073375, 5299P 9120
+83.66674594625,-77.4716157221733,7.1073375,-0.00100000000000178, 5299P 9121
+0.0751056188123522,-0.00100000000000001,0.151; 5299P 9122
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18750703430176, 5301P 9123
+1.18750703430176,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5301P 9124
+82.8565440835042,-64.661401245331,8.7470375,82.8565440835042, 5301P 9125
+-77.4824208778613,8.7470375,82.8565440835042,-64.661401245331, 5301P 9126
+7.1073375,82.8565440835042,-77.4824208778613,7.1073375,-0.001, 5301P 9127
+1.18750703430176,-0.001,0.151; 5301P 9128
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5303P 9129
+0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 5303P 9130
+1.,1.,1.,1.,83.66674594625,-64.6721710896431,8.7470375, 5303P 9131
+82.8457565835067,-64.6721889804091,8.7470375,83.66674594625, 5303P 9132
+-64.6721710896431,7.1073375,82.8457565835067,-64.6721889804091, 5303P 9133
+7.1073375,-0.00100000000000178,0.0751056188123521,-0.001,0.151; 5303P 9134
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958897908557, 5305P 9135
+0.0566958897908557,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5305P 9136
+83.6559584462526,-64.0605644136024,8.7470375,83.6559584462526, 5305P 9137
+-64.6829588247213,8.7470375,83.6559584462526,-64.0605644136024, 5305P 9138
+7.1073375,83.6559584462526,-64.6829588247213,7.1073375,-0.001, 5305P 9139
+0.0566958897908557,-0.001,0.151; 5305P 9140
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5307P 9141
+1.29888831710916,1.29888831710916,-0.00100000000000009, 5307P 9142
+-0.00100000000000009,0.151,0.151,1.,1.,1.,1.,78.6173473568005, 5307P 9143
+-64.0713693476345,8.7470375,64.5948021359963,-64.0713519001801, 5307P 9144
+8.7470375,78.6173473568005,-64.0713693476345,7.1073375, 5307P 9145
+64.5948021359963,-64.0713519001801,7.1073375, 5307P 9146
+-0.00100000000000002,1.29888831710916,-0.00100000000000009, 5307P 9147
+0.151; 5307P 9148
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958897908597, 5309P 9149
+0.0566958897908597,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5309P 9150
+78.6065598568005,-64.6829762453311,8.7470375,78.6065598568005, 5309P 9151
+-64.0605818342122,8.7470375,78.6065598568005,-64.6829762453311, 5309P 9152
+7.1073375,78.6065598568005,-64.0605818342122,7.1073375,-0.001, 5309P 9153
+0.0566958897908597,-0.001,0.151; 5309P 9154
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5311P 9155
+0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 5311P 9156
+1.,1.,1.,1.,79.4167617195464,-64.6721710896431,8.7470375, 5311P 9157
+78.5957723568031,-64.6721889804092,8.7470375,79.4167617195464, 5311P 9158
+-64.6721710896431,7.1073375,78.5957723568031,-64.6721889804092, 5311P 9159
+7.1073375,-0.00100000000000266,0.0751056188123521,-0.001,0.151; 5311P 9160
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5313P 9161
+1.18750703430176,1.18750703430176,-0.001,-0.001,0.151,0.151,1., 5313P 9162
+1.,1.,1.,79.4059742195489,-77.4824034572515,8.7470375, 5313P 9163
+79.4059742195489,-64.6613838247213,8.7470375,79.4059742195489, 5313P 9164
+-77.4824034572515,7.1073375,79.4059742195489,-64.6613838247213, 5313P 9165
+7.1073375,-0.00100000000000178,1.18750703430176,-0.001,0.151; 5313P 9166
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5315P 9167
+0.0751056188123522,0.0751056188123522,-0.00100000000000001, 5315P 9168
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,78.595772356803, 5315P 9169
+-77.4716336129394,8.7470375,79.4167617195464,-77.4716157221734, 5315P 9170
+8.7470375,78.595772356803,-77.4716336129394,7.1073375, 5315P 9171
+79.4167617195464,-77.4716157221734,7.1073375, 5315P 9172
+-0.00100000000000266,0.0751056188123522,-0.00100000000000001, 5315P 9173
+0.151; 5315P 9174
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5317P 9175
+0.0566862004597987,0.0566862004597987,-0.001,-0.001,0.151,0.151, 5317P 9176
+1.,1.,1.,1.,78.6065598568005,-78.0831357653214,8.7470375, 5317P 9177
+78.6065598568005,-77.4608458778613,8.7470375,78.6065598568005, 5317P 9178
+-78.0831357653214,7.1073375,78.6065598568005,-77.4608458778613, 5317P 9179
+7.1073375,-0.00100000000000089,0.0566862004597987,-0.001,0.151; 5317P 9180
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710916, 5319P 9181
+1.29888831710916,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5319P 9182
+64.5948021359963,-78.0723308312893,8.7470375,78.6173473568005, 5319P 9183
+-78.0723482787436,8.7470375,64.5948021359963,-78.0723308312893, 5319P 9184
+7.1073375,78.6173473568005,-78.0723482787436,7.1073375,-0.001, 5319P 9185
+1.29888831710916,-0.001,0.151; 5319P 9186
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000082,-0.00100000000000082, 5321P 9187
+0.0566862004598022,0.0566862004598022,-0.001,-0.001,0.151,0.151, 5321P 9188
+1.,1.,1.,1.,64.6055896359963,-77.4608284572515,8.7470375, 5321P 9189
+64.6055896359963,-78.0831183447116,8.7470375,64.6055896359963, 5321P 9190
+-77.4608284572515,7.1073375,64.6055896359963,-78.0831183447116, 5321P 9191
+7.1073375,-0.00100000000000082,0.0566862004598022,-0.001,0.151; 5321P 9192
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5323P 9193
+0.0751056188123522,0.0751056188123522,-0.00100000000000001, 5323P 9194
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,63.7953877732504, 5323P 9195
+-77.4716336129394,8.7470375,64.6163771359937,-77.4716157221733, 5323P 9196
+8.7470375,63.7953877732504,-77.4716336129394,7.1073375, 5323P 9197
+64.6163771359937,-77.4716157221733,7.1073375, 5323P 9198
+-0.00100000000000266,0.0751056188123522,-0.00100000000000001, 5323P 9199
+0.151; 5323P 9200
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18750703430176, 5325P 9201
+1.18750703430176,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5325P 9202
+63.8061752732478,-64.661401245331,8.7470375,63.8061752732478, 5325P 9203
+-77.4824208778613,8.7470375,63.8061752732478,-64.661401245331, 5325P 9204
+7.1073375,63.8061752732478,-77.4824208778613,7.1073375,-0.001, 5325P 9205
+1.18750703430176,-0.001,0.151; 5325P 9206
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000249,-0.00100000000000249, 5327P 9207
+0.0751056188123528,0.0751056188123528,-0.001,-0.001,0.151,0.151, 5327P 9208
+1.,1.,1.,1.,64.6163771359937,-64.6721710896431,8.7470375, 5327P 9209
+63.7953877732504,-64.6721889804091,8.7470375,64.6163771359937, 5327P 9210
+-64.6721710896431,7.1073375,63.7953877732504,-64.6721889804091, 5327P 9211
+7.1073375,-0.00100000000000249,0.0751056188123528,-0.001,0.151; 5327P 9212
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958897908557, 5329P 9213
+0.0566958897908557,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5329P 9214
+64.6055896359963,-64.0605644136024,8.7470375,64.6055896359963, 5329P 9215
+-64.6829588247213,8.7470375,64.6055896359963,-64.0605644136024, 5329P 9216
+7.1073375,64.6055896359963,-64.6829588247213,7.1073375,-0.001, 5329P 9217
+0.0566958897908557,-0.001,0.151; 5329P 9218
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5331P 9219
+1.29879626846414,1.29879626846414,-0.001,-0.001,0.151,0.151,1., 5331P 9220
+1.,1.,1.,59.5672485659959,-64.0713693476354,8.7470375, 5331P 9221
+45.5456963199499,-64.0713519001792,8.7470375,59.5672485659959, 5331P 9222
+-64.0713693476354,7.1073375,45.5456963199499,-64.0713519001792, 5331P 9223
+7.1073375,-0.00100000000000002,1.29879626846414,-0.001,0.151; 5331P 9224
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958897908597, 5333P 9225
+0.0566958897908597,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5333P 9226
+59.5564610659959,-64.6829762453311,8.7470375,59.5564610659959, 5333P 9227
+-64.0605818342122,8.7470375,59.5564610659959,-64.6829762453311, 5333P 9228
+7.1073375,59.5564610659959,-64.0605818342122,7.1073375,-0.001, 5333P 9229
+0.0566958897908597,-0.001,0.151; 5333P 9230
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5335P 9231
+0.0751056188123538,0.0751056188123538,-0.00100000000000011, 5335P 9232
+-0.00100000000000011,0.151,0.151,1.,1.,1.,1.,60.3666629287418, 5335P 9233
+-64.6721710896431,8.7470375,59.5456735659985,-64.6721889804092, 5335P 9234
+8.7470375,60.3666629287418,-64.6721710896431,7.1073375, 5335P 9235
+59.5456735659985,-64.6721889804092,7.1073375, 5335P 9236
+-0.00100000000000089,0.0751056188123538,-0.00100000000000011, 5335P 9237
+0.151; 5335P 9238
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5337P 9239
+1.18750703430176,1.18750703430176,-0.001,-0.001,0.151,0.151,1., 5337P 9240
+1.,1.,1.,60.3558754287444,-77.4824034572515,8.7470375, 5337P 9241
+60.3558754287444,-64.6613838247213,8.7470375,60.3558754287444, 5337P 9242
+-77.4824034572515,7.1073375,60.3558754287444,-64.6613838247213, 5337P 9243
+7.1073375,-0.00100000000000178,1.18750703430176,-0.001,0.151; 5337P 9244
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5339P 9245
+0.0751056188123538,0.0751056188123538,-0.001,-0.001,0.151,0.151, 5339P 9246
+1.,1.,1.,1.,59.5456735659985,-77.4716336129394,8.7470375, 5339P 9247
+60.3666629287418,-77.4716157221734,8.7470375,59.5456735659985, 5339P 9248
+-77.4716336129394,7.1073375,60.3666629287418,-77.4716157221734, 5339P 9249
+7.1073375,-0.00100000000000089,0.0751056188123538,-0.001,0.151; 5339P 9250
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5341P 9251
+0.0566862004597987,0.0566862004597987,-0.001,-0.001,0.151,0.151, 5341P 9252
+1.,1.,1.,1.,59.5564610659959,-78.0831357653214,8.7470375, 5341P 9253
+59.5564610659959,-77.4608458778613,8.7470375,59.5564610659959, 5341P 9254
+-78.0831357653214,7.1073375,59.5564610659959,-77.4608458778613, 5341P 9255
+7.1073375,-0.00100000000000089,0.0566862004597987,-0.001,0.151; 5341P 9256
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29879626846414, 5343P 9257
+1.29879626846414,-0.00100000000000011,-0.00100000000000011, 5343P 9258
+0.151,0.151,1.,1.,1.,1.,45.5456963199499,-78.0723308312883, 5343P 9259
+8.7470375,59.5672485659959,-78.0723482787446,8.7470375, 5343P 9260
+45.5456963199499,-78.0723308312883,7.1073375,59.5672485659959, 5343P 9261
+-78.0723482787446,7.1073375,-0.001,1.29879626846414, 5343P 9262
+-0.00100000000000011,0.151; 5343P 9263
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000082,-0.00100000000000082, 5345P 9264
+0.0566862004598022,0.0566862004598022,-0.001,-0.001,0.151,0.151, 5345P 9265
+1.,1.,1.,1.,45.5564838199499,-77.4608284572515,8.7470375, 5345P 9266
+45.5564838199499,-78.0831183447116,8.7470375,45.5564838199499, 5345P 9267
+-77.4608284572515,7.1073375,45.5564838199499,-78.0831183447116, 5345P 9268
+7.1073375,-0.00100000000000082,0.0566862004598022,-0.001,0.151; 5345P 9269
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5347P 9270
+0.0751621399101601,0.0751621399101601,-0.00100000000000001, 5347P 9271
+-0.00100000000000001,0.151,0.151,1.,1.,1.,1.,44.7456722358612, 5347P 9272
+-77.4716336127602,8.7470375,45.5672713199473,-77.4716157223525, 5347P 9273
+8.7470375,44.7456722358612,-77.4716336127602,7.1073375, 5347P 9274
+45.5672713199473,-77.4716157223525,7.1073375, 5347P 9275
+-0.00100000000000089,0.0751621399101601,-0.00100000000000001, 5347P 9276
+0.151; 5347P 9277
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18750703430286, 5349P 9278
+1.18750703430286,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5349P 9279
+44.7564771711507,-64.661401245331,8.7470375,44.7564597211764, 5349P 9280
+-77.4824208778613,8.7470375,44.7564771711507,-64.661401245331, 5349P 9281
+7.1073375,44.7564597211764,-77.4824208778613,7.1073375,-0.001, 5349P 9282
+1.18750703430286,-0.001,0.151; 5349P 9283
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5351P 9284
+0.0751621399101601,0.0751621399101601,-0.001,-0.001,0.151,0.151, 5351P 9285
+1.,1.,1.,1.,45.5672887405571,-64.6721710898223,8.7470375, 5351P 9286
+44.745689656471,-64.67218898023,8.7470375,45.5672887405571, 5351P 9287
+-64.6721710898223,7.1073375,44.745689656471,-64.67218898023, 5351P 9288
+7.1073375,-0.00100000000000089,0.0751621399101601,-0.001,0.151; 5351P 9289
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958898142677, 5353P 9290
+0.0566958898142677,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5353P 9291
+45.556483507169,-64.0605644136069,8.7470375,45.5565015533406, 5353P 9292
+-64.6829588247167,8.7470375,45.556483507169,-64.0605644136069, 5353P 9293
+7.1073375,45.5565015533406,-64.6829588247167,7.1073375,-0.001, 5353P 9294
+0.0566958898142677,-0.001,0.151; 5353P 9295
+128,1,2,1,2,0,0,0,0,0,-1.22399089060933D-16, 5355P 9296
+-1.22399089060933D-16,0.808189655172426,0.808189655172426,0.,0., 5355P 9297
+0.,1.53806598054936,1.53806598054936,1.53806598054936,1.,1., 5355P 9298
+0.718583503390008,0.718583503390008,1.,1.,155.763761628875, 5355P 9299
+-53.5475075752323,7.11812499999999,155.763761628875, 5355P 9300
+-53.5475075752323,8.73624999999999,157.701439739527, 5355P 9301
+-53.5475075752323,7.11812499999999,157.701439739527, 5355P 9302
+-53.5475075752323,8.73624999999999,157.764849292068, 5355P 9303
+-55.4841478849295,7.11812499999999,157.764849292068, 5355P 9304
+-55.4841478849295,8.73624999999999,-1.22399089060933D-16, 5355P 9305
+0.808189655172426,0.,1.53806598054936; 5355P 9306
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,10.305761256663, 5357P 9307
+10.305761256663,-0.00100000000000003,-0.00100000000000003,0.151, 5357P 9308
+0.151,1.,1.,1.,1.,44.5903620726228,-53.5475075752323,8.7470375, 5357P 9309
+155.774549128875,-53.5475075752323,8.74703749999999, 5357P 9310
+44.5903620726228,-53.5475075752323,7.1073375,155.774549128875, 5357P 9311
+-53.5475075752323,7.10733749999999,-0.001,10.305761256663, 5357P 9312
+-0.00100000000000003,0.151; 5357P 9313
+128,1,2,1,2,0,0,0,0,0,-2.17306280968065D-30, 5359P 9314
+-2.17306280968065D-30,0.808189655172443,0.808189655172443, 5359P 9315
+-1.25985272984906D-14,-1.25985272984906D-14, 5359P 9316
+-1.25985272984906D-14,1.57079496575076,1.57079496575076, 5359P 9317
+1.57079496575076,1.,1.,0.707107262388147,0.707107262388147,1., 5359P 9318
+1.,42.5989895726247,-55.5496648502041,7.118125,42.5989895726247, 5359P 9319
+-55.5496648502041,8.73625,42.5989922976491,-53.5475075752323, 5359P 9320
+7.118125,42.5989922976491,-53.5475075752323,8.73625, 5359P 9321
+44.6011495726228,-53.5475075752324,7.118125,44.6011495726228, 5359P 9322
+-53.5475075752324,8.73625,-2.17306280968065D-30, 5359P 9323
+0.808189655172443,-1.25985272984906D-14,1.57079496575076; 5359P 9324
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,7.62068862441746, 5361P 9325
+7.62068862441746,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5361P 9326
+42.5989922980068,-137.757843386107,8.7470375,42.5989895722671, 5361P 9327
+-55.5388773502041,8.7470375,42.5989922980068,-137.757843386107, 5361P 9328
+7.1073375,42.5989895722671,-55.5388773502041,7.1073375,-0.001, 5361P 9329
+7.62068862441746,-0.001,0.151; 5361P 9330
+128,1,2,1,2,0,0,0,0,0,-1.0865314048403D-30,-1.0865314048403D-30, 5363P 9331
+0.808189655172426,0.808189655172426,5.99711237284094D-16, 5363P 9332
+5.99711237284094D-16,5.99711237284094D-16,1.57079632679492, 5363P 9333
+1.57079632679492,1.57079632679492,1.,1.,0.707106781186538, 5363P 9334
+0.707106781186538,1.,1.,44.6011522976492,-139.749215886107, 5363P 9335
+7.118125,44.6011522976492,-139.749215886107,8.73625, 5363P 9336
+42.5989922976492,-139.749215886107,7.118125,42.5989922976492, 5363P 9337
+-139.749215886107,8.73625,42.5989922976492,-137.747055886107, 5363P 9338
+7.118125,42.5989922976492,-137.747055886107,8.73625, 5363P 9339
+-1.0865314048403D-30,0.808189655172426,5.99711237284094D-16, 5363P 9340
+1.57079632679492; 5363P 9341
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5365P 9342
+10.3057578082426,10.3057578082426,-0.001,-0.001,0.151,0.151,1., 5365P 9343
+1.,1.,1.,155.774514654066,-139.749215886107,8.74703749999999, 5365P 9344
+44.5903647976492,-139.749215886107,8.7470375,155.774514654066, 5365P 9345
+-139.749215886107,7.10733749999999,44.5903647976492, 5365P 9346
+-139.749215886107,7.1073375,-0.00100000000000002, 5365P 9347
+10.3057578082426,-0.001,0.151; 5365P 9348
+128,1,4,1,2,0,0,0,0,0,-1.22464679896581D-16, 5367P 9349
+-1.22464679896581D-16,0.808189655172408,0.808189655172408, 5367P 9350
+2.97223250293513D-15,2.97223250293513D-15,2.97223250293513D-15, 5367P 9351
+0.785406772727348,0.785406772727348,1.57081354545469, 5367P 9352
+1.57081354545469,1.57081354545469,1.,1.,0.92387788517877, 5367P 9353
+0.92387788517877,1.,1.,0.92387788517877,0.92387788517877,1.,1., 5367P 9354
+157.76588715377,-137.747021411595,7.11812499999999, 5367P 9355
+157.76588715377,-137.747021411595,8.73624999999999, 5367P 9356
+157.765901433754,-138.576353334882,7.11812499999999, 5367P 9357
+157.765901433754,-138.576353334882,8.73624999999999, 5367P 9358
+157.179480255615,-139.162784610495,7.11812499999999, 5367P 9359
+157.179480255615,-139.162784610495,8.73624999999999, 5367P 9360
+156.593059077476,-139.749215886107,7.11812499999999, 5367P 9361
+156.593059077476,-139.749215886107,8.73624999999999, 5367P 9362
+155.763727154066,-139.749215886107,7.11812499999999, 5367P 9363
+155.763727154066,-139.749215886107,8.73624999999999, 5367P 9364
+-1.22464679896581D-16,0.808189655172408,2.97223250293513D-15, 5367P 9365
+1.57081354545469; 5367P 9366
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,5.58852310204211, 5369P 9367
+5.58852310204211,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5369P 9368
+157.764849106322,-77.4608284572531,8.74703749999999, 5369P 9369
+157.765887339516,-137.757808911594,8.74703749999999, 5369P 9370
+157.764849106322,-77.4608284572531,7.10733749999999, 5369P 9371
+157.765887339516,-137.757808911594,7.10733749999999,-0.001, 5369P 9372
+5.58852310204211,-0.001,0.151; 5369P 9373
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,2.03923574250957, 5371P 9374
+2.03923574250957,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5371P 9375
+157.764849292068,-55.4733603849295,8.74703749999999, 5371P 9376
+157.764849292068,-77.4824034572515,8.74703749999999, 5371P 9377
+157.764849292068,-55.4733603849295,7.10733749999999, 5371P 9378
+157.764849292068,-77.4824034572515,7.10733749999999,-0.001, 5371P 9379
+2.03923574250957,-0.001,0.151; 5371P 9380
+128,1,1,1,1,0,0,1,0,0,-5.33898035415141,-5.33898035415141, 5373P 9381
+5.33897903042604,5.33897903042604,-3.99644418590382, 5373P 9382
+-3.99644418590382,3.99644418590383,3.99644418590383,1.,1.,1.,1., 5373P 9383
+157.776688933754,-139.760003386107,7.11812499999999, 5373P 9384
+42.5882020726247,-139.760003386107,7.118125,157.776688933754, 5373P 9385
+-53.5367200752323,7.11812499999999,42.5882020726247, 5373P 9386
+-53.5367200752323,7.118125,-5.33898035415141,5.33897903042604, 5373P 9387
+-3.99644418590382,3.99644418590383; 5373P 9388
+128,1,1,1,1,0,0,1,0,0,-5.33898035415141,-5.33898035415141, 5375P 9389
+5.33897903042604,5.33897903042604,-3.99644418590382, 5375P 9390
+-3.99644418590382,3.99644418590383,3.99644418590383,1.,1.,1.,1., 5375P 9391
+42.5882020726247,-139.760003386107,8.73625,157.776688933754, 5375P 9392
+-139.760003386107,8.73624999999999,42.5882020726247, 5375P 9393
+-53.5367200752323,8.73625,157.776688933754,-53.5367200752323, 5375P 9394
+8.73624999999999,-5.33898035415141,5.33897903042604, 5375P 9395
+-3.99644418590382,3.99644418590383; 5375P 9396
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.84523828125,0.84523828125, 5377P 9397
+-0.001,-0.001,0.101,0.101,1.,1.,1.,1.,83.9631823855374, 5377P 9398
+-232.571324596043,-7.48999999999994,83.9631823855374, 5377P 9399
+-224.108941783543,-7.48999999999994,83.9631823855374, 5377P 9400
+-232.571324596043,-8.50999999999994,83.9631823855374, 5377P 9401
+-224.108941783543,-8.50999999999994,-0.001,0.84523828125,-0.001, 5377P 9402
+0.101; 5377P 9403
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5379P 9404
+2.516625,2.516625,-0.00100000000000116,-0.00100000000000116, 5379P 9405
+0.101000000000001,0.101000000000001,1.,1.,1.,1., 5379P 9406
+83.9731823855374,-224.118941783543,-7.48999999999994, 5379P 9407
+58.7969323855374,-224.118941783543,-7.48999999999994, 5379P 9408
+83.9731823855374,-224.118941783543,-8.50999999999996, 5379P 9409
+58.7969323855374,-224.118941783543,-8.50999999999997, 5379P 9410
+-0.00100000000000002,2.516625,-0.00100000000000116, 5379P 9411
+0.101000000000001; 5379P 9412
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,4.12648828125,4.12648828125, 5381P 9413
+-0.001,-0.001,0.101000000000001,0.101000000000001,1.,1.,1.,1., 5381P 9414
+58.8069323855374,-224.128941783543,-7.48999999999996, 5381P 9415
+58.8069323855374,-182.854058971043,-7.48999999999996, 5381P 9416
+58.8069323855374,-224.128941783543,-8.50999999999997, 5381P 9417
+58.8069323855374,-182.854058971043,-8.50999999999997,-0.001, 5381P 9418
+4.12648828125,-0.001,0.101000000000001; 5381P 9419
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5383P 9420
+1.01271875,1.01271875,-0.001,-0.001,0.101000000000001, 5383P 9421
+0.101000000000001,1.,1.,1.,1.,58.8169323855374, 5383P 9422
+-182.864058971043,-7.48999999999995,48.6797448855374, 5383P 9423
+-182.864058971043,-7.48999999999996,58.8169323855374, 5383P 9424
+-182.864058971043,-8.50999999999997,48.6797448855374, 5383P 9425
+-182.864058971043,-8.50999999999997,-0.00100000000000002, 5383P 9426
+1.01271875,-0.001,0.101000000000001; 5383P 9427
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,4.9707265625,4.9707265625, 5385P 9428
+-0.001,-0.001,0.101000000000001,0.101000000000001,1.,1.,1.,1., 5385P 9429
+48.6897448855374,-182.854058971043,-7.48999999999996, 5385P 9430
+48.6897448855374,-232.571324596043,-7.48999999999996, 5385P 9431
+48.6897448855374,-182.854058971043,-8.50999999999997, 5385P 9432
+48.6897448855374,-232.571324596043,-8.50999999999997,-0.001, 5385P 9433
+4.9707265625,-0.001,0.101000000000001; 5385P 9434
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,3.52834375,3.52834375, 5387P 9435
+-0.001,-0.001,0.101000000000001,0.101000000000001,1.,1.,1.,1., 5387P 9436
+48.6797448855374,-232.561324596043,-7.48999999999995, 5387P 9437
+83.9731823855374,-232.561324596043,-7.48999999999994, 5387P 9438
+48.6797448855374,-232.561324596043,-8.50999999999996, 5387P 9439
+83.9731823855374,-232.561324596043,-8.50999999999995,-0.001, 5387P 9440
+3.52834375,-0.001,0.101000000000001; 5387P 9441
+128,1,1,1,1,0,0,1,0,0,-1.764671875,-1.764671875,1.764671875, 5389P 9442
+1.764671875,-2.48586328125,-2.48586328125,2.48586328125, 5389P 9443
+2.48586328125,1.,1.,1.,1.,48.6797448855374,-232.571324596043, 5389P 9444
+-8.49999999999996,83.9731823855374,-232.571324596043, 5389P 9445
+-8.49999999999995,48.6797448855374,-182.854058971043, 5389P 9446
+-8.49999999999996,83.9731823855374,-182.854058971043, 5389P 9447
+-8.49999999999995,-1.764671875,1.764671875,-2.48586328125, 5389P 9448
+2.48586328125; 5389P 9449
+128,1,6,1,2,0,0,0,0,0,11.5962540906493,11.5962540906493, 5391P 9450
+14.5245559935925,14.5245559935925,3.13917765423161, 5391P 9451
+3.13917765423161,3.13917765423161,4.18718020521427, 5391P 9452
+4.18718020521427,5.23518275619693,5.23518275619693, 5391P 9453
+6.28318530717959,6.28318530717959,6.28318530717959,1.,1., 5391P 9454
+0.865824083692631,0.865824083692631,1.,1.,0.865824083692631, 5391P 9455
+0.865824083692631,1.,1.,0.865824083692631,0.865824083692631,1., 5391P 9456
+1.,18.9406505609936,-172.121201750437,-7.49999999999996, 5391P 9457
+18.9406505609936,-172.121201750437,-11.6,18.9396735534978, 5391P 9458
+-171.312085990108,-7.49999999999996,18.9396735534978, 5391P 9459
+-171.312085990108,-11.6,19.6402259760079,-170.907245809948, 5391P 9460
+-7.49999999999996,19.6402259760079,-170.907245809948,-11.6, 5391P 9461
+20.340778398518,-170.502405629789,-7.49999999999996, 5391P 9462
+20.340778398518,-170.502405629789,-11.6,21.0413308210281, 5391P 9463
+-170.907245809948,-7.49999999999996,21.0413308210281, 5391P 9464
+-170.907245809948,-11.6,21.7418832435383,-171.312085990108, 5391P 9465
+-7.49999999999996,21.7418832435383,-171.312085990108,-11.6, 5391P 9466
+21.7409062360425,-172.121201750437,-7.49999999999996, 5391P 9467
+21.7409062360425,-172.121201750437,-11.6,11.5962540906493, 5391P 9468
+14.5245559935925,3.13917765423161,6.28318530717959; 5391P 9469
+128,1,6,1,2,0,0,0,0,0,11.5962540906495,11.5962540906495, 5393P 9470
+14.5245559935927,14.5245559935927,3.13917765425437, 5393P 9471
+3.13917765425437,3.13917765425437,4.18718020522942, 5393P 9472
+4.18718020522942,5.23518275620448,5.23518275620448, 5393P 9473
+6.28318530717956,6.28318530717956,6.28318530717956,1.,1., 5393P 9474
+0.865824083694531,0.865824083694531,1.,1.,0.865824083694531, 5393P 9475
+0.865824083694531,1.,1.,0.865824083694531,0.865824083694531,1., 5393P 9476
+1.,21.7409062360425,-172.121201750437,-7.49999999999996, 5393P 9477
+21.7409062360425,-172.121201750437,-11.6,21.7418832435291, 5393P 9478
+-172.930317510758,-7.49999999999996,21.7418832435291, 5393P 9479
+-172.930317510758,-11.6,21.0413308210236,-173.335157690912, 5393P 9480
+-7.49999999999996,21.0413308210236,-173.335157690912,-11.6, 5393P 9481
+20.3407783985181,-173.739997871065,-7.49999999999996, 5393P 9482
+20.3407783985181,-173.739997871065,-11.6,19.6402259760126, 5393P 9483
+-173.335157690912,-7.49999999999996,19.6402259760126, 5393P 9484
+-173.335157690912,-11.6,18.939673553507,-172.930317510759, 5393P 9485
+-7.49999999999996,18.939673553507,-172.930317510759,-11.6, 5393P 9486
+18.9406505609936,-172.121201750437,-7.49999999999996, 5393P 9487
+18.9406505609936,-172.121201750437,-11.6,11.5962540906495, 5393P 9488
+14.5245559935927,3.13917765425437,6.28318530717956; 5393P 9489
+128,1,6,1,2,0,0,0,0,0,11.5962540906494,11.5962540906494, 5395P 9490
+14.5245559935926,14.5245559935926,3.13917765424305, 5395P 9491
+3.13917765424305,3.13917765424305,4.18718020522189, 5395P 9492
+4.18718020522189,5.23518275620074,5.23518275620074, 5395P 9493
+6.28318530717959,6.28318530717959,6.28318530717959,1.,1., 5395P 9494
+0.865824083693586,0.865824083693586,1.,1.,0.865824083693586, 5395P 9495
+0.865824083693586,1.,1.,0.865824083693586,0.865824083693586,1., 5395P 9496
+1.,97.7151063167837,-190.598023114196,-7.49999999999994, 5395P 9497
+97.7151063167837,-190.598023114196,-11.6,97.7141293092926, 5395P 9498
+-189.78890735387,-7.49999999999994,97.7141293092926, 5395P 9499
+-189.78890735387,-11.6,98.4146817318004,-189.384067173714, 5395P 9500
+-7.49999999999994,98.4146817318004,-189.384067173714,-11.6, 5395P 9501
+99.1152341543082,-188.979226993558,-7.49999999999994, 5395P 9502
+99.1152341543082,-188.979226993558,-11.6,99.815786576816, 5395P 9503
+-189.384067173714,-7.49999999999994,99.815786576816, 5395P 9504
+-189.384067173714,-11.6,100.516338999324,-189.78890735387, 5395P 9505
+-7.49999999999994,100.516338999324,-189.78890735387,-11.6, 5395P 9506
+100.515361991833,-190.598023114196,-7.49999999999994, 5395P 9507
+100.515361991833,-190.598023114196,-11.6,11.5962540906494, 5395P 9508
+14.5245559935926,3.13917765424305,6.28318530717959; 5395P 9509
+128,1,6,1,2,0,0,0,0,0,11.5962540906494,11.5962540906494, 5397P 9510
+14.5245559935926,14.5245559935926,3.13917765424295, 5397P 9511
+3.13917765424295,3.13917765424295,4.18718020522186, 5397P 9512
+4.18718020522186,5.23518275620077,5.23518275620077, 5397P 9513
+6.28318530717964,6.28318530717964,6.28318530717964,1.,1., 5397P 9514
+0.865824083693573,0.865824083693573,1.,1.,0.865824083693573, 5397P 9515
+0.865824083693573,1.,1.,0.865824083693573,0.865824083693573,1., 5397P 9516
+1.,100.515361991833,-190.598023114196,-7.49999999999994, 5397P 9517
+100.515361991833,-190.598023114196,-11.6,100.516338999324, 5397P 9518
+-191.407138874521,-7.49999999999994,100.516338999324, 5397P 9519
+-191.407138874521,-11.6,99.815786576816,-191.811979054677, 5397P 9520
+-7.49999999999994,99.815786576816,-191.811979054677,-11.6, 5397P 9521
+99.1152341543081,-192.216819234834,-7.49999999999994, 5397P 9522
+99.1152341543081,-192.216819234834,-11.6,98.4146817318003, 5397P 9523
+-191.811979054677,-7.49999999999994,98.4146817318003, 5397P 9524
+-191.811979054677,-11.6,97.7141293092925,-191.407138874521, 5397P 9525
+-7.49999999999994,97.7141293092925,-191.407138874521,-11.6, 5397P 9526
+97.7151063167837,-190.598023114196,-7.49999999999994, 5397P 9527
+97.7151063167837,-190.598023114196,-11.6,11.5962540906494, 5397P 9528
+14.5245559935926,3.13917765424295,6.28318530717964; 5397P 9529
+128,1,2,1,2,0,0,0,0,0,0.799309396681273,0.799309396681273, 5399P 9530
+5.99482047510957,5.99482047510957,-1.15918194829754, 5399P 9531
+-1.15918194829754,-1.15918194829754,-0.0292778092733589, 5399P 9532
+-0.0292778092733589,-0.0292778092733589,1.,1.,0.844614262194488, 5399P 9533
+0.844614262194488,1.,1.,4.43314110940288,-167.842837467805, 5399P 9534
+5.50000000000003,4.43314110940289,-167.842837467805, 5399P 9535
+-7.49999999999997,2.97957034725773,-167.208278396419, 5399P 9536
+5.50000000000003,2.97957034725773,-167.208278396419, 5399P 9537
+-7.49999999999997,2.93314110940286,-165.622914872961, 5399P 9538
+5.50000000000003,2.93314110940287,-165.622914872961, 5399P 9539
+-7.49999999999997,0.799309396681273,5.99482047510957, 5399P 9540
+-1.15918194829754,-0.0292778092733589; 5399P 9541
+128,1,1,1,1,0,0,1,0,0,0.228270146333974,0.228270146333974, 5401P 9542
+10.8879873393078,10.8879873393078,0.199,0.199,1.501,1.501,1.,1., 5401P 9543
+1.,1.,7.71696471074415,-248.749215886107,5.51000000000004, 5401P 9544
+114.314136640482,-248.749215886107,5.51000000000006, 5401P 9545
+7.71696471074415,-248.749215886107,-7.50999999999997, 5401P 9546
+114.314136640482,-248.749215886107,-7.50999999999995, 5401P 9547
+0.228270146333974,10.8879873393078,0.199,1.501; 5401P 9548
+128,1,1,1,1,0,0,1,0,0,0.228270146333972,0.228270146333972, 5403P 9549
+6.02854140723685,6.02854140723685,0.198999999999999, 5403P 9550
+0.198999999999999,1.501,1.501,1.,1.,1.,1.,4.43314128158948, 5403P 9551
+-187.461624566824,5.51000000000003,4.43214255261294, 5403P 9552
+-245.464337167254,5.51000000000003,4.43314128158948, 5403P 9553
+-187.461624566824,-7.50999999999997,4.43214255261294, 5403P 9554
+-245.464337167254,-7.50999999999997,0.228270146333972, 5403P 9555
+6.02854140723685,0.198999999999999,1.501; 5403P 9556
+128,1,1,1,1,0,0,1,0,0,3.75618683883495,3.75618683883495, 5405P 9557
+5.55913232655296,5.55913232655296,-4.36108541554375, 5405P 9558
+-4.36108541554375,-4.20908541554375,-4.20908541554375,1.,1.,1., 5405P 9559
+1.,23.4536836497758,-163.037507575232,5.50000000000002, 5405P 9560
+5.4242287725957,-163.037507575232,5.50000000000002, 5405P 9561
+23.4536836497758,-164.557507575232,5.50000000000002, 5405P 9562
+5.4242287725957,-164.557507575232,5.50000000000002, 5405P 9563
+3.75618683883495,5.55913232655296,-4.36108541554375, 5405P 9564
+-4.20908541554375; 5405P 9565
+128,1,1,1,1,0,0,1,0,0,5.65724109287224,5.65724109287224, 5407P 9566
+5.809344879035,5.809344879035,-4.10354468577093, 5407P 9567
+-4.10354468577093,4.11086510715957,4.11086510715957,1.,1.,1.,1., 5407P 9568
+4.44314110940289,-165.612914872961,5.50000000000002, 5407P 9569
+2.92210324777535,-165.612914872961,5.50000000000002, 5407P 9570
+4.44314110940289,-247.757012802266,5.50000000000002, 5407P 9571
+2.92210324777535,-247.757012802266,5.50000000000002, 5407P 9572
+5.65724109287224,5.809344879035,-4.10354468577093, 5407P 9573
+4.11086510715957; 5407P 9574
+128,1,1,1,1,0,0,1,0,0,-5.55912860656964,-5.55912860656964, 5409P 9575
+5.55912887907209,5.55912887907209,4.20908541554374, 5409P 9576
+4.20908541554374,4.36108541554375,4.36108541554375,1.,1.,1.,1., 5409P 9577
+116.606838103822,-248.739215886107,5.50000000000005, 5409P 9578
+5.42426324740444,-248.739215886107,5.50000000000002, 5409P 9579
+116.606838103822,-250.259215886107,5.50000000000005, 5409P 9580
+5.42426324740443,-250.259215886107,5.50000000000002, 5409P 9581
+-5.55912860656964,5.55912887907209,4.20908541554374, 5409P 9582
+4.36108541554375; 5409P 9583
+128,1,1,1,1,0,0,1,0,0,0.228270146333966,0.228270146333966, 5411P 9584
+1.80194548771801,1.80194548771801,0.199,0.199,1.501,1.501,1.,1., 5411P 9585
+1.,1.,23.4536836497758,-164.547507575232,5.51000000000003, 5411P 9586
+7.71693023593539,-164.547507575232,5.51000000000003, 5411P 9587
+23.4536836497758,-164.547507575232,-7.50999999999997, 5411P 9588
+7.7169302359354,-164.547507575232,-7.50999999999998, 5411P 9589
+0.228270146333966,1.80194548771801,0.199,1.501; 5411P 9590
+128,1,1,1,1,0,0,1,0,0,10.0169535374057,10.0169535374057, 5413P 9591
+10.8879910592913,10.8879910592913,0.198999999999999, 5413P 9592
+0.198999999999999,1.501,1.501,1.,1.,1.,1.,114.314139365509, 5413P 9593
+-164.547507575232,5.51000000000006,105.603764146653, 5413P 9594
+-164.547507575232,5.51000000000006,114.314139365509, 5413P 9595
+-164.547507575232,-7.50999999999994,105.603764146653, 5413P 9596
+-164.547507575232,-7.50999999999994,10.0169535374057, 5413P 9597
+10.8879910592913,0.198999999999999,1.501; 5413P 9598
+128,1,1,1,1,0,0,1,0,0,-5.80934505627278,-5.80934505627278, 5415P 9599
+-5.65734461417044,-5.65734461417044,-4.11086968638896, 5415P 9600
+-4.11086968638896,4.11086941554375,4.11086941554375,1.,1.,1.,1., 5415P 9601
+119.109002600853,-165.53966486678,5.50000000000005, 5415P 9602
+117.58899817983,-165.53966486678,5.50000000000005, 5415P 9603
+119.109002600853,-247.757055886107,5.50000000000005, 5415P 9604
+117.58899817983,-247.757055886107,5.50000000000005, 5415P 9605
+-5.80934505627278,-5.65734461417044,-4.11086968638896, 5415P 9606
+4.11086941554375; 5415P 9607
+128,1,1,1,1,0,0,1,0,0,-5.55912887907228,-5.55912887907228, 5417P 9608
+-4.45882121085278,-4.45882121085278,-4.36108541554375, 5417P 9609
+-4.36108541554375,-4.20908541554375,-4.20908541554375,1.,1.,1., 5417P 9610
+1.,116.606840828848,-163.037507575232,5.50000000000005, 5417P 9611
+105.603764146653,-163.037507575232,5.50000000000004, 5417P 9612
+116.606840828848,-164.557507575232,5.50000000000005, 5417P 9613
+105.603764146653,-164.557507575232,5.50000000000004, 5417P 9614
+-5.55912887907228,-4.45882121085278,-4.36108541554375, 5417P 9615
+-4.20908541554375; 5417P 9616
+128,1,6,1,2,0,0,0,0,0,10.7132996449142,10.7132996449142, 5419P 9617
+13.6416015478574,13.6416015478574,3.13925814733116, 5419P 9618
+3.13925814733116,3.13925814733116,4.18720703624771, 5419P 9619
+4.18720703624771,5.23515592516426,5.23515592516426, 5419P 9620
+6.28310481408081,6.28310481408081,6.28310481408081,1.,1., 5419P 9621
+0.865837508249046,0.865837508249046,1.,1.,0.865837508249046, 5419P 9622
+0.865837508249046,1.,1.,0.865837508249046,0.865837508249046,1., 5419P 9623
+1.,21.4157277366876,-228.698656211065,-7.49999999999997, 5419P 9624
+21.4157277366876,-228.698656211065,-11.6,21.4147507896972, 5419P 9625
+-227.831805396136,-7.49999999999997,21.4147507896972, 5419P 9626
+-227.831805396136,-11.6,22.1653032159716,-227.39809772364, 5419P 9627
+-7.49999999999997,22.1653032159716,-227.39809772364,-11.6, 5419P 9628
+22.915855642246,-226.964390051143,-7.49999999999997, 5419P 9629
+22.915855642246,-226.964390051143,-11.6,23.6664080685249, 5419P 9630
+-227.398097723632,-7.49999999999997,23.6664080685249, 5419P 9631
+-227.398097723632,-11.6,24.4169604948039,-227.83180539612, 5419P 9632
+-7.49999999999997,24.4169604948039,-227.83180539612,-11.6, 5419P 9633
+24.4159835478226,-228.69865621105,-7.49999999999997, 5419P 9634
+24.4159835478226,-228.69865621105,-11.6,10.7132996449142, 5419P 9635
+13.6416015478574,3.13925814733116,6.28310481408081; 5419P 9636
+128,1,6,1,2,0,0,0,0,0,10.7132996449144,10.7132996449144, 5421P 9637
+13.6416015478576,13.6416015478576,3.13925814734165, 5421P 9638
+3.13925814734165,3.13925814734165,4.18720703625122, 5421P 9639
+4.18720703625122,5.23515592516079,5.23515592516079, 5421P 9640
+6.28310481407037,6.28310481407037,6.28310481407037,1.,1., 5421P 9641
+0.865837508250792,0.865837508250792,1.,1.,0.865837508250792, 5421P 9642
+0.865837508250792,1.,1.,0.865837508250792,0.865837508250792,1., 5421P 9643
+1.,24.4159835478226,-228.69865621105,-7.49999999999997, 5421P 9644
+24.4159835478226,-228.69865621105,-11.6,24.4169604948039, 5421P 9645
+-229.565507025972,-7.49999999999997,24.4169604948039, 5421P 9646
+-229.565507025972,-11.6,23.666408068534,-229.999214698462, 5421P 9647
+-7.49999999999997,23.666408068534,-229.999214698462,-11.6, 5421P 9648
+22.9158556422642,-230.432922370953,-7.49999999999997, 5421P 9649
+22.9158556422642,-230.432922370953,-11.6,22.1653032159897, 5421P 9650
+-229.99921469847,-7.49999999999997,22.1653032159897, 5421P 9651
+-229.99921469847,-11.6,21.4147507897153,-229.565507025988, 5421P 9652
+-7.49999999999997,21.4147507897153,-229.565507025988,-11.6, 5421P 9653
+21.4157277366876,-228.698656211065,-7.49999999999997, 5421P 9654
+21.4157277366876,-228.698656211065,-11.6,10.7132996449144, 5421P 9655
+13.6416015478576,3.13925814734165,6.28310481407037; 5421P 9656
+128,1,6,1,2,0,0,0,0,0,10.7132954794018,10.7132954794018, 5423P 9657
+13.6415962437716,13.6415962437716,3.13866619557958, 5423P 9658
+3.13866619557958,3.13866619557958,4.18680559830898, 5423P 9659
+4.18680559830898,5.23494500103838,5.23494500103838, 5423P 9660
+6.28308440376778,6.28308440376778,6.28308440376778,1.,1., 5423P 9661
+0.865789844880249,0.865789844880249,1.,1.,0.865789844880249, 5423P 9662
+0.865789844880249,1.,1.,0.865789844880249,0.865789844880249,1., 5423P 9663
+1.,97.617115874664,-228.698656211057,-7.49999999999994, 5423P 9664
+97.617115874664,-228.698656211057,-11.5999999999999, 5423P 9665
+97.6158909373877,-227.831614772873,-7.49999999999994, 5423P 9666
+97.6158909373877,-227.831614772873,-11.5999999999999, 5423P 9667
+98.3665673588096,-227.397740060174,-7.49999999999994, 5423P 9668
+98.3665673588096,-227.397740060174,-11.5999999999999, 5423P 9669
+99.1172437802314,-226.963865347475,-7.49999999999994, 5423P 9670
+99.1172437802314,-226.963865347475,-11.5999999999999, 5423P 9671
+99.8679202016534,-227.397740060174,-7.49999999999994, 5423P 9672
+99.8679202016534,-227.397740060174,-11.5999999999999, 5423P 9673
+100.618596623075,-227.831614772873,-7.49999999999994, 5423P 9674
+100.618596623075,-227.831614772873,-11.5999999999999, 5423P 9675
+100.617371685799,-228.698656211057,-7.49999999999994, 5423P 9676
+100.617371685799,-228.698656211057,-11.5999999999999, 5423P 9677
+10.7132954794018,13.6415962437716,3.13866619557958, 5423P 9678
+6.28308440376778; 5423P 9679
+128,1,6,1,2,0,0,0,0,0,10.7132954794019,10.7132954794019, 5425P 9680
+13.6415962437718,13.6415962437718,3.13866619559783, 5425P 9681
+3.13866619559783,3.13866619559783,4.18680559832112, 5425P 9682
+4.18680559832112,5.23494500104441,5.23494500104441, 5425P 9683
+6.2830844037677,6.2830844037677,6.2830844037677,1.,1., 5425P 9684
+0.865789844881778,0.865789844881778,1.,1.,0.865789844881778, 5425P 9685
+0.865789844881778,1.,1.,0.865789844881778,0.865789844881778,1., 5425P 9686
+1.,100.617371685799,-228.698656211056,-7.49999999999994, 5425P 9687
+100.617371685799,-228.698656211056,-11.5999999999999, 5425P 9688
+100.618596623067,-229.565697649234,-7.49999999999994, 5425P 9689
+100.618596623067,-229.565697649234,-11.5999999999999, 5425P 9690
+99.8679202016494,-229.999572361928,-7.49999999999994, 5425P 9691
+99.8679202016494,-229.999572361928,-11.5999999999999, 5425P 9692
+99.1172437802314,-230.433447074621,-7.49999999999994, 5425P 9693
+99.1172437802314,-230.433447074621,-11.5999999999999, 5425P 9694
+98.3665673588135,-229.999572361928,-7.49999999999994, 5425P 9695
+98.3665673588135,-229.999572361928,-11.5999999999999, 5425P 9696
+97.6158909373956,-229.565697649234,-7.49999999999994, 5425P 9697
+97.6158909373956,-229.565697649234,-11.5999999999999, 5425P 9698
+97.617115874664,-228.698656211056,-7.49999999999994, 5425P 9699
+97.617115874664,-228.698656211056,-11.5999999999999, 5425P 9700
+10.7132954794019,13.6415962437718,3.13866619559783, 5425P 9701
+6.2830844037677; 5425P 9702
+128,1,6,1,2,0,0,0,0,0,10.7132996449142,10.7132996449142, 5427P 9703
+13.6416015478574,13.6416015478574,3.13925814733116, 5427P 9704
+3.13925814733116,3.13925814733116,4.18720703624771, 5427P 9705
+4.18720703624771,5.23515592516426,5.23515592516426, 5427P 9706
+6.28310481408081,6.28310481408081,6.28310481408081,1.,1., 5427P 9707
+0.865837508249046,0.865837508249046,1.,1.,0.865837508249046, 5427P 9708
+0.865837508249046,1.,1.,0.865837508249046,0.865837508249046,1., 5427P 9709
+1.,21.4157277366876,-190.598023114212,-7.49999999999997, 5427P 9710
+21.4157277366876,-190.598023114212,-11.6,21.4147507896972, 5427P 9711
+-189.731172299282,-7.49999999999997,21.4147507896972, 5427P 9712
+-189.731172299282,-11.6,22.1653032159716,-189.297464626786, 5427P 9713
+-7.49999999999997,22.1653032159716,-189.297464626786,-11.6, 5427P 9714
+22.915855642246,-188.863756954289,-7.49999999999997, 5427P 9715
+22.915855642246,-188.863756954289,-11.6,23.6664080685249, 5427P 9716
+-189.297464626778,-7.49999999999997,23.6664080685249, 5427P 9717
+-189.297464626778,-11.6,24.4169604948039,-189.731172299267, 5427P 9718
+-7.49999999999997,24.4169604948039,-189.731172299267,-11.6, 5427P 9719
+24.4159835478226,-190.598023114196,-7.49999999999997, 5427P 9720
+24.4159835478226,-190.598023114196,-11.6,10.7132996449142, 5427P 9721
+13.6416015478574,3.13925814733116,6.28310481408081; 5427P 9722
+128,1,6,1,2,0,0,0,0,0,10.7132996449144,10.7132996449144, 5429P 9723
+13.6416015478576,13.6416015478576,3.13925814734168, 5429P 9724
+3.13925814734168,3.13925814734168,4.18720703625123, 5429P 9725
+4.18720703625123,5.23515592516079,5.23515592516079, 5429P 9726
+6.28310481407034,6.28310481407034,6.28310481407034,1.,1., 5429P 9727
+0.865837508250795,0.865837508250795,1.,1.,0.865837508250795, 5429P 9728
+0.865837508250795,1.,1.,0.865837508250795,0.865837508250795,1., 5429P 9729
+1.,24.4159835478226,-190.598023114196,-7.49999999999997, 5429P 9730
+24.4159835478226,-190.598023114196,-11.6,24.4169604948039, 5429P 9731
+-191.464873929118,-7.49999999999997,24.4169604948039, 5429P 9732
+-191.464873929118,-11.6,23.666408068534,-191.898581601608, 5429P 9733
+-7.49999999999997,23.666408068534,-191.898581601608,-11.6, 5429P 9734
+22.9158556422642,-192.332289274099,-7.49999999999997, 5429P 9735
+22.9158556422642,-192.332289274099,-11.6,22.1653032159898, 5429P 9736
+-191.898581601616,-7.49999999999997,22.1653032159898, 5429P 9737
+-191.898581601616,-11.6,21.4147507897154,-191.464873929134, 5429P 9738
+-7.49999999999997,21.4147507897154,-191.464873929134,-11.6, 5429P 9739
+21.4157277366876,-190.598023114211,-7.49999999999997, 5429P 9740
+21.4157277366876,-190.598023114211,-11.6,10.7132996449144, 5429P 9741
+13.6416015478576,3.13925814734168,6.28310481407034; 5429P 9742
+128,1,6,1,2,0,0,0,0,0,10.7132996449141,10.7132996449141, 5431P 9743
+13.6416015478573,13.6416015478573,3.13925814731996, 5431P 9744
+3.13925814731996,3.13925814731996,4.1872070362402, 5431P 9745
+4.1872070362402,5.23515592516045,5.23515592516045, 5431P 9746
+6.28310481408069,6.28310481408069,6.28310481408069,1.,1., 5431P 9747
+0.865837508248121,0.865837508248121,1.,1.,0.865837508248121, 5431P 9748
+0.865837508248121,1.,1.,0.865837508248121,0.865837508248121,1., 5431P 9749
+1.,100.190183492478,-172.121201750453,-7.49999999999994, 5431P 9750
+100.190183492478,-172.121201750453,-11.5999999999999, 5431P 9751
+100.189206545482,-171.25435093552,-7.49999999999994, 5431P 9752
+100.189206545482,-171.25435093552,-11.5999999999999, 5431P 9753
+100.939758971759,-170.82064326302,-7.49999999999994, 5431P 9754
+100.939758971759,-170.82064326302,-11.5999999999999, 5431P 9755
+101.690311398036,-170.38693559052,-7.49999999999994, 5431P 9756
+101.690311398036,-170.38693559052,-11.5999999999999, 5431P 9757
+102.440863824317,-170.820643263012,-7.49999999999994, 5431P 9758
+102.440863824317,-170.820643263012,-11.5999999999999, 5431P 9759
+103.191416250599,-171.254350935504,-7.49999999999994, 5431P 9760
+103.191416250599,-171.254350935504,-11.5999999999999, 5431P 9761
+103.190439303613,-172.121201750437,-7.49999999999994, 5431P 9762
+103.190439303613,-172.121201750437,-11.5999999999999, 5431P 9763
+10.7132996449141,13.6416015478573,3.13925814731996, 5431P 9764
+6.28310481408069; 5431P 9765
+128,1,6,1,2,0,0,0,0,0,10.7132996449144,10.7132996449144, 5433P 9766
+13.6416015478577,13.6416015478577,3.13925814735297, 5433P 9767
+3.13925814735297,3.13925814735297,4.1872070362588, 5433P 9768
+4.1872070362588,5.23515592516463,5.23515592516463, 5433P 9769
+6.28310481407046,6.28310481407046,6.28310481407046,1.,1., 5433P 9770
+0.865837508251727,0.865837508251727,1.,1.,0.865837508251727, 5433P 9771
+0.865837508251727,1.,1.,0.865837508251727,0.865837508251727,1., 5433P 9772
+1.,103.190439303613,-172.121201750437,-7.49999999999994, 5433P 9773
+103.190439303613,-172.121201750437,-11.5999999999999, 5433P 9774
+103.191416250589,-172.988052565356,-7.49999999999994, 5433P 9775
+103.191416250589,-172.988052565356,-11.5999999999999, 5433P 9776
+102.440863824322,-173.421760237843,-7.49999999999994, 5433P 9777
+102.440863824322,-173.421760237843,-11.5999999999999, 5433P 9778
+101.690311398054,-173.85546791033,-7.49999999999994, 5433P 9779
+101.690311398054,-173.85546791033,-11.5999999999999, 5433P 9780
+100.939758971782,-173.421760237851,-7.49999999999994, 5433P 9781
+100.939758971782,-173.421760237851,-11.5999999999999, 5433P 9782
+100.18920654551,-172.988052565371,-7.49999999999994, 5433P 9783
+100.18920654551,-172.988052565371,-11.5999999999999, 5433P 9784
+100.190183492478,-172.121201750453,-7.49999999999994, 5433P 9785
+100.190183492478,-172.121201750453,-11.5999999999999, 5433P 9786
+10.7132996449144,13.6416015478577,3.13925814735297, 5433P 9787
+6.28310481407046; 5433P 9788
+128,1,1,1,1,0,0,1,0,0,-0.701000000000003,-0.701000000000003, 5435P 9789
+0.703178681517682,0.703178681517682,0.899,0.899,1.311,1.311,1., 5435P 9790
+1.,1.,1.,91.5819773314763,-164.547507575232,-7.48999999999993, 5435P 9791
+105.623764146653,-164.547507575232,-7.48999999999993, 5435P 9792
+91.5819773314763,-164.547507575232,-11.61,105.623764146653, 5435P 9793
+-164.547507575232,-11.6099999999999,-0.701000000000003, 5435P 9794
+0.703178681517682,0.899,1.311; 5435P 9795
+128,1,1,1,1,0,0,1,0,0,-0.601,-0.601,1.111,1.111,-0.001,-0.001, 5437P 9796
+0.800999999999997,0.800999999999997,1.,1.,1.,1., 5437P 9797
+105.613764146653,-164.557507575232,-11.6099999999999, 5437P 9798
+105.613764146653,-164.557507575232,5.51000000000006, 5437P 9799
+105.613764146653,-156.537507575232,-11.6099999999999, 5437P 9800
+105.613764146653,-156.537507575232,5.51000000000006,-0.601, 5437P 9801
+1.111,-0.001,0.800999999999997; 5437P 9802
+128,1,1,1,1,0,0,1,0,0,-5.83292786387186,-5.83292786387186, 5439P 9803
+5.83292652709446,5.83292652709446,-4.39739056237306, 5439P 9804
+-4.39739056237306,4.38466970486183,4.38466970486183,1.,1.,1.,1., 5439P 9805
+119.344830676844,-162.674456106938,-7.49999999999994, 5439P 9806
+2.68628676718068,-162.674456106938,-7.49999999999997, 5439P 9807
+119.344830676844,-250.495058779287,-7.49999999999994, 5439P 9808
+2.68628676718068,-250.495058779287,-7.49999999999997, 5439P 9809
+-5.83292786387186,5.83292652709446,-4.39739056237306, 5439P 9810
+4.38466970486183; 5439P 9811
+128,1,1,1,1,0,0,1,0,0,0.198999999999999,0.198999999999999, 5441P 9812
+1.9011635755716,1.9011635755716,0.898999999999999, 5441P 9813
+0.898999999999999,1.311,1.311,1.,1.,1.,1.,23.4336836497758, 5441P 9814
+-164.547507575232,-7.48999999999996,40.4553194054918, 5441P 9815
+-164.547507575232,-7.48999999999996,23.4336836497758, 5441P 9816
+-164.547507575232,-11.61,40.4553194054918,-164.547507575232, 5441P 9817
+-11.61,0.198999999999999,1.9011635755716,0.898999999999999, 5441P 9818
+1.311; 5441P 9819
+128,1,1,1,1,0,0,1,0,0,-0.600999999999999,-0.600999999999999, 5443P 9820
+1.111,1.111,-0.001,-0.001,0.801000000000001,0.801000000000001, 5443P 9821
+1.,1.,1.,1.,40.4453194054918,-164.557507575232,-11.61, 5443P 9822
+40.4453194054918,-164.557507575232,5.51000000000003, 5443P 9823
+40.4453194054918,-156.537507575232,-11.61,40.4453194054918, 5443P 9824
+-156.537507575232,5.51000000000003,-0.600999999999999,1.111, 5443P 9825
+-0.001,0.801000000000001; 5443P 9826
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000133,-0.00100000000000133, 5445P 9827
+1.7011635755716,1.7011635755716,-0.00100000000000355, 5445P 9828
+-0.00100000000000355,0.651,0.651,1.,1.,1.,1.,40.4553194054918, 5445P 9829
+-163.057507575232,1.50000000000003,23.4336836497758, 5445P 9830
+-163.057507575232,1.50000000000003,40.4553194054918, 5445P 9831
+-156.537507575232,1.50000000000003,23.4336836497758, 5445P 9832
+-156.537507575232,1.50000000000003,-0.00100000000000133, 5445P 9833
+1.7011635755716,-0.00100000000000355,0.651; 5445P 9834
+128,1,1,1,1,0,0,1,0,0,1.199,1.199,2.60317868151768, 5447P 9835
+2.60317868151768,-0.001,-0.001,0.650999999999999, 5447P 9836
+0.650999999999999,1.,1.,1.,1.,105.623764146653, 5447P 9837
+-163.057507575232,1.50000000000005,91.5819773314763, 5447P 9838
+-163.057507575232,1.50000000000005,105.623764146653, 5447P 9839
+-156.537507575232,1.50000000000005,91.5819773314763, 5447P 9840
+-156.537507575232,1.50000000000005,1.199,2.60317868151768, 5447P 9841
+-0.001,0.650999999999999; 5447P 9842
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000189,-0.00100000000000189, 5449P 9843
+11.1172612056252,11.1172612056252,-0.00100000000000083, 5449P 9844
+-0.00100000000000083,0.601000000000001,0.601000000000001,1.,1., 5449P 9845
+1.,1.,116.606840828848,-163.047507575232,7.51000000000006, 5449P 9846
+5.42422877259571,-163.047507575232,7.51000000000003, 5449P 9847
+116.606840828848,-163.047507575232,1.49000000000005, 5449P 9848
+5.42422877259571,-163.047507575232,1.49000000000002, 5449P 9849
+-0.00100000000000189,11.1172612056252,-0.00100000000000083, 5449P 9850
+0.601000000000001; 5449P 9851
+128,1,1,1,1,0,0,1,0,0,-0.411,-0.411,1.301,1.301,-0.001,-0.001, 5451P 9852
+0.801000000000001,0.801000000000001,1.,1.,1.,1., 5451P 9853
+23.4436836497758,-164.557507575232,5.51000000000003, 5451P 9854
+23.4436836497758,-164.557507575232,-11.61,23.4436836497758, 5451P 9855
+-156.537507575232,5.51000000000003,23.4436836497758, 5451P 9856
+-156.537507575232,-11.61,-0.411,1.301,-0.001,0.801000000000001; 5451P 9857
+128,1,1,1,1,0,0,1,0,0,-0.411000000000001,-0.411000000000001, 5453P 9858
+1.301,1.301,-0.001,-0.001,0.800999999999997,0.800999999999997, 5453P 9859
+1.,1.,1.,1.,91.5919773314763,-164.557507575232,5.51000000000004, 5453P 9860
+91.5919773314763,-164.557507575232,-11.6099999999999, 5453P 9861
+91.5919773314763,-156.537507575232,5.51000000000004, 5453P 9862
+91.5919773314763,-156.537507575232,-11.6099999999999, 5453P 9863
+-0.411000000000001,1.301,-0.001,0.800999999999997; 5453P 9864
+128,1,1,1,1,0,0,1,0,0,3.5001090632896,3.5001090632896, 5455P 9865
+4.90089123368072,4.90089123368072,0.199,0.199,1.501,1.501,1.,1., 5455P 9866
+1.,1.,54.4431411094029,-164.547507575232,5.51000000000004, 5455P 9867
+40.4353194054918,-164.547507575232,5.51000000000003, 5455P 9868
+54.4431411094029,-164.547507575232,-7.50999999999997, 5455P 9869
+40.4353194054918,-164.547507575232,-7.50999999999997, 5455P 9870
+3.5001090632896,4.90089123368072,0.199,1.501; 5455P 9871
+128,1,1,1,1,0,0,1,0,0,-3.0586425293351,-3.0586425293351, 5457P 9872
+2.05802326326335,2.05802326326335,-4.36108541554375, 5457P 9873
+-4.36108541554375,-3.50908541554383,-3.50908541554383,1.,1.,1., 5457P 9874
+1.,91.6019773314763,-163.037507575232,5.50000000000004, 5457P 9875
+40.4353194054918,-163.037507575232,5.50000000000003, 5457P 9876
+91.6019773314763,-171.557507575232,5.50000000000004, 5457P 9877
+40.4353194054918,-171.557507575232,5.50000000000003, 5457P 9878
+-3.0586425293351,2.05802326326335,-4.36108541554375, 5457P 9879
+-3.50908541554383; 5457P 9880
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.700999999999999, 5459P 9881
+0.700999999999999,-0.001,-0.001,1.301,1.301,1.,1.,1.,1., 5459P 9882
+74.4331411094029,-171.557507575232,-7.50999999999996, 5459P 9883
+74.4331411094029,-164.537507575232,-7.50999999999996, 5459P 9884
+74.4331411094029,-171.557507575232,5.51000000000004, 5459P 9885
+74.4331411094029,-164.537507575232,5.51000000000004,-0.001, 5459P 9886
+0.700999999999999,-0.001,1.301; 5459P 9887
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5461P 9888
+2.001,2.001,-0.00100000000000049,-0.00100000000000049,1.301, 5461P 9889
+1.301,1.,1.,1.,1.,54.4231411094029,-171.547507575231, 5461P 9890
+-7.50999999999996,74.4431411094029,-171.547507575232, 5461P 9891
+-7.50999999999996,54.4231411094029,-171.547507575231, 5461P 9892
+5.51000000000004,74.4431411094029,-171.547507575232, 5461P 9893
+5.51000000000004,-0.00100000000000178,2.001, 5461P 9894
+-0.00100000000000049,1.301; 5461P 9895
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.700999999999999, 5463P 9896
+0.700999999999999,-0.001,-0.001,1.301,1.301,1.,1.,1.,1., 5463P 9897
+54.4331411094029,-164.537507575232,-7.50999999999996, 5463P 9898
+54.4331411094029,-171.557507575232,-7.50999999999996, 5463P 9899
+54.4331411094029,-164.537507575232,5.51000000000004, 5463P 9900
+54.4331411094029,-171.557507575232,5.51000000000004,-0.001, 5463P 9901
+0.700999999999999,-0.001,1.301; 5463P 9902
+128,1,1,1,1,0,0,1,0,0,0.228270425474422,0.228270425474422, 5465P 9903
+7.99146896389396,7.99146896389396,0.198999999999999, 5465P 9904
+0.198999999999999,1.501,1.501,1.,1.,1.,1.,117.598998179498, 5465P 9905
+-245.464354455991,5.51000000000007,117.599000753169, 5465P 9906
+-167.832369071796,5.51000000000007,117.598998179498, 5465P 9907
+-245.464354455991,-7.50999999999994,117.599000753169, 5465P 9908
+-167.832369071796,-7.50999999999994,0.228270425474422, 5465P 9909
+7.99146896389396,0.198999999999999,1.501; 5465P 9910
+128,1,1,1,1,0,0,1,0,0,6.89889123368072,6.89889123368072, 5467P 9911
+8.61677485588806,8.61677485588806,0.199,0.199,1.501,1.501,1.,1., 5467P 9912
+1.,1.,91.6019773314763,-164.547507575232,5.51000000000005, 5467P 9913
+74.4231411094029,-164.547507575232,5.51000000000004, 5467P 9914
+91.6019773314763,-164.547507575232,-7.50999999999995, 5467P 9915
+74.4231411094029,-164.547507575232,-7.50999999999996, 5467P 9916
+6.89889123368072,8.61677485588806,0.199,1.501; 5467P 9917
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.96387870990168, 5469P 9918
+1.96387870990168,0.198999999999999,0.198999999999999,1.501, 5469P 9919
+1.501,1.,1.,1.,1.,4.43314110940287,-167.832837467805, 5469P 9920
+5.51000000000003,4.43314110940289,-187.481624566822, 5469P 9921
+5.51000000000003,4.43314110940288,-167.832837467805, 5469P 9922
+-7.50999999999997,4.43314110940289,-187.481624566822, 5469P 9923
+-7.50999999999997,-0.001,1.96387870990168,0.198999999999999, 5469P 9924
+1.501; 5469P 9925
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,2.20051956797476, 5471P 9926
+2.20051956797476,-0.001,-0.001,1.501,1.501,1.,1.,1.,1., 5471P 9927
+2.93314110940289,-165.466420277504,7.51000000000003, 5471P 9928
+2.9331411094029,-187.481615957251,7.51000000000003, 5471P 9929
+2.93314110940289,-165.466420277504,-7.50999999999997, 5471P 9930
+2.93314110940291,-187.481615957251,-7.50999999999997,-0.001, 5471P 9931
+2.20051956797476,-0.001,1.501; 5471P 9932
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000355,-0.00100000000000355, 5473P 9933
+6.02853968539494,6.02853968539494,-0.001,-0.001,0.201,0.201,1., 5473P 9934
+1.,1.,1.,2.93314128158951,-187.461615957253,7.51000000000003, 5473P 9935
+2.93210307558876,-247.757012802264,7.51000000000003, 5473P 9936
+2.93314128158951,-187.461615957253,5.49000000000003, 5473P 9937
+2.93210307558876,-247.757012802264,5.49000000000003, 5473P 9938
+-0.00100000000000355,6.02853968539494,-0.001,0.201; 5473P 9939
+128,1,6,1,2,0,0,0,0,0,-2.44929359793162D-16, 5475P 9940
+-2.44929359793162D-16,5.99482047510948,5.99482047510948, 5475P 9941
+-2.72952782394451,-2.72952782394451,-2.72952782394451, 5475P 9942
+-1.43344712313306,-1.43344712313306,-0.137366422321606, 5475P 9943
+-0.137366422321606,1.15871427848985,1.15871427848985, 5475P 9944
+1.15871427848985,1.,1.,0.797268222513888,0.797268222513888,1., 5475P 9945
+1.,0.797268222513888,0.797268222513888,1.,1.,0.797268222513888, 5475P 9946
+0.797268222513888,1.,1.,7.72696471074416,-248.749215886107, 5475P 9947
+7.50000000000003,7.72696471074416,-248.749215886107, 5475P 9948
+-7.49999999999997,6.96821249566286,-250.485058779287, 5475P 9949
+7.50000000000003,6.96821249566286,-250.485058779287, 5475P 9950
+-7.49999999999997,5.09163041069214,-250.22564568775, 5475P 9951
+7.50000000000003,5.09163041069214,-250.22564568775, 5475P 9952
+-7.49999999999997,3.21504832572142,-249.966232596213, 5475P 9953
+7.50000000000003,3.21504832572142,-249.966232596213, 5475P 9954
+-7.49999999999997,2.95566754645106,-248.089646044774, 5475P 9955
+7.50000000000003,2.95566754645106,-248.089646044774, 5475P 9956
+-7.49999999999997,2.69628676718069,-246.213059493336, 5475P 9957
+7.50000000000003,2.6962867671807,-246.213059493336, 5475P 9958
+-7.49999999999997,4.43214272479956,-245.454337167255, 5475P 9959
+7.50000000000003,4.43214272479956,-245.454337167255, 5475P 9960
+-7.49999999999997,-2.44929359793162D-16,5.99482047510948, 5475P 9961
+-2.72952782394451,1.15871427848985; 5475P 9962
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,11.1172574856417, 5477P 9963
+11.1172574856417,-0.00100000000000078,-0.00100000000000078, 5477P 9964
+0.201000000000001,0.201000000000001,1.,1.,1.,1., 5477P 9965
+5.42426324740445,-250.249215886107,7.51000000000004, 5477P 9966
+116.606838103822,-250.249215886107,7.51000000000007, 5477P 9967
+5.42426324740445,-250.249215886107,5.49000000000003, 5477P 9968
+116.606838103822,-250.249215886107,5.49000000000005,-0.001, 5477P 9969
+11.1172574856417,-0.00100000000000078,0.201000000000001; 5477P 9970
+128,1,6,1,2,0,0,0,0,0,-2.17420625539854D-16, 5479P 9971
+-2.17420625539854D-16,5.99482047510955,5.99482047510955, 5479P 9972
+-2.72951057213252,-2.72951057213252,-2.72951057213252, 5479P 9973
+-1.43343562192506,-1.43343562192506,-0.1373606717176, 5479P 9974
+-0.1373606717176,1.15871427848986,1.15871427848986, 5479P 9975
+1.15871427848986,1.,1.,0.797269958115333,0.797269958115333,1., 5479P 9976
+1.,0.797269958115333,0.797269958115333,1.,1.,0.797269958115333, 5479P 9977
+0.797269958115333,1.,1.,117.59899817983,-245.454354455992, 5479P 9978
+7.50000000000006,117.59899817983,-245.454354455992, 5479P 9979
+-7.49999999999994,119.334830676844,-246.213102195359, 5479P 9980
+7.50000000000006,119.334830676844,-246.213102195359, 5479P 9981
+-7.49999999999994,119.07542986441,-248.089674551596, 5479P 9982
+7.50000000000006,119.07542986441,-248.089674551596, 5479P 9983
+-7.49999999999994,118.816029051977,-249.966246907834, 5479P 9984
+7.50000000000006,118.816029051977,-249.966246907834, 5479P 9985
+-7.49999999999994,116.93945668714,-250.225647658055, 5479P 9986
+7.50000000000006,116.93945668714,-250.225647658055, 5479P 9987
+-7.49999999999994,115.062884322303,-250.485048408276, 5479P 9988
+7.50000000000006,115.062884322303,-250.485048408276, 5479P 9989
+-7.49999999999994,114.304136640482,-248.749215886107, 5479P 9990
+7.50000000000006,114.304136640482,-248.749215886107, 5479P 9991
+-7.49999999999994,-2.17420625539854D-16,5.99482047510955, 5479P 9992
+-2.72951057213252,1.15871427848986; 5479P 9993
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,8.22073910193271, 5481P 9994
+8.22073910193271,-0.001,-0.001,0.201,0.201,1.,1.,1.,1., 5481P 9995
+119.09899810349,-247.757055886107,7.51000000000006, 5481P 9996
+119.099000829178,-165.53966486678,7.51000000000006, 5481P 9997
+119.09899810349,-247.757055886107,5.49000000000006, 5481P 9998
+119.099000829178,-165.53966486678,5.49000000000006,-0.001, 5481P 9999
+8.22073910193271,-0.001,0.201; 5481P 10000
+128,1,6,1,2,0,0,0,0,0,-2.17420701633559D-16, 5483P 10001
+-2.17420701633559D-16,5.99482047511063,5.99482047511063, 5483P 10002
+-2.72950952283909,-2.72950952283909,-2.72950952283909, 5483P 10003
+-1.43343455052993,-1.43343455052993,-0.137359578220759, 5483P 10004
+-0.137359578220759,1.15871539408841,1.15871539408841, 5483P 10005
+1.15871539408841,1.,1.,0.797269951444785,0.797269951444785,1., 5483P 10006
+1.,0.797269951444785,0.797269951444785,1.,1.,0.797269951444785, 5483P 10007
+0.797269951444785,1.,1.,114.304139365509,-164.547507575232, 5483P 10008
+7.50000000000006,114.304139365509,-164.547507575232, 5483P 10009
+-7.49999999999994,115.062887064753,-162.811675013205, 5483P 10010
+7.50000000000006,115.062887064753,-162.811675013205, 5483P 10011
+-7.49999999999994,116.939459466948,-163.071075810858, 5483P 10012
+7.50000000000006,116.939459466948,-163.071075810858, 5483P 10013
+-7.49999999999994,118.816031869142,-163.330476608511, 5483P 10014
+7.50000000000006,118.816031869142,-163.330476608511, 5483P 10015
+-7.49999999999994,119.075432604581,-165.207049019306, 5483P 10016
+7.50000000000006,119.075432604581,-165.207049019306, 5483P 10017
+-7.49999999999994,119.33483334002,-167.083621430101, 5483P 10018
+7.50000000000006,119.33483334002,-167.083621430101, 5483P 10019
+-7.49999999999994,117.599000752838,-167.842369071796, 5483P 10020
+7.50000000000006,117.599000752838,-167.842369071796, 5483P 10021
+-7.49999999999994,-2.17420701633559D-16,5.99482047511063, 5483P 10022
+-2.72950952283909,1.15871539408841; 5483P 10023
+128,1,4,1,2,0,0,0,0,0,-2.44824391814757D-16, 5485P 10024
+-2.44824391814757D-16,5.99482047510955,5.99482047510955, 5485P 10025
+-1.54151851752146,-1.54151851752146,-1.54151851752146, 5485P 10026
+-0.191402119515813,-0.191402119515813,1.15871427848983, 5485P 10027
+1.15871427848983,1.15871427848983,1.,1.,0.780670581409592, 5485P 10028
+0.780670581409592,1.,1.,0.780670581409592,0.780670581409592,1., 5485P 10029
+1.,2.93314110940286,-165.476420277504,7.50000000000003, 5485P 10030
+2.93314110940286,-165.476420277504,-7.49999999999997, 5485P 10031
+2.99177706791293,-163.474248497833,7.50000000000003, 5485P 10032
+2.99177706791294,-163.474248497833,-7.49999999999997, 5485P 10033
+4.95822887324418,-163.093200852189,7.50000000000003, 5485P 10034
+4.95822887324418,-163.093200852189,-7.49999999999997, 5485P 10035
+6.92468067857542,-162.712153206546,7.50000000000003, 5485P 10036
+6.92468067857543,-162.712153206546,-7.49999999999997, 5485P 10037
+7.72693023593539,-164.547507575232,7.50000000000003, 5485P 10038
+7.7269302359354,-164.547507575232,-7.49999999999997, 5485P 10039
+-2.44824391814757D-16,5.99482047510955,-1.54151851752146, 5485P 10040
+1.15871427848983; 5485P 10041
+128,1,1,1,1,0,0,1,0,0,-6.45934487907209,-6.45934487907209, 5487P 10042
+6.45935129953954,6.45935129953954,-5.01108541554375, 5487P 10043
+-5.01108541554375,5.01108541554375,5.01108541554375,1.,1.,1.,1., 5487P 10044
+125.609000828846,-156.537507575232,7.50000000000006, 5487P 10045
+-3.57796095727013,-156.537507575232,7.50000000000003, 5487P 10046
+125.609000828846,-256.759215886107,7.50000000000006, 5487P 10047
+-3.57796095727013,-256.759215886107,7.50000000000003, 5487P 10048
+-6.45934487907209,6.45935129953954,-5.01108541554375, 5487P 10049
+5.01108541554375; 5487P 10050
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,2.20708325126057, 5489P 10051
+2.20708325126057,-0.001,-0.001,1.911,1.911,1.,1.,1.,1., 5489P 10052
+-3.56685889059712,-187.481555692063,7.51000000000003, 5489P 10053
+-3.56685889059714,-165.400723179457,7.51000000000003, 5489P 10054
+-3.56685889059711,-187.481555692063,-11.61,-3.56685889059713, 5489P 10055
+-165.400723179457,-11.61,-0.001,2.20708325126057,-0.001,1.911; 5489P 10056
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,6.02853451978495, 5491P 10057
+6.02853451978495,-0.001,-0.001,1.911,1.911,1.,1.,1.,1., 5491P 10058
+-3.56789692344769,-247.756900880975,7.51000000000003, 5491P 10059
+-3.56685871841052,-187.461555692064,7.51000000000003, 5491P 10060
+-3.56789692344768,-247.756900880975,-11.61,-3.56685871841052, 5491P 10061
+-187.461555692064,-11.61,-0.001,6.02853451978495,-0.001,1.911; 5491P 10062
+128,1,4,1,2,0,0,0,0,0,-2.44929359793162D-16, 5493P 10063
+-2.44929359793162D-16,2.12171301109956,2.12171301109956, 5493P 10064
+-1.57081354545471,-1.57081354545471,-1.57081354545471, 5493P 10065
+-0.785406772727353,-0.785406772727353,0.,0.,0.,1.,1., 5493P 10066
+0.923877885178768,0.923877885178768,1.,1.,0.923877885178768, 5493P 10067
+0.923877885178768,1.,1.,5.43426324740446,-256.749215886107, 5493P 10068
+-11.6,5.43426324740445,-256.749215886107,7.50000000000003, 5493P 10069
+1.70540108471929,-256.749215886107,-11.6,1.70540108471929, 5493P 10070
+-256.749215886107,7.50000000000003,-0.931279936275416, 5493P 10071
+-254.112489464608,-11.6,-0.931279936275421,-254.112489464608, 5493P 10072
+7.50000000000003,-3.56796095727012,-251.475763043109,-11.6, 5493P 10073
+-3.56796095727013,-251.475763043109,7.50000000000003, 5493P 10074
+-3.56789675126107,-247.746900880977,-11.6,-3.56789675126107, 5493P 10075
+-247.746900880977,7.50000000000003,-2.44929359793162D-16, 5493P 10076
+2.12171301109956,-1.57081354545471,0.; 5493P 10077
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,11.1172574856417, 5495P 10078
+11.1172574856417,-0.001,-0.001,1.911,1.911,1.,1.,1.,1., 5495P 10079
+116.606838103822,-256.749215886107,7.51000000000006, 5495P 10080
+5.42426324740443,-256.749215886107,7.51000000000003, 5495P 10081
+116.606838103822,-256.749215886107,-11.6099999999999, 5495P 10082
+5.42426324740443,-256.749215886107,-11.61,-0.001, 5495P 10083
+11.1172574856417,-0.001,1.911; 5495P 10084
+128,1,2,1,2,0,0,0,0,0,-2.95981068971121D-17, 5497P 10085
+-2.95981068971121D-17,2.12171301109957,2.12171301109957, 5497P 10086
+-1.57079632679491,-1.57079632679491,-1.57079632679491, 5497P 10087
+2.4929260496087D-15,2.4929260496087D-15,2.4929260496087D-15,1., 5497P 10088
+1.,0.707106781186542,0.707106781186542,1.,1.,125.598998103822, 5497P 10089
+-247.747055886107,-11.5999999999999,125.598998103822, 5497P 10090
+-247.747055886107,7.50000000000006,125.598998103822, 5497P 10091
+-256.749215886107,-11.5999999999999,125.598998103822, 5497P 10092
+-256.749215886107,7.50000000000006,116.596838103822, 5497P 10093
+-256.749215886107,-11.5999999999999,116.596838103822, 5497P 10094
+-256.749215886107,7.50000000000006,-2.95981068971121D-17, 5497P 10095
+2.12171301109957,-1.57079632679491,2.4929260496087D-15; 5497P 10096
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000355,-0.00100000000000355, 5499P 10097
+8.22073908038377,8.22073908038377,-0.001,-0.001,1.911,1.911,1., 5499P 10098
+1.,1.,1.,125.599000829178,-165.53966508227,7.51000000000006, 5499P 10099
+125.59899810349,-247.757055886107,7.51000000000006, 5499P 10100
+125.599000829178,-165.53966508227,-11.6099999999999, 5499P 10101
+125.59899810349,-247.757055886107,-11.6099999999999, 5499P 10102
+-0.00100000000000355,8.22073908038377,-0.001,1.911; 5499P 10103
+128,1,2,1,2,0,0,0,0,0,-2.95981225633938D-17, 5501P 10104
+-2.95981225633938D-17,2.12171301109993,2.12171301109993, 5501P 10105
+-1.57079604986551,-1.57079604986551,-1.57079604986551, 5501P 10106
+4.70460948958054D-22,4.70460948958054D-22,4.70460948958054D-22, 5501P 10107
+1.,1.,0.707106879095863,0.707106879095863,1.,1., 5501P 10108
+116.596840828848,-156.547507575234,-11.5999999999999, 5501P 10109
+116.596840828848,-156.547507575234,7.50000000000006, 5501P 10110
+125.598998335884,-156.547507575234,-11.5999999999999, 5501P 10111
+125.598998335884,-156.547507575234,7.50000000000006, 5501P 10112
+125.599000828846,-165.54966508227,-11.5999999999999, 5501P 10113
+125.599000828846,-165.54966508227,7.50000000000006, 5501P 10114
+-2.95981225633938D-17,2.12171301109993,-1.57079604986551, 5501P 10115
+4.70460948958054D-22; 5501P 10116
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000233,-0.00100000000000233, 5503P 10117
+11.1172612056252,11.1172612056252,-0.00100000000000087, 5503P 10118
+-0.00100000000000087,1.911,1.911,1.,1.,1.,1.,5.42422877259571, 5503P 10119
+-156.547507575232,7.51000000000004,116.606840828848, 5503P 10120
+-156.547507575232,7.51000000000006,5.42422877259571, 5503P 10121
+-156.547507575232,-11.61,116.606840828848,-156.547507575232, 5503P 10122
+-11.61,-0.00100000000000233,11.1172612056252, 5503P 10123
+-0.00100000000000087,1.911; 5503P 10124
+128,1,2,1,2,0,0,0,0,0,-2.44900183857515D-16, 5505P 10125
+-2.44900183857515D-16,2.12171301109957,2.12171301109957, 5505P 10126
+-1.55536115200856,-1.55536115200856,-1.55536115200856, 5505P 10127
+2.95988436008734D-15,2.95988436008734D-15,2.95988436008734D-15, 5505P 10128
+1.,1.,0.712542827450537,0.712542827450537,1.,1., 5505P 10129
+-3.56685889059712,-165.410723179457,-11.6,-3.56685889059713, 5505P 10130
+-165.410723179457,7.50000000000003,-3.43004274316728, 5505P 10131
+-156.547507575232,-11.6,-3.43004274316728,-156.547507575232, 5505P 10132
+7.50000000000003,5.43422877259571,-156.547507575232,-11.6, 5505P 10133
+5.4342287725957,-156.547507575232,7.50000000000003, 5505P 10134
+-2.44900183857515D-16,2.12171301109957,-1.55536115200856, 5505P 10135
+2.95988436008734D-15; 5505P 10136
+128,1,1,1,1,0,0,1,0,0,-6.45934487907209,-6.45934487907209, 5507P 10137
+6.45935129953954,6.45935129953954,-5.01108541554375, 5507P 10138
+-5.01108541554375,5.01108541554375,5.01108541554375,1.,1.,1.,1., 5507P 10139
+-3.57796095727013,-156.537507575232,-11.6,125.609000828846, 5507P 10140
+-156.537507575232,-11.5999999999999,-3.57796095727014, 5507P 10141
+-256.759215886107,-11.6,125.609000828846,-256.759215886107, 5507P 10142
+-11.5999999999999,-6.45934487907209,6.45935129953954, 5507P 10143
+-5.01108541554375,5.01108541554375; 5507P 10144
+128,1,1,1,1,0,0,1,0,0,6.89889123368072,6.89889123368072, 5509P 10145
+7.61615528746972,7.61615528746972,0.199,0.199,1.501,1.501,1.,1., 5509P 10146
+1.,1.,220.762682252201,-164.547507575232,5.51,213.590041714311, 5509P 10147
+-164.547507575232,5.51,220.762682252201,-164.547507575232,-7.51, 5509P 10148
+213.590041714311,-164.547507575232,-7.51,6.89889123368072, 5509P 10149
+7.61615528746972,0.199,1.501; 5509P 10150
+128,1,1,1,1,0,0,1,0,0,-2.05802296091676,-2.05802296091676, 5511P 10151
+3.05802326326335,3.05802326326335,-4.36108541554375, 5511P 10152
+-4.36108541554375,-3.50908541554383,-3.50908541554383,1.,1.,1., 5511P 10153
+1.,220.762682252201,-163.037507575232,5.5,169.602220010399, 5511P 10154
+-163.037507575232,5.5,220.762682252201,-171.557507575232,5.5, 5511P 10155
+169.602220010399,-171.557507575232,5.5,-2.05802296091676, 5511P 10156
+3.05802326326335,-4.36108541554375,-3.50908541554383; 5511P 10157
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5513P 10158
+11.1172612056252,11.1172612056252,-0.001,-0.001,0.601,0.601,1., 5513P 10159
+1.,1.,1.,255.773741433756,-163.047507575232,7.51, 5513P 10160
+144.591129377503,-163.047507575232,7.51,255.773741433756, 5513P 10161
+-163.047507575232,1.49,144.591129377503,-163.047507575232,1.49, 5513P 10162
+-0.00100000000000178,11.1172612056252,-0.001,0.601; 5513P 10163
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000355,-0.00100000000000355, 5515P 10164
+0.800999999999997,0.800999999999997,9.999,9.999,11.711,11.711, 5515P 10165
+1.,1.,1.,1.,155.584237511039,-164.557507575232,-11.61, 5515P 10166
+155.584237511039,-156.537507575232,-11.61,155.584237511039, 5515P 10167
+-164.557507575232,5.50999999999998,155.584237511039, 5515P 10168
+-156.537507575232,5.50999999999998,-0.00100000000000355, 5515P 10169
+0.800999999999997,9.999,11.711; 5515P 10170
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.800999999999999, 5517P 10171
+0.800999999999999,9.999,9.999,11.711,11.711,1.,1.,1.,1., 5517P 10172
+220.752682252201,-164.557507575232,-11.61,220.752682252201, 5517P 10173
+-156.537507575232,-11.61,220.752682252201,-164.557507575232, 5517P 10174
+5.51,220.752682252201,-156.537507575232,5.51,-0.001, 5517P 10175
+0.800999999999999,9.999,11.711; 5517P 10176
+128,1,1,1,1,0,0,1,0,0,0.228270146333967,0.228270146333967, 5519P 10177
+1.09931081335358,1.09931081335358,0.199,0.199,1.501,1.501,1.,1., 5519P 10178
+1.,1.,155.594237511039,-164.547507575232,5.51,146.883830840843, 5519P 10179
+-164.547507575232,5.51,155.594237511039,-164.547507575232,-7.51, 5519P 10180
+146.883830840843,-164.547507575232,-7.51,0.228270146333967, 5519P 10181
+1.09931081335358,0.199,1.501; 5519P 10182
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5521P 10183
+11.1172612056252,11.1172612056252,-0.001,-0.001,1.911,1.911,1., 5521P 10184
+1.,1.,1.,144.591129377503,-156.547507575232,7.51, 5521P 10185
+255.773741433756,-156.547507575232,7.51,144.591129377503, 5521P 10186
+-156.547507575232,-11.61,255.773741433756,-156.547507575232, 5521P 10187
+-11.61,-0.00100000000000178,11.1172612056252,-0.001,1.911; 5521P 10188
+128,1,1,1,1,0,0,1,0,0,-6.45934487907209,-6.45934487907209, 5523P 10189
+6.45935129953954,6.45935129953954,-5.01108541554375, 5523P 10190
+-5.01108541554375,5.01108541554375,5.01108541554375,1.,1.,1.,1., 5523P 10191
+135.588939647638,-156.537507575232,-11.6,264.775901433754, 5523P 10192
+-156.537507575232,-11.6,135.588939647638,-256.759215886107, 5523P 10193
+-11.6,264.775901433754,-256.759215886107,-11.6, 5523P 10194
+-6.45934487907209,6.45935129953954,-5.01108541554375, 5523P 10195
+5.01108541554375; 5523P 10196
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.90334375,0.90334375, 5525P 10197
+-0.001,-0.001,0.101,0.101,1.,1.,1.,1.,189.322570909196, 5525P 10198
+-187.660756010089,-7.49,198.366008409196,-187.660756010089, 5525P 10199
+-7.49,189.322570909196,-187.660756010089,-8.51,198.366008409196, 5525P 10200
+-187.660756010089,-8.51,-0.001,0.90334375,-0.001,0.101; 5525P 10201
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.562521192363372, 5527P 10202
+0.844152403739511,0.844152403739511,0.844152403739511, 5527P 10203
+0.844152403739511,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5527P 10204
+198.356008409196,-187.660756010089,-7.5,200.231830522622, 5527P 10205
+-187.649960043727,-7.5,203.046799571848,-187.633758981298,-7.5, 5527P 10206
+205.856214479556,-187.800454535029,-7.5,206.793508409196, 5527P 10207
+-187.856068510089,-7.5,198.356008409196,-187.660756010089,-8.5, 5527P 10208
+200.231830522622,-187.649960043727,-8.5,203.046799571848, 5527P 10209
+-187.633758981298,-8.5,205.856214479556,-187.800454535029,-8.5, 5527P 10210
+206.793508409196,-187.856068510089,-8.5,0.,0.844152403739511,0., 5527P 10211
+0.1; 5527P 10212
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.261898150092223, 5529P 10213
+0.497778933126644,0.497778933126644,0.497778933126644, 5529P 10214
+0.497778933126644,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5529P 10215
+206.793508409196,-187.856068510089,-7.5,207.662882757985, 5529P 10216
+-188.049967147936,-7.5,209.315266463925,-188.418502233228,-7.5, 5529P 10217
+210.559416215435,-189.560844484626,-7.5,211.148977159196, 5529P 10218
+-190.102162260089,-7.5,206.793508409196,-187.856068510089,-8.5, 5529P 10219
+207.662882757985,-188.049967147936,-8.5,209.315266463925, 5529P 10220
+-188.418502233228,-8.5,210.559416215435,-189.560844484626,-8.5, 5529P 10221
+211.148977159196,-190.102162260089,-8.5,0.,0.497778933126644,0., 5529P 10222
+0.1; 5529P 10223
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.235900997344428, 5531P 10224
+0.499964111306824,0.499964111306824,0.499964111306824, 5531P 10225
+0.499964111306824,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5531P 10226
+211.148977159196,-190.102162260089,-7.5,211.598623495598, 5531P 10227
+-190.765518704879,-7.5,212.551595435151,-192.171423805461,-7.5, 5531P 10228
+212.643437973881,-193.871965743153,-7.5,212.691945909196, 5531P 10229
+-194.770131010089,-7.5,211.148977159196,-190.102162260089,-8.5, 5531P 10230
+211.598623495598,-190.765518704879,-8.5,212.551595435151, 5531P 10231
+-192.171423805461,-8.5,212.643437973881,-193.871965743153,-8.5, 5531P 10232
+212.691945909196,-194.770131010089,-8.5,0.,0.499964111306824,0., 5531P 10233
+0.1; 5531P 10234
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.238137123420061, 5533P 10235
+0.450534415924653,0.450534415924653,0.450534415924653, 5533P 10236
+0.450534415924653,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5533P 10237
+212.691945909196,-194.770131010089,-7.5,212.655290538983, 5533P 10238
+-195.575101594424,-7.5,212.585941814299,-197.098034881101,-7.5, 5533P 10239
+211.861566257095,-198.436165560765,-7.5,211.520070909196, 5533P 10240
+-199.067006010089,-7.5,212.691945909196,-194.770131010089,-8.5, 5533P 10241
+212.655290538983,-195.575101594424,-8.5,212.585941814299, 5533P 10242
+-197.098034881101,-8.5,211.861566257095,-198.436165560765,-8.5, 5533P 10243
+211.520070909196,-199.067006010089,-8.5,0.,0.450534415924653,0., 5533P 10244
+0.1; 5533P 10245
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.202384184696661, 5535P 10246
+0.410291107118963,0.410291107118963,0.410291107118963, 5535P 10247
+0.410291107118963,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5535P 10248
+211.520070909196,-199.067006010089,-7.5,211.087476419098, 5535P 10249
+-199.599125342313,-7.5,210.210482633534,-200.677884684425,-7.5, 5535P 10250
+208.927838177421,-201.216133860944,-7.5,208.277883409196, 5535P 10251
+-201.488881010089,-7.5,211.520070909196,-199.067006010089,-8.5, 5535P 10252
+211.087476419098,-199.599125342313,-8.5,210.210482633534, 5535P 10253
+-200.677884684425,-8.5,208.927838177421,-201.216133860944,-8.5, 5535P 10254
+208.277883409196,-201.488881010089,-8.5,0.,0.410291107118963,0., 5535P 10255
+0.1; 5535P 10256
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.367088791586182, 5537P 10257
+1.04309862016124,1.04309862016124,1.04309862016124, 5537P 10258
+1.04309862016124,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5537P 10259
+208.277883409196,-201.488881010089,-7.5,207.069106365723, 5537P 10260
+-201.689994183538,-7.5,203.634314307158,-202.261465932413,-7.5, 5537P 10261
+200.147189290955,-202.219319929824,-7.5,197.887258409196, 5537P 10262
+-202.192006010089,-7.5,208.277883409196,-201.488881010089,-8.5, 5537P 10263
+207.069106365723,-201.689994183538,-8.5,203.634314307158, 5537P 10264
+-202.261465932413,-8.5,200.147189290955,-202.219319929824,-8.5, 5537P 10265
+197.887258409196,-202.192006010089,-8.5,0.,1.04309862016124,0., 5537P 10266
+0.1; 5537P 10267
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.85646875,0.85646875, 5539P 10268
+-0.001,-0.001,0.101,0.101,1.,1.,1.,1.,197.897258409196, 5539P 10269
+-202.192006010089,-7.49,189.322570909196,-202.192006010089, 5539P 10270
+-7.49,197.897258409196,-202.192006010089,-8.51,189.322570909196, 5539P 10271
+-202.192006010089,-8.51,-0.001,0.85646875,-0.001,0.101; 5539P 10272
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.454125,1.454125,-0.001, 5541P 10273
+-0.001,0.101,0.101,1.,1.,1.,1.,189.332570909196, 5541P 10274
+-202.202006010089,-7.49,189.332570909196,-187.650756010089, 5541P 10275
+-7.49,189.332570909196,-202.202006010089,-8.51,189.332570909196, 5541P 10276
+-187.650756010089,-8.51,-0.001,1.454125,-0.001,0.101; 5541P 10277
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,2.391625,2.391625,-0.001, 5543P 10278
+-0.001,0.101,0.101,1.,1.,1.,1.,189.332570909196, 5543P 10279
+-235.248881010089,-7.49,189.332570909196,-211.322631010089, 5543P 10280
+-7.49,189.332570909196,-235.248881010089,-8.51,189.332570909196, 5543P 10281
+-211.322631010089,-8.51,-0.001,2.391625,-0.001,0.101; 5543P 10282
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.235375,0.235375,-0.001, 5545P 10283
+-0.001,0.101,0.101,1.,1.,1.,1.,189.322570909196, 5545P 10284
+-211.332631010089,-7.49,191.686320909196,-211.332631010089, 5545P 10285
+-7.49,189.322570909196,-211.332631010089,-8.51,191.686320909196, 5545P 10286
+-211.332631010089,-8.51,-0.001,0.235375,-0.001,0.101; 5545P 10287
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.345102942215374, 5547P 10288
+0.58728108987376,0.58728108987376,0.58728108987376, 5547P 10289
+0.58728108987376,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5547P 10290
+191.676320909196,-211.332631010089,-7.5,192.831842297831, 5547P 10291
+-211.334659249473,-7.5,194.798258046518,-211.338110818527,-7.5, 5547P 10292
+196.708785715842,-211.790577691044,-7.5,197.496633409196, 5547P 10293
+-211.977162260089,-7.5,191.676320909196,-211.332631010089,-8.5, 5547P 10294
+192.831842297831,-211.334659249473,-8.5,194.798258046518, 5547P 10295
+-211.338110818527,-8.5,196.708785715842,-211.790577691044,-8.5, 5547P 10296
+197.496633409196,-211.977162260089,-8.5,0.,0.58728108987376,0., 5547P 10297
+0.1; 5547P 10298
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.200908599721103, 5549P 10299
+0.424515823966796,0.424515823966796,0.424515823966796, 5549P 10300
+0.424515823966796,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5549P 10301
+197.496633409196,-211.977162260089,-7.5,198.113566785881, 5549P 10302
+-212.251744615522,-7.5,199.417134582878,-212.831931601172,-7.5, 5549P 10303
+200.436343293178,-213.832788618144,-7.5,200.973195909196, 5549P 10304
+-214.359974760089,-7.5,197.496633409196,-211.977162260089,-8.5, 5549P 10305
+198.113566785881,-212.251744615522,-8.5,199.417134582878, 5549P 10306
+-212.831931601172,-8.5,200.436343293178,-213.832788618144,-8.5, 5549P 10307
+200.973195909196,-214.359974760089,-8.5,0.,0.424515823966796,0., 5549P 10308
+0.1; 5549P 10309
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.378624565580162, 5551P 10310
+1.03970923338266,1.03970923338266,1.03970923338266, 5551P 10311
+1.03970923338266,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5551P 10312
+200.973195909196,-214.359974760089,-7.5,201.766342156981, 5551P 10313
+-215.342414541706,-7.5,203.94433469157,-218.04021020804,-7.5, 5551P 10314
+205.853212488561,-220.936425355574,-7.5,207.066945909196, 5551P 10315
+-222.777943510089,-7.5,200.973195909196,-214.359974760089,-8.5, 5551P 10316
+201.766342156981,-215.342414541706,-8.5,203.94433469157, 5551P 10317
+-218.04021020804,-8.5,205.853212488561,-220.936425355574,-8.5, 5551P 10318
+207.066945909196,-222.777943510089,-8.5,0.,1.03970923338266,0., 5551P 10319
+0.1; 5551P 10320
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.50151362462835, 5553P 10321
+1.50151362462835,-0.001,-0.001,0.101,0.101,1.,1.,1.,1., 5553P 10322
+207.061374900134,-222.769639062002,-7.49,215.431891918257, 5553P 10323
+-235.247185458177,-7.49,207.061374900134,-222.769639062002, 5553P 10324
+-8.51,215.431891918257,-235.247185458177,-8.51,-0.001, 5553P 10325
+1.50151362462835,-0.001,0.101; 5553P 10326
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.3838125,1.3838125,-0.001, 5555P 10327
+-0.001,0.101,0.101,1.,1.,1.,1.,215.416320909196, 5555P 10328
+-235.238881010089,-7.49,229.264445909196,-235.238881010089, 5555P 10329
+-7.49,215.416320909196,-235.238881010089,-8.51,229.264445909196, 5555P 10330
+-235.238881010089,-8.51,-0.001,1.3838125,-0.001,0.101; 5555P 10331
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.31895856175671, 5557P 10332
+1.31895856175671,-0.001,-0.001,0.101,0.101,1.,1.,1.,1., 5557P 10333
+229.259751225844,-235.247357661271,-7.49,222.256953092547, 5557P 10334
+-224.058529358908,-7.49,229.259751225844,-235.247357661271, 5557P 10335
+-8.51,222.256953092547,-224.058529358908,-8.51,-0.001, 5557P 10336
+1.31895856175671,-0.001,0.101; 5557P 10337
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.677413644671362, 5559P 10338
+1.14014998210771,1.14014998210771,1.14014998210771, 5559P 10339
+1.14014998210771,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5559P 10340
+222.262258409196,-224.067006010089,-7.5,221.071194285368, 5559P 10341
+-222.144734836071,-7.5,219.066522914849,-218.90937419357,-7.5, 5559P 10342
+216.657814949634,-215.965086764049,-7.5,215.680227159196, 5559P 10343
+-214.770131010089,-7.5,222.262258409196,-224.067006010089,-8.5, 5559P 10344
+221.071194285368,-222.144734836071,-8.5,219.066522914849, 5559P 10345
+-218.90937419357,-8.5,216.657814949634,-215.965086764049,-8.5, 5559P 10346
+215.680227159196,-214.770131010089,-8.5,0.,1.14014998210771,0., 5559P 10347
+0.1; 5559P 10348
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.373681930926689, 5561P 10349
+0.785781181487306,0.785781181487306,0.785781181487306, 5561P 10350
+0.785781181487306,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5561P 10351
+215.680227159196,-214.770131010089,-7.5,214.783943791004, 5561P 10352
+-213.899557402522,-7.5,212.899232367418,-212.068908657398,-7.5, 5561P 10353
+210.662083255283,-210.689085359138,-7.5,209.488820909196, 5561P 10354
+-209.965443510089,-7.5,215.680227159196,-214.770131010089,-8.5, 5561P 10355
+214.783943791004,-213.899557402522,-8.5,212.899232367418, 5561P 10356
+-212.068908657398,-8.5,210.662083255283,-210.689085359138,-8.5, 5561P 10357
+209.488820909196,-209.965443510089,-8.5,0.,0.785781181487306,0., 5561P 10358
+0.1; 5561P 10359
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.686133847994611, 5563P 10360
+1.26971165673407,1.26971165673407,1.26971165673407, 5563P 10361
+1.26971165673407,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5563P 10362
+209.488820909196,-209.965443510089,-7.5,211.783402108826, 5563P 10363
+-209.536092499316,-7.5,216.029594750405,-208.741565331179,-7.5, 5563P 10364
+219.30946855557,-205.953780785553,-7.5,220.816945909196, 5563P 10365
+-204.672474760089,-7.5,209.488820909196,-209.965443510089,-8.5, 5563P 10366
+211.783402108826,-209.536092499316,-8.5,216.029594750405, 5563P 10367
+-208.741565331179,-8.5,219.30946855557,-205.953780785553,-8.5, 5563P 10368
+220.816945909196,-204.672474760089,-8.5,0.,1.26971165673407,0., 5563P 10369
+0.1; 5563P 10370
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.554440940539225, 5565P 10371
+1.15039635746486,1.15039635746486,1.15039635746486, 5565P 10372
+1.15039635746486,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5565P 10373
+220.816945909196,-204.672474760089,-7.5,221.921692259118, 5565P 10374
+-203.14284764226,-7.5,224.213904258538,-199.969060614703,-7.5, 5565P 10375
+224.472199977234,-196.055393519306,-7.5,224.606008409196, 5565P 10376
+-194.027943510089,-7.5,220.816945909196,-204.672474760089,-8.5, 5565P 10377
+221.921692259118,-203.14284764226,-8.5,224.213904258538, 5565P 10378
+-199.969060614703,-8.5,224.472199977234,-196.055393519306,-8.5, 5565P 10379
+224.606008409196,-194.027943510089,-8.5,0.,1.15039635746486,0., 5565P 10380
+0.1; 5565P 10381
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.483548351122755, 5567P 10382
+0.946106124712921,0.946106124712921,0.946106124712921, 5567P 10383
+0.946106124712921,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5567P 10384
+224.606008409196,-194.027943510089,-7.5,224.51140065161, 5567P 10385
+-192.397733878194,-7.5,224.326292009032,-189.208081150147,-7.5, 5567P 10386
+222.835074753493,-186.384818489344,-7.5,222.106008409196, 5567P 10387
+-185.004506010089,-7.5,224.606008409196,-194.027943510089,-8.5, 5567P 10388
+224.51140065161,-192.397733878194,-8.5,224.326292009032, 5567P 10389
+-189.208081150147,-8.5,222.835074753493,-186.384818489344,-8.5, 5567P 10390
+222.106008409196,-185.004506010089,-8.5,0.,0.946106124712921,0., 5567P 10391
+0.1; 5567P 10392
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.443673849959561, 5569P 10393
+0.875191282358429,0.875191282358429,0.875191282358429, 5569P 10394
+0.875191282358429,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5569P 10395
+222.106008409196,-185.004506010089,-7.5,221.213376913017, 5569P 10396
+-183.793211270963,-7.5,219.45257152887,-181.403810597143,-7.5, 5569P 10397
+216.769000336918,-180.1395665842,-7.5,215.445852159196, 5569P 10398
+-179.516224760089,-7.5,222.106008409196,-185.004506010089,-8.5, 5569P 10399
+221.213376913017,-183.793211270963,-8.5,219.45257152887, 5569P 10400
+-181.403810597143,-8.5,216.769000336918,-180.1395665842,-8.5, 5569P 10401
+215.445852159196,-179.516224760089,-8.5,0.,0.875191282358429,0., 5569P 10402
+0.1; 5569P 10403
+128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.553731174536493, 5571P 10404
+1.34714989356346,1.34714989356346,1.34714989356346, 5571P 10405
+1.34714989356346,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5571P 10406
+215.445852159196,-179.516224760089,-7.5,213.648767024992, 5571P 10407
+-179.069647768159,-7.5,209.276712211041,-177.983188896397,-7.5, 5571P 10408
+204.763886597037,-177.976937713112,-7.5,202.106008409196, 5571P 10409
+-177.973256010089,-7.5,215.445852159196,-179.516224760089,-8.5, 5571P 10410
+213.648767024992,-179.069647768159,-8.5,209.276712211041, 5571P 10411
+-177.983188896397,-8.5,204.763886597037,-177.976937713112,-8.5, 5571P 10412
+202.106008409196,-177.973256010089,-8.5,0.,1.34714989356346,0., 5571P 10413
+0.1; 5571P 10414
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,2.43459375,2.43459375, 5573P 10415
+-0.001,-0.001,0.101,0.101,1.,1.,1.,1.,202.116008409196, 5573P 10416
+-177.973256010089,-7.49,177.760070909196,-177.973256010089, 5573P 10417
+-7.49,202.116008409196,-177.973256010089,-8.51,177.760070909196, 5573P 10418
+-177.973256010089,-8.51,-0.001,2.43459375,-0.001,0.101; 5573P 10419
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,5.7275625,5.7275625,-0.001, 5575P 10420
+-0.001,0.101,0.101,1.,1.,1.,1.,177.770070909196, 5575P 10421
+-177.963256010089,-7.49,177.770070909196,-235.248881010089, 5575P 10422
+-7.49,177.770070909196,-177.963256010089,-8.51,177.770070909196, 5575P 10423
+-235.248881010089,-8.51,-0.001,5.7275625,-0.001,0.101; 5575P 10424
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.15725,1.15725,-0.001, 5577P 10425
+-0.001,0.101,0.101,1.,1.,1.,1.,177.760070909196, 5577P 10426
+-235.238881010089,-7.49,189.342570909196,-235.238881010089, 5577P 10427
+-7.49,177.760070909196,-235.238881010089,-8.51,189.342570909196, 5577P 10428
+-235.238881010089,-8.51,-0.001,1.15725,-0.001,0.101; 5577P 10429
+128,1,1,1,1,0,0,1,0,0,-2.57521875,-2.57521875,2.57521875, 5579P 10430
+2.57521875,-2.86428125,-2.86428125,2.86428125,2.86428125,1.,1., 5579P 10431
+1.,1.,229.264445909196,-177.963256010089,-8.5,177.760070909196, 5579P 10432
+-177.963256010089,-8.5,229.264445909196,-235.248881010089,-8.5, 5579P 10433
+177.760070909196,-235.248881010089,-8.5,-2.57521875,2.57521875, 5579P 10434
+-2.86428125,2.86428125; 5579P 10435
+128,1,1,1,1,0,0,1,0,0,-5.83292786387186,-5.83292786387186, 5581P 10436
+5.83292652709446,5.83292652709446,-4.39739056237306, 5581P 10437
+-4.39739056237306,4.38466970486183,4.38466970486183,1.,1.,1.,1., 5581P 10438
+258.511731281752,-162.674456106938,-7.5,141.853187372088, 5581P 10439
+-162.674456106938,-7.5,258.511731281752,-250.495058779287,-7.5, 5581P 10440
+141.853187372088,-250.495058779287,-7.5,-5.83292786387186, 5581P 10441
+5.83292652709446,-4.39739056237306,4.38466970486183; 5581P 10442
+128,1,6,1,2,0,0,0,0,0,11.5962540906493,11.5962540906493, 5583P 10443
+14.5245559935925,14.5245559935925,3.13917765423161, 5583P 10444
+3.13917765423161,3.13917765423161,4.18718020521427, 5583P 10445
+4.18718020521427,5.23518275619693,5.23518275619693, 5583P 10446
+6.28318530717959,6.28318530717959,6.28318530717959,1.,1., 5583P 10447
+0.865824083692631,0.865824083692631,1.,1.,0.865824083692631, 5583P 10448
+0.865824083692631,1.,1.,0.865824083692631,0.865824083692631,1., 5583P 10449
+1.,158.107551165901,-172.121201750437,-7.5,158.107551165901, 5583P 10450
+-172.121201750437,-11.6,158.106574158405,-171.312085990108,-7.5, 5583P 10451
+158.106574158405,-171.312085990108,-11.6,158.807126580916, 5583P 10452
+-170.907245809948,-7.5,158.807126580916,-170.907245809948,-11.6, 5583P 10453
+159.507679003426,-170.502405629789,-7.5,159.507679003426, 5583P 10454
+-170.502405629789,-11.6,160.208231425936,-170.907245809948,-7.5, 5583P 10455
+160.208231425936,-170.907245809948,-11.6,160.908783848446, 5583P 10456
+-171.312085990108,-7.5,160.908783848446,-171.312085990108,-11.6, 5583P 10457
+160.90780684095,-172.121201750437,-7.5,160.90780684095, 5583P 10458
+-172.121201750437,-11.6,11.5962540906493,14.5245559935925, 5583P 10459
+3.13917765423161,6.28318530717959; 5583P 10460
+128,1,6,1,2,0,0,0,0,0,11.5962540906495,11.5962540906495, 5585P 10461
+14.5245559935927,14.5245559935927,3.13917765425437, 5585P 10462
+3.13917765425437,3.13917765425437,4.18718020522942, 5585P 10463
+4.18718020522942,5.23518275620448,5.23518275620448, 5585P 10464
+6.28318530717956,6.28318530717956,6.28318530717956,1.,1., 5585P 10465
+0.865824083694531,0.865824083694531,1.,1.,0.865824083694531, 5585P 10466
+0.865824083694531,1.,1.,0.865824083694531,0.865824083694531,1., 5585P 10467
+1.,160.90780684095,-172.121201750437,-7.5,160.90780684095, 5585P 10468
+-172.121201750437,-11.6,160.908783848437,-172.930317510758,-7.5, 5585P 10469
+160.908783848437,-172.930317510758,-11.6,160.208231425931, 5585P 10470
+-173.335157690912,-7.5,160.208231425931,-173.335157690912,-11.6, 5585P 10471
+159.507679003426,-173.739997871065,-7.5,159.507679003426, 5585P 10472
+-173.739997871065,-11.6,158.80712658092,-173.335157690912,-7.5, 5585P 10473
+158.80712658092,-173.335157690912,-11.6,158.106574158415, 5585P 10474
+-172.930317510759,-7.5,158.106574158415,-172.930317510759,-11.6, 5585P 10475
+158.107551165901,-172.121201750437,-7.5,158.107551165901, 5585P 10476
+-172.121201750437,-11.6,11.5962540906495,14.5245559935927, 5585P 10477
+3.13917765425437,6.28318530717956; 5585P 10478
+128,1,6,1,2,0,0,0,0,0,11.5962540906494,11.5962540906494, 5587P 10479
+14.5245559935926,14.5245559935926,3.13917765424305, 5587P 10480
+3.13917765424305,3.13917765424305,4.18718020522189, 5587P 10481
+4.18718020522189,5.23518275620074,5.23518275620074, 5587P 10482
+6.28318530717959,6.28318530717959,6.28318530717959,1.,1., 5587P 10483
+0.865824083693586,0.865824083693586,1.,1.,0.865824083693586, 5587P 10484
+0.865824083693586,1.,1.,0.865824083693586,0.865824083693586,1., 5587P 10485
+1.,236.882006921691,-190.598023114196,-7.5,236.882006921691, 5587P 10486
+-190.598023114196,-11.6,236.8810299142,-189.78890735387,-7.5, 5587P 10487
+236.8810299142,-189.78890735387,-11.6,237.581582336708, 5587P 10488
+-189.384067173714,-7.5,237.581582336708,-189.384067173714,-11.6, 5587P 10489
+238.282134759216,-188.979226993558,-7.5,238.282134759216, 5587P 10490
+-188.979226993558,-11.6,238.982687181724,-189.384067173714,-7.5, 5587P 10491
+238.982687181724,-189.384067173714,-11.6,239.683239604231, 5587P 10492
+-189.78890735387,-7.5,239.683239604231,-189.78890735387,-11.6, 5587P 10493
+239.68226259674,-190.598023114196,-7.5,239.68226259674, 5587P 10494
+-190.598023114196,-11.6,11.5962540906494,14.5245559935926, 5587P 10495
+3.13917765424305,6.28318530717959; 5587P 10496
+128,1,6,1,2,0,0,0,0,0,11.5962540906494,11.5962540906494, 5589P 10497
+14.5245559935926,14.5245559935926,3.13917765424295, 5589P 10498
+3.13917765424295,3.13917765424295,4.18718020522186, 5589P 10499
+4.18718020522186,5.23518275620077,5.23518275620077, 5589P 10500
+6.28318530717964,6.28318530717964,6.28318530717964,1.,1., 5589P 10501
+0.865824083693573,0.865824083693573,1.,1.,0.865824083693573, 5589P 10502
+0.865824083693573,1.,1.,0.865824083693573,0.865824083693573,1., 5589P 10503
+1.,239.68226259674,-190.598023114196,-7.5,239.68226259674, 5589P 10504
+-190.598023114196,-11.6,239.683239604231,-191.407138874521,-7.5, 5589P 10505
+239.683239604231,-191.407138874521,-11.6,238.982687181724, 5589P 10506
+-191.811979054677,-7.5,238.982687181724,-191.811979054677,-11.6, 5589P 10507
+238.282134759216,-192.216819234834,-7.5,238.282134759216, 5589P 10508
+-192.216819234834,-11.6,237.581582336708,-191.811979054677,-7.5, 5589P 10509
+237.581582336708,-191.811979054677,-11.6,236.8810299142, 5589P 10510
+-191.407138874521,-7.5,236.8810299142,-191.407138874521,-11.6, 5589P 10511
+236.882006921691,-190.598023114196,-7.5,236.882006921691, 5589P 10512
+-190.598023114196,-11.6,11.5962540906494,14.5245559935926, 5589P 10513
+3.13917765424295,6.28318530717964; 5589P 10514
+128,1,2,1,2,0,0,0,0,0,0.799309396681276,0.799309396681276, 5591P 10515
+5.99482047510957,5.99482047510957,-1.15918194829754, 5591P 10516
+-1.15918194829754,-1.15918194829754,-0.029277809273359, 5591P 10517
+-0.029277809273359,-0.029277809273359,1.,1.,0.844614262194489, 5591P 10518
+0.844614262194489,1.,1.,143.600041714311,-167.842837467805,5.5, 5591P 10519
+143.600041714311,-167.842837467805,-7.5,142.146470952165, 5591P 10520
+-167.208278396419,5.5,142.146470952165,-167.208278396419,-7.5, 5591P 10521
+142.10004171431,-165.622914872961,5.5,142.10004171431, 5591P 10522
+-165.622914872961,-7.5,0.799309396681276,5.99482047510957, 5591P 10523
+-1.15918194829754,-0.029277809273359; 5591P 10524
+128,1,1,1,1,0,0,1,0,0,0.228270146333974,0.228270146333974, 5593P 10525
+10.8879873393078,10.8879873393078,0.199,0.199,1.501,1.501,1.,1., 5593P 10526
+1.,1.,146.883865315652,-248.749215886107,5.51,253.48103724539, 5593P 10527
+-248.749215886107,5.51,146.883865315652,-248.749215886107,-7.51, 5593P 10528
+253.48103724539,-248.749215886107,-7.51,0.228270146333974, 5593P 10529
+10.8879873393078,0.199,1.501; 5593P 10530
+128,1,1,1,1,0,0,1,0,0,0.228270146333972,0.228270146333972, 5595P 10531
+6.02854140723685,6.02854140723685,0.199,0.199,1.501,1.501,1.,1., 5595P 10532
+1.,1.,143.600041886497,-187.461624566824,5.51,143.599043157521, 5595P 10533
+-245.464337167254,5.51,143.600041886497,-187.461624566824,-7.51, 5595P 10534
+143.599043157521,-245.464337167254,-7.51,0.228270146333972, 5595P 10535
+6.02854140723685,0.199,1.501; 5595P 10536
+128,1,1,1,1,0,0,1,0,0,4.45882151319937,4.45882151319937, 5597P 10537
+5.55913232655296,5.55913232655296,-4.36108541554375, 5597P 10538
+-4.36108541554375,-4.20908541554375,-4.20908541554375,1.,1.,1., 5597P 10539
+1.,155.594237511039,-163.037507575232,5.5,144.591129377503, 5597P 10540
+-163.037507575232,5.5,155.594237511039,-164.557507575232,5.5, 5597P 10541
+144.591129377503,-164.557507575232,5.5,4.45882151319937, 5597P 10542
+5.55913232655296,-4.36108541554375,-4.20908541554375; 5597P 10543
+128,1,1,1,1,0,0,1,0,0,5.65724109287224,5.65724109287224, 5599P 10544
+5.80934487903499,5.80934487903499,-4.10354468577093, 5599P 10545
+-4.10354468577093,4.11086510715957,4.11086510715957,1.,1.,1.,1., 5599P 10546
+143.610041714311,-165.612914872961,5.5,142.089003852683, 5599P 10547
+-165.612914872961,5.5,143.610041714311,-247.757012802266,5.5, 5599P 10548
+142.089003852683,-247.757012802266,5.5,5.65724109287224, 5599P 10549
+5.80934487903499,-4.10354468577093,4.11086510715957; 5599P 10550
+128,1,1,1,1,0,0,1,0,0,-5.55912860656964,-5.55912860656964, 5601P 10551
+5.55912887907209,5.55912887907209,4.20908541554374, 5601P 10552
+4.20908541554374,4.36108541554375,4.36108541554375,1.,1.,1.,1., 5601P 10553
+255.773738708729,-248.739215886107,5.5,144.591163852312, 5601P 10554
+-248.739215886107,5.5,255.773738708729,-250.259215886107,5.5, 5601P 10555
+144.591163852312,-250.259215886107,5.5,-5.55912860656964, 5601P 10556
+5.55912887907209,4.20908541554374,4.36108541554375; 5601P 10557
+128,1,1,1,1,0,0,1,0,0,9.31695353740574,9.31695353740574, 5603P 10558
+10.8879910592913,10.8879910592913,0.199,0.199,1.501,1.501,1.,1., 5603P 10559
+1.,1.,253.481039970417,-164.547507575232,5.51,237.770664751561, 5603P 10560
+-164.547507575232,5.51,253.481039970417,-164.547507575232,-7.51, 5603P 10561
+237.770664751561,-164.547507575232,-7.51,9.31695353740574, 5603P 10562
+10.8879910592913,0.199,1.501; 5603P 10563
+128,1,1,1,1,0,0,1,0,0,-5.80934505627278,-5.80934505627278, 5605P 10564
+-5.65734461417045,-5.65734461417045,-4.11086968638896, 5605P 10565
+-4.11086968638896,4.11086941554375,4.11086941554375,1.,1.,1.,1., 5605P 10566
+258.275903205761,-165.53966486678,5.5,256.755898784737, 5605P 10567
+-165.53966486678,5.5,258.275903205761,-247.757055886107,5.5, 5605P 10568
+256.755898784737,-247.757055886107,5.5,-5.80934505627278, 5605P 10569
+-5.65734461417045,-4.11086968638896,4.11086941554375; 5605P 10570
+128,1,1,1,1,0,0,1,0,0,-5.55912887907228,-5.55912887907228, 5607P 10571
+-3.75882121085278,-3.75882121085278,-4.36108541554375, 5607P 10572
+-4.36108541554375,-4.20908541554375,-4.20908541554375,1.,1.,1., 5607P 10573
+1.,255.773741433756,-163.037507575232,5.5,237.770664751561, 5607P 10574
+-163.037507575232,5.5,255.773741433756,-164.557507575232,5.5, 5607P 10575
+237.770664751561,-164.557507575232,5.5,-5.55912887907228, 5607P 10576
+-3.75882121085278,-4.36108541554375,-4.20908541554375; 5607P 10577
+128,1,6,1,2,0,0,0,0,0,10.7132996449142,10.7132996449142, 5609P 10578
+13.6416015478574,13.6416015478574,3.13925814733116, 5609P 10579
+3.13925814733116,3.13925814733116,4.18720703624771, 5609P 10580
+4.18720703624771,5.23515592516426,5.23515592516426, 5609P 10581
+6.28310481408081,6.28310481408081,6.28310481408081,1.,1., 5609P 10582
+0.865837508249046,0.865837508249046,1.,1.,0.865837508249046, 5609P 10583
+0.865837508249046,1.,1.,0.865837508249046,0.865837508249046,1., 5609P 10584
+1.,160.582628341595,-228.698656211065,-7.5,160.582628341595, 5609P 10585
+-228.698656211065,-11.6,160.581651394605,-227.831805396136,-7.5, 5609P 10586
+160.581651394605,-227.831805396136,-11.6,161.332203820879, 5609P 10587
+-227.39809772364,-7.5,161.332203820879,-227.39809772364,-11.6, 5609P 10588
+162.082756247154,-226.964390051143,-7.5,162.082756247154, 5609P 10589
+-226.964390051143,-11.6,162.833308673433,-227.398097723632,-7.5, 5609P 10590
+162.833308673433,-227.398097723632,-11.6,163.583861099712, 5609P 10591
+-227.83180539612,-7.5,163.583861099712,-227.83180539612,-11.6, 5609P 10592
+163.58288415273,-228.69865621105,-7.5,163.58288415273, 5609P 10593
+-228.69865621105,-11.6,10.7132996449142,13.6416015478574, 5609P 10594
+3.13925814733116,6.28310481408081; 5609P 10595
+128,1,6,1,2,0,0,0,0,0,10.7132996449144,10.7132996449144, 5611P 10596
+13.6416015478576,13.6416015478576,3.13925814734165, 5611P 10597
+3.13925814734165,3.13925814734165,4.18720703625122, 5611P 10598
+4.18720703625122,5.23515592516079,5.23515592516079, 5611P 10599
+6.28310481407037,6.28310481407037,6.28310481407037,1.,1., 5611P 10600
+0.865837508250792,0.865837508250792,1.,1.,0.865837508250792, 5611P 10601
+0.865837508250792,1.,1.,0.865837508250792,0.865837508250792,1., 5611P 10602
+1.,163.58288415273,-228.69865621105,-7.5,163.58288415273, 5611P 10603
+-228.69865621105,-11.6,163.583861099712,-229.565507025972,-7.5, 5611P 10604
+163.583861099712,-229.565507025972,-11.6,162.833308673442, 5611P 10605
+-229.999214698462,-7.5,162.833308673442,-229.999214698462,-11.6, 5611P 10606
+162.082756247172,-230.432922370953,-7.5,162.082756247172, 5611P 10607
+-230.432922370953,-11.6,161.332203820897,-229.99921469847,-7.5, 5611P 10608
+161.332203820897,-229.99921469847,-11.6,160.581651394623, 5611P 10609
+-229.565507025988,-7.5,160.581651394623,-229.565507025988,-11.6, 5611P 10610
+160.582628341595,-228.698656211065,-7.5,160.582628341595, 5611P 10611
+-228.698656211065,-11.6,10.7132996449144,13.6416015478576, 5611P 10612
+3.13925814734165,6.28310481407037; 5611P 10613
+128,1,6,1,2,0,0,0,0,0,10.7132954794018,10.7132954794018, 5613P 10614
+13.6415962437716,13.6415962437716,3.13866619557958, 5613P 10615
+3.13866619557958,3.13866619557958,4.18680559830898, 5613P 10616
+4.18680559830898,5.23494500103838,5.23494500103838, 5613P 10617
+6.28308440376778,6.28308440376778,6.28308440376778,1.,1., 5613P 10618
+0.865789844880249,0.865789844880249,1.,1.,0.865789844880249, 5613P 10619
+0.865789844880249,1.,1.,0.865789844880249,0.865789844880249,1., 5613P 10620
+1.,236.784016479572,-228.698656211057,-7.5,236.784016479572, 5613P 10621
+-228.698656211057,-11.6,236.782791542295,-227.831614772873,-7.5, 5613P 10622
+236.782791542295,-227.831614772873,-11.6,237.533467963717, 5613P 10623
+-227.397740060174,-7.5,237.533467963717,-227.397740060174,-11.6, 5613P 10624
+238.284144385139,-226.963865347475,-7.5,238.284144385139, 5613P 10625
+-226.963865347475,-11.6,239.034820806561,-227.397740060174,-7.5, 5613P 10626
+239.034820806561,-227.397740060174,-11.6,239.785497227983, 5613P 10627
+-227.831614772873,-7.5,239.785497227983,-227.831614772873,-11.6, 5613P 10628
+239.784272290707,-228.698656211057,-7.5,239.784272290707, 5613P 10629
+-228.698656211057,-11.6,10.7132954794018,13.6415962437716, 5613P 10630
+3.13866619557958,6.28308440376778; 5613P 10631
+128,1,6,1,2,0,0,0,0,0,10.7132954794019,10.7132954794019, 5615P 10632
+13.6415962437718,13.6415962437718,3.13866619559783, 5615P 10633
+3.13866619559783,3.13866619559783,4.18680559832112, 5615P 10634
+4.18680559832112,5.23494500104441,5.23494500104441, 5615P 10635
+6.2830844037677,6.2830844037677,6.2830844037677,1.,1., 5615P 10636
+0.865789844881778,0.865789844881778,1.,1.,0.865789844881778, 5615P 10637
+0.865789844881778,1.,1.,0.865789844881778,0.865789844881778,1., 5615P 10638
+1.,239.784272290707,-228.698656211056,-7.5,239.784272290707, 5615P 10639
+-228.698656211056,-11.6,239.785497227975,-229.565697649234,-7.5, 5615P 10640
+239.785497227975,-229.565697649234,-11.6,239.034820806557, 5615P 10641
+-229.999572361928,-7.5,239.034820806557,-229.999572361928,-11.6, 5615P 10642
+238.284144385139,-230.433447074621,-7.5,238.284144385139, 5615P 10643
+-230.433447074621,-11.6,237.533467963721,-229.999572361928,-7.5, 5615P 10644
+237.533467963721,-229.999572361928,-11.6,236.782791542303, 5615P 10645
+-229.565697649234,-7.5,236.782791542303,-229.565697649234,-11.6, 5615P 10646
+236.784016479572,-228.698656211056,-7.5,236.784016479572, 5615P 10647
+-228.698656211056,-11.6,10.7132954794019,13.6415962437718, 5615P 10648
+3.13866619559783,6.2830844037677; 5615P 10649
+128,1,6,1,2,0,0,0,0,0,10.7132996449142,10.7132996449142, 5617P 10650
+13.6416015478574,13.6416015478574,3.13925814733116, 5617P 10651
+3.13925814733116,3.13925814733116,4.18720703624771, 5617P 10652
+4.18720703624771,5.23515592516426,5.23515592516426, 5617P 10653
+6.28310481408081,6.28310481408081,6.28310481408081,1.,1., 5617P 10654
+0.865837508249046,0.865837508249046,1.,1.,0.865837508249046, 5617P 10655
+0.865837508249046,1.,1.,0.865837508249046,0.865837508249046,1., 5617P 10656
+1.,160.582628341595,-190.598023114212,-7.5,160.582628341595, 5617P 10657
+-190.598023114212,-11.6,160.581651394605,-189.731172299282,-7.5, 5617P 10658
+160.581651394605,-189.731172299282,-11.6,161.332203820879, 5617P 10659
+-189.297464626786,-7.5,161.332203820879,-189.297464626786,-11.6, 5617P 10660
+162.082756247154,-188.863756954289,-7.5,162.082756247154, 5617P 10661
+-188.863756954289,-11.6,162.833308673433,-189.297464626778,-7.5, 5617P 10662
+162.833308673433,-189.297464626778,-11.6,163.583861099712, 5617P 10663
+-189.731172299267,-7.5,163.583861099712,-189.731172299267,-11.6, 5617P 10664
+163.58288415273,-190.598023114196,-7.5,163.58288415273, 5617P 10665
+-190.598023114196,-11.6,10.7132996449142,13.6416015478574, 5617P 10666
+3.13925814733116,6.28310481408081; 5617P 10667
+128,1,6,1,2,0,0,0,0,0,10.7132996449144,10.7132996449144, 5619P 10668
+13.6416015478576,13.6416015478576,3.13925814734168, 5619P 10669
+3.13925814734168,3.13925814734168,4.18720703625123, 5619P 10670
+4.18720703625123,5.23515592516079,5.23515592516079, 5619P 10671
+6.28310481407034,6.28310481407034,6.28310481407034,1.,1., 5619P 10672
+0.865837508250795,0.865837508250795,1.,1.,0.865837508250795, 5619P 10673
+0.865837508250795,1.,1.,0.865837508250795,0.865837508250795,1., 5619P 10674
+1.,163.58288415273,-190.598023114196,-7.5,163.58288415273, 5619P 10675
+-190.598023114196,-11.6,163.583861099711,-191.464873929118,-7.5, 5619P 10676
+163.583861099711,-191.464873929118,-11.6,162.833308673442, 5619P 10677
+-191.898581601608,-7.5,162.833308673442,-191.898581601608,-11.6, 5619P 10678
+162.082756247172,-192.332289274099,-7.5,162.082756247172, 5619P 10679
+-192.332289274099,-11.6,161.332203820897,-191.898581601616,-7.5, 5619P 10680
+161.332203820897,-191.898581601616,-11.6,160.581651394623, 5619P 10681
+-191.464873929134,-7.5,160.581651394623,-191.464873929134,-11.6, 5619P 10682
+160.582628341595,-190.598023114211,-7.5,160.582628341595, 5619P 10683
+-190.598023114211,-11.6,10.7132996449144,13.6416015478576, 5619P 10684
+3.13925814734168,6.28310481407034; 5619P 10685
+128,1,6,1,2,0,0,0,0,0,10.7132996449141,10.7132996449141, 5621P 10686
+13.6416015478573,13.6416015478573,3.13925814731996, 5621P 10687
+3.13925814731996,3.13925814731996,4.1872070362402, 5621P 10688
+4.1872070362402,5.23515592516045,5.23515592516045, 5621P 10689
+6.28310481408069,6.28310481408069,6.28310481408069,1.,1., 5621P 10690
+0.865837508248121,0.865837508248121,1.,1.,0.865837508248121, 5621P 10691
+0.865837508248121,1.,1.,0.865837508248121,0.865837508248121,1., 5621P 10692
+1.,239.357084097385,-172.121201750453,-7.5,239.357084097385, 5621P 10693
+-172.121201750453,-11.6,239.35610715039,-171.25435093552,-7.5, 5621P 10694
+239.35610715039,-171.25435093552,-11.6,240.106659576667, 5621P 10695
+-170.82064326302,-7.5,240.106659576667,-170.82064326302,-11.6, 5621P 10696
+240.857212002944,-170.38693559052,-7.5,240.857212002944, 5621P 10697
+-170.38693559052,-11.6,241.607764429225,-170.820643263012,-7.5, 5621P 10698
+241.607764429225,-170.820643263012,-11.6,242.358316855506, 5621P 10699
+-171.254350935504,-7.5,242.358316855506,-171.254350935504,-11.6, 5621P 10700
+242.35733990852,-172.121201750437,-7.5,242.35733990852, 5621P 10701
+-172.121201750437,-11.6,10.7132996449141,13.6416015478573, 5621P 10702
+3.13925814731996,6.28310481408069; 5621P 10703
+128,1,6,1,2,0,0,0,0,0,10.7132996449144,10.7132996449144, 5623P 10704
+13.6416015478577,13.6416015478577,3.13925814735297, 5623P 10705
+3.13925814735297,3.13925814735297,4.1872070362588, 5623P 10706
+4.1872070362588,5.23515592516463,5.23515592516463, 5623P 10707
+6.28310481407046,6.28310481407046,6.28310481407046,1.,1., 5623P 10708
+0.865837508251727,0.865837508251727,1.,1.,0.865837508251727, 5623P 10709
+0.865837508251727,1.,1.,0.865837508251727,0.865837508251727,1., 5623P 10710
+1.,242.35733990852,-172.121201750437,-7.5,242.35733990852, 5623P 10711
+-172.121201750437,-11.6,242.358316855497,-172.988052565356,-7.5, 5623P 10712
+242.358316855497,-172.988052565356,-11.6,241.607764429229, 5623P 10713
+-173.421760237843,-7.5,241.607764429229,-173.421760237843,-11.6, 5623P 10714
+240.857212002962,-173.85546791033,-7.5,240.857212002962, 5623P 10715
+-173.85546791033,-11.6,240.10665957669,-173.421760237851,-7.5, 5623P 10716
+240.10665957669,-173.421760237851,-11.6,239.356107150418, 5623P 10717
+-172.988052565371,-7.5,239.356107150418,-172.988052565371,-11.6, 5623P 10718
+239.357084097385,-172.121201750453,-7.5,239.357084097385, 5623P 10719
+-172.121201750453,-11.6,10.7132996449144,13.6416015478577, 5623P 10720
+3.13925814735297,6.28310481407046; 5623P 10721
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5625P 10722
+1.70379824993602,1.70379824993602,0.899,0.899,1.311,1.311,1.,1., 5625P 10723
+1.,1.,220.742682252201,-164.547507575232,-7.49,237.790664751561, 5625P 10724
+-164.547507575232,-7.49,220.742682252201,-164.547507575232, 5625P 10725
+-11.61,237.790664751561,-164.547507575232,-11.61, 5625P 10726
+-0.00100000000000002,1.70379824993602,0.899,1.311; 5625P 10727
+128,1,1,1,1,0,0,1,0,0,-0.601,-0.601,1.111,1.111,-0.001,-0.001, 5627P 10728
+0.800999999999997,0.800999999999997,1.,1.,1.,1., 5627P 10729
+237.780664751561,-164.557507575232,-11.61,237.780664751561, 5627P 10730
+-164.557507575232,5.51,237.780664751561,-156.537507575232, 5627P 10731
+-11.61,237.780664751561,-156.537507575232,5.51,-0.601,1.111, 5627P 10732
+-0.001,0.800999999999997; 5627P 10733
+128,1,1,1,1,0,0,1,0,0,-1.25194932661626,-1.25194932661626, 5629P 10734
+1.08598817338374,1.08598817338374,-1.90191976533037, 5629P 10735
+-1.90191976533037,-0.439172788111116,-0.439172788111116,1.,1., 5629P 10736
+1.,1.,212.701945909196,-187.629164077365,-7.5,189.322570909196, 5629P 10737
+-187.629164077365,-7.5,212.701945909196,-202.256633849558,-7.5, 5629P 10738
+189.322570909196,-202.256633849558,-7.5,-1.25194932661626, 5629P 10739
+1.08598817338374,-1.90191976533037,-0.439172788111116; 5629P 10740
+128,1,1,1,1,0,0,1,0,0,1.199,1.199,2.60379824993602, 5631P 10741
+2.60379824993602,0.899,0.899,1.311,1.311,1.,1.,1.,1., 5631P 10742
+155.574237511039,-164.547507575232,-7.49,169.622220010399, 5631P 10743
+-164.547507575232,-7.49,155.574237511039,-164.547507575232, 5631P 10744
+-11.61,169.622220010399,-164.547507575232,-11.61,1.199, 5631P 10745
+2.60379824993602,0.899,1.311; 5631P 10746
+128,1,1,1,1,0,0,1,0,0,-0.601,-0.601,1.111,1.111,-0.001,-0.001, 5633P 10747
+0.801000000000001,0.801000000000001,1.,1.,1.,1., 5633P 10748
+169.612220010399,-164.557507575232,-11.61,169.612220010399, 5633P 10749
+-164.557507575232,5.51,169.612220010399,-156.537507575232, 5633P 10750
+-11.61,169.612220010399,-156.537507575232,5.51,-0.601,1.111, 5633P 10751
+-0.001,0.801000000000001; 5633P 10752
+128,1,1,1,1,0,0,1,0,0,-0.703634674364426,-0.703634674364426, 5635P 10753
+0.701163575571597,0.701163575571597,-0.00100000000000378, 5635P 10754
+-0.00100000000000378,0.651,0.651,1.,1.,1.,1.,169.622220010399, 5635P 10755
+-163.057507575232,1.5,155.574237511039,-163.057507575232,1.5, 5635P 10756
+169.622220010399,-156.537507575232,1.5,155.574237511039, 5635P 10757
+-156.537507575232,1.5,-0.703634674364426,0.701163575571597, 5635P 10758
+-0.00100000000000378,0.651; 5635P 10759
+128,1,1,1,1,0,0,1,0,0,0.198380431581659,0.198380431581659, 5637P 10760
+1.90317868151768,1.90317868151768,-0.001,-0.001,0.651,0.651,1., 5637P 10761
+1.,1.,1.,237.790664751561,-163.057507575232,1.5, 5637P 10762
+220.742682252201,-163.057507575232,1.5,237.790664751561, 5637P 10763
+-156.537507575232,1.5,220.742682252201,-156.537507575232,1.5, 5637P 10764
+0.198380431581659,1.90317868151768,-0.001,0.651; 5637P 10765
+128,1,1,1,1,0,0,1,0,0,2.5001090632896,2.5001090632896, 5639P 10766
+4.90089123368072,4.90089123368072,0.199,0.199,1.501,1.501,1.,1., 5639P 10767
+1.,1.,193.610041714311,-164.547507575232,5.51,169.602220010399, 5639P 10768
+-164.547507575232,5.51,193.610041714311,-164.547507575232,-7.51, 5639P 10769
+169.602220010399,-164.547507575232,-7.51,2.5001090632896, 5639P 10770
+4.90089123368072,0.199,1.501; 5639P 10771
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.700999999999999, 5641P 10772
+0.700999999999999,-0.001,-0.001,1.301,1.301,1.,1.,1.,1., 5641P 10773
+213.600041714311,-171.557507575232,-7.51,213.600041714311, 5641P 10774
+-164.537507575232,-7.51,213.600041714311,-171.557507575232,5.51, 5641P 10775
+213.600041714311,-164.537507575232,5.51,-0.001, 5641P 10776
+0.700999999999999,-0.001,1.301; 5641P 10777
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000355,-0.00100000000000355, 5643P 10778
+2.001,2.001,-0.001,-0.001,1.301,1.301,1.,1.,1.,1., 5643P 10779
+193.590041714311,-171.547507575231,-7.51,213.610041714311, 5643P 10780
+-171.547507575232,-7.51,193.590041714311,-171.547507575231,5.51, 5643P 10781
+213.610041714311,-171.547507575232,5.51,-0.00100000000000355, 5643P 10782
+2.001,-0.001,1.301; 5643P 10783
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.700999999999999, 5645P 10784
+0.700999999999999,-0.001,-0.001,1.301,1.301,1.,1.,1.,1., 5645P 10785
+193.600041714311,-164.537507575232,-7.51,193.600041714311, 5645P 10786
+-171.557507575232,-7.51,193.600041714311,-164.537507575232,5.51, 5645P 10787
+193.600041714311,-171.557507575232,5.51,-0.001, 5645P 10788
+0.700999999999999,-0.001,1.301; 5645P 10789
+128,1,1,1,1,0,0,1,0,0,0.228270425474422,0.228270425474422, 5647P 10790
+7.99146896389396,7.99146896389396,0.199,0.199,1.501,1.501,1.,1., 5647P 10791
+1.,1.,256.765898784406,-245.464354455991,5.51,256.765901358077, 5647P 10792
+-167.832369071796,5.51,256.765898784406,-245.464354455991,-7.51, 5647P 10793
+256.765901358077,-167.832369071796,-7.51,0.228270425474422, 5647P 10794
+7.99146896389396,0.199,1.501; 5647P 10795
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.96387870990168, 5649P 10796
+1.96387870990168,0.199,0.199,1.501,1.501,1.,1.,1.,1., 5649P 10797
+143.600041714311,-167.832837467805,5.51,143.600041714311, 5649P 10798
+-187.481624566822,5.51,143.600041714311,-167.832837467805,-7.51, 5649P 10799
+143.600041714311,-187.481624566822,-7.51,-0.001, 5649P 10800
+1.96387870990168,0.199,1.501; 5649P 10801
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,2.20051956797476, 5651P 10802
+2.20051956797476,-0.001,-0.001,1.501,1.501,1.,1.,1.,1., 5651P 10803
+142.100041714311,-165.466420277504,7.51,142.100041714311, 5651P 10804
+-187.481615957251,7.51,142.100041714311,-165.466420277504,-7.51, 5651P 10805
+142.100041714311,-187.481615957251,-7.51,-0.001, 5651P 10806
+2.20051956797476,-0.001,1.501; 5651P 10807
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000355,-0.00100000000000355, 5653P 10808
+6.02853968539494,6.02853968539494,-0.001,-0.001,0.201,0.201,1., 5653P 10809
+1.,1.,1.,142.100041886497,-187.461615957253,7.51, 5653P 10810
+142.099003680496,-247.757012802264,7.51,142.100041886497, 5653P 10811
+-187.461615957253,5.49,142.099003680496,-247.757012802264,5.49, 5653P 10812
+-0.00100000000000355,6.02853968539494,-0.001,0.201; 5653P 10813
+128,1,6,1,2,0,0,0,0,0,0.,0.,5.99482047510948,5.99482047510948, 5655P 10814
+-2.72952782394451,-2.72952782394451,-2.72952782394451, 5655P 10815
+-1.43344712313306,-1.43344712313306,-0.137366422321605, 5655P 10816
+-0.137366422321605,1.15871427848985,1.15871427848985, 5655P 10817
+1.15871427848985,1.,1.,0.797268222513888,0.797268222513888,1., 5655P 10818
+1.,0.797268222513888,0.797268222513888,1.,1.,0.797268222513888, 5655P 10819
+0.797268222513888,1.,1.,146.893865315652,-248.749215886107,7.5, 5655P 10820
+146.893865315652,-248.749215886107,-7.5,146.13511310057, 5655P 10821
+-250.485058779287,7.5,146.13511310057,-250.485058779287,-7.5, 5655P 10822
+144.2585310156,-250.22564568775,7.5,144.2585310156, 5655P 10823
+-250.22564568775,-7.5,142.381948930629,-249.966232596213,7.5, 5655P 10824
+142.381948930629,-249.966232596213,-7.5,142.122568151359, 5655P 10825
+-248.089646044774,7.5,142.122568151359,-248.089646044774,-7.5, 5655P 10826
+141.863187372088,-246.213059493336,7.5,141.863187372088, 5655P 10827
+-246.213059493336,-7.5,143.599043329707,-245.454337167255,7.5, 5655P 10828
+143.599043329707,-245.454337167255,-7.5,0.,5.99482047510948, 5655P 10829
+-2.72952782394451,1.15871427848985; 5655P 10830
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,11.1172574856417, 5657P 10831
+11.1172574856417,-0.001,-0.001,0.201,0.201,1.,1.,1.,1., 5657P 10832
+144.591163852312,-250.249215886107,7.51,255.773738708729, 5657P 10833
+-250.249215886107,7.51,144.591163852312,-250.249215886107,5.49, 5657P 10834
+255.773738708729,-250.249215886107,5.49,-0.001,11.1172574856417, 5657P 10835
+-0.001,0.201; 5657P 10836
+128,1,6,1,2,0,0,0,0,0,0.,0.,5.99482047510955,5.99482047510955, 5659P 10837
+-2.72951057213252,-2.72951057213252,-2.72951057213252, 5659P 10838
+-1.43343562192506,-1.43343562192506,-0.1373606717176, 5659P 10839
+-0.1373606717176,1.15871427848986,1.15871427848986, 5659P 10840
+1.15871427848986,1.,1.,0.797269958115333,0.797269958115333,1., 5659P 10841
+1.,0.797269958115333,0.797269958115333,1.,1.,0.797269958115333, 5659P 10842
+0.797269958115333,1.,1.,256.765898784737,-245.454354455992,7.5, 5659P 10843
+256.765898784737,-245.454354455992,-7.5,258.501731281752, 5659P 10844
+-246.213102195359,7.5,258.501731281752,-246.213102195359,-7.5, 5659P 10845
+258.242330469318,-248.089674551596,7.5,258.242330469318, 5659P 10846
+-248.089674551596,-7.5,257.982929656885,-249.966246907834,7.5, 5659P 10847
+257.982929656885,-249.966246907834,-7.5,256.106357292048, 5659P 10848
+-250.225647658055,7.5,256.106357292048,-250.225647658055,-7.5, 5659P 10849
+254.22978492721,-250.485048408276,7.5,254.22978492721, 5659P 10850
+-250.485048408276,-7.5,253.47103724539,-248.749215886107,7.5, 5659P 10851
+253.47103724539,-248.749215886107,-7.5,0.,5.99482047510955, 5659P 10852
+-2.72951057213252,1.15871427848986; 5659P 10853
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,8.22073910193271, 5661P 10854
+8.22073910193271,-0.001,-0.001,0.201,0.201,1.,1.,1.,1., 5661P 10855
+258.265898708398,-247.757055886107,7.51,258.265901434085, 5661P 10856
+-165.53966486678,7.51,258.265898708398,-247.757055886107,5.49, 5661P 10857
+258.265901434085,-165.53966486678,5.49,-0.001,8.22073910193271, 5661P 10858
+-0.001,0.201; 5661P 10859
+128,1,6,1,2,0,0,0,0,0,0.,0.,5.99482047511063,5.99482047511063, 5663P 10860
+-2.72950952283909,-2.72950952283909,-2.72950952283909, 5663P 10861
+-1.43343455052993,-1.43343455052993,-0.137359578220763, 5663P 10862
+-0.137359578220763,1.1587153940884,1.1587153940884, 5663P 10863
+1.1587153940884,1.,1.,0.797269951444786,0.797269951444786,1.,1., 5663P 10864
+0.797269951444786,0.797269951444786,1.,1.,0.797269951444786, 5663P 10865
+0.797269951444786,1.,1.,253.471039970417,-164.547507575232,7.5, 5663P 10866
+253.471039970417,-164.547507575232,-7.5,254.22978766966, 5663P 10867
+-162.811675013205,7.5,254.22978766966,-162.811675013205,-7.5, 5663P 10868
+256.106360071855,-163.071075810858,7.5,256.106360071855, 5663P 10869
+-163.071075810858,-7.5,257.98293247405,-163.330476608511,7.5, 5663P 10870
+257.98293247405,-163.330476608511,-7.5,258.242333209489, 5663P 10871
+-165.207049019306,7.5,258.242333209489,-165.207049019306,-7.5, 5663P 10872
+258.501733944928,-167.083621430101,7.5,258.501733944928, 5663P 10873
+-167.083621430101,-7.5,256.765901357746,-167.842369071796,7.5, 5663P 10874
+256.765901357746,-167.842369071796,-7.5,0.,5.99482047511063, 5663P 10875
+-2.72950952283909,1.1587153940884; 5663P 10876
+128,1,4,1,2,0,0,0,0,0,0.,0.,5.99482047510955,5.99482047510955, 5665P 10877
+-1.54151851752146,-1.54151851752146,-1.54151851752146, 5665P 10878
+-0.191402119515813,-0.191402119515813,1.15871427848983, 5665P 10879
+1.15871427848983,1.15871427848983,1.,1.,0.780670581409592, 5665P 10880
+0.780670581409592,1.,1.,0.780670581409592,0.780670581409592,1., 5665P 10881
+1.,142.100041714311,-165.476420277504,7.5,142.100041714311, 5665P 10882
+-165.476420277504,-7.5,142.158677672821,-163.474248497833,7.5, 5665P 10883
+142.158677672821,-163.474248497833,-7.5,144.125129478152, 5665P 10884
+-163.093200852189,7.5,144.125129478152,-163.093200852189,-7.5, 5665P 10885
+146.091581283483,-162.712153206546,7.5,146.091581283483, 5665P 10886
+-162.712153206546,-7.5,146.893830840843,-164.547507575232,7.5, 5665P 10887
+146.893830840843,-164.547507575232,-7.5,0.,5.99482047510955, 5665P 10888
+-1.54151851752146,1.15871427848983; 5665P 10889
+128,1,1,1,1,0,0,1,0,0,-6.45934487907209,-6.45934487907209, 5667P 10890
+6.45935129953954,6.45935129953954,-5.01108541554375, 5667P 10891
+-5.01108541554375,5.01108541554375,5.01108541554375,1.,1.,1.,1., 5667P 10892
+264.775901433754,-156.537507575232,7.5,135.588939647638, 5667P 10893
+-156.537507575232,7.5,264.775901433754,-256.759215886107,7.5, 5667P 10894
+135.588939647638,-256.759215886107,7.5,-6.45934487907209, 5667P 10895
+6.45935129953954,-5.01108541554375,5.01108541554375; 5667P 10896
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,2.20708325126057, 5669P 10897
+2.20708325126057,-0.001,-0.001,1.911,1.911,1.,1.,1.,1., 5669P 10898
+135.600041714311,-187.481555692063,7.51,135.600041714311, 5669P 10899
+-165.400723179457,7.51,135.600041714311,-187.481555692063, 5669P 10900
+-11.61,135.600041714311,-165.400723179457,-11.61,-0.001, 5669P 10901
+2.20708325126057,-0.001,1.911; 5669P 10902
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,6.02853451978495, 5671P 10903
+6.02853451978495,-0.001,-0.001,1.911,1.911,1.,1.,1.,1., 5671P 10904
+135.59900368146,-247.756900880975,7.51,135.600041886497, 5671P 10905
+-187.461555692064,7.51,135.59900368146,-247.756900880975,-11.61, 5671P 10906
+135.600041886497,-187.461555692064,-11.61,-0.001, 5671P 10907
+6.02853451978495,-0.001,1.911; 5671P 10908
+128,1,4,1,2,0,0,0,0,0,0.,0.,2.12171301109956,2.12171301109956, 5673P 10909
+-1.57081354545471,-1.57081354545471,-1.57081354545471, 5673P 10910
+-0.785406772727353,-0.785406772727353,7.52737518332756D-21, 5673P 10911
+7.52737518332756D-21,7.52737518332756D-21,1.,1., 5673P 10912
+0.923877885178768,0.923877885178768,1.,1.,0.923877885178768, 5673P 10913
+0.923877885178768,1.,1.,144.601163852312,-256.749215886107, 5673P 10914
+-11.6,144.601163852312,-256.749215886107,7.5,140.872301689627, 5673P 10915
+-256.749215886107,-11.6,140.872301689627,-256.749215886107,7.5, 5673P 10916
+138.235620668632,-254.112489464608,-11.6,138.235620668632, 5673P 10917
+-254.112489464608,7.5,135.598939647638,-251.475763043109,-11.6, 5673P 10918
+135.598939647638,-251.475763043109,7.5,135.599003853647, 5673P 10919
+-247.746900880977,-11.6,135.599003853647,-247.746900880977,7.5, 5673P 10920
+0.,2.12171301109956,-1.57081354545471,7.52737518332756D-21; 5673P 10921
+128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,11.1172574856417, 5675P 10922
+11.1172574856417,-0.001,-0.001,1.911,1.911,1.,1.,1.,1., 5675P 10923
+255.773738708729,-256.749215886107,7.51,144.591163852312, 5675P 10924
+-256.749215886107,7.51,255.773738708729,-256.749215886107, 5675P 10925
+-11.61,144.591163852312,-256.749215886107,-11.61,-0.001, 5675P 10926
+11.1172574856417,-0.001,1.911; 5675P 10927
+128,1,2,1,2,0,0,0,0,0,0.,0.,2.12171301109957,2.12171301109957, 5677P 10928
+-1.57079632679491,-1.57079632679491,-1.57079632679491, 5677P 10929
+1.97325624005823D-15,1.97325624005823D-15,1.97325624005823D-15, 5677P 10930
+1.,1.,0.707106781186542,0.707106781186542,1.,1., 5677P 10931
+264.765898708729,-247.747055886107,-11.6,264.765898708729, 5677P 10932
+-247.747055886107,7.5,264.765898708729,-256.749215886107,-11.6, 5677P 10933
+264.765898708729,-256.749215886107,7.5,255.763738708729, 5677P 10934
+-256.749215886107,-11.6,255.763738708729,-256.749215886107,7.5, 5677P 10935
+0.,2.12171301109957,-1.57079632679491,1.97325624005823D-15; 5677P 10936
+128,1,1,1,1,0,0,1,0,0,-0.00100000000000355,-0.00100000000000355, 5679P 10937
+8.22073908038377,8.22073908038377,-0.001,-0.001,1.911,1.911,1., 5679P 10938
+1.,1.,1.,264.765901434085,-165.53966508227,7.51, 5679P 10939
+264.765898708398,-247.757055886107,7.51,264.765901434085, 5679P 10940
+-165.53966508227,-11.61,264.765898708398,-247.757055886107, 5679P 10941
+-11.61,-0.00100000000000355,8.22073908038377,-0.001,1.911; 5679P 10942
+128,1,2,1,2,0,0,0,0,0,0.,0.,2.12171301109993,2.12171301109993, 5681P 10943
+-1.57079604986551,-1.57079604986551,-1.57079604986551, 5681P 10944
+4.70460948958054D-22,4.70460948958054D-22,4.70460948958054D-22, 5681P 10945
+1.,1.,0.707106879095864,0.707106879095864,1.,1., 5681P 10946
+255.763741433756,-156.547507575234,-11.6,255.763741433756, 5681P 10947
+-156.547507575234,7.5,264.765898940792,-156.547507575234,-11.6, 5681P 10948
+264.765898940792,-156.547507575234,7.5,264.765901433754, 5681P 10949
+-165.54966508227,-11.6,264.765901433754,-165.54966508227,7.5,0., 5681P 10950
+2.12171301109993,-1.57079604986551,4.70460948958054D-22; 5681P 10951
+128,1,2,1,2,0,0,0,0,0,0.,0.,2.12171301109957,2.12171301109957, 5683P 10952
+-1.55536115200856,-1.55536115200856,-1.55536115200856, 5683P 10953
+2.95988436008734D-15,2.95988436008734D-15,2.95988436008734D-15, 5683P 10954
+1.,1.,0.712542827450537,0.712542827450537,1.,1., 5683P 10955
+135.600041714311,-165.410723179457,-11.6,135.600041714311, 5683P 10956
+-165.410723179457,7.5,135.73685786174,-156.547507575232,-11.6, 5683P 10957
+135.73685786174,-156.547507575232,7.5,144.601129377503, 5683P 10958
+-156.547507575232,-11.6,144.601129377503,-156.547507575232,7.5, 5683P 10959
+0.,2.12171301109957,-1.55536115200856,2.95988436008734D-15; 5683P 10960
+502,610,139.68226259674,-80.5980231141957,8.73624999999999, 5685P 10961
+136.882006921691,-80.5980231141957,8.73624999999999, 5685P 10962
+136.882006921691,-80.5980231141957,7.11812499999999, 5685P 10963
+139.68226259674,-80.5980231141957,7.11812499999999, 5685P 10964
+139.68226259674,-118.69865621105,8.73624999999999, 5685P 10965
+136.882006921691,-118.69865621105,8.73624999999999, 5685P 10966
+136.882006921691,-118.69865621105,7.11812499999999, 5685P 10967
+139.68226259674,-118.69865621105,7.11812499999999, 5685P 10968
+63.4808744198821,-118.698656211056,8.73625,60.6806188225967, 5685P 10969
+-118.698656211056,8.73625,60.6806188225967,-118.698656211056, 5685P 10970
+7.118125,63.4808744198821,-118.698656211056,7.118125, 5685P 10971
+60.9078068409501,-62.1212017504367,8.73625,58.1075511659012, 5685P 10972
+-62.1212017504367,8.73625,58.1075511659012,-62.1212017504367, 5685P 10973
+7.118125,60.9078068409501,-62.1212017504367,7.118125, 5685P 10974
+140.806868895161,-121.223895544679,8.73624999999999, 5685P 10975
+154.808074294198,-121.223878124069,8.73624999999999, 5685P 10976
+140.806868895161,-121.223895544679,7.11812499999999, 5685P 10977
+154.808074294198,-121.223878124069,7.11812499999999, 5685P 10978
+154.808074294198,-121.821979920061,8.73624999999999, 5685P 10979
+154.808074294198,-121.821979920061,7.11812499999999, 5685P 10980
+155.607349292068,-121.82199734067,8.73624999999999, 5685P 10981
+155.607349292068,-121.82199734067,7.11812499999999, 5685P 10982
+155.607349292068,-134.624194429548,8.73624999999999, 5685P 10983
+155.607349292068,-134.624194429548,7.11812499999999, 5685P 10984
+154.808074294198,-134.624177008938,8.73624999999999, 5685P 10985
+154.808074294198,-134.624177008938,7.11812499999999, 5685P 10986
+154.808074294198,-135.223655033103,8.73624999999999, 5685P 10987
+154.808074294198,-135.223655033103,7.11812499999999, 5685P 10988
+140.806873250314,-135.223655033103,8.73624999999999, 5685P 10989
+140.806873250314,-135.223655033103,7.11812499999999, 5685P 10990
+140.806868895161,-134.624177008938,8.73624999999999, 5685P 10991
+140.806868895161,-134.624177008938,7.11812499999999, 5685P 10992
+140.007650514273,-134.624177008938,8.73624999999999, 5685P 10993
+140.007650514273,-134.624177008938,7.11812499999999, 5685P 10994
+140.007654869426,-121.821979920061,8.73624999999999, 5685P 10995
+140.007654869426,-121.821979920061,7.11812499999999, 5685P 10996
+140.806873250314,-121.82199734067,8.73624999999999, 5685P 10997
+140.806873250314,-121.82199734067,7.11812499999999, 5685P 10998
+121.756696066765,-121.223895544679,8.73624999999999, 5685P 10999
+135.757670642722,-121.223878124069,8.73624999999999, 5685P 11000
+121.756696066765,-121.223895544679,7.118125,135.757670642722, 5685P 11001
+-121.223878124069,7.11812499999999,135.757670642722, 5685P 11002
+-121.821979920061,8.73624999999999,135.757670642722, 5685P 11003
+-121.821979920061,7.11812499999999,136.556989192117, 5685P 11004
+-121.82199734067,8.73624999999999,136.556989192117, 5685P 11005
+-121.82199734067,7.11812499999999,136.556989192117, 5685P 11006
+-134.624194429548,8.73624999999999,136.556989192117, 5685P 11007
+-134.624194429548,7.11812499999999,135.757670642722, 5685P 11008
+-134.624177008938,8.73624999999999,135.757670642722, 5685P 11009
+-134.624177008938,7.11812499999999,135.757670642722, 5685P 11010
+-135.223655033103,8.73624999999999,135.757670642722, 5685P 11011
+-135.223655033103,7.11812499999999,121.756696066765, 5685P 11012
+-135.223655033103,8.73624999999999,121.756696066765, 5685P 11013
+-135.223655033103,7.118125,121.756696066765,-134.624177008938, 5685P 11014
+8.73624999999999,121.756696066765,-134.624177008938,7.118125, 5685P 11015
+120.957281704017,-134.624177008938,8.73624999999999, 5685P 11016
+120.957281704017,-134.624177008938,7.118125,120.957281704017, 5685P 11017
+-121.821979920061,8.73624999999999,120.957281704017, 5685P 11018
+-121.821979920061,7.118125,121.756696066765,-121.82199734067, 5685P 11019
+8.73624999999999,121.756696066765,-121.82199734067,7.118125, 5685P 11020
+102.706327256509,-121.223895544679,8.73624999999999, 5685P 11021
+116.707297477313,-121.223878124069,8.73624999999999, 5685P 11022
+102.706327256509,-121.223895544679,7.118125,116.707297477313, 5685P 11023
+-121.223878124069,7.118125,116.707297477313,-121.821979920061, 5685P 11024
+8.73624999999999,116.707297477313,-121.821979920061,7.118125, 5685P 11025
+117.506711840062,-121.82199734067,8.73624999999999, 5685P 11026
+117.506711840062,-121.82199734067,7.118125,117.506720550367, 5685P 11027
+-134.624194429548,8.73624999999999,117.506720550367, 5685P 11028
+-134.624194429548,7.118125,116.707306187618,-134.624177008938, 5685P 11029
+8.73624999999999,116.707306187618,-134.624177008938,7.118125, 5685P 11030
+116.707297477313,-135.223655033103,8.73624999999999, 5685P 11031
+116.707297477313,-135.223655033103,7.118125,102.706327256509, 5685P 11032
+-135.223655033103,8.73624999999999,102.706327256509, 5685P 11033
+-135.223655033103,7.118125,102.706327256509,-134.624177008938, 5685P 11034
+8.73624999999999,102.706327256509,-134.624177008938,7.118125, 5685P 11035
+101.90691289376,-134.624177008938,8.73624999999999, 5685P 11036
+101.90691289376,-134.624177008938,7.118125,101.90691289376, 5685P 11037
+-121.821979920061,8.73624999999999,101.90691289376, 5685P 11038
+-121.821979920061,7.118125,102.706327256509,-121.82199734067, 5685P 11039
+8.73624999999999,102.706327256509,-121.82199734067,7.118125, 5685P 11040
+83.6559584462526,-121.223895544679,8.73625,97.6569286670568, 5685P 11041
+-121.223878124069,8.73624999999999,83.6559584462526, 5685P 11042
+-121.223895544679,7.118125,97.6569286670568,-121.223878124069, 5685P 11043
+7.118125,97.6569286670568,-121.821979920061,8.73624999999999, 5685P 11044
+97.6569286670568,-121.821979920061,7.118125,98.4563430298053, 5685P 11045
+-121.82199734067,8.73624999999999,98.4563430298053, 5685P 11046
+-121.82199734067,7.118125,98.4563430298053,-134.624194429548, 5685P 11047
+8.73624999999999,98.4563430298053,-134.624194429548,7.118125, 5685P 11048
+97.6569286670568,-134.624177008938,8.73624999999999, 5685P 11049
+97.6569286670568,-134.624177008938,7.118125,97.6569286670568, 5685P 11050
+-135.223655033103,8.73624999999999,97.6569286670568, 5685P 11051
+-135.223655033103,7.118125,83.6559497359477,-135.223655033103, 5685P 11052
+8.73625,83.6559497359477,-135.223655033103,7.118125, 5685P 11053
+83.6559584462526,-134.624177008938,8.73625,83.6559584462526, 5685P 11054
+-134.624177008938,7.118125,82.8565440835042,-134.624177008938, 5685P 11055
+8.73625,82.8565440835042,-134.624177008938,7.118125, 5685P 11056
+82.8565440835042,-121.821979920061,8.73625,82.8565440835042, 5685P 11057
+-121.821979920061,7.118125,83.6559584462526,-121.82199734067, 5685P 11058
+8.73625,83.6559584462526,-121.82199734067,7.118125, 5685P 11059
+64.6055896359963,-121.223895544679,8.73625,78.6065598568005, 5685P 11060
+-121.223878124069,8.73625,64.6055896359963,-121.223895544679, 5685P 11061
+7.118125,78.6065598568005,-121.223878124069,7.118125, 5685P 11062
+78.6065598568005,-121.821979920061,8.73625,78.6065598568005, 5685P 11063
+-121.821979920061,7.118125,79.4059742195489,-121.82199734067, 5685P 11064
+8.73625,79.4059742195489,-121.82199734067,7.118125, 5685P 11065
+79.4059742195489,-134.624194429548,8.73625,79.4059742195489, 5685P 11066
+-134.624194429548,7.118125,78.6065598568005,-134.624177008938, 5685P 11067
+8.73625,78.6065598568005,-134.624177008938,7.118125, 5685P 11068
+78.6065598568005,-135.223655033103,8.73625,78.6065598568005, 5685P 11069
+-135.223655033103,7.118125,64.6055896359963,-135.223655033103, 5685P 11070
+8.73625,64.6055896359963,-135.223655033103,7.118125, 5685P 11071
+64.6055896359963,-134.624177008938,8.73625,64.6055896359963, 5685P 11072
+-134.624177008938,7.118125,63.8061752732478,-134.624177008938, 5685P 11073
+8.73625,63.8061752732478,-134.624177008938,7.118125, 5685P 11074
+63.8061752732478,-121.821979920061,8.73625,63.8061752732478, 5685P 11075
+-121.821979920061,7.118125,64.6055896359963,-121.82199734067, 5685P 11076
+8.73625,64.6055896359963,-121.82199734067,7.118125, 5685P 11077
+45.556222510803,-121.223895544679,8.73625,59.5561910465442, 5685P 11078
+-121.223878124069,8.73625,45.556222510803,-121.223895544679, 5685P 11079
+7.118125,59.5561910465442,-121.223878124069,7.118125, 5685P 11080
+59.5561910465442,-121.821979920061,8.73625,59.5561910465442, 5685P 11081
+-121.821979920061,7.118125,60.3556054092926,-121.82199734067, 5685P 11082
+8.73625,60.3556054092926,-121.82199734067,7.118125, 5685P 11083
+60.3556054092926,-134.624194429548,8.73625,60.3556054092926, 5685P 11084
+-134.624194429548,7.118125,59.5561910465442,-134.624177008938, 5685P 11085
+8.73625,59.5561910465442,-134.624177008938,7.118125, 5685P 11086
+59.5561910465442,-135.223655033103,8.73625,59.5561910465442, 5685P 11087
+-135.223655033103,7.118125,45.556222510803,-135.223655033103, 5685P 11088
+8.73625,45.556222510803,-135.223655033103,7.118125, 5685P 11089
+45.556222510803,-134.624177008938,8.73625,45.556222510803, 5685P 11090
+-134.624177008938,7.118125,44.7561984267118,-134.624177008938, 5685P 11091
+8.73625,44.7561984267118,-134.624177008938,7.118125, 5685P 11092
+44.7561984267118,-121.821979920061,8.73625,44.7561984267118, 5685P 11093
+-121.821979920061,7.118125,45.556222510803,-121.82199734067, 5685P 11094
+8.73625,45.556222510803,-121.82199734067,7.118125, 5685P 11095
+140.806868895161,-102.173622547777,8.73624999999999, 5685P 11096
+154.808074294198,-102.173605127167,8.73624999999999, 5685P 11097
+140.806868895161,-102.173622547777,7.11812499999999, 5685P 11098
+154.808074294198,-102.173605127167,7.11812499999999, 5685P 11099
+154.808074294198,-102.772908945234,8.73624999999999, 5685P 11100
+154.808074294198,-102.772908945234,7.11812499999999, 5685P 11101
+155.607349292068,-102.772926365844,8.73624999999999, 5685P 11102
+155.607349292068,-102.772926365844,7.11812499999999, 5685P 11103
+155.607349292068,-115.573782067767,8.73624999999999, 5685P 11104
+155.607349292068,-115.573782067767,7.11812499999999, 5685P 11105
+154.808074294198,-115.573764647157,8.73624999999999, 5685P 11106
+154.808074294198,-115.573764647157,7.11812499999999, 5685P 11107
+154.808074294198,-116.173277512542,8.73624999999999, 5685P 11108
+154.808074294198,-116.173277512542,7.11812499999999, 5685P 11109
+140.806873250314,-116.173277512542,8.73624999999999, 5685P 11110
+140.806873250314,-116.173277512542,7.11812499999999, 5685P 11111
+140.806868895161,-115.573764647157,8.73624999999999, 5685P 11112
+140.806868895161,-115.573764647157,7.11812499999999, 5685P 11113
+140.007650514273,-115.573764647157,8.73624999999999, 5685P 11114
+140.007650514273,-115.573764647157,7.11812499999999, 5685P 11115
+140.007654869426,-102.772908945234,8.73624999999999, 5685P 11116
+140.007654869426,-102.772908945234,7.11812499999999, 5685P 11117
+140.806873250314,-102.772926365844,8.73624999999999, 5685P 11118
+140.806873250314,-102.772926365844,7.11812499999999, 5685P 11119
+121.756696066765,-102.173622547777,8.73624999999999, 5685P 11120
+135.757670642722,-102.173605127167,8.73624999999999, 5685P 11121
+121.756696066765,-102.173622547777,7.118125,135.757670642722, 5685P 11122
+-102.173605127167,7.11812499999999,135.757670642722, 5685P 11123
+-102.908807122222,8.73624999999999,135.757670642722, 5685P 11124
+-102.908807122222,7.11812499999999,136.556989192117, 5685P 11125
+-102.908807122222,8.73624999999999,136.556989192117, 5685P 11126
+-102.908807122222,7.11812499999999,136.556989192117, 5685P 11127
+-115.709662824145,8.73624999999999,136.556989192117, 5685P 11128
+-115.709662824145,7.11812499999999,135.757670642722, 5685P 11129
+-115.709662824145,8.73624999999999,135.757670642722, 5685P 11130
+-115.709662824145,7.11812499999999,135.757670642722, 5685P 11131
+-116.174810526203,8.73624999999999,135.757670642722, 5685P 11132
+-116.174810526203,7.11812499999999,121.756696066765, 5685P 11133
+-116.174810526203,8.73624999999999,121.756696066765, 5685P 11134
+-116.174810526203,7.118125,121.756696066765,-115.575297660819, 5685P 11135
+8.73624999999999,121.756696066765,-115.575297660819,7.118125, 5685P 11136
+120.957281704017,-115.575297660819,8.73624999999999, 5685P 11137
+120.957281704017,-115.575297660819,7.118125,120.957281704017, 5685P 11138
+-102.772908945234,8.73624999999999,120.957281704017, 5685P 11139
+-102.772908945234,7.118125,121.756696066765,-102.772926365844, 5685P 11140
+8.73624999999999,121.756696066765,-102.772926365844,7.118125, 5685P 11141
+102.706327256509,-102.173622547777,8.73624999999999, 5685P 11142
+116.707297477313,-102.173605127167,8.73624999999999, 5685P 11143
+102.706327256509,-102.173622547777,7.118125,116.707297477313, 5685P 11144
+-102.173605127167,7.118125,116.707297477313,-102.772908945234, 5685P 11145
+8.73624999999999,116.707297477313,-102.772908945234,7.118125, 5685P 11146
+117.506711840062,-102.772926365844,8.73624999999999, 5685P 11147
+117.506711840062,-102.772926365844,7.118125,117.506720550367, 5685P 11148
+-115.573782067767,8.73624999999999,117.506720550367, 5685P 11149
+-115.573782067767,7.118125,116.707306187618,-115.573764647157, 5685P 11150
+8.73624999999999,116.707306187618,-115.573764647157,7.118125, 5685P 11151
+116.707297477313,-116.173277512542,8.73624999999999, 5685P 11152
+116.707297477313,-116.173277512542,7.118125,102.706327256509, 5685P 11153
+-116.173277512542,8.73624999999999,102.706327256509, 5685P 11154
+-116.173277512542,7.118125,102.706327256509,-115.573764647157, 5685P 11155
+8.73624999999999,102.706327256509,-115.573764647157,7.118125, 5685P 11156
+101.90691289376,-115.573764647157,8.73624999999999, 5685P 11157
+101.90691289376,-115.573764647157,7.118125,101.90691289376, 5685P 11158
+-102.772908945234,8.73624999999999,101.90691289376, 5685P 11159
+-102.772908945234,7.118125,102.706327256509,-102.772926365844, 5685P 11160
+8.73624999999999,102.706327256509,-102.772926365844,7.118125, 5685P 11161
+83.6559584462526,-102.173622547777,8.73625,97.6569286670568, 5685P 11162
+-102.173605127167,8.73624999999999,83.6559584462526, 5685P 11163
+-102.173622547777,7.118125,97.6569286670568,-102.173605127167, 5685P 11164
+7.118125,97.6569286670568,-102.772908945234,8.73624999999999, 5685P 11165
+97.6569286670568,-102.772908945234,7.118125,98.4563430298053, 5685P 11166
+-102.772926365844,8.73624999999999,98.4563430298053, 5685P 11167
+-102.772926365844,7.118125,98.4563430298053,-115.573782067767, 5685P 11168
+8.73624999999999,98.4563430298053,-115.573782067767,7.118125, 5685P 11169
+97.6569286670568,-115.573764647157,8.73624999999999, 5685P 11170
+97.6569286670568,-115.573764647157,7.118125,97.6569286670568, 5685P 11171
+-116.173277512542,8.73624999999999,97.6569286670568, 5685P 11172
+-116.173277512542,7.118125,83.6559497359477,-116.173277512542, 5685P 11173
+8.73625,83.6559497359477,-116.173277512542,7.118125, 5685P 11174
+83.6559584462526,-115.573764647157,8.73625,83.6559584462526, 5685P 11175
+-115.573764647157,7.118125,82.8565440835042,-115.573764647157, 5685P 11176
+8.73625,82.8565440835042,-115.573764647157,7.118125, 5685P 11177
+82.8565440835042,-102.772908945234,8.73625,82.8565440835042, 5685P 11178
+-102.772908945234,7.118125,83.6559584462526,-102.772926365844, 5685P 11179
+8.73625,83.6559584462526,-102.772926365844,7.118125, 5685P 11180
+64.6055896359963,-102.173622547777,8.73625,78.6065598568005, 5685P 11181
+-102.173605127167,8.73625,64.6055896359963,-102.173622547777, 5685P 11182
+7.118125,78.6065598568005,-102.173605127167,7.118125, 5685P 11183
+78.6065598568005,-102.772908945234,8.73625,78.6065598568005, 5685P 11184
+-102.772908945234,7.118125,79.4059742195489,-102.772926365844, 5685P 11185
+8.73625,79.4059742195489,-102.772926365844,7.118125, 5685P 11186
+79.4059742195489,-115.573782067767,8.73625,79.4059742195489, 5685P 11187
+-115.573782067767,7.118125,78.6065598568005,-115.573764647157, 5685P 11188
+8.73625,78.6065598568005,-115.573764647157,7.118125, 5685P 11189
+78.6065598568005,-116.173277512542,8.73625,78.6065598568005, 5685P 11190
+-116.173277512542,7.118125,64.6055896359963,-116.173277512542, 5685P 11191
+8.73625,64.6055896359963,-116.173277512542,7.118125, 5685P 11192
+64.6055896359963,-115.573764647157,8.73625,64.6055896359963, 5685P 11193
+-115.573764647157,7.118125,63.8061752732478,-115.573764647157, 5685P 11194
+8.73625,63.8061752732478,-115.573764647157,7.118125, 5685P 11195
+63.8061752732478,-102.772908945234,8.73625,63.8061752732478, 5685P 11196
+-102.772908945234,7.118125,64.6055896359963,-102.772926365844, 5685P 11197
+8.73625,64.6055896359963,-102.772926365844,7.118125, 5685P 11198
+45.556222510803,-102.173622547777,8.73625,59.5561910465442, 5685P 11199
+-102.173605127167,8.73625,45.556222510803,-102.173622547777, 5685P 11200
+7.118125,59.5561910465442,-102.173605127167,7.118125, 5685P 11201
+59.5561910465442,-102.772908945234,8.73625,59.5561910465442, 5685P 11202
+-102.772908945234,7.118125,60.3556054092926,-102.772926365844, 5685P 11203
+8.73625,60.3556054092926,-102.772926365844,7.118125, 5685P 11204
+60.3556054092926,-115.573782067767,8.73625,60.3556054092926, 5685P 11205
+-115.573782067767,7.118125,59.5561910465442,-115.573764647157, 5685P 11206
+8.73625,59.5561910465442,-115.573764647157,7.118125, 5685P 11207
+59.5561910465442,-116.173277512542,8.73625,59.5561910465442, 5685P 11208
+-116.173277512542,7.118125,45.556222510803,-116.173277512542, 5685P 11209
+8.73625,45.556222510803,-116.173277512542,7.118125, 5685P 11210
+45.556222510803,-115.573764647157,8.73625,45.556222510803, 5685P 11211
+-115.573764647157,7.118125,44.7561984267118,-115.573764647157, 5685P 11212
+8.73625,44.7561984267118,-115.573764647157,7.118125, 5685P 11213
+44.7561984267118,-102.772908945234,8.73625,44.7561984267118, 5685P 11214
+-102.772908945234,7.118125,45.556222510803,-102.772926365844, 5685P 11215
+8.73625,45.556222510803,-102.772926365844,7.118125, 5685P 11216
+140.806868895161,-83.1232450272155,8.73624999999999, 5685P 11217
+154.808074294198,-83.1232450272156,8.73624999999999, 5685P 11218
+140.806868895161,-83.1232450272155,7.11812499999999, 5685P 11219
+154.808074294198,-83.1232450272156,7.11812499999999, 5685P 11220
+154.808074294198,-83.7225488452825,8.73624999999999, 5685P 11221
+154.808074294198,-83.7225488452825,7.11812499999999, 5685P 11222
+155.607349292068,-83.7225488452825,8.73624999999999, 5685P 11223
+155.607349292068,-83.7225488452825,7.11812499999999, 5685P 11224
+155.607349292068,-96.5234045472058,8.73624999999999, 5685P 11225
+155.607349292068,-96.5234045472058,7.11812499999999, 5685P 11226
+154.808074294198,-96.5234045472058,8.73624999999999, 5685P 11227
+154.808074294198,-96.5234045472058,7.11812499999999, 5685P 11228
+154.808074294198,-97.1227083652727,8.73624999999999, 5685P 11229
+154.808074294198,-97.1227083652727,7.11812499999999, 5685P 11230
+140.806873250314,-97.1227083652727,8.73624999999999, 5685P 11231
+140.806873250314,-97.1227083652727,7.11812499999999, 5685P 11232
+140.806868895161,-96.5234045472058,8.73624999999999, 5685P 11233
+140.806868895161,-96.5234045472058,7.11812499999999, 5685P 11234
+140.007650514273,-96.5234045472058,8.73624999999999, 5685P 11235
+140.007650514273,-96.5234045472058,7.11812499999999, 5685P 11236
+140.007654869426,-83.7225488452825,8.73624999999999, 5685P 11237
+140.007654869426,-83.7225488452825,7.11812499999999, 5685P 11238
+140.806873250314,-83.7225488452825,8.73624999999999, 5685P 11239
+140.806873250314,-83.7225488452825,7.11812499999999, 5685P 11240
+121.756696066765,-83.1232450272155,8.73624999999999, 5685P 11241
+135.757670642722,-83.1232450272156,8.73624999999999, 5685P 11242
+121.756696066765,-83.1232450272155,7.118125,135.757670642722, 5685P 11243
+-83.1232450272156,7.11812499999999,135.757670642722, 5685P 11244
+-83.7225488452825,8.73624999999999,135.757670642722, 5685P 11245
+-83.7225488452825,7.11812499999999,136.556989192117, 5685P 11246
+-83.7225488452825,8.73624999999999,136.556989192117, 5685P 11247
+-83.7225488452825,7.11812499999999,136.556989192117, 5685P 11248
+-96.5234045472058,8.73624999999999,136.556989192117, 5685P 11249
+-96.5234045472058,7.11812499999999,135.757670642722, 5685P 11250
+-96.5234045472058,8.73624999999999,135.757670642722, 5685P 11251
+-96.5234045472058,7.11812499999999,135.757670642722, 5685P 11252
+-97.1227083652727,8.73624999999999,135.757670642722, 5685P 11253
+-97.1227083652727,7.11812499999999,121.756696066765, 5685P 11254
+-97.1227083652727,8.73624999999999,121.756696066765, 5685P 11255
+-97.1227083652727,7.118125,121.756696066765,-96.5234045472058, 5685P 11256
+8.73624999999999,121.756696066765,-96.5234045472058,7.118125, 5685P 11257
+120.957281704017,-96.5234045472058,8.73624999999999, 5685P 11258
+120.957281704017,-96.5234045472058,7.118125,120.957281704017, 5685P 11259
+-83.7225488452825,8.73624999999999,120.957281704017, 5685P 11260
+-83.7225488452825,7.118125,121.756696066765,-83.7225488452825, 5685P 11261
+8.73624999999999,121.756696066765,-83.7225488452825,7.118125, 5685P 11262
+102.706327256509,-83.1232450272155,8.73624999999999, 5685P 11263
+116.707297477313,-83.1232450272156,8.73624999999999, 5685P 11264
+102.706327256509,-83.1232450272155,7.118125,116.707297477313, 5685P 11265
+-83.1232450272156,7.118125,116.707297477313,-83.7225488452825, 5685P 11266
+8.73624999999999,116.707297477313,-83.7225488452825,7.118125, 5685P 11267
+117.506711840062,-83.7225488452825,8.73624999999999, 5685P 11268
+117.506711840062,-83.7225488452825,7.118125,117.506720550367, 5685P 11269
+-96.5234045472058,8.73624999999999,117.506720550367, 5685P 11270
+-96.5234045472058,7.118125,116.707306187618,-96.5234045472058, 5685P 11271
+8.73624999999999,116.707306187618,-96.5234045472058,7.118125, 5685P 11272
+116.707297477313,-97.1227083652727,8.73624999999999, 5685P 11273
+116.707297477313,-97.1227083652727,7.118125,102.706327256509, 5685P 11274
+-97.1227083652727,8.73624999999999,102.706327256509, 5685P 11275
+-97.1227083652727,7.118125,102.706327256509,-96.5234045472058, 5685P 11276
+8.73624999999999,102.706327256509,-96.5234045472058,7.118125, 5685P 11277
+101.90691289376,-96.5234045472058,8.73624999999999, 5685P 11278
+101.90691289376,-96.5234045472058,7.118125,101.90691289376, 5685P 11279
+-83.7225488452825,8.73624999999999,101.90691289376, 5685P 11280
+-83.7225488452825,7.118125,102.706327256509,-83.7225488452825, 5685P 11281
+8.73624999999999,102.706327256509,-83.7225488452825,7.118125, 5685P 11282
+83.6559584462526,-83.1232450272155,8.73625,97.6569286670568, 5685P 11283
+-83.1232450272156,8.73624999999999,83.6559584462526, 5685P 11284
+-83.1232450272155,7.118125,97.6569286670568,-83.1232450272156, 5685P 11285
+7.118125,97.6569286670568,-83.7225488452825,8.73624999999999, 5685P 11286
+97.6569286670568,-83.7225488452825,7.118125,98.4563430298053, 5685P 11287
+-83.7225488452825,8.73624999999999,98.4563430298053, 5685P 11288
+-83.7225488452825,7.118125,98.4563430298053,-96.5234045472058, 5685P 11289
+8.73624999999999,98.4563430298053,-96.5234045472058,7.118125, 5685P 11290
+97.6569286670568,-96.5234045472058,8.73624999999999, 5685P 11291
+97.6569286670568,-96.5234045472058,7.118125,97.6569286670568, 5685P 11292
+-97.1227083652727,8.73624999999999,97.6569286670568, 5685P 11293
+-97.1227083652727,7.118125,83.6559497359477,-97.1227083652727, 5685P 11294
+8.73625,83.6559497359477,-97.1227083652727,7.118125, 5685P 11295
+83.6559584462526,-96.5234045472058,8.73625,83.6559584462526, 5685P 11296
+-96.5234045472058,7.118125,82.8565440835042,-96.5234045472058, 5685P 11297
+8.73625,82.8565440835042,-96.5234045472058,7.118125, 5685P 11298
+82.8565440835042,-83.7225488452825,8.73625,82.8565440835042, 5685P 11299
+-83.7225488452825,7.118125,83.6559584462526,-83.7225488452825, 5685P 11300
+8.73625,83.6559584462526,-83.7225488452825,7.118125, 5685P 11301
+64.6055896359963,-83.1232450272155,8.73625,78.6065598568005, 5685P 11302
+-83.1232450272156,8.73625,64.6055896359963,-83.1232450272155, 5685P 11303
+7.118125,78.6065598568005,-83.1232450272156,7.118125, 5685P 11304
+78.6065598568005,-83.7225488452825,8.73625,78.6065598568005, 5685P 11305
+-83.7225488452825,7.118125,79.4059742195489,-83.7225488452825, 5685P 11306
+8.73625,79.4059742195489,-83.7225488452825,7.118125, 5685P 11307
+79.4059742195489,-96.5234045472058,8.73625,79.4059742195489, 5685P 11308
+-96.5234045472058,7.118125,78.6065598568005,-96.5234045472058, 5685P 11309
+8.73625,78.6065598568005,-96.5234045472058,7.118125, 5685P 11310
+78.6065598568005,-97.1227083652727,8.73625,78.6065598568005, 5685P 11311
+-97.1227083652727,7.118125,64.6055896359963,-97.1227083652727, 5685P 11312
+8.73625,64.6055896359963,-97.1227083652727,7.118125, 5685P 11313
+64.6055896359963,-96.5234045472058,8.73625,64.6055896359963, 5685P 11314
+-96.5234045472058,7.118125,63.8061752732478,-96.5234045472058, 5685P 11315
+8.73625,63.8061752732478,-96.5234045472058,7.118125, 5685P 11316
+63.8061752732478,-83.7225488452825,8.73625,63.8061752732478, 5685P 11317
+-83.7225488452825,7.118125,64.6055896359963,-83.7225488452825, 5685P 11318
+8.73625,64.6055896359963,-83.7225488452825,7.118125, 5685P 11319
+45.556222510803,-83.1232450272155,8.73625,59.5561910465442, 5685P 11320
+-83.1232450272156,8.73625,45.556222510803,-83.1232450272155, 5685P 11321
+7.118125,59.5561910465442,-83.1232450272156,7.118125, 5685P 11322
+59.5561910465442,-83.7225488452825,8.73625,59.5561910465442, 5685P 11323
+-83.7225488452825,7.118125,60.3556054092926,-83.7225488452825, 5685P 11324
+8.73625,60.3556054092926,-83.7225488452825,7.118125, 5685P 11325
+60.3556054092926,-96.5234045472058,8.73625,60.3556054092926, 5685P 11326
+-96.5234045472058,7.118125,59.5561910465442,-96.5234045472058, 5685P 11327
+8.73625,59.5561910465442,-96.5234045472058,7.118125, 5685P 11328
+59.5561910465442,-97.1227083652727,8.73625,59.5561910465442, 5685P 11329
+-97.1227083652727,7.118125,45.556222510803,-97.1227083652727, 5685P 11330
+8.73625,45.556222510803,-97.1227083652727,7.118125, 5685P 11331
+45.556222510803,-96.5234045472058,8.73625,45.556222510803, 5685P 11332
+-96.5234045472058,7.118125,44.7561984267118,-96.5234045472058, 5685P 11333
+8.73625,44.7561984267118,-96.5234045472058,7.118125, 5685P 11334
+44.7561984267118,-83.7225488452825,8.73625,44.7561984267118, 5685P 11335
+-83.7225488452825,7.118125,45.556222510803,-83.7225488452825, 5685P 11336
+8.73625,45.556222510803,-83.7225488452825,7.118125, 5685P 11337
+140.806868895161,-64.0711428662849,8.73624999999999, 5685P 11338
+154.808074294198,-64.0711428662849,8.73624999999999, 5685P 11339
+140.806868895161,-64.0711428662849,7.11812499999999, 5685P 11340
+154.808074294198,-64.0711428662849,7.11812499999999, 5685P 11341
+154.808074294198,-64.672188745331,8.73624999999999, 5685P 11342
+154.808074294198,-64.672188745331,7.11812499999999, 5685P 11343
+155.607349292068,-64.6721713247213,8.73624999999999, 5685P 11344
+155.607349292068,-64.6721713247213,7.11812499999999, 5685P 11345
+155.607349292068,-77.4716159572515,8.73624999999999, 5685P 11346
+155.607349292068,-77.4716159572515,7.11812499999999, 5685P 11347
+154.808074294198,-77.4716333778613,8.73624999999999, 5685P 11348
+154.808074294198,-77.4716333778613,7.11812499999999, 5685P 11349
+154.808074294198,-78.0723482653214,8.73624999999999, 5685P 11350
+154.808074294198,-78.0723482653214,7.11812499999999, 5685P 11351
+140.806873250314,-78.0723308447116,8.73624999999999, 5685P 11352
+140.806873250314,-78.0723308447116,7.11812499999999, 5685P 11353
+140.806868895161,-77.4716159572515,8.73624999999999, 5685P 11354
+140.806868895161,-77.4716159572515,7.11812499999999, 5685P 11355
+140.007650514273,-77.4716333778613,8.73624999999999, 5685P 11356
+140.007650514273,-77.4716333778613,7.11812499999999, 5685P 11357
+140.007654869426,-64.6719448567939,8.73624999999999, 5685P 11358
+140.007654869426,-64.6719448567939,7.11812499999999, 5685P 11359
+140.806873250314,-64.6719448567939,8.73624999999999, 5685P 11360
+140.806873250314,-64.6719448567939,7.11812499999999, 5685P 11361
+121.756696066765,-64.0711428662849,8.73624999999999, 5685P 11362
+135.757670642722,-64.0711428662849,8.73624999999999, 5685P 11363
+121.756696066765,-64.0711428662849,7.118125,135.757670642722, 5685P 11364
+-64.0711428662849,7.11812499999999,135.757670642722, 5685P 11365
+-64.8090624764674,8.73624999999999,135.757670642722, 5685P 11366
+-64.8090624764674,7.11812499999999,136.556989192117, 5685P 11367
+-64.8090450558576,8.73624999999999,136.556989192117, 5685P 11368
+-64.8090450558576,7.11812499999999,136.556989192117, 5685P 11369
+-77.6084896883878,8.73624999999999,136.556989192117, 5685P 11370
+-77.6084896883878,7.11812499999999,135.757670642722, 5685P 11371
+-77.6085071089976,8.73624999999999,135.757670642722, 5685P 11372
+-77.6085071089976,7.11812499999999,135.757670642722, 5685P 11373
+-78.0723482653213,8.73624999999999,135.757670642722, 5685P 11374
+-78.0723482653213,7.11812499999999,121.756696066765, 5685P 11375
+-78.0723308447116,8.73624999999999,121.756696066765, 5685P 11376
+-78.0723308447116,7.118125,121.756696066765,-77.4716159572515, 5685P 11377
+8.73624999999999,121.756696066765,-77.4716159572515,7.118125, 5685P 11378
+120.957281704017,-77.4716333778613,8.73624999999999, 5685P 11379
+120.957281704017,-77.4716333778613,7.118125,120.957281704017, 5685P 11380
+-64.6719448567939,8.73624999999999,120.957281704017, 5685P 11381
+-64.6719448567939,7.118125,121.756696066765,-64.6719448567939, 5685P 11382
+8.73624999999999,121.756696066765,-64.6719448567939,7.118125, 5685P 11383
+102.706327256509,-64.0713519136024,8.73624999999999, 5685P 11384
+116.707297477313,-64.0713693342122,8.73624999999999, 5685P 11385
+102.706327256509,-64.0713519136024,7.118125,116.707297477313, 5685P 11386
+-64.0713693342122,7.118125,116.707297477313,-64.6721887453311, 5685P 11387
+8.73624999999999,116.707297477313,-64.6721887453311,7.118125, 5685P 11388
+117.506711840062,-64.6721713247213,8.73624999999999, 5685P 11389
+117.506711840062,-64.6721713247213,7.118125,117.506720550367, 5685P 11390
+-77.4716159572515,8.73624999999999,117.506720550367, 5685P 11391
+-77.4716159572515,7.118125,116.707306187618,-77.4716333778613, 5685P 11392
+8.73624999999999,116.707306187618,-77.4716333778613,7.118125, 5685P 11393
+116.707297477313,-78.0723482653214,8.73624999999999, 5685P 11394
+116.707297477313,-78.0723482653214,7.118125,102.706327256509, 5685P 11395
+-78.0723308447116,8.73624999999999,102.706327256509, 5685P 11396
+-78.0723308447116,7.118125,102.706327256509,-77.4716159572515, 5685P 11397
+8.73624999999999,102.706327256509,-77.4716159572515,7.118125, 5685P 11398
+101.90691289376,-77.4716333778613,8.73624999999999, 5685P 11399
+101.90691289376,-77.4716333778613,7.118125,101.90691289376, 5685P 11400
+-64.672188745331,8.73624999999999,101.90691289376, 5685P 11401
+-64.672188745331,7.118125,102.706327256509,-64.6721713247213, 5685P 11402
+8.73624999999999,102.706327256509,-64.6721713247213,7.118125, 5685P 11403
+83.6559584462526,-64.0713519136024,8.73625,97.6569286670568, 5685P 11404
+-64.0713693342122,8.73624999999999,83.6559584462526, 5685P 11405
+-64.0713519136024,7.118125,97.6569286670568,-64.0713693342122, 5685P 11406
+7.118125,97.6569286670568,-64.6721887453311,8.73624999999999, 5685P 11407
+97.6569286670568,-64.6721887453311,7.118125,98.4563430298053, 5685P 11408
+-64.6721713247213,8.73624999999999,98.4563430298053, 5685P 11409
+-64.6721713247213,7.118125,98.4563430298053,-77.4716159572515, 5685P 11410
+8.73624999999999,98.4563430298053,-77.4716159572515,7.118125, 5685P 11411
+97.6569286670568,-77.4716333778613,8.73624999999999, 5685P 11412
+97.6569286670568,-77.4716333778613,7.118125,97.6569286670568, 5685P 11413
+-78.0723482653214,8.73624999999999,97.6569286670568, 5685P 11414
+-78.0723482653214,7.118125,83.6559497359477,-78.0723308447116, 5685P 11415
+8.73625,83.6559497359477,-78.0723308447116,7.118125, 5685P 11416
+83.6559584462526,-77.4716159572515,8.73625,83.6559584462526, 5685P 11417
+-77.4716159572515,7.118125,82.8565440835042,-77.4716333778613, 5685P 11418
+8.73625,82.8565440835042,-77.4716333778613,7.118125, 5685P 11419
+82.8565440835042,-64.672188745331,8.73625,82.8565440835042, 5685P 11420
+-64.672188745331,7.118125,83.6559584462526,-64.6721713247213, 5685P 11421
+8.73625,83.6559584462526,-64.6721713247213,7.118125, 5685P 11422
+64.6055896359963,-64.0713519136024,8.73625,78.6065598568005, 5685P 11423
+-64.0713693342122,8.73625,64.6055896359963,-64.0713519136024, 5685P 11424
+7.118125,78.6065598568005,-64.0713693342122,7.118125, 5685P 11425
+78.6065598568005,-64.6721887453311,8.73625,78.6065598568005, 5685P 11426
+-64.6721887453311,7.118125,79.4059742195489,-64.6721713247213, 5685P 11427
+8.73625,79.4059742195489,-64.6721713247213,7.118125, 5685P 11428
+79.4059742195489,-77.4716159572515,8.73625,79.4059742195489, 5685P 11429
+-77.4716159572515,7.118125,78.6065598568005,-77.4716333778613, 5685P 11430
+8.73625,78.6065598568005,-77.4716333778613,7.118125, 5685P 11431
+78.6065598568005,-78.0723482653214,8.73625,78.6065598568005, 5685P 11432
+-78.0723482653214,7.118125,64.6055896359963,-78.0723308447116, 5685P 11433
+8.73625,64.6055896359963,-78.0723308447116,7.118125, 5685P 11434
+64.6055896359963,-77.4716159572515,8.73625,64.6055896359963, 5685P 11435
+-77.4716159572515,7.118125,63.8061752732478,-77.4716333778613, 5685P 11436
+8.73625,63.8061752732478,-77.4716333778613,7.118125, 5685P 11437
+63.8061752732478,-64.672188745331,8.73625,63.8061752732478, 5685P 11438
+-64.672188745331,7.118125,64.6055896359963,-64.6721713247213, 5685P 11439
+8.73625,64.6055896359963,-64.6721713247213,7.118125, 5685P 11440
+45.5564838199499,-64.0713519136024,8.73625,59.5564610659959, 5685P 11441
+-64.0713693342122,8.73625,45.5564838199499,-64.0713519136024, 5685P 11442
+7.118125,59.5564610659959,-64.0713693342122,7.118125, 5685P 11443
+59.5564610659959,-64.6721887453311,8.73625,59.5564610659959, 5685P 11444
+-64.6721887453311,7.118125,60.3558754287444,-64.6721713247213, 5685P 11445
+8.73625,60.3558754287444,-64.6721713247213,7.118125, 5685P 11446
+60.3558754287444,-77.4716159572515,8.73625,60.3558754287444, 5685P 11447
+-77.4716159572515,7.118125,59.5564610659959,-77.4716333778613, 5685P 11448
+8.73625,59.5564610659959,-77.4716333778613,7.118125, 5685P 11449
+59.5564610659959,-78.0723482653214,8.73625,59.5564610659959, 5685P 11450
+-78.0723482653214,7.118125,45.5564838199499,-78.0723308447116, 5685P 11451
+8.73625,45.5564838199499,-78.0723308447116,7.118125, 5685P 11452
+45.5564838199499,-77.4716159572515,8.73625,45.5564838199499, 5685P 11453
+-77.4716159572515,7.118125,44.7564597358587,-77.4716333778613, 5685P 11454
+8.73625,44.7564597358587,-77.4716333778613,7.118125, 5685P 11455
+44.7564771564685,-64.672188745331,8.73625,44.7564771564685, 5685P 11456
+-64.672188745331,7.118125,45.5565012405597,-64.6721713247213, 5685P 11457
+8.73625,45.5565012405597,-64.6721713247213,7.118125, 5685P 11458
+155.763761628875,-53.5475075752323,8.73624999999999, 5685P 11459
+157.764849292068,-55.4841478849295,8.73624999999999, 5685P 11460
+157.764849292068,-55.4841478849295,7.11812499999999, 5685P 11461
+155.763761628875,-53.5475075752323,7.11812499999999, 5685P 11462
+44.6011495726228,-53.5475075752323,8.73625,44.6011495726228, 5685P 11463
+-53.5475075752323,7.118125,42.5989895726247,-55.5496648502042, 5685P 11464
+8.73625,42.5989895726247,-55.5496648502042,7.118125, 5685P 11465
+42.5989922976492,-137.747055886107,8.73625,42.5989922976492, 5685P 11466
+-137.747055886107,7.118125,44.6011522976492,-139.749215886107, 5685P 11467
+8.73625,44.6011522976492,-139.749215886107,7.118125, 5685P 11468
+155.763727154066,-139.749215886107,8.73624999999999, 5685P 11469
+155.763727154066,-139.749215886107,7.11812499999999, 5685P 11470
+157.76588715377,-137.747021411595,8.73624999999999, 5685P 11471
+157.76588715377,-137.747021411595,7.11812499999999, 5685P 11472
+157.764849292068,-77.4716159572515,8.73624999999999, 5685P 11473
+157.764849292068,-77.4716159572515,7.11812499999999; 5685P 11474
+502,129,83.9631823855374,-224.118941783543,-7.49999999999994, 5687P 11475
+83.9631823855374,-232.561324596043,-7.49999999999994, 5687P 11476
+83.9631823855374,-224.118941783543,-8.49999999999993, 5687P 11477
+83.9631823855374,-232.561324596043,-8.49999999999993, 5687P 11478
+58.8069323855374,-224.118941783543,-7.49999999999996, 5687P 11479
+58.8069323855374,-224.118941783543,-8.49999999999997, 5687P 11480
+58.8069323855374,-182.864058971043,-7.49999999999996, 5687P 11481
+58.8069323855374,-182.864058971043,-8.49999999999997, 5687P 11482
+48.6897448855374,-182.864058971043,-7.49999999999996, 5687P 11483
+48.6897448855374,-182.864058971043,-8.49999999999997, 5687P 11484
+48.6897448855374,-232.561324596043,-7.49999999999996, 5687P 11485
+48.6897448855374,-232.561324596043,-8.49999999999997, 5687P 11486
+18.9406505609936,-172.121201750437,-7.49999999999997, 5687P 11487
+21.7409062360425,-172.121201750437,-7.49999999999997, 5687P 11488
+18.9406505609936,-172.121201750437,-11.6,21.7409062360425, 5687P 11489
+-172.121201750437,-11.6,97.7151063167837,-190.598023114196, 5687P 11490
+-7.49999999999994,100.515361991833,-190.598023114196, 5687P 11491
+-7.49999999999994,97.7151063167837,-190.598023114196, 5687P 11492
+-11.5999999999999,100.515361991833,-190.598023114196, 5687P 11493
+-11.5999999999999,4.43314110940289,-167.842837467805, 5687P 11494
+5.50000000000003,2.93314110940287,-165.622914872961, 5687P 11495
+5.50000000000003,4.43314110940285,-167.842837467805, 5687P 11496
+-7.49999999999997,2.93314110940287,-165.622914872961, 5687P 11497
+-7.49999999999997,114.304136640482,-248.749215886107, 5687P 11498
+5.50000000000007,114.304136640482,-248.749215886107, 5687P 11499
+-7.49999999999994,7.72696471074415,-248.749215886107, 5687P 11500
+-7.49999999999997,7.72696471074415,-248.749215886107, 5687P 11501
+5.50000000000003,4.43214272479956,-245.454337167255, 5687P 11502
+5.50000000000003,4.43214272479953,-245.454337167255, 5687P 11503
+-7.49999999999997,4.43314110940289,-187.471624566822, 5687P 11504
+-7.49999999999997,4.43314110940289,-187.471624566822, 5687P 11505
+5.50000000000003,5.43422877259573,-163.047507575232, 5687P 11506
+5.50000000000003,7.7269302359354,-164.547507575232, 5687P 11507
+5.50000000000003,23.4436836497758,-164.547507575232, 5687P 11508
+5.50000000000003,23.4436836497758,-163.047507575232, 5687P 11509
+5.50000000000003,2.93210324777537,-247.747012802266, 5687P 11510
+5.50000000000003,2.9331411094029,-187.471615957251, 5687P 11511
+5.50000000000003,116.596838103822,-250.249215886107, 5687P 11512
+5.50000000000007,5.43426324740444,-250.249215886107, 5687P 11513
+5.50000000000003,7.7269302359354,-164.547507575232, 5687P 11514
+-7.49999999999997,23.4436836497758,-164.547507575232, 5687P 11515
+-7.49999999999997,114.304139365509,-164.547507575232, 5687P 11516
+-7.49999999999994,114.304139365509,-164.547507575232, 5687P 11517
+5.50000000000007,105.613764146653,-164.547507575232, 5687P 11518
+5.50000000000005,105.613764146653,-164.547507575232, 5687P 11519
+-7.49999999999994,117.59899817983,-245.454354455992, 5687P 11520
+5.50000000000007,119.098998103822,-247.747055886107, 5687P 11521
+5.50000000000007,119.099000828846,-165.54966486678, 5687P 11522
+5.50000000000007,117.599000752838,-167.842369071796, 5687P 11523
+5.50000000000007,116.596840828848,-163.047507575232, 5687P 11524
+5.50000000000007,105.613764146653,-163.047507575232, 5687P 11525
+5.50000000000005,21.4157277366876,-228.698656211065, 5687P 11526
+-7.49999999999997,24.4159835478226,-228.69865621105, 5687P 11527
+-7.49999999999997,21.4157277366876,-228.698656211065,-11.6, 5687P 11528
+24.4159835478226,-228.69865621105,-11.6,97.6171158746639, 5687P 11529
+-228.698656211057,-7.49999999999994,100.617371685799, 5687P 11530
+-228.698656211057,-7.49999999999994,97.6171158746639, 5687P 11531
+-228.698656211057,-11.5999999999999,100.617371685799, 5687P 11532
+-228.698656211057,-11.5999999999999,21.4157277366876, 5687P 11533
+-190.598023114212,-7.49999999999997,24.4159835478226, 5687P 11534
+-190.598023114196,-7.49999999999997,21.4157277366876, 5687P 11535
+-190.598023114212,-11.6,24.4159835478226,-190.598023114196, 5687P 11536
+-11.6,100.190183492478,-172.121201750453,-7.49999999999994, 5687P 11537
+103.190439303613,-172.121201750437,-7.49999999999994, 5687P 11538
+100.190183492478,-172.121201750453,-11.5999999999999, 5687P 11539
+103.190439303613,-172.121201750437,-11.5999999999999, 5687P 11540
+91.5919773314763,-164.547507575232,-7.49999999999994, 5687P 11541
+105.613764146653,-164.547507575232,-11.5999999999999, 5687P 11542
+91.5919773314763,-164.547507575232,-11.5999999999999, 5687P 11543
+105.613764146653,-163.047507575232,1.50000000000007, 5687P 11544
+105.613764146653,-156.547507575232,1.50000000000007, 5687P 11545
+105.613764146653,-156.547507575232,-11.5999999999999, 5687P 11546
+117.599000752838,-167.842369071796,-7.49999999999994, 5687P 11547
+117.59899817983,-245.454354455992,-7.49999999999994, 5687P 11548
+119.099000828848,-165.549667575232,-7.49999999999994, 5687P 11549
+74.4331411094029,-164.547507575232,-7.49999999999996, 5687P 11550
+74.4331411094029,-171.547507575232,-7.49999999999996, 5687P 11551
+54.4331411094029,-171.547507575231,-7.49999999999996, 5687P 11552
+54.4331411094029,-164.547507575232,-7.49999999999996, 5687P 11553
+40.4453194054918,-164.547507575232,-7.49999999999997, 5687P 11554
+2.93314110940287,-165.476420277504,-7.49999999999997, 5687P 11555
+40.4453194054918,-164.547507575232,-11.6,23.4436836497758, 5687P 11556
+-164.547507575232,-11.6,40.4453194054918,-164.547507575232, 5687P 11557
+5.50000000000003,40.4453194054918,-163.047507575232, 5687P 11558
+5.50000000000003,40.4453194054918,-163.047507575232, 5687P 11559
+1.50000000000003,40.4453194054918,-156.547507575232, 5687P 11560
+1.50000000000003,40.4453194054918,-156.547507575232,-11.6, 5687P 11561
+23.4436836497758,-156.547507575232,1.50000000000003, 5687P 11562
+23.4436836497758,-163.047507575232,1.50000000000003, 5687P 11563
+91.5919773314763,-156.547507575232,1.50000000000007, 5687P 11564
+91.5919773314763,-163.047507575232,1.50000000000007, 5687P 11565
+91.5919773314763,-163.047507575232,5.50000000000004, 5687P 11566
+116.596840828848,-163.047507575232,7.50000000000006, 5687P 11567
+5.43422877259573,-163.047507575232,7.50000000000003, 5687P 11568
+23.4436836497758,-156.547507575232,-11.6,91.5919773314763, 5687P 11569
+-156.547507575232,-11.5999999999999,91.5919773314763, 5687P 11570
+-164.547507575232,5.50000000000004,54.4331411094029, 5687P 11571
+-164.547507575232,5.50000000000004,54.4331411094029, 5687P 11572
+-171.547507575231,5.50000000000004,74.4331411094029, 5687P 11573
+-171.547507575232,5.50000000000004,74.4331411094029, 5687P 11574
+-164.547507575232,5.50000000000004,2.9331411094029, 5687P 11575
+-187.471615957251,7.50000000000003,2.93314110940287, 5687P 11576
+-165.476420277504,7.50000000000003,2.93210324777537, 5687P 11577
+-247.747012802266,7.50000000000003,5.43426324740444, 5687P 11578
+-250.249215886107,7.50000000000003,116.596838103822, 5687P 11579
+-250.249215886107,7.50000000000006,119.098998103822, 5687P 11580
+-247.747055886107,7.50000000000006,119.099000828846, 5687P 11581
+-165.54966486678,7.50000000000006,5.43422877259573, 5687P 11582
+-156.547507575232,7.50000000000003,-3.56685889059712, 5687P 11583
+-165.410723179457,7.50000000000003,-3.56685889059712, 5687P 11584
+-187.471555692063,7.50000000000003,-3.56789675126109, 5687P 11585
+-247.746900880977,7.50000000000003,5.43426324740444, 5687P 11586
+-256.749215886107,7.50000000000003,116.596838103822, 5687P 11587
+-256.749215886107,7.50000000000006,125.598998103822, 5687P 11588
+-247.747055886107,7.50000000000006,125.599000828846, 5687P 11589
+-165.54966508227,7.50000000000006,116.596840828848, 5687P 11590
+-156.547507575232,7.50000000000006,-3.56685889059712, 5687P 11591
+-165.410723179457,-11.6,-3.56685889059712,-187.471555692063, 5687P 11592
+-11.6,-3.56789675126109,-247.746900880977,-11.6, 5687P 11593
+5.43426324740444,-256.749215886107,-11.6,116.596838103822, 5687P 11594
+-256.749215886107,-11.5999999999999,125.598998103822, 5687P 11595
+-247.747055886107,-11.5999999999999,125.599000828846, 5687P 11596
+-165.54966508227,-11.5999999999999,116.596840828848, 5687P 11597
+-156.547507575232,-11.5999999999999,5.43422877259573, 5687P 11598
+-156.547507575232,-11.6; 5687P 11599
+502,171,220.752682252201,-164.547507575232,-7.5, 5689P 11600
+220.752682252201,-164.547507575232,5.5,213.600041714311, 5689P 11601
+-164.547507575232,5.5,213.600041714311,-164.547507575232,-7.5, 5689P 11602
+220.752682252201,-163.047507575232,5.5,169.612220010399, 5689P 11603
+-163.047507575232,5.5,169.612220010399,-164.547507575232,5.5, 5689P 11604
+193.600041714311,-164.547507575232,5.5,193.600041714311, 5689P 11605
+-171.547507575231,5.5,213.600041714311,-171.547507575232,5.5, 5689P 11606
+220.752682252201,-163.047507575232,1.5,237.780664751561, 5689P 11607
+-163.047507575232,1.5,237.780664751561,-163.047507575232,5.5, 5689P 11608
+255.763741433756,-163.047507575232,5.5,255.763741433756, 5689P 11609
+-163.047507575232,7.5,144.601129377503,-163.047507575232,7.5, 5689P 11610
+144.601129377503,-163.047507575232,5.5,155.584237511039, 5689P 11611
+-163.047507575232,5.5,155.584237511039,-163.047507575232,1.5, 5689P 11612
+169.612220010399,-163.047507575232,1.5,155.584237511039, 5689P 11613
+-156.547507575232,-11.6,155.584237511039,-164.547507575232, 5689P 11614
+-11.6,155.584237511039,-156.547507575232,1.49999999999999, 5689P 11615
+155.584237511039,-164.547507575232,5.5,155.584237511039, 5689P 11616
+-164.547507575232,-7.5,220.752682252201,-156.547507575232,-11.6, 5689P 11617
+220.752682252201,-164.547507575232,-11.6,220.752682252201, 5689P 11618
+-156.547507575232,1.5,146.893830840843,-164.547507575232,5.5, 5689P 11619
+146.893830840843,-164.547507575232,-7.5,169.612220010399, 5689P 11620
+-156.547507575232,1.5,144.601129377503,-156.547507575232,-11.6, 5689P 11621
+144.601129377503,-156.547507575232,7.5,255.763741433756, 5689P 11622
+-156.547507575232,7.5,255.763741433756,-156.547507575232,-11.6, 5689P 11623
+237.780664751561,-156.547507575232,-11.6,237.780664751561, 5689P 11624
+-156.547507575232,1.5,169.612220010399,-156.547507575232,-11.6, 5689P 11625
+169.612220010399,-164.547507575232,-11.6,237.780664751561, 5689P 11626
+-164.547507575232,-11.6,264.765901433754,-165.54966508227,-11.6, 5689P 11627
+264.765898708729,-247.747055886107,-11.6,255.763738708729, 5689P 11628
+-256.749215886107,-11.6,144.601163852312,-256.749215886107, 5689P 11629
+-11.6,135.599003853647,-247.746900880977,-11.6,135.600041714311, 5689P 11630
+-187.471555692063,-11.6,135.600041714311,-165.410723179457, 5689P 11631
+-11.6,239.357084097385,-172.121201750453,-11.6,242.35733990852, 5689P 11632
+-172.121201750437,-11.6,160.582628341595,-190.598023114212, 5689P 11633
+-11.6,163.58288415273,-190.598023114196,-11.6,236.784016479572, 5689P 11634
+-228.698656211057,-11.6,239.784272290707,-228.698656211057, 5689P 11635
+-11.6,160.582628341595,-228.698656211065,-11.6,163.58288415273, 5689P 11636
+-228.69865621105,-11.6,236.882006921691,-190.598023114196,-11.6, 5689P 11637
+239.68226259674,-190.598023114196,-11.6,158.107551165901, 5689P 11638
+-172.121201750437,-11.6,160.90780684095,-172.121201750437,-11.6, 5689P 11639
+198.356008409196,-187.660756010089,-7.5,189.332570909196, 5689P 11640
+-187.660756010089,-7.5,198.356008409196,-187.660756010089,-8.5, 5689P 11641
+189.332570909196,-187.660756010089,-8.5,206.793508409196, 5689P 11642
+-187.856068510089,-7.5,206.793508409196,-187.856068510089,-8.5, 5689P 11643
+211.148977159196,-190.102162260089,-7.5,211.148977159196, 5689P 11644
+-190.102162260089,-8.5,212.691945909196,-194.770131010089,-7.5, 5689P 11645
+212.691945909196,-194.770131010089,-8.5,211.520070909196, 5689P 11646
+-199.067006010089,-7.5,211.520070909196,-199.067006010089,-8.5, 5689P 11647
+208.277883409196,-201.488881010089,-7.5,208.277883409196, 5689P 11648
+-201.488881010089,-8.5,197.887258409196,-202.192006010089,-7.5, 5689P 11649
+197.887258409196,-202.192006010089,-8.5,189.332570909196, 5689P 11650
+-202.192006010089,-7.5,189.332570909196,-202.192006010089,-8.5, 5689P 11651
+189.332570909196,-211.332631010089,-7.5,189.332570909196, 5689P 11652
+-235.238881010089,-7.5,189.332570909196,-211.332631010089,-8.5, 5689P 11653
+189.332570909196,-235.238881010089,-8.5,191.676320909196, 5689P 11654
+-211.332631010089,-7.5,191.676320909196,-211.332631010089,-8.5, 5689P 11655
+197.496633409196,-211.977162260089,-7.5,197.496633409196, 5689P 11656
+-211.977162260089,-8.5,200.973195909196,-214.359974760089,-7.5, 5689P 11657
+200.973195909196,-214.359974760089,-8.5,207.066945909196, 5689P 11658
+-222.777943510089,-7.5,207.066945909196,-222.777943510089,-8.5, 5689P 11659
+215.426320909196,-235.238881010089,-7.5,215.426320909196, 5689P 11660
+-235.238881010089,-8.5,229.254445909196,-235.238881010089,-7.5, 5689P 11661
+229.254445909196,-235.238881010089,-8.5,222.262258409196, 5689P 11662
+-224.067006010089,-7.5,222.262258409196,-224.067006010089,-8.5, 5689P 11663
+215.680227159196,-214.770131010089,-7.5,215.680227159196, 5689P 11664
+-214.770131010089,-8.5,209.488820909196,-209.965443510089,-7.5, 5689P 11665
+209.488820909196,-209.965443510089,-8.5,220.816945909196, 5689P 11666
+-204.672474760089,-7.5,220.816945909196,-204.672474760089,-8.5, 5689P 11667
+224.606008409196,-194.027943510089,-7.5,224.606008409196, 5689P 11668
+-194.027943510089,-8.5,222.106008409196,-185.004506010089,-7.5, 5689P 11669
+222.106008409196,-185.004506010089,-8.5,215.445852159196, 5689P 11670
+-179.516224760089,-7.5,215.445852159196,-179.516224760089,-8.5, 5689P 11671
+202.106008409196,-177.973256010089,-7.5,202.106008409196, 5689P 11672
+-177.973256010089,-8.5,177.770070909196,-177.973256010089,-7.5, 5689P 11673
+177.770070909196,-177.973256010089,-8.5,177.770070909196, 5689P 11674
+-235.238881010089,-7.5,177.770070909196,-235.238881010089,-8.5, 5689P 11675
+256.765901357746,-167.842369071796,-7.5,256.765898784737, 5689P 11676
+-245.454354455992,-7.5,258.265901433755,-165.549667575232,-7.5, 5689P 11677
+253.471039970417,-164.547507575232,-7.5,237.780664751561, 5689P 11678
+-164.547507575232,-7.5,213.600041714311,-171.547507575232,-7.5, 5689P 11679
+193.600041714311,-171.547507575231,-7.5,193.600041714311, 5689P 11680
+-164.547507575232,-7.5,169.612220010399,-164.547507575232,-7.5, 5689P 11681
+142.100041714311,-165.476420277504,-7.5,142.100041714311, 5689P 11682
+-165.622914872961,-7.5,143.600041714311,-167.842837467805,-7.5, 5689P 11683
+143.600041714311,-187.471624566822,-7.5,143.599043329707, 5689P 11684
+-245.454337167255,-7.5,146.893865315652,-248.749215886107,-7.5, 5689P 11685
+253.47103724539,-248.749215886107,-7.5,242.35733990852, 5689P 11686
+-172.121201750437,-7.5,239.357084097385,-172.121201750453,-7.5, 5689P 11687
+163.58288415273,-190.598023114196,-7.5,160.582628341595, 5689P 11688
+-190.598023114212,-7.5,239.784272290707,-228.698656211057,-7.5, 5689P 11689
+236.784016479572,-228.698656211057,-7.5,163.58288415273, 5689P 11690
+-228.69865621105,-7.5,160.582628341595,-228.698656211065,-7.5, 5689P 11691
+239.68226259674,-190.598023114196,-7.5,236.882006921691, 5689P 11692
+-190.598023114196,-7.5,160.90780684095,-172.121201750437,-7.5, 5689P 11693
+158.107551165901,-172.121201750437,-7.5,143.600041714311, 5689P 11694
+-167.842837467805,5.5,142.100041714311,-165.622914872961,5.5, 5689P 11695
+253.47103724539,-248.749215886107,5.5,146.893865315652, 5689P 11696
+-248.749215886107,5.5,143.599043329707,-245.454337167255,5.5, 5689P 11697
+143.600041714311,-187.471624566822,5.5,142.099003852683, 5689P 11698
+-247.747012802266,5.5,142.100041714311,-187.471615957251,5.5, 5689P 11699
+255.763738708729,-250.249215886107,5.5,144.601163852312, 5689P 11700
+-250.249215886107,5.5,253.471039970417,-164.547507575232,5.5, 5689P 11701
+237.780664751561,-164.547507575232,5.5,256.765898784737, 5689P 11702
+-245.454354455992,5.5,258.265898708729,-247.747055886107,5.5, 5689P 11703
+258.265901433754,-165.54966486678,5.5,256.765901357746, 5689P 11704
+-167.842369071796,5.5,142.100041714311,-187.471615957251,7.5, 5689P 11705
+142.100041714311,-165.476420277504,7.5,142.099003852683, 5689P 11706
+-247.747012802266,7.5,144.601163852312,-250.249215886107,7.5, 5689P 11707
+255.763738708729,-250.249215886107,7.5,258.265898708729, 5689P 11708
+-247.747055886107,7.5,258.265901433754,-165.54966486678,7.5, 5689P 11709
+135.600041714311,-165.410723179457,7.5,135.600041714311, 5689P 11710
+-187.471555692063,7.5,135.599003853647,-247.746900880977,7.5, 5689P 11711
+144.601163852312,-256.749215886107,7.5,255.763738708729, 5689P 11712
+-256.749215886107,7.5,264.765898708729,-247.747055886107,7.5, 5689P 11713
+264.765901433754,-165.54966508227,7.5; 5689P 11714
+504,915,2027,5685,1,5685,2,2029,5685,2,5685,3,2031,5685,4,5685, 5691P 11715
+3,2033,5685,1,5685,4,2035,5685,2,5685,1,2037,5685,3,5685,4,2039, 5691P 11716
+5685,5,5685,6,2041,5685,6,5685,7,2043,5685,8,5685,7,2045,5685,5, 5691P 11717
+5685,8,2047,5685,6,5685,5,2049,5685,7,5685,8,2051,5685,9,5685, 5691P 11718
+10,2053,5685,10,5685,11,2055,5685,12,5685,11,2057,5685,9,5685, 5691P 11719
+12,2059,5685,10,5685,9,2061,5685,11,5685,12,2063,5685,13,5685, 5691P 11720
+14,2065,5685,14,5685,15,2067,5685,16,5685,15,2069,5685,13,5685, 5691P 11721
+16,2071,5685,14,5685,13,2073,5685,15,5685,16,2075,5685,17,5685, 5691P 11722
+18,2077,5685,17,5685,19,2079,5685,20,5685,19,2081,5685,18,5685, 5691P 11723
+20,2083,5685,18,5685,21,2085,5685,22,5685,20,2087,5685,21,5685, 5691P 11724
+22,2089,5685,21,5685,23,2091,5685,24,5685,22,2093,5685,23,5685, 5691P 11725
+24,2095,5685,23,5685,25,2097,5685,26,5685,24,2099,5685,25,5685, 5691P 11726
+26,2101,5685,25,5685,27,2103,5685,28,5685,26,2105,5685,27,5685, 5691P 11727
+28,2107,5685,27,5685,29,2109,5685,30,5685,28,2111,5685,29,5685, 5691P 11728
+30,2113,5685,29,5685,31,2115,5685,32,5685,30,2117,5685,31,5685, 5691P 11729
+32,2119,5685,31,5685,33,2121,5685,34,5685,32,2123,5685,33,5685, 5691P 11730
+34,2125,5685,33,5685,35,2127,5685,36,5685,34,2129,5685,35,5685, 5691P 11731
+36,2131,5685,35,5685,37,2133,5685,38,5685,36,2135,5685,37,5685, 5691P 11732
+38,2137,5685,37,5685,39,2139,5685,40,5685,38,2141,5685,39,5685, 5691P 11733
+40,2143,5685,39,5685,17,2145,5685,19,5685,40,2147,5685,41,5685, 5691P 11734
+42,2149,5685,41,5685,43,2151,5685,44,5685,43,2153,5685,42,5685, 5691P 11735
+44,2155,5685,42,5685,45,2157,5685,46,5685,44,2159,5685,45,5685, 5691P 11736
+46,2161,5685,45,5685,47,2163,5685,48,5685,46,2165,5685,47,5685, 5691P 11737
+48,2167,5685,47,5685,49,2169,5685,50,5685,48,2171,5685,49,5685, 5691P 11738
+50,2173,5685,49,5685,51,2175,5685,52,5685,50,2177,5685,51,5685, 5691P 11739
+52,2179,5685,51,5685,53,2181,5685,54,5685,52,2183,5685,53,5685, 5691P 11740
+54,2185,5685,53,5685,55,2187,5685,56,5685,54,2189,5685,55,5685, 5691P 11741
+56,2191,5685,55,5685,57,2193,5685,58,5685,56,2195,5685,57,5685, 5691P 11742
+58,2197,5685,57,5685,59,2199,5685,60,5685,58,2201,5685,59,5685, 5691P 11743
+60,2203,5685,59,5685,61,2205,5685,62,5685,60,2207,5685,61,5685, 5691P 11744
+62,2209,5685,61,5685,63,2211,5685,64,5685,62,2213,5685,63,5685, 5691P 11745
+64,2215,5685,63,5685,41,2217,5685,43,5685,64,2219,5685,65,5685, 5691P 11746
+66,2221,5685,65,5685,67,2223,5685,68,5685,67,2225,5685,66,5685, 5691P 11747
+68,2227,5685,66,5685,69,2229,5685,70,5685,68,2231,5685,69,5685, 5691P 11748
+70,2233,5685,69,5685,71,2235,5685,72,5685,70,2237,5685,71,5685, 5691P 11749
+72,2239,5685,71,5685,73,2241,5685,74,5685,72,2243,5685,73,5685, 5691P 11750
+74,2245,5685,73,5685,75,2247,5685,76,5685,74,2249,5685,75,5685, 5691P 11751
+76,2251,5685,75,5685,77,2253,5685,78,5685,76,2255,5685,77,5685, 5691P 11752
+78,2257,5685,77,5685,79,2259,5685,80,5685,78,2261,5685,79,5685, 5691P 11753
+80,2263,5685,79,5685,81,2265,5685,82,5685,80,2267,5685,81,5685, 5691P 11754
+82,2269,5685,81,5685,83,2271,5685,84,5685,82,2273,5685,83,5685, 5691P 11755
+84,2275,5685,83,5685,85,2277,5685,86,5685,84,2279,5685,85,5685, 5691P 11756
+86,2281,5685,85,5685,87,2283,5685,88,5685,86,2285,5685,87,5685, 5691P 11757
+88,2287,5685,87,5685,65,2289,5685,67,5685,88,2291,5685,89,5685, 5691P 11758
+90,2293,5685,89,5685,91,2295,5685,92,5685,91,2297,5685,90,5685, 5691P 11759
+92,2299,5685,90,5685,93,2301,5685,94,5685,92,2303,5685,93,5685, 5691P 11760
+94,2305,5685,93,5685,95,2307,5685,96,5685,94,2309,5685,95,5685, 5691P 11761
+96,2311,5685,95,5685,97,2313,5685,98,5685,96,2315,5685,97,5685, 5691P 11762
+98,2317,5685,97,5685,99,2319,5685,100,5685,98,2321,5685,99,5685, 5691P 11763
+100,2323,5685,99,5685,101,2325,5685,102,5685,100,2327,5685,101, 5691P 11764
+5685,102,2329,5685,101,5685,103,2331,5685,104,5685,102,2333, 5691P 11765
+5685,103,5685,104,2335,5685,103,5685,105,2337,5685,106,5685,104, 5691P 11766
+2339,5685,105,5685,106,2341,5685,105,5685,107,2343,5685,108, 5691P 11767
+5685,106,2345,5685,107,5685,108,2347,5685,107,5685,109,2349, 5691P 11768
+5685,110,5685,108,2351,5685,109,5685,110,2353,5685,109,5685,111, 5691P 11769
+2355,5685,112,5685,110,2357,5685,111,5685,112,2359,5685,111, 5691P 11770
+5685,89,2361,5685,91,5685,112,2363,5685,113,5685,114,2365,5685, 5691P 11771
+113,5685,115,2367,5685,116,5685,115,2369,5685,114,5685,116,2371, 5691P 11772
+5685,114,5685,117,2373,5685,118,5685,116,2375,5685,117,5685,118, 5691P 11773
+2377,5685,117,5685,119,2379,5685,120,5685,118,2381,5685,119, 5691P 11774
+5685,120,2383,5685,119,5685,121,2385,5685,122,5685,120,2387, 5691P 11775
+5685,121,5685,122,2389,5685,121,5685,123,2391,5685,124,5685,122, 5691P 11776
+2393,5685,123,5685,124,2395,5685,123,5685,125,2397,5685,126, 5691P 11777
+5685,124,2399,5685,125,5685,126,2401,5685,125,5685,127,2403, 5691P 11778
+5685,128,5685,126,2405,5685,127,5685,128,2407,5685,127,5685,129, 5691P 11779
+2409,5685,130,5685,128,2411,5685,129,5685,130,2413,5685,129, 5691P 11780
+5685,131,2415,5685,132,5685,130,2417,5685,131,5685,132,2419, 5691P 11781
+5685,131,5685,133,2421,5685,134,5685,132,2423,5685,133,5685,134, 5691P 11782
+2425,5685,133,5685,135,2427,5685,136,5685,134,2429,5685,135, 5691P 11783
+5685,136,2431,5685,135,5685,113,2433,5685,115,5685,136,2435, 5691P 11784
+5685,137,5685,138,2437,5685,137,5685,139,2439,5685,140,5685,139, 5691P 11785
+2441,5685,138,5685,140,2443,5685,138,5685,141,2445,5685,142, 5691P 11786
+5685,140,2447,5685,141,5685,142,2449,5685,141,5685,143,2451, 5691P 11787
+5685,144,5685,142,2453,5685,143,5685,144,2455,5685,143,5685,145, 5691P 11788
+2457,5685,146,5685,144,2459,5685,145,5685,146,2461,5685,145, 5691P 11789
+5685,147,2463,5685,148,5685,146,2465,5685,147,5685,148,2467, 5691P 11790
+5685,147,5685,149,2469,5685,150,5685,148,2471,5685,149,5685,150, 5691P 11791
+2473,5685,149,5685,151,2475,5685,152,5685,150,2477,5685,151, 5691P 11792
+5685,152,2479,5685,151,5685,153,2481,5685,154,5685,152,2483, 5691P 11793
+5685,153,5685,154,2485,5685,153,5685,155,2487,5685,156,5685,154, 5691P 11794
+2489,5685,155,5685,156,2491,5685,155,5685,157,2493,5685,158, 5691P 11795
+5685,156,2495,5685,157,5685,158,2497,5685,157,5685,159,2499, 5691P 11796
+5685,160,5685,158,2501,5685,159,5685,160,2503,5685,159,5685,137, 5691P 11797
+2505,5685,139,5685,160,2507,5685,161,5685,162,2509,5685,161, 5691P 11798
+5685,163,2511,5685,164,5685,163,2513,5685,162,5685,164,2515, 5691P 11799
+5685,162,5685,165,2517,5685,166,5685,164,2519,5685,165,5685,166, 5691P 11800
+2521,5685,165,5685,167,2523,5685,168,5685,166,2525,5685,167, 5691P 11801
+5685,168,2527,5685,167,5685,169,2529,5685,170,5685,168,2531, 5691P 11802
+5685,169,5685,170,2533,5685,169,5685,171,2535,5685,172,5685,170, 5691P 11803
+2537,5685,171,5685,172,2539,5685,171,5685,173,2541,5685,174, 5691P 11804
+5685,172,2543,5685,173,5685,174,2545,5685,173,5685,175,2547, 5691P 11805
+5685,176,5685,174,2549,5685,175,5685,176,2551,5685,175,5685,177, 5691P 11806
+2553,5685,178,5685,176,2555,5685,177,5685,178,2557,5685,177, 5691P 11807
+5685,179,2559,5685,180,5685,178,2561,5685,179,5685,180,2563, 5691P 11808
+5685,179,5685,181,2565,5685,182,5685,180,2567,5685,181,5685,182, 5691P 11809
+2569,5685,181,5685,183,2571,5685,184,5685,182,2573,5685,183, 5691P 11810
+5685,184,2575,5685,183,5685,161,2577,5685,163,5685,184,2579, 5691P 11811
+5685,185,5685,186,2581,5685,185,5685,187,2583,5685,188,5685,187, 5691P 11812
+2585,5685,186,5685,188,2587,5685,186,5685,189,2589,5685,190, 5691P 11813
+5685,188,2591,5685,189,5685,190,2593,5685,189,5685,191,2595, 5691P 11814
+5685,192,5685,190,2597,5685,191,5685,192,2599,5685,191,5685,193, 5691P 11815
+2601,5685,194,5685,192,2603,5685,193,5685,194,2605,5685,193, 5691P 11816
+5685,195,2607,5685,196,5685,194,2609,5685,195,5685,196,2611, 5691P 11817
+5685,195,5685,197,2613,5685,198,5685,196,2615,5685,197,5685,198, 5691P 11818
+2617,5685,197,5685,199,2619,5685,200,5685,198,2621,5685,199, 5691P 11819
+5685,200,2623,5685,199,5685,201,2625,5685,202,5685,200,2627, 5691P 11820
+5685,201,5685,202,2629,5685,201,5685,203,2631,5685,204,5685,202, 5691P 11821
+2633,5685,203,5685,204,2635,5685,203,5685,205,2637,5685,206, 5691P 11822
+5685,204,2639,5685,205,5685,206,2641,5685,205,5685,207,2643, 5691P 11823
+5685,208,5685,206,2645,5685,207,5685,208,2647,5685,207,5685,185, 5691P 11824
+2649,5685,187,5685,208,2651,5685,209,5685,210,2653,5685,209, 5691P 11825
+5685,211,2655,5685,212,5685,211,2657,5685,210,5685,212,2659, 5691P 11826
+5685,210,5685,213,2661,5685,214,5685,212,2663,5685,213,5685,214, 5691P 11827
+2665,5685,213,5685,215,2667,5685,216,5685,214,2669,5685,215, 5691P 11828
+5685,216,2671,5685,215,5685,217,2673,5685,218,5685,216,2675, 5691P 11829
+5685,217,5685,218,2677,5685,217,5685,219,2679,5685,220,5685,218, 5691P 11830
+2681,5685,219,5685,220,2683,5685,219,5685,221,2685,5685,222, 5691P 11831
+5685,220,2687,5685,221,5685,222,2689,5685,221,5685,223,2691, 5691P 11832
+5685,224,5685,222,2693,5685,223,5685,224,2695,5685,223,5685,225, 5691P 11833
+2697,5685,226,5685,224,2699,5685,225,5685,226,2701,5685,225, 5691P 11834
+5685,227,2703,5685,228,5685,226,2705,5685,227,5685,228,2707, 5691P 11835
+5685,227,5685,229,2709,5685,230,5685,228,2711,5685,229,5685,230, 5691P 11836
+2713,5685,229,5685,231,2715,5685,232,5685,230,2717,5685,231, 5691P 11837
+5685,232,2719,5685,231,5685,209,2721,5685,211,5685,232,2723, 5691P 11838
+5685,233,5685,234,2725,5685,233,5685,235,2727,5685,236,5685,235, 5691P 11839
+2729,5685,234,5685,236,2731,5685,234,5685,237,2733,5685,238, 5691P 11840
+5685,236,2735,5685,237,5685,238,2737,5685,237,5685,239,2739, 5691P 11841
+5685,240,5685,238,2741,5685,239,5685,240,2743,5685,239,5685,241, 5691P 11842
+2745,5685,242,5685,240,2747,5685,241,5685,242,2749,5685,241, 5691P 11843
+5685,243,2751,5685,244,5685,242,2753,5685,243,5685,244,2755, 5691P 11844
+5685,243,5685,245,2757,5685,246,5685,244,2759,5685,245,5685,246, 5691P 11845
+2761,5685,245,5685,247,2763,5685,248,5685,246,2765,5685,247, 5691P 11846
+5685,248,2767,5685,247,5685,249,2769,5685,250,5685,248,2771, 5691P 11847
+5685,249,5685,250,2773,5685,249,5685,251,2775,5685,252,5685,250, 5691P 11848
+2777,5685,251,5685,252,2779,5685,251,5685,253,2781,5685,254, 5691P 11849
+5685,252,2783,5685,253,5685,254,2785,5685,253,5685,255,2787, 5691P 11850
+5685,256,5685,254,2789,5685,255,5685,256,2791,5685,255,5685,233, 5691P 11851
+2793,5685,235,5685,256,2795,5685,257,5685,258,2797,5685,257, 5691P 11852
+5685,259,2799,5685,260,5685,259,2801,5685,258,5685,260,2803, 5691P 11853
+5685,258,5685,261,2805,5685,262,5685,260,2807,5685,261,5685,262, 5691P 11854
+2809,5685,261,5685,263,2811,5685,264,5685,262,2813,5685,263, 5691P 11855
+5685,264,2815,5685,263,5685,265,2817,5685,266,5685,264,2819, 5691P 11856
+5685,265,5685,266,2821,5685,265,5685,267,2823,5685,268,5685,266, 5691P 11857
+2825,5685,267,5685,268,2827,5685,267,5685,269,2829,5685,270, 5691P 11858
+5685,268,2831,5685,269,5685,270,2833,5685,269,5685,271,2835, 5691P 11859
+5685,272,5685,270,2837,5685,271,5685,272,2839,5685,271,5685,273, 5691P 11860
+2841,5685,274,5685,272,2843,5685,273,5685,274,2845,5685,273, 5691P 11861
+5685,275,2847,5685,276,5685,274,2849,5685,275,5685,276,2851, 5691P 11862
+5685,275,5685,277,2853,5685,278,5685,276,2855,5685,277,5685,278, 5691P 11863
+2857,5685,277,5685,279,2859,5685,280,5685,278,2861,5685,279, 5691P 11864
+5685,280,2863,5685,279,5685,257,2865,5685,259,5685,280,2867, 5691P 11865
+5685,281,5685,282,2869,5685,281,5685,283,2871,5685,284,5685,283, 5691P 11866
+2873,5685,282,5685,284,2875,5685,282,5685,285,2877,5685,286, 5691P 11867
+5685,284,2879,5685,285,5685,286,2881,5685,285,5685,287,2883, 5691P 11868
+5685,288,5685,286,2885,5685,287,5685,288,2887,5685,287,5685,289, 5691P 11869
+2889,5685,290,5685,288,2891,5685,289,5685,290,2893,5685,289, 5691P 11870
+5685,291,2895,5685,292,5685,290,2897,5685,291,5685,292,2899, 5691P 11871
+5685,291,5685,293,2901,5685,294,5685,292,2903,5685,293,5685,294, 5691P 11872
+2905,5685,293,5685,295,2907,5685,296,5685,294,2909,5685,295, 5691P 11873
+5685,296,2911,5685,295,5685,297,2913,5685,298,5685,296,2915, 5691P 11874
+5685,297,5685,298,2917,5685,297,5685,299,2919,5685,300,5685,298, 5691P 11875
+2921,5685,299,5685,300,2923,5685,299,5685,301,2925,5685,302, 5691P 11876
+5685,300,2927,5685,301,5685,302,2929,5685,301,5685,303,2931, 5691P 11877
+5685,304,5685,302,2933,5685,303,5685,304,2935,5685,303,5685,281, 5691P 11878
+2937,5685,283,5685,304,2939,5685,305,5685,306,2941,5685,305, 5691P 11879
+5685,307,2943,5685,308,5685,307,2945,5685,306,5685,308,2947, 5691P 11880
+5685,306,5685,309,2949,5685,310,5685,308,2951,5685,309,5685,310, 5691P 11881
+2953,5685,309,5685,311,2955,5685,312,5685,310,2957,5685,311, 5691P 11882
+5685,312,2959,5685,311,5685,313,2961,5685,314,5685,312,2963, 5691P 11883
+5685,313,5685,314,2965,5685,313,5685,315,2967,5685,316,5685,314, 5691P 11884
+2969,5685,315,5685,316,2971,5685,315,5685,317,2973,5685,318, 5691P 11885
+5685,316,2975,5685,317,5685,318,2977,5685,317,5685,319,2979, 5691P 11886
+5685,320,5685,318,2981,5685,319,5685,320,2983,5685,319,5685,321, 5691P 11887
+2985,5685,322,5685,320,2987,5685,321,5685,322,2989,5685,321, 5691P 11888
+5685,323,2991,5685,324,5685,322,2993,5685,323,5685,324,2995, 5691P 11889
+5685,323,5685,325,2997,5685,326,5685,324,2999,5685,325,5685,326, 5691P 11890
+3001,5685,325,5685,327,3003,5685,328,5685,326,3005,5685,327, 5691P 11891
+5685,328,3007,5685,327,5685,305,3009,5685,307,5685,328,3011, 5691P 11892
+5685,329,5685,330,3013,5685,329,5685,331,3015,5685,332,5685,331, 5691P 11893
+3017,5685,330,5685,332,3019,5685,330,5685,333,3021,5685,334, 5691P 11894
+5685,332,3023,5685,333,5685,334,3025,5685,333,5685,335,3027, 5691P 11895
+5685,336,5685,334,3029,5685,335,5685,336,3031,5685,335,5685,337, 5691P 11896
+3033,5685,338,5685,336,3035,5685,337,5685,338,3037,5685,337, 5691P 11897
+5685,339,3039,5685,340,5685,338,3041,5685,339,5685,340,3043, 5691P 11898
+5685,339,5685,341,3045,5685,342,5685,340,3047,5685,341,5685,342, 5691P 11899
+3049,5685,341,5685,343,3051,5685,344,5685,342,3053,5685,343, 5691P 11900
+5685,344,3055,5685,343,5685,345,3057,5685,346,5685,344,3059, 5691P 11901
+5685,345,5685,346,3061,5685,345,5685,347,3063,5685,348,5685,346, 5691P 11902
+3065,5685,347,5685,348,3067,5685,347,5685,349,3069,5685,350, 5691P 11903
+5685,348,3071,5685,349,5685,350,3073,5685,349,5685,351,3075, 5691P 11904
+5685,352,5685,350,3077,5685,351,5685,352,3079,5685,351,5685,329, 5691P 11905
+3081,5685,331,5685,352,3083,5685,353,5685,354,3085,5685,353, 5691P 11906
+5685,355,3087,5685,356,5685,355,3089,5685,354,5685,356,3091, 5691P 11907
+5685,354,5685,357,3093,5685,358,5685,356,3095,5685,357,5685,358, 5691P 11908
+3097,5685,357,5685,359,3099,5685,360,5685,358,3101,5685,359, 5691P 11909
+5685,360,3103,5685,359,5685,361,3105,5685,362,5685,360,3107, 5691P 11910
+5685,361,5685,362,3109,5685,361,5685,363,3111,5685,364,5685,362, 5691P 11911
+3113,5685,363,5685,364,3115,5685,363,5685,365,3117,5685,366, 5691P 11912
+5685,364,3119,5685,365,5685,366,3121,5685,365,5685,367,3123, 5691P 11913
+5685,368,5685,366,3125,5685,367,5685,368,3127,5685,367,5685,369, 5691P 11914
+3129,5685,370,5685,368,3131,5685,369,5685,370,3133,5685,369, 5691P 11915
+5685,371,3135,5685,372,5685,370,3137,5685,371,5685,372,3139, 5691P 11916
+5685,371,5685,373,3141,5685,374,5685,372,3143,5685,373,5685,374, 5691P 11917
+3145,5685,373,5685,375,3147,5685,376,5685,374,3149,5685,375, 5691P 11918
+5685,376,3151,5685,375,5685,353,3153,5685,355,5685,376,3155, 5691P 11919
+5685,377,5685,378,3157,5685,377,5685,379,3159,5685,380,5685,379, 5691P 11920
+3161,5685,378,5685,380,3163,5685,378,5685,381,3165,5685,382, 5691P 11921
+5685,380,3167,5685,381,5685,382,3169,5685,381,5685,383,3171, 5691P 11922
+5685,384,5685,382,3173,5685,383,5685,384,3175,5685,383,5685,385, 5691P 11923
+3177,5685,386,5685,384,3179,5685,385,5685,386,3181,5685,385, 5691P 11924
+5685,387,3183,5685,388,5685,386,3185,5685,387,5685,388,3187, 5691P 11925
+5685,387,5685,389,3189,5685,390,5685,388,3191,5685,389,5685,390, 5691P 11926
+3193,5685,389,5685,391,3195,5685,392,5685,390,3197,5685,391, 5691P 11927
+5685,392,3199,5685,391,5685,393,3201,5685,394,5685,392,3203, 5691P 11928
+5685,393,5685,394,3205,5685,393,5685,395,3207,5685,396,5685,394, 5691P 11929
+3209,5685,395,5685,396,3211,5685,395,5685,397,3213,5685,398, 5691P 11930
+5685,396,3215,5685,397,5685,398,3217,5685,397,5685,399,3219, 5691P 11931
+5685,400,5685,398,3221,5685,399,5685,400,3223,5685,399,5685,377, 5691P 11932
+3225,5685,379,5685,400,3227,5685,401,5685,402,3229,5685,401, 5691P 11933
+5685,403,3231,5685,404,5685,403,3233,5685,402,5685,404,3235, 5691P 11934
+5685,402,5685,405,3237,5685,406,5685,404,3239,5685,405,5685,406, 5691P 11935
+3241,5685,405,5685,407,3243,5685,408,5685,406,3245,5685,407, 5691P 11936
+5685,408,3247,5685,407,5685,409,3249,5685,410,5685,408,3251, 5691P 11937
+5685,409,5685,410,3253,5685,409,5685,411,3255,5685,412,5685,410, 5691P 11938
+3257,5685,411,5685,412,3259,5685,411,5685,413,3261,5685,414, 5691P 11939
+5685,412,3263,5685,413,5685,414,3265,5685,413,5685,415,3267, 5691P 11940
+5685,416,5685,414,3269,5685,415,5685,416,3271,5685,415,5685,417, 5691P 11941
+3273,5685,418,5685,416,3275,5685,417,5685,418,3277,5685,417, 5691P 11942
+5685,419,3279,5685,420,5685,418,3281,5685,419,5685,420,3283, 5691P 11943
+5685,419,5685,421,3285,5685,422,5685,420,3287,5685,421,5685,422, 5691P 11944
+3289,5685,421,5685,423,3291,5685,424,5685,422,3293,5685,423, 5691P 11945
+5685,424,3295,5685,423,5685,401,3297,5685,403,5685,424,3299, 5691P 11946
+5685,425,5685,426,3301,5685,425,5685,427,3303,5685,428,5685,427, 5691P 11947
+3305,5685,426,5685,428,3307,5685,426,5685,429,3309,5685,430, 5691P 11948
+5685,428,3311,5685,429,5685,430,3313,5685,429,5685,431,3315, 5691P 11949
+5685,432,5685,430,3317,5685,431,5685,432,3319,5685,431,5685,433, 5691P 11950
+3321,5685,434,5685,432,3323,5685,433,5685,434,3325,5685,433, 5691P 11951
+5685,435,3327,5685,436,5685,434,3329,5685,435,5685,436,3331, 5691P 11952
+5685,435,5685,437,3333,5685,438,5685,436,3335,5685,437,5685,438, 5691P 11953
+3337,5685,437,5685,439,3339,5685,440,5685,438,3341,5685,439, 5691P 11954
+5685,440,3343,5685,439,5685,441,3345,5685,442,5685,440,3347, 5691P 11955
+5685,441,5685,442,3349,5685,441,5685,443,3351,5685,444,5685,442, 5691P 11956
+3353,5685,443,5685,444,3355,5685,443,5685,445,3357,5685,446, 5691P 11957
+5685,444,3359,5685,445,5685,446,3361,5685,445,5685,447,3363, 5691P 11958
+5685,448,5685,446,3365,5685,447,5685,448,3367,5685,447,5685,425, 5691P 11959
+3369,5685,427,5685,448,3371,5685,449,5685,450,3373,5685,449, 5691P 11960
+5685,451,3375,5685,452,5685,451,3377,5685,450,5685,452,3379, 5691P 11961
+5685,450,5685,453,3381,5685,454,5685,452,3383,5685,453,5685,454, 5691P 11962
+3385,5685,453,5685,455,3387,5685,456,5685,454,3389,5685,455, 5691P 11963
+5685,456,3391,5685,455,5685,457,3393,5685,458,5685,456,3395, 5691P 11964
+5685,457,5685,458,3397,5685,457,5685,459,3399,5685,460,5685,458, 5691P 11965
+3401,5685,459,5685,460,3403,5685,459,5685,461,3405,5685,462, 5691P 11966
+5685,460,3407,5685,461,5685,462,3409,5685,461,5685,463,3411, 5691P 11967
+5685,464,5685,462,3413,5685,463,5685,464,3415,5685,463,5685,465, 5691P 11968
+3417,5685,466,5685,464,3419,5685,465,5685,466,3421,5685,465, 5691P 11969
+5685,467,3423,5685,468,5685,466,3425,5685,467,5685,468,3427, 5691P 11970
+5685,467,5685,469,3429,5685,470,5685,468,3431,5685,469,5685,470, 5691P 11971
+3433,5685,469,5685,471,3435,5685,472,5685,470,3437,5685,471, 5691P 11972
+5685,472,3439,5685,471,5685,449,3441,5685,451,5685,472,3443, 5691P 11973
+5685,473,5685,474,3445,5685,473,5685,475,3447,5685,476,5685,475, 5691P 11974
+3449,5685,474,5685,476,3451,5685,474,5685,477,3453,5685,478, 5691P 11975
+5685,476,3455,5685,477,5685,478,3457,5685,477,5685,479,3459, 5691P 11976
+5685,480,5685,478,3461,5685,479,5685,480,3463,5685,479,5685,481, 5691P 11977
+3465,5685,482,5685,480,3467,5685,481,5685,482,3469,5685,481, 5691P 11978
+5685,483,3471,5685,484,5685,482,3473,5685,483,5685,484,3475, 5691P 11979
+5685,483,5685,485,3477,5685,486,5685,484,3479,5685,485,5685,486, 5691P 11980
+3481,5685,485,5685,487,3483,5685,488,5685,486,3485,5685,487, 5691P 11981
+5685,488,3487,5685,487,5685,489,3489,5685,490,5685,488,3491, 5691P 11982
+5685,489,5685,490,3493,5685,489,5685,491,3495,5685,492,5685,490, 5691P 11983
+3497,5685,491,5685,492,3499,5685,491,5685,493,3501,5685,494, 5691P 11984
+5685,492,3503,5685,493,5685,494,3505,5685,493,5685,495,3507, 5691P 11985
+5685,496,5685,494,3509,5685,495,5685,496,3511,5685,495,5685,473, 5691P 11986
+3513,5685,475,5685,496,3515,5685,497,5685,498,3517,5685,497, 5691P 11987
+5685,499,3519,5685,500,5685,499,3521,5685,498,5685,500,3523, 5691P 11988
+5685,498,5685,501,3525,5685,502,5685,500,3527,5685,501,5685,502, 5691P 11989
+3529,5685,501,5685,503,3531,5685,504,5685,502,3533,5685,503, 5691P 11990
+5685,504,3535,5685,503,5685,505,3537,5685,506,5685,504,3539, 5691P 11991
+5685,505,5685,506,3541,5685,505,5685,507,3543,5685,508,5685,506, 5691P 11992
+3545,5685,507,5685,508,3547,5685,507,5685,509,3549,5685,510, 5691P 11993
+5685,508,3551,5685,509,5685,510,3553,5685,509,5685,511,3555, 5691P 11994
+5685,512,5685,510,3557,5685,511,5685,512,3559,5685,511,5685,513, 5691P 11995
+3561,5685,514,5685,512,3563,5685,513,5685,514,3565,5685,513, 5691P 11996
+5685,515,3567,5685,516,5685,514,3569,5685,515,5685,516,3571, 5691P 11997
+5685,515,5685,517,3573,5685,518,5685,516,3575,5685,517,5685,518, 5691P 11998
+3577,5685,517,5685,519,3579,5685,520,5685,518,3581,5685,519, 5691P 11999
+5685,520,3583,5685,519,5685,497,3585,5685,499,5685,520,3587, 5691P 12000
+5685,521,5685,522,3589,5685,521,5685,523,3591,5685,524,5685,523, 5691P 12001
+3593,5685,522,5685,524,3595,5685,522,5685,525,3597,5685,526, 5691P 12002
+5685,524,3599,5685,525,5685,526,3601,5685,525,5685,527,3603, 5691P 12003
+5685,528,5685,526,3605,5685,527,5685,528,3607,5685,527,5685,529, 5691P 12004
+3609,5685,530,5685,528,3611,5685,529,5685,530,3613,5685,529, 5691P 12005
+5685,531,3615,5685,532,5685,530,3617,5685,531,5685,532,3619, 5691P 12006
+5685,531,5685,533,3621,5685,534,5685,532,3623,5685,533,5685,534, 5691P 12007
+3625,5685,533,5685,535,3627,5685,536,5685,534,3629,5685,535, 5691P 12008
+5685,536,3631,5685,535,5685,537,3633,5685,538,5685,536,3635, 5691P 12009
+5685,537,5685,538,3637,5685,537,5685,539,3639,5685,540,5685,538, 5691P 12010
+3641,5685,539,5685,540,3643,5685,539,5685,541,3645,5685,542, 5691P 12011
+5685,540,3647,5685,541,5685,542,3649,5685,541,5685,543,3651, 5691P 12012
+5685,544,5685,542,3653,5685,543,5685,544,3655,5685,543,5685,521, 5691P 12013
+3657,5685,523,5685,544,3659,5685,545,5685,546,3661,5685,545, 5691P 12014
+5685,547,3663,5685,548,5685,547,3665,5685,546,5685,548,3667, 5691P 12015
+5685,546,5685,549,3669,5685,550,5685,548,3671,5685,549,5685,550, 5691P 12016
+3673,5685,549,5685,551,3675,5685,552,5685,550,3677,5685,551, 5691P 12017
+5685,552,3679,5685,551,5685,553,3681,5685,554,5685,552,3683, 5691P 12018
+5685,553,5685,554,3685,5685,553,5685,555,3687,5685,556,5685,554, 5691P 12019
+3689,5685,555,5685,556,3691,5685,555,5685,557,3693,5685,558, 5691P 12020
+5685,556,3695,5685,557,5685,558,3697,5685,557,5685,559,3699, 5691P 12021
+5685,560,5685,558,3701,5685,559,5685,560,3703,5685,559,5685,561, 5691P 12022
+3705,5685,562,5685,560,3707,5685,561,5685,562,3709,5685,561, 5691P 12023
+5685,563,3711,5685,564,5685,562,3713,5685,563,5685,564,3715, 5691P 12024
+5685,563,5685,565,3717,5685,566,5685,564,3719,5685,565,5685,566, 5691P 12025
+3721,5685,565,5685,567,3723,5685,568,5685,566,3725,5685,567, 5691P 12026
+5685,568,3727,5685,567,5685,545,3729,5685,547,5685,568,3731, 5691P 12027
+5685,569,5685,570,3733,5685,569,5685,571,3735,5685,572,5685,571, 5691P 12028
+3737,5685,570,5685,572,3739,5685,570,5685,573,3741,5685,574, 5691P 12029
+5685,572,3743,5685,573,5685,574,3745,5685,573,5685,575,3747, 5691P 12030
+5685,576,5685,574,3749,5685,575,5685,576,3751,5685,575,5685,577, 5691P 12031
+3753,5685,578,5685,576,3755,5685,577,5685,578,3757,5685,577, 5691P 12032
+5685,579,3759,5685,580,5685,578,3761,5685,579,5685,580,3763, 5691P 12033
+5685,579,5685,581,3765,5685,582,5685,580,3767,5685,581,5685,582, 5691P 12034
+3769,5685,581,5685,583,3771,5685,584,5685,582,3773,5685,583, 5691P 12035
+5685,584,3775,5685,583,5685,585,3777,5685,586,5685,584,3779, 5691P 12036
+5685,585,5685,586,3781,5685,585,5685,587,3783,5685,588,5685,586, 5691P 12037
+3785,5685,587,5685,588,3787,5685,587,5685,589,3789,5685,590, 5691P 12038
+5685,588,3791,5685,589,5685,590,3793,5685,589,5685,591,3795, 5691P 12039
+5685,592,5685,590,3797,5685,591,5685,592,3799,5685,591,5685,569, 5691P 12040
+3801,5685,571,5685,592,3803,5685,593,5685,594,3805,5685,594, 5691P 12041
+5685,595,3807,5685,596,5685,595,3809,5685,593,5685,596,3811, 5691P 12042
+5685,597,5685,593,3813,5685,598,5685,596,3815,5685,597,5685,598, 5691P 12043
+3817,5685,599,5685,597,3819,5685,600,5685,598,3821,5685,599, 5691P 12044
+5685,600,3823,5685,601,5685,599,3825,5685,602,5685,600,3827, 5691P 12045
+5685,601,5685,602,3829,5685,603,5685,601,3831,5685,604,5685,602, 5691P 12046
+3833,5685,603,5685,604,3835,5685,605,5685,603,3837,5685,606, 5691P 12047
+5685,604,3839,5685,605,5685,606,3841,5685,607,5685,605,3843, 5691P 12048
+5685,608,5685,606,3845,5685,607,5685,608,3847,5685,609,5685,607, 5691P 12049
+3849,5685,610,5685,608,3851,5685,609,5685,610,3853,5685,594, 5691P 12050
+5685,609,3855,5685,595,5685,610; 5691P 12051
+504,195,3857,5687,1,5687,2,3859,5687,1,5687,3,3861,5687,3,5687, 5693P 12052
+4,3863,5687,2,5687,4,3865,5687,5,5687,1,3867,5687,5,5687,6,3869, 5693P 12053
+5687,6,5687,3,3871,5687,7,5687,5,3873,5687,7,5687,8,3875,5687,8, 5693P 12054
+5687,6,3877,5687,9,5687,7,3879,5687,9,5687,10,3881,5687,10,5687, 5693P 12055
+8,3883,5687,11,5687,9,3885,5687,11,5687,12,3887,5687,12,5687,10, 5693P 12056
+3889,5687,2,5687,11,3891,5687,4,5687,12,3893,5687,13,5687,14, 5693P 12057
+3895,5687,13,5687,15,3897,5687,16,5687,15,3899,5687,14,5687,16, 5693P 12058
+3901,5687,14,5687,13,3903,5687,15,5687,16,3905,5687,17,5687,18, 5693P 12059
+3907,5687,17,5687,19,3909,5687,20,5687,19,3911,5687,18,5687,20, 5693P 12060
+3913,5687,18,5687,17,3915,5687,19,5687,20,3917,5687,21,5687,22, 5693P 12061
+3919,5687,23,5687,21,3921,5687,23,5687,24,3923,5687,22,5687,24, 5693P 12062
+3925,5687,25,5687,26,3927,5687,26,5687,27,3929,5687,27,5687,28, 5693P 12063
+3931,5687,28,5687,25,3933,5687,29,5687,30,3935,5687,30,5687,31, 5693P 12064
+3937,5687,32,5687,31,3939,5687,32,5687,29,3941,5687,33,5687,34, 5693P 12065
+3943,5687,35,5687,34,3945,5687,35,5687,36,3947,5687,33,5687,36, 5693P 12066
+3949,5687,37,5687,29,3951,5687,21,5687,32,3953,5687,38,5687,22, 5693P 12067
+3955,5687,37,5687,38,3957,5687,39,5687,25,3959,5687,28,5687,40, 5693P 12068
+3961,5687,39,5687,40,3963,5687,34,5687,41,3965,5687,41,5687,42, 5693P 12069
+3967,5687,42,5687,35,3969,5687,43,5687,44,3971,5687,44,5687,45, 5693P 12070
+3973,5687,45,5687,46,3975,5687,46,5687,43,3977,5687,47,5687,48, 5693P 12071
+3979,5687,49,5687,48,3981,5687,49,5687,50,3983,5687,47,5687,50, 5693P 12072
+3985,5687,44,5687,51,3987,5687,52,5687,51,3989,5687,52,5687,45, 5693P 12073
+3991,5687,53,5687,54,3993,5687,53,5687,55,3995,5687,56,5687,55, 5693P 12074
+3997,5687,54,5687,56,3999,5687,54,5687,53,4001,5687,55,5687,56, 5693P 12075
+4003,5687,57,5687,58,4005,5687,57,5687,59,4007,5687,60,5687,59, 5693P 12076
+4009,5687,58,5687,60,4011,5687,58,5687,57,4013,5687,59,5687,60, 5693P 12077
+4015,5687,61,5687,62,4017,5687,61,5687,63,4019,5687,64,5687,63, 5693P 12078
+4021,5687,62,5687,64,4023,5687,62,5687,61,4025,5687,63,5687,64, 5693P 12079
+4027,5687,65,5687,66,4029,5687,65,5687,67,4031,5687,68,5687,67, 5693P 12080
+4033,5687,66,5687,68,4035,5687,66,5687,65,4037,5687,67,5687,68, 5693P 12081
+4039,5687,46,5687,69,4041,5687,46,5687,70,4043,5687,71,5687,70, 5693P 12082
+4045,5687,69,5687,71,4047,5687,52,5687,72,4049,5687,72,5687,73, 5693P 12083
+4051,5687,74,5687,73,4053,5687,70,5687,74,4055,5687,75,5687,76, 5693P 12084
+4057,5687,77,5687,75,4059,5687,43,5687,77,4061,5687,78,5687,69, 5693P 12085
+4063,5687,78,5687,79,4065,5687,79,5687,80,4067,5687,80,5687,81, 5693P 12086
+4069,5687,82,5687,81,4071,5687,82,5687,42,4073,5687,83,5687,41, 5693P 12087
+4075,5687,24,5687,83,4077,5687,31,5687,23,4079,5687,27,5687,30, 5693P 12088
+4081,5687,76,5687,26,4083,5687,82,5687,84,4085,5687,85,5687,84, 5693P 12089
+4087,5687,42,5687,85,4089,5687,86,5687,82,4091,5687,87,5687,86, 5693P 12090
+4093,5687,87,5687,88,4095,5687,88,5687,89,4097,5687,90,5687,89, 5693P 12091
+4099,5687,84,5687,90,4101,5687,89,5687,91,4103,5687,92,5687,88, 5693P 12092
+4105,5687,92,5687,91,4107,5687,73,5687,93,4109,5687,94,5687,72, 5693P 12093
+4111,5687,94,5687,93,4113,5687,87,5687,95,4115,5687,94,5687,95, 5693P 12094
+4117,5687,96,5687,51,4119,5687,97,5687,96,4121,5687,97,5687,33, 5693P 12095
+4123,5687,92,5687,36,4125,5687,98,5687,85,4127,5687,91,5687,98, 5693P 12096
+4129,5687,99,5687,71,4131,5687,93,5687,99,4133,5687,100,5687,95, 5693P 12097
+4135,5687,69,5687,100,4137,5687,81,5687,101,4139,5687,101,5687, 5693P 12098
+86,4141,5687,101,5687,102,4143,5687,102,5687,103,4145,5687,103, 5693P 12099
+5687,104,4147,5687,100,5687,104,4149,5687,104,5687,78,4151,5687, 5693P 12100
+79,5687,103,4153,5687,80,5687,102,4155,5687,76,5687,47,4157, 5693P 12101
+5687,50,5687,75,4159,5687,105,5687,106,4161,5687,105,5687,38, 5693P 12102
+4163,5687,106,5687,83,4165,5687,107,5687,105,4167,5687,107,5687, 5693P 12103
+37,4169,5687,108,5687,107,4171,5687,108,5687,40,4173,5687,109, 5693P 12104
+5687,108,4175,5687,109,5687,39,4177,5687,110,5687,109,4179,5687, 5693P 12105
+110,5687,48,4181,5687,111,5687,110,4183,5687,111,5687,49,4185, 5693P 12106
+5687,96,5687,111,4187,5687,106,5687,97,4189,5687,112,5687,113, 5693P 12107
+4191,5687,113,5687,114,4193,5687,114,5687,115,4195,5687,115, 5693P 12108
+5687,116,4197,5687,116,5687,117,4199,5687,117,5687,118,4201, 5693P 12109
+5687,118,5687,119,4203,5687,119,5687,120,4205,5687,120,5687,112, 5693P 12110
+4207,5687,113,5687,121,4209,5687,122,5687,121,4211,5687,114, 5693P 12111
+5687,122,4213,5687,123,5687,122,4215,5687,115,5687,123,4217, 5693P 12112
+5687,124,5687,123,4219,5687,116,5687,124,4221,5687,125,5687,124, 5693P 12113
+4223,5687,117,5687,125,4225,5687,126,5687,125,4227,5687,118, 5693P 12114
+5687,126,4229,5687,127,5687,126,4231,5687,119,5687,127,4233, 5693P 12115
+5687,128,5687,127,4235,5687,120,5687,128,4237,5687,90,5687,99, 5693P 12116
+4239,5687,129,5687,98,4241,5687,112,5687,129,4243,5687,74,5687, 5693P 12117
+128,4245,5687,121,5687,129; 5693P 12118
+504,258,4247,5689,1,5689,2,4249,5689,2,5689,3,4251,5689,3,5689, 5695P 12119
+4,4253,5689,4,5689,1,4255,5689,2,5689,5,4257,5689,6,5689,5,4259, 5695P 12120
+5689,6,5689,7,4261,5689,8,5689,7,4263,5689,8,5689,9,4265,5689,9, 5695P 12121
+5689,10,4267,5689,10,5689,3,4269,5689,11,5689,12,4271,5689,13, 5695P 12122
+5689,12,4273,5689,13,5689,14,4275,5689,15,5689,14,4277,5689,16, 5695P 12123
+5689,15,4279,5689,16,5689,17,4281,5689,17,5689,18,4283,5689,19, 5695P 12124
+5689,18,4285,5689,19,5689,20,4287,5689,6,5689,20,4289,5689,11, 5695P 12125
+5689,5,4291,5689,21,5689,22,4293,5689,23,5689,21,4295,5689,23, 5695P 12126
+5689,19,4297,5689,24,5689,18,4299,5689,25,5689,24,4301,5689,22, 5695P 12127
+5689,25,4303,5689,26,5689,27,4305,5689,28,5689,26,4307,5689,28, 5695P 12128
+5689,11,4309,5689,27,5689,1,4311,5689,24,5689,29,4313,5689,29, 5695P 12129
+5689,30,4315,5689,30,5689,25,4317,5689,31,5689,23,4319,5689,32, 5695P 12130
+5689,21,4321,5689,33,5689,32,4323,5689,34,5689,33,4325,5689,34, 5695P 12131
+5689,35,4327,5689,36,5689,35,4329,5689,36,5689,37,4331,5689,37, 5695P 12132
+5689,28,4333,5689,38,5689,26,4335,5689,38,5689,31,4337,5689,22, 5695P 12133
+5689,39,4339,5689,39,5689,38,4341,5689,27,5689,40,4343,5689,40, 5695P 12134
+5689,36,4345,5689,35,5689,41,4347,5689,41,5689,42,4349,5689,42, 5695P 12135
+5689,43,4351,5689,43,5689,44,4353,5689,44,5689,45,4355,5689,45, 5695P 12136
+5689,46,4357,5689,46,5689,47,4359,5689,47,5689,32,4361,5689,48, 5695P 12137
+5689,49,4363,5689,49,5689,48,4365,5689,50,5689,51,4367,5689,51, 5695P 12138
+5689,50,4369,5689,52,5689,53,4371,5689,53,5689,52,4373,5689,54, 5695P 12139
+5689,55,4375,5689,55,5689,54,4377,5689,56,5689,57,4379,5689,57, 5695P 12140
+5689,56,4381,5689,58,5689,59,4383,5689,59,5689,58,4385,5689,60, 5695P 12141
+5689,61,4387,5689,60,5689,62,4389,5689,62,5689,63,4391,5689,61, 5695P 12142
+5689,63,4393,5689,64,5689,60,4395,5689,64,5689,65,4397,5689,65, 5695P 12143
+5689,62,4399,5689,66,5689,64,4401,5689,66,5689,67,4403,5689,67, 5695P 12144
+5689,65,4405,5689,68,5689,66,4407,5689,68,5689,69,4409,5689,69, 5695P 12145
+5689,67,4411,5689,70,5689,68,4413,5689,70,5689,71,4415,5689,71, 5695P 12146
+5689,69,4417,5689,72,5689,70,4419,5689,72,5689,73,4421,5689,73, 5695P 12147
+5689,71,4423,5689,74,5689,72,4425,5689,74,5689,75,4427,5689,75, 5695P 12148
+5689,73,4429,5689,76,5689,74,4431,5689,76,5689,77,4433,5689,77, 5695P 12149
+5689,75,4435,5689,61,5689,76,4437,5689,63,5689,77,4439,5689,78, 5695P 12150
+5689,79,4441,5689,78,5689,80,4443,5689,80,5689,81,4445,5689,79, 5695P 12151
+5689,81,4447,5689,82,5689,78,4449,5689,82,5689,83,4451,5689,83, 5695P 12152
+5689,80,4453,5689,84,5689,82,4455,5689,84,5689,85,4457,5689,85, 5695P 12153
+5689,83,4459,5689,86,5689,84,4461,5689,86,5689,87,4463,5689,87, 5695P 12154
+5689,85,4465,5689,88,5689,86,4467,5689,88,5689,89,4469,5689,89, 5695P 12155
+5689,87,4471,5689,90,5689,88,4473,5689,90,5689,91,4475,5689,91, 5695P 12156
+5689,89,4477,5689,92,5689,90,4479,5689,92,5689,93,4481,5689,93, 5695P 12157
+5689,91,4483,5689,94,5689,92,4485,5689,94,5689,95,4487,5689,95, 5695P 12158
+5689,93,4489,5689,96,5689,94,4491,5689,96,5689,97,4493,5689,97, 5695P 12159
+5689,95,4495,5689,98,5689,96,4497,5689,98,5689,99,4499,5689,99, 5695P 12160
+5689,97,4501,5689,100,5689,98,4503,5689,100,5689,101,4505,5689, 5695P 12161
+101,5689,99,4507,5689,102,5689,100,4509,5689,102,5689,103,4511, 5695P 12162
+5689,103,5689,101,4513,5689,104,5689,102,4515,5689,104,5689,105, 5695P 12163
+4517,5689,105,5689,103,4519,5689,106,5689,104,4521,5689,106, 5695P 12164
+5689,107,4523,5689,107,5689,105,4525,5689,108,5689,106,4527, 5695P 12165
+5689,108,5689,109,4529,5689,109,5689,107,4531,5689,110,5689,108, 5695P 12166
+4533,5689,110,5689,111,4535,5689,111,5689,109,4537,5689,112, 5695P 12167
+5689,110,4539,5689,112,5689,113,4541,5689,113,5689,111,4543, 5695P 12168
+5689,79,5689,112,4545,5689,81,5689,113,4547,5689,114,5689,115, 5695P 12169
+4549,5689,116,5689,114,4551,5689,117,5689,116,4553,5689,118, 5695P 12170
+5689,117,4555,5689,118,5689,1,4557,5689,4,5689,119,4559,5689, 5695P 12171
+119,5689,120,4561,5689,120,5689,121,4563,5689,122,5689,121,4565, 5695P 12172
+5689,122,5689,25,4567,5689,123,5689,30,4569,5689,124,5689,123, 5695P 12173
+4571,5689,125,5689,124,4573,5689,126,5689,125,4575,5689,127, 5695P 12174
+5689,126,4577,5689,128,5689,127,4579,5689,129,5689,128,4581, 5695P 12175
+5689,115,5689,129,4583,5689,130,5689,131,4585,5689,131,5689,130, 5695P 12176
+4587,5689,132,5689,133,4589,5689,133,5689,132,4591,5689,134, 5695P 12177
+5689,135,4593,5689,135,5689,134,4595,5689,136,5689,137,4597, 5695P 12178
+5689,137,5689,136,4599,5689,138,5689,139,4601,5689,139,5689,138, 5695P 12179
+4603,5689,140,5689,141,4605,5689,141,5689,140,4607,5689,141, 5695P 12180
+5689,58,4609,5689,140,5689,59,4611,5689,139,5689,56,4613,5689, 5695P 12181
+138,5689,57,4615,5689,142,5689,143,4617,5689,125,5689,142,4619, 5695P 12182
+5689,143,5689,124,4621,5689,144,5689,129,4623,5689,128,5689,145, 5695P 12183
+4625,5689,145,5689,144,4627,5689,146,5689,127,4629,5689,147, 5695P 12184
+5689,126,4631,5689,147,5689,146,4633,5689,17,5689,29,4635,5689, 5695P 12185
+148,5689,146,4637,5689,142,5689,147,4639,5689,149,5689,143,4641, 5695P 12186
+5689,148,5689,149,4643,5689,150,5689,144,4645,5689,145,5689,151, 5695P 12187
+4647,5689,150,5689,151,4649,5689,117,5689,152,4651,5689,152, 5695P 12188
+5689,153,4653,5689,153,5689,118,4655,5689,154,5689,155,4657, 5695P 12189
+5689,156,5689,155,4659,5689,156,5689,157,4661,5689,154,5689,157, 5695P 12190
+4663,5689,152,5689,14,4665,5689,13,5689,153,4667,5689,137,5689, 5695P 12191
+54,4669,5689,136,5689,55,4671,5689,135,5689,52,4673,5689,134, 5695P 12192
+5689,53,4675,5689,133,5689,50,4677,5689,132,5689,51,4679,5689, 5695P 12193
+131,5689,48,4681,5689,130,5689,49,4683,5689,118,5689,40,4685, 5695P 12194
+5689,12,5689,37,4687,5689,122,5689,39,4689,5689,7,5689,122,4691, 5695P 12195
+5689,20,5689,31,4693,5689,121,5689,8,4695,5689,119,5689,10,4697, 5695P 12196
+5689,120,5689,9,4699,5689,115,5689,154,4701,5689,157,5689,114, 5695P 12197
+4703,5689,158,5689,159,4705,5689,158,5689,149,4707,5689,159, 5695P 12198
+5689,123,4709,5689,160,5689,158,4711,5689,160,5689,148,4713, 5695P 12199
+5689,161,5689,160,4715,5689,161,5689,151,4717,5689,162,5689,161, 5695P 12200
+4719,5689,162,5689,150,4721,5689,163,5689,162,4723,5689,163, 5695P 12201
+5689,155,4725,5689,164,5689,163,4727,5689,164,5689,156,4729, 5695P 12202
+5689,15,5689,164,4731,5689,159,5689,16,4733,5689,33,5689,165, 5695P 12203
+4735,5689,165,5689,166,4737,5689,166,5689,167,4739,5689,167, 5695P 12204
+5689,168,4741,5689,168,5689,169,4743,5689,169,5689,170,4745, 5695P 12205
+5689,170,5689,171,4747,5689,171,5689,34,4749,5689,165,5689,47, 5695P 12206
+4751,5689,166,5689,46,4753,5689,167,5689,45,4755,5689,168,5689, 5695P 12207
+44,4757,5689,169,5689,43,4759,5689,170,5689,42,4761,5689,171, 5695P 12208
+5689,41; 5695P 12209
+406,1,5Hplate; 5697P 12210
+406,1,4Hleft; 5699P 12211
+406,1,5Hright; 5701P 12212
+314,96.078431372549,96.078431372549,96.4705882352941,25HAluminum 5703P 12213
+ - Brushed Linear; 5703P 12214
+314,85.8823529411765,74.5098039215686,60.3921568627451,18H3D Oak 5705P 12215
+ - Semigloss; 5705P 12216
+314,62.7450980392157,62.7450980392157,62.7450980392157,13HSteel 5707P 12217
+- Satin; 5707P 12218
+S 1G 3D 5708P 12218 T 1
diff --git a/keyboards/lets_split/imgs/letssplitv2.svg b/keyboards/lets_split/imgs/letssplitv2.svg
new file mode 100644
index 000000000..d33706dfc
--- /dev/null
+++ b/keyboards/lets_split/imgs/letssplitv2.svg
@@ -0,0 +1,4077 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="541.41699pt"
+ height="541.41602pt"
+ viewBox="0 0 541.417 541.416"
+ xml:space="preserve"
+ id="svg2242"
+ sodipodi:version="0.32"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="letssplittest.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.1"
+ style="display:inline"><metadata
+ id="metadata2286"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
+ id="defs2284"><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective37556" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective16301" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ id="perspective12409" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective9337" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective8562" /><inkscape:perspective
+ id="perspective3083"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective23419"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective27913"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective27913-5" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ id="perspective23419-6" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective3083-3" /><inkscape:perspective
+ id="perspective8562-2"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective9337-7"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective12409-1"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective16301-9"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective37556-9"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective5074"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective5377"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective5377-5"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective6033"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective2989"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective3039"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective51596"
+ inkscape:persp3d-origin="1417.3237 : 465.35417 : 1"
+ inkscape:vp_z="2834.6475 : 698.03125 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 698.03125 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective51446"
+ inkscape:persp3d-origin="270.70999 : 180.47333 : 1"
+ inkscape:vp_z="541.41998 : 270.70999 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 270.70999 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective37556-1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective16301-3"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective12409-3"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective9337-3"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective8562-08"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective3083-9" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ id="perspective23419-4" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective27913-9" /><inkscape:perspective
+ id="perspective27913-5-1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective23419-6-7"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective3083-3-75"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective8562-2-1" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective9337-7-1" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ id="perspective12409-1-4" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective16301-9-00" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective37556-9-7" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 698.03125 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1396.0651 : 698.03125 : 1"
+ inkscape:persp3d-origin="698.03253 : 465.35417 : 1"
+ id="perspective46224" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 270.70999 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="541.41998 : 270.70999 : 1"
+ inkscape:persp3d-origin="270.70999 : 180.47333 : 1"
+ id="perspective56159" /><inkscape:perspective
+ id="perspective37556-9-4"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective16301-9-0"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective12409-1-3"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective9337-7-4"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective8562-2-3"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective3083-3-7" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ id="perspective23419-6-5" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective27913-5-6" /><inkscape:perspective
+ id="perspective27913-0"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective23419-8"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective3083-7"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective8562-6" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective9337-5" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ id="perspective12409-0" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective16301-0" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective37556-7" /><inkscape:perspective
+ id="perspective37556-9-49"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective16301-9-2"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective12409-1-9"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective9337-7-40"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective8562-2-0"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective3083-3-6" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ id="perspective23419-6-3" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective27913-5-8" /><inkscape:perspective
+ id="perspective27913-3"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective23419-0"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ id="perspective3083-30"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective8562-0" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective9337-1" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 270.7085 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="541.41699 : 270.7085 : 1"
+ inkscape:persp3d-origin="270.7085 : 180.47233 : 1"
+ id="perspective12409-00" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective16301-7" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 338.38501 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="676.77124 : 338.38501 : 1"
+ inkscape:persp3d-origin="338.38562 : 225.59001 : 1"
+ id="perspective37556-3" /><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective3083-79" /><marker
+ orient="auto"
+ id="DistanceX"
+ style="overflow:visible"
+ refX="0.0"
+ refY="0.0"><path
+ id="path9"
+ d="M 3,-3 L -3,3 M 0,-5 L 0,5"
+ style="stroke:#000000; stroke-width:0.5" /></marker><pattern
+ id="Hatch"
+ x="0"
+ y="0"
+ patternUnits="userSpaceOnUse"
+ width="8"
+ height="8"><path
+ id="path12"
+ d="M8 4 l-4,4"
+ stroke-width="0.25"
+ stroke="#000000"
+ linecap="square" /><path
+ id="path14"
+ d="M6 2 l-4,4"
+ stroke-width="0.25"
+ stroke="#000000"
+ linecap="square" /><path
+ id="path16"
+ d="M4 0 l-4,4"
+ stroke-width="0.25"
+ stroke="#000000"
+ linecap="square" /></pattern><symbol
+ id="*Model_Space" /><symbol
+ id="*Paper_Space" /><symbol
+ id="*Paper_Space0" /><marker
+ orient="auto"
+ id="DistanceX-8"
+ style="overflow:visible"
+ refX="0.0"
+ refY="0.0"><path
+ id="path9-7"
+ d="M 3,-3 L -3,3 M 0,-5 L 0,5"
+ style="stroke:#000000; stroke-width:0.5" /></marker><pattern
+ id="Hatch-9"
+ x="0"
+ y="0"
+ patternUnits="userSpaceOnUse"
+ width="8"
+ height="8"><path
+ id="path12-5"
+ d="M8 4 l-4,4"
+ stroke-width="0.25"
+ stroke="#000000"
+ linecap="square" /><path
+ id="path14-5"
+ d="M6 2 l-4,4"
+ stroke-width="0.25"
+ stroke="#000000"
+ linecap="square" /><path
+ id="path16-2"
+ d="M4 0 l-4,4"
+ stroke-width="0.25"
+ stroke="#000000"
+ linecap="square" /></pattern><symbol
+ id="*Model_Space-0" /><symbol
+ id="*Paper_Space-5" /><symbol
+ id="*Paper_Space0-0" /></defs><sodipodi:namedview
+ inkscape:window-height="1017"
+ inkscape:window-width="1920"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:zoom="1.1428571"
+ inkscape:cx="368"
+ inkscape:cy="323"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:current-layer="g5746-9"
+ showgrid="false"
+ inkscape:window-maximized="1"
+ inkscape:document-units="mm"
+ units="mm" /><g
+ inkscape:groupmode="layer"
+ id="layer7"
+ inkscape:label="Design Template"
+ style="display:inline"
+ sodipodi:insensitive="true"><g
+ id="layer7-8"
+ inkscape:label="Design Template"
+ transform="translate(0.7799525,0.1277278)" /><g
+ id="layer6"
+ inkscape:label="Design Template"
+ transform="translate(0.5338379,0.419927)" /><g
+ id="Layer_x0020_1-6"
+ style="fill:#f6921e;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4"
+ transform="translate(681.42836,-160.06815)"><g
+ id="g4698-5"
+ transform="translate(-46.145191,-43.270487)" /></g><rect
+ id="rect21823"
+ height="541.41736"
+ width="541.41736"
+ x="0.89512694"
+ y="0.57997072"
+ style="fill:#f6921e" /><rect
+ id="rect21825"
+ height="513.0722"
+ width="513.07129"
+ y="14.753002"
+ x="15.068135"
+ style="fill:#ffffff" /><g
+ id="layer5"
+ inkscape:label="Your Design"
+ transform="translate(681.42836,-160.06815)" /><g
+ id="layer9-1"
+ inkscape:label="Your Design"
+ transform="translate(0.7799525,0.1277278)" /><g
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.19999981px;line-height:164.99999762%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1"
+ id="text4741"><path
+ d="m 570.64175,344.07065 1.80469,0 0,-6.22891 -1.96329,0.39375 0,-1.00625 1.95235,-0.39375 1.10469,0 0,7.23516 1.80468,0 0,0.92969 -4.70312,0 0,-0.92969"
+ id="path3154"
+ inkscape:connector-curvature="0" /><path
+ d="m 577.28081,336.5019 0.875,0 c 0.54687,0.86042 0.95521,1.70261 1.225,2.52656 0.27343,0.82396 0.41015,1.64245 0.41016,2.45547 -10e-6,0.81667 -0.13673,1.6388 -0.41016,2.46641 -0.26979,0.8276 -0.67813,1.66979 -1.225,2.52656 l -0.875,0 c 0.48489,-0.8349 0.84583,-1.66432 1.08281,-2.48828 0.24063,-0.82761 0.36094,-1.6625 0.36094,-2.50469 0,-0.84218 -0.12031,-1.67343 -0.36094,-2.49375 -0.23698,-0.82031 -0.59792,-1.64973 -1.08281,-2.48828"
+ id="path3156"
+ inkscape:connector-curvature="0" /><path
+ d="m 586.52847,337.7433 0,6.34922 1.33437,0 c 1.12656,0 1.95052,-0.2552 2.47188,-0.76562 0.52499,-0.51042 0.78749,-1.31614 0.7875,-2.41719 -10e-6,-1.09374 -0.26251,-1.894 -0.7875,-2.40078 -0.52136,-0.51041 -1.34532,-0.76562 -2.47188,-0.76563 l -1.33437,0 m -1.10469,-0.90781 2.26953,0 c 1.58229,1e-5 2.74348,0.32996 3.48359,0.98985 0.7401,0.65625 1.11015,1.68438 1.11016,3.08437 -10e-6,1.4073 -0.37188,2.44089 -1.11562,3.10078 -0.74376,0.6599 -1.90313,0.98985 -3.47813,0.98985 l -2.26953,0 0,-8.16485"
+ id="path3158"
+ inkscape:connector-curvature="0" /><path
+ d="m 599.23784,341.68627 0,0.49219 -4.62656,0 c 0.0438,0.69271 0.25156,1.22136 0.62344,1.58594 0.37551,0.36094 0.89687,0.54141 1.56406,0.5414 0.38645,1e-5 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72552,-0.23698 1.08281,-0.42657 l 0,0.95157 c -0.36094,0.15312 -0.73099,0.26979 -1.11015,0.35 -0.37917,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97708,0 -1.75182,-0.28438 -2.32422,-0.85313 -0.56875,-0.56874 -0.85312,-1.33801 -0.85312,-2.30781 0,-1.0026 0.26979,-1.79739 0.80937,-2.38437 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82396,10e-6 1.47474,0.26615 1.95235,0.79844 0.48124,0.52865 0.72186,1.2487 0.72187,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16224,-0.98984 -0.46484,-1.31797 -0.29897,-0.32812 -0.69636,-0.49218 -1.19219,-0.49219 -0.56146,10e-6 -1.01172,0.1586 -1.35078,0.47579 -0.33542,0.31719 -0.52865,0.7638 -0.57969,1.33984 l 3.5875,-0.005"
+ id="path3160"
+ inkscape:connector-curvature="0" /><path
+ d="m 600.8894,336.49096 1.00625,0 0,8.50938 -1.00625,0 0,-8.50938"
+ id="path3162"
+ inkscape:connector-curvature="0" /><path
+ d="m 609.23472,341.68627 0,0.49219 -4.62657,0 c 0.0437,0.69271 0.25156,1.22136 0.62344,1.58594 0.37552,0.36094 0.89687,0.54141 1.56406,0.5414 0.38646,1e-5 0.76016,-0.0474 1.1211,-0.14218 0.36458,-0.0948 0.72551,-0.23698 1.08281,-0.42657 l 0,0.95157 c -0.36094,0.15312 -0.73099,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.7638,0.12031 -1.1539,0.12031 -0.97709,0 -1.75183,-0.28438 -2.32422,-0.85313 -0.56875,-0.56874 -0.85313,-1.33801 -0.85313,-2.30781 0,-1.0026 0.2698,-1.79739 0.80938,-2.38437 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82395,10e-6 1.47473,0.26615 1.95234,0.79844 0.48125,0.52865 0.72187,1.2487 0.72188,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16225,-0.98984 -0.46485,-1.31797 -0.29896,-0.32812 -0.69636,-0.49218 -1.19218,-0.49219 -0.56147,10e-6 -1.01173,0.1586 -1.35079,0.47579 -0.33541,0.31719 -0.52864,0.7638 -0.57968,1.33984 l 3.5875,-0.005"
+ id="path3164"
+ inkscape:connector-curvature="0" /><path
+ d="m 611.88159,337.13627 0,1.73907 2.07266,0 0,0.78203 -2.07266,0 0,3.325 c 0,0.49948 0.0675,0.82031 0.20235,0.9625 0.13853,0.14219 0.41744,0.21328 0.83671,0.21328 l 1.0336,0 0,0.84219 -1.0336,0 c -0.77656,0 -1.3125,-0.14401 -1.60781,-0.43204 -0.29531,-0.29166 -0.44297,-0.82031 -0.44297,-1.58593 l 0,-3.325 -0.73828,0 0,-0.78203 0.73828,0 0,-1.73907 1.01172,0"
+ id="path3166"
+ inkscape:connector-curvature="0" /><path
+ d="m 620.52222,341.68627 0,0.49219 -4.62657,0 c 0.0437,0.69271 0.25156,1.22136 0.62344,1.58594 0.37552,0.36094 0.89687,0.54141 1.56406,0.5414 0.38646,1e-5 0.76015,-0.0474 1.1211,-0.14218 0.36457,-0.0948 0.72551,-0.23698 1.08281,-0.42657 l 0,0.95157 c -0.36094,0.15312 -0.731,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.7638,0.12031 -1.1539,0.12031 -0.97709,0 -1.75183,-0.28438 -2.32422,-0.85313 -0.56875,-0.56874 -0.85313,-1.33801 -0.85313,-2.30781 0,-1.0026 0.26979,-1.79739 0.80938,-2.38437 0.54322,-0.59062 1.27421,-0.88593 2.19297,-0.88594 0.82395,10e-6 1.47473,0.26615 1.95234,0.79844 0.48124,0.52865 0.72187,1.2487 0.72188,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16225,-0.98984 -0.46485,-1.31797 -0.29896,-0.32812 -0.69636,-0.49218 -1.19219,-0.49219 -0.56146,10e-6 -1.01172,0.1586 -1.35078,0.47579 -0.33542,0.31719 -0.52864,0.7638 -0.57968,1.33984 l 3.5875,-0.005"
+ id="path3168"
+ inkscape:connector-curvature="0" /><path
+ d="m 626.73471,337.13627 0,1.73907 2.07266,0 0,0.78203 -2.07266,0 0,3.325 c 0,0.49948 0.0675,0.82031 0.20235,0.9625 0.13854,0.14219 0.41744,0.21328 0.83672,0.21328 l 1.03359,0 0,0.84219 -1.03359,0 c -0.77657,0 -1.3125,-0.14401 -1.60782,-0.43204 -0.29531,-0.29166 -0.44297,-0.82031 -0.44296,-1.58593 l 0,-3.325 -0.73829,0 0,-0.78203 0.73829,0 0,-1.73907 1.01171,0"
+ id="path3170"
+ inkscape:connector-curvature="0" /><path
+ d="m 635.22769,341.30346 0,3.69688 -1.00625,0 0,-3.66407 c -10e-6,-0.57968 -0.11303,-1.01353 -0.33907,-1.30156 -0.22604,-0.28801 -0.56511,-0.43203 -1.01718,-0.43203 -0.54324,0 -0.97162,0.17318 -1.28516,0.51953 -0.31354,0.34636 -0.47032,0.81849 -0.47031,1.41641 l 0,3.46172 -1.01172,0 0,-8.50938 1.01172,0 0,3.33594 c 0.24062,-0.36823 0.52317,-0.64349 0.84765,-0.82578 0.32812,-0.18229 0.70547,-0.27343 1.13203,-0.27344 0.70365,10e-6 1.23594,0.21876 1.59688,0.65625 0.36093,0.43386 0.5414,1.0737 0.54141,1.91953"
+ id="path3172"
+ inkscape:connector-curvature="0" /><path
+ d="m 642.48472,341.68627 0,0.49219 -4.62657,0 c 0.0437,0.69271 0.25156,1.22136 0.62344,1.58594 0.37552,0.36094 0.89687,0.54141 1.56406,0.5414 0.38646,1e-5 0.76016,-0.0474 1.1211,-0.14218 0.36458,-0.0948 0.72551,-0.23698 1.08281,-0.42657 l 0,0.95157 c -0.36094,0.15312 -0.73099,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.7638,0.12031 -1.1539,0.12031 -0.97709,0 -1.75183,-0.28438 -2.32422,-0.85313 -0.56875,-0.56874 -0.85313,-1.33801 -0.85313,-2.30781 0,-1.0026 0.2698,-1.79739 0.80938,-2.38437 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82395,10e-6 1.47473,0.26615 1.95234,0.79844 0.48125,0.52865 0.72187,1.2487 0.72188,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16225,-0.98984 -0.46485,-1.31797 -0.29896,-0.32812 -0.69636,-0.49218 -1.19218,-0.49219 -0.56147,10e-6 -1.01173,0.1586 -1.35079,0.47579 -0.33541,0.31719 -0.52864,0.7638 -0.57968,1.33984 l 3.5875,-0.005"
+ id="path3174"
+ inkscape:connector-curvature="0" /><path
+ d="m 652.94097,341.68627 0,0.49219 -4.62656,0 c 0.0438,0.69271 0.25156,1.22136 0.62343,1.58594 0.37552,0.36094 0.89688,0.54141 1.56407,0.5414 0.38645,1e-5 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72552,-0.23698 1.08281,-0.42657 l 0,0.95157 c -0.36094,0.15312 -0.73099,0.26979 -1.11015,0.35 -0.37917,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97709,0 -1.75182,-0.28438 -2.32422,-0.85313 -0.56875,-0.56874 -0.85312,-1.33801 -0.85312,-2.30781 0,-1.0026 0.26979,-1.79739 0.80937,-2.38437 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82395,10e-6 1.47474,0.26615 1.95234,0.79844 0.48125,0.52865 0.72187,1.2487 0.72188,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16224,-0.98984 -0.46484,-1.31797 -0.29897,-0.32812 -0.69636,-0.49218 -1.19219,-0.49219 -0.56146,10e-6 -1.01172,0.1586 -1.35078,0.47579 -0.33542,0.31719 -0.52865,0.7638 -0.57969,1.33984 l 3.5875,-0.005"
+ id="path3176"
+ inkscape:connector-curvature="0" /><path
+ d="m 659.49799,338.87534 -2.21484,2.98046 2.32969,3.14454 -1.18672,0 -1.78281,-2.40625 -1.78282,2.40625 -1.18671,0 2.3789,-3.20469 -2.17656,-2.92031 1.18672,0 1.62422,2.18203 1.62422,-2.18203 1.18671,0"
+ id="path3178"
+ inkscape:connector-curvature="0" /><path
+ d="m 663.82925,341.92143 c -0.81302,0 -1.3763,0.093 -1.68984,0.27891 -0.31355,0.18594 -0.47032,0.50312 -0.47032,0.95156 0,0.35729 0.11667,0.64167 0.35,0.85312 0.23698,0.20782 0.55781,0.31172 0.9625,0.31172 0.55781,0 1.00443,-0.19687 1.33985,-0.59062 0.33906,-0.3974 0.50859,-0.92422 0.50859,-1.58047 l 0,-0.22422 -1.00078,0 m 2.00703,-0.41563 0,3.49454 -1.00625,0 0,-0.92969 c -0.22969,0.37187 -0.51589,0.64713 -0.85859,0.82578 -0.34271,0.175 -0.76198,0.2625 -1.25781,0.2625 -0.62709,0 -1.12657,-0.175 -1.49844,-0.525 -0.36823,-0.35365 -0.55235,-0.82578 -0.55235,-1.41641 0,-0.68906 0.22969,-1.20859 0.68907,-1.55859 0.46302,-0.35 1.15208,-0.525 2.06718,-0.525 l 1.41094,0 0,-0.0984 c 0,-0.46301 -0.15313,-0.82031 -0.45937,-1.07187 -0.30261,-0.25521 -0.72917,-0.38281 -1.27969,-0.38282 -0.35,10e-6 -0.69089,0.0419 -1.02266,0.12579 -0.33177,0.0839 -0.65078,0.20964 -0.95703,0.37734 l 0,-0.92969 c 0.36823,-0.14218 0.72552,-0.24791 1.07188,-0.31719 0.34635,-0.0729 0.68359,-0.10936 1.01172,-0.10937 0.88593,1e-5 1.54765,0.22969 1.98515,0.68906 0.4375,0.45938 0.65625,1.15574 0.65625,2.08906"
+ id="path3180"
+ inkscape:connector-curvature="0" /><path
+ d="m 672.68315,340.05112 c 0.25156,-0.45208 0.55234,-0.78567 0.90234,-1.00078 0.35,-0.2151 0.76198,-0.32265 1.23594,-0.32266 0.63801,10e-6 1.1302,0.22422 1.47656,0.67266 0.34635,0.44479 0.51953,1.07917 0.51954,1.90312 l 0,3.69688 -1.01172,0 0,-3.66407 c -10e-6,-0.58697 -0.10392,-1.02265 -0.31172,-1.30703 -0.20782,-0.28437 -0.52501,-0.42656 -0.95156,-0.42656 -0.52137,0 -0.93334,0.17318 -1.23594,0.51953 -0.30261,0.34636 -0.45391,0.81849 -0.45391,1.41641 l 0,3.46172 -1.01172,0 0,-3.66407 c 0,-0.59062 -0.10391,-1.02629 -0.31172,-1.30703 -0.20781,-0.28437 -0.52865,-0.42656 -0.9625,-0.42656 -0.51406,0 -0.92239,0.175 -1.225,0.525 -0.3026,0.34636 -0.4539,0.81667 -0.4539,1.41094 l 0,3.46172 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.22968,-0.37552 0.50494,-0.6526 0.82578,-0.83125 0.32083,-0.17864 0.70182,-0.26796 1.14297,-0.26797 0.44479,10e-6 0.82213,0.11303 1.13203,0.33906 0.31354,0.22605 0.54505,0.55417 0.69453,0.98438"
+ id="path3182"
+ inkscape:connector-curvature="0" /><path
+ d="m 679.80347,344.08159 0,3.24843 -1.01172,0 0,-8.45468 1.01172,0 0,0.92968 c 0.21145,-0.36457 0.4776,-0.63437 0.79843,-0.80937 0.32448,-0.17864 0.71094,-0.26796 1.15938,-0.26797 0.74374,10e-6 1.34713,0.29532 1.81015,0.88594 0.46666,0.59063 0.7,1.36719 0.7,2.32968 0,0.96251 -0.23334,1.73907 -0.7,2.32969 -0.46302,0.59063 -1.06641,0.88594 -1.81015,0.88594 -0.44844,0 -0.8349,-0.0875 -1.15938,-0.2625 -0.32083,-0.17865 -0.58698,-0.45026 -0.79843,-0.81484 m 3.42343,-2.13829 c 0,-0.7401 -0.15313,-1.31978 -0.45937,-1.73906 -0.30261,-0.42291 -0.72006,-0.63437 -1.25235,-0.63437 -0.53229,0 -0.95156,0.21146 -1.25781,0.63437 -0.3026,0.41928 -0.45391,0.99896 -0.4539,1.73906 -10e-6,0.74011 0.1513,1.32162 0.4539,1.74454 0.30625,0.41927 0.72552,0.6289 1.25781,0.6289 0.53229,0 0.94974,-0.20963 1.25235,-0.6289 0.30624,-0.42292 0.45937,-1.00443 0.45937,-1.74454"
+ id="path3184"
+ inkscape:connector-curvature="0" /><path
+ d="m 685.9394,336.49096 1.00625,0 0,8.50938 -1.00625,0 0,-8.50938"
+ id="path3186"
+ inkscape:connector-curvature="0" /><path
+ d="m 694.28471,341.68627 0,0.49219 -4.62656,0 c 0.0438,0.69271 0.25156,1.22136 0.62344,1.58594 0.37552,0.36094 0.89687,0.54141 1.56406,0.5414 0.38645,1e-5 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72552,-0.23698 1.08282,-0.42657 l 0,0.95157 c -0.36095,0.15312 -0.731,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97708,0 -1.75182,-0.28438 -2.32422,-0.85313 -0.56875,-0.56874 -0.85312,-1.33801 -0.85312,-2.30781 0,-1.0026 0.26979,-1.79739 0.80937,-2.38437 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82396,10e-6 1.47474,0.26615 1.95235,0.79844 0.48124,0.52865 0.72187,1.2487 0.72187,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16224,-0.98984 -0.46484,-1.31797 -0.29896,-0.32812 -0.69636,-0.49218 -1.19219,-0.49219 -0.56146,10e-6 -1.01172,0.1586 -1.35078,0.47579 -0.33542,0.31719 -0.52865,0.7638 -0.57969,1.33984 l 3.5875,-0.005"
+ id="path3188"
+ inkscape:connector-curvature="0" /><path
+ d="m 703.89879,341.9433 c -10e-6,-0.7401 -0.15313,-1.31978 -0.45938,-1.73906 -0.30261,-0.42291 -0.72006,-0.63437 -1.25234,-0.63437 -0.5323,0 -0.95157,0.21146 -1.25782,0.63437 -0.3026,0.41928 -0.4539,0.99896 -0.4539,1.73906 0,0.74011 0.1513,1.32162 0.4539,1.74454 0.30625,0.41927 0.72552,0.6289 1.25782,0.6289 0.53228,0 0.94973,-0.20963 1.25234,-0.6289 0.30625,-0.42292 0.45937,-1.00443 0.45938,-1.74454 m -3.42344,-2.13828 c 0.21145,-0.36457 0.4776,-0.63437 0.79844,-0.80937 0.32447,-0.17864 0.71093,-0.26796 1.15937,-0.26797 0.74375,10e-6 1.34713,0.29532 1.81016,0.88594 0.46666,0.59063 0.69999,1.36719 0.7,2.32968 -10e-6,0.96251 -0.23334,1.73907 -0.7,2.32969 -0.46303,0.59063 -1.06641,0.88594 -1.81016,0.88594 -0.44844,0 -0.8349,-0.0875 -1.15937,-0.2625 -0.32084,-0.17865 -0.58699,-0.45026 -0.79844,-0.81484 l 0,0.91875 -1.01172,0 0,-8.50938 1.01172,0 0,3.31406"
+ id="path3190"
+ inkscape:connector-curvature="0" /><path
+ d="m 706.61129,338.87534 1.00625,0 0,6.125 -1.00625,0 0,-6.125 m 0,-2.38438 1.00625,0 0,1.27422 -1.00625,0 0,-1.27422"
+ id="path3192"
+ inkscape:connector-curvature="0" /><path
+ d="m 713.26675,339.81596 c -0.11302,-0.0656 -0.23698,-0.11301 -0.37187,-0.14219 -0.13126,-0.0328 -0.27709,-0.0492 -0.4375,-0.0492 -0.56876,10e-6 -1.00626,0.18595 -1.3125,0.55782 -0.30261,0.36823 -0.45391,0.8987 -0.45391,1.5914 l 0,3.22657 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.21146,-0.37187 0.48672,-0.64713 0.82578,-0.82578 0.33906,-0.18229 0.75104,-0.27343 1.23594,-0.27344 0.0693,10e-6 0.14583,0.005 0.22969,0.0164 0.0838,0.007 0.17681,0.02 0.2789,0.0383 l 0.005,1.03359"
+ id="path3194"
+ inkscape:connector-curvature="0" /><path
+ d="m 718.17769,339.80502 0,-3.31406 1.00625,0 0,8.50938 -1.00625,0 0,-0.91875 c -0.21146,0.36458 -0.47943,0.63619 -0.80391,0.81484 -0.32084,0.175 -0.70729,0.2625 -1.15937,0.2625 -0.74011,0 -1.34349,-0.29531 -1.81016,-0.88594 -0.46302,-0.59062 -0.69453,-1.36718 -0.69453,-2.32969 0,-0.96249 0.23151,-1.73905 0.69453,-2.32968 0.46667,-0.59062 1.07005,-0.88593 1.81016,-0.88594 0.45208,10e-6 0.83853,0.0893 1.15937,0.26797 0.32448,0.175 0.59245,0.4448 0.80391,0.80937 m -3.42891,2.13828 c 0,0.74011 0.1513,1.32162 0.45391,1.74454 0.30625,0.41927 0.72552,0.6289 1.25781,0.6289 0.53229,0 0.95156,-0.20963 1.25781,-0.6289 0.30625,-0.42292 0.45937,-1.00443 0.45938,-1.74454 -10e-6,-0.7401 -0.15313,-1.31978 -0.45938,-1.73906 -0.30625,-0.42291 -0.72552,-0.63437 -1.25781,-0.63437 -0.53229,0 -0.95156,0.21146 -1.25781,0.63437 -0.30261,0.41928 -0.45391,0.99896 -0.45391,1.73906"
+ id="path3196"
+ inkscape:connector-curvature="0" /><path
+ d="m 728.86362,339.80502 0,-3.31406 1.00625,0 0,8.50938 -1.00625,0 0,-0.91875 c -0.21147,0.36458 -0.47943,0.63619 -0.80391,0.81484 -0.32084,0.175 -0.70729,0.2625 -1.15937,0.2625 -0.74011,0 -1.3435,-0.29531 -1.81016,-0.88594 -0.46302,-0.59062 -0.69453,-1.36718 -0.69453,-2.32969 0,-0.96249 0.23151,-1.73905 0.69453,-2.32968 0.46666,-0.59062 1.07005,-0.88593 1.81016,-0.88594 0.45208,10e-6 0.83853,0.0893 1.15937,0.26797 0.32448,0.175 0.59244,0.4448 0.80391,0.80937 m -3.42891,2.13828 c 0,0.74011 0.1513,1.32162 0.45391,1.74454 0.30624,0.41927 0.72551,0.6289 1.25781,0.6289 0.53229,0 0.95156,-0.20963 1.25781,-0.6289 0.30625,-0.42292 0.45937,-1.00443 0.45938,-1.74454 -10e-6,-0.7401 -0.15313,-1.31978 -0.45938,-1.73906 -0.30625,-0.42291 -0.72552,-0.63437 -1.25781,-0.63437 -0.5323,0 -0.95157,0.21146 -1.25781,0.63437 -0.30261,0.41928 -0.45391,0.99896 -0.45391,1.73906"
+ id="path3198"
+ inkscape:connector-curvature="0" /><path
+ d="m 737.18159,341.68627 0,0.49219 -4.62657,0 c 0.0437,0.69271 0.25156,1.22136 0.62344,1.58594 0.37552,0.36094 0.89687,0.54141 1.56406,0.5414 0.38646,1e-5 0.76015,-0.0474 1.1211,-0.14218 0.36457,-0.0948 0.72551,-0.23698 1.08281,-0.42657 l 0,0.95157 c -0.36094,0.15312 -0.731,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.7638,0.12031 -1.1539,0.12031 -0.97709,0 -1.75183,-0.28438 -2.32422,-0.85313 -0.56875,-0.56874 -0.85313,-1.33801 -0.85313,-2.30781 0,-1.0026 0.26979,-1.79739 0.80938,-2.38437 0.54323,-0.59062 1.27421,-0.88593 2.19297,-0.88594 0.82395,10e-6 1.47473,0.26615 1.95234,0.79844 0.48124,0.52865 0.72187,1.2487 0.72188,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16225,-0.98984 -0.46485,-1.31797 -0.29896,-0.32812 -0.69636,-0.49218 -1.19219,-0.49219 -0.56146,10e-6 -1.01172,0.1586 -1.35078,0.47579 -0.33542,0.31719 -0.52864,0.7638 -0.57968,1.33984 l 3.5875,-0.005"
+ id="path3200"
+ inkscape:connector-curvature="0" /><path
+ d="m 742.73784,339.0558 0,0.95157 c -0.28438,-0.14583 -0.5797,-0.25521 -0.88594,-0.32813 -0.30626,-0.0729 -0.62344,-0.10937 -0.95156,-0.10937 -0.49949,0 -0.87501,0.0766 -1.12657,0.22968 -0.24792,0.15313 -0.37187,0.38282 -0.37187,0.68907 0,0.23333 0.0893,0.41745 0.26797,0.55234 0.17864,0.13125 0.53775,0.25704 1.07734,0.37734 l 0.34453,0.0766 c 0.71458,0.15313 1.22135,0.37005 1.52031,0.65078 0.3026,0.27708 0.45391,0.66537 0.45391,1.16484 0,0.56875 -0.22605,1.01901 -0.67812,1.35078 -0.44845,0.33177 -1.06641,0.49766 -1.85391,0.49766 -0.32813,0 -0.67084,-0.0328 -1.02813,-0.0984 -0.35364,-0.062 -0.72734,-0.15677 -1.12109,-0.28437 l 0,-1.03907 c 0.37187,0.19323 0.73828,0.33907 1.09922,0.4375 0.36093,0.0948 0.71823,0.14219 1.07187,0.14219 0.47396,0 0.83854,-0.0802 1.09375,-0.24062 0.25521,-0.16406 0.38281,-0.39375 0.38282,-0.68907 -10e-6,-0.27343 -0.093,-0.48307 -0.27891,-0.6289 -0.18229,-0.14583 -0.58516,-0.2862 -1.20859,-0.4211 l -0.35,-0.082 c -0.62344,-0.13124 -1.0737,-0.33176 -1.35078,-0.60156 -0.27709,-0.27343 -0.41563,-0.64713 -0.41563,-1.12109 0,-0.57604 0.20417,-1.02083 0.6125,-1.33438 0.40833,-0.31353 0.98802,-0.4703 1.73906,-0.47031 0.37187,1e-5 0.72187,0.0273 1.05,0.082 0.32812,0.0547 0.63073,0.13673 0.90782,0.24609"
+ id="path3202"
+ inkscape:connector-curvature="0" /><path
+ d="m 744.67379,338.87534 1.00625,0 0,6.125 -1.00625,0 0,-6.125 m 0,-2.38438 1.00625,0 0,1.27422 -1.00625,0 0,-1.27422"
+ id="path3204"
+ inkscape:connector-curvature="0" /><path
+ d="m 751.8105,341.86674 c 0,-0.72916 -0.15131,-1.29426 -0.45391,-1.69531 -0.29896,-0.40104 -0.72005,-0.60156 -1.26328,-0.60156 -0.53958,0 -0.96068,0.20052 -1.26328,0.60156 -0.29896,0.40105 -0.44844,0.96615 -0.44844,1.69531 0,0.72553 0.14948,1.28881 0.44844,1.68985 0.3026,0.40104 0.7237,0.60156 1.26328,0.60156 0.54323,0 0.96432,-0.20052 1.26328,-0.60156 0.3026,-0.40104 0.45391,-0.96432 0.45391,-1.68985 m 1.00625,2.37344 c -10e-6,1.04271 -0.23152,1.81745 -0.69453,2.32422 -0.46303,0.51041 -1.17214,0.76562 -2.12734,0.76562 -0.35365,0 -0.68725,-0.0273 -1.00079,-0.082 -0.31354,-0.051 -0.61797,-0.13125 -0.91328,-0.24062 l 0,-0.97891 c 0.29531,0.16042 0.58698,0.27891 0.875,0.35547 0.28802,0.0766 0.58151,0.11484 0.88047,0.11484 0.65989,0 1.1539,-0.17318 1.48203,-0.51953 0.32812,-0.34271 0.49219,-0.86224 0.49219,-1.55859 l 0,-0.49766 c -0.20782,0.36094 -0.47396,0.63073 -0.79844,0.80938 -0.32448,0.17864 -0.71276,0.26797 -1.16484,0.26797 -0.75104,0 -1.35625,-0.2862 -1.81563,-0.8586 -0.45937,-0.57239 -0.68906,-1.33072 -0.68906,-2.275 0,-0.94791 0.22969,-1.70807 0.68906,-2.28047 0.45938,-0.57239 1.06459,-0.85858 1.81563,-0.85859 0.45208,10e-6 0.84036,0.0893 1.16484,0.26797 0.32448,0.17865 0.59062,0.44844 0.79844,0.80937 l 0,-0.92968 1.00625,0 0,5.36484"
+ id="path3206"
+ inkscape:connector-curvature="0" /><path
+ d="m 759.98081,341.30346 0,3.69688 -1.00625,0 0,-3.66407 c 0,-0.57968 -0.11302,-1.01353 -0.33906,-1.30156 -0.22605,-0.28801 -0.56511,-0.43203 -1.01719,-0.43203 -0.54323,0 -0.97161,0.17318 -1.28515,0.51953 -0.31355,0.34636 -0.47032,0.81849 -0.47032,1.41641 l 0,3.46172 -1.01171,0 0,-6.125 1.01171,0 0,0.95156 c 0.24063,-0.36823 0.52318,-0.64349 0.84766,-0.82578 0.32812,-0.18229 0.70547,-0.27343 1.13203,-0.27344 0.70364,10e-6 1.23593,0.21876 1.59688,0.65625 0.36093,0.43386 0.5414,1.0737 0.5414,1.91953"
+ id="path3208"
+ inkscape:connector-curvature="0" /><path
+ d="m 765.56441,336.49096 1.00625,0 0,8.50938 -1.00625,0 0,-8.50938"
+ id="path3210"
+ inkscape:connector-curvature="0" /><path
+ d="m 771.45425,341.92143 c -0.81302,0 -1.3763,0.093 -1.68984,0.27891 -0.31355,0.18594 -0.47032,0.50312 -0.47032,0.95156 0,0.35729 0.11667,0.64167 0.35,0.85312 0.23698,0.20782 0.55781,0.31172 0.9625,0.31172 0.55781,0 1.00443,-0.19687 1.33985,-0.59062 0.33906,-0.3974 0.50859,-0.92422 0.50859,-1.58047 l 0,-0.22422 -1.00078,0 m 2.00703,-0.41563 0,3.49454 -1.00625,0 0,-0.92969 c -0.22969,0.37187 -0.51589,0.64713 -0.85859,0.82578 -0.34271,0.175 -0.76198,0.2625 -1.25781,0.2625 -0.62709,0 -1.12657,-0.175 -1.49844,-0.525 -0.36823,-0.35365 -0.55235,-0.82578 -0.55235,-1.41641 0,-0.68906 0.22969,-1.20859 0.68907,-1.55859 0.46302,-0.35 1.15208,-0.525 2.06718,-0.525 l 1.41094,0 0,-0.0984 c 0,-0.46301 -0.15313,-0.82031 -0.45937,-1.07187 -0.30261,-0.25521 -0.72917,-0.38281 -1.27969,-0.38282 -0.35,10e-6 -0.69089,0.0419 -1.02266,0.12579 -0.33177,0.0839 -0.65078,0.20964 -0.95703,0.37734 l 0,-0.92969 c 0.36823,-0.14218 0.72552,-0.24791 1.07188,-0.31719 0.34635,-0.0729 0.68359,-0.10936 1.01172,-0.10937 0.88593,1e-5 1.54765,0.22969 1.98515,0.68906 0.4375,0.45938 0.65625,1.15574 0.65625,2.08906"
+ id="path3212"
+ inkscape:connector-curvature="0" /><path
+ d="m 778.08784,345.56909 c -0.28438,0.72916 -0.56146,1.20494 -0.83125,1.42734 -0.2698,0.22239 -0.63073,0.33359 -1.08281,0.33359 l -0.80391,0 0,-0.84218 0.59062,0 c 0.27709,-1e-5 0.49219,-0.0656 0.64532,-0.19688 0.15312,-0.13125 0.32265,-0.44115 0.50859,-0.92969 l 0.18047,-0.45937 -2.47734,-6.02656 1.0664,0 1.91406,4.79062 1.91407,-4.79062 1.0664,0 -2.69062,6.69375"
+ id="path3214"
+ inkscape:connector-curvature="0" /><path
+ d="m 787.40659,341.68627 0,0.49219 -4.62656,0 c 0.0438,0.69271 0.25156,1.22136 0.62344,1.58594 0.37551,0.36094 0.89687,0.54141 1.56406,0.5414 0.38645,1e-5 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72552,-0.23698 1.08282,-0.42657 l 0,0.95157 c -0.36095,0.15312 -0.731,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97708,0 -1.75182,-0.28438 -2.32422,-0.85313 -0.56875,-0.56874 -0.85312,-1.33801 -0.85312,-2.30781 0,-1.0026 0.26979,-1.79739 0.80937,-2.38437 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82396,10e-6 1.47474,0.26615 1.95235,0.79844 0.48124,0.52865 0.72187,1.2487 0.72187,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16224,-0.98984 -0.46484,-1.31797 -0.29896,-0.32812 -0.69636,-0.49218 -1.19219,-0.49219 -0.56146,10e-6 -1.01172,0.1586 -1.35078,0.47579 -0.33542,0.31719 -0.52865,0.7638 -0.57969,1.33984 l 3.5875,-0.005"
+ id="path3216"
+ inkscape:connector-curvature="0" /><path
+ d="m 792.60737,339.81596 c -0.11302,-0.0656 -0.23698,-0.11301 -0.37187,-0.14219 -0.13126,-0.0328 -0.27709,-0.0492 -0.4375,-0.0492 -0.56876,10e-6 -1.00625,0.18595 -1.3125,0.55782 -0.30261,0.36823 -0.45391,0.8987 -0.45391,1.5914 l 0,3.22657 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.21146,-0.37187 0.48672,-0.64713 0.82578,-0.82578 0.33906,-0.18229 0.75104,-0.27343 1.23594,-0.27344 0.0693,10e-6 0.14583,0.005 0.22969,0.0164 0.0838,0.007 0.17682,0.02 0.2789,0.0383 l 0.005,1.03359"
+ id="path3218"
+ inkscape:connector-curvature="0" /><path
+ d="m 800.34018,336.49096 0,0.83672 -0.9625,0 c -0.36094,1e-5 -0.6125,0.0729 -0.75469,0.21875 -0.13854,0.14584 -0.20781,0.40834 -0.20781,0.7875 l 0,0.54141 1.65703,0 0,0.78203 -1.65703,0 0,5.34297 -1.01172,0 0,-5.34297 -0.9625,0 0,-0.78203 0.9625,0 0,-0.42657 c 0,-0.68176 0.15859,-1.17759 0.47578,-1.4875 0.31719,-0.31353 0.82031,-0.4703 1.50938,-0.47031 l 0.95156,0"
+ id="path3220"
+ inkscape:connector-curvature="0" /><path
+ d="m 804.72612,339.81596 c -0.11303,-0.0656 -0.23699,-0.11301 -0.37188,-0.14219 -0.13125,-0.0328 -0.27709,-0.0492 -0.4375,-0.0492 -0.56875,10e-6 -1.00625,0.18595 -1.3125,0.55782 -0.3026,0.36823 -0.45391,0.8987 -0.4539,1.5914 l 0,3.22657 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.21145,-0.37187 0.48671,-0.64713 0.82578,-0.82578 0.33906,-0.18229 0.75103,-0.27343 1.23593,-0.27344 0.0693,10e-6 0.14583,0.005 0.22969,0.0164 0.0838,0.007 0.17682,0.02 0.27891,0.0383 l 0.005,1.03359"
+ id="path3222"
+ inkscape:connector-curvature="0" /><path
+ d="m 807.93628,339.5808 c -0.53959,10e-6 -0.96615,0.21147 -1.27969,0.63438 -0.31354,0.41927 -0.47032,0.99532 -0.47031,1.72812 -10e-6,0.73282 0.15494,1.31068 0.46484,1.7336 0.31354,0.41927 0.74192,0.62891 1.28516,0.6289 0.53593,1e-5 0.96067,-0.21145 1.27421,-0.63437 0.31354,-0.42292 0.47031,-0.99896 0.47032,-1.72813 -10e-6,-0.72551 -0.15678,-1.29973 -0.47032,-1.72265 -0.31354,-0.42656 -0.73828,-0.63984 -1.27421,-0.63985 m 0,-0.85312 c 0.87499,10e-6 1.56223,0.28438 2.06171,0.85312 0.49948,0.56876 0.74922,1.35626 0.74922,2.3625 0,1.00261 -0.24974,1.79011 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85313 -2.06171,0.85313 -0.87865,0 -1.56771,-0.28438 -2.06719,-0.85313 -0.49584,-0.57239 -0.74375,-1.35989 -0.74375,-2.3625 0,-1.00624 0.24791,-1.79374 0.74375,-2.3625 0.49948,-0.56874 1.18854,-0.85311 2.06719,-0.85312"
+ id="path3224"
+ inkscape:connector-curvature="0" /><path
+ d="m 817.18941,340.05112 c 0.25155,-0.45208 0.55233,-0.78567 0.90234,-1.00078 0.34999,-0.2151 0.76197,-0.32265 1.23594,-0.32266 0.63801,10e-6 1.1302,0.22422 1.47656,0.67266 0.34635,0.44479 0.51952,1.07917 0.51953,1.90312 l 0,3.69688 -1.01172,0 0,-3.66407 c -10e-6,-0.58697 -0.10391,-1.02265 -0.31172,-1.30703 -0.20782,-0.28437 -0.525,-0.42656 -0.95156,-0.42656 -0.52136,0 -0.93334,0.17318 -1.23594,0.51953 -0.30261,0.34636 -0.45391,0.81849 -0.4539,1.41641 l 0,3.46172 -1.01172,0 0,-3.66407 c -10e-6,-0.59062 -0.10391,-1.02629 -0.31172,-1.30703 -0.20782,-0.28437 -0.52865,-0.42656 -0.9625,-0.42656 -0.51406,0 -0.9224,0.175 -1.225,0.525 -0.30261,0.34636 -0.45391,0.81667 -0.45391,1.41094 l 0,3.46172 -1.01171,0 0,-6.125 1.01171,0 0,0.95156 c 0.22969,-0.37552 0.50495,-0.6526 0.82579,-0.83125 0.32083,-0.17864 0.70182,-0.26796 1.14296,-0.26797 0.44479,10e-6 0.82214,0.11303 1.13204,0.33906 0.31353,0.22605 0.54504,0.55417 0.69453,0.98438"
+ id="path3226"
+ inkscape:connector-curvature="0" /><path
+ d="m 827.89722,337.13627 0,1.73907 2.07265,0 0,0.78203 -2.07265,0 0,3.325 c -10e-6,0.49948 0.0674,0.82031 0.20234,0.9625 0.13854,0.14219 0.41745,0.21328 0.83672,0.21328 l 1.03359,0 0,0.84219 -1.03359,0 c -0.77657,0 -1.3125,-0.14401 -1.60781,-0.43204 -0.29532,-0.29166 -0.44297,-0.82031 -0.44297,-1.58593 l 0,-3.325 -0.73828,0 0,-0.78203 0.73828,0 0,-1.73907 1.01172,0"
+ id="path3228"
+ inkscape:connector-curvature="0" /><path
+ d="m 836.39019,341.30346 0,3.69688 -1.00625,0 0,-3.66407 c 0,-0.57968 -0.11302,-1.01353 -0.33906,-1.30156 -0.22605,-0.28801 -0.56511,-0.43203 -1.01719,-0.43203 -0.54323,0 -0.97162,0.17318 -1.28515,0.51953 -0.31355,0.34636 -0.47032,0.81849 -0.47032,1.41641 l 0,3.46172 -1.01172,0 0,-8.50938 1.01172,0 0,3.33594 c 0.24063,-0.36823 0.52318,-0.64349 0.84766,-0.82578 0.32812,-0.18229 0.70546,-0.27343 1.13203,-0.27344 0.70364,10e-6 1.23593,0.21876 1.59688,0.65625 0.36093,0.43386 0.5414,1.0737 0.5414,1.91953"
+ id="path3230"
+ inkscape:connector-curvature="0" /><path
+ d="m 838.40816,338.87534 1.00625,0 0,6.125 -1.00625,0 0,-6.125 m 0,-2.38438 1.00625,0 0,1.27422 -1.00625,0 0,-1.27422"
+ id="path3232"
+ inkscape:connector-curvature="0" /><path
+ d="m 845.41908,339.0558 0,0.95157 c -0.28438,-0.14583 -0.57969,-0.25521 -0.88594,-0.32813 -0.30625,-0.0729 -0.62344,-0.10937 -0.95156,-0.10937 -0.49948,0 -0.875,0.0766 -1.12656,0.22968 -0.24792,0.15313 -0.37188,0.38282 -0.37188,0.68907 0,0.23333 0.0893,0.41745 0.26797,0.55234 0.17864,0.13125 0.53776,0.25704 1.07734,0.37734 l 0.34454,0.0766 c 0.71458,0.15313 1.22135,0.37005 1.52031,0.65078 0.3026,0.27708 0.4539,0.66537 0.4539,1.16484 0,0.56875 -0.22604,1.01901 -0.67812,1.35078 -0.44844,0.33177 -1.06641,0.49766 -1.85391,0.49766 -0.32812,0 -0.67083,-0.0328 -1.02812,-0.0984 -0.35365,-0.062 -0.72735,-0.15677 -1.1211,-0.28437 l 0,-1.03907 c 0.37188,0.19323 0.73828,0.33907 1.09922,0.4375 0.36094,0.0948 0.71823,0.14219 1.07188,0.14219 0.47395,0 0.83854,-0.0802 1.09375,-0.24062 0.2552,-0.16406 0.38281,-0.39375 0.38281,-0.68907 0,-0.27343 -0.093,-0.48307 -0.27891,-0.6289 -0.18229,-0.14583 -0.58516,-0.2862 -1.20859,-0.4211 l -0.35,-0.082 c -0.62344,-0.13124 -1.0737,-0.33176 -1.35078,-0.60156 -0.27708,-0.27343 -0.41563,-0.64713 -0.41563,-1.12109 0,-0.57604 0.20417,-1.02083 0.6125,-1.33438 0.40834,-0.31353 0.98802,-0.4703 1.73907,-0.47031 0.37187,1e-5 0.72187,0.0273 1.05,0.082 0.32812,0.0547 0.63072,0.13673 0.90781,0.24609"
+ id="path3234"
+ inkscape:connector-curvature="0" /><path
+ d="m 854.02142,336.49096 0,0.83672 -0.9625,0 c -0.36094,1e-5 -0.6125,0.0729 -0.75468,0.21875 -0.13855,0.14584 -0.20782,0.40834 -0.20782,0.7875 l 0,0.54141 1.65703,0 0,0.78203 -1.65703,0 0,5.34297 -1.01172,0 0,-5.34297 -0.9625,0 0,-0.78203 0.9625,0 0,-0.42657 c 0,-0.68176 0.1586,-1.17759 0.47579,-1.4875 0.31718,-0.31353 0.82031,-0.4703 1.50937,-0.47031 l 0.95156,0"
+ id="path3236"
+ inkscape:connector-curvature="0" /><path
+ d="m 854.85814,338.87534 1.00625,0 0,6.125 -1.00625,0 0,-6.125 m 0,-2.38438 1.00625,0 0,1.27422 -1.00625,0 0,-1.27422"
+ id="path3238"
+ inkscape:connector-curvature="0" /><path
+ d="m 857.9644,336.49096 1.00625,0 0,8.50938 -1.00625,0 0,-8.50938"
+ id="path3240"
+ inkscape:connector-curvature="0" /><path
+ d="m 866.30973,341.68627 0,0.49219 -4.62656,0 c 0.0437,0.69271 0.25156,1.22136 0.62343,1.58594 0.37552,0.36094 0.89688,0.54141 1.56407,0.5414 0.38645,1e-5 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72552,-0.23698 1.08281,-0.42657 l 0,0.95157 c -0.36094,0.15312 -0.73099,0.26979 -1.11015,0.35 -0.37917,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97709,0 -1.75182,-0.28438 -2.32422,-0.85313 -0.56875,-0.56874 -0.85312,-1.33801 -0.85312,-2.30781 0,-1.0026 0.26979,-1.79739 0.80937,-2.38437 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82395,10e-6 1.47473,0.26615 1.95234,0.79844 0.48125,0.52865 0.72187,1.2487 0.72188,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16225,-0.98984 -0.46484,-1.31797 -0.29897,-0.32812 -0.69636,-0.49218 -1.19219,-0.49219 -0.56146,10e-6 -1.01172,0.1586 -1.35078,0.47579 -0.33542,0.31719 -0.52865,0.7638 -0.57969,1.33984 l 3.5875,-0.005"
+ id="path3242"
+ inkscape:connector-curvature="0" /><path
+ d="m 872.52222,337.13627 0,1.73907 2.07265,0 0,0.78203 -2.07265,0 0,3.325 c -10e-6,0.49948 0.0674,0.82031 0.20234,0.9625 0.13854,0.14219 0.41745,0.21328 0.83672,0.21328 l 1.03359,0 0,0.84219 -1.03359,0 c -0.77657,0 -1.3125,-0.14401 -1.60781,-0.43204 -0.29532,-0.29166 -0.44297,-0.82031 -0.44297,-1.58593 l 0,-3.325 -0.73828,0 0,-0.78203 0.73828,0 0,-1.73907 1.01172,0"
+ id="path3244"
+ inkscape:connector-curvature="0" /><path
+ d="m 878.29722,339.5808 c -0.53958,10e-6 -0.96615,0.21147 -1.27968,0.63438 -0.31355,0.41927 -0.47032,0.99532 -0.47032,1.72812 0,0.73282 0.15495,1.31068 0.46485,1.7336 0.31354,0.41927 0.74192,0.62891 1.28515,0.6289 0.53594,1e-5 0.96068,-0.21145 1.27422,-0.63437 0.31354,-0.42292 0.47031,-0.99896 0.47031,-1.72813 0,-0.72551 -0.15677,-1.29973 -0.47031,-1.72265 -0.31354,-0.42656 -0.73828,-0.63984 -1.27422,-0.63985 m 0,-0.85312 c 0.875,10e-6 1.56224,0.28438 2.06172,0.85312 0.49947,0.56876 0.74921,1.35626 0.74922,2.3625 -10e-6,1.00261 -0.24975,1.79011 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85313 -2.06172,0.85313 -0.87865,0 -1.56771,-0.28438 -2.06718,-0.85313 -0.49584,-0.57239 -0.74376,-1.35989 -0.74375,-2.3625 -1e-5,-1.00624 0.24791,-1.79374 0.74375,-2.3625 0.49947,-0.56874 1.18853,-0.85311 2.06718,-0.85312"
+ id="path3246"
+ inkscape:connector-curvature="0" /><path
+ d="m 889.11985,341.92143 c -0.81302,0 -1.3763,0.093 -1.68984,0.27891 -0.31354,0.18594 -0.47031,0.50312 -0.47031,0.95156 0,0.35729 0.11666,0.64167 0.35,0.85312 0.23698,0.20782 0.55781,0.31172 0.9625,0.31172 0.55781,0 1.00442,-0.19687 1.33984,-0.59062 0.33906,-0.3974 0.50859,-0.92422 0.5086,-1.58047 l 0,-0.22422 -1.00079,0 m 2.00704,-0.41563 0,3.49454 -1.00625,0 0,-0.92969 c -0.2297,0.37187 -0.51589,0.64713 -0.8586,0.82578 -0.34271,0.175 -0.76198,0.2625 -1.25781,0.2625 -0.62709,0 -1.12656,-0.175 -1.49844,-0.525 -0.36823,-0.35365 -0.55234,-0.82578 -0.55234,-1.41641 0,-0.68906 0.22969,-1.20859 0.68906,-1.55859 0.46302,-0.35 1.15208,-0.525 2.06719,-0.525 l 1.41094,0 0,-0.0984 c -10e-6,-0.46301 -0.15313,-0.82031 -0.45938,-1.07187 -0.30261,-0.25521 -0.72917,-0.38281 -1.27969,-0.38282 -0.35,10e-6 -0.69088,0.0419 -1.02265,0.12579 -0.33178,0.0839 -0.65079,0.20964 -0.95703,0.37734 l 0,-0.92969 c 0.36822,-0.14218 0.72551,-0.24791 1.07187,-0.31719 0.34635,-0.0729 0.68359,-0.10936 1.01172,-0.10937 0.88593,1e-5 1.54765,0.22969 1.98516,0.68906 0.43749,0.45938 0.65624,1.15574 0.65625,2.08906"
+ id="path3248"
+ inkscape:connector-curvature="0" /><path
+ d="m 892.48316,338.87534 1.06641,0 1.91406,5.14062 1.91406,-5.14062 1.06641,0 -2.29688,6.125 -1.36718,0 -2.29688,-6.125"
+ id="path3250"
+ inkscape:connector-curvature="0" /><path
+ d="m 902.20659,339.5808 c -0.53959,10e-6 -0.96615,0.21147 -1.27969,0.63438 -0.31355,0.41927 -0.47032,0.99532 -0.47031,1.72812 -10e-6,0.73282 0.15494,1.31068 0.46484,1.7336 0.31354,0.41927 0.74192,0.62891 1.28516,0.6289 0.53593,1e-5 0.96067,-0.21145 1.27421,-0.63437 0.31354,-0.42292 0.47031,-0.99896 0.47032,-1.72813 -10e-6,-0.72551 -0.15678,-1.29973 -0.47032,-1.72265 -0.31354,-0.42656 -0.73828,-0.63984 -1.27421,-0.63985 m 0,-0.85312 c 0.87499,10e-6 1.56223,0.28438 2.06171,0.85312 0.49948,0.56876 0.74922,1.35626 0.74922,2.3625 0,1.00261 -0.24974,1.79011 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85313 -2.06171,0.85313 -0.87865,0 -1.56771,-0.28438 -2.06719,-0.85313 -0.49584,-0.57239 -0.74375,-1.35989 -0.74375,-2.3625 0,-1.00624 0.24791,-1.79374 0.74375,-2.3625 0.49948,-0.56874 1.18854,-0.85311 2.06719,-0.85312"
+ id="path3252"
+ inkscape:connector-curvature="0" /><path
+ d="m 906.68001,338.87534 1.00625,0 0,6.125 -1.00625,0 0,-6.125 m 0,-2.38438 1.00625,0 0,1.27422 -1.00625,0 0,-1.27422"
+ id="path3254"
+ inkscape:connector-curvature="0" /><path
+ d="m 913.81674,339.80502 0,-3.31406 1.00625,0 0,8.50938 -1.00625,0 0,-0.91875 c -0.21146,0.36458 -0.47943,0.63619 -0.8039,0.81484 -0.32084,0.175 -0.7073,0.2625 -1.15938,0.2625 -0.74011,0 -1.34349,-0.29531 -1.81016,-0.88594 -0.46302,-0.59062 -0.69453,-1.36718 -0.69453,-2.32969 0,-0.96249 0.23151,-1.73905 0.69453,-2.32968 0.46667,-0.59062 1.07005,-0.88593 1.81016,-0.88594 0.45208,10e-6 0.83854,0.0893 1.15938,0.26797 0.32447,0.175 0.59244,0.4448 0.8039,0.80937 m -3.4289,2.13828 c -10e-6,0.74011 0.1513,1.32162 0.4539,1.74454 0.30625,0.41927 0.72552,0.6289 1.25781,0.6289 0.53229,0 0.95156,-0.20963 1.25782,-0.6289 0.30624,-0.42292 0.45937,-1.00443 0.45937,-1.74454 0,-0.7401 -0.15313,-1.31978 -0.45937,-1.73906 -0.30626,-0.42291 -0.72553,-0.63437 -1.25782,-0.63437 -0.53229,0 -0.95156,0.21146 -1.25781,0.63437 -0.3026,0.41928 -0.45391,0.99896 -0.4539,1.73906"
+ id="path3256"
+ inkscape:connector-curvature="0" /><path
+ d="m 921.45657,337.13627 0,1.73907 2.07266,0 0,0.78203 -2.07266,0 0,3.325 c 0,0.49948 0.0674,0.82031 0.20235,0.9625 0.13854,0.14219 0.41744,0.21328 0.83672,0.21328 l 1.03359,0 0,0.84219 -1.03359,0 c -0.77657,0 -1.31251,-0.14401 -1.60782,-0.43204 -0.29531,-0.29166 -0.44297,-0.82031 -0.44297,-1.58593 l 0,-3.325 -0.73828,0 0,-0.78203 0.73828,0 0,-1.73907 1.01172,0"
+ id="path3258"
+ inkscape:connector-curvature="0" /><path
+ d="m 929.94955,341.30346 0,3.69688 -1.00625,0 0,-3.66407 c -10e-6,-0.57968 -0.11303,-1.01353 -0.33906,-1.30156 -0.22605,-0.28801 -0.56511,-0.43203 -1.01719,-0.43203 -0.54323,0 -0.97162,0.17318 -1.28516,0.51953 -0.31354,0.34636 -0.47031,0.81849 -0.47031,1.41641 l 0,3.46172 -1.01172,0 0,-8.50938 1.01172,0 0,3.33594 c 0.24062,-0.36823 0.52317,-0.64349 0.84766,-0.82578 0.32812,-0.18229 0.70546,-0.27343 1.13203,-0.27344 0.70364,10e-6 1.23593,0.21876 1.59687,0.65625 0.36093,0.43386 0.5414,1.0737 0.54141,1.91953"
+ id="path3260"
+ inkscape:connector-curvature="0" /><path
+ d="m 937.20658,341.68627 0,0.49219 -4.62656,0 c 0.0438,0.69271 0.25156,1.22136 0.62343,1.58594 0.37552,0.36094 0.89688,0.54141 1.56407,0.5414 0.38645,1e-5 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72552,-0.23698 1.08281,-0.42657 l 0,0.95157 c -0.36094,0.15312 -0.73099,0.26979 -1.11015,0.35 -0.37917,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97709,0 -1.75182,-0.28438 -2.32422,-0.85313 -0.56875,-0.56874 -0.85312,-1.33801 -0.85312,-2.30781 0,-1.0026 0.26979,-1.79739 0.80937,-2.38437 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82395,10e-6 1.47474,0.26615 1.95234,0.79844 0.48125,0.52865 0.72187,1.2487 0.72188,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16225,-0.98984 -0.46484,-1.31797 -0.29897,-0.32812 -0.69636,-0.49218 -1.19219,-0.49219 -0.56146,10e-6 -1.01172,0.1586 -1.35078,0.47579 -0.33542,0.31719 -0.52865,0.7638 -0.57969,1.33984 l 3.5875,-0.005"
+ id="path3262"
+ inkscape:connector-curvature="0" /><path
+ d="m 946.8316,339.11049 0,0.94063 c -0.28438,-0.15677 -0.57058,-0.27344 -0.8586,-0.35 -0.28438,-0.0802 -0.5724,-0.12031 -0.86406,-0.12032 -0.65261,10e-6 -1.15938,0.20782 -1.52031,0.62344 -0.36094,0.41199 -0.54141,0.99167 -0.54141,1.73906 0,0.7474 0.18047,1.32891 0.54141,1.74454 0.36093,0.41198 0.8677,0.61797 1.52031,0.61796 0.29166,1e-5 0.57968,-0.0383 0.86406,-0.11484 0.28802,-0.0802 0.57422,-0.1987 0.8586,-0.35547 l 0,0.92969 c -0.28074,0.13125 -0.5724,0.22969 -0.875,0.29531 -0.29896,0.0656 -0.61797,0.0984 -0.95703,0.0984 -0.9224,0 -1.65521,-0.28984 -2.19844,-0.86953 -0.54323,-0.57969 -0.81485,-1.36172 -0.81484,-2.3461 -1e-5,-0.99895 0.27343,-1.78463 0.82031,-2.35703 0.55052,-0.57239 1.30338,-0.85858 2.25859,-0.85859 0.30989,10e-6 0.6125,0.0328 0.90781,0.0984 0.29531,0.062 0.58151,0.15677 0.8586,0.28437"
+ id="path3264"
+ inkscape:connector-curvature="0" /><path
+ d="m 950.96595,339.5808 c -0.53958,10e-6 -0.96614,0.21147 -1.27968,0.63438 -0.31355,0.41927 -0.47032,0.99532 -0.47032,1.72812 0,0.73282 0.15495,1.31068 0.46485,1.7336 0.31354,0.41927 0.74192,0.62891 1.28515,0.6289 0.53594,1e-5 0.96068,-0.21145 1.27422,-0.63437 0.31354,-0.42292 0.47031,-0.99896 0.47032,-1.72813 -1e-5,-0.72551 -0.15678,-1.29973 -0.47032,-1.72265 -0.31354,-0.42656 -0.73828,-0.63984 -1.27422,-0.63985 m 0,-0.85312 c 0.875,10e-6 1.56224,0.28438 2.06172,0.85312 0.49948,0.56876 0.74922,1.35626 0.74922,2.3625 0,1.00261 -0.24974,1.79011 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85313 -2.06172,0.85313 -0.87864,0 -1.56771,-0.28438 -2.06718,-0.85313 -0.49584,-0.57239 -0.74375,-1.35989 -0.74375,-2.3625 0,-1.00624 0.24791,-1.79374 0.74375,-2.3625 0.49947,-0.56874 1.18854,-0.85311 2.06718,-0.85312"
+ id="path3266"
+ inkscape:connector-curvature="0" /><path
+ d="m 959.3441,339.0558 0,0.95157 c -0.28438,-0.14583 -0.57969,-0.25521 -0.88594,-0.32813 -0.30625,-0.0729 -0.62344,-0.10937 -0.95156,-0.10937 -0.49948,0 -0.875,0.0766 -1.12656,0.22968 -0.24792,0.15313 -0.37188,0.38282 -0.37188,0.68907 0,0.23333 0.0893,0.41745 0.26797,0.55234 0.17864,0.13125 0.53776,0.25704 1.07734,0.37734 l 0.34453,0.0766 c 0.71458,0.15313 1.22135,0.37005 1.52032,0.65078 0.3026,0.27708 0.4539,0.66537 0.4539,1.16484 0,0.56875 -0.22604,1.01901 -0.67812,1.35078 -0.44844,0.33177 -1.06641,0.49766 -1.85391,0.49766 -0.32813,0 -0.67083,-0.0328 -1.02812,-0.0984 -0.35365,-0.062 -0.72735,-0.15677 -1.1211,-0.28437 l 0,-1.03907 c 0.37188,0.19323 0.73828,0.33907 1.09922,0.4375 0.36094,0.0948 0.71823,0.14219 1.07188,0.14219 0.47395,0 0.83853,-0.0802 1.09375,-0.24062 0.2552,-0.16406 0.3828,-0.39375 0.38281,-0.68907 -1e-5,-0.27343 -0.093,-0.48307 -0.27891,-0.6289 -0.18229,-0.14583 -0.58516,-0.2862 -1.20859,-0.4211 l -0.35,-0.082 c -0.62344,-0.13124 -1.0737,-0.33176 -1.35078,-0.60156 -0.27709,-0.27343 -0.41563,-0.64713 -0.41563,-1.12109 0,-0.57604 0.20417,-1.02083 0.6125,-1.33438 0.40833,-0.31353 0.98802,-0.4703 1.73907,-0.47031 0.37187,1e-5 0.72187,0.0273 1.05,0.082 0.32812,0.0547 0.63072,0.13673 0.90781,0.24609"
+ id="path3268"
+ inkscape:connector-curvature="0" /><path
+ d="m 962.27533,337.13627 0,1.73907 2.07266,0 0,0.78203 -2.07266,0 0,3.325 c 0,0.49948 0.0674,0.82031 0.20234,0.9625 0.13854,0.14219 0.41745,0.21328 0.83672,0.21328 l 1.0336,0 0,0.84219 -1.0336,0 c -0.77656,0 -1.3125,-0.14401 -1.60781,-0.43204 -0.29531,-0.29166 -0.44297,-0.82031 -0.44297,-1.58593 l 0,-3.325 -0.73828,0 0,-0.78203 0.73828,0 0,-1.73907 1.01172,0"
+ id="path3270"
+ inkscape:connector-curvature="0" /><path
+ d="m 972.34329,336.49096 0,0.83672 -0.9625,0 c -0.36094,1e-5 -0.6125,0.0729 -0.75469,0.21875 -0.13854,0.14584 -0.20781,0.40834 -0.20781,0.7875 l 0,0.54141 1.65703,0 0,0.78203 -1.65703,0 0,5.34297 -1.01172,0 0,-5.34297 -0.9625,0 0,-0.78203 0.9625,0 0,-0.42657 c 0,-0.68176 0.1586,-1.17759 0.47578,-1.4875 0.31719,-0.31353 0.82031,-0.4703 1.50938,-0.47031 l 0.95156,0"
+ id="path3272"
+ inkscape:connector-curvature="0" /><path
+ d="m 975.55345,339.5808 c -0.53959,10e-6 -0.96615,0.21147 -1.27969,0.63438 -0.31354,0.41927 -0.47031,0.99532 -0.47031,1.72812 0,0.73282 0.15494,1.31068 0.46484,1.7336 0.31354,0.41927 0.74193,0.62891 1.28516,0.6289 0.53593,1e-5 0.96067,-0.21145 1.27422,-0.63437 0.31353,-0.42292 0.4703,-0.99896 0.47031,-1.72813 -1e-5,-0.72551 -0.15678,-1.29973 -0.47031,-1.72265 -0.31355,-0.42656 -0.73829,-0.63984 -1.27422,-0.63985 m 0,-0.85312 c 0.87499,10e-6 1.56223,0.28438 2.06172,0.85312 0.49947,0.56876 0.74921,1.35626 0.74922,2.3625 -10e-6,1.00261 -0.24975,1.79011 -0.74922,2.3625 -0.49949,0.56875 -1.18673,0.85313 -2.06172,0.85313 -0.87865,0 -1.56771,-0.28438 -2.06719,-0.85313 -0.49583,-0.57239 -0.74375,-1.35989 -0.74375,-2.3625 0,-1.00624 0.24792,-1.79374 0.74375,-2.3625 0.49948,-0.56874 1.18854,-0.85311 2.06719,-0.85312"
+ id="path3274"
+ inkscape:connector-curvature="0" /><path
+ d="m 983.57612,339.81596 c -0.11302,-0.0656 -0.23698,-0.11301 -0.37187,-0.14219 -0.13126,-0.0328 -0.27709,-0.0492 -0.4375,-0.0492 -0.56876,10e-6 -1.00625,0.18595 -1.3125,0.55782 -0.30261,0.36823 -0.45391,0.8987 -0.45391,1.5914 l 0,3.22657 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.21146,-0.37187 0.48672,-0.64713 0.82578,-0.82578 0.33906,-0.18229 0.75104,-0.27343 1.23594,-0.27344 0.0693,10e-6 0.14583,0.005 0.22969,0.0164 0.0838,0.007 0.17682,0.02 0.2789,0.0383 l 0.005,1.03359"
+ id="path3276"
+ inkscape:connector-curvature="0" /><path
+ d="m 988.20815,338.87534 1.00625,0 0,6.125 -1.00625,0 0,-6.125 m 0,-2.38438 1.00625,0 0,1.27422 -1.00625,0 0,-1.27422"
+ id="path3278"
+ inkscape:connector-curvature="0" /><path
+ d="m 992.30972,337.13627 0,1.73907 2.07266,0 0,0.78203 -2.07266,0 0,3.325 c 0,0.49948 0.0675,0.82031 0.20235,0.9625 0.13854,0.14219 0.41744,0.21328 0.83672,0.21328 l 1.03359,0 0,0.84219 -1.03359,0 c -0.77657,0 -1.31251,-0.14401 -1.60782,-0.43204 -0.29531,-0.29166 -0.44297,-0.82031 -0.44297,-1.58593 l 0,-3.325 -0.73828,0 0,-0.78203 0.73828,0 0,-1.73907 1.01172,0"
+ id="path3280"
+ inkscape:connector-curvature="0" /><path
+ d="m 995.85345,343.61127 1.1539,0 0,1.38907 -1.1539,0 0,-1.38907"
+ id="path3282"
+ inkscape:connector-curvature="0" /><path
+ d="m 571.4019,362.55065 3.85547,0 0,0.92969 -5.18437,0 0,-0.92969 c 0.41927,-0.43386 0.98984,-1.01536 1.71172,-1.74453 0.72551,-0.73281 1.18124,-1.20495 1.36718,-1.41641 0.35365,-0.39739 0.59974,-0.73281 0.73829,-1.00625 0.14218,-0.27708 0.21327,-0.54869 0.21328,-0.81484 -10e-6,-0.43385 -0.15313,-0.7875 -0.45938,-1.06094 -0.30261,-0.27343 -0.69818,-0.41015 -1.18672,-0.41016 -0.34635,1e-5 -0.71276,0.0602 -1.09922,0.18047 -0.38281,0.12032 -0.79297,0.30261 -1.23046,0.54688 l 0,-1.11563 c 0.44479,-0.17864 0.86041,-0.31353 1.24687,-0.40469 0.38646,-0.0911 0.7401,-0.13671 1.06094,-0.13671 0.84583,0 1.52031,0.21146 2.02344,0.63437 0.50311,0.42292 0.75468,0.98803 0.75468,1.69531 0,0.33543 -0.0638,0.65444 -0.1914,0.95703 -0.12397,0.29897 -0.35183,0.65261 -0.6836,1.06094 -0.0911,0.10573 -0.38099,0.41198 -0.86953,0.91875 -0.48854,0.50313 -1.17761,1.2086 -2.06719,2.11641"
+ id="path3284"
+ inkscape:connector-curvature="0" /><path
+ d="m 577.28081,354.9819 0.875,0 c 0.54687,0.86042 0.95521,1.70261 1.225,2.52656 0.27343,0.82396 0.41015,1.64245 0.41016,2.45547 -10e-6,0.81667 -0.13673,1.6388 -0.41016,2.46641 -0.26979,0.8276 -0.67813,1.66979 -1.225,2.52656 l -0.875,0 c 0.48489,-0.8349 0.84583,-1.66433 1.08281,-2.48828 0.24063,-0.82761 0.36094,-1.6625 0.36094,-2.50469 0,-0.84218 -0.12031,-1.67343 -0.36094,-2.49375 -0.23698,-0.82031 -0.59792,-1.64973 -1.08281,-2.48828"
+ id="path3286"
+ inkscape:connector-curvature="0" /><path
+ d="m 590.31831,355.58346 0,1.07734 c -0.41928,-0.20051 -0.81485,-0.34999 -1.18672,-0.44843 -0.37188,-0.0984 -0.73099,-0.14765 -1.07734,-0.14766 -0.60157,1e-5 -1.06641,0.11667 -1.39453,0.35 -0.32448,0.23334 -0.48672,0.56511 -0.48672,0.99531 0,0.36095 0.10755,0.63438 0.32265,0.82032 0.21875,0.18229 0.63073,0.32995 1.23594,0.44296 l 0.66719,0.13672 c 0.82395,0.15678 1.43098,0.43386 1.82109,0.83125 0.39375,0.39376 0.59062,0.9224 0.59063,1.58594 -1e-5,0.79115 -0.26615,1.39089 -0.79844,1.79922 -0.52865,0.40833 -1.30521,0.6125 -2.32969,0.6125 -0.38646,0 -0.79844,-0.0437 -1.23593,-0.13125 -0.43386,-0.0875 -0.88412,-0.21693 -1.35079,-0.38828 l 0,-1.1375 c 0.44844,0.25156 0.88776,0.44114 1.31797,0.56875 0.43021,0.1276 0.85312,0.1914 1.26875,0.1914 0.63073,0 1.11745,-0.12395 1.46016,-0.37187 0.3427,-0.24792 0.51406,-0.60156 0.51406,-1.06094 0,-0.40104 -0.12396,-0.71458 -0.37187,-0.94062 -0.24428,-0.22604 -0.64714,-0.39557 -1.2086,-0.5086 l -0.67265,-0.13125 c -0.82396,-0.16406 -1.42006,-0.42109 -1.78828,-0.77109 -0.36823,-0.35 -0.55235,-0.83671 -0.55235,-1.46016 0,-0.72187 0.25339,-1.29061 0.76016,-1.70625 0.51041,-0.41561 1.21223,-0.62343 2.10547,-0.62343 0.3828,0 0.77291,0.0346 1.17031,0.1039 0.39739,0.0693 0.8039,0.17319 1.21953,0.31172"
+ id="path3288"
+ inkscape:connector-curvature="0" /><path
+ d="m 595.273,360.40143 c -0.81303,0 -1.37631,0.093 -1.68985,0.27891 -0.31354,0.18594 -0.47031,0.50312 -0.47031,0.95156 0,0.35729 0.11667,0.64167 0.35,0.85312 0.23698,0.20782 0.55781,0.31172 0.9625,0.31172 0.55781,0 1.00442,-0.19687 1.33985,-0.59062 0.33905,-0.3974 0.50858,-0.92422 0.50859,-1.58047 l 0,-0.22422 -1.00078,0 m 2.00703,-0.41563 0,3.49454 -1.00625,0 0,-0.92969 c -0.22969,0.37187 -0.51589,0.64713 -0.85859,0.82578 -0.34272,0.175 -0.76199,0.2625 -1.25782,0.2625 -0.62708,0 -1.12656,-0.175 -1.49843,-0.525 -0.36823,-0.35365 -0.55235,-0.82578 -0.55235,-1.41641 0,-0.68906 0.22969,-1.20859 0.68906,-1.55859 0.46302,-0.35 1.15208,-0.525 2.06719,-0.525 l 1.41094,0 0,-0.0984 c -10e-6,-0.46301 -0.15313,-0.82031 -0.45938,-1.07187 -0.3026,-0.25521 -0.72917,-0.38281 -1.27968,-0.38282 -0.35001,1e-5 -0.69089,0.0419 -1.02266,0.12579 -0.33177,0.0838 -0.65078,0.20964 -0.95703,0.37734 l 0,-0.92969 c 0.36823,-0.14218 0.72552,-0.24791 1.07187,-0.31719 0.34636,-0.0729 0.68359,-0.10936 1.01172,-0.10937 0.88594,1e-5 1.54765,0.22969 1.98516,0.68906 0.43749,0.45938 0.65624,1.15574 0.65625,2.08906"
+ id="path3290"
+ inkscape:connector-curvature="0" /><path
+ d="m 598.63628,357.35534 1.0664,0 1.91407,5.14062 1.91406,-5.14062 1.06641,0 -2.29688,6.125 -1.36719,0 -2.29687,-6.125"
+ id="path3292"
+ inkscape:connector-curvature="0" /><path
+ d="m 611.22534,360.16627 0,0.49219 -4.62656,0 c 0.0437,0.69271 0.25156,1.22136 0.62344,1.58594 0.37551,0.36094 0.89687,0.5414 1.56406,0.5414 0.38645,0 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72552,-0.23698 1.08281,-0.42657 l 0,0.95157 c -0.36094,0.15312 -0.73099,0.26979 -1.11015,0.35 -0.37917,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97708,0 -1.75182,-0.28438 -2.32422,-0.85313 -0.56875,-0.56874 -0.85312,-1.33801 -0.85312,-2.30781 0,-1.0026 0.26979,-1.79739 0.80937,-2.38437 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82396,1e-5 1.47474,0.26615 1.95235,0.79844 0.48124,0.52865 0.72186,1.2487 0.72187,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16224,-0.98984 -0.46484,-1.31797 -0.29897,-0.32812 -0.69636,-0.49218 -1.19219,-0.49219 -0.56146,1e-5 -1.01172,0.1586 -1.35078,0.47579 -0.33542,0.31719 -0.52865,0.7638 -0.57969,1.33984 l 3.5875,-0.005"
+ id="path3294"
+ inkscape:connector-curvature="0" /><path
+ d="m 618.99097,364.04909 c -0.28438,0.72916 -0.56146,1.20494 -0.83125,1.42734 -0.2698,0.22239 -0.63073,0.33359 -1.08281,0.33359 l -0.80391,0 0,-0.84218 0.59062,0 c 0.27709,-1e-5 0.49219,-0.0656 0.64532,-0.19688 0.15312,-0.13125 0.32265,-0.44115 0.50859,-0.92969 l 0.18047,-0.45937 -2.47734,-6.02656 1.0664,0 1.91406,4.79062 1.91407,-4.79062 1.0664,0 -2.69062,6.69375"
+ id="path3296"
+ inkscape:connector-curvature="0" /><path
+ d="m 625.44409,358.0608 c -0.53958,1e-5 -0.96615,0.21147 -1.27968,0.63438 -0.31355,0.41927 -0.47032,0.99532 -0.47032,1.72812 0,0.73282 0.15495,1.31068 0.46485,1.7336 0.31354,0.41927 0.74192,0.6289 1.28515,0.6289 0.53594,0 0.96068,-0.21145 1.27422,-0.63437 0.31354,-0.42292 0.47031,-0.99896 0.47031,-1.72813 0,-0.72551 -0.15677,-1.29973 -0.47031,-1.72265 -0.31354,-0.42656 -0.73828,-0.63984 -1.27422,-0.63985 m 0,-0.85312 c 0.875,1e-5 1.56224,0.28438 2.06172,0.85312 0.49947,0.56876 0.74921,1.35626 0.74922,2.3625 -1e-5,1.00261 -0.24975,1.79011 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85313 -2.06172,0.85313 -0.87865,0 -1.56771,-0.28438 -2.06718,-0.85313 -0.49584,-0.57239 -0.74376,-1.35989 -0.74375,-2.3625 -10e-6,-1.00624 0.24791,-1.79374 0.74375,-2.3625 0.49947,-0.56874 1.18853,-0.85311 2.06718,-0.85312"
+ id="path3298"
+ inkscape:connector-curvature="0" /><path
+ d="m 629.81362,361.06315 0,-3.70781 1.00625,0 0,3.66953 c 0,0.57969 0.11302,1.01536 0.33907,1.30703 0.22603,0.28802 0.5651,0.43203 1.01718,0.43203 0.54323,0 0.97161,-0.17318 1.28516,-0.51953 0.31718,-0.34635 0.47578,-0.81849 0.47578,-1.41641 l 0,-3.47265 1.00625,0 0,6.125 -1.00625,0 0,-0.94063 c -0.24428,0.37188 -0.52865,0.64896 -0.85312,0.83125 -0.32084,0.17865 -0.69454,0.26797 -1.1211,0.26797 -0.70365,0 -1.23776,-0.21875 -1.60234,-0.65625 -0.36459,-0.4375 -0.54688,-1.07734 -0.54688,-1.91953"
+ id="path3300"
+ inkscape:connector-curvature="0" /><path
+ d="m 640.57612,358.29596 c -0.11302,-0.0656 -0.23698,-0.11302 -0.37187,-0.14219 -0.13126,-0.0328 -0.27709,-0.0492 -0.4375,-0.0492 -0.56876,10e-6 -1.00625,0.18595 -1.3125,0.55782 -0.30261,0.36823 -0.45391,0.8987 -0.45391,1.5914 l 0,3.22657 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.21146,-0.37187 0.48672,-0.64713 0.82578,-0.82578 0.33906,-0.18229 0.75104,-0.27343 1.23594,-0.27344 0.0693,1e-5 0.14583,0.005 0.22969,0.0164 0.0838,0.007 0.17682,0.0201 0.2789,0.0383 l 0.005,1.03359"
+ id="path3302"
+ inkscape:connector-curvature="0" /><path
+ d="m 649.23862,358.28502 0,-3.31406 1.00625,0 0,8.50938 -1.00625,0 0,-0.91875 c -0.21146,0.36458 -0.47943,0.63619 -0.8039,0.81484 -0.32084,0.175 -0.7073,0.2625 -1.15938,0.2625 -0.7401,0 -1.34349,-0.29531 -1.81015,-0.88594 -0.46302,-0.59062 -0.69453,-1.36718 -0.69453,-2.32969 0,-0.96249 0.23151,-1.73905 0.69453,-2.32968 0.46666,-0.59062 1.07005,-0.88593 1.81015,-0.88594 0.45208,1e-5 0.83854,0.0893 1.15938,0.26797 0.32447,0.175 0.59244,0.44479 0.8039,0.80937 m -3.4289,2.13828 c 0,0.74011 0.1513,1.32162 0.4539,1.74454 0.30625,0.41927 0.72552,0.6289 1.25782,0.6289 0.53228,0 0.95156,-0.20963 1.25781,-0.6289 0.30624,-0.42292 0.45937,-1.00443 0.45937,-1.74454 0,-0.7401 -0.15313,-1.31978 -0.45937,-1.73906 -0.30625,-0.42291 -0.72553,-0.63437 -1.25781,-0.63437 -0.5323,0 -0.95157,0.21146 -1.25782,0.63437 -0.3026,0.41928 -0.4539,0.99896 -0.4539,1.73906"
+ id="path3304"
+ inkscape:connector-curvature="0" /><path
+ d="m 657.55659,360.16627 0,0.49219 -4.62656,0 c 0.0438,0.69271 0.25156,1.22136 0.62344,1.58594 0.37552,0.36094 0.89687,0.5414 1.56406,0.5414 0.38645,0 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72552,-0.23698 1.08282,-0.42657 l 0,0.95157 c -0.36095,0.15312 -0.731,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97708,0 -1.75182,-0.28438 -2.32421,-0.85313 -0.56876,-0.56874 -0.85313,-1.33801 -0.85313,-2.30781 0,-1.0026 0.26979,-1.79739 0.80938,-2.38437 0.54322,-0.59062 1.27421,-0.88593 2.19296,-0.88594 0.82396,1e-5 1.47474,0.26615 1.95235,0.79844 0.48124,0.52865 0.72187,1.2487 0.72187,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16224,-0.98984 -0.46484,-1.31797 -0.29896,-0.32812 -0.69636,-0.49218 -1.19219,-0.49219 -0.56146,1e-5 -1.01172,0.1586 -1.35078,0.47579 -0.33542,0.31719 -0.52865,0.7638 -0.57969,1.33984 l 3.5875,-0.005"
+ id="path3306"
+ inkscape:connector-curvature="0" /><path
+ d="m 663.11284,357.5358 0,0.95157 c -0.28438,-0.14583 -0.57969,-0.25521 -0.88593,-0.32813 -0.30626,-0.0729 -0.62345,-0.10937 -0.95157,-0.10937 -0.49948,0 -0.875,0.0766 -1.12656,0.22968 -0.24792,0.15313 -0.37188,0.38282 -0.37187,0.68907 -1e-5,0.23333 0.0893,0.41745 0.26796,0.55234 0.17865,0.13125 0.53776,0.25704 1.07735,0.37734 l 0.34453,0.0766 c 0.71458,0.15312 1.22135,0.37005 1.52031,0.65078 0.3026,0.27708 0.4539,0.66536 0.45391,1.16484 -10e-6,0.56875 -0.22605,1.01901 -0.67813,1.35078 -0.44844,0.33177 -1.06641,0.49766 -1.8539,0.49766 -0.32813,0 -0.67084,-0.0328 -1.02813,-0.0984 -0.35365,-0.062 -0.72734,-0.15677 -1.12109,-0.28437 l 0,-1.03907 c 0.37187,0.19323 0.73828,0.33907 1.09922,0.4375 0.36093,0.0948 0.71822,0.14219 1.07187,0.14219 0.47396,0 0.83854,-0.0802 1.09375,-0.24062 0.25521,-0.16407 0.38281,-0.39375 0.38281,-0.68907 0,-0.27343 -0.093,-0.48307 -0.2789,-0.6289 -0.1823,-0.14583 -0.58516,-0.2862 -1.2086,-0.4211 l -0.35,-0.082 c -0.62343,-0.13124 -1.07369,-0.33177 -1.35078,-0.60156 -0.27708,-0.27343 -0.41562,-0.64713 -0.41562,-1.12109 0,-0.57604 0.20416,-1.02083 0.6125,-1.33438 0.40833,-0.31353 0.98802,-0.4703 1.73906,-0.47031 0.37187,10e-6 0.72187,0.0274 1.05,0.082 0.32812,0.0547 0.63073,0.13673 0.90781,0.24609"
+ id="path3308"
+ inkscape:connector-curvature="0" /><path
+ d="m 665.04878,357.35534 1.00625,0 0,6.125 -1.00625,0 0,-6.125 m 0,-2.38438 1.00625,0 0,1.27422 -1.00625,0 0,-1.27422"
+ id="path3310"
+ inkscape:connector-curvature="0" /><path
+ d="m 672.18549,360.34674 c 0,-0.72916 -0.1513,-1.29426 -0.4539,-1.69531 -0.29897,-0.40104 -0.72006,-0.60156 -1.26328,-0.60156 -0.53959,0 -0.96068,0.20052 -1.26329,0.60156 -0.29896,0.40105 -0.44843,0.96615 -0.44843,1.69531 0,0.72552 0.14947,1.28881 0.44843,1.68985 0.30261,0.40104 0.7237,0.60156 1.26329,0.60156 0.54322,0 0.96431,-0.20052 1.26328,-0.60156 0.3026,-0.40104 0.4539,-0.96433 0.4539,-1.68985 m 1.00625,2.37344 c 0,1.04271 -0.23151,1.81745 -0.69453,2.32422 -0.46302,0.51041 -1.17214,0.76562 -2.12734,0.76562 -0.35365,0 -0.68724,-0.0273 -1.00078,-0.082 -0.31355,-0.051 -0.61797,-0.13125 -0.91328,-0.24062 l 0,-0.97891 c 0.29531,0.16042 0.58697,0.27891 0.875,0.35547 0.28801,0.0766 0.5815,0.11484 0.88046,0.11484 0.6599,0 1.15391,-0.17318 1.48204,-0.51953 0.32812,-0.34271 0.49218,-0.86224 0.49218,-1.55859 l 0,-0.49766 c -0.20781,0.36094 -0.47396,0.63073 -0.79843,0.80938 -0.32449,0.17864 -0.71277,0.26797 -1.16485,0.26797 -0.75104,0 -1.35625,-0.2862 -1.81562,-0.8586 -0.45938,-0.57239 -0.68907,-1.33073 -0.68907,-2.275 0,-0.94791 0.22969,-1.70807 0.68907,-2.28047 0.45937,-0.57239 1.06458,-0.85858 1.81562,-0.85859 0.45208,10e-6 0.84036,0.0893 1.16485,0.26797 0.32447,0.17865 0.59062,0.44844 0.79843,0.80937 l 0,-0.92968 1.00625,0 0,5.36484"
+ id="path3312"
+ inkscape:connector-curvature="0" /><path
+ d="m 680.35581,359.78346 0,3.69688 -1.00625,0 0,-3.66407 c -10e-6,-0.57968 -0.11303,-1.01353 -0.33907,-1.30156 -0.22604,-0.28802 -0.56511,-0.43203 -1.01718,-0.43203 -0.54324,0 -0.97162,0.17318 -1.28516,0.51953 -0.31354,0.34636 -0.47031,0.81849 -0.47031,1.41641 l 0,3.46172 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.24062,-0.36823 0.52317,-0.64349 0.84765,-0.82578 0.32813,-0.18229 0.70547,-0.27343 1.13203,-0.27344 0.70365,1e-5 1.23594,0.21876 1.59688,0.65625 0.36093,0.43386 0.5414,1.0737 0.54141,1.91953"
+ id="path3314"
+ inkscape:connector-curvature="0" /><path
+ d="m 688.723,360.40143 c -0.81303,0 -1.37631,0.093 -1.68985,0.27891 -0.31354,0.18594 -0.47031,0.50312 -0.47031,0.95156 0,0.35729 0.11667,0.64167 0.35,0.85312 0.23698,0.20782 0.55781,0.31172 0.9625,0.31172 0.55781,0 1.00442,-0.19687 1.33984,-0.59062 0.33906,-0.3974 0.50859,-0.92422 0.5086,-1.58047 l 0,-0.22422 -1.00078,0 m 2.00703,-0.41563 0,3.49454 -1.00625,0 0,-0.92969 c -0.22969,0.37187 -0.51589,0.64713 -0.8586,0.82578 -0.34271,0.175 -0.76198,0.2625 -1.25781,0.2625 -0.62708,0 -1.12656,-0.175 -1.49844,-0.525 -0.36823,-0.35365 -0.55234,-0.82578 -0.55234,-1.41641 0,-0.68906 0.22969,-1.20859 0.68906,-1.55859 0.46302,-0.35 1.15208,-0.525 2.06719,-0.525 l 1.41094,0 0,-0.0984 c -1e-5,-0.46301 -0.15313,-0.82031 -0.45938,-1.07187 -0.30261,-0.25521 -0.72917,-0.38281 -1.27968,-0.38282 -0.35001,1e-5 -0.69089,0.0419 -1.02266,0.12579 -0.33177,0.0838 -0.65078,0.20964 -0.95703,0.37734 l 0,-0.92969 c 0.36823,-0.14218 0.72552,-0.24791 1.07187,-0.31719 0.34635,-0.0729 0.68359,-0.10936 1.01172,-0.10937 0.88593,1e-5 1.54765,0.22969 1.98516,0.68906 0.43749,0.45938 0.65624,1.15574 0.65625,2.08906"
+ id="path3316"
+ inkscape:connector-curvature="0" /><path
+ d="m 696.71284,357.5358 0,0.95157 c -0.28438,-0.14583 -0.57969,-0.25521 -0.88594,-0.32813 -0.30625,-0.0729 -0.62344,-0.10937 -0.95156,-0.10937 -0.49948,0 -0.875,0.0766 -1.12656,0.22968 -0.24792,0.15313 -0.37188,0.38282 -0.37188,0.68907 0,0.23333 0.0893,0.41745 0.26797,0.55234 0.17865,0.13125 0.53776,0.25704 1.07735,0.37734 l 0.34453,0.0766 c 0.71458,0.15312 1.22135,0.37005 1.52031,0.65078 0.3026,0.27708 0.4539,0.66536 0.45391,1.16484 -10e-6,0.56875 -0.22605,1.01901 -0.67813,1.35078 -0.44844,0.33177 -1.06641,0.49766 -1.8539,0.49766 -0.32813,0 -0.67084,-0.0328 -1.02813,-0.0984 -0.35365,-0.062 -0.72734,-0.15677 -1.12109,-0.28437 l 0,-1.03907 c 0.37187,0.19323 0.73828,0.33907 1.09922,0.4375 0.36093,0.0948 0.71822,0.14219 1.07187,0.14219 0.47396,0 0.83854,-0.0802 1.09375,-0.24062 0.2552,-0.16407 0.38281,-0.39375 0.38281,-0.68907 0,-0.27343 -0.093,-0.48307 -0.2789,-0.6289 -0.1823,-0.14583 -0.58516,-0.2862 -1.2086,-0.4211 l -0.35,-0.082 c -0.62344,-0.13124 -1.0737,-0.33177 -1.35078,-0.60156 -0.27708,-0.27343 -0.41562,-0.64713 -0.41562,-1.12109 0,-0.57604 0.20416,-1.02083 0.6125,-1.33438 0.40833,-0.31353 0.98802,-0.4703 1.73906,-0.47031 0.37187,10e-6 0.72187,0.0274 1.05,0.082 0.32812,0.0547 0.63072,0.13673 0.90781,0.24609"
+ id="path3318"
+ inkscape:connector-curvature="0" /><path
+ d="m 704.998,360.40143 c -0.81303,0 -1.37631,0.093 -1.68985,0.27891 -0.31354,0.18594 -0.47031,0.50312 -0.47031,0.95156 0,0.35729 0.11667,0.64167 0.35,0.85312 0.23698,0.20782 0.55781,0.31172 0.9625,0.31172 0.55781,0 1.00442,-0.19687 1.33985,-0.59062 0.33905,-0.3974 0.50858,-0.92422 0.50859,-1.58047 l 0,-0.22422 -1.00078,0 m 2.00703,-0.41563 0,3.49454 -1.00625,0 0,-0.92969 c -0.22969,0.37187 -0.51589,0.64713 -0.85859,0.82578 -0.34272,0.175 -0.76199,0.2625 -1.25782,0.2625 -0.62708,0 -1.12656,-0.175 -1.49843,-0.525 -0.36823,-0.35365 -0.55235,-0.82578 -0.55235,-1.41641 0,-0.68906 0.22969,-1.20859 0.68906,-1.55859 0.46302,-0.35 1.15209,-0.525 2.06719,-0.525 l 1.41094,0 0,-0.0984 c -10e-6,-0.46301 -0.15313,-0.82031 -0.45938,-1.07187 -0.3026,-0.25521 -0.72917,-0.38281 -1.27968,-0.38282 -0.35001,1e-5 -0.69089,0.0419 -1.02266,0.12579 -0.33177,0.0838 -0.65078,0.20964 -0.95703,0.37734 l 0,-0.92969 c 0.36823,-0.14218 0.72552,-0.24791 1.07187,-0.31719 0.34636,-0.0729 0.6836,-0.10936 1.01172,-0.10937 0.88594,1e-5 1.54765,0.22969 1.98516,0.68906 0.43749,0.45938 0.65624,1.15574 0.65625,2.08906"
+ id="path3320"
+ inkscape:connector-curvature="0" /><path
+ d="m 714.17455,359.78346 0,3.69688 -1.00625,0 0,-3.66407 c 0,-0.57968 -0.11302,-1.01353 -0.33906,-1.30156 -0.22604,-0.28802 -0.56511,-0.43203 -1.01719,-0.43203 -0.54323,0 -0.97161,0.17318 -1.28515,0.51953 -0.31355,0.34636 -0.47032,0.81849 -0.47031,1.41641 l 0,3.46172 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.24062,-0.36823 0.52317,-0.64349 0.84765,-0.82578 0.32812,-0.18229 0.70547,-0.27343 1.13203,-0.27344 0.70364,1e-5 1.23594,0.21876 1.59688,0.65625 0.36093,0.43386 0.5414,1.0737 0.5414,1.91953"
+ id="path3322"
+ inkscape:connector-curvature="0" /><path
+ d="m 724.69643,355.58346 0,1.07734 c -0.41927,-0.20051 -0.81485,-0.34999 -1.18672,-0.44843 -0.37188,-0.0984 -0.73099,-0.14765 -1.07734,-0.14766 -0.60157,1e-5 -1.06641,0.11667 -1.39453,0.35 -0.32448,0.23334 -0.48672,0.56511 -0.48672,0.99531 0,0.36095 0.10755,0.63438 0.32266,0.82032 0.21874,0.18229 0.63072,0.32995 1.23593,0.44296 l 0.66719,0.13672 c 0.82395,0.15678 1.43099,0.43386 1.82109,0.83125 0.39375,0.39376 0.59062,0.9224 0.59063,1.58594 -10e-6,0.79115 -0.26615,1.39089 -0.79844,1.79922 -0.52865,0.40833 -1.30521,0.6125 -2.32969,0.6125 -0.38646,0 -0.79844,-0.0437 -1.23593,-0.13125 -0.43386,-0.0875 -0.88412,-0.21693 -1.35078,-0.38828 l 0,-1.1375 c 0.44843,0.25156 0.88775,0.44114 1.31796,0.56875 0.43021,0.1276 0.85313,0.1914 1.26875,0.1914 0.63073,0 1.11745,-0.12395 1.46016,-0.37187 0.3427,-0.24792 0.51406,-0.60156 0.51406,-1.06094 0,-0.40104 -0.12396,-0.71458 -0.37187,-0.94062 -0.24428,-0.22604 -0.64714,-0.39557 -1.2086,-0.5086 l -0.67265,-0.13125 c -0.82396,-0.16406 -1.42006,-0.42109 -1.78828,-0.77109 -0.36823,-0.35 -0.55235,-0.83671 -0.55235,-1.46016 0,-0.72187 0.25339,-1.29061 0.76016,-1.70625 0.51041,-0.41561 1.21224,-0.62343 2.10547,-0.62343 0.38281,0 0.77291,0.0346 1.17031,0.1039 0.39739,0.0693 0.8039,0.17319 1.21953,0.31172"
+ id="path3324"
+ inkscape:connector-curvature="0" /><path
+ d="m 729.01674,363.48034 -3.11718,-8.16485 1.1539,0 2.58672,6.87422 2.59219,-6.87422 1.14844,0 -3.11172,8.16485 -1.25235,0"
+ id="path3326"
+ inkscape:connector-curvature="0" /><path
+ d="m 740.13471,362.31549 0,-2.19297 -1.80468,0 0,-0.90781 2.89843,0 0,3.50547 c -0.42657,0.3026 -0.89688,0.53229 -1.41093,0.68906 -0.51407,0.15313 -1.06277,0.22969 -1.6461,0.22969 -1.27604,0 -2.275,-0.37188 -2.99687,-1.11563 -0.71823,-0.74739 -1.07735,-1.78645 -1.07735,-3.11718 0,-1.33437 0.35912,-2.37343 1.07735,-3.11719 0.72187,-0.74739 1.72083,-1.12109 2.99687,-1.12109 0.53229,0 1.03724,0.0656 1.51485,0.19687 0.48124,0.13126 0.92421,0.32449 1.3289,0.57969 l 0,1.17578 c -0.40834,-0.34635 -0.84219,-0.60703 -1.30156,-0.78203 -0.45938,-0.17499 -0.94245,-0.26249 -1.44922,-0.2625 -0.99896,1e-5 -1.75,0.27891 -2.25312,0.83672 -0.49948,0.55781 -0.74922,1.38906 -0.74922,2.49375 0,1.10104 0.24974,1.93047 0.74922,2.48828 0.50312,0.55781 1.25416,0.83672 2.25312,0.83672 0.3901,0 0.73828,-0.0328 1.04453,-0.0984 0.30625,-0.0693 0.58151,-0.175 0.82578,-0.31719"
+ id="path3328"
+ inkscape:connector-curvature="0" /><path
+ d="m 749.87456,354.97096 0,0.83672 -0.9625,0 c -0.36094,10e-6 -0.61251,0.0729 -0.75469,0.21875 -0.13854,0.14584 -0.20781,0.40834 -0.20781,0.7875 l 0,0.54141 1.65703,0 0,0.78203 -1.65703,0 0,5.34297 -1.01172,0 0,-5.34297 -0.9625,0 0,-0.78203 0.9625,0 0,-0.42657 c 0,-0.68176 0.15859,-1.17759 0.47578,-1.4875 0.31719,-0.31353 0.82031,-0.4703 1.50937,-0.47031 l 0.95157,0"
+ id="path3330"
+ inkscape:connector-curvature="0" /><path
+ d="m 750.71128,357.35534 1.00625,0 0,6.125 -1.00625,0 0,-6.125 m 0,-2.38438 1.00625,0 0,1.27422 -1.00625,0 0,-1.27422"
+ id="path3332"
+ inkscape:connector-curvature="0" /><path
+ d="m 753.81752,354.97096 1.00625,0 0,8.50938 -1.00625,0 0,-8.50938"
+ id="path3334"
+ inkscape:connector-curvature="0" /><path
+ d="m 762.16285,360.16627 0,0.49219 -4.62656,0 c 0.0437,0.69271 0.25156,1.22136 0.62343,1.58594 0.37552,0.36094 0.89687,0.5414 1.56407,0.5414 0.38645,0 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72551,-0.23698 1.08281,-0.42657 l 0,0.95157 c -0.36094,0.15312 -0.73099,0.26979 -1.11015,0.35 -0.37918,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97709,0 -1.75183,-0.28438 -2.32422,-0.85313 -0.56875,-0.56874 -0.85313,-1.33801 -0.85312,-2.30781 -1e-5,-1.0026 0.26979,-1.79739 0.80937,-2.38437 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82395,1e-5 1.47473,0.26615 1.95234,0.79844 0.48125,0.52865 0.72187,1.2487 0.72188,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16225,-0.98984 -0.46485,-1.31797 -0.29896,-0.32812 -0.69635,-0.49218 -1.19218,-0.49219 -0.56146,1e-5 -1.01172,0.1586 -1.35078,0.47579 -0.33542,0.31719 -0.52865,0.7638 -0.57969,1.33984 l 3.5875,-0.005"
+ id="path3336"
+ inkscape:connector-curvature="0" /><path
+ d="m 763.9566,362.09127 1.1539,0 0,1.38907 -1.1539,0 0,-1.38907"
+ id="path3338"
+ inkscape:connector-curvature="0" /><path
+ d="m 573.79722,377.55799 c 0.52864,0.11303 0.94062,0.34818 1.23593,0.70547 0.29896,0.35729 0.44844,0.79844 0.44844,1.32344 0,0.80573 -0.27709,1.42916 -0.83125,1.87031 -0.55417,0.44115 -1.34167,0.66172 -2.3625,0.66172 -0.34271,0 -0.69635,-0.0346 -1.06094,-0.10391 -0.36093,-0.0656 -0.73463,-0.16588 -1.12109,-0.30078 l 0,-1.06641 c 0.30625,0.17865 0.64167,0.31355 1.00625,0.40469 0.36458,0.0911 0.74557,0.13672 1.14297,0.13672 0.6927,0 1.21953,-0.13672 1.58047,-0.41016 0.36458,-0.27343 0.54687,-0.67083 0.54687,-1.19218 0,-0.48125 -0.16953,-0.85677 -0.50859,-1.12657 -0.33542,-0.27343 -0.80391,-0.41015 -1.40547,-0.41015 l -0.95156,0 0,-0.90781 0.99531,0 c 0.54323,0 0.95885,-0.10755 1.24688,-0.32266 0.28801,-0.21875 0.43202,-0.53229 0.43203,-0.94063 -10e-6,-0.41926 -0.14949,-0.74009 -0.44844,-0.9625 -0.29532,-0.22603 -0.72006,-0.33905 -1.27422,-0.33906 -0.30261,1e-5 -0.62709,0.0328 -0.97344,0.0984 -0.34635,0.0656 -0.72734,0.16772 -1.14297,0.30625 l 0,-0.98438 c 0.41927,-0.11665 0.8112,-0.20415 1.17579,-0.2625 0.36822,-0.0583 0.71458,-0.0875 1.03906,-0.0875 0.83854,1e-5 1.50208,0.19142 1.99062,0.57422 0.48854,0.37918 0.73281,0.89324 0.73282,1.54219 -1e-5,0.45209 -0.12944,0.8349 -0.38829,1.14844 -0.25886,0.3099 -0.62708,0.525 -1.10468,0.64531"
+ id="path3340"
+ inkscape:connector-curvature="0" /><path
+ d="m 577.28081,373.4619 0.875,0 c 0.54687,0.86042 0.95521,1.70261 1.225,2.52656 0.27343,0.82396 0.41015,1.64245 0.41016,2.45547 -10e-6,0.81667 -0.13673,1.6388 -0.41016,2.4664 -0.26979,0.82761 -0.67813,1.6698 -1.225,2.52657 l -0.875,0 c 0.48489,-0.8349 0.84583,-1.66433 1.08281,-2.48828 0.24063,-0.82761 0.36094,-1.6625 0.36094,-2.50469 0,-0.84218 -0.12031,-1.67343 -0.36094,-2.49375 -0.23698,-0.82031 -0.59792,-1.64973 -1.08281,-2.48828"
+ id="path3342"
+ inkscape:connector-curvature="0" /><path
+ d="m 585.298,373.79549 1.11015,0 0,4.96016 c 0,0.875 0.1586,1.50573 0.47579,1.89218 0.31718,0.38282 0.83124,0.57422 1.54218,0.57422 0.70729,0 1.21953,-0.1914 1.53672,-0.57422 0.31718,-0.38645 0.47578,-1.01718 0.47578,-1.89218 l 0,-4.96016 1.11016,0 0,5.09688 c -10e-6,1.06458 -0.26433,1.86849 -0.79297,2.41171 -0.52501,0.54323 -1.30157,0.81485 -2.32969,0.81485 -1.03177,0 -1.81198,-0.27162 -2.34062,-0.81485 -0.525,-0.54322 -0.7875,-1.34713 -0.7875,-2.41171 l 0,-5.09688"
+ id="path3344"
+ inkscape:connector-curvature="0" /><path
+ d="m 594.55659,381.04158 0,3.24844 -1.01172,0 0,-8.45469 1.01172,0 0,0.92969 c 0.21146,-0.36458 0.4776,-0.63437 0.79844,-0.80937 0.32447,-0.17864 0.71093,-0.26797 1.15937,-0.26797 0.74375,0 1.34713,0.29532 1.81016,0.88594 0.46666,0.59063 0.69999,1.36719 0.7,2.32968 -10e-6,0.96251 -0.23334,1.73907 -0.7,2.32969 -0.46303,0.59063 -1.06641,0.88594 -1.81016,0.88594 -0.44844,0 -0.8349,-0.0875 -1.15937,-0.2625 -0.32084,-0.17865 -0.58698,-0.45026 -0.79844,-0.81485 m 3.42344,-2.13828 c -1e-5,-0.7401 -0.15313,-1.31978 -0.45938,-1.73906 -0.30261,-0.42291 -0.72005,-0.63437 -1.25234,-0.63437 -0.53229,0 -0.95157,0.21146 -1.25781,0.63437 -0.30261,0.41928 -0.45391,0.99896 -0.45391,1.73906 0,0.74011 0.1513,1.32162 0.45391,1.74453 0.30624,0.41928 0.72552,0.62891 1.25781,0.62891 0.53229,0 0.94973,-0.20963 1.25234,-0.62891 0.30625,-0.42291 0.45937,-1.00442 0.45938,-1.74453"
+ id="path3346"
+ inkscape:connector-curvature="0" /><path
+ d="m 600.69253,373.45096 1.00625,0 0,8.50937 -1.00625,0 0,-8.50937"
+ id="path3348"
+ inkscape:connector-curvature="0" /><path
+ d="m 606.17222,376.5408 c -0.53959,1e-5 -0.96615,0.21147 -1.27969,0.63438 -0.31355,0.41927 -0.47032,0.99531 -0.47031,1.72812 -1e-5,0.73282 0.15494,1.31068 0.46484,1.7336 0.31354,0.41927 0.74192,0.6289 1.28516,0.6289 0.53593,0 0.96067,-0.21145 1.27421,-0.63437 0.31354,-0.42292 0.47031,-0.99896 0.47032,-1.72813 -10e-6,-0.72551 -0.15678,-1.29973 -0.47032,-1.72265 -0.31354,-0.42656 -0.73828,-0.63984 -1.27421,-0.63985 m 0,-0.85312 c 0.87499,0 1.56223,0.28438 2.06171,0.85312 0.49948,0.56876 0.74922,1.35626 0.74922,2.3625 0,1.00261 -0.24974,1.79011 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85313 -2.06171,0.85313 -0.87865,0 -1.56771,-0.28438 -2.06719,-0.85313 -0.49584,-0.57239 -0.74375,-1.35989 -0.74375,-2.3625 0,-1.00624 0.24791,-1.79374 0.74375,-2.3625 0.49948,-0.56874 1.18854,-0.85312 2.06719,-0.85312"
+ id="path3350"
+ inkscape:connector-curvature="0" /><path
+ d="m 613.42925,378.88143 c -0.81302,0 -1.37631,0.093 -1.68984,0.2789 -0.31355,0.18594 -0.47032,0.50313 -0.47032,0.95157 0,0.35729 0.11667,0.64166 0.35,0.85312 0.23698,0.20782 0.55781,0.31172 0.9625,0.31172 0.55781,0 1.00443,-0.19687 1.33985,-0.59062 0.33905,-0.3974 0.50859,-0.92422 0.50859,-1.58047 l 0,-0.22422 -1.00078,0 m 2.00703,-0.41563 0,3.49453 -1.00625,0 0,-0.92968 c -0.22969,0.37187 -0.51589,0.64713 -0.85859,0.82578 -0.34271,0.175 -0.76199,0.2625 -1.25782,0.2625 -0.62708,0 -1.12656,-0.175 -1.49843,-0.525 -0.36823,-0.35365 -0.55235,-0.82578 -0.55235,-1.41641 0,-0.68906 0.22969,-1.20859 0.68907,-1.55859 0.46301,-0.35 1.15208,-0.525 2.06718,-0.525 l 1.41094,0 0,-0.0984 c 0,-0.46302 -0.15313,-0.82031 -0.45937,-1.07187 -0.30261,-0.25521 -0.72917,-0.38281 -1.27969,-0.38282 -0.35,10e-6 -0.69089,0.0419 -1.02266,0.12578 -0.33177,0.0839 -0.65078,0.20965 -0.95703,0.37735 l 0,-0.92969 c 0.36823,-0.14218 0.72552,-0.24791 1.07188,-0.31719 0.34635,-0.0729 0.68359,-0.10937 1.01171,-0.10937 0.88594,0 1.54766,0.22969 1.98516,0.68906 0.4375,0.45938 0.65624,1.15573 0.65625,2.08906"
+ id="path3352"
+ inkscape:connector-curvature="0" /><path
+ d="m 621.54487,376.76502 0,-3.31406 1.00625,0 0,8.50937 -1.00625,0 0,-0.91875 c -0.21146,0.36459 -0.47943,0.6362 -0.8039,0.81485 -0.32084,0.175 -0.7073,0.2625 -1.15938,0.2625 -0.74011,0 -1.34349,-0.29531 -1.81016,-0.88594 -0.46302,-0.59062 -0.69453,-1.36718 -0.69453,-2.32969 0,-0.96249 0.23151,-1.73905 0.69453,-2.32968 0.46667,-0.59062 1.07005,-0.88594 1.81016,-0.88594 0.45208,0 0.83854,0.0893 1.15938,0.26797 0.32447,0.175 0.59244,0.44479 0.8039,0.80937 m -3.4289,2.13828 c -10e-6,0.74011 0.1513,1.32162 0.4539,1.74453 0.30625,0.41928 0.72552,0.62891 1.25781,0.62891 0.53229,0 0.95156,-0.20963 1.25782,-0.62891 0.30624,-0.42291 0.45937,-1.00442 0.45937,-1.74453 0,-0.7401 -0.15313,-1.31978 -0.45937,-1.73906 -0.30626,-0.42291 -0.72553,-0.63437 -1.25782,-0.63437 -0.53229,0 -0.95156,0.21146 -1.25781,0.63437 -0.3026,0.41928 -0.45391,0.99896 -0.4539,1.73906"
+ id="path3354"
+ inkscape:connector-curvature="0" /><path
+ d="m 629.18472,374.09627 0,1.73906 2.07265,0 0,0.78204 -2.07265,0 0,3.325 c -10e-6,0.49948 0.0674,0.82031 0.20234,0.9625 0.13854,0.14218 0.41744,0.21328 0.83672,0.21328 l 1.03359,0 0,0.84218 -1.03359,0 c -0.77657,0 -1.3125,-0.14401 -1.60781,-0.43203 -0.29532,-0.29166 -0.44297,-0.82031 -0.44297,-1.58593 l 0,-3.325 -0.73828,0 0,-0.78204 0.73828,0 0,-1.73906 1.01172,0"
+ id="path3356"
+ inkscape:connector-curvature="0" /><path
+ d="m 637.67769,378.26346 0,3.69687 -1.00625,0 0,-3.66406 c -10e-6,-0.57968 -0.11303,-1.01353 -0.33907,-1.30156 -0.22604,-0.28802 -0.5651,-0.43203 -1.01718,-0.43203 -0.54324,0 -0.97162,0.17318 -1.28516,0.51953 -0.31354,0.34636 -0.47031,0.81849 -0.47031,1.41641 l 0,3.46171 -1.01172,0 0,-8.50937 1.01172,0 0,3.33594 c 0.24062,-0.36823 0.52317,-0.64349 0.84765,-0.82578 0.32813,-0.18229 0.70547,-0.27344 1.13203,-0.27344 0.70365,0 1.23594,0.21875 1.59688,0.65625 0.36093,0.43386 0.5414,1.0737 0.54141,1.91953"
+ id="path3358"
+ inkscape:connector-curvature="0" /><path
+ d="m 639.69565,375.83533 1.00625,0 0,6.125 -1.00625,0 0,-6.125 m 0,-2.38437 1.00625,0 0,1.27422 -1.00625,0 0,-1.27422"
+ id="path3360"
+ inkscape:connector-curvature="0" /><path
+ d="m 646.70659,376.0158 0,0.95157 c -0.28438,-0.14583 -0.57969,-0.25521 -0.88593,-0.32813 -0.30626,-0.0729 -0.62345,-0.10937 -0.95157,-0.10937 -0.49948,0 -0.875,0.0766 -1.12656,0.22968 -0.24792,0.15313 -0.37188,0.38282 -0.37187,0.68907 -1e-5,0.23333 0.0893,0.41745 0.26796,0.55234 0.17865,0.13125 0.53776,0.25703 1.07735,0.37734 l 0.34453,0.0766 c 0.71458,0.15312 1.22135,0.37005 1.52031,0.65078 0.3026,0.27708 0.4539,0.66536 0.45391,1.16484 -10e-6,0.56875 -0.22605,1.01901 -0.67813,1.35078 -0.44844,0.33177 -1.06641,0.49766 -1.8539,0.49766 -0.32813,0 -0.67084,-0.0328 -1.02813,-0.0984 -0.35365,-0.062 -0.72734,-0.15677 -1.12109,-0.28437 l 0,-1.03907 c 0.37187,0.19323 0.73828,0.33907 1.09922,0.4375 0.36093,0.0948 0.71822,0.14219 1.07187,0.14219 0.47396,0 0.83854,-0.0802 1.09375,-0.24062 0.25521,-0.16407 0.38281,-0.39375 0.38281,-0.68907 0,-0.27343 -0.093,-0.48307 -0.2789,-0.6289 -0.1823,-0.14583 -0.58516,-0.2862 -1.2086,-0.4211 l -0.35,-0.082 c -0.62343,-0.13125 -1.07369,-0.33177 -1.35078,-0.60156 -0.27708,-0.27343 -0.41562,-0.64713 -0.41562,-1.12109 0,-0.57604 0.20416,-1.02083 0.6125,-1.33438 0.40833,-0.31353 0.98802,-0.47031 1.73906,-0.47031 0.37187,0 0.72187,0.0274 1.05,0.082 0.32812,0.0547 0.63073,0.13672 0.90781,0.24609"
+ id="path3362"
+ inkscape:connector-curvature="0" /><path
+ d="m 656.23862,376.76502 0,-3.31406 1.00625,0 0,8.50937 -1.00625,0 0,-0.91875 c -0.21146,0.36459 -0.47943,0.6362 -0.8039,0.81485 -0.32084,0.175 -0.7073,0.2625 -1.15938,0.2625 -0.7401,0 -1.34349,-0.29531 -1.81015,-0.88594 -0.46302,-0.59062 -0.69453,-1.36718 -0.69453,-2.32969 0,-0.96249 0.23151,-1.73905 0.69453,-2.32968 0.46666,-0.59062 1.07005,-0.88594 1.81015,-0.88594 0.45208,0 0.83854,0.0893 1.15938,0.26797 0.32447,0.175 0.59244,0.44479 0.8039,0.80937 m -3.4289,2.13828 c 0,0.74011 0.1513,1.32162 0.4539,1.74453 0.30625,0.41928 0.72552,0.62891 1.25782,0.62891 0.53228,0 0.95156,-0.20963 1.25781,-0.62891 0.30624,-0.42291 0.45937,-1.00442 0.45937,-1.74453 0,-0.7401 -0.15313,-1.31978 -0.45937,-1.73906 -0.30625,-0.42291 -0.72553,-0.63437 -1.25781,-0.63437 -0.5323,0 -0.95157,0.21146 -1.25782,0.63437 -0.3026,0.41928 -0.4539,0.99896 -0.4539,1.73906"
+ id="path3364"
+ inkscape:connector-curvature="0" /><path
+ d="m 664.55659,378.64627 0,0.49219 -4.62656,0 c 0.0438,0.69271 0.25156,1.22136 0.62344,1.58594 0.37552,0.36094 0.89687,0.5414 1.56406,0.5414 0.38645,0 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72552,-0.23698 1.08282,-0.42657 l 0,0.95157 c -0.36095,0.15312 -0.731,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97708,0 -1.75182,-0.28438 -2.32421,-0.85313 -0.56876,-0.56875 -0.85313,-1.33802 -0.85313,-2.30781 0,-1.0026 0.26979,-1.79739 0.80938,-2.38437 0.54322,-0.59062 1.27421,-0.88594 2.19296,-0.88594 0.82396,0 1.47474,0.26615 1.95235,0.79844 0.48124,0.52865 0.72187,1.2487 0.72187,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16224,-0.98984 -0.46484,-1.31797 -0.29896,-0.32812 -0.69636,-0.49218 -1.19219,-0.49219 -0.56146,1e-5 -1.01172,0.1586 -1.35078,0.47578 -0.33542,0.3172 -0.52865,0.76381 -0.57969,1.33985 l 3.5875,-0.005"
+ id="path3366"
+ inkscape:connector-curvature="0" /><path
+ d="m 670.11284,376.0158 0,0.95157 c -0.28438,-0.14583 -0.57969,-0.25521 -0.88593,-0.32813 -0.30626,-0.0729 -0.62345,-0.10937 -0.95157,-0.10937 -0.49948,0 -0.875,0.0766 -1.12656,0.22968 -0.24792,0.15313 -0.37188,0.38282 -0.37187,0.68907 -1e-5,0.23333 0.0893,0.41745 0.26796,0.55234 0.17865,0.13125 0.53776,0.25703 1.07735,0.37734 l 0.34453,0.0766 c 0.71458,0.15312 1.22135,0.37005 1.52031,0.65078 0.3026,0.27708 0.4539,0.66536 0.45391,1.16484 -10e-6,0.56875 -0.22605,1.01901 -0.67813,1.35078 -0.44844,0.33177 -1.06641,0.49766 -1.8539,0.49766 -0.32813,0 -0.67084,-0.0328 -1.02813,-0.0984 -0.35365,-0.062 -0.72734,-0.15677 -1.12109,-0.28437 l 0,-1.03907 c 0.37187,0.19323 0.73828,0.33907 1.09922,0.4375 0.36093,0.0948 0.71822,0.14219 1.07187,0.14219 0.47396,0 0.83854,-0.0802 1.09375,-0.24062 0.25521,-0.16407 0.38281,-0.39375 0.38281,-0.68907 0,-0.27343 -0.093,-0.48307 -0.2789,-0.6289 -0.1823,-0.14583 -0.58516,-0.2862 -1.2086,-0.4211 l -0.35,-0.082 c -0.62343,-0.13125 -1.07369,-0.33177 -1.35078,-0.60156 -0.27708,-0.27343 -0.41562,-0.64713 -0.41562,-1.12109 0,-0.57604 0.20416,-1.02083 0.6125,-1.33438 0.40833,-0.31353 0.98802,-0.47031 1.73906,-0.47031 0.37187,0 0.72187,0.0274 1.05,0.082 0.32812,0.0547 0.63073,0.13672 0.90781,0.24609"
+ id="path3368"
+ inkscape:connector-curvature="0" /><path
+ d="m 672.04878,375.83533 1.00625,0 0,6.125 -1.00625,0 0,-6.125 m 0,-2.38437 1.00625,0 0,1.27422 -1.00625,0 0,-1.27422"
+ id="path3370"
+ inkscape:connector-curvature="0" /><path
+ d="m 679.1855,378.82674 c 0,-0.72916 -0.15131,-1.29427 -0.45391,-1.69531 -0.29896,-0.40104 -0.72005,-0.60156 -1.26328,-0.60156 -0.53958,0 -0.96068,0.20052 -1.26328,0.60156 -0.29896,0.40104 -0.44844,0.96615 -0.44844,1.69531 0,0.72552 0.14948,1.2888 0.44844,1.68984 0.3026,0.40105 0.7237,0.60157 1.26328,0.60157 0.54323,0 0.96432,-0.20052 1.26328,-0.60157 0.3026,-0.40104 0.45391,-0.96432 0.45391,-1.68984 m 1.00625,2.37344 c -10e-6,1.04271 -0.23152,1.81745 -0.69453,2.32422 -0.46303,0.51041 -1.17214,0.76562 -2.12734,0.76562 -0.35365,0 -0.68725,-0.0273 -1.00079,-0.082 -0.31354,-0.051 -0.61797,-0.13125 -0.91328,-0.24062 l 0,-0.97891 c 0.29531,0.16041 0.58698,0.2789 0.875,0.35547 0.28802,0.0766 0.58151,0.11484 0.88047,0.11484 0.65989,0 1.1539,-0.17318 1.48203,-0.51953 0.32812,-0.34271 0.49219,-0.86224 0.49219,-1.55859 l 0,-0.49766 c -0.20782,0.36094 -0.47396,0.63073 -0.79844,0.80938 -0.32448,0.17864 -0.71276,0.26796 -1.16484,0.26796 -0.75104,0 -1.35625,-0.28619 -1.81563,-0.85859 -0.45937,-0.57239 -0.68906,-1.33073 -0.68906,-2.275 0,-0.94791 0.22969,-1.70807 0.68906,-2.28047 0.45938,-0.57239 1.06459,-0.85859 1.81563,-0.85859 0.45208,0 0.84036,0.0893 1.16484,0.26797 0.32448,0.17865 0.59062,0.44844 0.79844,0.80937 l 0,-0.92969 1.00625,0 0,5.36485"
+ id="path3372"
+ inkscape:connector-curvature="0" /><path
+ d="m 687.35581,378.26346 0,3.69687 -1.00625,0 0,-3.66406 c 0,-0.57968 -0.11302,-1.01353 -0.33906,-1.30156 -0.22605,-0.28802 -0.56511,-0.43203 -1.01719,-0.43203 -0.54323,0 -0.97161,0.17318 -1.28515,0.51953 -0.31355,0.34636 -0.47032,0.81849 -0.47032,1.41641 l 0,3.46171 -1.01171,0 0,-6.125 1.01171,0 0,0.95157 c 0.24063,-0.36823 0.52318,-0.64349 0.84766,-0.82578 0.32812,-0.18229 0.70547,-0.27344 1.13203,-0.27344 0.70364,0 1.23593,0.21875 1.59688,0.65625 0.36093,0.43386 0.5414,1.0737 0.5414,1.91953"
+ id="path3374"
+ inkscape:connector-curvature="0" /><path
+ d="m 698.03081,378.26346 0,3.69687 -1.00625,0 0,-3.66406 c -10e-6,-0.57968 -0.11303,-1.01353 -0.33906,-1.30156 -0.22605,-0.28802 -0.56511,-0.43203 -1.01719,-0.43203 -0.54323,0 -0.97162,0.17318 -1.28516,0.51953 -0.31354,0.34636 -0.47031,0.81849 -0.47031,1.41641 l 0,3.46171 -1.01172,0 0,-8.50937 1.01172,0 0,3.33594 c 0.24062,-0.36823 0.52317,-0.64349 0.84766,-0.82578 0.32812,-0.18229 0.70546,-0.27344 1.13203,-0.27344 0.70364,0 1.23593,0.21875 1.59687,0.65625 0.36093,0.43386 0.5414,1.0737 0.54141,1.91953"
+ id="path3376"
+ inkscape:connector-curvature="0" /><path
+ d="m 705.28785,378.64627 0,0.49219 -4.62656,0 c 0.0437,0.69271 0.25156,1.22136 0.62343,1.58594 0.37552,0.36094 0.89687,0.5414 1.56407,0.5414 0.38645,0 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72551,-0.23698 1.08281,-0.42657 l 0,0.95157 c -0.36094,0.15312 -0.73099,0.26979 -1.11015,0.35 -0.37918,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97709,0 -1.75183,-0.28438 -2.32422,-0.85313 -0.56875,-0.56875 -0.85313,-1.33802 -0.85312,-2.30781 -1e-5,-1.0026 0.26979,-1.79739 0.80937,-2.38437 0.54323,-0.59062 1.27422,-0.88594 2.19297,-0.88594 0.82395,0 1.47473,0.26615 1.95234,0.79844 0.48125,0.52865 0.72187,1.2487 0.72188,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16225,-0.98984 -0.46485,-1.31797 -0.29896,-0.32812 -0.69635,-0.49218 -1.19218,-0.49219 -0.56146,1e-5 -1.01172,0.1586 -1.35078,0.47578 -0.33542,0.3172 -0.52865,0.76381 -0.57969,1.33985 l 3.5875,-0.005"
+ id="path3378"
+ inkscape:connector-curvature="0" /><path
+ d="m 710.48863,376.77596 c -0.11303,-0.0656 -0.23698,-0.11302 -0.37188,-0.14219 -0.13125,-0.0328 -0.27708,-0.0492 -0.4375,-0.0492 -0.56875,1e-5 -1.00625,0.18595 -1.3125,0.55782 -0.3026,0.36823 -0.4539,0.8987 -0.4539,1.5914 l 0,3.22656 -1.01172,0 0,-6.125 1.01172,0 0,0.95157 c 0.21145,-0.37187 0.48671,-0.64713 0.82578,-0.82578 0.33906,-0.18229 0.75104,-0.27344 1.23594,-0.27344 0.0693,0 0.14583,0.005 0.22968,0.0164 0.0838,0.007 0.17682,0.0201 0.27891,0.0383 l 0.005,1.03359"
+ id="path3380"
+ inkscape:connector-curvature="0" /><path
+ d="m 716.5644,378.64627 0,0.49219 -4.62656,0 c 0.0437,0.69271 0.25156,1.22136 0.62343,1.58594 0.37552,0.36094 0.89687,0.5414 1.56407,0.5414 0.38645,0 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72551,-0.23698 1.08281,-0.42657 l 0,0.95157 c -0.36094,0.15312 -0.73099,0.26979 -1.11015,0.35 -0.37918,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97709,0 -1.75183,-0.28438 -2.32422,-0.85313 -0.56875,-0.56875 -0.85312,-1.33802 -0.85312,-2.30781 0,-1.0026 0.26979,-1.79739 0.80937,-2.38437 0.54323,-0.59062 1.27422,-0.88594 2.19297,-0.88594 0.82395,0 1.47473,0.26615 1.95234,0.79844 0.48125,0.52865 0.72187,1.2487 0.72188,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16225,-0.98984 -0.46485,-1.31797 -0.29896,-0.32812 -0.69635,-0.49218 -1.19218,-0.49219 -0.56146,1e-5 -1.01172,0.1586 -1.35078,0.47578 -0.33542,0.3172 -0.52865,0.76381 -0.57969,1.33985 l 3.5875,-0.005"
+ id="path3382"
+ inkscape:connector-curvature="0" /><path
+ d="m 718.48393,380.57127 1.15391,0 0,1.38906 -1.15391,0 0,-1.38906 m 0,-4.40234 1.15391,0 0,1.38906 -1.15391,0 0,-1.38906"
+ id="path3384"
+ inkscape:connector-curvature="0" /><path
+ d="m 724.99175,375.83533 1.00625,0 1.25781,4.77969 1.25235,-4.77969 1.18672,0 1.25781,4.77969 1.25234,-4.77969 1.00625,0 -1.60234,6.125 -1.18672,0 -1.31797,-5.02031 -1.32344,5.02031 -1.18672,0 -1.60234,-6.125"
+ id="path3386"
+ inkscape:connector-curvature="0" /><path
+ d="m 734.15737,375.83533 1.00625,0 1.25781,4.77969 1.25235,-4.77969 1.18671,0 1.25782,4.77969 1.25234,-4.77969 1.00625,0 -1.60234,6.125 -1.18672,0 -1.31797,-5.02031 -1.32344,5.02031 -1.18672,0 -1.60234,-6.125"
+ id="path3388"
+ inkscape:connector-curvature="0" /><path
+ d="m 743.32299,375.83533 1.00625,0 1.25781,4.77969 1.25235,-4.77969 1.18671,0 1.25782,4.77969 1.25234,-4.77969 1.00625,0 -1.60234,6.125 -1.18672,0 -1.31797,-5.02031 -1.32344,5.02031 -1.18672,0 -1.60234,-6.125"
+ id="path3390"
+ inkscape:connector-curvature="0" /><path
+ d="m 752.19877,380.57127 1.15391,0 0,1.38906 -1.15391,0 0,-1.38906"
+ id="path3392"
+ inkscape:connector-curvature="0" /><path
+ d="m 756.60659,381.04158 0,3.24844 -1.01172,0 0,-8.45469 1.01172,0 0,0.92969 c 0.21145,-0.36458 0.4776,-0.63437 0.79844,-0.80937 0.32447,-0.17864 0.71093,-0.26797 1.15937,-0.26797 0.74375,0 1.34713,0.29532 1.81016,0.88594 0.46666,0.59063 0.69999,1.36719 0.7,2.32968 -10e-6,0.96251 -0.23334,1.73907 -0.7,2.32969 -0.46303,0.59063 -1.06641,0.88594 -1.81016,0.88594 -0.44844,0 -0.8349,-0.0875 -1.15937,-0.2625 -0.32084,-0.17865 -0.58699,-0.45026 -0.79844,-0.81485 m 3.42344,-2.13828 c -10e-6,-0.7401 -0.15313,-1.31978 -0.45938,-1.73906 -0.30261,-0.42291 -0.72006,-0.63437 -1.25234,-0.63437 -0.5323,0 -0.95157,0.21146 -1.25782,0.63437 -0.3026,0.41928 -0.4539,0.99896 -0.4539,1.73906 0,0.74011 0.1513,1.32162 0.4539,1.74453 0.30625,0.41928 0.72552,0.62891 1.25782,0.62891 0.53228,0 0.94973,-0.20963 1.25234,-0.62891 0.30625,-0.42291 0.45937,-1.00442 0.45938,-1.74453"
+ id="path3394"
+ inkscape:connector-curvature="0" /><path
+ d="m 765.11596,376.5408 c -0.53958,1e-5 -0.96614,0.21147 -1.27968,0.63438 -0.31355,0.41927 -0.47032,0.99531 -0.47032,1.72812 0,0.73282 0.15495,1.31068 0.46485,1.7336 0.31354,0.41927 0.74192,0.6289 1.28515,0.6289 0.53594,0 0.96068,-0.21145 1.27422,-0.63437 0.31354,-0.42292 0.47031,-0.99896 0.47031,-1.72813 0,-0.72551 -0.15677,-1.29973 -0.47031,-1.72265 -0.31354,-0.42656 -0.73828,-0.63984 -1.27422,-0.63985 m 0,-0.85312 c 0.875,0 1.56224,0.28438 2.06172,0.85312 0.49948,0.56876 0.74921,1.35626 0.74922,2.3625 -1e-5,1.00261 -0.24974,1.79011 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85313 -2.06172,0.85313 -0.87864,0 -1.56771,-0.28438 -2.06718,-0.85313 -0.49584,-0.57239 -0.74375,-1.35989 -0.74375,-2.3625 0,-1.00624 0.24791,-1.79374 0.74375,-2.3625 0.49947,-0.56874 1.18854,-0.85312 2.06718,-0.85312"
+ id="path3396"
+ inkscape:connector-curvature="0" /><path
+ d="m 774.68081,378.26346 0,3.69687 -1.00625,0 0,-3.66406 c 0,-0.57968 -0.11303,-1.01353 -0.33906,-1.30156 -0.22605,-0.28802 -0.56511,-0.43203 -1.01719,-0.43203 -0.54323,0 -0.97162,0.17318 -1.28516,0.51953 -0.31354,0.34636 -0.47031,0.81849 -0.47031,1.41641 l 0,3.46171 -1.01172,0 0,-6.125 1.01172,0 0,0.95157 c 0.24062,-0.36823 0.52318,-0.64349 0.84766,-0.82578 0.32812,-0.18229 0.70546,-0.27344 1.13203,-0.27344 0.70364,0 1.23593,0.21875 1.59687,0.65625 0.36094,0.43386 0.5414,1.0737 0.54141,1.91953"
+ id="path3398"
+ inkscape:connector-curvature="0" /><path
+ d="m 779.07222,376.5408 c -0.53959,1e-5 -0.96615,0.21147 -1.27969,0.63438 -0.31354,0.41927 -0.47031,0.99531 -0.47031,1.72812 0,0.73282 0.15494,1.31068 0.46484,1.7336 0.31354,0.41927 0.74192,0.6289 1.28516,0.6289 0.53593,0 0.96067,-0.21145 1.27422,-0.63437 0.31353,-0.42292 0.4703,-0.99896 0.47031,-1.72813 -10e-6,-0.72551 -0.15678,-1.29973 -0.47031,-1.72265 -0.31355,-0.42656 -0.73829,-0.63984 -1.27422,-0.63985 m 0,-0.85312 c 0.87499,0 1.56223,0.28438 2.06172,0.85312 0.49947,0.56876 0.74921,1.35626 0.74921,2.3625 0,1.00261 -0.24974,1.79011 -0.74921,2.3625 -0.49949,0.56875 -1.18673,0.85313 -2.06172,0.85313 -0.87865,0 -1.56771,-0.28438 -2.06719,-0.85313 -0.49583,-0.57239 -0.74375,-1.35989 -0.74375,-2.3625 0,-1.00624 0.24792,-1.79374 0.74375,-2.3625 0.49948,-0.56874 1.18854,-0.85312 2.06719,-0.85312"
+ id="path3400"
+ inkscape:connector-curvature="0" /><path
+ d="m 783.50738,373.45096 1.01171,0 0,5.02578 3.00235,-2.64141 1.28515,0 -3.24843,2.86563 3.38515,3.25937 -1.3125,0 -3.11172,-2.9914 0,2.9914 -1.01171,0 0,-8.50937"
+ id="path3402"
+ inkscape:connector-curvature="0" /><path
+ d="m 792.02221,376.5408 c -0.53958,1e-5 -0.96614,0.21147 -1.27968,0.63438 -0.31355,0.41927 -0.47032,0.99531 -0.47032,1.72812 0,0.73282 0.15495,1.31068 0.46485,1.7336 0.31354,0.41927 0.74192,0.6289 1.28515,0.6289 0.53594,0 0.96068,-0.21145 1.27422,-0.63437 0.31354,-0.42292 0.47031,-0.99896 0.47031,-1.72813 0,-0.72551 -0.15677,-1.29973 -0.47031,-1.72265 -0.31354,-0.42656 -0.73828,-0.63984 -1.27422,-0.63985 m 0,-0.85312 c 0.875,0 1.56224,0.28438 2.06172,0.85312 0.49948,0.56876 0.74921,1.35626 0.74922,2.3625 -1e-5,1.00261 -0.24974,1.79011 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85313 -2.06172,0.85313 -0.87864,0 -1.56771,-0.28438 -2.06718,-0.85313 -0.49584,-0.57239 -0.74375,-1.35989 -0.74375,-2.3625 0,-1.00624 0.24791,-1.79374 0.74375,-2.3625 0.49947,-0.56874 1.18854,-0.85312 2.06718,-0.85312"
+ id="path3404"
+ inkscape:connector-curvature="0" /><path
+ d="m 796.4519,380.57127 1.1539,0 0,1.38906 -1.1539,0 0,-1.38906"
+ id="path3406"
+ inkscape:connector-curvature="0" /><path
+ d="m 804.29409,376.07049 0,0.94063 c -0.28438,-0.15677 -0.57058,-0.27344 -0.85859,-0.35 -0.28438,-0.0802 -0.5724,-0.12031 -0.86406,-0.12032 -0.65261,1e-5 -1.15938,0.20782 -1.52032,0.62344 -0.36094,0.41198 -0.5414,0.99167 -0.5414,1.73906 0,0.7474 0.18046,1.32891 0.5414,1.74453 0.36094,0.41198 0.86771,0.61797 1.52032,0.61797 0.29166,0 0.57968,-0.0383 0.86406,-0.11484 0.28801,-0.0802 0.57421,-0.1987 0.85859,-0.35547 l 0,0.92969 c -0.28073,0.13125 -0.5724,0.22969 -0.875,0.29531 -0.29896,0.0656 -0.61797,0.0984 -0.95703,0.0984 -0.9224,0 -1.65521,-0.28985 -2.19844,-0.86953 -0.54323,-0.57969 -0.81484,-1.36172 -0.81484,-2.3461 0,-0.99895 0.27344,-1.78463 0.82031,-2.35703 0.55052,-0.57239 1.30338,-0.85859 2.2586,-0.85859 0.30989,0 0.61249,0.0328 0.90781,0.0984 0.29531,0.062 0.5815,0.15677 0.85859,0.28437"
+ id="path3408"
+ inkscape:connector-curvature="0" /><path
+ d="m 808.42846,376.5408 c -0.53958,1e-5 -0.96614,0.21147 -1.27968,0.63438 -0.31355,0.41927 -0.47032,0.99531 -0.47032,1.72812 0,0.73282 0.15495,1.31068 0.46485,1.7336 0.31354,0.41927 0.74192,0.6289 1.28515,0.6289 0.53594,0 0.96068,-0.21145 1.27422,-0.63437 0.31354,-0.42292 0.47031,-0.99896 0.47031,-1.72813 0,-0.72551 -0.15677,-1.29973 -0.47031,-1.72265 -0.31354,-0.42656 -0.73828,-0.63984 -1.27422,-0.63985 m 0,-0.85312 c 0.875,0 1.56224,0.28438 2.06172,0.85312 0.49948,0.56876 0.74921,1.35626 0.74922,2.3625 -1e-5,1.00261 -0.24974,1.79011 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85313 -2.06172,0.85313 -0.87864,0 -1.56771,-0.28438 -2.06718,-0.85313 -0.49584,-0.57239 -0.74375,-1.35989 -0.74375,-2.3625 0,-1.00624 0.24791,-1.79374 0.74375,-2.3625 0.49947,-0.56874 1.18854,-0.85312 2.06718,-0.85312"
+ id="path3410"
+ inkscape:connector-curvature="0" /><path
+ d="m 817.67065,377.01112 c 0.25156,-0.45208 0.55234,-0.78568 0.90235,-1.00079 0.34999,-0.21509 0.76197,-0.32265 1.23594,-0.32265 0.63801,0 1.13019,0.22422 1.47656,0.67265 0.34634,0.4448 0.51952,1.07918 0.51953,1.90313 l 0,3.69687 -1.01172,0 0,-3.66406 c -10e-6,-0.58697 -0.10391,-1.02265 -0.31172,-1.30703 -0.20782,-0.28437 -0.52501,-0.42656 -0.95156,-0.42656 -0.52136,0 -0.93334,0.17318 -1.23594,0.51953 -0.30261,0.34636 -0.45391,0.81849 -0.4539,1.41641 l 0,3.46171 -1.01172,0 0,-3.66406 c -1e-5,-0.59062 -0.10391,-1.0263 -0.31172,-1.30703 -0.20782,-0.28437 -0.52865,-0.42656 -0.9625,-0.42656 -0.51407,0 -0.9224,0.175 -1.225,0.525 -0.30261,0.34636 -0.45391,0.81667 -0.45391,1.41094 l 0,3.46171 -1.01172,0 0,-6.125 1.01172,0 0,0.95157 c 0.22969,-0.37552 0.50495,-0.6526 0.82578,-0.83125 0.32083,-0.17864 0.70182,-0.26797 1.14297,-0.26797 0.44479,0 0.82213,0.11303 1.13203,0.33906 0.31354,0.22605 0.54505,0.55417 0.69453,0.98438"
+ id="path3412"
+ inkscape:connector-curvature="0" /><path
+ d="m 825.6058,373.79549 0.92969,0 -2.84375,9.20391 -0.92969,0 2.84375,-9.20391"
+ id="path3414"
+ inkscape:connector-curvature="0" /><path
+ d="m 828.20345,378.9033 c 0,0.74011 0.1513,1.32162 0.4539,1.74453 0.30625,0.41928 0.72552,0.62891 1.25782,0.62891 0.53228,0 0.95156,-0.20963 1.25781,-0.62891 0.30624,-0.42291 0.45937,-1.00442 0.45937,-1.74453 0,-0.7401 -0.15313,-1.31978 -0.45937,-1.73906 -0.30625,-0.42291 -0.72553,-0.63437 -1.25781,-0.63437 -0.5323,0 -0.95157,0.21146 -1.25782,0.63437 -0.3026,0.41928 -0.4539,0.99896 -0.4539,1.73906 m 3.4289,2.13828 c -0.21146,0.36459 -0.47943,0.6362 -0.8039,0.81485 -0.32084,0.175 -0.7073,0.2625 -1.15938,0.2625 -0.7401,0 -1.34349,-0.29531 -1.81015,-0.88594 -0.46302,-0.59062 -0.69453,-1.36718 -0.69453,-2.32969 0,-0.96249 0.23151,-1.73905 0.69453,-2.32968 0.46666,-0.59062 1.07005,-0.88594 1.81015,-0.88594 0.45208,0 0.83854,0.0893 1.15938,0.26797 0.32447,0.175 0.59244,0.44479 0.8039,0.80937 l 0,-0.92969 1.00625,0 0,8.45469 -1.00625,0 0,-3.24844"
+ id="path3416"
+ inkscape:connector-curvature="0" /><path
+ d="m 834.60735,379.54315 0,-3.70782 1.00625,0 0,3.66954 c 0,0.57969 0.11302,1.01536 0.33907,1.30703 0.22604,0.28802 0.5651,0.43203 1.01718,0.43203 0.54323,0 0.97161,-0.17318 1.28516,-0.51953 0.31718,-0.34636 0.47578,-0.81849 0.47578,-1.41641 l 0,-3.47266 1.00625,0 0,6.125 -1.00625,0 0,-0.94062 c -0.24427,0.37188 -0.52865,0.64896 -0.85312,0.83125 -0.32084,0.17865 -0.69454,0.26797 -1.1211,0.26797 -0.70364,0 -1.23776,-0.21875 -1.60234,-0.65625 -0.36458,-0.4375 -0.54688,-1.07734 -0.54688,-1.91953"
+ id="path3418"
+ inkscape:connector-curvature="0" /><path
+ d="m 844.19407,376.5408 c -0.53958,1e-5 -0.96614,0.21147 -1.27968,0.63438 -0.31355,0.41927 -0.47032,0.99531 -0.47032,1.72812 0,0.73282 0.15495,1.31068 0.46485,1.7336 0.31354,0.41927 0.74192,0.6289 1.28515,0.6289 0.53594,0 0.96068,-0.21145 1.27422,-0.63437 0.31354,-0.42292 0.47031,-0.99896 0.47031,-1.72813 0,-0.72551 -0.15677,-1.29973 -0.47031,-1.72265 -0.31354,-0.42656 -0.73828,-0.63984 -1.27422,-0.63985 m 0,-0.85312 c 0.875,0 1.56224,0.28438 2.06172,0.85312 0.49948,0.56876 0.74921,1.35626 0.74922,2.3625 -10e-6,1.00261 -0.24974,1.79011 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85313 -2.06172,0.85313 -0.87864,0 -1.56771,-0.28438 -2.06718,-0.85313 -0.49584,-0.57239 -0.74375,-1.35989 -0.74375,-2.3625 0,-1.00624 0.24791,-1.79374 0.74375,-2.3625 0.49947,-0.56874 1.18854,-0.85312 2.06718,-0.85312"
+ id="path3420"
+ inkscape:connector-curvature="0" /><path
+ d="m 849.66284,374.09627 0,1.73906 2.07266,0 0,0.78204 -2.07266,0 0,3.325 c 0,0.49948 0.0675,0.82031 0.20235,0.9625 0.13853,0.14218 0.41744,0.21328 0.83671,0.21328 l 1.0336,0 0,0.84218 -1.0336,0 c -0.77656,0 -1.3125,-0.14401 -1.60781,-0.43203 -0.29531,-0.29166 -0.44297,-0.82031 -0.44297,-1.58593 l 0,-3.325 -0.73828,0 0,-0.78204 0.73828,0 0,-1.73906 1.01172,0"
+ id="path3422"
+ inkscape:connector-curvature="0" /><path
+ d="m 858.30347,378.64627 0,0.49219 -4.62656,0 c 0.0437,0.69271 0.25156,1.22136 0.62344,1.58594 0.37552,0.36094 0.89687,0.5414 1.56406,0.5414 0.38645,0 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72552,-0.23698 1.08282,-0.42657 l 0,0.95157 c -0.36095,0.15312 -0.731,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97708,0 -1.75182,-0.28438 -2.32421,-0.85313 -0.56876,-0.56875 -0.85313,-1.33802 -0.85313,-2.30781 0,-1.0026 0.26979,-1.79739 0.80938,-2.38437 0.54322,-0.59062 1.27421,-0.88594 2.19296,-0.88594 0.82396,0 1.47474,0.26615 1.95235,0.79844 0.48124,0.52865 0.72187,1.2487 0.72187,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16224,-0.98984 -0.46484,-1.31797 -0.29896,-0.32812 -0.69636,-0.49218 -1.19219,-0.49219 -0.56146,1e-5 -1.01172,0.1586 -1.35078,0.47578 -0.33542,0.3172 -0.52865,0.76381 -0.57969,1.33985 l 3.5875,-0.005"
+ id="path3424"
+ inkscape:connector-curvature="0" /></g><g
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="text4751"><path
+ d="m 574.46167,302.28942 c -0.73282,1.25783 -1.27696,2.50197 -1.63242,3.73242 -0.35547,1.23048 -0.53321,2.47735 -0.5332,3.74063 -1e-5,1.26328 0.17773,2.51563 0.5332,3.75703 0.36093,1.23594 0.90507,2.48008 1.63242,3.73242 l -1.3125,0 c -0.82032,-1.28515 -1.43555,-2.54843 -1.8457,-3.78984 -0.40469,-1.2414 -0.60704,-2.47461 -0.60703,-3.69961 -1e-5,-1.21953 0.20234,-2.44726 0.60703,-3.6832 0.40468,-1.23593 1.01992,-2.49921 1.8457,-3.78985 l 1.3125,0"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3427"
+ inkscape:connector-curvature="0" /><path
+ d="m 582.63198,308.43356 c 0.79296,0.16954 1.41093,0.52227 1.85391,1.05821 0.44843,0.53594 0.67265,1.19766 0.67266,1.98515 -10e-6,1.2086 -0.41564,2.14375 -1.24688,2.80547 -0.83126,0.66172 -2.01251,0.99258 -3.54375,0.99258 -0.51407,0 -1.04453,-0.0519 -1.59141,-0.15586 -0.5414,-0.0984 -1.10195,-0.24883 -1.68164,-0.45117 l 0,-1.59961 c 0.45938,0.26797 0.9625,0.47031 1.50938,0.60703 0.54687,0.13672 1.11835,0.20508 1.71445,0.20508 1.03906,0 1.82929,-0.20508 2.37071,-0.61524 0.54686,-0.41015 0.8203,-1.00624 0.82031,-1.78828 -10e-6,-0.72187 -0.25431,-1.28515 -0.76289,-1.68984 -0.50313,-0.41015 -1.20587,-0.61523 -2.10821,-0.61524 l -1.42734,0 0,-1.36171 1.49297,0 c 0.81484,0 1.43827,-0.16133 1.87031,-0.48399 0.43203,-0.32812 0.64804,-0.79843 0.64805,-1.41094 -10e-6,-0.62889 -0.22423,-1.11014 -0.67266,-1.44375 -0.44297,-0.33905 -1.08008,-0.50858 -1.91133,-0.50859 -0.45391,1e-5 -0.94063,0.0492 -1.46015,0.14766 -0.51954,0.0984 -1.09102,0.25157 -1.71446,0.45937 l 0,-1.47656 c 0.62891,-0.17499 1.2168,-0.30624 1.76368,-0.39375 0.55234,-0.0875 1.07187,-0.13124 1.55859,-0.13125 1.25781,10e-6 2.25312,0.28712 2.98594,0.86133 0.7328,0.56876 1.09921,1.33985 1.09922,2.31328 -10e-6,0.67813 -0.19415,1.25235 -0.58243,1.72265 -0.38828,0.46485 -0.94063,0.78751 -1.65703,0.96797"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3429"
+ inkscape:connector-curvature="0" /><path
+ d="m 587.85737,302.28942 1.3125,0 c 0.82031,1.29064 1.43281,2.55392 1.8375,3.78985 0.41016,1.23594 0.61523,2.46367 0.61524,3.6832 -10e-6,1.225 -0.20508,2.45821 -0.61524,3.69961 -0.40469,1.24141 -1.01719,2.50469 -1.8375,3.78984 l -1.3125,0 c 0.72735,-1.25234 1.26875,-2.49648 1.62422,-3.73242 0.36094,-1.2414 0.54141,-2.49375 0.54141,-3.75703 0,-1.26328 -0.18047,-2.51015 -0.54141,-3.74063 -0.35547,-1.23045 -0.89687,-2.47459 -1.62422,-3.73242"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3431"
+ inkscape:connector-curvature="0" /><path
+ d="m 608.42261,313.28981 0,-3.28945 -2.70703,0 0,-1.36172 4.34766,0 0,5.2582 c -0.63986,0.45391 -1.34533,0.79844 -2.11641,1.0336 -0.7711,0.22969 -1.59415,0.34453 -2.46914,0.34453 -1.91407,0 -3.41251,-0.55781 -4.49531,-1.67344 -1.07735,-1.12109 -1.61602,-2.67968 -1.61602,-4.67578 0,-2.00155 0.53867,-3.56015 1.61602,-4.67578 1.0828,-1.12108 2.58124,-1.68163 4.49531,-1.68164 0.79843,10e-6 1.55585,0.0985 2.27226,0.29531 0.72187,0.19689 1.38632,0.48673 1.99336,0.86953 l 0,1.76367 c -0.61251,-0.51952 -1.26329,-0.91053 -1.95234,-1.17304 -0.68907,-0.26249 -1.41368,-0.39374 -2.17383,-0.39375 -1.49844,1e-5 -2.625,0.41837 -3.37969,1.25508 -0.74922,0.83672 -1.12383,2.0836 -1.12382,3.74062 -10e-6,1.65157 0.3746,2.89571 1.12382,3.73242 0.75469,0.83672 1.88125,1.25508 3.37969,1.25508 0.58515,0 1.10742,-0.0492 1.5668,-0.14766 0.45936,-0.1039 0.87225,-0.26249 1.23867,-0.47578"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3433"
+ inkscape:connector-curvature="0" /><path
+ d="m 620.89136,310.06598 0,0.73829 -6.93984,0 c 0.0656,1.03906 0.37734,1.83203 0.93515,2.3789 0.56328,0.54141 1.34531,0.81211 2.3461,0.81211 0.57968,0 1.14022,-0.0711 1.68164,-0.21328 0.54686,-0.14219 1.08827,-0.35547 1.62422,-0.63984 l 0,1.42734 c -0.54142,0.22969 -1.0965,0.40469 -1.66524,0.525 -0.56876,0.12031 -1.14571,0.18047 -1.73086,0.18047 -1.46563,0 -2.62774,-0.42656 -3.48633,-1.27969 -0.85312,-0.85312 -1.27969,-2.00703 -1.27968,-3.46172 -10e-6,-1.5039 0.40468,-2.69608 1.21406,-3.57656 0.81484,-0.88593 1.91132,-1.3289 3.28945,-1.32891 1.23593,1e-5 2.2121,0.39923 2.92852,1.19766 0.72186,0.79298 1.0828,1.87305 1.08281,3.24023 m -1.50938,-0.44296 c -0.0109,-0.82578 -0.24336,-1.48476 -0.69726,-1.97696 -0.44845,-0.49218 -1.04454,-0.73827 -1.78828,-0.73828 -0.84219,10e-6 -1.51758,0.2379 -2.02617,0.71367 -0.50313,0.47579 -0.79298,1.14571 -0.86954,2.00977 l 5.38125,-0.008"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3435"
+ inkscape:connector-curvature="0" /><path
+ d="m 624.86168,303.24098 0,2.6086 3.10898,0 0,1.17305 -3.10898,0 0,4.9875 c -10e-6,0.74922 0.10116,1.23047 0.30351,1.44375 0.20781,0.21328 0.62617,0.31992 1.25508,0.31992 l 1.55039,0 0,1.26328 -1.55039,0 c -1.16485,0 -1.96875,-0.21602 -2.41172,-0.64805 -0.44297,-0.4375 -0.66445,-1.23047 -0.66445,-2.3789 l 0,-4.9875 -1.10742,0 0,-1.17305 1.10742,0 0,-2.6086 1.51758,0"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3437"
+ inkscape:connector-curvature="0" /><path
+ d="m 639.48785,310.41872 c -1.21954,0 -2.06446,0.13946 -2.53477,0.41836 -0.47031,0.27891 -0.70547,0.75469 -0.70546,1.42734 -10e-6,0.53594 0.17499,0.9625 0.525,1.27969 0.35546,0.31172 0.83671,0.46758 1.44375,0.46758 0.83671,0 1.50663,-0.29531 2.00976,-0.88594 0.50859,-0.59609 0.76288,-1.38632 0.76289,-2.3707 l 0,-0.33633 -1.50117,0 m 3.01055,-0.62344 0,5.2418 -1.50938,0 0,-1.39453 c -0.34454,0.55781 -0.77383,0.9707 -1.28789,1.23867 -0.51407,0.2625 -1.14297,0.39375 -1.88672,0.39375 -0.94063,0 -1.68984,-0.2625 -2.24765,-0.7875 -0.55235,-0.53047 -0.82852,-1.23867 -0.82852,-2.12461 0,-1.03359 0.34453,-1.81289 1.03359,-2.33789 0.69453,-0.525 1.72813,-0.7875 3.10079,-0.7875 l 2.1164,0 0,-0.14766 c -10e-6,-0.69452 -0.22969,-1.23046 -0.68906,-1.60781 -0.45391,-0.3828 -1.09376,-0.57421 -1.91953,-0.57422 -0.52501,10e-6 -1.03633,0.0629 -1.53399,0.18867 -0.49766,0.12579 -0.97617,0.31446 -1.43554,0.56602 l 0,-1.39453 c 0.55234,-0.21327 1.08827,-0.37187 1.60781,-0.47578 0.51953,-0.10937 1.02539,-0.16406 1.51758,-0.16407 1.3289,1e-5 2.32147,0.34454 2.97773,1.0336 0.65624,0.68907 0.98437,1.7336 0.98438,3.13359"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3439"
+ inkscape:connector-curvature="0" /><path
+ d="m 653.25269,309.49177 0,5.54531 -1.50937,0 0,-5.4961 c -1e-5,-0.86952 -0.16954,-1.5203 -0.5086,-1.95234 -0.33907,-0.43202 -0.84766,-0.64804 -1.52578,-0.64805 -0.81485,1e-5 -1.45742,0.25978 -1.92773,0.7793 -0.47032,0.51954 -0.70547,1.22774 -0.70547,2.12461 l 0,5.19258 -1.51758,0 0,-9.1875 1.51758,0 0,1.42734 c 0.36093,-0.55233 0.78476,-0.96522 1.27148,-1.23867 0.49219,-0.27343 1.0582,-0.41015 1.69805,-0.41016 1.05546,1e-5 1.8539,0.32814 2.39531,0.98438 0.5414,0.65079 0.8121,1.61055 0.81211,2.8793"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3441"
+ inkscape:connector-curvature="0" /><path
+ d="m 661.6937,302.78981 1.65704,0 0,12.24727 -1.65704,0 0,-12.24727"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3443"
+ inkscape:connector-curvature="0" /><path
+ d="m 674.21988,309.49177 0,5.54531 -1.50938,0 0,-5.4961 c 0,-0.86952 -0.16954,-1.5203 -0.50859,-1.95234 -0.33907,-0.43202 -0.84766,-0.64804 -1.52578,-0.64805 -0.81485,1e-5 -1.45743,0.25978 -1.92774,0.7793 -0.47031,0.51954 -0.70547,1.22774 -0.70547,2.12461 l 0,5.19258 -1.51757,0 0,-9.1875 1.51757,0 0,1.42734 c 0.36094,-0.55233 0.78477,-0.96522 1.27149,-1.23867 0.49218,-0.27343 1.0582,-0.41015 1.69805,-0.41016 1.05546,1e-5 1.85389,0.32814 2.39531,0.98438 0.5414,0.65079 0.8121,1.61055 0.81211,2.8793"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3445"
+ inkscape:connector-curvature="0" /><path
+ d="m 683.10386,306.12028 0,1.42735 c -0.42657,-0.21875 -0.86954,-0.38281 -1.3289,-0.49219 -0.45938,-0.10937 -0.93517,-0.16406 -1.42735,-0.16406 -0.74922,0 -1.3125,0.11485 -1.68984,0.34453 -0.37188,0.22969 -0.55782,0.57422 -0.55781,1.03359 -10e-6,0.35001 0.13398,0.62618 0.40195,0.82852 0.26796,0.19688 0.80664,0.38555 1.61601,0.56601 l 0.5168,0.11485 c 1.07187,0.22969 1.83203,0.55508 2.28047,0.97617 0.4539,0.41563 0.68085,0.99805 0.68086,1.74726 -10e-6,0.85313 -0.33907,1.52852 -1.01719,2.02618 -0.67266,0.49765 -1.59961,0.74648 -2.78086,0.74648 -0.49219,0 -1.00625,-0.0492 -1.54218,-0.14766 -0.53048,-0.093 -1.09102,-0.23515 -1.68165,-0.42656 l 0,-1.55859 c 0.55782,0.28984 1.10742,0.50859 1.64883,0.65625 0.54141,0.14219 1.07734,0.21328 1.60782,0.21328 0.71093,0 1.2578,-0.12031 1.64062,-0.36094 0.38281,-0.24609 0.57421,-0.59062 0.57422,-1.03359 -10e-6,-0.41016 -0.13946,-0.72461 -0.41836,-0.94336 -0.27344,-0.21875 -0.87774,-0.4293 -1.81289,-0.63164 l -0.525,-0.12305 c -0.93516,-0.19687 -1.61055,-0.49765 -2.02617,-0.90234 -0.41563,-0.41015 -0.62344,-0.9707 -0.62344,-1.68164 0,-0.86406 0.30625,-1.53125 0.91875,-2.00157 0.6125,-0.4703 1.48203,-0.70546 2.60859,-0.70547 0.55781,1e-5 1.08281,0.041 1.575,0.12305 0.49218,0.082 0.94609,0.20509 1.36172,0.36914"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3447"
+ inkscape:connector-curvature="0" /><path
+ d="m 687.50074,303.24098 0,2.6086 3.10898,0 0,1.17305 -3.10898,0 0,4.9875 c 0,0.74922 0.10117,1.23047 0.30352,1.44375 0.2078,0.21328 0.62616,0.31992 1.25507,0.31992 l 1.55039,0 0,1.26328 -1.55039,0 c -1.16484,0 -1.96875,-0.21602 -2.41171,-0.64805 -0.44298,-0.4375 -0.66446,-1.23047 -0.66446,-2.3789 l 0,-4.9875 -1.10742,0 0,-1.17305 1.10742,0 0,-2.6086 1.51758,0"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3449"
+ inkscape:connector-curvature="0" /><path
+ d="m 696.77848,310.41872 c -1.21954,0 -2.06446,0.13946 -2.53477,0.41836 -0.47031,0.27891 -0.70547,0.75469 -0.70547,1.42734 0,0.53594 0.175,0.9625 0.525,1.27969 0.35547,0.31172 0.83672,0.46758 1.44375,0.46758 0.83672,0 1.50664,-0.29531 2.00977,-0.88594 0.50858,-0.59609 0.76288,-1.38632 0.76289,-2.3707 l 0,-0.33633 -1.50117,0 m 3.01054,-0.62344 0,5.2418 -1.50937,0 0,-1.39453 c -0.34454,0.55781 -0.77384,0.9707 -1.28789,1.23867 -0.51407,0.2625 -1.14298,0.39375 -1.88672,0.39375 -0.94063,0 -1.68985,-0.2625 -2.24766,-0.7875 -0.55234,-0.53047 -0.82851,-1.23867 -0.82851,-2.12461 0,-1.03359 0.34453,-1.81289 1.03359,-2.33789 0.69453,-0.525 1.72812,-0.7875 3.10078,-0.7875 l 2.11641,0 0,-0.14766 c -10e-6,-0.69452 -0.2297,-1.23046 -0.68906,-1.60781 -0.45392,-0.3828 -1.09376,-0.57421 -1.91954,-0.57422 -0.525,10e-6 -1.03633,0.0629 -1.53398,0.18867 -0.49766,0.12579 -0.97617,0.31446 -1.43555,0.56602 l 0,-1.39453 c 0.55234,-0.21327 1.08828,-0.37187 1.60782,-0.47578 0.51952,-0.10937 1.02538,-0.16406 1.51757,-0.16407 1.3289,1e-5 2.32148,0.34454 2.97774,1.0336 0.65624,0.68907 0.98436,1.7336 0.98437,3.13359"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3451"
+ inkscape:connector-curvature="0" /><path
+ d="m 710.54333,309.49177 0,5.54531 -1.50938,0 0,-5.4961 c -10e-6,-0.86952 -0.16954,-1.5203 -0.50859,-1.95234 -0.33907,-0.43202 -0.84767,-0.64804 -1.52578,-0.64805 -0.81485,1e-5 -1.45743,0.25978 -1.92774,0.7793 -0.47031,0.51954 -0.70547,1.22774 -0.70547,2.12461 l 0,5.19258 -1.51758,0 0,-9.1875 1.51758,0 0,1.42734 c 0.36094,-0.55233 0.78476,-0.96522 1.27149,-1.23867 0.49218,-0.27343 1.0582,-0.41015 1.69804,-0.41016 1.05547,1e-5 1.8539,0.32814 2.39532,0.98438 0.54139,0.65079 0.8121,1.61055 0.81211,2.8793"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3453"
+ inkscape:connector-curvature="0" /><path
+ d="m 715.06325,303.24098 0,2.6086 3.10898,0 0,1.17305 -3.10898,0 0,4.9875 c -1e-5,0.74922 0.10117,1.23047 0.30351,1.44375 0.20781,0.21328 0.62617,0.31992 1.25508,0.31992 l 1.55039,0 0,1.26328 -1.55039,0 c -1.16485,0 -1.96875,-0.21602 -2.41172,-0.64805 -0.44297,-0.4375 -0.66445,-1.23047 -0.66445,-2.3789 l 0,-4.9875 -1.10742,0 0,-1.17305 1.10742,0 0,-2.6086 1.51758,0"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3455"
+ inkscape:connector-curvature="0" /><path
+ d="m 730.55074,303.91364 c -1.20313,1e-5 -2.16016,0.44845 -2.87109,1.34531 -0.70548,0.89689 -1.05821,2.11915 -1.05821,3.6668 0,1.54219 0.35273,2.76172 1.05821,3.65859 0.71093,0.89688 1.66796,1.34532 2.87109,1.34532 1.20312,0 2.15468,-0.44844 2.85469,-1.34532 0.70546,-0.89687 1.05819,-2.1164 1.0582,-3.65859 -10e-6,-1.54765 -0.35274,-2.76991 -1.0582,-3.6668 -0.70001,-0.89686 -1.65157,-1.3453 -2.85469,-1.34531 m 2.32148,10.90195 2.18203,2.38711 -2.00156,0 -1.81289,-1.96054 c -0.18047,0.0109 -0.31993,0.0191 -0.41836,0.0246 -0.093,0.005 -0.18321,0.008 -0.2707,0.008 -1.72266,0 -3.10079,-0.57422 -4.13438,-1.72266 -1.02812,-1.1539 -1.54218,-2.69609 -1.54218,-4.62656 0,-1.93593 0.51406,-3.47812 1.54218,-4.62656 1.03359,-1.1539 2.41172,-1.73085 4.13438,-1.73086 1.71718,10e-6 3.08983,0.57696 4.11797,1.73086 1.02811,1.14844 1.54217,2.69063 1.54219,4.62656 -2e-5,1.42188 -0.28713,2.63868 -0.86133,3.65039 -0.56876,1.01172 -1.39454,1.75821 -2.47735,2.23945"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3457"
+ inkscape:connector-curvature="0" /><path
+ d="m 738.58161,311.4113 0,-5.56172 1.50938,0 0,5.5043 c -1e-5,0.86953 0.16952,1.52304 0.50859,1.96054 0.33906,0.43204 0.84765,0.64805 1.52578,0.64805 0.81484,0 1.45742,-0.25976 1.92773,-0.7793 0.47578,-0.51953 0.71367,-1.22773 0.71368,-2.12461 l 0,-5.20898 1.50937,0 0,9.1875 -1.50937,0 0,-1.41094 c -0.36642,0.55781 -0.79298,0.97344 -1.27969,1.24688 -0.48126,0.26797 -1.0418,0.40195 -1.68164,0.40195 -1.05547,0 -1.85664,-0.32813 -2.40352,-0.98438 -0.54687,-0.65624 -0.82031,-1.61601 -0.82031,-2.87929"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3459"
+ inkscape:connector-curvature="0" /><path
+ d="m 752.96169,306.90778 c -0.80938,10e-6 -1.44922,0.3172 -1.91953,0.95156 -0.47032,0.62892 -0.70547,1.49298 -0.70547,2.59219 0,1.09922 0.23242,1.96602 0.69726,2.60039 0.47031,0.62891 1.11289,0.94336 1.92774,0.94336 0.8039,0 1.44101,-0.31718 1.91133,-0.95156 0.4703,-0.63437 0.70546,-1.49843 0.70547,-2.59219 -10e-6,-1.08827 -0.23517,-1.9496 -0.70547,-2.58398 -0.47032,-0.63984 -1.10743,-0.95976 -1.91133,-0.95977 m 0,-1.27969 c 1.31249,1e-5 2.34335,0.42658 3.09258,1.27969 0.74921,0.85313 1.12382,2.03438 1.12383,3.54375 -10e-6,1.50391 -0.37462,2.68516 -1.12383,3.54375 -0.74923,0.85313 -1.78009,1.27969 -3.09258,1.27969 -1.31797,0 -2.35157,-0.42656 -3.10078,-1.27969 -0.74375,-0.85859 -1.11563,-2.03984 -1.11563,-3.54375 0,-1.50937 0.37188,-2.69062 1.11563,-3.54375 0.74921,-0.85311 1.78281,-1.27968 3.10078,-1.27969"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3461"
+ inkscape:connector-curvature="0" /><path
+ d="m 761.16481,303.24098 0,2.6086 3.10898,0 0,1.17305 -3.10898,0 0,4.9875 c 0,0.74922 0.10117,1.23047 0.30352,1.44375 0.2078,0.21328 0.62616,0.31992 1.25507,0.31992 l 1.55039,0 0,1.26328 -1.55039,0 c -1.16484,0 -1.96875,-0.21602 -2.41171,-0.64805 -0.44298,-0.4375 -0.66446,-1.23047 -0.66446,-2.3789 l 0,-4.9875 -1.10742,0 0,-1.17305 1.10742,0 0,-2.6086 1.51758,0"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3463"
+ inkscape:connector-curvature="0" /><path
+ d="m 774.12574,310.06598 0,0.73829 -6.93984,0 c 0.0656,1.03906 0.37734,1.83203 0.93515,2.3789 0.56328,0.54141 1.34531,0.81211 2.3461,0.81211 0.57968,0 1.14023,-0.0711 1.68164,-0.21328 0.54687,-0.14219 1.08827,-0.35547 1.62422,-0.63984 l 0,1.42734 c -0.54142,0.22969 -1.09649,0.40469 -1.66524,0.525 -0.56875,0.12031 -1.14571,0.18047 -1.73086,0.18047 -1.46563,0 -2.62773,-0.42656 -3.48632,-1.27969 -0.85313,-0.85312 -1.27969,-2.00703 -1.27969,-3.46172 0,-1.5039 0.40468,-2.69608 1.21406,-3.57656 0.81484,-0.88593 1.91132,-1.3289 3.28945,-1.32891 1.23593,1e-5 2.21211,0.39923 2.92852,1.19766 0.72187,0.79298 1.0828,1.87305 1.08281,3.24023 m -1.50937,-0.44296 c -0.0109,-0.82578 -0.24337,-1.48476 -0.69727,-1.97696 -0.44844,-0.49218 -1.04454,-0.73827 -1.78828,-0.73828 -0.84219,10e-6 -1.51758,0.2379 -2.02617,0.71367 -0.50313,0.47579 -0.79297,1.14571 -0.86953,2.00977 l 5.38125,-0.008"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path3465"
+ inkscape:connector-curvature="0" /></g><g
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="text4803"><path
+ d="m 574.46167,3.1534802 c -0.73282,1.2578241 -1.27696,2.5019636 -1.63242,3.7324222 -0.35547,1.2304766 -0.53321,2.4773504 -0.5332,3.7406256 -1e-5,1.263285 0.17773,2.515628 0.5332,3.757031 0.36093,1.235938 0.90507,2.480077 1.63242,3.732422 l -1.3125,0 c -0.82032,-1.285157 -1.43555,-2.548437 -1.8457,-3.789844 -0.40469,-1.241403 -0.60704,-2.474605 -0.60703,-3.699609 -1e-5,-1.2195252 0.20234,-2.4472585 0.60703,-3.6832038 0.40468,-1.2359273 1.01992,-2.4992074 1.8457,-3.789844 l 1.3125,0"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4445"
+ inkscape:connector-curvature="0" /><path
+ d="m 579.03901,14.506606 5.78321,0 0,1.394531 -7.77657,0 0,-1.394531 c 0.62891,-0.650779 1.48477,-1.523044 2.56758,-2.616797 1.08828,-1.099214 1.77187,-1.807416 2.05078,-2.1246096 0.53047,-0.596087 0.89961,-1.0992116 1.10743,-1.5093751 0.21327,-0.4156169 0.31991,-0.8230384 0.31992,-1.2222657 -10e-6,-0.6507718 -0.2297,-1.18124 -0.68906,-1.5914063 -0.45392,-0.4101454 -1.04728,-0.6152234 -1.78008,-0.6152345 -0.51954,1.11e-5 -1.06915,0.090245 -1.64883,0.2707032 -0.57422,0.1804794 -1.18946,0.4539166 -1.8457,0.8203125 l 0,-1.6734376 c 0.66718,-0.2679568 1.29062,-0.4703004 1.87031,-0.6070313 0.57968,-0.1367063 1.11015,-0.2050656 1.59141,-0.2050781 1.26874,1.25e-5 2.28046,0.3171997 3.03515,0.9515626 0.75468,0.6343859 1.13202,1.4820414 1.13203,2.5429689 -10e-6,0.5031335 -0.0957,0.9816487 -0.28711,1.435547 -0.18594,0.4484446 -0.52774,0.9789128 -1.02539,1.5914063 -0.13672,0.1585997 -0.57149,0.6179737 -1.30429,1.3781247 -0.73282,0.754692 -1.76642,1.812894 -3.10079,3.17461"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4447"
+ inkscape:connector-curvature="0" /><path
+ d="m 587.85737,3.1534802 1.3125,0 c 0.82031,1.2906366 1.43281,2.5539167 1.8375,3.789844 0.41016,1.2359453 0.61523,2.4636786 0.61524,3.6832038 -10e-6,1.225004 -0.20508,2.458206 -0.61524,3.699609 -0.40469,1.241407 -1.01719,2.504687 -1.8375,3.789844 l -1.3125,0 c 0.72735,-1.252345 1.26875,-2.496484 1.62422,-3.732422 0.36094,-1.241403 0.54141,-2.493746 0.54141,-3.757031 0,-1.2632752 -0.18047,-2.510149 -0.54141,-3.7406256 -0.35547,-1.2304586 -0.89687,-2.4745981 -1.62422,-3.7324222"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4449"
+ inkscape:connector-curvature="0" /><path
+ d="m 601.72886,5.0155897 0,4.6019535 2.08359,0 c 0.77109,6.3e-6 1.36718,-0.1996029 1.78829,-0.5988282 0.42108,-0.3992115 0.63163,-0.967961 0.63164,-1.7062501 -1e-5,-0.7328032 -0.21056,-1.2988183 -0.63164,-1.698047 -0.42111,-0.3992081 -1.0172,-0.5988173 -1.78829,-0.5988282 l -2.08359,0 m -1.65703,-1.3617188 3.74062,0 c 1.37265,1.22e-5 2.40898,0.3117307 3.10899,0.9351563 0.70546,0.6179795 1.05819,1.5257911 1.0582,2.7234377 -10e-6,1.2086012 -0.35274,2.1218816 -1.0582,2.7398441 -0.70001,0.617974 -1.73634,0.926958 -3.10899,0.926953 l -2.08359,0 0,4.921875 -1.65703,0 0,-12.2472661"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4451"
+ inkscape:connector-curvature="0" /><path
+ d="m 615.19019,8.1245743 c -0.16954,-0.09843 -0.35548,-0.1695233 -0.55781,-0.2132812 -0.19688,-0.049211 -0.41563,-0.07382 -0.65625,-0.073828 -0.85313,8.1e-6 -1.50938,0.2789141 -1.96875,0.8367188 -0.45391,0.5523505 -0.68087,1.3480531 -0.68086,2.3871091 l 0,4.839844 -1.51758,0 0,-9.1875001 1.51758,0 0,1.4273439 c 0.31718,-0.5578042 0.73007,-0.9706945 1.23867,-1.238672 0.50859,-0.2734282 1.12656,-0.4101469 1.85391,-0.4101563 0.1039,9.4e-6 0.21874,0.00821 0.34453,0.024609 0.12577,0.010947 0.26522,0.030087 0.41836,0.057422 l 0.008,1.5503907"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4453"
+ inkscape:connector-curvature="0" /><path
+ d="m 624.28745,10.930043 0,0.738282 -6.93984,0 c 0.0656,1.039065 0.37734,1.832033 0.93516,2.378906 0.56327,0.541408 1.3453,0.81211 2.34609,0.812109 0.57968,1e-6 1.14023,-0.07109 1.68164,-0.213281 0.54687,-0.142186 1.08827,-0.355467 1.62422,-0.639844 l 0,1.427344 c -0.54141,0.229688 -1.09649,0.404688 -1.66523,0.525 -0.56876,0.120313 -1.14571,0.180469 -1.73086,0.180469 -1.46563,0 -2.62774,-0.426562 -3.48633,-1.279688 -0.85313,-0.853123 -1.27969,-2.007028 -1.27969,-3.461719 0,-1.5038999 0.40469,-2.6960863 1.21406,-3.5765623 0.81484,-0.8859286 1.91133,-1.328897 3.28946,-1.3289064 1.23593,9.4e-6 2.2121,0.3992278 2.92851,1.1976564 0.72187,0.7929762 1.08281,1.8730533 1.08281,3.2402343 m -1.50937,-0.442969 c -0.011,-0.8257746 -0.24337,-1.4847583 -0.69727,-1.9769528 -0.44844,-0.4921796 -1.04453,-0.7382731 -1.78828,-0.7382813 -0.84219,8.2e-6 -1.51758,0.2378986 -2.02617,0.7136719 -0.50313,0.4757883 -0.79297,1.1457095 -0.86953,2.0097662 l 5.38125,-0.0082"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4455"
+ inkscape:connector-curvature="0" /><path
+ d="m 626.01831,10.626528 4.42149,0 0,1.345312 -4.42149,0 0,-1.345312"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4457"
+ inkscape:connector-curvature="0" /><path
+ d="m 638.52808,4.7776991 c -1.20313,1.11e-5 -2.16016,0.4484482 -2.87109,1.3453126 -0.70548,0.8968839 -1.05821,2.1191484 -1.05821,3.6667971 0,1.5421922 0.35273,2.7617222 1.05821,3.6585942 0.71093,0.896876 1.66796,1.345314 2.87109,1.345312 1.20312,2e-6 2.15468,-0.448436 2.85469,-1.345312 0.70546,-0.896872 1.05819,-2.116402 1.0582,-3.6585942 -10e-6,-1.5476487 -0.35274,-2.7699132 -1.0582,-3.6667971 -0.70001,-0.8968644 -1.65157,-1.3453015 -2.85469,-1.3453126 m 2.32148,10.9019539 2.18204,2.387109 -2.00157,0 -1.81289,-1.960547 c -0.18047,0.01094 -0.31993,0.01914 -0.41836,0.02461 -0.093,0.0055 -0.18321,0.0082 -0.2707,0.0082 -1.72266,0 -3.10079,-0.574218 -4.13438,-1.722656 -1.02812,-1.153904 -1.54218,-2.69609 -1.54218,-4.6265632 0,-1.9359296 0.51406,-3.4781156 1.54218,-4.6265628 1.03359,-1.1538944 2.41172,-1.730847 4.13438,-1.7308595 1.71718,1.25e-5 3.08983,0.5769651 4.11797,1.7308595 1.02811,1.1484472 1.54217,2.6906332 1.54219,4.6265628 -2e-5,1.4218802 -0.28713,2.6386752 -0.86133,3.6503912 -0.56876,1.01172 -1.39454,1.758204 -2.47735,2.239453"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4459"
+ inkscape:connector-curvature="0" /><path
+ d="m 646.57535,12.275356 0,-5.5617193 1.50937,0 0,5.5042973 c 0,0.869534 0.16953,1.523049 0.5086,1.960547 0.33905,0.432033 0.84765,0.648048 1.52578,0.648047 0.81483,1e-6 1.45741,-0.259764 1.92773,-0.779297 0.47578,-0.519529 0.71367,-1.227731 0.71367,-2.12461 l 0,-5.2089843 1.50938,0 0,9.1875003 -1.50938,0 0,-1.410937 c -0.36641,0.557813 -0.79297,0.973438 -1.27968,1.246875 -0.48126,0.267969 -1.04181,0.401953 -1.68165,0.401953 -1.05547,0 -1.85664,-0.328125 -2.40351,-0.984375 -0.54688,-0.656249 -0.82031,-1.616013 -0.82031,-2.879297"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4461"
+ inkscape:connector-curvature="0" /><path
+ d="m 660.95542,7.7718399 c -0.80937,8.2e-6 -1.44922,0.3171954 -1.91953,0.9515626 -0.47031,0.6289128 -0.70547,1.4929745 -0.70547,2.5921875 0,1.099222 0.23242,1.966019 0.69727,2.600391 0.47031,0.628908 1.11289,0.94336 1.92773,0.943359 0.80391,1e-6 1.44101,-0.317186 1.91133,-0.951562 0.47031,-0.634373 0.70546,-1.498434 0.70547,-2.592188 -10e-6,-1.088275 -0.23516,-1.9496028 -0.70547,-2.5839844 -0.47032,-0.639836 -1.10742,-0.9597575 -1.91133,-0.9597657 m 0,-1.2796876 c 1.3125,9.4e-6 2.34336,0.4265715 3.09258,1.2796876 0.74921,0.8531324 1.12382,2.0343813 1.12383,3.5437501 -10e-6,1.50391 -0.37462,2.685158 -1.12383,3.54375 -0.74922,0.853126 -1.78008,1.279688 -3.09258,1.279688 -1.31797,0 -2.35156,-0.426562 -3.10078,-1.279688 -0.74375,-0.858592 -1.11562,-2.03984 -1.11562,-3.54375 0,-1.5093688 0.37187,-2.6906177 1.11562,-3.5437501 0.74922,-0.8531161 1.78281,-1.2796782 3.10078,-1.2796876"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4463"
+ inkscape:connector-curvature="0" /><path
+ d="m 669.15855,4.1050428 0,2.6085939 3.10899,0 0,1.173047 -3.10899,0 0,4.9875003 c 0,0.749221 0.10117,1.230471 0.30352,1.44375 0.20781,0.213283 0.62617,0.319923 1.25508,0.319922 l 1.55039,0 0,1.263281 -1.55039,0 c -1.16485,0 -1.96875,-0.216015 -2.41172,-0.648047 -0.44297,-0.437499 -0.66446,-1.230467 -0.66445,-2.378906 l 0,-4.9875003 -1.10743,0 0,-1.173047 1.10743,0 0,-2.6085939 1.51757,0"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4465"
+ inkscape:connector-curvature="0" /><path
+ d="m 682.11949,10.930043 0,0.738282 -6.93984,0 c 0.0656,1.039065 0.37734,1.832033 0.93516,2.378906 0.56327,0.541408 1.3453,0.81211 2.34609,0.812109 0.57968,1e-6 1.14023,-0.07109 1.68164,-0.213281 0.54687,-0.142186 1.08827,-0.355467 1.62422,-0.639844 l 0,1.427344 c -0.54142,0.229688 -1.09649,0.404688 -1.66524,0.525 -0.56875,0.120313 -1.1457,0.180469 -1.73085,0.180469 -1.46563,0 -2.62774,-0.426562 -3.48633,-1.279688 -0.85313,-0.853123 -1.27969,-2.007028 -1.27969,-3.461719 0,-1.5038999 0.40469,-2.6960863 1.21406,-3.5765623 0.81484,-0.8859286 1.91133,-1.328897 3.28946,-1.3289064 1.23593,9.4e-6 2.2121,0.3992278 2.92851,1.1976564 0.72187,0.7929762 1.0828,1.8730533 1.08281,3.2402343 m -1.50937,-0.442969 c -0.011,-0.8257746 -0.24337,-1.4847583 -0.69727,-1.9769528 -0.44844,-0.4921796 -1.04453,-0.7382731 -1.78828,-0.7382813 -0.84219,8.2e-6 -1.51758,0.2378986 -2.02617,0.7136719 -0.50313,0.4757883 -0.79297,1.1457095 -0.86953,2.0097662 l 5.38125,-0.0082"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4467"
+ inkscape:connector-curvature="0" /><path
+ d="m 699.18199,4.5972303 0,1.7472658 c -0.55782,-0.5195212 -1.15392,-0.9078021 -1.78828,-1.1648439 -0.62892,-0.2570202 -1.29884,-0.3855357 -2.00977,-0.3855469 -1.4,1.12e-5 -2.47188,0.4293076 -3.21562,1.2878908 -0.74375,0.853134 -1.11563,2.0890703 -1.11563,3.7078127 0,1.6132862 0.37188,2.8492222 1.11563,3.7078132 0.74374,0.853126 1.81562,1.279688 3.21562,1.279687 0.71093,10e-7 1.38085,-0.128514 2.00977,-0.385547 0.63436,-0.257029 1.23046,-0.64531 1.78828,-1.164844 l 0,1.73086 c -0.5797,0.39375 -1.19493,0.689063 -1.8457,0.885937 -0.64532,0.196875 -1.32892,0.295313 -2.05078,0.295313 -1.85392,0 -3.31407,-0.566015 -4.38047,-1.698047 -1.06641,-1.137497 -1.59961,-2.687887 -1.59961,-4.6511722 0,-1.968742 0.5332,-3.5191312 1.59961,-4.6511722 1.0664,-1.1374882 2.52655,-1.7062376 4.38047,-1.7062501 0.7328,1.25e-5 1.42186,0.09845 2.06718,0.2953125 0.65078,0.1914183 1.26054,0.4812617 1.8293,0.8695313"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4469"
+ inkscape:connector-curvature="0" /><path
+ d="m 709.32926,10.355824 0,5.545313 -1.50937,0 0,-5.496094 c -10e-6,-0.8695247 -0.16954,-1.5203054 -0.5086,-1.9523437 -0.33907,-0.4320234 -0.84766,-0.6480388 -1.52578,-0.6480469 -0.81485,8.1e-6 -1.45743,0.2597735 -1.92773,0.779297 -0.47032,0.519538 -0.70548,1.2277405 -0.70547,2.1246096 l 0,5.192578 -1.51758,0 0,-12.764063 1.51758,0 0,5.0039066 c 0.36093,-0.5523355 0.78476,-0.9652257 1.27148,-1.238672 0.49218,-0.2734282 1.0582,-0.4101469 1.69805,-0.4101563 1.05546,9.4e-6 1.8539,0.3281341 2.39531,0.9843751 0.5414,0.6507891 0.8121,1.6105538 0.81211,2.8792966"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4471"
+ inkscape:connector-curvature="0" /><path
+ d="m 720.21481,10.930043 0,0.738282 -6.93985,0 c 0.0656,1.039065 0.37734,1.832033 0.93516,2.378906 0.56328,0.541408 1.34531,0.81211 2.34609,0.812109 0.57968,1e-6 1.14023,-0.07109 1.68164,-0.213281 0.54687,-0.142186 1.08828,-0.355467 1.62422,-0.639844 l 0,1.427344 c -0.54141,0.229688 -1.09649,0.404688 -1.66523,0.525 -0.56876,0.120313 -1.14571,0.180469 -1.73086,0.180469 -1.46563,0 -2.62774,-0.426562 -3.48633,-1.279688 -0.85313,-0.853123 -1.27969,-2.007028 -1.27969,-3.461719 0,-1.5038999 0.40469,-2.6960863 1.21407,-3.5765623 0.81484,-0.8859286 1.91132,-1.328897 3.28945,-1.3289064 1.23593,9.4e-6 2.2121,0.3992278 2.92852,1.1976564 0.72186,0.7929762 1.0828,1.8730533 1.08281,3.2402343 m -1.50938,-0.442969 c -0.0109,-0.8257746 -0.24336,-1.4847583 -0.69726,-1.9769528 -0.44845,-0.4921796 -1.04454,-0.7382731 -1.78828,-0.7382813 -0.8422,8.2e-6 -1.51759,0.2378986 -2.02618,0.7136719 -0.50312,0.4757883 -0.79297,1.1457095 -0.86953,2.0097662 l 5.38125,-0.0082"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4473"
+ inkscape:connector-curvature="0" /><path
+ d="m 729.30387,7.0663711 0,1.4109376 c -0.42657,-0.2351486 -0.85587,-0.4101484 -1.28789,-0.525 -0.42657,-0.1203045 -0.8586,-0.1804606 -1.29609,-0.1804688 -0.97892,8.2e-6 -1.73907,0.3117266 -2.28047,0.9351563 -0.54141,0.6179754 -0.81212,1.4875058 -0.81211,2.6085938 -10e-6,1.121097 0.2707,1.993362 0.81211,2.616797 0.5414,0.61797 1.30155,0.926954 2.28047,0.926953 0.43749,1e-6 0.86952,-0.05742 1.29609,-0.172265 0.43202,-0.120311 0.86132,-0.298046 1.28789,-0.533203 l 0,1.394531 c -0.4211,0.196875 -0.8586,0.344531 -1.3125,0.442969 -0.44844,0.09844 -0.92696,0.147656 -1.43555,0.147656 -1.38359,0 -2.48281,-0.434765 -3.29765,-1.304297 -0.81485,-0.869529 -1.22227,-2.042575 -1.22227,-3.519141 0,-1.4984314 0.41016,-2.6769459 1.23047,-3.535547 0.82578,-0.8585848 1.95507,-1.2878813 3.38789,-1.2878907 0.46484,9.4e-6 0.91874,0.049228 1.36172,0.1476563 0.44296,0.092978 0.87226,0.2351653 1.28789,0.4265625"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4475"
+ inkscape:connector-curvature="0" /><path
+ d="m 731.88786,3.137074 1.51758,0 0,7.538672 4.50351,-3.9621093 1.92774,0 -4.87266,4.2984383 5.07773,4.889062 -1.96875,0 -4.66757,-4.487109 0,4.487109 -1.51758,0 0,-12.764063"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4477"
+ inkscape:connector-curvature="0" /><path
+ d="m 741.69059,3.137074 1.50938,0 0,12.764063 -1.50938,0 0,-12.764063"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4479"
+ inkscape:connector-curvature="0" /><path
+ d="m 746.34996,6.7136367 1.50937,0 0,9.1875003 -1.50937,0 0,-9.1875003 m 0,-3.5765627 1.50937,0 0,1.9113282 -1.50937,0 0,-1.9113282"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4481"
+ inkscape:connector-curvature="0" /><path
+ d="m 756.86637,6.9843399 0,1.4273438 c -0.42657,-0.2187423 -0.86954,-0.3828046 -1.32891,-0.4921875 -0.45938,-0.1093669 -0.93516,-0.1640544 -1.42734,-0.1640625 -0.74923,8.1e-6 -1.31251,0.1148518 -1.68985,0.3445312 -0.37187,0.2296951 -0.55781,0.5742261 -0.55781,1.0335939 0,0.3500064 0.13398,0.626178 0.40195,0.8285156 0.26797,0.1968806 0.80664,0.3855526 1.61602,0.5660156 l 0.5168,0.114844 c 1.07187,0.229692 1.83202,0.555083 2.28047,0.976172 0.45389,0.415629 0.68085,0.99805 0.68085,1.747266 0,0.853126 -0.33907,1.528516 -1.01718,2.026172 -0.67267,0.497656 -1.59962,0.746484 -2.78086,0.746484 -0.49219,0 -1.00626,-0.04922 -1.54219,-0.147656 -0.53047,-0.09297 -1.09102,-0.235156 -1.68164,-0.426563 l 0,-1.558594 c 0.55781,0.289846 1.10742,0.508596 1.64883,0.65625 0.5414,0.142189 1.07734,0.213283 1.60781,0.213282 0.71093,10e-7 1.25781,-0.120312 1.64063,-0.360938 0.3828,-0.246092 0.57421,-0.590623 0.57421,-1.033594 0,-0.410153 -0.13946,-0.724606 -0.41836,-0.943359 -0.27344,-0.218747 -0.87774,-0.429293 -1.81289,-0.631641 l -0.525,-0.123047 c -0.93516,-0.19687 -1.61055,-0.497651 -2.02617,-0.902343 -0.41562,-0.410151 -0.62344,-0.9706977 -0.62344,-1.6816412 0,-0.864055 0.30625,-1.5312419 0.91875,-2.0015627 0.6125,-0.4703033 1.48203,-0.7054594 2.6086,-0.7054688 0.55781,9.4e-6 1.08281,0.041025 1.575,0.1230469 0.49218,0.08204 0.94609,0.2050872 1.36172,0.3691407"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4483"
+ inkscape:connector-curvature="0" /><path
+ d="m 761.26324,4.1050428 0,2.6085939 3.10899,0 0,1.173047 -3.10899,0 0,4.9875003 c 0,0.749221 0.10117,1.230471 0.30352,1.44375 0.20781,0.213283 0.62617,0.319923 1.25508,0.319922 l 1.55039,0 0,1.263281 -1.55039,0 c -1.16485,0 -1.96875,-0.216015 -2.41172,-0.648047 -0.44297,-0.437499 -0.66445,-1.230467 -0.66445,-2.378906 l 0,-4.9875003 -1.10743,0 0,-1.173047 1.10743,0 0,-2.6085939 1.51757,0"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4485"
+ inkscape:connector-curvature="0" /></g><g
+ transform="matrix(0.80000001,0,0,0.80000001,118.01204,0.26753544)"
+ id="g4805"><path
+ style="fill:none;stroke:#f6921e;stroke-width:1.41729999"
+ d="m 564.05103,55.710999 12.757,0 0,12.755999 -12.757,0 z"
+ id="rect4807"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#f6921e;stroke-width:1.41729999"
+ d="m 564.05103,78.594002 12.757,0 0,12.755999 -12.757,0 z"
+ id="rect4809"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#f6921e;stroke-width:1.41729999"
+ d="m 564.05103,101.477 12.757,0 0,12.756 -12.757,0 z"
+ id="rect4811"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#f6921e;stroke-width:1.41729999"
+ d="m 564.05103,124.359 12.757,0 0,12.756 -12.757,0 z"
+ id="rect4813"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#f6921e;stroke-width:1.41729999"
+ d="m 564.05103,147.242 12.757,0 0,12.756 -12.757,0 z"
+ id="rect4815"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#f6921e;stroke-width:1.41729999"
+ d="m 564.05103,170.12399 12.757,0 0,12.756 -12.757,0 z"
+ id="rect4817"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#f6921e;stroke-width:1.41729999"
+ d="m 564.05103,193.007 12.757,0 0,12.756 -12.757,0 z"
+ id="rect4819"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#f6921e;stroke-width:1.41729999"
+ d="m 564.05103,215.89 12.757,0 0,12.756 -12.757,0 z"
+ id="rect4821"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#f6921e;stroke-width:1.41729999"
+ d="m 564.05103,238.772 12.757,0 0,12.756 -12.757,0 z"
+ id="rect4825"
+ inkscape:connector-curvature="0" /></g><g
+ style="font-size:9.60000038px"
+ id="text4831-2"><path
+ d="m -204.23171,331.74354 6.90703,0 0,0.92969 -2.89844,0 0,7.23516 -1.11015,0 0,-7.23516 -2.89844,0 0,-0.92969"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4499"
+ inkscape:connector-curvature="0" /><path
+ d="m -195.8153,334.48886 c -0.53959,0 -0.96615,0.21146 -1.27969,0.63437 -0.31355,0.41928 -0.47032,0.99532 -0.47031,1.72813 -1e-5,0.73281 0.15494,1.31067 0.46484,1.73359 0.31354,0.41927 0.74192,0.62891 1.28516,0.6289 0.53593,1e-5 0.96067,-0.21145 1.27421,-0.63437 0.31354,-0.42291 0.47031,-0.99896 0.47032,-1.72812 -1e-5,-0.72552 -0.15678,-1.29974 -0.47032,-1.72266 -0.31354,-0.42656 -0.73828,-0.63984 -1.27421,-0.63984 m 0,-0.85313 c 0.87499,10e-6 1.56223,0.28438 2.06171,0.85313 0.49948,0.56875 0.74922,1.35625 0.74922,2.3625 0,1.0026 -0.24974,1.7901 -0.74922,2.36249 -0.49948,0.56876 -1.18672,0.85313 -2.06171,0.85313 -0.87865,0 -1.56771,-0.28437 -2.06719,-0.85313 -0.49584,-0.57239 -0.74375,-1.35989 -0.74375,-2.36249 0,-1.00625 0.24791,-1.79375 0.74375,-2.3625 0.49948,-0.56875 1.18854,-0.85312 2.06719,-0.85313"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4501"
+ inkscape:connector-curvature="0" /><path
+ d="m -187.72155,331.74354 5.1625,0 0,0.92969 -4.05782,0 0,2.41719 3.88828,0 0,0.92969 -3.88828,0 0,2.95859 4.15625,0 0,0.92969 -5.26093,0 0,-8.16485"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4503"
+ inkscape:connector-curvature="0" /><path
+ d="m -175.5864,336.21151 0,3.69688 -1.00625,0 0,-3.66407 c 0,-0.57968 -0.11302,-1.01353 -0.33906,-1.30156 -0.22605,-0.28801 -0.56511,-0.43202 -1.01719,-0.43203 -0.54323,10e-6 -0.97161,0.17318 -1.28515,0.51953 -0.31355,0.34636 -0.47032,0.81849 -0.47032,1.41641 l 0,3.46172 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.24063,-0.36822 0.52318,-0.64348 0.84766,-0.82578 0.32812,-0.18229 0.70547,-0.27343 1.13203,-0.27344 0.70364,10e-6 1.23593,0.21876 1.59688,0.65625 0.36093,0.43386 0.5414,1.0737 0.5414,1.91953"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4505"
+ inkscape:connector-curvature="0" /><path
+ d="m -169.53796,336.77479 c -1e-5,-0.72916 -0.15131,-1.29426 -0.45391,-1.69531 -0.29896,-0.40104 -0.72005,-0.60156 -1.26328,-0.60156 -0.53958,0 -0.96068,0.20052 -1.26328,0.60156 -0.29896,0.40105 -0.44844,0.96615 -0.44844,1.69531 0,0.72553 0.14948,1.28881 0.44844,1.68985 0.3026,0.40104 0.7237,0.60156 1.26328,0.60156 0.54323,0 0.96432,-0.20052 1.26328,-0.60156 0.3026,-0.40104 0.4539,-0.96432 0.45391,-1.68985 m 1.00625,2.37344 c -1e-5,1.04271 -0.23152,1.81745 -0.69453,2.32422 -0.46303,0.51041 -1.17214,0.76562 -2.12735,0.76562 -0.35364,0 -0.68724,-0.0273 -1.00078,-0.082 -0.31354,-0.051 -0.61797,-0.13125 -0.91328,-0.24062 l 0,-0.97891 c 0.29531,0.16042 0.58698,0.27891 0.875,0.35547 0.28802,0.0766 0.58151,0.11484 0.88047,0.11484 0.65989,0 1.1539,-0.17317 1.48203,-0.51953 0.32812,-0.34271 0.49218,-0.86224 0.49219,-1.55859 l 0,-0.49766 c -0.20782,0.36094 -0.47396,0.63073 -0.79844,0.80938 -0.32448,0.17864 -0.71276,0.26797 -1.16484,0.26797 -0.75105,0 -1.35625,-0.2862 -1.81563,-0.8586 -0.45937,-0.57239 -0.68906,-1.33072 -0.68906,-2.275 0,-0.94791 0.22969,-1.70807 0.68906,-2.28047 0.45938,-0.57239 1.06458,-0.85858 1.81563,-0.85859 0.45208,10e-6 0.84036,0.0893 1.16484,0.26797 0.32448,0.17865 0.59062,0.44844 0.79844,0.80937 l 0,-0.92968 1.00625,0 0,5.36484"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4507"
+ inkscape:connector-curvature="0" /><path
+ d="m -162.90984,334.72401 c -0.11302,-0.0656 -0.23698,-0.11301 -0.37187,-0.14219 -0.13125,-0.0328 -0.27709,-0.0492 -0.4375,-0.0492 -0.56875,0 -1.00625,0.18594 -1.3125,0.55781 -0.30261,0.36823 -0.45391,0.8987 -0.45391,1.5914 l 0,3.22657 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.21146,-0.37187 0.48672,-0.64713 0.82578,-0.82578 0.33906,-0.18229 0.75104,-0.27343 1.23594,-0.27344 0.0693,10e-6 0.14583,0.005 0.22969,0.0164 0.0839,0.007 0.17682,0.0201 0.27891,0.0383 l 0.005,1.03359"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4509"
+ inkscape:connector-curvature="0" /><path
+ d="m -159.05984,336.82948 c -0.81302,0 -1.3763,0.093 -1.68984,0.27891 -0.31354,0.18594 -0.47031,0.50312 -0.47031,0.95156 0,0.35729 0.11666,0.64167 0.35,0.85312 0.23697,0.20782 0.55781,0.31172 0.9625,0.31172 0.55781,0 1.00442,-0.19687 1.33984,-0.59062 0.33906,-0.3974 0.50859,-0.92422 0.50859,-1.58047 l 0,-0.22422 -1.00078,0 m 2.00703,-0.41562 0,3.49453 -1.00625,0 0,-0.92969 c -0.22969,0.37187 -0.51589,0.64713 -0.85859,0.82578 -0.34271,0.175 -0.76198,0.2625 -1.25781,0.2625 -0.62709,0 -1.12657,-0.175 -1.49844,-0.525 -0.36823,-0.35365 -0.55234,-0.82578 -0.55234,-1.41641 0,-0.68906 0.22968,-1.20859 0.68906,-1.55859 0.46302,-0.35 1.15208,-0.525 2.06719,-0.525 l 1.41093,0 0,-0.0984 c 0,-0.46301 -0.15313,-0.82031 -0.45937,-1.07187 -0.30261,-0.25521 -0.72917,-0.38281 -1.27969,-0.38281 -0.35,0 -0.69089,0.0419 -1.02265,0.12578 -0.33178,0.0839 -0.65079,0.20964 -0.95704,0.37734 l 0,-0.92969 c 0.36823,-0.14218 0.72552,-0.24791 1.07188,-0.31718 0.34635,-0.0729 0.68359,-0.10937 1.01172,-0.10938 0.88593,1e-5 1.54765,0.22969 1.98515,0.68906 0.4375,0.45938 0.65625,1.15574 0.65625,2.08907"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4511"
+ inkscape:connector-curvature="0" /><path
+ d="m -155.69655,333.78339 1.0664,0 1.91406,5.14062 1.91407,-5.14062 1.0664,0 -2.29687,6.125 -1.36719,0 -2.29687,-6.125"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4513"
+ inkscape:connector-curvature="0" /><path
+ d="m -143.10749,336.59432 0,0.49219 -4.62656,0 c 0.0437,0.69271 0.25156,1.22136 0.62343,1.58594 0.37552,0.36094 0.89687,0.54141 1.56407,0.5414 0.38645,1e-5 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72551,-0.23698 1.08281,-0.42656 l 0,0.95156 c -0.36094,0.15312 -0.73099,0.26979 -1.11015,0.35 -0.37918,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97709,0 -1.75183,-0.28437 -2.32422,-0.85313 -0.56875,-0.56874 -0.85313,-1.33801 -0.85312,-2.30781 -1e-5,-1.0026 0.26979,-1.79739 0.80937,-2.38437 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82395,10e-6 1.47473,0.26615 1.95234,0.79844 0.48125,0.52865 0.72187,1.2487 0.72188,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16225,-0.98984 -0.46485,-1.31797 -0.29896,-0.32812 -0.69635,-0.49218 -1.19218,-0.49218 -0.56146,0 -1.01172,0.15859 -1.35078,0.47578 -0.33542,0.31719 -0.52865,0.7638 -0.57969,1.33984 l 3.5875,-0.005"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4515"
+ inkscape:connector-curvature="0" /><path
+ d="m -135.10671,336.82948 c -0.81302,0 -1.3763,0.093 -1.68984,0.27891 -0.31355,0.18594 -0.47032,0.50312 -0.47031,0.95156 -1e-5,0.35729 0.11666,0.64167 0.35,0.85312 0.23697,0.20782 0.55781,0.31172 0.9625,0.31172 0.5578,0 1.00442,-0.19687 1.33984,-0.59062 0.33906,-0.3974 0.50859,-0.92422 0.50859,-1.58047 l 0,-0.22422 -1.00078,0 m 2.00703,-0.41562 0,3.49453 -1.00625,0 0,-0.92969 c -0.22969,0.37187 -0.51589,0.64713 -0.85859,0.82578 -0.34271,0.175 -0.76198,0.2625 -1.25781,0.2625 -0.62709,0 -1.12657,-0.175 -1.49844,-0.525 -0.36823,-0.35365 -0.55234,-0.82578 -0.55234,-1.41641 0,-0.68906 0.22968,-1.20859 0.68906,-1.55859 0.46302,-0.35 1.15208,-0.525 2.06719,-0.525 l 1.41093,0 0,-0.0984 c 0,-0.46301 -0.15313,-0.82031 -0.45937,-1.07187 -0.30261,-0.25521 -0.72917,-0.38281 -1.27969,-0.38281 -0.35,0 -0.69089,0.0419 -1.02266,0.12578 -0.33177,0.0839 -0.65078,0.20964 -0.95703,0.37734 l 0,-0.92969 c 0.36823,-0.14218 0.72552,-0.24791 1.07188,-0.31718 0.34635,-0.0729 0.68359,-0.10937 1.01172,-0.10938 0.88593,1e-5 1.54765,0.22969 1.98515,0.68906 0.4375,0.45938 0.65625,1.15574 0.65625,2.08907"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4517"
+ inkscape:connector-curvature="0" /><path
+ d="m -127.41218,331.74354 1.10469,0 0,7.23516 3.97578,0 0,0.92969 -5.08047,0 0,-8.16485"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4519"
+ inkscape:connector-curvature="0" /><path
+ d="m -121.22155,333.78339 1.00625,0 0,6.125 -1.00625,0 0,-6.125 m 0,-2.38438 1.00625,0 0,1.27422 -1.00625,0 0,-1.27422"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4521"
+ inkscape:connector-curvature="0" /><path
+ d="m -113.0239,336.21151 0,3.69688 -1.00625,0 0,-3.66407 c -10e-6,-0.57968 -0.11303,-1.01353 -0.33906,-1.30156 -0.22605,-0.28801 -0.56511,-0.43202 -1.01719,-0.43203 -0.54323,10e-6 -0.97162,0.17318 -1.28516,0.51953 -0.31354,0.34636 -0.47031,0.81849 -0.47031,1.41641 l 0,3.46172 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.24062,-0.36822 0.52317,-0.64348 0.84766,-0.82578 0.32812,-0.18229 0.70546,-0.27343 1.13203,-0.27344 0.70364,10e-6 1.23593,0.21876 1.59687,0.65625 0.36093,0.43386 0.5414,1.0737 0.54141,1.91953"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4523"
+ inkscape:connector-curvature="0" /><path
+ d="m -105.76687,336.59432 0,0.49219 -4.62656,0 c 0.0437,0.69271 0.25156,1.22136 0.62343,1.58594 0.37552,0.36094 0.89688,0.54141 1.56407,0.5414 0.38645,1e-5 0.76015,-0.0474 1.12109,-0.14218 0.36458,-0.0948 0.72552,-0.23698 1.08281,-0.42656 l 0,0.95156 c -0.36094,0.15312 -0.73099,0.26979 -1.11015,0.35 -0.37917,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97709,0 -1.75182,-0.28437 -2.32422,-0.85313 -0.56875,-0.56874 -0.85312,-1.33801 -0.85312,-2.30781 0,-1.0026 0.26979,-1.79739 0.80937,-2.38437 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82395,10e-6 1.47474,0.26615 1.95234,0.79844 0.48125,0.52865 0.72187,1.2487 0.72188,2.16015 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16224,-0.98984 -0.46484,-1.31797 -0.29897,-0.32812 -0.69636,-0.49218 -1.19219,-0.49218 -0.56146,0 -1.01172,0.15859 -1.35078,0.47578 -0.33542,0.31719 -0.52865,0.7638 -0.57969,1.33984 l 3.5875,-0.005"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4525"
+ inkscape:connector-curvature="0" /><path
+ d="m -103.85828,338.51932 1.15391,0 0,1.38907 -1.15391,0 0,-1.38907 m 0,-4.40234 1.15391,0 0,1.38906 -1.15391,0 0,-1.38906"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4527"
+ inkscape:connector-curvature="0" /><path
+ d="m -198.20515,345.45151 0,1.07735 c -0.41927,-0.20052 -0.81485,-0.35 -1.18672,-0.44844 -0.37188,-0.0984 -0.73099,-0.14765 -1.07734,-0.14766 -0.60157,1e-5 -1.06641,0.11668 -1.39453,0.35 -0.32448,0.23334 -0.48672,0.56511 -0.48672,0.99532 0,0.36094 0.10755,0.63438 0.32266,0.82031 0.21874,0.1823 0.63072,0.32995 1.23593,0.44297 l 0.66719,0.13672 c 0.82395,0.15677 1.43098,0.43385 1.82109,0.83125 0.39375,0.39375 0.59062,0.92239 0.59063,1.58593 -1e-5,0.79115 -0.26615,1.39089 -0.79844,1.79922 -0.52865,0.40834 -1.30521,0.6125 -2.32969,0.6125 -0.38646,0 -0.79844,-0.0437 -1.23593,-0.13125 -0.43386,-0.0875 -0.88412,-0.21692 -1.35078,-0.38828 l 0,-1.1375 c 0.44843,0.25156 0.88775,0.44115 1.31796,0.56875 0.43021,0.12761 0.85313,0.19141 1.26875,0.19141 0.63073,0 1.11745,-0.12396 1.46016,-0.37188 0.3427,-0.24791 0.51406,-0.60156 0.51406,-1.06094 0,-0.40103 -0.12396,-0.71458 -0.37187,-0.94062 -0.24428,-0.22604 -0.64714,-0.39557 -1.2086,-0.50859 l -0.67265,-0.13125 c -0.82396,-0.16406 -1.42006,-0.42109 -1.78828,-0.7711 -0.36823,-0.34999 -0.55235,-0.83671 -0.55235,-1.46015 0,-0.72187 0.25339,-1.29062 0.76016,-1.70625 0.51041,-0.41562 1.21224,-0.62343 2.10547,-0.62344 0.38281,1e-5 0.77291,0.0346 1.17031,0.10391 0.39739,0.0693 0.8039,0.17318 1.21953,0.31171"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4529"
+ inkscape:connector-curvature="0" /><path
+ d="m -195.03874,345.48433 0,1.73906 2.07265,0 0,0.78203 -2.07265,0 0,3.325 c 0,0.49948 0.0674,0.82031 0.20234,0.9625 0.13854,0.14219 0.41745,0.21328 0.83672,0.21328 l 1.03359,0 0,0.84219 -1.03359,0 c -0.77656,0 -1.3125,-0.14401 -1.60781,-0.43203 -0.29532,-0.29167 -0.44297,-0.82031 -0.44297,-1.58594 l 0,-3.325 -0.73828,0 0,-0.78203 0.73828,0 0,-1.73906 1.01172,0"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4531"
+ inkscape:connector-curvature="0" /><path
+ d="m -188.08796,348.16401 c -0.11303,-0.0656 -0.23698,-0.11301 -0.37188,-0.14218 -0.13125,-0.0328 -0.27708,-0.0492 -0.4375,-0.0492 -0.56875,0 -1.00625,0.18594 -1.3125,0.55781 -0.3026,0.36823 -0.4539,0.8987 -0.4539,1.59141 l 0,3.22656 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.21145,-0.37187 0.48671,-0.64713 0.82578,-0.82578 0.33906,-0.18229 0.75104,-0.27343 1.23594,-0.27344 0.0693,10e-6 0.14583,0.005 0.22968,0.0164 0.0839,0.007 0.17682,0.0201 0.27891,0.0383 l 0.005,1.03359"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4533"
+ inkscape:connector-curvature="0" /><path
+ d="m -184.87781,347.92886 c -0.53958,0 -0.96614,0.21146 -1.27968,0.63437 -0.31355,0.41928 -0.47032,0.99532 -0.47031,1.72813 -1e-5,0.73281 0.15494,1.31068 0.46484,1.73359 0.31354,0.41927 0.74192,0.62891 1.28515,0.62891 0.53594,0 0.96068,-0.21146 1.27422,-0.63438 0.31354,-0.42291 0.47031,-0.99895 0.47032,-1.72812 -1e-5,-0.72552 -0.15678,-1.29974 -0.47032,-1.72266 -0.31354,-0.42656 -0.73828,-0.63984 -1.27422,-0.63984 m 0,-0.85313 c 0.875,10e-6 1.56224,0.28438 2.06172,0.85313 0.49948,0.56875 0.74922,1.35625 0.74922,2.3625 0,1.0026 -0.24974,1.7901 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85312 -2.06172,0.85312 -0.87864,0 -1.56771,-0.28437 -2.06718,-0.85312 -0.49584,-0.5724 -0.74375,-1.3599 -0.74375,-2.3625 0,-1.00625 0.24791,-1.79375 0.74375,-2.3625 0.49947,-0.56875 1.18854,-0.85312 2.06718,-0.85313"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4535"
+ inkscape:connector-curvature="0" /><path
+ d="m -180.43171,344.83901 1.01172,0 0,5.02578 3.00234,-2.6414 1.28516,0 -3.24844,2.86562 3.38516,3.25938 -1.3125,0 -3.11172,-2.99141 0,2.99141 -1.01172,0 0,-8.50938"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4537"
+ inkscape:connector-curvature="0" /><path
+ d="m -169.05124,350.03433 0,0.49218 -4.62656,0 c 0.0437,0.69271 0.25156,1.22136 0.62343,1.58594 0.37552,0.36094 0.89687,0.54141 1.56406,0.54141 0.38646,0 0.76016,-0.0474 1.1211,-0.14219 0.36458,-0.0948 0.72551,-0.23698 1.08281,-0.42656 l 0,0.95156 c -0.36094,0.15313 -0.73099,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.7638,0.12031 -1.1539,0.12031 -0.97709,0 -1.75183,-0.28437 -2.32422,-0.85312 -0.56875,-0.56875 -0.85313,-1.33802 -0.85312,-2.30782 -1e-5,-1.0026 0.26979,-1.79739 0.80937,-2.38437 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82395,10e-6 1.47473,0.26615 1.95234,0.79844 0.48125,0.52865 0.72187,1.2487 0.72188,2.16016 m -1.00625,-0.29532 c -0.007,-0.55051 -0.16225,-0.98984 -0.46485,-1.31796 -0.29896,-0.32812 -0.69635,-0.49219 -1.19218,-0.49219 -0.56147,0 -1.01173,0.1586 -1.35078,0.47578 -0.33542,0.31719 -0.52865,0.76381 -0.57969,1.33984 l 3.5875,-0.005"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4539"
+ inkscape:connector-curvature="0" /><path
+ d="m -159.42624,347.45855 0,0.94062 c -0.28438,-0.15677 -0.57058,-0.27343 -0.8586,-0.35 -0.28437,-0.0802 -0.57239,-0.12031 -0.86406,-0.12031 -0.6526,0 -1.15938,0.20782 -1.52031,0.62344 -0.36094,0.41198 -0.54141,0.99167 -0.54141,1.73906 0,0.7474 0.18047,1.32891 0.54141,1.74453 0.36093,0.41198 0.86771,0.61797 1.52031,0.61797 0.29167,0 0.57969,-0.0383 0.86406,-0.11485 0.28802,-0.0802 0.57422,-0.19869 0.8586,-0.35547 l 0,0.92969 c -0.28074,0.13125 -0.5724,0.22969 -0.875,0.29531 -0.29896,0.0656 -0.61797,0.0984 -0.95703,0.0984 -0.9224,0 -1.65521,-0.28984 -2.19844,-0.86953 -0.54323,-0.57969 -0.81484,-1.36172 -0.81484,-2.34609 0,-0.99896 0.27343,-1.78463 0.82031,-2.35703 0.55052,-0.57239 1.30338,-0.85859 2.25859,-0.8586 0.30989,10e-6 0.6125,0.0328 0.90781,0.0984 0.29531,0.062 0.58151,0.15678 0.8586,0.28438"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4541"
+ inkscape:connector-curvature="0" /><path
+ d="m -155.29187,347.92886 c -0.53959,0 -0.96615,0.21146 -1.27969,0.63437 -0.31354,0.41928 -0.47031,0.99532 -0.47031,1.72813 0,0.73281 0.15495,1.31068 0.46484,1.73359 0.31354,0.41927 0.74193,0.62891 1.28516,0.62891 0.53593,0 0.96067,-0.21146 1.27422,-0.63438 0.31354,-0.42291 0.47031,-0.99895 0.47031,-1.72812 0,-0.72552 -0.15677,-1.29974 -0.47031,-1.72266 -0.31355,-0.42656 -0.73829,-0.63984 -1.27422,-0.63984 m 0,-0.85313 c 0.875,10e-6 1.56224,0.28438 2.06172,0.85313 0.49947,0.56875 0.74921,1.35625 0.74922,2.3625 -1e-5,1.0026 -0.24975,1.7901 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85312 -2.06172,0.85312 -0.87865,0 -1.56771,-0.28437 -2.06719,-0.85312 -0.49583,-0.5724 -0.74375,-1.3599 -0.74375,-2.3625 0,-1.00625 0.24792,-1.79375 0.74375,-2.3625 0.49948,-0.56875 1.18854,-0.85312 2.06719,-0.85313"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4543"
+ inkscape:connector-curvature="0" /><path
+ d="m -150.81843,344.83901 1.00625,0 0,8.50938 -1.00625,0 0,-8.50938"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4545"
+ inkscape:connector-curvature="0" /><path
+ d="m -145.33874,347.92886 c -0.53959,0 -0.96615,0.21146 -1.27969,0.63437 -0.31355,0.41928 -0.47032,0.99532 -0.47031,1.72813 -1e-5,0.73281 0.15494,1.31068 0.46484,1.73359 0.31354,0.41927 0.74192,0.62891 1.28516,0.62891 0.53593,0 0.96067,-0.21146 1.27421,-0.63438 0.31354,-0.42291 0.47031,-0.99895 0.47032,-1.72812 -1e-5,-0.72552 -0.15678,-1.29974 -0.47032,-1.72266 -0.31354,-0.42656 -0.73828,-0.63984 -1.27421,-0.63984 m 0,-0.85313 c 0.87499,10e-6 1.56223,0.28438 2.06171,0.85313 0.49948,0.56875 0.74922,1.35625 0.74922,2.3625 0,1.0026 -0.24974,1.7901 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85312 -2.06171,0.85312 -0.87865,0 -1.56771,-0.28437 -2.06719,-0.85312 -0.49584,-0.5724 -0.74375,-1.3599 -0.74375,-2.3625 0,-1.00625 0.24791,-1.79375 0.74375,-2.3625 0.49948,-0.56875 1.18854,-0.85312 2.06719,-0.85313"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4547"
+ inkscape:connector-curvature="0" /><path
+ d="m -137.31609,348.16401 c -0.11302,-0.0656 -0.23698,-0.11301 -0.37187,-0.14218 -0.13126,-0.0328 -0.27709,-0.0492 -0.4375,-0.0492 -0.56876,0 -1.00626,0.18594 -1.3125,0.55781 -0.30261,0.36823 -0.45391,0.8987 -0.45391,1.59141 l 0,3.22656 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.21146,-0.37187 0.48672,-0.64713 0.82578,-0.82578 0.33906,-0.18229 0.75104,-0.27343 1.23594,-0.27344 0.0693,10e-6 0.14583,0.005 0.22969,0.0164 0.0839,0.007 0.17681,0.0201 0.2789,0.0383 l 0.005,1.03359"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4549"
+ inkscape:connector-curvature="0" /><path
+ d="m -136.17859,351.95933 1.15391,0 0,1.38906 -1.15391,0 0,-1.38906 m 0,-4.40235 1.15391,0 0,1.38906 -1.15391,0 0,-1.38906"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4551"
+ inkscape:connector-curvature="0" /><path
+ d="m -125.15906,349.52026 c 0.23698,0.0802 0.46667,0.25157 0.68907,0.51407 0.22603,0.2625 0.45207,0.62344 0.67812,1.08281 l 1.1211,2.23125 -1.18672,0 -1.04453,-2.09453 c -0.2698,-0.54687 -0.5323,-0.90963 -0.7875,-1.08828 -0.25157,-0.17865 -0.5961,-0.26797 -1.0336,-0.26797 l -1.20312,0 0,3.45078 -1.10469,0 0,-8.16484 2.49375,0 c 0.93333,0 1.62968,0.19506 2.08906,0.58515 0.45937,0.39011 0.68906,0.97891 0.68906,1.76641 0,0.51407 -0.12031,0.94063 -0.36093,1.27968 -0.23699,0.33907 -0.58334,0.57423 -1.03907,0.70547 m -2.76718,-3.4289 0,2.89843 1.38906,0 c 0.53229,10e-6 0.93333,-0.12213 1.20312,-0.3664 0.27344,-0.24791 0.41015,-0.61067 0.41016,-1.08828 -1e-5,-0.4776 -0.13672,-0.83671 -0.41016,-1.07735 -0.26979,-0.24426 -0.67083,-0.3664 -1.20312,-0.3664 l -1.38906,0"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4553"
+ inkscape:connector-curvature="0" /><path
+ d="m -116.54031,350.03433 0,0.49218 -4.62656,0 c 0.0438,0.69271 0.25156,1.22136 0.62344,1.58594 0.37552,0.36094 0.89687,0.54141 1.56406,0.54141 0.38645,0 0.76015,-0.0474 1.12109,-0.14219 0.36458,-0.0948 0.72552,-0.23698 1.08282,-0.42656 l 0,0.95156 c -0.36095,0.15313 -0.731,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97708,0 -1.75182,-0.28437 -2.32422,-0.85312 -0.56875,-0.56875 -0.85312,-1.33802 -0.85312,-2.30782 0,-1.0026 0.26979,-1.79739 0.80937,-2.38437 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82396,10e-6 1.47474,0.26615 1.95235,0.79844 0.48124,0.52865 0.72187,1.2487 0.72187,2.16016 m -1.00625,-0.29532 c -0.007,-0.55051 -0.16224,-0.98984 -0.46484,-1.31796 -0.29896,-0.32812 -0.69636,-0.49219 -1.19219,-0.49219 -0.56146,0 -1.01172,0.1586 -1.35078,0.47578 -0.33542,0.31719 -0.52865,0.76381 -0.57969,1.33984 l 3.5875,-0.005"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4555"
+ inkscape:connector-curvature="0" /><path
+ d="m -110.84734,348.15308 0,-3.31407 1.00625,0 0,8.50938 -1.00625,0 0,-0.91875 c -0.21146,0.36458 -0.47943,0.6362 -0.8039,0.81484 -0.32084,0.175 -0.7073,0.2625 -1.15938,0.2625 -0.7401,0 -1.34349,-0.29531 -1.81015,-0.88594 -0.46303,-0.59062 -0.69454,-1.36718 -0.69453,-2.32968 -1e-5,-0.9625 0.2315,-1.73906 0.69453,-2.32969 0.46666,-0.59062 1.07005,-0.88593 1.81015,-0.88594 0.45208,10e-6 0.83854,0.0893 1.15938,0.26797 0.32447,0.17501 0.59244,0.4448 0.8039,0.80938 m -3.4289,2.13828 c 0,0.7401 0.1513,1.32161 0.4539,1.74453 0.30625,0.41927 0.72552,0.62891 1.25782,0.6289 0.53228,1e-5 0.95155,-0.20963 1.25781,-0.6289 0.30624,-0.42292 0.45937,-1.00443 0.45937,-1.74453 0,-0.7401 -0.15313,-1.31979 -0.45937,-1.73906 -0.30626,-0.42292 -0.72553,-0.63437 -1.25781,-0.63438 -0.5323,1e-5 -0.95157,0.21146 -1.25782,0.63438 -0.3026,0.41927 -0.4539,0.99896 -0.4539,1.73906"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4557"
+ inkscape:connector-curvature="0" /><path
+ d="m -104.7114,349.83198 2.94765,0 0,0.89688 -2.94765,0 0,-0.89688"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4559"
+ inkscape:connector-curvature="0" /><path
+ d="m -92.674681,349.52026 c 0.236974,0.0802 0.466661,0.25157 0.689062,0.51407 0.226036,0.2625 0.452078,0.62344 0.678125,1.08281 l 1.121094,2.23125 -1.186719,0 -1.044531,-2.09453 c -0.269797,-0.54687 -0.532296,-0.90963 -0.7875,-1.08828 -0.251567,-0.17865 -0.596098,-0.26797 -1.033594,-0.26797 l -1.203125,0 0,3.45078 -1.104687,0 0,-8.16484 2.49375,0 c 0.933329,0 1.629682,0.19506 2.089062,0.58515 0.459369,0.39011 0.689056,0.97891 0.689063,1.76641 -7e-6,0.51407 -0.120319,0.94063 -0.360938,1.27968 -0.236985,0.33907 -0.583338,0.57423 -1.039062,0.70547 m -2.767188,-3.4289 0,2.89843 1.389063,0 c 0.532287,10e-6 0.933329,-0.12213 1.203125,-0.3664 0.273432,-0.24791 0.410151,-0.61067 0.410156,-1.08828 -5e-6,-0.4776 -0.136724,-0.83671 -0.410156,-1.07735 -0.269796,-0.24426 -0.670838,-0.3664 -1.203125,-0.3664 l -1.389063,0"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4561"
+ inkscape:connector-curvature="0" /><path
+ d="m -88.895775,351.95933 1.153906,0 0,1.38906 -1.153906,0 0,-1.38906 m 0,-4.40235 1.153906,0 0,1.38906 -1.153906,0 0,-1.38906"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4563"
+ inkscape:connector-curvature="0" /><path
+ d="m -84.274686,352.4187 3.855469,0 0,0.92969 -5.184375,0 0,-0.92969 c 0.41927,-0.43385 0.989842,-1.01536 1.711719,-1.74453 0.725517,-0.73281 1.181246,-1.20494 1.367187,-1.41641 0.353642,-0.39739 0.599735,-0.7328 0.738282,-1.00625 0.142182,-0.27707 0.213276,-0.54869 0.213281,-0.81484 -5e-6,-0.43385 -0.15313,-0.78749 -0.459375,-1.06094 -0.302608,-0.27343 -0.698181,-0.41015 -1.186719,-0.41015 -0.346357,0 -0.712763,0.0602 -1.099219,0.18047 -0.382814,0.12031 -0.79297,0.30261 -1.230468,0.54687 l 0,-1.11562 c 0.44479,-0.17864 0.860414,-0.31354 1.246875,-0.40469 0.386455,-0.0911 0.740101,-0.13671 1.060937,-0.13672 0.845829,1e-5 1.520308,0.21147 2.023437,0.63437 0.50312,0.42293 0.754682,0.98803 0.754688,1.69532 -6e-6,0.33542 -0.06381,0.65443 -0.191406,0.95703 -0.123964,0.29896 -0.351829,0.65261 -0.683594,1.06093 -0.09115,0.10574 -0.380994,0.41199 -0.869531,0.91875 -0.488546,0.50313 -1.177607,1.2086 -2.067188,2.11641"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4565"
+ inkscape:connector-curvature="0" /><path
+ d="m -78.084055,345.18355 4.336719,0 0,0.92968 -3.325,0 0,2.00157 c 0.160414,-0.0547 0.320831,-0.0948 0.48125,-0.12032 0.160414,-0.0292 0.32083,-0.0437 0.48125,-0.0437 0.911454,10e-6 1.633329,0.24975 2.165625,0.74922 0.532286,0.49948 0.798431,1.17579 0.798438,2.02891 -7e-6,0.87865 -0.273444,1.56224 -0.820313,2.05078 -0.54688,0.48489 -1.317973,0.72734 -2.313281,0.72734 -0.342711,0 -0.692711,-0.0292 -1.05,-0.0875 -0.353648,-0.0583 -0.720053,-0.14583 -1.099219,-0.2625 l 0,-1.11015 c 0.328124,0.17864 0.667186,0.31172 1.017188,0.39921 0.349997,0.0875 0.720049,0.13126 1.110156,0.13125 0.630725,1e-5 1.130204,-0.16588 1.498437,-0.49765 0.368225,-0.33177 0.552339,-0.78203 0.552344,-1.35078 -5e-6,-0.56875 -0.184119,-1.01901 -0.552344,-1.35078 -0.368233,-0.33177 -0.867712,-0.49766 -1.498437,-0.49766 -0.295315,0 -0.590628,0.0328 -0.885938,0.0984 -0.291668,0.0656 -0.590626,0.16771 -0.896875,0.30625 l 0,-4.10156"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4567"
+ inkscape:connector-curvature="0" /><path
+ d="m -70.952814,345.18355 4.336719,0 0,0.92968 -3.325,0 0,2.00157 c 0.160414,-0.0547 0.320831,-0.0948 0.48125,-0.12032 0.160414,-0.0292 0.32083,-0.0437 0.48125,-0.0437 0.911454,10e-6 1.633328,0.24975 2.165625,0.74922 0.532286,0.49948 0.798431,1.17579 0.798437,2.02891 -6e-6,0.87865 -0.273443,1.56224 -0.820312,2.05078 -0.54688,0.48489 -1.317973,0.72734 -2.313281,0.72734 -0.342711,0 -0.692711,-0.0292 -1.05,-0.0875 -0.353648,-0.0583 -0.720054,-0.14583 -1.099219,-0.2625 l 0,-1.11015 c 0.328124,0.17864 0.667186,0.31172 1.017187,0.39921 0.349998,0.0875 0.72005,0.13126 1.110157,0.13125 0.630725,1e-5 1.130204,-0.16588 1.498437,-0.49765 0.368225,-0.33177 0.552339,-0.78203 0.552344,-1.35078 -5e-6,-0.56875 -0.184119,-1.01901 -0.552344,-1.35078 -0.368233,-0.33177 -0.867712,-0.49766 -1.498437,-0.49766 -0.295315,0 -0.590628,0.0328 -0.885938,0.0984 -0.291668,0.0656 -0.590626,0.16771 -0.896875,0.30625 l 0,-4.10156"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4569"
+ inkscape:connector-curvature="0" /><path
+ d="m -54.798117,352.18354 0,-2.19296 -1.804688,0 0,-0.90782 2.898438,0 0,3.50547 c -0.42657,0.30261 -0.896882,0.53229 -1.410938,0.68906 -0.514068,0.15313 -1.062765,0.22969 -1.646093,0.22969 -1.276045,0 -2.275003,-0.37187 -2.996875,-1.11562 -0.71823,-0.7474 -1.077345,-1.78646 -1.077344,-3.11719 -10e-7,-1.33437 0.359114,-2.37343 1.077344,-3.11719 0.721872,-0.74739 1.72083,-1.12108 2.996875,-1.12109 0.532286,1e-5 1.037233,0.0656 1.514843,0.19687 0.481244,0.13126 0.924212,0.32449 1.328907,0.57969 l 0,1.17578 c -0.408341,-0.34634 -0.842195,-0.60702 -1.301563,-0.78203 -0.459381,-0.17499 -0.942453,-0.26249 -1.449219,-0.2625 -0.998962,1e-5 -1.750003,0.27891 -2.253125,0.83672 -0.499481,0.55782 -0.74922,1.38907 -0.749218,2.49375 -2e-6,1.10104 0.249737,1.93047 0.749218,2.48828 0.503122,0.55781 1.254163,0.83672 2.253125,0.83672 0.390099,0 0.738276,-0.0328 1.044532,-0.0984 0.306243,-0.0693 0.581504,-0.175 0.825781,-0.31719"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4571"
+ inkscape:connector-curvature="0" /><path
+ d="m -51.467651,351.95933 1.153906,0 0,1.38906 -1.153906,0 0,-1.38906 m 0,-4.40235 1.153906,0 0,1.38906 -1.153906,0 0,-1.38906"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4573"
+ inkscape:connector-curvature="0" /><path
+ d="m -45.435617,345.91089 c -0.568753,1e-5 -0.997138,0.28074 -1.285156,0.84219 -0.284377,0.55781 -0.426565,1.39818 -0.426563,2.52109 -2e-6,1.11927 0.142186,1.95964 0.426563,2.52109 0.288018,0.55782 0.716403,0.83672 1.285156,0.83672 0.572392,0 1.000777,-0.2789 1.285156,-0.83672 0.288016,-0.56145 0.432026,-1.40182 0.432031,-2.52109 -5e-6,-1.12291 -0.144015,-1.96328 -0.432031,-2.52109 -0.284379,-0.56145 -0.712764,-0.84218 -1.285156,-0.84219 m 0,-0.875 c 0.9151,1e-5 1.613276,0.36277 2.094531,1.08828 0.48489,0.72188 0.727337,1.77188 0.727344,3.15 -7e-6,1.37448 -0.242454,2.42448 -0.727344,3.15 -0.481255,0.72188 -1.179431,1.08281 -2.094531,1.08281 -0.915107,0 -1.615106,-0.36093 -2.1,-1.08281 -0.481251,-0.72552 -0.721876,-1.77552 -0.721875,-3.15 -10e-7,-1.37812 0.240624,-2.42812 0.721875,-3.15 0.484894,-0.72551 1.184893,-1.08827 2.1,-1.08828"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4575"
+ inkscape:connector-curvature="0" /><path
+ d="m -36.094998,349.44917 0,2.99141 1.771875,0 c 0.594266,0 1.033588,-0.12214 1.317968,-0.36641 0.288016,-0.24792 0.432026,-0.62526 0.432032,-1.13203 -6e-6,-0.51042 -0.144016,-0.88594 -0.432032,-1.12656 -0.28438,-0.24427 -0.723702,-0.36641 -1.317968,-0.36641 l -1.771875,0 m 0,-3.35781 0,2.46094 1.635156,0 c 0.539579,0 0.94062,-0.10026 1.203125,-0.30079 0.266141,-0.20416 0.399213,-0.51405 0.399219,-0.92968 -6e-6,-0.41198 -0.133078,-0.72005 -0.399219,-0.92422 -0.262505,-0.20416 -0.663546,-0.30625 -1.203125,-0.30625 l -1.635156,0 m -1.104688,-0.90781 2.821875,0 c 0.842183,0 1.491141,0.175 1.946875,0.525 0.455723,0.35 0.683587,0.84766 0.683594,1.49296 -7e-6,0.49949 -0.116673,0.89688 -0.35,1.19219 -0.233339,0.29532 -0.576047,0.47943 -1.028125,0.55234 0.543223,0.11668 0.964317,0.36095 1.263281,0.73282 0.302598,0.36823 0.4539,0.82943 0.453906,1.38359 -6e-6,0.72917 -0.247923,1.29245 -0.74375,1.68984 -0.495838,0.3974 -1.201307,0.5961 -2.116406,0.5961 l -2.93125,0 0,-8.16484"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4577"
+ inkscape:connector-curvature="0" /><path
+ d="m -29.308273,351.95933 1.153906,0 0,1.38906 -1.153906,0 0,-1.38906 m 0,-4.40235 1.153906,0 0,1.38906 -1.153906,0 0,-1.38906"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4579"
+ inkscape:connector-curvature="0" /><path
+ d="m -23.276239,345.91089 c -0.568753,1e-5 -0.997138,0.28074 -1.285156,0.84219 -0.284377,0.55781 -0.426565,1.39818 -0.426563,2.52109 -2e-6,1.11927 0.142186,1.95964 0.426563,2.52109 0.288018,0.55782 0.716403,0.83672 1.285156,0.83672 0.572392,0 1.000777,-0.2789 1.285156,-0.83672 0.288016,-0.56145 0.432026,-1.40182 0.432031,-2.52109 -5e-6,-1.12291 -0.144015,-1.96328 -0.432031,-2.52109 -0.284379,-0.56145 -0.712764,-0.84218 -1.285156,-0.84219 m 0,-0.875 c 0.9151,1e-5 1.613276,0.36277 2.094531,1.08828 0.48489,0.72188 0.727337,1.77188 0.727344,3.15 -7e-6,1.37448 -0.242454,2.42448 -0.727344,3.15 -0.481255,0.72188 -1.179431,1.08281 -2.094531,1.08281 -0.915107,0 -1.615106,-0.36093 -2.1,-1.08281 -0.481251,-0.72552 -0.721876,-1.77552 -0.721875,-3.15 -1e-6,-1.37812 0.240624,-2.42812 0.721875,-3.15 0.484894,-0.72551 1.184893,-1.08827 2.1,-1.08828"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4581"
+ inkscape:connector-curvature="0" /><path
+ d="m -198.20515,358.89152 0,1.07734 c -0.41927,-0.20051 -0.81485,-0.34999 -1.18672,-0.44844 -0.37188,-0.0984 -0.73099,-0.14765 -1.07734,-0.14765 -0.60157,0 -1.06641,0.11667 -1.39453,0.35 -0.32448,0.23334 -0.48672,0.56511 -0.48672,0.99531 0,0.36094 0.10755,0.63438 0.32266,0.82031 0.21874,0.1823 0.63072,0.32995 1.23593,0.44297 l 0.66719,0.13672 c 0.82395,0.15677 1.43098,0.43386 1.82109,0.83125 0.39375,0.39375 0.59062,0.9224 0.59063,1.58594 -1e-5,0.79114 -0.26615,1.39088 -0.79844,1.79921 -0.52865,0.40834 -1.30521,0.6125 -2.32969,0.6125 -0.38646,0 -0.79844,-0.0437 -1.23593,-0.13125 -0.43386,-0.0875 -0.88412,-0.21692 -1.35078,-0.38828 l 0,-1.1375 c 0.44843,0.25157 0.88775,0.44115 1.31796,0.56875 0.43021,0.12761 0.85313,0.19141 1.26875,0.19141 0.63073,0 1.11745,-0.12396 1.46016,-0.37188 0.3427,-0.24791 0.51406,-0.60156 0.51406,-1.06093 0,-0.40104 -0.12396,-0.71458 -0.37187,-0.94063 -0.24428,-0.22604 -0.64714,-0.39557 -1.2086,-0.50859 l -0.67265,-0.13125 c -0.82396,-0.16406 -1.42006,-0.42109 -1.78828,-0.7711 -0.36823,-0.34999 -0.55235,-0.83671 -0.55235,-1.46015 0,-0.72187 0.25339,-1.29062 0.76016,-1.70625 0.51041,-0.41562 1.21224,-0.62343 2.10547,-0.62344 0.38281,1e-5 0.77291,0.0346 1.17031,0.10391 0.39739,0.0693 0.8039,0.17318 1.21953,0.31172"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4583"
+ inkscape:connector-curvature="0" /><path
+ d="m -195.03874,358.92433 0,1.73906 2.07265,0 0,0.78203 -2.07265,0 0,3.325 c 0,0.49948 0.0674,0.82032 0.20234,0.9625 0.13854,0.14219 0.41745,0.21328 0.83672,0.21328 l 1.03359,0 0,0.84219 -1.03359,0 c -0.77656,0 -1.3125,-0.14401 -1.60781,-0.43203 -0.29532,-0.29167 -0.44297,-0.82031 -0.44297,-1.58594 l 0,-3.325 -0.73828,0 0,-0.78203 0.73828,0 0,-1.73906 1.01172,0"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4585"
+ inkscape:connector-curvature="0" /><path
+ d="m -188.08796,361.60402 c -0.11303,-0.0656 -0.23698,-0.11302 -0.37188,-0.14219 -0.13125,-0.0328 -0.27708,-0.0492 -0.4375,-0.0492 -0.56875,1e-5 -1.00625,0.18594 -1.3125,0.55781 -0.3026,0.36824 -0.4539,0.8987 -0.4539,1.59141 l 0,3.22656 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.21145,-0.37187 0.48671,-0.64713 0.82578,-0.82578 0.33906,-0.18228 0.75104,-0.27343 1.23594,-0.27344 0.0693,10e-6 0.14583,0.005 0.22968,0.0164 0.0839,0.007 0.17682,0.0201 0.27891,0.0383 l 0.005,1.0336"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4587"
+ inkscape:connector-curvature="0" /><path
+ d="m -184.87781,361.36886 c -0.53958,1e-5 -0.96614,0.21146 -1.27968,0.63437 -0.31355,0.41928 -0.47032,0.99532 -0.47031,1.72813 -1e-5,0.73281 0.15494,1.31068 0.46484,1.73359 0.31354,0.41928 0.74192,0.62891 1.28515,0.62891 0.53594,0 0.96068,-0.21146 1.27422,-0.63438 0.31354,-0.42291 0.47031,-0.99895 0.47032,-1.72812 -1e-5,-0.72552 -0.15678,-1.29974 -0.47032,-1.72266 -0.31354,-0.42655 -0.73828,-0.63983 -1.27422,-0.63984 m 0,-0.85313 c 0.875,10e-6 1.56224,0.28439 2.06172,0.85313 0.49948,0.56875 0.74922,1.35625 0.74922,2.3625 0,1.00261 -0.24974,1.79011 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85312 -2.06172,0.85312 -0.87864,0 -1.56771,-0.28437 -2.06718,-0.85312 -0.49584,-0.57239 -0.74375,-1.35989 -0.74375,-2.3625 0,-1.00625 0.24791,-1.79375 0.74375,-2.3625 0.49947,-0.56874 1.18854,-0.85312 2.06718,-0.85313"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4589"
+ inkscape:connector-curvature="0" /><path
+ d="m -180.43171,358.27902 1.01172,0 0,5.02578 3.00234,-2.64141 1.28516,0 -3.24844,2.86563 3.38516,3.25937 -1.3125,0 -3.11172,-2.99141 0,2.99141 -1.01172,0 0,-8.50937"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4591"
+ inkscape:connector-curvature="0" /><path
+ d="m -169.05124,363.47433 0,0.49219 -4.62656,0 c 0.0437,0.69271 0.25156,1.22135 0.62343,1.58593 0.37552,0.36094 0.89687,0.54141 1.56406,0.54141 0.38646,0 0.76016,-0.0474 1.1211,-0.14219 0.36458,-0.0948 0.72551,-0.23698 1.08281,-0.42656 l 0,0.95156 c -0.36094,0.15313 -0.73099,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.7638,0.12031 -1.1539,0.12031 -0.97709,0 -1.75183,-0.28437 -2.32422,-0.85312 -0.56875,-0.56875 -0.85313,-1.33802 -0.85312,-2.30781 -1e-5,-1.0026 0.26979,-1.79739 0.80937,-2.38438 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82395,10e-6 1.47473,0.26616 1.95234,0.79844 0.48125,0.52865 0.72187,1.2487 0.72188,2.16016 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16225,-0.98984 -0.46485,-1.31797 -0.29896,-0.32812 -0.69635,-0.49218 -1.19218,-0.49219 -0.56147,1e-5 -1.01173,0.1586 -1.35078,0.47578 -0.33542,0.31719 -0.52865,0.76381 -0.57969,1.33984 l 3.5875,-0.005"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4593"
+ inkscape:connector-curvature="0" /><path
+ d="m -164.41921,360.66339 1.00625,0 1.25781,4.77969 1.25235,-4.77969 1.18671,0 1.25782,4.77969 1.25234,-4.77969 1.00625,0 -1.60234,6.125 -1.18672,0 -1.31797,-5.02031 -1.32344,5.02031 -1.18672,0 -1.60234,-6.125"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4595"
+ inkscape:connector-curvature="0" /><path
+ d="m -149.42937,363.47433 0,0.49219 -4.62656,0 c 0.0437,0.69271 0.25156,1.22135 0.62344,1.58593 0.37551,0.36094 0.89687,0.54141 1.56406,0.54141 0.38645,0 0.76015,-0.0474 1.12109,-0.14219 0.36458,-0.0948 0.72552,-0.23698 1.08282,-0.42656 l 0,0.95156 c -0.36095,0.15313 -0.731,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97708,0 -1.75182,-0.28437 -2.32422,-0.85312 -0.56875,-0.56875 -0.85312,-1.33802 -0.85312,-2.30781 0,-1.0026 0.26979,-1.79739 0.80937,-2.38438 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82396,10e-6 1.47474,0.26616 1.95235,0.79844 0.48124,0.52865 0.72187,1.2487 0.72187,2.16016 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16224,-0.98984 -0.46484,-1.31797 -0.29897,-0.32812 -0.69636,-0.49218 -1.19219,-0.49219 -0.56146,1e-5 -1.01172,0.1586 -1.35078,0.47578 -0.33542,0.31719 -0.52865,0.76381 -0.57969,1.33984 l 3.5875,-0.005"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4597"
+ inkscape:connector-curvature="0" /><path
+ d="m -147.77781,360.66339 1.00625,0 0,6.125 -1.00625,0 0,-6.125 m 0,-2.38437 1.00625,0 0,1.27421 -1.00625,0 0,-1.27421"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4599"
+ inkscape:connector-curvature="0" /><path
+ d="m -140.64109,363.6548 c 0,-0.72917 -0.1513,-1.29427 -0.4539,-1.69532 -0.29897,-0.40103 -0.72006,-0.60155 -1.26328,-0.60156 -0.53959,1e-5 -0.96068,0.20053 -1.26329,0.60156 -0.29896,0.40105 -0.44843,0.96615 -0.44843,1.69532 0,0.72552 0.14947,1.2888 0.44843,1.68984 0.30261,0.40104 0.7237,0.60156 1.26329,0.60156 0.54322,0 0.96431,-0.20052 1.26328,-0.60156 0.3026,-0.40104 0.4539,-0.96432 0.4539,-1.68984 m 1.00625,2.37343 c 0,1.04271 -0.23151,1.81745 -0.69453,2.32422 -0.46302,0.51042 -1.17214,0.76563 -2.12734,0.76563 -0.35365,0 -0.68724,-0.0274 -1.00078,-0.082 -0.31355,-0.051 -0.61797,-0.13125 -0.91328,-0.24063 l 0,-0.9789 c 0.29531,0.16041 0.58697,0.2789 0.875,0.35546 0.28801,0.0766 0.5815,0.11485 0.88046,0.11485 0.6599,0 1.15391,-0.17318 1.48204,-0.51953 0.32812,-0.34271 0.49218,-0.86224 0.49218,-1.5586 l 0,-0.49765 c -0.20781,0.36094 -0.47396,0.63073 -0.79843,0.80937 -0.32449,0.17865 -0.71277,0.26797 -1.16485,0.26797 -0.75104,0 -1.35625,-0.2862 -1.81562,-0.85859 -0.45938,-0.5724 -0.68907,-1.33073 -0.68907,-2.275 0,-0.94792 0.22969,-1.70807 0.68907,-2.28047 0.45937,-0.57239 1.06458,-0.85859 1.81562,-0.8586 0.45208,10e-6 0.84036,0.0893 1.16485,0.26797 0.32447,0.17866 0.59062,0.44845 0.79843,0.80938 l 0,-0.92969 1.00625,0 0,5.36484"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4601"
+ inkscape:connector-curvature="0" /><path
+ d="m -132.47078,363.09152 0,3.69687 -1.00625,0 0,-3.66406 c 0,-0.57968 -0.11302,-1.01354 -0.33906,-1.30156 -0.22605,-0.28802 -0.56511,-0.43203 -1.01719,-0.43204 -0.54323,10e-6 -0.97162,0.17319 -1.28515,0.51954 -0.31355,0.34635 -0.47032,0.81849 -0.47032,1.4164 l 0,3.46172 -1.01172,0 0,-8.50937 1.01172,0 0,3.33593 c 0.24063,-0.36822 0.52318,-0.64348 0.84766,-0.82578 0.32812,-0.18228 0.70546,-0.27343 1.13203,-0.27344 0.70364,10e-6 1.23593,0.21876 1.59688,0.65625 0.36093,0.43386 0.5414,1.07371 0.5414,1.91954"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4603"
+ inkscape:connector-curvature="0" /><path
+ d="m -129.4575,358.92433 0,1.73906 2.07266,0 0,0.78203 -2.07266,0 0,3.325 c 0,0.49948 0.0675,0.82032 0.20235,0.9625 0.13854,0.14219 0.41744,0.21328 0.83672,0.21328 l 1.03359,0 0,0.84219 -1.03359,0 c -0.77657,0 -1.31251,-0.14401 -1.60782,-0.43203 -0.29531,-0.29167 -0.44297,-0.82031 -0.44297,-1.58594 l 0,-3.325 -0.73828,0 0,-0.78203 0.73828,0 0,-1.73906 1.01172,0"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4605"
+ inkscape:connector-curvature="0" /><path
+ d="m -125.7989,365.39933 1.15391,0 0,1.38906 -1.15391,0 0,-1.38906 m 0,-4.40235 1.15391,0 0,1.38907 -1.15391,0 0,-1.38907"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4607"
+ inkscape:connector-curvature="0" /><path
+ d="m -116.20124,359.35089 c -0.56876,1e-5 -0.99714,0.28074 -1.28516,0.84219 -0.28438,0.55782 -0.42656,1.39818 -0.42656,2.52109 0,1.11928 0.14218,1.95964 0.42656,2.5211 0.28802,0.55781 0.7164,0.83672 1.28516,0.83671 0.57239,1e-5 1.00077,-0.2789 1.28515,-0.83671 0.28802,-0.56146 0.43203,-1.40182 0.43204,-2.5211 -1e-5,-1.12291 -0.14402,-1.96327 -0.43204,-2.52109 -0.28438,-0.56145 -0.71276,-0.84218 -1.28515,-0.84219 m 0,-0.875 c 0.9151,1e-5 1.61327,0.36277 2.09453,1.08828 0.48489,0.72188 0.72734,1.77188 0.72734,3.15 0,1.37448 -0.24245,2.42448 -0.72734,3.15 -0.48126,0.72188 -1.17943,1.08281 -2.09453,1.08281 -0.91511,0 -1.61511,-0.36093 -2.1,-1.08281 -0.48125,-0.72552 -0.72188,-1.77552 -0.72188,-3.15 0,-1.37812 0.24063,-2.42812 0.72188,-3.15 0.48489,-0.72551 1.18489,-1.08827 2.1,-1.08828"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4609"
+ inkscape:connector-curvature="0" /><path
+ d="m -111.43249,365.39933 1.1539,0 0,1.38906 -1.1539,0 0,-1.38906"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4611"
+ inkscape:connector-curvature="0" /><path
+ d="m -105.50437,359.35089 c -0.56875,1e-5 -0.99713,0.28074 -1.28515,0.84219 -0.28438,0.55782 -0.42657,1.39818 -0.42656,2.52109 -10e-6,1.11928 0.14218,1.95964 0.42656,2.5211 0.28802,0.55781 0.7164,0.83672 1.28515,0.83671 0.5724,1e-5 1.00078,-0.2789 1.28516,-0.83671 0.28802,-0.56146 0.43203,-1.40182 0.43203,-2.5211 0,-1.12291 -0.14401,-1.96327 -0.43203,-2.52109 -0.28438,-0.56145 -0.71276,-0.84218 -1.28516,-0.84219 m 0,-0.875 c 0.9151,1e-5 1.61328,0.36277 2.09454,1.08828 0.48489,0.72188 0.72733,1.77188 0.72734,3.15 -1e-5,1.37448 -0.24245,2.42448 -0.72734,3.15 -0.48126,0.72188 -1.17944,1.08281 -2.09454,1.08281 -0.9151,0 -1.6151,-0.36093 -2.1,-1.08281 -0.48125,-0.72552 -0.72187,-1.77552 -0.72187,-3.15 0,-1.37812 0.24062,-2.42812 0.72187,-3.15 0.4849,-0.72551 1.1849,-1.08827 2.1,-1.08828"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4613"
+ inkscape:connector-curvature="0" /><path
+ d="m -100.54421,365.8587 1.804687,0 0,-6.2289 -1.963277,0.39375 0,-1.00625 1.952339,-0.39375 1.104688,0 0,7.23515 1.804687,0 0,0.92969 -4.703124,0 0,-0.92969"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4615"
+ inkscape:connector-curvature="0" /><path
+ d="m -88.977806,361.83917 c 0.251556,-0.45208 0.552337,-0.78567 0.902344,-1.00078 0.349992,-0.2151 0.761971,-0.32265 1.235937,-0.32266 0.638012,10e-6 1.130199,0.22423 1.476562,0.67266 0.346345,0.4448 0.519522,1.07917 0.519532,1.90313 l 0,3.69687 -1.011719,0 0,-3.66406 c -9e-6,-0.58698 -0.103915,-1.02265 -0.311719,-1.30703 -0.207821,-0.28437 -0.525008,-0.42656 -0.951562,-0.42657 -0.521362,10e-6 -0.93334,0.17319 -1.235938,0.51954 -0.30261,0.34635 -0.453912,0.81849 -0.453906,1.4164 l 0,3.46172 -1.011719,0 0,-3.66406 c -5e-6,-0.59062 -0.103911,-1.0263 -0.311718,-1.30703 -0.207817,-0.28437 -0.52865,-0.42656 -0.9625,-0.42657 -0.514066,10e-6 -0.922399,0.17501 -1.225,0.525 -0.302607,0.34636 -0.453909,0.81668 -0.453907,1.41094 l 0,3.46172 -1.011718,0 0,-6.125 1.011718,0 0,0.95156 c 0.229686,-0.37551 0.504946,-0.65259 0.825782,-0.83125 0.32083,-0.17864 0.701819,-0.26796 1.142968,-0.26797 0.444788,10e-6 0.822131,0.11303 1.132032,0.33907 0.313536,0.22604 0.545046,0.55417 0.694531,0.98437"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4617"
+ inkscape:connector-curvature="0" /><path
+ d="m -78.06218,361.83917 c 0.251557,-0.45208 0.552338,-0.78567 0.902344,-1.00078 0.349993,-0.2151 0.761972,-0.32265 1.235938,-0.32266 0.638012,10e-6 1.130199,0.22423 1.476562,0.67266 0.346344,0.4448 0.519521,1.07917 0.519531,1.90313 l 0,3.69687 -1.011718,0 0,-3.66406 c -9e-6,-0.58698 -0.103916,-1.02265 -0.311719,-1.30703 -0.207821,-0.28437 -0.525008,-0.42656 -0.951563,-0.42657 -0.521361,10e-6 -0.93334,0.17319 -1.235937,0.51954 -0.30261,0.34635 -0.453912,0.81849 -0.453906,1.4164 l 0,3.46172 -1.011719,0 0,-3.66406 c -5e-6,-0.59062 -0.103911,-1.0263 -0.311719,-1.30703 -0.207817,-0.28437 -0.52865,-0.42656 -0.9625,-0.42657 -0.514066,10e-6 -0.922398,0.17501 -1.225,0.525 -0.302606,0.34636 -0.453908,0.81668 -0.453906,1.41094 l 0,3.46172 -1.011719,0 0,-6.125 1.011719,0 0,0.95156 c 0.229685,-0.37551 0.504945,-0.65259 0.825781,-0.83125 0.32083,-0.17864 0.701819,-0.26796 1.142969,-0.26797 0.444787,10e-6 0.82213,0.11303 1.132031,0.33907 0.313536,0.22604 0.545046,0.55417 0.694531,0.98437"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4619"
+ inkscape:connector-curvature="0" /></g><g
+ style="font-size:9.60000038px"
+ id="text4841-4"><path
+ d="m -204.2325,201.04194 6.90703,0 0,0.92969 -2.89844,0 0,7.23516 -1.11016,0 0,-7.23516 -2.89843,0 0,-0.92969"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4622"
+ inkscape:connector-curvature="0" /><path
+ d="m -195.8161,203.78726 c -0.53958,0 -0.96615,0.21146 -1.27969,0.63437 -0.31354,0.41928 -0.47031,0.99532 -0.47031,1.72813 0,0.73281 0.15495,1.31067 0.46485,1.73359 0.31353,0.41927 0.74192,0.62891 1.28515,0.62891 0.53594,0 0.96067,-0.21146 1.27422,-0.63438 0.31354,-0.42291 0.47031,-0.99896 0.47031,-1.72812 0,-0.72552 -0.15677,-1.29974 -0.47031,-1.72266 -0.31355,-0.42656 -0.73828,-0.63984 -1.27422,-0.63984 m 0,-0.85313 c 0.875,1e-5 1.56224,0.28438 2.06172,0.85313 0.49947,0.56875 0.74921,1.35625 0.74922,2.3625 -1e-5,1.0026 -0.24975,1.7901 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85312 -2.06172,0.85312 -0.87865,0 -1.56771,-0.28437 -2.06719,-0.85312 -0.49583,-0.5724 -0.74375,-1.3599 -0.74375,-2.3625 0,-1.00625 0.24792,-1.79375 0.74375,-2.3625 0.49948,-0.56875 1.18854,-0.85312 2.06719,-0.85313"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4624"
+ inkscape:connector-curvature="0" /><path
+ d="m -181.60829,201.67085 0,1.16484 c -0.37188,-0.34634 -0.76927,-0.6052 -1.19218,-0.77656 -0.41928,-0.17135 -0.86589,-0.25702 -1.33985,-0.25703 -0.93333,1e-5 -1.64792,0.2862 -2.14375,0.85859 -0.49583,0.56876 -0.74375,1.39272 -0.74375,2.47188 0,1.07552 0.24792,1.89948 0.74375,2.47187 0.49583,0.56875 1.21042,0.85313 2.14375,0.85313 0.47396,0 0.92057,-0.0857 1.33985,-0.25703 0.42291,-0.17136 0.8203,-0.43021 1.19218,-0.77657 l 0,1.15391 c -0.38646,0.2625 -0.79662,0.45938 -1.23046,0.59063 -0.43022,0.13125 -0.88595,0.19687 -1.36719,0.19687 -1.23594,0 -2.20938,-0.37734 -2.92031,-1.13203 -0.71094,-0.75833 -1.06641,-1.79192 -1.06641,-3.10078 0,-1.3125 0.35547,-2.34609 1.06641,-3.10078 0.71093,-0.75833 1.68437,-1.13749 2.92031,-1.1375 0.48853,10e-6 0.94791,0.0656 1.37812,0.19687 0.43385,0.12761 0.84036,0.32084 1.21953,0.57969"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4626"
+ inkscape:connector-curvature="0" /><path
+ d="m -180.03875,206.7896 0,-3.70781 1.00625,0 0,3.66953 c -1e-5,0.57969 0.11301,1.01536 0.33906,1.30703 0.22604,0.28802 0.5651,0.43203 1.01719,0.43203 0.54322,0 0.97161,-0.17318 1.28515,-0.51953 0.31718,-0.34635 0.47578,-0.81849 0.47578,-1.41641 l 0,-3.47265 1.00625,0 0,6.125 -1.00625,0 0,-0.94063 c -0.24427,0.37188 -0.52865,0.64896 -0.85312,0.83125 -0.32084,0.17865 -0.69454,0.26797 -1.1211,0.26797 -0.70364,0 -1.23776,-0.21875 -1.60234,-0.65625 -0.36458,-0.4375 -0.54687,-1.07734 -0.54687,-1.91953"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4628"
+ inkscape:connector-curvature="0" /><path
+ d="m -171.83016,201.34272 0,1.73907 2.07266,0 0,0.78203 -2.07266,0 0,3.325 c 0,0.49948 0.0675,0.82031 0.20234,0.9625 0.13854,0.14219 0.41745,0.21328 0.83672,0.21328 l 1.0336,0 0,0.84219 -1.0336,0 c -0.77656,0 -1.3125,-0.14401 -1.60781,-0.43203 -0.29531,-0.29167 -0.44297,-0.82032 -0.44297,-1.58594 l 0,-3.325 -0.73828,0 0,-0.78203 0.73828,0 0,-1.73907 1.01172,0"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4630"
+ inkscape:connector-curvature="0" /><path
+ d="m -162.07938,206.12788 c -0.81302,0 -1.3763,0.093 -1.68984,0.27891 -0.31355,0.18594 -0.47032,0.50312 -0.47032,0.95156 0,0.35729 0.11667,0.64167 0.35,0.85312 0.23698,0.20782 0.55781,0.31172 0.9625,0.31172 0.55781,0 1.00443,-0.19687 1.33985,-0.59062 0.33906,-0.3974 0.50859,-0.92422 0.50859,-1.58047 l 0,-0.22422 -1.00078,0 m 2.00703,-0.41562 0,3.49453 -1.00625,0 0,-0.92969 c -0.22969,0.37188 -0.51589,0.64714 -0.85859,0.82578 -0.34271,0.175 -0.76198,0.2625 -1.25781,0.2625 -0.62709,0 -1.12657,-0.175 -1.49844,-0.525 -0.36823,-0.35364 -0.55235,-0.82578 -0.55235,-1.41641 0,-0.68906 0.22969,-1.20859 0.68907,-1.55859 0.46302,-0.35 1.15208,-0.525 2.06718,-0.525 l 1.41094,0 0,-0.0984 c 0,-0.46301 -0.15313,-0.8203 -0.45937,-1.07187 -0.30261,-0.2552 -0.72917,-0.38281 -1.27969,-0.38281 -0.35,0 -0.69089,0.0419 -1.02266,0.12578 -0.33177,0.0839 -0.65078,0.20964 -0.95703,0.37734 l 0,-0.92969 c 0.36823,-0.14218 0.72552,-0.24791 1.07188,-0.31718 0.34635,-0.0729 0.68359,-0.10937 1.01172,-0.10938 0.88593,1e-5 1.54765,0.22969 1.98515,0.68906 0.4375,0.45938 0.65625,1.15574 0.65625,2.08907"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4632"
+ inkscape:connector-curvature="0" /><path
+ d="m -154.38485,201.04194 1.10469,0 0,7.23516 3.97578,0 0,0.92969 -5.08047,0 0,-8.16485"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4634"
+ inkscape:connector-curvature="0" /><path
+ d="m -148.19422,203.08179 1.00625,0 0,6.125 -1.00625,0 0,-6.125 m 0,-2.38438 1.00625,0 0,1.27422 -1.00625,0 0,-1.27422"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4636"
+ inkscape:connector-curvature="0" /><path
+ d="m -139.99657,205.50991 0,3.69688 -1.00625,0 0,-3.66407 c 0,-0.57968 -0.11302,-1.01353 -0.33906,-1.30156 -0.22604,-0.28801 -0.56511,-0.43202 -1.01719,-0.43203 -0.54323,1e-5 -0.97161,0.17318 -1.28515,0.51953 -0.31355,0.34636 -0.47032,0.8185 -0.47031,1.41641 l 0,3.46172 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.24062,-0.36822 0.52317,-0.64348 0.84765,-0.82578 0.32812,-0.18229 0.70547,-0.27343 1.13203,-0.27344 0.70364,1e-5 1.23594,0.21876 1.59688,0.65625 0.36093,0.43386 0.5414,1.0737 0.5414,1.91953"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4638"
+ inkscape:connector-curvature="0" /><path
+ d="m -132.73953,205.89272 0,0.49219 -4.62657,0 c 0.0437,0.69271 0.25156,1.22136 0.62344,1.58594 0.37552,0.36094 0.89687,0.54141 1.56406,0.54141 0.38646,0 0.76016,-0.0474 1.1211,-0.14219 0.36458,-0.0948 0.72551,-0.23698 1.08281,-0.42656 l 0,0.95156 c -0.36094,0.15312 -0.731,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.7638,0.12031 -1.1539,0.12031 -0.97709,0 -1.75183,-0.28437 -2.32422,-0.85312 -0.56875,-0.56875 -0.85313,-1.33802 -0.85313,-2.30782 0,-1.0026 0.26979,-1.79739 0.80938,-2.38437 0.54323,-0.59062 1.27421,-0.88593 2.19297,-0.88594 0.82395,1e-5 1.47473,0.26615 1.95234,0.79844 0.48124,0.52865 0.72187,1.2487 0.72188,2.16015 m -1.00625,-0.29531 c -0.007,-0.55051 -0.16225,-0.98984 -0.46485,-1.31797 -0.29896,-0.32812 -0.69636,-0.49218 -1.19219,-0.49218 -0.56146,0 -1.01172,0.15859 -1.35078,0.47578 -0.33542,0.31719 -0.52864,0.7638 -0.57968,1.33984 l 3.5875,-0.005"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4640"
+ inkscape:connector-curvature="0" /><path
+ d="m -130.83094,207.81772 1.15391,0 0,1.38907 -1.15391,0 0,-1.38907 m 0,-4.40234 1.15391,0 0,1.38906 -1.15391,0 0,-1.38906"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4642"
+ inkscape:connector-curvature="0" /><path
+ d="m -198.20594,214.74991 0,1.07735 c -0.41928,-0.20052 -0.81485,-0.34999 -1.18672,-0.44844 -0.37188,-0.0984 -0.73099,-0.14765 -1.07734,-0.14766 -0.60157,1e-5 -1.06641,0.11668 -1.39454,0.35 -0.32448,0.23334 -0.48672,0.56512 -0.48671,0.99532 -1e-5,0.36094 0.10755,0.63438 0.32265,0.82031 0.21875,0.1823 0.63073,0.32995 1.23594,0.44297 l 0.66719,0.13672 c 0.82395,0.15677 1.43098,0.43386 1.82109,0.83125 0.39374,0.39375 0.59062,0.9224 0.59063,1.58593 -1e-5,0.79115 -0.26616,1.39089 -0.79844,1.79922 -0.52865,0.40834 -1.30521,0.6125 -2.32969,0.6125 -0.38646,0 -0.79844,-0.0438 -1.23594,-0.13125 -0.43385,-0.0875 -0.88411,-0.21692 -1.35078,-0.38828 l 0,-1.1375 c 0.44844,0.25157 0.88776,0.44115 1.31797,0.56875 0.43021,0.12761 0.85312,0.19141 1.26875,0.19141 0.63073,0 1.11744,-0.12396 1.46016,-0.37188 0.3427,-0.24791 0.51405,-0.60156 0.51406,-1.06093 -1e-5,-0.40104 -0.12396,-0.71458 -0.37188,-0.94063 -0.24427,-0.22604 -0.64714,-0.39557 -1.20859,-0.50859 l -0.67266,-0.13125 c -0.82396,-0.16406 -1.42005,-0.42109 -1.78828,-0.7711 -0.36823,-0.34999 -0.55234,-0.83671 -0.55234,-1.46015 0,-0.72187 0.25338,-1.29062 0.76016,-1.70625 0.51041,-0.41562 1.21223,-0.62343 2.10546,-0.62344 0.38281,1e-5 0.77292,0.0346 1.17032,0.10391 0.39739,0.0693 0.8039,0.17318 1.21953,0.31171"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4644"
+ inkscape:connector-curvature="0" /><path
+ d="m -195.03954,214.78273 0,1.73906 2.07266,0 0,0.78203 -2.07266,0 0,3.325 c 0,0.49948 0.0674,0.82031 0.20235,0.9625 0.13854,0.14219 0.41744,0.21328 0.83672,0.21328 l 1.03359,0 0,0.84219 -1.03359,0 c -0.77657,0 -1.3125,-0.14401 -1.60782,-0.43203 -0.29531,-0.29167 -0.44297,-0.82031 -0.44296,-1.58594 l 0,-3.325 -0.73829,0 0,-0.78203 0.73829,0 0,-1.73906 1.01171,0"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4646"
+ inkscape:connector-curvature="0" /><path
+ d="m -188.08875,217.46241 c -0.11303,-0.0656 -0.23699,-0.11301 -0.37188,-0.14218 -0.13125,-0.0328 -0.27709,-0.0492 -0.4375,-0.0492 -0.56875,0 -1.00625,0.18594 -1.3125,0.55781 -0.30261,0.36823 -0.45391,0.8987 -0.45391,1.59141 l 0,3.22656 -1.01171,0 0,-6.125 1.01171,0 0,0.95156 c 0.21146,-0.37187 0.48672,-0.64713 0.82579,-0.82578 0.33906,-0.18228 0.75103,-0.27343 1.23593,-0.27344 0.0693,1e-5 0.14583,0.005 0.22969,0.0164 0.0839,0.007 0.17682,0.0201 0.27891,0.0383 l 0.005,1.03359"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4648"
+ inkscape:connector-curvature="0" /><path
+ d="m -184.8786,217.22726 c -0.53958,0 -0.96615,0.21146 -1.27969,0.63437 -0.31354,0.41928 -0.47031,0.99532 -0.47031,1.72813 0,0.73281 0.15495,1.31068 0.46485,1.73359 0.31353,0.41927 0.74192,0.62891 1.28515,0.62891 0.53594,0 0.96067,-0.21146 1.27422,-0.63438 0.31354,-0.42291 0.47031,-0.99895 0.47031,-1.72812 0,-0.72552 -0.15677,-1.29974 -0.47031,-1.72266 -0.31355,-0.42656 -0.73828,-0.63984 -1.27422,-0.63984 m 0,-0.85313 c 0.875,1e-5 1.56224,0.28438 2.06172,0.85313 0.49947,0.56875 0.74921,1.35625 0.74922,2.3625 -1e-5,1.0026 -0.24975,1.7901 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85312 -2.06172,0.85312 -0.87865,0 -1.56771,-0.28437 -2.06719,-0.85312 -0.49583,-0.5724 -0.74375,-1.3599 -0.74375,-2.3625 0,-1.00625 0.24792,-1.79375 0.74375,-2.3625 0.49948,-0.56875 1.18854,-0.85312 2.06719,-0.85313"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4650"
+ inkscape:connector-curvature="0" /><path
+ d="m -180.4325,214.13741 1.01171,0 0,5.02579 3.00235,-2.64141 1.28515,0 -3.24843,2.86562 3.38515,3.25938 -1.3125,0 -3.11172,-2.99141 0,2.99141 -1.01171,0 0,-8.50938"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4652"
+ inkscape:connector-curvature="0" /><path
+ d="m -169.05204,219.33273 0,0.49218 -4.62656,0 c 0.0437,0.69272 0.25156,1.22136 0.62344,1.58594 0.37552,0.36094 0.89687,0.54141 1.56406,0.54141 0.38646,0 0.76015,-0.0474 1.1211,-0.14219 0.36457,-0.0948 0.72551,-0.23698 1.08281,-0.42656 l 0,0.95156 c -0.36095,0.15313 -0.731,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.7638,0.12031 -1.1539,0.12031 -0.97709,0 -1.75183,-0.28437 -2.32422,-0.85312 -0.56875,-0.56875 -0.85313,-1.33802 -0.85313,-2.30781 0,-1.0026 0.26979,-1.7974 0.80938,-2.38438 0.54322,-0.59062 1.27421,-0.88593 2.19297,-0.88594 0.82395,1e-5 1.47473,0.26616 1.95234,0.79844 0.48124,0.52865 0.72187,1.2487 0.72187,2.16016 m -1.00625,-0.29532 c -0.007,-0.55051 -0.16224,-0.98983 -0.46484,-1.31796 -0.29896,-0.32812 -0.69636,-0.49219 -1.19219,-0.49219 -0.56146,0 -1.01172,0.1586 -1.35078,0.47578 -0.33542,0.31719 -0.52865,0.76381 -0.57969,1.33984 l 3.5875,-0.005"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4654"
+ inkscape:connector-curvature="0" /><path
+ d="m -159.42703,216.75695 0,0.94062 c -0.28439,-0.15676 -0.57058,-0.27343 -0.8586,-0.35 -0.28438,-0.0802 -0.5724,-0.12031 -0.86406,-0.12031 -0.65261,0 -1.15938,0.20782 -1.52031,0.62344 -0.36094,0.41198 -0.54141,0.99167 -0.54141,1.73906 0,0.7474 0.18047,1.32891 0.54141,1.74453 0.36093,0.41198 0.8677,0.61797 1.52031,0.61797 0.29166,0 0.57968,-0.0383 0.86406,-0.11485 0.28802,-0.0802 0.57421,-0.19869 0.8586,-0.35546 l 0,0.92968 c -0.28074,0.13125 -0.57241,0.22969 -0.875,0.29532 -0.29897,0.0656 -0.61798,0.0984 -0.95704,0.0984 -0.92239,0 -1.65521,-0.28984 -2.19843,-0.86953 -0.54323,-0.57968 -0.81485,-1.36171 -0.81485,-2.34609 0,-0.99896 0.27344,-1.78463 0.82032,-2.35703 0.55051,-0.57239 1.30338,-0.85859 2.25859,-0.8586 0.30989,1e-5 0.61249,0.0328 0.90781,0.0984 0.29531,0.062 0.58151,0.15678 0.8586,0.28438"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4656"
+ inkscape:connector-curvature="0" /><path
+ d="m -155.29266,217.22726 c -0.53959,0 -0.96615,0.21146 -1.27969,0.63437 -0.31354,0.41928 -0.47031,0.99532 -0.47031,1.72813 0,0.73281 0.15494,1.31068 0.46484,1.73359 0.31354,0.41927 0.74193,0.62891 1.28516,0.62891 0.53593,0 0.96067,-0.21146 1.27422,-0.63438 0.31353,-0.42291 0.4703,-0.99895 0.47031,-1.72812 -1e-5,-0.72552 -0.15678,-1.29974 -0.47031,-1.72266 -0.31355,-0.42656 -0.73829,-0.63984 -1.27422,-0.63984 m 0,-0.85313 c 0.87499,1e-5 1.56223,0.28438 2.06172,0.85313 0.49947,0.56875 0.74921,1.35625 0.74921,2.3625 0,1.0026 -0.24974,1.7901 -0.74921,2.3625 -0.49949,0.56875 -1.18673,0.85312 -2.06172,0.85312 -0.87865,0 -1.56771,-0.28437 -2.06719,-0.85312 -0.49583,-0.5724 -0.74375,-1.3599 -0.74375,-2.3625 0,-1.00625 0.24792,-1.79375 0.74375,-2.3625 0.49948,-0.56875 1.18854,-0.85312 2.06719,-0.85313"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4658"
+ inkscape:connector-curvature="0" /><path
+ d="m -150.81923,214.13741 1.00625,0 0,8.50938 -1.00625,0 0,-8.50938"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4660"
+ inkscape:connector-curvature="0" /><path
+ d="m -145.33954,217.22726 c -0.53958,0 -0.96615,0.21146 -1.27969,0.63437 -0.31354,0.41928 -0.47031,0.99532 -0.47031,1.72813 0,0.73281 0.15495,1.31068 0.46485,1.73359 0.31354,0.41927 0.74192,0.62891 1.28515,0.62891 0.53594,0 0.96067,-0.21146 1.27422,-0.63438 0.31354,-0.42291 0.47031,-0.99895 0.47031,-1.72812 0,-0.72552 -0.15677,-1.29974 -0.47031,-1.72266 -0.31355,-0.42656 -0.73828,-0.63984 -1.27422,-0.63984 m 0,-0.85313 c 0.875,1e-5 1.56224,0.28438 2.06172,0.85313 0.49947,0.56875 0.74921,1.35625 0.74922,2.3625 -10e-6,1.0026 -0.24975,1.7901 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85312 -2.06172,0.85312 -0.87865,0 -1.56771,-0.28437 -2.06719,-0.85312 -0.49583,-0.5724 -0.74375,-1.3599 -0.74375,-2.3625 0,-1.00625 0.24792,-1.79375 0.74375,-2.3625 0.49948,-0.56875 1.18854,-0.85312 2.06719,-0.85313"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4662"
+ inkscape:connector-curvature="0" /><path
+ d="m -137.31688,217.46241 c -0.11303,-0.0656 -0.23699,-0.11301 -0.37188,-0.14218 -0.13125,-0.0328 -0.27708,-0.0492 -0.4375,-0.0492 -0.56875,0 -1.00625,0.18594 -1.3125,0.55781 -0.3026,0.36823 -0.45391,0.8987 -0.4539,1.59141 l 0,3.22656 -1.01172,0 0,-6.125 1.01172,0 0,0.95156 c 0.21145,-0.37187 0.48671,-0.64713 0.82578,-0.82578 0.33906,-0.18228 0.75104,-0.27343 1.23594,-0.27344 0.0693,1e-5 0.14582,0.005 0.22968,0.0164 0.0838,0.007 0.17682,0.0201 0.27891,0.0383 l 0.005,1.03359"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4664"
+ inkscape:connector-curvature="0" /><path
+ d="m -136.17938,221.25773 1.1539,0 0,1.38906 -1.1539,0 0,-1.38906 m 0,-4.40235 1.1539,0 0,1.38907 -1.1539,0 0,-1.38907"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4666"
+ inkscape:connector-curvature="0" /><path
+ d="m -127.92704,218.74757 0,2.99141 1.77188,0 c 0.59426,0 1.03359,-0.12214 1.31797,-0.36641 0.28801,-0.24791 0.43202,-0.62526 0.43203,-1.13203 -1e-5,-0.51041 -0.14402,-0.88593 -0.43203,-1.12656 -0.28438,-0.24427 -0.72371,-0.36641 -1.31797,-0.36641 l -1.77188,0 m 0,-3.35781 0,2.46094 1.63516,0 c 0.53958,0 0.94062,-0.10026 1.20312,-0.30079 0.26614,-0.20416 0.39922,-0.51405 0.39922,-0.92968 0,-0.41198 -0.13308,-0.72005 -0.39922,-0.92422 -0.2625,-0.20416 -0.66354,-0.30624 -1.20312,-0.30625 l -1.63516,0 m -1.10468,-0.90781 2.82187,0 c 0.84218,0 1.49114,0.175 1.94688,0.525 0.45572,0.35 0.68358,0.84766 0.68359,1.49296 -1e-5,0.49949 -0.11667,0.89688 -0.35,1.19219 -0.23334,0.29532 -0.57605,0.47943 -1.02813,0.55235 0.54323,0.11667 0.96432,0.36094 1.26329,0.73281 0.30259,0.36823 0.45389,0.82943 0.4539,1.38359 -1e-5,0.72917 -0.24792,1.29245 -0.74375,1.68985 -0.49584,0.39739 -1.20131,0.59609 -2.1164,0.59609 l -2.93125,0 0,-8.16484"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4668"
+ inkscape:connector-curvature="0" /><path
+ d="m -121.39735,214.13741 1.00625,0 0,8.50938 -1.00625,0 0,-8.50938"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4670"
+ inkscape:connector-curvature="0" /><path
+ d="m -118.395,220.2296 0,-3.70781 1.00625,0 0,3.66953 c 0,0.57969 0.11302,1.01537 0.33906,1.30703 0.22604,0.28802 0.5651,0.43203 1.01719,0.43203 0.54322,0 0.97161,-0.17317 1.28515,-0.51953 0.31719,-0.34635 0.47578,-0.81849 0.47578,-1.4164 l 0,-3.47266 1.00625,0 0,6.125 -1.00625,0 0,-0.94063 c -0.24427,0.37188 -0.52865,0.64896 -0.85312,0.83125 -0.32084,0.17865 -0.69454,0.26797 -1.12109,0.26797 -0.70365,0 -1.23777,-0.21875 -1.60235,-0.65625 -0.36458,-0.4375 -0.54687,-1.07734 -0.54687,-1.91953"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4672"
+ inkscape:connector-curvature="0" /><path
+ d="m -105.94266,219.33273 0,0.49218 -4.62656,0 c 0.0438,0.69272 0.25156,1.22136 0.62344,1.58594 0.37551,0.36094 0.89687,0.54141 1.56406,0.54141 0.38645,0 0.76015,-0.0474 1.12109,-0.14219 0.36458,-0.0948 0.72552,-0.23698 1.08281,-0.42656 l 0,0.95156 c -0.36094,0.15313 -0.73099,0.26979 -1.11015,0.35 -0.37917,0.0802 -0.76381,0.12031 -1.15391,0.12031 -0.97708,0 -1.75182,-0.28437 -2.32422,-0.85312 -0.56875,-0.56875 -0.85312,-1.33802 -0.85312,-2.30781 0,-1.0026 0.26979,-1.7974 0.80937,-2.38438 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88594 0.82396,1e-5 1.47474,0.26616 1.95235,0.79844 0.48124,0.52865 0.72186,1.2487 0.72187,2.16016 m -1.00625,-0.29532 c -0.007,-0.55051 -0.16224,-0.98983 -0.46484,-1.31796 -0.29897,-0.32812 -0.69636,-0.49219 -1.19219,-0.49219 -0.56146,0 -1.01172,0.1586 -1.35078,0.47578 -0.33542,0.31719 -0.52865,0.76381 -0.57969,1.33984 l 3.5875,-0.005"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4674"
+ inkscape:connector-curvature="0" /><path
+ d="m -101.23407,219.13038 2.947656,0 0,0.89688 -2.947656,0 0,-0.89688"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4676"
+ inkscape:connector-curvature="0" /><path
+ d="m -89.197348,218.81866 c 0.236974,0.0802 0.466661,0.25157 0.689062,0.51407 0.226036,0.2625 0.452078,0.62344 0.678125,1.08281 l 1.121094,2.23125 -1.186719,0 -1.044531,-2.09453 c -0.269796,-0.54687 -0.532296,-0.90963 -0.7875,-1.08828 -0.251567,-0.17865 -0.596097,-0.26797 -1.033594,-0.26797 l -1.203125,0 0,3.45078 -1.104687,0 0,-8.16484 2.49375,0 c 0.933329,0 1.629682,0.19506 2.089062,0.58515 0.459369,0.39011 0.689056,0.97892 0.689063,1.76641 -7e-6,0.51407 -0.120319,0.94063 -0.360938,1.27969 -0.236985,0.33906 -0.583338,0.57422 -1.039062,0.70546 m -2.767188,-3.4289 0,2.89844 1.389063,0 c 0.532287,0 0.933329,-0.12214 1.203125,-0.36641 0.273432,-0.24791 0.410151,-0.61067 0.410156,-1.08828 -5e-6,-0.4776 -0.136724,-0.83671 -0.410156,-1.07735 -0.269796,-0.24426 -0.670838,-0.36639 -1.203125,-0.3664 l -1.389063,0"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4678"
+ inkscape:connector-curvature="0" /><path
+ d="m -85.418442,221.25773 1.153906,0 0,1.38906 -1.153906,0 0,-1.38906 m 0,-4.40235 1.153906,0 0,1.38907 -1.153906,0 0,-1.38907"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4680"
+ inkscape:connector-curvature="0" /><path
+ d="m -79.386415,215.20929 c -0.568753,1e-5 -0.997138,0.28074 -1.285156,0.84219 -0.284377,0.55782 -0.426565,1.39818 -0.426563,2.52109 -2e-6,1.11927 0.142186,1.95964 0.426563,2.52109 0.288018,0.55782 0.716403,0.83672 1.285156,0.83672 0.572392,0 1.000777,-0.2789 1.285156,-0.83672 0.288016,-0.56145 0.432026,-1.40182 0.432031,-2.52109 -5e-6,-1.12291 -0.144015,-1.96327 -0.432031,-2.52109 -0.284379,-0.56145 -0.712764,-0.84218 -1.285156,-0.84219 m 0,-0.875 c 0.9151,1e-5 1.613276,0.36277 2.094531,1.08828 0.48489,0.72188 0.727337,1.77188 0.727344,3.15 -7e-6,1.37448 -0.242454,2.42448 -0.727344,3.15 -0.481255,0.72188 -1.179431,1.08281 -2.094531,1.08281 -0.915107,0 -1.615106,-0.36093 -2.1,-1.08281 -0.481251,-0.72552 -0.721876,-1.77552 -0.721875,-3.15 -10e-7,-1.37812 0.240624,-2.42812 0.721875,-3.15 0.484894,-0.72551 1.184893,-1.08827 2.1,-1.08828"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4682"
+ inkscape:connector-curvature="0" /><path
+ d="m -65.583289,221.48195 0,-2.19297 -1.804687,0 0,-0.90782 2.898437,0 0,3.50547 c -0.42657,0.30261 -0.896882,0.5323 -1.410937,0.68907 -0.514069,0.15312 -1.062766,0.22968 -1.646094,0.22968 -1.276045,0 -2.275002,-0.37187 -2.996875,-1.11562 -0.71823,-0.7474 -1.077344,-1.78646 -1.077344,-3.11719 0,-1.33437 0.359114,-2.37343 1.077344,-3.11719 0.721873,-0.74738 1.72083,-1.12108 2.996875,-1.12109 0.532287,1e-5 1.037234,0.0656 1.514844,0.19687 0.481243,0.13126 0.924211,0.32449 1.328906,0.57969 l 0,1.17578 c -0.40834,-0.34634 -0.842194,-0.60702 -1.301562,-0.78203 -0.459381,-0.17499 -0.942454,-0.26249 -1.449219,-0.2625 -0.998962,1e-5 -1.750003,0.27892 -2.253125,0.83672 -0.499481,0.55782 -0.749221,1.38907 -0.749219,2.49375 -2e-6,1.10105 0.249738,1.93047 0.749219,2.48828 0.503122,0.55782 1.254163,0.83672 2.253125,0.83672 0.390099,0 0.738276,-0.0328 1.044531,-0.0984 0.306244,-0.0693 0.581504,-0.175 0.825781,-0.31718"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4684"
+ inkscape:connector-curvature="0" /><path
+ d="m -62.252823,221.25773 1.153906,0 0,1.38906 -1.153906,0 0,-1.38906 m 0,-4.40235 1.153906,0 0,1.38907 -1.153906,0 0,-1.38907"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4686"
+ inkscape:connector-curvature="0" /><path
+ d="m -56.220789,215.20929 c -0.568753,1e-5 -0.997138,0.28074 -1.285156,0.84219 -0.284377,0.55782 -0.426564,1.39818 -0.426562,2.52109 -2e-6,1.11927 0.142185,1.95964 0.426562,2.52109 0.288018,0.55782 0.716403,0.83672 1.285156,0.83672 0.572392,0 1.000777,-0.2789 1.285157,-0.83672 0.288015,-0.56145 0.432026,-1.40182 0.432031,-2.52109 -5e-6,-1.12291 -0.144016,-1.96327 -0.432031,-2.52109 -0.28438,-0.56145 -0.712765,-0.84218 -1.285157,-0.84219 m 0,-0.875 c 0.9151,1e-5 1.613276,0.36277 2.094532,1.08828 0.484889,0.72188 0.727337,1.77188 0.727343,3.15 -6e-6,1.37448 -0.242454,2.42448 -0.727343,3.15 -0.481256,0.72188 -1.179432,1.08281 -2.094532,1.08281 -0.915106,0 -1.615106,-0.36093 -2.1,-1.08281 -0.481251,-0.72552 -0.721875,-1.77552 -0.721875,-3.15 0,-1.37812 0.240624,-2.42812 0.721875,-3.15 0.484894,-0.72551 1.184894,-1.08827 2.1,-1.08828"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4688"
+ inkscape:connector-curvature="0" /><path
+ d="m -46.88017,218.74757 0,2.99141 1.771875,0 c 0.594267,0 1.033589,-0.12214 1.317969,-0.36641 0.288015,-0.24791 0.432025,-0.62526 0.432031,-1.13203 -6e-6,-0.51041 -0.144016,-0.88593 -0.432031,-1.12656 -0.28438,-0.24427 -0.723702,-0.36641 -1.317969,-0.36641 l -1.771875,0 m 0,-3.35781 0,2.46094 1.635157,0 c 0.539578,0 0.94062,-0.10026 1.203124,-0.30079 0.266141,-0.20416 0.399214,-0.51405 0.399219,-0.92968 -5e-6,-0.41198 -0.133078,-0.72005 -0.399219,-0.92422 -0.262504,-0.20416 -0.663546,-0.30624 -1.203124,-0.30625 l -1.635157,0 m -1.104687,-0.90781 2.821875,0 c 0.842182,0 1.49114,0.175 1.946875,0.525 0.455723,0.35 0.683587,0.84766 0.683593,1.49296 -6e-6,0.49949 -0.116673,0.89688 -0.35,1.19219 -0.233339,0.29532 -0.576047,0.47943 -1.028125,0.55235 0.543224,0.11667 0.964317,0.36094 1.263282,0.73281 0.302597,0.36823 0.453899,0.82943 0.453906,1.38359 -7e-6,0.72917 -0.247923,1.29245 -0.74375,1.68985 -0.495839,0.39739 -1.201307,0.59609 -2.116406,0.59609 l -2.93125,0 0,-8.16484"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4690"
+ inkscape:connector-curvature="0" /><path
+ d="m -40.093445,221.25773 1.153906,0 0,1.38906 -1.153906,0 0,-1.38906 m 0,-4.40235 1.153906,0 0,1.38907 -1.153906,0 0,-1.38907"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4692"
+ inkscape:connector-curvature="0" /><path
+ d="m -35.472348,221.7171 3.855469,0 0,0.92969 -5.184375,0 0,-0.92969 c 0.419269,-0.43385 0.989842,-1.01536 1.711718,-1.74453 0.725518,-0.73281 1.181247,-1.20494 1.367188,-1.41641 0.353641,-0.39739 0.599735,-0.7328 0.738281,-1.00625 0.142183,-0.27707 0.213277,-0.54869 0.213281,-0.81484 -4e-6,-0.43385 -0.153129,-0.78749 -0.459375,-1.06094 -0.302608,-0.27343 -0.69818,-0.41015 -1.186718,-0.41015 -0.346357,0 -0.712763,0.0602 -1.099219,0.18047 -0.382814,0.12032 -0.79297,0.30261 -1.230469,0.54687 l 0,-1.11562 c 0.444791,-0.17864 0.860415,-0.31354 1.246875,-0.40469 0.386456,-0.0911 0.740101,-0.13671 1.060938,-0.13672 0.845829,1e-5 1.520307,0.21147 2.023437,0.63437 0.503119,0.42293 0.754682,0.98803 0.754688,1.69532 -6e-6,0.33542 -0.06381,0.65443 -0.191407,0.95703 -0.123964,0.29896 -0.351828,0.65261 -0.683593,1.06094 -0.09115,0.10573 -0.380995,0.41198 -0.869532,0.91875 -0.488545,0.50312 -1.177607,1.20859 -2.067187,2.1164"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4694"
+ inkscape:connector-curvature="0" /><path
+ d="m -29.281732,214.48195 4.336718,0 0,0.92968 -3.324999,0 0,2.00157 c 0.160414,-0.0547 0.32083,-0.0948 0.48125,-0.12032 0.160413,-0.0292 0.32083,-0.0437 0.48125,-0.0437 0.911454,1e-5 1.633328,0.24975 2.165624,0.74922 0.532286,0.49949 0.798432,1.17579 0.798438,2.02891 -6e-6,0.87865 -0.273443,1.56224 -0.820313,2.05078 -0.546879,0.4849 -1.317972,0.72734 -2.313281,0.72734 -0.342711,0 -0.69271,-0.0292 -1.05,-0.0875 -0.353647,-0.0583 -0.720053,-0.14583 -1.099218,-0.2625 l 0,-1.11015 c 0.328123,0.17864 0.667186,0.31172 1.017187,0.39922 0.349998,0.0875 0.72005,0.13125 1.110156,0.13125 0.630726,0 1.130204,-0.16589 1.498438,-0.49766 0.368224,-0.33177 0.552338,-0.78203 0.552343,-1.35078 -5e-6,-0.56875 -0.184119,-1.01901 -0.552343,-1.35078 -0.368234,-0.33177 -0.867712,-0.49765 -1.498438,-0.49766 -0.295315,1e-5 -0.590627,0.0328 -0.885937,0.0984 -0.291669,0.0656 -0.590627,0.16771 -0.896875,0.30625 l 0,-4.10156"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4696"
+ inkscape:connector-curvature="0" /><path
+ d="m -22.150476,214.48195 4.336719,0 0,0.92968 -3.325,0 0,2.00157 c 0.160414,-0.0547 0.32083,-0.0948 0.48125,-0.12032 0.160413,-0.0292 0.32083,-0.0437 0.48125,-0.0437 0.911454,1e-5 1.633328,0.24975 2.165625,0.74922 0.532285,0.49949 0.798431,1.17579 0.798437,2.02891 -6e-6,0.87865 -0.273443,1.56224 -0.820312,2.05078 -0.54688,0.4849 -1.317973,0.72734 -2.313282,0.72734 -0.342711,0 -0.69271,-0.0292 -1.05,-0.0875 -0.353647,-0.0583 -0.720053,-0.14583 -1.099218,-0.2625 l 0,-1.11015 c 0.328123,0.17864 0.667186,0.31172 1.017187,0.39922 0.349998,0.0875 0.72005,0.13125 1.110156,0.13125 0.630726,0 1.130205,-0.16589 1.498438,-0.49766 0.368224,-0.33177 0.552339,-0.78203 0.552344,-1.35078 -5e-6,-0.56875 -0.18412,-1.01901 -0.552344,-1.35078 -0.368233,-0.33177 -0.867712,-0.49765 -1.498438,-0.49766 -0.295315,1e-5 -0.590627,0.0328 -0.885937,0.0984 -0.291669,0.0656 -0.590627,0.16771 -0.896875,0.30625 l 0,-4.10156"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4698"
+ inkscape:connector-curvature="0" /><path
+ d="m -198.20594,228.18992 0,1.07734 c -0.41928,-0.20051 -0.81485,-0.34999 -1.18672,-0.44844 -0.37188,-0.0984 -0.73099,-0.14765 -1.07734,-0.14765 -0.60157,0 -1.06641,0.11667 -1.39454,0.35 -0.32448,0.23334 -0.48672,0.56511 -0.48671,0.99531 -1e-5,0.36094 0.10755,0.63438 0.32265,0.82031 0.21875,0.1823 0.63073,0.32995 1.23594,0.44297 l 0.66719,0.13672 c 0.82395,0.15677 1.43098,0.43386 1.82109,0.83125 0.39374,0.39375 0.59062,0.9224 0.59063,1.58594 -1e-5,0.79114 -0.26616,1.39088 -0.79844,1.79922 -0.52865,0.40833 -1.30521,0.6125 -2.32969,0.6125 -0.38646,0 -0.79844,-0.0437 -1.23594,-0.13125 -0.43385,-0.0875 -0.88411,-0.21693 -1.35078,-0.38829 l 0,-1.1375 c 0.44844,0.25157 0.88776,0.44115 1.31797,0.56875 0.43021,0.12761 0.85312,0.19141 1.26875,0.19141 0.63073,0 1.11744,-0.12396 1.46016,-0.37187 0.3427,-0.24792 0.51405,-0.60157 0.51406,-1.06094 -1e-5,-0.40104 -0.12396,-0.71458 -0.37188,-0.94063 -0.24427,-0.22604 -0.64714,-0.39557 -1.20859,-0.50859 l -0.67266,-0.13125 c -0.82396,-0.16406 -1.42005,-0.42109 -1.78828,-0.77109 -0.36823,-0.35 -0.55234,-0.83672 -0.55234,-1.46016 0,-0.72187 0.25338,-1.29062 0.76016,-1.70625 0.51041,-0.41562 1.21223,-0.62343 2.10546,-0.62344 0.38281,1e-5 0.77292,0.0346 1.17032,0.10391 0.39739,0.0693 0.8039,0.17318 1.21953,0.31172"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4700"
+ inkscape:connector-curvature="0" /><path
+ d="m -195.03954,228.22273 0,1.73906 2.07266,0 0,0.78203 -2.07266,0 0,3.325 c 0,0.49948 0.0674,0.82032 0.20235,0.9625 0.13854,0.14219 0.41744,0.21329 0.83672,0.21328 l 1.03359,0 0,0.84219 -1.03359,0 c -0.77657,0 -1.3125,-0.14401 -1.60782,-0.43203 -0.29531,-0.29167 -0.44297,-0.82031 -0.44296,-1.58594 l 0,-3.325 -0.73829,0 0,-0.78203 0.73829,0 0,-1.73906 1.01171,0"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4702"
+ inkscape:connector-curvature="0" /><path
+ d="m -188.08875,230.90242 c -0.11303,-0.0656 -0.23699,-0.11302 -0.37188,-0.14219 -0.13125,-0.0328 -0.27709,-0.0492 -0.4375,-0.0492 -0.56875,1e-5 -1.00625,0.18594 -1.3125,0.55781 -0.30261,0.36824 -0.45391,0.89871 -0.45391,1.59141 l 0,3.22656 -1.01171,0 0,-6.125 1.01171,0 0,0.95156 c 0.21146,-0.37186 0.48672,-0.64713 0.82579,-0.82578 0.33906,-0.18228 0.75103,-0.27343 1.23593,-0.27343 0.0693,0 0.14583,0.005 0.22969,0.0164 0.0839,0.007 0.17682,0.0201 0.27891,0.0383 l 0.005,1.0336"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4704"
+ inkscape:connector-curvature="0" /><path
+ d="m -184.8786,230.66726 c -0.53958,1e-5 -0.96615,0.21146 -1.27969,0.63438 -0.31354,0.41927 -0.47031,0.99531 -0.47031,1.72812 0,0.73282 0.15495,1.31068 0.46485,1.73359 0.31353,0.41928 0.74192,0.62891 1.28515,0.62891 0.53594,0 0.96067,-0.21146 1.27422,-0.63437 0.31354,-0.42292 0.47031,-0.99896 0.47031,-1.72813 0,-0.72552 -0.15677,-1.29973 -0.47031,-1.72266 -0.31355,-0.42655 -0.73828,-0.63983 -1.27422,-0.63984 m 0,-0.85312 c 0.875,0 1.56224,0.28438 2.06172,0.85312 0.49947,0.56876 0.74921,1.35625 0.74922,2.3625 -1e-5,1.00261 -0.24975,1.79011 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.85313 -2.06172,0.85313 -0.87865,0 -1.56771,-0.28438 -2.06719,-0.85313 -0.49583,-0.57239 -0.74375,-1.35989 -0.74375,-2.3625 0,-1.00625 0.24792,-1.79374 0.74375,-2.3625 0.49948,-0.56874 1.18854,-0.85312 2.06719,-0.85312"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4706"
+ inkscape:connector-curvature="0" /><path
+ d="m -180.4325,227.57742 1.01171,0 0,5.02578 3.00235,-2.64141 1.28515,0 -3.24843,2.86563 3.38515,3.25937 -1.3125,0 -3.11172,-2.9914 0,2.9914 -1.01171,0 0,-8.50937"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4708"
+ inkscape:connector-curvature="0" /><path
+ d="m -169.05204,232.77273 0,0.49219 -4.62656,0 c 0.0437,0.69271 0.25156,1.22135 0.62344,1.58593 0.37552,0.36094 0.89687,0.54141 1.56406,0.54141 0.38646,0 0.76015,-0.0474 1.1211,-0.14219 0.36457,-0.0948 0.72551,-0.23697 1.08281,-0.42656 l 0,0.95156 c -0.36095,0.15313 -0.731,0.26979 -1.11016,0.35 -0.37917,0.0802 -0.7638,0.12032 -1.1539,0.12032 -0.97709,0 -1.75183,-0.28438 -2.32422,-0.85313 -0.56875,-0.56875 -0.85313,-1.33802 -0.85313,-2.30781 0,-1.0026 0.26979,-1.79739 0.80938,-2.38438 0.54322,-0.59062 1.27421,-0.88593 2.19297,-0.88593 0.82395,0 1.47473,0.26615 1.95234,0.79843 0.48124,0.52865 0.72187,1.24871 0.72187,2.16016 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16224,-0.98984 -0.46484,-1.31797 -0.29896,-0.32812 -0.69636,-0.49218 -1.19219,-0.49219 -0.56146,1e-5 -1.01172,0.1586 -1.35078,0.47578 -0.33542,0.31719 -0.52865,0.76381 -0.57969,1.33985 l 3.5875,-0.005"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4710"
+ inkscape:connector-curvature="0" /><path
+ d="m -164.42,229.96179 1.00625,0 1.25781,4.77969 1.25234,-4.77969 1.18672,0 1.25781,4.77969 1.25235,-4.77969 1.00625,0 -1.60235,6.125 -1.18671,0 -1.31797,-5.02031 -1.32344,5.02031 -1.18672,0 -1.60234,-6.125"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4712"
+ inkscape:connector-curvature="0" /><path
+ d="m -149.43016,232.77273 0,0.49219 -4.62656,0 c 0.0437,0.69271 0.25156,1.22135 0.62343,1.58593 0.37552,0.36094 0.89687,0.54141 1.56407,0.54141 0.38645,0 0.76015,-0.0474 1.12109,-0.14219 0.36458,-0.0948 0.72551,-0.23697 1.08281,-0.42656 l 0,0.95156 c -0.36094,0.15313 -0.73099,0.26979 -1.11015,0.35 -0.37918,0.0802 -0.76381,0.12032 -1.15391,0.12032 -0.97709,0 -1.75183,-0.28438 -2.32422,-0.85313 -0.56875,-0.56875 -0.85313,-1.33802 -0.85312,-2.30781 -1e-5,-1.0026 0.26979,-1.79739 0.80937,-2.38438 0.54323,-0.59062 1.27422,-0.88593 2.19297,-0.88593 0.82395,0 1.47473,0.26615 1.95234,0.79843 0.48125,0.52865 0.72187,1.24871 0.72188,2.16016 m -1.00625,-0.29531 c -0.007,-0.55052 -0.16225,-0.98984 -0.46485,-1.31797 -0.29896,-0.32812 -0.69635,-0.49218 -1.19218,-0.49219 -0.56146,1e-5 -1.01172,0.1586 -1.35078,0.47578 -0.33542,0.31719 -0.52865,0.76381 -0.57969,1.33985 l 3.5875,-0.005"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4714"
+ inkscape:connector-curvature="0" /><path
+ d="m -147.7786,229.96179 1.00625,0 0,6.125 -1.00625,0 0,-6.125 m 0,-2.38437 1.00625,0 0,1.27422 -1.00625,0 0,-1.27422"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4716"
+ inkscape:connector-curvature="0" /><path
+ d="m -140.64188,232.9532 c -1e-5,-0.72916 -0.15131,-1.29427 -0.45391,-1.69531 -0.29896,-0.40104 -0.72005,-0.60156 -1.26328,-0.60157 -0.53958,1e-5 -0.96068,0.20053 -1.26328,0.60157 -0.29896,0.40104 -0.44844,0.96615 -0.44844,1.69531 0,0.72552 0.14948,1.2888 0.44844,1.68984 0.3026,0.40104 0.7237,0.60157 1.26328,0.60156 0.54323,1e-5 0.96432,-0.20052 1.26328,-0.60156 0.3026,-0.40104 0.4539,-0.96432 0.45391,-1.68984 m 1.00625,2.37344 c -1e-5,1.0427 -0.23152,1.81744 -0.69453,2.32421 -0.46303,0.51042 -1.17214,0.76563 -2.12735,0.76563 -0.35364,0 -0.68724,-0.0274 -1.00078,-0.082 -0.31354,-0.0511 -0.61797,-0.13125 -0.91328,-0.24063 l 0,-0.9789 c 0.29531,0.16041 0.58698,0.2789 0.875,0.35547 0.28802,0.0766 0.58151,0.11484 0.88047,0.11484 0.65989,0 1.1539,-0.17318 1.48203,-0.51953 0.32812,-0.34271 0.49218,-0.86224 0.49219,-1.5586 l 0,-0.49765 c -0.20782,0.36094 -0.47396,0.63073 -0.79844,0.80937 -0.32448,0.17865 -0.71276,0.26797 -1.16484,0.26797 -0.75105,0 -1.35625,-0.2862 -1.81563,-0.85859 -0.45937,-0.5724 -0.68906,-1.33073 -0.68906,-2.275 0,-0.94791 0.22969,-1.70807 0.68906,-2.28047 0.45938,-0.57239 1.06458,-0.85859 1.81563,-0.85859 0.45208,0 0.84036,0.0893 1.16484,0.26796 0.32448,0.17866 0.59062,0.44845 0.79844,0.80938 l 0,-0.92969 1.00625,0 0,5.36485"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4718"
+ inkscape:connector-curvature="0" /><path
+ d="m -132.47157,232.38992 0,3.69687 -1.00625,0 0,-3.66406 c -1e-5,-0.57968 -0.11303,-1.01354 -0.33906,-1.30156 -0.22605,-0.28802 -0.56511,-0.43203 -1.01719,-0.43203 -0.54323,0 -0.97162,0.17318 -1.28516,0.51953 -0.31354,0.34636 -0.47031,0.81849 -0.47031,1.4164 l 0,3.46172 -1.01172,0 0,-8.50937 1.01172,0 0,3.33593 c 0.24062,-0.36822 0.52317,-0.64348 0.84766,-0.82578 0.32812,-0.18228 0.70546,-0.27343 1.13203,-0.27343 0.70364,0 1.23593,0.21875 1.59687,0.65625 0.36093,0.43386 0.5414,1.0737 0.54141,1.91953"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4720"
+ inkscape:connector-curvature="0" /><path
+ d="m -129.45829,228.22273 0,1.73906 2.07266,0 0,0.78203 -2.07266,0 0,3.325 c 0,0.49948 0.0675,0.82032 0.20234,0.9625 0.13854,0.14219 0.41745,0.21329 0.83672,0.21328 l 1.0336,0 0,0.84219 -1.0336,0 c -0.77656,0 -1.3125,-0.14401 -1.60781,-0.43203 -0.29531,-0.29167 -0.44297,-0.82031 -0.44297,-1.58594 l 0,-3.325 -0.73828,0 0,-0.78203 0.73828,0 0,-1.73906 1.01172,0"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4722"
+ inkscape:connector-curvature="0" /><path
+ d="m -125.79969,234.69773 1.15391,0 0,1.38906 -1.15391,0 0,-1.38906 m 0,-4.40234 1.15391,0 0,1.38906 -1.15391,0 0,-1.38906"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4724"
+ inkscape:connector-curvature="0" /><path
+ d="m -116.20204,228.64929 c -0.56875,1e-5 -0.99713,0.28074 -1.28515,0.84219 -0.28438,0.55782 -0.42657,1.39818 -0.42656,2.52109 -1e-5,1.11928 0.14218,1.95964 0.42656,2.5211 0.28802,0.55781 0.7164,0.83672 1.28515,0.83672 0.5724,0 1.00078,-0.27891 1.28516,-0.83672 0.28802,-0.56146 0.43203,-1.40182 0.43203,-2.5211 0,-1.12291 -0.14401,-1.96327 -0.43203,-2.52109 -0.28438,-0.56145 -0.71276,-0.84218 -1.28516,-0.84219 m 0,-0.875 c 0.9151,1e-5 1.61328,0.36277 2.09454,1.08828 0.48489,0.72188 0.72733,1.77188 0.72734,3.15 -1e-5,1.37449 -0.24245,2.42448 -0.72734,3.15 -0.48126,0.72188 -1.17944,1.08282 -2.09454,1.08282 -0.9151,0 -1.6151,-0.36094 -2.1,-1.08282 -0.48125,-0.72552 -0.72187,-1.77551 -0.72187,-3.15 0,-1.37812 0.24062,-2.42812 0.72187,-3.15 0.4849,-0.72551 1.1849,-1.08827 2.1,-1.08828"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4726"
+ inkscape:connector-curvature="0" /><path
+ d="m -111.43329,234.69773 1.15391,0 0,1.38906 -1.15391,0 0,-1.38906"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4728"
+ inkscape:connector-curvature="0" /><path
+ d="m -105.50516,228.64929 c -0.56875,1e-5 -0.99714,0.28074 -1.28516,0.84219 -0.28437,0.55782 -0.42656,1.39818 -0.42656,2.52109 0,1.11928 0.14219,1.95964 0.42656,2.5211 0.28802,0.55781 0.71641,0.83672 1.28516,0.83672 0.57239,0 1.00078,-0.27891 1.28516,-0.83672 0.28801,-0.56146 0.43202,-1.40182 0.43203,-2.5211 -1e-5,-1.12291 -0.14402,-1.96327 -0.43203,-2.52109 -0.28438,-0.56145 -0.71277,-0.84218 -1.28516,-0.84219 m 0,-0.875 c 0.9151,1e-5 1.61328,0.36277 2.09453,1.08828 0.48489,0.72188 0.72734,1.77188 0.72735,3.15 -1e-5,1.37449 -0.24246,2.42448 -0.72735,3.15 -0.48125,0.72188 -1.17943,1.08282 -2.09453,1.08282 -0.91511,0 -1.61511,-0.36094 -2.1,-1.08282 -0.48125,-0.72552 -0.72187,-1.77551 -0.72187,-3.15 0,-1.37812 0.24062,-2.42812 0.72187,-3.15 0.48489,-0.72551 1.18489,-1.08827 2.1,-1.08828"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4730"
+ inkscape:connector-curvature="0" /><path
+ d="m -100.545,235.1571 1.804683,0 0,-6.2289 -1.963283,0.39375 0,-1.00625 1.952346,-0.39375 1.104687,0 0,7.23515 1.804688,0 0,0.92969 -4.703121,0 0,-0.92969"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4732"
+ inkscape:connector-curvature="0" /><path
+ d="m -88.9786,231.13757 c 0.251557,-0.45207 0.552338,-0.78567 0.902344,-1.00078 0.349993,-0.2151 0.761972,-0.32265 1.235938,-0.32265 0.638012,0 1.130199,0.22422 1.476562,0.67265 0.346344,0.4448 0.519521,1.07917 0.519531,1.90313 l 0,3.69687 -1.011718,0 0,-3.66406 c -9e-6,-0.58698 -0.103916,-1.02265 -0.311719,-1.30703 -0.207821,-0.28437 -0.525008,-0.42656 -0.951563,-0.42656 -0.521361,0 -0.93334,0.17318 -1.235937,0.51953 -0.30261,0.34636 -0.453912,0.81849 -0.453906,1.4164 l 0,3.46172 -1.011719,0 0,-3.66406 c -5e-6,-0.59062 -0.103911,-1.0263 -0.311719,-1.30703 -0.207817,-0.28437 -0.52865,-0.42656 -0.9625,-0.42656 -0.514066,0 -0.922398,0.175 -1.225,0.525 -0.302606,0.34635 -0.453908,0.81667 -0.453906,1.41093 l 0,3.46172 -1.011719,0 0,-6.125 1.011719,0 0,0.95156 c 0.229685,-0.37551 0.504945,-0.65259 0.825781,-0.83125 0.32083,-0.17864 0.70182,-0.26796 1.142969,-0.26796 0.444787,0 0.82213,0.11302 1.132031,0.33906 0.313536,0.22605 0.545047,0.55417 0.694531,0.98437"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4734"
+ inkscape:connector-curvature="0" /><path
+ d="m -78.062973,231.13757 c 0.251556,-0.45207 0.552337,-0.78567 0.902344,-1.00078 0.349993,-0.2151 0.761971,-0.32265 1.235937,-0.32265 0.638012,0 1.130199,0.22422 1.476563,0.67265 0.346344,0.4448 0.519521,1.07917 0.519531,1.90313 l 0,3.69687 -1.011719,0 0,-3.66406 c -9e-6,-0.58698 -0.103915,-1.02265 -0.311719,-1.30703 -0.207821,-0.28437 -0.525008,-0.42656 -0.951562,-0.42656 -0.521361,0 -0.93334,0.17318 -1.235938,0.51953 -0.30261,0.34636 -0.453912,0.81849 -0.453906,1.4164 l 0,3.46172 -1.011719,0 0,-3.66406 c -5e-6,-0.59062 -0.103911,-1.0263 -0.311718,-1.30703 -0.207817,-0.28437 -0.52865,-0.42656 -0.9625,-0.42656 -0.514066,0 -0.922399,0.175 -1.225,0.525 -0.302607,0.34635 -0.453909,0.81667 -0.453907,1.41093 l 0,3.46172 -1.011718,0 0,-6.125 1.011718,0 0,0.95156 c 0.229686,-0.37551 0.504946,-0.65259 0.825782,-0.83125 0.32083,-0.17864 0.701819,-0.26796 1.142968,-0.26796 0.444788,0 0.822131,0.11302 1.132032,0.33906 0.313536,0.22605 0.545046,0.55417 0.694531,0.98437"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4736"
+ inkscape:connector-curvature="0" /></g><g
+ style="font-size:9.60000038px"
+ id="text4851-7"><path
+ d="m -209.90514,80.585301 6.90703,0 0,0.929688 -2.89844,0 0,7.235156 -1.11015,0 0,-7.235156 -2.89844,0 0,-0.929688"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4739"
+ inkscape:connector-curvature="0" /><path
+ d="m -201.48874,83.330614 c -0.53958,5e-6 -0.96614,0.211463 -1.27968,0.634375 -0.31355,0.419275 -0.47032,0.995316 -0.47032,1.728125 0,0.732815 0.15495,1.310679 0.46485,1.733593 0.31354,0.419272 0.74192,0.628907 1.28515,0.628907 0.53594,0 0.96068,-0.211458 1.27422,-0.634375 0.31354,-0.422915 0.47031,-0.998956 0.47032,-1.728125 -1e-5,-0.725517 -0.15678,-1.299735 -0.47032,-1.722656 -0.31354,-0.426558 -0.73828,-0.639839 -1.27422,-0.639844 m 0,-0.853125 c 0.875,6e-6 1.56224,0.284381 2.06172,0.853125 0.49948,0.568755 0.74922,1.356254 0.74922,2.3625 0,1.002606 -0.24974,1.790105 -0.74922,2.3625 -0.49948,0.56875 -1.18672,0.853125 -2.06172,0.853125 -0.87864,0 -1.56771,-0.284375 -2.06718,-0.853125 -0.49584,-0.572395 -0.74375,-1.359894 -0.74375,-2.3625 0,-1.006246 0.24791,-1.793745 0.74375,-2.3625 0.49947,-0.568744 1.18854,-0.853119 2.06718,-0.853125"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4741"
+ inkscape:connector-curvature="0" /><path
+ d="m -193.39499,80.585301 5.1625,0 0,0.929688 -4.05781,0 0,2.417187 3.88828,0 0,0.929688 -3.88828,0 0,2.958593 4.15625,0 0,0.929688 -5.26094,0 0,-8.164844"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4743"
+ inkscape:connector-curvature="0" /><path
+ d="m -181.25983,85.05327 0,3.696875 -1.00625,0 0,-3.664062 c 0,-0.579684 -0.11302,-1.013537 -0.33906,-1.301563 -0.22605,-0.288016 -0.56511,-0.432026 -1.01719,-0.432031 -0.54323,5e-6 -0.97162,0.173182 -1.28516,0.519531 -0.31354,0.346359 -0.47031,0.818494 -0.47031,1.416406 l 0,3.461719 -1.01172,0 0,-6.125 1.01172,0 0,0.951563 c 0.24062,-0.368224 0.52318,-0.643484 0.84766,-0.825782 0.32812,-0.182285 0.70546,-0.273431 1.13203,-0.273437 0.70364,6e-6 1.23593,0.218756 1.59687,0.65625 0.36094,0.433859 0.5414,1.073702 0.54141,1.919531"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4745"
+ inkscape:connector-curvature="0" /><path
+ d="m -175.21139,85.616551 c -1e-5,-0.729163 -0.15131,-1.294266 -0.45391,-1.695312 -0.29896,-0.401037 -0.72005,-0.601557 -1.26328,-0.601563 -0.53959,6e-6 -0.96068,0.200526 -1.26328,0.601563 -0.29896,0.401046 -0.44844,0.966149 -0.44844,1.695312 0,0.725523 0.14948,1.288804 0.44844,1.689844 0.3026,0.401043 0.72369,0.601563 1.26328,0.601562 0.54323,10e-7 0.96432,-0.200519 1.26328,-0.601562 0.3026,-0.40104 0.4539,-0.964321 0.45391,-1.689844 m 1.00625,2.373438 c -1e-5,1.042708 -0.23152,1.817447 -0.69453,2.324218 -0.46303,0.510415 -1.17214,0.765623 -2.12735,0.765625 -0.35365,-2e-6 -0.68724,-0.02735 -1.00078,-0.08203 -0.31354,-0.05104 -0.61797,-0.131252 -0.91328,-0.240625 l 0,-0.978906 c 0.29531,0.160415 0.58698,0.278905 0.875,0.355469 0.28802,0.07656 0.58151,0.114842 0.88047,0.114843 0.65989,-10e-7 1.1539,-0.173178 1.48203,-0.519531 0.32812,-0.342709 0.49218,-0.862239 0.49219,-1.558594 l 0,-0.497656 c -0.20782,0.360938 -0.47396,0.63073 -0.79844,0.809375 -0.32448,0.178646 -0.71276,0.267969 -1.16484,0.267969 -0.75105,0 -1.35625,-0.286198 -1.81563,-0.858594 -0.45937,-0.572394 -0.68906,-1.330727 -0.68906,-2.275 0,-0.947912 0.22969,-1.708068 0.68906,-2.280468 0.45938,-0.57239 1.06458,-0.858588 1.81563,-0.858594 0.45208,6e-6 0.84036,0.08933 1.16484,0.267969 0.32448,0.178651 0.59062,0.448443 0.79844,0.809375 l 0,-0.929688 1.00625,0 0,5.364844"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4747"
+ inkscape:connector-curvature="0" /><path
+ d="m -168.58327,83.56577 c -0.11302,-0.06562 -0.23698,-0.113015 -0.37187,-0.142187 -0.13126,-0.03281 -0.27709,-0.04921 -0.4375,-0.04922 -0.56875,5e-6 -1.00625,0.185942 -1.3125,0.557812 -0.30261,0.368234 -0.45391,0.898702 -0.45391,1.591407 l 0,3.226562 -1.01172,0 0,-6.125 1.01172,0 0,0.951563 c 0.21146,-0.37187 0.48672,-0.64713 0.82578,-0.825782 0.33906,-0.182285 0.75104,-0.273431 1.23594,-0.273437 0.0693,6e-6 0.14583,0.0055 0.22969,0.01641 0.0838,0.0073 0.17682,0.02006 0.2789,0.03828 l 0.005,1.033594"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4749"
+ inkscape:connector-curvature="0" /><path
+ d="m -164.73327,85.671239 c -0.81302,3e-6 -1.3763,0.09297 -1.68984,0.278906 -0.31355,0.18594 -0.47032,0.503127 -0.47031,0.951562 -1e-5,0.357294 0.11666,0.641668 0.35,0.853125 0.23697,0.207814 0.55781,0.31172 0.9625,0.311719 0.5578,10e-7 1.00442,-0.196874 1.33984,-0.590625 0.33906,-0.397394 0.50859,-0.924216 0.50859,-1.580468 l 0,-0.224219 -1.00078,0 m 2.00703,-0.415625 0,3.494531 -1.00625,0 0,-0.929688 c -0.22969,0.371876 -0.51589,0.647136 -0.85859,0.825782 -0.34271,0.175 -0.76198,0.2625 -1.25781,0.2625 -0.62709,0 -1.12657,-0.175 -1.49844,-0.525 -0.36823,-0.353645 -0.55234,-0.82578 -0.55234,-1.416407 0,-0.68906 0.22968,-1.20859 0.68906,-1.558593 0.46302,-0.349997 1.15208,-0.524996 2.06719,-0.525 l 1.41093,0 0,-0.09844 c 0,-0.463016 -0.15313,-0.820307 -0.45937,-1.071875 -0.30261,-0.255203 -0.72917,-0.382807 -1.27969,-0.382812 -0.35,5e-6 -0.69089,0.04193 -1.02266,0.125781 -0.33177,0.08386 -0.65078,0.209641 -0.95703,0.377344 l 0,-0.929688 c 0.36823,-0.142181 0.72552,-0.24791 1.07188,-0.317187 0.34635,-0.07291 0.68359,-0.109369 1.01172,-0.109375 0.88593,6e-6 1.54765,0.229693 1.98515,0.689062 0.4375,0.45938 0.65625,1.155734 0.65625,2.089063"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4751"
+ inkscape:connector-curvature="0" /><path
+ d="m -161.36999,82.625145 1.06641,0 1.91406,5.140625 1.91407,-5.140625 1.0664,0 -2.29687,6.125 -1.36719,0 -2.29688,-6.125"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4753"
+ inkscape:connector-curvature="0" /><path
+ d="m -148.78092,85.436083 0,0.492187 -4.62657,0 c 0.0437,0.69271 0.25156,1.221356 0.62344,1.585937 0.37552,0.360939 0.89687,0.541407 1.56406,0.541407 0.38646,0 0.76016,-0.0474 1.1211,-0.142188 0.36458,-0.09479 0.72551,-0.236978 1.08281,-0.426562 l 0,0.951562 c -0.36094,0.153125 -0.73099,0.269792 -1.11016,0.35 -0.37917,0.08021 -0.7638,0.120313 -1.1539,0.120313 -0.97709,0 -1.75183,-0.284375 -2.32422,-0.853125 -0.56875,-0.568749 -0.85313,-1.338019 -0.85313,-2.307813 0,-1.0026 0.26979,-1.797391 0.80938,-2.384375 0.54323,-0.590619 1.27422,-0.885931 2.19297,-0.885937 0.82395,6e-6 1.47473,0.266152 1.95234,0.798437 0.48125,0.528651 0.72187,1.248702 0.72188,2.160157 m -1.00625,-0.295313 c -0.007,-0.550517 -0.16225,-0.989839 -0.46485,-1.317969 -0.29896,-0.328119 -0.69636,-0.492182 -1.19218,-0.492187 -0.56147,5e-6 -1.01173,0.158599 -1.35079,0.475781 -0.33541,0.317192 -0.52864,0.763806 -0.57968,1.339844 l 3.5875,-0.0055"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4755"
+ inkscape:connector-curvature="0" /><path
+ d="m -140.78014,85.671239 c -0.81302,3e-6 -1.3763,0.09297 -1.68984,0.278906 -0.31355,0.18594 -0.47032,0.503127 -0.47032,0.951562 0,0.357294 0.11667,0.641668 0.35,0.853125 0.23698,0.207814 0.55781,0.31172 0.9625,0.311719 0.55781,10e-7 1.00443,-0.196874 1.33985,-0.590625 0.33906,-0.397394 0.50859,-0.924216 0.50859,-1.580468 l 0,-0.224219 -1.00078,0 m 2.00703,-0.415625 0,3.494531 -1.00625,0 0,-0.929688 c -0.22969,0.371876 -0.51589,0.647136 -0.85859,0.825782 -0.34271,0.175 -0.76198,0.2625 -1.25781,0.2625 -0.62709,0 -1.12657,-0.175 -1.49844,-0.525 -0.36823,-0.353645 -0.55235,-0.82578 -0.55235,-1.416407 0,-0.68906 0.22969,-1.20859 0.68907,-1.558593 0.46302,-0.349997 1.15208,-0.524996 2.06718,-0.525 l 1.41094,0 0,-0.09844 c 0,-0.463016 -0.15313,-0.820307 -0.45937,-1.071875 -0.30261,-0.255203 -0.72917,-0.382807 -1.27969,-0.382812 -0.35,5e-6 -0.69089,0.04193 -1.02266,0.125781 -0.33177,0.08386 -0.65078,0.209641 -0.95703,0.377344 l 0,-0.929688 c 0.36823,-0.142181 0.72552,-0.24791 1.07188,-0.317187 0.34635,-0.07291 0.68359,-0.109369 1.01172,-0.109375 0.88593,6e-6 1.54765,0.229693 1.98515,0.689062 0.4375,0.45938 0.65625,1.155734 0.65625,2.089063"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4757"
+ inkscape:connector-curvature="0" /><path
+ d="m -131.60358,85.05327 0,3.696875 -1.00625,0 0,-3.664062 c -1e-5,-0.579684 -0.11303,-1.013537 -0.33907,-1.301563 -0.22604,-0.288016 -0.5651,-0.432026 -1.01718,-0.432031 -0.54324,5e-6 -0.97162,0.173182 -1.28516,0.519531 -0.31354,0.346359 -0.47031,0.818494 -0.47031,1.416406 l 0,3.461719 -1.01172,0 0,-6.125 1.01172,0 0,0.951563 c 0.24062,-0.368224 0.52317,-0.643484 0.84765,-0.825782 0.32813,-0.182285 0.70547,-0.273431 1.13204,-0.273437 0.70364,6e-6 1.23593,0.218756 1.59687,0.65625 0.36093,0.433859 0.5414,1.073702 0.54141,1.919531"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4759"
+ inkscape:connector-curvature="0" /><path
+ d="m -123.24733,81.673583 -1.49844,4.063281 3.00235,0 -1.50391,-4.063281 m -0.62344,-1.088282 1.25235,0 3.11172,8.164844 -1.14844,0 -0.74375,-2.094531 -3.68047,0 -0.74375,2.094531 -1.16484,0 3.11718,-8.164844"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4761"
+ inkscape:connector-curvature="0" /><path
+ d="m -114.81452,83.56577 c -0.11302,-0.06562 -0.23698,-0.113015 -0.37187,-0.142187 -0.13126,-0.03281 -0.27709,-0.04921 -0.4375,-0.04922 -0.56876,5e-6 -1.00626,0.185942 -1.3125,0.557812 -0.30261,0.368234 -0.45391,0.898702 -0.45391,1.591407 l 0,3.226562 -1.01172,0 0,-6.125 1.01172,0 0,0.951563 c 0.21146,-0.37187 0.48672,-0.64713 0.82578,-0.825782 0.33906,-0.182285 0.75104,-0.273431 1.23594,-0.273437 0.0693,6e-6 0.14583,0.0055 0.22969,0.01641 0.0838,0.0073 0.17682,0.02006 0.2789,0.03828 l 0.005,1.033594"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4763"
+ inkscape:connector-curvature="0" /><path
+ d="m -108.73873,85.436083 0,0.492187 -4.62657,0 c 0.0438,0.69271 0.25157,1.221356 0.62344,1.585937 0.37552,0.360939 0.89687,0.541407 1.56406,0.541407 0.38646,0 0.76016,-0.0474 1.1211,-0.142188 0.36458,-0.09479 0.72551,-0.236978 1.08281,-0.426562 l 0,0.951562 c -0.36094,0.153125 -0.73099,0.269792 -1.11016,0.35 -0.37917,0.08021 -0.7638,0.120313 -1.1539,0.120313 -0.97709,0 -1.75183,-0.284375 -2.32422,-0.853125 -0.56875,-0.568749 -0.85313,-1.338019 -0.85313,-2.307813 0,-1.0026 0.2698,-1.797391 0.80938,-2.384375 0.54323,-0.590619 1.27422,-0.885931 2.19297,-0.885937 0.82395,6e-6 1.47473,0.266152 1.95234,0.798437 0.48125,0.528651 0.72187,1.248702 0.72188,2.160157 m -1.00625,-0.295313 c -0.007,-0.550517 -0.16225,-0.989839 -0.46485,-1.317969 -0.29896,-0.328119 -0.69636,-0.492182 -1.19218,-0.492187 -0.56147,5e-6 -1.01173,0.158599 -1.35079,0.475781 -0.33541,0.317192 -0.52864,0.763806 -0.57968,1.339844 l 3.5875,-0.0055"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4765"
+ inkscape:connector-curvature="0" /><path
+ d="m -104.29264,85.671239 c -0.81303,3e-6 -1.37631,0.09297 -1.68985,0.278906 -0.31354,0.18594 -0.47031,0.503127 -0.47031,0.951562 0,0.357294 0.11666,0.641668 0.35,0.853125 0.23698,0.207814 0.55781,0.31172 0.9625,0.311719 0.55781,10e-7 1.00442,-0.196874 1.33984,-0.590625 0.33906,-0.397394 0.50859,-0.924216 0.5086,-1.580468 l 0,-0.224219 -1.00078,0 m 2.00703,-0.415625 0,3.494531 -1.00625,0 0,-0.929688 c -0.22969,0.371876 -0.51589,0.647136 -0.8586,0.825782 -0.34271,0.175 -0.76198,0.2625 -1.25781,0.2625 -0.62708,0 -1.12656,-0.175 -1.49844,-0.525 -0.36823,-0.353645 -0.55234,-0.82578 -0.55234,-1.416407 0,-0.68906 0.22969,-1.20859 0.68906,-1.558593 0.46302,-0.349997 1.15208,-0.524996 2.06719,-0.525 l 1.41094,0 0,-0.09844 c -1e-5,-0.463016 -0.15313,-0.820307 -0.45938,-1.071875 -0.30261,-0.255203 -0.72917,-0.382807 -1.27969,-0.382812 -0.35,5e-6 -0.69088,0.04193 -1.02265,0.125781 -0.33177,0.08386 -0.65078,0.209641 -0.95703,0.377344 l 0,-0.929688 c 0.36823,-0.142181 0.72552,-0.24791 1.07187,-0.317187 0.34635,-0.07291 0.68359,-0.109369 1.01172,-0.109375 0.88593,6e-6 1.54765,0.229693 1.98516,0.689062 0.43749,0.45938 0.65624,1.155734 0.65625,2.089063"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4767"
+ inkscape:connector-curvature="0" /><path
+ d="m -99.950455,87.361082 1.153906,0 0,1.389063 -1.153906,0 0,-1.389063 m 0,-4.402343 1.153906,0 0,1.389062 -1.153906,0 0,-1.389062"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4769"
+ inkscape:connector-curvature="0" /><path
+ d="m -208.77311,94.025304 4.69219,0 0,0.929687 -3.5875,0 0,2.40625 3.2375,0 0,0.929688 -3.2375,0 0,3.899221 -1.10469,0 0,-8.164846"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4771"
+ inkscape:connector-curvature="0" /><path
+ d="m -203.16217,96.065148 1.00625,0 0,6.125002 -1.00625,0 0,-6.125002 m 0,-2.384375 1.00625,0 0,1.274218 -1.00625,0 0,-1.274218"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4773"
+ inkscape:connector-curvature="0" /><path
+ d="m -200.04499,93.680773 1.00625,0 0,8.509377 -1.00625,0 0,-8.509377"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4775"
+ inkscape:connector-curvature="0" /><path
+ d="m -196.93874,93.680773 1.00625,0 0,8.509377 -1.00625,0 0,-8.509377"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4777"
+ inkscape:connector-curvature="0" /><path
+ d="m -184.10905,94.65421 0,1.164844 c -0.37188,-0.346348 -0.76928,-0.605202 -1.19219,-0.776563 -0.41927,-0.171347 -0.86589,-0.257024 -1.33984,-0.257031 -0.93334,7e-6 -1.64792,0.286205 -2.14375,0.858594 -0.49584,0.568756 -0.74375,1.392713 -0.74375,2.471875 0,1.075524 0.24791,1.899481 0.74375,2.471871 0.49583,0.56875 1.21041,0.85313 2.14375,0.85313 0.47395,0 0.92057,-0.0857 1.33984,-0.25703 0.42291,-0.17136 0.82031,-0.43021 1.19219,-0.77657 l 0,1.15391 c -0.38646,0.2625 -0.79662,0.45938 -1.23047,0.59063 -0.43021,0.13125 -0.88594,0.19687 -1.36719,0.19687 -1.23594,0 -2.20937,-0.37734 -2.92031,-1.13203 -0.71094,-0.75833 -1.0664,-1.791924 -1.0664,-3.100781 0,-1.312495 0.35546,-2.346088 1.0664,-3.100781 0.71094,-0.758326 1.68437,-1.137492 2.92031,-1.1375 0.48854,8e-6 0.94792,0.06563 1.37813,0.196875 0.43385,0.127612 0.84036,0.320841 1.21953,0.579687"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4779"
+ inkscape:connector-curvature="0" /><path
+ d="m -180.06218,96.770616 c -0.53958,6e-6 -0.96614,0.211464 -1.27968,0.634375 -0.31355,0.419275 -0.47032,0.995317 -0.47032,1.728125 0,0.732815 0.15495,1.310684 0.46485,1.733594 0.31354,0.41927 0.74192,0.62891 1.28515,0.62891 0.53594,0 0.96068,-0.21146 1.27422,-0.63438 0.31354,-0.42291 0.47031,-0.998955 0.47032,-1.728124 -10e-6,-0.725517 -0.15678,-1.299735 -0.47032,-1.722656 -0.31354,-0.426557 -0.73828,-0.639838 -1.27422,-0.639844 m 0,-0.853125 c 0.875,7e-6 1.56224,0.284381 2.06172,0.853125 0.49948,0.568755 0.74922,1.356254 0.74922,2.3625 0,1.002604 -0.24974,1.790104 -0.74922,2.362504 -0.49948,0.56875 -1.18672,0.85312 -2.06172,0.85312 -0.87864,0 -1.56771,-0.28437 -2.06718,-0.85312 -0.49584,-0.5724 -0.74375,-1.3599 -0.74375,-2.362504 0,-1.006246 0.24791,-1.793745 0.74375,-2.3625 0.49947,-0.568744 1.18854,-0.853118 2.06718,-0.853125"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4781"
+ inkscape:connector-curvature="0" /><path
+ d="m -175.58874,93.680773 1.00625,0 0,8.509377 -1.00625,0 0,-8.509377"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4783"
+ inkscape:connector-curvature="0" /><path
+ d="m -170.10905,96.770616 c -0.53959,6e-6 -0.96615,0.211464 -1.27969,0.634375 -0.31354,0.419275 -0.47031,0.995317 -0.47031,1.728125 0,0.732815 0.15495,1.310684 0.46484,1.733594 0.31354,0.41927 0.74193,0.62891 1.28516,0.62891 0.53593,0 0.96067,-0.21146 1.27422,-0.63438 0.31354,-0.42291 0.47031,-0.998955 0.47031,-1.728124 0,-0.725517 -0.15677,-1.299735 -0.47031,-1.722656 -0.31355,-0.426557 -0.73829,-0.639838 -1.27422,-0.639844 m 0,-0.853125 c 0.875,7e-6 1.56223,0.284381 2.06172,0.853125 0.49947,0.568755 0.74921,1.356254 0.74922,2.3625 -1e-5,1.002604 -0.24975,1.790104 -0.74922,2.362504 -0.49949,0.56875 -1.18672,0.85312 -2.06172,0.85312 -0.87865,0 -1.56771,-0.28437 -2.06719,-0.85312 -0.49583,-0.5724 -0.74375,-1.3599 -0.74375,-2.362504 0,-1.006246 0.24792,-1.793745 0.74375,-2.3625 0.49948,-0.568744 1.18854,-0.853118 2.06719,-0.853125"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4785"
+ inkscape:connector-curvature="0" /><path
+ d="m -162.08639,97.005772 c -0.11303,-0.06562 -0.23699,-0.113015 -0.37188,-0.142187 -0.13125,-0.03281 -0.27709,-0.04921 -0.4375,-0.04922 -0.56875,6e-6 -1.00625,0.185943 -1.3125,0.557813 -0.30261,0.368233 -0.45391,0.898702 -0.45391,1.591406 l 0,3.226566 -1.01171,0 0,-6.125003 1.01171,0 0,0.951562 c 0.21146,-0.371869 0.48672,-0.64713 0.82579,-0.825781 0.33905,-0.182286 0.75103,-0.273431 1.23593,-0.273438 0.0693,7e-6 0.14583,0.0055 0.22969,0.01641 0.0838,0.0073 0.17682,0.02006 0.27891,0.03828 l 0.005,1.033593"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4787"
+ inkscape:connector-curvature="0" /><path
+ d="m -157.19733,100.80108 1.15391,0 0,1.38907 -1.15391,0 0,-1.38907 m 0,-4.402339 1.15391,0 0,1.389063 -1.15391,0 0,-1.389063"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4789"
+ inkscape:connector-curvature="0" /><path
+ d="m -148.95593,98.290929 0,2.991401 1.77188,0 c 0.59427,1e-5 1.03359,-0.12213 1.31797,-0.3664 0.28801,-0.24792 0.43202,-0.62526 0.43203,-1.132033 -10e-6,-0.510413 -0.14402,-0.885934 -0.43203,-1.126562 -0.28438,-0.244267 -0.7237,-0.366402 -1.31797,-0.366406 l -1.77188,0 m 0,-3.357813 0,2.460938 1.63516,0 c 0.53958,5e-6 0.94062,-0.100256 1.20313,-0.300782 0.26614,-0.204161 0.39921,-0.514056 0.39921,-0.929687 0,-0.411973 -0.13307,-0.720045 -0.39921,-0.924219 -0.26251,-0.204159 -0.66355,-0.306242 -1.20313,-0.30625 l -1.63516,0 m -1.10468,-0.907812 2.82187,0 c 0.84218,8e-6 1.49114,0.175008 1.94688,0.525 0.45572,0.350007 0.68358,0.847663 0.68359,1.492969 -1e-5,0.499484 -0.11667,0.89688 -0.35,1.192187 -0.23334,0.295317 -0.57605,0.479432 -1.02812,0.552344 0.54322,0.116671 0.96431,0.360941 1.26328,0.732812 0.30259,0.368233 0.4539,0.82943 0.4539,1.383594 0,0.72917 -0.24792,1.29245 -0.74375,1.68984 -0.49584,0.3974 -1.2013,0.5961 -2.1164,0.5961 l -2.93125,0 0,-8.164846"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4791"
+ inkscape:connector-curvature="0" /><path
+ d="m -142.42624,93.680773 1.00625,0 0,8.509377 -1.00625,0 0,-8.509377"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4793"
+ inkscape:connector-curvature="0" /><path
+ d="m -136.5364,99.111241 c -0.81302,3e-6 -1.3763,0.09297 -1.68984,0.278906 -0.31354,0.185941 -0.47031,0.503128 -0.47031,0.951563 0,0.35729 0.11666,0.64167 0.35,0.85312 0.23698,0.20782 0.55781,0.31172 0.9625,0.31172 0.55781,0 1.00442,-0.19687 1.33984,-0.59062 0.33906,-0.3974 0.50859,-0.924218 0.5086,-1.58047 l 0,-0.224219 -1.00079,0 m 2.00704,-0.415625 0,3.494534 -1.00625,0 0,-0.92969 c -0.2297,0.37188 -0.51589,0.64714 -0.8586,0.82578 -0.34271,0.175 -0.76198,0.2625 -1.25781,0.2625 -0.62709,0 -1.12656,-0.175 -1.49844,-0.525 -0.36823,-0.35364 -0.55234,-0.82578 -0.55234,-1.41641 0,-0.689055 0.22969,-1.208586 0.68906,-1.558589 0.46302,-0.349996 1.15208,-0.524996 2.06719,-0.525 l 1.41094,0 0,-0.09844 c -1e-5,-0.463017 -0.15313,-0.820308 -0.45938,-1.071875 -0.30261,-0.255203 -0.72917,-0.382807 -1.27969,-0.382813 -0.35,6e-6 -0.69088,0.04193 -1.02265,0.125781 -0.33178,0.08386 -0.65079,0.209641 -0.95703,0.377344 l 0,-0.929687 c 0.36822,-0.142182 0.72551,-0.247911 1.07187,-0.317188 0.34635,-0.07291 0.68359,-0.109368 1.01172,-0.109375 0.88593,7e-6 1.54765,0.229694 1.98516,0.689063 0.43749,0.45938 0.65624,1.155733 0.65625,2.089062"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4795"
+ inkscape:connector-curvature="0" /><path
+ d="m -128.04343,96.300304 0,0.940625 c -0.28438,-0.156766 -0.57057,-0.273433 -0.85859,-0.35 -0.28438,-0.0802 -0.5724,-0.120307 -0.86406,-0.120313 -0.65261,6e-6 -1.15938,0.207818 -1.52031,0.623438 -0.36094,0.411983 -0.54141,0.99167 -0.54141,1.739062 0,0.747398 0.18047,1.328904 0.54141,1.744534 0.36093,0.41198 0.8677,0.61797 1.52031,0.61797 0.29166,0 0.57968,-0.0383 0.86406,-0.11485 0.28802,-0.0802 0.57421,-0.19869 0.85859,-0.35547 l 0,0.92969 c -0.28073,0.13125 -0.5724,0.22969 -0.875,0.29531 -0.29896,0.0656 -0.61797,0.0984 -0.95703,0.0984 -0.92239,0 -1.65521,-0.28984 -2.19843,-0.86953 -0.54323,-0.57969 -0.81485,-1.36172 -0.81485,-2.346094 0,-0.998954 0.27344,-1.78463 0.82031,-2.357031 0.55052,-0.57239 1.30339,-0.858587 2.2586,-0.858594 0.30989,7e-6 0.61249,0.03282 0.90781,0.09844 0.29531,0.06199 0.58151,0.156777 0.85859,0.284375"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4797"
+ inkscape:connector-curvature="0" /><path
+ d="m -126.32077,93.680773 1.01172,0 0,5.025781 3.00234,-2.641406 1.28516,0 -3.24844,2.865624 3.38516,3.259378 -1.3125,0 -3.11172,-2.991409 0,2.991409 -1.01172,0 0,-8.509377"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4799"
+ inkscape:connector-curvature="0" /><path
+ d="m -116.72858,98.673741 2.94765,0 0,0.896875 -2.94765,0 0,-0.896875"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4801"
+ inkscape:connector-curvature="0" /><path
+ d="m -104.69186,98.362022 c 0.23697,0.08021 0.46666,0.251567 0.68906,0.514063 0.22604,0.262503 0.45208,0.62344 0.67812,1.082812 l 1.1211,2.231253 -1.18672,0 -1.04453,-2.09453 c -0.2698,-0.546876 -0.5323,-0.909636 -0.7875,-1.088285 -0.25157,-0.178643 -0.5961,-0.267965 -1.0336,-0.267969 l -1.20312,0 0,3.450784 -1.10469,0 0,-8.164846 2.49375,0 c 0.93333,8e-6 1.62968,0.19506 2.08906,0.585156 0.45937,0.390111 0.68906,0.978913 0.68907,1.766406 -1e-5,0.514068 -0.12032,0.94063 -0.36094,1.279688 -0.23699,0.339066 -0.58334,0.574222 -1.03906,0.705468 m -2.76719,-3.428906 0,2.898438 1.38906,0 c 0.53229,4e-6 0.93333,-0.122131 1.20313,-0.366407 0.27343,-0.247911 0.41015,-0.610671 0.41015,-1.088281 0,-0.477598 -0.13672,-0.836712 -0.41015,-1.077343 -0.2698,-0.244264 -0.67084,-0.366399 -1.20313,-0.366407 l -1.38906,0"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4803"
+ inkscape:connector-curvature="0" /><path
+ d="m -100.91296,100.80108 1.15391,0 0,1.38907 -1.15391,0 0,-1.38907 m 0,-4.402339 1.15391,0 0,1.389063 -1.15391,0 0,-1.389063"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4805"
+ inkscape:connector-curvature="0" /><path
+ d="m -94.880922,94.752648 c -0.568753,7e-6 -0.997138,0.280736 -1.285156,0.842187 -0.284377,0.557819 -0.426565,1.398182 -0.426563,2.521094 -2e-6,1.119273 0.142186,1.959641 0.426563,2.521091 0.288018,0.55782 0.716403,0.83672 1.285156,0.83672 0.572392,0 1.000777,-0.2789 1.285156,-0.83672 0.288016,-0.56145 0.432026,-1.401818 0.432031,-2.521091 -5e-6,-1.122912 -0.144015,-1.963275 -0.432031,-2.521094 -0.284379,-0.561451 -0.712764,-0.84218 -1.285156,-0.842187 m 0,-0.875 c 0.9151,8e-6 1.613276,0.362768 2.094531,1.088281 0.48489,0.721881 0.727338,1.77188 0.727344,3.15 -6e-6,1.374482 -0.242454,2.424481 -0.727344,3.150001 -0.481255,0.72187 -1.179431,1.08281 -2.094531,1.08281 -0.915107,0 -1.615106,-0.36094 -2.1,-1.08281 -0.481251,-0.72552 -0.721876,-1.775519 -0.721875,-3.150001 -10e-7,-1.37812 0.240624,-2.428119 0.721875,-3.15 0.484894,-0.725513 1.184893,-1.088273 2.1,-1.088281"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4807"
+ inkscape:connector-curvature="0" /><path
+ d="m -81.077803,101.0253 0,-2.192965 -1.804688,0 0,-0.907813 2.898438,0 0,3.505468 c -0.42657,0.30261 -0.896882,0.53229 -1.410938,0.68906 -0.514068,0.15313 -1.062765,0.22969 -1.646093,0.22969 -1.276045,0 -2.275003,-0.37187 -2.996875,-1.11562 -0.71823,-0.7474 -1.077345,-1.786459 -1.077344,-3.117191 -10e-7,-1.33437 0.359114,-2.373431 1.077344,-3.117188 0.721872,-0.747388 1.72083,-1.121085 2.996875,-1.121093 0.532286,8e-6 1.037233,0.06563 1.514843,0.196875 0.481244,0.131258 0.924212,0.324486 1.328907,0.579687 l 0,1.175781 c -0.408341,-0.346347 -0.842195,-0.607024 -1.301563,-0.782031 -0.459381,-0.174993 -0.942453,-0.262493 -1.449219,-0.2625 -0.998962,7e-6 -1.750003,0.278913 -2.253125,0.836719 -0.499481,0.557818 -0.74922,1.389067 -0.749218,2.49375 -2e-6,1.101044 0.249737,1.930471 0.749218,2.488281 0.503122,0.55781 1.254163,0.83672 2.253125,0.83672 0.390099,0 0.738276,-0.0328 1.044532,-0.0984 0.306243,-0.0693 0.581504,-0.175 0.825781,-0.31719"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4809"
+ inkscape:connector-curvature="0" /><path
+ d="m -77.74733,100.80108 1.153906,0 0,1.38907 -1.153906,0 0,-1.38907 m 0,-4.402339 1.153906,0 0,1.389063 -1.153906,0 0,-1.389063"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4811"
+ inkscape:connector-curvature="0" /><path
+ d="m -71.715295,94.752648 c -0.568753,7e-6 -0.997138,0.280736 -1.285157,0.842187 -0.284377,0.557819 -0.426564,1.398182 -0.426562,2.521094 -2e-6,1.119273 0.142185,1.959641 0.426562,2.521091 0.288019,0.55782 0.716404,0.83672 1.285157,0.83672 0.572391,0 1.000776,-0.2789 1.285156,-0.83672 0.288015,-0.56145 0.432026,-1.401818 0.432031,-2.521091 -5e-6,-1.122912 -0.144016,-1.963275 -0.432031,-2.521094 -0.28438,-0.561451 -0.712765,-0.84218 -1.285156,-0.842187 m 0,-0.875 c 0.915099,8e-6 1.613276,0.362768 2.094531,1.088281 0.484889,0.721881 0.727337,1.77188 0.727343,3.15 -6e-6,1.374482 -0.242454,2.424481 -0.727343,3.150001 -0.481255,0.72187 -1.179432,1.08281 -2.094531,1.08281 -0.915107,0 -1.615107,-0.36094 -2.1,-1.08281 -0.481251,-0.72552 -0.721876,-1.775519 -0.721875,-3.150001 -10e-7,-1.37812 0.240624,-2.428119 0.721875,-3.15 0.484893,-0.725513 1.184893,-1.088273 2.1,-1.088281"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4813"
+ inkscape:connector-curvature="0" /><path
+ d="m -62.374677,98.290929 0,2.991401 1.771875,0 c 0.594267,1e-5 1.033589,-0.12213 1.317969,-0.3664 0.288015,-0.24792 0.432026,-0.62526 0.432031,-1.132033 -5e-6,-0.510413 -0.144016,-0.885934 -0.432031,-1.126562 -0.28438,-0.244267 -0.723702,-0.366402 -1.317969,-0.366406 l -1.771875,0 m 0,-3.357813 0,2.460938 1.635157,0 c 0.539579,5e-6 0.94062,-0.100256 1.203125,-0.300782 0.26614,-0.204161 0.399213,-0.514056 0.399218,-0.929687 -5e-6,-0.411973 -0.133078,-0.720045 -0.399218,-0.924219 -0.262505,-0.204159 -0.663546,-0.306242 -1.203125,-0.30625 l -1.635157,0 m -1.104687,-0.907812 2.821875,0 c 0.842183,8e-6 1.49114,0.175008 1.946875,0.525 0.455723,0.350007 0.683587,0.847663 0.683594,1.492969 -7e-6,0.499484 -0.116673,0.89688 -0.35,1.192187 -0.23334,0.295317 -0.576048,0.479432 -1.028125,0.552344 0.543223,0.116671 0.964316,0.360941 1.263281,0.732812 0.302597,0.368233 0.453899,0.82943 0.453906,1.383594 -7e-6,0.72917 -0.247923,1.29245 -0.74375,1.68984 -0.495839,0.3974 -1.201307,0.5961 -2.116406,0.5961 l -2.93125,0 0,-8.164846"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4815"
+ inkscape:connector-curvature="0" /><path
+ d="m -55.587952,100.80108 1.153907,0 0,1.38907 -1.153907,0 0,-1.38907 m 0,-4.402339 1.153907,0 0,1.389063 -1.153907,0 0,-1.389063"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4817"
+ inkscape:connector-curvature="0" /><path
+ d="m -49.555933,94.752648 c -0.568753,7e-6 -0.997138,0.280736 -1.285156,0.842187 -0.284377,0.557819 -0.426564,1.398182 -0.426562,2.521094 -2e-6,1.119273 0.142185,1.959641 0.426562,2.521091 0.288018,0.55782 0.716403,0.83672 1.285156,0.83672 0.572392,0 1.000777,-0.2789 1.285157,-0.83672 0.288015,-0.56145 0.432026,-1.401818 0.432031,-2.521091 -5e-6,-1.122912 -0.144016,-1.963275 -0.432031,-2.521094 -0.28438,-0.561451 -0.712765,-0.84218 -1.285157,-0.842187 m 0,-0.875 c 0.9151,8e-6 1.613276,0.362768 2.094532,1.088281 0.484889,0.721881 0.727337,1.77188 0.727343,3.15 -6e-6,1.374482 -0.242454,2.424481 -0.727343,3.150001 -0.481256,0.72187 -1.179432,1.08281 -2.094532,1.08281 -0.915106,0 -1.615106,-0.36094 -2.1,-1.08281 -0.481251,-0.72552 -0.721875,-1.775519 -0.721875,-3.150001 0,-1.37812 0.240624,-2.428119 0.721875,-3.15 0.484894,-0.725513 1.184894,-1.088273 2.1,-1.088281"
+ style="font-size:11.19999981px;font-family:HelveticaNeueLTPro-Roman;fill:#f6921e"
+ id="path4819"
+ inkscape:connector-curvature="0" /></g><g
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="text4859-4"><path
+ d="m -392.7157,-1.0205482 c -0.73281,1.25782411 -1.27696,2.5019636 -1.63242,3.7324222 -0.35547,1.2304766 -0.53321,2.4773504 -0.5332,3.7406252 -10e-6,1.2632854 0.17773,2.515628 0.5332,3.7570318 0.36093,1.235938 0.90507,2.480077 1.63242,3.732422 l -1.3125,0 c -0.82031,-1.285157 -1.43555,-2.548437 -1.8457,-3.789844 -0.40469,-1.2414037 -0.60703,-2.4746056 -0.60703,-3.6996098 0,-1.2195248 0.20234,-2.447258 0.60703,-3.6832034 0.40468,-1.2359273 1.01992,-2.49920742 1.8457,-3.789844 l 1.3125,0"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4822"
+ inkscape:connector-curvature="0" /><path
+ d="m -389.27859,10.332578 2.70703,0 0,-9.3433604 -2.94492,0.590625 0,-1.50937506 2.92852,-0.59062504 1.65703,0 0,10.8527355 2.70703,0 0,1.394531 -7.05469,0 0,-1.394531"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4824"
+ inkscape:connector-curvature="0" /><path
+ d="m -379.31999,-1.0205482 1.3125,0 c 0.82031,1.29063658 1.43281,2.5539167 1.8375,3.789844 0.41015,1.2359454 0.61523,2.4636786 0.61523,3.6832034 0,1.2250042 -0.20508,2.4582061 -0.61523,3.6996098 -0.40469,1.241407 -1.01719,2.504687 -1.8375,3.789844 l -1.3125,0 c 0.72734,-1.252345 1.26874,-2.496484 1.62422,-3.732422 0.36093,-1.2414038 0.5414,-2.4937464 0.5414,-3.7570318 0,-1.2632748 -0.18047,-2.5101486 -0.5414,-3.7406252 -0.35548,-1.2304586 -0.89688,-2.47459809 -1.62422,-3.7324222"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4826"
+ inkscape:connector-curvature="0" /><path
+ d="m -367.10554,-0.5201575 2.46914,0 3.12539,8.3343756 3.1418,-8.3343756 2.46914,0 0,12.2472665 -1.61602,0 0,-10.75429765 -3.1582,8.40000055 -1.66523,0 -3.15821,-8.40000055 0,10.75429765 -1.60781,0 0,-12.2472665"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4828"
+ inkscape:connector-curvature="0" /><path
+ d="m -348.49265,7.1087493 c -1.21954,4.6e-6 -2.06446,0.1394576 -2.53477,0.4183594 -0.47031,0.2789102 -0.70547,0.754691 -0.70546,1.4273438 -10e-6,0.5359398 0.17499,0.9625019 0.525,1.2796875 0.35546,0.31172 0.83671,0.467579 1.44375,0.467578 0.83671,1e-6 1.50663,-0.295311 2.00976,-0.8859373 0.50859,-0.5960913 0.76289,-1.3863249 0.76289,-2.3707033 l 0,-0.3363281 -1.50117,0 m 3.01055,-0.6234376 0,5.2417973 -1.50938,0 0,-1.394531 c -0.34454,0.557813 -0.77383,0.970703 -1.28789,1.238672 -0.51407,0.262499 -1.14297,0.393749 -1.88672,0.39375 -0.94063,-10e-7 -1.68984,-0.2625 -2.24765,-0.7875 -0.55235,-0.530468 -0.82852,-1.2386706 -0.82852,-2.12461 0,-1.0335901 0.34453,-1.8128862 1.03359,-2.3378908 0.69453,-0.5249945 1.72813,-0.7874942 3.10079,-0.7875 l 2.1164,0 0,-0.1476563 c 0,-0.6945246 -0.22969,-1.2304616 -0.68906,-1.6078126 -0.45391,-0.3828046 -1.09376,-0.5742106 -1.91953,-0.5742188 -0.52501,8.2e-6 -1.03633,0.062899 -1.53399,0.1886719 -0.49765,0.1257891 -0.97617,0.3144608 -1.43554,0.5660157 l 0,-1.3945314 c 0.55234,-0.2132722 1.08828,-0.3718659 1.60781,-0.4757812 0.51953,-0.1093657 1.02539,-0.1640532 1.51758,-0.1640626 1.3289,9.4e-6 2.32148,0.3445404 2.97773,1.0335939 0.65624,0.6890702 0.98437,1.7336005 0.98438,3.1335939"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4830"
+ inkscape:connector-curvature="0" /><path
+ d="m -342.42233,-1.0369544 1.51757,0 0,7.5386724 4.50352,-3.9621097 1.92773,0 -4.87265,4.2984378 5.07773,4.8890629 -1.96875,0 -4.66758,-4.4871097 0,4.4871097 -1.51757,0 0,-12.7640634"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4832"
+ inkscape:connector-curvature="0" /><path
+ d="m -325.35163,6.7560149 0,0.7382813 -6.93985,0 c 0.0656,1.0390657 0.37734,1.8320337 0.93516,2.3789064 0.56328,0.5414074 1.34531,0.8121104 2.34609,0.8121094 0.57968,1e-6 1.14023,-0.07109 1.68164,-0.213281 0.54687,-0.142186 1.08828,-0.355467 1.62422,-0.639844 l 0,1.427344 c -0.54141,0.229688 -1.09649,0.404687 -1.66523,0.525 -0.56876,0.120312 -1.14571,0.180468 -1.73086,0.180469 -1.46563,-10e-7 -2.62774,-0.426563 -3.48633,-1.279688 -0.85313,-0.8531232 -1.27969,-2.0070283 -1.27969,-3.461719 0,-1.5039003 0.40469,-2.6960867 1.21407,-3.5765627 0.81484,-0.8859286 1.91132,-1.328897 3.28945,-1.3289064 1.23593,9.4e-6 2.2121,0.3992278 2.92851,1.1976564 0.72187,0.7929762 1.08281,1.8730533 1.08282,3.2402346 m -1.50938,-0.4429688 c -0.0109,-0.8257751 -0.24336,-1.4847588 -0.69726,-1.9769533 -0.44845,-0.4921796 -1.04454,-0.7382731 -1.78828,-0.7382813 -0.8422,8.2e-6 -1.51759,0.2378986 -2.02618,0.713672 -0.50312,0.4757882 -0.79297,1.1457094 -0.86953,2.0097657 l 5.38125,-0.0082"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4834"
+ inkscape:connector-curvature="0" /><path
+ d="m -315.80319,0.84156134 0,4.60195346 2.08359,0 c 0.77109,6.3e-6 1.36718,-0.1996029 1.78828,-0.5988282 0.42109,-0.3992115 0.63163,-0.967961 0.63164,-1.7062501 -10e-6,-0.7328032 -0.21055,-1.2988183 -0.63164,-1.698047 -0.4211,-0.3992081 -1.01719,-0.59881728 -1.78828,-0.59882816 l -2.08359,0 m -1.65704,-1.36171884 3.74063,0 c 1.37265,1.224e-5 2.40898,0.3117307 3.10898,0.93515631 0.70546,0.61797949 1.0582,1.52579119 1.05821,2.72343769 -10e-6,1.2086012 -0.35275,2.1218816 -1.05821,2.7398439 -0.7,0.6179741 -1.73633,0.9269581 -3.10898,0.9269532 l -2.08359,0 0,4.9218754 -1.65704,0 0,-12.2472665"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4836"
+ inkscape:connector-curvature="0" /><path
+ d="m -302.34186,3.9505459 c -0.16954,-0.09843 -0.35548,-0.1695233 -0.55781,-0.2132812 -0.19689,-0.049211 -0.41564,-0.07382 -0.65625,-0.073828 -0.85313,8.1e-6 -1.50938,0.2789141 -1.96875,0.8367188 -0.45391,0.5523505 -0.68087,1.3480529 -0.68086,2.3871096 l 0,4.8398439 -1.51758,0 0,-9.1875005 1.51758,0 0,1.4273439 c 0.31718,-0.5578042 0.73007,-0.9706945 1.23867,-1.238672 0.50859,-0.2734282 1.12655,-0.4101469 1.8539,-0.4101563 0.1039,9.4e-6 0.21875,0.00821 0.34454,0.024609 0.12577,0.010947 0.26522,0.030088 0.41835,0.057422 l 0.008,1.5503907"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4838"
+ inkscape:connector-curvature="0" /><path
+ d="m -297.54303,3.5978115 c -0.80938,8.2e-6 -1.44923,0.3171954 -1.91954,0.9515626 -0.47031,0.6289128 -0.70547,1.4929745 -0.70546,2.5921877 -1e-5,1.0992223 0.23241,1.9660183 0.69726,2.6003908 0.47031,0.6289074 1.11289,0.9433604 1.92774,0.9433594 0.8039,1e-6 1.44101,-0.317186 1.91132,-0.9515626 0.47031,-0.6343724 0.70547,-1.4984341 0.70547,-2.5921876 0,-1.0882757 -0.23516,-1.949603 -0.70547,-2.5839846 -0.47031,-0.639836 -1.10742,-0.9597575 -1.91132,-0.9597657 m 0,-1.2796876 c 1.31249,9.4e-6 2.34335,0.4265716 3.09257,1.2796876 0.74921,0.8531324 1.12382,2.0343813 1.12383,3.5437503 -10e-6,1.5039094 -0.37462,2.6851583 -1.12383,3.5437502 -0.74922,0.853125 -1.78008,1.279687 -3.09257,1.279688 -1.31798,-10e-7 -2.35157,-0.426563 -3.10079,-1.279688 -0.74375,-0.8585919 -1.11562,-2.0398408 -1.11562,-3.5437502 0,-1.509369 0.37187,-2.6906179 1.11562,-3.5437503 0.74922,-0.853116 1.78281,-1.2796782 3.10079,-1.2796876"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4840"
+ inkscape:connector-curvature="0" /><path
+ d="m -284.77077,3.9341397 0,-4.9710941 1.50938,0 0,12.7640634 -1.50938,0 0,-1.378125 c -0.31719,0.546876 -0.71914,0.954297 -1.20586,1.222266 -0.48125,0.262499 -1.06094,0.393749 -1.73906,0.39375 -1.11016,-10e-7 -2.01524,-0.442969 -2.71523,-1.328907 -0.69454,-0.8859353 -1.0418,-2.050778 -1.0418,-3.4945312 0,-1.4437441 0.34726,-2.6085868 1.0418,-3.4945315 0.69999,-0.8859286 1.60507,-1.328897 2.71523,-1.3289064 0.67812,9.4e-6 1.25781,0.1339937 1.73906,0.4019532 0.48672,0.2625088 0.88867,0.6671959 1.20586,1.2140626 m -5.14336,3.2074221 c 0,1.1101598 0.22695,1.9824246 0.68086,2.616797 0.45937,0.6289072 1.08828,0.9433602 1.88672,0.9433592 0.79843,1e-6 1.42734,-0.314452 1.88672,-0.9433592 0.45937,-0.6343724 0.68906,-1.5066372 0.68906,-2.616797 0,-1.1101507 -0.22969,-1.9796811 -0.68906,-2.608594 -0.45938,-0.6343672 -1.08829,-0.9515544 -1.88672,-0.9515625 -0.79844,8.1e-6 -1.42735,0.3171953 -1.88672,0.9515625 -0.45391,0.6289129 -0.68086,1.4984433 -0.68086,2.608594"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4842"
+ inkscape:connector-curvature="0" /><path
+ d="m -280.30827,8.1013275 0,-5.5617192 1.50938,0 0,5.5042973 c 0,0.8695341 0.16953,1.5230491 0.50859,1.9605474 0.33906,0.432032 0.84765,0.648048 1.52578,0.648047 0.81484,1e-6 1.45742,-0.259765 1.92774,-0.7792974 0.47577,-0.5195289 0.71366,-1.2277314 0.71367,-2.1246095 l 0,-5.2089848 1.50937,0 0,9.1875007 -1.50937,0 0,-1.410938 c -0.36641,0.557814 -0.79298,0.973438 -1.27969,1.246875 -0.48125,0.267969 -1.0418,0.401953 -1.68164,0.401954 -1.05547,-10e-7 -1.85664,-0.328125 -2.40351,-0.984375 -0.54688,-0.656249 -0.82032,-1.6160138 -0.82032,-2.8792975"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4844"
+ inkscape:connector-curvature="0" /><path
+ d="m -262.87663,2.8923427 0,1.4109376 c -0.42657,-0.2351486 -0.85586,-0.4101484 -1.28789,-0.525 -0.42657,-0.1203045 -0.8586,-0.1804606 -1.29609,-0.1804688 -0.97891,8.2e-6 -1.73907,0.3117266 -2.28047,0.9351563 -0.54141,0.6179754 -0.81211,1.4875058 -0.81211,2.608594 0,1.1210973 0.2707,1.9933621 0.81211,2.616797 0.5414,0.6179702 1.30156,0.9269542 2.28047,0.9269532 0.43749,1e-6 0.86952,-0.05742 1.29609,-0.172266 0.43203,-0.120311 0.86132,-0.298045 1.28789,-0.5332028 l 0,1.3945318 c -0.4211,0.196875 -0.8586,0.344531 -1.3125,0.442968 -0.44844,0.09844 -0.92696,0.147656 -1.43554,0.147657 -1.3836,-10e-7 -2.48282,-0.434766 -3.29766,-1.304297 -0.81484,-0.8695297 -1.22227,-2.0425755 -1.22227,-3.5191412 0,-1.4984316 0.41016,-2.6769461 1.23047,-3.5355471 0.82578,-0.8585849 1.95508,-1.2878814 3.38789,-1.2878908 0.46484,9.4e-6 0.91875,0.049228 1.36172,0.1476563 0.44296,0.092978 0.87226,0.2351653 1.28789,0.4265625"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4846"
+ inkscape:connector-curvature="0" /><path
+ d="m -258.74225,-0.0689856 0,2.6085939 3.10899,0 0,1.173047 -3.10899,0 0,4.9875003 c 0,0.7492211 0.10117,1.2304707 0.30352,1.4437504 0.20781,0.213282 0.62617,0.319923 1.25508,0.319922 l 1.55039,0 0,1.263281 -1.55039,0 c -1.16485,0 -1.96876,-0.216015 -2.41172,-0.648047 -0.44297,-0.437499 -0.66446,-1.2304669 -0.66446,-2.3789064 l 0,-4.9875003 -1.10742,0 0,-1.173047 1.10742,0 0,-2.6085939 1.51758,0"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4848"
+ inkscape:connector-curvature="0" /><path
+ d="m -247.78288,2.8103115 0,1.4273438 c -0.42657,-0.2187423 -0.86954,-0.3828046 -1.32891,-0.4921875 -0.45938,-0.1093669 -0.93516,-0.1640544 -1.42734,-0.1640625 -0.74922,8.1e-6 -1.3125,0.1148518 -1.68984,0.3445312 -0.37188,0.2296951 -0.55782,0.5742261 -0.55782,1.0335939 0,0.3500064 0.13399,0.626178 0.40196,0.8285157 0.26796,0.1968807 0.80663,0.3855524 1.61601,0.5660156 l 0.5168,0.1148438 c 1.07187,0.2296925 1.83202,0.5550828 2.28047,0.9761719 0.4539,0.4156289 0.68085,0.9980502 0.68086,1.7472658 -10e-6,0.8531268 -0.33907,1.5285168 -1.01719,2.0261718 -0.67266,0.497656 -1.59961,0.746484 -2.78086,0.746485 -0.49219,-10e-7 -1.00625,-0.04922 -1.54219,-0.147657 -0.53047,-0.09297 -1.09101,-0.235156 -1.68164,-0.426562 l 0,-1.558594 c 0.55781,0.289845 1.10742,0.508595 1.64883,0.65625 0.5414,0.142189 1.07734,0.213282 1.60781,0.213281 0.71094,1e-6 1.25781,-0.120311 1.64063,-0.360937 0.38281,-0.246092 0.57421,-0.5906233 0.57422,-1.0335941 -1e-5,-0.4101534 -0.13946,-0.7246063 -0.41836,-0.9433594 -0.27344,-0.2187465 -0.87774,-0.4292931 -1.81289,-0.6316407 l -0.525,-0.1230469 c -0.93516,-0.1968707 -1.61055,-0.4976516 -2.02617,-0.9023438 -0.41563,-0.4101508 -0.62344,-0.9706972 -0.62344,-1.6816407 0,-0.864055 0.30625,-1.5312419 0.91875,-2.0015627 0.6125,-0.4703033 1.48203,-0.7054594 2.60859,-0.7054688 0.55781,9.4e-6 1.08281,0.041025 1.575,0.1230469 0.49218,0.08204 0.94609,0.2050872 1.36172,0.3691407"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4850"
+ inkscape:connector-curvature="0" /><path
+ d="m -240.40827,2.5396083 1.50937,0 1.88672,7.1695318 1.87852,-7.1695318 1.78008,0 1.88672,7.1695318 1.87851,-7.1695318 1.50938,0 -2.40352,9.1875007 -1.78008,0 -1.97695,-7.5304693 -1.98516,7.5304693 -1.78007,0 -2.40352,-9.1875007"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4852"
+ inkscape:connector-curvature="0" /><path
+ d="m -225.78209,2.5396083 1.50937,0 0,9.1875007 -1.50937,0 0,-9.1875007 m 0,-3.5765627 1.50937,0 0,1.91132824 -1.50937,0 0,-1.91132824"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4854"
+ inkscape:connector-curvature="0" /><path
+ d="m -219.62975,-0.0689856 0,2.6085939 3.10899,0 0,1.173047 -3.10899,0 0,4.9875003 c 0,0.7492211 0.10117,1.2304707 0.30352,1.4437504 0.20781,0.213282 0.62617,0.319923 1.25508,0.319922 l 1.55039,0 0,1.263281 -1.55039,0 c -1.16485,0 -1.96875,-0.216015 -2.41172,-0.648047 -0.44297,-0.437499 -0.66446,-1.2304669 -0.66445,-2.3789064 l 0,-4.9875003 -1.10743,0 0,-1.173047 1.10743,0 0,-2.6085939 1.51757,0"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4856"
+ inkscape:connector-curvature="0" /><path
+ d="m -206.8903,6.1817961 0,5.5453129 -1.50937,0 0,-5.4960942 c -1e-5,-0.8695249 -0.16954,-1.5203056 -0.5086,-1.9523439 -0.33907,-0.4320234 -0.84766,-0.6480388 -1.52578,-0.6480469 -0.81485,8.1e-6 -1.45742,0.2597735 -1.92773,0.779297 -0.47032,0.519538 -0.70547,1.2277405 -0.70547,2.1246095 l 0,5.1925785 -1.51758,0 0,-12.7640634 1.51758,0 0,5.0039066 c 0.36093,-0.5523355 0.78476,-0.9652257 1.27148,-1.238672 0.49219,-0.2734282 1.0582,-0.4101469 1.69805,-0.4101563 1.05546,9.4e-6 1.8539,0.3281341 2.39531,0.9843751 0.5414,0.6507891 0.8121,1.6105538 0.81211,2.8792971"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4858"
+ inkscape:connector-curvature="0" /><path
+ d="m -193.28132,5.1235929 c 0.79296,0.1695377 1.41093,0.5222717 1.85391,1.0582032 0.44843,0.5359425 0.67265,1.1976607 0.67266,1.9851564 -1e-5,1.2085961 -0.41564,2.1437515 -1.24688,2.8054685 -0.83126,0.661719 -2.01251,0.992578 -3.54375,0.992579 -0.51407,-10e-7 -1.04453,-0.05195 -1.59141,-0.15586 -0.5414,-0.09844 -1.10195,-0.248828 -1.68164,-0.451172 l 0,-1.5996092 c 0.45938,0.2679702 0.9625,0.4703142 1.50938,0.6070312 0.54687,0.13672 1.11835,0.205079 1.71445,0.205078 1.03906,10e-7 1.82929,-0.205077 2.37071,-0.6152342 0.54686,-0.4101541 0.8203,-1.0062473 0.82031,-1.7882813 -1e-5,-0.7218708 -0.25431,-1.2851515 -0.76289,-1.6898439 -0.50313,-0.4101506 -1.20587,-0.6152286 -2.10821,-0.6152344 l -1.42734,0 0,-1.3617189 1.49297,0 c 0.81484,7.3e-6 1.43827,-0.1613207 1.87031,-0.4839844 0.43203,-0.328117 0.64804,-0.798429 0.64805,-1.4109376 -1e-5,-0.6288965 -0.22423,-1.1101461 -0.67266,-1.4437501 -0.44297,-0.33905158 -1.08008,-0.50858267 -1.91133,-0.50859375 -0.45391,1.108e-5 -0.94063,0.0492298 -1.46015,0.14765626 -0.51954,0.0984483 -1.09102,0.25157319 -1.71446,0.45937499 l 0,-1.47656256 c 0.62891,-0.17498789 1.2168,-0.30623777 1.76368,-0.39375003 0.55234,-0.0874876 1.07187,-0.13123754 1.55859,-0.13125 1.25781,1.246e-5 2.25312,0.28712157 2.98594,0.86132818 0.7328,0.56876108 1.09921,1.33985411 1.09922,2.31328141 -10e-6,0.6781337 -0.19415,1.2523519 -0.58243,1.7226564 -0.38828,0.4648509 -0.94063,0.7875068 -1.65703,0.9679688"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4860"
+ inkscape:connector-curvature="0" /><path
+ d="m -180.74694,0.84156134 0,9.52382866 2.00157,0 c 1.68983,1e-6 2.92577,-0.3828107 3.70781,-1.1484375 0.78749,-0.7656217 1.18124,-1.9742144 1.18125,-3.6257815 -1e-5,-1.6406173 -0.39376,-2.8410068 -1.18125,-3.6011721 -0.78204,-0.7656145 -2.01798,-1.14842668 -3.70781,-1.14843756 l -2.00157,0 m -1.65703,-1.36171884 3.4043,0 c 2.37343,1.224e-5 4.11523,0.49493366 5.22539,1.48476572 1.11015,0.98438488 1.66522,2.52657088 1.66524,4.62656278 -2e-5,2.1109417 -0.55783,3.6613309 -1.67344,4.651172 -1.11564,0.989845 -2.8547,1.484766 -5.21719,1.484766 l -3.4043,0 0,-12.2472665"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4862"
+ inkscape:connector-curvature="0" /><path
+ d="m -161.68287,6.7560149 0,0.7382813 -6.93984,0 c 0.0656,1.0390657 0.37734,1.8320337 0.93516,2.3789064 0.56327,0.5414074 1.3453,0.8121104 2.34609,0.8121094 0.57968,1e-6 1.14023,-0.07109 1.68164,-0.213281 0.54687,-0.142186 1.08827,-0.355467 1.62422,-0.639844 l 0,1.427344 c -0.54142,0.229688 -1.09649,0.404687 -1.66524,0.525 -0.56875,0.120312 -1.14571,0.180468 -1.73086,0.180469 -1.46562,-10e-7 -2.62773,-0.426563 -3.48632,-1.279688 -0.85313,-0.8531232 -1.27969,-2.0070283 -1.27969,-3.461719 0,-1.5039003 0.40469,-2.6960867 1.21406,-3.5765627 0.81484,-0.8859286 1.91133,-1.328897 3.28945,-1.3289064 1.23594,9.4e-6 2.21211,0.3992278 2.92852,1.1976564 0.72187,0.7929762 1.0828,1.8730533 1.08281,3.2402346 m -1.50937,-0.4429688 c -0.011,-0.8257751 -0.24337,-1.4847588 -0.69727,-1.9769533 -0.44844,-0.4921796 -1.04454,-0.7382731 -1.78828,-0.7382813 -0.84219,8.2e-6 -1.51758,0.2378986 -2.02617,0.713672 -0.50313,0.4757882 -0.79297,1.1457094 -0.86953,2.0097657 l 5.38125,-0.0082"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4864"
+ inkscape:connector-curvature="0" /><path
+ d="m -153.34849,2.8103115 0,1.4273438 c -0.42657,-0.2187423 -0.86954,-0.3828046 -1.32891,-0.4921875 -0.45938,-0.1093669 -0.93516,-0.1640544 -1.42734,-0.1640625 -0.74922,8.1e-6 -1.31251,0.1148518 -1.68985,0.3445312 -0.37187,0.2296951 -0.55781,0.5742261 -0.55781,1.0335939 0,0.3500064 0.13398,0.626178 0.40195,0.8285157 0.26797,0.1968807 0.80664,0.3855524 1.61602,0.5660156 l 0.5168,0.1148438 c 1.07187,0.2296925 1.83202,0.5550828 2.28047,0.9761719 0.45389,0.4156289 0.68085,0.9980502 0.68086,1.7472658 -1e-5,0.8531268 -0.33907,1.5285168 -1.01719,2.0261718 -0.67266,0.497656 -1.59962,0.746484 -2.78086,0.746485 -0.49219,-10e-7 -1.00625,-0.04922 -1.54219,-0.147657 -0.53047,-0.09297 -1.09102,-0.235156 -1.68164,-0.426562 l 0,-1.558594 c 0.55781,0.289845 1.10742,0.508595 1.64883,0.65625 0.5414,0.142189 1.07734,0.213282 1.60781,0.213281 0.71093,1e-6 1.25781,-0.120311 1.64063,-0.360937 0.3828,-0.246092 0.57421,-0.5906233 0.57421,-1.0335941 0,-0.4101534 -0.13945,-0.7246063 -0.41835,-0.9433594 -0.27345,-0.2187465 -0.87774,-0.4292931 -1.8129,-0.6316407 l -0.525,-0.1230469 c -0.93515,-0.1968707 -1.61054,-0.4976516 -2.02617,-0.9023438 -0.41562,-0.4101508 -0.62344,-0.9706972 -0.62343,-1.6816407 -1e-5,-0.864055 0.30624,-1.5312419 0.91875,-2.0015627 0.61249,-0.4703033 1.48202,-0.7054594 2.60859,-0.7054688 0.55781,9.4e-6 1.08281,0.041025 1.575,0.1230469 0.49218,0.08204 0.94609,0.2050872 1.36172,0.3691407"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4866"
+ inkscape:connector-curvature="0" /><path
+ d="m -150.44458,2.5396083 1.50937,0 0,9.1875007 -1.50937,0 0,-9.1875007 m 0,-3.5765627 1.50937,0 0,1.91132824 -1.50937,0 0,-1.91132824"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4868"
+ inkscape:connector-curvature="0" /><path
+ d="m -139.7395,7.026718 c -1e-5,-1.0937443 -0.22696,-1.9413997 -0.68086,-2.5429689 -0.44844,-0.6015547 -1.08008,-0.9023357 -1.89492,-0.9023438 -0.80938,8.1e-6 -1.44102,0.3007891 -1.89492,0.9023438 -0.44845,0.6015692 -0.67266,1.4492246 -0.67266,2.5429689 0,1.0882849 0.22421,1.933206 0.67266,2.5347658 0.4539,0.6015642 1.08554,0.9023452 1.89492,0.9023442 0.81484,1e-6 1.44648,-0.30078 1.89492,-0.9023442 0.4539,-0.6015598 0.68085,-1.4464809 0.68086,-2.5347658 m 1.50937,3.560157 c -1e-5,1.564062 -0.34727,2.72617 -1.04179,3.486328 -0.69454,0.765622 -1.75821,1.148434 -3.19102,1.148437 -0.53047,-3e-6 -1.03086,-0.04102 -1.50117,-0.123046 -0.47032,-0.07657 -0.92696,-0.196879 -1.36992,-0.360938 l 0,-1.468359 c 0.44296,0.240623 0.88046,0.418357 1.3125,0.533203 0.43202,0.114841 0.87226,0.172263 1.3207,0.172265 0.98984,-2e-6 1.73085,-0.259767 2.22305,-0.779297 0.49218,-0.514063 0.73827,-1.293359 0.73828,-2.33789 l 0,-0.746485 c -0.31173,0.541408 -0.71095,0.946095 -1.19766,1.214063 -0.48672,0.267969 -1.06914,0.401953 -1.74726,0.401953 -1.12657,0 -2.03438,-0.429297 -2.72344,-1.287891 -0.68907,-0.8585914 -1.0336,-1.9960904 -1.0336,-3.4125 0,-1.421869 0.34453,-2.5621023 1.0336,-3.4207033 0.68906,-0.8585849 1.59687,-1.2878814 2.72344,-1.2878908 0.67812,9.4e-6 1.26054,0.1339937 1.74726,0.4019532 0.48671,0.2679775 0.88593,0.6726646 1.19766,1.2140626 l 0,-1.3945314 1.50937,0 0,8.0472667"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4870"
+ inkscape:connector-curvature="0" /><path
+ d="m -127.48403,6.1817961 0,5.5453129 -1.50938,0 0,-5.4960942 c -10e-6,-0.8695249 -0.16954,-1.5203056 -0.50859,-1.9523439 -0.33907,-0.4320234 -0.84766,-0.6480388 -1.52578,-0.6480469 -0.81485,8.1e-6 -1.45743,0.2597735 -1.92774,0.779297 -0.47031,0.519538 -0.70547,1.2277405 -0.70547,2.1246095 l 0,5.1925785 -1.51757,0 0,-9.1875007 1.51757,0 0,1.4273439 c 0.36094,-0.5523355 0.78477,-0.9652257 1.27149,-1.238672 0.49218,-0.2734282 1.0582,-0.4101469 1.69805,-0.4101563 1.05546,9.4e-6 1.85389,0.3281341 2.39531,0.9843751 0.5414,0.6507891 0.8121,1.6105538 0.81211,2.8792971"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4872"
+ inkscape:connector-curvature="0" /><path
+ d="m -111.70124,-0.11820435 0,1.61601575 c -0.62891,-0.3007708 -1.22227,-0.5249893 -1.78008,-0.67265631 -0.55782,-0.14764521 -1.09649,-0.22147327 -1.61601,-0.22148439 -0.90235,1.112e-5 -1.59962,0.17501096 -2.0918,0.525 -0.48672,0.3500103 -0.73008,0.8476661 -0.73008,1.4929689 0,0.5414148 0.16133,0.9515707 0.48399,1.2304688 0.32812,0.2734451 0.94609,0.4949293 1.8539,0.6644532 l 1.00078,0.2050781 c 1.23593,0.2351631 2.14648,0.6507877 2.73165,1.2468751 0.59061,0.5906302 0.88592,1.3835982 0.88593,2.3789064 -1e-5,1.186721 -0.39923,2.0863298 -1.19765,2.6988288 -0.79298,0.6125 -1.95782,0.918749 -3.49453,0.91875 -0.5797,-10e-7 -1.19767,-0.06563 -1.85391,-0.196875 -0.65079,-0.13125 -1.32618,-0.325391 -2.02617,-0.582422 l 0,-1.7062504 c 0.67265,0.3773456 1.33163,0.6617204 1.97695,0.8531254 0.64531,0.191407 1.27968,0.28711 1.90313,0.287109 0.94608,10e-7 1.67616,-0.185936 2.19023,-0.557813 0.51405,-0.3718725 0.77109,-0.9023408 0.77109,-1.5914059 0,-0.6015587 -0.18594,-1.0718707 -0.55781,-1.4109376 -0.36641,-0.3390575 -0.97071,-0.5933541 -1.81289,-0.7628907 l -1.00898,-0.196875 c -1.23595,-0.2460879 -2.13009,-0.6316344 -2.68243,-1.1566407 -0.55234,-0.5249927 -0.82851,-1.2550702 -0.82851,-2.1902345 0,-1.0828025 0.38007,-1.93592673 1.14023,-2.55937518 0.76562,-0.62342539 1.81836,-0.93514385 3.15821,-0.93515631 0.57421,1.246e-5 1.15936,0.0519655 1.75546,0.15585938 0.59609,0.10391847 1.20586,0.2597777 1.8293,0.46757816"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4874"
+ inkscape:connector-curvature="0" /><path
+ d="m -100.586,6.7560149 0,0.7382813 -6.93985,0 c 0.0656,1.0390657 0.37734,1.8320337 0.93516,2.3789064 0.56328,0.5414074 1.34531,0.8121104 2.34609,0.8121094 0.57968,1e-6 1.14023,-0.07109 1.68164,-0.213281 0.54687,-0.142186 1.08828,-0.355467 1.62422,-0.639844 l 0,1.427344 c -0.54141,0.229688 -1.09649,0.404687 -1.66523,0.525 -0.56876,0.120312 -1.14571,0.180468 -1.73086,0.180469 -1.46563,-10e-7 -2.62774,-0.426563 -3.48633,-1.279688 -0.85313,-0.8531232 -1.27969,-2.0070283 -1.27969,-3.461719 0,-1.5039003 0.40469,-2.6960867 1.21406,-3.5765627 0.81485,-0.8859286 1.91133,-1.328897 3.28946,-1.3289064 1.23593,9.4e-6 2.2121,0.3992278 2.92851,1.1976564 0.72187,0.7929762 1.08281,1.8730533 1.08282,3.2402346 m -1.50938,-0.4429688 c -0.0109,-0.8257751 -0.24337,-1.4847588 -0.69726,-1.9769533 -0.44845,-0.4921796 -1.04454,-0.7382731 -1.78829,-0.7382813 -0.84219,8.2e-6 -1.51758,0.2378986 -2.02617,0.713672 -0.50313,0.4757882 -0.79297,1.1457094 -0.86953,2.0097657 l 5.38125,-0.0082"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4876"
+ inkscape:connector-curvature="0" /><path
+ d="m -96.615661,-0.0689856 0,2.6085939 3.108984,0 0,1.173047 -3.108984,0 0,4.9875003 c -3e-6,0.7492211 0.101168,1.2304707 0.303515,1.4437504 0.207809,0.213282 0.626168,0.319923 1.255078,0.319922 l 1.550391,0 0,1.263281 -1.550391,0 c -1.164847,0 -1.968752,-0.216015 -2.411718,-0.648047 -0.442971,-0.437499 -0.664455,-1.2304669 -0.664454,-2.3789064 l 0,-4.9875003 -1.107422,0 0,-1.173047 1.107422,0 0,-2.6085939 1.517579,0"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4878"
+ inkscape:connector-curvature="0" /><path
+ d="m -90.020355,-0.0689856 0,2.6085939 3.108985,0 0,1.173047 -3.108985,0 0,4.9875003 c -3e-6,0.7492211 0.101169,1.2304707 0.303516,1.4437504 0.207809,0.213282 0.626168,0.319923 1.255078,0.319922 l 1.550391,0 0,1.263281 -1.550391,0 c -1.164847,0 -1.968753,-0.216015 -2.411719,-0.648047 -0.442971,-0.437499 -0.664455,-1.2304669 -0.664453,-2.3789064 l 0,-4.9875003 -1.107422,0 0,-1.173047 1.107422,0 0,-2.6085939 1.517578,0"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4880"
+ inkscape:connector-curvature="0" /><path
+ d="m -84.918017,2.5396083 1.509375,0 0,9.1875007 -1.509375,0 0,-9.1875007 m 0,-3.5765627 1.509375,0 0,1.91132824 -1.509375,0 0,-1.91132824"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4882"
+ inkscape:connector-curvature="0" /><path
+ d="m -72.621545,6.1817961 0,5.5453129 -1.509375,0 0,-5.4960942 c -8e-6,-0.8695249 -0.169539,-1.5203056 -0.508594,-1.9523439 -0.339069,-0.4320234 -0.847662,-0.6480388 -1.525781,-0.6480469 -0.814849,8.1e-6 -1.457426,0.2597735 -1.927735,0.779297 -0.470315,0.519538 -0.705471,1.2277405 -0.705468,2.1246095 l 0,5.1925785 -1.517579,0 0,-9.1875007 1.517579,0 0,1.4273439 c 0.360934,-0.5523355 0.784762,-0.9652257 1.271484,-1.238672 0.492183,-0.2734282 1.058198,-0.4101469 1.698047,-0.4101563 1.055462,9.4e-6 1.853899,0.3281341 2.395313,0.9843751 0.541397,0.6507891 0.8121,1.6105538 0.812109,2.8792971"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4884"
+ inkscape:connector-curvature="0" /><path
+ d="m -63.548889,7.026718 c -7e-6,-1.0937443 -0.22696,-1.9413997 -0.680859,-2.5429689 -0.448444,-0.6015547 -1.080084,-0.9023357 -1.894922,-0.9023438 -0.809379,8.1e-6 -1.441019,0.3007891 -1.894922,0.9023438 -0.44844,0.6015692 -0.672659,1.4492246 -0.672656,2.5429689 -3e-6,1.0882849 0.224216,1.933206 0.672656,2.5347658 0.453903,0.6015642 1.085543,0.9023452 1.894922,0.9023442 0.814838,1e-6 1.446478,-0.30078 1.894922,-0.9023442 0.453899,-0.6015598 0.680852,-1.4464809 0.680859,-2.5347658 m 1.509375,3.560157 c -9e-6,1.564062 -0.347274,2.72617 -1.041796,3.486328 -0.694539,0.765622 -1.75821,1.148434 -3.191016,1.148437 -0.530473,-3e-6 -1.030864,-0.04102 -1.501172,-0.123046 -0.470316,-0.07657 -0.926956,-0.196879 -1.369922,-0.360938 l 0,-1.468359 c 0.442966,0.240623 0.880466,0.418357 1.3125,0.533203 0.432027,0.114841 0.872261,0.172263 1.320703,0.172265 0.989838,-2e-6 1.730853,-0.259767 2.223047,-0.779297 0.49218,-0.514063 0.738274,-1.293359 0.738281,-2.33789 l 0,-0.746485 c -0.311726,0.541408 -0.710944,0.946095 -1.197656,1.214063 -0.486725,0.267969 -1.069146,0.401953 -1.747266,0.401953 -1.126566,0 -2.034378,-0.429297 -2.723437,-1.287891 -0.689064,-0.8585914 -1.033595,-1.9960904 -1.033594,-3.4125 -10e-7,-1.421869 0.34453,-2.5621023 1.033594,-3.4207033 0.689059,-0.8585849 1.596871,-1.2878814 2.723437,-1.2878908 0.67812,9.4e-6 1.260541,0.1339937 1.747266,0.4019532 0.486712,0.2679775 0.88593,0.6726646 1.197656,1.2140626 l 0,-1.3945314 1.509375,0 0,8.0472667"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4886"
+ inkscape:connector-curvature="0" /><path
+ d="m -53.073498,2.8103115 0,1.4273438 c -0.42657,-0.2187423 -0.869538,-0.3828046 -1.328906,-0.4921875 -0.459381,-0.1093669 -0.935162,-0.1640544 -1.427344,-0.1640625 -0.749223,8.1e-6 -1.312504,0.1148518 -1.689844,0.3445312 -0.371878,0.2296951 -0.557815,0.5742261 -0.557813,1.0335939 -2e-6,0.3500064 0.133982,0.626178 0.401954,0.8285157 0.267965,0.1968807 0.806637,0.3855524 1.616015,0.5660156 l 0.516797,0.1148438 c 1.071869,0.2296925 1.832025,0.5550828 2.280469,0.9761719 0.453899,0.4156289 0.680852,0.9980502 0.68086,1.7472658 -8e-6,0.8531268 -0.339071,1.5285168 -1.017188,2.0261718 -0.672663,0.497656 -1.599615,0.746484 -2.78086,0.746485 -0.492191,-10e-7 -1.006253,-0.04922 -1.542187,-0.147657 -0.530471,-0.09297 -1.091017,-0.235156 -1.681641,-0.426562 l 0,-1.558594 c 0.557811,0.289845 1.10742,0.508595 1.648828,0.65625 0.541403,0.142189 1.07734,0.213282 1.607813,0.213281 0.710933,1e-6 1.257807,-0.120311 1.640625,-0.360937 0.382806,-0.246092 0.574212,-0.5906233 0.574219,-1.0335941 -7e-6,-0.4101534 -0.13946,-0.7246063 -0.41836,-0.9433594 -0.273443,-0.2187465 -0.877739,-0.4292931 -1.81289,-0.6316407 l -0.525,-0.1230469 C -57.82311,7.4122692 -58.4985,7.1114883 -58.914123,6.7067961 -59.32975,6.2966453 -59.537562,5.7360989 -59.537561,5.0251554 c -1e-6,-0.864055 0.306249,-1.5312419 0.91875,-2.0015627 0.612498,-0.4703033 1.482028,-0.7054594 2.608594,-0.7054688 0.557807,9.4e-6 1.082807,0.041025 1.575,0.1230469 0.492181,0.08204 0.946087,0.2050872 1.361719,0.3691407"
+ style="font-size:16.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4888"
+ inkscape:connector-curvature="0" /></g><g
+ style="font-size:9.60000038px"
+ id="text4863-9"><path
+ d="m -393.83092,-67.415047 0,5.697657 2.57969,0 c 0.95468,8e-6 1.6927,-0.247128 2.21406,-0.741406 0.52134,-0.494262 0.78202,-1.198428 0.78203,-2.112501 -1e-5,-0.90728 -0.26069,-1.60806 -0.78203,-2.102343 -0.52136,-0.494258 -1.25938,-0.741393 -2.21406,-0.741407 l -2.57969,0 m -2.05156,-1.685937 4.63125,0 c 1.69947,1.5e-5 2.98254,0.385952 3.84922,1.157812 0.87342,0.765118 1.31014,1.889075 1.31015,3.371875 -10e-6,1.496364 -0.43673,2.627092 -1.31015,3.392188 -0.86668,0.765111 -2.14975,1.147663 -3.84922,1.147656 l -2.57969,0 0,6.093751 -2.05156,0 0,-15.163282"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4891"
+ inkscape:connector-curvature="0" /><path
+ d="m -377.16451,-63.565828 c -0.20991,-0.121865 -0.44012,-0.209886 -0.69063,-0.264062 -0.24376,-0.06093 -0.51459,-0.0914 -0.8125,-0.09141 -1.05625,1e-5 -1.86875,0.345322 -2.4375,1.035937 -0.56198,0.683863 -0.84297,1.669018 -0.84297,2.955469 l 0,5.992188 -1.8789,0 0,-11.375001 1.8789,0 0,1.767188 c 0.39271,-0.690615 0.9039,-1.201812 1.5336,-1.533594 0.62968,-0.33853 1.39478,-0.507801 2.29531,-0.507813 0.12864,1.2e-5 0.27083,0.01017 0.42656,0.03047 0.15572,0.01355 0.32838,0.03725 0.51797,0.07109 l 0.0102,1.919531"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4893"
+ inkscape:connector-curvature="0" /><path
+ d="m -371.22311,-64.002546 c -1.00209,10e-6 -1.79427,0.392718 -2.37656,1.178125 -0.58229,0.778654 -0.87344,1.848444 -0.87344,3.209375 0,1.360942 0.28776,2.434118 0.86328,3.219531 0.58229,0.778648 1.37786,1.16797 2.38672,1.167969 0.99531,10e-7 1.78411,-0.392707 2.36641,-1.178125 0.58228,-0.785414 0.87343,-1.855204 0.87344,-3.209375 -1e-5,-1.347389 -0.29116,-2.413794 -0.87344,-3.199219 -0.5823,-0.792178 -1.3711,-1.188271 -2.36641,-1.188281 m 0,-1.584376 c 1.625,1.2e-5 2.9013,0.528137 3.82891,1.584376 0.92759,1.056259 1.39139,2.518757 1.39141,4.3875 -2e-5,1.861983 -0.46382,3.324481 -1.39141,4.3875 -0.92761,1.05625 -2.20391,1.584375 -3.82891,1.584375 -1.63177,0 -2.91146,-0.528125 -3.83906,-1.584375 -0.92083,-1.063019 -1.38125,-2.525517 -1.38125,-4.3875 0,-1.868743 0.46042,-3.331241 1.38125,-4.3875 0.9276,-1.056239 2.20729,-1.584364 3.83906,-1.584376"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4895"
+ inkscape:connector-curvature="0" /><path
+ d="m -355.40982,-63.58614 0,-6.154688 1.86875,0 0,15.803126 -1.86875,0 0,-1.70625 c -0.39272,0.677084 -0.89038,1.181511 -1.49297,1.513281 -0.59584,0.325 -1.31355,0.4875 -2.15313,0.4875 -1.37448,0 -2.49505,-0.548437 -3.36172,-1.645313 -0.85989,-1.096872 -1.28984,-2.539058 -1.28984,-4.326562 0,-1.787493 0.42995,-3.229679 1.28984,-4.326563 0.86667,-1.096864 1.98724,-1.645301 3.36172,-1.645313 0.83958,1.2e-5 1.55729,0.165897 2.15313,0.497657 0.60259,0.325011 1.10025,0.826052 1.49297,1.503125 m -6.36797,3.971094 c -1e-5,1.374483 0.28098,2.45443 0.84297,3.239844 0.56874,0.778647 1.34739,1.16797 2.33593,1.167969 0.98854,1e-6 1.76718,-0.389322 2.33594,-1.167969 0.56874,-0.785414 0.85312,-1.865361 0.85313,-3.239844 -10e-6,-1.374472 -0.28439,-2.451034 -0.85313,-3.229688 -0.56876,-0.785407 -1.3474,-1.178115 -2.33594,-1.178125 -0.98854,1e-5 -1.76719,0.392718 -2.33593,1.178125 -0.56199,0.778654 -0.84298,1.855216 -0.84297,3.229688"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4897"
+ inkscape:connector-curvature="0" /><path
+ d="m -349.88482,-58.426765 0,-6.885938 1.86875,0 0,6.814844 c -10e-6,1.076566 0.20989,1.88568 0.62968,2.427344 0.41979,0.534898 1.04948,0.802345 1.88907,0.802344 1.00884,1e-6 1.80442,-0.321613 2.38671,-0.964844 0.58906,-0.643226 0.88359,-1.520048 0.8836,-2.630469 l 0,-6.449219 1.86875,0 0,11.375001 -1.86875,0 0,-1.746875 c -0.45366,0.690626 -0.98178,1.205209 -1.58438,1.54375 -0.59584,0.331771 -1.28985,0.497656 -2.08203,0.497656 -1.30677,0 -2.2987,-0.40625 -2.97578,-1.21875 -0.67708,-0.812498 -1.01563,-2.000778 -1.01562,-3.564844"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4899"
+ inkscape:connector-curvature="0" /><path
+ d="m -328.30279,-64.875984 0,1.746875 c -0.52813,-0.291136 -1.05964,-0.507803 -1.59453,-0.65 -0.52813,-0.148948 -1.06303,-0.223427 -1.60469,-0.223437 -1.21198,10e-6 -2.15313,0.385947 -2.82344,1.157812 -0.67031,0.765112 -1.00547,1.841674 -1.00546,3.229688 -10e-6,1.388025 0.33515,2.467972 1.00546,3.239844 0.67031,0.765106 1.61146,1.147657 2.82344,1.147656 0.54166,10e-7 1.07656,-0.07109 1.60469,-0.213281 0.53489,-0.148957 1.0664,-0.369009 1.59453,-0.660157 l 0,1.726563 c -0.52136,0.24375 -1.06303,0.426563 -1.625,0.548438 -0.55522,0.121874 -1.14766,0.182812 -1.77734,0.182812 -1.71303,0 -3.07396,-0.538281 -4.08282,-1.614844 -1.00885,-1.07656 -1.51328,-2.528902 -1.51328,-4.357031 0,-1.855201 0.50781,-3.314314 1.52344,-4.377344 1.02239,-1.06301 2.42057,-1.59452 4.19453,-1.594532 0.57552,1.2e-5 1.13749,0.06095 1.68594,0.182813 0.54843,0.115115 1.07994,0.291157 1.59453,0.528125"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4901"
+ inkscape:connector-curvature="0" /><path
+ d="m -323.18404,-68.54239 0,3.229687 3.84922,0 0,1.452344 -3.84922,0 0,6.175 c -1e-5,0.927607 0.12525,1.52344 0.37578,1.7875 0.25728,0.264065 0.77525,0.396096 1.5539,0.396094 l 1.91954,0 0,1.564063 -1.91954,0 c -1.44219,0 -2.4375,-0.267448 -2.98593,-0.802344 -0.54844,-0.541665 -0.82266,-1.523435 -0.82266,-2.945313 l 0,-6.175 -1.37109,0 0,-1.452344 1.37109,0 0,-3.229687 1.87891,0"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4903"
+ inkscape:connector-curvature="0" /><path
+ d="m -308.11216,-67.415047 0,11.791407 2.47812,0 c 2.09218,2e-6 3.62239,-0.473956 4.59063,-1.421875 0.97499,-0.947913 1.46249,-2.444265 1.4625,-4.489063 -10e-6,-2.03124 -0.48751,-3.517437 -1.4625,-4.458594 -0.96824,-0.947903 -2.49845,-1.421861 -4.59063,-1.421875 l -2.47812,0 m -2.05157,-1.685937 4.21485,0 c 2.93853,1.5e-5 5.09504,0.612775 6.46953,1.838281 1.37447,1.218762 2.0617,3.128135 2.06172,5.728125 -2e-5,2.613547 -0.69064,4.533077 -2.07188,5.758594 -1.38126,1.225522 -3.53438,1.838282 -6.45937,1.838282 l -4.21485,0 0,-15.163282"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4905"
+ inkscape:connector-curvature="0" /><path
+ d="m -284.50904,-60.09239 0,0.914063 -8.59219,0 c 0.0813,1.286462 0.46719,2.268232 1.15782,2.945312 0.69739,0.670314 1.66562,1.00547 2.90468,1.005469 0.7177,10e-7 1.41171,-0.08802 2.08203,-0.264063 0.67708,-0.176039 1.34739,-0.440102 2.01094,-0.792187 l 0,1.767188 c -0.67032,0.284375 -1.35756,0.501041 -2.06172,0.65 -0.70417,0.148958 -1.41849,0.223437 -2.14297,0.223437 -1.81458,0 -3.25338,-0.528125 -4.3164,-1.584375 -1.05625,-1.056248 -1.58438,-2.484892 -1.58438,-4.285938 0,-1.861972 0.50104,-3.338012 1.50313,-4.428125 1.00885,-1.096864 2.3664,-1.645301 4.07265,-1.645313 1.5302,1.2e-5 2.7388,0.494282 3.62579,1.482813 0.89374,0.98178 1.34061,2.319018 1.34062,4.011719 m -1.86875,-0.548438 c -0.0136,-1.022388 -0.30131,-1.838272 -0.86328,-2.447656 -0.55522,-0.609365 -1.29324,-0.914052 -2.21406,-0.914062 -1.04272,10e-6 -1.87891,0.294541 -2.5086,0.883593 -0.62292,0.589071 -0.98177,1.418498 -1.07656,2.488282 l 6.6625,-0.01016"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4907"
+ inkscape:connector-curvature="0" /><path
+ d="m -274.19029,-64.977547 0,1.767188 c -0.52813,-0.270824 -1.07657,-0.473949 -1.64531,-0.609375 -0.56876,-0.135407 -1.15782,-0.203115 -1.76719,-0.203125 -0.92761,1e-5 -1.625,0.142197 -2.09219,0.426563 -0.46042,0.284384 -0.69062,0.710946 -0.69062,1.279687 0,0.433341 0.16588,0.775268 0.49765,1.025781 0.33177,0.243758 0.9987,0.477351 2.00079,0.700782 l 0.63984,0.142187 c 1.32708,0.284381 2.26822,0.687246 2.82344,1.208594 0.56197,0.514588 0.84296,1.235681 0.84297,2.163281 -10e-6,1.056253 -0.4198,1.89245 -1.25938,2.508594 -0.83282,0.616146 -1.98047,0.924219 -3.44297,0.924219 -0.60938,0 -1.24584,-0.06094 -1.90937,-0.182812 -0.65678,-0.115105 -1.35079,-0.291146 -2.08203,-0.528125 l 0,-1.929688 c 0.69062,0.358856 1.37109,0.629689 2.0414,0.8125 0.67031,0.176043 1.33385,0.264064 1.99063,0.264063 0.8802,1e-6 1.55728,-0.148957 2.03125,-0.446876 0.47395,-0.304685 0.71093,-0.731247 0.71093,-1.279687 0,-0.507809 -0.17266,-0.897132 -0.51796,-1.167969 -0.33855,-0.270829 -1.08673,-0.531506 -2.24454,-0.782031 l -0.65,-0.152344 c -1.15781,-0.243745 -1.99401,-0.61614 -2.50859,-1.117188 -0.51458,-0.507805 -0.77188,-1.201815 -0.77187,-2.082031 -1e-5,-1.069782 0.37916,-1.895823 1.1375,-2.478125 0.75833,-0.58228 1.83489,-0.873426 3.22968,-0.873438 0.69062,1.2e-5 1.34062,0.05079 1.95,0.152344 0.60937,0.101574 1.17135,0.253918 1.68594,0.457031"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4909"
+ inkscape:connector-curvature="0" /><path
+ d="m -270.59497,-65.312703 1.86875,0 0,11.375001 -1.86875,0 0,-11.375001 m 0,-4.428125 1.86875,0 0,2.366406 -1.86875,0 0,-2.366406"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4911"
+ inkscape:connector-curvature="0" /><path
+ d="m -257.34106,-59.757234 c -10e-6,-1.354159 -0.281,-2.403637 -0.84297,-3.148437 -0.55522,-0.744782 -1.33725,-1.117178 -2.3461,-1.117188 -1.00209,1e-5 -1.78412,0.372406 -2.34609,1.117188 -0.55521,0.7448 -0.83282,1.794278 -0.83281,3.148437 -1e-5,1.347401 0.2776,2.393493 0.83281,3.138282 0.56197,0.744793 1.344,1.117189 2.34609,1.117187 1.00885,2e-6 1.79088,-0.372394 2.3461,-1.117187 0.56197,-0.744789 0.84296,-1.790881 0.84297,-3.138282 m 1.86875,4.407813 c -2e-5,1.936458 -0.42996,3.375259 -1.28985,4.316406 -0.8599,0.947913 -2.17683,1.421871 -3.95078,1.421876 -0.65678,-5e-6 -1.27631,-0.05079 -1.85859,-0.152344 -0.5823,-0.0948 -1.14766,-0.243754 -1.6961,-0.446875 l 0,-1.817969 c 0.54844,0.297914 1.0901,0.517966 1.625,0.660156 0.53489,0.142185 1.07995,0.213279 1.63516,0.213281 1.22551,-2e-6 2.14296,-0.321617 2.75234,-0.964843 0.60937,-0.63646 0.91406,-1.601303 0.91407,-2.894532 l 0,-0.924219 c -0.38595,0.670314 -0.88022,1.171356 -1.48282,1.503126 -0.60261,0.331771 -1.3237,0.497656 -2.16328,0.497656 -1.39479,0 -2.51875,-0.53151 -3.37187,-1.594532 -0.85313,-1.063018 -1.27969,-2.47135 -1.27969,-4.225 0,-1.760409 0.42656,-3.172126 1.27969,-4.235156 0.85312,-1.06301 1.97708,-1.59452 3.37187,-1.594532 0.83958,1.2e-5 1.56067,0.165897 2.16328,0.497657 0.6026,0.331781 1.09687,0.832823 1.48282,1.503125 l 0,-1.726563 1.86875,0 0,9.963282"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4913"
+ inkscape:connector-curvature="0" /><path
+ d="m -242.16763,-60.803328 0,6.865626 -1.86875,0 0,-6.804688 c -1e-5,-1.076555 -0.2099,-1.882283 -0.62968,-2.417188 -0.4198,-0.534886 -1.04949,-0.802333 -1.88907,-0.802343 -1.00886,10e-6 -1.80443,0.321624 -2.38672,0.964843 -0.58229,0.643238 -0.87344,1.52006 -0.87343,2.630469 l 0,6.428907 -1.87891,0 0,-11.375001 1.87891,0 0,1.767188 c 0.44687,-0.683844 0.97161,-1.195042 1.57422,-1.533594 0.60936,-0.33853 1.31015,-0.507801 2.10234,-0.507813 1.30676,1.2e-5 2.2953,0.406262 2.96562,1.21875 0.67031,0.805739 1.00546,1.994019 1.00547,3.564844"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4915"
+ inkscape:connector-curvature="0" /><path
+ d="m -233.81919,-69.100984 12.82734,0 0,1.726562 -5.38281,0 0,13.43672 -2.06172,0 0,-13.43672 -5.38281,0 0,-1.726562"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4917"
+ inkscape:connector-curvature="0" /><path
+ d="m -212.86684,-60.09239 0,0.914063 -8.59219,0 c 0.0813,1.286462 0.46718,2.268232 1.15781,2.945312 0.69739,0.670314 1.66562,1.00547 2.90469,1.005469 0.7177,10e-7 1.41171,-0.08802 2.08203,-0.264063 0.67708,-0.176039 1.34739,-0.440102 2.01094,-0.792187 l 0,1.767188 c -0.67032,0.284375 -1.35756,0.501041 -2.06172,0.65 -0.70417,0.148958 -1.4185,0.223437 -2.14297,0.223437 -1.81459,0 -3.25339,-0.528125 -4.31641,-1.584375 -1.05625,-1.056248 -1.58437,-2.484892 -1.58437,-4.285938 0,-1.861972 0.50104,-3.338012 1.50312,-4.428125 1.00886,-1.096864 2.36641,-1.645301 4.07266,-1.645313 1.5302,1.2e-5 2.73879,0.494282 3.62578,1.482813 0.89374,0.98178 1.34062,2.319018 1.34063,4.011719 m -1.86875,-0.548438 c -0.0136,-1.022388 -0.30131,-1.838272 -0.86328,-2.447656 -0.55522,-0.609365 -1.29324,-0.914052 -2.21407,-0.914062 -1.04271,10e-6 -1.87891,0.294541 -2.50859,0.883593 -0.62292,0.589071 -0.98177,1.418498 -1.07656,2.488282 l 6.6625,-0.01016"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4919"
+ inkscape:connector-curvature="0" /><path
+ d="m -200.9231,-63.129109 c 0.46718,-0.839573 1.02577,-1.459104 1.67579,-1.858594 0.64998,-0.399468 1.41509,-0.599207 2.29531,-0.599219 1.18488,1.2e-5 2.09894,0.416418 2.74219,1.249219 0.64321,0.826052 0.96482,2.004175 0.96484,3.534375 l 0,6.865626 -1.87891,0 0,-6.804688 c -10e-6,-1.090096 -0.19298,-1.89921 -0.5789,-2.427344 -0.38596,-0.528115 -0.97502,-0.792177 -1.76719,-0.792187 -0.96824,10e-6 -1.73335,0.321624 -2.29531,0.964843 -0.56199,0.643238 -0.84298,1.52006 -0.84297,2.630469 l 0,6.428907 -1.87891,0 0,-6.804688 c -1e-5,-1.096867 -0.19298,-1.905981 -0.5789,-2.427344 -0.38595,-0.528115 -0.98178,-0.792177 -1.7875,-0.792187 -0.9547,10e-6 -1.71303,0.325009 -2.275,0.975 -0.56199,0.643237 -0.84298,1.516674 -0.84297,2.620312 l 0,6.428907 -1.87891,0 0,-11.375001 1.87891,0 0,1.767188 c 0.42656,-0.697386 0.93775,-1.211969 1.53359,-1.54375 0.59583,-0.33176 1.30338,-0.497645 2.12266,-0.497657 0.82603,1.2e-5 1.52681,0.209908 2.10234,0.629688 0.58228,0.419802 1.01223,1.029177 1.28984,1.828125"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4921"
+ inkscape:connector-curvature="0" /><path
+ d="m -187.69965,-55.643952 0,6.032813 -1.87891,0 0,-15.701564 1.87891,0 0,1.726563 c 0.3927,-0.677073 0.88697,-1.178114 1.48281,-1.503125 0.6026,-0.33176 1.32031,-0.497645 2.15313,-0.497657 1.38124,1.2e-5 2.50181,0.548449 3.36171,1.645313 0.86666,1.096884 1.29999,2.53907 1.3,4.326563 -1e-5,1.787504 -0.43334,3.22969 -1.3,4.326562 -0.8599,1.096876 -1.98047,1.645313 -3.36171,1.645313 -0.83282,0 -1.55053,-0.1625 -2.15313,-0.4875 -0.59584,-0.33177 -1.09011,-0.836197 -1.48281,-1.513281 m 6.35781,-3.971094 c -1e-5,-1.374472 -0.28438,-2.451034 -0.85312,-3.229688 -0.56199,-0.785407 -1.33725,-1.178115 -2.32579,-1.178125 -0.98854,1e-5 -1.76719,0.392718 -2.33593,1.178125 -0.56199,0.778654 -0.84298,1.855216 -0.84297,3.229688 -1e-5,1.374483 0.28098,2.45443 0.84297,3.239844 0.56874,0.778647 1.34739,1.16797 2.33593,1.167969 0.98854,1e-6 1.7638,-0.389322 2.32579,-1.167969 0.56874,-0.785414 0.85311,-1.865361 0.85312,-3.239844"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4923"
+ inkscape:connector-curvature="0" /><path
+ d="m -176.30434,-69.740828 1.86875,0 0,15.803126 -1.86875,0 0,-15.803126"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4925"
+ inkscape:connector-curvature="0" /><path
+ d="m -165.36607,-59.655671 c -1.5099,5e-6 -2.55599,0.172662 -3.13828,0.517969 -0.5823,0.345317 -0.87344,0.934379 -0.87344,1.767187 0,0.663545 0.21666,1.191669 0.65,1.584375 0.4401,0.385939 1.03593,0.578908 1.7875,0.578907 1.03593,1e-6 1.86536,-0.365624 2.48828,-1.096876 0.62968,-0.738017 0.94452,-1.716402 0.94453,-2.935156 l 0,-0.416406 -1.85859,0 m 3.72734,-0.771875 0,6.489844 -1.86875,0 0,-1.726563 c -0.42657,0.690626 -0.95808,1.201824 -1.59453,1.533594 -0.63646,0.325 -1.41511,0.4875 -2.33594,0.4875 -1.16458,0 -2.09219,-0.325 -2.78281,-0.975 -0.68385,-0.656769 -1.02578,-1.533592 -1.02578,-2.630469 0,-1.279683 0.42656,-2.244526 1.27969,-2.894531 0.85989,-0.649993 2.13958,-0.974993 3.83906,-0.975 l 2.62031,0 0,-0.182813 c -1e-5,-0.859887 -0.28438,-1.523429 -0.85312,-1.990625 -0.56199,-0.473948 -1.35417,-0.710927 -2.37656,-0.710937 -0.65001,10e-6 -1.28308,0.07787 -1.89922,0.233593 -0.61615,0.155739 -1.2086,0.389333 -1.77735,0.700782 l 0,-1.726563 c 0.68385,-0.264051 1.3474,-0.460405 1.99063,-0.589063 0.64322,-0.135405 1.26952,-0.203113 1.8789,-0.203125 1.64531,1.2e-5 2.87421,0.426574 3.68672,1.279688 0.81249,0.853135 1.21874,2.146363 1.21875,3.879688"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4927"
+ inkscape:connector-curvature="0" /><path
+ d="m -155.93091,-68.54239 0,3.229687 3.84922,0 0,1.452344 -3.84922,0 0,6.175 c 0,0.927607 0.12526,1.52344 0.37578,1.7875 0.25729,0.264065 0.77526,0.396096 1.55391,0.396094 l 1.91953,0 0,1.564063 -1.91953,0 c -1.44219,0 -2.4375,-0.267448 -2.98594,-0.802344 -0.54844,-0.541665 -0.82266,-1.523435 -0.82265,-2.945313 l 0,-6.175 -1.3711,0 0,-1.452344 1.3711,0 0,-3.229687 1.8789,0"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4929"
+ inkscape:connector-curvature="0" /><path
+ d="m -139.88404,-60.09239 0,0.914063 -8.59219,0 c 0.0812,1.286462 0.46719,2.268232 1.15782,2.945312 0.69739,0.670314 1.66562,1.00547 2.90468,1.005469 0.7177,10e-7 1.41171,-0.08802 2.08203,-0.264063 0.67708,-0.176039 1.34739,-0.440102 2.01094,-0.792187 l 0,1.767188 c -0.67032,0.284375 -1.35756,0.501041 -2.06172,0.65 -0.70417,0.148958 -1.41849,0.223437 -2.14297,0.223437 -1.81458,0 -3.25338,-0.528125 -4.3164,-1.584375 -1.05625,-1.056248 -1.58438,-2.484892 -1.58438,-4.285938 0,-1.861972 0.50104,-3.338012 1.50313,-4.428125 1.00885,-1.096864 2.3664,-1.645301 4.07265,-1.645313 1.5302,1.2e-5 2.7388,0.494282 3.62579,1.482813 0.89374,0.98178 1.34061,2.319018 1.34062,4.011719 m -1.86875,-0.548438 c -0.0136,-1.022388 -0.30131,-1.838272 -0.86328,-2.447656 -0.55522,-0.609365 -1.29324,-0.914052 -2.21406,-0.914062 -1.04272,10e-6 -1.87891,0.294541 -2.5086,0.883593 -0.62292,0.589071 -0.98177,1.418498 -1.07656,2.488282 l 6.6625,-0.01016"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4931"
+ inkscape:connector-curvature="0" /><path
+ d="m -131.1395,-60.468171 5.47422,0 0,1.665625 -5.47422,0 0,-1.665625"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4933"
+ inkscape:connector-curvature="0" /><path
+ d="m -115.97623,-69.100984 2.05156,0 0,15.163282 -2.05156,0 0,-15.163282"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4935"
+ inkscape:connector-curvature="0" /><path
+ d="m -100.46761,-60.803328 0,6.865626 -1.86875,0 0,-6.804688 c -1e-5,-1.076555 -0.20991,-1.882283 -0.62969,-2.417188 -0.4198,-0.534886 -1.04949,-0.802333 -1.88906,-0.802343 -1.00886,10e-6 -1.80444,0.321624 -2.38672,0.964843 -0.5823,0.643238 -0.87344,1.52006 -0.87344,2.630469 l 0,6.428907 -1.87891,0 0,-11.375001 1.87891,0 0,1.767188 c 0.44687,-0.683844 0.97161,-1.195042 1.57422,-1.533594 0.60937,-0.33853 1.31015,-0.507801 2.10234,-0.507813 1.30676,1.2e-5 2.2953,0.406262 2.96563,1.21875 0.6703,0.805739 1.00545,1.994019 1.00547,3.564844"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4937"
+ inkscape:connector-curvature="0" /><path
+ d="m -96.791052,-69.740828 1.878906,0 0,9.333594 5.575782,-4.905469 2.386719,0 -6.032813,5.321875 6.286719,6.053126 -2.4375,0 -5.778907,-5.555469 0,5.555469 -1.878906,0 0,-15.803126"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4939"
+ inkscape:connector-curvature="0" /><path
+ d="m -77.402783,-64.977547 0,1.767188 c -0.528133,-0.270824 -1.07657,-0.473949 -1.645312,-0.609375 -0.568757,-0.135407 -1.157819,-0.203115 -1.767188,-0.203125 -0.927609,1e-5 -1.625004,0.142197 -2.092187,0.426563 -0.46042,0.284384 -0.690629,0.710946 -0.690626,1.279687 -3e-6,0.433341 0.165883,0.775268 0.497657,1.025781 0.331767,0.243758 0.998693,0.477351 2.000781,0.700782 l 0.639844,0.142187 c 1.327076,0.284381 2.268221,0.687246 2.823438,1.208594 0.561969,0.514588 0.842959,1.235681 0.842968,2.163281 -9e-6,1.056253 -0.419801,1.89245 -1.259375,2.508594 -0.83282,0.616146 -1.980475,0.924219 -3.442969,0.924219 -0.609379,0 -1.245837,-0.06094 -1.909375,-0.182812 -0.656773,-0.115105 -1.350783,-0.291146 -2.082031,-0.528125 l 0,-1.929688 c 0.690623,0.358856 1.371091,0.629689 2.041406,0.8125 0.670309,0.176043 1.33385,0.264064 1.990625,0.264063 0.880203,1e-6 1.557285,-0.148957 2.03125,-0.446876 0.473951,-0.304685 0.71093,-0.731247 0.710938,-1.279687 -8e-6,-0.507809 -0.172664,-0.897132 -0.517969,-1.167969 -0.338549,-0.270829 -1.086725,-0.531506 -2.244531,-0.782031 l -0.65,-0.152344 c -1.157816,-0.243745 -1.994013,-0.61614 -2.508594,-1.117188 -0.514585,-0.507805 -0.771876,-1.201815 -0.771875,-2.082031 -10e-7,-1.069782 0.379165,-1.895823 1.1375,-2.478125 0.75833,-0.58228 1.834892,-0.873426 3.229688,-0.873438 0.690618,1.2e-5 1.340618,0.05079 1.95,0.152344 0.609367,0.101574 1.171345,0.253918 1.685937,0.457031"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4941"
+ inkscape:connector-curvature="0" /><path
+ d="m -65.621514,-64.875984 0,1.746875 c -0.528135,-0.291136 -1.059645,-0.507803 -1.594532,-0.65 -0.528133,-0.148948 -1.063028,-0.223427 -1.604687,-0.223437 -1.211985,10e-6 -2.15313,0.385947 -2.823438,1.157812 -0.670316,0.765112 -1.005472,1.841674 -1.005469,3.229688 -3e-6,1.388025 0.335153,2.467972 1.005469,3.239844 0.670308,0.765106 1.611453,1.147657 2.823438,1.147656 0.541659,10e-7 1.076554,-0.07109 1.604687,-0.213281 0.534887,-0.148957 1.066397,-0.369009 1.594532,-0.660157 l 0,1.726563 c -0.521364,0.24375 -1.06303,0.426563 -1.625,0.548438 -0.555217,0.121874 -1.147664,0.182812 -1.777344,0.182812 -1.713026,0 -3.073962,-0.538281 -4.082813,-1.614844 -1.008856,-1.07656 -1.513282,-2.528902 -1.513281,-4.357031 -10e-7,-1.855201 0.507811,-3.314314 1.523437,-4.377344 1.022392,-1.06301 2.420568,-1.59452 4.194532,-1.594532 0.575513,1.2e-5 1.137492,0.06095 1.685937,0.182813 0.548429,0.115115 1.079939,0.291157 1.594532,0.528125"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4943"
+ inkscape:connector-curvature="0" /><path
+ d="m -57.181683,-59.655671 c -1.509901,5e-6 -2.555994,0.172662 -3.138281,0.517969 -0.582295,0.345317 -0.873441,0.934379 -0.873438,1.767187 -3e-6,0.663545 0.216663,1.191669 0.65,1.584375 0.4401,0.385939 1.035933,0.578908 1.7875,0.578907 1.035931,1e-6 1.865357,-0.365624 2.488282,-1.096876 0.629678,-0.738017 0.944522,-1.716402 0.944531,-2.935156 l 0,-0.416406 -1.858594,0 m 3.727344,-0.771875 0,6.489844 -1.86875,0 0,-1.726563 c -0.426571,0.690626 -0.958081,1.201824 -1.594531,1.533594 -0.636466,0.325 -1.415111,0.4875 -2.335938,0.4875 -1.164587,0 -2.092191,-0.325 -2.782813,-0.975 -0.683856,-0.656769 -1.025782,-1.533592 -1.025781,-2.630469 -1e-6,-1.279683 0.426561,-2.244526 1.279688,-2.894531 0.859892,-0.649993 2.139578,-0.974993 3.839062,-0.975 l 2.620313,0 0,-0.182813 c -9e-6,-0.859887 -0.284384,-1.523429 -0.853125,-1.990625 -0.561987,-0.473948 -1.354174,-0.710927 -2.376563,-0.710937 -0.650005,10e-6 -1.283077,0.07787 -1.899219,0.233593 -0.616149,0.155739 -1.208596,0.389333 -1.777343,0.700782 l 0,-1.726563 c 0.683851,-0.264051 1.347392,-0.460405 1.990625,-0.589063 0.643224,-0.135405 1.269526,-0.203113 1.878906,-0.203125 1.645305,1.2e-5 2.87421,0.426574 3.686719,1.279688 0.81249,0.853135 1.218739,2.146363 1.21875,3.879688"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4945"
+ inkscape:connector-curvature="0" /><path
+ d="m -47.787146,-55.643952 0,6.032813 -1.878906,0 0,-15.701564 1.878906,0 0,1.726563 c 0.392704,-0.677073 0.886975,-1.178114 1.482813,-1.503125 0.602598,-0.33176 1.320306,-0.497645 2.153125,-0.497657 1.381241,1.2e-5 2.501813,0.548449 3.361719,1.645313 0.866655,1.096884 1.299988,2.53907 1.3,4.326563 -1.2e-5,1.787504 -0.433345,3.22969 -1.3,4.326562 -0.859906,1.096876 -1.980478,1.645313 -3.361719,1.645313 -0.832819,0 -1.550527,-0.1625 -2.153125,-0.4875 -0.595838,-0.33177 -1.090109,-0.836197 -1.482813,-1.513281 m 6.357813,-3.971094 c -1e-5,-1.374472 -0.284385,-2.451034 -0.853125,-3.229688 -0.561988,-0.785407 -1.337248,-1.178115 -2.325781,-1.178125 -0.988548,1e-5 -1.767193,0.392718 -2.335938,1.178125 -0.561983,0.778654 -0.842973,1.855216 -0.842969,3.229688 -4e-6,1.374483 0.280986,2.45443 0.842969,3.239844 0.568745,0.778647 1.34739,1.16797 2.335938,1.167969 0.988533,1e-6 1.763793,-0.389322 2.325781,-1.167969 0.56874,-0.785414 0.853115,-1.865361 0.853125,-3.239844"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4947"
+ inkscape:connector-curvature="0" /><path
+ d="m -26.662145,-60.09239 0,0.914063 -8.592188,0 c 0.08125,1.286462 0.467184,2.268232 1.157812,2.945312 0.697391,0.670314 1.665619,1.00547 2.904688,1.005469 0.7177,10e-7 1.41171,-0.08802 2.082031,-0.264063 0.677074,-0.176039 1.347386,-0.440102 2.010938,-0.792187 l 0,1.767188 c -0.670323,0.284375 -1.357562,0.501041 -2.061719,0.65 -0.704175,0.148958 -1.418497,0.223437 -2.142969,0.223437 -1.814589,0 -3.253389,-0.528125 -4.316406,-1.584375 -1.056252,-1.056248 -1.584377,-2.484892 -1.584375,-4.285938 -2e-6,-1.861972 0.50104,-3.338012 1.503125,-4.428125 1.00885,-1.096864 2.366401,-1.645301 4.072656,-1.645313 1.5302,1.2e-5 2.738793,0.494282 3.625782,1.482813 0.893738,0.98178 1.340613,2.319018 1.340625,4.011719 m -1.86875,-0.548438 c -0.01355,-1.022388 -0.301312,-1.838272 -0.863282,-2.447656 -0.555217,-0.609365 -1.293237,-0.914052 -2.214062,-0.914062 -1.042714,10e-6 -1.878912,0.294541 -2.508594,0.883593 -0.622921,0.589071 -0.981774,1.418498 -1.076563,2.488282 l 6.662501,-0.01016"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4949"
+ inkscape:connector-curvature="0" /></g><g
+ style="font-size:9.60000038px"
+ id="text5819"><path
+ d="m -393.83092,-40.21505 0,5.697657 2.57969,0 c 0.95468,8e-6 1.6927,-0.247128 2.21406,-0.741406 0.52134,-0.494262 0.78202,-1.198428 0.78203,-2.112501 -1e-5,-0.90728 -0.26069,-1.60806 -0.78203,-2.102343 -0.52136,-0.494258 -1.25938,-0.741393 -2.21406,-0.741407 l -2.57969,0 m -2.05156,-1.685937 4.63125,0 c 1.69947,1.5e-5 2.98254,0.385952 3.84922,1.157812 0.87342,0.765118 1.31014,1.889075 1.31015,3.371875 -10e-6,1.496364 -0.43673,2.627092 -1.31015,3.392188 -0.86668,0.765111 -2.14975,1.147663 -3.84922,1.147656 l -2.57969,0 0,6.093751 -2.05156,0 0,-15.163282"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4952"
+ inkscape:connector-curvature="0" /><path
+ d="m -382.79108,-28.464268 3.35157,0 0,-11.567969 -3.6461,0.73125 0,-1.86875 3.62578,-0.73125 2.05157,0 0,13.436719 3.35156,0 0,1.726563 -8.73438,0 0,-1.726563"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4954"
+ inkscape:connector-curvature="0" /><path
+ d="m -363.46373,-41.900987 3.05703,0 3.86953,10.31875 3.88984,-10.31875 3.05704,0 0,15.163282 -2.00079,0 0,-13.314845 -3.91015,10.400001 -2.06172,0 -3.91016,-10.400001 0,13.314845 -1.99062,0 0,-15.163282"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4956"
+ inkscape:connector-curvature="0" /><path
+ d="m -340.4192,-32.455674 c -1.5099,5e-6 -2.55599,0.172662 -3.13828,0.517968 -0.58229,0.345318 -0.87344,0.93438 -0.87344,1.767188 0,0.663545 0.21667,1.191669 0.65,1.584375 0.4401,0.385939 1.03594,0.578908 1.7875,0.578906 1.03593,2e-6 1.86536,-0.365623 2.48829,-1.096875 0.62967,-0.738017 0.94452,-1.716402 0.94453,-2.935156 l 0,-0.416406 -1.8586,0 m 3.72735,-0.771875 0,6.489844 -1.86875,0 0,-1.726563 c -0.42657,0.690626 -0.95808,1.201824 -1.59453,1.533594 -0.63647,0.325 -1.41512,0.4875 -2.33594,0.4875 -1.16459,0 -2.09219,-0.325 -2.78282,-0.975 -0.68385,-0.65677 -1.02578,-1.533592 -1.02578,-2.630469 0,-1.279683 0.42656,-2.244526 1.27969,-2.894531 0.85989,-0.649994 2.13958,-0.974993 3.83906,-0.975 l 2.62032,0 0,-0.182813 c -10e-6,-0.859888 -0.28439,-1.523429 -0.85313,-1.990625 -0.56199,-0.473949 -1.35417,-0.710927 -2.37656,-0.710938 -0.65001,1.1e-5 -1.28308,0.07787 -1.89922,0.233594 -0.61615,0.155739 -1.2086,0.389333 -1.77734,0.700782 l 0,-1.726563 c 0.68385,-0.264051 1.34739,-0.460405 1.99062,-0.589063 0.64323,-0.135405 1.26953,-0.203113 1.87891,-0.203125 1.6453,1.2e-5 2.87421,0.426574 3.68672,1.279688 0.81249,0.853135 1.21874,2.146362 1.21875,3.879688"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4958"
+ inkscape:connector-curvature="0" /><path
+ d="m -330.98404,-41.342394 0,3.229688 3.84922,0 0,1.452344 -3.84922,0 0,6.175 c -1e-5,0.927607 0.12525,1.52344 0.37578,1.7875 0.25729,0.264065 0.77525,0.396096 1.5539,0.396094 l 1.91954,0 0,1.564063 -1.91954,0 c -1.44219,0 -2.4375,-0.267448 -2.98593,-0.802344 -0.54844,-0.541665 -0.82266,-1.523435 -0.82266,-2.945313 l 0,-6.175 -1.37109,0 0,-1.452344 1.37109,0 0,-3.229688 1.87891,0"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4960"
+ inkscape:connector-curvature="0" /><path
+ d="m -314.93717,-32.892393 0,0.914062 -8.59219,0 c 0.0813,1.286463 0.46719,2.268233 1.15781,2.945313 0.6974,0.670314 1.66562,1.00547 2.90469,1.005469 0.7177,1e-6 1.41171,-0.08802 2.08203,-0.264063 0.67708,-0.17604 1.34739,-0.440102 2.01094,-0.792187 l 0,1.767187 c -0.67032,0.284376 -1.35756,0.501042 -2.06172,0.650001 -0.70417,0.148958 -1.41849,0.223437 -2.14297,0.223437 -1.81458,0 -3.25339,-0.528125 -4.3164,-1.584375 -1.05625,-1.056248 -1.58438,-2.484892 -1.58438,-4.285938 0,-1.861972 0.50104,-3.338012 1.50313,-4.428125 1.00885,-1.096864 2.3664,-1.645301 4.07265,-1.645313 1.5302,1.2e-5 2.7388,0.494282 3.62579,1.482813 0.89373,0.98178 1.34061,2.319018 1.34062,4.011719 m -1.86875,-0.548438 c -0.0136,-1.022388 -0.30131,-1.838272 -0.86328,-2.447656 -0.55522,-0.609365 -1.29324,-0.914052 -2.21406,-0.914063 -1.04272,1.1e-5 -1.87892,0.294542 -2.5086,0.883594 -0.62292,0.589071 -0.98177,1.418498 -1.07656,2.488282 l 6.6625,-0.01016"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4962"
+ inkscape:connector-curvature="0" /><path
+ d="m -305.27857,-36.365831 c -0.2099,-0.121865 -0.44011,-0.209886 -0.69062,-0.264062 -0.24376,-0.06093 -0.51459,-0.0914 -0.8125,-0.09141 -1.05626,10e-6 -1.86876,0.345323 -2.4375,1.035938 -0.56199,0.683862 -0.84298,1.669018 -0.84297,2.955469 l 0,5.992188 -1.87891,0 0,-11.375001 1.87891,0 0,1.767188 c 0.3927,-0.690615 0.9039,-1.201812 1.53359,-1.533594 0.62968,-0.33853 1.39479,-0.507801 2.29531,-0.507813 0.12864,1.2e-5 0.27083,0.01017 0.42657,0.03047 0.15572,0.01355 0.32837,0.03725 0.51797,0.07109 l 0.0102,1.919531"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4964"
+ inkscape:connector-curvature="0" /><path
+ d="m -303.29811,-38.112706 1.86875,0 0,11.375001 -1.86875,0 0,-11.375001 m 0,-4.428125 1.86875,0 0,2.366406 -1.86875,0 0,-2.366406"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4966"
+ inkscape:connector-curvature="0" /><path
+ d="m -292.35982,-32.455674 c -1.5099,5e-6 -2.556,0.172662 -3.13828,0.517968 -0.5823,0.345318 -0.87344,0.93438 -0.87344,1.767188 0,0.663545 0.21666,1.191669 0.65,1.584375 0.4401,0.385939 1.03593,0.578908 1.7875,0.578906 1.03593,2e-6 1.86536,-0.365623 2.48828,-1.096875 0.62968,-0.738017 0.94452,-1.716402 0.94453,-2.935156 l 0,-0.416406 -1.85859,0 m 3.72734,-0.771875 0,6.489844 -1.86875,0 0,-1.726563 c -0.42657,0.690626 -0.95808,1.201824 -1.59453,1.533594 -0.63646,0.325 -1.41511,0.4875 -2.33594,0.4875 -1.16458,0 -2.09219,-0.325 -2.78281,-0.975 -0.68386,-0.65677 -1.02578,-1.533592 -1.02578,-2.630469 0,-1.279683 0.42656,-2.244526 1.27969,-2.894531 0.85989,-0.649994 2.13958,-0.974993 3.83906,-0.975 l 2.62031,0 0,-0.182813 c -10e-6,-0.859888 -0.28438,-1.523429 -0.85312,-1.990625 -0.56199,-0.473949 -1.35418,-0.710927 -2.37657,-0.710938 -0.65,1.1e-5 -1.28307,0.07787 -1.89921,0.233594 -0.61615,0.155739 -1.2086,0.389333 -1.77735,0.700782 l 0,-1.726563 c 0.68385,-0.264051 1.34739,-0.460405 1.99063,-0.589063 0.64322,-0.135405 1.26952,-0.203113 1.8789,-0.203125 1.64531,1.2e-5 2.87421,0.426574 3.68672,1.279688 0.81249,0.853135 1.21874,2.146362 1.21875,3.879688"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4968"
+ inkscape:connector-curvature="0" /><path
+ d="m -284.7731,-42.540831 1.86875,0 0,15.803126 -1.86875,0 0,-15.803126"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4970"
+ inkscape:connector-curvature="0" /><path
+ d="m -263.21139,-41.403331 0,2.000781 c -0.77865,-0.372382 -1.51329,-0.649986 -2.2039,-0.832812 -0.69064,-0.182799 -1.35756,-0.274205 -2.00078,-0.274219 -1.1172,1.4e-5 -1.98048,0.21668 -2.58985,0.65 -0.60261,0.433346 -0.90391,1.049491 -0.9039,1.848438 -10e-6,0.670323 0.19973,1.178135 0.59922,1.523437 0.40624,0.338551 1.17134,0.61277 2.29531,0.822657 l 1.23906,0.253906 c 1.5302,0.291154 2.65754,0.805737 3.38203,1.54375 0.73124,0.731256 1.09687,1.713026 1.09688,2.945313 -10e-6,1.469273 -0.49429,2.583074 -1.48282,3.341406 -0.98178,0.758333 -2.42396,1.1375 -4.32656,1.1375 -0.71771,0 -1.48282,-0.08125 -2.29531,-0.24375 -0.80573,-0.1625 -1.64193,-0.402864 -2.50859,-0.721094 l 0,-2.1125 c 0.83281,0.46719 1.64869,0.819273 2.44765,1.05625 0.79896,0.236981 1.58437,0.35547 2.35625,0.355469 1.17135,1e-6 2.07525,-0.230207 2.71172,-0.690625 0.63645,-0.460414 0.95468,-1.117184 0.95469,-1.970313 -10e-6,-0.744787 -0.23022,-1.327078 -0.69063,-1.746875 -0.45365,-0.419785 -1.20183,-0.734629 -2.24453,-0.944531 l -1.24922,-0.24375 c -1.53021,-0.30468 -2.63724,-0.782024 -3.32109,-1.432031 -0.68386,-0.649991 -1.02578,-1.553897 -1.02578,-2.711719 0,-1.340613 0.47057,-2.396862 1.41172,-3.168751 0.94791,-0.77186 2.25129,-1.157797 3.91015,-1.157812 0.71093,1.5e-5 1.43541,0.06434 2.17344,0.192969 0.73801,0.128661 1.49296,0.321629 2.26484,0.578906"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4972"
+ inkscape:connector-curvature="0" /><path
+ d="m -249.72389,-33.603331 0,6.865626 -1.86875,0 0,-6.804688 c -1e-5,-1.076555 -0.2099,-1.882283 -0.62968,-2.417188 -0.4198,-0.534886 -1.04949,-0.802334 -1.88907,-0.802344 -1.00886,10e-6 -1.80443,0.321625 -2.38671,0.964844 -0.5823,0.643238 -0.87345,1.52006 -0.87344,2.630469 l 0,6.428907 -1.87891,0 0,-15.803126 1.87891,0 0,6.195313 c 0.44687,-0.683844 0.97161,-1.195042 1.57422,-1.533594 0.60937,-0.33853 1.31015,-0.507801 2.10234,-0.507813 1.30676,1.2e-5 2.2953,0.406262 2.96563,1.21875 0.6703,0.805739 1.00545,1.994019 1.00546,3.564844"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4974"
+ inkscape:connector-curvature="0" /><path
+ d="m -236.24654,-32.892393 0,0.914062 -8.59219,0 c 0.0813,1.286463 0.46718,2.268233 1.15781,2.945313 0.69739,0.670314 1.66562,1.00547 2.90469,1.005469 0.7177,1e-6 1.41171,-0.08802 2.08203,-0.264063 0.67708,-0.17604 1.34739,-0.440102 2.01094,-0.792187 l 0,1.767187 c -0.67032,0.284376 -1.35756,0.501042 -2.06172,0.650001 -0.70417,0.148958 -1.4185,0.223437 -2.14297,0.223437 -1.81459,0 -3.25339,-0.528125 -4.3164,-1.584375 -1.05626,-1.056248 -1.58438,-2.484892 -1.58438,-4.285938 0,-1.861972 0.50104,-3.338012 1.50313,-4.428125 1.00885,-1.096864 2.3664,-1.645301 4.07265,-1.645313 1.5302,1.2e-5 2.73879,0.494282 3.62578,1.482813 0.89374,0.98178 1.34062,2.319018 1.34063,4.011719 m -1.86875,-0.548438 c -0.0136,-1.022388 -0.30131,-1.838272 -0.86328,-2.447656 -0.55522,-0.609365 -1.29324,-0.914052 -2.21407,-0.914063 -1.04271,1.1e-5 -1.87891,0.294542 -2.50859,0.883594 -0.62292,0.589071 -0.98177,1.418498 -1.07656,2.488282 l 6.6625,-0.01016"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4976"
+ inkscape:connector-curvature="0" /><path
+ d="m -223.44967,-32.892393 0,0.914062 -8.59218,0 c 0.0812,1.286463 0.46718,2.268233 1.15781,2.945313 0.69739,0.670314 1.66562,1.00547 2.90469,1.005469 0.7177,1e-6 1.41171,-0.08802 2.08203,-0.264063 0.67707,-0.17604 1.34738,-0.440102 2.01093,-0.792187 l 0,1.767187 c -0.67032,0.284376 -1.35756,0.501042 -2.06171,0.650001 -0.70418,0.148958 -1.4185,0.223437 -2.14297,0.223437 -1.81459,0 -3.25339,-0.528125 -4.31641,-1.584375 -1.05625,-1.056248 -1.58438,-2.484892 -1.58437,-4.285938 -1e-5,-1.861972 0.50104,-3.338012 1.50312,-4.428125 1.00885,-1.096864 2.3664,-1.645301 4.07266,-1.645313 1.5302,1.2e-5 2.73879,0.494282 3.62578,1.482813 0.89374,0.98178 1.34061,2.319018 1.34062,4.011719 m -1.86875,-0.548438 c -0.0136,-1.022388 -0.30131,-1.838272 -0.86328,-2.447656 -0.55521,-0.609365 -1.29324,-0.914052 -2.21406,-0.914063 -1.04271,1.1e-5 -1.87891,0.294542 -2.50859,0.883594 -0.62292,0.589071 -0.98178,1.418498 -1.07657,2.488282 l 6.6625,-0.01016"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4978"
+ inkscape:connector-curvature="0" /><path
+ d="m -218.53404,-41.342394 0,3.229688 3.84922,0 0,1.452344 -3.84922,0 0,6.175 c -1e-5,0.927607 0.12525,1.52344 0.37578,1.7875 0.25729,0.264065 0.77525,0.396096 1.55391,0.396094 l 1.91953,0 0,1.564063 -1.91953,0 c -1.4422,0 -2.43751,-0.267448 -2.98594,-0.802344 -0.54844,-0.541665 -0.82266,-1.523435 -0.82266,-2.945313 l 0,-6.175 -1.37109,0 0,-1.452344 1.37109,0 0,-3.229688 1.87891,0"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4980"
+ inkscape:connector-curvature="0" /><path
+ d="m -206.5395,-33.268174 5.47421,0 0,1.665625 -5.47421,0 0,-1.665625"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4982"
+ inkscape:connector-curvature="0" /><path
+ d="m -190.83795,-28.464268 3.35157,0 0,-11.567969 -3.6461,0.73125 0,-1.86875 3.62578,-0.73125 2.05157,0 0,13.436719 3.35156,0 0,1.726563 -8.73438,0 0,-1.726563"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4984"
+ inkscape:connector-curvature="0" /><path
+ d="m -173.56215,-33.938487 c -0.97501,7e-6 -1.7435,0.260684 -2.30547,0.782031 -0.55522,0.521361 -0.83282,1.239068 -0.83282,2.153126 0,0.914065 0.2776,1.631773 0.83282,2.153125 0.56197,0.521355 1.33046,0.782032 2.30547,0.782031 0.97499,10e-7 1.74348,-0.260676 2.30546,-0.782031 0.56197,-0.528123 0.84296,-1.24583 0.84297,-2.153125 -10e-6,-0.914058 -0.281,-1.631765 -0.84297,-2.153126 -0.55521,-0.521347 -1.3237,-0.782024 -2.30546,-0.782031 m -2.05157,-0.873437 c -0.88021,-0.216659 -1.56745,-0.626294 -2.06172,-1.228907 -0.4875,-0.602594 -0.73125,-1.337229 -0.73125,-2.203906 0,-1.211967 0.42995,-2.170039 1.28985,-2.874219 0.86666,-0.704152 2.05156,-1.056235 3.55469,-1.05625 1.50988,1.5e-5 2.69478,0.352098 3.55468,1.05625 0.85989,0.70418 1.28984,1.662252 1.28985,2.874219 -1e-5,0.866677 -0.24715,1.601312 -0.74141,2.203906 -0.48751,0.602613 -1.16798,1.012248 -2.04141,1.228907 0.98854,0.230216 1.75702,0.680476 2.30547,1.350781 0.5552,0.670318 0.8328,1.489589 0.83282,2.457813 -2e-5,1.469273 -0.45028,2.596616 -1.35079,3.382031 -0.89376,0.785417 -2.17683,1.178125 -3.84921,1.178125 -1.67241,0 -2.95886,-0.392708 -3.85938,-1.178125 -0.89375,-0.785415 -1.34063,-1.912758 -1.34063,-3.382031 0,-0.968224 0.27761,-1.787495 0.83282,-2.457813 0.5552,-0.670305 1.32708,-1.120565 2.31562,-1.350781 m -0.75156,-3.239844 c 0,0.785427 0.24375,1.398187 0.73125,1.838281 0.49427,0.440113 1.18489,0.660165 2.07188,0.660156 0.8802,9e-6 1.56744,-0.220043 2.06171,-0.660156 0.50104,-0.440094 0.75156,-1.052854 0.75157,-1.838281 -1e-5,-0.785405 -0.25053,-1.398165 -0.75157,-1.838282 -0.49427,-0.44009 -1.18151,-0.660142 -2.06171,-0.660156 -0.88699,1.4e-5 -1.57761,0.220066 -2.07188,0.660156 -0.4875,0.440117 -0.73125,1.052877 -0.73125,1.838282"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4986"
+ inkscape:connector-curvature="0" /><path
+ d="m -164.35044,-28.464268 3.35156,0 0,-11.567969 -3.64609,0.73125 0,-1.86875 3.62578,-0.73125 2.05156,0 0,13.436719 3.35156,0 0,1.726563 -8.73437,0 0,-1.726563"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4988"
+ inkscape:connector-curvature="0" /><path
+ d="m -142.86996,-35.929112 c 0.46717,-0.839573 1.02577,-1.459104 1.67578,-1.858594 0.64998,-0.399468 1.41509,-0.599207 2.29531,-0.599219 1.18488,1.2e-5 2.09894,0.416418 2.74219,1.249219 0.64321,0.826051 0.96482,2.004175 0.96484,3.534375 l 0,6.865626 -1.8789,0 0,-6.804688 c -2e-5,-1.090096 -0.19299,-1.89921 -0.57891,-2.427344 -0.38595,-0.528115 -0.97502,-0.792178 -1.76719,-0.792188 -0.96824,10e-6 -1.73334,0.321625 -2.29531,0.964844 -0.56199,0.643238 -0.84298,1.52006 -0.84297,2.630469 l 0,6.428907 -1.87891,0 0,-6.804688 c -1e-5,-1.096867 -0.19297,-1.905981 -0.5789,-2.427344 -0.38595,-0.528115 -0.98178,-0.792178 -1.7875,-0.792188 -0.9547,10e-6 -1.71303,0.32501 -2.275,0.975001 -0.56199,0.643237 -0.84298,1.516674 -0.84297,2.620312 l 0,6.428907 -1.87891,0 0,-11.375001 1.87891,0 0,1.767188 c 0.42656,-0.697386 0.93775,-1.211969 1.53359,-1.54375 0.59583,-0.33176 1.30338,-0.497645 2.12266,-0.497657 0.82603,1.2e-5 1.52681,0.209908 2.10234,0.629688 0.58228,0.419802 1.01223,1.029177 1.28985,1.828125"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4990"
+ inkscape:connector-curvature="0" /><path
+ d="m -122.59808,-35.929112 c 0.46717,-0.839573 1.02577,-1.459104 1.67578,-1.858594 0.64999,-0.399468 1.41509,-0.599207 2.29531,-0.599219 1.18488,1.2e-5 2.09894,0.416418 2.74219,1.249219 0.64321,0.826051 0.96482,2.004175 0.96484,3.534375 l 0,6.865626 -1.8789,0 0,-6.804688 c -2e-5,-1.090096 -0.19299,-1.89921 -0.57891,-2.427344 -0.38595,-0.528115 -0.97502,-0.792178 -1.76719,-0.792188 -0.96824,10e-6 -1.73334,0.321625 -2.29531,0.964844 -0.56199,0.643238 -0.84298,1.52006 -0.84297,2.630469 l 0,6.428907 -1.87891,0 0,-6.804688 c 0,-1.096867 -0.19297,-1.905981 -0.5789,-2.427344 -0.38595,-0.528115 -0.98178,-0.792178 -1.7875,-0.792188 -0.9547,10e-6 -1.71303,0.32501 -2.275,0.975001 -0.56199,0.643237 -0.84297,1.516674 -0.84297,2.620312 l 0,6.428907 -1.87891,0 0,-11.375001 1.87891,0 0,1.767188 c 0.42656,-0.697386 0.93775,-1.211969 1.53359,-1.54375 0.59583,-0.33176 1.30338,-0.497645 2.12266,-0.497657 0.82603,1.2e-5 1.52681,0.209908 2.10234,0.629688 0.58228,0.419802 1.01223,1.029177 1.28985,1.828125"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4992"
+ inkscape:connector-curvature="0" /><path
+ d="m -95.105126,-38.112706 -4.113282,5.535157 4.326563,5.839844 -2.203906,0 -3.310939,-4.46875 -3.31094,4.46875 -2.2039,0 4.41797,-5.951563 -4.04219,-5.423438 2.2039,0 3.01641,4.052344 3.016407,-4.052344 2.203907,0"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4994"
+ inkscape:connector-curvature="0" /><path
+ d="m -85.00982,-28.464268 3.351562,0 0,-11.567969 -3.646094,0.73125 0,-1.86875 3.625782,-0.73125 2.051562,0 0,13.436719 3.351563,0 0,1.726563 -8.734375,0 0,-1.726563"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4996"
+ inkscape:connector-curvature="0" /><path
+ d="m -67.734015,-33.938487 c -0.975005,7e-6 -1.743494,0.260684 -2.305468,0.782031 -0.555213,0.521361 -0.832816,1.239068 -0.832813,2.153126 -3e-6,0.914065 0.2776,1.631773 0.832813,2.153125 0.561974,0.521355 1.330463,0.782032 2.305468,0.782031 0.974993,10e-7 1.743482,-0.260676 2.305469,-0.782031 0.56197,-0.528123 0.842959,-1.24583 0.842969,-2.153125 -1e-5,-0.914058 -0.280999,-1.631765 -0.842969,-2.153126 -0.555216,-0.521347 -1.323705,-0.782024 -2.305469,-0.782031 m -2.051562,-0.873437 c -0.880212,-0.216659 -1.567451,-0.626294 -2.061719,-1.228907 -0.487502,-0.602594 -0.731252,-1.337229 -0.73125,-2.203906 -2e-6,-1.211967 0.429946,-2.170039 1.289844,-2.874219 0.866663,-0.704152 2.051557,-1.056235 3.554687,-1.05625 1.509888,1.5e-5 2.694783,0.352098 3.554688,1.05625 0.859885,0.70418 1.289833,1.662252 1.289844,2.874219 -1.1e-5,0.866677 -0.247147,1.601312 -0.741406,2.203906 -0.487511,0.602613 -1.167979,1.012248 -2.041407,1.228907 0.988532,0.230216 1.757021,0.680476 2.305469,1.350781 0.555197,0.670318 0.832801,1.489589 0.832813,2.457813 -1.2e-5,1.469273 -0.450272,2.596616 -1.350782,3.382031 -0.893759,0.785417 -2.176831,1.178125 -3.849219,1.178125 -1.6724,0 -2.958858,-0.392708 -3.859375,-1.178125 -0.893752,-0.785415 -1.340626,-1.912758 -1.340625,-3.382031 -10e-7,-0.968224 0.277603,-1.787495 0.832813,-2.457813 0.555205,-0.670305 1.32708,-1.120565 2.315625,-1.350781 m -0.751563,-3.239844 c -3e-6,0.785427 0.243746,1.398187 0.73125,1.838281 0.494266,0.440113 1.184891,0.660165 2.071875,0.660156 0.880201,9e-6 1.56744,-0.220043 2.061719,-0.660156 0.501033,-0.440094 0.751553,-1.052854 0.751563,-1.838281 -1e-5,-0.785405 -0.25053,-1.398165 -0.751563,-1.838282 -0.494279,-0.44009 -1.181518,-0.660142 -2.061719,-0.660156 -0.886984,1.4e-5 -1.577609,0.220066 -2.071875,0.660156 -0.487504,0.440117 -0.731253,1.052877 -0.73125,1.838282"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path4998"
+ inkscape:connector-curvature="0" /><path
+ d="m -58.522302,-28.464268 3.351563,0 0,-11.567969 -3.646094,0.73125 0,-1.86875 3.625781,-0.73125 2.051563,0 0,13.436719 3.351562,0 0,1.726563 -8.734375,0 0,-1.726563"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path5000"
+ inkscape:connector-curvature="0" /><path
+ d="m -37.041839,-35.929112 c 0.467176,-0.839573 1.025769,-1.459104 1.675781,-1.858594 0.649987,-0.399468 1.415091,-0.599207 2.295313,-0.599219 1.18488,1.2e-5 2.098942,0.416418 2.742188,1.249219 0.643211,0.826051 0.964825,2.004175 0.964843,3.534375 l 0,6.865626 -1.878906,0 0,-6.804688 c -1.7e-5,-1.090096 -0.192985,-1.89921 -0.578906,-2.427344 -0.385953,-0.528115 -0.975015,-0.792178 -1.767188,-0.792188 -0.968242,10e-6 -1.733346,0.321625 -2.295312,0.964844 -0.561991,0.643238 -0.84298,1.52006 -0.842969,2.630469 l 0,6.428907 -1.878907,0 0,-6.804688 c -9e-6,-1.096867 -0.192977,-1.905981 -0.578906,-2.427344 -0.385946,-0.528115 -0.981778,-0.792178 -1.7875,-0.792188 -0.954693,10e-6 -1.713026,0.32501 -2.275,0.975001 -0.561983,0.643237 -0.842973,1.516674 -0.842969,2.620312 l 0,6.428907 -1.878906,0 0,-11.375001 1.878906,0 0,1.767188 c 0.426558,-0.697386 0.937756,-1.211969 1.533594,-1.54375 0.595827,-0.33176 1.303379,-0.497645 2.122656,-0.497657 0.826034,1.2e-5 1.526814,0.209908 2.102344,0.629688 0.582282,0.419802 1.012229,1.029177 1.289844,1.828125"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path5002"
+ inkscape:connector-curvature="0" /><path
+ d="m -16.769958,-35.929112 c 0.467176,-0.839573 1.02577,-1.459104 1.675781,-1.858594 0.649987,-0.399468 1.415091,-0.599207 2.295313,-0.599219 1.18488,1.2e-5 2.098942,0.416418 2.742188,1.249219 0.6432107,0.826051 0.964825,2.004175 0.9648435,3.534375 l 0,6.865626 -1.8789065,0 0,-6.804688 c -1.6e-5,-1.090096 -0.192985,-1.89921 -0.578906,-2.427344 -0.385953,-0.528115 -0.975015,-0.792178 -1.767188,-0.792188 -0.968242,10e-6 -1.733346,0.321625 -2.295312,0.964844 -0.561991,0.643238 -0.84298,1.52006 -0.842969,2.630469 l 0,6.428907 -1.878906,0 0,-6.804688 c -10e-6,-1.096867 -0.192978,-1.905981 -0.578907,-2.427344 -0.385946,-0.528115 -0.981778,-0.792178 -1.7875,-0.792188 -0.954693,10e-6 -1.713026,0.32501 -2.275,0.975001 -0.561983,0.643237 -0.842973,1.516674 -0.842969,2.620312 l 0,6.428907 -1.878906,0 0,-11.375001 1.878906,0 0,1.767188 c 0.426559,-0.697386 0.937756,-1.211969 1.533594,-1.54375 0.595828,-0.33176 1.303379,-0.497645 2.122656,-0.497657 0.826034,1.2e-5 1.526814,0.209908 2.102344,0.629688 0.582282,0.419802 1.012229,1.029177 1.289844,1.828125"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path5004"
+ inkscape:connector-curvature="0" /><path
+ d="m 4.5886233,-41.900987 1.7265626,0 -5.2812503,17.092969 -1.72656255,0 5.28125025,-17.092969"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path5006"
+ inkscape:connector-curvature="0" /><path
+ d="m 14.663617,-41.900987 9.750001,0 0,0.873437 -5.504688,14.289845 -2.142969,0 5.179688,-13.43672 -7.282032,0 0,-1.726562"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path5008"
+ inkscape:connector-curvature="0" /><path
+ d="m 28.42536,-29.317393 2.142969,0 0,2.579688 -2.142969,0 0,-2.579688"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path5010"
+ inkscape:connector-curvature="0" /><path
+ d="m 35.402686,-28.464268 3.351562,0 0,-11.567969 -3.646094,0.73125 0,-1.86875 3.625782,-0.73125 2.051562,0 0,13.436719 3.351563,0 0,1.726563 -8.734375,0 0,-1.726563"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path5012"
+ inkscape:connector-curvature="0" /><path
+ d="m 48.666742,-41.900987 2.142969,0 0,1.746875 -1.665625,3.25 -1.310156,0 0.832812,-3.25 0,-1.746875 m 4.164063,0 2.142969,0 0,1.746875 -1.665625,3.25 -1.310157,0 0.832813,-3.25 0,-1.746875"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path5014"
+ inkscape:connector-curvature="0" /><path
+ d="m 74.86988,-38.112706 -4.113282,5.535157 4.326563,5.839844 -2.203906,0 -3.310938,-4.46875 -3.310938,4.46875 -2.203906,0 4.417969,-5.951563 -4.042188,-5.423438 2.203907,0 3.016406,4.052344 3.016406,-4.052344 2.203907,0"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path5016"
+ inkscape:connector-curvature="0" /><path
+ d="m 84.091748,-41.900987 9.750001,0 0,0.873437 -5.504688,14.289845 -2.142969,0 5.179688,-13.43672 -7.282032,0 0,-1.726562"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path5018"
+ inkscape:connector-curvature="0" /><path
+ d="m 97.853491,-29.317393 2.142969,0 0,2.579688 -2.142969,0 0,-2.579688"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path5020"
+ inkscape:connector-curvature="0" /><path
+ d="m 104.83082,-28.464268 3.35156,0 0,-11.567969 -3.64609,0.73125 0,-1.86875 3.62578,-0.73125 2.05156,0 0,13.436719 3.35156,0 0,1.726563 -8.73437,0 0,-1.726563"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path5022"
+ inkscape:connector-curvature="0" /><path
+ d="m 118.09487,-41.900987 2.14297,0 0,1.746875 -1.66562,3.25 -1.31016,0 0.83281,-3.25 0,-1.746875 m 4.16407,0 2.14296,0 0,1.746875 -1.66562,3.25 -1.31016,0 0.83282,-3.25 0,-1.746875"
+ style="font-size:20.80000114px;font-family:HelveticaNeueLTPro-Md;fill:#f6921e"
+ id="path5024"
+ inkscape:connector-curvature="0" /></g><g
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:164.99999762%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#f6921e;fill-opacity:1"
+ id="text4741-7"><path
+ d="m -345.92125,420.07328 -2.24375,1.2125 2.24375,1.21875 -0.3625,0.6125 -2.1,-1.26875 0,2.35625 -0.7125,0 0,-2.35625 -2.1,1.26875 -0.3625,-0.6125 2.24375,-1.21875 -2.24375,-1.2125 0.3625,-0.61875 2.1,1.26875 0,-2.35625 0.7125,0 0,2.35625 2.1,-1.26875 0.3625,0.61875"
+ id="path5027"
+ inkscape:connector-curvature="0" /><path
+ d="m -343.02125,419.57328 0,7.25625 1.525,0 c 1.28749,1e-5 2.22916,-0.29166 2.825,-0.875 0.59999,-0.58333 0.89999,-1.50416 0.9,-2.7625 -10e-6,-1.24999 -0.30001,-2.16457 -0.9,-2.74375 -0.59584,-0.58332 -1.53751,-0.87499 -2.825,-0.875 l -1.525,0 m -1.2625,-1.0375 2.59375,0 c 1.80833,1e-5 3.13541,0.3771 3.98125,1.13125 0.84582,0.75001 1.26874,1.92501 1.26875,3.525 -10e-6,1.60834 -0.42501,2.78959 -1.275,3.54375 -0.85001,0.75417 -2.17501,1.13125 -3.975,1.13125 l -2.59375,0 0,-9.33125"
+ id="path5029"
+ inkscape:connector-curvature="0" /><path
+ d="m -328.49625,424.07953 0,0.5625 -5.2875,0 c 0.05,0.79167 0.2875,1.39584 0.7125,1.8125 0.42916,0.41251 1.02499,0.61876 1.7875,0.61875 0.44166,10e-6 0.86874,-0.0542 1.28125,-0.1625 0.41666,-0.10833 0.82916,-0.27083 1.2375,-0.4875 l 0,1.0875 c -0.41251,0.17501 -0.83543,0.30834 -1.26875,0.4 -0.43334,0.0917 -0.87292,0.1375 -1.31875,0.1375 -1.11667,0 -2.00209,-0.32499 -2.65625,-0.975 -0.65,-0.64999 -0.975,-1.52916 -0.975,-2.6375 0,-1.14582 0.30833,-2.05416 0.925,-2.725 0.62083,-0.67499 1.45624,-1.01249 2.50625,-1.0125 0.94166,10e-6 1.68541,0.30418 2.23125,0.9125 0.54999,0.60418 0.82499,1.42709 0.825,2.46875 m -1.15,-0.3375 c -0.008,-0.62916 -0.18542,-1.13124 -0.53125,-1.50625 -0.34167,-0.37499 -0.79584,-0.56249 -1.3625,-0.5625 -0.64167,1e-5 -1.15626,0.18126 -1.54375,0.54375 -0.38334,0.36251 -0.60417,0.87293 -0.6625,1.53125 l 4.1,-0.006"
+ id="path5031"
+ inkscape:connector-curvature="0" /><path
+ d="m -326.60875,418.14203 1.15,0 0,9.725 -1.15,0 0,-9.725"
+ id="path5033"
+ inkscape:connector-curvature="0" /><path
+ d="m -317.07125,424.07953 0,0.5625 -5.2875,0 c 0.05,0.79167 0.2875,1.39584 0.7125,1.8125 0.42916,0.41251 1.025,0.61876 1.7875,0.61875 0.44166,10e-6 0.86874,-0.0542 1.28125,-0.1625 0.41666,-0.10833 0.82916,-0.27083 1.2375,-0.4875 l 0,1.0875 c -0.41251,0.17501 -0.83542,0.30834 -1.26875,0.4 -0.43334,0.0917 -0.87292,0.1375 -1.31875,0.1375 -1.11667,0 -2.00209,-0.32499 -2.65625,-0.975 -0.65,-0.64999 -0.975,-1.52916 -0.975,-2.6375 0,-1.14582 0.30833,-2.05416 0.925,-2.725 0.62083,-0.67499 1.45625,-1.01249 2.50625,-1.0125 0.94166,10e-6 1.68541,0.30418 2.23125,0.9125 0.54999,0.60418 0.82499,1.42709 0.825,2.46875 m -1.15,-0.3375 c -0.008,-0.62916 -0.18542,-1.13124 -0.53125,-1.50625 -0.34167,-0.37499 -0.79584,-0.56249 -1.3625,-0.5625 -0.64167,1e-5 -1.15625,0.18126 -1.54375,0.54375 -0.38334,0.36251 -0.60417,0.87293 -0.6625,1.53125 l 4.1,-0.006"
+ id="path5035"
+ inkscape:connector-curvature="0" /><path
+ d="m -314.04625,418.87953 0,1.9875 2.36875,0 0,0.89375 -2.36875,0 0,3.8 c -1e-5,0.57084 0.0771,0.93751 0.23125,1.1 0.15833,0.16251 0.47708,0.24376 0.95625,0.24375 l 1.18125,0 0,0.9625 -1.18125,0 c -0.88751,0 -1.50001,-0.16458 -1.8375,-0.49375 -0.3375,-0.33333 -0.50625,-0.93749 -0.50625,-1.8125 l 0,-3.8 -0.84375,0 0,-0.89375 0.84375,0 0,-1.9875 1.15625,0"
+ id="path5037"
+ inkscape:connector-curvature="0" /><path
+ d="m -304.17125,424.07953 0,0.5625 -5.2875,0 c 0.05,0.79167 0.2875,1.39584 0.7125,1.8125 0.42916,0.41251 1.02499,0.61876 1.7875,0.61875 0.44166,10e-6 0.86874,-0.0542 1.28125,-0.1625 0.41666,-0.10833 0.82916,-0.27083 1.2375,-0.4875 l 0,1.0875 c -0.41251,0.17501 -0.83542,0.30834 -1.26875,0.4 -0.43334,0.0917 -0.87292,0.1375 -1.31875,0.1375 -1.11667,0 -2.00209,-0.32499 -2.65625,-0.975 -0.65,-0.64999 -0.975,-1.52916 -0.975,-2.6375 0,-1.14582 0.30833,-2.05416 0.925,-2.725 0.62083,-0.67499 1.45625,-1.01249 2.50625,-1.0125 0.94166,10e-6 1.68541,0.30418 2.23125,0.9125 0.54999,0.60418 0.82499,1.42709 0.825,2.46875 m -1.15,-0.3375 c -0.008,-0.62916 -0.18542,-1.13124 -0.53125,-1.50625 -0.34167,-0.37499 -0.79584,-0.56249 -1.3625,-0.5625 -0.64167,1e-5 -1.15625,0.18126 -1.54375,0.54375 -0.38334,0.36251 -0.60417,0.87293 -0.6625,1.53125 l 4.1,-0.006"
+ id="path5039"
+ inkscape:connector-curvature="0" /><path
+ d="m -297.07125,418.87953 0,1.9875 2.36875,0 0,0.89375 -2.36875,0 0,3.8 c 0,0.57084 0.0771,0.93751 0.23125,1.1 0.15833,0.16251 0.47708,0.24376 0.95625,0.24375 l 1.18125,0 0,0.9625 -1.18125,0 c -0.8875,0 -1.5,-0.16458 -1.8375,-0.49375 -0.3375,-0.33333 -0.50625,-0.93749 -0.50625,-1.8125 l 0,-3.8 -0.84375,0 0,-0.89375 0.84375,0 0,-1.9875 1.15625,0"
+ id="path5041"
+ inkscape:connector-curvature="0" /><path
+ d="m -287.365,423.64203 0,4.225 -1.15,0 0,-4.1875 c -1e-5,-0.66249 -0.12918,-1.15832 -0.3875,-1.4875 -0.25834,-0.32916 -0.64584,-0.49374 -1.1625,-0.49375 -0.62084,10e-6 -1.11042,0.19793 -1.46875,0.59375 -0.35834,0.39584 -0.53751,0.93543 -0.5375,1.61875 l 0,3.95625 -1.15625,0 0,-9.725 1.15625,0 0,3.8125 c 0.27499,-0.42082 0.59791,-0.73541 0.96875,-0.94375 0.37499,-0.20832 0.80624,-0.31249 1.29375,-0.3125 0.80416,10e-6 1.41249,0.25001 1.825,0.75 0.41249,0.49584 0.61874,1.22709 0.61875,2.19375"
+ id="path5043"
+ inkscape:connector-curvature="0" /><path
+ d="m -279.07125,424.07953 0,0.5625 -5.2875,0 c 0.05,0.79167 0.2875,1.39584 0.7125,1.8125 0.42916,0.41251 1.025,0.61876 1.7875,0.61875 0.44166,10e-6 0.86875,-0.0542 1.28125,-0.1625 0.41666,-0.10833 0.82916,-0.27083 1.2375,-0.4875 l 0,1.0875 c -0.41251,0.17501 -0.83542,0.30834 -1.26875,0.4 -0.43334,0.0917 -0.87292,0.1375 -1.31875,0.1375 -1.11667,0 -2.00209,-0.32499 -2.65625,-0.975 -0.65,-0.64999 -0.975,-1.52916 -0.975,-2.6375 0,-1.14582 0.30833,-2.05416 0.925,-2.725 0.62083,-0.67499 1.45625,-1.01249 2.50625,-1.0125 0.94166,10e-6 1.68541,0.30418 2.23125,0.9125 0.54999,0.60418 0.82499,1.42709 0.825,2.46875 m -1.15,-0.3375 c -0.008,-0.62916 -0.18542,-1.13124 -0.53125,-1.50625 -0.34167,-0.37499 -0.79584,-0.56249 -1.3625,-0.5625 -0.64167,1e-5 -1.15625,0.18126 -1.54375,0.54375 -0.38333,0.36251 -0.60417,0.87293 -0.6625,1.53125 l 4.1,-0.006"
+ id="path5045"
+ inkscape:connector-curvature="0" /><path
+ d="m -267.12125,424.07953 0,0.5625 -5.2875,0 c 0.05,0.79167 0.2875,1.39584 0.7125,1.8125 0.42916,0.41251 1.02499,0.61876 1.7875,0.61875 0.44166,10e-6 0.86874,-0.0542 1.28125,-0.1625 0.41666,-0.10833 0.82916,-0.27083 1.2375,-0.4875 l 0,1.0875 c -0.41251,0.17501 -0.83543,0.30834 -1.26875,0.4 -0.43334,0.0917 -0.87292,0.1375 -1.31875,0.1375 -1.11667,0 -2.00209,-0.32499 -2.65625,-0.975 -0.65,-0.64999 -0.975,-1.52916 -0.975,-2.6375 0,-1.14582 0.30833,-2.05416 0.925,-2.725 0.62083,-0.67499 1.45624,-1.01249 2.50625,-1.0125 0.94166,10e-6 1.68541,0.30418 2.23125,0.9125 0.54999,0.60418 0.82499,1.42709 0.825,2.46875 m -1.15,-0.3375 c -0.008,-0.62916 -0.18542,-1.13124 -0.53125,-1.50625 -0.34167,-0.37499 -0.79584,-0.56249 -1.3625,-0.5625 -0.64167,1e-5 -1.15626,0.18126 -1.54375,0.54375 -0.38334,0.36251 -0.60417,0.87293 -0.6625,1.53125 l 4.1,-0.006"
+ id="path5047"
+ inkscape:connector-curvature="0" /><path
+ d="m -259.6275,420.86703 -2.53125,3.40625 2.6625,3.59375 -1.35625,0 -2.0375,-2.75 -2.0375,2.75 -1.35625,0 2.71875,-3.6625 -2.4875,-3.3375 1.35625,0 1.85625,2.49375 1.85625,-2.49375 1.35625,0"
+ id="path5049"
+ inkscape:connector-curvature="0" /><path
+ d="m -254.6775,424.34828 c -0.92917,1e-5 -1.57292,0.10626 -1.93125,0.31875 -0.35834,0.21251 -0.5375,0.57501 -0.5375,1.0875 0,0.40834 0.13333,0.73334 0.4,0.975 0.27083,0.23751 0.63749,0.35626 1.1,0.35625 0.63749,10e-6 1.14791,-0.22499 1.53125,-0.675 0.38749,-0.45416 0.58124,-1.05624 0.58125,-1.80625 l 0,-0.25625 -1.14375,0 m 2.29375,-0.475 0,3.99375 -1.15,0 0,-1.0625 c -0.26251,0.42501 -0.58959,0.73959 -0.98125,0.94375 -0.39167,0.2 -0.87084,0.3 -1.4375,0.3 -0.71667,0 -1.2875,-0.2 -1.7125,-0.6 -0.42084,-0.40416 -0.63125,-0.94374 -0.63125,-1.61875 0,-0.78749 0.2625,-1.38124 0.7875,-1.78125 0.52916,-0.39999 1.31666,-0.59999 2.3625,-0.6 l 1.6125,0 0,-0.1125 c -1e-5,-0.52916 -0.17501,-0.93749 -0.525,-1.225 -0.34584,-0.29166 -0.83334,-0.43749 -1.4625,-0.4375 -0.40001,1e-5 -0.78959,0.0479 -1.16875,0.14375 -0.37917,0.0958 -0.74375,0.23959 -1.09375,0.43125 l 0,-1.0625 c 0.42083,-0.16249 0.82916,-0.28332 1.225,-0.3625 0.39583,-0.0833 0.78124,-0.12499 1.15625,-0.125 1.01249,10e-6 1.76874,0.26251 2.26875,0.7875 0.49999,0.52501 0.74999,1.32084 0.75,2.3875"
+ id="path5051"
+ inkscape:connector-curvature="0" /><path
+ d="m -244.55875,422.21078 c 0.28749,-0.51666 0.63124,-0.89791 1.03125,-1.14375 0.39999,-0.24582 0.87082,-0.36874 1.4125,-0.36875 0.72915,10e-6 1.29165,0.25626 1.6875,0.76875 0.39582,0.50834 0.59373,1.23334 0.59375,2.175 l 0,4.225 -1.15625,0 0,-4.1875 c -1e-5,-0.67082 -0.11876,-1.16874 -0.35625,-1.49375 -0.23751,-0.32499 -0.60001,-0.48749 -1.0875,-0.4875 -0.59585,10e-6 -1.06668,0.19793 -1.4125,0.59375 -0.34584,0.39584 -0.51876,0.93543 -0.51875,1.61875 l 0,3.95625 -1.15625,0 0,-4.1875 c -1e-5,-0.67499 -0.11876,-1.17291 -0.35625,-1.49375 -0.23751,-0.32499 -0.60418,-0.48749 -1.1,-0.4875 -0.58751,10e-6 -1.05417,0.20001 -1.4,0.6 -0.34584,0.39584 -0.51876,0.93334 -0.51875,1.6125 l 0,3.95625 -1.15625,0 0,-7 1.15625,0 0,1.0875 c 0.26249,-0.42916 0.57708,-0.74582 0.94375,-0.95 0.36666,-0.20415 0.80208,-0.30624 1.30625,-0.30625 0.50832,10e-6 0.93957,0.12918 1.29375,0.3875 0.35832,0.25834 0.62291,0.63334 0.79375,1.125"
+ id="path5053"
+ inkscape:connector-curvature="0" /><path
+ d="m -236.42125,426.81703 0,3.7125 -1.15625,0 0,-9.6625 1.15625,0 0,1.0625 c 0.24167,-0.41666 0.54583,-0.72499 0.9125,-0.925 0.37083,-0.20415 0.8125,-0.30624 1.325,-0.30625 0.85,10e-6 1.53958,0.33751 2.06875,1.0125 0.53333,0.67501 0.79999,1.56251 0.8,2.6625 -1e-5,1.10001 -0.26667,1.98751 -0.8,2.6625 -0.52917,0.67501 -1.21875,1.0125 -2.06875,1.0125 -0.5125,0 -0.95417,-0.1 -1.325,-0.3 -0.36667,-0.20416 -0.67083,-0.51458 -0.9125,-0.93125 m 3.9125,-2.44375 c 0,-0.84582 -0.175,-1.50832 -0.525,-1.9875 -0.34584,-0.48332 -0.82292,-0.72499 -1.43125,-0.725 -0.60833,1e-5 -1.0875,0.24168 -1.4375,0.725 -0.34583,0.47918 -0.51875,1.14168 -0.51875,1.9875 0,0.84584 0.17292,1.51042 0.51875,1.99375 0.35,0.47917 0.82917,0.71876 1.4375,0.71875 0.60833,10e-6 1.08541,-0.23958 1.43125,-0.71875 0.35,-0.48333 0.525,-1.14791 0.525,-1.99375"
+ id="path5055"
+ inkscape:connector-curvature="0" /><path
+ d="m -229.40875,418.14203 1.15,0 0,9.725 -1.15,0 0,-9.725"
+ id="path5057"
+ inkscape:connector-curvature="0" /><path
+ d="m -219.87125,424.07953 0,0.5625 -5.2875,0 c 0.05,0.79167 0.2875,1.39584 0.7125,1.8125 0.42916,0.41251 1.02499,0.61876 1.7875,0.61875 0.44166,10e-6 0.86874,-0.0542 1.28125,-0.1625 0.41666,-0.10833 0.82916,-0.27083 1.2375,-0.4875 l 0,1.0875 c -0.41251,0.17501 -0.83543,0.30834 -1.26875,0.4 -0.43334,0.0917 -0.87292,0.1375 -1.31875,0.1375 -1.11667,0 -2.00209,-0.32499 -2.65625,-0.975 -0.65,-0.64999 -0.975,-1.52916 -0.975,-2.6375 0,-1.14582 0.30833,-2.05416 0.925,-2.725 0.62083,-0.67499 1.45624,-1.01249 2.50625,-1.0125 0.94166,10e-6 1.68541,0.30418 2.23125,0.9125 0.54999,0.60418 0.82499,1.42709 0.825,2.46875 m -1.15,-0.3375 c -0.008,-0.62916 -0.18542,-1.13124 -0.53125,-1.50625 -0.34167,-0.37499 -0.79584,-0.56249 -1.3625,-0.5625 -0.64167,1e-5 -1.15626,0.18126 -1.54375,0.54375 -0.38334,0.36251 -0.60417,0.87293 -0.6625,1.53125 l 4.1,-0.006"
+ id="path5059"
+ inkscape:connector-curvature="0" /><path
+ d="m -208.88376,424.37328 c 0,-0.84582 -0.175,-1.50832 -0.525,-1.9875 -0.34583,-0.48332 -0.82292,-0.72499 -1.43125,-0.725 -0.60833,1e-5 -1.0875,0.24168 -1.4375,0.725 -0.34583,0.47918 -0.51875,1.14168 -0.51875,1.9875 0,0.84584 0.17292,1.51042 0.51875,1.99375 0.35,0.47917 0.82917,0.71876 1.4375,0.71875 0.60833,10e-6 1.08542,-0.23958 1.43125,-0.71875 0.35,-0.48333 0.525,-1.14791 0.525,-1.99375 m -3.9125,-2.44375 c 0.24167,-0.41666 0.54584,-0.72499 0.9125,-0.925 0.37083,-0.20415 0.8125,-0.30624 1.325,-0.30625 0.85,10e-6 1.53958,0.33751 2.06875,1.0125 0.53333,0.67501 0.8,1.56251 0.8,2.6625 0,1.10001 -0.26667,1.98751 -0.8,2.6625 -0.52917,0.67501 -1.21875,1.0125 -2.06875,1.0125 -0.5125,0 -0.95417,-0.1 -1.325,-0.3 -0.36666,-0.20416 -0.67083,-0.51458 -0.9125,-0.93125 l 0,1.05 -1.15625,0 0,-9.725 1.15625,0 0,3.7875"
+ id="path5061"
+ inkscape:connector-curvature="0" /><path
+ d="m -205.78376,420.86703 1.15,0 0,7 -1.15,0 0,-7 m 0,-2.725 1.15,0 0,1.45625 -1.15,0 0,-1.45625"
+ id="path5063"
+ inkscape:connector-curvature="0" /><path
+ d="m -198.1775,421.94203 c -0.12917,-0.075 -0.27084,-0.12916 -0.425,-0.1625 -0.15001,-0.0375 -0.31667,-0.0562 -0.5,-0.0563 -0.65001,10e-6 -1.15001,0.21251 -1.5,0.6375 -0.34584,0.42084 -0.51875,1.02709 -0.51875,1.81875 l 0,3.6875 -1.15625,0 0,-7 1.15625,0 0,1.0875 c 0.24166,-0.42499 0.55624,-0.73957 0.94375,-0.94375 0.38749,-0.20832 0.85833,-0.31249 1.4125,-0.3125 0.0792,10e-6 0.16666,0.006 0.2625,0.0188 0.0958,0.008 0.20208,0.0229 0.31875,0.0437 l 0.006,1.18125"
+ id="path5065"
+ inkscape:connector-curvature="0" /><path
+ d="m -192.565,421.92953 0,-3.7875 1.15,0 0,9.725 -1.15,0 0,-1.05 c -0.24167,0.41667 -0.54792,0.72709 -0.91875,0.93125 -0.36667,0.2 -0.80834,0.3 -1.325,0.3 -0.84584,0 -1.53542,-0.33749 -2.06875,-1.0125 -0.52917,-0.67499 -0.79375,-1.56249 -0.79375,-2.6625 0,-1.09999 0.26458,-1.98749 0.79375,-2.6625 0.53333,-0.67499 1.22291,-1.01249 2.06875,-1.0125 0.51666,10e-6 0.95833,0.1021 1.325,0.30625 0.37083,0.20001 0.67708,0.50834 0.91875,0.925 m -3.91875,2.44375 c 0,0.84584 0.17291,1.51042 0.51875,1.99375 0.34999,0.47917 0.82916,0.71876 1.4375,0.71875 0.60833,10e-6 1.08749,-0.23958 1.4375,-0.71875 0.34999,-0.48333 0.52499,-1.14791 0.525,-1.99375 -1e-5,-0.84582 -0.17501,-1.50832 -0.525,-1.9875 -0.35001,-0.48332 -0.82917,-0.72499 -1.4375,-0.725 -0.60834,1e-5 -1.08751,0.24168 -1.4375,0.725 -0.34584,0.47918 -0.51875,1.14168 -0.51875,1.9875"
+ id="path5067"
+ inkscape:connector-curvature="0" /><path
+ d="m -180.35249,421.92953 0,-3.7875 1.15,0 0,9.725 -1.15,0 0,-1.05 c -0.24168,0.41667 -0.54793,0.72709 -0.91875,0.93125 -0.36667,0.2 -0.80834,0.3 -1.325,0.3 -0.84584,0 -1.53542,-0.33749 -2.06875,-1.0125 -0.52917,-0.67499 -0.79375,-1.56249 -0.79375,-2.6625 0,-1.09999 0.26458,-1.98749 0.79375,-2.6625 0.53333,-0.67499 1.22291,-1.01249 2.06875,-1.0125 0.51666,10e-6 0.95833,0.1021 1.325,0.30625 0.37082,0.20001 0.67707,0.50834 0.91875,0.925 m -3.91875,2.44375 c -1e-5,0.84584 0.17291,1.51042 0.51875,1.99375 0.34999,0.47917 0.82916,0.71876 1.4375,0.71875 0.60833,10e-6 1.08749,-0.23958 1.4375,-0.71875 0.34999,-0.48333 0.52499,-1.14791 0.525,-1.99375 -1e-5,-0.84582 -0.17501,-1.50832 -0.525,-1.9875 -0.35001,-0.48332 -0.82917,-0.72499 -1.4375,-0.725 -0.60834,1e-5 -1.08751,0.24168 -1.4375,0.725 -0.34584,0.47918 -0.51876,1.14168 -0.51875,1.9875"
+ id="path5069"
+ inkscape:connector-curvature="0" /><path
+ d="m -170.84624,424.07953 0,0.5625 -5.2875,0 c 0.05,0.79167 0.28749,1.39584 0.7125,1.8125 0.42916,0.41251 1.02499,0.61876 1.7875,0.61875 0.44166,10e-6 0.86874,-0.0542 1.28125,-0.1625 0.41666,-0.10833 0.82916,-0.27083 1.2375,-0.4875 l 0,1.0875 c -0.41251,0.17501 -0.83543,0.30834 -1.26875,0.4 -0.43334,0.0917 -0.87292,0.1375 -1.31875,0.1375 -1.11667,0 -2.00209,-0.32499 -2.65625,-0.975 -0.65,-0.64999 -0.975,-1.52916 -0.975,-2.6375 0,-1.14582 0.30833,-2.05416 0.925,-2.725 0.62083,-0.67499 1.45624,-1.01249 2.50625,-1.0125 0.94166,10e-6 1.68541,0.30418 2.23125,0.9125 0.54999,0.60418 0.82499,1.42709 0.825,2.46875 m -1.15,-0.3375 c -0.008,-0.62916 -0.18543,-1.13124 -0.53125,-1.50625 -0.34168,-0.37499 -0.79584,-0.56249 -1.3625,-0.5625 -0.64167,1e-5 -1.15626,0.18126 -1.54375,0.54375 -0.38334,0.36251 -0.60417,0.87293 -0.6625,1.53125 l 4.1,-0.006"
+ id="path5071"
+ inkscape:connector-curvature="0" /><path
+ d="m -164.49624,421.07328 0,1.0875 c -0.32501,-0.16666 -0.66251,-0.29166 -1.0125,-0.375 -0.35001,-0.0833 -0.71251,-0.12499 -1.0875,-0.125 -0.57084,1e-5 -1.00001,0.0875 -1.2875,0.2625 -0.28334,0.17501 -0.42501,0.43751 -0.425,0.7875 -1e-5,0.26668 0.10208,0.47709 0.30625,0.63125 0.20416,0.15001 0.61458,0.29376 1.23125,0.43125 l 0.39375,0.0875 c 0.81666,0.17501 1.39582,0.42293 1.7375,0.74375 0.34582,0.31667 0.51874,0.76042 0.51875,1.33125 -1e-5,0.65001 -0.25834,1.16459 -0.775,1.54375 -0.51251,0.37917 -1.21876,0.56875 -2.11875,0.56875 -0.37501,0 -0.76667,-0.0375 -1.175,-0.1125 -0.40417,-0.0708 -0.83125,-0.17916 -1.28125,-0.325 l 0,-1.1875 c 0.425,0.22084 0.84375,0.38751 1.25625,0.5 0.41249,0.10834 0.82083,0.16251 1.225,0.1625 0.54166,10e-6 0.95833,-0.0917 1.25,-0.275 0.29166,-0.18749 0.43749,-0.44999 0.4375,-0.7875 -1e-5,-0.31249 -0.10626,-0.55208 -0.31875,-0.71875 -0.20834,-0.16666 -0.66876,-0.32708 -1.38125,-0.48125 l -0.4,-0.0937 c -0.71251,-0.14999 -1.22709,-0.37916 -1.54375,-0.6875 -0.31667,-0.31249 -0.475,-0.73957 -0.475,-1.28125 0,-0.65832 0.23333,-1.16666 0.7,-1.525 0.46666,-0.35832 1.12916,-0.53749 1.9875,-0.5375 0.42499,10e-6 0.82499,0.0313 1.2,0.0937 0.37499,0.0625 0.72082,0.15626 1.0375,0.28125"
+ id="path5073"
+ inkscape:connector-curvature="0" /><path
+ d="m -162.28376,420.86703 1.15,0 0,7 -1.15,0 0,-7 m 0,-2.725 1.15,0 0,1.45625 -1.15,0 0,-1.45625"
+ id="path5075"
+ inkscape:connector-curvature="0" /><path
+ d="m -154.1275,424.28578 c -1e-5,-0.83332 -0.17292,-1.47916 -0.51875,-1.9375 -0.34167,-0.45832 -0.82292,-0.68749 -1.44375,-0.6875 -0.61667,1e-5 -1.09792,0.22918 -1.44375,0.6875 -0.34167,0.45834 -0.5125,1.10418 -0.5125,1.9375 0,0.82917 0.17083,1.47292 0.5125,1.93125 0.34583,0.45834 0.82708,0.68751 1.44375,0.6875 0.62083,10e-6 1.10208,-0.22916 1.44375,-0.6875 0.34583,-0.45833 0.51874,-1.10208 0.51875,-1.93125 m 1.15,2.7125 c -1e-5,1.19167 -0.26459,2.07709 -0.79375,2.65625 -0.52917,0.58334 -1.33959,0.875 -2.43125,0.875 -0.40417,0 -0.78542,-0.0312 -1.14375,-0.0937 -0.35834,-0.0583 -0.70625,-0.15 -1.04375,-0.275 l 0,-1.11875 c 0.3375,0.18334 0.67083,0.31875 1,0.40625 0.32916,0.0875 0.66458,0.13125 1.00625,0.13125 0.75416,0 1.31874,-0.19791 1.69375,-0.59375 0.37499,-0.39166 0.56249,-0.98541 0.5625,-1.78125 l 0,-0.56875 c -0.23751,0.41251 -0.54167,0.72084 -0.9125,0.925 -0.37084,0.20417 -0.81459,0.30625 -1.33125,0.30625 -0.85834,0 -1.55,-0.32708 -2.075,-0.98125 -0.525,-0.65416 -0.7875,-1.52083 -0.7875,-2.6 0,-1.08332 0.2625,-1.95207 0.7875,-2.60625 0.525,-0.65416 1.21666,-0.98124 2.075,-0.98125 0.51666,10e-6 0.96041,0.1021 1.33125,0.30625 0.37083,0.20418 0.67499,0.51251 0.9125,0.925 l 0,-1.0625 1.15,0 0,6.13125"
+ id="path5077"
+ inkscape:connector-curvature="0" /><path
+ d="m -144.79,423.64203 0,4.225 -1.15,0 0,-4.1875 c -1e-5,-0.66249 -0.12917,-1.15832 -0.3875,-1.4875 -0.25834,-0.32916 -0.64584,-0.49374 -1.1625,-0.49375 -0.62084,10e-6 -1.11042,0.19793 -1.46875,0.59375 -0.35834,0.39584 -0.5375,0.93543 -0.5375,1.61875 l 0,3.95625 -1.15625,0 0,-7 1.15625,0 0,1.0875 c 0.275,-0.42082 0.59791,-0.73541 0.96875,-0.94375 0.37499,-0.20832 0.80624,-0.31249 1.29375,-0.3125 0.80416,10e-6 1.41249,0.25001 1.825,0.75 0.41249,0.49584 0.61874,1.22709 0.61875,2.19375"
+ id="path5079"
+ inkscape:connector-curvature="0" /><path
+ d="m -138.02125,421.07328 0,1.0875 c -0.32501,-0.16666 -0.66251,-0.29166 -1.0125,-0.375 -0.35001,-0.0833 -0.71251,-0.12499 -1.0875,-0.125 -0.57084,1e-5 -1,0.0875 -1.2875,0.2625 -0.28334,0.17501 -0.425,0.43751 -0.425,0.7875 0,0.26668 0.10208,0.47709 0.30625,0.63125 0.20416,0.15001 0.61458,0.29376 1.23125,0.43125 l 0.39375,0.0875 c 0.81666,0.17501 1.39583,0.42293 1.7375,0.74375 0.34583,0.31667 0.51874,0.76042 0.51875,1.33125 -1e-5,0.65001 -0.25834,1.16459 -0.775,1.54375 -0.51251,0.37917 -1.21876,0.56875 -2.11875,0.56875 -0.37501,0 -0.76667,-0.0375 -1.175,-0.1125 -0.40417,-0.0708 -0.83125,-0.17916 -1.28125,-0.325 l 0,-1.1875 c 0.425,0.22084 0.84375,0.38751 1.25625,0.5 0.4125,0.10834 0.82083,0.16251 1.225,0.1625 0.54166,10e-6 0.95833,-0.0917 1.25,-0.275 0.29166,-0.18749 0.43749,-0.44999 0.4375,-0.7875 -1e-5,-0.31249 -0.10626,-0.55208 -0.31875,-0.71875 -0.20834,-0.16666 -0.66876,-0.32708 -1.38125,-0.48125 l -0.4,-0.0937 c -0.7125,-0.14999 -1.22709,-0.37916 -1.54375,-0.6875 -0.31667,-0.31249 -0.475,-0.73957 -0.475,-1.28125 0,-0.65832 0.23333,-1.16666 0.7,-1.525 0.46666,-0.35832 1.12916,-0.53749 1.9875,-0.5375 0.42499,10e-6 0.82499,0.0313 1.2,0.0937 0.37499,0.0625 0.72083,0.15626 1.0375,0.28125"
+ id="path5081"
+ inkscape:connector-curvature="0" /><path
+ d="m -126.70875,424.37328 c -1e-5,-0.84582 -0.17501,-1.50832 -0.525,-1.9875 -0.34584,-0.48332 -0.82292,-0.72499 -1.43125,-0.725 -0.60834,1e-5 -1.08751,0.24168 -1.4375,0.725 -0.34584,0.47918 -0.51875,1.14168 -0.51875,1.9875 0,0.84584 0.17291,1.51042 0.51875,1.99375 0.34999,0.47917 0.82916,0.71876 1.4375,0.71875 0.60833,10e-6 1.08541,-0.23958 1.43125,-0.71875 0.34999,-0.48333 0.52499,-1.14791 0.525,-1.99375 m -3.9125,-2.44375 c 0.24166,-0.41666 0.54583,-0.72499 0.9125,-0.925 0.37083,-0.20415 0.81249,-0.30624 1.325,-0.30625 0.84999,10e-6 1.53957,0.33751 2.06875,1.0125 0.53332,0.67501 0.79999,1.56251 0.8,2.6625 -1e-5,1.10001 -0.26668,1.98751 -0.8,2.6625 -0.52918,0.67501 -1.21876,1.0125 -2.06875,1.0125 -0.51251,0 -0.95417,-0.1 -1.325,-0.3 -0.36667,-0.20416 -0.67084,-0.51458 -0.9125,-0.93125 l 0,1.05 -1.15625,0 0,-9.725 1.15625,0 0,3.7875"
+ id="path5083"
+ inkscape:connector-curvature="0" /><path
+ d="m -117.62125,424.07953 0,0.5625 -5.2875,0 c 0.05,0.79167 0.2875,1.39584 0.7125,1.8125 0.42916,0.41251 1.02499,0.61876 1.7875,0.61875 0.44166,10e-6 0.86874,-0.0542 1.28125,-0.1625 0.41666,-0.10833 0.82916,-0.27083 1.2375,-0.4875 l 0,1.0875 c -0.41251,0.17501 -0.83543,0.30834 -1.26875,0.4 -0.43334,0.0917 -0.87292,0.1375 -1.31875,0.1375 -1.11667,0 -2.00209,-0.32499 -2.65625,-0.975 -0.65,-0.64999 -0.975,-1.52916 -0.975,-2.6375 0,-1.14582 0.30833,-2.05416 0.925,-2.725 0.62083,-0.67499 1.45624,-1.01249 2.50625,-1.0125 0.94166,10e-6 1.68541,0.30418 2.23125,0.9125 0.54999,0.60418 0.82499,1.42709 0.825,2.46875 m -1.15,-0.3375 c -0.008,-0.62916 -0.18542,-1.13124 -0.53125,-1.50625 -0.34167,-0.37499 -0.79584,-0.56249 -1.3625,-0.5625 -0.64167,1e-5 -1.15626,0.18126 -1.54375,0.54375 -0.38334,0.36251 -0.60417,0.87293 -0.6625,1.53125 l 4.1,-0.006"
+ id="path5085"
+ inkscape:connector-curvature="0" /><path
+ d="m -112.19,418.14203 0,0.95625 -1.1,0 c -0.41251,1e-5 -0.70001,0.0833 -0.8625,0.25 -0.15834,0.16668 -0.2375,0.46668 -0.2375,0.9 l 0,0.61875 1.89375,0 0,0.89375 -1.89375,0 0,6.10625 -1.15625,0 0,-6.10625 -1.1,0 0,-0.89375 1.1,0 0,-0.4875 c 0,-0.77915 0.18125,-1.34582 0.54375,-1.7 0.3625,-0.35832 0.93749,-0.53749 1.725,-0.5375 l 1.0875,0"
+ id="path5087"
+ inkscape:connector-curvature="0" /><path
+ d="m -108.52125,421.67328 c -0.61667,1e-5 -1.10417,0.24168 -1.4625,0.725 -0.35834,0.47918 -0.5375,1.13751 -0.5375,1.975 0,0.83751 0.17708,1.49792 0.53125,1.98125 0.35833,0.47917 0.84791,0.71876 1.46875,0.71875 0.61249,10e-6 1.09791,-0.24166 1.45625,-0.725 0.35833,-0.48333 0.53749,-1.14166 0.5375,-1.975 -1e-5,-0.82916 -0.17917,-1.48541 -0.5375,-1.96875 -0.35834,-0.48749 -0.84376,-0.73124 -1.45625,-0.73125 m 0,-0.975 c 0.99999,10e-6 1.78541,0.32501 2.35625,0.975 0.57082,0.65001 0.85624,1.55001 0.85625,2.7 -1e-5,1.14584 -0.28543,2.04584 -0.85625,2.7 -0.57084,0.65001 -1.35626,0.975 -2.35625,0.975 -1.00417,0 -1.79167,-0.32499 -2.3625,-0.975 -0.56667,-0.65416 -0.85,-1.55416 -0.85,-2.7 0,-1.14999 0.28333,-2.04999 0.85,-2.7 0.57083,-0.64999 1.35833,-0.97499 2.3625,-0.975"
+ id="path5089"
+ inkscape:connector-curvature="0" /><path
+ d="m -99.352505,421.94203 c -0.129172,-0.075 -0.270839,-0.12916 -0.425,-0.1625 -0.150005,-0.0375 -0.316675,-0.0562 -0.500005,-0.0563 -0.65,10e-6 -1.15,0.21251 -1.5,0.6375 -0.34583,0.42084 -0.51875,1.02709 -0.51875,1.81875 l 0,3.6875 -1.15625,0 0,-7 1.15625,0 0,1.0875 c 0.24167,-0.42499 0.55625,-0.73957 0.94375,-0.94375 0.3875,-0.20832 0.85833,-0.31249 1.412505,-0.3125 0.07916,10e-6 0.166661,0.006 0.2625,0.0188 0.09583,0.008 0.202078,0.0229 0.31875,0.0437 l 0.0063,1.18125"
+ id="path5091"
+ inkscape:connector-curvature="0" /><path
+ d="m -92.408743,424.07953 0,0.5625 -5.2875,0 c 0.05,0.79167 0.287498,1.39584 0.7125,1.8125 0.429163,0.41251 1.024996,0.61876 1.7875,0.61875 0.441662,10e-6 0.868745,-0.0542 1.28125,-0.1625 0.41666,-0.10833 0.82916,-0.27083 1.2375,-0.4875 l 0,1.0875 c -0.412507,0.17501 -0.835423,0.30834 -1.26875,0.4 -0.433339,0.0917 -0.872922,0.1375 -1.31875,0.1375 -1.11667,0 -2.002086,-0.32499 -2.65625,-0.975 -0.650001,-0.64999 -0.975001,-1.52916 -0.975,-2.6375 -10e-7,-1.14582 0.308332,-2.05416 0.925,-2.725 0.620831,-0.67499 1.456247,-1.01249 2.50625,-1.0125 0.941661,10e-6 1.685411,0.30418 2.23125,0.9125 0.549993,0.60418 0.824993,1.42709 0.825,2.46875 m -1.15,-0.3375 c -0.0083,-0.62916 -0.185423,-1.13124 -0.53125,-1.50625 -0.341672,-0.37499 -0.795838,-0.56249 -1.3625,-0.5625 -0.64167,1e-5 -1.156253,0.18126 -1.54375,0.54375 -0.383336,0.36251 -0.604169,0.87293 -0.6625,1.53125 l 4.1,-0.006"
+ id="path5093"
+ inkscape:connector-curvature="0" /><path
+ d="m -86.552484,425.10453 0,-4.2375 1.15,0 0,4.19375 c -2e-6,0.66251 0.129164,1.16042 0.3875,1.49375 0.25833,0.32917 0.64583,0.49376 1.1625,0.49375 0.620829,1e-5 1.110412,-0.19791 1.46875,-0.59375 0.362494,-0.39583 0.543744,-0.93541 0.54375,-1.61875 l 0,-3.96875 1.15,0 0,7 -1.15,0 0,-1.075 c -0.279172,0.42501 -0.604172,0.74167 -0.975,0.95 -0.366671,0.20417 -0.793754,0.30625 -1.28125,0.30625 -0.804169,0 -1.414586,-0.25 -1.83125,-0.75 -0.416668,-0.49999 -0.625001,-1.23124 -0.625,-2.19375"
+ id="path5095"
+ inkscape:connector-curvature="0" /><path
+ d="m -77.196234,426.81703 0,3.7125 -1.15625,0 0,-9.6625 1.15625,0 0,1.0625 c 0.241664,-0.41666 0.54583,-0.72499 0.9125,-0.925 0.37083,-0.20415 0.812496,-0.30624 1.325,-0.30625 0.849995,10e-6 1.539577,0.33751 2.06875,1.0125 0.533326,0.67501 0.799993,1.56251 0.8,2.6625 -7e-6,1.10001 -0.266674,1.98751 -0.8,2.6625 -0.529173,0.67501 -1.218755,1.0125 -2.06875,1.0125 -0.512504,0 -0.95417,-0.1 -1.325,-0.3 -0.36667,-0.20416 -0.670836,-0.51458 -0.9125,-0.93125 m 3.9125,-2.44375 c -6e-6,-0.84582 -0.175006,-1.50832 -0.525,-1.9875 -0.345839,-0.48332 -0.822922,-0.72499 -1.43125,-0.725 -0.608337,1e-5 -1.087503,0.24168 -1.4375,0.725 -0.345836,0.47918 -0.518752,1.14168 -0.51875,1.9875 -2e-6,0.84584 0.172914,1.51042 0.51875,1.99375 0.349997,0.47917 0.829163,0.71876 1.4375,0.71875 0.608328,10e-6 1.085411,-0.23958 1.43125,-0.71875 0.349994,-0.48333 0.524994,-1.14791 0.525,-1.99375"
+ id="path5097"
+ inkscape:connector-curvature="0" /><path
+ d="m -70.183734,418.14203 1.15,0 0,9.725 -1.15,0 0,-9.725"
+ id="path5099"
+ inkscape:connector-curvature="0" /><path
+ d="m -63.921246,421.67328 c -0.61667,1e-5 -1.10417,0.24168 -1.4625,0.725 -0.358336,0.47918 -0.537502,1.13751 -0.5375,1.975 -2e-6,0.83751 0.177081,1.49792 0.53125,1.98125 0.35833,0.47917 0.847913,0.71876 1.46875,0.71875 0.612495,10e-6 1.097911,-0.24166 1.45625,-0.725 0.358327,-0.48333 0.537494,-1.14166 0.5375,-1.975 -6e-6,-0.82916 -0.179173,-1.48541 -0.5375,-1.96875 -0.358339,-0.48749 -0.843755,-0.73124 -1.45625,-0.73125 m 0,-0.975 c 0.999995,10e-6 1.785411,0.32501 2.35625,0.975 0.570826,0.65001 0.856243,1.55001 0.85625,2.7 -7e-6,1.14584 -0.285424,2.04584 -0.85625,2.7 -0.570839,0.65001 -1.356255,0.975 -2.35625,0.975 -1.00417,0 -1.791669,-0.32499 -2.3625,-0.975 -0.566668,-0.65416 -0.850001,-1.55416 -0.85,-2.7 -10e-7,-1.14999 0.283332,-2.04999 0.85,-2.7 0.570831,-0.64999 1.35833,-0.97499 2.3625,-0.975"
+ id="path5101"
+ inkscape:connector-curvature="0" /><path
+ d="m -55.627484,424.34828 c -0.92917,1e-5 -1.57292,0.10626 -1.93125,0.31875 -0.358336,0.21251 -0.537502,0.57501 -0.5375,1.0875 -2e-6,0.40834 0.133331,0.73334 0.4,0.975 0.270831,0.23751 0.637497,0.35626 1.1,0.35625 0.637496,10e-6 1.147912,-0.22499 1.53125,-0.675 0.387495,-0.45416 0.581244,-1.05624 0.58125,-1.80625 l 0,-0.25625 -1.14375,0 m 2.29375,-0.475 0,3.99375 -1.15,0 0,-1.0625 c -0.262505,0.42501 -0.589588,0.73959 -0.98125,0.94375 -0.391671,0.2 -0.870837,0.3 -1.4375,0.3 -0.716669,0 -1.287502,-0.2 -1.7125,-0.6 -0.420834,-0.40416 -0.631251,-0.94374 -0.63125,-1.61875 -10e-7,-0.78749 0.262499,-1.38124 0.7875,-1.78125 0.529164,-0.39999 1.316664,-0.59999 2.3625,-0.6 l 1.6125,0 0,-0.1125 c -6e-6,-0.52916 -0.175005,-0.93749 -0.525,-1.225 -0.345838,-0.29166 -0.833338,-0.43749 -1.4625,-0.4375 -0.400003,1e-5 -0.789586,0.0479 -1.16875,0.14375 -0.379169,0.0958 -0.743752,0.23959 -1.09375,0.43125 l 0,-1.0625 c 0.420832,-0.16249 0.829164,-0.28332 1.225,-0.3625 0.39583,-0.0833 0.781247,-0.12499 1.15625,-0.125 1.012495,10e-6 1.768745,0.26251 2.26875,0.7875 0.499994,0.52501 0.749993,1.32084 0.75,2.3875"
+ id="path5103"
+ inkscape:connector-curvature="0" /><path
+ d="m -46.352508,421.92953 0,-3.7875 1.15,0 0,9.725 -1.15,0 0,-1.05 c -0.241673,0.41667 -0.547922,0.72709 -0.91875,0.93125 -0.366672,0.2 -0.808338,0.3 -1.325,0.3 -0.845837,0 -1.535419,-0.33749 -2.068751,-1.0125 -0.529167,-0.67499 -0.79375,-1.56249 -0.79375,-2.6625 0,-1.09999 0.264583,-1.98749 0.79375,-2.6625 0.533332,-0.67499 1.222914,-1.01249 2.068751,-1.0125 0.516662,10e-6 0.958328,0.1021 1.325,0.30625 0.370828,0.20001 0.677077,0.50834 0.91875,0.925 m -3.918751,2.44375 c -10e-7,0.84584 0.172915,1.51042 0.51875,1.99375 0.349998,0.47917 0.829164,0.71876 1.437501,0.71875 0.608328,10e-6 1.087495,-0.23958 1.4375,-0.71875 0.349994,-0.48333 0.524994,-1.14791 0.525,-1.99375 -6e-6,-0.84582 -0.175006,-1.50832 -0.525,-1.9875 -0.350005,-0.48332 -0.829172,-0.72499 -1.4375,-0.725 -0.608337,1e-5 -1.087503,0.24168 -1.437501,0.725 -0.345835,0.47918 -0.518751,1.14168 -0.51875,1.9875"
+ id="path5105"
+ inkscape:connector-curvature="0" /><path
+ d="m -42.833759,420.86703 1.15,0 0,7 -1.15,0 0,-7 m 0,-2.725 1.15,0 0,1.45625 -1.15,0 0,-1.45625"
+ id="path5107"
+ inkscape:connector-curvature="0" /><path
+ d="m -33.46499,423.64203 0,4.225 -1.15,0 0,-4.1875 c -6e-6,-0.66249 -0.129173,-1.15832 -0.3875,-1.4875 -0.258339,-0.32916 -0.645838,-0.49374 -1.1625,-0.49375 -0.620837,10e-6 -1.11042,0.19793 -1.46875,0.59375 -0.358336,0.39584 -0.537503,0.93543 -0.5375,1.61875 l 0,3.95625 -1.15625,0 0,-7 1.15625,0 0,1.0875 c 0.274997,-0.42082 0.597914,-0.73541 0.96875,-0.94375 0.374996,-0.20832 0.806246,-0.31249 1.29375,-0.3125 0.804161,10e-6 1.412494,0.25001 1.825,0.75 0.412493,0.49584 0.618743,1.22709 0.61875,2.19375"
+ id="path5109"
+ inkscape:connector-curvature="0" /><path
+ d="m -26.55249,424.28578 c -6e-6,-0.83332 -0.172922,-1.47916 -0.51875,-1.9375 -0.341672,-0.45832 -0.822921,-0.68749 -1.44375,-0.6875 -0.61667,1e-5 -1.09792,0.22918 -1.44375,0.6875 -0.341669,0.45834 -0.512502,1.10418 -0.5125,1.9375 -2e-6,0.82917 0.170831,1.47292 0.5125,1.93125 0.34583,0.45834 0.82708,0.68751 1.44375,0.6875 0.620829,10e-6 1.102078,-0.22916 1.44375,-0.6875 0.345828,-0.45833 0.518744,-1.10208 0.51875,-1.93125 m 1.15,2.7125 c -7e-6,1.19167 -0.26459,2.07709 -0.79375,2.65625 -0.529172,0.58334 -1.339588,0.875 -2.43125,0.875 -0.40417,0 -0.78542,-0.0312 -1.14375,-0.0937 -0.358336,-0.0583 -0.706252,-0.15 -1.04375,-0.275 l 0,-1.11875 c 0.337498,0.18334 0.670831,0.31875 1,0.40625 0.329164,0.0875 0.66458,0.13125 1.00625,0.13125 0.754162,0 1.318745,-0.19791 1.69375,-0.59375 0.374994,-0.39166 0.562494,-0.98541 0.5625,-1.78125 l 0,-0.56875 c -0.237506,0.41251 -0.541672,0.72084 -0.9125,0.925 -0.370838,0.20417 -0.814588,0.30625 -1.33125,0.30625 -0.858336,0 -1.550002,-0.32708 -2.075,-0.98125 -0.525001,-0.65416 -0.787501,-1.52083 -0.7875,-2.6 -10e-7,-1.08332 0.262499,-1.95207 0.7875,-2.60625 0.524998,-0.65416 1.216664,-0.98124 2.075,-0.98125 0.516662,10e-6 0.960412,0.1021 1.33125,0.30625 0.370828,0.20418 0.674994,0.51251 0.9125,0.925 l 0,-1.0625 1.15,0 0,6.13125"
+ id="path5111"
+ inkscape:connector-curvature="0" /><path
+ d="m -18.22124,420.07328 -2.24375,1.2125 2.24375,1.21875 -0.3625,0.6125 -2.1,-1.26875 0,2.35625 -0.7125,0 0,-2.35625 -2.1,1.26875 -0.3625,-0.6125 2.24375,-1.21875 -2.24375,-1.2125 0.3625,-0.61875 2.1,1.26875 0,-2.35625 0.7125,0 0,2.35625 2.1,-1.26875 0.3625,0.61875"
+ id="path5113"
+ inkscape:connector-curvature="0" /></g><g
+ id="g14777"><path
+ d="m 590.02932,44.404687 0,7.07968 1.48788,0 c 1.2562,1e-6 2.17493,-0.284568 2.75629,-0.853708 0.58536,-0.569136 0.87806,-1.467562 0.8781,-2.695279 -4e-5,-1.219577 -0.29274,-2.111905 -0.8781,-2.676985 -0.58136,-0.569131 -1.50009,-0.8537 -2.75629,-0.853708 l -1.48788,0 m -1.23177,-1.012254 2.53062,0 c 1.76433,9e-6 3.05914,0.367916 3.8844,1.103722 0.8252,0.731758 1.23783,1.878165 1.23788,3.439225 -5e-5,1.5692 -0.4147,2.721705 -1.24399,3.457518 -0.82934,0.735816 -2.12209,1.103724 -3.87829,1.103724 l -2.53062,0 0,-9.104189"
+ id="path3477"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 604.20087,48.801284 0,0.548813 -5.15882,0 c 0.0488,0.772405 0.28048,1.361869 0.69518,1.768395 0.41868,0.402464 1.00004,0.603695 1.74398,0.603694 0.4309,10e-7 0.84762,-0.05285 1.25005,-0.158546 0.40657,-0.105696 0.809,-0.264242 1.20739,-0.475637 l 0,1.061037 c -0.40243,0.170742 -0.81506,0.300831 -1.23788,0.390267 -0.42277,0.08944 -0.85165,0.134154 -1.28664,0.134154 -1.08948,0 -1.95335,-0.317092 -2.5916,-0.951275 -0.6342,-0.634182 -0.95128,-1.491954 -0.95128,-2.573321 0,-1.117946 0.30082,-2.004176 0.90248,-2.658691 0.60574,-0.658568 1.4208,-0.987855 2.44527,-0.987862 0.91873,7e-6 1.6444,0.296771 2.17695,0.890295 0.5366,0.589471 0.80492,1.392363 0.80492,2.408677 m -1.122,-0.329287 c -0.008,-0.613853 -0.1809,-1.103718 -0.51832,-1.469598 -0.33338,-0.365869 -0.77649,-0.548806 -1.32934,-0.548812 -0.62608,6e-6 -1.12814,0.176845 -1.5062,0.530518 -0.37401,0.353685 -0.58948,0.851681 -0.64637,1.49399 l 4.00023,-0.0061"
+ id="path3479"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 610.39637,45.868187 0,1.061037 c -0.31712,-0.162605 -0.64637,-0.284564 -0.98788,-0.365875 -0.34146,-0.0813 -0.69518,-0.121952 -1.06102,-0.121958 -0.55693,6e-6 -0.97566,0.08538 -1.2562,0.256112 -0.2764,0.170748 -0.41464,0.42686 -0.41464,0.768338 0,0.260182 0.0996,0.465478 0.2988,0.615889 0.19918,0.146355 0.59964,0.286606 1.20129,0.420757 l 0.38416,0.08537 c 0.79679,0.170745 1.36189,0.412629 1.69523,0.725652 0.33742,0.308964 0.5061,0.741916 0.50615,1.298856 -5e-5,0.634185 -0.25207,1.136246 -0.75615,1.506186 -0.50005,0.36994 -1.18912,0.55491 -2.06722,0.55491 -0.36584,0 -0.74798,-0.03659 -1.14638,-0.109762 -0.39435,-0.06911 -0.81102,-0.174807 -1.25009,-0.317092 l 0,-1.158604 c 0.41465,0.215461 0.82323,0.378072 1.22567,0.487833 0.40248,0.105698 0.80087,0.158547 1.19522,0.158546 0.52847,1e-6 0.93499,-0.08943 1.21956,-0.268309 0.28458,-0.182935 0.42686,-0.439048 0.42686,-0.768337 0,-0.304893 -0.10367,-0.538647 -0.31097,-0.70126 -0.20331,-0.162609 -0.65248,-0.319122 -1.34766,-0.46954 l -0.39027,-0.09147 c -0.69518,-0.146347 -1.19724,-0.369937 -1.5062,-0.670771 -0.30895,-0.304892 -0.4634,-0.721582 -0.4634,-1.250073 0,-0.642308 0.22764,-1.138271 0.68296,-1.487892 0.45528,-0.349606 1.10166,-0.524413 1.93912,-0.52442 0.41465,7e-6 0.80492,0.0305 1.1708,0.09147 0.36589,0.06099 0.70331,0.152455 1.01226,0.274407"
+ id="path3481"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 612.55501,45.666955 1.12204,0 0,6.829667 -1.12204,0 0,-6.829667 m 0,-2.658691 1.12204,0 0,1.420815 -1.12204,0 0,-1.420815"
+ id="path3483"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 620.51282,49.002515 c 0,-0.813051 -0.16874,-1.443168 -0.50616,-1.890353 -0.33333,-0.447175 -0.80289,-0.670765 -1.40858,-0.670771 -0.6017,6e-6 -1.07122,0.223596 -1.40864,0.670771 -0.33337,0.447185 -0.50004,1.077302 -0.50004,1.890353 0,0.808993 0.16667,1.437078 0.50004,1.884257 0.33742,0.447181 0.80694,0.670771 1.40864,0.67077 0.60569,1e-6 1.07525,-0.223589 1.40858,-0.67077 0.33742,-0.447179 0.50616,-1.075264 0.50616,-1.884257 m 1.12199,2.646496 c 0,1.162669 -0.25813,2.02654 -0.77443,2.591614 -0.5163,0.569137 -1.30698,0.853706 -2.37208,0.853709 -0.39435,-3e-6 -0.7663,-0.03049 -1.11593,-0.09147 -0.34959,-0.05692 -0.68908,-0.146352 -1.01833,-0.268308 l 0,-1.091527 c 0.32925,0.17887 0.6545,0.310992 0.97567,0.396364 0.32112,0.08537 0.64839,0.128055 0.98173,0.128056 0.73581,-10e-7 1.28668,-0.193102 1.65257,-0.579301 0.36584,-0.382138 0.54881,-0.961439 0.54881,-1.737907 l 0,-0.55491 c -0.23173,0.402463 -0.52852,0.703293 -0.89032,0.902492 -0.3618,0.199198 -0.79476,0.298798 -1.29885,0.298798 -0.83746,0 -1.51226,-0.319125 -2.02452,-0.957374 -0.51221,-0.638246 -0.76832,-1.483823 -0.76832,-2.536733 0,-1.056967 0.25611,-1.904576 0.76832,-2.54283 0.51226,-0.638242 1.18706,-0.957366 2.02452,-0.957373 0.50409,7e-6 0.93705,0.09961 1.29885,0.298798 0.3618,0.199205 0.65859,0.500035 0.89032,0.902491 l 0,-1.036646 1.12199,0 0,5.982056"
+ id="path3485"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 629.62311,48.37443 0,4.122192 -1.12204,0 0,-4.085604 c 0,-0.646375 -0.12603,-1.130142 -0.37805,-1.451305 -0.25207,-0.32115 -0.63012,-0.481729 -1.13421,-0.481735 -0.60574,6e-6 -1.08343,0.193107 -1.43301,0.579302 -0.34964,0.386207 -0.52443,0.91266 -0.52443,1.57936 l 0,3.859982 -1.1281,0 0,-6.829667 1.1281,0 0,1.061038 c 0.26832,-0.410587 0.58333,-0.717515 0.94518,-0.920786 0.36584,-0.203256 0.78659,-0.304888 1.26226,-0.304895 0.78457,7e-6 1.3781,0.243923 1.78058,0.73175 0.40248,0.483773 0.60367,1.197229 0.60372,2.140368"
+ id="path3487"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 637.12964,44.404687 0,3.420931 1.54885,0 c 0.57323,4e-6 1.01635,-0.148378 1.32934,-0.445148 0.31304,-0.29676 0.46956,-0.719548 0.46956,-1.268367 0,-0.54474 -0.15652,-0.965496 -0.46956,-1.262268 -0.31299,-0.296758 -0.75611,-0.44514 -1.32934,-0.445148 l -1.54885,0 m -1.23178,-1.012254 2.78063,0 c 1.02039,9e-6 1.79077,0.231729 2.31111,0.695162 0.52443,0.459385 0.78664,1.13422 0.78664,2.024508 0,0.898432 -0.26221,1.577333 -0.78664,2.036704 -0.52034,0.459381 -1.29072,0.689069 -2.31111,0.689065 l -1.54885,0 0,3.65875 -1.23178,0 0,-9.104189"
+ id="path3489"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 645.59355,46.453587 c -0.60169,6e-6 -1.07732,0.235791 -1.42695,0.707358 -0.34959,0.467512 -0.52438,1.109825 -0.52438,1.926941 0,0.817124 0.17277,1.46147 0.51832,1.93304 0.34959,0.467508 0.82727,0.701261 1.43301,0.70126 0.59757,10e-7 1.07117,-0.235785 1.4208,-0.707358 0.34959,-0.47157 0.52443,-1.113884 0.52443,-1.926942 0,-0.808986 -0.17484,-1.449266 -0.52443,-1.920843 -0.34963,-0.475632 -0.82323,-0.71345 -1.4208,-0.713456 m 0,-0.951275 c 0.97563,7e-6 1.74197,0.317098 2.2989,0.951275 0.55694,0.634188 0.8354,1.512287 0.8354,2.634299 0,1.117954 -0.27846,1.996053 -0.8354,2.6343 -0.55693,0.634183 -1.32327,0.951275 -2.2989,0.951275 -0.97975,0 -1.74807,-0.317092 -2.30505,-0.951275 -0.55285,-0.638247 -0.82929,-1.516346 -0.82929,-2.6343 0,-1.122012 0.27644,-2.000111 0.82929,-2.634299 0.55698,-0.634177 1.3253,-0.951268 2.30505,-0.951275"
+ id="path3491"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 654.93553,45.868187 0,1.061037 c -0.31708,-0.162605 -0.64638,-0.284564 -0.98784,-0.365875 -0.3415,-0.0813 -0.69518,-0.121952 -1.06106,-0.121958 -0.55694,6e-6 -0.97567,0.08538 -1.25616,0.256112 -0.27644,0.170748 -0.41464,0.42686 -0.41464,0.768338 0,0.260182 0.0996,0.465478 0.29876,0.615889 0.19922,0.146355 0.59963,0.286606 1.20133,0.420757 l 0.38416,0.08537 c 0.79679,0.170745 1.36185,0.412629 1.69523,0.725652 0.33737,0.308964 0.5061,0.741916 0.5061,1.298856 0,0.634185 -0.25206,1.136246 -0.75615,1.506186 -0.5,0.36994 -1.18907,0.55491 -2.06717,0.55491 -0.36589,0 -0.74803,-0.03659 -1.14642,-0.109762 -0.39431,-0.06911 -0.81102,-0.174807 -1.25005,-0.317092 l 0,-1.158604 c 0.41465,0.215461 0.82319,0.378072 1.22567,0.487833 0.40243,0.105698 0.80087,0.158547 1.19518,0.158546 0.52846,1e-6 0.93503,-0.08943 1.2196,-0.268309 0.28453,-0.182935 0.42682,-0.439048 0.42682,-0.768337 0,-0.304893 -0.10363,-0.538647 -0.31098,-0.70126 -0.20326,-0.162609 -0.65248,-0.319122 -1.34766,-0.46954 l -0.39026,-0.09147 c -0.69514,-0.146347 -1.1972,-0.369937 -1.50616,-0.670771 -0.30895,-0.304892 -0.46345,-0.721582 -0.46345,-1.250073 0,-0.642308 0.22764,-1.138271 0.68297,-1.487892 0.45532,-0.349606 1.1017,-0.524413 1.93912,-0.52442 0.41469,7e-6 0.80496,0.0305 1.1708,0.09147 0.36588,0.06099 0.7033,0.152455 1.01226,0.274407"
+ id="path3493"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 657.09421,45.666955 1.12199,0 0,6.829667 -1.12199,0 0,-6.829667 m 0,-2.658691 1.12199,0 0,1.420815 -1.12199,0 0,-1.420815"
+ id="path3495"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 661.66763,43.727818 0,1.939137 2.31111,0 0,0.872002 -2.31111,0 0,3.707533 c 0,0.556945 0.0752,0.914689 0.22562,1.073233 0.1545,0.158547 0.46547,0.23782 0.93301,0.237819 l 1.15248,0 0,0.93908 -1.15248,0 c -0.86593,0 -1.4635,-0.160579 -1.79279,-0.481736 -0.3293,-0.325221 -0.49394,-0.914686 -0.49394,-1.768396 l 0,-3.707533 -0.82324,0 0,-0.872002 0.82324,0 0,-1.939137 1.1281,0"
+ id="path3497"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 665.46056,45.666955 1.12199,0 0,6.829667 -1.12199,0 0,-6.829667 m 0,-2.658691 1.12199,0 0,1.420815 -1.12199,0 0,-1.420815"
+ id="path3499"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 671.57066,46.453587 c -0.60165,6e-6 -1.07731,0.235791 -1.4269,0.707358 -0.34963,0.467512 -0.52443,1.109825 -0.52443,1.926941 0,0.817124 0.17278,1.46147 0.51832,1.93304 0.34959,0.467508 0.82728,0.701261 1.43301,0.70126 0.59757,10e-7 1.07117,-0.235785 1.4208,-0.707358 0.34964,-0.47157 0.52443,-1.113884 0.52443,-1.926942 0,-0.808986 -0.17479,-1.449266 -0.52443,-1.920843 -0.34963,-0.475632 -0.82323,-0.71345 -1.4208,-0.713456 m 0,-0.951275 c 0.97567,7e-6 1.74197,0.317098 2.2989,0.951275 0.55694,0.634188 0.83541,1.512287 0.83541,2.634299 0,1.117954 -0.27847,1.996053 -0.83541,2.6343 -0.55693,0.634183 -1.32323,0.951275 -2.2989,0.951275 -0.97975,0 -1.74807,-0.317092 -2.305,-0.951275 -0.55289,-0.638247 -0.82934,-1.516346 -0.82934,-2.6343 0,-1.122012 0.27645,-2.000111 0.82934,-2.634299 0.55693,-0.634177 1.32525,-0.951268 2.305,-0.951275"
+ id="path3501"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 682.23592,48.37443 0,4.122192 -1.12204,0 0,-4.085604 c 0,-0.646375 -0.12604,-1.130142 -0.37806,-1.451305 -0.25206,-0.32115 -0.63012,-0.481729 -1.1342,-0.481735 -0.60574,6e-6 -1.08343,0.193107 -1.43302,0.579302 -0.34963,0.386207 -0.52442,0.91266 -0.52442,1.57936 l 0,3.859982 -1.1281,0 0,-6.829667 1.1281,0 0,1.061038 c 0.26832,-0.410587 0.58338,-0.717515 0.94518,-0.920786 0.36588,-0.203256 0.78664,-0.304888 1.26226,-0.304895 0.78462,7e-6 1.37814,0.243923 1.78058,0.73175 0.40248,0.483773 0.60372,1.197229 0.60372,2.140368"
+ id="path3503"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 684.48606,45.666955 1.12199,0 0,6.829667 -1.12199,0 0,-6.829667 m 0,-2.658691 1.12199,0 0,1.420815 -1.12199,0 0,-1.420815"
+ id="path3505"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 693.62684,48.37443 0,4.122192 -1.12204,0 0,-4.085604 c 0,-0.646375 -0.12604,-1.130142 -0.37806,-1.451305 -0.25206,-0.32115 -0.63012,-0.481729 -1.1342,-0.481735 -0.60574,6e-6 -1.08343,0.193107 -1.43302,0.579302 -0.34963,0.386207 -0.52442,0.91266 -0.52442,1.57936 l 0,3.859982 -1.1281,0 0,-6.829667 1.1281,0 0,1.061038 c 0.26832,-0.410587 0.58338,-0.717515 0.94518,-0.920786 0.36588,-0.203256 0.78664,-0.304888 1.26226,-0.304895 0.78457,7e-6 1.37814,0.243923 1.78058,0.73175 0.40248,0.483773 0.60372,1.197229 0.60372,2.140368"
+ id="path3507"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 700.3711,49.002515 c 0,-0.813051 -0.16869,-1.443168 -0.50611,-1.890353 -0.33337,-0.447175 -0.80289,-0.670765 -1.40863,-0.670771 -0.60165,6e-6 -1.07121,0.223596 -1.40859,0.670771 -0.33337,0.447185 -0.50004,1.077302 -0.50004,1.890353 0,0.808993 0.16667,1.437078 0.50004,1.884257 0.33738,0.447181 0.80694,0.670771 1.40859,0.67077 0.60574,1e-6 1.07526,-0.223589 1.40863,-0.67077 0.33742,-0.447179 0.50611,-1.075264 0.50611,-1.884257 m 1.12204,2.646496 c 0,1.162669 -0.25817,2.02654 -0.77443,2.591614 -0.5163,0.569137 -1.30702,0.853706 -2.37208,0.853709 -0.39435,-3e-6 -0.76635,-0.03049 -1.11593,-0.09147 -0.34964,-0.05692 -0.68908,-0.146352 -1.01837,-0.268308 l 0,-1.091527 c 0.32929,0.17887 0.6545,0.310992 0.97567,0.396364 0.32116,0.08537 0.64843,0.128055 0.98177,0.128056 0.73581,-10e-7 1.28664,-0.193102 1.65253,-0.579301 0.36588,-0.382138 0.5488,-0.961439 0.5488,-1.737907 l 0,-0.55491 c -0.23172,0.402463 -0.52847,0.703293 -0.89027,0.902492 -0.36184,0.199198 -0.79476,0.298798 -1.29885,0.298798 -0.83746,0 -1.5123,-0.319125 -2.02452,-0.957374 -0.51221,-0.638246 -0.76832,-1.483823 -0.76832,-2.536733 0,-1.056967 0.25611,-1.904576 0.76832,-2.54283 0.51222,-0.638242 1.18706,-0.957366 2.02452,-0.957373 0.50409,7e-6 0.93701,0.09961 1.29885,0.298798 0.3618,0.199205 0.65855,0.500035 0.89027,0.902491 l 0,-1.036646 1.12204,0 0,5.982056"
+ id="path3509"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 704.09085,50.947751 1.28664,0 0,1.548871 -1.28664,0 0,-1.548871 m 0,-4.908823 1.28664,0 0,1.548871 -1.28664,0 0,-1.548871"
+ id="path3511"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 715.74398,44.227847 c -0.8944,8e-6 -1.60579,0.333361 -2.1343,1.000058 -0.52443,0.666713 -0.78664,1.575301 -0.78659,2.725769 -5e-5,1.146412 0.26216,2.052968 0.78659,2.719671 0.52851,0.666706 1.2399,1.000059 2.1343,1.000058 0.89435,10e-7 1.6017,-0.333352 2.12204,-1.000058 0.52443,-0.666703 0.78664,-1.573259 0.78664,-2.719671 0,-1.150468 -0.26221,-2.059056 -0.78664,-2.725769 -0.52034,-0.666697 -1.22769,-1.00005 -2.12204,-1.000058 m 0,-1.000058 c 1.27649,9e-6 2.29688,0.428896 3.06116,1.28666 0.76423,0.853716 1.14637,2.000123 1.14637,3.439225 0,1.435046 -0.38214,2.581453 -1.14637,3.439224 -0.76428,0.853709 -1.78467,1.280563 -3.06116,1.280563 -1.28058,0 -2.30501,-0.426854 -3.07337,-1.280563 -0.76428,-0.853706 -1.14642,-2.000113 -1.14642,-3.439224 0,-1.439102 0.38214,-2.585509 1.14642,-3.439225 0.76836,-0.857764 1.79279,-1.286651 3.07337,-1.28666"
+ id="path3513"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 727.50684,48.37443 0,4.122192 -1.12203,0 0,-4.085604 c 0,-0.646375 -0.12599,-1.130142 -0.37806,-1.451305 -0.25206,-0.32115 -0.63012,-0.481729 -1.1342,-0.481735 -0.60574,6e-6 -1.08343,0.193107 -1.43302,0.579302 -0.34963,0.386207 -0.52442,0.91266 -0.52442,1.57936 l 0,3.859982 -1.1281,0 0,-6.829667 1.1281,0 0,1.061038 c 0.26832,-0.410587 0.58338,-0.717515 0.94518,-0.920786 0.36588,-0.203256 0.78664,-0.304888 1.26226,-0.304895 0.78462,7e-6 1.37814,0.243923 1.78058,0.73175 0.40248,0.483773 0.60371,1.197229 0.60371,2.140368"
+ id="path3515"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 734.84262,43.727818 0,1.939137 2.31111,0 0,0.872002 -2.31111,0 0,3.707533 c 0,0.556945 0.0752,0.914689 0.22562,1.073233 0.1545,0.158547 0.46547,0.23782 0.93301,0.237819 l 1.15248,0 0,0.93908 -1.15248,0 c -0.86593,0 -1.4635,-0.160579 -1.79279,-0.481736 -0.3293,-0.325221 -0.49394,-0.914686 -0.49394,-1.768396 l 0,-3.707533 -0.82324,0 0,-0.872002 0.82324,0 0,-1.939137 1.1281,0"
+ id="path3517"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 744.31269,48.37443 0,4.122192 -1.12199,0 0,-4.085604 c -5e-5,-0.646375 -0.12604,-1.130142 -0.3781,-1.451305 -0.25202,-0.32115 -0.63012,-0.481729 -1.13421,-0.481735 -0.60574,6e-6 -1.08338,0.193107 -1.43301,0.579302 -0.34959,0.386207 -0.52443,0.91266 -0.52443,1.57936 l 0,3.859982 -1.1281,0 0,-9.488358 1.1281,0 0,3.719729 c 0.26832,-0.410587 0.58338,-0.717515 0.94518,-0.920786 0.36589,-0.203256 0.78664,-0.304888 1.26226,-0.304895 0.78462,7e-6 1.37815,0.243923 1.78063,0.73175 0.40243,0.483773 0.60367,1.197229 0.60367,2.140368"
+ id="path3519"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 752.40462,48.801284 0,0.548813 -5.15882,0 c 0.0488,0.772405 0.28048,1.361869 0.69518,1.768395 0.41868,0.402464 1.00004,0.603695 1.74398,0.603694 0.4309,10e-7 0.84762,-0.05285 1.25005,-0.158546 0.40657,-0.105696 0.809,-0.264242 1.20739,-0.475637 l 0,1.061037 c -0.40243,0.170742 -0.81506,0.300831 -1.23788,0.390267 -0.42277,0.08944 -0.85165,0.134154 -1.28664,0.134154 -1.08948,0 -1.95335,-0.317092 -2.5916,-0.951275 -0.6342,-0.634182 -0.95128,-1.491954 -0.95128,-2.573321 0,-1.117946 0.30082,-2.004176 0.90248,-2.658691 0.60574,-0.658568 1.4208,-0.987855 2.44527,-0.987862 0.91873,7e-6 1.6444,0.296771 2.17695,0.890295 0.5366,0.589471 0.80492,1.392363 0.80492,2.408677 m -1.122,-0.329287 c -0.008,-0.613853 -0.1809,-1.103718 -0.51832,-1.469598 -0.33338,-0.365869 -0.77649,-0.548806 -1.32934,-0.548812 -0.62608,6e-6 -1.12814,0.176845 -1.5062,0.530518 -0.37401,0.353685 -0.58948,0.851681 -0.64637,1.49399 l 4.00023,-0.0061"
+ id="path3521"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 757.56959,45.666955 1.12199,0 1.40253,5.329579 1.39642,-5.329579 1.32323,0 1.40253,5.329579 1.39642,-5.329579 1.12204,0 -1.78669,6.829667 -1.32328,0 -1.46956,-5.597887 -1.47571,5.597887 -1.32324,0 -1.78668,-6.829667"
+ id="path3523"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 774.11933,48.37443 0,4.122192 -1.12204,0 0,-4.085604 c 0,-0.646375 -0.12604,-1.130142 -0.37806,-1.451305 -0.25206,-0.32115 -0.63012,-0.481729 -1.1342,-0.481735 -0.60574,6e-6 -1.08343,0.193107 -1.43302,0.579302 -0.34963,0.386207 -0.52442,0.91266 -0.52442,1.57936 l 0,3.859982 -1.1281,0 0,-9.488358 1.1281,0 0,3.719729 c 0.26832,-0.410587 0.58338,-0.717515 0.94518,-0.920786 0.36588,-0.203256 0.78664,-0.304888 1.26226,-0.304895 0.78457,7e-6 1.37814,0.243923 1.78058,0.73175 0.40248,0.483773 0.60372,1.197229 0.60372,2.140368"
+ id="path3525"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 776.36947,45.666955 1.12199,0 0,6.829667 -1.12199,0 0,-6.829667 m 0,-2.658691 1.12199,0 0,1.420815 -1.12199,0 0,-1.420815"
+ id="path3527"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 780.94289,43.727818 0,1.939137 2.31111,0 0,0.872002 -2.31111,0 0,3.707533 c 0,0.556945 0.0752,0.914689 0.22562,1.073233 0.15449,0.158547 0.46547,0.23782 0.93296,0.237819 l 1.15253,0 0,0.93908 -1.15253,0 c -0.86588,0 -1.4635,-0.160579 -1.79275,-0.481736 -0.32929,-0.325221 -0.49393,-0.914686 -0.49393,-1.768396 l 0,-3.707533 -0.82324,0 0,-0.872002 0.82324,0 0,-1.939137 1.1281,0"
+ id="path3529"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 790.5776,48.801284 0,0.548813 -5.15886,0 c 0.0488,0.772405 0.28049,1.361869 0.69518,1.768395 0.41873,0.402464 1.00004,0.603695 1.74398,0.603694 0.4309,10e-7 0.84762,-0.05285 1.2501,-0.158546 0.40652,-0.105696 0.80895,-0.264242 1.20739,-0.475637 l 0,1.061037 c -0.40248,0.170742 -0.81511,0.300831 -1.23788,0.390267 -0.42282,0.08944 -0.8517,0.134154 -1.28669,0.134154 -1.08948,0 -1.95335,-0.317092 -2.5916,-0.951275 -0.6342,-0.634182 -0.95128,-1.491954 -0.95128,-2.573321 0,-1.117946 0.30083,-2.004176 0.90248,-2.658691 0.60574,-0.658568 1.42084,-0.987855 2.44527,-0.987862 0.91878,7e-6 1.6444,0.296771 2.17695,0.890295 0.53664,0.589471 0.80492,1.392363 0.80496,2.408677 m -1.12204,-0.329287 c -0.008,-0.613853 -0.1809,-1.103718 -0.51832,-1.469598 -0.33338,-0.365869 -0.77649,-0.548806 -1.32934,-0.548812 -0.62608,6e-6 -1.12814,0.176845 -1.5062,0.530518 -0.37401,0.353685 -0.58944,0.851681 -0.64637,1.49399 l 4.00023,-0.0061"
+ id="path3531"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 799.49882,49.063495 c -0.90652,3e-6 -1.53462,0.103667 -1.88425,0.310994 -0.34959,0.207331 -0.52443,0.56101 -0.52443,1.061037 0,0.398399 0.13012,0.71549 0.39027,0.951275 0.26428,0.231722 0.62199,0.347582 1.07323,0.347581 0.622,1e-6 1.12002,-0.219524 1.49404,-0.658575 0.37805,-0.443114 0.56708,-1.030546 0.56708,-1.762298 l 0,-0.250014 -1.11594,0 m 2.23798,-0.463442 0,3.896569 -1.12204,0 0,-1.036646 c -0.25611,0.414659 -0.57526,0.721587 -0.95735,0.920785 -0.38214,0.195133 -0.84968,0.2927 -1.40253,0.2927 -0.69926,0 -1.2562,-0.195133 -1.67084,-0.5854 -0.41061,-0.394331 -0.61589,-0.920784 -0.61589,-1.57936 0,-0.768335 0.25611,-1.347636 0.76832,-1.737906 0.5163,-0.390263 1.28462,-0.585396 2.30501,-0.5854 l 1.57328,0 0,-0.109763 c 0,-0.516285 -0.17076,-0.914682 -0.51222,-1.195191 -0.33742,-0.284564 -0.81308,-0.426848 -1.4269,-0.426854 -0.39027,6e-6 -0.77039,0.04676 -1.14032,0.140251 -0.36997,0.09351 -0.72566,0.23376 -1.06712,0.420757 l 0,-1.036646 c 0.41056,-0.158539 0.80895,-0.276432 1.19518,-0.353679 0.38618,-0.0813 0.76221,-0.121951 1.1281,-0.121958 0.98788,7e-6 1.72571,0.256119 2.21354,0.768337 0.48784,0.512231 0.73173,1.288698 0.73178,2.329404"
+ id="path3533"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 808.01155,46.715797 c -0.12603,-0.07317 -0.26428,-0.126018 -0.41469,-0.158546 -0.14633,-0.03658 -0.30896,-0.05488 -0.48784,-0.05488 -0.63416,6e-6 -1.12199,0.207335 -1.4635,0.621987 -0.33742,0.410598 -0.5061,1.002096 -0.5061,1.774494 l 0,3.597771 -1.1281,0 0,-6.829667 1.1281,0 0,1.061038 c 0.23576,-0.414652 0.5427,-0.721581 0.9208,-0.920786 0.37805,-0.203256 0.83742,-0.304888 1.3781,-0.304895 0.0772,7e-6 0.16262,0.0061 0.2561,0.01829 0.0935,0.0081 0.1972,0.02236 0.31102,0.04269 l 0.006,1.152506"
+ id="path3535"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 814.7863,48.801284 0,0.548813 -5.15882,0 c 0.0488,0.772405 0.28049,1.361869 0.69514,1.768395 0.41873,0.402464 1.00009,0.603695 1.74403,0.603694 0.4309,10e-7 0.84761,-0.05285 1.25005,-0.158546 0.40652,-0.105696 0.80899,-0.264242 1.20739,-0.475637 l 0,1.061037 c -0.40248,0.170742 -0.81506,0.300831 -1.23788,0.390267 -0.42278,0.08944 -0.85166,0.134154 -1.28664,0.134154 -1.08949,0 -1.95336,-0.317092 -2.5916,-0.951275 -0.63421,-0.634182 -0.95129,-1.491954 -0.95129,-2.573321 0,-1.117946 0.30083,-2.004176 0.90248,-2.658691 0.60574,-0.658568 1.4208,-0.987855 2.44527,-0.987862 0.91874,7e-6 1.6444,0.296771 2.17696,0.890295 0.53659,0.589471 0.80491,1.392363 0.80491,2.408677 m -1.12199,-0.329287 c -0.008,-0.613853 -0.18095,-1.103718 -0.51832,-1.469598 -0.33338,-0.365869 -0.77649,-0.548806 -1.32939,-0.548812 -0.62603,6e-6 -1.1281,0.176845 -1.50615,0.530518 -0.37401,0.353685 -0.58949,0.851681 -0.64638,1.49399 l 4.00024,-0.0061"
+ id="path3537"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 819.74393,49.063495 c -0.90657,3e-6 -1.53467,0.103667 -1.88426,0.310994 -0.34963,0.207331 -0.52442,0.56101 -0.52442,1.061037 0,0.398399 0.13007,0.71549 0.39026,0.951275 0.26424,0.231722 0.622,0.347582 1.07324,0.347581 0.62199,1e-6 1.11997,-0.219524 1.49398,-0.658575 0.37806,-0.443114 0.56708,-1.030546 0.56713,-1.762298 l 0,-0.250014 -1.11593,0 m 2.23792,-0.463442 0,3.896569 -1.12199,0 0,-1.036646 c -0.25615,0.414659 -0.57525,0.721587 -0.95739,0.920785 -0.38214,0.195133 -0.84964,0.2927 -1.40253,0.2927 -0.69922,0 -1.25615,-0.195133 -1.6708,-0.5854 -0.41061,-0.394331 -0.61593,-0.920784 -0.61593,-1.57936 0,-0.768335 0.25615,-1.347636 0.76836,-1.737906 0.5163,-0.390263 1.28462,-0.585396 2.30501,-0.5854 l 1.57328,0 0,-0.109763 c -5e-5,-0.516285 -0.17075,-0.914682 -0.51226,-1.195191 -0.33742,-0.284564 -0.81304,-0.426848 -1.42691,-0.426854 -0.39026,6e-6 -0.77034,0.04676 -1.14031,0.140251 -0.36993,0.09351 -0.72562,0.23376 -1.06713,0.420757 l 0,-1.036646 c 0.41061,-0.158539 0.809,-0.276432 1.19518,-0.353679 0.38623,-0.0813 0.76226,-0.121951 1.12815,-0.121958 0.98783,7e-6 1.72567,0.256119 2.21355,0.768337 0.48778,0.512231 0.73172,1.288698 0.73172,2.329404"
+ id="path3539"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 830.92139,46.453587 c -0.60165,6e-6 -1.07732,0.235791 -1.4269,0.707358 -0.34964,0.467512 -0.52443,1.109825 -0.52443,1.926941 0,0.817124 0.17277,1.46147 0.51832,1.93304 0.34963,0.467508 0.82727,0.701261 1.43301,0.70126 0.59762,10e-7 1.07122,-0.235785 1.4208,-0.707358 0.34964,-0.47157 0.52443,-1.113884 0.52443,-1.926942 0,-0.808986 -0.17479,-1.449266 -0.52443,-1.920843 -0.34958,-0.475632 -0.82318,-0.71345 -1.4208,-0.713456 m 0,-0.951275 c 0.97567,7e-6 1.74197,0.317098 2.2989,0.951275 0.55694,0.634188 0.83545,1.512287 0.83545,2.634299 0,1.117954 -0.27851,1.996053 -0.83545,2.6343 -0.55693,0.634183 -1.32323,0.951275 -2.2989,0.951275 -0.97975,0 -1.74807,-0.317092 -2.305,-0.951275 -0.5529,-0.638247 -0.82934,-1.516346 -0.82934,-2.6343 0,-1.122012 0.27644,-2.000111 0.82934,-2.634299 0.55693,-0.634177 1.32525,-0.951268 2.305,-0.951275"
+ id="path3541"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 841.58664,48.37443 0,4.122192 -1.12203,0 0,-4.085604 c 0,-0.646375 -0.12599,-1.130142 -0.37806,-1.451305 -0.25206,-0.32115 -0.63012,-0.481729 -1.1342,-0.481735 -0.60574,6e-6 -1.08339,0.193107 -1.43302,0.579302 -0.34963,0.386207 -0.52442,0.91266 -0.52442,1.57936 l 0,3.859982 -1.1281,0 0,-6.829667 1.1281,0 0,1.061038 c 0.26832,-0.410587 0.58338,-0.717515 0.94518,-0.920786 0.36588,-0.203256 0.78664,-0.304888 1.26226,-0.304895 0.78461,7e-6 1.37814,0.243923 1.78062,0.73175 0.40243,0.483773 0.60367,1.197229 0.60367,2.140368"
+ id="path3543"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 843.83678,43.008264 1.122,0 0,9.488358 -1.122,0 0,-9.488358"
+ id="path3545"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 850.14202,53.130805 c -0.31708,0.813054 -0.62603,1.343572 -0.92686,1.591556 -0.30087,0.247979 -0.7033,0.37197 -1.20739,0.371973 l -0.89642,0 0,-0.939079 0.65859,0 c 0.30895,-2e-6 0.5488,-0.07318 0.71956,-0.219525 0.17075,-0.146352 0.35978,-0.4919 0.56708,-1.036646 l 0.20124,-0.512225 -2.76236,-6.719904 1.18912,0 2.13426,5.341775 2.13425,-5.341775 1.18912,0 -3.00019,7.46385"
+ id="path3547"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 853.08124,50.947751 1.28664,0 0,1.548871 -1.28664,0 0,-1.548871"
+ id="path3549"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 588.79755,62.12523 1.23177,0 0,8.067546 4.4332,0 0,1.036644 -5.66497,0 0,-9.10419"
+ id="path3551"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 598.80421,67.796291 c -0.90656,4e-6 -1.53462,0.103668 -1.88425,0.310996 -0.34959,0.207333 -0.52443,0.561011 -0.52443,1.061039 0,0.398398 0.13012,0.715487 0.39027,0.951272 0.26423,0.231722 0.62199,0.347581 1.07323,0.347581 0.622,0 1.11998,-0.219523 1.49399,-0.658573 0.3781,-0.443113 0.56713,-1.030547 0.56713,-1.762297 l 0,-0.250018 -1.11594,0 m 2.23793,-0.46344 0,3.896569 -1.12199,0 0,-1.036644 c -0.25611,0.414656 -0.57526,0.721584 -0.9574,0.920786 -0.38214,0.195133 -0.84963,0.292695 -1.40252,0.2927 -0.69922,-5e-6 -1.25616,-0.195134 -1.6708,-0.5854 -0.41061,-0.394335 -0.61589,-0.920786 -0.61589,-1.579364 0,-0.768333 0.25611,-1.347636 0.76832,-1.737907 0.5163,-0.390262 1.28462,-0.585396 2.30501,-0.5854 l 1.57328,0 0,-0.109762 c 0,-0.516286 -0.17076,-0.914679 -0.51222,-1.195189 -0.33742,-0.284564 -0.81308,-0.42685 -1.4269,-0.426855 -0.39032,5e-6 -0.77039,0.04676 -1.14032,0.140253 -0.36997,0.09351 -0.72566,0.23376 -1.06717,0.420753 l 0,-1.036645 c 0.41061,-0.15854 0.809,-0.276432 1.19523,-0.353678 0.38618,-0.0813 0.76221,-0.121951 1.1281,-0.12196 0.98788,9e-6 1.72571,0.25612 2.21354,0.768338 0.48784,0.512232 0.73173,1.288697 0.73173,2.329405"
+ id="path3553"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 607.71327,64.600985 0,1.061039 c -0.31708,-0.162608 -0.64638,-0.284564 -0.98784,-0.365878 -0.3415,-0.0813 -0.69518,-0.121951 -1.06106,-0.121956 -0.55694,5e-6 -0.97567,0.08538 -1.25616,0.256112 -0.27644,0.170748 -0.41464,0.426859 -0.41464,0.768338 0,0.260179 0.0996,0.465478 0.29876,0.615887 0.19922,0.146354 0.59963,0.286607 1.20133,0.420758 l 0.38416,0.08537 c 0.79679,0.170744 1.36185,0.412626 1.69523,0.725652 0.33737,0.308963 0.5061,0.741915 0.5061,1.298853 0,0.634188 -0.25206,1.136246 -0.75615,1.506186 -0.5,0.369941 -1.18907,0.554909 -2.06717,0.554914 -0.36589,-5e-6 -0.74803,-0.03659 -1.14642,-0.109766 -0.39431,-0.06911 -0.81102,-0.174808 -1.25005,-0.31709 l 0,-1.158605 c 0.41465,0.215459 0.82319,0.378072 1.22567,0.487833 0.40243,0.105698 0.80087,0.158545 1.19518,0.158545 0.52846,0 0.93503,-0.08943 1.2196,-0.268306 0.28453,-0.182939 0.42682,-0.43905 0.42682,-0.768339 0,-0.304894 -0.10363,-0.538646 -0.31098,-0.701258 -0.20326,-0.162608 -0.65248,-0.319123 -1.34766,-0.469541 l -0.39026,-0.09147 c -0.69514,-0.146345 -1.1972,-0.369936 -1.50616,-0.670772 -0.30895,-0.30489 -0.46345,-0.72158 -0.46345,-1.25007 0,-0.642309 0.22764,-1.138274 0.68297,-1.487893 0.45532,-0.349606 1.1017,-0.524413 1.93912,-0.524422 0.41469,9e-6 0.80496,0.03049 1.1708,0.09147 0.36588,0.06099 0.7033,0.152457 1.01226,0.274408"
+ id="path3555"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 615.71373,67.534082 0,0.548811 -5.15882,0 c 0.0488,0.772407 0.28049,1.36187 0.69518,1.768399 0.41869,0.402462 1.00005,0.603692 1.74399,0.603692 0.4309,0 0.84761,-0.05285 1.25005,-0.158544 0.40656,-0.105698 0.809,-0.264243 1.20739,-0.475639 l 0,1.061039 c -0.40244,0.170739 -0.81506,0.300831 -1.23788,0.390266 -0.42277,0.08944 -0.85165,0.134151 -1.28664,0.134156 -1.08949,-5e-6 -1.95335,-0.317094 -2.5916,-0.951278 -0.63421,-0.634183 -0.95129,-1.491952 -0.95129,-2.573321 0,-1.117944 0.30083,-2.004176 0.90248,-2.658689 0.60574,-0.658568 1.4208,-0.987857 2.44528,-0.987866 0.91873,9e-6 1.6444,0.296772 2.17695,0.890299 0.53659,0.589468 0.80491,1.392361 0.80491,2.408675 m -1.12199,-0.329289 c -0.008,-0.613852 -0.1809,-1.103715 -0.51832,-1.469597 -0.33338,-0.365868 -0.77649,-0.548806 -1.32934,-0.548811 -0.62608,5e-6 -1.12815,0.176846 -1.5062,0.530519 -0.37401,0.353683 -0.58949,0.851681 -0.64637,1.493987 l 4.00023,-0.0061"
+ id="path3557"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 621.51286,65.448594 c -0.12603,-0.07317 -0.26423,-0.126015 -0.41464,-0.158545 -0.14638,-0.03659 -0.309,-0.05488 -0.48784,-0.05488 -0.6342,5e-6 -1.12204,0.207333 -1.4635,0.621989 -0.33742,0.410597 -0.50615,1.002094 -0.50615,1.774492 l 0,3.597771 -1.1281,0 0,-6.829666 1.1281,0 0,1.061039 c 0.23581,-0.414656 0.54275,-0.72158 0.9208,-0.920786 0.37805,-0.20326 0.83742,-0.30489 1.37815,-0.304899 0.0772,9e-6 0.16258,0.0061 0.2561,0.01832 0.0935,0.0081 0.19716,0.02236 0.31098,0.0427 l 0.006,1.152503"
+ id="path3559"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 627.95837,66.881607 0,3.335558 1.97571,0 c 0.66263,0 1.15248,-0.136185 1.46961,-0.408559 0.32117,-0.276437 0.48173,-0.697195 0.48173,-1.262269 0,-0.569137 -0.16056,-0.987861 -0.48173,-1.256172 -0.31713,-0.272369 -0.80698,-0.408554 -1.46961,-0.408558 l -1.97571,0 m 0,-3.744122 0,2.744061 1.82328,0 c 0.60165,5e-6 1.04881,-0.11179 1.34151,-0.335386 0.29678,-0.227649 0.44518,-0.573196 0.44518,-1.036644 0,-0.459367 -0.1484,-0.802884 -0.44518,-1.030547 -0.2927,-0.22765 -0.73986,-0.341475 -1.34151,-0.341484 l -1.82328,0 m -1.23177,-1.012255 3.14651,0 c 0.93907,9e-6 1.66267,0.195143 2.17085,0.5854 0.50817,0.390276 0.76226,0.945184 0.76226,1.66473 0,0.556952 -0.13012,1.000066 -0.39027,1.32935 -0.26019,0.329288 -0.64233,0.534587 -1.14642,0.615886 0.60574,0.130097 1.07525,0.402466 1.40863,0.817122 0.33738,0.410597 0.50611,0.924854 0.50611,1.542775 0,0.813053 -0.27645,1.441139 -0.82929,1.884253 -0.5529,0.443118 -1.33954,0.664674 -2.35992,0.664674 l -3.26846,0 0,-9.10419"
+ id="path3561"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 641.08106,67.534082 0,0.548811 -5.15882,0 c 0.0488,0.772407 0.28049,1.36187 0.69518,1.768399 0.41869,0.402462 1.00005,0.603692 1.74399,0.603692 0.4309,0 0.84761,-0.05285 1.25005,-0.158544 0.40656,-0.105698 0.809,-0.264243 1.20739,-0.475639 l 0,1.061039 c -0.40243,0.170739 -0.81506,0.300831 -1.23788,0.390266 -0.42277,0.08944 -0.85165,0.134151 -1.28664,0.134156 -1.08949,-5e-6 -1.95335,-0.317094 -2.5916,-0.951278 -0.63421,-0.634183 -0.95129,-1.491952 -0.95129,-2.573321 0,-1.117944 0.30083,-2.004176 0.90248,-2.658689 0.60574,-0.658568 1.4208,-0.987857 2.44528,-0.987866 0.91873,9e-6 1.6444,0.296772 2.17695,0.890299 0.53659,0.589468 0.80491,1.392361 0.80491,2.408675 m -1.12199,-0.329289 c -0.008,-0.613852 -0.1809,-1.103715 -0.51832,-1.469597 -0.33338,-0.365868 -0.77649,-0.548806 -1.32934,-0.548811 -0.62608,5e-6 -1.12815,0.176846 -1.5062,0.530519 -0.37401,0.353683 -0.58949,0.851681 -0.64637,1.493987 l 4.00023,-0.0061"
+ id="path3563"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 646.02647,67.796291 c -0.90656,4e-6 -1.53462,0.103668 -1.88425,0.310996 -0.34959,0.207333 -0.52442,0.561011 -0.52442,1.061039 0,0.398398 0.13011,0.715487 0.39026,0.951272 0.26424,0.231722 0.622,0.347581 1.07324,0.347581 0.62199,0 1.11997,-0.219523 1.49398,-0.658573 0.3781,-0.443113 0.56713,-1.030547 0.56713,-1.762297 l 0,-0.250018 -1.11594,0 m 2.23793,-0.46344 0,3.896569 -1.12199,0 0,-1.036644 c -0.25611,0.414656 -0.57526,0.721584 -0.95739,0.920786 -0.38214,0.195133 -0.84964,0.292695 -1.40253,0.2927 -0.69922,-5e-6 -1.25615,-0.195134 -1.6708,-0.5854 -0.41061,-0.394335 -0.61589,-0.920786 -0.61589,-1.579364 0,-0.768333 0.25611,-1.347636 0.76832,-1.737907 0.5163,-0.390262 1.28462,-0.585396 2.30501,-0.5854 l 1.57328,0 0,-0.109762 c 0,-0.516286 -0.17076,-0.914679 -0.51222,-1.195189 -0.33742,-0.284564 -0.81308,-0.42685 -1.4269,-0.426855 -0.39031,5e-6 -0.77039,0.04676 -1.14032,0.140253 -0.36997,0.09351 -0.72566,0.23376 -1.06717,0.420753 l 0,-1.036645 c 0.41061,-0.15854 0.809,-0.276432 1.19523,-0.353678 0.38618,-0.0813 0.76221,-0.121951 1.1281,-0.12196 0.98783,9e-6 1.72571,0.25612 2.21354,0.768338 0.48784,0.512232 0.73173,1.288697 0.73173,2.329405"
+ id="path3565"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 655.89903,65.710807 c 0.28048,-0.504091 0.61588,-0.876061 1.00615,-1.115919 0.39027,-0.239844 0.84963,-0.359771 1.3781,-0.35978 0.71143,9e-6 1.26024,0.250023 1.64647,0.750046 0.38618,0.49597 0.57929,1.203325 0.57929,2.122073 l 0,4.122193 -1.1281,0 0,-4.085605 c -5e-5,-0.654504 -0.11589,-1.140304 -0.34761,-1.457402 -0.23173,-0.317085 -0.5854,-0.475629 -1.06102,-0.475639 -0.58136,1e-5 -1.04073,0.193109 -1.37815,0.579303 -0.33742,0.386208 -0.50611,0.912659 -0.50611,1.579363 l 0,3.85998 -1.1281,0 0,-4.085605 c -4e-5,-0.658568 -0.11588,-1.144372 -0.34761,-1.457402 -0.23173,-0.317085 -0.58944,-0.475629 -1.07323,-0.475639 -0.57319,1e-5 -1.02852,0.195143 -1.36594,0.5854 -0.33742,0.386208 -0.5061,0.91063 -0.5061,1.573266 l 0,3.85998 -1.12815,0 0,-6.829666 1.12815,0 0,1.061039 c 0.2561,-0.418719 0.56304,-0.727682 0.92075,-0.926883 0.35776,-0.199192 0.7826,-0.298793 1.27447,-0.298802 0.49596,9e-6 0.91672,0.126033 1.26226,0.378072 0.34964,0.252052 0.60776,0.61793 0.77448,1.097627"
+ id="path3567"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 673.59518,62.826493 0,1.298853 c -0.41469,-0.386194 -0.8578,-0.674826 -1.32938,-0.865905 -0.46749,-0.191056 -0.96548,-0.286593 -1.49399,-0.286598 -1.04068,5e-6 -1.83751,0.319133 -2.39036,0.95737 -0.55289,0.634193 -0.82934,1.552944 -0.82934,2.75626 0,1.199258 0.27645,2.11801 0.82934,2.756256 0.55285,0.634188 1.34968,0.951277 2.39036,0.951277 0.52851,0 1.0265,-0.09553 1.49399,-0.286602 0.47158,-0.191066 0.91469,-0.479702 1.32938,-0.865906 l 0,1.286664 c -0.43094,0.2927 -0.88829,0.512222 -1.37204,0.658572 -0.4797,0.14635 -0.98787,0.219523 -1.52447,0.219528 -1.37814,-5e-6 -2.46359,-0.420758 -3.25629,-1.26227 -0.79275,-0.845579 -1.18912,-1.998082 -1.18912,-3.457519 0,-1.463495 0.39637,-2.615998 1.18912,-3.457518 0.7927,-0.84557 1.87815,-1.268358 3.25629,-1.268367 0.54472,9e-6 1.05694,0.07318 1.53664,0.219523 0.48379,0.142295 0.93706,0.357755 1.35987,0.646382"
+ id="path3569"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 675.34528,68.534143 0,-4.134389 1.12199,0 0,4.091703 c 0,0.646378 0.12603,1.132181 0.3781,1.457402 0.25202,0.321157 0.63007,0.481736 1.13421,0.481736 0.60569,0 1.08338,-0.193104 1.43301,-0.579303 0.35367,-0.386203 0.53049,-0.912654 0.53049,-1.579363 l 0,-3.872175 1.12204,0 0,6.829666 -1.12204,0 0,-1.048844 c -0.27236,0.414661 -0.58944,0.723624 -0.95124,0.926884 -0.35776,0.199201 -0.77448,0.298797 -1.2501,0.298802 -0.78462,-5e-6 -1.38016,-0.243917 -1.78668,-0.73175 -0.40652,-0.487834 -0.60978,-1.201292 -0.60978,-2.140369"
+ id="path3571"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 684.49822,62.460616 0,1.939138 2.31112,0 0,0.872003 -2.31112,0 0,3.707533 c 0,0.556942 0.0752,0.914688 0.22562,1.073233 0.1545,0.158545 0.46548,0.237819 0.93302,0.237819 l 1.15248,0 0,0.939078 -1.15248,0 c -0.86594,0 -1.4635,-0.160578 -1.7928,-0.481736 -0.32929,-0.32522 -0.49394,-0.914684 -0.49394,-1.768394 l 0,-3.707533 -0.82323,0 0,-0.872003 0.82323,0 0,-1.939138 1.1281,0"
+ id="path3573"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 692.64506,64.600985 0,1.061039 c -0.31712,-0.162608 -0.64637,-0.284564 -0.98788,-0.365878 -0.34146,-0.0813 -0.69513,-0.121951 -1.06102,-0.121956 -0.55693,5e-6 -0.97566,0.08538 -1.2562,0.256112 -0.2764,0.170748 -0.41464,0.426859 -0.41464,0.768338 0,0.260179 0.0996,0.465478 0.2988,0.615887 0.19922,0.146354 0.59964,0.286607 1.20129,0.420758 l 0.38416,0.08537 c 0.79679,0.170744 1.36189,0.412626 1.69523,0.725652 0.33742,0.308963 0.5061,0.741915 0.50615,1.298853 -5e-5,0.634188 -0.25207,1.136246 -0.75615,1.506186 -0.50005,0.369941 -1.18912,0.554909 -2.06722,0.554914 -0.36584,-5e-6 -0.74798,-0.03659 -1.14638,-0.109766 -0.39435,-0.06911 -0.81102,-0.174808 -1.25009,-0.31709 l 0,-1.158605 c 0.41465,0.215459 0.82323,0.378072 1.22567,0.487833 0.40248,0.105698 0.80087,0.158545 1.19522,0.158545 0.52847,0 0.93499,-0.08943 1.21956,-0.268306 0.28458,-0.182939 0.42686,-0.43905 0.42686,-0.768339 0,-0.304894 -0.10367,-0.538646 -0.31097,-0.701258 -0.20331,-0.162608 -0.65248,-0.319123 -1.34766,-0.469541 l -0.39027,-0.09147 c -0.69518,-0.146345 -1.19724,-0.369936 -1.5062,-0.670772 -0.30895,-0.30489 -0.4634,-0.72158 -0.4634,-1.25007 0,-0.642309 0.22764,-1.138274 0.68296,-1.487893 0.45528,-0.349606 1.10166,-0.524413 1.93912,-0.524422 0.41465,9e-6 0.80492,0.03049 1.1708,0.09147 0.36589,0.06099 0.70331,0.152457 1.01226,0.274408"
+ id="path3575"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 701.87119,63.338716 -1.6708,4.530752 3.34776,0 -1.67696,-4.530752 m -0.69513,-1.213486 1.39642,0 3.4697,9.10419 -1.28058,0 -0.82929,-2.335502 -4.10391,0 -0.82934,2.335502 -1.29885,0 3.47585,-9.10419"
+ id="path3577"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 706.16413,64.399754 1.12204,0 1.40252,5.329578 1.39642,-5.329578 1.32324,0 1.40252,5.329578 1.39642,-5.329578 1.122,0 -1.78669,6.829666 -1.32323,0 -1.46961,-5.597888 -1.47567,5.597888 -1.32328,0 -1.78668,-6.829666"
+ id="path3579"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 720.15275,67.796291 c -0.90656,4e-6 -1.53466,0.103668 -1.88425,0.310996 -0.34963,0.207333 -0.52443,0.561011 -0.52443,1.061039 0,0.398398 0.13008,0.715487 0.39027,0.951272 0.26423,0.231722 0.62199,0.347581 1.07323,0.347581 0.622,0 1.11998,-0.219523 1.49399,-0.658573 0.37805,-0.443113 0.56713,-1.030547 0.56713,-1.762297 l 0,-0.250018 -1.11594,0 m 2.23793,-0.46344 0,3.896569 -1.12199,0 0,-1.036644 c -0.25616,0.414656 -0.57526,0.721584 -0.9574,0.920786 -0.38214,0.195133 -0.84963,0.292695 -1.40252,0.2927 -0.69922,-5e-6 -1.25616,-0.195134 -1.6708,-0.5854 -0.41061,-0.394335 -0.61589,-0.920786 -0.61589,-1.579364 0,-0.768333 0.25611,-1.347636 0.76832,-1.737907 0.5163,-0.390262 1.28462,-0.585396 2.30501,-0.5854 l 1.57328,0 0,-0.109762 c 0,-0.516286 -0.17076,-0.914679 -0.51226,-1.195189 -0.33742,-0.284564 -0.81304,-0.42685 -1.42691,-0.426855 -0.39027,5e-6 -0.77034,0.04676 -1.14031,0.140253 -0.36993,0.09351 -0.72562,0.23376 -1.06713,0.420753 l 0,-1.036645 c 0.41061,-0.15854 0.809,-0.276432 1.19518,-0.353678 0.38623,-0.0813 0.76226,-0.121951 1.12815,-0.12196 0.98783,9e-6 1.72571,0.25612 2.21354,0.768338 0.48784,0.512232 0.73173,1.288697 0.73173,2.329405"
+ id="path3581"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 727.5495,71.863603 c -0.31708,0.813054 -0.62603,1.343574 -0.92686,1.591558 -0.30083,0.247976 -0.70331,0.37197 -1.20739,0.37197 l -0.89638,0 0,-0.939078 0.65854,0 c 0.309,0 0.54881,-0.07318 0.71956,-0.219527 0.17076,-0.14635 0.35978,-0.491897 0.56713,-1.036644 l 0.20124,-0.512223 -2.76235,-6.719905 1.18907,0 2.13425,5.341772 2.1343,-5.341772 1.18907,0 -3.00018,7.463849"
+ id="path3583"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 731.49486,69.680548 1.28669,0 0,1.548872 -1.28669,0 0,-1.548872 m 0,-4.908824 1.28669,0 0,1.548872 -1.28669,0 0,-1.548872"
+ id="path3585"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 742.20892,62.936255 c -0.6342,9e-6 -1.11184,0.313035 -1.43301,0.939077 -0.31708,0.621994 -0.47562,1.559042 -0.47562,2.811141 0,1.248041 0.15854,2.185089 0.47562,2.811137 0.32117,0.621988 0.79881,0.932985 1.43301,0.932985 0.63825,0 1.11589,-0.310997 1.43302,-0.932985 0.32116,-0.626048 0.48172,-1.563096 0.48172,-2.811137 0,-1.252099 -0.16056,-2.189147 -0.48172,-2.811141 -0.31713,-0.626042 -0.79477,-0.939068 -1.43302,-0.939077 m 0,-0.975667 c 1.02039,9e-6 1.79886,0.404504 2.3355,1.213486 0.54068,0.804932 0.81102,1.975732 0.81102,3.512399 0,1.53261 -0.27034,2.703409 -0.81102,3.5124 -0.53664,0.804923 -1.31511,1.207384 -2.3355,1.207389 -1.02038,-5e-6 -1.80092,-0.402466 -2.3416,-1.207389 -0.53664,-0.808991 -0.80491,-1.97979 -0.80491,-3.5124 0,-1.536667 0.26827,-2.707467 0.80491,-3.512399 0.54068,-0.808982 1.32122,-1.213477 2.3416,-1.213486"
+ id="path3587"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 747.52628,69.680548 1.28669,0 0,1.548872 -1.28669,0 0,-1.548872"
+ id="path3589"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 751.71559,70.192776 2.0123,0 0,-6.945529 -2.18916,0.43905 0,-1.122017 2.17695,-0.43905 1.23178,0 0,8.067546 2.0123,0 0,1.036644 -5.24417,0 0,-1.036644"
+ id="path3591"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 762.70403,67.308457 3.28678,0 0,1.000061 -3.28678,0 0,-1.000061"
+ id="path3593"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 774.55225,62.936255 c -0.63416,9e-6 -1.11185,0.313035 -1.43297,0.939077 -0.31713,0.621994 -0.47567,1.559042 -0.47567,2.811141 0,1.248041 0.15854,2.185089 0.47567,2.811137 0.32112,0.621988 0.79881,0.932985 1.43297,0.932985 0.63824,0 1.11593,-0.310997 1.43301,-0.932985 0.32117,-0.626048 0.48173,-1.563096 0.48177,-2.811137 -4e-5,-1.252099 -0.1606,-2.189147 -0.48177,-2.811141 -0.31708,-0.626042 -0.79477,-0.939068 -1.43301,-0.939077 m 0,-0.975667 c 1.02038,9e-6 1.7989,0.404504 2.33554,1.213486 0.54068,0.804932 0.81102,1.975732 0.81102,3.512399 0,1.53261 -0.27034,2.703409 -0.81102,3.5124 -0.53664,0.804923 -1.31516,1.207384 -2.33554,1.207389 -1.02039,-5e-6 -1.80092,-0.402466 -2.3416,-1.207389 -0.5366,-0.808991 -0.80492,-1.97979 -0.80492,-3.5124 0,-1.536667 0.26832,-2.707467 0.80492,-3.512399 0.54068,-0.808982 1.32121,-1.213477 2.3416,-1.213486"
+ id="path3595"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 779.86965,69.680548 1.28664,0 0,1.548872 -1.28664,0 0,-1.548872"
+ id="path3597"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 784.90652,70.192776 4.29904,0 0,1.036644 -5.78081,0 0,-1.036644 c 0.46749,-0.48377 1.10372,-1.132178 1.90863,-1.945236 0.809,-0.817117 1.31713,-1.343573 1.52448,-1.579363 0.3943,-0.443109 0.66873,-0.817113 0.82323,-1.122017 0.15854,-0.308953 0.23779,-0.611814 0.23779,-0.908586 0,-0.483761 -0.17071,-0.878096 -0.51222,-1.182999 -0.33742,-0.304886 -0.77851,-0.457333 -1.32323,-0.457342 -0.38623,9e-6 -0.79477,0.06708 -1.22567,0.20123 -0.42686,0.134165 -0.8842,0.337425 -1.37204,0.609794 l 0,-1.243977 c 0.49596,-0.199188 0.95942,-0.349605 1.39032,-0.451245 0.4309,-0.10162 0.82525,-0.152438 1.18301,-0.152447 0.94311,9e-6 1.69518,0.235795 2.2562,0.707356 0.56102,0.47158 0.84151,1.1017 0.84151,1.890355 0,0.374013 -0.0711,0.729725 -0.21341,1.067136 -0.13825,0.333356 -0.39229,0.727691 -0.76226,1.182994 -0.10161,0.117898 -0.42479,0.459381 -0.96956,1.02445 -0.54477,0.561011 -1.31309,1.347641 -2.30501,2.359897"
+ id="path3599"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 796.95603,65.710807 c 0.28049,-0.504091 0.61589,-0.876061 1.00615,-1.115919 0.39022,-0.239844 0.84964,-0.359771 1.3781,-0.35978 0.71144,9e-6 1.26024,0.250023 1.64647,0.750046 0.38618,0.49597 0.57929,1.203325 0.57929,2.122073 l 0,4.122193 -1.1281,0 0,-4.085605 c -4e-5,-0.654504 -0.11588,-1.140304 -0.34761,-1.457402 -0.23173,-0.317085 -0.5854,-0.475629 -1.06102,-0.475639 -0.58136,1e-5 -1.04073,0.193109 -1.37815,0.579303 -0.33742,0.386208 -0.5061,0.912659 -0.5061,1.579363 l 0,3.85998 -1.12815,0 0,-4.085605 c 0,-0.658568 -0.11584,-1.144372 -0.34757,-1.457402 -0.23172,-0.317085 -0.58944,-0.475629 -1.07323,-0.475639 -0.57319,1e-5 -1.02851,0.195143 -1.36593,0.5854 -0.33742,0.386208 -0.50611,0.91063 -0.50611,1.573266 l 0,3.85998 -1.12815,0 0,-6.829666 1.12815,0 0,1.061039 c 0.25611,-0.418719 0.56304,-0.727682 0.92075,-0.926883 0.35776,-0.199192 0.7826,-0.298793 1.27448,-0.298802 0.49596,9e-6 0.91671,0.126033 1.26226,0.378072 0.34963,0.252052 0.60776,0.61793 0.77447,1.097627"
+ id="path3601"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 809.12744,65.710807 c 0.28053,-0.504091 0.61588,-0.876061 1.00615,-1.115919 0.39027,-0.239844 0.84963,-0.359771 1.37814,-0.35978 0.71144,9e-6 1.26024,0.250023 1.64642,0.750046 0.38623,0.49597 0.5793,1.203325 0.57934,2.122073 l 0,4.122193 -1.12814,0 0,-4.085605 c 0,-0.654504 -0.11584,-1.140304 -0.34757,-1.457402 -0.23173,-0.317085 -0.5854,-0.475629 -1.06102,-0.475639 -0.58136,1e-5 -1.04073,0.193109 -1.37814,0.579303 -0.33742,0.386208 -0.50616,0.912659 -0.50616,1.579363 l 0,3.85998 -1.1281,0 0,-4.085605 c 0,-0.658568 -0.11584,-1.144372 -0.34756,-1.457402 -0.23173,-0.317085 -0.58949,-0.475629 -1.07324,-0.475639 -0.57323,1e-5 -1.02851,0.195143 -1.36593,0.5854 -0.33742,0.386208 -0.50615,0.91063 -0.50615,1.573266 l 0,3.85998 -1.1281,0 0,-6.829666 1.1281,0 0,1.061039 c 0.2561,-0.418719 0.56304,-0.727682 0.9208,-0.926883 0.35776,-0.199192 0.78255,-0.298793 1.27447,-0.298802 0.49596,9e-6 0.91671,0.126033 1.26226,0.378072 0.34963,0.252052 0.60776,0.61793 0.77443,1.097627"
+ id="path3603"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 824.86009,67.820685 c 0,-0.825249 -0.17075,-1.471627 -0.51226,-1.939139 -0.33742,-0.471566 -0.80289,-0.707351 -1.39642,-0.707356 -0.59352,5e-6 -1.06102,0.23579 -1.40252,0.707356 -0.33742,0.467512 -0.50611,1.11389 -0.50611,1.939139 0,0.825253 0.16869,1.473665 0.50611,1.945235 0.3415,0.467508 0.809,0.701259 1.40252,0.701259 0.59353,0 1.059,-0.233751 1.39642,-0.701259 0.34151,-0.47157 0.51226,-1.119982 0.51226,-1.945235 m -3.81731,-2.384286 c 0.23577,-0.40652 0.53255,-0.707351 0.89031,-0.902489 0.3618,-0.199192 0.7927,-0.298793 1.29275,-0.298802 0.82929,9e-6 1.50211,0.329298 2.01841,0.987866 0.52034,0.658577 0.78054,1.524482 0.78054,2.597711 0,1.073237 -0.2602,1.939138 -0.78054,2.597711 -0.5163,0.658577 -1.18912,0.987861 -2.01841,0.987866 -0.50005,-5e-6 -0.93095,-0.09757 -1.29275,-0.2927 -0.35776,-0.199202 -0.65454,-0.502062 -0.89031,-0.908592 l 0,1.02445 -1.1281,0 0,-9.488359 1.1281,0 0,3.695338"
+ id="path3605"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 830.53113,65.186385 c -0.60166,5e-6 -1.07728,0.23579 -1.42691,0.707356 -0.34959,0.467512 -0.52443,1.109826 -0.52443,1.926944 0,0.817122 0.17278,1.46147 0.51832,1.933041 0.34964,0.467507 0.82732,0.701258 1.43302,0.701258 0.59761,0 1.07121,-0.235785 1.42084,-0.707356 0.34959,-0.47157 0.52438,-1.113885 0.52438,-1.926943 0,-0.808986 -0.17479,-1.449267 -0.52438,-1.920842 -0.34963,-0.475634 -0.82323,-0.713453 -1.42084,-0.713458 m 0,-0.951277 c 0.97566,9e-6 1.74196,0.317098 2.29894,0.951277 0.55694,0.634188 0.8354,1.512288 0.8354,2.6343 0,1.117953 -0.27846,1.996053 -0.8354,2.634299 -0.55698,0.634184 -1.32328,0.951273 -2.29894,0.951278 -0.97971,-5e-6 -1.74808,-0.317094 -2.30501,-0.951278 -0.55289,-0.638246 -0.82929,-1.516346 -0.82929,-2.634299 0,-1.122012 0.2764,-2.000112 0.82929,-2.6343 0.55693,-0.634179 1.3253,-0.951268 2.30501,-0.951277"
+ id="path3607"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 836.62906,62.460616 0,1.939138 2.31112,0 0,0.872003 -2.31112,0 0,3.707533 c 0,0.556942 0.0752,0.914688 0.22563,1.073233 0.15445,0.158545 0.46547,0.237819 0.93296,0.237819 l 1.15253,0 0,0.939078 -1.15253,0 c -0.86589,0 -1.4635,-0.160578 -1.79279,-0.481736 -0.32929,-0.32522 -0.49394,-0.914684 -0.49394,-1.768394 l 0,-3.707533 -0.82319,0 0,-0.872003 0.82319,0 0,-1.939138 1.12814,0"
+ id="path3609"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 846.09909,67.107227 0,4.122193 -1.12199,0 0,-4.085605 c 0,-0.646373 -0.12604,-1.130143 -0.3781,-1.451305 -0.25202,-0.321148 -0.63012,-0.481726 -1.13421,-0.481736 -0.60574,1e-5 -1.08338,0.193109 -1.43301,0.579303 -0.34959,0.386208 -0.52443,0.912659 -0.52443,1.579363 l 0,3.85998 -1.1281,0 0,-9.488359 1.1281,0 0,3.719732 c 0.26832,-0.410588 0.58338,-0.717517 0.94518,-0.920786 0.36589,-0.20326 0.78664,-0.30489 1.26231,-0.304899 0.78457,9e-6 1.3781,0.243926 1.78058,0.73175 0.40243,0.483774 0.60367,1.197232 0.60367,2.140369"
+ id="path3611"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 856.67899,64.600985 0,1.061039 c -0.31708,-0.162608 -0.64637,-0.284564 -0.98783,-0.365878 -0.34151,-0.0813 -0.69518,-0.121951 -1.06107,-0.121956 -0.55693,5e-6 -0.97567,0.08538 -1.25615,0.256112 -0.27645,0.170748 -0.41465,0.426859 -0.41465,0.768338 0,0.260179 0.0996,0.465478 0.29881,0.615887 0.19917,0.146354 0.59958,0.286607 1.20128,0.420758 l 0.38416,0.08537 c 0.79679,0.170744 1.36185,0.412626 1.69523,0.725652 0.33742,0.308963 0.50611,0.741915 0.50611,1.298853 0,0.634188 -0.25207,1.136246 -0.75616,1.506186 -0.5,0.369941 -1.18907,0.554909 -2.06717,0.554914 -0.36589,-5e-6 -0.74803,-0.03659 -1.14642,-0.109766 -0.39431,-0.06911 -0.81102,-0.174808 -1.25005,-0.31709 l 0,-1.158605 c 0.41465,0.215459 0.82319,0.378072 1.22567,0.487833 0.40248,0.105698 0.80087,0.158545 1.19518,0.158545 0.52851,0 0.93503,-0.08943 1.21961,-0.268306 0.28457,-0.182939 0.42681,-0.43905 0.42686,-0.768339 -5e-5,-0.304894 -0.10368,-0.538646 -0.31102,-0.701258 -0.20326,-0.162608 -0.65248,-0.319123 -1.34762,-0.469541 l -0.39026,-0.09147 c -0.69518,-0.146345 -1.19725,-0.369936 -1.5062,-0.670772 -0.30896,-0.30489 -0.46346,-0.72158 -0.46346,-1.25007 0,-0.642309 0.22764,-1.138274 0.68297,-1.487893 0.45533,-0.349606 1.1017,-0.524413 1.93917,-0.524422 0.41464,9e-6 0.80491,0.03049 1.1708,0.09147 0.36584,0.06099 0.70326,0.152457 1.01221,0.274408"
+ id="path3613"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 858.83767,64.399754 1.12199,0 0,6.829666 -1.12199,0 0,-6.829666 m 0,-2.658693 1.12199,0 0,1.420814 -1.12199,0 0,-1.420814"
+ id="path3615"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 866.79544,65.436399 0,-3.695338 1.12199,0 0,9.488359 -1.12199,0 0,-1.02445 c -0.23582,0.40653 -0.53458,0.70939 -0.89638,0.908592 -0.35776,0.195133 -0.7887,0.292695 -1.29279,0.2927 -0.82525,-5e-6 -1.49803,-0.329289 -2.01841,-0.987866 -0.51626,-0.658573 -0.77443,-1.524474 -0.77443,-2.597711 0,-1.073229 0.25817,-1.939134 0.77443,-2.597711 0.52038,-0.658568 1.19316,-0.987857 2.01841,-0.987866 0.50409,9e-6 0.93503,0.09961 1.29279,0.298802 0.3618,0.195138 0.66056,0.495969 0.89638,0.902489 m -3.82338,2.384286 c 0,0.825253 0.16869,1.473665 0.50611,1.945235 0.34146,0.467508 0.809,0.701259 1.40253,0.701259 0.59352,0 1.06102,-0.233751 1.40252,-0.701259 0.34146,-0.47157 0.51222,-1.119982 0.51222,-1.945235 0,-0.825249 -0.17076,-1.471627 -0.51222,-1.939139 -0.3415,-0.471566 -0.809,-0.707351 -1.40252,-0.707356 -0.59353,5e-6 -1.06107,0.23579 -1.40253,0.707356 -0.33742,0.467512 -0.50611,1.11389 -0.50611,1.939139"
+ id="path3617"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 876.07037,67.534082 0,0.548811 -5.15886,0 c 0.0488,0.772407 0.28053,1.36187 0.69518,1.768399 0.41873,0.402462 1.00004,0.603692 1.74398,0.603692 0.43095,0 0.84762,-0.05285 1.2501,-0.158544 0.40652,-0.105698 0.809,-0.264243 1.20739,-0.475639 l 0,1.061039 c -0.40248,0.170739 -0.81511,0.300831 -1.23788,0.390266 -0.42282,0.08944 -0.8517,0.134151 -1.28669,0.134156 -1.08948,-5e-6 -1.95335,-0.317094 -2.5916,-0.951278 -0.63416,-0.634183 -0.95128,-1.491952 -0.95128,-2.573321 0,-1.117944 0.30083,-2.004176 0.90252,-2.658689 0.6057,-0.658568 1.4208,-0.987857 2.44523,-0.987866 0.91878,9e-6 1.6444,0.296772 2.177,0.890299 0.53659,0.589468 0.80491,1.392361 0.80491,2.408675 m -1.12204,-0.329289 c -0.008,-0.613852 -0.1809,-1.103715 -0.51832,-1.469597 -0.33333,-0.365868 -0.77644,-0.548806 -1.32934,-0.548811 -0.62603,5e-6 -1.1281,0.176846 -1.5062,0.530519 -0.37396,0.353683 -0.58944,0.851681 -0.64637,1.493987 l 4.00023,-0.0061"
+ id="path3619"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 882.26583,64.600985 0,1.061039 c -0.31708,-0.162608 -0.64637,-0.284564 -0.98783,-0.365878 -0.34151,-0.0813 -0.69518,-0.121951 -1.06107,-0.121956 -0.55693,5e-6 -0.97566,0.08538 -1.25615,0.256112 -0.27645,0.170748 -0.41465,0.426859 -0.41465,0.768338 0,0.260179 0.0996,0.465478 0.29876,0.615887 0.19922,0.146354 0.59964,0.286607 1.20134,0.420758 l 0.38416,0.08537 c 0.79678,0.170744 1.36184,0.412626 1.69522,0.725652 0.33738,0.308963 0.50611,0.741915 0.50611,1.298853 0,0.634188 -0.25207,1.136246 -0.75615,1.506186 -0.5,0.369941 -1.18908,0.554909 -2.06718,0.554914 -0.36588,-5e-6 -0.74802,-0.03659 -1.14642,-0.109766 -0.3943,-0.06911 -0.81102,-0.174808 -1.25004,-0.31709 l 0,-1.158605 c 0.41464,0.215459 0.82318,0.378072 1.22566,0.487833 0.40244,0.105698 0.80088,0.158545 1.19518,0.158545 0.52847,0 0.93504,-0.08943 1.21961,-0.268306 0.28453,-0.182939 0.42681,-0.43905 0.42681,-0.768339 0,-0.304894 -0.10362,-0.538646 -0.31097,-0.701258 -0.20326,-0.162608 -0.65248,-0.319123 -1.34766,-0.469541 l -0.39027,-0.09147 c -0.69513,-0.146345 -1.1972,-0.369936 -1.50615,-0.670772 -0.30895,-0.30489 -0.46345,-0.72158 -0.46345,-1.25007 0,-0.642309 0.22764,-1.138274 0.68296,-1.487893 0.45533,-0.349606 1.1017,-0.524413 1.93912,-0.524422 0.4147,9e-6 0.80496,0.03049 1.1708,0.09147 0.36589,0.06099 0.70331,0.152457 1.01226,0.274408"
+ id="path3621"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 891.04683,65.186385 c -0.60165,5e-6 -1.07727,0.23579 -1.4269,0.707356 -0.34959,0.467512 -0.52443,1.109826 -0.52443,1.926944 0,0.817122 0.17277,1.46147 0.51832,1.933041 0.34963,0.467507 0.82732,0.701258 1.43301,0.701258 0.59762,0 1.07122,-0.235785 1.42085,-0.707356 0.34959,-0.47157 0.52438,-1.113885 0.52438,-1.926943 0,-0.808986 -0.17479,-1.449267 -0.52438,-1.920842 -0.34963,-0.475634 -0.82323,-0.713453 -1.42085,-0.713458 m 0,-0.951277 c 0.97567,9e-6 1.74197,0.317098 2.29895,0.951277 0.55693,0.634188 0.8354,1.512288 0.8354,2.6343 0,1.117953 -0.27847,1.996053 -0.8354,2.634299 -0.55698,0.634184 -1.32328,0.951273 -2.29895,0.951278 -0.9797,-5e-6 -1.74807,-0.317094 -2.305,-0.951278 -0.5529,-0.638246 -0.8293,-1.516346 -0.8293,-2.634299 0,-1.122012 0.2764,-2.000112 0.8293,-2.6343 0.55693,-0.634179 1.3253,-0.951268 2.305,-0.951277"
+ id="path3623"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 899.49243,61.741061 0,0.93298 -1.07323,0 c -0.40244,9e-6 -0.68297,0.08132 -0.84151,0.243917 -0.15445,0.162622 -0.23172,0.455322 -0.23172,0.8781 l 0,0.603696 1.8477,0 0,0.872003 -1.8477,0 0,5.957663 -1.1281,0 0,-5.957663 -1.07324,0 0,-0.872003 1.07324,0 0,-0.475638 c 0,-0.760198 0.17685,-1.313077 0.53053,-1.658633 0.35367,-0.349606 0.91469,-0.524413 1.68301,-0.524422 l 1.06102,0"
+ id="path3625"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 909.31622,64.661963 0,1.048844 c -0.31708,-0.174803 -0.63622,-0.30489 -0.95739,-0.390267 -0.31708,-0.08943 -0.63825,-0.13415 -0.96345,-0.134155 -0.72769,5e-6 -1.29275,0.231727 -1.69523,0.695161 -0.40248,0.459381 -0.60367,1.105763 -0.60367,1.939139 0,0.833384 0.20119,1.481796 0.60367,1.945235 0.40248,0.459376 0.96754,0.689064 1.69523,0.689064 0.3252,0 0.64637,-0.0427 0.96345,-0.128058 0.32117,-0.08943 0.64031,-0.221556 0.95739,-0.396364 l 0,1.03665 c -0.31304,0.14635 -0.63824,0.256111 -0.97566,0.329284 -0.33338,0.07318 -0.68908,0.109761 -1.06713,0.109766 -1.02851,-5e-6 -1.84564,-0.323192 -2.45138,-0.96957 -0.60574,-0.646378 -0.90859,-1.51838 -0.90859,-2.616007 0,-1.113881 0.30492,-1.989947 0.9147,-2.628203 0.61386,-0.638242 1.4533,-0.957365 2.51841,-0.957374 0.34555,9e-6 0.68297,0.03659 1.01226,0.109766 0.32929,0.06911 0.64844,0.174812 0.95739,0.317089"
+ id="path3627"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 911.16388,68.534143 0,-4.134389 1.122,0 0,4.091703 c 0,0.646378 0.12603,1.132181 0.37805,1.457402 0.25207,0.321157 0.63012,0.481736 1.13425,0.481736 0.6057,0 1.08338,-0.193104 1.43302,-0.579303 0.35367,-0.386203 0.53048,-0.912654 0.53048,-1.579363 l 0,-3.872175 1.12204,0 0,6.829666 -1.12204,0 0,-1.048844 c -0.27236,0.414661 -0.58944,0.723624 -0.95128,0.926884 -0.35772,0.199201 -0.77443,0.298797 -1.25005,0.298802 -0.78462,-5e-6 -1.38017,-0.243917 -1.78669,-0.73175 -0.40652,-0.487834 -0.60978,-1.201292 -0.60978,-2.140369"
+ id="path3629"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 920.31683,62.460616 0,1.939138 2.31111,0 0,0.872003 -2.31111,0 0,3.707533 c 0,0.556942 0.0752,0.914688 0.22562,1.073233 0.1545,0.158545 0.46547,0.237819 0.93301,0.237819 l 1.15248,0 0,0.939078 -1.15248,0 c -0.86593,0 -1.4635,-0.160578 -1.79279,-0.481736 -0.32929,-0.32522 -0.49394,-0.914684 -0.49394,-1.768394 l 0,-3.707533 -0.82323,0 0,-0.872003 0.82323,0 0,-1.939138 1.1281,0"
+ id="path3631"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 925.21959,62.460616 0,1.939138 2.31111,0 0,0.872003 -2.31111,0 0,3.707533 c 0,0.556942 0.0752,0.914688 0.22562,1.073233 0.15445,0.158545 0.46547,0.237819 0.93296,0.237819 l 1.15253,0 0,0.939078 -1.15253,0 c -0.86588,0 -1.4635,-0.160578 -1.79279,-0.481736 -0.32929,-0.32522 -0.49394,-0.914684 -0.49394,-1.768394 l 0,-3.707533 -0.82319,0 0,-0.872003 0.82319,0 0,-1.939138 1.12815,0"
+ id="path3633"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 929.01247,64.399754 1.122,0 0,6.829666 -1.122,0 0,-6.829666 m 0,-2.658693 1.122,0 0,1.420814 -1.122,0 0,-1.420814"
+ id="path3635"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 938.15325,67.107227 0,4.122193 -1.12204,0 0,-4.085605 c 0,-0.646373 -0.12598,-1.130143 -0.37805,-1.451305 -0.25207,-0.321148 -0.63012,-0.481726 -1.13421,-0.481736 -0.60574,1e-5 -1.08338,0.193109 -1.43301,0.579303 -0.34963,0.386208 -0.52443,0.912659 -0.52443,1.579363 l 0,3.85998 -1.1281,0 0,-6.829666 1.1281,0 0,1.061039 c 0.26832,-0.410588 0.58338,-0.717517 0.94518,-0.920786 0.36589,-0.20326 0.78664,-0.30489 1.26226,-0.304899 0.78462,9e-6 1.37815,0.243926 1.78063,0.73175 0.40243,0.483774 0.60367,1.197232 0.60367,2.140369"
+ id="path3637"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 944.89757,67.735313 c -5e-5,-0.81305 -0.16874,-1.44317 -0.50616,-1.890355 -0.33333,-0.447172 -0.80289,-0.670763 -1.40863,-0.670768 -0.60165,5e-6 -1.07117,0.223596 -1.40859,0.670768 -0.33338,0.447185 -0.50004,1.077305 -0.50004,1.890355 0,0.808995 0.16666,1.437076 0.50004,1.884257 0.33742,0.447182 0.80694,0.670772 1.40859,0.670772 0.60574,0 1.0753,-0.22359 1.40863,-0.670772 0.33742,-0.447181 0.50611,-1.075262 0.50616,-1.884257 m 1.12199,2.646499 c 0,1.162668 -0.25813,2.026535 -0.77443,2.591613 -0.5163,0.569133 -1.30698,0.853706 -2.37208,0.853706 -0.39436,0 -0.7663,-0.03049 -1.11594,-0.09147 -0.34958,-0.05692 -0.68907,-0.14635 -1.01836,-0.268306 l 0,-1.09153 c 0.32929,0.178871 0.65454,0.310992 0.97566,0.396369 0.32117,0.08537 0.64844,0.128053 0.98178,0.128053 0.73581,0 1.28668,-0.193099 1.65252,-0.579303 0.36589,-0.382135 0.54881,-0.961437 0.54886,-1.737903 l 0,-0.554913 c -0.23173,0.402466 -0.52852,0.703293 -0.89032,0.902494 -0.3618,0.199197 -0.79476,0.298797 -1.29885,0.298797 -0.83747,0 -1.51231,-0.319123 -2.02452,-0.957374 -0.51221,-0.638247 -0.76832,-1.483822 -0.76832,-2.536733 0,-1.056966 0.25611,-1.904575 0.76832,-2.542831 0.51221,-0.638242 1.18705,-0.957365 2.02452,-0.957374 0.50409,9e-6 0.93705,0.09961 1.29885,0.298802 0.3618,0.199201 0.65859,0.500032 0.89032,0.902489 l 0,-1.036645 1.12199,0 0,5.982058"
+ id="path3639"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 952.30652,61.741061 1.122,0 0,9.488359 -1.122,0 0,-9.488359"
+ id="path3641"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 955.77012,64.399754 1.12204,0 0,6.829666 -1.12204,0 0,-6.829666 m 0,-2.658693 1.12204,0 0,1.420814 -1.12204,0 0,-1.420814"
+ id="path3643"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 964.9109,67.107227 0,4.122193 -1.122,0 0,-4.085605 c 0,-0.646373 -0.12603,-1.130143 -0.3781,-1.451305 -0.25202,-0.321148 -0.63012,-0.481726 -1.1342,-0.481736 -0.6057,1e-5 -1.08338,0.193109 -1.43302,0.579303 -0.34958,0.386208 -0.52442,0.912659 -0.52438,1.579363 l 0,3.85998 -1.12814,0 0,-6.829666 1.12814,0 0,1.061039 c 0.26828,-0.410588 0.58334,-0.717517 0.94514,-0.920786 0.36588,-0.20326 0.78664,-0.30489 1.2623,-0.304899 0.78458,9e-6 1.3781,0.243926 1.78058,0.73175 0.40244,0.483774 0.60368,1.197232 0.60368,2.140369"
+ id="path3645"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 973.00287,67.534082 0,0.548811 -5.15887,0 c 0.0488,0.772407 0.28049,1.36187 0.69518,1.768399 0.41874,0.402462 1.00005,0.603692 1.74399,0.603692 0.4309,0 0.84761,-0.05285 1.25009,-0.158544 0.40652,-0.105698 0.80896,-0.264243 1.2074,-0.475639 l 0,1.061039 c -0.40248,0.170739 -0.81511,0.300831 -1.23788,0.390266 -0.42282,0.08944 -0.8517,0.134151 -1.28669,0.134156 -1.08949,-5e-6 -1.95335,-0.317094 -2.5916,-0.951278 -0.63421,-0.634183 -0.95129,-1.491952 -0.95129,-2.573321 0,-1.117944 0.30083,-2.004176 0.90248,-2.658689 0.60574,-0.658568 1.42085,-0.987857 2.44528,-0.987866 0.91878,9e-6 1.6444,0.296772 2.17695,0.890299 0.53664,0.589468 0.80491,1.392361 0.80496,2.408675 m -1.12204,-0.329289 c -0.008,-0.613852 -0.1809,-1.103715 -0.51832,-1.469597 -0.33338,-0.365868 -0.77649,-0.548806 -1.32934,-0.548811 -0.62608,5e-6 -1.12815,0.176846 -1.5062,0.530519 -0.37401,0.353683 -0.58944,0.851681 -0.64637,1.493987 l 4.00023,-0.0061"
+ id="path3647"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 979.19833,64.600985 0,1.061039 c -0.31708,-0.162608 -0.64638,-0.284564 -0.98788,-0.365878 -0.34146,-0.0813 -0.69514,-0.121951 -1.06102,-0.121956 -0.55694,5e-6 -0.97567,0.08538 -1.25616,0.256112 -0.27644,0.170748 -0.41469,0.426859 -0.41469,0.768338 0,0.260179 0.0996,0.465478 0.29881,0.615887 0.19922,0.146354 0.59963,0.286607 1.20129,0.420758 l 0.38416,0.08537 c 0.79683,0.170744 1.36189,0.412626 1.69522,0.725652 0.33742,0.308963 0.50615,0.741915 0.50615,1.298853 0,0.634188 -0.25206,1.136246 -0.75615,1.506186 -0.50004,0.369941 -1.18907,0.554909 -2.06717,0.554914 -0.36589,-5e-6 -0.74803,-0.03659 -1.14642,-0.109766 -0.39435,-0.06911 -0.81102,-0.174808 -1.25009,-0.31709 l 0,-1.158605 c 0.41469,0.215459 0.82323,0.378072 1.22571,0.487833 0.40243,0.105698 0.80083,0.158545 1.19518,0.158545 0.52847,0 0.93499,-0.08943 1.21956,-0.268306 0.28457,-0.182939 0.42686,-0.43905 0.42686,-0.768339 0,-0.304894 -0.10367,-0.538646 -0.31098,-0.701258 -0.20326,-0.162608 -0.65248,-0.319123 -1.34765,-0.469541 l -0.39027,-0.09147 c -0.69514,-0.146345 -1.1972,-0.369936 -1.50616,-0.670772 -0.30899,-0.30489 -0.46345,-0.72158 -0.46345,-1.25007 0,-0.642309 0.22764,-1.138274 0.68297,-1.487893 0.45528,-0.349606 1.1017,-0.524413 1.93912,-0.524422 0.41465,9e-6 0.80491,0.03049 1.1708,0.09147 0.36588,0.06099 0.7033,0.152457 1.01226,0.274408"
+ id="path3649"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 981.51555,69.680548 1.28664,0 0,1.548872 -1.28664,0 0,-1.548872"
+ id="path3651"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 588.79755,80.858028 1.83545,0 2.32332,6.195482 2.33549,-6.195482 1.8355,0 0,9.10419 -1.20129,0 0,-7.994368 -2.34771,6.244266 -1.23788,0 -2.3477,-6.244266 0,7.994368 -1.19518,0 0,-9.10419"
+ id="path3653"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 599.52988,83.132552 1.12199,0 0,6.829666 -1.12199,0 0,-6.829666 m 0,-2.658693 1.12199,0 0,1.420818 -1.12199,0 0,-1.420818"
+ id="path3655"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 608.67066,85.840025 0,4.122193 -1.12204,0 0,-4.085605 c 0,-0.646373 -0.12603,-1.130138 -0.37805,-1.451305 -0.25207,-0.321148 -0.63012,-0.481727 -1.13421,-0.481731 -0.60574,4e-6 -1.08343,0.193104 -1.43301,0.579298 -0.34964,0.386208 -0.52443,0.912663 -0.52443,1.579363 l 0,3.85998 -1.1281,0 0,-6.829666 1.1281,0 0,1.061039 c 0.26832,-0.410588 0.58338,-0.717517 0.94518,-0.920786 0.36589,-0.203256 0.78664,-0.30489 1.26226,-0.304895 0.78462,5e-6 1.37815,0.243921 1.78058,0.73175 0.40248,0.48377 0.60372,1.197228 0.60372,2.140365"
+ id="path3657"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 610.9208,83.132552 1.12199,0 0,6.829666 -1.12199,0 0,-6.829666 m 0,-2.658693 1.12199,0 0,1.420818 -1.12199,0 0,-1.420818"
+ id="path3659"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 619.7018,84.443605 c 0.28048,-0.504092 0.61588,-0.876062 1.00615,-1.11592 0.39027,-0.239844 0.84963,-0.35977 1.3781,-0.359775 0.71143,5e-6 1.26024,0.250019 1.64647,0.750042 0.38618,0.495969 0.57929,1.203325 0.57929,2.122073 l 0,4.122193 -1.1281,0 0,-4.085605 c -5e-5,-0.654504 -0.11589,-1.140304 -0.34761,-1.457402 -0.23173,-0.317085 -0.5854,-0.47563 -1.06102,-0.475634 -0.58136,4e-6 -1.04073,0.193104 -1.37815,0.579298 -0.33742,0.386208 -0.50611,0.912663 -0.50611,1.579363 l 0,3.85998 -1.1281,0 0,-4.085605 c -4e-5,-0.658568 -0.11588,-1.144367 -0.34761,-1.457402 -0.23172,-0.317085 -0.58944,-0.47563 -1.07323,-0.475634 -0.57319,4e-6 -1.02851,0.195138 -1.36593,0.5854 -0.33742,0.386203 -0.50611,0.910625 -0.50611,1.573261 l 0,3.85998 -1.1281,0 0,-6.829666 1.1281,0 0,1.061039 c 0.25611,-0.41872 0.56304,-0.727678 0.9208,-0.926884 0.35771,-0.199192 0.78255,-0.298792 1.27443,-0.298797 0.49596,5e-6 0.91671,0.126029 1.2623,0.378067 0.34959,0.252058 0.60771,0.61793 0.77443,1.097628"
+ id="path3661"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 626.43996,87.26694 0,-4.134388 1.12204,0 0,4.091702 c 0,0.646383 0.12603,1.132182 0.37805,1.457403 0.25207,0.321157 0.63012,0.481736 1.13421,0.481736 0.60574,0 1.08342,-0.1931 1.43301,-0.579303 0.35367,-0.386199 0.53053,-0.912654 0.53053,-1.579363 l 0,-3.872175 1.12204,0 0,6.829666 -1.12204,0 0,-1.048839 c -0.27236,0.414656 -0.58948,0.723618 -0.95128,0.926883 -0.35772,0.199197 -0.77443,0.298797 -1.25005,0.298797 -0.78462,0 -1.38017,-0.243916 -1.78669,-0.73175 -0.40652,-0.487833 -0.60982,-1.201291 -0.60982,-2.140369"
+ id="path3663"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 639.80053,84.443605 c 0.28049,-0.504092 0.61589,-0.876062 1.00615,-1.11592 0.39027,-0.239844 0.84964,-0.35977 1.3781,-0.359775 0.71144,5e-6 1.26024,0.250019 1.64647,0.750042 0.38618,0.495969 0.57929,1.203325 0.57929,2.122073 l 0,4.122193 -1.1281,0 0,-4.085605 c -4e-5,-0.654504 -0.11588,-1.140304 -0.34761,-1.457402 -0.23173,-0.317085 -0.5854,-0.47563 -1.06102,-0.475634 -0.58136,4e-6 -1.04073,0.193104 -1.37815,0.579298 -0.33742,0.386208 -0.5061,0.912663 -0.5061,1.579363 l 0,3.85998 -1.1281,0 0,-4.085605 c -5e-5,-0.658568 -0.11589,-1.144367 -0.34762,-1.457402 -0.23172,-0.317085 -0.58944,-0.47563 -1.07323,-0.475634 -0.57319,4e-6 -1.02851,0.195138 -1.36593,0.5854 -0.33742,0.386203 -0.50611,0.910625 -0.50611,1.573261 l 0,3.85998 -1.12815,0 0,-6.829666 1.12815,0 0,1.061039 c 0.25611,-0.41872 0.56304,-0.727678 0.92075,-0.926884 0.35776,-0.199192 0.7826,-0.298792 1.27448,-0.298797 0.49596,5e-6 0.91671,0.126029 1.26226,0.378067 0.34963,0.252058 0.60776,0.61793 0.77447,1.097628"
+ id="path3665"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 651.91096,81.870283 0,3.42093 1.5489,0 c 0.57319,5e-6 1.0163,-0.148375 1.32934,-0.445147 0.31304,-0.296759 0.46951,-0.719546 0.46951,-1.268367 0,-0.544738 -0.15647,-0.965496 -0.46951,-1.262269 -0.31304,-0.296754 -0.75615,-0.445138 -1.32934,-0.445147 l -1.5489,0 m -1.23177,-1.012255 2.78067,0 c 1.02039,9e-6 1.79073,0.231731 2.31111,0.695166 0.52438,0.45938 0.7866,1.134215 0.78664,2.024505 -4e-5,0.898431 -0.26226,1.577334 -0.78664,2.036706 -0.52038,0.45938 -1.29072,0.689068 -2.31111,0.689063 l -1.5489,0 0,3.65875 -1.23177,0 0,-9.10419"
+ id="path3667"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 660.72245,86.529093 c -0.90652,0 -1.53462,0.103664 -1.88426,0.310992 -0.34958,0.207333 -0.52442,0.561011 -0.52442,1.061039 0,0.398398 0.13012,0.715487 0.39026,0.951272 0.26428,0.231722 0.622,0.347585 1.07324,0.347581 0.62199,4e-6 1.12002,-0.219523 1.49403,-0.658573 0.37805,-0.443113 0.56708,-1.030547 0.56708,-1.762297 l 0,-0.250014 -1.11593,0 m 2.23797,-0.463444 0,3.896569 -1.12204,0 0,-1.036645 c -0.25611,0.414656 -0.57525,0.721585 -0.95735,0.920786 -0.38214,0.195134 -0.84968,0.2927 -1.40252,0.2927 -0.69927,0 -1.2562,-0.195133 -1.67085,-0.5854 -0.41061,-0.394334 -0.61589,-0.920786 -0.61589,-1.579363 0,-0.768334 0.25611,-1.347636 0.76832,-1.737903 0.5163,-0.390262 1.28462,-0.585395 2.30501,-0.5854 l 1.57328,0 0,-0.109766 c 0,-0.516281 -0.17075,-0.914679 -0.51221,-1.195189 -0.33742,-0.284564 -0.81309,-0.426851 -1.42691,-0.426855 -0.39027,4e-6 -0.77039,0.04676 -1.14031,0.140252 -0.36998,0.09351 -0.72567,0.233761 -1.06713,0.420758 l 0,-1.036649 c 0.41056,-0.158535 0.80895,-0.276433 1.19518,-0.353678 0.38618,-0.0813 0.76221,-0.121951 1.1281,-0.121956 0.98788,5e-6 1.72571,0.256116 2.21355,0.768334 0.48783,0.512232 0.73172,1.288702 0.73177,2.329405"
+ id="path3669"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 669.24734,84.181391 c -0.12603,-0.07317 -0.26423,-0.126014 -0.41465,-0.158544 -0.14637,-0.03659 -0.30895,-0.05488 -0.48783,-0.05488 -0.63421,5e-6 -1.12204,0.207337 -1.4635,0.621989 -0.33742,0.410597 -0.50611,1.002094 -0.50611,1.774491 l 0,3.597772 -1.12814,0 0,-6.829666 1.12814,0 0,1.061039 c 0.23577,-0.414652 0.5427,-0.72158 0.92076,-0.920786 0.3781,-0.203256 0.83746,-0.30489 1.37814,-0.304895 0.0772,5e-6 0.16258,0.0061 0.25611,0.01827 0.0935,0.0081 0.19715,0.02236 0.31097,0.0427 l 0.006,1.152503"
+ id="path3671"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 671.54628,81.193414 0,1.939138 2.31112,0 0,0.872003 -2.31112,0 0,3.707533 c 0,0.556942 0.0752,0.914688 0.22562,1.073233 0.15446,0.158544 0.46548,0.237819 0.93297,0.237819 l 1.15253,0 0,0.939078 -1.15253,0 c -0.86589,0 -1.4635,-0.160579 -1.79279,-0.481736 -0.32929,-0.325221 -0.49394,-0.914684 -0.49394,-1.768394 l 0,-3.707533 -0.82319,0 0,-0.872003 0.82319,0 0,-1.939138 1.12814,0"
+ id="path3673"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 684.82141,81.156825 0,1.201291 c -0.46749,-0.223581 -0.90859,-0.390257 -1.32323,-0.500028 -0.41465,-0.109756 -0.81511,-0.164637 -1.20129,-0.164646 -0.67075,9e-6 -1.18907,0.130101 -1.55496,0.390266 -0.3618,0.260189 -0.54275,0.630129 -0.5427,1.109822 -5e-5,0.402471 0.11988,0.707365 0.35973,0.914689 0.24394,0.203269 0.70331,0.367911 1.37815,0.49393 l 0.74394,0.152448 c 0.91873,0.174812 1.59564,0.483774 2.03063,0.926883 0.43902,0.439054 0.65854,1.028518 0.65858,1.768394 -4e-5,0.882168 -0.29678,1.550906 -0.89031,2.006219 -0.58949,0.455308 -1.45537,0.682966 -2.59771,0.682966 -0.43094,0 -0.89031,-0.04878 -1.37814,-0.14635 -0.48375,-0.09757 -0.98582,-0.241887 -1.5062,-0.432952 l 0,-1.268367 c 0.50004,0.280505 0.9899,0.491897 1.4696,0.634183 0.47971,0.142287 0.95129,0.213426 1.41474,0.213426 0.70326,0 1.24601,-0.138219 1.62815,-0.414656 0.38209,-0.276438 0.57319,-0.670772 0.57319,-1.182999 0,-0.447177 -0.1382,-0.796792 -0.41465,-1.04884 -0.27241,-0.252043 -0.72158,-0.441079 -1.34766,-0.567107 l -0.75005,-0.14635 c -0.91873,-0.182935 -1.58342,-0.469533 -1.99398,-0.859804 -0.41061,-0.390262 -0.61589,-0.932976 -0.61589,-1.628146 0,-0.804918 0.28251,-1.439101 0.84761,-1.90255 0.5691,-0.46343 1.3517,-0.695152 2.34766,-0.695161 0.42686,9e-6 0.86185,0.03861 1.30496,0.115858 0.44312,0.07725 0.89642,0.193114 1.35983,0.347581"
+ id="path3675"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 687.2423,83.132552 1.122,0 0,6.829666 -1.122,0 0,-6.829666 m 0,-2.658693 1.122,0 0,1.420818 -1.122,0 0,-1.420818"
+ id="path3677"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 690.21806,83.132552 5.32962,0 0,1.02445 -4.21979,4.908824 4.21979,0 0,0.896392 -5.48205,0 0,-1.02445 4.21975,-4.908824 -4.06732,0 0,-0.896392"
+ id="path3679"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 703.10907,86.26688 0,0.548811 -5.15882,0 c 0.0488,0.772407 0.28049,1.36187 0.69514,1.768399 0.41873,0.402461 1.00009,0.603692 1.74403,0.603692 0.4309,0 0.84761,-0.05285 1.25005,-0.158545 0.40652,-0.105698 0.809,-0.264242 1.20739,-0.475638 l 0,1.061038 c -0.40248,0.17074 -0.8151,0.300832 -1.23788,0.390267 -0.42277,0.08944 -0.85165,0.134155 -1.28664,0.134155 -1.08949,0 -1.95335,-0.317094 -2.5916,-0.951277 -0.6342,-0.634183 -0.95128,-1.491952 -0.95128,-2.573322 0,-1.117944 0.30082,-2.004175 0.90248,-2.658689 0.60573,-0.658568 1.4208,-0.987856 2.44527,-0.987861 0.91873,5e-6 1.6444,0.296768 2.17695,0.890295 0.53659,0.589468 0.80491,1.392361 0.80491,2.408675 m -1.12199,-0.329289 c -0.008,-0.613848 -0.18094,-1.103715 -0.51832,-1.469597 -0.33338,-0.365868 -0.77649,-0.548807 -1.32938,-0.548811 -0.62604,4e-6 -1.1281,0.176846 -1.50616,0.530519 -0.37401,0.353683 -0.58948,0.851681 -0.64637,1.493991 l 4.00023,-0.0061"
+ id="path3681"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 705.23727,88.413346 1.28664,0 0,1.548872 -1.28664,0 0,-1.548872 m 0,-4.908819 1.28664,0 0,1.548867 -1.28664,0 0,-1.548867"
+ id="path3683"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 713.31698,80.858028 4.83563,0 0,1.036649 -3.70753,0 0,2.231834 c 0.17888,-0.06097 0.35776,-0.105689 0.53664,-0.134151 0.17888,-0.03251 0.35776,-0.04878 0.53659,-0.04878 1.01635,4e-6 1.82126,0.278476 2.41479,0.835414 0.59353,0.556947 0.89031,1.311052 0.89031,2.262325 0,0.979734 -0.30491,1.741971 -0.91469,2.286719 -0.60978,0.54068 -1.46961,0.811024 -2.57943,0.811024 -0.38214,0 -0.77241,-0.03251 -1.1708,-0.09757 -0.39431,-0.06505 -0.8029,-0.162613 -1.22567,-0.2927 l 0,-1.23788 c 0.36589,0.199201 0.74394,0.347585 1.13421,0.445147 0.39026,0.09757 0.80289,0.146355 1.23788,0.14635 0.7033,5e-6 1.26024,-0.184968 1.67084,-0.554908 0.41056,-0.369941 0.61589,-0.871998 0.61589,-1.506186 0,-0.634179 -0.20533,-1.136241 -0.61589,-1.506186 -0.4106,-0.369936 -0.96754,-0.554904 -1.67084,-0.554909 -0.3293,5e-6 -0.65859,0.03659 -0.98788,0.109762 -0.32521,0.07318 -0.65854,0.187006 -1.00005,0.341483 l 0,-4.573438"
+ id="path3685"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 721.25647,88.413346 1.28669,0 0,1.548872 -1.28669,0 0,-1.548872"
+ id="path3687"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 727.86662,81.669052 c -0.6342,1e-5 -1.11184,0.313035 -1.43301,0.939078 -0.31712,0.621993 -0.47566,1.559042 -0.47566,2.811141 0,1.248041 0.15854,2.185089 0.47566,2.811137 0.32117,0.621988 0.79881,0.932985 1.43301,0.932985 0.63825,0 1.11589,-0.310997 1.43302,-0.932985 0.32112,-0.626048 0.48172,-1.563096 0.48172,-2.811137 0,-1.252099 -0.1606,-2.189148 -0.48172,-2.811141 -0.31713,-0.626043 -0.79477,-0.939068 -1.43302,-0.939078 m 0,-0.975666 c 1.02039,9e-6 1.79886,0.404504 2.3355,1.213486 0.54068,0.804931 0.81102,1.975731 0.81102,3.512399 0,1.532614 -0.27034,2.703409 -0.81102,3.5124 -0.53664,0.804922 -1.31511,1.207388 -2.3355,1.207388 -1.02038,0 -1.80091,-0.402466 -2.34159,-1.207388 -0.53664,-0.808991 -0.80496,-1.979786 -0.80496,-3.5124 0,-1.536668 0.26832,-2.707468 0.80496,-3.512399 0.54068,-0.808982 1.32121,-1.213477 2.34159,-1.213486"
+ id="path3689"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 738.34285,84.443605 c 0.28049,-0.504092 0.61589,-0.876062 1.00615,-1.11592 0.39027,-0.239844 0.84964,-0.35977 1.3781,-0.359775 0.71144,5e-6 1.26024,0.250019 1.64647,0.750042 0.38618,0.495969 0.57929,1.203325 0.57929,2.122073 l 0,4.122193 -1.1281,0 0,-4.085605 c -4e-5,-0.654504 -0.11588,-1.140304 -0.34761,-1.457402 -0.23173,-0.317085 -0.5854,-0.47563 -1.06102,-0.475634 -0.58136,4e-6 -1.04073,0.193104 -1.37815,0.579298 -0.33742,0.386208 -0.5061,0.912663 -0.5061,1.579363 l 0,3.85998 -1.1281,0 0,-4.085605 c -5e-5,-0.658568 -0.11589,-1.144367 -0.34762,-1.457402 -0.23172,-0.317085 -0.58944,-0.47563 -1.07323,-0.475634 -0.57319,4e-6 -1.02851,0.195138 -1.36593,0.5854 -0.33742,0.386203 -0.50611,0.910625 -0.50611,1.573261 l 0,3.85998 -1.12815,0 0,-6.829666 1.12815,0 0,1.061039 c 0.25611,-0.41872 0.56304,-0.727678 0.92075,-0.926884 0.35776,-0.199192 0.7826,-0.298792 1.27448,-0.298797 0.49596,5e-6 0.91671,0.126029 1.26226,0.378067 0.34963,0.252058 0.60776,0.61793 0.77447,1.097628"
+ id="path3691"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 750.5143,84.443605 c 0.28049,-0.504092 0.61589,-0.876062 1.00616,-1.11592 0.39026,-0.239844 0.84963,-0.35977 1.3781,-0.359775 0.71143,5e-6 1.26024,0.250019 1.64646,0.750042 0.38618,0.495969 0.57929,1.203325 0.57929,2.122073 l 0,4.122193 -1.1281,0 0,-4.085605 c -4e-5,-0.654504 -0.11588,-1.140304 -0.34761,-1.457402 -0.23172,-0.317085 -0.5854,-0.47563 -1.06102,-0.475634 -0.58136,4e-6 -1.04072,0.193104 -1.37814,0.579298 -0.33742,0.386208 -0.50611,0.912663 -0.50611,1.579363 l 0,3.85998 -1.1281,0 0,-4.085605 c -5e-5,-0.658568 -0.11589,-1.144367 -0.34761,-1.457402 -0.23173,-0.317085 -0.58944,-0.47563 -1.07324,-0.475634 -0.57318,4e-6 -1.02851,0.195138 -1.36593,0.5854 -0.33742,0.386203 -0.50611,0.910625 -0.50611,1.573261 l 0,3.85998 -1.12814,0 0,-6.829666 1.12814,0 0,1.061039 c 0.25611,-0.41872 0.56304,-0.727678 0.92076,-0.926884 0.35776,-0.199192 0.7826,-0.298792 1.27447,-0.298797 0.49596,5e-6 0.91671,0.126029 1.26226,0.378067 0.34963,0.252058 0.60776,0.61793 0.77447,1.097628"
+ id="path3693"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 765.69811,83.333783 0,1.061038 c -0.31713,-0.162608 -0.64642,-0.284564 -0.98788,-0.365877 -0.34151,-0.0813 -0.69518,-0.121951 -1.06102,-0.121956 -0.55698,5e-6 -0.97567,0.08538 -1.2562,0.256111 -0.27645,0.170749 -0.41465,0.42686 -0.41465,0.768339 0,0.260184 0.0996,0.465478 0.29881,0.615887 0.19917,0.146354 0.59963,0.286607 1.20128,0.420757 l 0.38416,0.08537 c 0.79679,0.170744 1.36185,0.412627 1.69523,0.725653 0.33742,0.308963 0.50611,0.741915 0.50611,1.298853 0,0.634188 -0.25202,1.136245 -0.75611,1.506186 -0.50005,0.369941 -1.18912,0.554913 -2.06722,0.554913 -0.36589,0 -0.74803,-0.03659 -1.14642,-0.109766 -0.39431,-0.06911 -0.81102,-0.174807 -1.25005,-0.317089 l 0,-1.158605 c 0.41465,0.215459 0.82324,0.378072 1.22567,0.487833 0.40248,0.105698 0.80087,0.158549 1.19518,0.158545 0.52851,4e-6 0.93503,-0.08944 1.21961,-0.268306 0.28457,-0.182939 0.42686,-0.43905 0.42686,-0.768339 0,-0.304894 -0.10368,-0.538646 -0.31102,-0.701258 -0.20326,-0.162608 -0.65248,-0.319124 -1.34762,-0.469542 l -0.39026,-0.09147 c -0.69518,-0.146345 -1.19725,-0.369936 -1.5062,-0.670772 -0.30896,-0.30489 -0.46346,-0.72158 -0.46346,-1.25007 0,-0.64231 0.22769,-1.13827 0.68297,-1.487894 0.45533,-0.349605 1.1017,-0.524412 1.93917,-0.524417 0.41464,5e-6 0.80491,0.03049 1.1708,0.09146 0.36584,0.06099 0.70326,0.152456 1.01226,0.274408"
+ id="path3695"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 768.52754,86.553482 c 0,0.825254 0.16869,1.473666 0.50611,1.945236 0.3415,0.467507 0.809,0.701263 1.40252,0.701259 0.59353,4e-6 1.06102,-0.233752 1.40253,-0.701259 0.34146,-0.47157 0.51221,-1.119982 0.51221,-1.945236 0,-0.825248 -0.17075,-1.471626 -0.51221,-1.939138 -0.34151,-0.471566 -0.809,-0.707351 -1.40253,-0.707356 -0.59352,5e-6 -1.06102,0.23579 -1.40252,0.707356 -0.33742,0.467512 -0.50611,1.11389 -0.50611,1.939138 m 3.82337,2.384286 c -0.23576,0.406529 -0.53457,0.70939 -0.89637,0.908591 -0.35776,0.195134 -0.78866,0.2927 -1.29279,0.2927 -0.82526,0 -1.49803,-0.329288 -2.01837,-0.987866 -0.5163,-0.658572 -0.77447,-1.524473 -0.77447,-2.597711 0,-1.073228 0.25817,-1.939129 0.77447,-2.597711 0.52034,-0.658568 1.19311,-0.987856 2.01837,-0.987861 0.50413,5e-6 0.93503,0.0996 1.29279,0.298797 0.3618,0.195138 0.66061,0.49597 0.89637,0.90249 l 0,-1.036645 1.12204,0 0,9.427377 -1.12204,0 0,-3.622161"
+ id="path3697"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 775.66818,87.26694 0,-4.134388 1.12204,0 0,4.091702 c 0,0.646383 0.12599,1.132182 0.37805,1.457403 0.25207,0.321157 0.63012,0.481736 1.13421,0.481736 0.60574,0 1.08338,-0.1931 1.43301,-0.579303 0.35368,-0.386199 0.53054,-0.912654 0.53054,-1.579363 l 0,-3.872175 1.12199,0 0,6.829666 -1.12199,0 0,-1.048839 c -0.27241,0.414656 -0.58949,0.723618 -0.95129,0.926883 -0.35776,0.199197 -0.77443,0.298797 -1.25009,0.298797 -0.78458,0 -1.38012,-0.243916 -1.78669,-0.73175 -0.40652,-0.487833 -0.60978,-1.201291 -0.60978,-2.140369"
+ id="path3699"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 786.81516,86.529093 c -0.90652,0 -1.53462,0.103664 -1.88426,0.310992 -0.34958,0.207333 -0.52442,0.561011 -0.52442,1.061039 0,0.398398 0.13012,0.715487 0.39027,0.951272 0.26427,0.231722 0.62199,0.347585 1.07323,0.347581 0.62199,4e-6 1.12002,-0.219523 1.49403,-0.658573 0.37805,-0.443113 0.56708,-1.030547 0.56708,-1.762297 l 0,-0.250014 -1.11593,0 m 2.23797,-0.463444 0,3.896569 -1.12204,0 0,-1.036645 c -0.25611,0.414656 -0.57525,0.721585 -0.95735,0.920786 -0.38214,0.195134 -0.84968,0.2927 -1.40252,0.2927 -0.69927,0 -1.2562,-0.195133 -1.67085,-0.5854 -0.4106,-0.394334 -0.61589,-0.920786 -0.61589,-1.579363 0,-0.768334 0.25611,-1.347636 0.76833,-1.737903 0.51629,-0.390262 1.28462,-0.585395 2.305,-0.5854 l 1.57328,0 0,-0.109766 c 0,-0.516281 -0.17075,-0.914679 -0.51221,-1.195189 -0.33742,-0.284564 -0.81309,-0.426851 -1.42691,-0.426855 -0.39027,4e-6 -0.77039,0.04676 -1.14031,0.140252 -0.36997,0.09351 -0.72567,0.233761 -1.06713,0.420758 l 0,-1.036649 c 0.41056,-0.158535 0.80896,-0.276433 1.19518,-0.353678 0.38618,-0.0813 0.76221,-0.121951 1.1281,-0.121956 0.98788,5e-6 1.72571,0.256116 2.21355,0.768334 0.48783,0.512232 0.73172,1.288702 0.73177,2.329405"
+ id="path3701"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 795.32788,84.181391 c -0.12603,-0.07317 -0.26428,-0.126014 -0.41469,-0.158544 -0.14633,-0.03659 -0.30895,-0.05488 -0.48783,-0.05488 -0.63416,5e-6 -1.122,0.207337 -1.4635,0.621989 -0.33742,0.410597 -0.50611,1.002094 -0.50611,1.774491 l 0,3.597772 -1.1281,0 0,-6.829666 1.1281,0 0,1.061039 c 0.23577,-0.414652 0.5427,-0.72158 0.9208,-0.920786 0.37805,-0.203256 0.83742,-0.30489 1.3781,-0.304895 0.0772,5e-6 0.16263,0.0061 0.25611,0.01827 0.0935,0.0081 0.1972,0.02236 0.31102,0.0427 l 0.006,1.152503"
+ id="path3703"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 802.10264,86.26688 0,0.548811 -5.15882,0 c 0.0488,0.772407 0.28048,1.36187 0.69513,1.768399 0.41873,0.402461 1.00009,0.603692 1.74403,0.603692 0.4309,0 0.84762,-0.05285 1.25005,-0.158545 0.40652,-0.105698 0.809,-0.264242 1.20739,-0.475638 l 0,1.061038 c -0.40248,0.17074 -0.81506,0.300832 -1.23788,0.390267 -0.42277,0.08944 -0.85165,0.134155 -1.28664,0.134155 -1.08948,0 -1.95335,-0.317094 -2.5916,-0.951277 -0.6342,-0.634183 -0.95128,-1.491952 -0.95128,-2.573322 0,-1.117944 0.30082,-2.004175 0.90248,-2.658689 0.60574,-0.658568 1.4208,-0.987856 2.44527,-0.987861 0.91873,5e-6 1.6444,0.296768 2.17695,0.890295 0.5366,0.589468 0.80492,1.392361 0.80492,2.408675 m -1.122,-0.329289 c -0.008,-0.613848 -0.18094,-1.103715 -0.51832,-1.469597 -0.33338,-0.365868 -0.77649,-0.548807 -1.32938,-0.548811 -0.62604,4e-6 -1.1281,0.176846 -1.50616,0.530519 -0.37401,0.353683 -0.58948,0.851681 -0.64637,1.493991 l 4.00023,-0.0061"
+ id="path3705"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 805.95044,80.858028 1.03664,0 -3.1709,10.262795 -1.03664,0 3.1709,-10.262795"
+ id="path3707"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 812.67032,84.169197 0,-3.695338 1.12204,0 0,9.488359 -1.12204,0 0,-1.02445 c -0.23577,0.406529 -0.53457,0.70939 -0.89637,0.908591 -0.35776,0.195134 -0.78866,0.2927 -1.29275,0.2927 -0.82525,0 -1.49807,-0.329288 -2.01841,-0.987866 -0.5163,-0.658572 -0.77447,-1.524473 -0.77447,-2.597711 0,-1.073228 0.25817,-1.939129 0.77447,-2.597711 0.52034,-0.658568 1.19316,-0.987856 2.01841,-0.987861 0.50409,5e-6 0.93499,0.0996 1.29275,0.298797 0.3618,0.195138 0.6606,0.49597 0.89637,0.90249 m -3.82337,2.384285 c 0,0.825254 0.16869,1.473666 0.50611,1.945236 0.3415,0.467507 0.809,0.701263 1.40252,0.701259 0.59353,4e-6 1.06102,-0.233752 1.40253,-0.701259 0.34146,-0.47157 0.51221,-1.119982 0.51221,-1.945236 0,-0.825248 -0.17075,-1.471626 -0.51221,-1.939138 -0.34151,-0.471566 -0.809,-0.707351 -1.40253,-0.707356 -0.59352,5e-6 -1.06102,0.23579 -1.40252,0.707356 -0.33742,0.467512 -0.50611,1.11389 -0.50611,1.939138"
+ id="path3709"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 816.10347,83.132552 1.122,0 0,6.829666 -1.122,0 0,-6.829666 m 0,-2.658693 1.122,0 0,1.420818 -1.122,0 0,-1.420818"
+ id="path3711"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 822.67093,86.529093 c -0.90657,0 -1.53467,0.103664 -1.88426,0.310992 -0.34963,0.207333 -0.52442,0.561011 -0.52442,1.061039 0,0.398398 0.13007,0.715487 0.39026,0.951272 0.26424,0.231722 0.622,0.347585 1.07324,0.347581 0.62199,4e-6 1.11997,-0.219523 1.49398,-0.658573 0.37806,-0.443113 0.56708,-1.030547 0.56713,-1.762297 l 0,-0.250014 -1.11593,0 m 2.23792,-0.463444 0,3.896569 -1.12199,0 0,-1.036645 c -0.25615,0.414656 -0.57525,0.721585 -0.95739,0.920786 -0.38214,0.195134 -0.84964,0.2927 -1.40253,0.2927 -0.69922,0 -1.25615,-0.195133 -1.6708,-0.5854 -0.41061,-0.394334 -0.61593,-0.920786 -0.61593,-1.579363 0,-0.768334 0.25615,-1.347636 0.76836,-1.737903 0.5163,-0.390262 1.28462,-0.585395 2.30501,-0.5854 l 1.57328,0 0,-0.109766 c -5e-5,-0.516281 -0.17075,-0.914679 -0.51226,-1.195189 -0.33742,-0.284564 -0.81304,-0.426851 -1.42691,-0.426855 -0.39026,4e-6 -0.77034,0.04676 -1.14031,0.140252 -0.36993,0.09351 -0.72562,0.233761 -1.06713,0.420758 l 0,-1.036649 c 0.41061,-0.158535 0.809,-0.276433 1.19518,-0.353678 0.38623,-0.0813 0.76226,-0.121951 1.12815,-0.121956 0.98783,5e-6 1.72567,0.256116 2.21355,0.768334 0.48778,0.512232 0.73172,1.288702 0.73172,2.329405"
+ id="path3713"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 832.54343,84.443605 c 0.28054,-0.504092 0.61589,-0.876062 1.00616,-1.11592 0.39026,-0.239844 0.84963,-0.35977 1.37814,-0.359775 0.71144,5e-6 1.26024,0.250019 1.64642,0.750042 0.38623,0.495969 0.5793,1.203325 0.57934,2.122073 l 0,4.122193 -1.12814,0 0,-4.085605 c 0,-0.654504 -0.11584,-1.140304 -0.34757,-1.457402 -0.23173,-0.317085 -0.5854,-0.47563 -1.06102,-0.475634 -0.58136,4e-6 -1.04073,0.193104 -1.37815,0.579298 -0.33742,0.386208 -0.50615,0.912663 -0.50615,1.579363 l 0,3.85998 -1.1281,0 0,-4.085605 c 0,-0.658568 -0.11584,-1.144367 -0.34757,-1.457402 -0.23172,-0.317085 -0.58948,-0.47563 -1.07323,-0.475634 -0.57323,4e-6 -1.02851,0.195138 -1.36593,0.5854 -0.33742,0.386203 -0.50616,0.910625 -0.50616,1.573261 l 0,3.85998 -1.1281,0 0,-6.829666 1.1281,0 0,1.061039 c 0.25611,-0.41872 0.56304,-0.727678 0.9208,-0.926884 0.35776,-0.199192 0.78256,-0.298792 1.27448,-0.298797 0.49596,5e-6 0.91671,0.126029 1.26226,0.378067 0.34963,0.252058 0.60776,0.61793 0.77442,1.097628"
+ id="path3715"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 845.23931,86.26688 0,0.548811 -5.15882,0 c 0.0488,0.772407 0.28049,1.36187 0.69513,1.768399 0.41874,0.402461 1.0001,0.603692 1.74404,0.603692 0.4309,0 0.84761,-0.05285 1.25004,-0.158545 0.40652,-0.105698 0.809,-0.264242 1.2074,-0.475638 l 0,1.061038 c -0.40248,0.17074 -0.81511,0.300832 -1.23788,0.390267 -0.42278,0.08944 -0.85166,0.134155 -1.28664,0.134155 -1.08949,0 -1.95336,-0.317094 -2.5916,-0.951277 -0.63421,-0.634183 -0.95129,-1.491952 -0.95129,-2.573322 0,-1.117944 0.30083,-2.004175 0.90248,-2.658689 0.60574,-0.658568 1.4208,-0.987856 2.44527,-0.987861 0.91874,5e-6 1.6444,0.296768 2.17696,0.890295 0.53659,0.589468 0.80491,1.392361 0.80491,2.408675 m -1.12199,-0.329289 c -0.008,-0.613848 -0.18095,-1.103715 -0.51832,-1.469597 -0.33338,-0.365868 -0.7765,-0.548807 -1.32939,-0.548811 -0.62603,4e-6 -1.1281,0.176846 -1.50615,0.530519 -0.37402,0.353683 -0.58949,0.851681 -0.64638,1.493991 l 4.00024,-0.0061"
+ id="path3717"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 848.19069,81.193414 0,1.939138 2.31111,0 0,0.872003 -2.31111,0 0,3.707533 c 0,0.556942 0.0752,0.914688 0.22562,1.073233 0.1545,0.158544 0.46547,0.237819 0.93301,0.237819 l 1.15248,0 0,0.939078 -1.15248,0 c -0.86593,0 -1.4635,-0.160579 -1.79279,-0.481736 -0.32929,-0.325221 -0.49394,-0.914684 -0.49394,-1.768394 l 0,-3.707533 -0.82323,0 0,-0.872003 0.82323,0 0,-1.939138 1.1281,0"
+ id="path3719"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 857.82541,86.26688 0,0.548811 -5.15882,0 c 0.0488,0.772407 0.28049,1.36187 0.69513,1.768399 0.41874,0.402461 1.00005,0.603692 1.74404,0.603692 0.4309,0 0.84756,-0.05285 1.25004,-0.158545 0.40652,-0.105698 0.809,-0.264242 1.2074,-0.475638 l 0,1.061038 c -0.40248,0.17074 -0.81511,0.300832 -1.23788,0.390267 -0.42278,0.08944 -0.8517,0.134155 -1.28664,0.134155 -1.08954,0 -1.9534,-0.317094 -2.59165,-0.951277 -0.63416,-0.634183 -0.95124,-1.491952 -0.95124,-2.573322 0,-1.117944 0.30083,-2.004175 0.90248,-2.658689 0.60569,-0.658568 1.4208,-0.987856 2.44527,-0.987861 0.91874,5e-6 1.6444,0.296768 2.17696,0.890295 0.53659,0.589468 0.80491,1.392361 0.80491,2.408675 m -1.12204,-0.329289 c -0.008,-0.613848 -0.1809,-1.103715 -0.51832,-1.469597 -0.33333,-0.365868 -0.77645,-0.548807 -1.32934,-0.548811 -0.62603,4e-6 -1.1281,0.176846 -1.50615,0.530519 -0.37402,0.353683 -0.58949,0.851681 -0.64642,1.493991 l 4.00023,-0.0061"
+ id="path3721"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 863.62454,84.181391 c -0.12603,-0.07317 -0.26428,-0.126014 -0.41469,-0.158544 -0.14633,-0.03659 -0.30895,-0.05488 -0.48783,-0.05488 -0.63416,5e-6 -1.122,0.207337 -1.4635,0.621989 -0.33742,0.410597 -0.50611,1.002094 -0.50611,1.774491 l 0,3.597772 -1.1281,0 0,-6.829666 1.1281,0 0,1.061039 c 0.23577,-0.414652 0.5427,-0.72158 0.9208,-0.920786 0.37805,-0.203256 0.83742,-0.30489 1.3781,-0.304895 0.0772,5e-6 0.16263,0.0061 0.25611,0.01827 0.0935,0.0081 0.1972,0.02236 0.31102,0.0427 l 0.006,1.152503"
+ id="path3723"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 863.83795,88.413346 1.28668,0 0,1.548872 -1.28668,0 0,-1.548872"
+ id="path3725"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 588.79755,99.590826 1.83545,0 2.32332,6.195484 2.33549,-6.195484 1.8355,0 0,9.104194 -1.20129,0 0,-7.99437 -2.34771,6.24426 -1.23788,0 -2.3477,-6.24426 0,7.99437 -1.19518,0 0,-9.104194"
+ id="path3727"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 599.52988,101.86535 1.12199,0 0,6.82967 -1.12199,0 0,-6.82967 m 0,-2.658689 1.12199,0 0,1.420809 -1.12199,0 0,-1.420809"
+ id="path3729"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 608.67066,104.57283 0,4.12219 -1.12204,0 0,-4.08561 c 0,-0.64637 -0.12603,-1.13014 -0.37805,-1.4513 -0.25207,-0.32115 -0.63012,-0.48173 -1.13421,-0.48174 -0.60574,10e-6 -1.08343,0.19311 -1.43301,0.57931 -0.34964,0.3862 -0.52443,0.91266 -0.52443,1.57936 l 0,3.85998 -1.1281,0 0,-6.82967 1.1281,0 0,1.06104 c 0.26832,-0.41059 0.58338,-0.71752 0.94518,-0.92079 0.36589,-0.20325 0.78664,-0.30489 1.26226,-0.30489 0.78462,0 1.37815,0.24392 1.78058,0.73175 0.40248,0.48377 0.60372,1.19723 0.60372,2.14037"
+ id="path3731"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 610.9208,101.86535 1.12199,0 0,6.82967 -1.12199,0 0,-6.82967 m 0,-2.658689 1.12199,0 0,1.420809 -1.12199,0 0,-1.420809"
+ id="path3733"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 619.7018,103.1764 c 0.28048,-0.50408 0.61588,-0.87606 1.00615,-1.11592 0.39027,-0.23984 0.84963,-0.35977 1.3781,-0.35977 0.71143,0 1.26024,0.25002 1.64647,0.75004 0.38618,0.49597 0.57929,1.20333 0.57929,2.12208 l 0,4.12219 -1.1281,0 0,-4.08561 c -5e-5,-0.6545 -0.11589,-1.1403 -0.34761,-1.4574 -0.23173,-0.31709 -0.5854,-0.47563 -1.06102,-0.47564 -0.58136,10e-6 -1.04073,0.19311 -1.37815,0.57931 -0.33742,0.3862 -0.50611,0.91266 -0.50611,1.57936 l 0,3.85998 -1.1281,0 0,-4.08561 c -4e-5,-0.65857 -0.11588,-1.14437 -0.34761,-1.4574 -0.23172,-0.31709 -0.58944,-0.47563 -1.07323,-0.47564 -0.57319,10e-6 -1.02851,0.19514 -1.36593,0.5854 -0.33742,0.38621 -0.50611,0.91063 -0.50611,1.57327 l 0,3.85998 -1.1281,0 0,-6.82967 1.1281,0 0,1.06104 c 0.25611,-0.41872 0.56304,-0.72768 0.9208,-0.92688 0.35771,-0.1992 0.78255,-0.2988 1.27443,-0.2988 0.49596,0 0.91671,0.12603 1.2623,0.37807 0.34959,0.25205 0.60771,0.61793 0.77443,1.09762"
+ id="path3735"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 626.43996,105.99974 0,-4.13439 1.12204,0 0,4.0917 c 0,0.64638 0.12603,1.13218 0.37805,1.4574 0.25207,0.32116 0.63012,0.48174 1.13421,0.48174 0.60574,0 1.08342,-0.1931 1.43301,-0.5793 0.35367,-0.3862 0.53053,-0.91266 0.53053,-1.57937 l 0,-3.87217 1.12204,0 0,6.82967 -1.12204,0 0,-1.04884 c -0.27236,0.41465 -0.58948,0.72362 -0.95128,0.92688 -0.35772,0.1992 -0.77443,0.2988 -1.25005,0.2988 -0.78462,0 -1.38017,-0.24392 -1.78669,-0.73175 -0.40652,-0.48784 -0.60982,-1.20129 -0.60982,-2.14037"
+ id="path3737"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 639.80053,103.1764 c 0.28049,-0.50408 0.61589,-0.87606 1.00615,-1.11592 0.39027,-0.23984 0.84964,-0.35977 1.3781,-0.35977 0.71144,0 1.26024,0.25002 1.64647,0.75004 0.38618,0.49597 0.57929,1.20333 0.57929,2.12208 l 0,4.12219 -1.1281,0 0,-4.08561 c -4e-5,-0.6545 -0.11588,-1.1403 -0.34761,-1.4574 -0.23173,-0.31709 -0.5854,-0.47563 -1.06102,-0.47564 -0.58136,10e-6 -1.04073,0.19311 -1.37815,0.57931 -0.33742,0.3862 -0.5061,0.91266 -0.5061,1.57936 l 0,3.85998 -1.1281,0 0,-4.08561 c -5e-5,-0.65857 -0.11589,-1.14437 -0.34762,-1.4574 -0.23172,-0.31709 -0.58944,-0.47563 -1.07323,-0.47564 -0.57319,10e-6 -1.02851,0.19514 -1.36593,0.5854 -0.33742,0.38621 -0.50611,0.91063 -0.50611,1.57327 l 0,3.85998 -1.12815,0 0,-6.82967 1.12815,0 0,1.06104 c 0.25611,-0.41872 0.56304,-0.72768 0.92075,-0.92688 0.35776,-0.1992 0.7826,-0.2988 1.27448,-0.2988 0.49596,0 0.91671,0.12603 1.26226,0.37807 0.34963,0.25205 0.60776,0.61793 0.77447,1.09762"
+ id="path3739"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 650.67919,99.590826 5.232,0 0,1.036644 -4.00023,0 0,2.68309 3.60997,0 0,1.03664 -3.60997,0 0,4.34782 -1.23177,0 0,-9.104194"
+ id="path3741"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 662.9848,104.99968 0,0.54881 -5.15882,0 c 0.0488,0.77241 0.28049,1.36187 0.69513,1.7684 0.41874,0.40246 1.00005,0.60369 1.74404,0.60369 0.4309,0 0.84756,-0.0529 1.25004,-0.15854 0.40652,-0.1057 0.809,-0.26425 1.2074,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81511,0.30083 -1.23788,0.39026 -0.42278,0.0894 -0.8517,0.13416 -1.28664,0.13416 -1.08954,0 -1.9534,-0.3171 -2.59165,-0.95128 -0.63416,-0.63418 -0.95129,-1.49195 -0.95124,-2.57332 -5e-5,-1.11795 0.30083,-2.00418 0.90248,-2.65869 0.60569,-0.65857 1.4208,-0.98786 2.44527,-0.98786 0.91874,0 1.6444,0.29677 2.17696,0.89029 0.53659,0.58947 0.80491,1.39236 0.80491,2.40868 m -1.12204,-0.32929 c -0.008,-0.61385 -0.1809,-1.10372 -0.51832,-1.4696 -0.33333,-0.36587 -0.77645,-0.5488 -1.32934,-0.54881 -0.62603,1e-5 -1.1281,0.17685 -1.50615,0.53052 -0.37402,0.35368 -0.58949,0.85168 -0.64642,1.49399 l 4.00023,-0.006"
+ id="path3743"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 667.93021,105.26189 c -0.90656,0 -1.53466,0.10367 -1.88425,0.31099 -0.34963,0.20734 -0.52443,0.56101 -0.52443,1.06104 0,0.3984 0.13008,0.71549 0.39027,0.95127 0.26423,0.23173 0.62199,0.34759 1.07323,0.34758 0.622,10e-6 1.11998,-0.21952 1.49399,-0.65857 0.37805,-0.44311 0.56708,-1.03055 0.56712,-1.7623 l 0,-0.25001 -1.11593,0 m 2.23793,-0.46344 0,3.89657 -1.122,0 0,-1.03665 c -0.25615,0.41466 -0.57525,0.72159 -0.95739,0.92079 -0.38214,0.19513 -0.84963,0.2927 -1.40252,0.2927 -0.69922,0 -1.25616,-0.19514 -1.67085,-0.5854 -0.41056,-0.39433 -0.61589,-0.92079 -0.61589,-1.57937 0,-0.76833 0.25611,-1.34763 0.76837,-1.7379 0.5163,-0.39026 1.28462,-0.58539 2.30501,-0.5854 l 1.57327,0 0,-0.10977 c -4e-5,-0.51628 -0.17075,-0.91467 -0.51225,-1.19518 -0.33742,-0.28457 -0.81304,-0.42685 -1.42691,-0.42686 -0.39027,1e-5 -0.77039,0.0468 -1.14031,0.14025 -0.36993,0.0935 -0.72567,0.23376 -1.06713,0.42076 l 0,-1.03665 c 0.41061,-0.15853 0.809,-0.27643 1.19518,-0.35368 0.38623,-0.0813 0.76226,-0.12195 1.12815,-0.12195 0.98783,0 1.72566,0.25611 2.21354,0.76833 0.48779,0.51223 0.73173,1.2887 0.73173,2.32941"
+ id="path3745"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 673.59518,99.926211 0,1.939139 2.31112,0 0,0.872 -2.31112,0 0,3.70754 c 0,0.55694 0.0752,0.91468 0.22562,1.07323 0.15446,0.15854 0.46548,0.23782 0.93297,0.23782 l 1.15253,0 0,0.93908 -1.15253,0 c -0.86589,0 -1.4635,-0.16058 -1.79279,-0.48174 -0.32929,-0.32522 -0.49394,-0.91468 -0.49394,-1.76839 l 0,-3.70754 -0.82319,0 0,-0.872 0.82319,0 0,-1.939139 1.12814,0"
+ id="path3747"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 677.27223,105.99974 0,-4.13439 1.12199,0 0,4.0917 c 0,0.64638 0.12604,1.13218 0.37806,1.4574 0.25206,0.32116 0.63012,0.48174 1.13425,0.48174 0.60569,0 1.08338,-0.1931 1.43301,-0.5793 0.35368,-0.3862 0.53049,-0.91266 0.53049,-1.57937 l 0,-3.87217 1.12204,0 0,6.82967 -1.12204,0 0,-1.04884 c -0.27236,0.41465 -0.58944,0.72362 -0.95129,0.92688 -0.35771,0.1992 -0.77442,0.2988 -1.25004,0.2988 -0.78462,0 -1.38017,-0.24392 -1.78669,-0.73175 -0.40652,-0.48784 -0.60978,-1.20129 -0.60978,-2.14037"
+ id="path3749"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 689.27293,102.91419 c -0.12603,-0.0732 -0.26428,-0.12602 -0.41469,-0.15855 -0.14633,-0.0366 -0.30896,-0.0549 -0.48784,-0.0549 -0.63416,1e-5 -1.12199,0.20734 -1.4635,0.62199 -0.33742,0.4106 -0.5061,1.0021 -0.5061,1.77449 l 0,3.59778 -1.1281,0 0,-6.82967 1.1281,0 0,1.06104 c 0.23576,-0.41465 0.5427,-0.72158 0.9208,-0.92079 0.37805,-0.20325 0.83742,-0.30489 1.3781,-0.30489 0.0772,0 0.16262,0.006 0.2561,0.0183 0.0935,0.008 0.19716,0.0224 0.31102,0.0427 l 0.006,1.15251"
+ id="path3751"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 696.04768,104.99968 0,0.54881 -5.15882,0 c 0.0488,0.77241 0.28049,1.36187 0.69518,1.7684 0.41869,0.40246 1.00005,0.60369 1.74399,0.60369 0.4309,0 0.84761,-0.0529 1.25005,-0.15854 0.40656,-0.1057 0.809,-0.26425 1.20739,-0.47564 l 0,1.06104 c -0.40243,0.17074 -0.81506,0.30083 -1.23788,0.39026 -0.42277,0.0894 -0.85165,0.13416 -1.28664,0.13416 -1.08949,0 -1.95335,-0.3171 -2.5916,-0.95128 -0.63421,-0.63418 -0.95129,-1.49195 -0.95129,-2.57332 0,-1.11795 0.30083,-2.00418 0.90248,-2.65869 0.60574,-0.65857 1.4208,-0.98786 2.44528,-0.98786 0.91873,0 1.6444,0.29677 2.17695,0.89029 0.53659,0.58947 0.80491,1.39236 0.80491,2.40868 m -1.12199,-0.32929 c -0.008,-0.61385 -0.1809,-1.10372 -0.51832,-1.4696 -0.33338,-0.36587 -0.77649,-0.5488 -1.32934,-0.54881 -0.62608,1e-5 -1.12815,0.17685 -1.5062,0.53052 -0.37401,0.35368 -0.58949,0.85168 -0.64637,1.49399 l 4.00023,-0.006"
+ id="path3753"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 707.38373,99.889627 0,1.201283 c -0.46754,-0.22358 -0.90863,-0.39025 -1.32328,-0.50002 -0.41464,-0.10976 -0.81506,-0.16464 -1.20128,-0.16465 -0.67076,10e-6 -1.18908,0.1301 -1.55496,0.39027 -0.3618,0.26018 -0.5427,0.63013 -0.5427,1.10982 0,0.40247 0.11992,0.70736 0.35978,0.91469 0.24389,0.20327 0.70326,0.36791 1.3781,0.49393 l 0.74394,0.15244 c 0.91878,0.17482 1.59564,0.48378 2.03062,0.92689 0.43903,0.43905 0.65859,1.02852 0.65859,1.7684 0,0.88216 -0.29679,1.5509 -0.89031,2.00621 -0.58949,0.45531 -1.45538,0.68297 -2.59771,0.68297 -0.4309,0 -0.89031,-0.0488 -1.37815,-0.14635 -0.48374,-0.0976 -0.98581,-0.24189 -1.50615,-0.43296 l 0,-1.26836 c 0.5,0.2805 0.9899,0.4919 1.46961,0.63418 0.47966,0.14229 0.95124,0.21343 1.41469,0.21343 0.70331,0 1.24601,-0.13822 1.62815,-0.41466 0.38214,-0.27644 0.57318,-0.67077 0.57318,-1.183 0,-0.44718 -0.1382,-0.79679 -0.41464,-1.04884 -0.27236,-0.25204 -0.72158,-0.44108 -1.34762,-0.56711 l -0.75004,-0.14635 c -0.91878,-0.18293 -1.58343,-0.46953 -1.99404,-0.8598 -0.4106,-0.39026 -0.61588,-0.93297 -0.61588,-1.62815 0,-0.80491 0.28251,-1.43909 0.84761,-1.90255 0.56915,-0.463425 1.3517,-0.695147 2.34771,-0.695156 0.42681,9e-6 0.8618,0.03861 1.30491,0.115858 0.44311,0.07725 0.89642,0.193113 1.35987,0.347585"
+ id="path3755"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 709.80458,101.86535 1.12204,0 0,6.82967 -1.12204,0 0,-6.82967 m 0,-2.658689 1.12204,0 0,1.420809 -1.12204,0 0,-1.420809"
+ id="path3757"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 712.78039,101.86535 5.32957,0 0,1.02445 -4.21975,4.90882 4.21975,0 0,0.8964 -5.48205,0 0,-1.02445 4.21979,-4.90883 -4.06731,0 0,-0.89639"
+ id="path3759"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 725.67135,104.99968 0,0.54881 -5.15882,0 c 0.0488,0.77241 0.28049,1.36187 0.69514,1.7684 0.41873,0.40246 1.00009,0.60369 1.74403,0.60369 0.4309,0 0.84761,-0.0529 1.25005,-0.15854 0.40652,-0.1057 0.809,-0.26425 1.20739,-0.47564 l 0,1.06104 c -0.40243,0.17074 -0.81506,0.30083 -1.23788,0.39026 -0.42277,0.0894 -0.85165,0.13416 -1.28664,0.13416 -1.08949,0 -1.95335,-0.3171 -2.5916,-0.95128 -0.63421,-0.63418 -0.95129,-1.49195 -0.95129,-2.57332 0,-1.11795 0.30083,-2.00418 0.90248,-2.65869 0.60574,-0.65857 1.4208,-0.98786 2.44528,-0.98786 0.91873,0 1.6444,0.29677 2.17695,0.89029 0.53659,0.58947 0.80491,1.39236 0.80491,2.40868 m -1.12199,-0.32929 c -0.008,-0.61385 -0.1809,-1.10372 -0.51832,-1.4696 -0.33338,-0.36587 -0.77649,-0.5488 -1.32934,-0.54881 -0.62608,1e-5 -1.12815,0.17685 -1.5062,0.53052 -0.37401,0.35368 -0.58949,0.85168 -0.64637,1.49399 l 4.00023,-0.006"
+ id="path3761"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 727.79954,107.14614 1.28665,0 0,1.54888 -1.28665,0 0,-1.54888 m 0,-4.90882 1.28665,0 0,1.54887 -1.28665,0 0,-1.54887"
+ id="path3763"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 736.0805,107.65837 2.0123,0 0,-6.94553 -2.18912,0.43905 0,-1.12201 2.17696,-0.439054 1.23177,0 0,8.067544 2.01231,0 0,1.03665 -5.24422,0 0,-1.03665"
+ id="path3765"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 743.81875,107.14614 1.28669,0 0,1.54888 -1.28669,0 0,-1.54888"
+ id="path3767"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 750.4289,100.40185 c -0.6342,1e-5 -1.11184,0.31304 -1.43301,0.93908 -0.31708,0.622 -0.47562,1.55904 -0.47562,2.81114 0,1.24804 0.15854,2.18509 0.47562,2.81114 0.32117,0.62199 0.79881,0.93298 1.43301,0.93298 0.63825,0 1.11594,-0.31099 1.43302,-0.93298 0.32116,-0.62605 0.48172,-1.5631 0.48172,-2.81114 0,-1.2521 -0.16056,-2.18914 -0.48172,-2.81114 -0.31708,-0.62604 -0.79477,-0.93907 -1.43302,-0.93908 m 0,-0.975666 c 1.02039,9e-6 1.7989,0.404504 2.3355,1.213486 0.54068,0.80493 0.81102,1.97573 0.81102,3.5124 0,1.53261 -0.27034,2.70341 -0.81102,3.5124 -0.5366,0.80493 -1.31511,1.20739 -2.3355,1.20739 -1.02038,0 -1.80092,-0.40246 -2.3416,-1.20739 -0.53664,-0.80899 -0.80491,-1.97979 -0.80491,-3.5124 0,-1.53667 0.26827,-2.70747 0.80491,-3.5124 0.54068,-0.808982 1.32122,-1.213477 2.3416,-1.213486"
+ id="path3769"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 760.90513,103.1764 c 0.28048,-0.50408 0.61588,-0.87606 1.00615,-1.11592 0.39027,-0.23984 0.84963,-0.35977 1.37815,-0.35977 0.71138,0 1.26019,0.25002 1.64642,0.75004 0.38618,0.49597 0.57929,1.20333 0.57929,2.12208 l 0,4.12219 -1.1281,0 0,-4.08561 c 0,-0.6545 -0.11589,-1.1403 -0.34757,-1.4574 -0.23177,-0.31709 -0.58544,-0.47563 -1.06106,-0.47564 -0.58132,10e-6 -1.04073,0.19311 -1.3781,0.57931 -0.33747,0.3862 -0.50616,0.91266 -0.50616,1.57936 l 0,3.85998 -1.1281,0 0,-4.08561 c 0,-0.65857 -0.11588,-1.14437 -0.34761,-1.4574 -0.23168,-0.31709 -0.58944,-0.47563 -1.07323,-0.47564 -0.57319,10e-6 -1.02851,0.19514 -1.36593,0.5854 -0.33742,0.38621 -0.50611,0.91063 -0.50611,1.57327 l 0,3.85998 -1.1281,0 0,-6.82967 1.1281,0 0,1.06104 c 0.2561,-0.41872 0.56304,-0.72768 0.9208,-0.92688 0.35771,-0.1992 0.78255,-0.2988 1.27447,-0.2988 0.49596,0 0.91671,0.12603 1.26226,0.37807 0.34959,0.25205 0.60776,0.61793 0.77443,1.09762"
+ id="path3771"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 773.07658,103.1764 c 0.28049,-0.50408 0.61589,-0.87606 1.00615,-1.11592 0.39027,-0.23984 0.84964,-0.35977 1.37815,-0.35977 0.71139,0 1.26019,0.25002 1.64642,0.75004 0.38618,0.49597 0.57929,1.20333 0.57929,2.12208 l 0,4.12219 -1.1281,0 0,-4.08561 c 0,-0.6545 -0.11588,-1.1403 -0.34756,-1.4574 -0.23178,-0.31709 -0.58545,-0.47563 -1.06107,-0.47564 -0.58131,10e-6 -1.04073,0.19311 -1.3781,0.57931 -0.33747,0.3862 -0.50615,0.91266 -0.50615,1.57936 l 0,3.85998 -1.1281,0 0,-4.08561 c 0,-0.65857 -0.11589,-1.14437 -0.34762,-1.4574 -0.23172,-0.31709 -0.58944,-0.47563 -1.07323,-0.47564 -0.57319,10e-6 -1.02851,0.19514 -1.36593,0.5854 -0.33742,0.38621 -0.50611,0.91063 -0.50611,1.57327 l 0,3.85998 -1.1281,0 0,-6.82967 1.1281,0 0,1.06104 c 0.25611,-0.41872 0.56304,-0.72768 0.9208,-0.92688 0.35771,-0.1992 0.78255,-0.2988 1.27447,-0.2988 0.49596,0 0.91672,0.12603 1.26226,0.37807 0.34959,0.25205 0.60776,0.61793 0.77443,1.09762"
+ id="path3773"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 783.254,101.86535 1.12199,0 1.40253,5.32958 1.39642,-5.32958 1.32328,0 1.40248,5.32958 1.39642,-5.32958 1.12204,0 -1.78669,6.82967 -1.32323,0 -1.46961,-5.59789 -1.47571,5.59789 -1.32324,0 -1.78668,-6.82967"
+ id="path3775"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 794.12655,101.86535 1.12204,0 0,6.82967 -1.12204,0 0,-6.82967 m 0,-2.658689 1.12204,0 0,1.420809 -1.12204,0 0,-1.420809"
+ id="path3777"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 802.08436,102.90199 0,-3.695329 1.122,0 0,9.488359 -1.122,0 0,-1.02445 c -0.23581,0.40653 -0.53457,0.70939 -0.89642,0.90859 -0.35771,0.19513 -0.78866,0.2927 -1.29274,0.2927 -0.82526,0 -1.49803,-0.32929 -2.01842,-0.98787 -0.5163,-0.65857 -0.77442,-1.52447 -0.77442,-2.59771 0,-1.07323 0.25812,-1.93913 0.77442,-2.59771 0.52039,-0.65857 1.19316,-0.98786 2.01842,-0.98786 0.50408,0 0.93503,0.0996 1.29274,0.2988 0.36185,0.19513 0.66061,0.49596 0.89642,0.90248 m -3.82342,2.38429 c 0,0.82525 0.16874,1.47367 0.50616,1.94524 0.34146,0.4675 0.809,0.70126 1.40252,0.70125 0.59353,10e-6 1.06102,-0.23375 1.40253,-0.70125 0.34146,-0.47157 0.51221,-1.11999 0.51221,-1.94524 0,-0.82524 -0.17075,-1.47163 -0.51221,-1.93914 -0.34151,-0.47156 -0.809,-0.70735 -1.40253,-0.70735 -0.59352,0 -1.06106,0.23579 -1.40252,0.70735 -0.33742,0.46751 -0.50616,1.1139 -0.50616,1.93914"
+ id="path3779"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 811.3593,104.99968 0,0.54881 -5.15886,0 c 0.0488,0.77241 0.28053,1.36187 0.69518,1.7684 0.41873,0.40246 1.00004,0.60369 1.74398,0.60369 0.43095,0 0.84762,-0.0529 1.25009,-0.15854 0.40653,-0.1057 0.809,-0.26425 1.2074,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81511,0.30083 -1.23788,0.39026 -0.42282,0.0894 -0.8517,0.13416 -1.28669,0.13416 -1.08948,0 -1.95335,-0.3171 -2.5916,-0.95128 -0.63416,-0.63418 -0.95128,-1.49195 -0.95128,-2.57332 0,-1.11795 0.30082,-2.00418 0.90252,-2.65869 0.6057,-0.65857 1.4208,-0.98786 2.44523,-0.98786 0.91878,0 1.6444,0.29677 2.17695,0.89029 0.53664,0.58947 0.80496,1.39236 0.80496,2.40868 m -1.12204,-0.32929 c -0.008,-0.61385 -0.1809,-1.10372 -0.51832,-1.4696 -0.33333,-0.36587 -0.77645,-0.5488 -1.32934,-0.54881 -0.62608,1e-5 -1.1281,0.17685 -1.5062,0.53052 -0.37401,0.35368 -0.58944,0.85168 -0.64637,1.49399 l 4.00023,-0.006"
+ id="path3781"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 813.35939,107.14614 1.28669,0 0,1.54888 -1.28669,0 0,-1.54888"
+ id="path3783"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 588.79755,118.32363 1.23177,0 0,9.10418 -1.23177,0 0,-9.10418"
+ id="path3785"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 597.7493,121.9092 c 0.28049,-0.50409 0.61589,-0.87606 1.00615,-1.11592 0.39027,-0.23984 0.84964,-0.35977 1.3781,-0.35977 0.71144,0 1.26024,0.25001 1.64647,0.75004 0.38618,0.49597 0.57929,1.20333 0.57929,2.12207 l 0,4.12219 -1.1281,0 0,-4.0856 c -4e-5,-0.65451 -0.11588,-1.14031 -0.34761,-1.4574 -0.23173,-0.31709 -0.5854,-0.47563 -1.06102,-0.47564 -0.58136,1e-5 -1.04073,0.19311 -1.37815,0.5793 -0.33742,0.38621 -0.5061,0.91266 -0.5061,1.57936 l 0,3.85998 -1.1281,0 0,-4.0856 c -5e-5,-0.65857 -0.11589,-1.14437 -0.34762,-1.4574 -0.23172,-0.31709 -0.58944,-0.47563 -1.07323,-0.47564 -0.57319,1e-5 -1.02851,0.19514 -1.36593,0.5854 -0.33742,0.38621 -0.50611,0.91063 -0.50611,1.57326 l 0,3.85998 -1.12815,0 0,-6.82966 1.12815,0 0,1.06104 c 0.25611,-0.41872 0.56304,-0.72768 0.92075,-0.92689 0.35776,-0.19919 0.7826,-0.29879 1.27448,-0.29879 0.49596,0 0.91671,0.12602 1.26226,0.37807 0.34963,0.25205 0.60776,0.61792 0.77447,1.09762"
+ id="path3787"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 607.70716,123.99469 c -0.90652,0 -1.53462,0.10367 -1.88425,0.31099 -0.34959,0.20733 -0.52438,0.56101 -0.52438,1.06104 0,0.3984 0.13007,0.71549 0.39026,0.95127 0.26424,0.23172 0.62195,0.34759 1.07324,0.34759 0.62194,0 1.11997,-0.21953 1.49398,-0.65858 0.37806,-0.44311 0.56708,-1.03054 0.56708,-1.7623 l 0,-0.25001 -1.11593,0 m 2.23797,-0.46345 0,3.89657 -1.12204,0 0,-1.03664 c -0.2561,0.41466 -0.57525,0.72159 -0.95734,0.92078 -0.38214,0.19514 -0.84968,0.2927 -1.40253,0.2927 -0.69922,0 -1.2562,-0.19513 -1.67085,-0.5854 -0.4106,-0.39433 -0.61588,-0.92078 -0.61588,-1.57936 0,-0.76833 0.2561,-1.34763 0.76832,-1.7379 0.5163,-0.39026 1.28466,-0.5854 2.30505,-0.5854 l 1.57323,0 0,-0.10976 c 0,-0.51629 -0.17075,-0.91469 -0.51221,-1.1952 -0.33742,-0.28456 -0.81309,-0.42684 -1.42691,-0.42685 -0.39026,10e-6 -0.77038,0.0468 -1.14031,0.14025 -0.36993,0.0935 -0.72567,0.23376 -1.06713,0.42076 l 0,-1.03665 c 0.41056,-0.15854 0.80896,-0.27643 1.19518,-0.35368 0.38618,-0.0813 0.76222,-0.12195 1.1281,-0.12195 0.98788,0 1.72572,0.25612 2.21355,0.76833 0.48783,0.51223 0.73177,1.2887 0.73177,2.3294"
+ id="path3789"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 616.75648,123.93371 c 0,-0.81305 -0.16869,-1.44317 -0.50611,-1.89035 -0.33338,-0.44718 -0.80289,-0.67077 -1.40863,-0.67078 -0.60165,1e-5 -1.07121,0.2236 -1.40863,0.67078 -0.33334,0.44718 -0.5,1.0773 -0.5,1.89035 0,0.80899 0.16666,1.43708 0.5,1.88425 0.33742,0.44718 0.80698,0.67078 1.40863,0.67078 0.60574,0 1.07525,-0.2236 1.40863,-0.67078 0.33742,-0.44717 0.50611,-1.07526 0.50611,-1.88425 m 1.12204,2.64649 c 0,1.16267 -0.25817,2.02654 -0.77443,2.59162 -0.5163,0.56914 -1.30702,0.8537 -2.37213,0.85371 -0.39431,-1e-5 -0.7663,-0.0305 -1.11589,-0.0915 -0.34963,-0.0569 -0.68907,-0.14635 -1.01836,-0.26831 l 0,-1.09153 c 0.32929,0.17887 0.6545,0.311 0.97566,0.39637 0.32117,0.0854 0.6484,0.12805 0.98178,0.12805 0.73581,0 1.28664,-0.1931 1.65252,-0.5793 0.36589,-0.38214 0.54881,-0.96143 0.54881,-1.7379 l 0,-0.55491 c -0.23173,0.40246 -0.52847,0.70329 -0.89027,0.90249 -0.36184,0.1992 -0.79477,0.29879 -1.29885,0.29879 -0.83747,0 -1.51231,-0.31912 -2.02452,-0.95737 -0.51221,-0.63824 -0.76837,-1.48382 -0.76837,-2.53673 0,-1.05697 0.25616,-1.90458 0.76837,-2.54283 0.51221,-0.63825 1.18705,-0.95737 2.02452,-0.95737 0.50408,0 0.93701,0.0996 1.29885,0.29879 0.3618,0.19921 0.65854,0.50004 0.89027,0.90249 l 0,-1.03664 1.12204,0 0,5.98205"
+ id="path3791"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 626.03142,123.73248 0,0.54881 -5.15882,0 c 0.0488,0.7724 0.28048,1.36187 0.69513,1.7684 0.41873,0.40246 1.00005,0.60369 1.74403,0.60369 0.4309,0 0.84762,-0.0528 1.25005,-0.15855 0.40652,-0.1057 0.809,-0.26424 1.20739,-0.47564 l 0,1.06104 c -0.40248,0.17075 -0.8151,0.30083 -1.23788,0.39027 -0.42277,0.0894 -0.85165,0.13415 -1.28664,0.13415 -1.08948,0 -1.9534,-0.31709 -2.59164,-0.95127 -0.63416,-0.63418 -0.95124,-1.49195 -0.95124,-2.57332 0,-1.11795 0.30082,-2.00418 0.90248,-2.65869 0.60574,-0.65857 1.4208,-0.98786 2.44527,-0.98786 0.91873,0 1.6444,0.29677 2.17695,0.89029 0.5366,0.58947 0.80492,1.39236 0.80492,2.40868 m -1.122,-0.32929 c -0.008,-0.61385 -0.18094,-1.10372 -0.51836,-1.4696 -0.33334,-0.36587 -0.77645,-0.5488 -1.32934,-0.54881 -0.62604,10e-6 -1.1281,0.17684 -1.50616,0.53052 -0.37401,0.35368 -0.58948,0.85168 -0.64637,1.49399 l 4.00023,-0.006"
+ id="path3793"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 632.22692,120.79938 0,1.06104 c -0.31712,-0.16261 -0.64642,-0.28457 -0.98788,-0.36588 -0.3415,-0.0813 -0.69518,-0.12195 -1.06102,-0.12196 -0.55698,1e-5 -0.97566,0.0854 -1.2562,0.25611 -0.27644,0.17075 -0.41464,0.42686 -0.41464,0.76834 0,0.26019 0.0996,0.46548 0.2988,0.61589 0.19918,0.14636 0.59964,0.28661 1.20129,0.42076 l 0.38416,0.0854 c 0.79679,0.17074 1.36185,0.41263 1.69523,0.72565 0.33742,0.30897 0.5061,0.74192 0.5061,1.29886 0,0.63418 -0.25202,1.13625 -0.7561,1.50618 -0.50005,0.36994 -1.18912,0.55491 -2.06722,0.55491 -0.36589,0 -0.74803,-0.0366 -1.14642,-0.10976 -0.39431,-0.0691 -0.81102,-0.1748 -1.25005,-0.31709 l 0,-1.15861 c 0.41465,0.21547 0.82319,0.37808 1.22567,0.48784 0.40248,0.1057 0.80087,0.15855 1.19518,0.15855 0.52851,0 0.93503,-0.0894 1.2196,-0.26831 0.28458,-0.18294 0.42686,-0.43905 0.42686,-0.76834 0,-0.30489 -0.10367,-0.53865 -0.31102,-0.70126 -0.20326,-0.16261 -0.65248,-0.31912 -1.34761,-0.46954 l -0.39027,-0.0915 c -0.69518,-0.14635 -1.19724,-0.36994 -1.5062,-0.67077 -0.30895,-0.30489 -0.46345,-0.72158 -0.46345,-1.25007 0,-0.64231 0.22769,-1.13827 0.68297,-1.48789 0.45532,-0.34961 1.1017,-0.52442 1.93916,-0.52442 0.41465,0 0.80492,0.0305 1.1708,0.0915 0.36584,0.061 0.70326,0.15246 1.01226,0.27441"
+ id="path3795"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 641.05668,117.95165 c -0.54476,0.93503 -0.94922,1.85988 -1.2135,2.77456 -0.26423,0.91469 -0.39632,1.84157 -0.39632,2.78065 0,0.93908 0.13209,1.87002 0.39632,2.79284 0.26832,0.91875 0.67282,1.8436 1.2135,2.77455 l -0.97566,0 c -0.60978,-0.95534 -1.06713,-1.89442 -1.37204,-2.81724 -0.30083,-0.92281 -0.45124,-1.83953 -0.45124,-2.75015 0,-0.90656 0.15041,-1.81921 0.45124,-2.73797 0.30082,-0.91875 0.75817,-1.85782 1.37204,-2.81724 l 0.97566,0"
+ id="path3797"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 643.23974,120.59815 1.122,0 0,6.95162 c 0,0.86997 -0.16667,1.50009 -0.50001,1.89035 -0.32929,0.39027 -0.86184,0.5854 -1.59765,0.58541 l -0.42686,0 0,-0.95128 0.2988,0 c 0.42686,0 0.7175,-0.0996 0.872,-0.2988 0.15449,-0.19513 0.23172,-0.60369 0.23172,-1.22568 l 0,-6.95162 m 0,-2.65869 1.122,0 0,1.42081 -1.122,0 0,-1.42081"
+ id="path3799"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 647.78878,126.40336 0,3.62217 -1.1281,0 0,-9.42738 1.1281,0 0,1.03664 c 0.23577,-0.40652 0.53255,-0.70735 0.89031,-0.90249 0.3618,-0.19919 0.7927,-0.29879 1.29275,-0.29879 0.82929,0 1.50211,0.32929 2.01841,0.98786 0.52034,0.65858 0.78054,1.52448 0.78054,2.59771 0,1.07324 -0.2602,1.93914 -0.78054,2.59771 -0.5163,0.65858 -1.18912,0.98786 -2.01841,0.98786 -0.50005,0 -0.93095,-0.0976 -1.29275,-0.2927 -0.35776,-0.19919 -0.65454,-0.50206 -0.89031,-0.90859 m 3.81731,-2.38428 c 0,-0.82525 -0.17075,-1.47162 -0.51226,-1.93914 -0.33742,-0.47156 -0.80289,-0.70735 -1.39642,-0.70736 -0.59352,1e-5 -1.06102,0.2358 -1.40248,0.70736 -0.33742,0.46752 -0.50615,1.11389 -0.50615,1.93914 0,0.82525 0.16873,1.47366 0.50615,1.94523 0.34146,0.46751 0.80896,0.70127 1.40248,0.70127 0.59353,0 1.059,-0.23376 1.39642,-0.70127 0.34151,-0.47157 0.51226,-1.11998 0.51226,-1.94523"
+ id="path3801"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 659.12483,123.93371 c -4e-5,-0.81305 -0.16873,-1.44317 -0.50615,-1.89035 -0.33333,-0.44718 -0.80289,-0.67077 -1.40863,-0.67078 -0.60166,1e-5 -1.07117,0.2236 -1.40859,0.67078 -0.33338,0.44718 -0.50005,1.0773 -0.50005,1.89035 0,0.80899 0.16667,1.43708 0.50005,1.88425 0.33742,0.44718 0.80693,0.67078 1.40859,0.67078 0.60574,0 1.0753,-0.2236 1.40863,-0.67078 0.33742,-0.44717 0.50611,-1.07526 0.50615,-1.88425 m 1.122,2.64649 c 0,1.16267 -0.25813,2.02654 -0.77443,2.59162 -0.5163,0.56914 -1.30698,0.8537 -2.37209,0.85371 -0.39435,-1e-5 -0.7663,-0.0305 -1.11593,-0.0915 -0.34963,-0.0569 -0.68907,-0.14635 -1.01837,-0.26831 l 0,-1.09153 c 0.3293,0.17887 0.65455,0.311 0.97567,0.39637 0.32117,0.0854 0.64844,0.12805 0.98177,0.12805 0.73582,0 1.28669,-0.1931 1.65253,-0.5793 0.36589,-0.38214 0.54881,-0.96143 0.54885,-1.7379 l 0,-0.55491 c -0.23172,0.40246 -0.52851,0.70329 -0.89031,0.90249 -0.3618,0.1992 -0.79477,0.29879 -1.29885,0.29879 -0.83747,0 -1.51231,-0.31912 -2.02452,-0.95737 -0.51222,-0.63824 -0.76832,-1.48382 -0.76832,-2.53673 0,-1.05697 0.2561,-1.90458 0.76832,-2.54283 0.51221,-0.63825 1.18705,-0.95737 2.02452,-0.95737 0.50408,0 0.93705,0.0996 1.29885,0.29879 0.3618,0.19921 0.65859,0.50004 0.89031,0.90249 l 0,-1.03664 1.122,0 0,5.98205"
+ id="path3803"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 662.38108,117.95165 0.97567,0 c 0.60982,0.95942 1.0651,1.89849 1.36593,2.81724 0.30491,0.91876 0.45735,1.83141 0.45735,2.73797 0,0.91062 -0.15244,1.82734 -0.45735,2.75015 -0.30083,0.92282 -0.75611,1.8619 -1.36593,2.81724 l -0.97567,0 c 0.54068,-0.93095 0.94316,-1.8558 1.20739,-2.77455 0.26832,-0.92282 0.40248,-1.85376 0.40248,-2.79284 0,-0.93908 -0.13416,-1.86596 -0.40248,-2.78065 -0.26423,-0.91468 -0.66671,-1.83953 -1.20739,-2.77456"
+ id="path3805"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 667.72287,125.87894 1.28668,0 0,1.54887 -1.28668,0 0,-1.54887 m 0,-4.90882 1.28668,0 0,1.54887 -1.28668,0 0,-1.54887"
+ id="path3807"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 682.49813,119.02489 0,1.29885 c -0.41469,-0.38619 -0.85781,-0.67483 -1.32934,-0.8659 -0.46754,-0.19106 -0.96552,-0.28659 -1.49399,-0.2866 -1.04072,1e-5 -1.83751,0.31913 -2.3904,0.95737 -0.5529,0.63419 -0.8293,1.55294 -0.8293,2.75626 0,1.19926 0.2764,2.11801 0.8293,2.75626 0.55289,0.63418 1.34968,0.95127 2.3904,0.95127 0.52847,0 1.02645,-0.0955 1.49399,-0.2866 0.47153,-0.19107 0.91465,-0.4797 1.32934,-0.86591 l 0,1.28666 c -0.43095,0.2927 -0.88829,0.51223 -1.37204,0.65858 -0.47971,0.14635 -0.98788,0.21952 -1.52447,0.21952 -1.37815,0 -2.46355,-0.42075 -3.2563,-1.26226 -0.79274,-0.84558 -1.18911,-1.99809 -1.18907,-3.45752 -4e-5,-1.4635 0.39633,-2.616 1.18907,-3.45752 0.79275,-0.84557 1.87815,-1.26836 3.2563,-1.26837 0.54472,1e-5 1.05698,0.0732 1.53668,0.21953 0.48375,0.14229 0.93701,0.35775 1.35983,0.64638"
+ id="path3809"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 687.01058,121.38478 c -0.60166,10e-6 -1.07732,0.23579 -1.42691,0.70736 -0.34963,0.46751 -0.52443,1.10983 -0.52443,1.92694 0,0.81712 0.17278,1.46147 0.51832,1.93304 0.34964,0.46751 0.82728,0.70126 1.43302,0.70126 0.59761,0 1.07121,-0.23579 1.4208,-0.70736 0.34963,-0.47157 0.52442,-1.11388 0.52442,-1.92694 0,-0.80899 -0.17479,-1.44927 -0.52442,-1.92084 -0.34959,-0.47564 -0.82319,-0.71345 -1.4208,-0.71346 m 0,-0.95127 c 0.97566,0 1.74196,0.31709 2.2989,0.95127 0.55693,0.63419 0.83544,1.51229 0.83544,2.6343 0,1.11795 -0.27851,1.99605 -0.83544,2.6343 -0.55694,0.63418 -1.32324,0.95127 -2.2989,0.95127 -0.97976,0 -1.74808,-0.31709 -2.30501,-0.95127 -0.55289,-0.63825 -0.82934,-1.51635 -0.82934,-2.6343 0,-1.12201 0.27645,-2.00011 0.82934,-2.6343 0.55693,-0.63418 1.32525,-0.95127 2.30501,-0.95127"
+ id="path3811"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 697.67583,123.30562 0,4.12219 -1.12199,0 0,-4.0856 c 0,-0.64637 -0.12604,-1.13014 -0.3781,-1.4513 -0.25202,-0.32115 -0.63012,-0.48173 -1.13421,-0.48174 -0.60574,1e-5 -1.08338,0.19311 -1.43301,0.5793 -0.34959,0.38621 -0.52443,0.91266 -0.52443,1.57936 l 0,3.85998 -1.1281,0 0,-6.82966 1.1281,0 0,1.06104 c 0.26832,-0.41059 0.58338,-0.71752 0.94518,-0.92079 0.36589,-0.20326 0.78664,-0.30489 1.26226,-0.30489 0.78462,0 1.37815,0.24392 1.78063,0.73175 0.40243,0.48377 0.60367,1.19722 0.60367,2.14036"
+ id="path3813"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 699.12105,120.59815 1.18908,0 2.1343,5.73204 2.13425,-5.73204 1.18907,0 -2.56111,6.82966 -1.52447,0 -2.56112,-6.82966"
+ id="path3815"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 713.15844,123.73248 0,0.54881 -5.15882,0 c 0.0488,0.7724 0.28049,1.36187 0.69513,1.7684 0.41874,0.40246 1.0001,0.60369 1.74404,0.60369 0.4309,0 0.84761,-0.0528 1.25004,-0.15855 0.40652,-0.1057 0.809,-0.26424 1.2074,-0.47564 l 0,1.06104 c -0.40248,0.17075 -0.81511,0.30083 -1.23788,0.39027 -0.42278,0.0894 -0.85166,0.13415 -1.28664,0.13415 -1.08949,0 -1.9534,-0.31709 -2.59165,-0.95127 -0.63416,-0.63418 -0.95124,-1.49195 -0.95124,-2.57332 0,-1.11795 0.30083,-2.00418 0.90248,-2.65869 0.60574,-0.65857 1.4208,-0.98786 2.44527,-0.98786 0.91874,0 1.6444,0.29677 2.17696,0.89029 0.53659,0.58947 0.80491,1.39236 0.80491,2.40868 m -1.12199,-0.32929 c -0.008,-0.61385 -0.18095,-1.10372 -0.51832,-1.4696 -0.33338,-0.36587 -0.7765,-0.5488 -1.32939,-0.54881 -0.62603,10e-6 -1.1281,0.17684 -1.50615,0.53052 -0.37402,0.35368 -0.58949,0.85168 -0.64638,1.49399 l 4.00024,-0.006"
+ id="path3817"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 718.95757,121.64699 c -0.12603,-0.0732 -0.26428,-0.12602 -0.41464,-0.15855 -0.14638,-0.0366 -0.309,-0.0549 -0.48784,-0.0549 -0.6342,1e-5 -1.12204,0.20734 -1.4635,0.62199 -0.33742,0.4106 -0.50615,1.00209 -0.50615,1.77449 l 0,3.59777 -1.1281,0 0,-6.82966 1.1281,0 0,1.06104 c 0.23577,-0.41466 0.5427,-0.72158 0.9208,-0.92079 0.37805,-0.20326 0.83742,-0.30489 1.3781,-0.30489 0.0773,0 0.16263,0.006 0.25615,0.0183 0.0935,0.008 0.19716,0.0224 0.31098,0.0427 l 0.006,1.15251"
+ id="path3819"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 721.25647,118.65901 0,1.93914 2.31112,0 0,0.872 -2.31112,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07324 0.1545,0.15855 0.46548,0.23782 0.93302,0.23782 l 1.15248,0 0,0.93907 -1.15248,0 c -0.86594,0 -1.46355,-0.16058 -1.7928,-0.48173 -0.32929,-0.32522 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70753 -0.82323,0 0,-0.872 0.82323,0 0,-1.93914 1.1281,0"
+ id="path3821"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 730.13504,118.65901 0,1.93914 2.31111,0 0,0.872 -2.31111,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07324 0.1545,0.15855 0.46547,0.23782 0.93296,0.23782 l 1.15253,0 0,0.93907 -1.15253,0 c -0.86588,0 -1.46349,-0.16058 -1.79274,-0.48173 -0.3293,-0.32522 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70753 -0.82324,0 0,-0.872 0.82324,0 0,-1.93914 1.1281,0"
+ id="path3823"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 736.57444,121.38478 c -0.60166,10e-6 -1.07728,0.23579 -1.42691,0.70736 -0.34963,0.46751 -0.52443,1.10983 -0.52443,1.92694 0,0.81712 0.17278,1.46147 0.51832,1.93304 0.34964,0.46751 0.82728,0.70126 1.43302,0.70126 0.59761,0 1.07121,-0.23579 1.4208,-0.70736 0.34963,-0.47157 0.52442,-1.11388 0.52442,-1.92694 0,-0.80899 -0.17479,-1.44927 -0.52442,-1.92084 -0.34959,-0.47564 -0.82319,-0.71345 -1.4208,-0.71346 m 0,-0.95127 c 0.97566,0 1.74196,0.31709 2.2989,0.95127 0.55698,0.63419 0.83544,1.51229 0.83544,2.6343 0,1.11795 -0.27846,1.99605 -0.83544,2.6343 -0.55694,0.63418 -1.32324,0.95127 -2.2989,0.95127 -0.97971,0 -1.74808,-0.31709 -2.30501,-0.95127 -0.55289,-0.63825 -0.82929,-1.51635 -0.82929,-2.6343 0,-1.12201 0.2764,-2.00011 0.82929,-2.6343 0.55693,-0.63418 1.3253,-0.95127 2.30501,-0.95127"
+ id="path3825"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 744.73344,120.59815 1.18912,0 2.13426,5.73204 2.1343,-5.73204 1.18907,0 -2.56111,6.82966 -1.52448,0 -2.56116,-6.82966"
+ id="path3827"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 758.77087,123.73248 0,0.54881 -5.15886,0 c 0.0488,0.7724 0.28053,1.36187 0.69518,1.7684 0.41873,0.40246 1.00005,0.60369 1.74399,0.60369 0.43094,0 0.84761,-0.0528 1.25009,-0.15855 0.40652,-0.1057 0.80895,-0.26424 1.20739,-0.47564 l 0,1.06104 c -0.40248,0.17075 -0.81511,0.30083 -1.23788,0.39027 -0.42282,0.0894 -0.8517,0.13415 -1.28668,0.13415 -1.08949,0 -1.95336,-0.31709 -2.5916,-0.95127 -0.63421,-0.63418 -0.95129,-1.49195 -0.95129,-2.57332 0,-1.11795 0.30083,-2.00418 0.90248,-2.65869 0.60574,-0.65857 1.42084,-0.98786 2.44527,-0.98786 0.91878,0 1.6444,0.29677 2.17695,0.89029 0.53664,0.58947 0.80492,1.39236 0.80496,2.40868 m -1.12204,-0.32929 c -0.008,-0.61385 -0.1809,-1.10372 -0.51832,-1.4696 -0.33333,-0.36587 -0.77649,-0.5488 -1.32934,-0.54881 -0.62607,10e-6 -1.1281,0.17684 -1.50619,0.53052 -0.37402,0.35368 -0.58945,0.85168 -0.64638,1.49399 l 4.00023,-0.006"
+ id="path3829"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 765.52735,120.86036 0,1.04884 c -0.31712,-0.1748 -0.63622,-0.30489 -0.95739,-0.39027 -0.31708,-0.0894 -0.63825,-0.13414 -0.96345,-0.13415 -0.72769,10e-6 -1.29275,0.23172 -1.69523,0.69516 -0.40248,0.45938 -0.60367,1.10576 -0.60367,1.93914 0,0.83338 0.20119,1.48179 0.60367,1.94523 0.40248,0.45938 0.96754,0.68907 1.69523,0.68907 0.3252,0 0.64637,-0.0427 0.96345,-0.12806 0.32117,-0.0894 0.64027,-0.22155 0.95739,-0.39636 l 0,1.03664 c -0.31304,0.14635 -0.63824,0.25612 -0.97566,0.32929 -0.33338,0.0732 -0.68908,0.10976 -1.06713,0.10976 -1.02851,0 -1.84564,-0.32319 -2.45138,-0.96956 -0.60574,-0.64638 -0.90859,-1.51838 -0.90859,-2.61601 0,-1.11388 0.30492,-1.98995 0.9147,-2.6282 0.61386,-0.63825 1.4533,-0.95737 2.51841,-0.95737 0.34555,0 0.68297,0.0366 1.01226,0.10976 0.32929,0.0691 0.64844,0.17481 0.95739,0.31709"
+ id="path3831"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 768.60068,118.65901 0,1.93914 2.31111,0 0,0.872 -2.31111,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22567,1.07324 0.15445,0.15855 0.46542,0.23782 0.93296,0.23782 l 1.15248,0 0,0.93907 -1.15248,0 c -0.86593,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.32929,-0.32522 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70753 -0.82323,0 0,-0.872 0.82323,0 0,-1.93914 1.1281,0"
+ id="path3833"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 775.04013,121.38478 c -0.6017,10e-6 -1.07732,0.23579 -1.42696,0.70736 -0.34958,0.46751 -0.52442,1.10983 -0.52438,1.92694 -4e-5,0.81712 0.17278,1.46147 0.51832,1.93304 0.34959,0.46751 0.82728,0.70126 1.43302,0.70126 0.59756,0 1.07116,-0.23579 1.4208,-0.70736 0.34958,-0.47157 0.52442,-1.11388 0.52442,-1.92694 0,-0.80899 -0.17484,-1.44927 -0.52442,-1.92084 -0.34964,-0.47564 -0.82324,-0.71345 -1.4208,-0.71346 m 0,-0.95127 c 0.97562,0 1.74196,0.31709 2.2989,0.95127 0.55693,0.63419 0.8354,1.51229 0.8354,2.6343 0,1.11795 -0.27847,1.99605 -0.8354,2.6343 -0.55694,0.63418 -1.32328,0.95127 -2.2989,0.95127 -0.97976,0 -1.74808,-0.31709 -2.30506,-0.95127 -0.55284,-0.63825 -0.82929,-1.51635 -0.82929,-2.6343 0,-1.12201 0.27645,-2.00011 0.82929,-2.6343 0.55698,-0.63418 1.3253,-0.95127 2.30506,-0.95127"
+ id="path3835"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 783.98573,121.64699 c -0.12604,-0.0732 -0.26424,-0.12602 -0.41465,-0.15855 -0.14633,-0.0366 -0.30896,-0.0549 -0.48783,-0.0549 -0.63417,1e-5 -1.122,0.20734 -1.4635,0.62199 -0.33742,0.4106 -0.50611,1.00209 -0.50611,1.77449 l 0,3.59777 -1.12815,0 0,-6.82966 1.12815,0 0,1.06104 c 0.23577,-0.41466 0.5427,-0.72158 0.92075,-0.92079 0.3781,-0.20326 0.83747,-0.30489 1.37815,-0.30489 0.0772,0 0.16262,0.006 0.2561,0.0183 0.0935,0.008 0.19716,0.0224 0.31102,0.0427 l 0.006,1.15251"
+ id="path3837"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 789.03481,124.73254 0,-4.13439 1.12204,0 0,4.0917 c -5e-5,0.64638 0.12599,1.13218 0.37805,1.4574 0.25202,0.32116 0.63012,0.48174 1.13421,0.48174 0.60574,0 1.08338,-0.1931 1.43301,-0.5793 0.35368,-0.3862 0.53054,-0.91266 0.53054,-1.57936 l 0,-3.87218 1.12199,0 0,6.82966 -1.12199,0 0,-1.04884 c -0.27241,0.41466 -0.58949,0.72362 -0.95129,0.92689 -0.35776,0.19919 -0.77443,0.29879 -1.25009,0.29879 -0.78458,0 -1.38017,-0.24391 -1.78669,-0.73175 -0.40652,-0.48783 -0.60978,-1.20128 -0.60978,-2.14036"
+ id="path3839"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 801.43188,120.79938 0,1.06104 c -0.31712,-0.16261 -0.64637,-0.28457 -0.98788,-0.36588 -0.34146,-0.0813 -0.69513,-0.12195 -1.06102,-0.12196 -0.55693,1e-5 -0.97566,0.0854 -1.2562,0.25611 -0.2764,0.17075 -0.41464,0.42686 -0.41464,0.76834 0,0.26019 0.0996,0.46548 0.2988,0.61589 0.19922,0.14636 0.59964,0.28661 1.20129,0.42076 l 0.38416,0.0854 c 0.79679,0.17074 1.36189,0.41263 1.69523,0.72565 0.33742,0.30897 0.5061,0.74192 0.50615,1.29886 -5e-5,0.63418 -0.25207,1.13625 -0.75615,1.50618 -0.50005,0.36994 -1.18912,0.55491 -2.06722,0.55491 -0.36584,0 -0.74798,-0.0366 -1.14638,-0.10976 -0.39435,-0.0691 -0.81102,-0.1748 -1.25009,-0.31709 l 0,-1.15861 c 0.41465,0.21547 0.82323,0.37808 1.22567,0.48784 0.40248,0.1057 0.80087,0.15855 1.19522,0.15855 0.52847,0 0.93499,-0.0894 1.21956,-0.26831 0.28458,-0.18294 0.42686,-0.43905 0.42686,-0.76834 0,-0.30489 -0.10367,-0.53865 -0.31097,-0.70126 -0.20331,-0.16261 -0.65248,-0.31912 -1.34766,-0.46954 l -0.39027,-0.0915 c -0.69518,-0.14635 -1.19724,-0.36994 -1.5062,-0.67077 -0.30895,-0.30489 -0.4634,-0.72158 -0.4634,-1.25007 0,-0.64231 0.22764,-1.13827 0.68296,-1.48789 0.45528,-0.34961 1.10166,-0.52442 1.93912,-0.52442 0.41465,0 0.80492,0.0305 1.1708,0.0915 0.36589,0.061 0.70331,0.15246 1.01226,0.27441"
+ id="path3841"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 803.59056,120.59815 1.122,0 0,6.82966 -1.122,0 0,-6.82966 m 0,-2.65869 1.122,0 0,1.42081 -1.122,0 0,-1.42081"
+ id="path3843"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 812.7313,123.30562 0,4.12219 -1.122,0 0,-4.0856 c 0,-0.64637 -0.12603,-1.13014 -0.3781,-1.4513 -0.25202,-0.32115 -0.63012,-0.48173 -1.1342,-0.48174 -0.6057,1e-5 -1.08338,0.19311 -1.43302,0.5793 -0.34958,0.38621 -0.52442,0.91266 -0.52438,1.57936 l 0,3.85998 -1.12814,0 0,-6.82966 1.12814,0 0,1.06104 c 0.26828,-0.41059 0.58334,-0.71752 0.94514,-0.92079 0.36588,-0.20326 0.78664,-0.30489 1.2623,-0.30489 0.78458,0 1.3781,0.24392 1.78058,0.73175 0.40244,0.48377 0.60368,1.19722 0.60368,2.14036"
+ id="path3845"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 819.47561,123.93371 c 0,-0.81305 -0.16874,-1.44317 -0.50611,-1.89035 -0.33338,-0.44718 -0.80294,-0.67077 -1.40863,-0.67078 -0.60166,1e-5 -1.07122,0.2236 -1.40864,0.67078 -0.33333,0.44718 -0.5,1.0773 -0.5,1.89035 0,0.80899 0.16667,1.43708 0.5,1.88425 0.33742,0.44718 0.80698,0.67078 1.40864,0.67078 0.60569,0 1.07525,-0.2236 1.40863,-0.67078 0.33737,-0.44717 0.50611,-1.07526 0.50611,-1.88425 m 1.12199,2.64649 c 0,1.16267 -0.25813,2.02654 -0.77443,2.59162 -0.5163,0.56914 -1.30698,0.8537 -2.37208,0.85371 -0.39431,-1e-5 -0.7663,-0.0305 -1.11589,-0.0915 -0.34963,-0.0569 -0.68907,-0.14635 -1.01837,-0.26831 l 0,-1.09153 c 0.3293,0.17887 0.6545,0.311 0.97567,0.39637 0.32117,0.0854 0.64839,0.12805 0.98177,0.12805 0.73582,0 1.28664,-0.1931 1.65253,-0.5793 0.36584,-0.38214 0.54881,-0.96143 0.54881,-1.7379 l 0,-0.55491 c -0.23173,0.40246 -0.52852,0.70329 -0.89032,0.90249 -0.3618,0.1992 -0.79476,0.29879 -1.29885,0.29879 -0.83742,0 -1.51226,-0.31912 -2.02447,-0.95737 -0.51226,-0.63824 -0.76837,-1.48382 -0.76837,-2.53673 0,-1.05697 0.25611,-1.90458 0.76837,-2.54283 0.51221,-0.63825 1.18705,-0.95737 2.02447,-0.95737 0.50409,0 0.93705,0.0996 1.29885,0.29879 0.3618,0.19921 0.65859,0.50004 0.89032,0.90249 l 0,-1.03664 1.12199,0 0,5.98205"
+ id="path3847"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 828.05537,121.3238 -1.28664,0 0,-1.05494 1.00004,-1.94523 0.78664,0 -0.50004,1.94523 0,1.05494"
+ id="path3849"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 832.141,119.33588 0,3.42093 1.54885,0 c 0.57324,0 1.01635,-0.14838 1.32934,-0.44515 0.31304,-0.29676 0.46956,-0.71954 0.46956,-1.26837 0,-0.54473 -0.15652,-0.96549 -0.46956,-1.26226 -0.31299,-0.29676 -0.7561,-0.44514 -1.32934,-0.44515 l -1.54885,0 m -1.23177,-1.01225 2.78062,0 c 1.02039,1e-5 1.79078,0.23172 2.31112,0.69516 0.52442,0.45938 0.78664,1.13422 0.78664,2.0245 0,0.89844 -0.26222,1.57734 -0.78664,2.03671 -0.52034,0.45938 -1.29073,0.68907 -2.31112,0.68906 l -1.54885,0 0,3.65875 -1.23177,0 0,-9.10418"
+ id="path3851"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 840.95248,123.99469 c -0.90656,0 -1.53466,0.10367 -1.88425,0.31099 -0.34963,0.20733 -0.52443,0.56101 -0.52443,1.06104 0,0.3984 0.13008,0.71549 0.39027,0.95127 0.26423,0.23172 0.62195,0.34759 1.07323,0.34759 0.62195,0 1.11998,-0.21953 1.49399,-0.65858 0.37805,-0.44311 0.56708,-1.03054 0.56708,-1.7623 l 0,-0.25001 -1.11589,0 m 2.23793,-0.46345 0,3.89657 -1.12204,0 0,-1.03664 c -0.25611,0.41466 -0.57521,0.72159 -0.95735,0.92078 -0.38214,0.19514 -0.84967,0.2927 -1.40252,0.2927 -0.69922,0 -1.2562,-0.19513 -1.67085,-0.5854 -0.41056,-0.39433 -0.61588,-0.92078 -0.61588,-1.57936 0,-0.76833 0.2561,-1.34763 0.76836,-1.7379 0.51626,-0.39026 1.28462,-0.5854 2.30501,-0.5854 l 1.57323,0 0,-0.10976 c 0,-0.51629 -0.17075,-0.91469 -0.51221,-1.1952 -0.33742,-0.28456 -0.81304,-0.42684 -1.42691,-0.42685 -0.39027,10e-6 -0.77038,0.0468 -1.14031,0.14025 -0.36993,0.0935 -0.72567,0.23376 -1.06713,0.42076 l 0,-1.03665 c 0.41056,-0.15854 0.809,-0.27643 1.19518,-0.35368 0.38618,-0.0813 0.76226,-0.12195 1.1281,-0.12195 0.98788,0 1.72571,0.25612 2.21355,0.76833 0.48783,0.51223 0.73177,1.2887 0.73177,2.3294"
+ id="path3853"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 846.62962,118.65901 0,1.93914 2.31112,0 0,0.872 -2.31112,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07324 0.1545,0.15855 0.46548,0.23782 0.93302,0.23782 l 1.15248,0 0,0.93907 -1.15248,0 c -0.86594,0 -1.46355,-0.16058 -1.7928,-0.48173 -0.32929,-0.32522 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70753 -0.82323,0 0,-0.872 0.82323,0 0,-1.93914 1.1281,0"
+ id="path3855"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 856.0997,123.30562 0,4.12219 -1.12204,0 0,-4.0856 c 0,-0.64637 -0.12604,-1.13014 -0.37806,-1.4513 -0.25206,-0.32115 -0.63012,-0.48173 -1.1342,-0.48174 -0.60574,1e-5 -1.08343,0.19311 -1.43302,0.5793 -0.34963,0.38621 -0.52442,0.91266 -0.52442,1.57936 l 0,3.85998 -1.1281,0 0,-9.48835 1.1281,0 0,3.71973 c 0.26832,-0.41059 0.58338,-0.71752 0.94518,-0.92079 0.36588,-0.20326 0.78664,-0.30489 1.26226,-0.30489 0.78457,0 1.37814,0.24392 1.78058,0.73175 0.40248,0.48377 0.60372,1.19722 0.60372,2.14036"
+ id="path3857"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 862.47202,121.28111 0,-1.10982 7.81754,2.83554 0,1.01225 -7.81754,2.83553 0,-1.10982 6.28085,-2.22574 -6.28085,-2.23794"
+ id="path3859"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 875.55205,118.32363 7.70166,0 0,1.03664 -3.23186,0 0,8.06754 -1.23788,0 0,-8.06754 -3.23192,0 0,-1.03664"
+ id="path3861"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 886.54049,121.64699 c -0.12603,-0.0732 -0.26423,-0.12602 -0.41464,-0.15855 -0.14638,-0.0366 -0.30896,-0.0549 -0.48784,-0.0549 -0.6342,1e-5 -1.12204,0.20734 -1.4635,0.62199 -0.33742,0.4106 -0.50615,1.00209 -0.50615,1.77449 l 0,3.59777 -1.1281,0 0,-6.82966 1.1281,0 0,1.06104 c 0.23581,-0.41466 0.54275,-0.72158 0.9208,-0.92079 0.37805,-0.20326 0.83747,-0.30489 1.37815,-0.30489 0.0772,0 0.16258,0.006 0.2561,0.0183 0.0935,0.008 0.19716,0.0224 0.31098,0.0427 l 0.006,1.15251"
+ id="path3863"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 890.84564,123.99469 c -0.90657,0 -1.53467,0.10367 -1.88425,0.31099 -0.34964,0.20733 -0.52443,0.56101 -0.52443,1.06104 0,0.3984 0.13007,0.71549 0.39027,0.95127 0.26423,0.23172 0.62199,0.34759 1.07323,0.34759 0.62199,0 1.11997,-0.21953 1.49399,-0.65858 0.37805,-0.44311 0.56712,-1.03054 0.56712,-1.7623 l 0,-0.25001 -1.11593,0 m 2.23792,-0.46345 0,3.89657 -1.12199,0 0,-1.03664 c -0.25615,0.41466 -0.57525,0.72159 -0.95739,0.92078 -0.38214,0.19514 -0.84963,0.2927 -1.40253,0.2927 -0.69922,0 -1.25615,-0.19513 -1.6708,-0.5854 -0.4106,-0.39433 -0.61588,-0.92078 -0.61588,-1.57936 0,-0.76833 0.2561,-1.34763 0.76832,-1.7379 0.5163,-0.39026 1.28462,-0.5854 2.305,-0.5854 l 1.57328,0 0,-0.10976 c 0,-0.51629 -0.17075,-0.91469 -0.51226,-1.1952 -0.33742,-0.28456 -0.81304,-0.42684 -1.4269,-0.42685 -0.39027,10e-6 -0.77034,0.0468 -1.14032,0.14025 -0.36992,0.0935 -0.72562,0.23376 -1.06712,0.42076 l 0,-1.03665 c 0.4106,-0.15854 0.809,-0.27643 1.19518,-0.35368 0.38622,-0.0813 0.76226,-0.12195 1.12814,-0.12195 0.98784,0 1.72571,0.25612 2.21355,0.76833 0.48783,0.51223 0.73172,1.2887 0.73172,2.3294"
+ id="path3865"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 900.31566,120.86036 0,1.04884 c -0.31708,-0.1748 -0.63618,-0.30489 -0.95734,-0.39027 -0.31708,-0.0894 -0.63825,-0.13414 -0.9635,-0.13415 -0.72769,10e-6 -1.29275,0.23172 -1.69518,0.69516 -0.40248,0.45938 -0.60372,1.10576 -0.60372,1.93914 0,0.83338 0.20124,1.48179 0.60372,1.94523 0.40243,0.45938 0.96749,0.68907 1.69518,0.68907 0.32525,0 0.64642,-0.0427 0.9635,-0.12806 0.32116,-0.0894 0.64026,-0.22155 0.95734,-0.39636 l 0,1.03664 c -0.31299,0.14635 -0.63824,0.25612 -0.97566,0.32929 -0.33334,0.0732 -0.68903,0.10976 -1.06713,0.10976 -1.02851,0 -1.84564,-0.32319 -2.45133,-0.96956 -0.60574,-0.64638 -0.90859,-1.51838 -0.90859,-2.61601 0,-1.11388 0.30487,-1.98995 0.91465,-2.6282 0.61386,-0.63825 1.45335,-0.95737 2.51846,-0.95737 0.34554,0 0.68296,0.0366 1.01226,0.10976 0.32929,0.0691 0.64839,0.17481 0.95734,0.31709"
+ id="path3867"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 908.12104,123.73248 0,0.54881 -5.15886,0 c 0.0488,0.7724 0.28048,1.36187 0.69518,1.7684 0.41873,0.40246 1.00004,0.60369 1.74398,0.60369 0.4309,0 0.84762,-0.0528 1.2501,-0.15855 0.40652,-0.1057 0.80895,-0.26424 1.20739,-0.47564 l 0,1.06104 c -0.40248,0.17075 -0.81511,0.30083 -1.23788,0.39027 -0.42282,0.0894 -0.8517,0.13415 -1.28669,0.13415 -1.08948,0 -1.95335,-0.31709 -2.5916,-0.95127 -0.6342,-0.63418 -0.95128,-1.49195 -0.95128,-2.57332 0,-1.11795 0.30082,-2.00418 0.90248,-2.65869 0.60574,-0.65857 1.42084,-0.98786 2.44527,-0.98786 0.91878,0 1.6444,0.29677 2.17695,0.89029 0.53664,0.58947 0.80492,1.39236 0.80496,2.40868 m -1.12204,-0.32929 c -0.008,-0.61385 -0.1809,-1.10372 -0.51832,-1.4696 -0.33338,-0.36587 -0.77649,-0.5488 -1.32934,-0.54881 -0.62608,10e-6 -1.12814,0.17684 -1.5062,0.53052 -0.37401,0.35368 -0.58944,0.85168 -0.64637,1.49399 l 4.00023,-0.006"
+ id="path3869"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 915.21898,123.08 0,3.33556 1.97572,0 c 0.66267,0 1.15252,-0.13619 1.4696,-0.40856 0.32117,-0.27644 0.48173,-0.69719 0.48173,-1.26227 0,-0.56913 -0.16056,-0.98786 -0.48173,-1.25617 -0.31708,-0.27237 -0.80693,-0.40856 -1.4696,-0.40856 l -1.97572,0 m 0,-3.74412 0,2.74406 1.82328,0 c 0.60166,1e-5 1.04886,-0.11179 1.34156,-0.33538 0.29674,-0.22765 0.44513,-0.5732 0.44513,-1.03665 0,-0.45937 -0.14839,-0.80289 -0.44513,-1.03055 -0.2927,-0.22764 -0.7399,-0.34147 -1.34156,-0.34148 l -1.82328,0 m -1.23177,-1.01225 3.14651,0 c 0.93908,1e-5 1.66272,0.19514 2.1709,0.5854 0.50812,0.39027 0.76221,0.94518 0.76221,1.66473 0,0.55695 -0.13007,1.00006 -0.39027,1.32934 -0.26019,0.3293 -0.64233,0.53459 -1.14642,0.61589 0.60574,0.1301 1.07526,0.40247 1.40864,0.81712 0.33742,0.4106 0.5061,0.92486 0.5061,1.54278 0,0.81305 -0.27644,1.44114 -0.82929,1.88425 -0.55289,0.44312 -1.33953,0.66467 -2.35987,0.66467 l -3.26851,0 0,-9.10418"
+ id="path3871"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 922.49993,120.59815 1.122,0 0,6.82966 -1.122,0 0,-6.82966 m 0,-2.65869 1.122,0 0,1.42081 -1.122,0 0,-1.42081"
+ id="path3873"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 927.07335,118.65901 0,1.93914 2.31107,0 0,0.872 -2.31107,0 0,3.70753 c -4e-5,0.55695 0.0752,0.91469 0.22562,1.07324 0.15446,0.15855 0.46548,0.23782 0.93297,0.23782 l 1.15248,0 0,0.93907 -1.15248,0 c -0.86593,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.3293,-0.32522 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70753 -0.82319,0 0,-0.872 0.82319,0 0,-1.93914 1.12814,0"
+ id="path3875"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 936.18365,121.9092 c 0.28048,-0.50409 0.61588,-0.87606 1.00615,-1.11592 0.39027,-0.23984 0.84963,-0.35977 1.3781,-0.35977 0.71143,0 1.26024,0.25001 1.64647,0.75004 0.38618,0.49597 0.57929,1.20333 0.57929,2.12207 l 0,4.12219 -1.1281,0 0,-4.0856 c 0,-0.65451 -0.11589,-1.14031 -0.34761,-1.4574 -0.23173,-0.31709 -0.5854,-0.47563 -1.06102,-0.47564 -0.58136,1e-5 -1.04073,0.19311 -1.37815,0.5793 -0.33742,0.38621 -0.50611,0.91266 -0.50611,1.57936 l 0,3.85998 -1.1281,0 0,-4.0856 c 0,-0.65857 -0.11588,-1.14437 -0.34761,-1.4574 -0.23173,-0.31709 -0.58944,-0.47563 -1.07323,-0.47564 -0.57319,1e-5 -1.02852,0.19514 -1.36594,0.5854 -0.33742,0.38621 -0.5061,0.91063 -0.5061,1.57326 l 0,3.85998 -1.1281,0 0,-6.82966 1.1281,0 0,1.06104 c 0.2561,-0.41872 0.56304,-0.72768 0.9208,-0.92689 0.35771,-0.19919 0.78255,-0.29879 1.27442,-0.29879 0.49596,0 0.91672,0.12602 1.26231,0.37807 0.34959,0.25205 0.60771,0.61792 0.77443,1.09762"
+ id="path3877"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 946.14151,123.99469 c -0.90657,0 -1.53462,0.10367 -1.88426,0.31099 -0.34958,0.20733 -0.52442,0.56101 -0.52442,1.06104 0,0.3984 0.13012,0.71549 0.39026,0.95127 0.26424,0.23172 0.622,0.34759 1.07324,0.34759 0.62199,0 1.11997,-0.21953 1.49398,-0.65858 0.3781,-0.44311 0.56713,-1.03054 0.56713,-1.7623 l 0,-0.25001 -1.11593,0 m 2.23792,-0.46345 0,3.89657 -1.12199,0 0,-1.03664 c -0.25611,0.41466 -0.57525,0.72159 -0.95739,0.92078 -0.38214,0.19514 -0.84964,0.2927 -1.40253,0.2927 -0.69922,0 -1.25615,-0.19513 -1.6708,-0.5854 -0.41061,-0.39433 -0.61589,-0.92078 -0.61589,-1.57936 0,-0.76833 0.25611,-1.34763 0.76832,-1.7379 0.5163,-0.39026 1.28462,-0.5854 2.30501,-0.5854 l 1.57328,0 0,-0.10976 c 0,-0.51629 -0.17075,-0.91469 -0.51221,-1.1952 -0.33742,-0.28456 -0.81309,-0.42684 -1.42691,-0.42685 -0.39031,10e-6 -0.77039,0.0468 -1.14031,0.14025 -0.36998,0.0935 -0.72567,0.23376 -1.06718,0.42076 l 0,-1.03665 c 0.41061,-0.15854 0.809,-0.27643 1.19523,-0.35368 0.38618,-0.0813 0.76221,-0.12195 1.1281,-0.12195 0.98788,0 1.72571,0.25612 2.21355,0.76833 0.48783,0.51223 0.73172,1.2887 0.73172,2.3294"
+ id="path3879"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 951.7821,126.40336 0,3.62217 -1.1281,0 0,-9.42738 1.1281,0 0,1.03664 c 0.23577,-0.40652 0.53255,-0.70735 0.89031,-0.90249 0.3618,-0.19919 0.7927,-0.29879 1.29275,-0.29879 0.82929,0 1.50211,0.32929 2.01841,0.98786 0.52034,0.65858 0.78053,1.52448 0.78053,2.59771 0,1.07324 -0.26019,1.93914 -0.78053,2.59771 -0.5163,0.65858 -1.18912,0.98786 -2.01841,0.98786 -0.50005,0 -0.93095,-0.0976 -1.29275,-0.2927 -0.35776,-0.19919 -0.65454,-0.50206 -0.89031,-0.90859 m 3.81731,-2.38428 c 0,-0.82525 -0.17075,-1.47162 -0.51226,-1.93914 -0.33742,-0.47156 -0.80289,-0.70735 -1.39642,-0.70736 -0.59353,1e-5 -1.06102,0.2358 -1.40252,0.70736 -0.33742,0.46752 -0.50611,1.11389 -0.50611,1.93914 0,0.82525 0.16869,1.47366 0.50611,1.94523 0.3415,0.46751 0.80899,0.70127 1.40252,0.70127 0.59353,0 1.059,-0.23376 1.39642,-0.70127 0.34151,-0.47157 0.51226,-1.11998 0.51226,-1.94523"
+ id="path3881"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 959.03252,118.32363 1.28668,0 0,0.92688 -1.00009,1.94523 -0.78664,0 0.50005,-1.94523 0,-0.92688"
+ id="path3883"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 962.75832,125.87894 1.28669,0 0,1.54887 -1.28669,0 0,-1.54887"
+ id="path3885"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 587.53529,137.05643 7.70166,0 0,1.03664 -3.23192,0 0,8.06754 -1.23788,0 0,-8.06754 -3.23186,0 0,-1.03664"
+ id="path3887"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 600.11528,142.46528 0,0.54881 -5.15882,0 c 0.0488,0.77241 0.28049,1.36187 0.69513,1.76839 0.41874,0.40247 1.00005,0.6037 1.74404,0.6037 0.4309,0 0.84756,-0.0529 1.25004,-0.15855 0.40652,-0.10569 0.809,-0.26424 1.2074,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81511,0.30083 -1.23788,0.39027 -0.42278,0.0894 -0.8517,0.13415 -1.28664,0.13415 -1.08954,0 -1.9534,-0.31709 -2.59165,-0.95127 -0.63416,-0.63418 -0.95124,-1.49196 -0.95124,-2.57332 0,-1.11795 0.30083,-2.00418 0.90248,-2.6587 0.60569,-0.65856 1.4208,-0.98785 2.44527,-0.98786 0.91874,1e-5 1.6444,0.29678 2.17696,0.8903 0.53659,0.58947 0.80491,1.39236 0.80491,2.40868 m -1.12204,-0.32929 c -0.008,-0.61385 -0.1809,-1.10372 -0.51832,-1.4696 -0.33333,-0.36587 -0.77645,-0.5488 -1.32934,-0.54881 -0.62603,1e-5 -1.1281,0.17684 -1.50615,0.53052 -0.37402,0.35368 -0.58949,0.85168 -0.64642,1.49399 l 4.00023,-0.006"
+ id="path3889"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 607.41446,139.33095 -2.46965,3.32336 2.59775,3.5063 -1.32328,0 -1.98793,-2.68308 -1.98792,2.68308 -1.32324,0 2.65262,-3.57338 -2.427,-3.25628 1.32328,0 1.81107,2.43306 1.81107,-2.43306 1.32323,0"
+ id="path3891"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 610.25,137.39181 0,1.93914 2.31111,0 0,0.872 -2.31111,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07323 0.1545,0.15855 0.46547,0.23782 0.93301,0.23782 l 1.15248,0 0,0.93908 -1.15248,0 c -0.86593,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.32929,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70753 -0.82323,0 0,-0.872 0.82323,0 0,-1.93914 1.1281,0"
+ id="path3893"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 614.32953,144.61174 1.28664,0 0,1.54887 -1.28664,0 0,-1.54887 m 0,-4.90882 1.28664,0 0,1.54887 -1.28664,0 0,-1.54887"
+ id="path3895"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 629.10479,137.75768 0,1.29886 c -0.41469,-0.38619 -0.85781,-0.67483 -1.32939,-0.8659 -0.46749,-0.19106 -0.96547,-0.2866 -1.49398,-0.28661 -1.04068,1e-5 -1.83752,0.31914 -2.39036,0.95738 -0.5529,0.63419 -0.82934,1.55294 -0.82934,2.75625 0,1.19927 0.27644,2.11802 0.82934,2.75626 0.55284,0.63419 1.34968,0.95128 2.39036,0.95128 0.52851,0 1.02649,-0.0955 1.49398,-0.28661 0.47158,-0.19106 0.9147,-0.47969 1.32939,-0.8659 l 0,1.28666 c -0.43095,0.2927 -0.88829,0.51223 -1.37204,0.65858 -0.47971,0.14635 -0.98788,0.21952 -1.52447,0.21952 -1.37815,0 -2.4636,-0.42076 -3.2563,-1.26227 -0.79274,-0.84557 -1.18912,-1.99808 -1.18912,-3.45752 0,-1.46349 0.39638,-2.61599 1.18912,-3.45751 0.7927,-0.84557 1.87815,-1.26836 3.2563,-1.26837 0.54472,10e-6 1.05693,0.0732 1.53664,0.21953 0.48379,0.14229 0.93705,0.35775 1.35987,0.64637"
+ id="path3897"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 633.61724,140.11758 c -0.60166,1e-5 -1.07732,0.23579 -1.42691,0.70736 -0.34963,0.46751 -0.52443,1.10982 -0.52443,1.92694 0,0.81712 0.17278,1.46147 0.51832,1.93304 0.34959,0.4675 0.82728,0.70126 1.43302,0.70126 0.59756,0 1.07116,-0.23579 1.4208,-0.70736 0.34963,-0.47157 0.52442,-1.11389 0.52442,-1.92694 0,-0.80899 -0.17479,-1.44927 -0.52442,-1.92085 -0.34964,-0.47563 -0.82324,-0.71344 -1.4208,-0.71345 m 0,-0.95128 c 0.97566,1e-5 1.74196,0.3171 2.2989,0.95128 0.55693,0.63419 0.8354,1.51228 0.8354,2.6343 0,1.11795 -0.27847,1.99605 -0.8354,2.6343 -0.55694,0.63418 -1.32324,0.95127 -2.2989,0.95127 -0.97976,0 -1.74808,-0.31709 -2.30501,-0.95127 -0.55289,-0.63825 -0.82934,-1.51635 -0.82934,-2.6343 0,-1.12202 0.27645,-2.00011 0.82934,-2.6343 0.55693,-0.63418 1.32525,-0.95127 2.30501,-0.95128"
+ id="path3899"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 644.28249,142.03842 0,4.12219 -1.12204,0 0,-4.0856 c 0,-0.64638 -0.12603,-1.13014 -0.37805,-1.4513 -0.25207,-0.32116 -0.63012,-0.48174 -1.13421,-0.48174 -0.60574,0 -1.08343,0.19311 -1.43301,0.5793 -0.34964,0.38621 -0.52443,0.91266 -0.52443,1.57936 l 0,3.85998 -1.1281,0 0,-6.82966 1.1281,0 0,1.06103 c 0.26832,-0.41058 0.58338,-0.71751 0.94518,-0.92078 0.36589,-0.20326 0.78664,-0.30489 1.26226,-0.3049 0.78462,1e-5 1.37814,0.24392 1.78058,0.73175 0.40248,0.48378 0.60372,1.19723 0.60372,2.14037"
+ id="path3901"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 645.72767,139.33095 1.18912,0 2.13425,5.73204 2.1343,-5.73204 1.18907,0 -2.56111,6.82966 -1.52447,0 -2.56116,-6.82966"
+ id="path3903"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 659.7651,142.46528 0,0.54881 -5.15882,0 c 0.0488,0.77241 0.28049,1.36187 0.69513,1.76839 0.41874,0.40247 1.00005,0.6037 1.74404,0.6037 0.4309,0 0.84756,-0.0529 1.25004,-0.15855 0.40652,-0.10569 0.809,-0.26424 1.2074,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81511,0.30083 -1.23788,0.39027 -0.42278,0.0894 -0.8517,0.13415 -1.28664,0.13415 -1.08954,0 -1.9534,-0.31709 -2.59165,-0.95127 -0.63416,-0.63418 -0.95124,-1.49196 -0.95124,-2.57332 0,-1.11795 0.30083,-2.00418 0.90248,-2.6587 0.60569,-0.65856 1.4208,-0.98785 2.44527,-0.98786 0.91874,1e-5 1.6444,0.29678 2.17696,0.8903 0.53659,0.58947 0.80491,1.39236 0.80491,2.40868 m -1.12204,-0.32929 c -0.008,-0.61385 -0.1809,-1.10372 -0.51832,-1.4696 -0.33333,-0.36587 -0.77645,-0.5488 -1.32934,-0.54881 -0.62603,1e-5 -1.1281,0.17684 -1.50615,0.53052 -0.37402,0.35368 -0.58949,0.85168 -0.64642,1.49399 l 4.00023,-0.006"
+ id="path3905"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 665.56423,140.37979 c -0.12603,-0.0732 -0.26428,-0.12602 -0.41469,-0.15855 -0.14633,-0.0366 -0.30895,-0.0549 -0.48783,-0.0549 -0.63416,1e-5 -1.122,0.20734 -1.4635,0.62199 -0.33742,0.4106 -0.50611,1.00209 -0.50611,1.77449 l 0,3.59777 -1.1281,0 0,-6.82966 1.1281,0 0,1.06103 c 0.23577,-0.41465 0.5427,-0.72158 0.9208,-0.92078 0.37805,-0.20326 0.83742,-0.30489 1.3781,-0.3049 0.0772,1e-5 0.16263,0.006 0.25611,0.0183 0.0935,0.008 0.1972,0.0224 0.31102,0.0427 l 0.006,1.1525"
+ id="path3907"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 667.86313,137.39181 0,1.93914 2.31112,0 0,0.872 -2.31112,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07323 0.15446,0.15855 0.46548,0.23782 0.93297,0.23782 l 1.15253,0 0,0.93908 -1.15253,0 c -0.86589,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.3293,-0.32523 -0.49394,-0.91469 -0.4939,-1.7684 l 0,-3.70753 -0.82323,0 0,-0.872 0.82323,0 0,-1.93914 1.1281,0"
+ id="path3909"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 676.7417,137.39181 0,1.93914 2.31111,0 0,0.872 -2.31111,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07323 0.1545,0.15855 0.46547,0.23782 0.93296,0.23782 l 1.15253,0 0,0.93908 -1.15253,0 c -0.86588,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.32925,-0.32523 -0.49389,-0.91469 -0.49389,-1.7684 l 0,-3.70753 -0.82324,0 0,-0.872 0.82324,0 0,-1.93914 1.1281,0"
+ id="path3911"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 683.1811,140.11758 c -0.60166,1e-5 -1.07732,0.23579 -1.42691,0.70736 -0.34963,0.46751 -0.52443,1.10982 -0.52443,1.92694 0,0.81712 0.17278,1.46147 0.51832,1.93304 0.34959,0.4675 0.82728,0.70126 1.43302,0.70126 0.59756,0 1.07116,-0.23579 1.4208,-0.70736 0.34963,-0.47157 0.52442,-1.11389 0.52442,-1.92694 0,-0.80899 -0.17479,-1.44927 -0.52442,-1.92085 -0.34964,-0.47563 -0.82324,-0.71344 -1.4208,-0.71345 m 0,-0.95128 c 0.97566,1e-5 1.74196,0.3171 2.2989,0.95128 0.55693,0.63419 0.8354,1.51228 0.8354,2.6343 0,1.11795 -0.27847,1.99605 -0.8354,2.6343 -0.55694,0.63418 -1.32324,0.95127 -2.2989,0.95127 -0.97976,0 -1.74808,-0.31709 -2.30501,-0.95127 -0.55289,-0.63825 -0.82934,-1.51635 -0.82934,-2.6343 0,-1.12202 0.27645,-2.00011 0.82934,-2.6343 0.55693,-0.63418 1.32525,-0.95127 2.30501,-0.95128"
+ id="path3913"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 691.3401,139.33095 1.18908,0 2.1343,5.73204 2.13425,-5.73204 1.18912,0 -2.56116,6.82966 -1.52447,0 -2.56112,-6.82966"
+ id="path3915"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 705.37749,142.46528 0,0.54881 -5.15882,0 c 0.0488,0.77241 0.28049,1.36187 0.69518,1.76839 0.41869,0.40247 1.00004,0.6037 1.74398,0.6037 0.4309,0 0.84762,-0.0529 1.2501,-0.15855 0.40652,-0.10569 0.80895,-0.26424 1.20734,-0.47564 l 0,1.06104 c -0.40243,0.17074 -0.81506,0.30083 -1.23783,0.39027 -0.42282,0.0894 -0.8517,0.13415 -1.28669,0.13415 -1.08948,0 -1.95335,-0.31709 -2.5916,-0.95127 -0.6342,-0.63418 -0.95128,-1.49196 -0.95128,-2.57332 0,-1.11795 0.30083,-2.00418 0.90248,-2.6587 0.60574,-0.65856 1.42084,-0.98785 2.44527,-0.98786 0.91873,1e-5 1.6444,0.29678 2.17695,0.8903 0.53664,0.58947 0.80492,1.39236 0.80492,2.40868 m -1.122,-0.32929 c -0.008,-0.61385 -0.1809,-1.10372 -0.51832,-1.4696 -0.33338,-0.36587 -0.77649,-0.5488 -1.32934,-0.54881 -0.62608,1e-5 -1.12814,0.17684 -1.5062,0.53052 -0.37401,0.35368 -0.58948,0.85168 -0.64637,1.49399 l 4.00023,-0.006"
+ id="path3917"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 712.13401,139.59316 0,1.04884 c -0.31712,-0.1748 -0.63622,-0.30489 -0.95739,-0.39027 -0.31708,-0.0894 -0.63825,-0.13414 -0.96345,-0.13415 -0.72769,1e-5 -1.2928,0.23172 -1.69523,0.69516 -0.40248,0.45938 -0.60372,1.10576 -0.60372,1.93914 0,0.83338 0.20124,1.48179 0.60372,1.94523 0.40243,0.45938 0.96754,0.68907 1.69523,0.68907 0.3252,0 0.64637,-0.0427 0.96345,-0.12806 0.32117,-0.0894 0.64027,-0.22155 0.95739,-0.39636 l 0,1.03664 c -0.31304,0.14635 -0.63824,0.25611 -0.97566,0.32929 -0.33338,0.0732 -0.68908,0.10976 -1.06718,0.10976 -1.02851,0 -1.84559,-0.32319 -2.45133,-0.96957 -0.60574,-0.64637 -0.90859,-1.51838 -0.90859,-2.616 0,-1.11388 0.30487,-1.98995 0.9147,-2.6282 0.61382,-0.63824 1.4533,-0.95737 2.51841,-0.95738 0.34555,1e-5 0.68297,0.0366 1.01226,0.10976 0.32929,0.0691 0.64839,0.17482 0.95739,0.3171"
+ id="path3919"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 715.20734,137.39181 0,1.93914 2.31111,0 0,0.872 -2.31111,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07323 0.1545,0.15855 0.46547,0.23782 0.93301,0.23782 l 1.15248,0 0,0.93908 -1.15248,0 c -0.86593,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.32929,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70753 -0.82323,0 0,-0.872 0.82323,0 0,-1.93914 1.1281,0"
+ id="path3921"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 721.64674,140.11758 c -0.60165,1e-5 -1.07732,0.23579 -1.42691,0.70736 -0.34963,0.46751 -0.52442,1.10982 -0.52442,1.92694 0,0.81712 0.17277,1.46147 0.51832,1.93304 0.34963,0.4675 0.82727,0.70126 1.43301,0.70126 0.59761,0 1.07121,-0.23579 1.4208,-0.70736 0.34963,-0.47157 0.52443,-1.11389 0.52443,-1.92694 0,-0.80899 -0.1748,-1.44927 -0.52443,-1.92085 -0.34959,-0.47563 -0.82319,-0.71344 -1.4208,-0.71345 m 0,-0.95128 c 0.97567,1e-5 1.74197,0.3171 2.2989,0.95128 0.55693,0.63419 0.83545,1.51228 0.83545,2.6343 0,1.11795 -0.27852,1.99605 -0.83545,2.6343 -0.55693,0.63418 -1.32323,0.95127 -2.2989,0.95127 -0.97975,0 -1.74807,-0.31709 -2.30501,-0.95127 -0.55289,-0.63825 -0.82934,-1.51635 -0.82934,-2.6343 0,-1.12202 0.27645,-2.00011 0.82934,-2.6343 0.55694,-0.63418 1.32526,-0.95127 2.30501,-0.95128"
+ id="path3923"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 730.59238,140.37979 c -0.12603,-0.0732 -0.26423,-0.12602 -0.41464,-0.15855 -0.14638,-0.0366 -0.30896,-0.0549 -0.48784,-0.0549 -0.6342,1e-5 -1.12203,0.20734 -1.4635,0.62199 -0.33742,0.4106 -0.50615,1.00209 -0.50615,1.77449 l 0,3.59777 -1.1281,0 0,-6.82966 1.1281,0 0,1.06103 c 0.23581,-0.41465 0.54275,-0.72158 0.9208,-0.92078 0.37806,-0.20326 0.83747,-0.30489 1.37815,-0.3049 0.0772,1e-5 0.16258,0.006 0.2561,0.0183 0.0935,0.008 0.19716,0.0224 0.31098,0.0427 l 0.006,1.1525"
+ id="path3925"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 735.64147,143.46533 0,-4.13438 1.12199,0 0,4.0917 c 0,0.64638 0.12604,1.13218 0.3781,1.4574 0.25202,0.32116 0.63012,0.48174 1.13421,0.48174 0.60569,0 1.08338,-0.1931 1.43301,-0.57931 0.35368,-0.3862 0.53049,-0.91265 0.53049,-1.57936 l 0,-3.87217 1.12204,0 0,6.82966 -1.12204,0 0,-1.04884 c -0.27236,0.41466 -0.58944,0.72362 -0.95124,0.92689 -0.35776,0.19919 -0.77447,0.29879 -1.25009,0.29879 -0.78458,0 -1.38017,-0.24391 -1.78669,-0.73175 -0.40652,-0.48783 -0.60978,-1.20128 -0.60978,-2.14037"
+ id="path3927"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 748.03854,139.53218 0,1.06103 c -0.31712,-0.1626 -0.64642,-0.28456 -0.98788,-0.36587 -0.3415,-0.0813 -0.69518,-0.12195 -1.06102,-0.12196 -0.55698,1e-5 -0.97566,0.0854 -1.2562,0.25611 -0.27644,0.17075 -0.41464,0.42686 -0.41464,0.76834 0,0.26019 0.0996,0.46548 0.2988,0.61589 0.19918,0.14636 0.59964,0.28661 1.20129,0.42076 l 0.38416,0.0854 c 0.79679,0.17075 1.36185,0.41263 1.69523,0.72565 0.33742,0.30896 0.5061,0.74192 0.5061,1.29886 0,0.63418 -0.25202,1.13624 -0.7561,1.50618 -0.50005,0.36994 -1.18912,0.55491 -2.06722,0.55491 -0.36589,0 -0.74798,-0.0366 -1.14642,-0.10976 -0.39431,-0.0691 -0.81102,-0.17481 -1.25005,-0.31709 l 0,-1.15861 c 0.41465,0.21547 0.82323,0.37807 1.22567,0.48784 0.40248,0.10569 0.80087,0.15854 1.19518,0.15854 0.52851,0 0.93503,-0.0894 1.2196,-0.26831 0.28458,-0.18293 0.42686,-0.43904 0.42686,-0.76833 0,-0.30489 -0.10367,-0.53865 -0.31102,-0.70126 -0.20326,-0.16261 -0.65248,-0.31913 -1.34761,-0.46954 l -0.39027,-0.0915 c -0.69518,-0.14635 -1.19724,-0.36994 -1.5062,-0.67077 -0.30895,-0.3049 -0.46345,-0.72159 -0.46345,-1.25008 0,-0.6423 0.22769,-1.13827 0.68297,-1.48788 0.45532,-0.34961 1.1017,-0.52442 1.93916,-0.52443 0.41465,1e-5 0.80492,0.0305 1.1708,0.0915 0.36584,0.061 0.70326,0.15245 1.01226,0.27441"
+ id="path3929"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 750.19718,139.33095 1.12204,0 0,6.82966 -1.12204,0 0,-6.82966 m 0,-2.65869 1.12204,0 0,1.42081 -1.12204,0 0,-1.42081"
+ id="path3931"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 759.33795,142.03842 0,4.12219 -1.12199,0 0,-4.0856 c 0,-0.64638 -0.12603,-1.13014 -0.3781,-1.4513 -0.25202,-0.32116 -0.63012,-0.48174 -1.13421,-0.48174 -0.60573,0 -1.08338,0.19311 -1.43301,0.5793 -0.34959,0.38621 -0.52442,0.91266 -0.52442,1.57936 l 0,3.85998 -1.1281,0 0,-6.82966 1.1281,0 0,1.06103 c 0.26832,-0.41058 0.58338,-0.71751 0.94518,-0.92078 0.36588,-0.20326 0.78663,-0.30489 1.26226,-0.3049 0.78461,1e-5 1.37814,0.24392 1.78062,0.73175 0.40243,0.48378 0.60367,1.19723 0.60367,2.14037"
+ id="path3933"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 766.08227,142.66651 c 0,-0.81306 -0.16874,-1.44317 -0.50616,-1.89036 -0.33333,-0.44717 -0.80289,-0.67076 -1.40858,-0.67077 -0.6017,1e-5 -1.07122,0.2236 -1.40864,0.67077 -0.33333,0.44719 -0.50004,1.0773 -0.50004,1.89036 0,0.80899 0.16671,1.43707 0.50004,1.88425 0.33742,0.44718 0.80694,0.67077 1.40864,0.67077 0.60569,0 1.07525,-0.22359 1.40858,-0.67077 0.33742,-0.44718 0.50616,-1.07526 0.50616,-1.88425 m 1.12199,2.64649 c 0,1.16267 -0.25813,2.02654 -0.77443,2.59162 -0.5163,0.56913 -1.30698,0.8537 -2.37208,0.85371 -0.39436,-1e-5 -0.7663,-0.0305 -1.11594,-0.0915 -0.34958,-0.0569 -0.68902,-0.14636 -1.01832,-0.26831 l 0,-1.09153 c 0.3293,0.17887 0.6545,0.31099 0.97567,0.39637 0.32112,0.0854 0.64839,0.12805 0.98173,0.12805 0.73581,0 1.28668,-0.1931 1.65257,-0.5793 0.36584,-0.38214 0.54881,-0.96144 0.54881,-1.73791 l 0,-0.55491 c -0.23173,0.40247 -0.52852,0.7033 -0.89032,0.90249 -0.3618,0.19921 -0.79476,0.2988 -1.29885,0.2988 -0.83747,0 -1.51226,-0.31912 -2.02452,-0.95737 -0.51221,-0.63825 -0.76832,-1.48382 -0.76832,-2.53673 0,-1.05697 0.25611,-1.90458 0.76832,-2.54283 0.51226,-0.63824 1.18705,-0.95737 2.02452,-0.95738 0.50409,1e-5 0.93705,0.0996 1.29885,0.2988 0.3618,0.19921 0.65859,0.50004 0.89032,0.90249 l 0,-1.03664 1.12199,0 0,5.98205"
+ id="path3935"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 774.66203,140.0566 -1.28664,0 0,-1.05494 1.00004,-1.94523 0.78664,0 -0.50004,1.94523 0,1.05494"
+ id="path3937"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 778.74761,138.06868 0,3.42093 1.5489,0 c 0.57319,1e-5 1.0163,-0.14838 1.32934,-0.44515 0.31304,-0.29676 0.46952,-0.71955 0.46952,-1.26837 0,-0.54474 -0.15648,-0.96549 -0.46952,-1.26226 -0.31304,-0.29676 -0.75615,-0.44514 -1.32934,-0.44515 l -1.5489,0 m -1.23177,-1.01225 2.78067,0 c 1.02039,0 1.79073,0.23172 2.31111,0.69516 0.52439,0.45938 0.7866,1.13422 0.78664,2.0245 -4e-5,0.89844 -0.26225,1.57734 -0.78664,2.03671 -0.52038,0.45938 -1.29072,0.68907 -2.31111,0.68906 l -1.5489,0 0,3.65875 -1.23177,0 0,-9.10418"
+ id="path3939"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 787.5591,142.72749 c -0.90652,0 -1.53462,0.10366 -1.88426,0.31099 -0.34958,0.20733 -0.52442,0.56101 -0.52442,1.06104 0,0.39839 0.13012,0.71549 0.39027,0.95127 0.26427,0.23173 0.62199,0.34758 1.07323,0.34758 0.62199,0 1.12002,-0.21952 1.49403,-0.65857 0.37805,-0.44312 0.56708,-1.03055 0.56708,-1.7623 l 0,-0.25001 -1.11593,0 m 2.23797,-0.46345 0,3.89657 -1.12204,0 0,-1.03664 c -0.25611,0.41466 -0.57525,0.72159 -0.95735,0.92078 -0.38214,0.19514 -0.84968,0.2927 -1.40252,0.2927 -0.69927,0 -1.2562,-0.19513 -1.67085,-0.5854 -0.4106,-0.39433 -0.61589,-0.92078 -0.61589,-1.57936 0,-0.76833 0.25611,-1.34763 0.76833,-1.7379 0.51629,-0.39027 1.28462,-0.5854 2.305,-0.5854 l 1.57328,0 0,-0.10976 c 0,-0.51629 -0.17075,-0.91469 -0.51221,-1.1952 -0.33742,-0.28456 -0.81309,-0.42684 -1.42691,-0.42685 -0.39027,1e-5 -0.77039,0.0468 -1.14031,0.14025 -0.36997,0.0935 -0.72567,0.23376 -1.06713,0.42076 l 0,-1.03665 c 0.41056,-0.15854 0.80896,-0.27643 1.19518,-0.35368 0.38618,-0.0813 0.76221,-0.12195 1.1281,-0.12196 0.98788,1e-5 1.72571,0.25612 2.21355,0.76834 0.48783,0.51223 0.73172,1.2887 0.73177,2.3294"
+ id="path3941"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 793.23628,137.39181 0,1.93914 2.31112,0 0,0.872 -2.31112,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07323 0.1545,0.15855 0.46548,0.23782 0.93297,0.23782 l 1.15253,0 0,0.93908 -1.15253,0 c -0.86589,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.32925,-0.32523 -0.4939,-0.91469 -0.4939,-1.7684 l 0,-3.70753 -0.82323,0 0,-0.872 0.82323,0 0,-1.93914 1.1281,0"
+ id="path3943"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 802.70636,142.03842 0,4.12219 -1.12204,0 0,-4.0856 c 0,-0.64638 -0.12604,-1.13014 -0.37806,-1.4513 -0.25206,-0.32116 -0.63012,-0.48174 -1.1342,-0.48174 -0.60574,0 -1.08343,0.19311 -1.43302,0.5793 -0.34963,0.38621 -0.52442,0.91266 -0.52442,1.57936 l 0,3.85998 -1.1281,0 0,-9.48835 1.1281,0 0,3.71972 c 0.26832,-0.41058 0.58338,-0.71751 0.94518,-0.92078 0.36588,-0.20326 0.78664,-0.30489 1.26226,-0.3049 0.78462,1e-5 1.37814,0.24392 1.78058,0.73175 0.40248,0.48378 0.60372,1.19723 0.60372,2.14037"
+ id="path3945"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 809.07868,140.01391 0,-1.10982 7.81749,2.83554 0,1.01225 -7.81749,2.83553 0,-1.10982 6.28085,-2.22574 -6.28085,-2.23794"
+ id="path3947"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 827.11629,137.89184 c -0.89435,1e-5 -1.60578,0.33336 -2.13425,1.00006 -0.52443,0.66671 -0.78664,1.5753 -0.78664,2.72576 0,1.14641 0.26221,2.05297 0.78664,2.71968 0.52847,0.6667 1.2399,1.00006 2.13425,1.00005 0.89436,1e-5 1.60175,-0.33335 2.12209,-1.00005 0.52443,-0.66671 0.78664,-1.57327 0.78664,-2.71968 0,-1.15046 -0.26221,-2.05905 -0.78664,-2.72576 -0.52034,-0.6667 -1.22773,-1.00005 -2.12209,-1.00006 m 0,-1.00006 c 1.2765,10e-6 2.29688,0.4289 3.06116,1.28666 0.76428,0.85372 1.14642,2.00012 1.14642,3.43922 0,1.43505 -0.38214,2.58146 -1.14642,3.43923 -0.76428,0.85371 -1.78466,1.28056 -3.06116,1.28056 -1.28053,0 -2.305,-0.42685 -3.07332,-1.28056 -0.76428,-0.8537 -1.14642,-2.00012 -1.14642,-3.43923 0,-1.4391 0.38214,-2.5855 1.14642,-3.43922 0.76832,-0.85776 1.79279,-1.28665 3.07332,-1.28666"
+ id="path3949"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 838.10473,142.75188 c 0,-0.82525 -0.17075,-1.47163 -0.51221,-1.93914 -0.33742,-0.47156 -0.80289,-0.70735 -1.39642,-0.70736 -0.59353,1e-5 -1.06102,0.2358 -1.40253,0.70736 -0.33742,0.46751 -0.5061,1.11389 -0.5061,1.93914 0,0.82525 0.16868,1.47366 0.5061,1.94523 0.34151,0.46751 0.809,0.70126 1.40253,0.70126 0.59353,0 1.059,-0.23375 1.39642,-0.70126 0.34146,-0.47157 0.51221,-1.11998 0.51221,-1.94523 m -3.81726,-2.38429 c 0.23576,-0.40652 0.53255,-0.70735 0.89026,-0.90249 0.3618,-0.19919 0.79275,-0.29879 1.29279,-0.2988 0.8293,1e-5 1.50212,0.3293 2.01837,0.98786 0.52039,0.65859 0.78054,1.52449 0.78054,2.59772 0,1.07323 -0.26015,1.93914 -0.78054,2.59771 -0.51625,0.65857 -1.18907,0.98786 -2.01837,0.98786 -0.50004,0 -0.93099,-0.0976 -1.29279,-0.2927 -0.35771,-0.19919 -0.6545,-0.50206 -0.89026,-0.90859 l 0,1.02445 -1.12815,0 0,-9.48835 1.12815,0 0,3.69533"
+ id="path3951"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 841.1293,139.33095 1.12204,0 0,6.95162 c 0,0.86997 -0.16667,1.50009 -0.50005,1.89036 -0.32929,0.39026 -0.86185,0.58539 -1.59766,0.5854 l -0.42686,0 0,-0.95128 0.29881,0 c 0.42686,0 0.71754,-0.0996 0.87199,-0.2988 0.1545,-0.19513 0.23173,-0.60369 0.23173,-1.22568 l 0,-6.95162 m 0,-2.65869 1.12204,0 0,1.42081 -1.12204,0 0,-1.42081"
+ id="path3953"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 850.43472,142.46528 0,0.54881 -5.15882,0 c 0.0488,0.77241 0.28049,1.36187 0.69518,1.76839 0.41869,0.40247 1.00005,0.6037 1.74399,0.6037 0.4309,0 0.84761,-0.0529 1.25005,-0.15855 0.40656,-0.10569 0.809,-0.26424 1.20739,-0.47564 l 0,1.06104 c -0.40243,0.17074 -0.81506,0.30083 -1.23788,0.39027 -0.42277,0.0894 -0.85165,0.13415 -1.28664,0.13415 -1.08949,0 -1.95335,-0.31709 -2.5916,-0.95127 -0.63421,-0.63418 -0.95129,-1.49196 -0.95129,-2.57332 0,-1.11795 0.30083,-2.00418 0.90248,-2.6587 0.60574,-0.65856 1.4208,-0.98785 2.44528,-0.98786 0.91873,1e-5 1.6444,0.29678 2.17695,0.8903 0.53659,0.58947 0.80491,1.39236 0.80491,2.40868 m -1.12199,-0.32929 c -0.008,-0.61385 -0.1809,-1.10372 -0.51832,-1.4696 -0.33338,-0.36587 -0.77649,-0.5488 -1.32934,-0.54881 -0.62608,1e-5 -1.12815,0.17684 -1.5062,0.53052 -0.37401,0.35368 -0.58949,0.85168 -0.64637,1.49399 l 4.00023,-0.006"
+ id="path3955"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 857.19125,139.59316 0,1.04884 c -0.31713,-0.1748 -0.63623,-0.30489 -0.95739,-0.39027 -0.31708,-0.0894 -0.63825,-0.13414 -0.96346,-0.13415 -0.72768,1e-5 -1.29279,0.23172 -1.69522,0.69516 -0.40248,0.45938 -0.60372,1.10576 -0.60372,1.93914 0,0.83338 0.20124,1.48179 0.60372,1.94523 0.40243,0.45938 0.96754,0.68907 1.69522,0.68907 0.32521,0 0.64638,-0.0427 0.96346,-0.12806 0.32116,-0.0894 0.64026,-0.22155 0.95739,-0.39636 l 0,1.03664 c -0.31304,0.14635 -0.63829,0.25611 -0.97567,0.32929 -0.33338,0.0732 -0.68907,0.10976 -1.06717,0.10976 -1.02851,0 -1.84564,-0.32319 -2.45133,-0.96957 -0.60574,-0.64637 -0.90859,-1.51838 -0.90859,-2.616 0,-1.11388 0.30487,-1.98995 0.91469,-2.6282 0.61382,-0.63824 1.45331,-0.95737 2.51842,-0.95738 0.34554,1e-5 0.68296,0.0366 1.01226,0.10976 0.32929,0.0691 0.64839,0.17482 0.95739,0.3171"
+ id="path3957"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 860.26458,137.39181 0,1.93914 2.31111,0 0,0.872 -2.31111,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07323 0.1545,0.15855 0.46547,0.23782 0.93301,0.23782 l 1.15248,0 0,0.93908 -1.15248,0 c -0.86593,0 -1.46355,-0.16058 -1.79279,-0.48173 -0.3293,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70753 -0.82324,0 0,-0.872 0.82324,0 0,-1.93914 1.1281,0"
+ id="path3959"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 869.14314,137.39181 0,1.93914 2.31111,0 0,0.872 -2.31111,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07323 0.15446,0.15855 0.46547,0.23782 0.93297,0.23782 l 1.15252,0 0,0.93908 -1.15252,0 c -0.86589,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.3293,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70753 -0.82319,0 0,-0.872 0.82319,0 0,-1.93914 1.12814,0"
+ id="path3961"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 875.58254,140.11758 c -0.60165,1e-5 -1.07727,0.23579 -1.42691,0.70736 -0.34963,0.46751 -0.52442,1.10982 -0.52442,1.92694 0,0.81712 0.17277,1.46147 0.51832,1.93304 0.34963,0.4675 0.82727,0.70126 1.43301,0.70126 0.59761,0 1.07121,-0.23579 1.4208,-0.70736 0.34963,-0.47157 0.52443,-1.11389 0.52443,-1.92694 0,-0.80899 -0.1748,-1.44927 -0.52443,-1.92085 -0.34959,-0.47563 -0.82319,-0.71344 -1.4208,-0.71345 m 0,-0.95128 c 0.97567,1e-5 1.74197,0.3171 2.2989,0.95128 0.55698,0.63419 0.83545,1.51228 0.83545,2.6343 0,1.11795 -0.27847,1.99605 -0.83545,2.6343 -0.55693,0.63418 -1.32323,0.95127 -2.2989,0.95127 -0.97971,0 -1.74807,-0.31709 -2.30501,-0.95127 -0.55289,-0.63825 -0.82929,-1.51635 -0.82929,-2.6343 0,-1.12202 0.2764,-2.00011 0.82929,-2.6343 0.55694,-0.63418 1.3253,-0.95127 2.30501,-0.95128"
+ id="path3963"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 885.82704,138.06868 0,3.42093 1.54885,0 c 0.57324,1e-5 1.01635,-0.14838 1.32934,-0.44515 0.31304,-0.29676 0.46956,-0.71955 0.46956,-1.26837 0,-0.54474 -0.15652,-0.96549 -0.46956,-1.26226 -0.31299,-0.29676 -0.7561,-0.44514 -1.32934,-0.44515 l -1.54885,0 m -1.23177,-1.01225 2.78062,0 c 1.02039,0 1.79078,0.23172 2.31112,0.69516 0.52442,0.45938 0.78664,1.13422 0.78664,2.0245 0,0.89844 -0.26222,1.57734 -0.78664,2.03671 -0.52034,0.45938 -1.29073,0.68907 -2.31112,0.68906 l -1.54885,0 0,3.65875 -1.23177,0 0,-9.10418"
+ id="path3965"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 894.63852,142.72749 c -0.90656,0 -1.53462,0.10366 -1.88425,0.31099 -0.34959,0.20733 -0.52442,0.56101 -0.52442,1.06104 0,0.39839 0.13011,0.71549 0.39026,0.95127 0.26424,0.23173 0.622,0.34758 1.07324,0.34758 0.62199,0 1.11997,-0.21952 1.49398,-0.65857 0.3781,-0.44312 0.56713,-1.03055 0.56713,-1.7623 l 0,-0.25001 -1.11594,0 m 2.23793,-0.46345 0,3.89657 -1.12199,0 0,-1.03664 c -0.25611,0.41466 -0.57526,0.72159 -0.95739,0.92078 -0.38214,0.19514 -0.84964,0.2927 -1.40253,0.2927 -0.69922,0 -1.25615,-0.19513 -1.6708,-0.5854 -0.41061,-0.39433 -0.61589,-0.92078 -0.61589,-1.57936 0,-0.76833 0.25611,-1.34763 0.76832,-1.7379 0.5163,-0.39027 1.28462,-0.5854 2.30501,-0.5854 l 1.57328,0 0,-0.10976 c 0,-0.51629 -0.17076,-0.91469 -0.51222,-1.1952 -0.33742,-0.28456 -0.81308,-0.42684 -1.4269,-0.42685 -0.39031,1e-5 -0.77039,0.0468 -1.14032,0.14025 -0.36997,0.0935 -0.72566,0.23376 -1.06717,0.42076 l 0,-1.03665 c 0.41061,-0.15854 0.809,-0.27643 1.19523,-0.35368 0.38618,-0.0813 0.76221,-0.12195 1.1281,-0.12196 0.98788,1e-5 1.72571,0.25612 2.21354,0.76834 0.48784,0.51223 0.73173,1.2887 0.73173,2.3294"
+ id="path3967"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 900.31571,137.39181 0,1.93914 2.31111,0 0,0.872 -2.31111,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07323 0.15445,0.15855 0.46547,0.23782 0.93297,0.23782 l 1.15252,0 0,0.93908 -1.15252,0 c -0.86589,0 -1.4635,-0.16058 -1.7928,-0.48173 -0.32929,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70753 -0.82318,0 0,-0.872 0.82318,0 0,-1.93914 1.12815,0"
+ id="path3969"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 909.78574,142.03842 0,4.12219 -1.122,0 0,-4.0856 c 0,-0.64638 -0.12603,-1.13014 -0.3781,-1.4513 -0.25202,-0.32116 -0.63012,-0.48174 -1.1342,-0.48174 -0.6057,0 -1.08338,0.19311 -1.43302,0.5793 -0.34958,0.38621 -0.52442,0.91266 -0.52438,1.57936 l 0,3.85998 -1.12814,0 0,-9.48835 1.12814,0 0,3.71972 c 0.26828,-0.41058 0.58334,-0.71751 0.94514,-0.92078 0.36588,-0.20326 0.78664,-0.30489 1.2623,-0.3049 0.78458,1e-5 1.3781,0.24392 1.78058,0.73175 0.40244,0.48378 0.60368,1.19723 0.60368,2.14037"
+ id="path3971"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 912.44446,137.05643 1.28664,0 0,0.92688 -1.00004,1.94523 -0.78664,0 0.50004,-1.94523 0,-0.92688"
+ id="path3973"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 916.17027,144.61174 1.28664,0 0,1.54887 -1.28664,0 0,-1.54887"
+ id="path3975"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 590.02932,156.80148 0,7.07968 1.48788,0 c 1.2562,0 2.17493,-0.28457 2.75629,-0.85371 0.58536,-0.56914 0.87806,-1.46756 0.8781,-2.69528 -4e-5,-1.21958 -0.29274,-2.11191 -0.8781,-2.67699 -0.58136,-0.56913 -1.50009,-0.8537 -2.75629,-0.8537 l -1.48788,0 m -1.23177,-1.01226 2.53062,0 c 1.76433,1e-5 3.05914,0.36792 3.8844,1.10372 0.8252,0.73176 1.23783,1.87817 1.23788,3.43923 -5e-5,1.5692 -0.4147,2.72171 -1.24399,3.45752 -0.82934,0.73581 -2.12209,1.10372 -3.87829,1.10372 l -2.53062,0 0,-9.10419"
+ id="path3977"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 601.00559,158.85038 c -0.6017,0 -1.07732,0.23579 -1.42695,0.70735 -0.34959,0.46752 -0.52438,1.10983 -0.52438,1.92695 0,0.81712 0.17277,1.46146 0.51832,1.93303 0.34959,0.46751 0.82727,0.70127 1.43301,0.70127 0.59757,0 1.07117,-0.23579 1.4208,-0.70736 0.34959,-0.47157 0.52443,-1.11389 0.52443,-1.92694 0,-0.80899 -0.17484,-1.44927 -0.52443,-1.92085 -0.34963,-0.47563 -0.82323,-0.71345 -1.4208,-0.71345 m 0,-0.95128 c 0.97562,1e-5 1.74197,0.3171 2.2989,0.95128 0.55694,0.63419 0.8354,1.51229 0.8354,2.6343 0,1.11795 -0.27846,1.99605 -0.8354,2.6343 -0.55693,0.63418 -1.32328,0.95127 -2.2989,0.95127 -0.97975,0 -1.74807,-0.31709 -2.30505,-0.95127 -0.55285,-0.63825 -0.82929,-1.51635 -0.82929,-2.6343 0,-1.12201 0.27644,-2.00011 0.82929,-2.6343 0.55698,-0.63418 1.3253,-0.95127 2.30505,-0.95128"
+ id="path3979"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 605.87782,162.19813 0,-4.13439 1.12199,0 0,4.09171 c 0,0.64638 0.12604,1.13218 0.3781,1.4574 0.25202,0.32116 0.63012,0.48173 1.13421,0.48173 0.60569,0 1.08338,-0.1931 1.43301,-0.5793 0.35368,-0.3862 0.53049,-0.91265 0.53049,-1.57936 l 0,-3.87218 1.12204,0 0,6.82967 -1.12204,0 0,-1.04884 c -0.27236,0.41466 -0.58944,0.72362 -0.95124,0.92688 -0.35776,0.1992 -0.77447,0.2988 -1.25009,0.2988 -0.78462,0 -1.38017,-0.24392 -1.78669,-0.73175 -0.40652,-0.48783 -0.60978,-1.20129 -0.60978,-2.14037"
+ id="path3981"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 618.8237,161.48468 c 0,-0.82525 -0.17076,-1.47163 -0.51226,-1.93914 -0.33742,-0.47157 -0.80289,-0.70735 -1.39642,-0.70736 -0.59353,1e-5 -1.06102,0.23579 -1.40248,0.70736 -0.33742,0.46751 -0.50615,1.11389 -0.50615,1.93914 0,0.82525 0.16873,1.47366 0.50615,1.94523 0.34146,0.46751 0.80895,0.70126 1.40248,0.70126 0.59353,0 1.059,-0.23375 1.39642,-0.70126 0.3415,-0.47157 0.51226,-1.11998 0.51226,-1.94523 m -3.81731,-2.38429 c 0.23576,-0.40652 0.53255,-0.70735 0.89031,-0.90249 0.3618,-0.19919 0.7927,-0.29879 1.29274,-0.2988 0.8293,1e-5 1.50212,0.32929 2.01842,0.98786 0.52034,0.65858 0.78053,1.52449 0.78053,2.59772 0,1.07323 -0.26019,1.93914 -0.78053,2.59771 -0.5163,0.65857 -1.18912,0.98786 -2.01842,0.98786 -0.50004,0 -0.93094,-0.0976 -1.29274,-0.2927 -0.35776,-0.1992 -0.65455,-0.50206 -0.89031,-0.90859 l 0,1.02445 -1.1281,0 0,-9.48836 1.1281,0 0,3.69534"
+ id="path3983"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 621.84826,155.40505 1.122,0 0,9.48836 -1.122,0 0,-9.48836"
+ id="path3985"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 631.15369,161.19808 0,0.54881 -5.15887,0 c 0.0488,0.7724 0.28054,1.36187 0.69518,1.76839 0.41874,0.40247 1.00005,0.6037 1.74399,0.6037 0.4309,0 0.84761,-0.0529 1.25009,-0.15855 0.40652,-0.10569 0.80896,-0.26424 1.2074,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81511,0.30083 -1.23788,0.39027 -0.42282,0.0894 -0.8517,0.13415 -1.28669,0.13415 -1.08949,0 -1.95335,-0.31709 -2.5916,-0.95127 -0.63421,-0.63419 -0.95129,-1.49196 -0.95129,-2.57332 0,-1.11795 0.30083,-2.00418 0.90248,-2.6587 0.60574,-0.65857 1.42085,-0.98785 2.44528,-0.98786 0.91878,1e-5 1.6444,0.29677 2.17695,0.8903 0.53664,0.58947 0.80491,1.39236 0.80496,2.40868 m -1.12204,-0.32929 c -0.008,-0.61386 -0.1809,-1.10372 -0.51832,-1.4696 -0.33338,-0.36587 -0.77649,-0.54881 -1.32934,-0.54881 -0.62608,0 -1.12815,0.17684 -1.5062,0.53051 -0.37401,0.35369 -0.58944,0.85168 -0.64637,1.49399 l 4.00023,-0.006"
+ id="path3987"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 637.01986,155.78922 1.23177,0 0,8.06754 4.4332,0 0,1.03665 -5.66497,0 0,-9.10419"
+ id="path3989"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 643.92271,158.06374 1.12199,0 0,6.82967 -1.12199,0 0,-6.82967 m 0,-2.65869 1.12199,0 0,1.42082 -1.12199,0 0,-1.42082"
+ id="path3991"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 653.06349,160.77122 0,4.12219 -1.12204,0 0,-4.0856 c 0,-0.64638 -0.12604,-1.13014 -0.37806,-1.45131 -0.25206,-0.32115 -0.63012,-0.48173 -1.1342,-0.48173 -0.60574,0 -1.08343,0.19311 -1.43302,0.5793 -0.34963,0.38621 -0.52442,0.91266 -0.52442,1.57936 l 0,3.85998 -1.1281,0 0,-6.82967 1.1281,0 0,1.06104 c 0.26832,-0.41059 0.58338,-0.71751 0.94518,-0.92078 0.36588,-0.20326 0.78664,-0.30489 1.26226,-0.3049 0.78462,1e-5 1.37814,0.24393 1.78058,0.73175 0.40248,0.48378 0.60372,1.19723 0.60372,2.14037"
+ id="path3993"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 661.15541,161.19808 0,0.54881 -5.15882,0 c 0.0488,0.7724 0.28049,1.36187 0.69514,1.76839 0.41873,0.40247 1.00009,0.6037 1.74403,0.6037 0.4309,0 0.84761,-0.0529 1.25005,-0.15855 0.40652,-0.10569 0.809,-0.26424 1.20739,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81511,0.30083 -1.23788,0.39027 -0.42277,0.0894 -0.85165,0.13415 -1.28664,0.13415 -1.08949,0 -1.95335,-0.31709 -2.5916,-0.95127 -0.63421,-0.63419 -0.95129,-1.49196 -0.95129,-2.57332 0,-1.11795 0.30083,-2.00418 0.90248,-2.6587 0.60574,-0.65857 1.4208,-0.98785 2.44528,-0.98786 0.91873,1e-5 1.6444,0.29677 2.17695,0.8903 0.53659,0.58947 0.80491,1.39236 0.80491,2.40868 m -1.12199,-0.32929 c -0.008,-0.61386 -0.18095,-1.10372 -0.51832,-1.4696 -0.33338,-0.36587 -0.77649,-0.54881 -1.32939,-0.54881 -0.62603,0 -1.1281,0.17684 -1.50615,0.53051 -0.37401,0.35369 -0.58949,0.85168 -0.64637,1.49399 l 4.00023,-0.006"
+ id="path3995"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 667.35092,158.26498 0,1.06103 c -0.31713,-0.1626 -0.64642,-0.28456 -0.98788,-0.36587 -0.34151,-0.0813 -0.69518,-0.12195 -1.06102,-0.12196 -0.55698,1e-5 -0.97567,0.0854 -1.2562,0.25612 -0.27645,0.17074 -0.41465,0.42685 -0.41465,0.76833 0,0.26018 0.0996,0.46548 0.29881,0.61589 0.19917,0.14635 0.59963,0.28661 1.20129,0.42076 l 0.38416,0.0854 c 0.79678,0.17074 1.36184,0.41263 1.69522,0.72565 0.33742,0.30896 0.50611,0.74191 0.50611,1.29886 0,0.63418 -0.25202,1.13624 -0.75611,1.50618 -0.50004,0.36994 -1.18912,0.55491 -2.06722,0.55491 -0.36588,0 -0.74802,-0.0366 -1.14642,-0.10976 -0.3943,-0.0691 -0.81102,-0.17481 -1.25004,-0.31709 l 0,-1.15861 c 0.41464,0.21546 0.82323,0.37808 1.22566,0.48784 0.40248,0.1057 0.80088,0.15854 1.19518,0.15854 0.52852,0 0.93504,-0.0894 1.21961,-0.26831 0.28457,-0.18293 0.42686,-0.43904 0.42686,-0.76833 0,-0.3049 -0.10367,-0.53865 -0.31102,-0.70127 -0.20326,-0.1626 -0.65248,-0.31911 -1.34761,-0.46953 l -0.39027,-0.0915 c -0.69518,-0.14635 -1.19725,-0.36994 -1.5062,-0.67077 -0.30895,-0.30489 -0.46345,-0.72159 -0.46345,-1.25008 0,-0.6423 0.22768,-1.13827 0.68296,-1.48789 0.45533,-0.34961 1.1017,-0.52441 1.93917,-0.52442 0.41465,1e-5 0.80491,0.0305 1.1708,0.0915 0.36584,0.061 0.70326,0.15246 1.01226,0.27441"
+ id="path3997"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 669.79615,163.34454 1.28668,0 0,1.54887 -1.28668,0 0,-1.54887 m 0,-4.90882 1.28668,0 0,1.54887 -1.28668,0 0,-1.54887"
+ id="path3999"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 678.98573,156.80148 0,7.07968 1.48788,0 c 1.25615,0 2.17493,-0.28457 2.75625,-0.85371 0.5854,-0.56914 0.8781,-1.46756 0.8781,-2.69528 0,-1.21958 -0.2927,-2.11191 -0.8781,-2.67699 -0.58132,-0.56913 -1.5001,-0.8537 -2.75625,-0.8537 l -1.48788,0 m -1.23177,-1.01226 2.53062,0 c 1.76433,1e-5 3.0591,0.36792 3.8844,1.10372 0.8252,0.73176 1.23783,1.87817 1.23783,3.43923 0,1.5692 -0.41465,2.72171 -1.24394,3.45752 -0.82934,0.73581 -2.12209,1.10372 -3.87829,1.10372 l -2.53062,0 0,-9.10419"
+ id="path4001"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 693.15728,161.19808 0,0.54881 -5.15882,0 c 0.0488,0.7724 0.28048,1.36187 0.69513,1.76839 0.41873,0.40247 1.00009,0.6037 1.74403,0.6037 0.4309,0 0.84762,-0.0529 1.25005,-0.15855 0.40652,-0.10569 0.809,-0.26424 1.20739,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.8151,0.30083 -1.23788,0.39027 -0.42277,0.0894 -0.85165,0.13415 -1.28664,0.13415 -1.08948,0 -1.9534,-0.31709 -2.59164,-0.95127 -0.63416,-0.63419 -0.95124,-1.49196 -0.95124,-2.57332 0,-1.11795 0.30082,-2.00418 0.90248,-2.6587 0.60574,-0.65857 1.4208,-0.98785 2.44527,-0.98786 0.91873,1e-5 1.6444,0.29677 2.17695,0.8903 0.5366,0.58947 0.80492,1.39236 0.80492,2.40868 m -1.122,-0.32929 c -0.008,-0.61386 -0.18094,-1.10372 -0.51832,-1.4696 -0.33338,-0.36587 -0.77649,-0.54881 -1.32938,-0.54881 -0.62604,0 -1.1281,0.17684 -1.50616,0.53051 -0.37401,0.35369 -0.58948,0.85168 -0.64637,1.49399 l 4.00023,-0.006"
+ id="path4003"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 694.99883,155.40505 1.12204,0 0,9.48836 -1.12204,0 0,-9.48836"
+ id="path4005"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 704.30425,161.19808 0,0.54881 -5.15881,0 c 0.0488,0.7724 0.28048,1.36187 0.69517,1.76839 0.41869,0.40247 1.00005,0.6037 1.74399,0.6037 0.4309,0 0.84761,-0.0529 1.25009,-0.15855 0.40652,-0.10569 0.80896,-0.26424 1.20735,-0.47564 l 0,1.06104 c -0.40243,0.17074 -0.81506,0.30083 -1.23788,0.39027 -0.42277,0.0894 -0.85165,0.13415 -1.28664,0.13415 -1.08949,0 -1.95335,-0.31709 -2.5916,-0.95127 -0.6342,-0.63419 -0.95128,-1.49196 -0.95128,-2.57332 0,-1.11795 0.30082,-2.00418 0.90248,-2.6587 0.60573,-0.65857 1.4208,-0.98785 2.44527,-0.98786 0.91873,1e-5 1.6444,0.29677 2.17695,0.8903 0.53659,0.58947 0.80491,1.39236 0.80491,2.40868 m -1.12199,-0.32929 c -0.008,-0.61386 -0.1809,-1.10372 -0.51832,-1.4696 -0.33338,-0.36587 -0.77649,-0.54881 -1.32934,-0.54881 -0.62608,0 -1.12814,0.17684 -1.5062,0.53051 -0.37401,0.35369 -0.58948,0.85168 -0.64637,1.49399 l 4.00023,-0.006"
+ id="path4007"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 707.25568,156.12461 0,1.93913 2.31111,0 0,0.87201 -2.31111,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07323 0.15445,0.15855 0.46547,0.23782 0.93297,0.23782 l 1.15252,0 0,0.93908 -1.15252,0 c -0.86589,0 -1.4635,-0.16058 -1.7928,-0.48173 -0.32929,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70753 -0.82318,0 0,-0.87201 0.82318,0 0,-1.93913 1.12815,0"
+ id="path4009"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 716.89035,161.19808 0,0.54881 -5.15882,0 c 0.0488,0.7724 0.28049,1.36187 0.69514,1.76839 0.41873,0.40247 1.00009,0.6037 1.74403,0.6037 0.4309,0 0.84761,-0.0529 1.25005,-0.15855 0.40652,-0.10569 0.809,-0.26424 1.20739,-0.47564 l 0,1.06104 c -0.40243,0.17074 -0.81506,0.30083 -1.23788,0.39027 -0.42277,0.0894 -0.85165,0.13415 -1.28664,0.13415 -1.08949,0 -1.95335,-0.31709 -2.5916,-0.95127 -0.63421,-0.63419 -0.95129,-1.49196 -0.95129,-2.57332 0,-1.11795 0.30083,-2.00418 0.90248,-2.6587 0.60574,-0.65857 1.4208,-0.98785 2.44528,-0.98786 0.91873,1e-5 1.6444,0.29677 2.17695,0.8903 0.53659,0.58947 0.80491,1.39236 0.80491,2.40868 m -1.12199,-0.32929 c -0.008,-0.61386 -0.1809,-1.10372 -0.51832,-1.4696 -0.33338,-0.36587 -0.77649,-0.54881 -1.32934,-0.54881 -0.62608,0 -1.12815,0.17684 -1.5062,0.53051 -0.37401,0.35369 -0.58949,0.85168 -0.64637,1.49399 l 4.00023,-0.006"
+ id="path4011"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 722.59192,162.19813 0,-4.13439 1.12204,0 0,4.09171 c 0,0.64638 0.12599,1.13218 0.37805,1.4574 0.25207,0.32116 0.63012,0.48173 1.13421,0.48173 0.60574,0 1.08338,-0.1931 1.43301,-0.5793 0.35368,-0.3862 0.53053,-0.91265 0.53053,-1.57936 l 0,-3.87218 1.122,0 0,6.82967 -1.122,0 0,-1.04884 c -0.2724,0.41466 -0.58948,0.72362 -0.95128,0.92688 -0.35776,0.1992 -0.77443,0.2988 -1.25009,0.2988 -0.78458,0 -1.38017,-0.24392 -1.78669,-0.73175 -0.40652,-0.48783 -0.60978,-1.20129 -0.60978,-2.14037"
+ id="path4013"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 734.98899,158.26498 0,1.06103 c -0.31708,-0.1626 -0.64637,-0.28456 -0.98788,-0.36587 -0.34146,-0.0813 -0.69513,-0.12195 -1.06102,-0.12196 -0.55693,1e-5 -0.97567,0.0854 -1.25615,0.25612 -0.27645,0.17074 -0.4147,0.42685 -0.4147,0.76833 0,0.26018 0.0996,0.46548 0.29881,0.61589 0.19922,0.14635 0.59963,0.28661 1.20129,0.42076 l 0.38416,0.0854 c 0.79678,0.17074 1.36189,0.41263 1.69522,0.72565 0.33742,0.30896 0.50616,0.74191 0.50616,1.29886 0,0.63418 -0.25207,1.13624 -0.75616,1.50618 -0.50004,0.36994 -1.18912,0.55491 -2.06722,0.55491 -0.36584,0 -0.74798,-0.0366 -1.14637,-0.10976 -0.39435,-0.0691 -0.81102,-0.17481 -1.25009,-0.31709 l 0,-1.15861 c 0.41464,0.21546 0.82323,0.37808 1.22566,0.48784 0.40248,0.1057 0.80088,0.15854 1.19523,0.15854 0.52847,0 0.93499,-0.0894 1.21956,-0.26831 0.28457,-0.18293 0.42686,-0.43904 0.42686,-0.76833 0,-0.3049 -0.10367,-0.53865 -0.31097,-0.70127 -0.20331,-0.1626 -0.65248,-0.31911 -1.34766,-0.46953 l -0.39027,-0.0915 c -0.69518,-0.14635 -1.1972,-0.36994 -1.5062,-0.67077 -0.30895,-0.30489 -0.46341,-0.72159 -0.46341,-1.25008 0,-0.6423 0.22764,-1.13827 0.68297,-1.48789 0.45528,-0.34961 1.10165,-0.52441 1.93912,-0.52442 0.41465,1e-5 0.80491,0.0305 1.1708,0.0915 0.36589,0.061 0.70331,0.15246 1.01226,0.27441"
+ id="path4015"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 737.14762,158.06374 1.12204,0 0,6.82967 -1.12204,0 0,-6.82967 m 0,-2.65869 1.12204,0 0,1.42082 -1.12204,0 0,-1.42082"
+ id="path4017"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 746.2884,160.77122 0,4.12219 -1.12199,0 0,-4.0856 c 0,-0.64638 -0.12603,-1.13014 -0.37805,-1.45131 -0.25207,-0.32115 -0.63017,-0.48173 -1.13426,-0.48173 -0.60569,0 -1.08338,0.19311 -1.43301,0.5793 -0.34959,0.38621 -0.52438,0.91266 -0.52438,1.57936 l 0,3.85998 -1.12815,0 0,-6.82967 1.12815,0 0,1.06104 c 0.26827,-0.41059 0.58333,-0.71751 0.94518,-0.92078 0.36584,-0.20326 0.78659,-0.30489 1.26226,-0.3049 0.78457,1e-5 1.3781,0.24393 1.78058,0.73175 0.40243,0.48378 0.60367,1.19723 0.60367,2.14037"
+ id="path4019"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 753.03272,161.39931 c 0,-0.81306 -0.16874,-1.44317 -0.50611,-1.89036 -0.33338,-0.44718 -0.80289,-0.67076 -1.40863,-0.67077 -0.60166,1e-5 -1.07122,0.22359 -1.40864,0.67077 -0.33333,0.44719 -0.5,1.0773 -0.5,1.89036 0,0.80899 0.16667,1.43707 0.5,1.88425 0.33742,0.44719 0.80698,0.67077 1.40864,0.67077 0.60574,0 1.07525,-0.22358 1.40863,-0.67077 0.33737,-0.44718 0.50611,-1.07526 0.50611,-1.88425 m 1.12203,2.64649 c -4e-5,1.16267 -0.25817,2.02654 -0.77447,2.59161 -0.5163,0.56914 -1.30698,0.85371 -2.37208,0.85371 -0.39431,0 -0.7663,-0.0305 -1.11589,-0.0915 -0.34963,-0.0569 -0.68907,-0.14636 -1.01837,-0.26832 l 0,-1.09152 c 0.3293,0.17887 0.6545,0.31099 0.97567,0.39636 0.32117,0.0854 0.64839,0.12806 0.98177,0.12806 0.73582,0 1.28664,-0.1931 1.65253,-0.5793 0.36589,-0.38214 0.54881,-0.96144 0.54881,-1.73791 l 0,-0.55491 c -0.23173,0.40246 -0.52847,0.7033 -0.89032,0.90249 -0.3618,0.1992 -0.79476,0.2988 -1.29885,0.2988 -0.83742,0 -1.51226,-0.31912 -2.02447,-0.95737 -0.51226,-0.63825 -0.76837,-1.48383 -0.76837,-2.53673 0,-1.05697 0.25611,-1.90458 0.76837,-2.54283 0.51221,-0.63825 1.18705,-0.95737 2.02447,-0.95738 0.50409,1e-5 0.93705,0.0996 1.29885,0.2988 0.36185,0.1992 0.65859,0.50004 0.89032,0.90249 l 0,-1.03665 1.12203,0 0,5.98206"
+ id="path4021"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 761.5515,156.12461 0,1.93913 2.31111,0 0,0.87201 -2.31111,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07323 0.1545,0.15855 0.46547,0.23782 0.93297,0.23782 l 1.15252,0 0,0.93908 -1.15252,0 c -0.86589,0 -1.4635,-0.16058 -1.7928,-0.48173 -0.32924,-0.32523 -0.49389,-0.91469 -0.49389,-1.7684 l 0,-3.70753 -0.82323,0 0,-0.87201 0.82323,0 0,-1.93913 1.1281,0"
+ id="path4023"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 771.02157,160.77122 0,4.12219 -1.12204,0 0,-4.0856 c 0,-0.64638 -0.12603,-1.13014 -0.37805,-1.45131 -0.25207,-0.32115 -0.63012,-0.48173 -1.13421,-0.48173 -0.60574,0 -1.08342,0.19311 -1.43301,0.5793 -0.34963,0.38621 -0.52443,0.91266 -0.52443,1.57936 l 0,3.85998 -1.1281,0 0,-9.48836 1.1281,0 0,3.71973 c 0.26832,-0.41059 0.58338,-0.71751 0.94518,-0.92078 0.36589,-0.20326 0.78664,-0.30489 1.26226,-0.3049 0.78462,1e-5 1.37815,0.24393 1.78058,0.73175 0.40248,0.48378 0.60372,1.19723 0.60372,2.14037"
+ id="path4025"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 779.1135,161.19808 0,0.54881 -5.15882,0 c 0.0488,0.7724 0.28049,1.36187 0.69513,1.76839 0.41874,0.40247 1.00005,0.6037 1.74404,0.6037 0.4309,0 0.84756,-0.0529 1.25004,-0.15855 0.40652,-0.10569 0.809,-0.26424 1.2074,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81511,0.30083 -1.23788,0.39027 -0.42278,0.0894 -0.85166,0.13415 -1.28664,0.13415 -1.08954,0 -1.9534,-0.31709 -2.59165,-0.95127 -0.63416,-0.63419 -0.95124,-1.49196 -0.95124,-2.57332 0,-1.11795 0.30083,-2.00418 0.90248,-2.6587 0.60574,-0.65857 1.4208,-0.98785 2.44527,-0.98786 0.91874,1e-5 1.6444,0.29677 2.17696,0.8903 0.53659,0.58947 0.80491,1.39236 0.80491,2.40868 m -1.12199,-0.32929 c -0.008,-0.61386 -0.18095,-1.10372 -0.51837,-1.4696 -0.33333,-0.36587 -0.77645,-0.54881 -1.32934,-0.54881 -0.62603,0 -1.1281,0.17684 -1.50615,0.53051 -0.37402,0.35369 -0.58949,0.85168 -0.64638,1.49399 l 4.00024,-0.006"
+ id="path4027"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 786.1017,158.7894 -1.28664,0 0,-1.05494 1.00005,-1.94524 0.78664,0 -0.50005,1.94524 0,1.05494"
+ id="path4029"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 788.95552,155.78922 5.75643,0 0,1.03665 -4.52461,0 0,2.69528 4.33558,0 0,1.03664 -4.33558,0 0,3.29897 4.63439,0 0,1.03665 -5.86621,0 0,-9.10419"
+ id="path4031"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 801.30383,159.10039 0,-3.69534 1.12199,0 0,9.48836 -1.12199,0 0,-1.02445 c -0.23581,0.40653 -0.53462,0.70939 -0.89642,0.90859 -0.35771,0.19513 -0.78866,0.2927 -1.29275,0.2927 -0.82525,0 -1.49807,-0.32929 -2.01841,-0.98786 -0.5163,-0.65857 -0.77443,-1.52448 -0.77443,-2.59771 0,-1.07323 0.25813,-1.93914 0.77443,-2.59772 0.52034,-0.65857 1.19316,-0.98785 2.01841,-0.98786 0.50409,1e-5 0.93504,0.0996 1.29275,0.2988 0.3618,0.19514 0.66061,0.49597 0.89642,0.90249 m -3.82342,2.38429 c 0,0.82525 0.16873,1.47366 0.50615,1.94523 0.34146,0.46751 0.80896,0.70126 1.40253,0.70126 0.59353,0 1.06102,-0.23375 1.40248,-0.70126 0.34151,-0.47157 0.51226,-1.11998 0.51226,-1.94523 0,-0.82525 -0.17075,-1.47163 -0.51226,-1.93914 -0.34146,-0.47157 -0.80895,-0.70735 -1.40248,-0.70736 -0.59357,1e-5 -1.06107,0.23579 -1.40253,0.70736 -0.33742,0.46751 -0.50615,1.11389 -0.50615,1.93914"
+ id="path4033"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 804.73694,158.06374 1.12204,0 0,6.82967 -1.12204,0 0,-6.82967 m 0,-2.65869 1.12204,0 0,1.42082 -1.12204,0 0,-1.42082"
+ id="path4035"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 809.3104,156.12461 0,1.93913 2.31111,0 0,0.87201 -2.31111,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07323 0.15446,0.15855 0.46547,0.23782 0.93297,0.23782 l 1.15252,0 0,0.93908 -1.15252,0 c -0.86589,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.3293,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70753 -0.82319,0 0,-0.87201 0.82319,0 0,-1.93913 1.12814,0"
+ id="path4037"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 818.16454,163.86896 0,3.62216 -1.1281,0 0,-9.42738 1.1281,0 0,1.03665 c 0.23581,-0.40652 0.53255,-0.70735 0.89031,-0.90249 0.3618,-0.19919 0.79275,-0.29879 1.29275,-0.2988 0.82934,1e-5 1.50211,0.32929 2.01841,0.98786 0.52034,0.65858 0.78054,1.52449 0.78054,2.59772 0,1.07323 -0.2602,1.93914 -0.78054,2.59771 -0.5163,0.65857 -1.18907,0.98786 -2.01841,0.98786 -0.5,0 -0.93095,-0.0976 -1.29275,-0.2927 -0.35776,-0.1992 -0.6545,-0.50206 -0.89031,-0.90859 m 3.81731,-2.38428 c 0,-0.82525 -0.17075,-1.47163 -0.51221,-1.93914 -0.33742,-0.47157 -0.80289,-0.70735 -1.39642,-0.70736 -0.59353,1e-5 -1.06107,0.23579 -1.40253,0.70736 -0.33742,0.46751 -0.50615,1.11389 -0.50615,1.93914 0,0.82525 0.16873,1.47366 0.50615,1.94523 0.34146,0.46751 0.809,0.70126 1.40253,0.70126 0.59353,0 1.059,-0.23375 1.39642,-0.70126 0.34146,-0.47157 0.51221,-1.11998 0.51221,-1.94523"
+ id="path4039"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 828.11028,161.46028 c -0.90657,10e-6 -1.53467,0.10367 -1.88425,0.311 -0.34964,0.20733 -0.52443,0.56101 -0.52443,1.06103 0,0.3984 0.13007,0.7155 0.39027,0.95128 0.26423,0.23172 0.62199,0.34758 1.07323,0.34758 0.62199,0 1.11997,-0.21952 1.49399,-0.65857 0.37805,-0.44312 0.56708,-1.03055 0.56712,-1.7623 l 0,-0.25002 -1.11593,0 m 2.23793,-0.46344 0,3.89657 -1.122,0 0,-1.03665 c -0.25615,0.41467 -0.57525,0.72159 -0.95739,0.92079 -0.38214,0.19513 -0.84963,0.2927 -1.40253,0.2927 -0.69922,0 -1.25615,-0.19513 -1.67084,-0.5854 -0.41056,-0.39433 -0.61589,-0.92079 -0.61589,-1.57936 0,-0.76833 0.25615,-1.34763 0.76837,-1.73791 0.5163,-0.39026 1.28462,-0.58539 2.305,-0.5854 l 1.57328,0 0,-0.10976 c -4e-5,-0.51628 -0.17075,-0.91468 -0.51226,-1.19519 -0.33742,-0.28457 -0.81304,-0.42685 -1.4269,-0.42685 -0.39027,0 -0.77039,0.0468 -1.14032,0.14025 -0.36992,0.0935 -0.72562,0.23376 -1.06712,0.42075 l 0,-1.03664 c 0.4106,-0.15854 0.809,-0.27643 1.19518,-0.35368 0.38622,-0.0813 0.76226,-0.12195 1.12814,-0.12196 0.98784,1e-5 1.72567,0.25612 2.21355,0.76834 0.48779,0.51223 0.73173,1.2887 0.73173,2.3294"
+ id="path4041"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 833.77521,156.12461 0,1.93913 2.31111,0 0,0.87201 -2.31111,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07323 0.1545,0.15855 0.46547,0.23782 0.93301,0.23782 l 1.15248,0 0,0.93908 -1.15248,0 c -0.86593,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.3293,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70753 -0.82324,0 0,-0.87201 0.82324,0 0,-1.93913 1.1281,0"
+ id="path4043"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 843.24528,160.77122 0,4.12219 -1.122,0 0,-4.0856 c 0,-0.64638 -0.12603,-1.13014 -0.37805,-1.45131 -0.25207,-0.32115 -0.63012,-0.48173 -1.13425,-0.48173 -0.6057,0 -1.08338,0.19311 -1.43297,0.5793 -0.34963,0.38621 -0.52443,0.91266 -0.52443,1.57936 l 0,3.85998 -1.12814,0 0,-9.48836 1.12814,0 0,3.71973 c 0.26828,-0.41059 0.58334,-0.71751 0.94518,-0.92078 0.36584,-0.20326 0.7866,-0.30489 1.26226,-0.3049 0.78458,1e-5 1.3781,0.24393 1.78058,0.73175 0.40248,0.48378 0.60368,1.19723 0.60368,2.14037"
+ id="path4045"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 849.84932,158.26498 0,1.06103 c -0.31708,-0.1626 -0.64637,-0.28456 -0.98783,-0.36587 -0.34151,-0.0813 -0.69518,-0.12195 -1.06107,-0.12196 -0.55693,1e-5 -0.97566,0.0854 -1.25615,0.25612 -0.27645,0.17074 -0.41465,0.42685 -0.41465,0.76833 0,0.26018 0.0996,0.46548 0.29881,0.61589 0.19917,0.14635 0.59959,0.28661 1.20129,0.42076 l 0.38416,0.0854 c 0.79678,0.17074 1.36184,0.41263 1.69522,0.72565 0.33742,0.30896 0.50611,0.74191 0.50611,1.29886 0,0.63418 -0.25207,1.13624 -0.75615,1.50618 -0.5,0.36994 -1.18908,0.55491 -2.06718,0.55491 -0.36588,0 -0.74802,-0.0366 -1.14642,-0.10976 -0.3943,-0.0691 -0.81102,-0.17481 -1.25004,-0.31709 l 0,-1.15861 c 0.41464,0.21546 0.82318,0.37808 1.22566,0.48784 0.40248,0.1057 0.80088,0.15854 1.19518,0.15854 0.52852,0 0.93504,-0.0894 1.21961,-0.26831 0.28457,-0.18293 0.42681,-0.43904 0.42686,-0.76833 -5e-5,-0.3049 -0.10367,-0.53865 -0.31102,-0.70127 -0.20326,-0.1626 -0.65248,-0.31911 -1.34761,-0.46953 l -0.39027,-0.0915 c -0.69518,-0.14635 -1.19725,-0.36994 -1.5062,-0.67077 -0.30895,-0.30489 -0.46345,-0.72159 -0.46345,-1.25008 0,-0.6423 0.22764,-1.13827 0.68296,-1.48789 0.45533,-0.34961 1.1017,-0.52441 1.93917,-0.52442 0.41465,1e-5 0.80491,0.0305 1.1708,0.0915 0.36584,0.061 0.70326,0.15246 1.01221,0.27441"
+ id="path4047"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 860.88657,161.48468 c 0,-0.82525 -0.17075,-1.47163 -0.51221,-1.93914 -0.33742,-0.47157 -0.8029,-0.70735 -1.39642,-0.70736 -0.59353,1e-5 -1.06107,0.23579 -1.40253,0.70736 -0.33742,0.46751 -0.50615,1.11389 -0.50615,1.93914 0,0.82525 0.16873,1.47366 0.50615,1.94523 0.34146,0.46751 0.809,0.70126 1.40253,0.70126 0.59352,0 1.059,-0.23375 1.39642,-0.70126 0.34146,-0.47157 0.51221,-1.11998 0.51221,-1.94523 m -3.81731,-2.38429 c 0.23581,-0.40652 0.53255,-0.70735 0.89031,-0.90249 0.3618,-0.19919 0.79275,-0.29879 1.29275,-0.2988 0.82934,1e-5 1.50211,0.32929 2.01841,0.98786 0.52034,0.65858 0.78053,1.52449 0.78053,2.59772 0,1.07323 -0.26019,1.93914 -0.78053,2.59771 -0.5163,0.65857 -1.18907,0.98786 -2.01841,0.98786 -0.5,0 -0.93095,-0.0976 -1.29275,-0.2927 -0.35776,-0.1992 -0.6545,-0.50206 -0.89031,-0.90859 l 0,1.02445 -1.1281,0 0,-9.48836 1.1281,0 0,3.69534"
+ id="path4049"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 866.75278,165.52759 c -0.31712,0.81306 -0.62608,1.34358 -0.9269,1.59156 -0.30083,0.24798 -0.70331,0.37197 -1.2074,0.37197 l -0.89637,0 0,-0.93908 0.65858,0 c 0.30896,0 0.54881,-0.0732 0.71952,-0.21952 0.17075,-0.14635 0.35978,-0.4919 0.56712,-1.03665 l 0.20124,-0.51222 -2.76235,-6.71991 1.18908,0 2.13429,5.34178 2.13426,-5.34178 1.18907,0 -3.00014,7.46385"
+ id="path4051"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 880.95481,160.77122 0,4.12219 -1.12204,0 0,-4.0856 c 0,-0.64638 -0.12603,-1.13014 -0.37805,-1.45131 -0.25207,-0.32115 -0.63012,-0.48173 -1.13421,-0.48173 -0.60574,0 -1.08342,0.19311 -1.43301,0.5793 -0.34963,0.38621 -0.52443,0.91266 -0.52443,1.57936 l 0,3.85998 -1.1281,0 0,-6.82967 1.1281,0 0,1.06104 c 0.26832,-0.41059 0.58338,-0.71751 0.94518,-0.92078 0.36589,-0.20326 0.78664,-0.30489 1.26226,-0.3049 0.78458,1e-5 1.37815,0.24393 1.78058,0.73175 0.40248,0.48378 0.60372,1.19723 0.60372,2.14037"
+ id="path4053"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 885.85142,158.85038 c -0.60165,0 -1.07727,0.23579 -1.42691,0.70735 -0.34963,0.46752 -0.52442,1.10983 -0.52442,1.92695 0,0.81712 0.17277,1.46146 0.51832,1.93303 0.34963,0.46751 0.82727,0.70127 1.43301,0.70127 0.59761,0 1.07121,-0.23579 1.4208,-0.70736 0.34963,-0.47157 0.52443,-1.11389 0.52443,-1.92694 0,-0.80899 -0.1748,-1.44927 -0.52443,-1.92085 -0.34959,-0.47563 -0.82319,-0.71345 -1.4208,-0.71345 m 0,-0.95128 c 0.97567,1e-5 1.74197,0.3171 2.2989,0.95128 0.55698,0.63419 0.83545,1.51229 0.83545,2.6343 0,1.11795 -0.27847,1.99605 -0.83545,2.6343 -0.55693,0.63418 -1.32323,0.95127 -2.2989,0.95127 -0.97971,0 -1.74807,-0.31709 -2.30501,-0.95127 -0.55289,-0.63825 -0.82929,-1.51635 -0.82929,-2.6343 0,-1.12201 0.2764,-2.00011 0.82929,-2.6343 0.55694,-0.63418 1.3253,-0.95127 2.30501,-0.95128"
+ id="path4055"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 895.33366,159.10039 0,-3.69534 1.12204,0 0,9.48836 -1.12204,0 0,-1.02445 c -0.23577,0.40653 -0.53457,0.70939 -0.89637,0.90859 -0.35776,0.19513 -0.78866,0.2927 -1.29275,0.2927 -0.82525,0 -1.49807,-0.32929 -2.01841,-0.98786 -0.5163,-0.65857 -0.77443,-1.52448 -0.77443,-2.59771 0,-1.07323 0.25813,-1.93914 0.77443,-2.59772 0.52034,-0.65857 1.19316,-0.98785 2.01841,-0.98786 0.50409,1e-5 0.93499,0.0996 1.29275,0.2988 0.3618,0.19514 0.6606,0.49597 0.89637,0.90249 m -3.82337,2.38429 c 0,0.82525 0.16868,1.47366 0.5061,1.94523 0.34151,0.46751 0.809,0.70126 1.40253,0.70126 0.59353,0 1.06106,-0.23375 1.40253,-0.70126 0.3415,-0.47157 0.51221,-1.11998 0.51221,-1.94523 0,-0.82525 -0.17071,-1.47163 -0.51221,-1.93914 -0.34147,-0.47157 -0.809,-0.70735 -1.40253,-0.70736 -0.59353,1e-5 -1.06102,0.23579 -1.40253,0.70736 -0.33742,0.46751 -0.5061,1.11389 -0.5061,1.93914"
+ id="path4057"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 904.6086,161.19808 0,0.54881 -5.15882,0 c 0.0488,0.7724 0.28048,1.36187 0.69518,1.76839 0.41868,0.40247 1.00004,0.6037 1.74398,0.6037 0.4309,0 0.84762,-0.0529 1.25005,-0.15855 0.40657,-0.10569 0.809,-0.26424 1.20739,-0.47564 l 0,1.06104 c -0.40243,0.17074 -0.81506,0.30083 -1.23788,0.39027 -0.42277,0.0894 -0.85165,0.13415 -1.28664,0.13415 -1.08948,0 -1.95335,-0.31709 -2.5916,-0.95127 -0.6342,-0.63419 -0.95128,-1.49196 -0.95128,-2.57332 0,-1.11795 0.30082,-2.00418 0.90248,-2.6587 0.60574,-0.65857 1.4208,-0.98785 2.44527,-0.98786 0.91873,1e-5 1.6444,0.29677 2.17695,0.8903 0.5366,0.58947 0.80492,1.39236 0.80492,2.40868 m -1.122,-0.32929 c -0.008,-0.61386 -0.1809,-1.10372 -0.51832,-1.4696 -0.33338,-0.36587 -0.77649,-0.54881 -1.32934,-0.54881 -0.62608,0 -1.12814,0.17684 -1.5062,0.53051 -0.37401,0.35369 -0.58948,0.85168 -0.64637,1.49399 l 4.00023,-0.006"
+ id="path4059"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 910.8041,158.26498 0,1.06103 c -0.31712,-0.1626 -0.64637,-0.28456 -0.98788,-0.36587 -0.34146,-0.0813 -0.69518,-0.12195 -1.06102,-0.12196 -0.55693,1e-5 -0.97566,0.0854 -1.2562,0.25612 -0.2764,0.17074 -0.41464,0.42685 -0.41464,0.76833 0,0.26018 0.0996,0.46548 0.2988,0.61589 0.19918,0.14635 0.59964,0.28661 1.20129,0.42076 l 0.38416,0.0854 c 0.79679,0.17074 1.36189,0.41263 1.69523,0.72565 0.33742,0.30896 0.5061,0.74191 0.50615,1.29886 -5e-5,0.63418 -0.25207,1.13624 -0.75615,1.50618 -0.50005,0.36994 -1.18912,0.55491 -2.06722,0.55491 -0.36584,0 -0.74798,-0.0366 -1.14638,-0.10976 -0.39435,-0.0691 -0.81102,-0.17481 -1.25009,-0.31709 l 0,-1.15861 c 0.41465,0.21546 0.82323,0.37808 1.22567,0.48784 0.40248,0.1057 0.80087,0.15854 1.19522,0.15854 0.52847,0 0.93499,-0.0894 1.21956,-0.26831 0.28458,-0.18293 0.42686,-0.43904 0.42686,-0.76833 0,-0.3049 -0.10367,-0.53865 -0.31097,-0.70127 -0.20331,-0.1626 -0.65248,-0.31911 -1.34766,-0.46953 l -0.39027,-0.0915 c -0.69518,-0.14635 -1.19724,-0.36994 -1.5062,-0.67077 -0.30895,-0.30489 -0.4634,-0.72159 -0.4634,-1.25008 0,-0.6423 0.22764,-1.13827 0.68296,-1.48789 0.45528,-0.34961 1.10166,-0.52441 1.93912,-0.52442 0.41465,1e-5 0.80492,0.0305 1.1708,0.0915 0.36589,0.061 0.70331,0.15246 1.01226,0.27441"
+ id="path4061"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 913.37132,155.78922 1.28664,0 0,0.92689 -1.00004,1.94523 -0.78664,0 0.50004,-1.94523 0,-0.92689"
+ id="path4063"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 922.02427,156.12461 0,1.93913 2.31111,0 0,0.87201 -2.31111,0 0,3.70753 c 0,0.55695 0.0752,0.91469 0.22562,1.07323 0.15445,0.15855 0.46547,0.23782 0.93297,0.23782 l 1.15252,0 0,0.93908 -1.15252,0 c -0.86589,0 -1.4635,-0.16058 -1.7928,-0.48173 -0.32929,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70753 -0.82318,0 0,-0.87201 0.82318,0 0,-1.93913 1.12815,0"
+ id="path4065"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 928.46367,158.85038 c -0.60166,0 -1.07732,0.23579 -1.42691,0.70735 -0.34963,0.46752 -0.52443,1.10983 -0.52443,1.92695 0,0.81712 0.17278,1.46146 0.51832,1.93303 0.34964,0.46751 0.82728,0.70127 1.43302,0.70127 0.59761,0 1.07121,-0.23579 1.4208,-0.70736 0.34963,-0.47157 0.52442,-1.11389 0.52442,-1.92694 0,-0.80899 -0.17479,-1.44927 -0.52442,-1.92085 -0.34959,-0.47563 -0.82319,-0.71345 -1.4208,-0.71345 m 0,-0.95128 c 0.97566,1e-5 1.74196,0.3171 2.2989,0.95128 0.55693,0.63419 0.83544,1.51229 0.83544,2.6343 0,1.11795 -0.27851,1.99605 -0.83544,2.6343 -0.55694,0.63418 -1.32324,0.95127 -2.2989,0.95127 -0.97976,0 -1.74808,-0.31709 -2.30501,-0.95127 -0.55289,-0.63825 -0.82934,-1.51635 -0.82934,-2.6343 0,-1.12201 0.27645,-2.00011 0.82934,-2.6343 0.55693,-0.63418 1.32525,-0.95127 2.30501,-0.95128"
+ id="path4067"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 936.09825,158.85038 c -0.60166,0 -1.07728,0.23579 -1.42691,0.70735 -0.34963,0.46752 -0.52443,1.10983 -0.52443,1.92695 0,0.81712 0.17278,1.46146 0.51832,1.93303 0.34964,0.46751 0.82728,0.70127 1.43302,0.70127 0.59761,0 1.07121,-0.23579 1.4208,-0.70736 0.34963,-0.47157 0.52442,-1.11389 0.52442,-1.92694 0,-0.80899 -0.17479,-1.44927 -0.52442,-1.92085 -0.34959,-0.47563 -0.82319,-0.71345 -1.4208,-0.71345 m 0,-0.95128 c 0.97566,1e-5 1.74196,0.3171 2.2989,0.95128 0.55698,0.63419 0.83544,1.51229 0.83544,2.6343 0,1.11795 -0.27846,1.99605 -0.83544,2.6343 -0.55694,0.63418 -1.32324,0.95127 -2.2989,0.95127 -0.97971,0 -1.74808,-0.31709 -2.30501,-0.95127 -0.55289,-0.63825 -0.82929,-1.51635 -0.82929,-2.6343 0,-1.12201 0.2764,-2.00011 0.82929,-2.6343 0.55693,-0.63418 1.3253,-0.95127 2.30501,-0.95128"
+ id="path4069"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 941.08636,155.40505 1.12199,0 0,9.48836 -1.12199,0 0,-9.48836"
+ id="path4071"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 944.70849,163.34454 1.28669,0 0,1.54887 -1.28669,0 0,-1.54887"
+ id="path4073"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 595.615,175.22328 0,1.29886 c -0.41465,-0.3862 -0.85776,-0.67483 -1.32934,-0.86591 -0.46749,-0.19106 -0.96552,-0.28659 -1.49399,-0.2866 -1.04072,1e-5 -1.83751,0.31913 -2.39036,0.95737 -0.55289,0.63419 -0.82934,1.55294 -0.82934,2.75626 0,1.19926 0.27645,2.11801 0.82934,2.75626 0.55285,0.63418 1.34964,0.95128 2.39036,0.95127 0.52847,1e-5 1.0265,-0.0955 1.49399,-0.2866 0.47158,-0.19107 0.91469,-0.4797 1.32934,-0.8659 l 0,1.28666 c -0.4309,0.2927 -0.88825,0.51223 -1.37204,0.65858 -0.47971,0.14635 -0.98783,0.21952 -1.52447,0.21952 -1.3781,0 -2.46355,-0.42076 -3.25629,-1.26227 -0.79271,-0.84558 -1.18908,-1.99808 -1.18908,-3.45752 0,-1.46349 0.39637,-2.616 1.18908,-3.45751 0.79274,-0.84557 1.87819,-1.26836 3.25629,-1.26837 0.54476,1e-5 1.05698,0.0732 1.53668,0.21952 0.48375,0.1423 0.93706,0.35776 1.35983,0.64638"
+ id="path4075"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 597.48098,174.13785 1.12199,0 0,9.48836 -1.12199,0 0,-9.48836"
+ id="path4077"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 606.78641,179.93087 0,0.54881 -5.15887,0 c 0.0488,0.77241 0.28053,1.36187 0.69518,1.7684 0.41873,0.40246 1.00005,0.6037 1.74399,0.6037 0.43094,0 0.84761,-0.0529 1.25009,-0.15855 0.40652,-0.1057 0.809,-0.26424 1.20739,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.8151,0.30083 -1.23788,0.39026 -0.42282,0.0894 -0.8517,0.13416 -1.28664,0.13416 -1.08953,0 -1.9534,-0.31709 -2.59164,-0.95127 -0.63416,-0.63419 -0.95129,-1.49196 -0.95129,-2.57333 0,-1.11794 0.30083,-2.00417 0.90253,-2.65869 0.60569,-0.65857 1.4208,-0.98785 2.44527,-0.98786 0.91873,1e-5 1.64435,0.29677 2.17695,0.89029 0.5366,0.58948 0.80492,1.39237 0.80492,2.40868 m -1.12204,-0.32929 c -0.008,-0.61385 -0.1809,-1.10371 -0.51832,-1.46959 -0.33334,-0.36587 -0.77645,-0.54881 -1.32934,-0.54881 -0.62604,0 -1.1281,0.17684 -1.5062,0.53052 -0.37397,0.35368 -0.58944,0.85167 -0.64638,1.49398 l 4.00024,-0.006"
+ id="path4079"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 611.73182,180.19308 c -0.90657,1e-5 -1.53467,0.10367 -1.88425,0.311 -0.34964,0.20733 -0.52443,0.56101 -0.52443,1.06103 0,0.3984 0.13007,0.71549 0.39027,0.95128 0.26423,0.23172 0.62199,0.34758 1.07323,0.34758 0.62199,0 1.11997,-0.21952 1.49399,-0.65858 0.37805,-0.44311 0.56708,-1.03054 0.56708,-1.76229 l 0,-0.25002 -1.11589,0 m 2.23793,-0.46344 0,3.89657 -1.12204,0 0,-1.03665 c -0.25611,0.41466 -0.57521,0.72159 -0.95735,0.92079 -0.38214,0.19513 -0.84963,0.2927 -1.40253,0.2927 -0.69922,0 -1.25615,-0.19514 -1.67084,-0.5854 -0.41056,-0.39433 -0.61589,-0.92078 -0.61589,-1.57936 0,-0.76833 0.25611,-1.34764 0.76837,-1.73791 0.51625,-0.39026 1.28462,-0.58539 2.305,-0.5854 l 1.57324,0 0,-0.10976 c 0,-0.51629 -0.17071,-0.91468 -0.51222,-1.19519 -0.33742,-0.28456 -0.81304,-0.42685 -1.4269,-0.42685 -0.39027,0 -0.77039,0.0468 -1.14032,0.14025 -0.36992,0.0935 -0.72566,0.23375 -1.06712,0.42075 l 0,-1.03664 c 0.4106,-0.15854 0.809,-0.27644 1.19518,-0.35368 0.38622,-0.0813 0.76226,-0.12195 1.1281,-0.12196 0.98788,1e-5 1.72571,0.25612 2.21354,0.76834 0.48784,0.51223 0.73178,1.28869 0.73178,2.3294"
+ id="path4081"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 621.9641,179.50402 0,4.12219 -1.12199,0 0,-4.0856 c -5e-5,-0.64638 -0.12603,-1.13015 -0.3781,-1.45131 -0.25202,-0.32115 -0.63012,-0.48173 -1.13421,-0.48173 -0.60573,0 -1.08338,0.1931 -1.43301,0.5793 -0.34959,0.38621 -0.52442,0.91266 -0.52442,1.57936 l 0,3.85998 -1.1281,0 0,-6.82966 1.1281,0 0,1.06103 c 0.26831,-0.41058 0.58337,-0.71751 0.94517,-0.92079 0.36589,-0.20325 0.78664,-0.30488 1.26226,-0.30489 0.78462,1e-5 1.37815,0.24392 1.78063,0.73175 0.40243,0.48377 0.60367,1.19723 0.60367,2.14037"
+ id="path4083"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 628.23886,174.52202 1.83549,0 2.32328,6.19548 2.33554,-6.19548 1.83545,0 0,9.10419 -1.20129,0 0,-7.99437 -2.34771,6.24427 -1.23788,0 -2.3477,-6.24427 0,7.99437 -1.19518,0 0,-9.10419"
+ id="path4085"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 642.07505,180.19308 c -0.90657,1e-5 -1.53467,0.10367 -1.88425,0.311 -0.34964,0.20733 -0.52443,0.56101 -0.52443,1.06103 0,0.3984 0.13007,0.71549 0.39027,0.95128 0.26423,0.23172 0.62199,0.34758 1.07323,0.34758 0.62199,0 1.11997,-0.21952 1.49399,-0.65858 0.37805,-0.44311 0.56708,-1.03054 0.56708,-1.76229 l 0,-0.25002 -1.11589,0 m 2.23792,-0.46344 0,3.89657 -1.12203,0 0,-1.03665 c -0.25611,0.41466 -0.57521,0.72159 -0.95735,0.92079 -0.38214,0.19513 -0.84963,0.2927 -1.40253,0.2927 -0.69922,0 -1.25615,-0.19514 -1.67084,-0.5854 -0.41056,-0.39433 -0.61589,-0.92078 -0.61589,-1.57936 0,-0.76833 0.25611,-1.34764 0.76837,-1.73791 0.51625,-0.39026 1.28462,-0.58539 2.305,-0.5854 l 1.57324,0 0,-0.10976 c 0,-0.51629 -0.17071,-0.91468 -0.51222,-1.19519 -0.33742,-0.28456 -0.81304,-0.42685 -1.4269,-0.42685 -0.39027,0 -0.77039,0.0468 -1.14032,0.14025 -0.36992,0.0935 -0.72566,0.23375 -1.06712,0.42075 l 0,-1.03664 c 0.4106,-0.15854 0.809,-0.27644 1.19518,-0.35368 0.38622,-0.0813 0.76226,-0.12195 1.1281,-0.12196 0.98788,1e-5 1.72571,0.25612 2.21354,0.76834 0.48784,0.51223 0.73177,1.28869 0.73177,2.3294"
+ id="path4087"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 647.74002,174.85741 0,1.93914 2.31111,0 0,0.87199 -2.31111,0 0,3.70754 c 0,0.55694 0.0752,0.91468 0.22562,1.07323 0.15445,0.15855 0.46547,0.23782 0.93297,0.23782 l 1.15252,0 0,0.93908 -1.15252,0 c -0.86589,0 -1.4635,-0.16058 -1.7928,-0.48173 -0.32929,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70754 -0.82318,0 0,-0.87199 0.82318,0 0,-1.93914 1.12815,0"
+ id="path4089"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 657.37469,179.93087 0,0.54881 -5.15882,0 c 0.0488,0.77241 0.28049,1.36187 0.69518,1.7684 0.41869,0.40246 1.00005,0.6037 1.74399,0.6037 0.4309,0 0.84761,-0.0529 1.25009,-0.15855 0.40652,-0.1057 0.80896,-0.26424 1.20735,-0.47564 l 0,1.06104 c -0.40243,0.17074 -0.81506,0.30083 -1.23783,0.39026 -0.42282,0.0894 -0.8517,0.13416 -1.28669,0.13416 -1.08949,0 -1.95335,-0.31709 -2.5916,-0.95127 -0.63421,-0.63419 -0.95129,-1.49196 -0.95129,-2.57333 0,-1.11794 0.30083,-2.00417 0.90248,-2.65869 0.60574,-0.65857 1.42085,-0.98785 2.44528,-0.98786 0.91873,1e-5 1.6444,0.29677 2.17695,0.89029 0.53659,0.58948 0.80491,1.39237 0.80491,2.40868 m -1.12199,-0.32929 c -0.008,-0.61385 -0.1809,-1.10371 -0.51832,-1.46959 -0.33338,-0.36587 -0.77649,-0.54881 -1.32934,-0.54881 -0.62608,0 -1.12815,0.17684 -1.5062,0.53052 -0.37401,0.35368 -0.58949,0.85167 -0.64637,1.49398 l 4.00023,-0.006"
+ id="path4091"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 663.17383,177.84538 c -0.12604,-0.0732 -0.26424,-0.12601 -0.41465,-0.15854 -0.14637,-0.0366 -0.30895,-0.0549 -0.48783,-0.0549 -0.63421,0 -1.12204,0.20733 -1.4635,0.62198 -0.33742,0.41061 -0.50616,1.0021 -0.50616,1.7745 l 0,3.59777 -1.1281,0 0,-6.82966 1.1281,0 0,1.06103 c 0.23582,-0.41465 0.54275,-0.72158 0.9208,-0.92079 0.37806,-0.20325 0.83747,-0.30488 1.37815,-0.30489 0.0772,1e-5 0.16258,0.006 0.25611,0.0183 0.0935,0.008 0.19715,0.0224 0.31097,0.0427 l 0.006,1.15251"
+ id="path4093"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 664.3629,176.79655 1.12204,0 0,6.82966 -1.12204,0 0,-6.82966 m 0,-2.6587 1.12204,0 0,1.42082 -1.12204,0 0,-1.42082"
+ id="path4095"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 670.93035,180.19308 c -0.90652,1e-5 -1.53462,0.10367 -1.88425,0.311 -0.34959,0.20733 -0.52443,0.56101 -0.52438,1.06103 -5e-5,0.3984 0.13007,0.71549 0.39027,0.95128 0.26423,0.23172 0.62194,0.34758 1.07323,0.34758 0.62195,0 1.11997,-0.21952 1.49398,-0.65858 0.37806,-0.44311 0.56709,-1.03054 0.56709,-1.76229 l 0,-0.25002 -1.11594,0 m 2.23797,-0.46344 0,3.89657 -1.12203,0 0,-1.03665 c -0.25611,0.41466 -0.57526,0.72159 -0.95735,0.92079 -0.38214,0.19513 -0.84968,0.2927 -1.40253,0.2927 -0.69926,0 -1.2562,-0.19514 -1.67084,-0.5854 -0.41061,-0.39433 -0.61589,-0.92078 -0.61589,-1.57936 0,-0.76833 0.25611,-1.34764 0.76832,-1.73791 0.5163,-0.39026 1.28462,-0.58539 2.30505,-0.5854 l 1.57324,0 0,-0.10976 c 0,-0.51629 -0.17076,-0.91468 -0.51222,-1.19519 -0.33742,-0.28456 -0.81308,-0.42685 -1.4269,-0.42685 -0.39027,0 -0.77039,0.0468 -1.14032,0.14025 -0.36997,0.0935 -0.72566,0.23375 -1.06712,0.42075 l 0,-1.03664 c 0.41056,-0.15854 0.80895,-0.27644 1.19518,-0.35368 0.38618,-0.0813 0.76221,-0.12195 1.1281,-0.12196 0.98788,1e-5 1.72571,0.25612 2.21354,0.76834 0.48784,0.51223 0.73173,1.28869 0.73177,2.3294"
+ id="path4097"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 675.4855,174.13785 1.12204,0 0,9.48836 -1.12204,0 0,-9.48836"
+ id="path4099"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 682.97375,174.52202 5.75643,0 0,1.03665 -4.52466,0 0,2.69527 4.33564,0 0,1.03665 -4.33564,0 0,3.29897 4.63444,0 0,1.03665 -5.86621,0 0,-9.10419"
+ id="path4101"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 695.32202,177.83319 0,-3.69534 1.12204,0 0,9.48836 -1.12204,0 0,-1.02445 c -0.23577,0.40653 -0.53458,0.70939 -0.89638,0.90859 -0.35776,0.19513 -0.78866,0.2927 -1.29274,0.2927 -0.82526,0 -1.49808,-0.32929 -2.01842,-0.98786 -0.5163,-0.65858 -0.77442,-1.52448 -0.77442,-2.59771 0,-1.07323 0.25812,-1.93914 0.77442,-2.59772 0.52034,-0.65857 1.19316,-0.98785 2.01842,-0.98786 0.50408,1e-5 0.93498,0.0996 1.29274,0.2988 0.3618,0.19514 0.66061,0.49597 0.89638,0.90249 m -3.82338,2.38429 c 0,0.82525 0.16869,1.47366 0.50611,1.94523 0.34151,0.46751 0.809,0.70126 1.40253,0.70126 0.59352,0 1.06106,-0.23375 1.40252,-0.70126 0.34151,-0.47157 0.51222,-1.11998 0.51222,-1.94523 0,-0.82525 -0.17071,-1.47163 -0.51222,-1.93914 -0.34146,-0.47157 -0.809,-0.70735 -1.40252,-0.70736 -0.59353,1e-5 -1.06102,0.23579 -1.40253,0.70736 -0.33742,0.46751 -0.50611,1.11389 -0.50611,1.93914"
+ id="path4103"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 703.24934,180.1321 c 0,-0.81305 -0.16873,-1.44317 -0.50615,-1.89035 -0.33334,-0.44717 -0.80289,-0.67076 -1.40859,-0.67077 -0.6017,1e-5 -1.07121,0.2236 -1.40863,0.67077 -0.33338,0.44718 -0.50005,1.0773 -0.50005,1.89035 0,0.80899 0.16667,1.43708 0.50005,1.88426 0.33742,0.44718 0.80693,0.67077 1.40863,0.67077 0.6057,0 1.07525,-0.22359 1.40859,-0.67077 0.33742,-0.44718 0.50615,-1.07527 0.50615,-1.88426 m 1.12199,2.6465 c 0,1.16267 -0.25812,2.02654 -0.77442,2.59161 -0.5163,0.56914 -1.30698,0.85371 -2.37209,0.85371 -0.39435,0 -0.7663,-0.0305 -1.11593,-0.0915 -0.34959,-0.0569 -0.68907,-0.14635 -1.01832,-0.26831 l 0,-1.09152 c 0.32925,0.17887 0.6545,0.31099 0.97566,0.39636 0.32113,0.0854 0.6484,0.12805 0.98173,0.12806 0.73582,-1e-5 1.28669,-0.1931 1.65257,-0.5793 0.36584,-0.38214 0.54881,-0.96144 0.54881,-1.73791 l 0,-0.55491 c -0.23173,0.40246 -0.52851,0.70329 -0.89031,0.90249 -0.3618,0.1992 -0.79477,0.2988 -1.29886,0.2988 -0.83746,0 -1.51226,-0.31913 -2.02451,-0.95737 -0.51222,-0.63825 -0.76832,-1.48383 -0.76832,-2.53674 0,-1.05696 0.2561,-1.90458 0.76832,-2.54283 0.51225,-0.63824 1.18705,-0.95736 2.02451,-0.95737 0.50409,1e-5 0.93706,0.0996 1.29886,0.2988 0.3618,0.1992 0.65858,0.50003 0.89031,0.90249 l 0,-1.03664 1.12199,0 0,5.98205"
+ id="path4105"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 712.52428,179.93087 0,0.54881 -5.15887,0 c 0.0488,0.77241 0.28049,1.36187 0.69518,1.7684 0.41874,0.40246 1.00005,0.6037 1.74399,0.6037 0.4309,0 0.84761,-0.0529 1.25009,-0.15855 0.40652,-0.1057 0.80896,-0.26424 1.2074,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81511,0.30083 -1.23788,0.39026 -0.42282,0.0894 -0.8517,0.13416 -1.28669,0.13416 -1.08949,0 -1.95335,-0.31709 -2.5916,-0.95127 -0.63421,-0.63419 -0.95129,-1.49196 -0.95129,-2.57333 0,-1.11794 0.30083,-2.00417 0.90248,-2.65869 0.60574,-0.65857 1.42085,-0.98785 2.44528,-0.98786 0.91878,1e-5 1.6444,0.29677 2.17695,0.89029 0.53664,0.58948 0.80491,1.39237 0.80496,2.40868 m -1.12204,-0.32929 c -0.008,-0.61385 -0.1809,-1.10371 -0.51832,-1.46959 -0.33338,-0.36587 -0.77649,-0.54881 -1.32934,-0.54881 -0.62608,0 -1.12815,0.17684 -1.5062,0.53052 -0.37401,0.35368 -0.58944,0.85167 -0.64637,1.49398 l 4.00023,-0.006"
+ id="path4107"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 718.71974,176.99778 0,1.06103 c -0.31708,-0.1626 -0.64637,-0.28456 -0.98788,-0.36587 -0.34146,-0.0813 -0.69513,-0.12195 -1.06102,-0.12196 -0.55693,1e-5 -0.97567,0.0854 -1.25615,0.25611 -0.27645,0.17075 -0.4147,0.42686 -0.4147,0.76834 0,0.26018 0.0996,0.46548 0.29881,0.61589 0.19922,0.14635 0.59963,0.28661 1.20129,0.42076 l 0.38416,0.0854 c 0.79683,0.17075 1.36189,0.41263 1.69522,0.72566 0.33742,0.30896 0.50616,0.74191 0.50616,1.29885 0,0.63419 -0.25207,1.13625 -0.75616,1.50619 -0.50004,0.36994 -1.18907,0.55491 -2.06717,0.55491 -0.36589,0 -0.74803,-0.0366 -1.14642,-0.10976 -0.39435,-0.0691 -0.81102,-0.17481 -1.25009,-0.3171 l 0,-1.1586 c 0.41469,0.21546 0.82323,0.37807 1.22571,0.48784 0.40243,0.10569 0.80083,0.15854 1.19518,0.15854 0.52847,0 0.93499,-0.0894 1.21956,-0.26831 0.28457,-0.18293 0.42686,-0.43905 0.42686,-0.76833 0,-0.3049 -0.10367,-0.53865 -0.31097,-0.70127 -0.20326,-0.16261 -0.65248,-0.31912 -1.34766,-0.46953 l -0.39027,-0.0915 c -0.69513,-0.14635 -1.1972,-0.36994 -1.50615,-0.67078 -0.309,-0.30489 -0.46346,-0.72158 -0.46346,-1.25007 0,-0.64231 0.22764,-1.13827 0.68297,-1.48789 0.45528,-0.3496 1.1017,-0.52441 1.93912,-0.52442 0.41465,1e-5 0.80491,0.0305 1.1708,0.0915 0.36589,0.061 0.70331,0.15245 1.01226,0.27441"
+ id="path4109"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 721.16501,182.07734 1.28664,0 0,1.54887 -1.28664,0 0,-1.54887 m 0,-4.90882 1.28664,0 0,1.54887 -1.28664,0 0,-1.54887"
+ id="path4111"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 732.16566,175.73551 -1.67084,4.53075 3.34775,0 -1.67691,-4.53075 m -0.69518,-1.21349 1.39642,0 3.46975,9.10419 -1.28058,0 -0.82934,-2.3355 -4.10386,0 -0.82934,2.3355 -1.29885,0 3.4758,-9.10419"
+ id="path4113"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 741.8979,177.83319 0,-3.69534 1.12204,0 0,9.48836 -1.12204,0 0,-1.02445 c -0.23576,0.40653 -0.53457,0.70939 -0.89637,0.90859 -0.35776,0.19513 -0.78866,0.2927 -1.29275,0.2927 -0.82525,0 -1.49807,-0.32929 -2.01841,-0.98786 -0.5163,-0.65858 -0.77443,-1.52448 -0.77443,-2.59771 0,-1.07323 0.25813,-1.93914 0.77443,-2.59772 0.52034,-0.65857 1.19316,-0.98785 2.01841,-0.98786 0.50409,1e-5 0.93499,0.0996 1.29275,0.2988 0.3618,0.19514 0.66061,0.49597 0.89637,0.90249 m -3.82337,2.38429 c 0,0.82525 0.16869,1.47366 0.50611,1.94523 0.3415,0.46751 0.809,0.70126 1.40252,0.70126 0.59353,0 1.06107,-0.23375 1.40253,-0.70126 0.34151,-0.47157 0.51221,-1.11998 0.51221,-1.94523 0,-0.82525 -0.1707,-1.47163 -0.51221,-1.93914 -0.34146,-0.47157 -0.809,-0.70735 -1.40253,-0.70736 -0.59352,1e-5 -1.06102,0.23579 -1.40252,0.70736 -0.33742,0.46751 -0.50611,1.11389 -0.50611,1.93914"
+ id="path4115"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 749.8374,177.83319 0,-3.69534 1.12204,0 0,9.48836 -1.12204,0 0,-1.02445 c -0.23577,0.40653 -0.53458,0.70939 -0.89638,0.90859 -0.35776,0.19513 -0.78866,0.2927 -1.29274,0.2927 -0.82526,0 -1.49808,-0.32929 -2.01842,-0.98786 -0.5163,-0.65858 -0.77447,-1.52448 -0.77447,-2.59771 0,-1.07323 0.25817,-1.93914 0.77447,-2.59772 0.52034,-0.65857 1.19316,-0.98785 2.01842,-0.98786 0.50408,1e-5 0.93498,0.0996 1.29274,0.2988 0.3618,0.19514 0.66061,0.49597 0.89638,0.90249 m -3.82338,2.38429 c 0,0.82525 0.16869,1.47366 0.50611,1.94523 0.34151,0.46751 0.809,0.70126 1.40253,0.70126 0.59352,0 1.06102,-0.23375 1.40252,-0.70126 0.34146,-0.47157 0.51222,-1.11998 0.51222,-1.94523 0,-0.82525 -0.17076,-1.47163 -0.51222,-1.93914 -0.3415,-0.47157 -0.809,-0.70735 -1.40252,-0.70736 -0.59353,1e-5 -1.06102,0.23579 -1.40253,0.70736 -0.33742,0.46751 -0.50611,1.11389 -0.50611,1.93914"
+ id="path4117"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 760.35021,180.19308 c -0.90656,1e-5 -1.53462,0.10367 -1.88425,0.311 -0.34963,0.20733 -0.52443,0.56101 -0.52443,1.06103 0,0.3984 0.13012,0.71549 0.39027,0.95128 0.26423,0.23172 0.62199,0.34758 1.07323,0.34758 0.622,0 1.11998,-0.21952 1.49399,-0.65858 0.3781,-0.44311 0.56713,-1.03054 0.56713,-1.76229 l 0,-0.25002 -1.11594,0 m 2.23793,-0.46344 0,3.89657 -1.12199,0 0,-1.03665 c -0.25611,0.41466 -0.57526,0.72159 -0.9574,0.92079 -0.38214,0.19513 -0.84963,0.2927 -1.40252,0.2927 -0.69922,0 -1.25616,-0.19514 -1.6708,-0.5854 -0.41061,-0.39433 -0.61589,-0.92078 -0.61589,-1.57936 0,-0.76833 0.25611,-1.34764 0.76832,-1.73791 0.5163,-0.39026 1.28462,-0.58539 2.30501,-0.5854 l 1.57328,0 0,-0.10976 c 0,-0.51629 -0.17076,-0.91468 -0.51222,-1.19519 -0.33742,-0.28456 -0.81308,-0.42685 -1.42695,-0.42685 -0.39027,0 -0.77034,0.0468 -1.14027,0.14025 -0.36997,0.0935 -0.72566,0.23375 -1.06717,0.42075 l 0,-1.03664 c 0.41061,-0.15854 0.809,-0.27644 1.19523,-0.35368 0.38618,-0.0813 0.76221,-0.12195 1.1281,-0.12196 0.98783,1e-5 1.72571,0.25612 2.21354,0.76834 0.48784,0.51223 0.73173,1.28869 0.73173,2.3294"
+ id="path4119"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 773.79614,177.05875 0,1.04884 c -0.31713,-0.17479 -0.63623,-0.30489 -0.95739,-0.39026 -0.31708,-0.0894 -0.63825,-0.13415 -0.96346,-0.13415 -0.72768,0 -1.29279,0.23172 -1.69522,0.69516 -0.40248,0.45938 -0.60372,1.10576 -0.60372,1.93914 0,0.83338 0.20124,1.48179 0.60372,1.94523 0.40243,0.45938 0.96754,0.68907 1.69522,0.68907 0.32521,0 0.64638,-0.0427 0.96346,-0.12806 0.32116,-0.0894 0.64026,-0.22156 0.95739,-0.39637 l 0,1.03665 c -0.31304,0.14635 -0.63829,0.25611 -0.97567,0.32929 -0.33338,0.0732 -0.68907,0.10976 -1.06717,0.10976 -1.02851,0 -1.84564,-0.32319 -2.45133,-0.96957 -0.60574,-0.64638 -0.90859,-1.51838 -0.90859,-2.616 0,-1.11389 0.30487,-1.98996 0.91469,-2.62821 0.61382,-0.63824 1.45331,-0.95736 2.51842,-0.95737 0.34554,1e-5 0.68296,0.0366 1.01226,0.10976 0.32929,0.0691 0.64839,0.17482 0.95739,0.31709"
+ id="path4121"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 775.6438,180.93093 0,-4.13438 1.12199,0 0,4.09169 c 0,0.64639 0.12604,1.13218 0.3781,1.45741 0.25202,0.32115 0.63012,0.48173 1.13421,0.48173 0.60569,0 1.08338,-0.1931 1.43301,-0.5793 0.35368,-0.3862 0.53049,-0.91265 0.53049,-1.57936 l 0,-3.87217 1.12204,0 0,6.82966 -1.12204,0 0,-1.04884 c -0.27236,0.41466 -0.58944,0.72362 -0.95124,0.92688 -0.35776,0.1992 -0.77447,0.2988 -1.25009,0.2988 -0.78458,0 -1.38017,-0.24392 -1.78669,-0.73175 -0.40652,-0.48784 -0.60978,-1.20129 -0.60978,-2.14037"
+ id="path4123"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 784.79675,174.85741 0,1.93914 2.31111,0 0,0.87199 -2.31111,0 0,3.70754 c 0,0.55694 0.0752,0.91468 0.22562,1.07323 0.15449,0.15855 0.46547,0.23782 0.93301,0.23782 l 1.15248,0 0,0.93908 -1.15248,0 c -0.86593,0 -1.4635,-0.16058 -1.7928,-0.48173 -0.32929,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70754 -0.82323,0 0,-0.87199 0.82323,0 0,-1.93914 1.12811,0"
+ id="path4125"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 789.6995,174.85741 0,1.93914 2.31112,0 0,0.87199 -2.31112,0 0,3.70754 c 0,0.55694 0.0752,0.91468 0.22562,1.07323 0.15446,0.15855 0.46548,0.23782 0.93297,0.23782 l 1.15253,0 0,0.93908 -1.15253,0 c -0.86589,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.3293,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70754 -0.82319,0 0,-0.87199 0.82319,0 0,-1.93914 1.12814,0"
+ id="path4127"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 793.49239,176.79655 1.12199,0 0,6.82966 -1.12199,0 0,-6.82966 m 0,-2.6587 1.12199,0 0,1.42082 -1.12199,0 0,-1.42082"
+ id="path4129"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 802.63317,179.50402 0,4.12219 -1.12204,0 0,-4.0856 c 0,-0.64638 -0.12599,-1.13015 -0.37805,-1.45131 -0.25207,-0.32115 -0.63012,-0.48173 -1.13421,-0.48173 -0.60574,0 -1.08343,0.1931 -1.43301,0.5793 -0.34964,0.38621 -0.52443,0.91266 -0.52443,1.57936 l 0,3.85998 -1.1281,0 0,-6.82966 1.1281,0 0,1.06103 c 0.26832,-0.41058 0.58338,-0.71751 0.94518,-0.92079 0.36589,-0.20325 0.78664,-0.30488 1.26226,-0.30489 0.78462,1e-5 1.37815,0.24392 1.78058,0.73175 0.40248,0.48377 0.60372,1.19723 0.60372,2.14037"
+ id="path4131"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 809.37748,180.1321 c -4e-5,-0.81305 -0.16873,-1.44317 -0.50615,-1.89035 -0.33333,-0.44717 -0.80289,-0.67076 -1.40863,-0.67077 -0.60166,1e-5 -1.07117,0.2236 -1.40859,0.67077 -0.33338,0.44718 -0.50005,1.0773 -0.50005,1.89035 0,0.80899 0.16667,1.43708 0.50005,1.88426 0.33742,0.44718 0.80693,0.67077 1.40859,0.67077 0.60574,0 1.0753,-0.22359 1.40863,-0.67077 0.33742,-0.44718 0.50611,-1.07527 0.50615,-1.88426 m 1.122,2.6465 c 0,1.16267 -0.25813,2.02654 -0.77443,2.59161 -0.5163,0.56914 -1.30698,0.85371 -2.37209,0.85371 -0.39435,0 -0.7663,-0.0305 -1.11593,-0.0915 -0.34963,-0.0569 -0.68907,-0.14635 -1.01837,-0.26831 l 0,-1.09152 c 0.3293,0.17887 0.65455,0.31099 0.97567,0.39636 0.32117,0.0854 0.64844,0.12805 0.98177,0.12806 0.73582,-1e-5 1.28669,-0.1931 1.65253,-0.5793 0.36589,-0.38214 0.54881,-0.96144 0.54885,-1.73791 l 0,-0.55491 c -0.23173,0.40246 -0.52851,0.70329 -0.89031,0.90249 -0.3618,0.1992 -0.79477,0.2988 -1.29885,0.2988 -0.83747,0 -1.51231,-0.31913 -2.02452,-0.95737 -0.51222,-0.63825 -0.76832,-1.48383 -0.76832,-2.53674 0,-1.05696 0.2561,-1.90458 0.76832,-2.54283 0.51221,-0.63824 1.18705,-0.95736 2.02452,-0.95737 0.50408,1e-5 0.93705,0.0996 1.29885,0.2988 0.3618,0.1992 0.65858,0.50003 0.89031,0.90249 l 0,-1.03664 1.122,0 0,5.98205"
+ id="path4133"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 816.78644,174.13785 1.12199,0 0,9.48836 -1.12199,0 0,-9.48836"
+ id="path4135"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 820.25003,176.79655 1.12204,0 0,6.82966 -1.12204,0 0,-6.82966 m 0,-2.6587 1.12204,0 0,1.42082 -1.12204,0 0,-1.42082"
+ id="path4137"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 829.39081,179.50402 0,4.12219 -1.12199,0 0,-4.0856 c 0,-0.64638 -0.12603,-1.13015 -0.3781,-1.45131 -0.25202,-0.32115 -0.63012,-0.48173 -1.13421,-0.48173 -0.60569,0 -1.08338,0.1931 -1.43301,0.5793 -0.34959,0.38621 -0.52443,0.91266 -0.52443,1.57936 l 0,3.85998 -1.1281,0 0,-6.82966 1.1281,0 0,1.06103 c 0.26832,-0.41058 0.58338,-0.71751 0.94518,-0.92079 0.36589,-0.20325 0.78664,-0.30488 1.26231,-0.30489 0.78457,1e-5 1.3781,0.24392 1.78058,0.73175 0.40243,0.48377 0.60367,1.19723 0.60367,2.14037"
+ id="path4139"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 837.48274,179.93087 0,0.54881 -5.15882,0 c 0.0488,0.77241 0.28049,1.36187 0.69513,1.7684 0.41874,0.40246 1.0001,0.6037 1.74404,0.6037 0.4309,0 0.84761,-0.0529 1.25004,-0.15855 0.40652,-0.1057 0.809,-0.26424 1.2074,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81506,0.30083 -1.23788,0.39026 -0.42278,0.0894 -0.85166,0.13416 -1.28664,0.13416 -1.08949,0 -1.95336,-0.31709 -2.5916,-0.95127 -0.63421,-0.63419 -0.95129,-1.49196 -0.95129,-2.57333 0,-1.11794 0.30083,-2.00417 0.90248,-2.65869 0.60574,-0.65857 1.4208,-0.98785 2.44527,-0.98786 0.91874,1e-5 1.6444,0.29677 2.17696,0.89029 0.53659,0.58948 0.80491,1.39237 0.80491,2.40868 m -1.12199,-0.32929 c -0.008,-0.61385 -0.18095,-1.10371 -0.51832,-1.46959 -0.33338,-0.36587 -0.7765,-0.54881 -1.32939,-0.54881 -0.62603,0 -1.1281,0.17684 -1.50615,0.53052 -0.37402,0.35368 -0.58949,0.85167 -0.64638,1.49398 l 4.00024,-0.006"
+ id="path4141"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 844.41002,174.85741 0,1.93914 2.31111,0 0,0.87199 -2.31111,0 0,3.70754 c 0,0.55694 0.0752,0.91468 0.22562,1.07323 0.15445,0.15855 0.46547,0.23782 0.93296,0.23782 l 1.15253,0 0,0.93908 -1.15253,0 c -0.86588,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.32929,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70754 -0.82319,0 0,-0.87199 0.82319,0 0,-1.93914 1.12815,0"
+ id="path4143"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 850.84937,177.58318 c -0.60165,0 -1.07727,0.23579 -1.42691,0.70735 -0.34958,0.46751 -0.52442,1.10983 -0.52442,1.92695 0,0.81712 0.17277,1.46146 0.51832,1.93303 0.34963,0.46751 0.82732,0.70127 1.43301,0.70127 0.59761,0 1.07121,-0.23579 1.42085,-0.70737 0.34958,-0.47157 0.52438,-1.11388 0.52442,-1.92693 -4e-5,-0.80899 -0.17484,-1.44927 -0.52442,-1.92085 -0.34964,-0.47563 -0.82324,-0.71345 -1.42085,-0.71345 m 0,-0.95128 c 0.97567,1e-5 1.74197,0.3171 2.29895,0.95128 0.55693,0.63418 0.8354,1.51228 0.8354,2.6343 0,1.11795 -0.27847,1.99605 -0.8354,2.6343 -0.55698,0.63418 -1.32328,0.95127 -2.29895,0.95127 -0.97971,0 -1.74807,-0.31709 -2.30501,-0.95127 -0.55284,-0.63825 -0.82929,-1.51635 -0.82929,-2.6343 0,-1.12202 0.27645,-2.00012 0.82929,-2.6343 0.55694,-0.63418 1.3253,-0.95127 2.30501,-0.95128"
+ id="path4145"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 860.92312,174.85741 0,1.93914 2.31111,0 0,0.87199 -2.31111,0 0,3.70754 c 0,0.55694 0.0752,0.91468 0.22562,1.07323 0.1545,0.15855 0.46547,0.23782 0.93301,0.23782 l 1.15248,0 0,0.93908 -1.15248,0 c -0.86593,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.3293,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70754 -0.82324,0 0,-0.87199 0.82324,0 0,-1.93914 1.1281,0"
+ id="path4147"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 870.39323,179.50402 0,4.12219 -1.12204,0 0,-4.0856 c 0,-0.64638 -0.12603,-1.13015 -0.37805,-1.45131 -0.25207,-0.32115 -0.63012,-0.48173 -1.13421,-0.48173 -0.60574,0 -1.08342,0.1931 -1.43301,0.5793 -0.34963,0.38621 -0.52443,0.91266 -0.52443,1.57936 l 0,3.85998 -1.12814,0 0,-9.48836 1.12814,0 0,3.71973 c 0.26828,-0.41058 0.58334,-0.71751 0.94518,-0.92079 0.36585,-0.20325 0.7866,-0.30488 1.26226,-0.30489 0.78458,1e-5 1.3781,0.24392 1.78058,0.73175 0.40248,0.48377 0.60368,1.19723 0.60372,2.14037"
+ id="path4149"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 878.48516,179.93087 0,0.54881 -5.15887,0 c 0.0488,0.77241 0.28054,1.36187 0.69518,1.7684 0.41874,0.40246 1.00005,0.6037 1.74399,0.6037 0.43095,0 0.84761,-0.0529 1.25009,-0.15855 0.40652,-0.1057 0.809,-0.26424 1.2074,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81511,0.30083 -1.23788,0.39026 -0.42282,0.0894 -0.8517,0.13416 -1.28669,0.13416 -1.08949,0 -1.95335,-0.31709 -2.5916,-0.95127 -0.63416,-0.63419 -0.95129,-1.49196 -0.95129,-2.57333 0,-1.11794 0.30083,-2.00417 0.90253,-2.65869 0.60569,-0.65857 1.4208,-0.98785 2.44523,-0.98786 0.91878,1e-5 1.6444,0.29677 2.177,0.89029 0.53659,0.58948 0.80491,1.39237 0.80491,2.40868 m -1.12204,-0.32929 c -0.008,-0.61385 -0.1809,-1.10371 -0.51832,-1.46959 -0.33333,-0.36587 -0.77645,-0.54881 -1.32934,-0.54881 -0.62603,0 -1.1281,0.17684 -1.5062,0.53052 -0.37397,0.35368 -0.58944,0.85167 -0.64637,1.49398 l 4.00023,-0.006"
+ id="path4151"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 883.65009,176.79655 1.12199,0 1.40253,5.32957 1.39642,-5.32957 1.32328,0 1.40248,5.32957 1.39646,-5.32957 1.122,0 -1.78669,6.82966 -1.32323,0 -1.46961,-5.59789 -1.47571,5.59789 -1.32324,0 -1.78668,-6.82966"
+ id="path4153"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 900.19982,179.50402 0,4.12219 -1.12199,0 0,-4.0856 c 0,-0.64638 -0.12603,-1.13015 -0.3781,-1.45131 -0.25202,-0.32115 -0.63012,-0.48173 -1.13421,-0.48173 -0.60574,0 -1.08338,0.1931 -1.43301,0.5793 -0.34959,0.38621 -0.52443,0.91266 -0.52443,1.57936 l 0,3.85998 -1.1281,0 0,-9.48836 1.1281,0 0,3.71973 c 0.26832,-0.41058 0.58338,-0.71751 0.94518,-0.92079 0.36589,-0.20325 0.78664,-0.30488 1.26231,-0.30489 0.78457,1e-5 1.3781,0.24392 1.78058,0.73175 0.40243,0.48377 0.60367,1.19723 0.60367,2.14037"
+ id="path4155"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 902.44996,176.79655 1.12204,0 0,6.82966 -1.12204,0 0,-6.82966 m 0,-2.6587 1.12204,0 0,1.42082 -1.12204,0 0,-1.42082"
+ id="path4157"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 907.02338,174.85741 0,1.93914 2.31112,0 0,0.87199 -2.31112,0 0,3.70754 c 0,0.55694 0.0752,0.91468 0.22562,1.07323 0.1545,0.15855 0.46548,0.23782 0.93297,0.23782 l 1.15253,0 0,0.93908 -1.15253,0 c -0.86589,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.32925,-0.32523 -0.4939,-0.91469 -0.4939,-1.7684 l 0,-3.70754 -0.82323,0 0,-0.87199 0.82323,0 0,-1.93914 1.1281,0"
+ id="path4159"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 916.6581,179.93087 0,0.54881 -5.15882,0 c 0.0488,0.77241 0.28049,1.36187 0.69514,1.7684 0.41873,0.40246 1.00004,0.6037 1.74403,0.6037 0.4309,0 0.84757,-0.0529 1.25005,-0.15855 0.40652,-0.1057 0.809,-0.26424 1.20739,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81511,0.30083 -1.23788,0.39026 -0.42277,0.0894 -0.85165,0.13416 -1.28664,0.13416 -1.08953,0 -1.9534,-0.31709 -2.59165,-0.95127 -0.63416,-0.63419 -0.95124,-1.49196 -0.95124,-2.57333 0,-1.11794 0.30083,-2.00417 0.90248,-2.65869 0.60574,-0.65857 1.4208,-0.98785 2.44528,-0.98786 0.91873,1e-5 1.6444,0.29677 2.17695,0.89029 0.53659,0.58948 0.80491,1.39237 0.80491,2.40868 m -1.12199,-0.32929 c -0.008,-0.61385 -0.18095,-1.10371 -0.51837,-1.46959 -0.33333,-0.36587 -0.77644,-0.54881 -1.32934,-0.54881 -0.62603,0 -1.1281,0.17684 -1.50615,0.53052 -0.37401,0.35368 -0.58949,0.85167 -0.64637,1.49398 l 4.00023,-0.006"
+ id="path4161"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 923.56095,182.60176 0,3.62216 -1.12814,0 0,-9.42737 1.12814,0 0,1.03664 c 0.23577,-0.40652 0.53256,-0.70735 0.89027,-0.90249 0.3618,-0.1992 0.79275,-0.29879 1.29279,-0.2988 0.8293,1e-5 1.50212,0.32929 2.01837,0.98786 0.52039,0.65858 0.78053,1.52449 0.78053,2.59772 0,1.07323 -0.26014,1.93913 -0.78053,2.59771 -0.51625,0.65857 -1.18907,0.98786 -2.01837,0.98786 -0.50004,0 -0.93099,-0.0976 -1.29279,-0.2927 -0.35771,-0.1992 -0.6545,-0.50206 -0.89027,-0.90859 m 3.81727,-2.38428 c 0,-0.82525 -0.17075,-1.47163 -0.51221,-1.93914 -0.33742,-0.47157 -0.8029,-0.70735 -1.39642,-0.70736 -0.59353,1e-5 -1.06102,0.23579 -1.40253,0.70736 -0.33742,0.46751 -0.50611,1.11389 -0.50611,1.93914 0,0.82525 0.16869,1.47366 0.50611,1.94523 0.34151,0.46751 0.809,0.70126 1.40253,0.70126 0.59352,0 1.059,-0.23375 1.39642,-0.70126 0.34146,-0.47157 0.51221,-1.11998 0.51221,-1.94523"
+ id="path4163"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 936.24462,179.93087 0,0.54881 -5.15887,0 c 0.0488,0.77241 0.28054,1.36187 0.69518,1.7684 0.41874,0.40246 1.00005,0.6037 1.74399,0.6037 0.43095,0 0.84761,-0.0529 1.25009,-0.15855 0.40652,-0.1057 0.809,-0.26424 1.2074,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81511,0.30083 -1.23788,0.39026 -0.42282,0.0894 -0.8517,0.13416 -1.28669,0.13416 -1.08949,0 -1.95335,-0.31709 -2.5916,-0.95127 -0.63416,-0.63419 -0.95129,-1.49196 -0.95129,-2.57333 0,-1.11794 0.30083,-2.00417 0.90253,-2.65869 0.60569,-0.65857 1.4208,-0.98785 2.44523,-0.98786 0.91878,1e-5 1.6444,0.29677 2.17695,0.89029 0.53664,0.58948 0.80496,1.39237 0.80496,2.40868 m -1.12204,-0.32929 c -0.008,-0.61385 -0.1809,-1.10371 -0.51832,-1.46959 -0.33333,-0.36587 -0.77645,-0.54881 -1.32934,-0.54881 -0.62608,0 -1.1281,0.17684 -1.5062,0.53052 -0.37401,0.35368 -0.58944,0.85167 -0.64637,1.49398 l 4.00023,-0.006"
+ id="path4165"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 942.04371,177.84538 c -0.12604,-0.0732 -0.26424,-0.12601 -0.41465,-0.15854 -0.14633,-0.0366 -0.30895,-0.0549 -0.48783,-0.0549 -0.63416,0 -1.122,0.20733 -1.4635,0.62198 -0.33742,0.41061 -0.50611,1.0021 -0.50611,1.7745 l 0,3.59777 -1.12815,0 0,-6.82966 1.12815,0 0,1.06103 c 0.23577,-0.41465 0.5427,-0.72158 0.92075,-0.92079 0.3781,-0.20325 0.83747,-0.30488 1.37815,-0.30489 0.0772,1e-5 0.16263,0.006 0.25611,0.0183 0.0935,0.008 0.19715,0.0224 0.31102,0.0427 l 0.006,1.15251"
+ id="path4167"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 943.23283,176.79655 1.12199,0 0,6.82966 -1.12199,0 0,-6.82966 m 0,-2.6587 1.12199,0 0,1.42082 -1.12199,0 0,-1.42082"
+ id="path4169"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 952.01382,178.10759 c 0.28049,-0.50408 0.61589,-0.87605 1.00616,-1.11591 0.39026,-0.23985 0.84963,-0.35977 1.3781,-0.35978 0.71143,1e-5 1.26024,0.25002 1.64646,0.75005 0.38618,0.49596 0.5793,1.20332 0.5793,2.12207 l 0,4.12219 -1.1281,0 0,-4.0856 c -5e-5,-0.65451 -0.11589,-1.14031 -0.34762,-1.45741 -0.23172,-0.31708 -0.5854,-0.47563 -1.06102,-0.47563 -0.58135,0 -1.04072,0.1931 -1.37814,0.5793 -0.33742,0.38621 -0.50611,0.91266 -0.50611,1.57936 l 0,3.85998 -1.1281,0 0,-4.0856 c -4e-5,-0.65858 -0.11588,-1.14438 -0.34761,-1.45741 -0.23173,-0.31708 -0.58944,-0.47563 -1.07323,-0.47563 -0.57319,0 -1.02852,0.19513 -1.36594,0.5854 -0.33742,0.3862 -0.5061,0.91062 -0.5061,1.57326 l 0,3.85998 -1.12815,0 0,-6.82966 1.12815,0 0,1.06103 c 0.2561,-0.41872 0.56304,-0.72768 0.92075,-0.92688 0.35776,-0.1992 0.7826,-0.29879 1.27447,-0.2988 0.49596,1e-5 0.91672,0.12603 1.26226,0.37807 0.34963,0.25205 0.60776,0.61793 0.77447,1.09762"
+ id="path4171"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 964.7097,179.93087 0,0.54881 -5.15886,0 c 0.0488,0.77241 0.28048,1.36187 0.69518,1.7684 0.41873,0.40246 1.00004,0.6037 1.74398,0.6037 0.4309,0 0.84762,-0.0529 1.2501,-0.15855 0.40652,-0.1057 0.80895,-0.26424 1.20739,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81511,0.30083 -1.23788,0.39026 -0.42282,0.0894 -0.8517,0.13416 -1.28669,0.13416 -1.08948,0 -1.95335,-0.31709 -2.5916,-0.95127 -0.6342,-0.63419 -0.95128,-1.49196 -0.95128,-2.57333 0,-1.11794 0.30082,-2.00417 0.90248,-2.65869 0.60574,-0.65857 1.42084,-0.98785 2.44527,-0.98786 0.91878,1e-5 1.6444,0.29677 2.17695,0.89029 0.53664,0.58948 0.80492,1.39237 0.80496,2.40868 m -1.12204,-0.32929 c -0.008,-0.61385 -0.1809,-1.10371 -0.51832,-1.46959 -0.33338,-0.36587 -0.77649,-0.54881 -1.32934,-0.54881 -0.62608,0 -1.12814,0.17684 -1.5062,0.53052 -0.37401,0.35368 -0.58944,0.85167 -0.64637,1.49398 l 4.00023,-0.006"
+ id="path4173"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 967.66108,174.85741 0,1.93914 2.31112,0 0,0.87199 -2.31112,0 0,3.70754 c 0,0.55694 0.0752,0.91468 0.22562,1.07323 0.15446,0.15855 0.46548,0.23782 0.93297,0.23782 l 1.15253,0 0,0.93908 -1.15253,0 c -0.86589,0 -1.4635,-0.16058 -1.79279,-0.48173 -0.3293,-0.32523 -0.49394,-0.91469 -0.49394,-1.7684 l 0,-3.70754 -0.82319,0 0,-0.87199 0.82319,0 0,-1.93914 1.12814,0"
+ id="path4175"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 977.29576,179.93087 0,0.54881 -5.15882,0 c 0.0488,0.77241 0.28048,1.36187 0.69518,1.7684 0.41868,0.40246 1.00004,0.6037 1.74398,0.6037 0.4309,0 0.84762,-0.0529 1.25005,-0.15855 0.40657,-0.1057 0.809,-0.26424 1.20739,-0.47564 l 0,1.06104 c -0.40243,0.17074 -0.81506,0.30083 -1.23788,0.39026 -0.42277,0.0894 -0.85165,0.13416 -1.28664,0.13416 -1.08948,0 -1.95335,-0.31709 -2.5916,-0.95127 -0.6342,-0.63419 -0.95128,-1.49196 -0.95128,-2.57333 0,-1.11794 0.30082,-2.00417 0.90248,-2.65869 0.60574,-0.65857 1.4208,-0.98785 2.44527,-0.98786 0.91873,1e-5 1.6444,0.29677 2.17695,0.89029 0.5366,0.58948 0.80492,1.39237 0.80492,2.40868 m -1.122,-0.32929 c -0.008,-0.61385 -0.1809,-1.10371 -0.51832,-1.46959 -0.33338,-0.36587 -0.77649,-0.54881 -1.32934,-0.54881 -0.62608,0 -1.12814,0.17684 -1.5062,0.53052 -0.37401,0.35368 -0.58948,0.85167 -0.64637,1.49398 l 4.00023,-0.006"
+ id="path4177"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 983.09489,177.84538 c -0.12604,-0.0732 -0.26424,-0.12601 -0.41465,-0.15854 -0.14637,-0.0366 -0.309,-0.0549 -0.48783,-0.0549 -0.63421,0 -1.12204,0.20733 -1.4635,0.62198 -0.33742,0.41061 -0.50615,1.0021 -0.50615,1.7745 l 0,3.59777 -1.12811,0 0,-6.82966 1.12811,0 0,1.06103 c 0.23581,-0.41465 0.54274,-0.72158 0.92079,-0.92079 0.37806,-0.20325 0.83743,-0.30488 1.37815,-0.30489 0.0772,1e-5 0.16258,0.006 0.25611,0.0183 0.0935,0.008 0.19715,0.0224 0.31097,0.0427 l 0.006,1.15251"
+ id="path4179"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 983.30834,182.07734 1.28664,0 0,1.54887 -1.28664,0 0,-1.54887"
+ id="path4181"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 590.02932,194.26707 0,3.42093 1.54885,0 c 0.57324,1e-5 1.01635,-0.14837 1.32939,-0.44514 0.31299,-0.29676 0.46951,-0.71955 0.46951,-1.26837 0,-0.54474 -0.15652,-0.9655 -0.46951,-1.26227 -0.31304,-0.29676 -0.75615,-0.44514 -1.32939,-0.44515 l -1.54885,0 m -1.23177,-1.01225 2.78062,0 c 1.02039,1e-5 1.79078,0.23173 2.31112,0.69516 0.52442,0.45939 0.78664,1.13422 0.78664,2.02451 0,0.89843 -0.26222,1.57733 -0.78664,2.03671 -0.52034,0.45937 -1.29073,0.68906 -2.31112,0.68906 l -1.54885,0 0,3.65875 -1.23177,0 0,-9.10419"
+ id="path4183"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 600.03599,196.57818 c -0.12604,-0.0732 -0.26424,-0.12601 -0.41465,-0.15854 -0.14633,-0.0366 -0.30895,-0.0549 -0.48783,-0.0549 -0.63416,0 -1.122,0.20733 -1.4635,0.62199 -0.33742,0.41059 -0.50611,1.00209 -0.50611,1.77449 l 0,3.59777 -1.12815,0 0,-6.82967 1.12815,0 0,1.06104 c 0.23577,-0.41465 0.5427,-0.72158 0.92075,-0.92078 0.3781,-0.20326 0.83747,-0.30489 1.37815,-0.3049 0.0772,1e-5 0.16263,0.006 0.25611,0.0183 0.0935,0.008 0.19715,0.0224 0.31102,0.0427 l 0.006,1.1525"
+ id="path4185"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 601.23727,195.52934 1.12204,0 0,6.82967 -1.12204,0 0,-6.82967 m 0,-2.65869 1.12204,0 0,1.42081 -1.12204,0 0,-1.42081"
+ id="path4187"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 609.61584,195.79155 0,1.04885 c -0.31713,-0.17481 -0.63623,-0.30489 -0.95739,-0.39027 -0.31708,-0.0894 -0.63825,-0.13415 -0.96346,-0.13416 -0.72768,1e-5 -1.29274,0.23173 -1.69522,0.69517 -0.40248,0.45938 -0.60368,1.10575 -0.60368,1.93913 0,0.83339 0.2012,1.4818 0.60368,1.94524 0.40248,0.45938 0.96754,0.68906 1.69522,0.68906 0.32521,0 0.64638,-0.0427 0.96346,-0.12805 0.32116,-0.0894 0.64026,-0.22156 0.95739,-0.39637 l 0,1.03665 c -0.31304,0.14635 -0.63825,0.25611 -0.97567,0.32928 -0.33338,0.0732 -0.68907,0.10977 -1.06712,0.10977 -1.02852,0 -1.84564,-0.32319 -2.45138,-0.96957 -0.60574,-0.64638 -0.90859,-1.51838 -0.90859,-2.61601 0,-1.11388 0.30491,-1.98994 0.91469,-2.6282 0.61387,-0.63824 1.45331,-0.95736 2.51842,-0.95737 0.34554,1e-5 0.68296,0.0366 1.01226,0.10976 0.32929,0.0691 0.64844,0.17481 0.95739,0.31709"
+ id="path4189"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 611.57934,195.52934 1.12204,0 0,6.82967 -1.12204,0 0,-6.82967 m 0,-2.65869 1.12204,0 0,1.42081 -1.12204,0 0,-1.42081"
+ id="path4191"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 620.72012,198.23682 0,4.12219 -1.122,0 0,-4.08561 c 0,-0.64637 -0.12603,-1.13014 -0.37805,-1.4513 -0.25207,-0.32115 -0.63016,-0.48173 -1.13425,-0.48174 -0.6057,1e-5 -1.08338,0.19311 -1.43301,0.57931 -0.34959,0.3862 -0.52439,0.91265 -0.52439,1.57936 l 0,3.85998 -1.12814,0 0,-6.82967 1.12814,0 0,1.06104 c 0.26828,-0.41059 0.58334,-0.71751 0.94518,-0.92078 0.36585,-0.20326 0.7866,-0.30489 1.26226,-0.3049 0.78458,1e-5 1.3781,0.24392 1.78058,0.73175 0.40244,0.48377 0.60368,1.19723 0.60368,2.14037"
+ id="path4193"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 627.46443,198.8649 c 0,-0.81305 -0.16873,-1.44317 -0.50611,-1.89035 -0.33338,-0.44718 -0.80289,-0.67077 -1.40863,-0.67077 -0.60165,0 -1.07121,0.22359 -1.40863,0.67077 -0.33334,0.44718 -0.5,1.0773 -0.5,1.89035 0,0.809 0.16666,1.43708 0.5,1.88426 0.33742,0.44718 0.80698,0.67077 1.40863,0.67077 0.60574,0 1.07525,-0.22359 1.40863,-0.67077 0.33738,-0.44718 0.50611,-1.07526 0.50611,-1.88426 m 1.12204,2.6465 c -5e-5,1.16266 -0.25817,2.02654 -0.77447,2.59161 -0.5163,0.56914 -1.30698,0.85371 -2.37209,0.85371 -0.39431,0 -0.7663,-0.0305 -1.11589,-0.0915 -0.34963,-0.0569 -0.68907,-0.14635 -1.01836,-0.26831 l 0,-1.09152 c 0.32929,0.17887 0.6545,0.31099 0.97566,0.39636 0.32117,0.0854 0.6484,0.12806 0.98178,0.12806 0.73581,0 1.28664,-0.19311 1.65252,-0.57931 0.36589,-0.38213 0.54881,-0.96143 0.54881,-1.7379 l 0,-0.55491 c -0.23173,0.40246 -0.52851,0.70329 -0.89031,0.90249 -0.3618,0.1992 -0.79477,0.2988 -1.29886,0.2988 -0.83742,0 -1.51226,-0.31912 -2.02447,-0.95738 -0.51226,-0.63824 -0.76837,-1.48382 -0.76837,-2.53673 0,-1.05696 0.25611,-1.90457 0.76837,-2.54283 0.51221,-0.63824 1.18705,-0.95736 2.02447,-0.95737 0.50409,1e-5 0.93706,0.0996 1.29886,0.29879 0.3618,0.19921 0.65858,0.50004 0.89031,0.9025 l 0,-1.03665 1.12204,0 0,5.98206"
+ id="path4195"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 631.18418,200.81014 1.28664,0 0,1.54887 -1.28664,0 0,-1.54887 m 0,-4.90883 1.28664,0 0,1.54888 -1.28664,0 0,-1.54888"
+ id="path4197"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 642.18478,194.4683 -1.6708,4.53076 3.34775,0 -1.67695,-4.53076 m -0.69513,-1.21348 1.39642,0 3.4697,9.10419 -1.28054,0 -0.82934,-2.3355 -4.1039,0 -0.82929,2.3355 -1.29886,0 3.47581,-9.10419"
+ id="path4199"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 655.96,195.73057 0,1.06104 c -0.31713,-0.16261 -0.64637,-0.28456 -0.98788,-0.36587 -0.34146,-0.0813 -0.69518,-0.12196 -1.06102,-0.12196 -0.55698,0 -0.97567,0.0854 -1.2562,0.25611 -0.2764,0.17075 -0.41465,0.42686 -0.41465,0.76834 0,0.26018 0.0996,0.46548 0.29881,0.61589 0.19917,0.14635 0.59963,0.2866 1.20129,0.42075 l 0.38416,0.0854 c 0.79678,0.17074 1.36189,0.41262 1.69522,0.72564 0.33742,0.30897 0.50611,0.74192 0.50616,1.29886 -5e-5,0.63418 -0.25207,1.13625 -0.75616,1.50619 -0.50004,0.36994 -1.18912,0.55491 -2.06722,0.55491 -0.36584,0 -0.74798,-0.0366 -1.14637,-0.10977 -0.39435,-0.0691 -0.81107,-0.1748 -1.25009,-0.31708 l 0,-1.15861 c 0.41464,0.21546 0.82323,0.37807 1.22566,0.48783 0.40248,0.1057 0.80088,0.15855 1.19523,0.15855 0.52847,0 0.93499,-0.0894 1.21956,-0.26831 0.28457,-0.18294 0.42686,-0.43905 0.42686,-0.76834 0,-0.30489 -0.10367,-0.53864 -0.31097,-0.70126 -0.20331,-0.16261 -0.65253,-0.31912 -1.34766,-0.46954 l -0.39027,-0.0915 c -0.69518,-0.14634 -1.19725,-0.36993 -1.5062,-0.67077 -0.30895,-0.30489 -0.46345,-0.72158 -0.46341,-1.25007 -4e-5,-0.64231 0.22764,-1.13827 0.68297,-1.48789 0.45528,-0.34961 1.10165,-0.52441 1.93912,-0.52442 0.41465,1e-5 0.80491,0.0305 1.1708,0.0915 0.36589,0.061 0.70326,0.15245 1.01226,0.2744"
+ id="path4201"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 658.11868,195.52934 1.12199,0 0,6.82967 -1.12199,0 0,-6.82967 m 0,-2.65869 1.12199,0 0,1.42081 -1.12199,0 0,-1.42081"
+ id="path4203"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 666.89963,196.8404 c 0.28054,-0.5041 0.61589,-0.87607 1.0062,-1.11592 0.39022,-0.23985 0.84964,-0.35977 1.3781,-0.35978 0.71144,1e-5 1.26024,0.25002 1.64647,0.75004 0.38618,0.49597 0.57925,1.20333 0.57929,2.12208 l 0,4.12219 -1.12814,0 0,-4.08561 c 0,-0.6545 -0.11584,-1.1403 -0.34757,-1.4574 -0.23173,-0.31708 -0.5854,-0.47563 -1.06102,-0.47564 -0.58136,1e-5 -1.04073,0.19311 -1.37815,0.57931 -0.33742,0.3862 -0.5061,0.91265 -0.5061,1.57936 l 0,3.85998 -1.12815,0 0,-4.08561 c 0,-0.65857 -0.11584,-1.14437 -0.34757,-1.4574 -0.23172,-0.31708 -0.58948,-0.47563 -1.07323,-0.47564 -0.57319,1e-5 -1.02851,0.19515 -1.36593,0.5854 -0.33742,0.38621 -0.50611,0.91063 -0.50611,1.57327 l 0,3.85998 -1.12815,0 0,-6.82967 1.12815,0 0,1.06104 c 0.25611,-0.41872 0.56304,-0.72768 0.92075,-0.92689 0.35776,-0.19919 0.78256,-0.29878 1.27448,-0.29879 0.49596,1e-5 0.91671,0.12603 1.26226,0.37807 0.34963,0.25205 0.60776,0.61793 0.77442,1.09763"
+ id="path4205"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 674.83912,201.33456 0,3.62216 -1.1281,0 0,-9.42738 1.1281,0 0,1.03665 c 0.23582,-0.40652 0.53256,-0.70735 0.89032,-0.9025 0.3618,-0.19919 0.7927,-0.29878 1.29274,-0.29879 0.82934,1e-5 1.50212,0.32929 2.01842,0.98786 0.52034,0.65858 0.78053,1.52448 0.78053,2.59771 0,1.07324 -0.26019,1.93914 -0.78053,2.59771 -0.5163,0.65858 -1.18908,0.98787 -2.01842,0.98787 -0.50004,0 -0.93094,-0.0976 -1.29274,-0.2927 -0.35776,-0.1992 -0.6545,-0.50207 -0.89032,-0.90859 m 3.81732,-2.38429 c 0,-0.82525 -0.17076,-1.47162 -0.51222,-1.93913 -0.33742,-0.47157 -0.80289,-0.70736 -1.39642,-0.70736 -0.59357,0 -1.06106,0.23579 -1.40252,0.70736 -0.33742,0.46751 -0.50616,1.11388 -0.50616,1.93913 0,0.82526 0.16874,1.47367 0.50616,1.94524 0.34146,0.46751 0.80895,0.70126 1.40252,0.70126 0.59353,0 1.059,-0.23375 1.39642,-0.70126 0.34146,-0.47157 0.51222,-1.11998 0.51222,-1.94524"
+ id="path4207"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 681.681,192.87065 1.122,0 0,9.48836 -1.122,0 0,-9.48836"
+ id="path4209"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 690.98643,198.66367 0,0.54881 -5.15882,0 c 0.0488,0.77241 0.28049,1.36187 0.69513,1.7684 0.41874,0.40246 1.00005,0.60369 1.74404,0.60369 0.4309,0 0.84756,-0.0528 1.25004,-0.15854 0.40652,-0.1057 0.809,-0.26424 1.2074,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81511,0.30083 -1.23788,0.39027 -0.42278,0.0894 -0.8517,0.13415 -1.28664,0.13415 -1.08954,0 -1.9534,-0.31709 -2.59165,-0.95128 -0.63416,-0.63418 -0.95124,-1.49195 -0.95124,-2.57332 0,-1.11795 0.30083,-2.00417 0.90248,-2.65869 0.60569,-0.65857 1.4208,-0.98785 2.44527,-0.98786 0.91874,1e-5 1.6444,0.29677 2.17696,0.8903 0.53659,0.58946 0.80491,1.39236 0.80491,2.40867 m -1.12204,-0.32929 c -0.008,-0.61385 -0.1809,-1.10371 -0.51832,-1.46959 -0.33333,-0.36587 -0.77645,-0.54881 -1.32934,-0.54882 -0.62603,1e-5 -1.1281,0.17685 -1.50615,0.53052 -0.37402,0.35369 -0.58949,0.85168 -0.64642,1.49399 l 4.00023,-0.006"
+ id="path4211"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 701.29801,196.56599 0,-3.69534 1.12199,0 0,9.48836 -1.12199,0 0,-1.02445 c -0.23581,0.40652 -0.53462,0.70939 -0.89642,0.90859 -0.35772,0.19513 -0.78866,0.2927 -1.29275,0.2927 -0.82525,0 -1.49807,-0.32929 -2.01841,-0.98787 -0.5163,-0.65857 -0.77443,-1.52447 -0.77443,-2.59771 0,-1.07323 0.25813,-1.93913 0.77443,-2.59771 0.52034,-0.65857 1.19316,-0.98785 2.01841,-0.98786 0.50409,1e-5 0.93503,0.0996 1.29275,0.29879 0.3618,0.19515 0.66061,0.49598 0.89642,0.9025 m -3.82342,2.38428 c 0,0.82526 0.16873,1.47367 0.50615,1.94524 0.34146,0.46751 0.80896,0.70126 1.40253,0.70126 0.59352,0 1.06102,-0.23375 1.40248,-0.70126 0.3415,-0.47157 0.51226,-1.11998 0.51226,-1.94524 0,-0.82525 -0.17076,-1.47162 -0.51226,-1.93913 -0.34146,-0.47157 -0.80896,-0.70736 -1.40248,-0.70736 -0.59357,0 -1.06107,0.23579 -1.40253,0.70736 -0.33742,0.46751 -0.50615,1.11388 -0.50615,1.93913"
+ id="path4213"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 710.57295,198.66367 0,0.54881 -5.15887,0 c 0.0488,0.77241 0.28049,1.36187 0.69518,1.7684 0.41873,0.40246 1.00005,0.60369 1.74399,0.60369 0.4309,0 0.84761,-0.0528 1.25009,-0.15854 0.40652,-0.1057 0.80895,-0.26424 1.20739,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.8151,0.30083 -1.23788,0.39027 -0.42282,0.0894 -0.8517,0.13415 -1.28668,0.13415 -1.08949,0 -1.95336,-0.31709 -2.5916,-0.95128 -0.63421,-0.63418 -0.95129,-1.49195 -0.95129,-2.57332 0,-1.11795 0.30083,-2.00417 0.90248,-2.65869 0.60574,-0.65857 1.42085,-0.98785 2.44527,-0.98786 0.91878,1e-5 1.6444,0.29677 2.17696,0.8903 0.53664,0.58946 0.80491,1.39236 0.80496,2.40867 m -1.12204,-0.32929 c -0.008,-0.61385 -0.1809,-1.10371 -0.51832,-1.46959 -0.33338,-0.36587 -0.7765,-0.54881 -1.32934,-0.54882 -0.62608,1e-5 -1.12815,0.17685 -1.5062,0.53052 -0.37402,0.35369 -0.58944,0.85168 -0.64638,1.49399 l 4.00024,-0.006"
+ id="path4215"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 716.76841,195.73057 0,1.06104 c -0.31708,-0.16261 -0.64638,-0.28456 -0.98788,-0.36587 -0.34146,-0.0813 -0.69514,-0.12196 -1.06102,-0.12196 -0.55694,0 -0.97567,0.0854 -1.25616,0.25611 -0.27644,0.17075 -0.41469,0.42686 -0.41469,0.76834 0,0.26018 0.0996,0.46548 0.29881,0.61589 0.19922,0.14635 0.59963,0.2866 1.20128,0.42075 l 0.38416,0.0854 c 0.79684,0.17074 1.3619,0.41262 1.69523,0.72564 0.33742,0.30897 0.50615,0.74192 0.50615,1.29886 0,0.63418 -0.25206,1.13625 -0.75615,1.50619 -0.50005,0.36994 -1.18907,0.55491 -2.06717,0.55491 -0.36589,0 -0.74803,-0.0366 -1.14642,-0.10977 -0.39436,-0.0691 -0.81102,-0.1748 -1.2501,-0.31708 l 0,-1.15861 c 0.4147,0.21546 0.82324,0.37807 1.22572,0.48783 0.40243,0.1057 0.80082,0.15855 1.19518,0.15855 0.52846,0 0.93498,-0.0894 1.21956,-0.26831 0.28457,-0.18294 0.42686,-0.43905 0.42686,-0.76834 0,-0.30489 -0.10368,-0.53864 -0.31098,-0.70126 -0.20326,-0.16261 -0.65248,-0.31912 -1.34766,-0.46954 l -0.39026,-0.0915 c -0.69514,-0.14634 -1.1972,-0.36993 -1.50616,-0.67077 -0.309,-0.30489 -0.46345,-0.72158 -0.46345,-1.25007 0,-0.64231 0.22764,-1.13827 0.68297,-1.48789 0.45528,-0.34961 1.1017,-0.52441 1.93912,-0.52442 0.41464,1e-5 0.80491,0.0305 1.1708,0.0915 0.36588,0.061 0.7033,0.15245 1.01226,0.2744"
+ id="path4217"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 718.92709,195.52934 1.12199,0 0,6.82967 -1.12199,0 0,-6.82967 m 0,-2.65869 1.12199,0 0,1.42081 -1.12199,0 0,-1.42081"
+ id="path4219"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 726.88485,198.8649 c 0,-0.81305 -0.16873,-1.44317 -0.50615,-1.89035 -0.33333,-0.44718 -0.80289,-0.67077 -1.40859,-0.67077 -0.60165,0 -1.07121,0.22359 -1.40863,0.67077 -0.33333,0.44718 -0.50005,1.0773 -0.50005,1.89035 0,0.809 0.16672,1.43708 0.50005,1.88426 0.33742,0.44718 0.80698,0.67077 1.40863,0.67077 0.6057,0 1.07526,-0.22359 1.40859,-0.67077 0.33742,-0.44718 0.50615,-1.07526 0.50615,-1.88426 m 1.122,2.6465 c 0,1.16266 -0.25813,2.02654 -0.77443,2.59161 -0.5163,0.56914 -1.30698,0.85371 -2.37209,0.85371 -0.3943,0 -0.7663,-0.0305 -1.11593,-0.0915 -0.34959,-0.0569 -0.68903,-0.14635 -1.01832,-0.26831 l 0,-1.09152 c 0.32929,0.17887 0.6545,0.31099 0.97567,0.39636 0.32116,0.0854 0.64839,0.12806 0.98177,0.12806 0.73581,0 1.28664,-0.19311 1.65253,-0.57931 0.36584,-0.38213 0.5488,-0.96143 0.5488,-1.7379 l 0,-0.55491 c -0.23172,0.40246 -0.52851,0.70329 -0.89031,0.90249 -0.3618,0.1992 -0.79477,0.2988 -1.29885,0.2988 -0.83742,0 -1.51226,-0.31912 -2.02452,-0.95738 -0.51222,-0.63824 -0.76832,-1.48382 -0.76832,-2.53673 0,-1.05696 0.2561,-1.90457 0.76832,-2.54283 0.51226,-0.63824 1.1871,-0.95736 2.02452,-0.95737 0.50408,1e-5 0.93705,0.0996 1.29885,0.29879 0.3618,0.19921 0.65859,0.50004 0.89031,0.9025 l 0,-1.03665 1.122,0 0,5.98206"
+ id="path4221"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 735.99514,198.23682 0,4.12219 -1.12204,0 0,-4.08561 c 0,-0.64637 -0.12603,-1.13014 -0.37805,-1.4513 -0.25207,-0.32115 -0.63012,-0.48173 -1.13421,-0.48174 -0.60574,1e-5 -1.08342,0.19311 -1.43301,0.57931 -0.34963,0.3862 -0.52443,0.91265 -0.52443,1.57936 l 0,3.85998 -1.1281,0 0,-6.82967 1.1281,0 0,1.06104 c 0.26832,-0.41059 0.58338,-0.71751 0.94518,-0.92078 0.36589,-0.20326 0.78664,-0.30489 1.26226,-0.3049 0.78462,1e-5 1.37815,0.24392 1.78058,0.73175 0.40248,0.48377 0.60372,1.19723 0.60372,2.14037"
+ id="path4223"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 742.36746,196.68794 7.81755,0 0,1.02445 -7.81755,0 0,-1.02445 m 0,2.48795 7.81755,0 0,1.03665 -7.81755,0 0,-1.03665"
+ id="path4225"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 756.66096,192.87065 1.12203,0 0,9.48836 -1.12203,0 0,-9.48836"
+ id="path4227"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 762.77111,196.31597 c -0.6017,1e-5 -1.07732,0.23579 -1.42696,0.70736 -0.34958,0.46751 -0.52438,1.10983 -0.52438,1.92694 0,0.81713 0.17278,1.46147 0.51832,1.93304 0.34959,0.46751 0.82728,0.70126 1.43302,0.70126 0.59756,0 1.07116,-0.23578 1.4208,-0.70736 0.34958,-0.47157 0.52442,-1.11388 0.52442,-1.92694 0,-0.80898 -0.17484,-1.44926 -0.52442,-1.92084 -0.34964,-0.47563 -0.82324,-0.71345 -1.4208,-0.71346 m 0,-0.95127 c 0.97566,1e-5 1.74196,0.3171 2.2989,0.95127 0.55693,0.63419 0.8354,1.51229 0.8354,2.6343 0,1.11796 -0.27847,1.99606 -0.8354,2.6343 -0.55694,0.63419 -1.32324,0.95128 -2.2989,0.95128 -0.97976,0 -1.74808,-0.31709 -2.30506,-0.95128 -0.55284,-0.63824 -0.82929,-1.51634 -0.82929,-2.6343 0,-1.12201 0.27645,-2.00011 0.82929,-2.6343 0.55698,-0.63417 1.3253,-0.95126 2.30506,-0.95127"
+ id="path4229"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 767.10669,195.52934 1.12204,0 1.40253,5.32958 1.39642,-5.32958 1.32323,0 1.40253,5.32958 1.39642,-5.32958 1.12204,0 -1.78669,6.82967 -1.32328,0 -1.4696,-5.59789 -1.47567,5.59789 -1.32323,0 -1.78674,-6.82967"
+ id="path4231"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 783.04055,201.33456 0,3.62216 -1.1281,0 0,-9.42738 1.1281,0 0,1.03665 c 0.23581,-0.40652 0.53255,-0.70735 0.89031,-0.9025 0.3618,-0.19919 0.79274,-0.29878 1.29274,-0.29879 0.82934,1e-5 1.50212,0.32929 2.01842,0.98786 0.52034,0.65858 0.78053,1.52448 0.78053,2.59771 0,1.07324 -0.26019,1.93914 -0.78053,2.59771 -0.5163,0.65858 -1.18908,0.98787 -2.01842,0.98787 -0.5,0 -0.93094,-0.0976 -1.29274,-0.2927 -0.35776,-0.1992 -0.6545,-0.50207 -0.89031,-0.90859 m 3.81731,-2.38429 c 0,-0.82525 -0.17076,-1.47162 -0.51222,-1.93913 -0.33742,-0.47157 -0.80289,-0.70736 -1.39642,-0.70736 -0.59352,0 -1.06106,0.23579 -1.40252,0.70736 -0.33742,0.46751 -0.50615,1.11388 -0.50615,1.93913 0,0.82526 0.16873,1.47367 0.50615,1.94524 0.34146,0.46751 0.809,0.70126 1.40252,0.70126 0.59353,0 1.059,-0.23375 1.39642,-0.70126 0.34146,-0.47157 0.51222,-1.11998 0.51222,-1.94524"
+ id="path4233"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 793.83996,196.57818 c -0.12604,-0.0732 -0.26424,-0.12601 -0.41465,-0.15854 -0.14637,-0.0366 -0.30895,-0.0549 -0.48783,-0.0549 -0.63421,0 -1.12204,0.20733 -1.4635,0.62199 -0.33742,0.41059 -0.50611,1.00209 -0.50611,1.77449 l 0,3.59777 -1.12815,0 0,-6.82967 1.12815,0 0,1.06104 c 0.23577,-0.41465 0.5427,-0.72158 0.92075,-0.92078 0.3781,-0.20326 0.83747,-0.30489 1.37815,-0.3049 0.0772,1e-5 0.16258,0.006 0.25611,0.0183 0.0935,0.008 0.19715,0.0224 0.31097,0.0427 l 0.006,1.1525"
+ id="path4235"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 795.02908,195.52934 1.12199,0 0,6.82967 -1.12199,0 0,-6.82967 m 0,-2.65869 1.12199,0 0,1.42081 -1.12199,0 0,-1.42081"
+ id="path4237"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 803.4076,195.79155 0,1.04885 c -0.31708,-0.17481 -0.63623,-0.30489 -0.95735,-0.39027 -0.31713,-0.0894 -0.63825,-0.13415 -0.9635,-0.13416 -0.72769,1e-5 -1.29275,0.23173 -1.69523,0.69517 -0.40243,0.45938 -0.60367,1.10575 -0.60367,1.93913 0,0.83339 0.20124,1.4818 0.60367,1.94524 0.40248,0.45938 0.96754,0.68906 1.69523,0.68906 0.32525,0 0.64637,-0.0427 0.9635,-0.12805 0.32112,-0.0894 0.64027,-0.22156 0.95735,-0.39637 l 0,1.03665 c -0.31304,0.14635 -0.63825,0.25611 -0.97567,0.32928 -0.33333,0.0732 -0.68907,0.10977 -1.06713,0.10977 -1.02851,0 -1.84564,-0.32319 -2.45138,-0.96957 -0.60569,-0.64638 -0.90858,-1.51838 -0.90858,-2.61601 0,-1.11388 0.30491,-1.98994 0.91469,-2.6282 0.61387,-0.63824 1.45335,-0.95736 2.51846,-0.95737 0.34555,1e-5 0.68297,0.0366 1.01226,0.10976 0.32925,0.0691 0.64839,0.17481 0.95735,0.31709"
+ id="path4239"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 811.21293,198.66367 0,0.54881 -5.15882,0 c 0.0488,0.77241 0.28049,1.36187 0.69513,1.7684 0.41874,0.40246 1.0001,0.60369 1.74404,0.60369 0.4309,0 0.84761,-0.0528 1.25004,-0.15854 0.40652,-0.1057 0.809,-0.26424 1.2074,-0.47564 l 0,1.06104 c -0.40248,0.17074 -0.81511,0.30083 -1.23788,0.39027 -0.42278,0.0894 -0.85166,0.13415 -1.28664,0.13415 -1.08949,0 -1.9534,-0.31709 -2.59165,-0.95128 -0.63416,-0.63418 -0.95124,-1.49195 -0.95124,-2.57332 0,-1.11795 0.30083,-2.00417 0.90248,-2.65869 0.60574,-0.65857 1.4208,-0.98785 2.44527,-0.98786 0.91874,1e-5 1.6444,0.29677 2.17695,0.8903 0.5366,0.58946 0.80492,1.39236 0.80492,2.40867 m -1.122,-0.32929 c -0.008,-0.61385 -0.18094,-1.10371 -0.51832,-1.46959 -0.33337,-0.36587 -0.77649,-0.54881 -1.32938,-0.54882 -0.62603,1e-5 -1.1281,0.17685 -1.50615,0.53052 -0.37402,0.35369 -0.58949,0.85168 -0.64638,1.49399 l 4.00023,-0.006"
+ id="path4241"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /><path
+ d="m 813.21307,200.81014 1.28664,0 0,1.54887 -1.28664,0 0,-1.54887"
+ id="path4243"
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:150%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f6921e;fill-opacity:1" /></g></g><g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="DELETE bird before uploading"
+ style="display:inline" /><g
+ inkscape:groupmode="layer"
+ id="layer9"
+ inkscape:label="Your Design"><g
+ id="g21"
+ inkscape:label="0"
+ transform="matrix(0.8,0,0,0.8,720.85468,-63.842318)"
+ style="stroke:#0000ff;stroke-width:0.03543307;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><path
+ inkscape:connector-curvature="0"
+ id="path23"
+ d="m -802.61505,197.11679 a 5.2558782,5.2558782 0 1 0 -10.51175,0 5.2558782,5.2558782 0 1 0 10.51175,0 z"
+ style="fill:none;stroke:#0000ff;stroke-width:0.03543307;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
+ inkscape:connector-curvature="0"
+ id="path25"
+ d="m -801.90794,332.02108 a 5.2558782,5.2558782 0 1 0 -10.51175,0 5.2558782,5.2558782 0 1 0 10.51175,0 z"
+ style="fill:none;stroke:#0000ff;stroke-width:0.03543307;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
+ inkscape:connector-curvature="0"
+ id="path27"
+ d="m -532.099,332.02108 a 5.25588,5.25588 0 1 0 -10.51176,0 5.25588,5.25588 0 1 0 10.51176,0 z"
+ style="fill:none;stroke:#0000ff;stroke-width:0.03543307;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
+ inkscape:connector-curvature="0"
+ id="path29"
+ d="m -516.58197,123.87891 a 5.2558782,5.2558782 0 1 0 -10.51175,0 5.2558782,5.2558782 0 1 0 10.51175,0 z"
+ style="fill:none;stroke:#0000ff;stroke-width:0.03543307;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
+ inkscape:connector-curvature="0"
+ id="path27-0"
+ d="m -735.12026,332.04089 a 5.25588,5.25588 0 1 0 -10.51176,0 5.25588,5.25588 0 0 0 10.51176,0 z"
+ style="display:inline;fill:none;stroke:#0000ff;stroke-width:0.03543307;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></g><g
+ id="g5746"
+ transform="matrix(2.8346457,0,0,2.8346457,6.5399055,2.554022)"
+ style="stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke:#0000ff;stroke-opacity:1"><polygon
+ id="polygon5690"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="120.345,5.294 120.476,5.381 120.599,5.479 120.715,5.585 120.821,5.701 120.919,5.824 121.006,5.955 121.083,6.092 121.148,6.234 121.203,6.381 121.245,6.533 121.276,6.687 121.294,6.843 121.3,7 121.3,89.201 121.294,89.357 121.276,89.513 121.245,89.667 121.203,89.819 121.148,89.966 121.083,90.108 121.006,90.245 120.919,90.376 120.821,90.499 120.715,90.615 120.599,90.721 120.476,90.819 120.345,90.906 120.208,90.983 120.066,91.048 119.919,91.103 119.767,91.145 119.613,91.176 119.457,91.194 119.301,91.2 7,91.201 6.843,91.194 6.687,91.176 6.533,91.145 6.381,91.103 6.234,91.048 6.092,90.983 5.955,90.906 5.824,90.819 5.701,90.721 5.585,90.615 5.479,90.499 5.381,90.376 5.294,90.245 5.217,90.108 5.152,89.966 5.097,89.819 5.055,89.667 5.024,89.513 5.006,89.357 4.999,89.201 5,7 5.006,6.843 5.024,6.687 5.055,6.533 5.097,6.381 5.152,6.234 5.217,6.092 5.294,5.955 5.381,5.824 5.479,5.701 5.585,5.585 5.701,5.479 5.824,5.381 5.955,5.294 6.092,5.217 6.234,5.152 6.381,5.097 6.533,5.055 6.687,5.024 6.843,5.006 7,4.999 119.3,5 119.457,5.006 119.613,5.024 119.767,5.055 119.919,5.097 120.066,5.152 120.208,5.217 " /><polygon
+ id="polygon5692"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="21.525,86.075 22.325,86.075 22.325,73.274 21.525,73.274 21.525,72.675 7.525,72.675 7.525,73.274 6.725,73.274 6.725,86.075 7.525,86.075 7.525,86.675 21.525,86.675 " /><polygon
+ id="polygon5694"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="40.575,86.075 41.375,86.075 41.375,73.274 40.575,73.274 40.575,72.675 26.575,72.675 26.575,73.274 25.775,73.274 25.775,86.075 26.575,86.075 26.575,86.675 40.575,86.675 " /><polygon
+ id="polygon5696"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="59.625,86.075 60.425,86.075 60.425,73.274 59.625,73.274 59.625,72.675 45.625,72.675 45.625,73.274 44.825,73.274 44.825,86.075 45.625,86.075 45.625,86.675 59.625,86.675 " /><polygon
+ id="polygon5698"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="78.675,86.075 79.475,86.075 79.475,73.274 78.675,73.274 78.675,72.675 64.675,72.675 64.675,73.274 63.875,73.274 63.875,86.075 64.675,86.075 64.675,86.675 78.675,86.675 " /><polygon
+ id="polygon5700"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="97.725,86.075 98.524,86.075 98.524,73.274 97.725,73.274 97.725,72.675 83.725,72.675 83.725,73.274 82.925,73.274 82.925,86.075 83.725,86.075 83.725,86.675 97.725,86.675 " /><polygon
+ id="polygon5702"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="116.774,86.075 117.574,86.075 117.574,73.274 116.774,73.274 116.774,72.675 102.774,72.675 102.774,73.274 101.975,73.274 101.975,86.075 102.774,86.075 102.774,86.675 116.774,86.675 " /><polygon
+ id="polygon5704"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="21.525,67.025 22.325,67.025 22.325,54.225 21.525,54.225 21.525,53.625 7.525,53.625 7.525,54.225 6.725,54.225 6.725,67.025 7.525,67.025 7.525,67.625 21.525,67.625 " /><polygon
+ id="polygon5706"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="40.575,67.025 41.375,67.025 41.375,54.225 40.575,54.225 40.575,53.625 26.575,53.625 26.575,54.225 25.775,54.225 25.775,67.025 26.575,67.025 26.575,67.625 40.575,67.625 " /><polygon
+ id="polygon5708"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="59.625,67.025 60.425,67.025 60.425,54.225 59.625,54.225 59.625,53.625 45.625,53.625 45.625,54.225 44.825,54.225 44.825,67.025 45.625,67.025 45.625,67.625 59.625,67.625 " /><polygon
+ id="polygon5710"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="78.675,67.025 79.475,67.025 79.475,54.225 78.675,54.225 78.675,53.625 64.675,53.625 64.675,54.225 63.875,54.225 63.875,67.025 64.675,67.025 64.675,67.625 78.675,67.625 " /><polygon
+ id="polygon5712"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="97.725,67.025 98.524,67.025 98.524,54.225 97.725,54.225 97.725,53.625 83.725,53.625 83.725,54.225 82.925,54.225 82.925,67.025 83.725,67.025 83.725,67.625 97.725,67.625 " /><polygon
+ id="polygon5714"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="116.774,67.025 117.574,67.025 117.574,54.225 116.774,54.225 116.774,53.625 102.774,53.625 102.774,54.225 101.975,54.225 101.975,67.025 102.774,67.025 102.774,67.625 116.774,67.625 " /><polygon
+ id="polygon5716"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="21.525,47.975 22.325,47.975 22.325,35.175 21.525,35.175 21.525,34.575 7.525,34.575 7.525,35.175 6.725,35.175 6.725,47.975 7.525,47.975 7.525,48.575 21.525,48.575 " /><polygon
+ id="polygon5718"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="40.575,47.975 41.375,47.975 41.375,35.175 40.575,35.175 40.575,34.575 26.575,34.575 26.575,35.175 25.775,35.175 25.775,47.975 26.575,47.975 26.575,48.575 40.575,48.575 " /><polygon
+ id="polygon5720"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="59.625,47.975 60.425,47.975 60.425,35.175 59.625,35.175 59.625,34.575 45.625,34.575 45.625,35.175 44.825,35.175 44.825,47.975 45.625,47.975 45.625,48.575 59.625,48.575 " /><polygon
+ id="polygon5722"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="78.675,47.975 79.475,47.975 79.475,35.175 78.675,35.175 78.675,34.575 64.675,34.575 64.675,35.175 63.875,35.175 63.875,47.975 64.675,47.975 64.675,48.575 78.675,48.575 " /><polygon
+ id="polygon5724"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="97.725,47.975 98.524,47.975 98.524,35.175 97.725,35.175 97.725,34.575 83.725,34.575 83.725,35.175 82.925,35.175 82.925,47.975 83.725,47.975 83.725,48.575 97.725,48.575 " /><polygon
+ id="polygon5726"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="116.774,47.975 117.574,47.975 117.574,35.175 116.774,35.175 116.774,34.575 102.774,34.575 102.774,35.175 101.975,35.175 101.975,47.975 102.774,47.975 102.774,48.575 116.774,48.575 " /><polygon
+ id="polygon5728"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="21.525,28.924 22.325,28.924 22.325,16.125 21.525,16.125 21.525,15.524 7.525,15.524 7.525,16.125 6.725,16.125 6.725,28.924 7.525,28.924 7.525,29.525 21.525,29.525 " /><polygon
+ id="polygon5730"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="40.575,28.924 41.375,28.924 41.375,16.125 40.575,16.125 40.575,15.524 26.575,15.524 26.575,16.125 25.775,16.125 25.775,28.924 26.575,28.924 26.575,29.525 40.575,29.525 " /><polygon
+ id="polygon5732"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="59.625,28.924 60.425,28.924 60.425,16.125 59.625,16.125 59.625,15.524 45.625,15.524 45.625,16.125 44.825,16.125 44.825,28.924 45.625,28.924 45.625,29.525 59.625,29.525 " /><polygon
+ id="polygon5734"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="78.675,28.924 79.475,28.924 79.475,16.125 78.675,16.125 78.675,15.524 64.675,15.524 64.675,16.125 63.875,16.125 63.875,28.924 64.675,28.924 64.675,29.525 78.675,29.525 " /><polygon
+ id="polygon5736"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="97.725,28.924 98.524,28.924 98.524,16.125 97.725,16.125 97.725,15.524 83.725,15.524 83.725,16.125 82.925,16.125 82.925,28.924 83.725,28.924 83.725,29.525 97.725,29.525 " /><polygon
+ id="polygon5738"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="116.774,28.924 117.574,28.924 117.574,16.125 116.774,16.125 116.774,15.524 102.774,15.524 102.774,16.125 101.975,16.125 101.975,28.924 102.774,28.924 102.774,29.525 116.774,29.525 " /></g><g
+ id="g21-9"
+ inkscape:label="0"
+ transform="matrix(0.8,0,0,0.8,723.60832,186.77321)"
+ style="display:inline;stroke:#0000ff;stroke-width:0.03543307;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><path
+ inkscape:connector-curvature="0"
+ id="path23-1"
+ d="m -802.61505,197.11679 a 5.2558782,5.2558782 0 1 0 -10.51175,0 5.2558782,5.2558782 0 1 0 10.51175,0 z"
+ style="fill:none;stroke:#0000ff;stroke-width:0.03543307;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
+ inkscape:connector-curvature="0"
+ id="path25-2"
+ d="m -801.90794,332.02108 a 5.2558782,5.2558782 0 1 0 -10.51175,0 5.2558782,5.2558782 0 1 0 10.51175,0 z"
+ style="fill:none;stroke:#0000ff;stroke-width:0.03543307;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
+ inkscape:connector-curvature="0"
+ id="path27-08"
+ d="m -532.099,332.02108 a 5.25588,5.25588 0 1 0 -10.51176,0 5.25588,5.25588 0 1 0 10.51176,0 z"
+ style="fill:none;stroke:#0000ff;stroke-width:0.03543307;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
+ inkscape:connector-curvature="0"
+ id="path29-4"
+ d="m -516.58197,123.87891 a 5.2558782,5.2558782 0 1 0 -10.51175,0 5.2558782,5.2558782 0 1 0 10.51175,0 z"
+ style="fill:none;stroke:#0000ff;stroke-width:0.03543307;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
+ inkscape:connector-curvature="0"
+ id="path27-0-9"
+ d="m -735.12026,332.04089 a 5.25588,5.25588 0 1 0 -10.51176,0 5.25588,5.25588 0 0 0 10.51176,0 z"
+ style="display:inline;fill:none;stroke:#0000ff;stroke-width:0.03543307;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></g><g
+ style="display:inline"
+ id="g5746-9"
+ transform="matrix(2.8346457,0,0,2.8346457,7.89354,253.86956)"><polygon
+ id="polygon5690-7"
+ style="fill:none;stroke:#0000ff;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ points="121.083,6.092 121.148,6.234 121.203,6.381 121.245,6.533 121.276,6.687 121.294,6.843 121.3,7 121.3,89.201 121.294,89.357 121.276,89.513 121.245,89.667 121.203,89.819 121.148,89.966 121.083,90.108 121.006,90.245 120.919,90.376 120.821,90.499 120.715,90.615 120.599,90.721 120.476,90.819 120.345,90.906 120.208,90.983 120.066,91.048 119.919,91.103 119.767,91.145 119.613,91.176 119.457,91.194 119.301,91.2 7,91.201 6.843,91.194 6.687,91.176 6.533,91.145 6.381,91.103 6.234,91.048 6.092,90.983 5.955,90.906 5.824,90.819 5.701,90.721 5.585,90.615 5.479,90.499 5.381,90.376 5.294,90.245 5.217,90.108 5.152,89.966 5.097,89.819 5.055,89.667 5.024,89.513 5.006,89.357 4.999,89.201 5,7 5.006,6.843 5.024,6.687 5.055,6.533 5.097,6.381 5.152,6.234 5.217,6.092 5.294,5.955 5.381,5.824 5.479,5.701 5.585,5.585 5.701,5.479 5.824,5.381 5.955,5.294 6.092,5.217 6.234,5.152 6.381,5.097 6.533,5.055 6.687,5.024 6.843,5.006 7,4.999 119.3,5 119.457,5.006 119.613,5.024 119.767,5.055 119.919,5.097 120.066,5.152 120.208,5.217 120.345,5.294 120.476,5.381 120.599,5.479 120.715,5.585 120.821,5.701 120.919,5.824 121.006,5.955 " /></g></g></svg> \ No newline at end of file
diff --git a/keyboards/lets_split/imgs/plate.stl b/keyboards/lets_split/imgs/plate.stl
new file mode 100644
index 000000000..c8e36adc7
--- /dev/null
+++ b/keyboards/lets_split/imgs/plate.stl
Binary files differ
diff --git a/keyboards/lets_split/imgs/right.stl b/keyboards/lets_split/imgs/right.stl
new file mode 100644
index 000000000..31c7aeb6b
--- /dev/null
+++ b/keyboards/lets_split/imgs/right.stl
Binary files differ
diff --git a/keyboards/lets_split/keymaps/i2c/config.h b/keyboards/lets_split/keymaps/i2c/config.h
new file mode 100644
index 000000000..013542731
--- /dev/null
+++ b/keyboards/lets_split/keymaps/i2c/config.h
@@ -0,0 +1,31 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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/>.
+*/
+#define USE_I2C
+
+#define MASTER_LEFT
+// #define _MASTER_RIGHT
+// #define EE_HANDS
+
+#ifdef SUBPROJECT_rev1
+ #include "../../rev1/config.h"
+#endif
+#ifdef SUBPROJECT_rev2
+ #include "../../rev2/config.h"
+#endif
+#ifdef SUBPROJECT_rev2fliphalf
+ #include "../../rev2fliphalf/config.h"
+#endif
diff --git a/keyboards/lets_split/keymaps/default/keymap.c b/keyboards/lets_split/keymaps/i2c/keymap.c
index 0d2d94b67..0d2d94b67 100644
--- a/keyboards/lets_split/keymaps/default/keymap.c
+++ b/keyboards/lets_split/keymaps/i2c/keymap.c
diff --git a/keyboards/lets_split/keymaps/serial/config.h b/keyboards/lets_split/keymaps/serial/config.h
new file mode 100644
index 000000000..ba271d1ac
--- /dev/null
+++ b/keyboards/lets_split/keymaps/serial/config.h
@@ -0,0 +1,34 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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/>.
+*/
+
+
+#define USE_SERIAL
+
+#define MASTER_LEFT
+// #define _MASTER_RIGHT
+// #define EE_HANDS
+
+
+#ifdef SUBPROJECT_rev1
+ #include "../../rev1/config.h"
+#endif
+#ifdef SUBPROJECT_rev2
+ #include "../../rev2/config.h"
+#endif
+#ifdef SUBPROJECT_rev2fliphalf
+ #include "../../rev2fliphalf/config.h"
+#endif
diff --git a/keyboards/lets_split/keymaps/serial/keymap.c b/keyboards/lets_split/keymaps/serial/keymap.c
new file mode 100644
index 000000000..0d2d94b67
--- /dev/null
+++ b/keyboards/lets_split/keymaps/serial/keymap.c
@@ -0,0 +1,214 @@
+#include "lets_split.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _COLEMAK 1
+#define _DVORAK 2
+#define _LOWER 3
+#define _RAISE 4
+#define _ADJUST 16
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK,
+ LOWER,
+ RAISE,
+ ADJUST,
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = KEYMAP( \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \
+ ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+),
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | R | S | T | D | H | N | E | I | O | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = KEYMAP( \
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \
+ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \
+ ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+),
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | O | E | U | I | D | H | T | N | S | / |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = KEYMAP( \
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \
+ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \
+ ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = KEYMAP( \
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = KEYMAP( \
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset| | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = KEYMAP( \
+ _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
+ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+)
+
+
+};
+
+#ifdef AUDIO_ENABLE
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+#endif
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_COLEMAK);
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_DVORAK);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+} \ No newline at end of file
diff --git a/keyboards/lets_split/lets_split.c b/keyboards/lets_split/lets_split.c
index 574c116a7..117b727a8 100644
--- a/keyboards/lets_split/lets_split.c
+++ b/keyboards/lets_split/lets_split.c
@@ -1,30 +1 @@
-#include "lets_split.h"
-
-#ifdef AUDIO_ENABLE
- float tone_startup[][2] = SONG(STARTUP_SOUND);
- float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-#endif
-
-void matrix_init_kb(void) {
-
- #ifdef AUDIO_ENABLE
- _delay_ms(20); // gets rid of tick
- PLAY_NOTE_ARRAY(tone_startup, false, 0);
- #endif
-
- // // green led on
- // DDRD |= (1<<5);
- // PORTD &= ~(1<<5);
-
- // // orange led on
- // DDRB |= (1<<0);
- // PORTB &= ~(1<<0);
-
- matrix_init_user();
-};
-
-void shutdown_user(void) {
- PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
- _delay_ms(150);
- stop_all_notes();
-}
+#include "lets_split.h" \ No newline at end of file
diff --git a/keyboards/lets_split/lets_split.h b/keyboards/lets_split/lets_split.h
index fe7ae0767..0de308c7a 100644
--- a/keyboards/lets_split/lets_split.h
+++ b/keyboards/lets_split/lets_split.h
@@ -1,25 +1,16 @@
#ifndef LETS_SPLIT_H
#define LETS_SPLIT_H
-#include "quantum.h"
-
-void promicro_bootloader_jmp(bool program);
+#ifdef SUBPROJECT_rev1
+ #include "rev1.h"
+#endif
+#ifdef SUBPROJECT_rev2
+ #include "rev2.h"
+#endif
+#ifdef SUBPROJECT_rev2fliphalf
+ #include "rev2fliphalf.h"
+#endif
-#define KEYMAP( \
- k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \
- k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \
- k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \
- k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \
- ) \
- { \
- { k00, k01, k02, k03, k04, k05 }, \
- { k10, k11, k12, k13, k14, k15 }, \
- { k20, k21, k22, k23, k24, k25 }, \
- { k30, k31, k32, k33, k34, k35 }, \
- { k40, k41, k42, k43, k44, k45 }, \
- { k50, k51, k52, k53, k54, k55 }, \
- { k60, k61, k62, k63, k64, k65 }, \
- { k70, k71, k72, k73, k74, k75 } \
- }
+#include "quantum.h"
#endif \ No newline at end of file
diff --git a/keyboards/lets_split/matrix.c b/keyboards/lets_split/matrix.c
index 1d768c59b..138969004 100644
--- a/keyboards/lets_split/matrix.c
+++ b/keyboards/lets_split/matrix.c
@@ -28,14 +28,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "debug.h"
#include "util.h"
#include "matrix.h"
-#include "i2c.h"
-#include "serial.h"
#include "split_util.h"
#include "pro_micro.h"
#include "config.h"
+#ifdef USE_I2C
+# include "i2c.h"
+#else // USE_SERIAL
+# include "serial.h"
+#endif
+
#ifndef DEBOUNCE
-# define DEBOUNCE 5
+# define DEBOUNCE 5
#endif
#define ERROR_DISCONNECT_COUNT 5
@@ -145,6 +149,8 @@ uint8_t _matrix_scan(void)
return 1;
}
+#ifdef USE_I2C
+
// Get rows from other half over i2c
int i2c_transaction(void) {
int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
@@ -176,7 +182,8 @@ i2c_error: // the cable is disconnceted, or something else went wrong
return 0;
}
-#ifndef USE_I2C
+#else // USE_SERIAL
+
int serial_transaction(void) {
int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
@@ -199,7 +206,7 @@ uint8_t matrix_scan(void)
#ifdef USE_I2C
if( i2c_transaction() ) {
-#else
+#else // USE_SERIAL
if( serial_transaction() ) {
#endif
// turn on the indicator led when halves are disconnected
@@ -235,7 +242,7 @@ void matrix_slave_scan(void) {
/* i2c_slave_buffer[i] = matrix[offset+i]; */
i2c_slave_buffer[i] = matrix[offset+i];
}
-#else
+#else // USE_SERIAL
for (int i = 0; i < ROWS_PER_HAND; ++i) {
serial_slave_buffer[i] = matrix[offset+i];
}
@@ -290,7 +297,7 @@ static void init_cols(void)
static matrix_row_t read_cols(void)
{
matrix_row_t result = 0;
- for(int x = 0; x < MATRIX_COLS; x++) {
+ for(int x = 0; x < MATRIX_COLS; x++) {
result |= (_SFR_IO8(col_pins[x] >> 4) & _BV(col_pins[x] & 0xF)) ? 0 : (1 << x);
}
return result;
@@ -298,7 +305,7 @@ static matrix_row_t read_cols(void)
static void unselect_rows(void)
{
- for(int x = 0; x < ROWS_PER_HAND; x++) {
+ for(int x = 0; x < ROWS_PER_HAND; x++) {
_SFR_IO8((row_pins[x] >> 4) + 1) &= ~_BV(row_pins[x] & 0xF);
_SFR_IO8((row_pins[x] >> 4) + 2) |= _BV(row_pins[x] & 0xF);
}
diff --git a/keyboards/lets_split/pro_micro.h b/keyboards/lets_split/pro_micro.h
index 09e219b7b..f9e7ed75d 100644
--- a/keyboards/lets_split/pro_micro.h
+++ b/keyboards/lets_split/pro_micro.h
@@ -111,18 +111,18 @@ static const uint8_t SCK = 15;
// Mapping of analog pins as digital I/O
// A6-A11 share with digital pins
-static const uint8_t A0 = 18;
-static const uint8_t A1 = 19;
-static const uint8_t A2 = 20;
-static const uint8_t A3 = 21;
-static const uint8_t A4 = 22;
-static const uint8_t A5 = 23;
-static const uint8_t A6 = 24; // D4
-static const uint8_t A7 = 25; // D6
-static const uint8_t A8 = 26; // D8
-static const uint8_t A9 = 27; // D9
-static const uint8_t A10 = 28; // D10
-static const uint8_t A11 = 29; // D12
+static const uint8_t ADC0 = 18;
+static const uint8_t ADC1 = 19;
+static const uint8_t ADC2 = 20;
+static const uint8_t ADC3 = 21;
+static const uint8_t ADC4 = 22;
+static const uint8_t ADC5 = 23;
+static const uint8_t ADC6 = 24; // D4
+static const uint8_t ADC7 = 25; // D6
+static const uint8_t ADC8 = 26; // D8
+static const uint8_t ADC9 = 27; // D9
+static const uint8_t ADC10 = 28; // D10
+static const uint8_t ADC11 = 29; // D12
#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0))
#define digitalPinToPCICRbit(p) 0
@@ -220,26 +220,26 @@ const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
PC, // D5 - PC6
PD, // D6 - PD7
PE, // D7 - PE6
-
+
PB, // D8 - PB4
PB, // D9 - PB5
PB, // D10 - PB6
PB, // D11 - PB7
PD, // D12 - PD6
PC, // D13 - PC7
-
+
PB, // D14 - MISO - PB3
PB, // D15 - SCK - PB1
PB, // D16 - MOSI - PB2
PB, // D17 - SS - PB0
-
+
PF, // D18 - A0 - PF7
PF, // D19 - A1 - PF6
PF, // D20 - A2 - PF5
PF, // D21 - A3 - PF4
PF, // D22 - A4 - PF1
PF, // D23 - A5 - PF0
-
+
PD, // D24 - PD5
PD, // D25 / D6 - A7 - PD7
PB, // D26 / D8 - A8 - PB4
@@ -257,26 +257,26 @@ const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
_BV(6), // D5 - PC6
_BV(7), // D6 - PD7
_BV(6), // D7 - PE6
-
+
_BV(4), // D8 - PB4
_BV(5), // D9 - PB5
_BV(6), // D10 - PB6
_BV(7), // D11 - PB7
_BV(6), // D12 - PD6
_BV(7), // D13 - PC7
-
+
_BV(3), // D14 - MISO - PB3
_BV(1), // D15 - SCK - PB1
_BV(2), // D16 - MOSI - PB2
_BV(0), // D17 - SS - PB0
-
+
_BV(7), // D18 - A0 - PF7
_BV(6), // D19 - A1 - PF6
_BV(5), // D20 - A2 - PF5
_BV(4), // D21 - A3 - PF4
_BV(1), // D22 - A4 - PF1
_BV(0), // D23 - A5 - PF0
-
+
_BV(5), // D24 - PD5
_BV(7), // D25 / D6 - A7 - PD7
_BV(4), // D26 / D8 - A8 - PB4
@@ -286,24 +286,24 @@ const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
};
const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
- NOT_ON_TIMER,
+ NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
TIMER0B, /* 3 */
NOT_ON_TIMER,
TIMER3A, /* 5 */
TIMER4D, /* 6 */
- NOT_ON_TIMER,
-
- NOT_ON_TIMER,
+ NOT_ON_TIMER,
+
+ NOT_ON_TIMER,
TIMER1A, /* 9 */
TIMER1B, /* 10 */
TIMER0A, /* 11 */
-
- NOT_ON_TIMER,
+
+ NOT_ON_TIMER,
TIMER4A, /* 13 */
-
- NOT_ON_TIMER,
+
+ NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
@@ -324,11 +324,11 @@ const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
const uint8_t PROGMEM analog_pin_to_channel_PGM[] = {
7, // A0 PF7 ADC7
- 6, // A1 PF6 ADC6
- 5, // A2 PF5 ADC5
+ 6, // A1 PF6 ADC6
+ 5, // A2 PF5 ADC5
4, // A3 PF4 ADC4
- 1, // A4 PF1 ADC1
- 0, // A5 PF0 ADC0
+ 1, // A4 PF1 ADC1
+ 0, // A5 PF0 ADC0
8, // A6 D4 PD4 ADC8
10, // A7 D6 PD7 ADC10
11, // A8 D8 PB4 ADC11
diff --git a/keyboards/lets_split/readme.md b/keyboards/lets_split/readme.md
index 73fdb0f78..ecce3f415 100644
--- a/keyboards/lets_split/readme.md
+++ b/keyboards/lets_split/readme.md
@@ -6,9 +6,45 @@ This readme and most of the code are from https://github.com/ahtn/tmk_keyboard/
Split keyboard firmware for Arduino Pro Micro or other ATmega32u4
based boards.
+
+## First Time Setup
+
+Download or clone the whole firmware and navigate to the keyboards/lets_split directory. Once your dev env is setup, you'll be able to generate the default .hex using:
+
+```
+$ make rev2
+```
+
+You will see a lot of output and if everything worked correctly you will see the built hex files:
+
+```
+lets_split_rev2_serial.hex
+lets_split_rev2_i2c.hex
+```
+
+If you would like to use one of the alternative keymaps, or create your own, copy one of the existing [keymaps](keymaps/) and run make like so:
+
+
+```
+$ make rev2-YOUR_KEYMAP_NAME
+```
+
+If everything worked correctly you will see a file:
+
+```
+lets_split_rev2_YOUR_KEYMAP_NAME.hex
+```
+
+For more information on customizing keymaps, take a look at the primary documentation for [Customizing Your Keymap](/readme.md##customizing-your-keymap) in the main readme.md.
+
+### Let's split 1.0
+If you have a first generation Let's Split you will need to use the revision 1 code. To do so, use `rev1` in all your commands instead.
+
Features
--------
+For the full Quantum Mechanical Keyboard feature list, see [the parent readme.md](/readme.md).
+
Some features supported by the firmware:
* Either half can connect to the computer via USB, or both halves can be used
@@ -62,7 +98,7 @@ unnecessary in simple use cases.
Notes on Software Configuration
-------------------------------
-Configuring the firmware is similar to any other TMK project. One thing
+Configuring the firmware is similar to any other QMK project. One thing
to note is that `MATIX_ROWS` in `config.h` is the total number of rows between
the two halves, i.e. if your split keyboard has 4 rows in each half, then
`MATRIX_ROWS=8`.
@@ -70,33 +106,72 @@ the two halves, i.e. if your split keyboard has 4 rows in each half, then
Also the current implementation assumes a maximum of 8 columns, but it would
not be very difficult to adapt it to support more if required.
-
Flashing
+-------
+From the keymap directory run `make SUBPROJECT-KEYMAP-avrdude` for automatic serial port resolution and flashing.
+Example: `make rev2-serial-avrdude`
+
+
+Choosing which board to plug the USB cable into (choosing Master)
--------
+Because the two boards are identical, the firmware has logic to differentiate the left and right board.
+
+It uses two strategies to figure things out: look at the EEPROM (memory on the chip) or looks if the current board has the usb cable.
+
+The EEPROM approach requires additional setup (flashing the eeeprom) but allows you to swap the usb cable to either side.
+
+The USB cable approach is easier to setup and if you just want the usb cable on the left board, you do not need to do anything extra.
+### Setting the left hand as master
+If you always plug the usb cable into the left board, nothing extra is needed as this is the default. Comment out `EE_HANDS` and comment out `I2C_MASTER_RIGHT` or `MASTER_RIGHT` if for some reason it was set.
+
+### Setting the right hand as master
+If you always plug the usb cable into the right board, add an extra flag to your `config.h`
+```
+ #define MASTER_RIGHT
+```
+
+### Setting EE_hands to use either hands as master
If you define `EE_HANDS` in your `config.h`, you will need to set the
-EEPROM for the left and right halves. The EEPROM is used to store whether the
+EEPROM for the left and right halves.
+
+The EEPROM is used to store whether the
half is left handed or right handed. This makes it so that the same firmware
file will run on both hands instead of having to flash left and right handed
versions of the firmware to each half. To flash the EEPROM file for the left
half run:
```
-make eeprom-left
+avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-lefthand.eep
+// or the equivalent in dfu-programmer
+
```
and similarly for right half
```
-make eeprom-right
+avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-righhand.eep
+// or the equivalent in dfu-programmer
```
-After you have flashed the EEPROM for the first time, you then need to program
-the flash memory:
-```
-make program
-```
+NOTE: replace `$(COM_PORT)` with the port of your device (e.g. `/dev/ttyACM0`)
+
+After you have flashed the EEPROM, you then need to set `EE_HANDS` in your config.h, rebuild the hex files and reflash.
+
Note that you need to program both halves, but you have the option of using
different keymaps for each half. You could program the left half with a QWERTY
-layout and the right half with a Colemak layout. Then if you connect the left
-half to a computer by USB the keyboard will use QWERTY and Colemak when the
+layout and the right half with a Colemak layout using bootmagic's default layout option.
+Then if you connect the left half to a computer by USB the keyboard will use QWERTY and Colemak when the
right half is connected.
+Notes on Using Pro Micro 3.3V
+-----------------------------
+
+Do update the `F_CPU` parameter in `rules.mk` to `8000000` which reflects
+the frequency on the 3.3V board.
+
+Also, if the slave board is producing weird characters in certain columns,
+update the following line in `matrix.c` to the following:
+
+```
+// _delay_us(30); // without this wait read unstable value.
+_delay_us(300); // without this wait read unstable value.
+```
diff --git a/keyboards/lets_split/rev1/Makefile b/keyboards/lets_split/rev1/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/lets_split/rev1/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/config.h b/keyboards/lets_split/rev1/config.h
index 58ba690af..2f5bde953 100644
--- a/keyboards/ergodox_ez/keymaps/townk_osx/config.h
+++ b/keyboards/lets_split/rev1/config.h
@@ -1,6 +1,5 @@
/*
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
@@ -23,25 +22,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x1307
+#define PRODUCT_ID 0x3060
#define DEVICE_VER 0x0001
-#define MANUFACTURER ErgoDox EZ
-#define PRODUCT ErgoDox EZ
-#define DESCRIPTION t.m.k. keyboard firmware for Ergodox
+#define MANUFACTURER Wootpatoot
+#define PRODUCT Lets Split v1
+#define DESCRIPTION A split keyboard for the cheap makers
/* key matrix size */
-#define MATRIX_ROWS 14
+// Rows are doubled-up
+#define MATRIX_ROWS 8
#define MATRIX_COLS 6
-#define MOUSEKEY_DELAY 100
-#define MOUSEKEY_INTERVAL 20
-#define MOUSEKEY_MAX_SPEED 3
-#define MOUSEKEY_TIME_TO_MAX 10
+// wiring of each half
+#define MATRIX_ROW_PINS { B5, B4, E6, D7 }
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
+// #define MATRIX_COL_PINS { B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
-#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 }
+#define CATERINA_BOOTLOADER
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
@@ -50,12 +48,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define MATRIX_HAS_GHOST
/* number of backlight levels */
-#define BACKLIGHT_LEVELS 3
+// #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.)
+#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
@@ -64,8 +60,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* 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)) \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/*
@@ -85,8 +80,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#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/keyboards/lets_split/rev1/rev1.c b/keyboards/lets_split/rev1/rev1.c
new file mode 100644
index 000000000..c505d3a6e
--- /dev/null
+++ b/keyboards/lets_split/rev1/rev1.c
@@ -0,0 +1,32 @@
+#include "lets_split.h"
+
+#ifdef AUDIO_ENABLE
+ float tone_startup[][2] = SONG(STARTUP_SOUND);
+ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+void matrix_init_kb(void) {
+
+ #ifdef AUDIO_ENABLE
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+ #endif
+
+ // // green led on
+ // DDRD |= (1<<5);
+ // PORTD &= ~(1<<5);
+
+ // // orange led on
+ // DDRB |= (1<<0);
+ // PORTB &= ~(1<<0);
+
+ matrix_init_user();
+};
+
+void shutdown_user(void) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+ #endif
+}
diff --git a/keyboards/lets_split/rev1/rev1.h b/keyboards/lets_split/rev1/rev1.h
new file mode 100644
index 000000000..4667c9fb0
--- /dev/null
+++ b/keyboards/lets_split/rev1/rev1.h
@@ -0,0 +1,28 @@
+#ifndef REV1_H
+#define REV1_H
+
+#include "../lets_split.h"
+
+//void promicro_bootloader_jmp(bool program);
+#include "quantum.h"
+
+//void promicro_bootloader_jmp(bool program);
+
+#define KEYMAP( \
+ k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \
+ k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \
+ k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \
+ k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \
+ ) \
+ { \
+ { k00, k01, k02, k03, k04, k05 }, \
+ { k10, k11, k12, k13, k14, k15 }, \
+ { k20, k21, k22, k23, k24, k25 }, \
+ { k30, k31, k32, k33, k34, k35 }, \
+ { k40, k41, k42, k43, k44, k45 }, \
+ { k50, k51, k52, k53, k54, k55 }, \
+ { k60, k61, k62, k63, k64, k65 }, \
+ { k70, k71, k72, k73, k74, k75 } \
+ }
+
+#endif \ No newline at end of file
diff --git a/keyboards/lets_split/rev1/rules.mk b/keyboards/lets_split/rev1/rules.mk
new file mode 100644
index 000000000..a0825b4ef
--- /dev/null
+++ b/keyboards/lets_split/rev1/rules.mk
@@ -0,0 +1,5 @@
+BACKLIGHT_ENABLE = no
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/lets_split/rev2/Makefile b/keyboards/lets_split/rev2/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/lets_split/rev2/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/lets_split/rev2/config.h b/keyboards/lets_split/rev2/config.h
new file mode 100644
index 000000000..b34d7c004
--- /dev/null
+++ b/keyboards/lets_split/rev2/config.h
@@ -0,0 +1,91 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x3060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Wootpatoot
+#define PRODUCT Lets Split v2
+#define DESCRIPTION A split keyboard for the cheap makers
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 6
+
+// wiring of each half
+#define MATRIX_ROW_PINS { D7, E6, B4, B5 }
+#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
+// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+
+#define CATERINA_BOOTLOADER
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+// #define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D3
+#define RGBLIGHT_TIMER
+#define RGBLED_NUM 12 // Number of LEDs
+#define ws2812_PORTREG PORTD
+#define ws2812_DDRREG DDRD
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+// #define NO_DEBUG
+
+/* disable print */
+// #define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+
+#endif \ No newline at end of file
diff --git a/keyboards/lets_split/rev2/rev2.c b/keyboards/lets_split/rev2/rev2.c
new file mode 100644
index 000000000..c505d3a6e
--- /dev/null
+++ b/keyboards/lets_split/rev2/rev2.c
@@ -0,0 +1,32 @@
+#include "lets_split.h"
+
+#ifdef AUDIO_ENABLE
+ float tone_startup[][2] = SONG(STARTUP_SOUND);
+ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+void matrix_init_kb(void) {
+
+ #ifdef AUDIO_ENABLE
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+ #endif
+
+ // // green led on
+ // DDRD |= (1<<5);
+ // PORTD &= ~(1<<5);
+
+ // // orange led on
+ // DDRB |= (1<<0);
+ // PORTB &= ~(1<<0);
+
+ matrix_init_user();
+};
+
+void shutdown_user(void) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+ #endif
+}
diff --git a/keyboards/lets_split/rev2/rev2.h b/keyboards/lets_split/rev2/rev2.h
new file mode 100644
index 000000000..990976de2
--- /dev/null
+++ b/keyboards/lets_split/rev2/rev2.h
@@ -0,0 +1,28 @@
+#ifndef REV2_H
+#define REV2_H
+
+#include "../lets_split.h"
+
+//void promicro_bootloader_jmp(bool program);
+#include "quantum.h"
+
+//void promicro_bootloader_jmp(bool program);
+
+#define KEYMAP( \
+ k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \
+ k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \
+ k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \
+ k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \
+ ) \
+ { \
+ { k00, k01, k02, k03, k04, k05 }, \
+ { k10, k11, k12, k13, k14, k15 }, \
+ { k20, k21, k22, k23, k24, k25 }, \
+ { k30, k31, k32, k33, k34, k35 }, \
+ { k40, k41, k42, k43, k44, k45 }, \
+ { k50, k51, k52, k53, k54, k55 }, \
+ { k60, k61, k62, k63, k64, k65 }, \
+ { k70, k71, k72, k73, k74, k75 } \
+ }
+
+#endif \ No newline at end of file
diff --git a/keyboards/lets_split/rev2/rules.mk b/keyboards/lets_split/rev2/rules.mk
new file mode 100644
index 000000000..80a942d06
--- /dev/null
+++ b/keyboards/lets_split/rev2/rules.mk
@@ -0,0 +1,5 @@
+BACKLIGHT_ENABLE = no
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif
diff --git a/keyboards/lets_split/rev2fliphalf/Makefile b/keyboards/lets_split/rev2fliphalf/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/lets_split/rev2fliphalf/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/lets_split/rev2fliphalf/config.h b/keyboards/lets_split/rev2fliphalf/config.h
new file mode 100644
index 000000000..1c45cf136
--- /dev/null
+++ b/keyboards/lets_split/rev2fliphalf/config.h
@@ -0,0 +1,91 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x3060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Wootpatoot
+#define PRODUCT Lets Split v2
+#define DESCRIPTION A split keyboard for the cheap makers
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 6
+
+// wiring of each half
+#define MATRIX_ROW_PINS { D7, E6, B4, B5 }
+//#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
+#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+
+//#define CATERINA_BOOTLOADER
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+// #define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D3
+#define RGBLIGHT_TIMER
+#define RGBLED_NUM 12 // Number of LEDs
+#define ws2812_PORTREG PORTD
+#define ws2812_DDRREG DDRD
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+// #define NO_DEBUG
+
+/* disable print */
+// #define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+
+#endif \ No newline at end of file
diff --git a/keyboards/lets_split/rev2fliphalf/rev2fliphalf.c b/keyboards/lets_split/rev2fliphalf/rev2fliphalf.c
new file mode 100644
index 000000000..c505d3a6e
--- /dev/null
+++ b/keyboards/lets_split/rev2fliphalf/rev2fliphalf.c
@@ -0,0 +1,32 @@
+#include "lets_split.h"
+
+#ifdef AUDIO_ENABLE
+ float tone_startup[][2] = SONG(STARTUP_SOUND);
+ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+void matrix_init_kb(void) {
+
+ #ifdef AUDIO_ENABLE
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+ #endif
+
+ // // green led on
+ // DDRD |= (1<<5);
+ // PORTD &= ~(1<<5);
+
+ // // orange led on
+ // DDRB |= (1<<0);
+ // PORTB &= ~(1<<0);
+
+ matrix_init_user();
+};
+
+void shutdown_user(void) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+ #endif
+}
diff --git a/keyboards/lets_split/rev2fliphalf/rev2fliphalf.h b/keyboards/lets_split/rev2fliphalf/rev2fliphalf.h
new file mode 100644
index 000000000..7dc8e5ba8
--- /dev/null
+++ b/keyboards/lets_split/rev2fliphalf/rev2fliphalf.h
@@ -0,0 +1,28 @@
+#ifndef REV2FLIPHALF_H
+#define REV2FLIPHALF_H
+
+#include "../lets_split.h"
+
+//void promicro_bootloader_jmp(bool program);
+#include "quantum.h"
+
+//void promicro_bootloader_jmp(bool program);
+
+#define KEYMAP( \
+ k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \
+ k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \
+ k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \
+ k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \
+ ) \
+ { \
+ { k00, k01, k02, k03, k04, k05 }, \
+ { k10, k11, k12, k13, k14, k15 }, \
+ { k20, k21, k22, k23, k24, k25 }, \
+ { k30, k31, k32, k33, k34, k35 }, \
+ { k40, k41, k42, k43, k44, k45 }, \
+ { k50, k51, k52, k53, k54, k55 }, \
+ { k60, k61, k62, k63, k64, k65 }, \
+ { k70, k71, k72, k73, k74, k75 } \
+ }
+
+#endif \ No newline at end of file
diff --git a/keyboards/lets_split/rev2fliphalf/rules.mk b/keyboards/lets_split/rev2fliphalf/rules.mk
new file mode 100644
index 000000000..80a942d06
--- /dev/null
+++ b/keyboards/lets_split/rev2fliphalf/rules.mk
@@ -0,0 +1,5 @@
+BACKLIGHT_ENABLE = no
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif
diff --git a/keyboards/lets_split/rules.mk b/keyboards/lets_split/rules.mk
new file mode 100644
index 000000000..0efa78550
--- /dev/null
+++ b/keyboards/lets_split/rules.mk
@@ -0,0 +1,87 @@
+SRC += matrix.c \
+ i2c.c \
+ split_util.c \
+ serial.c
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no # Audio output on port C6
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SUBPROJECT_rev1 ?= yes
+USE_I2C ?= yes
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+
+CUSTOM_MATRIX = yes
+
+avrdude: build
+ ls /dev/tty* > /tmp/1; \
+ echo "Reset your Pro Micro now"; \
+ while [[ -z $$USB ]]; do \
+ sleep 1; \
+ ls /dev/tty* > /tmp/2; \
+ USB=`diff /tmp/1 /tmp/2 | grep -o '/dev/tty.*'`; \
+ done; \
+ avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex
+
+.PHONY: avrdude
diff --git a/keyboards/lets_split/serial.c b/keyboards/lets_split/serial.c
index f439c2f20..6faed09ce 100644
--- a/keyboards/lets_split/serial.c
+++ b/keyboards/lets_split/serial.c
@@ -10,9 +10,10 @@
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdbool.h>
-
#include "serial.h"
+#ifdef USE_SERIAL
+
// Serial pulse period in microseconds. Its probably a bad idea to lower this
// value.
#define SERIAL_DELAY 24
@@ -223,3 +224,5 @@ int serial_update_buffers(void) {
sei();
return 0;
}
+
+#endif
diff --git a/keyboards/lets_split/split_util.c b/keyboards/lets_split/split_util.c
index 65003a71a..226dc1881 100644
--- a/keyboards/lets_split/split_util.c
+++ b/keyboards/lets_split/split_util.c
@@ -6,18 +6,23 @@
#include <avr/eeprom.h>
#include "split_util.h"
#include "matrix.h"
-#include "i2c.h"
-#include "serial.h"
#include "keyboard.h"
#include "config.h"
+#ifdef USE_I2C
+# include "i2c.h"
+#else
+# include "serial.h"
+#endif
+
volatile bool isLeftHand = true;
static void setup_handedness(void) {
#ifdef EE_HANDS
isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS);
#else
- #ifdef I2C_MASTER_RIGHT
+ // I2C_MASTER_RIGHT is deprecated use MASTER_RIGHT instead since this works for both serial and i2c
+ #if defined(I2C_MASTER_RIGHT) || defined(MASTER_RIGHT)
isLeftHand = !has_usb();
#else
isLeftHand = has_usb();
diff --git a/keyboards/maxipad/Makefile b/keyboards/maxipad/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/maxipad/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/maxipad/config.h b/keyboards/maxipad/config.h
new file mode 100644
index 000000000..d7a5ef564
--- /dev/null
+++ b/keyboards/maxipad/config.h
@@ -0,0 +1,95 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER wootpatoot
+#define PRODUCT maxipad
+#define DESCRIPTION A custom keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 6
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+//Pro micro pinout
+ #define MATRIX_ROW_PINS { B6, B2, B3, B1, F7 }
+ #define MATRIX_COL_PINS { F4, C6, D7, F5, B4, B5 }
+ #define UNUSED_PINS
+//Teensy 2 pinout
+ //#define MATRIX_ROW_PINS { B6, F7, B2, B3, B1 }
+ //#define MATRIX_COL_PINS { F6, C6, D7, F5, B4, B5 }
+ //#define UNUSED_PINS
+
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/maxipad/keymaps/default/keymap.c b/keyboards/maxipad/keymaps/default/keymap.c
new file mode 100644
index 000000000..227cef7d8
--- /dev/null
+++ b/keyboards/maxipad/keymaps/default/keymap.c
@@ -0,0 +1,26 @@
+#include "maxipad.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = KEYMAP( /* Base */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, \
+ MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, \
+ KC_LCTL, KC_LALT, MO(1), KC_ENT,KC_GRV,KC_SPC \
+),
+[1] = KEYMAP(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, \
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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_SPC \
+),
+};
+
+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
+{
+ return MACRO_NONE;
+}; \ No newline at end of file
diff --git a/keyboards/maxipad/maxipad.c b/keyboards/maxipad/maxipad.c
new file mode 100644
index 000000000..a193b112b
--- /dev/null
+++ b/keyboards/maxipad/maxipad.c
@@ -0,0 +1 @@
+#include "maxipad.h" \ No newline at end of file
diff --git a/keyboards/maxipad/maxipad.h b/keyboards/maxipad/maxipad.h
new file mode 100644
index 000000000..4d8c6428d
--- /dev/null
+++ b/keyboards/maxipad/maxipad.h
@@ -0,0 +1,25 @@
+#ifndef MAXIPAD_H
+#define MAXIPAD_H
+
+#include "quantum.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, \
+ k10, k11, k12, k13, k14, k15, \
+ k20, k21, k22, k23, k24, k25, \
+ k30, k31, k32, k33, k34, k35, \
+ k40, k41, k42, k43, k44, k45 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05 }, \
+ { k10, k11, k12, k13, k14, k15 }, \
+ { k20, k21, k22, k23, k24, k25 }, \
+ { k30, k31, k32, k33, k34, k35 }, \
+ { k40, k41, k42, k43, k44, k45 } \
+}
+
+#endif
diff --git a/keyboards/retro_refit/readme.md b/keyboards/maxipad/readme.md
index b01a1a9ca..861ea2b07 100644
--- a/keyboards/retro_refit/readme.md
+++ b/keyboards/maxipad/readme.md
@@ -1,24 +1,29 @@
-retro_refit keyboard firmware
-======================
+Maxipad keyboard firmware
## Quantum MK Firmware
For the full Quantum feature list, see [the parent readme.md](/readme.md).
-## Building
+If you are using a pro micro then make sure to enable USE_PRO_MICRO in the makefile
+Change the config.h pinout to match your mcu!!
-Download or clone the whole firmware and navigate to the keyboards/retro_refit folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+Download or clone the whole firmware and navigate to the keyboards/maxipad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
Depending on which keymap you would like to use, you will have to compile slightly differently.
### Default
+
To build with the default keymap, simply run `make`.
+
### Other Keymaps
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` and see keymap document (you can find in top readme.md) and existent keymap files.
-To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
+
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
```
-$ make KEYMAP=[default|jack|<name>]
+$ make [default|jack|<name>]
```
-Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder. \ No newline at end of file
+
+Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboards/maxipad/rules.mk b/keyboards/maxipad/rules.mk
new file mode 100644
index 000000000..a5c739152
--- /dev/null
+++ b/keyboards/maxipad/rules.mk
@@ -0,0 +1,76 @@
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=512
+
+
+# Build Options
+# 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)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
+# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
+# MIDI_ENABLE ?= YES # MIDI controls
+# UNICODE_ENABLE ?= YES # Unicode
+# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
+USE_PRO_MICRO ?= yes
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= no # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no # Audio output on port C6
diff --git a/keyboards/pegasushoof/Makefile b/keyboards/pegasushoof/Makefile
new file mode 100644
index 000000000..57b2ef62e
--- /dev/null
+++ b/keyboards/pegasushoof/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif
diff --git a/keyboards/pegasushoof/README.md b/keyboards/pegasushoof/README.md
new file mode 100644
index 000000000..074222c71
--- /dev/null
+++ b/keyboards/pegasushoof/README.md
@@ -0,0 +1,24 @@
+pegasushoof keyboard firmware
+=============================
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent README.md](/README.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the `keyboard/pegasushoof` folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your `.hex` file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+To build all keymaps, simply run `make`, the `.hex` files will end up in the top directory.
+
+### Specific Keymap
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>/keymap.c` in the `keymaps` folder, and see keymap document (you can find in top README.md) and existent keymap files.
+
+To build the firmware binary hex file with a keymap just enter the keymap directory and type `make`:
+```
+$ cd keymaps/default
+$ make
+```
diff --git a/keyboards/pegasushoof/config.h b/keyboards/pegasushoof/config.h
new file mode 100644
index 000000000..0dbec26e4
--- /dev/null
+++ b/keyboards/pegasushoof/config.h
@@ -0,0 +1,46 @@
+/*
+Copyright 2016 Daniel Svensson <dsvensson@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 0x6050
+#define DEVICE_VER 0x0104
+#define MANUFACTURER Filco
+#define PRODUCT Majestouch TKL \\w The Pegasus Hoof
+#define DESCRIPTION QMK firmware for Majestouch TKL
+
+/* key matrix size */
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 18
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+#endif
diff --git a/keyboards/pegasushoof/keymaps/blowrak/Makefile b/keyboards/pegasushoof/keymaps/blowrak/Makefile
new file mode 100644
index 000000000..fec0d2d97
--- /dev/null
+++ b/keyboards/pegasushoof/keymaps/blowrak/Makefile
@@ -0,0 +1,22 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+CUSTOM_MATRIX ?= yes # Custom matrix file for the Pegasus Hoof due to the 2x74HC42
+NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no # Audio output on port C6
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/pegasushoof/keymaps/blowrak/keymap.c b/keyboards/pegasushoof/keymaps/blowrak/keymap.c
new file mode 100644
index 000000000..6faf4db6f
--- /dev/null
+++ b/keyboards/pegasushoof/keymaps/blowrak/keymap.c
@@ -0,0 +1,112 @@
+/*
+Copyright 2016 Daniel Svensson <dsvensson@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/>.
+*/
+
+#include "pegasushoof.h"
+
+#define _______ KC_TRNS
+
+/* Swedish keys */
+#define SE_HALF KC_GRV
+#define SE_PLUS KC_MINS
+#define SE_ACUT KC_EQL
+#define SE_AO KC_LBRC
+#define SE_CIRC KC_RBRC
+#define SE_QUOT KC_BSLS
+#define SE_OE KC_SCLN
+#define SE_AE KC_QUOT
+#define SE_MINS KC_SLSH
+#define SE_LTGT KC_NUBS
+#define SE_LCBR RALT(KC_7)
+#define SE_LBRC RALT(KC_8)
+#define SE_RBRC RALT(KC_9)
+#define SE_RCBR RALT(KC_0)
+#define SE_PIPE RALT(SE_LTGT)
+#define SE_BSLS RALT(SE_PLUS)
+
+#define KM_BLOWRAK 0
+#define KM_QWERTY 1
+#define KM_MEDIA 2
+#define KM_HAXHAX 3
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Layer 0: Blowrak ISO layer, a Swedish take on Dvorak */
+ [KM_BLOWRAK] = KEYMAP( \
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \
+ SE_HALF, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,SE_ACUT,KC_BSPC, KC_INS, KC_HOME,KC_PGUP, \
+ KC_TAB, SE_AO, SE_AE, SE_OE, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_COMM,SE_CIRC,SE_QUOT, KC_DEL, KC_END, KC_PGDN, \
+ KC_LCTRL,KC_A, KC_O, KC_E, KC_U, KC_I, KC_H, KC_D, KC_T, KC_N, KC_S, SE_MINS, KC_ENT, \
+ KC_LSFT, SE_LTGT,KC_DOT, KC_Q, KC_J, KC_K, KC_B, KC_X, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, \
+ KC_FN0, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_MENU,KC_FN1, KC_LEFT,KC_DOWN,KC_RGHT),
+ /* Layer 1: Standard ISO layer */
+ [KM_QWERTY] = KEYMAP( \
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \
+ SE_HALF, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,SE_ACUT,KC_BSPC, KC_INS, KC_HOME,KC_PGUP, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SE_AO, SE_CIRC,SE_QUOT, KC_DEL, KC_END, KC_PGDN, \
+ KC_LCTRL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SE_OE, SE_AE, KC_ENT, \
+ KC_LSFT, SE_LTGT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, SE_MINS, KC_RSFT, KC_UP, \
+ KC_FN0, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_MENU,KC_FN1, KC_LEFT,KC_DOWN,KC_RGHT),
+ /* Layer 2: Media layer */
+ [KM_MEDIA] = KEYMAP( \
+ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_WAKE,KC_PWR, KC_SLEP, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,KC_VOLU, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_MUTE,_______,KC_VOLD, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_MPLY, \
+ _______,_______,_______, _______, _______,_______,RESET ,_______, KC_MPRV,KC_MSTP,KC_MNXT),
+ /* Layer 3: Programming layer */
+ [KM_HAXHAX] = KEYMAP( \
+ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
+ _______,SE_LCBR,SE_PIPE,SE_RCBR,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
+ _______,SE_LBRC,SE_BSLS,SE_RBRC,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, \
+ _______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_MOMENTARY(KM_MEDIA),
+ [1] = ACTION_LAYER_TOGGLE(KM_QWERTY)
+};
+
+void matrix_scan_user(void)
+{
+ uint8_t layer = biton32(layer_state);
+ switch (layer) {
+ case KM_BLOWRAK:
+ ph_caps_led_on();
+ ph_sclk_led_off();
+ break;
+ case KM_QWERTY:
+ ph_sclk_led_on();
+ ph_caps_led_off();
+ break;
+ }
+}
+
+/* Mixes in KM_HAXHAX via RALT modifier without shadowing the RALT key combinations. */
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ uint8_t modifiers = get_mods();
+ if (modifiers & MOD_BIT(KC_RALT) && record->event.pressed) {
+ uint16_t kc = keymap_key_to_keycode(KM_HAXHAX, record->event.key);
+ if (kc != KC_TRNS) {
+ register_code(kc);
+ unregister_code(kc);
+ return false;
+ }
+ }
+ return true;
+}
diff --git a/keyboards/pegasushoof/keymaps/default/Makefile b/keyboards/pegasushoof/keymaps/default/Makefile
new file mode 100644
index 000000000..fec0d2d97
--- /dev/null
+++ b/keyboards/pegasushoof/keymaps/default/Makefile
@@ -0,0 +1,22 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+CUSTOM_MATRIX ?= yes # Custom matrix file for the Pegasus Hoof due to the 2x74HC42
+NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no # Audio output on port C6
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/pegasushoof/keymaps/default/keymap.c b/keyboards/pegasushoof/keymaps/default/keymap.c
new file mode 100644
index 000000000..aa006b23a
--- /dev/null
+++ b/keyboards/pegasushoof/keymaps/default/keymap.c
@@ -0,0 +1,60 @@
+/*
+Copyright 2016 Daniel Svensson <dsvensson@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/>.
+*/
+
+#include "pegasushoof.h"
+
+#define _______ KC_TRNS
+
+#define KM_QWERTY 0
+#define KM_MEDIA 1
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Layer 0: Standard ISO layer */
+ [KM_QWERTY] = KEYMAP( \
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_INS, KC_HOME,KC_PGUP, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END, KC_PGDN, \
+ KC_CLCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \
+ KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
+ KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_MENU,KC_FN0, KC_LEFT,KC_DOWN,KC_RGHT),
+ /* Layer 1: Function layer */
+ [KM_MEDIA] = KEYMAP( \
+ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_WAKE,KC_PWR, KC_SLEP, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,KC_VOLU, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,KC_VOLD, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_MPLY, \
+ _______,_______,_______, _______, _______,_______,RESET ,_______, KC_MPRV,KC_MSTP,KC_MNXT)
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_MOMENTARY(KM_MEDIA)
+};
+
+void led_set_user(uint8_t usb_led) {
+ if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
+ ph_caps_led_on();
+ } else {
+ ph_caps_led_off();
+ }
+
+ if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
+ ph_sclk_led_on();
+ } else {
+ ph_sclk_led_off();
+ }
+}
diff --git a/keyboards/pegasushoof/matrix.c b/keyboards/pegasushoof/matrix.c
new file mode 100644
index 000000000..d2a74b8d7
--- /dev/null
+++ b/keyboards/pegasushoof/matrix.c
@@ -0,0 +1,204 @@
+/*
+Copyright 2014 Ralf Schmitt <ralf@bunkertor.net>
+Copyright 2016 Daniel Svensson <dsvensson@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/>.
+*/
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <avr/io.h>
+#include <util/delay.h>
+#include "wait.h"
+#include "print.h"
+#include "debug.h"
+#include "util.h"
+#include "matrix.h"
+
+static uint8_t debouncing = DEBOUNCING_DELAY;
+static matrix_row_t matrix[MATRIX_ROWS];
+static matrix_row_t matrix_debouncing[MATRIX_ROWS];
+
+static matrix_row_t read_cols(void);
+static void select_row(uint8_t col);
+
+inline uint8_t matrix_rows(void)
+{
+ return MATRIX_ROWS;
+}
+
+inline uint8_t matrix_cols(void)
+{
+ return MATRIX_COLS;
+}
+
+void matrix_init(void)
+{
+ /* Column output pins */
+ DDRD |= 0b01111011;
+ /* Row input pins */
+ DDRC &= ~0b10000000;
+ DDRB &= ~0b01111111;
+ PORTC |= 0b10000000;
+ PORTB |= 0b01111111;
+
+ for (uint8_t i=0; i < MATRIX_ROWS; i++) {
+ matrix[i] = 0;
+ matrix_debouncing[i] = 0;
+ }
+
+ matrix_init_quantum();
+}
+
+uint8_t matrix_scan(void)
+{
+ for (uint8_t col = 0; col < MATRIX_COLS; col++) {
+ select_row(col);
+ wait_us(30);
+ matrix_row_t rows = read_cols();
+ for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
+ bool prev_bit = matrix_debouncing[row] & ((matrix_row_t)1<<col);
+ bool curr_bit = rows & (1<<row);
+ if (prev_bit != curr_bit) {
+ matrix_debouncing[row] ^= (matrix_row_t) 1 << col;
+ debouncing = DEBOUNCING_DELAY;
+ }
+ }
+ }
+
+ if (debouncing) {
+ if (--debouncing) {
+ wait_ms(1);
+ } else {
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ matrix[i] = matrix_debouncing[i];
+ }
+ }
+ }
+
+ matrix_scan_quantum();
+
+ return 1;
+}
+
+bool matrix_is_modified(void)
+{
+ if (debouncing)
+ return false;
+ return true;
+}
+
+inline
+bool matrix_is_on(uint8_t row, uint8_t col)
+{
+ return matrix[row] & 1 << col;
+}
+
+inline
+matrix_row_t matrix_get_row(uint8_t row)
+{
+ return matrix[row];
+}
+
+void matrix_print(void)
+{
+ print("\nr/c 0123456789ABCDEF\n");
+ for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
+ phex(row); print(": ");
+ pbin_reverse16(matrix_get_row(row));
+ print("\n");
+ }
+}
+
+uint8_t matrix_key_count(void)
+{
+ uint8_t count = 0;
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ count += bitpop16(matrix[i]);
+ }
+ return count;
+}
+
+static matrix_row_t read_cols(void)
+{
+ return
+ (PINB & (1 << 5) ? 0 : 1 << 0) |
+ (PINC & (1 << 7) ? 0 : 1 << 1) |
+ (PINB & (1 << 4) ? 0 : 1 << 2) |
+ (PINB & (1 << 6) ? 0 : 1 << 3) |
+ (PINB & (1 << 1) ? 0 : 1 << 4) |
+ (PINB & (1 << 0) ? 0 : 1 << 5) |
+ (PINB & (1 << 3) ? 0 : 1 << 6) |
+ (PINB & (1 << 2) ? 0 : 1 << 7);
+}
+
+static void select_row(uint8_t col)
+{
+ switch (col) {
+ case 0:
+ PORTD = (PORTD & ~0b01111011) | 0b00110011;
+ break;
+ case 1:
+ PORTD = (PORTD & ~0b01111011) | 0b01110000;
+ break;
+ case 2:
+ PORTD = (PORTD & ~0b01111011) | 0b00010011;
+ break;
+ case 3:
+ PORTD = (PORTD & ~0b01111011) | 0b01101000;
+ break;
+ case 4:
+ PORTD = (PORTD & ~0b01111011) | 0b00001011;
+ break;
+ case 5:
+ PORTD = (PORTD & ~0b01111011) | 0b00111011;
+ break;
+ case 6:
+ PORTD = (PORTD & ~0b01111011) | 0b01111000;
+ break;
+ case 7:
+ PORTD = (PORTD & ~0b01111011) | 0b01100001;
+ break;
+ case 8:
+ PORTD = (PORTD & ~0b01111011) | 0b01101001;
+ break;
+ case 9:
+ PORTD = (PORTD & ~0b01111011) | 0b01110001;
+ break;
+ case 10:
+ PORTD = (PORTD & ~0b01111011) | 0b01101010;
+ break;
+ case 11:
+ PORTD = (PORTD & ~0b01111011) | 0b01100010;
+ break;
+ case 12:
+ PORTD = (PORTD & ~0b01111011) | 0b01111001;
+ break;
+ case 13:
+ PORTD = (PORTD & ~0b01111011) | 0b01100000;
+ break;
+ case 14:
+ PORTD = (PORTD & ~0b01111011) | 0b01000011;
+ break;
+ case 15:
+ PORTD = (PORTD & ~0b01111011) | 0b00011011;
+ break;
+ case 16:
+ PORTD = (PORTD & ~0b01111011) | 0b00100011;
+ break;
+ case 17:
+ PORTD = (PORTD & ~0b01111011) | 0b00101011;
+ break;
+ }
+}
diff --git a/keyboards/pegasushoof/pegasushoof.c b/keyboards/pegasushoof/pegasushoof.c
new file mode 100644
index 000000000..6bb249aef
--- /dev/null
+++ b/keyboards/pegasushoof/pegasushoof.c
@@ -0,0 +1,51 @@
+/*
+Copyright 2016 Daniel Svensson <dsvensson@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/>.
+*/
+
+#include "pegasushoof.h"
+
+__attribute__ ((weak))
+void matrix_init_user(void) {
+};
+
+__attribute__ ((weak))
+void matrix_scan_user(void) {
+}
+
+__attribute__ ((weak))
+bool process_action_user(keyrecord_t *record) {
+ return true;
+}
+
+__attribute__ ((weak))
+void led_set_user(uint8_t usb_led) {
+}
+
+void matrix_init_kb(void) {
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ matrix_scan_user();
+}
+
+bool process_action_kb(keyrecord_t *record) {
+ return process_action_user(record);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ led_set_user(usb_led);
+}
diff --git a/keyboards/pegasushoof/pegasushoof.h b/keyboards/pegasushoof/pegasushoof.h
new file mode 100644
index 000000000..d031e3ed2
--- /dev/null
+++ b/keyboards/pegasushoof/pegasushoof.h
@@ -0,0 +1,51 @@
+/*
+Copyright 2016 Daniel Svensson <dsvensson@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 PEGASUSHOOF_H
+#define PEGASUSHOOF_H
+
+#include "matrix.h"
+#include "quantum.h"
+
+#define ___ KC_NO
+
+#define KEYMAP( \
+ KG6, KH4, KI4, KI2, KI6, KP5, KL6, KM2, KM4, KO4, KO5, KO6, KO0, KN5, KN7, KP7, \
+ KG4, KG5, KH5, KI5, KJ5, KJ4, KK4, KK5, KL5, KM5, KF5, KF4, KL4, KO2, KR4, KC4, KE4, \
+ KG2, KG7, KH7, KI7, KJ7, KJ2, KK2, KK7, KL7, KM7, KF7, KF2, KL2, KO3, KQ4, KC5, KE5, \
+ KH2, KG3, KH3, KI3, KJ3, KJ6, KK6, KK3, KL3, KM3, KF3, KF6, KO1, \
+ KB2, KH6, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KB3, KC6, \
+ KP4, KD2, KN6, KQ6, KN0, KA3, KM0, KP1, KC0, KQ0, KR0 \
+ ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \
+ /* 0 */ { ___ , ___ , KC0 , ___ , ___ , KF0 , ___ , ___ , ___ , KJ0 , KK0 , ___ , KM0 , KN0 , KO0 , ___ , KQ0 , KR0 }, \
+ /* 1 */ { ___ , ___ , ___ , ___ , ___ , ___ , KG1 , KH1 , KI1 , KJ1 , KK1 , KL1 , KM1 , ___ , KO1 , KP1 , ___ , ___ }, \
+ /* 2 */ { ___ , KB2 , ___ , KD2 , ___ , KF2 , KG2 , KH2 , KI2 , KJ2 , KK2 , KL2 , KM2 , ___ , KO2 , ___ , ___ , ___ }, \
+ /* 3 */ { KA3 , KB3 , ___ , ___ , ___ , KF3 , KG3 , KH3 , KI3 , KJ3 , KK3 , KL3 , KM3 , ___ , KO3 , ___ , ___ , ___ }, \
+ /* 4 */ { ___ , ___ , KC4 , ___ , KE4 , KF4 , KG4 , KH4 , KI4 , KJ4 , KK4 , KL4 , KM4 , ___ , KO4 , KP4 , KQ4 , KR4 }, \
+ /* 5 */ { ___ , ___ , KC5 , ___ , KE5 , KF5 , KG5 , KH5 , KI5 , KJ5 , KK5 , KL5 , KM5 , KN5 , KO5 , KP5 , ___ , ___ }, \
+ /* 6 */ { ___ , ___ , KC6 , ___ , ___ , KF6 , KG6 , KH6 , KI6 , KJ6 , KK6 , KL6 , ___ , KN6 , KO6 , ___ , KQ6 , ___ }, \
+ /* 7 */ { ___ , ___ , ___ , ___ , ___ , KF7 , KG7 , KH7 , KI7 , KJ7 , KK7 , KL7 , KM7 , KN7 , ___ , KP7 , ___ , ___ }, \
+ }
+
+inline void ph_caps_led_on(void) { DDRC |= (1<<6); PORTC &= ~(1<<6); }
+inline void ph_caps_led_off(void) { DDRC &= ~(1<<6); PORTC &= ~(1<<6); }
+
+inline void ph_sclk_led_on(void) { DDRC |= (1<<5); PORTC &= ~(1<<5); }
+inline void ph_sclk_led_off(void) { DDRC &= ~(1<<5); PORTC &= ~(1<<5); }
+
+
+#endif
diff --git a/keyboards/pegasushoof/rules.mk b/keyboards/pegasushoof/rules.mk
new file mode 100644
index 000000000..b3eeebfdb
--- /dev/null
+++ b/keyboards/pegasushoof/rules.mk
@@ -0,0 +1,67 @@
+# MCU name
+MCU = atmega32u2
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no # Audio output on port C6
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+
+CUSTOM_MATRIX ?= yes
+SRC = matrix.c
diff --git a/keyboards/phantom/Makefile b/keyboards/phantom/Makefile
index 3a71fd0ee..4e2a6f00f 100644
--- a/keyboards/phantom/Makefile
+++ b/keyboards/phantom/Makefile
@@ -1,74 +1,3 @@
-
-
-SRC = led.c
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
-# Build Options
-# comment out to disable the options.
-#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE ?=yes # Enable keyboard underlight functionality (+4870)
-BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality (+1150)
-MIDI_ENABLE ?= no # MIDI controls
-AUDIO_ENABLE ?= no
-UNICODE_ENABLE ?= no # Unicode
-BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
-
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
-endif
+endif \ No newline at end of file
diff --git a/keyboards/phantom/config.h b/keyboards/phantom/config.h
index 983a1d73f..71a33498b 100644
--- a/keyboards/phantom/config.h
+++ b/keyboards/phantom/config.h
@@ -63,7 +63,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Underlight configuration
*/
#define RGB_DI_PIN E2
-#define RGBLIGHT_TIMER
+#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 20 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
diff --git a/keyboards/phantom/keymaps/xyverz/keymap.c b/keyboards/phantom/keymaps/xyverz/keymap.c
new file mode 100644
index 000000000..4a1522638
--- /dev/null
+++ b/keyboards/phantom/keymaps/xyverz/keymap.c
@@ -0,0 +1,104 @@
+#include "phantom.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+
+// Used for SHIFT_ESC
+#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QW 0
+#define _DV 1
+#define _CM 2
+#define _FL 3
+
+// Macro name shortcuts
+#define QWERTY M(_QW)
+#define DVORAK M(_DV)
+#define COLEMAK M(_CM)
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_QW] = { /* Layer 0: Qwerty */
+ {KC_ESC, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS},
+ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC, KC_INS, KC_HOME, KC_PGUP},
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN},
+ {KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX},
+ {KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, KC_RSFT, XXXXXXX, KC_UP, XXXXXXX},
+ {KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT}
+ },
+
+[_DV] = { /* Layer 1: Dvorak */
+ {KC_ESC, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS},
+ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, XXXXXXX, KC_BSPC, KC_INS, KC_HOME, KC_PGUP},
+ {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_DEL, KC_END, KC_PGDN},
+ {KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, XXXXXXX, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX},
+ {KC_LSFT, XXXXXXX, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, XXXXXXX, KC_RSFT, XXXXXXX, KC_UP, XXXXXXX},
+ {KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT}
+ },
+
+[_CM] = { /* Layer 2: Colemak */
+ {KC_ESC, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS},
+ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC, KC_INS, KC_HOME, KC_PGUP},
+ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN},
+ {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, XXXXXXX, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX},
+ {KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, KC_RSFT, XXXXXXX, KC_UP, XXXXXXX},
+ {KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT}
+ },
+
+[_FL] = { /* Layer 3: Functions */
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, RESET, KC_MPRV, KC_MPLY, KC_MNXT},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX},
+ {_______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX, _______, XXXXXXX},
+ {QWERTY, DVORAK, COLEMAK, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, _______},
+ },
+
+
+};
+
+enum function_id {
+ SHIFT_ESC,
+};
+
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case _DV:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_DV);
+ }
+ break;
+ case _QW:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_QW);
+ }
+ break;
+ case _CM:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_CM);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/phantom/readme.md b/keyboards/phantom/readme.md
new file mode 100644
index 000000000..190f738fa
--- /dev/null
+++ b/keyboards/phantom/readme.md
@@ -0,0 +1,4 @@
+Phantom keyboard firmware
+======================
+
+TODO: to be updated.
diff --git a/keyboards/phantom/rules.mk b/keyboards/phantom/rules.mk
new file mode 100644
index 000000000..c6b8ca6c3
--- /dev/null
+++ b/keyboards/phantom/rules.mk
@@ -0,0 +1,69 @@
+
+
+SRC = led.c
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+RGBLIGHT_ENABLE ?=yes # Enable keyboard underlight functionality (+4870)
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality (+1150)
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/planck/Makefile b/keyboards/planck/Makefile
index 23944f92e..7d49c5ef9 100644
--- a/keyboards/planck/Makefile
+++ b/keyboards/planck/Makefile
@@ -1,74 +1,5 @@
-
SUBPROJECT_DEFAULT = rev4
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
-MIDI_ENABLE ?= no # MIDI controls
-AUDIO_ENABLE ?= no # Audio output on port C6
-UNICODE_ENABLE ?= no # Unicode
-BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
endif \ No newline at end of file
diff --git a/keyboards/planck/config.h b/keyboards/planck/config.h
index 4dd1d22a9..5cf96bb88 100644
--- a/keyboards/planck/config.h
+++ b/keyboards/planck/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
#define UNUSED_PINS
+#define AUDIO_VOICES
+
#define BACKLIGHT_PIN B7
/* COL2ROW or ROW2COL */
diff --git a/keyboards/planck/keymaps/bone2planck/Makefile b/keyboards/planck/keymaps/bone2planck/Makefile
index 581e08cd0..39635192e 100644
--- a/keyboards/planck/keymaps/bone2planck/Makefile
+++ b/keyboards/planck/keymaps/bone2planck/Makefile
@@ -1,18 +1,16 @@
-
-
# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
+# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = yes # Commands for debug and configuration
+COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = yes # Audio output on port C6
+AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
diff --git a/keyboards/planck/keymaps/bone2planck/config.h b/keyboards/planck/keymaps/bone2planck/config.h
new file mode 100644
index 000000000..3e9e692d3
--- /dev/null
+++ b/keyboards/planck/keymaps/bone2planck/config.h
@@ -0,0 +1,8 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#define PREVENT_STUCK_MODIFIERS
+
+#endif \ No newline at end of file
diff --git a/keyboards/planck/keymaps/bone2planck/keymap.c b/keyboards/planck/keymaps/bone2planck/keymap.c
index f40b08685..5f77acf91 100644
--- a/keyboards/planck/keymaps/bone2planck/keymap.c
+++ b/keyboards/planck/keymaps/bone2planck/keymap.c
@@ -1,93 +1,147 @@
-
-#include "planck.h"
+#include "planck.h"
#ifdef BACKLIGHT_ENABLE
#include "backlight.h"
#endif
#include "keymap_german.h"
+// for intellisense, has to be commented for building
+/*
+#include "..\..\..\..\quantum\keymap_extras\keymap_german.h"
+#include "..\..\..\..\tmk_core\common\keycode.h"
+*/
+
+
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout.
- It has Umlauts and "ß" as it is optimized for a mix of German & English.
- My favourite features are the placement of the special characters often used for programming right on the home row
- and the number & navigation block combo, so you never have to move your hands from their home position.
-
- Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone
+It has "üäöß" as it is optimized for a mix of German & English.
+My favourite features are the placement of the special characters often used for programming right on the home row
+and the number & navigation block combo, so you never have to move your hands from their home position.
+
+Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Bone2
- * ,-----------------------------------------------------------------------------------.
- * | Q | J | D | U | A | X | P | H | L | M | W | ẞ |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | M1 | C | T | I | E | O | B | N | R | S | G | M1 |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter |
- * `-----------------------------------------------------------------------------------'
- */
- [0] = {
- { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS },
- { MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, MO(1) },
- { DE_S, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, DE_S },
- { KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), KC_SPC, KC_SPC, MO(2), MO(3), KC_ESC, KC_TAB, KC_ENT }
- },
-
- /* M1 Special Characters
- * ,-----------------------------------------------------------------------------------.
- * | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | M1 | \ | / | { | } | * | ? | ( | ) | - | : | M1 |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | # | $ | | | ~ | € | + | % | " | ' | ; | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter |
- * `-----------------------------------------------------------------------------------'
- */
- [1] = {
- { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, KC_NO },
- { KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, KC_TRNS },
- { KC_NO , DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_NO },
- { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
- },
-
- /* Navigation & Number Blocks
- * ,-----------------------------------------------------------------------------------.
- * | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter |
- * `-----------------------------------------------------------------------------------'
- */
- [2] = {
- { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO },
- { KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_NO },
- { DE_S, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, KC_0, DE_1, DE_2, DE_3, DE_SCLN, DE_S },
- { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
- },
-
- /* Function & Media Keys
- * ,-----------------------------------------------------------------------------------.
- * | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | GUI | Alt | M3 | | Space | | M3 | Esc | Tab |Enter |
- * `-----------------------------------------------------------------------------------'
- */
- [3] = {
- { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO },
- { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO },
- { KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, KC_TRNS},
- { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
- }
+/* Bone2 (adapted)
+* ,-----------------------------------------------------------------------------------.
+* | ß | J | D | U | A | X | P | H | L | M | W | Q |
+* |------+------+------+------+------+-------------+------+------+------+------+------|
+* | M1 | C | T | I | E | O | B | N | R | S | G |M1/Ent| //hold for M1, tap for Enter
+* |------+------+------+------+------+------|------+------+------+------+------+------|
+* | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift |
+* |------+------+------+------+------+------+------+------+------+------+------+------|
+* | Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
+* `-----------------------------------------------------------------------------------'
+*/
+[0] = {
+ { DE_SS, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_Q },
+ //{ LT(1,KC_TAB), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) },
+ { MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) },
+ { KC_LSFT, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT },
+ { KC_LCTL, KC_RGUI, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_RALT, KC_ESC, KC_RCTL }
+},
+
+/* M1 Special Characters
+* very ergonomic placement for coding
+* ,-----------------------------------------------------------------------------------.
+* | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | ´ |
+* |------+------+------+------+------+-------------+------+------+------+------+------|
+* | M1 | \ | / | { | } | * | ? | ( | ) | - | : |M1/Ent| //hold for M1, tap for Enter
+* |------+------+------+------+------+------|------+------+------+------+------+------|
+* | Shift| # | ~ | | | $ | € | + | % | " | ' | ; |Shift |
+* |------+------+------+------+------+------+------+------+------+------+------+------|
+* | Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
+* `-----------------------------------------------------------------------------------'
+*/
+[1] = {
+ { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, DE_ACUT },
+ { _______, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, _______ },
+ { _______, DE_HASH, DE_TILD, DE_PIPE, DE_DLR, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, _______ },
+ { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
+},
+
+/* M2 Navigation & Number Blocks
+* very easy to get used to & intuituve placement
+* ,-----------------------------------------------------------------------------------.
+* | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | Ins |
+* |------+------+------+------+------+-------------+------+------+------+------+------|
+* | Tab | Home | Lft | Down | Right| End | | 4 | 5 | 6 | . | Enter|
+* |------+------+------+------+------+------|------+------+------+------+------+------|
+* | Shift| | Tab | | Enter| | 0 | 1 | 2 | 3 | , |Shift |
+* |------+------+------+------+------+------+------+------+------+------+------+------|
+* | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Alt | Esc | Ctrl |
+* `-----------------------------------------------------------------------------------'
+*/
+[2] = {
+ { XXXXXXX, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, XXXXXXX, DE_7, DE_8, DE_9, XXXXXXX, KC_INS },
+ { KC_TAB, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, DE_4, DE_5, DE_6, DE_DOT, KC_ENT },
+ { _______, XXXXXXX, KC_TAB, XXXXXXX, KC_ENT, XXXXXXX, DE_0, DE_1, DE_2, DE_3, DE_COMM, _______ },
+ { _______, _______, _______, MO(3), _______, _______, _______, _______, MO(3), _______, _______, _______ }
+},
+
+/* M3 Switched Navigation & Number Blocks for one handed use
+* accessed by sliding from M2 to M3 with thumb
+* ,-----------------------------------------------------------------------------------.
+* | Ins | | 7 | 8 | 9 | | PgUp | Bksp | Up | DEL | PgDn | |
+* |------+------+------+------+------+-------------+------+------+------+------+------|
+* | Tab | | 4 | 5 | 6 | . | Home | Left | Down | Right| End | Enter|
+* |------+------+------+------+------+------|------+------+------+------+------+------|
+* | Shift| 0 | 1 | 2 | 3 | , | | Tab | | Enter| |Shift |
+* |------+------+------+------+------+------+------+------+------+------+------+------|
+* | Ctrl | GUI | Alt | M3 | | Space | | M3 | Alt | Esc | Ctrl |
+* `-----------------------------------------------------------------------------------'
+*/
+
+[3] = {
+ { KC_INS, XXXXXXX, DE_7, DE_8, DE_9, XXXXXXX, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, XXXXXXX },
+ { _______, XXXXXXX, DE_4, DE_5, DE_6, DE_DOT, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______ },
+ { _______, DE_0, DE_1, DE_2, DE_3, DE_COMM, XXXXXXX, KC_TAB, XXXXXXX, KC_ENT, XXXXXXX, _______ },
+ { _______, _______, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, _______, _______ }
+},
+
+
+/* M4 Function & Media Keys
+* ,-----------------------------------------------------------------------------------.
+* | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | |
+* |------+------+------+------+------+-------------+------+------+------+------+------|
+* | Tab | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | Enter|
+* |------+------+------+------+------+------|------+------+------+------+------+------|
+* | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift |
+* |------+------+------+------+------+------+------+------+------+------+------+------|
+* | Ctrl | GUI | Alt | M4 | M5 | Space | M5 | M4 | Alt | Esc | Ctrl |
+* `-----------------------------------------------------------------------------------'
+*/
+[4] = {
+ { XXXXXXX, XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, XXXXXXX },
+ { KC_TAB, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_ENT },
+ { _______, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, _______ },
+ { _______, _______, _______, _______, MO(5), _______, _______, MO(5), _______, _______, _______, _______ }
+},
+
+
+/* M5 Switched Function & Media Keys|
+* accessed by sliding from M4 to M5 with thumb
+* ,-----------------------------------------------------------------------------------.
+* | | | F7 | F8 | F9 | F12 | | Print|Scroll| Pause| | |
+* |------+------+------+------+------+-------------+------+------+------+------+------|
+* | Tab | ³ | F4 | F5 | F6 | F11 | | Mute | Vol- | Vol+ | | Enter|
+* |------+------+------+------+------+------|------+------+------+------+------+------|
+* | Shift| ² | F1 | F2 | F3 | F10 | | Prev | Play | Next | |Shift |
+* |------+------+------+------+------+------+------+------+------+------+------+------|
+* | Ctrl | GUI | Alt | | M5 | Space | M5 | | Alt | Esc | Ctrl |
+* `-----------------------------------------------------------------------------------'
+*/
+[5] = {
+ { XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX },
+ { _______, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, _______ },
+ { _______, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, _______ },
+ { _______, _______, _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, _______, _______ }
+}
};
+
const uint16_t PROGMEM fn_actions[] = {
};
diff --git a/keyboards/planck/keymaps/bone2planck/readme.md b/keyboards/planck/keymaps/bone2planck/readme.md
new file mode 100644
index 000000000..be22eabdb
--- /dev/null
+++ b/keyboards/planck/keymaps/bone2planck/readme.md
@@ -0,0 +1,96 @@
+Bone2Planck
+=====================================
+
+This layout tries to emulate the Bone2 variant of Neo2, and is intended to be used with a German QWERTZ softwarelayout.
+It has "üäöß" as it is optimized for a mix of German & English.
+The special character layer and the navigation & number block layer are inspired by the Neo2 layers,
+designed to keep the fingers near the home row.
+
+Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone
+
+To build, run "make" from within the \bone2planck folder.
+
+## Bone2 (adapted) Base Layer
+```
+ ,-----------------------------------------------------------------------------------.
+ | ß | J | D | U | A | X | P | H | L | M | W | Q |
+ |------+------+------+------+------+-------------+------+------+------+------+------|
+ | M1 | C | T | I | E | O | B | N | R | S | G |M1/Ent| hold: M1, tap: Enter
+ |------+------+------+------+------+------|------+------+------+------+------+------|
+ | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
+ `-----------------------------------------------------------------------------------'
+```
+
+## M1 Special Characters
+ very ergonomic placement for coding
+```
+ ,-----------------------------------------------------------------------------------.
+ | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | ´ |
+ |------+------+------+------+------+-------------+------+------+------+------+------|
+ | M1 | \ | / | { | } | * | ? | ( | ) | - | : |M1/Ent| hold: M1, tap: Enter
+ |------+------+------+------+------+------|------+------+------+------+------+------|
+ | Shift| # | ~ | | | $ | € | + | % | " | ' | ; |Shift |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
+ `-----------------------------------------------------------------------------------'
+```
+
+## M2 Navigation & Number Blocks
+ very easy to get used to & intuituve placement
+```
+ ,-----------------------------------------------------------------------------------.
+ | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | Ins |
+ |------+------+------+------+------+-------------+------+------+------+------+------|
+ | Tab | Home | Lft | Down | Right| End | | 4 | 5 | 6 | . | Enter|
+ |------+------+------+------+------+------|------+------+------+------+------+------|
+ | Shift| | Tab | | Enter| | 0 | 1 | 2 | 3 | , |Shift |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Alt | Esc | Ctrl |
+ `-----------------------------------------------------------------------------------'
+```
+
+## M4 Function & Media Keys
+```
+ ,-----------------------------------------------------------------------------------.
+ | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | |
+ |------+------+------+------+------+-------------+------+------+------+------+------|
+ | Tab | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | Enter|
+ |------+------+------+------+------+------|------+------+------+------+------+------|
+ | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Ctrl | GUI | Alt | M4 | M5 | Space | M5 | M4 | Alt | Esc | Ctrl |
+ `-----------------------------------------------------------------------------------'
+```
+
+
+##Switched layers for one handed access:
+
+### M3 Switched Navigation & Number Blocks
+ accessed by sliding from M2 to M3 with thumb
+```
+ ,-----------------------------------------------------------------------------------.
+ | Ins | | 7 | 8 | 9 | | PgUp | Bksp | Up | DEL | PgDn | |
+ |------+------+------+------+------+-------------+------+------+------+------+------|
+ | Tab | | 4 | 5 | 6 | . | Home | Left | Down | Right| End | Enter|
+ |------+------+------+------+------+------|------+------+------+------+------+------|
+ | Shift| 0 | 1 | 2 | 3 | , | | Tab | | Enter| |Shift |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Ctrl | GUI | Alt | M3 | | Space | | M3 | Alt | Esc | Ctrl |
+ `-----------------------------------------------------------------------------------'
+```
+
+### M5 Switched Function & Media Keys
+ accessed by sliding from M4 to M5 with thumb
+```
+ ,-----------------------------------------------------------------------------------.
+ | | | F7 | F8 | F9 | F12 | | Print|Scroll| Pause| | |
+ |------+------+------+------+------+-------------+------+------+------+------+------|
+ | Tab | ³ | F4 | F5 | F6 | F11 | | Mute | Vol- | Vol+ | | Enter|
+ |------+------+------+------+------+------|------+------+------+------+------+------|
+ | Shift| ² | F1 | F2 | F3 | F10 | | Prev | Play | Next | |Shift |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Ctrl | GUI | Alt | | M5 | Space | M5 | | Alt | Esc | Ctrl |
+ `-----------------------------------------------------------------------------------'
+``` \ No newline at end of file
diff --git a/keyboards/planck/keymaps/brandon/Makefile b/keyboards/planck/keymaps/brandon/Makefile
index 581e08cd0..cf2c31f0f 100644
--- a/keyboards/planck/keymaps/brandon/Makefile
+++ b/keyboards/planck/keymaps/brandon/Makefile
@@ -1,4 +1,6 @@
-
+# Please remove if no longer applicable
+$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
+$(warning Please disable some options in the Makefile to resolve)
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
diff --git a/keyboards/planck/keymaps/callum/Makefile b/keyboards/planck/keymaps/callum/Makefile
new file mode 100644
index 000000000..1d76966a6
--- /dev/null
+++ b/keyboards/planck/keymaps/callum/Makefile
@@ -0,0 +1,25 @@
+
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/callum/keymap.c b/keyboards/planck/keymaps/callum/keymap.c
new file mode 100644
index 000000000..2acd988ea
--- /dev/null
+++ b/keyboards/planck/keymaps/callum/keymap.c
@@ -0,0 +1,155 @@
+#include "planck.h"
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+#define _BASE 0
+#define _MOVE 1
+#define _SYMB 2
+#define _MOUSE 3
+#define _FUNC 4
+#define ENDASH LALT(KC_MINS)
+#define POUND LALT(KC_3)
+
+
+enum planck_keycodes {
+ MOVE = SAFE_RANGE,
+ SYMB,
+ FUNC
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* BASE
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | - |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Bksp | A | R | S | T | D | H | N | E | I | O | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / | Shift|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Func | Ctrl | Alt | Cmd | Symb | Enter| Space| Move | Cmd | Alt | Ctrl | Func |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_BASE] = {
+ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS},
+ {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT},
+ {FUNC, KC_LCTL, KC_LALT, KC_LGUI, SYMB, KC_ENT, KC_SPC, MOVE, KC_RGUI, KC_RALT, KC_RCTL, FUNC }
+},
+
+/* MOVE
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | | Home | Up | End | | | Home | Up | End | | Esc |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Del | Caps | Left | Down | Right| | | Left | Down | Right| Caps | Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | Pg Up| Pg Dn| | | Pg Dn| Pg Up| | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_MOVE] = {
+ {KC_ESC, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_ESC },
+ {KC_DEL, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_CAPS, KC_DEL },
+ {_______, XXXXXXX, XXXXXXX, KC_PGUP, KC_PGDN, XXXXXXX, XXXXXXX, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* SYMB
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | – |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | £ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | ~ | ` | + | = | | | \ | [ | ] | { | } | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_SYMB] = {
+ {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, ENDASH },
+ {KC_DEL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, POUND },
+ {_______, KC_TILD, KC_GRV, KC_PLUS, KC_EQL, KC_PIPE, KC_BSLS, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* MOUSE
+ * ,-----------------------------------------------------------------------------------.
+ * | | | ACC-2| ACC-1| ACC-0| | | SW-L | M-U | SW-R | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | MB-3 | MB-2 | MB-1 | | | M-L | M-D | M-R | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | SW-D | SW-U | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_MOUSE] = {
+ {XXXXXXX, XXXXXXX, KC_ACL2, KC_ACL1, KC_ACL0, XXXXXXX, XXXXXXX, KC_WH_L, KC_MS_U, KC_WH_R, XXXXXXX, XXXXXXX},
+ {XXXXXXX, XXXXXXX, KC_BTN3, KC_BTN2, KC_BTN1, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX},
+ {_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_D, KC_WH_U, XXXXXXX, XXXXXXX, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* FUNC
+ * ,-----------------------------------------------------------------------------------.
+ * | Reset| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | Vol+ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | Vol- |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | F21 | F22 | F23 | F24 | | | Power| | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | Prev | Mute | Play | Next | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNC] = {
+ {RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_VOLU},
+ {XXXXXXX, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_VOLD},
+ {_______, KC_F21, KC_F22, KC_F23, KC_F24, XXXXXXX, XXXXXXX, KC_POWER, XXXXXXX, XXXXXXX, XXXXXXX, _______},
+ {_______, _______, _______, _______, KC_MPRV, KC_MUTE, KC_MPLY, KC_MNXT, _______, _______, _______, _______}
+}
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case MOVE:
+ if (record->event.pressed) {
+ layer_on(_MOVE);
+ update_tri_layer(_MOVE, _SYMB, _MOUSE);
+ } else {
+ layer_off(_MOVE);
+ update_tri_layer(_MOVE, _SYMB, _MOUSE);
+ }
+ return false;
+ break;
+ case SYMB:
+ if (record->event.pressed) {
+ layer_on(_SYMB);
+ update_tri_layer(_MOVE, _SYMB, _MOUSE);
+ } else {
+ layer_off(_SYMB);
+ update_tri_layer(_MOVE, _SYMB, _MOUSE);
+ }
+ return false;
+ break;
+ case FUNC:
+ if (record->event.pressed) {
+ layer_on(_FUNC);
+ } else {
+ layer_off(_FUNC);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/planck/keymaps/callum/readme.md b/keyboards/planck/keymaps/callum/readme.md
new file mode 100644
index 000000000..71e200b9d
--- /dev/null
+++ b/keyboards/planck/keymaps/callum/readme.md
@@ -0,0 +1,71 @@
+# callum’s planck layout
+
+This is a layout for the grid planck, built with a few ideals in mind:
+
+- Consistent and minimal response times should be maintained. Keys that react differently depending on whether they are tapped or held, keys that react differently if they are double tapped, etc. should be avoided – they inevitably send their keycode later than a normal key – interrupting the immediate feedback from the screen. Therefore we restrict ourselves to chording as our only means of getting more than one symbol out of a single physical key.
+- The hands should never need to leave the home position. The usual culprit for this is the arrow cluster, so the arrow cluster should be as close to home as possible.
+- There should be two of every modifier (one on each side), otherwise certain long key combinations become hard to make.
+
+We have five layers. A `BASE` layer, in colemak; a `MOVE` layer, with an arrow cluster and other movement keys; a `SYMB` layer, with numbers and symbols; a `FUNC` layer, with function keys and media keys; and a `MOUSE` layer, with mouse emulation. The `MOUSE` layer is activated by holding the Move and Symb keys simultaniously.
+
+```
+/* BASE
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | - |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Bksp | A | R | S | T | D | H | N | E | I | O | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / | Shift|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Func | Ctrl | Alt | Cmd | Symb | Enter| Space| Move | Cmd | Alt | Ctrl | Func |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+/* MOVE
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | | Home | Up | End | | | Home | Up | End | | Esc |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Del | Caps | Left | Down | Right| | | Left | Down | Right| Caps | Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | Pg Up| Pg Dn| | | Pg Dn| Pg Up| | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+/* SYMB
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | – |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | £ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | ~ | ` | + | = | | | \ | [ | ] | { | } | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+/* MOUSE
+ * ,-----------------------------------------------------------------------------------.
+ * | | | ACC-2| ACC-1| ACC-0| | | SW-L | M-U | SW-R | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | MB-3 | MB-2 | MB-1 | | | M-L | M-D | M-R | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | SW-D | SW-U | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+/* FUNC
+ * ,-----------------------------------------------------------------------------------.
+ * | Reset| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | Vol+ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | Vol- |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | F21 | F22 | F23 | F24 | | | Power| | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | Prev | Mute | Play | Next | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+ ```
diff --git a/keyboards/planck/keymaps/cbbrowne/Makefile b/keyboards/planck/keymaps/cbbrowne/Makefile
index 581e08cd0..19e5c2a84 100644
--- a/keyboards/planck/keymaps/cbbrowne/Makefile
+++ b/keyboards/planck/keymaps/cbbrowne/Makefile
@@ -5,21 +5,22 @@
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = no # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = yes # Audio output on port C6
+AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+API_SYSEX_ENABLE = no # Enable SYSEX API (+5390)
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../Makefile
-endif \ No newline at end of file
+endif
diff --git a/keyboards/planck/keymaps/cbbrowne/config.h b/keyboards/planck/keymaps/cbbrowne/config.h
index 2d3df59bd..3a4ee907f 100644
--- a/keyboards/planck/keymaps/cbbrowne/config.h
+++ b/keyboards/planck/keymaps/cbbrowne/config.h
@@ -1,15 +1,28 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
+#ifndef NO_DEBUG
+#define NO_DEBUG
+#endif
+#ifndef NO_PRINT
+#define NO_PRINT
+#endif
+
#include "../../config.h"
+#define LEADER_TIMEOUT 300
+#define BACKLIGHT_BREATHING
+
/* cbbrowne user configuration */
#define randadd 53
#define randmul 181
#define randmod 167
-#endif
+/* Filler to make layering a bit clearer *
+ * borrowed from basic keymap */
+#define _______ KC_TRNS
+#endif
diff --git a/keyboards/planck/keymaps/cbbrowne/keymap.c b/keyboards/planck/keymaps/cbbrowne/keymap.c
index 14a5be170..0448a8d11 100644
--- a/keyboards/planck/keymaps/cbbrowne/keymap.c
+++ b/keyboards/planck/keymaps/cbbrowne/keymap.c
@@ -1,9 +1,10 @@
#include "planck.h"
#ifdef BACKLIGHT_ENABLE
- #include "backlight.h"
+#include "backlight.h"
#endif
#include "config.h"
#include "quantum.h"
+#include "version.h"
/* Each layer is given a name to aid in readability, which is then
used in the keymap matrix below. The underscores do not denote
@@ -61,13 +62,15 @@
- How about Alt-F1 thru Alt-F8?
- What's the keystroke to get from X to console these days?
- A layer for doing console switching would not be a bad idea
+ - I haven't got page-up/page-down, let's have that...
*/
enum layers {
- _QW = 0, /* Qwerty mapping */
- _LW, /* Lower layer, where top line has symbols !@#$%^&*() */
- _RS, /* Raised layer, where top line has digits 1234567890 */
- _KP, /* Key pad */
+ _QWERTY = 0, /* Qwerty mapping */
+ _LOWER, /* Lower layer, where top line has symbols !@#$%^&*() */
+ _RAISE, /* Raised layer, where top line has digits 1234567890 */
+ _KEYPAD, /* Key pad */
+ _ADJUST, /* Special Adjust layer coming via tri-placement */
};
enum macro_id {
@@ -75,38 +78,64 @@ enum macro_id {
M_USERNAME,
M_RANDDIGIT,
M_RANDLETTER,
- M_VERSION
+ M_VERSION,
+ MACRO_UPPER,
+ MACRO_LOWER,
};
+#define M_LOWER M(MACRO_LOWER)
+#define M_UPPER M(MACRO_UPPER)
+#define ROT_LED M(M_LED) /* Rotate LED */
+#define QWERTY DF(_QWERTY) /* Switch to QWERTY layout */
+#define KEYPAD DF(_KEYPAD) /* Switch to keypad */
+#define USERNAME M(M_USERNAME) /* shortcut for username */
+#define RANDDIG M(M_RANDDIGIT)
+#define RANDALP M(M_RANDLETTER)
+#define CTLENTER MT(MOD_RCTL, KC_ENT)
+#define SHIFTQUOTE MT(MOD_RSFT, KC_QUOT)
+#define ALTRIGHT MT(MOD_LALT, KC_RGHT)
+#define MVERSION M(M_VERSION)
+#define ALTSLASH LALT(KC_SLSH)
+
+
/* Note that Planck has dimensions 4 rows x 12 columns */
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_QW] = { /* Qwerty */
+[_QWERTY] = { /* Qwerty */
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
- {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT},
- {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT },
- {KC_TAB, M(M_LED), KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+ {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTLENTER},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SHIFTQUOTE },
+ {KC_TAB, KC_LALT, ROT_LED, KC_LGUI, M_LOWER, KC_SPC, KC_SPC, M_UPPER, KC_LEFT, KC_DOWN, KC_UP, ALTRIGHT}
+ /* Note that KC_SPC is recorded TWICE, so that either matrix position can activate it */
},
-[_RS] = { /* RAISE */
+[_RAISE] = { /* RAISE */
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
- {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
- {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_KP), DF(_KP), RESET, KC_TRNS},
- {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+ {_______, KC_4, KC_5, KC_6, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
+ {_______, KC_7, KC_8, KC_9, _______, _______, _______, QWERTY, KEYPAD, KEYPAD, ALTSLASH,_______},
+ {_______, KC_0, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_HOME, KC_END, KC_PGUP}
},
-[_LW] = { /* LOWER */
+[_LOWER] = { /* LOWER */
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
- {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
- {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_KP), DF(_KP), RESET, KC_TRNS},
- {KC_TRNS, DF(_KP), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+ {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QWERTY, KEYPAD, KEYPAD, ALTSLASH, _______},
+ {_______, KEYPAD, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_HOME, KC_END, KC_PGUP}
+ },
+[_KEYPAD] = { /* Key Pad */
+ {KC_ESC, USERNAME, MVERSION, KC_F10, KC_F11, KC_F12, KC_PGUP, KC_KP_ENTER, KC_7, KC_8, KC_9, KC_BSPC},
+ {KC_LCTL, RANDDIG, KC_F5, KC_F6, KC_F7, KC_F8, KC_PGDN, KC_KP_MINUS, KC_4, KC_5, KC_6, KC_PIPE},
+ {KC_LSFT, RANDALP, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_KP_PLUS, KC_1, KC_2, KC_3, KC_ENTER},
+ {KC_TAB, KC_LALT, ROT_LED, KC_LGUI, M_LOWER, KC_SPC, KC_SPC, QWERTY, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT}
},
-[_KP] = { /* Key Pad */
- {KC_ESC, M(M_USERNAME), M(M_VERSION), KC_F10, KC_F11, KC_F12, KC_PGUP, KC_KP_ENTER, KC_7, KC_8, KC_9, KC_BSPC},
- {KC_LCTL, M(M_RANDDIGIT), KC_F5, KC_F6, KC_F7, KC_F8, KC_PGDN, KC_KP_MINUS, KC_4, KC_5, KC_6, KC_PIPE},
- {KC_LSFT, M(M_RANDLETTER), KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_KP_PLUS, KC_1, KC_2, KC_3, KC_ENTER},
- {BL_STEP, M(M_LED), KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_SPC, DF(_QW), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT}
-}
+
+[_ADJUST] = { /* Adjustments - gonna shift the wild tools in here */
+ {ROT_LED,USERNAME,MVERSION, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
+ {_______, RANDDIG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
+ {_______, RANDALP, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______ },
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
+}
};
+/* What is fn_actions actually used for??? */
const uint16_t PROGMEM fn_actions[] = {
};
@@ -168,6 +197,39 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
unregister_code (KC_A + rval);
}
break;
+ case MACRO_UPPER:
+ if (record->event.pressed)
+ {
+ layer_on(_RAISE);
+#ifdef BACKLIGHT_ENABLE
+ breathing_speed_set(2);
+ breathing_pulse();
+#endif
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ else
+ {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ break;
+ case MACRO_LOWER:
+ if (record->event.pressed)
+ {
+ layer_on(_LOWER);
+#ifdef BACKLIGHT_ENABLE
+ breathing_speed_set(2);
+ breathing_pulse();
+#endif
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ else
+ {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ break;
+
}
return MACRO_NONE;
};
diff --git a/keyboards/planck/keymaps/cbbrowne/readme.md b/keyboards/planck/keymaps/cbbrowne/readme.md
index c676dd2c1..184142e0c 100644
--- a/keyboards/planck/keymaps/cbbrowne/readme.md
+++ b/keyboards/planck/keymaps/cbbrowne/readme.md
@@ -7,16 +7,10 @@ Christopher Browne
This was originally based on the default keyboard map, but I have been
doing sundry experimentation:
-1. Experiments
+1. Useful Experiments
----------------------------------------
- * To figure things out about the toolset
- * I'm an Emacs guy, so will be needing a fair bit of tuning
* It made sense to mess around some with keyboard maps.
- - I tried added Workman alongside Dvorak and Colemak
- - Boy, oh boy, these don't help!!!
- - I have done 30 years of learning of Emacs key mappings, and
- these alternative keyboards massively mess me up
- I added a keypad, originally based on keymaps/numpad.c, but
mighty substantially revised, as that one seems to be rotated 90
degrees from usual conventions for number pads
@@ -30,6 +24,26 @@ doing sundry experimentation:
- Key [2][2] aka "a" uses a random number generator to select a digit 0-9 at random
- Key [3][2] aka "z" uses a random number generator to select a letter a-z at random
- Key [1][3] aka "e" spits out the keymap version number
+ * Trying out sgoodwin's "hold Enter down to get Shift"
+ - Liking this Quite Well Enough...
+ - Applied this to both Shift and Quote
+ - It seems likely that Alt should get a right-hand-side, akin to this...
+ - Alt needs to move, and get a RHS
+ - Hence ALTRIGHT, and shifted ROT_LED over
+ - Emacs likes this!!! :-)
+ - I'm suspicious that I'll want to shift ROT_LED another location over,
+ so some modifier can replace the OS/KC_LGUI key
+ * I have added an alternate ADJUST layer that is activated via update_tri_layer()
+ - e.g. - LOWER+RAISE simultaneously
+ - This seems entirely more useful for handling my "special keys"
+ like the random numbers, user name, and such, than the keypad layer
+ * The _ADJUST layer provides a good place to have RESET
+ - But this isn't strictly enough; I want RESET somewhat accessible from
+ main layer lest an error hide that layer
+ - I never use the OS/KC_LGUI key (that's Command on MacOS, Windows
+ Key on Windows), so that's a good place to have it as a chord of
+ some sort
+
2. Some code structure ideas
---------------------------------------------------
@@ -48,8 +62,8 @@ doing sundry experimentation:
only need to fit 4 symbols onto each line, rather than 12.
I used enums to manage layer IDs and macro IDs so that I don't need
- to care (beyond "start at 0", and arguably that's not needed) about
- their values.
+ to care (beyond "start at 0", and arguably even that's not needed)
+ about their values.
3. Things I did not like about the default mapping
---------------------------------------------------------
@@ -62,3 +76,38 @@ doing sundry experimentation:
and shift ESC off the first column so KC_LCTL and KC_LALT can
be on the first column.
* I needed to swap ' and ENTER
+
+4. Unuseful experiments
+---------------------------------------------------------
+
+I have tried some things out that didn't turn out particularly well.
+I'll note some of these for posterity, hopefully helpful in not doing
+unwise things again...
+
+ * I tried added Workman alongside Dvorak and Colemak
+ - Boy, oh boy, these don't help!!!
+ - I have done 30 years of learning of Emacs key mappings, and
+ these alternative keyboards massively mess me up
+
+ * Space Cadet Shift; switching L_SHIFT to KC_LSP0, so that when I
+ just hit SHIFT, I get a left parens. In principle, this is great
+ for Lisping.
+ - Unfortunately, there are times when mouse interfaces use SHIFT
+ to allow selecting multiple items, and this really interferes
+ with that
+
+5. TODO
+---------------------------------------------------------
+
+ * I use tmux quite a lot; the mollat keymap seems to have some
+ interesting helpers. It might be interesting to add a "tmux
+ layer," or to have a few keys in a layer oriented towards that
+ * The mollat tmux layer also suggests some thoughts about Emacs
+ helpers.
+ * I do not presently have anything that handles X11 screen
+ switching, as with Control-Alt-various
+ * I ought to probably look into KC_LEAD, to have some key combos
+ that do not need to be concurrent
+ * The jeebak keymap seems to have some neat ideas:
+ - Number layer which is aggressive about having numbers in several places
+ - Touch layer seems interesting
diff --git a/keyboards/planck/keymaps/circuit/Makefile b/keyboards/planck/keymaps/circuit/Makefile
new file mode 100644
index 000000000..1ed0ff956
--- /dev/null
+++ b/keyboards/planck/keymaps/circuit/Makefile
@@ -0,0 +1,25 @@
+
+# Build Options
+# change to "no" to disable the options, or define them in the makefile.mk in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+TAP_DANCE_ENABLE = yes # Enables the double-tap functionality of keys
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/circuit/Readme.md b/keyboards/planck/keymaps/circuit/Readme.md
new file mode 100644
index 000000000..cbdf5de4e
--- /dev/null
+++ b/keyboards/planck/keymaps/circuit/Readme.md
@@ -0,0 +1,44 @@
+##Design goals:
+1. Arrow keys always available.
+2. As close to a to my US layout 107-key QWERTY keyboard as I could manage, (i.e. as few arbitrary decisions as possible).
+3. Togglable DVORAK keyboard.
+4. most frequently used things in the easiest to reach places.
+5. Ability to game on it, just for fun.
+
+My layout differs from most in the placement the ARROW keys, `ESC`, VOL keys, use of double-tap `CAPS`, and the GAME LOCK function.
+
+I put the layer buttons in the usual spots. I originally wanted only function/symbols layer, but that proved detrimental. I use some timed press actions to save some space, but this has been accounted for, (see GAME LOCK below). I'm not fully satisfied with the current product (see NOTES below), so it may change in the future.
+
+##Effective layers:
+* Default later is obviously your letters and modifiers.
+* Lower layer [NUMBER] is your numbers and punctuation.
+* Upper layer [ACTION] is your symbols and actions.
+* Function layer is the infrequently used function keys, layout toggle, game lock, and reset.
+
+There is also a toggle for the DVORAK/QWERTY layers, but in normal typing this is not of concern.
+
+###Special keys:
+* `RSHFT` and `ENTER` are combined. Tap once for `ENTER` and hold for `RSHFT`. `ENTER` will be registered on release if released within 200 ms, else `RSHFT` is registered starting at 201 ms until release.
+* If for some reason, this interferes with the normal usage of the `ENTER` key in any way, (some problem that may never happen), I have added a regular non-modified `ENTER` key on the same key in the [ACTION] layer.
+* `LSHFT` and `CAPS` are also combined. The key works like a normal `LSHFT` unless double-tapped, in which case it counts as `CAPS`. This functionality unfortunately delays all key presses by at most 200 ms, but I have added ways to disable this both temporarily or permanently, described below.
+* A failsafe `CAPS` key is on the same key in the [ACTION] layer.
+* There are `UNDO`, `CUT`, `COPY`, and `PASTE` keys. This was intended to be a universal way to use these commands since in macOS cut is `⌘ + C` but in Windows it is `⌃ + C`. Unfortunately these special keys only work in Windows. ¯\\\_(ツ)\_/¯
+
+##Game lock:
+**TL;DR** the game lock toggle disables the double-tap `CAPS`, and disables `GUI` keys (WINDOWS key).
+
+I wished for this keyboard to be fully usable in the most demanding of games. The most demanding game I know of is ARMA 3 which has a binding to practically every individual key of a 107-key keyboard. This means I need to have pretty much every key possible somewhere. I also wanted the keyboard to be responsive in games for every critical keypress. This means having a way to disable features that introduce an inherent delay to registering keys, such as double-tap.
+
+I do not expect to see this used by the pros, but I enjoyed making it. As for use in ARMA 3, I got a little ways into the APEX campaign, but I found a few flaws. For Example, I cannot enable my HUD GPS since that requires `RCTRL`+`M` but `RCTRL` is not bound. The obvious fix is to rebind the action to a new key, but I still take this as a shortcoming of my layout.
+
+###If you wish to disable double-tap
+####Disable it temporarily
+Turn on the game lock. While on, it registers as normal `LSHFT` and has no delay. Whether in game mode or not, `CAPS` is on the same key in the [ACTION] layer.
+
+####Disable it permanently
+Open the `Makefile` and set `TAP_DANCE_ENABLE = no`. I wrote the layout to compensate for this change, and no further changes to the code should be necessary. Whether or not it's disabled, `CAPS` is on the same key in the [ACTION] layer.
+
+##Notes:
+* `ALT` and `GUI` are reversed compared to the normal US layout. I will also be using my Planck on my mac, and that's the standard in the Apple ecosystem. I may add a special compiler flag in the future to swap the two.
+* The DVORAK `Z` key is to the right of the `S` key instead of under it as part of a compromise I made to keep the ARROW keys available on the default layer. I prioritize the ARROW keys, so the DVORAK layout is the one to suffer.
+* I also support the little tones that the default Planck layout features, identical to them too, (minus those for layouts I don't support). To enable it, open the `Makefile` and set `AUDIO_ENABLE = yes`.
diff --git a/keyboards/planck/keymaps/circuit/config.h b/keyboards/planck/keymaps/circuit/config.h
new file mode 100644
index 000000000..22244f4a7
--- /dev/null
+++ b/keyboards/planck/keymaps/circuit/config.h
@@ -0,0 +1,91 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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"
+
+/* Tap-dance interval definition */
+#define TAPPING_TERM 200
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x6060
+#define MANUFACTURER Ortholinear Keyboards
+#define PRODUCT The Planck Keyboard
+#define DESCRIPTION A compact ortholinear keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+/* Planck PCB default pin-out */
+#define MATRIX_ROW_PINS { D0, D5, B5, B6 }
+#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
+#define UNUSED_PINS
+
+#define BACKLIGHT_PIN B7
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/*
+ * 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
+
+#ifdef SUBPROJECT_rev3
+ #include "rev3/config.h"
+#endif
+#ifdef SUBPROJECT_rev4
+ #include "rev4/config.h"
+#endif
+
+#endif
diff --git a/keyboards/planck/keymaps/circuit/keyboard-layout.png b/keyboards/planck/keymaps/circuit/keyboard-layout.png
new file mode 100644
index 000000000..e9296a6d9
--- /dev/null
+++ b/keyboards/planck/keymaps/circuit/keyboard-layout.png
Binary files differ
diff --git a/keyboards/planck/keymaps/circuit/keymap.c b/keyboards/planck/keymaps/circuit/keymap.c
new file mode 100644
index 000000000..63e01f389
--- /dev/null
+++ b/keyboards/planck/keymaps/circuit/keymap.c
@@ -0,0 +1,258 @@
+// Layout picture at http://www.keyboard-layout-editor.com/#/gists/125febfad6960add078e6f14256539b6
+
+#include "planck.h"
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+#include "audio.h"
+#endif
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _DVORAK 1
+#define _LOCKED 2
+#define _NUMBER 3
+#define _ACTION 4
+#define _FUNCTN 5
+
+enum planck_keycodes {
+ QWERTY = SAFE_RANGE,
+ DVORAK,
+ NUMBER,
+ ACTION
+};
+
+// Key code names
+#define SFT_ENT FUNC(0) // Tap for enter, hold for right shift
+#define LOCK FUNC(1)
+#define KC_PSTE KC_PASTE
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+#ifdef TAP_DANCE_ENABLE
+#define SFT_CAP TD(0) // Left shift, double tap for caps
+#endif
+#ifndef TAP_DANCE_ENABLE
+#define SFT_CAP KC_LSFT // Regular left shift
+#endif
+
+// Tap Dance Definitions
+#ifdef TAP_DANCE_ENABLE
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [0] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS)
+};
+#endif
+
+// Function definitions
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),
+ [1] = ACTION_LAYER_TOGGLE(_LOCKED)
+};
+
+// Layout definitions
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | Q | W | E | R | T | Y | U | I | O | P | BKSP |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | A | S | D | F | G | H | J | K | L | ; | ' |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |*Shift| Z | X | C | V | B | N | M | , | . | Up |SftEnt|
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Ctrl | Alt | Cmd | Vol- | ACTN | Space | NUMS | Vol+ | Left | Down | Left |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+ {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {SFT_CAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, SFT_ENT},
+ {KC_LCTL, KC_LALT, KC_LGUI, KC_VOLD, ACTION, KC_SPC, KC_SPC, NUMBER, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT}
+},
+
+/* DVORAK
+ * ,-----------------------------------------------------------------------------------.
+ * | | ' | , | . | P | Y | F | G | C | R | L | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | A | O | E | U | I | D | H | T | N | S | Z |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | ; | Q | J | K | X | B | M | W | V | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = {
+ {_______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______},
+ {_______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_Z },
+ {_______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* LOCK
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| | | | | | | | | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | NULL | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOCKED] = {
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ {KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ {_______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* NUMBERS
+ * ,-----------------------------------------------------------------------------------.
+ * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | ~ | NULL | NULL | NULL | | | _ | + | { | } | ? | / |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | ` | NULL | NULL | NULL | \ | - | = | [ | ] | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | NULL | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_NUMBER] = {
+ {_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______},
+ {_______, KC_TILD, XXXXXXX, XXXXXXX, XXXXXXX, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_QUES, KC_SLSH},
+ {_______, KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, _______},
+ {_______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______}
+},
+
+/* ACTIONS
+ * ,-----------------------------------------------------------------------------------.
+ * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | CAPS | Undo | Cut | Copy | Paste| NULL | NULL | NULL | NULL | NULL | PgUp | Enter|
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | Mute | | NULL | | NULL | Home | PgDn | End |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ACTION] = {
+ {_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL },
+ {_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
+ {KC_CAPS, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_ENT },
+ {_______, _______, _______, KC_MUTE, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END }
+},
+
+/* FUNCTIONS
+ * ,-----------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | NULL | NULL | NULL | NULL | NULL |QWERTY|DVORAK| NULL | NULL | NULL | NULL | NULL |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Reset| NULL | Lock | NULL | | NULL | | NULL | NULL | NULL | NULL |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNCTN] = {
+ {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 },
+ {KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24 },
+ {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QWERTY, DVORAK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
+ {RESET, XXXXXXX, LOCK, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
+}
+
+};
+
+#ifdef AUDIO_ENABLE
+float tone_startup[][2] = SONG(STARTUP_SOUND);
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ if (IS_LAYER_ON(_DVORAK)) {
+#ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+#endif
+ layer_off(_DVORAK);
+ }
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ if (!IS_LAYER_ON(_DVORAK)) {
+#ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
+#endif
+ layer_on(_DVORAK);
+ }
+ }
+ return false;
+ break;
+ case NUMBER:
+ if (record->event.pressed) {
+ layer_on(_NUMBER);
+ update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
+ } else {
+ layer_off(_NUMBER);
+ update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
+ }
+ return false;
+ break;
+ case ACTION:
+ if (record->event.pressed) {
+ layer_on(_ACTION);
+ update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
+ } else {
+ layer_off(_ACTION);
+ update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+void matrix_init_user(void) {
+#ifdef AUDIO_ENABLE
+ startup_user();
+#endif
+}
+
+#ifdef AUDIO_ENABLE
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif
diff --git a/keyboards/planck/keymaps/dbroqua/keymap.c b/keyboards/planck/keymaps/dbroqua/keymap.c
new file mode 100644
index 000000000..33929cb3a
--- /dev/null
+++ b/keyboards/planck/keymaps/dbroqua/keymap.c
@@ -0,0 +1,234 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "planck.h"
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _MULTIMEDIA 3
+#define _ADJUST 4
+
+enum planck_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ BACKLIT
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+// Func macro definitions.
+#define SFT_TAB FUNC(0) // Tap for Enter, hold for Shift
+
+// Enable these functions using FUNC(n) macro.
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_TAP_KEY(_MULTIMEDIA, KC_TAB)
+ };
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | GUI | AltGr| Alt | Lower| Space | Raise| Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+ {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {SFT_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
+ {KC_LCTL, KC_LGUI, KC_RALT, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT}
+},
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | | | ( | ) |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| | | | | | | | | | { | } |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | [ | ] |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Home | PgDwn| PgUp | End |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = {
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LPRN, KC_RPRN},
+ {BACKLIT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LCBR, KC_RCBR},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC},
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
+},
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | - | = |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | ` |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | \ | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = {
+ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_GRV},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* _MULTIMEDIA
+ * ,-----------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Psc | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | Mute | Vol+ | Vol- | | | |Insert|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Prev | Play | Next | Del |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_MULTIMEDIA] = {
+ {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12},
+ {_______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, KC_INS},
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_DEL}
+},
+
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset| | | | | | | | | | Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = {
+ {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
+ {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______},
+ {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+}
+
+
+};
+
+#ifdef AUDIO_ENABLE
+
+float tone_startup[][2] = SONG(STARTUP_SOUND);
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+float tone_plover[][2] = SONG(PLOVER_SOUND);
+float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif \ No newline at end of file
diff --git a/keyboards/planck/keymaps/dbroqua/layout.png b/keyboards/planck/keymaps/dbroqua/layout.png
new file mode 100644
index 000000000..37b74cdc5
--- /dev/null
+++ b/keyboards/planck/keymaps/dbroqua/layout.png
Binary files differ
diff --git a/keyboards/planck/keymaps/dbroqua/readme.md b/keyboards/planck/keymaps/dbroqua/readme.md
new file mode 100644
index 000000000..777c76abd
--- /dev/null
+++ b/keyboards/planck/keymaps/dbroqua/readme.md
@@ -0,0 +1,14 @@
+# Dbroqua Layout
+
+![Layout](layout.png "Dbroqua Keymap")
+
+* Online keyboard layout editor: http://www.keyboard-layout-editor.com/#/gists/e77306f9d14cc93fa26123b93b106474
+* Online keyboard layout editor (lower layer): http://www.keyboard-layout-editor.com/#/gists/786e03f6fbd274cb4f4e77a3d67f85fa
+* Online keyboard layout editor (raise layer): http://www.keyboard-layout-editor.com/#/gists/2e22c71f6910103c20d595d1caa713d6
+* Online keyboard layout editor (multimedia layer): http://www.keyboard-layout-editor.com/#/gists/132ebf8053508a7a81dfa8e0756edb40
+
+# Programming Instructions:
+Enter into programming mode and run the following command.
+```
+$ sudo KEYMAP=dbroqua make dfu
+``` \ No newline at end of file
diff --git a/keyboards/planck/keymaps/default/Makefile b/keyboards/planck/keymaps/default/Makefile
index 581e08cd0..457a3d01d 100644
--- a/keyboards/planck/keymaps/default/Makefile
+++ b/keyboards/planck/keymaps/default/Makefile
@@ -1,25 +1,3 @@
-
-
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = yes # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
ifndef QUANTUM_DIR
include ../../../../Makefile
-endif \ No newline at end of file
+endif
diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c
index 5f71ae7d1..1b1b998b2 100644
--- a/keyboards/planck/keymaps/default/keymap.c
+++ b/keyboards/planck/keymaps/default/keymap.c
@@ -14,13 +14,16 @@ extern keymap_config_t keymap_config;
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
-#define _QWERTY 0
-#define _COLEMAK 1
-#define _DVORAK 2
-#define _LOWER 3
-#define _RAISE 4
-#define _PLOVER 5
-#define _ADJUST 16
+
+enum planck_layers {
+ _QWERTY,
+ _COLEMAK,
+ _DVORAK,
+ _LOWER,
+ _RAISE,
+ _PLOVER,
+ _ADJUST
+};
enum planck_keycodes {
QWERTY = SAFE_RANGE,
@@ -107,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LOWER] = {
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
- {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______},
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
},
@@ -125,7 +128,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_RAISE] = {
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
- {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______},
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
},
diff --git a/keyboards/planck/keymaps/espynn/Makefile b/keyboards/planck/keymaps/espynn/Makefile
new file mode 100644
index 000000000..44a030ba3
--- /dev/null
+++ b/keyboards/planck/keymaps/espynn/Makefile
@@ -0,0 +1,63 @@
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device.
+# Please customize your programmer settings(PROGRAM_CMD)
+#
+# make teensy = Download the hex file to the device, using teensy_loader_cli.
+# (must have teensy_loader_cli installed).
+#
+# make dfu = Download the hex file to the device, using dfu-programmer (must
+# have dfu-programmer installed).
+#
+# make flip = Download the hex file to the device, using Atmel FLIP (must
+# have Atmel FLIP installed).
+#
+# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
+# (must have dfu-programmer installed).
+#
+# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
+# (must have Atmel FLIP installed).
+#
+# make debug = Start either simulavr or avarice as specified for debugging,
+# with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+# bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+# Build Options
+# change to "no" to disable the options, or define them in the makefile.mk in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/espynn/keyboard-layout.jpg b/keyboards/planck/keymaps/espynn/keyboard-layout.jpg
new file mode 100644
index 000000000..55e5396bf
--- /dev/null
+++ b/keyboards/planck/keymaps/espynn/keyboard-layout.jpg
Binary files differ
diff --git a/keyboards/planck/keymaps/espynn/keymap.c b/keyboards/planck/keymaps/espynn/keymap.c
new file mode 100644
index 000000000..4a3fe32b8
--- /dev/null
+++ b/keyboards/planck/keymaps/espynn/keymap.c
@@ -0,0 +1,151 @@
+#include "planck.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+#ifdef BACKLIGHT_ENABLE
+ #include "backlight.h"
+#endif
+#define PREVENT_STUCK_MODIFIERS
+extern keymap_config_t keymap_config;
+
+// Symbolic names for macro IDs.
+#define _QWERTY 0 // QUERTY layer
+#define _LOWER 1 // Lower layer
+#define _RAISE 2 // Raise layer
+#define _CUSTOM 3 // Custom layer (LOWER + RAISE)
+#define _BL 4 // Backlight
+#define _CUS0 5 // Mobile#
+#define _CUS1 6 // signature
+#define _CUS2 7 // macro 2
+#define _CUS3 8 // macro 3
+#define _CUS4 9 // macro 4
+#define _CUS5 10 // email
+#define _COPY 11 // copy
+#define _PASTE 12 // paste
+#define _CUT 13 // cut
+
+// Macro shortcuts.
+#define QWERTY M(_LOWER)
+#define LOWER M(_LOWER)
+#define RAISE M(_RAISE)
+#define CUSTOM M(_CUSTOM)
+#define BL M(_BL)
+#define CUS0 M(_CUS0)
+#define CUS1 M(_CUS1)
+#define CUS2 M(_CUS2)
+#define CUS3 M(_CUS3)
+#define CUS4 M(_CUS4)
+#define CUS5 M(_CUS5)
+#define COPY M(_COPY)
+#define PASTE M(_PASTE)
+#define CUT M(_CUT)
+
+// Func macro definitions.
+#define LWR_PGDN FUNC(0) // Tap for PgDn, hold for LOWER
+#define RSE_PGUP FUNC(1) // Tap for PgUp, hold for RAISE
+#define CTL_CAPS FUNC(2) // Tap for Caps, hold for Ctrl (DOESN'T SEEM TO WORK)
+#define SFT_ENT FUNC(3) // Tap for Enter, hold for Shift
+#define ZM_NRM FUNC(4) // Zoom normal
+#define ZM_IN FUNC(5) // Zoom out
+#define ZM_OUT FUNC(6) // Zoom in
+
+// Enable these functions using FUNC(n) macro.
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN),
+ [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP),
+ [2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS),
+ [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),
+ [4] = ACTION_MODS_KEY(MOD_LCTL, KC_0),
+ [5] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS),
+ [6] = ACTION_MODS_KEY(MOD_LCTL, KC_PLUS),
+ [7] = ACTION_MODS_KEY(MOD_LCTL, KC_UNDS),
+ };
+
+// This config can be found at Keyboard layout editor site: http://goo.gl/zjXL2l
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_QWERTY] = { /* QWERTY */
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {KC_DEL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT},
+ {KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+[_LOWER] = { /* LOWER */
+ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_QUOT, KC_DQT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+ {KC_TRNS, ZM_NRM, ZM_IN, ZM_OUT, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+},
+[_RAISE] = { /* RAISE */
+ {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_LCBR, KC_BSLS, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_PIPE, KC_GRV, KC_TILD, KC_LBRC, KC_LBRC, KC_TRNS, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[_CUSTOM] = { /* CUSTOM */
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CUS4, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CUS0, CUS3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+ {KC_TRNS, KC_TRNS, CUT, COPY, PASTE, CUS1, CUS5, CUS2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+ {BL, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+}
+};
+
+// Set a layer persistantly.
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+// Macro actions for each corresponding ID.
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case _RAISE: // Raised layer.
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _CUSTOM);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _CUSTOM);
+ }
+ break;
+ case _LOWER: // Lowered layer.
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _CUSTOM);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _CUSTOM);
+ }
+ break;
+ case _BL: // Backlight
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+#ifdef BACKLIGHT_ENABLE
+ backlight_step();
+#endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ case _CUS0: // enter your mobile# here
+ return MACRODOWN(T(9), T(9), T(9), T(MINS),T(9), T(9), T(9), T(MINS),T(9), T(9), T(9), T(9),END);
+ case _CUS1: // signature line for email
+ return MACRODOWN(T(ENT), T(ENT), T(MINS), T(J), T(W), END);
+ case _CUS2: // Custom macro 2
+ return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_L), UP(KC_LSFT), END );
+ case _CUS3: // custom macro 3
+ return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_F), UP(KC_LSFT), END );
+ case _CUS4: // custom macro 4
+ return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_I), UP(KC_LSFT), END );
+ case _CUS5: // Enter your email here
+ return MACRODOWN( TYPE(KC_F),
+ DOWN(KC_LSFT), TYPE(KC_2), UP(KC_LSFT),
+ TYPE(KC_G), TYPE(KC_M), TYPE(KC_A), TYPE(KC_I), TYPE(KC_L), TYPE(KC_DOT), TYPE(KC_C), TYPE(KC_O), TYPE(KC_M), END );
+ case _CUT: //cut macro
+ return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_X), UP(KC_LCTL), END );
+ case _COPY: // copy macro
+ return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_C), UP(KC_LCTL), END );
+ case _PASTE: // paste macro
+ return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_V), UP(KC_LCTL), END );
+ };
+ return MACRO_NONE;
+} \ No newline at end of file
diff --git a/keyboards/planck/keymaps/espynn/layout.json b/keyboards/planck/keymaps/espynn/layout.json
new file mode 100644
index 000000000..38ccc3452
--- /dev/null
+++ b/keyboards/planck/keymaps/espynn/layout.json
@@ -0,0 +1,271 @@
+[
+ {
+ "backcolor": "#858585",
+ "name": "Planck 40%",
+ "author": "James Folkert",
+ "background": {
+ "name": "Aluminium brushed",
+ "style": "background-image: url('/bg/metal/aluminum_texture1642.jpg');"
+ },
+ "switchMount": "cherry",
+ "switchBrand": "cherry",
+ "switchType": "MX1A-A1xx",
+ "pcb": true,
+ "plate": true
+ },
+ [
+ {
+ "fa": [
+ 2,
+ 2,
+ 0,
+ 2
+ ]
+ },
+ "F1\n1\n\n!\n\n\n\n\n\n<i class='kb kb-Tab-2'></i>",
+ "F2\n2\n\n@\n\n\n\n\n\nQ",
+ "F3\n3\n\n#\n\n\n\n\n\nW",
+ "F4\n4\n\n$\n\n\n\n\n\nE",
+ "F5\n5\n\n%\n\n\n\n\n\nR",
+ "F6\n6\n\n^\n\n\n\n\n\nT",
+ "F7\n6\n\n&\n\n\n\n\n\nY",
+ "F8\n8\n\n*\nMacro4\n\n\n\n\nU",
+ "F9\n9\n\n(\n\n\n\n\n\nI",
+ {
+ "fa": [
+ 0,
+ 0,
+ 0,
+ 2
+ ]
+ },
+ "F10\n0\n\n)\n\n\n\n\n\nO",
+ {
+ "fa": [
+ 2,
+ 2,
+ 0,
+ 2
+ ]
+ },
+ "F11\n-\n\n_\n\n\n\n\n\nP",
+ "F12\n=\n\n+\n\n\n\n\n\n<i class='kb kb-Unicode-BackSpace-DeleteLeft-Big'></i>"
+ ],
+ [
+ {
+ "a": 7,
+ "f": 3
+ },
+ "<i class='mss mss-Unicode-DeleteRight-Big-2'></i>",
+ {
+ "f": 3
+ },
+ "A",
+ {
+ "f": 3
+ },
+ "S",
+ {
+ "f": 3
+ },
+ "D",
+ {
+ "t": "#ff0000",
+ "a": 4,
+ "f": 3
+ },
+ "\n(\n\n\n\n\n\n\n\nF",
+ {
+ "t": "#000000",
+ "f": 3
+ },
+ "\n)\n\n\n\n\n\n\n\nG",
+ {
+ "f": 3
+ },
+ "\n{\n\n\nMacro0\n\n\n\n\nH",
+ {
+ "t": "#ff0000",
+ "f": 3
+ },
+ "\n}\n\n\nMacro3\n\n\n\n\nJ",
+ {
+ "t": "#000000",
+ "f": 3
+ },
+ "{\n\n\n\n\n\n\n\n\nK",
+ {
+ "f": 3
+ },
+ "{\n\n\n\n\n\n\n\n\nL",
+ {
+ "fa": [
+ 2,
+ 2,
+ 2,
+ 2,
+ 0,
+ 0,
+ 0,
+ 2
+ ]
+ },
+ "\\\n\n|\n\n\n\n\n:\n\n;",
+ {
+ "a": 7,
+ "fa": [
+ 9
+ ]
+ },
+ "<i class='mss mss-Unicode-Enter-3'></i>"
+ ],
+ [
+ {
+ "f": 3
+ },
+ "Shift",
+ {
+ "f": 3
+ },
+ "Z",
+ {
+ "f": 3
+ },
+ "X\n\n\n\nCut",
+ {
+ "f": 3
+ },
+ "C\n\n\n\nCopy",
+ {
+ "a": 4,
+ "fa": [
+ 2,
+ 2,
+ 2,
+ 2
+ ]
+ },
+ "\\\n[\n|\n{\nPaste\n\n\n\n\nV",
+ "|\n]\n\n}\nMacro1\n\n\n\n\nB",
+ "`\n'\n~\n\"\nMacro5\n\n\n\n\nN",
+ "~\n\"\n\n\nMacro2\n\n\n\n\nM",
+ {
+ "fa": [
+ 2,
+ 2,
+ 2,
+ 2,
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ },
+ "[\n\n{\n\n\n\n\n<\n\n,",
+ "[\n\n{\n\n\n\n\n\n\n.",
+ {
+ "a": 6
+ },
+ "\n\n?\n\n\n\n\n\n/",
+ {
+ "a": 4,
+ "fa": [
+ 2,
+ 2,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 9,
+ 0
+ ]
+ },
+ "\n\n\n<i class='kb kb-Arrows-Bottom-4'></i>Shift\n\n\n\n\n<i class='mss mss-Unicode-Enter-3'></i>\n\n<i class='kb kb-Arrows-Bottom-4'></i>Shift"
+ ],
+ [
+ {
+ "a": 7,
+ "f": 3
+ },
+ "Ctrl\n\n\n\nBLight",
+ {
+ "a": 4,
+ "fa": [
+ 2,
+ 1,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 9,
+ 9
+ ]
+ },
+ "\nZNorm\n\n\nRESET\n\n\n\n\n<i class='mss mss-Unicode-Escape-3'></i>",
+ {
+ "fa": [
+ 2,
+ 1,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 9,
+ 6
+ ]
+ },
+ "\nZIn\n\n\n\n\n\n\n\n<i class='kb kb-logo-windows-8'></i>",
+ {
+ "fa": [
+ 2,
+ 1,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 9,
+ 9
+ ]
+ },
+ "\nZOut\n\n\n\n\n\n\n\n<i class='kb kb-Unicode-Alternate-1'></i>",
+ {
+ "a": 7,
+ "fa": [
+ 9
+ ]
+ },
+ "&dArr;",
+ {
+ "a": 4,
+ "fa": [
+ 9,
+ 5,
+ 5
+ ],
+ "w": 2
+ },
+ "\n<i class='kb kb-Unicode-Page-Down-3'></i>\n<i class='kb kb-Unicode-Page-Up-3'></i>",
+ {
+ "a": 7
+ },
+ "&uArr;",
+ {
+ "a": 4,
+ "fa": [
+ 2
+ ]
+ },
+ "<i class='kb kb-Multimedia-FastForward-End'></i>\n\n\n\n\n\n\n\n\n&larr;",
+ "<i class='kb kb-Multimedia-Volume-Down-1'></i>\n\n\n\n\n\n\n\n\n&darr;",
+ "<i class='kb kb-Multimedia-Volume-Up-1'></i>\n\n\n\n\n\n\n\n\n&uarr;",
+ "<i class='kb kb-Multimedia-Play-Pause'></i>\n\n\n\n\n\n\n\n\n&rarr;"
+ ]
+] \ No newline at end of file
diff --git a/keyboards/planck/keymaps/espynn/readme.md b/keyboards/planck/keymaps/espynn/readme.md
new file mode 100644
index 000000000..8882f4601
--- /dev/null
+++ b/keyboards/planck/keymaps/espynn/readme.md
@@ -0,0 +1,18 @@
+# Espynn's keymap for Planck Ortholinear 40% Mechanical Keyboard
+Created by James Folkert: https://twitter.com/trekloFsemaJ
+Added several custom functions to the keymap from the "ab" map. Special thanks to "mollat" for demonstration of macros in their keymap.c
+
+
+![Layout](keyboard-layout.png "Practical Keymap")
+
+
+* Online keyboard layout editor: http://www.keyboard-layout-editor.com/
+* [JSON of raw layout] (layout.json "JSON of raw layout")
+
+# Notes
+* Simultaneous RAISE+LOWER enters CUSTOM layer. Several custom keymaps are here
+* I disregarded the advice of Jack and used macros for passwords. I accept my fate. These have been abstracted to macros 2, 3, and 4
+* add your mobile and email to the keymap before make
+* RAISE and LOWER also acts as PgUp and PgDn when tapped.
+* [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users. (not sure if this works)
+* Bracket/ paran/ brace keys are placed in the center of the keyboard for programmer's convenience. \ No newline at end of file
diff --git a/keyboards/planck/keymaps/experimental/Makefile b/keyboards/planck/keymaps/experimental/Makefile
index 877c4aed0..3a8250a9b 100644
--- a/keyboards/planck/keymaps/experimental/Makefile
+++ b/keyboards/planck/keymaps/experimental/Makefile
@@ -16,6 +16,7 @@ AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+ONEHAND_ENABLE = yes # Enable one-hand typing
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/planck/keymaps/experimental/config.h b/keyboards/planck/keymaps/experimental/config.h
index 52acd1905..cc093bee4 100644
--- a/keyboards/planck/keymaps/experimental/config.h
+++ b/keyboards/planck/keymaps/experimental/config.h
@@ -9,7 +9,7 @@
/* ws2812 RGB LED */
#define RGB_DI_PIN B1
-#define RGBLIGHT_TIMER
+#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 8 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
diff --git a/keyboards/planck/keymaps/experimental/keymap.c b/keyboards/planck/keymaps/experimental/keymap.c
index d9303fcae..569dbcc8a 100644
--- a/keyboards/planck/keymaps/experimental/keymap.c
+++ b/keyboards/planck/keymaps/experimental/keymap.c
@@ -8,6 +8,7 @@
#endif
#include "eeconfig.h"
+#include "version.h"
extern keymap_config_t keymap_config;
@@ -69,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
- {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+ {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_FN0, KC_FN0, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
/* Colemak
@@ -87,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
- {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+ {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_FN0, KC_FN0, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
/* Dvorak
@@ -105,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
{KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
- {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+ {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_FN0, KC_FN0, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
/* Lower
@@ -185,7 +186,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
const uint16_t PROGMEM fn_actions[] = {
-
+ ACTION_SWAP_HANDS_TAP_KEY(KC_SPC),
};
#ifdef AUDIO_ENABLE
diff --git a/keyboards/planck/keymaps/impossible/Makefile b/keyboards/planck/keymaps/impossible/Makefile
new file mode 100644
index 000000000..cf2c31f0f
--- /dev/null
+++ b/keyboards/planck/keymaps/impossible/Makefile
@@ -0,0 +1,27 @@
+# Please remove if no longer applicable
+$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
+$(warning Please disable some options in the Makefile to resolve)
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = yes # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/planck/keymaps/impossible/keymap.c b/keyboards/planck/keymaps/impossible/keymap.c
new file mode 100644
index 000000000..503976fa2
--- /dev/null
+++ b/keyboards/planck/keymaps/impossible/keymap.c
@@ -0,0 +1,242 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "planck.h"
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+
+#define _WORKMAN 0
+#define _FN 1
+#define _QWERTY 2
+#define _QW_FN 3
+#define _PLOVER 4
+#define _ADJ 5
+
+enum planck_keycodes {
+ WORKMAN = SAFE_RANGE,
+ QWERTY,
+ PLOVER
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Workman Alpha-numeric
+ * ,-----------------------------------------------------------------------------------------------.
+ * | Q | D | R | W | B | F | U | P | J | 7 | 8 | 9 |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | A | S | H | T | G | N | E | O | I | 4 | 5 | 6 |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | Z | X | M | C | V | L | Y | K | Up | 1 | 2 | 3 |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * |Alt/Tab|Gui/Esc| , |CTL/Bsp| Fn/Ent|SFT/SPC| . | Left | Down | Right | 0 |Adj/Ent|
+ * `-----------------------------------------------------------------------------------------------'
+ */
+
+[_WORKMAN] = {
+ {KC_Q, KC_D, KC_R, KC_W, KC_B, KC_F, KC_U, KC_P, KC_J, KC_KP_7, KC_KP_8, KC_KP_9},
+ {KC_A, KC_S, KC_H, KC_T, KC_G, KC_N, KC_E, KC_O, KC_I, KC_KP_4, KC_KP_5, KC_KP_6},
+ {KC_Z, KC_X, KC_M, KC_C, KC_V, KC_L, KC_Y, KC_K, KC_UP, KC_KP_1, KC_KP_2, KC_KP_3},
+ {ALT_T(KC_TAB), GUI_T(KC_ESC), KC_COMM, CTL_T(KC_BSPC), LT(_FN, KC_ENT), SFT_T(KC_SPC), KC_DOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_KP_0, LT(_ADJ, KC_ENT)}
+},
+
+/* FN-key held (Workman)
+ * ,-----------------------------------------------------------------------------------------------.
+ * | ! | @ | # | $ | % | ^ | & | * | F12 | F7 | F8 | F9 |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | Tab | [ | ] | - | Del | ' | ( | ) | F11 | F4 | F5 | F6 |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | Menu | | | = | \ | / | | | PgUp | F1 | F2 | F3 |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * |Alt/Tab| Gui | ~ |CTL/Bsp| Fn/Ent|SFT/Spc| ; | Home | PgDn | End | F10 |Adj/Ent|
+ * `-----------------------------------------------------------------------------------------------'
+ */
+
+[_FN] = {
+ {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_F12, KC_F7, KC_F8, KC_F9},
+ {KC_TAB, KC_LBRACKET, KC_RBRACKET, KC_MINUS, KC_DELETE, KC_QUOT, KC_LPRN, KC_RPRN, KC_F11, KC_F4, KC_F5, KC_F6},
+ {KC_MENU, _______, _______, KC_EQUAL, KC_BSLS, KC_SLSH, XXXXXXX, XXXXXXX, KC_PGUP, KC_F1, KC_F2, KC_F3},
+ {_______, KC_LGUI, KC_GRAVE, _______, _______, _______, KC_SCOLON, KC_HOME, KC_PGDN, KC_END, KC_F10, _______}
+},
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------------------.
+ * |Gui/Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |-------+-------+-------+-------+-------+---------------+-------+-------+-------+-------+-------|
+ * | Ctrl | Q | W | E | R | T | Y | U | I | O | P | / |
+ * |-------+-------+-------+-------+-------+---------------+-------+-------+-------+-------+-------|
+ * | Shift | A | S | D | F | G | H | J | K | L | ; | " |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * |Alt/Tab| Z | X | C | V | Fn/SPC| B | N | M | , | . |Adj/Ent|
+ * `-----------------------------------------------------------------------------------------------'
+ */
+
+[_QWERTY] = {
+ {GUI_T(KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
+ {KC_LCTL, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT},
+ {KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {ALT_T(KC_TAB), KC_Z, KC_X, KC_C, KC_V, LT(_QW_FN, KC_SPC), KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(_ADJ, KC_ENT)},
+},
+
+/* FN-key held (Qwerty)
+ * ,-----------------------------------------------------------------------------------------------.
+ * | Gui | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | Ctrl | ~ | [ | PgUp | ] | | | - | Up | = | | F12 |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | Shift | Tab | Home | PgDn | End | Del | | Left | Down | Right | | |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * |Alt/Tab| | | | | Fn/Spc| | | | | Menu |Adj/Ent|
+ * `-----------------------------------------------------------------------------------------------'
+ */
+
+[_QW_FN] = {
+ {KC_LGUI, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11},
+ {_______, KC_GRAVE, KC_LBRC, KC_PGUP, KC_RBRC, XXXXXXX, XXXXXXX, KC_MINS, KC_UP, KC_EQUAL, XXXXXXX, KC_F12},
+ {_______, KC_TAB, KC_HOME, KC_PGDN, KC_END, KC_DELETE, XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX, XXXXXXX},
+ {_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, _______, _______, KC_MENU, _______}
+},
+
+/* Plover layer (http://opensteno.org)
+ * ,-----------------------------------------------------------------------------------------------.
+ * | S | T | P | H | * | F | P | L | T | D | | |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | S | K | W | R | * | R | B | G | S | Z | | |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | # | # | # | # | | # | # | # | # | # | | |
+ * |-------+-------+-------+-------+-------+---------------+-------+-------+-------+-------+-------|
+ * | | | A | O | | E | U | | | | |Adj/Ent|
+ * `-----------------------------------------------------------------------------------------------'
+ */
+
+[_PLOVER] = {
+ {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_U, KC_I, KC_O, KC_P, KC_LBRC, XXXXXXX, XXXXXXX},
+ {KC_A, KC_S, KC_D, KC_F, KC_G, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, XXXXXXX},
+ {KC_1, KC_1, KC_1, KC_1, XXXXXXX, KC_1, KC_1, KC_1, KC_1, KC_1, XXXXXXX, XXXXXXX},
+ {XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LT(_ADJ, KC_ENT)}
+},
+
+/* Adjust
+ * ,-----------------------------------------------------------------------------------------------.
+ * | | | | | | | | | Insert| PrtSc | Pause | RESET |
+ * |-------+-------+-------+-------+-------+---------------+-------+-------+-------+-------+-------|
+ * | | | | | | | | CapLk |Voice +| Audio |MIDIoff| |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | | | | | | | | ScrLk |Voice -| Music |MIDI on| |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | | | | | | | | Numlk |Workman| Qwerty| Plover|Adj/Ent|
+ * `-----------------------------------------------------------------------------------------------'
+ */
+
+[_ADJ] = {
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_PSCR, KC_PAUSE, RESET},
+ {_______, _______, _______, _______, _______, _______, _______, KC_CLCK, MUV_IN, AU_TOG, MI_OFF, _______},
+ {_______, _______, _______, _______, _______, _______, _______, KC_SLCK, MUV_DE, MU_TOG, MI_ON, _______},
+ {_______, _______, _______, _______, _______, _______, _______, KC_NLCK, WORKMAN, QWERTY, PLOVER, _______}
+}
+
+};
+
+#ifdef AUDIO_ENABLE
+
+float tone_startup[][2] = SONG(STARTUP_SOUND);
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+
+float tone_workman[][2] = SONG(QWERTY_SOUND);
+float tone_qwerty[][2] = SONG(COLEMAK_SOUND);
+float tone_plover[][2] = SONG(PLOVER_SOUND);
+
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+#endif
+
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case WORKMAN:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_workman, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_WORKMAN);
+ }
+ return false;
+ break;
+ case QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case PLOVER:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_plover, false, 0);
+ #endif
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+ keymap_config.raw = eeconfig_read_keymap();
+ keymap_config.nkro = 1;
+ eeconfig_update_keymap(keymap_config.raw);
+ persistant_default_layer_set(1UL<<_PLOVER);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif
diff --git a/keyboards/planck/keymaps/impossible/readme.md b/keyboards/planck/keymaps/impossible/readme.md
new file mode 100644
index 000000000..02c719197
--- /dev/null
+++ b/keyboards/planck/keymaps/impossible/readme.md
@@ -0,0 +1,73 @@
+# The Impossible Layout
+
+The Impossible Layout is named such because it manages to fit in both a numpad and an inverted-T arrow cluster into the same layer as the alpha keys.
+
+## Main layout
+
+The Impossible Layout places the middle column of the alphas onto where the punctuation keys were, moving he most used punctuation to be accessed by the thumbs. Because removing the middle columns fits with the Workman layout's philosopy, Workman is used as the basis for the layout. This means the layout should be very easy to learn for Workman users, and reasonable for Colemak users. Other space gains are made by combining keys that are only ever chorded with other non symbol keys (with function-layer alternatives where needed).
+
+### Alpha-numeric layer
+
+| | | | | | | | | | | | |
+|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
+| Q | D | R | W | B | F | U | P | J | 7 | 8 | 9 |
+| A | S | H | T | G | N | E | O | I | 4 | 5 | 6 |
+| Z | X | M | C | V | L | Y | K | Up | 1 | 2 | 3 |
+|Alt/Tab|Gui/Esc| , |CTL/Bsp| Fn/Ent|SFT/SPC| . | Left | Down | Right | 0 |Adj/Ent|
+
+### Function layer
+
+| | | | | | | | | | | | |
+|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
+| ! | @ | # | $ | % | ^ | & | * | F12 | F7 | F8 | F9 |
+| Tab | [ | ] | - | Del | ' | ( | ) | F11 | F4 | F5 | F6 |
+| Menu | | | = | \ | / | | | PgUp | F1 | F2 | F3 |
+|Alt/Tab| Gui | ~ |CTL/Bsp| Fn/Ent|SFT/Spc| ; | Home | PgDn | End | F10 |Adj/Ent|
+
+## Qwerty
+
+The Qwerty layer, mostly intended for gaming use, makes use of the doubled chorded/non-symbolic keys to obtain use of the entire alpha-numeric typing area.
+
+### Qwerty layer
+
+| | | | | | | | | | | | |
+|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
+|Gui/Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+| Ctrl | Q | W | E | R | T | Y | U | I | O | P | / |
+| Shift | A | S | D | F | G | H | J | K | L | ; | " |
+|Alt/Tab| Z | X | C | V | Fn/SPC| B | N | M | , | . |Adj/Ent|
+
+### Qwerty Fn Layer
+
+| | | | | | | | | | | | |
+|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
+| Gui | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
+| Ctrl | ~ | [ | PgUp | ] | | | - | Up | = | | F12 |
+| Shift | Tab | Home | PgDn | End | Del | | Left | Down | Right | | |
+|Alt/Tab| | | | | Fn/Spc| | | | | Menu |Adj/Ent|
+
+## Stenography
+
+The Steno/Plover layer moves the number row below the regular keys, providing a much more comfortable placement for the thumb keys. Using this layout will require a slightly different dictionary to account for different keys being adjacent to the number row.
+
+### Steno Layer
+
+| | | | | | | | | | | | |
+|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
+| S | T | P | H | * | F | P | L | T | D | | |
+| S | K | W | R | * | R | B | G | S | Z | | |
+| # | # | # | # | | # | # | # | # | # | | |
+| | | A | O | | E | U | | | | |Adj/Ent|
+
+## Adjustments and Options
+
+In order to switch between layouts and change other keyboard settings, an adjustment layer is accessible from the same position over any layout.
+
+### Adjustment Layer
+
+| | | | | | | | | | | | |
+|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
+| | | | | | | | | Insert| PrtSc | Pause | RESET |
+| | | | | | | | CapLk |Voice +| Audio |MIDIoff| |
+| | | | | | | | ScrLk |Voice -| Music |MIDI on| |
+| | | | | | | | Numlk |Workman| Qwerty| Plover|Adj/Ent|
diff --git a/keyboards/planck/keymaps/jeebak/Makefile b/keyboards/planck/keymaps/jeebak/Makefile
new file mode 100644
index 000000000..cf2c31f0f
--- /dev/null
+++ b/keyboards/planck/keymaps/jeebak/Makefile
@@ -0,0 +1,27 @@
+# Please remove if no longer applicable
+$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
+$(warning Please disable some options in the Makefile to resolve)
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = yes # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c
new file mode 100644
index 000000000..cb7ccb588
--- /dev/null
+++ b/keyboards/planck/keymaps/jeebak/keymap.c
@@ -0,0 +1,459 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "planck.h"
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _COLEMAK 1
+#define _DVORAK 2
+#define _LOWER 3
+#define _RAISE 4
+#define _PLOVER 5
+#define _TOUCHCURSOR 6
+#define _MOUSECURSOR 7
+#define _ADJUST 16
+
+// Keycodes
+enum planck_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK,
+ PLOVER,
+ LOWER,
+ RAISE,
+ BACKLIT,
+ EXT_PLV
+};
+
+enum macro_keycodes {
+ KC_ALT_TAB,
+ KC_CMD_TAB,
+ KC_CTL_TAB,
+ KC_CMD_SLSH,
+ KC_AG_FIND,
+ KC_AG_AGAIN,
+ KC_AG_UNDO,
+ KC_AG_CUT,
+ KC_AG_COPY,
+ KC_AG_PASTE,
+ KC_AG_DESK_L,
+ KC_AG_DESK_R,
+ KC_AG_TAB_C,
+ KC_AG_TAB_N,
+ KC_AG_TAB_R,
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+// Custom macros
+#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl
+#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
+#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper
+#define GUI_SEM GUI_T(KC_SCLN) // Tap for Semicolon, hold for GUI
+#define ALT_QUO ALT_T(KC_QUOT) // Tap for Quote, hold for Alt
+// Requires KC_TRNS/_______ for the trigger key in the destination layer
+#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor
+#define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor
+#define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab
+#define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab
+#define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab
+#define CMD_SLSH M(KC_CMD_SLSH) // Macro for Cmd-Slash (personal shortcut to toggle iTerm2 visibility)
+#define AG_FIND M(KC_AG_FIND) // Macros for Cmd-[x] vs Ctrl-[x] based on current AG_NORM or AG_SWAP settings
+#define AG_AGAIN M(KC_AG_AGAIN)
+#define AG_UNDO M(KC_AG_UNDO)
+#define AG_CUT M(KC_AG_CUT)
+#define AG_COPY M(KC_AG_COPY)
+#define AG_PASTE M(KC_AG_PASTE)
+#define AG_D_L M(KC_AG_DESK_L) // For Virtual Desktop Switching: Left, and
+#define AG_D_R M(KC_AG_DESK_R) // Right
+#define AG_T_C M(KC_AG_TAB_C) // For Chrome, etc. Tab Close,
+#define AG_T_N M(KC_AG_TAB_N) // Tab New, and
+#define AG_T_R M(KC_AG_TAB_R) // Tab Reopen Closed
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------------.
+ * | Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |----------+------+------+------+------+-------------+------+------+------+------+--------|
+ * | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L |GUI/; | Alt/" |
+ * |----------+------+------+------+------+------|------+------+------+------+------+--------|
+ * | Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent |
+ * |----------+------+------+------+------+------+------+------+------+------+------+--------|
+ * | PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+ {HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {CTL_ESC, KC_A, KC_S, LT_MC(KC_D),KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, GUI_SEM, ALT_QUO},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT},
+ {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------------.
+ * | Hyper/Tab| Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ * |----------+------+------+------+------+-------------+------+------+------+------+--------|
+ * | Ctrl/Esc | A | R | MC/S | T | D | H | N | E | I | O | " |
+ * |----------+------+------+------+------+------|------+------+------+------+------+--------|
+ * | Shift | Z | X | C | V | B | K | M | , | . | / |Sft/Ent |
+ * |----------+------+------+------+------+------+------+------+------+------+------+--------|
+ * | PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = {
+ {HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
+ {CTL_ESC, KC_A, KC_R, LT_MC(KC_S),KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT},
+ {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------------.
+ * | Hyper/Tab| " | , | . | P | Y | F | G | C | R | L | Bksp |
+ * |----------+------+------+------+------+-------------+------+------+------+------+--------|
+ * | Ctrl/Esc | A | O | MC/E | U | I | D | H | T | N | S | / |
+ * |----------+------+------+------+------+------|------+------+------+------+------+--------|
+ * | Shift | ; | Q | J | K | X | B | M | W | V | Z |Sft/Ent |
+ * |----------+------+------+------+------+------+------+------+------+------+------+--------|
+ * | PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------------'
+ */
+[_DVORAK] = {
+ {HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
+ {CTL_ESC, KC_A, KC_O, LT_MC(KC_E),KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
+ {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT},
+ {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | [ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | ] | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Brite | | | | | | | Prev | Stop | Slct | Mute |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = {
+ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
+ {KC_LBRC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+ {KC_RBRC, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
+ {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE}
+},
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | $ | 4 | 5 | 6 | . | + | . | 4 | 5 | 6 | * | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | = | 7 | 8 | 9 | 0 | - | . | 1 | 2 | 3 | / | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Brite | | | | | | | Prev | Stop | Slct | Mute |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = {
+ {KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
+ {KC_DLR, KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_DOT, KC_4, KC_5, KC_6, KC_ASTR, KC_PIPE},
+ {KC_EQL, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DOT, KC_1, KC_2, KC_3, KC_SLSH, KC_BSLS},
+ {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE}
+},
+
+/* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations
+ * ,-----------------------------------------------------------------------------------.
+ * |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ *
+ * The KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND, and KC_AGAIN keycodes don't
+ * seem to work on Mac. Presumably they'll work under Windows.
+ */
+
+[_TOUCHCURSOR] = {
+ {ALT_TAB, CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______},
+ {_______, KC_LALT, KC_SPC, AG_T_C, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, AG_D_L, AG_D_R },
+ {_______, AG_UNDO, AG_CUT, AG_COPY, AG_PASTE,KC_GRV, KC_PGDN, KC_DEL, AG_T_N, AG_T_R, CMD_SLSH,_______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* Mouse Layer
+ * ,-----------------------------------------------------------------------------------.
+ * | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+[_MOUSECURSOR] = {
+ {_______, _______, KC_ACL0, _______, _______, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______},
+ {_______, KC_ACL2, KC_BTN2, _______, KC_BTN1, KC_ACL1, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN4, KC_BTN5},
+ {_______, _______, _______, _______, KC_BTN3, _______, KC_WH_D, KC_BTN1, _______, _______, KC_BTN3, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* Plover layer (http://opensteno.org)
+ * ,-----------------------------------------------------------------------------------.
+ * | # | # | # | # | # | # | # | # | # | # | # | # |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | S | T | P | H | * | * | F | P | L | T | D |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |TogOut| S | K | W | R | * | * | R | B | G | S | Z |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Exit | | | A | O | | E | U | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+[_PLOVER] = {
+ {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 },
+ {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC},
+ {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX}
+},
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | |Reset |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = {
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
+ {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______},
+ {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET}
+}
+
+
+};
+
+#ifdef AUDIO_ENABLE
+
+float tone_startup[][2] = SONG(STARTUP_SOUND);
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+float tone_plover[][2] = SONG(PLOVER_SOUND);
+float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+ #endif
+ default_layer_set(1UL<<_COLEMAK);
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
+ #endif
+ default_layer_set(1UL<<_DVORAK);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ return false;
+ break;
+ case PLOVER:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ stop_all_notes();
+ PLAY_NOTE_ARRAY(tone_plover, false, 0);
+ #endif
+ layer_off(_RAISE);
+ layer_off(_LOWER);
+ layer_off(_ADJUST);
+ layer_on(_PLOVER);
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+ keymap_config.raw = eeconfig_read_keymap();
+ keymap_config.nkro = 1;
+ eeconfig_update_keymap(keymap_config.raw);
+ }
+ return false;
+ break;
+ case EXT_PLV:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_plover_gb, false, 0);
+ #endif
+ layer_off(_PLOVER);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+/*
+ * Macro definition
+ */
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+
+ bool use_cmd = true; // Use, for example, Cmd-Tab, Cmd-C, Cmd-V, etc.
+ // Compare to MAGIC_SWAP_ALT_GUI and MAGIC_UNSWAP_ALT_GUI configs, set in:
+ // quantum/quantum.c
+ if(keymap_config.swap_lalt_lgui == 1 && keymap_config.swap_ralt_rgui == 1) {
+ use_cmd = false; // ... or, Alt-Tab, Ctrl-C, Ctrl-V, etc.
+ }
+
+ switch (id) {
+ case KC_ALT_TAB:
+ if(use_cmd) { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); }
+ else { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); }
+ case KC_CMD_TAB:
+ if(use_cmd) { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); }
+ else { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); }
+
+ case KC_CTL_TAB:
+ return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END ));
+ case KC_CMD_SLSH:
+ return (record->event.pressed ? MACRO( D(LGUI), D(SLSH),END ) : MACRO( U(SLSH),END ));
+
+ case KC_AG_FIND:
+ return use_cmd ? MACRODOWN( D(LGUI), T(F), END ) : MACRODOWN( D(LCTRL), T(F), END );
+ case KC_AG_AGAIN:
+ return use_cmd ? MACRODOWN( D(LGUI), T(G), END ) : MACRODOWN( D(LCTRL), T(G), END );
+ case KC_AG_UNDO:
+ return use_cmd ? MACRODOWN( D(LGUI), T(Z), END ) : MACRODOWN( D(LCTRL), T(Z), END );
+ case KC_AG_CUT:
+ return use_cmd ? MACRODOWN( D(LGUI), T(X), END ) : MACRODOWN( D(LCTRL), T(X), END );
+ case KC_AG_COPY:
+ return use_cmd ? MACRODOWN( D(LGUI), T(C), END ) : MACRODOWN( D(LCTRL), T(C), END );
+ case KC_AG_PASTE:
+ return use_cmd ? MACRODOWN( D(LGUI), T(V), END ) : MACRODOWN( D(LCTRL), T(V), END );
+
+ case KC_AG_DESK_L:
+ return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(SCLN), END ) : MACRODOWN( D(LALT), D(LCTRL), T(SCLN), END );
+ case KC_AG_DESK_R:
+ return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(QUOT), END ) : MACRODOWN( D(LALT), D(LCTRL), T(QUOT), END );
+
+ case KC_AG_TAB_C:
+ return use_cmd ? MACRODOWN( D(LGUI), T(W), END ) : MACRODOWN( D(LCTRL), T(W), END );
+ case KC_AG_TAB_N:
+ return use_cmd ? MACRODOWN( D(LGUI), T(T), END ) : MACRODOWN( D(LCTRL), T(T), END );
+ case KC_AG_TAB_R:
+ return use_cmd ? MACRODOWN( D(LGUI), D(LSHIFT), T(T), END ) : MACRODOWN( D(LCTRL), D(LSHIFT), T(T), END );
+ }
+
+ return MACRO_NONE;
+}
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif
diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md
new file mode 100644
index 000000000..e1dd1dca5
--- /dev/null
+++ b/keyboards/planck/keymaps/jeebak/readme.md
@@ -0,0 +1,127 @@
+jeebak's layout
+=======================
+This WIP keymap attempts to minimize fingers straying away from the home row.
+To aid in this endeavor, when additional modifyer keys to switch layers are
+needed, they will be mapped to home row keys. The `keymap.c` file will contain
+the exact changes. The diagrams in this README shows the highlights of the
+changes from the default mappings.
+
+I also decided to change all calls to `persistant_default_layer_set()` to
+`default_layer_set()` since this is my personal perference.
+
+## Macros
+```
+#define ALT_TAB M(KC_ALT_TAB)
+```
+
+## Base Layers (Qwerty/Colemak/Dvorak)
+These base layers are mostly the same as the default mappings. The interesting
+changes are shown below.
+
+- The `Ctrl/Esc`, will emit an `Escape` when tapped, and act as a `Control` key when held,
+- `GUI/;` as `;` and `GUI`,
+- `Alt/"` as `"` and `Alt`,
+- `Sft/Ent` as `Enter` and `Shift`, and
+- `Hyper/Tab` as `Tab` and `Hyper`
+
+A `TODO` item is to see if it can also act as a `CapsLock` when double-tapped.
+The arrow keys, which have been moved to the
+[TouchCursor](http://martin-stone.github.io/touchcursor/) layer, have been
+replaced with the Media keys as shown. The `MC/kc` key activates the
+`MouseCursor` layer when held, and emits the corresponding `kc` for its layer,
+when tapped.
+```
+ ,-----------------------------------------------------------------------------------------.
+ | Hyper/Tab| | | | | | | | | | | |
+ |----------+------+------+------+------+-------------+------+------+------+------+--------|
+ | Ctrl/Esc | | |MC/kc | | | | | | |GUI/; | Alt/" |
+ |----------+------+------+------+------+------|------+------+------+------+------+--------|
+ | | | | | | | | | | | |Sft/Ent |
+ |----------+------+------+------+------+------+------+------+------+------+------+--------|
+ | PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play |
+ `-----------------------------------------------------------------------------------------'
+```
+
+## Lower Layer (Symbols and Function Keys)
+The symbols and functions keys are essentially the same as the default mapping.
+The most notable changes are that the symbol keys from the `RAISE` layer have
+been moved here. The remaining Media keys replace those that are now on the
+base layers. The `BACKLIT` key has also been moved here.
+```
+ ,-----------------------------------------------------------------------------------.
+ | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ |------+------+------+------+------+-------------+------+------+------+------+------|
+ | [ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ |------+------+------+------+------+------|------+------+------+------+------+------|
+ | ] | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ |Brite | | | | | | | Prev | Stop | Slct | Mute |
+ `-----------------------------------------------------------------------------------'
+```
+
+## Raise Layer (Numbers and Arithmetic Operators)
+All of the numbers and arithmetic operators are available on this layer. Some
+keys are duplicated for the convenience of their positions. The `0` and `$`
+keys at the far left are for quick access to beginning and end of line in vim.
+```
+ ,-----------------------------------------------------------------------------------.
+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ |------+------+------+------+------+-------------+------+------+------+------+------|
+ | $ | 4 | 5 | 6 | . | + | . | 4 | 5 | 6 | * | | |
+ |------+------+------+------+------+------|------+------+------+------+------+------|
+ | = | 7 | 8 | 9 | 0 | - | . | 1 | 2 | 3 | / | \ |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ |Brite | | | | | | | Prev | Stop | Slct | Mute |
+ `-----------------------------------------------------------------------------------'
+```
+
+## TouchCursor layer plus personal customizations
+[TouchCursor](http://martin-stone.github.io/touchcursor/) uses the `Space` key
+as the modifier, with the `IJKL` home row keys representing the inverted-T of
+the arrow keys. All of the default TouchCursor keymappings for the right hand
+are represented below. My personalizations include all of the keys shown for
+the left hand. Having the `Alt` and `Shift` keys (as well as the `Control` key
+from the base layers) readily accessible from the home row allows quick word
+jumps and highlighting when used in conjunction with the arrow keys. The
+`Alt-Tab` macro is not only useful under Windows, but also under Mac when used
+with alternative switchers like [HyperSwitch](https://bahoom.com/hyperswitch).
+The `Cmd-Tab` and `Ctrl-Tab` sequences are duplicated for easy access while in
+this layer. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN`
+keycodes do not seem to work. There are macros in place that'll "automatically"
+choose the correct version (`Cmd-Tab` vs. `Alt-Tab`, `Cmd-C` vs. `Ctrl-C`,
+etc.) depending on which layout you've currently selected (`AG_NORM` or
+`AG_SWAP`) in the `_ADJUST` layer. The `Desk_L` and `Desk_R` macros are what I
+use to switch between Virtual Desktops Left/Right. The `Tab_C`, `Tab_N` and
+`Tab_R` are for "Close Tab," "New Tab" and "Reopen Closed Tab" for apps such as
+Google Chrome.
+```
+ ,-----------------------------------------------------------------------------------.
+ |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | |
+ |------+------+------+------+------+-------------+------+------+------+------+------|
+ | | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R|
+ |------+------+------+------+------+------|------+------+------+------+------+------|
+ | | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | | | | | | | | | | | |
+ `-----------------------------------------------------------------------------------'
+```
+
+## Mouse Layer
+The Mouse layer, closely mimics the layout/behaviour of the TouchCursor layer.
+The `D` key (on QWERTY) is used to activate this layer. All 16 keycodes for the
+mouse from the `doc/keycode.txt` file are represented, and logically located,
+IMHO. The left and right click buttons are duplicated; on the right hand side,
+for a quick click here and there, and again on the left hand side for when the
+buttons need to be held for dragging things or highlighting text, thus allowing
+the right hand to be free to use the up/down/left/right actions.
+```
+ ,-----------------------------------------------------------------------------------.
+ | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | |
+ |------+------+------+------+------+-------------+------+------+------+------+------|
+ | |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 |
+ |------+------+------+------+------+------|------+------+------+------+------+------|
+ | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | | | | | | | | | | | |
+ `-----------------------------------------------------------------------------------'
+```
diff --git a/keyboards/planck/keymaps/jeremy-dev/keymap.c b/keyboards/planck/keymaps/jeremy-dev/keymap.c
new file mode 100644
index 000000000..e7ed09b12
--- /dev/null
+++ b/keyboards/planck/keymaps/jeremy-dev/keymap.c
@@ -0,0 +1,180 @@
+// This is the personal keymap of Jeremy Cowgar (@jcowgar). It is written for the programmer.
+
+// Configuration options
+#define PREVENT_STUCK_MODIFIERS
+
+#include "planck.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+enum my_layers {
+ ALPH = 0,
+ NUMS,
+ CURS,
+ SYMB,
+ FKEY
+};
+
+// Each macro gets a name for readability.
+enum my_keycodes {
+ MY_ABVE = SAFE_RANGE,
+ MY_BELW,
+ MY_TERM,
+ MY_DEQL, // /=
+ MY_MEQL, // *=
+ MY_SEQL, // -=
+ MY_PEQL, // +=
+ MY_NEQL, // !=
+ MY_LTGT, // <>
+ MY_DPIP, // ||
+ MY_DAMP, // &&
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [ALPH] = {
+ {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P},
+ {KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, KC_H, KC_J, KC_K, KC_L, KC_SCLN},
+ {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH)},
+ {CTL_T(KC_TAB), OSL(FKEY), OSL(NUMS), OSL(SYMB), KC_SPC, ALT_T(KC_BSPC), GUI_T(KC_DELT), KC_ENT, OSL(SYMB), OSL(CURS), TG(CURS), CTL_T(KC_ESC)}
+ },
+ [NUMS] = {
+ {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_COMM, KC_7, KC_8, KC_9, KC_SLSH},
+ {KC_LSFT, KC_LGUI, KC_LALT, KC_LCTL, KC_NO, KC_TRNS, KC_TRNS, KC_LPRN, KC_4, KC_5, KC_6, KC_ASTR},
+ {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_RPRN, KC_1, KC_2, KC_3, KC_MINS},
+ {KC_NO, KC_NO, KC_TRNS, TG(NUMS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_EQL, KC_PLUS}
+ },
+ [CURS] = {
+ {KC_MPLY, KC_BSPC, KC_UP, KC_DELT, KC_PGUP, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO},
+ {KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_NO, KC_LCTL, KC_LALT, KC_LGUI, KC_LSFT},
+ {KC_VOLD, KC_NO, MY_ABVE, MY_TERM, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT},
+ {KC_MUTE, KC_NO, MY_BELW, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO}
+ },
+ [SYMB] = {
+ {MY_DEQL, MY_MEQL, MY_SEQL, MY_PEQL, MY_NEQL, KC_NO, KC_NO, MY_LTGT, KC_LABK, KC_RABK, KC_COLN, KC_DLR},
+ {KC_SLSH, KC_ASTR, KC_MINS, KC_PLUS, KC_EQL, KC_NO, KC_PIPE, MY_DPIP, KC_GRV, KC_QUOT, KC_DQUO, KC_HASH},
+ {KC_BSLS, KC_CIRC, KC_PERC, KC_UNDS, KC_NO, KC_NO, KC_AMPR, MY_DAMP, KC_TILD, KC_AT, KC_EXLM, KC_QUES},
+ {KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO}
+ },
+ [FKEY] = {
+ {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12},
+ {KC_LSFT, KC_LGUI, KC_LALT, KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_F5, KC_F6, KC_F7, KC_F8},
+ {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4},
+ {KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}
+ }
+};
+
+void press_key(uint16_t key) {
+ register_code(key);
+ unregister_code(key);
+}
+
+void press_two_keys(uint16_t key1, uint16_t key2) {
+ register_code(key1);
+ register_code(key2);
+ unregister_code(key2);
+ unregister_code(key1);
+}
+
+void press_three_keys(uint16_t key1, uint16_t key2, uint16_t key3) {
+ register_code(key1);
+ register_code(key2);
+ register_code(key3);
+ unregister_code(key3);
+ unregister_code(key2);
+ unregister_code(key1);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case MY_BELW:
+ if (record->event.pressed) {
+ press_two_keys(KC_LGUI, KC_RGHT);
+ press_key(KC_ENT);
+ }
+
+ return false;
+
+ case MY_ABVE:
+ if (record->event.pressed) {
+ press_two_keys(KC_LGUI, KC_LEFT);
+ press_key(KC_ENT);
+ press_key(KC_UP);
+ }
+
+ return false;
+
+ case MY_TERM:
+ if (record->event.pressed) {
+ press_three_keys(KC_LGUI, KC_LSFT, KC_ENT);
+ }
+
+ return false;
+
+ case MY_DEQL: // /=
+ if (record->event.pressed) {
+ press_key(KC_SLSH);
+ press_key(KC_EQL);
+ }
+
+ return false;
+
+ case MY_MEQL: // *=
+ if (record->event.pressed) {
+ press_two_keys(KC_LSFT, KC_ASTR);
+ press_key(KC_EQL);
+ }
+
+ return false;
+
+ case MY_SEQL: // -=
+ if (record->event.pressed) {
+ press_key(KC_MINS);
+ press_key(KC_EQL);
+ }
+
+ return false;
+
+ case MY_PEQL: // +=
+ if (record->event.pressed) {
+ press_two_keys(KC_LSFT, KC_PLUS);
+ press_key(KC_EQL);
+ }
+
+ return false;
+
+ case MY_NEQL: // !=
+ if (record->event.pressed) {
+ press_two_keys(KC_LSFT, KC_EXLM);
+ press_key(KC_EQL);
+ }
+
+ return false;
+
+ case MY_LTGT: // <>
+ if (record->event.pressed) {
+ press_two_keys(KC_LSFT, KC_LABK);
+ press_two_keys(KC_LSFT, KC_RABK);
+ }
+
+ return false;
+
+ case MY_DPIP: // ||
+ if (record->event.pressed) {
+ press_two_keys(KC_LSFT, KC_PIPE);
+ press_two_keys(KC_LSFT, KC_PIPE);
+ }
+
+ return false;
+
+ case MY_DAMP: // &&
+ if (record->event.pressed) {
+ press_two_keys(KC_LSFT, KC_AMPR);
+ press_two_keys(KC_LSFT, KC_AMPR);
+ }
+
+ return false;
+ }
+
+ return true;
+}
diff --git a/keyboards/planck/keymaps/jeremy-dev/readme.md b/keyboards/planck/keymaps/jeremy-dev/readme.md
new file mode 100644
index 000000000..b6a402d69
--- /dev/null
+++ b/keyboards/planck/keymaps/jeremy-dev/readme.md
@@ -0,0 +1,85 @@
+Jeremy Cowgar's Planck Keymap
+=============================
+
+I am a programmer by trade and suffer from the beginning stages of RSI. As a programmer, I use letters, symbols and cursor navigation most often. To prevent strange finger gymnastics, I wrote a script to rank which non-letter characters occurred in my primary source projects most often and then placed these characters in the easiest to reach locations, within reason and for me. I made heavy use of momentary layer toggling.
+
+Layers
+------
+
+The key mapping is made up of 5 layers: Letters, Symbols, Navigation, Numbers, and Function Keys.
+
+The layout can be viewed visually at:
+
+http://www.keyboard-layout-editor.com/#/gists/319474e5e2d199e583371ed1d2aec316
+
+* Purple buttons are dual function keys.
+* Green buttons are layer momentary toggle keys.
+* Red buttons are layer persistent toggle keys.
+
+The keys have multiple symbols:
+
+* Upper left: standard layer, the letter layer
+* Upper right: function layer
+* Lower left: navigation layer
+* Lower right: symbol layer
+
+The symbols in the layout editor are not entirely clear.
+
+The Z and ? keys double as shift keys. Hold for a shift, tap for a Z or ?
+
+The bottom row from left to right:
+
+* Tab when pressed, Control when held. It also is the volume mute key when in the "Navigation" layer
+* Function layer momentary toggle
+* Number layer momentary toggle
+* Symbol layer momentary toggle. When in the "Number" layer, this key also makes the "Number" layer sticky for using the 10 key for quite a bit of entry
+* Space
+* Backspace when tapped, Option when held
+* Delete when tapped, Command when held
+* Return
+* Symbol layer momentary toggle. When in the "Number" layer, key also is the zero key.
+* Navigation layer momentary toggle
+* Navigation layer toggle. This was included for when you are browsing a website, document or otherwise wish to stay in navigation mode. When in the "Number" layer, the key is the = symbol
+* Escape when pressed, Control when held. When in the "Number" layer, the key is the + symbol
+
+General Notes
+-------------
+
+The letter layer is separated by 2 center rows of keys. This spreads the hands out a little further which helps not twist the wrists as much. The 2 center rows are [], (), [], and Ctrl and Alt keys.
+
+The symbol layer keys are accessed by the thumbs. They are the closest to the thumbs, instead of the number toggle, because in my code I found I used symbols much more often than numbers. There are two symbol layer keys because the symbols spread across the right and left half of the keyboard. Thus, some symbols are easier hit with the left hand modifier or right hand modifier.
+
+The number layer key is only accessible by the left thumb because all of the number keys are on the right side of the keyboard. When in the number layer, you can press the key to the right to make that layer sticky when you are going to do a lot of number entry.
+
+The function layer key is only accessible by the left thumb because all of the function keys are on the right side of the keyboard.
+
+The navigation layer key is only accessible by the right thumb because all of the navigation keys are on the left side of the keyboard. You can press the key to the right of the navigation layer to make the navigation layer sticky when you are doing a lot of navigation, reading a web page for example.
+
+When using the number or navigation layers, the same hand that accesses the momentary layer toggle key also has the 4 primary modifiers under their home row.
+
+* Pointer finger is control
+* Middle finger is option
+* Ring finger is command
+* Pinky finger is shift
+
+This is so you can easily press Cmd+Shift+F4 or when navigating, select text or words of text by pressing Shift+Control, for example.
+
+Some keys are duplicated. For example, () are available in easy to reach locations while in the Number layer because they are often used in math.
+
+The symbol layer has additional helpers for programming including a single keys that enter /=, \*=, -=, +=, !=, <>, ||, and &&. It also includes three special Return keys on the left:
+
+* Up CR which moves the cursor up, to the end of the line and then presses CR
+* Down CR which moves the cursor to the end of the line and then presses CR
+* Right ; which moves the cursor to the end of the line and presses ; for C styled languages, such as JavaScript which is a primary language I use
+
+Word of Warning
+---------------
+
+I have been using the keymap for some time now and believe it to be a good keymap. There are a few things through the week that I wonder if it would have been better if this key were moved to that location.
+
+This keymap may change for further optimization.
+
+Please Give Feedback!
+---------------------
+
+I am very interested in your feedback. Send me a message here on GitHub, r/jcowgar or @jcowgar.
diff --git a/keyboards/planck/keymaps/jhenahan/Makefile b/keyboards/planck/keymaps/jhenahan/Makefile
new file mode 100644
index 000000000..83da2a7f8
--- /dev/null
+++ b/keyboards/planck/keymaps/jhenahan/Makefile
@@ -0,0 +1,27 @@
+# Please remove if no longer applicable
+$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
+$(warning Please disable some options in the Makefile to resolve)
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = yes # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/jhenahan/config.h b/keyboards/planck/keymaps/jhenahan/config.h
new file mode 100644
index 000000000..cd3adc41c
--- /dev/null
+++ b/keyboards/planck/keymaps/jhenahan/config.h
@@ -0,0 +1,9 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#define FORCE_NKRO
+#define WORKMAN_SOUND COLEMAK_SOUND
+
+#endif
diff --git a/keyboards/planck/keymaps/jhenahan/keymap.c b/keyboards/planck/keymaps/jhenahan/keymap.c
new file mode 100644
index 000000000..2bda4b695
--- /dev/null
+++ b/keyboards/planck/keymaps/jhenahan/keymap.c
@@ -0,0 +1,314 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "planck.h"
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _WORKMAN 0
+#define _DEAD 1
+#define _QWERTY 2
+#define _LOWER 3
+#define _RAISE 4
+#define _PLOVER 5
+#define _ADJUST 16
+
+enum planck_keycodes {
+ WORKMAN = SAFE_RANGE,
+ DEAD,
+ QWERTY,
+ LOWER,
+ RAISE,
+ PLOVER,
+ EXT_PLV,
+ TOG_PLV
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+
+/* Workman
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | H | T | G | Y | N | E | O | I | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | M | C | V | K | L | Dead | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | RAlt | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_WORKMAN] = {
+ {KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC},
+ {MT(MOD_LCTL,KC_ESC), KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, DEAD, KC_DOT, KC_SLSH, KC_ENT},
+ {KC_LCTL, KC_RALT, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Workman Dead Layer
+ * ,-----------------------------------------------------------------------------------.
+ * | | % | & | ? | + | @ | $ | _ | [ | ] | ! | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | / | ( | = | 0 | { | } | 1 | * | ) | - | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | 6 | 7 | 8 | 9 | | | \ | 2 | 3 | 4 | 5 | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | < | ~ | ` | , | # | ^ | > | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DEAD] = {
+ {XXXXXXX, KC_PERC, KC_AMPR, KC_QUES, KC_PLUS, KC_AT, KC_DLR, KC_UNDS, KC_LBRC, KC_RBRC, KC_EXLM, XXXXXXX},
+ {XXXXXXX, KC_SLSH, KC_LPRN, KC_EQL, KC_0, KC_LCBR, KC_RCBR, KC_1, KC_ASTR, KC_RPRN, KC_MINS, XXXXXXX},
+ {XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_PIPE, KC_BSLS, KC_2, KC_3, KC_4, KC_5, XXXXXXX},
+ {XXXXXXX, XXXXXXX, KC_LT, KC_TILD, KC_GRV, KC_COMM, KC_COMM, KC_HASH, KC_CIRC, KC_GT, XXXXXXX, XXXXXXX}
+},
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | RAlt | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
+ {KC_LCTL, KC_RALT, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | Vol+ |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Prev | Next | Vol- | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = {
+ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
+ {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS), _______, KC_VOLU, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, KC_MPLY}
+},
+
+/* Raise - KWM Interaction
+ * ,-----------------------------------------------------------------------------------.
+ * |Restrt| |TgSplt|Flotng|Parent|FlScrn|InsMrk| InsW | InsS | InsN | InsE | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | Mark |Rotate|Prefix| Term | BSP |SwpMrk|SwapW |SwapS |SwapN |SwapE | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |MarkW |MarkS |MarkN |MarkE |Monocl|Float |FocusW|FocusS|FocusN|FocusE| |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = {
+ {LCAG(KC_Q), XXXXXXX, LCAG(KC_S), LCAG(KC_W), LCAG(KC_D), LCAG(KC_F), LCTL(S(KC_X)), LCTL(S(KC_H)), LCTL(S(KC_J)), LCTL(S(KC_K)), LCTL(S(KC_L)), XXXXXXX},
+ {XXXXXXX, LCAG(KC_M), LGUI(LCTL(KC_R)), LCAG(KC_DOT), LCAG(KC_T), LGUI(LCTL(KC_A)), LCTL(LALT(KC_M)), LCTL(LALT(KC_H)), LCTL(LALT(KC_J)), LCTL(LALT(KC_K)), LCTL(LALT(KC_L)), XXXXXXX},
+ {_______, LCAG(KC_H), LCAG(KC_J), LCAG(KC_K), LCAG(KC_L), LGUI(LCTL(KC_S)), LGUI(LCTL(KC_D)), LGUI(LALT(KC_H)), LGUI(LALT(KC_J)), LGUI(LALT(KC_K)), LGUI(LALT(KC_L)), _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* Plover layer (http://opensteno.org)
+ * ,-----------------------------------------------------------------------------------.
+ * | # | # | # | # | # | # | # | # | # | # | # | # |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | S | T | P | H | * | * | F | P | L | T | D |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |TogOut| S | K | W | R | * | * | R | B | G | S | Z |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Exit | | | A | O | | E | U | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+[_PLOVER] = {
+ {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 },
+ {XXXXXXX, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC},
+ {TOG_PLV, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT},
+ {EXT_PLV, XXXXXXX, XXXXXXX, KC_M, KC_C, XXXXXXX, XXXXXXX, KC_L, KC_COMM, XXXXXXX, XXXXXXX, XXXXXXX}
+},
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset| | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Workmn|Plover| | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = {
+ {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
+ {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, WORKMAN, PLOVER, _______, _______},
+ {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+}
+
+
+};
+
+#ifdef AUDIO_ENABLE
+
+float tone_startup[][2] = SONG(STARTUP_SOUND);
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_workman[][2] = SONG(WORKMAN_SOUND);
+float tone_plover[][2] = SONG(PLOVER_SOUND);
+float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case WORKMAN:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_workman, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_WORKMAN);
+ }
+ return false;
+ break;
+ case DEAD:
+ if (record->event.pressed) {
+ layer_on(_DEAD);
+ set_oneshot_layer(_DEAD, ONESHOT_START);
+ clear_oneshot_layer_state(ONESHOT_PRESSED);
+ }
+ return false;
+ break;
+ case QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case PLOVER:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ stop_all_notes();
+ PLAY_NOTE_ARRAY(tone_plover, false, 0);
+ #endif
+ layer_off(_RAISE);
+ layer_off(_LOWER);
+ layer_off(_ADJUST);
+ layer_on(_PLOVER);
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+ keymap_config.raw = eeconfig_read_keymap();
+ keymap_config.nkro = 1;
+ eeconfig_update_keymap(keymap_config.raw);
+ }
+ return false;
+ break;
+ case EXT_PLV:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_plover_gb, false, 0);
+ #endif
+ layer_off(_PLOVER);
+ }
+ return false;
+ break;
+ case TOG_PLV:
+ if (record->event.pressed) {
+ register_code(KC_R);
+ register_code(KC_W);
+ register_code(KC_T);
+ register_code(KC_C);
+ register_code(KC_P);
+ register_code(KC_O);
+ clear_keyboard();
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif
diff --git a/keyboards/planck/keymaps/jhenahan/readme.md b/keyboards/planck/keymaps/jhenahan/readme.md
new file mode 100644
index 000000000..a80506fc9
--- /dev/null
+++ b/keyboards/planck/keymaps/jhenahan/readme.md
@@ -0,0 +1,41 @@
+# jhenahan's layout
+
+## Layout
+
+The base layer is based on the
+[Workman Dead](https://github.com/ojbucao/Workman/tree/master/mac) layout. The
+primary interaction layer is a slightly modified Workman layout with a 'dead'
+key on the third row under the middle finger. The dead key activates a layer of
+special characters.
+
+## [Layers](http://www.keyboard-layout-editor.com/#/gists/2b875f7d5d76fe4408c0a5b3bd76ddae)
+### Function Layer
+
+This is very slightly modified from the default, mainly just to rearrange the media keys.
+
+### [KWM](https://github.com/koekeishiya/kwm) Interaction Layer
+
+`kwm` is a tiling window manager for OS X. The keys defined in my keymap
+correspond to the settings I use in
+[my `kwmrc` file](https://github.com/jhenahan/dotfiles/blob/master/kwm/kwmrc).
+
+### QWERTY
+
+Just in case.
+
+### [Plover](http://www.openstenoproject.org/plover/)
+
+This layout functions exactly as a Workman layout unless you're running the Plover
+application. Includes a key for toggling Plover while it's running.
+
+Add this in the appropriate section of your `plover.cfg` to allow this altered layout:
+
+``` ini
+[System: English Stenotype]
+keymap[keyboard] = [["#", ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "="]], ["S-", ["q", "a"]], ["T-", ["d"]], ["K-", ["s"]], ["P-", ["r"]], ["W-", ["h"]], ["H-", ["w"]], ["R-", ["t"]], ["A-", ["m"]], ["O-", ["c"]], ["*", ["y", "g", "j", "b"]], ["-E", ["l"]], ["-U", [","]], ["-F", ["f"]], ["-R", ["n"]], ["-P", ["u"]], ["-B", ["e"]], ["-L", ["p"]], ["-G", ["o"]], ["-T", [";"]], ["-S", ["i"]], ["-D", ["BackSpace"]], ["-Z", ["'"]], ["no-op", ["\\", "]", "x", ".", "/"]], ["arpeggiate", ["space"]]]
+```
+
+### Adjust Layer
+
+This layer is only slightly modified from the default to remove Dvorak and
+Colemak and replace them with Workman.
diff --git a/keyboards/planck/keymaps/joe/Makefile b/keyboards/planck/keymaps/joe/Makefile
index 581e08cd0..b2ca41944 100644
--- a/keyboards/planck/keymaps/joe/Makefile
+++ b/keyboards/planck/keymaps/joe/Makefile
@@ -1,3 +1,6 @@
+# Please remove if no longer applicable
+$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
+$(warning Please disable some options in the Makefile to resolve)
# Build Options
@@ -22,4 +25,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../Makefile
-endif \ No newline at end of file
+endif
diff --git a/keyboards/planck/keymaps/leo/Makefile b/keyboards/planck/keymaps/leo/Makefile
index 581e08cd0..b2ca41944 100644
--- a/keyboards/planck/keymaps/leo/Makefile
+++ b/keyboards/planck/keymaps/leo/Makefile
@@ -1,3 +1,6 @@
+# Please remove if no longer applicable
+$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
+$(warning Please disable some options in the Makefile to resolve)
# Build Options
@@ -22,4 +25,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../Makefile
-endif \ No newline at end of file
+endif
diff --git a/keyboards/planck/keymaps/lucas/Makefile b/keyboards/planck/keymaps/lucas/Makefile
index 581e08cd0..b2ca41944 100644
--- a/keyboards/planck/keymaps/lucas/Makefile
+++ b/keyboards/planck/keymaps/lucas/Makefile
@@ -1,3 +1,6 @@
+# Please remove if no longer applicable
+$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
+$(warning Please disable some options in the Makefile to resolve)
# Build Options
@@ -22,4 +25,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../Makefile
-endif \ No newline at end of file
+endif
diff --git a/keyboards/planck/keymaps/luke/Makefile b/keyboards/planck/keymaps/luke/Makefile
new file mode 100644
index 000000000..847686873
--- /dev/null
+++ b/keyboards/planck/keymaps/luke/Makefile
@@ -0,0 +1,25 @@
+
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = yes # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/luke/keymap.c b/keyboards/planck/keymaps/luke/keymap.c
new file mode 100644
index 000000000..26dcb451b
--- /dev/null
+++ b/keyboards/planck/keymaps/luke/keymap.c
@@ -0,0 +1,355 @@
+/*
+ * A keyboard layout for the gridded planck.
+ *
+ * Copyright (C) 2017 Luke Silva
+ *
+ * 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ *
+ * This layout uses colemak by default, and is designed for programming, with easy access to symbols
+ * through either double purpose modifiers or colemak style rolling for commonly used symbol clusters
+ * Eg: compare colemak 'this' to '(){\n}' on the symbol layer.
+ *
+ * The layout also supports a range of multilingual characters, covering those
+ * needed for French, German, Swedish and likely some other European Languages.
+ * In the future full support for Colemak's multilingual deadkeys may be introduced.
+ *
+ * The multilingual characters are inputted through QMK's unicode engine, using
+ * the Linux input method by default, however this can be changed at runtime.
+ *
+ */
+
+
+#include "planck.h"
+
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+
+// Layers
+#define _COLEMAK 0
+#define _QWERTY 1
+#define _SYM 2
+#define _NUM 3
+#define _GR 4
+#define _GR_S 5
+#define _ADJ 6
+#define _NAV 7
+#define _PLOVER 8
+
+// Macro ID numbers
+#define M_ALT_HASH 1
+#define M_GR_DASH 2
+#define M_SYM_LPRN 3
+#define M_NAV_UNDS 4
+#define M_NUM_RPRN 5
+#define M_CTRL_DLR 6
+#define M_LCBR_ENT 7
+#define M_PLOVER 8
+#define M_EXT_PLV 9
+#define M_WINDOWS 10
+#define M_LINUX 11
+#define M_OSX 12
+#define M_FUNCTION 13
+#define M_THEN 14
+#define M_CATCH 15
+
+// Macro keys
+#define ALT_HASH MACROTAP(M_ALT_HASH) // tap for #, hold for Alt
+#define GR_DASH MACROTAP(M_GR_DASH) // tap for -, hold for GR layer a-class-name
+#define SYM_LPRN MACROTAP(M_SYM_LPRN) // tap for (, hold for symbols layer if()
+#define NAV_UNDS MACROTAP(M_NAV_UNDS) // tap for _, hold for navigation layer snake_case_variable
+#define NUM_RPRN MACROTAP(M_NUM_RPRN) // tap for ), hold for numbers layer else if()
+#define CTRL_DLR MACROTAP(M_CTRL_DLR) // tap for $, hold for ctrl $php_is_really_weird
+#define LCBR_ENT M(M_LCBR_ENT) // {\n easier code formatting
+#define PLOVER M(M_PLOVER) // PHROPB (plover) or ERFVIK(qwerty) starts plover
+#define EXT_PLV M(M_EXT_PLV) // PHRO*F (plover) or ERFVYU(qwerty) stops plover
+#define WINDOWS M(M_WINDOWS) // Sets Unicode handler to windows
+#define LINUX M(M_LINUX) // Sets Unicode handler to linux
+#define OSX M(M_OSX) // Sets Unicode handler to OSX
+#define FUNCTION M(M_FUNCTION)
+#define THEN M(M_THEN)
+#define CATCH M(M_CATCH)
+
+
+// Renames of QMK keys... (would have otherwise been a macro)
+#define QWERTY DF(_QWERTY)
+#define COLEMAK DF(_COLEMAK)
+
+
+
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ;: | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Bksp | A | R | S | T | D | H | N | E | I | O | '" |
+ * |------+------+------+------+------+------+------+------+------+------+------+------`---.
+ * |Shift=| Z | X | C | V | B | K | M | ,< | .> | /? |Shift/Ent |
+ * |------+------+------+------+------+------+------+------+------+------+------+----------|
+ * |CtCaps|GUIF4 | Alt# | Gr- | Sym( | Nav_ |Space | Num) |Ctrl$ | F11 | F12 |Nav toggle|
+ * `---------------------------------------------------------------------------------------'
+ */
+
+[_COLEMAK] = {
+ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
+ {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
+ {SFT_T(KC_EQL), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT) },
+ {CTL_T(KC_CAPS), KC_LGUI, ALT_HASH, GR_DASH, SYM_LPRN, NAV_UNDS, KC_SPC, NUM_RPRN, CTRL_DLR, KC_F11, KC_F12, TG(_NAV)}
+},
+
+
+
+/* QWERTY
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Bksp | A | S | D | F | G | H | J | K | L | ;: | '" |
+ * |------+------+------+------+------+------+------+------+------+------+------+------`---.
+ * |Shift=| Z | X | C | V | B | N | M | ,< | .> | /? |Shift/Ent |
+ * |------+------+------+------+------+------+------+------+------+------+------+----------|
+ * |CtCaps|GUIF4 | Alt# | Gr- | Sym( | Nav_ |Space | Num) |Ctrl$ | F11 | F12 |Nav toggle|
+ * `---------------------------------------------------------------------------------------'
+ */
+
+[_QWERTY] = {
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT) },
+ {CTL_T(KC_CAPS), KC_LGUI, KC_LALT, GR_DASH, SYM_LPRN,KC_SPC, KC_SPC, NUM_RPRN, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT}
+},
+
+
+/* Symbols
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | ` | @ | / | * | ^ | % | : | + | - | Del | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | [ | ; | } | ( | " | ' | ) | {\n | ! | ] | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Shift | . | { | < | > | ~ | X2 | = | & | | | ? |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | Sym | _ |Space | NUM | X2 | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+[_SYM] = {
+ {KC_TAB, KC_GRV, KC_AT, KC_SLSH, KC_ASTR, KC_CIRC, KC_PERC, KC_COLN, KC_PLUS, KC_MINS, KC_DEL, KC_BSPC},
+ {FUNCTION,KC_LBRC, KC_SCLN, KC_RCBR, KC_LPRN, KC_DQT, KC_QUOT, KC_RPRN, LCBR_ENT,KC_EXLM, KC_RBRC, KC_BSLS},
+ {KC_LSFT, KC_DOT, KC_LCBR, KC_LABK, KC_RABK, KC_TILD, _______, KC_EQL, KC_AMPR, KC_PIPE, KC_QUES, KC_ENT },
+ {THEN, CATCH, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______}
+},
+
+
+/* Numbers
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Bksp | x | D | E | F | + | - | 4 | 5 | 6 | 0 |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Shift | ( | A | B | C | * | / | 1 | 2 | 3 | ) |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | GR | SYM | _ |Space | NUM | 0 | . | f | |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+[_NUM] = {
+ {KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
+ {KC_BSPC, KC_X, S(KC_D), S(KC_E), S(KC_F), KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, KC_0, KC_ENT },
+ {KC_LSFT, KC_LPRN, S(KC_A), S(KC_B), S(KC_C), KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, KC_RPRN, KC_ENT },
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_F, _______}
+},
+
+
+/* Gr layer / international keys
+ * ,-----------------------------------------------------------------------------------.
+ * | | ä | å | | ¢£ | €¥ | | ë | ê | ü | ù | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | â | à | ß | | | | è | é | ï | ö | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | æ | ô | ç | œ | | | û | « | » | î | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+[_GR] = {
+ {_______, UC(0xE4),UC(0xE5), _______,UC(0xA2), UC(0x20AC),_______,UC(0xEB),UC(0xEA),UC(0xFC),UC(0xF9), _______},
+ {_______, UC(0xE2),UC(0xE0),UC(0xDF), _______, _______, _______,UC(0xE8),UC(0xE9),UC(0xEF),UC(0xF6), _______},
+ {MO(_GR_S),UC(0xE6),UC(0xF4),UC(0xE7),UC(0x153),_______, _______,UC(0xFB),UC(0xAB),UC(0xBB),UC(0xEE), MO(_GR_S)},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+// Shifted layer of the above
+[_GR_S] = {
+ {_______, UC(0xC4),UC(0xC5), _______, UC(0xA3), UC(0xA5),_______, UC(0xCB),UC(0xCA),UC(0xDC),UC(0xD9),_______},
+ {_______, UC(0xC2),UC(0xC0), UC(0xDF),_______, _______, _______, UC(0xC8),UC(0xC9),UC(0xCF),UC(0xD6),_______},
+ {MO(_GR_S),UC(0xC6),UC(0xD4), UC(0xC7),UC(0x152),_______, _______, UC(0xDB),UC(0xAB),UC(0xBB),UC(0xCE),MO(_GR_S)},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+
+/* Adjust Layer (Gr + Num)
+ * ,-----------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+-------------+------+------+------+------+------+------+------+------+------|
+ * | | |Prntscr| ESC |VOLUP | PLAY | PREV |QWERTY|COLEMAK|PLOVER| | |
+ * |------+-------------+------+------+------+------+------+------+------+------+------|
+ * | | |BACKLIT| INS |VOLDWN| MUTE | NEXT | WIND |LINUX | OSX | | |
+ * |------+-------------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+[_ADJ] = {
+ {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 },
+ {XXXXXXX, XXXXXXX, KC_PSCR, KC_ESC, KC_VOLU, KC_MPLY, KC_MPRV, QWERTY, COLEMAK, PLOVER, XXXXXXX, XXXXXXX},
+ {XXXXXXX, XXXXXXX, BL_STEP, KC_INS, KC_VOLD, KC_MUTE, KC_MNXT, WINDOWS, LINUX, OSX, XXXXXXX, XXXXXXX},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+
+/* Navigation
+ * ,-----------------------------------------------------------------------------------.
+ * | | | BTN3 | BTN2 | BTN1 | | ACL0 | HOME | PGDN | PGUP | END | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | |MSLEFT| MSDN | MSUP |MSRGHT| | ACL1 | LEFT | DOWN | UP | RGHT |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | |WHLEFT| WHDN | WHUP |WHRGHT| | ACL2 |C-LEFT|C-PGDN|C-PGUP|C-RGHT|Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | _ |Space | ACL0 | ACL1 | ACL2 | |TGLNAV|
+ * `-----------------------------------------------------------------------------------'
+ */
+
+[_NAV] = {
+ {XXXXXXX, XXXXXXX, KC_BTN3, KC_BTN2, KC_BTN1, XXXXXXX, KC_ACL0, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_BSPC},
+ {XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX, KC_ACL1, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_ENT },
+ {XXXXXXX, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, XXXXXXX, KC_ACL2, LCTL(KC_LEFT), LCTL(KC_PGDN), LCTL(KC_PGUP), LCTL(KC_RIGHT), KC_ENT },
+ {_______, _______, _______, _______, _______, _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______}
+},
+
+/* Plover Layer
+ * ,-----------------------------------------------------------------------------------.
+ * | | S | T | P | H | * | * | F | P | L | T | D |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |TogOut| S | K | W | R | * | * | R | B | G | S | Z |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | # | # | # | # | # | # | # | # | # | # | # | # |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Exit | | | # | A | O | E | U | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+[_PLOVER] = {
+ {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC},
+ {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 },
+ {EXT_PLV, XXXXXXX, XXXXXXX, KC_1, KC_C, KC_V, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
+}
+
+
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+};
+
+
+void matrix_init_user(){
+ set_unicode_input_mode(UC_LNX);
+}
+
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case M_ALT_HASH:
+ return MACRO_TAP_SHFT_KEY_HOLD_MOD(record, 3, LALT);
+ case M_GR_DASH:
+ {
+ const macro_t* macro = MACRO_TAP_HOLD_LAYER(record, MACRO(T(MINS)), _GR);
+ update_tri_layer(_NUM, _GR, _ADJ);
+ return macro;
+ }
+ case M_SYM_LPRN:
+ return MACRO_TAP_SHFT_KEY_HOLD_LAYER(record, 9, _SYM);
+ case M_NAV_UNDS:
+ return MACRO_TAP_SHFT_KEY_HOLD_LAYER(record, MINS, _NAV);
+ case M_NUM_RPRN:
+ {
+ const macro_t* macro = MACRO_TAP_SHFT_KEY_HOLD_LAYER(record, 0, _NUM);
+ update_tri_layer(_NUM, _GR, _ADJ);
+ return macro;
+ }
+ case M_CTRL_DLR:
+ return MACRO_TAP_SHFT_KEY_HOLD_MOD(record, 4, LCTL);
+ case M_LCBR_ENT:
+ return MACRODOWN(I(10), D(LSFT), T(LBRC), U(LSFT), T(ENT), END);
+ case M_PLOVER:
+ if (record->event.pressed) {
+ layer_and(0);
+ layer_on(_PLOVER);
+ default_layer_set(_PLOVER);
+
+ // Starts plover
+ return MACRO(I(10), D(E), D(R), D(F), D(V), D(I), D(K), U(E), U(R), U(F), U(V), U(I), U(K), END);
+ }
+ break;
+ case M_EXT_PLV:
+ if (!record->event.pressed) {
+ layer_off(_PLOVER);
+ default_layer_set(_COLEMAK);
+
+ //Pauses plover
+ return MACRO(I(10), D(E), D(R), D(F), D(V), D(Y), D(U), U(E), U(R), U(F), U(V), U(Y), U(U), END);
+ }
+ break;
+ case M_WINDOWS:
+ set_unicode_input_mode(UC_WIN);
+ break;
+ case M_LINUX:
+ set_unicode_input_mode(UC_LNX);
+ break;
+ case M_OSX:
+ set_unicode_input_mode(UC_OSX);
+ break;
+ case M_FUNCTION:
+ if (record->event.pressed) {
+ SEND_STRING("function");
+ }
+ break;
+ case M_THEN:
+ if (record->event.pressed) {
+ SEND_STRING("then");
+ }
+ break;
+ case M_CATCH:
+ if (record->event.pressed) {
+ SEND_STRING("catch");
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/planck/keymaps/luke/readme.md b/keyboards/planck/keymaps/luke/readme.md
new file mode 100644
index 000000000..3a4824b5b
--- /dev/null
+++ b/keyboards/planck/keymaps/luke/readme.md
@@ -0,0 +1,2 @@
+# A more basic Planck Layout for copying
+
diff --git a/keyboards/planck/keymaps/mitch/Makefile b/keyboards/planck/keymaps/mitch/Makefile
new file mode 100644
index 000000000..7955003d4
--- /dev/null
+++ b/keyboards/planck/keymaps/mitch/Makefile
@@ -0,0 +1,5 @@
+SUBPROJECT = rev3
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/mitch/config.h b/keyboards/planck/keymaps/mitch/config.h
new file mode 100644
index 000000000..73bc50bc2
--- /dev/null
+++ b/keyboards/planck/keymaps/mitch/config.h
@@ -0,0 +1,2 @@
+#include "../../config.h"
+#define PREVENT_STUCK_MODIFIERS
diff --git a/keyboards/planck/keymaps/mitch/keymap.c b/keyboards/planck/keymaps/mitch/keymap.c
new file mode 100644
index 000000000..79b5204f0
--- /dev/null
+++ b/keyboards/planck/keymaps/mitch/keymap.c
@@ -0,0 +1,70 @@
+#include "keymap.h"
+#include "quantum.h"
+
+#define QWERTY 0
+#define LOWER 1
+#define RAISE 2
+
+// Alias to make layering more clear
+#define _______ KC_TRNS
+
+// In MacOS, switch between windows within an application
+#define GUI_GRV LGUI(KC_GRV)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Ctl | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | Del | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[QWERTY] = {
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT) },
+ {KC_ESC, KC_DEL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | GUIGR| | | | | | | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Caps | | Mute | Vol- | Vol+ | | Bksp | $ | % | ^ | | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | ! | @ | # | \ |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | Enter | | | PgUp | PgUn | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[LOWER] = {
+ {GUI_GRV, _______, _______, _______, _______, _______, _______, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL},
+ {KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_BSPC, KC_DLR, KC_PERC, KC_CIRC, KC_PIPE, KC_PIPE},
+ {_______, _______, _______, _______, _______, _______, _______, KC_EXLM, KC_AT, KC_HASH, KC_BSLS, KC_ENT},
+ {_______, _______, _______, _______, _______, KC_ENT, KC_ENT, _______, _______, KC_PGDN, KC_PGUP, _______}
+},
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | ` | ~ | ( | ) | | | 7 | 8 | 9 | 0 | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | [ | ] | { | } | | | 4 | 5 | 6 | | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | - | _ | = | + | | | 1 | 2 | 3 | |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | Enter | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+[RAISE] = {
+ {KC_GRV, KC_GRV, KC_TILD, KC_LPRN, KC_RPRN, _______, _______, KC_7, KC_8, KC_9, KC_0, _______},
+ {_______, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______, _______, KC_4, KC_5, KC_6, _______, KC_BSLS},
+ {_______, KC_MINS, KC_UNDS, KC_EQL, KC_PLUS, _______, _______, KC_1, KC_2, KC_3, _______, KC_ENT},
+ {_______, _______, _______, _______, _______, KC_ENT, KC_ENT, _______, _______, KC_PGDN, KC_PGUP, _______}
+}
+};
diff --git a/keyboards/planck/keymaps/mitch/readme.md b/keyboards/planck/keymaps/mitch/readme.md
new file mode 100644
index 000000000..3869304f4
--- /dev/null
+++ b/keyboards/planck/keymaps/mitch/readme.md
@@ -0,0 +1,26 @@
+## Flashing Keyboard
+
+1. Install `dfu` tools:
+
+ brew tap osx-cross/avr
+ brew install avr-libc
+ brew install dfu-programmer
+
+2. Move to this directory.
+3. Hit the reset button on the keyboard.
+4. run `make dfu`.
+
+## The Keymap
+
+This keymap is designed for a rev3 Planck Keyboard.
+
+The default layer is QWERTY. The raise layer has a ten key on the right
+and common programming punctuation on the left. The lower layer provides the
+rest of the symbols, mostly mapped with the ten key numbers.
+
+The normal right shift key uses the `MT` macro to trigger Enter on tap and right
+shift when held.
+
+This keymap sets the `PREVENT_STUCK_MODIFIERS` flag to avoid the occasional WTF
+moments when using a modifier keys and accidentally releasing them after moving
+to a new layer.
diff --git a/keyboards/planck/keymaps/mollat/Makefile b/keyboards/planck/keymaps/mollat/Makefile
index 581e08cd0..b2ca41944 100644
--- a/keyboards/planck/keymaps/mollat/Makefile
+++ b/keyboards/planck/keymaps/mollat/Makefile
@@ -1,3 +1,6 @@
+# Please remove if no longer applicable
+$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
+$(warning Please disable some options in the Makefile to resolve)
# Build Options
@@ -22,4 +25,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../Makefile
-endif \ No newline at end of file
+endif
diff --git a/keyboards/planck/keymaps/nico/Makefile b/keyboards/planck/keymaps/nico/Makefile
index 581e08cd0..b2ca41944 100644
--- a/keyboards/planck/keymaps/nico/Makefile
+++ b/keyboards/planck/keymaps/nico/Makefile
@@ -1,3 +1,6 @@
+# Please remove if no longer applicable
+$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
+$(warning Please disable some options in the Makefile to resolve)
# Build Options
@@ -22,4 +25,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../Makefile
-endif \ No newline at end of file
+endif
diff --git a/keyboards/planck/keymaps/premek/Makefile b/keyboards/planck/keymaps/premek/Makefile
new file mode 100644
index 000000000..b2ca41944
--- /dev/null
+++ b/keyboards/planck/keymaps/premek/Makefile
@@ -0,0 +1,28 @@
+# Please remove if no longer applicable
+$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
+$(warning Please disable some options in the Makefile to resolve)
+
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = yes # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/premek/keymap.c b/keyboards/planck/keymaps/premek/keymap.c
new file mode 100644
index 000000000..9b212ab25
--- /dev/null
+++ b/keyboards/planck/keymaps/premek/keymap.c
@@ -0,0 +1,231 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "planck.h"
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _COLEMAK 1
+#define _DVORAK 2
+#define _LOWER 3
+#define _RAISE 4
+#define _PLOVER 5
+#define _ADJUST 16
+
+enum planck_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK,
+ PLOVER,
+ LOWER,
+ RAISE,
+ BACKLIT,
+ EXT_PLV
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_QWERTY] = {
+ {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_DEL, KC_Y, KC_U, KC_I, KC_O, KC_P },
+ {KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_TAB, KC_H, KC_J, KC_K, KC_L, KC_SCLN},
+ {KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH},
+ {KC_LGUI, _______, _______, KC_LALT, LOWER, KC_SPC, KC_ENT, KC_SPC, RAISE, KC_RALT, _______, KC_RGUI}
+},
+[_COLEMAK] = {
+ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
+ {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
+ {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+[_DVORAK] = {
+ {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
+ {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
+ {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
+ {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+[_LOWER] = {
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0},
+ {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_HOME, KC_PGDN, KC_PGUP, KC_END },
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F12, KC_PLUS, KC_PIPE, KC_LCBR, KC_RCBR},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+[_RAISE] = {
+ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN},
+ {_______, _______, _______, KC_QUOT, KC_MINS, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT},
+ {_______, KC_TILD, KC_GRV, KC_PLUS, KC_EQL, KC_PIPE, _______, KC_BSLS, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+
+[_PLOVER] = {
+ {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 },
+ {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC},
+ {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX}
+},
+[_ADJUST] = {
+ {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
+ {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______},
+ {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+}
+
+
+};
+
+#ifdef AUDIO_ENABLE
+
+float tone_startup[][2] = SONG(STARTUP_SOUND);
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+float tone_plover[][2] = SONG(PLOVER_SOUND);
+float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_COLEMAK);
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_DVORAK);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ return false;
+ break;
+ case PLOVER:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ stop_all_notes();
+ PLAY_NOTE_ARRAY(tone_plover, false, 0);
+ #endif
+ layer_off(_RAISE);
+ layer_off(_LOWER);
+ layer_off(_ADJUST);
+ layer_on(_PLOVER);
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+ keymap_config.raw = eeconfig_read_keymap();
+ keymap_config.nkro = 1;
+ eeconfig_update_keymap(keymap_config.raw);
+ }
+ return false;
+ break;
+ case EXT_PLV:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_plover_gb, false, 0);
+ #endif
+ layer_off(_PLOVER);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif
diff --git a/keyboards/planck/keymaps/premek/readme.md b/keyboards/planck/keymaps/premek/readme.md
new file mode 100644
index 000000000..16debdd63
--- /dev/null
+++ b/keyboards/planck/keymaps/premek/readme.md
@@ -0,0 +1,4 @@
+# Split Layout
+Inspired by TECK
+
+[Layout](http://www.keyboard-layout-editor.com/##@_switchMount=cherry&switchBrand=gateron&switchType=KS-3-Tea&pcb:true%3B&@_c=%23e6e6e6&t=%23757575&a:7&fa@:5%3B%3B&=Esc&_a:4&fa@:5&:0&:0&:0&:0&:0&:0&:0&:0&:5%3B%3B&=%0A%0A!%0A1%0A%0A%0A%0A%0A%0AQ&=%0A%0A%2F@%0A2%0A%0A%0A%0A%0A%0AW&=%0A%0A%23%0A3%0A%0A%0A%0A%0A%0AE&=%0A%0A$%0A4%0A%0A%0A%0A%0A%0AR&=%0A%0A%25%0A5%0A%0A%0A%0A%0A%0AT&_c=%23e3b02d&a:7%3B&=Del&_c=%23e6e6e6&a:4%3B&=%0A%0A%5E%0A6%0A%0A%0A%0A%0A%0AY&=%0A%0A%2F&%0A7%0A%0A%0A%0A%0A%0AU&=%0A%0A*%0A8%0A%0A%0A%0A%0A%0AI&=%0A%0A(%0A9%0A%0A%0A%0A%0A%0AO&=%0A%0A)%0A0%0A%0A%0A%0A%0A%0AP%3B&@_a:7%3B&=Shift&_a:4%3B&=%0A%0A%0AF1%0A%0A%0A%0A%0A%0AA&=%0A%0A%0AF2%0A%0A%0A%0A%0A%0AS&=%0A%0A'%0AF3%0A%0A%0A%0A%0A%0AD&_c=%23e3b02d&n:true%3B&=%0A%0A-%0AF4%0A%0A%0A%0A%0A%0AF&_c=%23e6e6e6%3B&=%0A%0A%0AF5%0A%0A%0A%0A%0A%0AG&_c=%23e3b02d&a:7%3B&=Tab&_c=%23e6e6e6&a:4%3B&=%0A%0A%0AF6%0A%0A%0A%0A%0A%0AH&_c=%23e3b02d&n:true%3B&=%0A%0A%2F&larr%2F%3B%0AHom%0A%0A%0A%0A%0A%0AJ&_c=%23e6e6e6%3B&=%0A%0A%2F&darr%2F%3B%0APgD%0A%0A%0A%0A%0A%0AK&=%0A%0A%2F&uarr%2F%3B%0APgU%0A%0A%0A%0A%0A%0AL&=%0A%0A%2F&rarr%2F%3B%0AEnd%0A%0A%0A%0A%0A%0A%2F%3B%3B&@_a:7%3B&=Ctrl&_a:4%3B&=%0A%0A~%0AF7%0A%0A%0A%0A%0A%0AZ&=%0A%0A%60%0AF8%0A%0A%0A%0A%0A%0AX&=%0A%0A+%0AF9%0A%0A%0A%0A%0A%0AC&=%0A%0A%2F=%0AF10%0A%0A%0A%0A%0A%0AV&=%0A%0A%7C%0AF11%0A%0A%0A%0A%0A%0AB&_c=%23e3b02d&a:7%3B&=BSp&_c=%23e6e6e6&a:4%3B&=%0A%0A%5C%0AF12%0A%0A%0A%0A%0A%0AN&=%0A%0A%5B%0A%0A%0A%0A%0A%0A%0AM&=%0A%0A%5D%0A%0A%0A%0A%0A%0A%0A,&=%0A%0A%7B%0A%0A%0A%0A%0A%0A%0A.&=%0A%0A%7D%0A%0A%0A%0A%0A%0A%0A%2F%2F%3B&@_a:7%3B&=&=&=&=Alt&_c=%23e3b02d%3B&=%2F&dArr%2F%3B&_c=%23e6e6e6%3B&=spc&_c=%23e3b02d%3B&=%2F&crarr%2F%3B&_c=%23e6e6e6%3B&=spc&_c=%23e3b02d%3B&=%2F&uArr%2F%3B&_c=%23e6e6e6%3B&=Alt&=&=)
diff --git a/keyboards/planck/keymaps/priyadi/Makefile b/keyboards/planck/keymaps/priyadi/Makefile
new file mode 100644
index 000000000..27c2638e2
--- /dev/null
+++ b/keyboards/planck/keymaps/priyadi/Makefile
@@ -0,0 +1,26 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+UNICODEMAP_ENABLE = yes # Unicode map
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+API_SYSEX_ENABLE = no
+FAUXCLICKY_ENABLE = yes
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/priyadi/config.h b/keyboards/planck/keymaps/priyadi/config.h
new file mode 100644
index 000000000..82e4a25c6
--- /dev/null
+++ b/keyboards/planck/keymaps/priyadi/config.h
@@ -0,0 +1,39 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#define PRIYADI_PLANCK
+
+/* bootmagic salt key */
+#define BOOTMAGIC_KEY_SALT KC_ESC
+
+/* skip bootmagic and eeconfig */
+#define BOOTMAGIC_KEY_SKIP KC_SPACE
+
+#define PREVENT_STUCK_MODIFIERS
+
+#define UNICODE_TYPE_DELAY 0
+
+#define LAYOUT_DVORAK
+#define LAYOUT_COLEMAK
+#define LAYOUT_NORMAN
+#define LAYOUT_WORKMAN
+
+#define DOUBLESPACE_LAYER_ENABLE
+ // #define TOLELOT_ENABLE
+
+#define KEYMAP( \
+ k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
+ k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
+ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c \
+) \
+{ \
+ {k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c}, \
+ {k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c}, \
+ {k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c}, \
+ {k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c} \
+}
+
+#endif
diff --git a/keyboards/planck/keymaps/priyadi/keymap.c b/keyboards/planck/keymaps/priyadi/keymap.c
new file mode 100644
index 000000000..bb3a2e92c
--- /dev/null
+++ b/keyboards/planck/keymaps/priyadi/keymap.c
@@ -0,0 +1 @@
+#include "../../../handwired/promethium/keymaps/priyadi/keymap.c" \ No newline at end of file
diff --git a/keyboards/planck/keymaps/priyadi/readme.md b/keyboards/planck/keymaps/priyadi/readme.md
new file mode 100644
index 000000000..99bdd9d9b
--- /dev/null
+++ b/keyboards/planck/keymaps/priyadi/readme.md
@@ -0,0 +1,11 @@
+# Priyadi's Planck Layout
+
+Features:
+
+- Supports QWERTY, Colemak and Workman layouts.
+- Cursor and nav cluster on home row.
+- Hybrid number row and numpad, located on home row.
+- Number layer supports hexadecimal input.
+- Left and right side modifiers.
+- Emoji layer. An entire layer filled with common emojis.
+- Faux-clickey (poor man's replacement for Cherry blue switches) \ No newline at end of file
diff --git a/keyboards/planck/keymaps/pvc/Makefile b/keyboards/planck/keymaps/pvc/Makefile
index 0b2f060de..c92ca1bff 100644
--- a/keyboards/planck/keymaps/pvc/Makefile
+++ b/keyboards/planck/keymaps/pvc/Makefile
@@ -1,12 +1,15 @@
+# Please remove if no longer applicable
+$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
+$(warning Please disable some options in the Makefile to resolve)
# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
+# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
@@ -21,4 +24,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../Makefile
-endif \ No newline at end of file
+endif
diff --git a/keyboards/planck/keymaps/pvc/config.h b/keyboards/planck/keymaps/pvc/config.h
index c857a3e89..1004c8b99 100644
--- a/keyboards/planck/keymaps/pvc/config.h
+++ b/keyboards/planck/keymaps/pvc/config.h
@@ -59,13 +59,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* ws2812 RGB LED */
-#define RGB_DI_PIN D1
-#define RGBLIGHT_TIMER
-#define RGBLED_NUM 28 // Number of LEDs
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 17
-#define RGBLIGHT_VAL_STEP 17
+#define BACKLIGHT_PIN B7
+#define BACKLIGHT_BREATHING
/*
* Feature disable options
@@ -73,10 +68,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* disable debug print */
-//#define NO_DEBUG
+#ifndef NO_DEBUG
+# define NO_DEBUG
+#endif
/* disable print */
-//#define NO_PRINT
+// #ifndef NO_PRINT
+// # define NO_PRINT
+// #endif
+
+/* Only print user print statements */
+#define USER_PRINT
+
/* disable action features */
//#define NO_ACTION_LAYER
diff --git a/keyboards/planck/keymaps/pvc/keymap.c b/keyboards/planck/keymaps/pvc/keymap.c
index 2fc5f0da1..6ad95832d 100644
--- a/keyboards/planck/keymaps/pvc/keymap.c
+++ b/keyboards/planck/keymaps/pvc/keymap.c
@@ -2,48 +2,59 @@
#include "action_layer.h"
#include "eeconfig.h"
#include "led.h"
+#include "mousekey.h"
#ifdef AUDIO_ENABLE
#include "audio.h"
#include "song_list.h"
#endif
-#define LAYER_QWERTY 0
-#define LAYER_COLEMAK 1
-#define LAYER_DVORAK 2
-#define LAYER_UPPER 3
-#define LAYER_LOWER 4
-#define LAYER_FUNCTION 5
-#define LAYER_MOUSE 6
-#define LAYER_ADJUST 7
-
-#define MACRO_QWERTY 0
-#define MACRO_COLEMAK 1
-#define MACRO_DVORAK 2
-#define MACRO_UPPER 3
-#define MACRO_LOWER 4
-#define MACRO_FUNCTION 5
-#define MACRO_MOUSE 6
-#define MACRO_TIMBRE_1 7
-#define MACRO_TIMBRE_2 8
-#define MACRO_TIMBRE_3 9
-#define MACRO_TIMBRE_4 10
-#define MACRO_TEMPO_U 11
-#define MACRO_TEMPO_D 12
-#define MACRO_TONE_DEFAULT 13
-#define MACRO_MUSIC_TOGGLE 14
-#define MACRO_AUDIO_TOGGLE 16
-#define MACRO_INC_VOICE 18
-#define MACRO_DEC_VOICE 19
-#define MACRO_BACKLIGHT 20
-#define MACRO_BREATH_TOGGLE 21
-#define MACRO_BREATH_SPEED_INC 23
-#define MACRO_BREATH_SPEED_DEC 24
-#define MACRO_BREATH_DEFAULT 25
+enum keyboard_layers {
+ LAYER_QWERTY = 0,
+ LAYER_UPPER,
+ LAYER_LOWER,
+ LAYER_FUNCTION,
+ LAYER_MOUSE,
+ LAYER_ADJUST,
+};
+enum keyboard_macros {
+ MACRO_QWERTY = 0,
+ MACRO_UPPER,
+ MACRO_LOWER,
+ MACRO_FUNCTION,
+ MACRO_MOUSE,
+ MACRO_TIMBRE_1,
+ MACRO_TIMBRE_2,
+ MACRO_TIMBRE_3,
+ MACRO_TIMBRE_4,
+ MACRO_TEMPO_U,
+ MACRO_TEMPO_D,
+ MACRO_TONE_DEFAULT,
+ MACRO_MUSIC_TOGGLE,
+ MACRO_AUDIO_TOGGLE,
+ MACRO_INC_VOICE,
+ MACRO_DEC_VOICE,
+ MACRO_BACKLIGHT,
+ MACRO_BREATH_TOGGLE,
+ MACRO_BREATH_SPEED_INC,
+ MACRO_BREATH_SPEED_DEC,
+ MACRO_BREATH_DEFAULT,
+ MACRO_MOUSE_MOVE_UL,
+ MACRO_MOUSE_MOVE_UR,
+ MACRO_MOUSE_MOVE_DL,
+ MACRO_MOUSE_MOVE_DR,
+ MACRO_HELP_1,
+ MACRO_HELP_2,
+ MACRO_HELP_3,
+ MACRO_HELP_4,
+ MACRO_HELP_5,
+ MACRO_HELP_6,
+ MACRO_HELP_7,
+ MACRO_HELP_8,
+ MACRO_HELP_9,
+};
#define M_QWRTY M(MACRO_QWERTY)
-#define M_COLMK M(MACRO_COLEMAK)
-#define M_DVORK M(MACRO_DVORAK)
#define M_UPPER M(MACRO_UPPER)
#define M_LOWER M(MACRO_LOWER)
#define M_FUNCT M(MACRO_FUNCTION)
@@ -60,6 +71,19 @@
#define M_BSPDU M(MACRO_BREATH_SPEED_INC)
#define M_BSPDD M(MACRO_BREATH_SPEED_DEC)
#define M_BDFLT M(MACRO_BREATH_DEFAULT)
+#define M_MS_UL M(MACRO_MOUSE_MOVE_UL)
+#define M_MS_UR M(MACRO_MOUSE_MOVE_UR)
+#define M_MS_DL M(MACRO_MOUSE_MOVE_DL)
+#define M_MS_DR M(MACRO_MOUSE_MOVE_DR)
+#define M_HELP1 M(MACRO_HELP_1)
+#define M_HELP2 M(MACRO_HELP_2)
+#define M_HELP3 M(MACRO_HELP_3)
+#define M_HELP4 M(MACRO_HELP_4)
+#define M_HELP5 M(MACRO_HELP_5)
+#define M_HELP6 M(MACRO_HELP_6)
+#define M_HELP7 M(MACRO_HELP_7)
+#define M_HELP8 M(MACRO_HELP_8)
+#define M_HELP9 M(MACRO_HELP_9)
#define VC_UP M(MACRO_INC_VOICE)
@@ -77,6 +101,7 @@
#define SC_ACLS LALT(KC_F4)
#define SC_CCLS LCTL(KC_F4)
+#define TG_NKRO MAGIC_TOGGLE_NKRO
#define OS_SHFT KC_FN0
#define _______ KC_TRNS
@@ -86,146 +111,108 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* QWERTY
- * .-----------------------------------------------------------------------------------------------------------.
- * | TAB | Q | W | E | R | T | Y | U | I | O | P | BACKSP |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | ESC | A | S | D | F | G | H | J | K | L | ; | ' |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | LSHIFT | Z | X | C | V | B | N | M | , | . | UP | ENTER |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | SHIFT | LEFT | DOWN | RIGHT |
- * '-----------------------------------------------------------------------------------------------------------'
- */
-
- [LAYER_QWERTY] = { // QWERTY
- { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC },
- { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT },
- { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT },
- { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT },
- },
-
-/* COLEMAK
- * .-----------------------------------------------------------------------------------------------------------.
- * | TAB | Q | W | F | P | G | J | L | U | Y | ; | ESC |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | BACKSP | A | R | S | T | D | H | N | E | I | O | ' |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | LSHIFT | Z | X | C | V | B | K | M | , | . | UP | ENTER |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | SHIFT | LEFT | DOWN | RIGHT |
- * '-----------------------------------------------------------------------------------------------------------'
- */
-
- [LAYER_COLEMAK] = { // COLEMAK
- { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_ESC },
- { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT },
- { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT },
- { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT },
- },
-
-/* DVORAK
- * .-----------------------------------------------------------------------------------------------------------.
- * | TAB | ' | , | . | P | Y | F | G | C | R | L | BACKSP |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | ESC | A | O | E | U | I | D | H | T | N | S | / |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | ENTER |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT |
- * '-----------------------------------------------------------------------------------------------------------'
- */
-
- [LAYER_DVORAK] = { // DVORAK
- { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC },
- { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH },
- { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
- { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT },
- },
-
-/* UPPER
- * .-----------------------------------------------------------------------------------------------------------.
- * | PRINT | F1 | F2 | F3 | F4 | NUM LK | / | 7 | 8 | 9 | - | DEL |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | CAP LK | F5 | F6 | F7 | F8 | SCR LK | * | 4 | 5 | 6 | + | INS |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | F9 | F10 | F11 | F12 | PAUSE | | 1 | 2 | 3 | ENTER | HOME |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | | | | | | 0 | 0 | | RALT | . | ENTER | END |
- * '-----------------------------------------------------------------------------------------------------------'
- */
-
- [LAYER_UPPER] = { // UPPER
- { KC_PSCR, KC_F1, KC_F2, KC_F3, KC_F4, KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_DEL },
- { KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_SLCK, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_INS },
- { _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, KC_HOME },
- { _______, _______, _______, _______, _______, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, KC_END },
- },
-
-/* LOWER
- * .-----------------------------------------------------------------------------------------------------------.
- * | | $ | { | [ | ( | % | # | ) | ] | } | @ | PG UP |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | ^ | * | + | - | ; | : | _ | ' | " | ` | PG DN |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | | | & | ! | ~ | / | \ | = | < | > | ? | HOME |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | | | | | | | | | | | | END |
- * '-----------------------------------------------------------------------------------------------------------'
- */
-
- [LAYER_LOWER] = { // LOWER
- { _______, KC_DLR, KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT, KC_PGUP },
- { _______, KC_CIRC, KC_ASTR, KC_PPLS, KC_PMNS, KC_SCLN, KC_COLN, KC_UNDS, KC_QUOT, KC_DQT, KC_GRV, KC_PGDN },
- { _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SLSH, KC_BSLS, KC_EQL, KC_LT, KC_GT, KC_QUES, KC_HOME },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END },
- },
-
-
-/* FUNCTION
- * .-----------------------------------------------------------------------------------------------------------.
- * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | PAUSE |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | CAP LK | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | PRINT |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MUTE |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | LCTRL | LWIN | FN | LALT | UPPER | PLAY | PLAY | LOWER | VOL UP | VOL DN | NEXT | PREV |
- * '-----------------------------------------------------------------------------------------------------------'
- */
- [LAYER_FUNCTION] = { // FUNCTION
- { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PAUS },
- { KC_CAPS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_PSCR },
- { KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE },
- { _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT },
- },
-
-#ifdef MOUSEKEY_ENABLE
-
- [LAYER_MOUSE] = { // MOUSE
- { KC_ESC, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC },
- { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
- { _______, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, KC_WH_D },
- { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, KC_MS_U, KC_MS_D, KC_MS_L, KC_MS_R },
- },
-
-#endif
-
- [LAYER_ADJUST] = { // ADJUST
- { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, _______, MU_TOG, AU_TOG },
- { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, M_BACKL, RESET, _______, M_MOUSE, _______, _______, MUV_IN, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MUV_DE, _______ },
- },
-
-/*
- [LAYER_EMPTY] = {
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, },
- { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, },
- },
+/* LAYER = LAYER_QWERTY
+ .-----------------------------------------------------------------------------------------------------------.
+ | TAB | Q | W | E | R | T | Y | U | I | O | P | BACKSP |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ESC | A | S | D | F | G | H | J | K | L | ; | ' |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | LSHIFT | Z | X | C | V | B | N | M | , | . | UP | ENTER |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | OSHIFT | LEFT | DOWN | RIGHT |
+ '-----------------------------------------------------------------------------------------------------------'
*/
+[LAYER_QWERTY] = {
+ { KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC },
+ { KC_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT },
+ { KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_UP , KC_ENT },
+ { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC , KC_SPC , M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT }
+},
+/* LAYER = LAYER_UPPER
+ .-----------------------------------------------------------------------------------------------------------.
+ | PRINT | F1 | F2 | F3 | F4 | NUM LK | KP / | KP 7 | KP 8 | KP 9 | KP - | DEL |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | PAUSE | F5 | F6 | F7 | F8 | SCR LK | KP * | KP 4 | KP 5 | KP 6 | KP + | INS |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | F9 | F10 | F11 | F12 | PAUSE | KP 0 | KP 1 | KP 2 | KP 3 | KP ENT | HOME |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | ______ | ______ | ______ | UPPER | KP 0 | KP 0 | ______ | RALT | KP . | KP ENT | END |
+ '-----------------------------------------------------------------------------------------------------------'
+*/
+[LAYER_UPPER] = {
+ { KC_PSCR, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_DEL },
+ { KC_PAUS, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_SLCK, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_INS },
+ { _______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PAUS, KC_KP_0, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, KC_HOME },
+ { _______, _______, _______, _______, M_UPPER, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, KC_END }
+},
+/* LAYER = LAYER_LOWER
+ .-----------------------------------------------------------------------------------------------------------.
+ | ______ | $ | { | [ | ( | % | # | ) | ] | } | @ | PG UP |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | ^ | * | + | - | / | \ | _ | ' | " | ` | PG DN |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | | | & | ! | ~ | ; | : | = | < | > | ? | HOME |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | LOWER | ______ | ______ | ______ | END |
+ '-----------------------------------------------------------------------------------------------------------'
+*/
+[LAYER_LOWER] = {
+ { _______, KC_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , KC_PGUP },
+ { _______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , KC_PGDN },
+ { _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL , KC_LT , KC_GT , KC_QUES, KC_HOME },
+ { _______, _______, _______, _______, _______, _______, _______, M_LOWER, _______, _______, _______, KC_END }
+},
+/* LAYER = LAYER_FUNCTION
+ .-----------------------------------------------------------------------------------------------------------.
+ | XXXXXX | F13 | F14 | F15 | F16 | NUM LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | XXXXXX | F17 | F18 | F19 | F20 | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | F21 | F22 | F23 | F24 | CAP LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | VOL UP | MUTE |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | ______ | FN | ______ | ______ | PLAY | PLAY | ______ | ______ | PREV | VOL DN | NEXT |
+ '-----------------------------------------------------------------------------------------------------------'
+*/
+[LAYER_FUNCTION] = {
+ { XXXXXXX, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { _______, KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE },
+ { _______, _______, M_FUNCT, _______, _______, KC_MPLY, KC_MPLY, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT }
+},
+/* LAYER = LAYER_MOUSE
+ .-----------------------------------------------------------------------------------------------------------.
+ | ESC | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS UL | MS U | MS UR | MS WHL | MS WHR |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | XXXXXX | MS BT5 | MS BT4 | MS BT3 | MS BT2 | XXXXXX | XXXXXX | MS L | XXXXXX | MS R | XXXXXX | MS WHU |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS DL | MS D | MS DR | MS U | MS WHD |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | ______ | ______ | ______ | ______ | ______ | MS BT1 | MS BT1 | ______ | ______ | MS L | MS D | MS R |
+ '-----------------------------------------------------------------------------------------------------------'
+*/
+[LAYER_MOUSE] = {
+ { KC_ESC , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_UL, KC_MS_U, M_MS_UR, KC_WH_L, KC_WH_R },
+ { XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, XXXXXXX, KC_MS_R, XXXXXXX, KC_WH_U },
+ { _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_DL, KC_MS_D, M_MS_DR, KC_MS_U, KC_WH_D },
+ { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }
+},
+/* LAYER = LAYER_ADJUST
+ .-----------------------------------------------------------------------------------------------------------.
+ | XXXXXX | HELP 1 | HELP 2 | HELP 3 | HELP 4 | HELP 5 | HELP 6 | HELP 7 | HELP 8 | HELP 9 | MUSIC | AUDIO |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | XXXXXX | BRTOG | BRSPD+ | BRSPD- | BRDFLT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | XXXXXX | QWERTY | XXXXXX | XXXXXX | BACKLT | RESET | XXXXXX | MOUSE | XXXXXX | XXXXXX | VOICE+ | XXXXXX |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER | XXXXXX | XXXXXX | LOWER | XXXXXX | TEMPO- | VOICE- | TEMPO+ |
+ '-----------------------------------------------------------------------------------------------------------'
+*/
+[LAYER_ADJUST] = {
+ { XXXXXXX, M_HELP1, M_HELP2, M_HELP3, M_HELP4, M_HELP5, M_HELP6, M_HELP7, M_HELP8, M_HELP9, MU_TOG , AU_TOG },
+ { XXXXXXX, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { XXXXXXX, M_QWRTY, XXXXXXX, XXXXXXX, M_BACKL, RESET , XXXXXXX, M_MOUSE, XXXXXXX, XXXXXXX, MUV_IN , XXXXXXX },
+ { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_UPPER, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, TMPO_DN, MUV_DE , TMPO_UP }
+},
};
@@ -234,10 +221,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
float tone_my_startup[][2] = SONG(ODE_TO_JOY);
float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY);
-float tone_qwerty[][2] = SONG(QWERTY_SOUND);
-float tone_dvorak[][2] = SONG(DVORAK_SOUND);
-float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-
float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE);
float tone_music_on[][2] = SONG(DOE_A_DEER);
float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND);
@@ -257,7 +240,7 @@ void persistant_default_layer_set(uint16_t default_layer)
}
const uint16_t PROGMEM fn_actions[] = {
- [0] = ACTION_MODS_ONESHOT(MOD_LSFT),
+ [0] = ACTION_MODS_ONESHOT(MOD_RSFT),
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
@@ -267,46 +250,101 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
switch(id)
{
- case MACRO_QWERTY:
+ case MACRO_HELP_1:
if (record->event.pressed)
{
- persistant_default_layer_set(1UL<<LAYER_QWERTY);
- #ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO);
- #endif /* AUDIO_ENABLE */
+ uprintf("1");
}
break;
- case MACRO_COLEMAK:
+ case MACRO_HELP_2:
if (record->event.pressed)
{
- persistant_default_layer_set(1UL<<LAYER_COLEMAK);
- #ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO);
- #endif /* AUDIO_ENABLE */
+ uprintf("2");
}
break;
- case MACRO_DVORAK:
+ case MACRO_HELP_3:
if (record->event.pressed)
{
- persistant_default_layer_set(1UL<<LAYER_DVORAK);
- #ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO);
- #endif /* AUDIO_ENABLE */
+ uprintf("3");
}
break;
- case MACRO_LOWER:
+ case MACRO_HELP_4:
if (record->event.pressed)
{
- layer_on(LAYER_LOWER);
- update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
+ uprintf("4");
}
- else
+ break;
+
+ case MACRO_HELP_5:
+ if (record->event.pressed)
{
- layer_off(LAYER_LOWER);
- update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
+ uprintf("5");
+ }
+ break;
+
+ case MACRO_HELP_6:
+ if (record->event.pressed)
+ {
+ uprintf("6");
+ }
+ break;
+
+ case MACRO_HELP_7:
+ if (record->event.pressed)
+ {
+ uprintf("7");
+ }
+ break;
+
+ case MACRO_HELP_8:
+ if (record->event.pressed)
+ {
+ uprintf("8");
+ }
+ break;
+
+ case MACRO_HELP_9:
+ if (record->event.pressed)
+ {
+ uprintf("9");
+ }
+ break;
+
+ case MACRO_BREATH_TOGGLE:
+ if (record->event.pressed)
+ {
+ breathing_toggle();
+ }
+ break;
+
+ case MACRO_BREATH_SPEED_INC:
+ if (record->event.pressed)
+ {
+ breathing_speed_inc(1);
+ }
+ break;
+
+ case MACRO_BREATH_SPEED_DEC:
+ if (record->event.pressed)
+ {
+ breathing_speed_dec(1);
+ }
+ break;
+
+ case MACRO_BREATH_DEFAULT:
+ if (record->event.pressed)
+ {
+ breathing_defaults();
+ }
+ break;
+
+ case MACRO_QWERTY:
+ if (record->event.pressed)
+ {
+ persistant_default_layer_set(1UL<<LAYER_QWERTY);
}
break;
@@ -314,6 +352,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
if (record->event.pressed)
{
layer_on(LAYER_UPPER);
+ breathing_speed_set(2);
+ breathing_pulse();
update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
}
else
@@ -323,13 +363,32 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
}
break;
+ case MACRO_LOWER:
+ if (record->event.pressed)
+ {
+ layer_on(LAYER_LOWER);
+ breathing_speed_set(2);
+ breathing_pulse();
+ update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
+ }
+ else
+ {
+ layer_off(LAYER_LOWER);
+ update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
+ }
+ break;
+
case MACRO_FUNCTION:
if (record->event.pressed)
{
+ breathing_speed_set(3);
+ breathing_enable();
layer_on(LAYER_FUNCTION);
}
else
{
+ breathing_speed_set(1);
+ breathing_self_disable();
layer_off(LAYER_FUNCTION);
}
break;
@@ -352,6 +411,58 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
}
break;
+ case MACRO_MOUSE_MOVE_UL:
+ if (record->event.pressed)
+ {
+ mousekey_on(KC_MS_UP);
+ mousekey_on(KC_MS_LEFT);
+ }
+ else
+ {
+ mousekey_off(KC_MS_UP);
+ mousekey_off(KC_MS_LEFT);
+ }
+ break;
+
+ case MACRO_MOUSE_MOVE_UR:
+ if (record->event.pressed)
+ {
+ mousekey_on(KC_MS_UP);
+ mousekey_on(KC_MS_RIGHT);
+ }
+ else
+ {
+ mousekey_off(KC_MS_UP);
+ mousekey_off(KC_MS_RIGHT);
+ }
+ break;
+
+ case MACRO_MOUSE_MOVE_DL:
+ if (record->event.pressed)
+ {
+ mousekey_on(KC_MS_DOWN);
+ mousekey_on(KC_MS_LEFT);
+ }
+ else
+ {
+ mousekey_off(KC_MS_DOWN);
+ mousekey_off(KC_MS_LEFT);
+ }
+ break;
+
+ case MACRO_MOUSE_MOVE_DR:
+ if (record->event.pressed)
+ {
+ mousekey_on(KC_MS_DOWN);
+ mousekey_on(KC_MS_RIGHT);
+ }
+ else
+ {
+ mousekey_off(KC_MS_DOWN);
+ mousekey_off(KC_MS_RIGHT);
+ }
+ break;
+
#endif /* MOUSEKEY_ENABLE */
#ifdef AUDIO_ENABLE
diff --git a/keyboards/planck/keymaps/sgoodwin/Makefile b/keyboards/planck/keymaps/sgoodwin/Makefile
new file mode 100644
index 000000000..9081c6d3e
--- /dev/null
+++ b/keyboards/planck/keymaps/sgoodwin/Makefile
@@ -0,0 +1,29 @@
+# Please remove if no longer applicable
+$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
+$(warning Please disable some options in the Makefile to resolve)
+
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = yes # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+API_SYSEX_ENABLE = no # Disable extra stuff for ergodoxen
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/sgoodwin/keymap.c b/keyboards/planck/keymaps/sgoodwin/keymap.c
new file mode 100644
index 000000000..4d5d3d7ef
--- /dev/null
+++ b/keyboards/planck/keymaps/sgoodwin/keymap.c
@@ -0,0 +1,233 @@
+// This is sgoodwin's layout file for the Quantum project.
+// It doesn't have Plover or Dvorak layers because he doesn't use that.
+// It Also doesn't allow for swapping alt with CMD because that only happens in error.
+
+#include "planck.h"
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 1
+#define _COLEMAK 0
+#define _LOWER 3
+#define _RAISE 4
+#define _ADJUST 16
+
+enum planck_keycodes {
+ COLEMAK = SAFE_RANGE,
+ QWERTY,
+ LOWER,
+ RAISE,
+ BACKLIT,
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | R | S | T | D | H | N | E | I | O | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |SHEnt |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Hyper| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = {
+ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
+ {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT) },
+ {ALL_T(KC_NO), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |SHEnt |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Hyper| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT) },
+ {ALL_T(KC_NO), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = {
+ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
+ {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______},
+ {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = {
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
+ {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______},
+ {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset| | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|Audoff| | |Qwerty|Colemk| | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = {
+ {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
+ {_______, _______, _______, AU_ON, AU_OFF, _______, _______, QWERTY, COLEMAK, _______, _______, _______},
+ {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+}
+
+
+};
+
+#ifdef AUDIO_ENABLE
+
+float tone_startup[][2] = SONG(STARTUP_SOUND);
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_COLEMAK);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif
diff --git a/keyboards/planck/keymaps/sgoodwin/readme.md b/keyboards/planck/keymaps/sgoodwin/readme.md
new file mode 100644
index 000000000..dfa88f380
--- /dev/null
+++ b/keyboards/planck/keymaps/sgoodwin/readme.md
@@ -0,0 +1,10 @@
+# sgoodwin's Planck Layout
+
+Includes:
+
+1. No Dvorak or Plover
+2. No alt-swapping
+3. Right enter is shift when held down, enter when tapped.
+4. Bottom left corner in normal layers is Hyper and not brightness control.
+5. Brightness is instead in the bottom corner on raise/lower.
+
diff --git a/keyboards/planck/keymaps/smt/Makefile b/keyboards/planck/keymaps/smt/Makefile
new file mode 100644
index 000000000..457a3d01d
--- /dev/null
+++ b/keyboards/planck/keymaps/smt/Makefile
@@ -0,0 +1,3 @@
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/smt/keymap.c b/keyboards/planck/keymaps/smt/keymap.c
new file mode 100644
index 000000000..51e5a40bf
--- /dev/null
+++ b/keyboards/planck/keymaps/smt/keymap.c
@@ -0,0 +1,229 @@
+#include "planck.h"
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _DVORAK 0
+#define _QWERTY 1
+#define _LOWER 2
+#define _RAISE 3
+#define _ADJUST 16
+
+enum planck_keycodes {
+ DVORAK = SAFE_RANGE,
+ QWERTY,
+ LOWER,
+ RAISE,
+ BACKLIT
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | O | E | U | I | D | H | T | N | S | - |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = {
+ {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
+ {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS},
+ {SFT_T(KC_ESC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT)},
+ {ALL_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+ {_______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {_______, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | End |PageDn|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = {
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL},
+ {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_HOME, KC_PGUP},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_END, KC_PGDN},
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | _ | ? | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | - | / | = | [ | ] | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = {
+ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL},
+ {_______, _______, _______, _______, _______, _______, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+ {_______, _______, _______, _______, _______, _______, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset| | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap|Dvorak|Qwerty| | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = {
+ {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
+ {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, DVORAK, QWERTY, _______, _______, _______},
+ {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+}
+
+
+};
+
+#ifdef AUDIO_ENABLE
+
+float tone_startup[][2] = SONG(STARTUP_SOUND);
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case DVORAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_DVORAK);
+ }
+ return false;
+ break;
+ case QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif
diff --git a/keyboards/planck/keymaps/smt/readme.md b/keyboards/planck/keymaps/smt/readme.md
new file mode 100644
index 000000000..0e955a574
--- /dev/null
+++ b/keyboards/planck/keymaps/smt/readme.md
@@ -0,0 +1,103 @@
+# smt's Planck keymap
+
+This keymap is primarily based on the default Planck keymap.
+
+Notable differences from the default are:
+
+1. **Dvorak by default**
+
+ I happen to type in Dvorak, and prefer that layer to be the default on my keyboard. This is easy enough to switch around with Qwerty, Colemak, or whatever.
+
+2. **Right Shift**
+
+ I use both the left and right shift keys when I type. When I want to modify a key with shift, I hold shift with the hand opposite the one typing the key. In the default keymap, Enter is where shift would be on a standard keyboard layout. Oh, muscle memory.
+
+ Thankfully, QMK supports [mod-tap](https://github.com/jackhumbert/qmk_firmware/wiki#fun-with-modifier-keys) keys, and this allows me to set the Enter key to send a modifier (MOD_LSFT) when held, and KC_ENT when tapped. Awesome!
+
+3. Escape
+
+ I am experimenting with using Left Shift as a mod-tap key for Escape, similar to how I use the Enter key. It's set up like this on my Minivan, so in the interest of consistency...
+
+4. Backtick
+
+ I don't currently have LEDs on any of my keyboards, and even if I did, I don't think I would want their controls on a base layer.
+
+ So, why use backtick in the lower left corner? I use it as my tmux prefix key, so I need to type it more frequently than most people. Putting it on the base layer works well for me.
+
+## Dvorak (default)
+
+```
+,-----------------------------------------------------------------------------------.
+| Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
+|------+------+------+------+------+-------------+------+------+------+------+------|
+| Esc | A | O | E | U | I | D | H | T | N | S | - |
+|------+------+------+------+------+------|------+------+------+------+------+------|
+| Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+`-----------------------------------------------------------------------------------'
+```
+
+## Qwerty (same as default)
+
+```
+,-----------------------------------------------------------------------------------.
+| Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+|------+------+------+------+------+-------------+------+------+------+------+------|
+| Esc | A | S | D | F | G | H | J | K | L | ; | " |
+|------+------+------+------+------+------|------+------+------+------+------+------|
+| Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+`-----------------------------------------------------------------------------------'
+```
+
+## Lower
+
+This is where I put the number row, a numpad cluster, function keys, and some light navigation via Home/End/PageUp/PageDn. Like the "Raise" layer, the top row is redundant to help with Planck compatibility.
+
+```
+,-----------------------------------------------------------------------------------.
+| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+|------+------+------+------+------+-------------+------+------+------+------+------|
+| | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp|
+|------+------+------+------+------+------|------+------+------+------+------+------|
+| | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | End |PageDn|
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| | | | | | | | Next | Vol- | Vol+ | Play |
+`-----------------------------------------------------------------------------------'
+```
+
+## Raise
+
+As a developer, it makes the most sense for me to group all the commonly-used symbols that don't fit on the main layer. In particular, having the dual-column of parens-braces-brackets really helps a lot.
+
+I haven't completely filled this layer, which leaves room for future mappings and macros.
+
+```
+,-----------------------------------------------------------------------------------.
+| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+|------+------+------+------+------+-------------+------+------+------+------+------|
+| | | | | | | _ | ? | + | { | } | | |
+|------+------+------+------+------+------|------+------+------+------+------+------|
+| | | | | | | - | / | = | [ | ] | \ |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| | | | | | | | Next | Vol- | Vol+ | Play |
+`-----------------------------------------------------------------------------------'
+```
+
+## Adjust (Lower + Raise)
+
+Utility layer. This is where I'd switch to Qwerty, or ~~fool around with~~ adjust the audio/music settings.
+
+```
+,-----------------------------------------------------------------------------------.
+| | Reset| | | | | | | | | | Del |
+|------+------+------+------+------+-------------+------+------+------+------+------|
+| | | |Aud on|AudOff|AGnorm|AGswap|Dvorak|Qwerty| | | |
+|------+------+------+------+------+------|------+------+------+------+------+------|
+| |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| | | | | | | | | | | |
+`-----------------------------------------------------------------------------------'
+```
diff --git a/keyboards/planck/keymaps/tak3over/Makefile b/keyboards/planck/keymaps/tak3over/Makefile
index 581e08cd0..b2ca41944 100644
--- a/keyboards/planck/keymaps/tak3over/Makefile
+++ b/keyboards/planck/keymaps/tak3over/Makefile
@@ -1,3 +1,6 @@
+# Please remove if no longer applicable
+$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
+$(warning Please disable some options in the Makefile to resolve)
# Build Options
@@ -22,4 +25,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../Makefile
-endif \ No newline at end of file
+endif
diff --git a/keyboards/planck/keymaps/thermal_printer/Makefile b/keyboards/planck/keymaps/thermal_printer/Makefile
new file mode 100644
index 000000000..9477d1179
--- /dev/null
+++ b/keyboards/planck/keymaps/thermal_printer/Makefile
@@ -0,0 +1,29 @@
+# Please remove if no longer applicable
+$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
+$(warning Please disable some options in the Makefile to resolve)
+
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = yes # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+PRINTING_ENABLE = yes
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/thermal_printer/config.h b/keyboards/planck/keymaps/thermal_printer/config.h
new file mode 100644
index 000000000..430b6493c
--- /dev/null
+++ b/keyboards/planck/keymaps/thermal_printer/config.h
@@ -0,0 +1,23 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+# define SERIAL_UART_BAUD 19200
+# define SERIAL_UART_DATA UDR1
+# define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1)
+# define SERIAL_UART_RXD_VECT USART1_RX_vect
+# define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1))
+# define SERIAL_UART_INIT() do { \
+ /* baud rate */ \
+ UBRR1L = SERIAL_UART_UBRR; \
+ /* baud rate */ \
+ UBRR1H = SERIAL_UART_UBRR >> 8; \
+ /* enable TX */ \
+ UCSR1B = _BV(TXEN1); \
+ /* 8-bit data */ \
+ UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \
+ sei(); \
+ } while(0)
+
+ #endif \ No newline at end of file
diff --git a/keyboards/planck/keymaps/thermal_printer/keymap.c b/keyboards/planck/keymaps/thermal_printer/keymap.c
new file mode 100644
index 000000000..e88059731
--- /dev/null
+++ b/keyboards/planck/keymaps/thermal_printer/keymap.c
@@ -0,0 +1,314 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "planck.h"
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _COLEMAK 1
+#define _DVORAK 2
+#define _LOWER 3
+#define _RAISE 4
+#define _PLOVER 5
+#define _ADJUST 16
+
+enum planck_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK,
+ PLOVER,
+ LOWER,
+ RAISE,
+ BACKLIT,
+ EXT_PLV
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
+ {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | R | S | T | D | H | N | E | I | O | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = {
+ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
+ {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
+ {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | O | E | U | I | D | H | T | N | S | / |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = {
+ {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
+ {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
+ {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
+ {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = {
+ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
+ {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = {
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
+ {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+
+/* Plover layer (http://opensteno.org)
+ * ,-----------------------------------------------------------------------------------.
+ * | # | # | # | # | # | # | # | # | # | # | # | # |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | S | T | P | H | * | * | F | P | L | T | D |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |TogOut| S | K | W | R | * | * | R | B | G | S | Z |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Exit | | | A | O | | E | U | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+[_PLOVER] = {
+ {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 },
+ {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC},
+ {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX}
+},
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset| | Print|no prnt | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = {
+ {_______, RESET, _______, PRINT_ON, PRINT_OFF, _______, _______, _______, _______, _______, _______, KC_DEL},
+ {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______},
+ {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+}
+
+
+};
+
+#ifdef AUDIO_ENABLE
+
+float tone_startup[][2] = SONG(STARTUP_SOUND);
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+float tone_plover[][2] = SONG(PLOVER_SOUND);
+float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_COLEMAK);
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_DVORAK);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ return false;
+ break;
+ case PLOVER:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ stop_all_notes();
+ PLAY_NOTE_ARRAY(tone_plover, false, 0);
+ #endif
+ layer_off(_RAISE);
+ layer_off(_LOWER);
+ layer_off(_ADJUST);
+ layer_on(_PLOVER);
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+ keymap_config.raw = eeconfig_read_keymap();
+ keymap_config.nkro = 1;
+ eeconfig_update_keymap(keymap_config.raw);
+ }
+ return false;
+ break;
+ case EXT_PLV:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_plover_gb, false, 0);
+ #endif
+ layer_off(_PLOVER);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif
diff --git a/keyboards/planck/keymaps/thermal_printer/readme.md b/keyboards/planck/keymaps/thermal_printer/readme.md
new file mode 100644
index 000000000..de9680b49
--- /dev/null
+++ b/keyboards/planck/keymaps/thermal_printer/readme.md
@@ -0,0 +1,2 @@
+# The Default Planck Layout
+
diff --git a/keyboards/planck/keymaps/tong92/Makefile b/keyboards/planck/keymaps/tong92/Makefile
new file mode 100644
index 000000000..e6608e74c
--- /dev/null
+++ b/keyboards/planck/keymaps/tong92/Makefile
@@ -0,0 +1,62 @@
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device.
+# Please customize your programmer settings(PROGRAM_CMD)
+#
+# make teensy = Download the hex file to the device, using teensy_loader_cli.
+# (must have teensy_loader_cli installed).
+#
+# make dfu = Download the hex file to the device, using dfu-programmer (must
+# have dfu-programmer installed).
+#
+# make flip = Download the hex file to the device, using Atmel FLIP (must
+# have Atmel FLIP installed).
+#
+# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
+# (must have dfu-programmer installed).
+#
+# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
+# (must have Atmel FLIP installed).
+#
+# make debug = Start either simulavr or avarice as specified for debugging,
+# with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+# bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+# Build Options
+# change to "no" to disable the options, or define them in the makefile.mk in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = no # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/planck/keymaps/tong92/keymap.c b/keyboards/planck/keymaps/tong92/keymap.c
new file mode 100644
index 000000000..2be28fb4f
--- /dev/null
+++ b/keyboards/planck/keymaps/tong92/keymap.c
@@ -0,0 +1,146 @@
+//Author: tong92 <tong92power@gmail.com>
+
+#include "planck.h"
+#ifdef BACKLIGHT_ENABLE
+ #include "backlight.h"
+#endif
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+#define LOWER M(1)
+#define RAISE M(2)
+#define GO_DEFT M(99)
+#
+
+//MIT Layout
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* 0: Qwerty layer (Default)
+* ,-----------------------------------------------------------------------.
+* |Tab | q | w | e | r | t | y | u | i | o | p | BS |
+* |-----------------------------------------------------------------------|
+* |Ctrl | a | s | d | f | g | h | j | k | l | ; |enter|
+* |-----------------------------------------------------------------------|
+* |Shift| z | x | c | v | b | n | m | , | . | / |Shift|
+* |-----------------------------------------------------------------------|
+* | Fn |Ctrl | Win | Alt |Lower| Space |Upper| ' | [ | ] | Alt |
+* `-----------------------------------------------------------------------'
+*/
+[0] ={
+{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+{KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_ENT },
+{KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT},
+{MO(4), KC_RCTL,KC_LGUI,KC_LALT,LOWER,KC_SPC,KC_SPC,RAISE,KC_QUOT,KC_LBRC,KC_RBRC,KC_RALT}
+},
+/* 1: Lower layer
+* ,-----------------------------------------------------------------------.
+* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BS |
+* |-----------------------------------------------------------------------|
+* | | F1 | F2 | F3 | F4 | F5 | F6 | - | + | [ | ] | \ |
+* |-----------------------------------------------------------------------|
+* | | F7 | F8 | F9 | F10 | F11 | F12 | | HOME| PgUp| UP | PgDo|
+* |-----------------------------------------------------------------------|
+* | | | | | | SPACE |mouse| END | LEFT| DOWN|RIGHT|
+* `-----------------------------------------------------------------------'
+*/
+[1] ={
+{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
+{_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS,KC_PLUS,KC_LBRC,KC_RBRC,KC_BSLS },
+{_______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,KC_F12,_______,KC_HOME,KC_PGUP,KC_UP ,KC_PGDN },
+{XXXXXXX,_______,_______,_______,_______,KC_SPC,KC_SPC,_______,KC_END, KC_LEFT,KC_DOWN,KC_RIGHT}
+},
+/* 2: Upper layer
+* ,-----------------------------------------------------------------------.
+* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | BS |
+* |-----------------------------------------------------------------------|
+* | | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | { | } | | |
+* |-----------------------------------------------------------------------|
+* | | F7 | F8 | F9 | F10 | F11 | F12 | | HOME| PgUp| UP | PgDo|
+* |-----------------------------------------------------------------------|
+* | | | | |mouse| SPACE | | END | LEFT| DOWN|RIGHT|
+* `-----------------------------------------------------------------------'
+*/
+[2] ={
+{KC_TILD,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC },
+{_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS,KC_EQL, KC_LCBR,KC_RCBR,KC_PIPE },
+{_______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,KC_HOME,KC_PGUP,KC_UP ,KC_PGDN },
+{XXXXXXX,_______,_______,_______,_______,KC_SPC, KC_SPC, _______,KC_END, KC_LEFT,KC_DOWN,KC_RIGHT}
+},
+/* 4: fn layer (Window shortcuts)
+* ,-----------------------------------------------------------------------.
+* | ESC |WinOf|WinUp| | |Sh+Ca| | PgUp| UP | PgDo|PrtSc| DEL |
+* |-----------------------------------------------------------------------|
+* | |WinLe|WinDo|WinRi| |Al+Ca|CapsL| LEFT| DOWN|RIGHT| | |
+* |-----------------------------------------------------------------------|
+* | |WinLW|WinRW| | |Ct+Ca|ScroL| HOME| | END | | |
+* |-----------------------------------------------------------------------|
+* | |DeskL|DeskR|DeskX|Task | ChangeLang| | | | | LED |
+* `-----------------------------------------------------------------------'
+*/
+[4] ={
+{KC_ESC ,LALT(KC_F4) ,LGUI(KC_UP) ,XXXXXXX ,XXXXXXX ,S(KC_CAPS) ,XXXXXXX,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,KC_DELT},
+{_______,LGUI(KC_LEFT) ,LGUI(KC_DOWN) ,LGUI(KC_RIGHT) ,XXXXXXX ,LALT(KC_CAPS),KC_CAPS,KC_LEFT,KC_DOWN,KC_RIGHT,XXXXXXX,XXXXXXX},
+{_______,LGUI(LSFT(KC_LEFT)),LGUI(LSFT(KC_RIGHT)),XXXXXXX ,XXXXXXX ,LCTL(KC_CAPS),KC_SLCK,KC_HOME,XXXXXXX,KC_END,XXXXXXX,XXXXXXX},
+{KC_TRNS,LGUI(LCTL(KC_LEFT)),LGUI(LCTL(KC_RIGHT)),LGUI(LCTL(KC_F4)),LCTL(LALT(KC_DELT)),LGUI(KC_SPC),LGUI(KC_SPC),XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,M(0)}
+},
+/* 10: mouse layer
+* ,-----------------------------------------------------------------------.
+* | | | |Mo_Up| | | |M_WhL|M_WhU|M_WhR| |RESET|
+* |-----------------------------------------------------------------------|
+* | | |Mo_Le|Mo_Do|Mo_Ri| | |M_Bt1|M_WhD|M_Bt2| | |
+* |-----------------------------------------------------------------------|
+* | | | | | | | |M_AC0|M_AC1|M_AC2| | |
+* |-----------------------------------------------------------------------|
+* | | | | | | GO_DEFT | | | | | |
+* `-----------------------------------------------------------------------'
+*/
+[10] ={
+{XXXXXXX,XXXXXXX,XXXXXXX,KC_MS_U,XXXXXXX,XXXXXXX,XXXXXXX,KC_WH_L,KC_WH_U,KC_WH_R,XXXXXXX,RESET},
+{XXXXXXX,XXXXXXX,KC_MS_L,KC_MS_D,KC_MS_R,XXXXXXX,XXXXXXX,KC_BTN1,KC_WH_D,KC_BTN2,XXXXXXX,XXXXXXX},
+{XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_ACL0,KC_ACL1,KC_ACL2,XXXXXXX,XXXXXXX},
+{XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,GO_DEFT,GO_DEFT,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX}
+}
+
+};
+//Layout END
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ }
+ break;
+ case 1:
+ if (record->event.pressed) {
+ layer_on(1);
+ update_tri_layer(1, 2, 10);
+ } else {
+ layer_off(1);
+ update_tri_layer(1, 2, 10);
+ }
+ break;
+ case 2:
+ if (record->event.pressed) {
+ layer_on(2);
+ update_tri_layer(1, 2, 10);
+ } else {
+ layer_off(2);
+ update_tri_layer(1, 2, 10);
+ }
+ break;
+ case 99:
+ if (record->event.pressed) {
+ layer_off(10);
+ layer_off(1);
+ layer_off(2);
+ layer_on(0);
+ update_tri_layer(0 ,1 ,2);
+ }
+ break;
+ }
+ return MACRO_NONE;
+}; \ No newline at end of file
diff --git a/keyboards/planck/keymaps/tong92/readme.md b/keyboards/planck/keymaps/tong92/readme.md
new file mode 100644
index 000000000..328d005f6
--- /dev/null
+++ b/keyboards/planck/keymaps/tong92/readme.md
@@ -0,0 +1,66 @@
+# The Tong92 Layout
+- MIT Layout
+- my keymap for WIndow User
+- Lower && Upper Hold -> Mouse Layer
+- Mouse Layer : space -> Default Layer
+- No Audio
+
+## 1. Default Layer - Qwerty
+
+ ,-----------------------------------------------------------------------.
+ |Tab | q | w | e | r | t | y | u | i | o | p | BS |
+ |-----------------------------------------------------------------------|
+ |Ctrl | a | s | d | f | g | h | j | k | l | ; |enter|
+ |-----------------------------------------------------------------------|
+ |Shift| z | x | c | v | b | n | m | , | . | / |Shift|
+ |-----------------------------------------------------------------------|
+ | Fn |Ctrl | Win | Alt |Lower| Space |Upper| ' | [ | ] | Alt |
+ `-----------------------------------------------------------------------'
+
+## 2. Lower Layer
+
+ ,-----------------------------------------------------------------------.
+ | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BS |
+ |-----------------------------------------------------------------------|
+ | | F1 | F2 | F3 | F4 | F5 | F6 | - | + | [ | ] | \ |
+ |-----------------------------------------------------------------------|
+ | | F7 | F8 | F9 | F10 | F11 | F12 | | HOME| PgUp| UP | PgDo|
+ |-----------------------------------------------------------------------|
+ | | | | | | SPACE |mouse| END | LEFT| DOWN|RIGHT|
+ `-----------------------------------------------------------------------'
+
+## 3. Upper Layer
+
+ ,-----------------------------------------------------------------------.
+ | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | BS |
+ |-----------------------------------------------------------------------|
+ | | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | { | } | | |
+ |-----------------------------------------------------------------------|
+ | | F7 | F8 | F9 | F10 | F11 | F12 | | HOME| PgUp| UP | PgDo|
+ |-----------------------------------------------------------------------|
+ | | | | |mouse| SPACE | | END | LEFT| DOWN|RIGHT|
+ `-----------------------------------------------------------------------'
+
+## 4. Fn Layer - Window Shortcuts
+
+ ,-----------------------------------------------------------------------.
+ | ESC |WinOf|WinUp| | |Sh+Ca| | PgUp| UP | PgDo|PrtSc| DEL |
+ |-----------------------------------------------------------------------|
+ | |WinLe|WinDo|WinRi| |Al+Ca|CapsL| LEFT| DOWN|RIGHT| | |
+ |-----------------------------------------------------------------------|
+ | |WinLW|WinRW| | |Ct+Ca|ScroL| HOME| | END | | |
+ |-----------------------------------------------------------------------|
+ | |DeskL|DeskR|DeskX|Task | ChangeLang| | | | | LED |
+ `-----------------------------------------------------------------------'
+
+## 5. Mouse Layer
+
+ ,-----------------------------------------------------------------------.
+ | | | |Mo_Up| | | |M_WhL|M_WhU|M_WhR| |RESET|
+ |-----------------------------------------------------------------------|
+ | | |Mo_Le|Mo_Do|Mo_Ri| | |M_Bt1|M_WhD|M_Bt2| | |
+ |-----------------------------------------------------------------------|
+ | | | | | | | |M_AC0|M_AC1|M_AC2| | |
+ |-----------------------------------------------------------------------|
+ | | | | | |GO_DEFAULT | | | | | |
+ `-----------------------------------------------------------------------' \ No newline at end of file
diff --git a/keyboards/planck/keymaps/unicode/keymap.c b/keyboards/planck/keymaps/unicode/keymap.c
index d73e7e09d..1b4ca8ed7 100644
--- a/keyboards/planck/keymaps/unicode/keymap.c
+++ b/keyboards/planck/keymaps/unicode/keymap.c
@@ -195,24 +195,20 @@ const uint16_t PROGMEM fn_actions[] = {
};
#ifdef AUDIO_ENABLE
-float tone_startup[][2] = {
- {440.0*pow(2.0,(31)/12.0), 12},
- {440.0*pow(2.0,(28)/12.0), 8},
- {440.0*pow(2.0,(19)/12.0), 8},
- {440.0*pow(2.0,(24)/12.0), 8},
- {440.0*pow(2.0,(28)/12.0), 20}
-};
+float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-float goodbye[][2] = SONG(GOODBYE_SOUND);
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
+
void persistant_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer);
@@ -309,18 +305,35 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
};
void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- _delay_ms(20); // stops the tick
- PLAY_NOTE_ARRAY(tone_startup, false, 0);
- #endif
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
}
#ifdef AUDIO_ENABLE
-void play_goodbye_tone()
+
+void startup_user()
{
- PLAY_NOTE_ARRAY(goodbye, false, 0);
- _delay_ms(150);
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
}
-#endif
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif
diff --git a/keyboards/planck/keymaps/vifon/Makefile b/keyboards/planck/keymaps/vifon/Makefile
new file mode 100644
index 000000000..15a7b736f
--- /dev/null
+++ b/keyboards/planck/keymaps/vifon/Makefile
@@ -0,0 +1,25 @@
+
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/vifon/config.h b/keyboards/planck/keymaps/vifon/config.h
new file mode 100644
index 000000000..a08b37cbe
--- /dev/null
+++ b/keyboards/planck/keymaps/vifon/config.h
@@ -0,0 +1,96 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6060
+#define MANUFACTURER Ortholinear Keyboards
+#define PRODUCT The Planck Keyboard
+#define DESCRIPTION A compact ortholinear keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+/* Planck PCB default pin-out */
+#define MATRIX_ROW_PINS { D0, D5, B5, B6 }
+#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
+#define UNUSED_PINS
+
+#define BACKLIGHT_PIN B7
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/*
+ * 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
+
+/* prevent the modifiers from being stuck, sacrificing some memory */
+#define PREVENT_STUCK_MODIFIERS
+
+/* A larger buffer for the dynamic macros as this keymap is not taking
+ * up that much memory.
+ */
+#define DYNAMIC_MACRO_SIZE 256
+
+#ifdef SUBPROJECT_rev3
+ #include "rev3/config.h"
+#endif
+#ifdef SUBPROJECT_rev4
+ #include "rev4/config.h"
+#endif
+
+#endif
diff --git a/keyboards/planck/keymaps/vifon/keymap.c b/keyboards/planck/keymaps/vifon/keymap.c
new file mode 100644
index 000000000..ee0c0ac36
--- /dev/null
+++ b/keyboards/planck/keymaps/vifon/keymap.c
@@ -0,0 +1,187 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "planck.h"
+#ifdef BACKLIGHT_ENABLE
+# include "backlight.h"
+#endif
+#include "timer.h"
+#include <bootloader.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.
+enum userlayer {
+ _QW = 0,
+ _CM,
+ _PP,
+ _PPG,
+ _NM,
+ _LW,
+ _RS,
+ _DL,
+ _DYN,
+};
+
+enum planck_keycodes {
+ KM_LW = SAFE_RANGE,
+ KM_RS,
+ KM_SHLK, /* ShiftLock */
+ KM_RST, /* Reset */
+ KM_NUM, /* Numeric layer */
+ KM_SLP, /* Sleep 250 ms */
+ KM_PPLR, /* Pure Pro layer */
+ DYNAMIC_MACRO_RANGE,
+};
+
+#include "dynamic_macro.h"
+
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_QW] = { /* Qwerty */
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_FN0 },
+ {KC_LCTL, MO(_DYN),KC_LGUI, KC_LALT, KM_LW, KC_SPC, KC_SPC, KM_RS, KC_RALT, KC_DOWN, KC_UP, KC_RCTL}
+},
+[_CM] = { /* Colemak */
+ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
+ {CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_FN0 },
+ {KC_LCTL, MO(_DYN),KC_LGUI, KC_LALT, KM_LW, KC_SPC, KC_SPC, KM_RS, KC_RALT, KC_DOWN, KC_UP, KC_RCTL}
+},
+[_PP] = { /* Pure Pro */
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT },
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_RSFT, KC_UP, KC_RCTL},
+ {KC_LCTL, MO(_DYN),KC_LGUI, KC_LALT, KM_LW, KC_SPC, KC_SPC, KM_RS, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT}
+},
+[_PPG] = { /* Pure Pro: Gaming */
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ {_______, _______, XXXXXXX, _______, KM_RS , _______, _______, KM_LW , _______, _______, _______, _______},
+},
+[_NM] = { /* Numeric */
+ {KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ {KC_LSFT, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, KC_FN0 },
+ {_______, _______, _______, _______, _______, KC_SPC, KC_SPC, _______, _______, _______, _______, _______}
+},
+[_LW]= { /* LOWER */
+ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
+ {KC_ESC, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), KM_NUM, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+ {_______, LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), KM_SLP, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_ENT },
+ {_______, BL_TOGG, _______, _______, _______, KC_BTN1, KC_BTN1, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+[_RS]= { /* RAISE */
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL },
+ {KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), KM_PPLR, KM_RST, KC_ENT },
+ {_______, BL_STEP, _______, _______, _______, KC_BTN2, KC_BTN2, _______, KC_MPLY, KC_VOLD, KC_VOLU, _______}
+},
+[_DL]= { /* DUAL */
+ {_______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______, KC_APP, KC_INS, _______, KC_PSCR, _______},
+ {_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ACL0, KC_ACL2},
+ {_______, _______, KC_BTN2, KC_BTN3, KC_BTN1, KC_WWW_BACK, KC_WWW_FORWARD, KC_MUTE, _______, _______, _______, _______},
+ {_______, _______, KC_LGUI, KC_LALT, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+[_DYN]= { /* special */
+ {_______, DYN_REC_START1, DYN_MACRO_PLAY1, _______, _______, _______, _______, KC_APP, KC_INS, _______, KC_PSCR, KC_PAUS},
+ {_______, DYN_REC_START2, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______, _______, KC_CAPS, KC_SLCK, KC_NLCK},
+ {KM_SHLK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+};
+
+#undef _______
+
+const uint16_t PROGMEM fn_actions[] = {
+ ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),
+};
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ static uint16_t key_timer;
+
+ if (!process_record_dynamic_macro(keycode, record)) {
+ return false;
+ }
+
+ switch (keycode) {
+ case KM_LW:
+ if (record->event.pressed) {
+ layer_on(_LW);
+ } else {
+ layer_off(_LW);
+ }
+ update_tri_layer(_LW, _RS, _DL);
+ return false;
+ break;
+ case KM_RS:
+ if (record->event.pressed) {
+ layer_on(_RS);
+ } else {
+ layer_off(_RS);
+ }
+ update_tri_layer(_LW, _RS, _DL);
+ return false;
+ break;
+ case KM_SHLK:
+ register_code(KC_LSFT);
+ break;
+ case KM_RST:
+ if (record->event.pressed) {
+ key_timer = timer_read();
+ } else {
+ if (timer_elapsed(key_timer) >= 500) {
+ clear_keyboard();
+ backlight_toggle();
+ _delay_ms(250);
+ backlight_toggle();
+ bootloader_jump();
+ }
+ }
+ break;
+ case KM_PPLR:
+ if (record->event.pressed) {
+ key_timer = timer_read();
+ } else {
+ if (timer_elapsed(key_timer) >= 250) {
+ default_layer_set((1UL << _PP) | (1UL << _PPG));
+ backlight_toggle();
+ _delay_ms(100);
+ backlight_toggle();
+ } else {
+ default_layer_set(1UL << _PP);
+ }
+ }
+ break;
+ case KM_NUM:
+ layer_on(_NM);
+ break;
+ case KM_SLP:
+ if (record->event.pressed) {
+ _delay_ms(250);
+ }
+ break;
+ }
+
+
+ if (record->event.pressed
+ && IS_LAYER_ON(_NM)
+ && keymap_key_to_keycode(_NM, record->event.key) == KC_TRNS) {
+
+ layer_off(_NM);
+ }
+
+ return true;
+}
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ return MACRO_NONE;
+}
diff --git a/keyboards/planck/keymaps/xyverz/keymap.c b/keyboards/planck/keymaps/xyverz/keymap.c
new file mode 100644
index 000000000..192933b18
--- /dev/null
+++ b/keyboards/planck/keymaps/xyverz/keymap.c
@@ -0,0 +1,262 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "planck.h"
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _COLEMAK 1
+#define _DVORAK 2
+#define _LOWER 3
+#define _RAISE 4
+#define _ADJUST 16
+
+enum planck_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK,
+ LOWER,
+ RAISE,
+ BACKLIT
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
+ {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | R | S | T | D | H | N | E | I | O | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = {
+ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
+ {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
+ {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | " | , | . | P | Y | F | G | C | R | L | / |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | O | E | U | I | D | H | T | N | S | - |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | B | M | W | V | Z | Shift|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = {
+ {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH},
+ {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS},
+ {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT)},
+ {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT }
+},
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | Mute | Vol- | Vol+ | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = {
+ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______},
+ {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______},
+ {BACKLIT, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______}
+},
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | Prev | Play | Next | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = {
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______},
+ {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______},
+ {BACKLIT, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______}
+},
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset| | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = {
+ {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
+ {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______},
+ {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+}
+
+
+};
+
+#ifdef AUDIO_ENABLE
+
+float tone_startup[][2] = SONG(STARTUP_SOUND);
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_COLEMAK);
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_DVORAK);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif
diff --git a/keyboards/planck/keymaps/xyverz/makefile.mk b/keyboards/planck/keymaps/xyverz/makefile.mk
new file mode 100644
index 000000000..93a89bb4a
--- /dev/null
+++ b/keyboards/planck/keymaps/xyverz/makefile.mk
@@ -0,0 +1,25 @@
+
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = yes # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/yale/Makefile b/keyboards/planck/keymaps/yale/Makefile
new file mode 100644
index 000000000..581e08cd0
--- /dev/null
+++ b/keyboards/planck/keymaps/yale/Makefile
@@ -0,0 +1,25 @@
+
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = yes # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/planck/keymaps/yale/config.h b/keyboards/planck/keymaps/yale/config.h
new file mode 100644
index 000000000..8a916bbd0
--- /dev/null
+++ b/keyboards/planck/keymaps/yale/config.h
@@ -0,0 +1,11 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#define PREVENT_STUCK_MODIFIERS
+
+#endif
+
+
+
diff --git a/keyboards/planck/keymaps/yale/keymap.c b/keyboards/planck/keymaps/yale/keymap.c
new file mode 100644
index 000000000..f2280778a
--- /dev/null
+++ b/keyboards/planck/keymaps/yale/keymap.c
@@ -0,0 +1,108 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+//
+
+#include "planck.h"
+#ifdef BACKLIGHT_ENABLE
+ #include "backlight.h"
+#endif
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _NUM 5
+#define _FUNC 6
+#define _NAV 7
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* _QWERTY
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * |Ctrl/Tab| A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | GUI | GUI | Num | Space | FN | GUI | Alt | Ctrl | Enter|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+ {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {CTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT},
+ {KC_LCTL, KC_LALT, KC_LGUI, KC_LGUI, MO(_NUM), KC_SPC, KC_SPC, MO(_FUNC), KC_RGUI, KC_RALT, KC_RCTL, KC_ENT}
+},
+
+/* _NUM
+ * ,-----------------------------------------------------------------------------------.
+ * | ___ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ____ |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Ctrl | ` | [ | { | ( | / | \ | ) | } | ] | - | = |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | ____ | ! | @ | # | $ | % | ^ | & | * | _ | + | ____ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ____ | ___ | ___ | ___ | XXXX | ______ | ____ | ____ | ____ | __ | ____ |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_NUM] = {
+ {_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______},
+ {KC_LCTL, KC_GRV, KC_LBRC, KC_LCBR, KC_LPRN, KC_SLSH, KC_BSLS, KC_RPRN, KC_RCBR, KC_RBRC, KC_MINS, KC_EQL},
+ {_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_PLUS, _______},
+ {_______, _______, _______, _______, _______, _______, _______, MO(_NAV), _______, _______, _______, _______}
+},
+
+/* _FUNC
+ * ,-----------------------------------------------------------------------------------.
+ * | ____ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ____ |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | ____ |Shift | Ctrl | Alt | GUI | ____ | Left | Down | Up |Right | Del | ____ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | ____ |Light | ____ | Vol- | Prev | Play | Mute | Next | Vol+ | ____ | ____ | ____ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ____ | ____ | ____ | ____ | ____ | _____ | XXXX | ____ | ____ | ____ | ____ |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNC] = {
+ {_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______},
+ {_______, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, _______},
+ {_______, M(0), _______, KC_VOLD, KC_MPRV, KC_MPLY, KC_MUTE, KC_MNXT, KC_VOLU, _______, _______, _______},
+ {_______, _______, _______, _______, MO(_NAV), _______, _______, _______, _______, _______, _______, _______}
+},
+
+[_NAV] = {
+ {KC_MS_ACCEL2, KC_FN1, KC_FN2, KC_FN3, KC_FN4, XXXXXXX, XXXXXXX, KC_WH_D, KC_WH_U, XXXXXXX, XXXXXXX, XXXXXXX},
+ {KC_MS_ACCEL1, KC_MS_BTN4, KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1, XXXXXXX, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, XXXXXXX, XXXXXXX},
+ {KC_MS_ACCEL0, KC_FN9, KC_FN10, KC_FN11, KC_FN12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
+ {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
+},
+
+};
+
+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);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/planck/keymaps/yale/yale_layout_picture.jpg b/keyboards/planck/keymaps/yale/yale_layout_picture.jpg
new file mode 100644
index 000000000..ab9c6b4eb
--- /dev/null
+++ b/keyboards/planck/keymaps/yale/yale_layout_picture.jpg
Binary files differ
diff --git a/keyboards/planck/keymaps/yang/config.h b/keyboards/planck/keymaps/yang/config.h
index feb5a1190..4ed19d76f 100644
--- a/keyboards/planck/keymaps/yang/config.h
+++ b/keyboards/planck/keymaps/yang/config.h
@@ -5,7 +5,7 @@
/* ws2812 RGB LED */
#define RGB_DI_PIN D1
-#define RGBLIGHT_TIMER
+#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 28 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_mitch.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_mitch.c
deleted file mode 100644
index e5a86b402..000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_mitch.c
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "keymap.h"
-
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = KEYMAP(
- TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC,
- LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT,
- LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN3,
- ESC, DEL, LALT, LGUI, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT),
-[1] = KEYMAP(
- GRV, GRV, FN22, FN19, FN10, TRNS, TRNS, 7, 8, 9, 0, BSPC,
- TRNS, LBRC, RBRC, FN23, FN24, TRNS, TRNS, 4, 5, 6, TRNS, BSLS,
- TRNS, MINS, FN20, EQL, FN21, TRNS, TRNS, 1, 2, 3, TRNS, ENT,
- TRNS, TRNS, TRNS, TRNS, TRNS, SPC, FN1, TRNS, PGDN, PGUP, TRNS),
-[2] = KEYMAP(
- FN26, FN10, FN11, FN12, FN13, FN14, FN15, FN17, FN18, FN19, FN10, DEL,
- TRNS, TRNS, MUTE, VOLD, VOLU, TRNS, BSPC, FN14, FN15, FN16, TRNS, FN25,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN11, FN12, FN13, TRNS, ENT,
- TRNS, TRNS, TRNS, TRNS, FN2, ENT, TRNS, TRNS, PGDN, PGUP, TRNS),
-};
-
-const uint16_t PROGMEM fn_actions[] = {
- [1] = ACTION_LAYER_MOMENTARY(1), // Switch layer raise
- [2] = ACTION_LAYER_MOMENTARY(2), // Switch layer lower
-
- [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // Right shift serves as Enter on tap
-
- // Numeric shift modifiers
- [10] = ACTION_MODS_KEY(MOD_LSFT, KC_0),
- [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1),
- [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2),
- [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3),
- [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4),
- [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5),
- [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6),
- [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7),
- [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8),
- [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9),
-
- // Other shift modifiers
- [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // _
- [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // +
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // ~
- [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // {
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // }
- [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // |
-
- // Switch windows in app
- [26] = ACTION_MODS_KEY(MOD_LGUI, KC_GRV),
-};
diff --git a/keyboards/planck/out.txt b/keyboards/planck/out.txt
deleted file mode 100644
index 644a6a777..000000000
--- a/keyboards/planck/out.txt
+++ /dev/null
@@ -1,66 +0,0 @@
--------- begin --------
-avr-gcc.exe (AVR_8_bit_GNU_Toolchain_3.5.0_1662) 4.9.2
-Copyright (C) 2014 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-Compiling: ../../keyboards/planck/planck.c [OK]
-Compiling: ../../keyboards/planck/keymaps/experimental/keymap.c [WARNINGS]
- |
- | ../../keyboards/planck/keymaps/experimental/keymap.c: In function 'action_get_macro':
- | ../../keyboards/planck/keymaps/experimental/keymap.c:227:17: warning: implicit declaration of function 'breathing_speed_set' [-Wimplicit-function-declaration]
- | breathing_speed_set(2);
- | ^
- | ../../keyboards/planck/keymaps/experimental/keymap.c:228:17: warning: implicit declaration of function 'breathing_pulse' [-Wimplicit-function-declaration]
- | breathing_pulse();
- | ^
- |
-Compiling: ../../quantum/quantum.c [OK]
-Compiling: ../../quantum/keymap.c [OK]
-Compiling: ../../quantum/keycode_config.c [OK]
-Compiling: ../../quantum/matrix.c [OK]
-Compiling: ../../quantum/audio/audio.c [OK]
-Compiling: ../../quantum/audio/voices.c [OK]
-Compiling: ../../quantum/audio/luts.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/lufa.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/descriptor.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Class/Common/HIDParser.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/ConfigDescriptors.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/DeviceStandardReq.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/Events.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/HostStandardReq.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/USBTask.c [OK]
-Compiling: ../../tmk_core/common/host.c [OK]
-Compiling: ../../tmk_core/common/keyboard.c [OK]
-Compiling: ../../tmk_core/common/action.c [OK]
-Compiling: ../../tmk_core/common/action_tapping.c [OK]
-Compiling: ../../tmk_core/common/action_macro.c [OK]
-Compiling: ../../tmk_core/common/action_layer.c [OK]
-Compiling: ../../tmk_core/common/action_util.c [OK]
-Compiling: ../../tmk_core/common/print.c [OK]
-Compiling: ../../tmk_core/common/debug.c [OK]
-Compiling: ../../tmk_core/common/util.c [OK]
-Compiling: ../../tmk_core/common/avr/suspend.c [OK]
-Assembling: ../../tmk_core/common/avr/xprintf.S [OK]
-Compiling: ../../tmk_core/common/avr/timer.c [OK]
-Compiling: ../../tmk_core/common/avr/bootloader.c [OK]
-Compiling: ../../tmk_core/common/magic.c [OK]
-Compiling: ../../tmk_core/common/avr/eeconfig.c [OK]
-Compiling: ../../tmk_core/common/mousekey.c [OK]
-Compiling: ../../tmk_core/common/command.c [OK]
-Compiling: ../../tmk_core/common/backlight.c [OK]
-Linking: .build/planck_experimental.elf [ERRORS]
- |
- | .build/obj_planck_experimental/keyboards/planck/keymaps/experimental/keymap.o: In function `action_get_macro':
- | C:\Users\Fred Wales\Documents\Programming\qmk_firmware\keyboards\planck/../../keyboards/planck/keymaps/experimental/keymap.c:240: undefined reference to `breathing_speed_set'
- | C:\Users\Fred Wales\Documents\Programming\qmk_firmware\keyboards\planck/../../keyboards/planck/keymaps/experimental/keymap.c:241: undefined reference to `breathing_pulse'
- | collect2.exe: error: ld returned 1 exit status
- |
diff --git a/keyboards/planck/planck.c b/keyboards/planck/planck.c
index 8d70bb4e5..3980b02f5 100644
--- a/keyboards/planck/planck.c
+++ b/keyboards/planck/planck.c
@@ -1,9 +1,19 @@
#include "planck.h"
+#ifdef ONEHAND_ENABLE
+__attribute__ ((weak))
+const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
+ {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
+ {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
+ {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
+ {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
+};
+#endif
+
void matrix_init_kb(void) {
// Turn status LED on
DDRE |= (1<<6);
PORTE |= (1<<6);
matrix_init_user();
-} \ No newline at end of file
+}
diff --git a/keyboards/planck/readme.md b/keyboards/planck/readme.md
index f89fdeb93..4b24a690e 100644
--- a/keyboards/planck/readme.md
+++ b/keyboards/planck/readme.md
@@ -13,15 +13,17 @@ Download or clone the whole firmware and navigate to the keyboards/planck folder
Depending on which keymap you would like to use, you will have to compile slightly differently.
### Default
-To build with the default keymap, simply run `make`.
+To build with the default keymap, simply run `make default`.
### Other Keymaps
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files.
-To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
```
-$ make KEYMAP=[default|jack|<name>]
+$ make [default|jack|<name>]
```
+
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
### Notable forks (which some of the keymap files are from)
diff --git a/keyboards/planck/rev3/Makefile b/keyboards/planck/rev3/Makefile
index 3ed1445e4..191c6bb66 100644
--- a/keyboards/planck/rev3/Makefile
+++ b/keyboards/planck/rev3/Makefile
@@ -1,5 +1,3 @@
-AUDIO_ENABLE ?= no # Audio output on port C6
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../../Makefile
endif \ No newline at end of file
diff --git a/keyboards/planck/rev3/rules.mk b/keyboards/planck/rev3/rules.mk
new file mode 100644
index 000000000..3ed1445e4
--- /dev/null
+++ b/keyboards/planck/rev3/rules.mk
@@ -0,0 +1,5 @@
+AUDIO_ENABLE ?= no # Audio output on port C6
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/planck/rev4/Makefile b/keyboards/planck/rev4/Makefile
index ed09f85a4..191c6bb66 100644
--- a/keyboards/planck/rev4/Makefile
+++ b/keyboards/planck/rev4/Makefile
@@ -1,5 +1,3 @@
-AUDIO_ENABLE ?= yes # Audio output on port C6
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../../Makefile
endif \ No newline at end of file
diff --git a/keyboards/planck/rev4/rules.mk b/keyboards/planck/rev4/rules.mk
new file mode 100644
index 000000000..ed09f85a4
--- /dev/null
+++ b/keyboards/planck/rev4/rules.mk
@@ -0,0 +1,5 @@
+AUDIO_ENABLE ?= yes # Audio output on port C6
+
+ifndef QUANTUM_DIR
+ include ../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/planck/rules.mk b/keyboards/planck/rules.mk
new file mode 100644
index 000000000..4423d422f
--- /dev/null
+++ b/keyboards/planck/rules.mk
@@ -0,0 +1,68 @@
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= no # Commands for debug and configuration
+NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
+MIDI_ENABLE ?= yes # MIDI controls
+AUDIO_ENABLE ?= yes # Audio output on port C6
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight.
+API_SYSEX_ENABLE = yes
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
diff --git a/keyboards/preonic/Makefile b/keyboards/preonic/Makefile
index 08e9205cb..4e2a6f00f 100644
--- a/keyboards/preonic/Makefile
+++ b/keyboards/preonic/Makefile
@@ -1,73 +1,3 @@
-
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
-MIDI_ENABLE ?= no # MIDI controls
-AUDIO_ENABLE ?= no # Audio output on port C6
-UNICODE_ENABLE ?= no # Unicode
-BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
endif \ No newline at end of file
diff --git a/keyboards/preonic/config.h b/keyboards/preonic/config.h
index 3fb978c2f..239c29ebf 100644
--- a/keyboards/preonic/config.h
+++ b/keyboards/preonic/config.h
@@ -37,6 +37,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
#define UNUSED_PINS
+#define AUDIO_VOICES
+
#define BACKLIGHT_PIN B7
/* COL2ROW or ROW2COL */
@@ -63,7 +65,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* ws2812 RGB LED */
#define RGB_DI_PIN D1
-#define RGBLIGHT_TIMER
+#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 28 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
diff --git a/keyboards/preonic/keymaps/0xdec/Makefile b/keyboards/preonic/keymaps/0xdec/Makefile
new file mode 100644
index 000000000..6600e3689
--- /dev/null
+++ b/keyboards/preonic/keymaps/0xdec/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = yes # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/preonic/keymaps/0xdec/README.md b/keyboards/preonic/keymaps/0xdec/README.md
new file mode 100644
index 000000000..603d3d455
--- /dev/null
+++ b/keyboards/preonic/keymaps/0xdec/README.md
@@ -0,0 +1,30 @@
+Ergonomic Colemak Keymap
+========================
+An ergonomically optimized Colemak keymap for the grid-layout Preonic
+
+Modes
+----------
+
+#### Colemak
+
+> Base layer
+
+- All alphanumerics and symbols available on the base layer
+
+----------
+
+#### Game
+
+> QWERTY layout for use with games or number entry
+
+- Standard QWERTY layout
+- Integrated right-hand numpad in phone layout
+
+----------
+
+#### Function (Raise)
+
+> Functions and mode switching
+
+- Turns NEIO into arrow cluster, with nav cluster below (Home, Page Down, Page Up, End)
+- Reset key at lower left (Esc)
diff --git a/keyboards/preonic/keymaps/0xdec/config.h b/keyboards/preonic/keymaps/0xdec/config.h
new file mode 100644
index 000000000..5fc9b6f34
--- /dev/null
+++ b/keyboards/preonic/keymaps/0xdec/config.h
@@ -0,0 +1,10 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// Number of backlight levels
+#undef BACKLIGHT_LEVELS
+#define BACKLIGHT_LEVELS 5
+
+#endif
diff --git a/keyboards/preonic/keymaps/0xdec/keymap.c b/keyboards/preonic/keymaps/0xdec/keymap.c
new file mode 100644
index 000000000..6c4b8a6fa
--- /dev/null
+++ b/keyboards/preonic/keymaps/0xdec/keymap.c
@@ -0,0 +1,173 @@
+#include "preonic.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+
+// Layer names
+#define _COLEMAK 0
+#define _GAME 1
+#define _RAISE 2
+
+enum preonic_keycodes {
+ COLEMAK = SAFE_RANGE,
+ GAME,
+ RAISE
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | = | Q | W | F | P | G | J | L | U | Y | [ | ] |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | - | A | R | S | T | D | H | N | E | I | O | ' |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ; | Z | X | C | V | B | K | M | , | . | / | ENTER|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ESC | ALT | GUI | SHIFT| CTRL | BKSP | SPACE| RAISE| SHIFT| | DEL | TAB |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = {
+ {KC_GRV ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_BSLS},
+ {KC_EQL ,KC_Q ,KC_W ,KC_F ,KC_P ,KC_G ,KC_J ,KC_L ,KC_U ,KC_Y ,KC_LBRC,KC_RBRC},
+ {KC_MINS,KC_A ,KC_R ,KC_S ,KC_T ,KC_D ,KC_H ,KC_N ,KC_E ,KC_I ,KC_O ,KC_QUOT},
+ {KC_SCLN,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_K ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_ENT },
+ {KC_ESC ,KC_LALT,KC_LGUI,KC_LSFT,KC_LCTL,KC_BSPC,KC_SPC ,RAISE ,KC_RSFT,_______,KC_DEL ,KC_TAB }
+},
+
+/* Game
+ * ,-----------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 |NUM LK| ÷ | × | - |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+
+ * | TAB | Q | W | E | R | T | Y | U | 1 | 2 | 3 | + |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+
+ * | CTRL | A | S | D | F | G | H | J | 4 | 5 | 6 | = |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+
+ * | SHIFT| Z | X | C | V | B | N | M | 7 | 8 | 9 | ENTER|
+ * |------+------+------+------+------+------+------+------+------+------+------+------+
+ * | | ALT | GUI | SPACE| CTRL | BKSP | SPACE| RAISE| , | 0 | . | TAB |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_GAME] = {
+ {KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS},
+ {KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PPLS},
+ {KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_J ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PEQL},
+ {KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PENT},
+ {XXXXXXX,KC_LALT,KC_LGUI,KC_SPC ,KC_LCTL,KC_BSPC,KC_SPC ,RAISE ,KC_PCMM,KC_P0 ,KC_PDOT,KC_TAB }
+},
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | SLEEP| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 |PRTSCR|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | SYM | F11 | F12 | |AU TOG| VOL+ |BL INC|COLMAK| GAME | MUSIC| MENU |SCRLCK|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | CAPS | PREV | STOP | PLAY | NEXT | VOL- |BL DEC| LEFT | DOWN | UP | RIGHT| PAUSE|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | BACK | STOP | RFRSH| FRWRD| MUTE |BL TOG| HOME | PGDN | PGUP | END |INSERT|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | RESET| | | | | DEL | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = {
+ {KC_SLEP,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_PSCR},
+ {XXXXXXX,KC_F11 ,KC_F12 ,XXXXXXX,AU_TOG ,KC_VOLU,BL_INC ,COLEMAK,GAME ,MU_TOG ,KC_MENU,KC_SLCK},
+ {KC_CAPS,KC_MPRV,KC_MSTP,KC_MPLY,KC_MNXT,KC_VOLD,BL_DEC ,KC_LEFT,KC_DOWN,KC_UP ,KC_RGHT,KC_PAUS},
+ {XXXXXXX,KC_WBAK,KC_WSTP,KC_WREF,KC_WFWD,KC_MUTE,BL_TOGG,KC_HOME,KC_PGDN,KC_PGUP,KC_END ,KC_INS },
+ {RESET ,_______,_______,_______,_______,KC_DEL ,_______,_______,_______,_______,_______,_______}
+}
+
+};
+
+
+
+#ifdef AUDIO_ENABLE
+
+float tone_startup[][2] = {
+ {NOTE_B5, 20},
+ {NOTE_B6, 8},
+ {NOTE_DS6, 20},
+ {NOTE_B6, 8}
+};
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+float tone_game[][2] = {
+ {NOTE_E6, 10} ,{NOTE_E6, 10} ,{NOTE_REST, 10} ,{NOTE_E6, 10} ,
+ {NOTE_REST, 10} ,{NOTE_C6, 10} ,{NOTE_E6, 10} ,{NOTE_REST, 10} ,
+ {NOTE_G6, 10} ,{NOTE_REST, 30},
+ {NOTE_G5, 10} ,{NOTE_REST, 30}
+};
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+void startup_user() {
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+void shutdown_user() {
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void) {
+ music_scale_user();
+}
+void music_scale_user(void) {
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif
+
+
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
+}
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case COLEMAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_COLEMAK);
+ }
+ break;
+ case GAME:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_game, false, STACCATO);
+ #endif
+ persistant_default_layer_set(1UL<<_GAME);
+ }
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ } else {
+ layer_off(_RAISE);
+ }
+ break;
+ default:
+ return true;
+ break;
+ }
+
+ return false;
+};
diff --git a/keyboards/preonic/keymaps/CMD-Preonic/README.md b/keyboards/preonic/keymaps/CMD-Preonic/README.md
new file mode 100644
index 000000000..2b80c2b3a
--- /dev/null
+++ b/keyboards/preonic/keymaps/CMD-Preonic/README.md
@@ -0,0 +1,77 @@
+CMD-Preonic
+===================
+The CMD project seeks to improve productivity by optimizing usage of the left hand via clever use of the function layers.
+
+>Note: This project is currently optimized for grid layout, and has not been confirmed to work 100% on MIT layout, although it is expected to work correctly.
+
+----------
+
+Modes
+-------------
+
+#### QWERTY
+
+>CMD-Qwerty is very similar to the default Preonic with a few key differences:
+
+ - Dual-role Raise/Enter Key at Caps Lock position. -Don't need to take your hand off the mouse to submit URLs
+ - Space_Function under left space (Grid layout) -Don't need to take your thumb off of the spacebar to use lower.
+ - Dedicated arrow keys replaced with ( - , = , [ , and ] ) - big improvement for programmers who are used to fn layer.
+
+----------
+
+#### Game
+
+> Disables extra features to facilitate easier usage of the Preonic while gaming. this mode is toggled in the adjust layer.
+
+ - Dual Role Function key becomes Caps Lock.
+ - Space_Function disabled and replaced with normal spacebar.
+ - Windows Key disabled.
+
+----------
+
+#### Numpad
+
+> Enables left-hand numpad
+
+ - Left-side numpad
+ - Can be toggled on in Adjust layer (under . key)
+
+----------
+
+#### Arrow - (Lower)
+
+> Makes arrow keys easily accessible to Left Hand, and much more.
+
+ - Arrow keys at WASD, Backspace at Q, Delete at E.
+ - Media Keys near arrow cluster, mute at A.
+ - Web Nav keys.
+ - Mouse cluster at YGHJ.
+ - Numpad in right side of board.
+ - Can be toggled on in Adjust layer (Under , key)
+
+----------
+
+#### Function- (Raise)
+
+> Basic Functions. Open Keys for customization.
+
+ - Turns WASD into Navigation cluster (Home, End, Page up and Page Down)
+ - Pok3r style right hand arrow cluster for accessibility (familiar for many users.)
+ - Doubles as shift key for top row numbers.
+ - Print Screen, Insert, etc.
+
+----------
+
+#### Adjust- (Raise + Lower)
+
+> Switch Modes
+
+ - Default modes moved to the left and new layer toggle modes located to the right.
+ - Sleep and Wake keys added.
+ - Reset button moved under Spacebar(s).
+
+Notes:
+-------------
+
+Please feel free to reach out to Commandlinedesign@gmail.com with suggestions.
+Special Thanks to Jack for QMK firmware and the Preonic!
diff --git a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c
new file mode 100644
index 000000000..5d217e261
--- /dev/null
+++ b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c
@@ -0,0 +1,332 @@
+#include "preonic.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _COLEMAK 1
+#define _DVORAK 2
+#define _GAME 3
+#define _ARROW 12
+#define _NUMPAD 13
+#define _LOWER 14
+#define _RAISE 15
+#define _ADJUST 16
+
+// Macro name shortcuts
+#define QWERTY M(_QWERTY)
+#define COLEMAK M(_COLEMAK)
+#define DVORAK M(_DVORAK)
+#define GAME M(_GAME)
+#define ARROW M(_ARROW)
+#define NUMPAD M(_NUMPAD)
+#define LOWER M(_LOWER)
+#define RAISE M(_RAISE)
+#define M_BL 5
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Lower | Space | Raise| - | = | [ | ] |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+ {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH},
+ {LT(_RAISE, KC_ENT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
+ {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT(_LOWER, KC_SPC), KC_SPC, RAISE, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC}
+},
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | R | S | T | D | H | N | E | I | O | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Lower | Space | Raise| - | = | [ | ] |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = {
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ {_______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______},
+ {_______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
+ {_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | O | E | U | I | D | H | T | N | S | / |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Lower | Space | Raise| - | = | [ | ] |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = {
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ {_______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______},
+ {_______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, _______},
+ {_______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* GAME
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | CAPS | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | XXX | Lower | Space | Raise| - | = | [ | ] |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_GAME] = {
+ {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH},
+ {KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
+ {_______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* NUMPAD
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | / | * | - | 4 | 5 | 6 | 7 | 8 | 9 | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | 7 | 8 | 9 | + | R | T | Y | U | I | O | P | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | 4 | 5 | 6 | + | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | 1 | 2 | 3 | Enter| V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | 0 | 0 | . | Enter| Lower| Space | Raise| - | = | [ | ] |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_NUMPAD] = {
+ {KC_ESC, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______, _______, _______, _______, _______},
+ {KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______, _______, _______, _______, _______},
+ {KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, _______, _______, _______, _______, _______, _______},
+ {KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______, _______, _______, _______},
+ {KC_P0, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, _______, _______},
+},
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Mute | BkSpc| Up | Del | Forwd| MBtn1| MUp| MBtn2| / | 7 | 8 | 9 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | Left | Down | Right| Refr MLeft| MDn |MRight| * | 4 | 5 | 6 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Vol+| Prev | Play | Next | Back | MWDn| MBtn3| MWUp | - | 1 | 2 | 3 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Vol- | | | | | | | + | Enter| 0 | . |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = {
+ {KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL},
+ {KC_MUTE, KC_BSPC, KC_UP, KC_DEL, KC_WWW_FORWARD, KC_BTN1, KC_MS_U, KC_BTN2, KC_PSLS, KC_P7, KC_P8, KC_P9},
+ {_______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_WWW_REFRESH, KC_MS_L, KC_MS_D, KC_MS_R, KC_PAST, KC_P4, KC_P5, KC_P6},
+ {KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_WWW_BACK, KC_WH_D, KC_BTN3, KC_WH_U, KC_PMNS, KC_P1, KC_P2, KC_P3},
+ {KC_VOLD, _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PENT, KC_P0, KC_PDOT}
+},
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | Bksp | PgUp | Del | | | | PgUp | Up | PgDn | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | Home | PgDn | End | | | Home | Left | Down | Right| ] | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | Pause| Ins | | | Print|Screen| End | | | |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = {
+ {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
+ {_______, KC_BSPC, KC_PGUP, KC_DEL, _______, _______, _______, KC_PGUP, KC_UP, _______, _______, _______},
+ {_______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______},
+ {_______, KC_PAUSE, KC_INS, _______, KC_PSCR, KC_PSCR, _______, KC_END, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | | |qwerty|ColMak|Dvorak| | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | |AGNorm|AGSwap| | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | |Aud On|AudOff|MidiOn|MdiOff| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus On|MusOff| Sleep| Wake | Arrow| Game |NUMPAD| | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | Reset | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = {
+ {_______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______},
+ {_______, RESET, _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, KC_DEL},
+ {_______, _______, _______, AU_ON, AU_OFF, MI_ON, MI_OFF, QWERTY, COLEMAK, DVORAK, _______, _______},
+ {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, KC_SYSTEM_SLEEP, KC_SYSTEM_WAKE, ARROW, GAME, NUMPAD, _______, _______},
+ {_______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______}
+}
+
+
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+#ifdef AUDIO_ENABLE
+float start_up[][2] = {
+ {440.0*pow(2.0,(14)/12.0), 20},
+ {440.0*pow(2.0,(26)/12.0), 8},
+ {440.0*pow(2.0,(18)/12.0), 20},
+ {440.0*pow(2.0,(26)/12.0), 8}
+};
+
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+
+float goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case _QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ break;
+ case _COLEMAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_COLEMAK);
+ }
+ break;
+ case _DVORAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_DVORAK);
+ }
+ break;
+ case _GAME:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_GAME);
+ }
+ break;
+ case _NUMPAD:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_NUMPAD);
+ }
+ break;
+ case _ARROW:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_LOWER);
+ }
+ break;
+ case _LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ break;
+ case _RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ break;
+ case M_BL:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(start_up, false, 0);
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+
+void play_goodbye_tone()
+{
+ PLAY_NOTE_ARRAY(goodbye, false, 0);
+ _delay_ms(150);
+}
+
+#endif
diff --git a/keyboards/preonic/keymaps/CMD-Preonic/makefile b/keyboards/preonic/keymaps/CMD-Preonic/makefile
new file mode 100644
index 000000000..2f7787e86
--- /dev/null
+++ b/keyboards/preonic/keymaps/CMD-Preonic/makefile
@@ -0,0 +1,23 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = yes # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/preonic/keymaps/default/Makefile b/keyboards/preonic/keymaps/default/Makefile
index 581e08cd0..3d4659ceb 100644
--- a/keyboards/preonic/keymaps/default/Makefile
+++ b/keyboards/preonic/keymaps/default/Makefile
@@ -1,25 +1,3 @@
-
-
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = yes # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
ifndef QUANTUM_DIR
include ../../../../Makefile
endif \ No newline at end of file
diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c
index 9a957f7ee..3313af945 100644
--- a/keyboards/preonic/keymaps/default/keymap.c
+++ b/keyboards/preonic/keymaps/default/keymap.c
@@ -9,12 +9,15 @@
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
-#define _QWERTY 0
-#define _COLEMAK 1
-#define _DVORAK 2
-#define _LOWER 3
-#define _RAISE 4
-#define _ADJUST 16
+
+enum preonic_layers {
+ _QWERTY,
+ _COLEMAK,
+ _DVORAK,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
enum preonic_keycodes {
QWERTY = SAFE_RANGE,
@@ -102,7 +105,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
@@ -123,7 +126,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
@@ -142,9 +145,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | Reset| | | | | | | | | | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
+ * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
- * | |Voice-|Voice+|Musoff|Mus on| | | | | | | |
+ * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
@@ -277,4 +280,4 @@ void music_scale_user(void)
PLAY_NOTE_ARRAY(music_scale, false, 0);
}
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/preonic/keymaps/jacwib/Makefile b/keyboards/preonic/keymaps/jacwib/Makefile
new file mode 100644
index 000000000..3e87d41d3
--- /dev/null
+++ b/keyboards/preonic/keymaps/jacwib/Makefile
@@ -0,0 +1,20 @@
+
+
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = yes # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/preonic/keymaps/jacwib/config.h b/keyboards/preonic/keymaps/jacwib/config.h
new file mode 100644
index 000000000..b98883120
--- /dev/null
+++ b/keyboards/preonic/keymaps/jacwib/config.h
@@ -0,0 +1,9 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#define FORCE_NKRO 1
+#define PREVENT_STUCK_MODIFIERS
+
+#endif
diff --git a/keyboards/preonic/keymaps/jacwib/keymap.c b/keyboards/preonic/keymaps/jacwib/keymap.c
new file mode 100644
index 000000000..72ccc86cd
--- /dev/null
+++ b/keyboards/preonic/keymaps/jacwib/keymap.c
@@ -0,0 +1,293 @@
+#include "preonic.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+#include "keymap_nordic.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _LOWER 3
+#define _RAISE 4
+#define _MQWERTY 5
+#define _MLOWER 8
+#define _MRAISE 9
+#define _ADJUST 16
+
+enum preonic_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ MQWERTY,
+ MLOWER,
+ MRAISE
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | + | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | Q | W | E | R | T | Y | U | I | O | P | Ã… |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Tab | A | S | D | F | G | H | J | K | L | Ö | Ä |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| < | Z | X | C | V | B | N | M | . | , | - |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | GUI |AltGr |Lower | Space| Enter|Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, NO_PLUS, KC_BSPC},
+ {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AM },
+ {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NO_AE, NO_OSLH},
+ {KC_LSFT, NO_LESS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_COMM, NO_MINS},
+ {KC_LCTL, KC_LALT, KC_LGUI, NO_ALGR, LOWER, KC_SPC, KC_ENT, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | | @ | £ | $ | | | { | [ | ] | } | \ | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | |VolUp | | | ~ |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | |LastS |PauseP|NextS | | * |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | |VolDwn| | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | |Bspc | | |PgDn |PgUp | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = {
+ {_______, NO_AT, NO_PND, NO_DLR, _______, _______, NO_LCBR, NO_LBRC, NO_RBRC, NO_RCBR, NO_BSLS, KC_DEL},
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, NO_TILD},
+ {_______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, LSFT(KC_BSLS)},
+ {_______, NO_PIPE, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, KC_BSPC, _______, _______, KC_PGDN, KC_PGUP, _______}
+},
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ! | " | # | ¤ | % | & | / | ( | ) | = | ? | Ins |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | |Mouse^| | | | |ScrlUp| | | ^ |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | |Mouse<|MouseV|Mouse>| | |MLC |MMC |MRC | ' | ¨ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | > | | | | | | |ScrlDown| : | ; | _ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | |Bspc | | | | PgDn | PgUp | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = {
+ {LSFT(KC_1),NO_QUO2,LSFT(KC_3), NO_BULT,LSFT(KC_5), NO_AMPR, NO_SLSH, NO_LPRN, NO_RPRN, NO_EQL, NO_QUES, KC_INS},
+ {_______, _______, _______, KC_MS_U, _______, _______, _______, _______, KC_WH_U, _______, _______, NO_CIRC},
+ {_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, NO_APOS, NO_QUOT},
+ {_______, NO_GRTR, _______, _______, _______, _______, _______, _______, KC_WH_D, NO_COLN, NO_SCLN, NO_UNDS},
+ {_______, _______, _______, _______, _______, KC_BSPC, _______, _______, _______, KC_PGDN, KC_PGUP, _______}
+},
+
+/* Mac Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | + | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | Q | W | E | R | T | Y | U | I | O | P | Ã… |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Tab | A | S | D | F | G | H | J | K | L | Ö | Ä |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| < | Z | X | C | V | B | N | M | . | , | - |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | GUI |AltGr |Lower | Space| Enter|Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_MQWERTY] = {
+ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, NO_PLUS, KC_BSPC},
+ {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AM },
+ {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NO_AE, NO_OSLH},
+ {KC_LSFT, NO_LESS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_COMM, NO_MINS},
+ {KC_LCTL, KC_LALT, KC_LGUI, NO_ALGR, MLOWER, KC_SPC, KC_ENT, MRAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Mac Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | | @ | £ | $ | | | { | [ | ] | } | \ | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | |VolUp | | | ~ |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | |LastS |PauseP|NextS | | * |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | |VolDwn| | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | |Bspc | | |PgDn |PgUp | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_MLOWER] = {
+ {_______, NO_AT, NO_PND, NO_DLR, _______, _______, LSFT(LALT(KC_8)), NO_LBRC, NO_RBRC, LSFT(LALT(KC_9)), LSFT(LALT(KC_7)), KC_DEL},
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, NO_TILD},
+ {_______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, LSFT(KC_BSLS)},
+ {_______, NO_LBRC, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, KC_BSPC, _______, _______, KC_PGDN, KC_PGUP, _______}
+},
+
+/* Mac Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ! | " | # | ¤ | % | & | / | ( | ) | = | ? | Ins |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | |Mouse^| | | | |ScrlUp| | | ^ |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | |Mouse<|MouseV|Mouse>| | |MLC |MMC |MRC | ' | ¨ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | > | | | | | | |ScrlDown| : | ; | _ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | |Bspc | | | | PgDn | PgUp | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_MRAISE] = {
+ {LSFT(KC_1),NO_QUO2,LSFT(KC_3), NO_BULT,LSFT(KC_5), NO_AMPR, NO_SLSH, NO_LPRN, NO_RPRN, NO_EQL, NO_QUES, KC_INS},
+ {_______, _______, _______, KC_MS_U, _______, _______, _______, _______, KC_WH_U, _______, _______, NO_CIRC},
+ {_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, NO_APOS, NO_QUOT},
+ {_______, NO_GRTR, _______, _______, _______, _______, _______, _______, KC_WH_D, NO_COLN, NO_SCLN, NO_UNDS},
+ {_______, _______, _______, _______, _______, KC_BSPC, _______, _______, _______, KC_PGDN, KC_PGUP, _______}
+},
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | Reset| | | | | | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | | |Rshift|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |MusOn |MusOff| | | | |NrmMode|MacMode| | | Reset|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = {
+ {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12},
+ {_______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT},
+ {_______, MU_ON, MU_OFF, _______, _______, _______, _______, TO(0), TO(5), _______, _______, RESET },
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+}
+
+
+};
+
+#ifdef AUDIO_ENABLE
+float tone_startup[][2] = {
+ {NOTE_D5, 8},
+ {NOTE_E6, 8},
+ {NOTE_D6, 8},
+ {NOTE_E5, 8}
+};
+
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+#endif
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case MQWERTY:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_MQWERTY);
+ }
+ return false;
+ break;
+ case MLOWER:
+ if (record->event.pressed) {
+ layer_on(_MLOWER);
+ update_tri_layer(_MLOWER, _MRAISE, _ADJUST);
+ } else {
+ layer_off(_MLOWER);
+ update_tri_layer(_MLOWER, _MRAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case MRAISE:
+ if (record->event.pressed) {
+ layer_on(_MRAISE);
+ update_tri_layer(_MLOWER, _MRAISE, _ADJUST);
+ } else {
+ layer_off(_MRAISE);
+ update_tri_layer(_MLOWER, _MRAISE, _ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+};
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif
diff --git a/keyboards/preonic/keymaps/jacwib/readme.md b/keyboards/preonic/keymaps/jacwib/readme.md
new file mode 100644
index 000000000..8658d6cdd
--- /dev/null
+++ b/keyboards/preonic/keymaps/jacwib/readme.md
@@ -0,0 +1,15 @@
+# Jacwib's preonic keymap.
+
+Designed for use with a swedish language.
+
+Version 1.1:
+
+Added PgUp and PgDn keys.
+
+Also added "Mac mode". Unsure if it even works. Might however be able to test soon.
+
+Version 1.2:
+
+Changed around alt and super keys.
+
+Made "Mac mode" function, and tested it! (It works)
diff --git a/keyboards/preonic/keymaps/kinesis/Makefile b/keyboards/preonic/keymaps/kinesis/Makefile
new file mode 100644
index 000000000..6c8d2897c
--- /dev/null
+++ b/keyboards/preonic/keymaps/kinesis/Makefile
@@ -0,0 +1,27 @@
+
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = yes # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+TAP_DANCE_ENABLE = yes
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/ergodox_ez/config.h b/keyboards/preonic/keymaps/kinesis/config.h
index 2bb56731b..e6099ceb8 100644
--- a/keyboards/ergodox_ez/config.h
+++ b/keyboards/preonic/keymaps/kinesis/config.h
@@ -1,6 +1,5 @@
/*
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
@@ -23,22 +22,25 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x1307
+#define PRODUCT_ID 0x6061
#define DEVICE_VER 0x0001
-#define MANUFACTURER ErgoDox EZ
-#define PRODUCT ErgoDox EZ
-#define DESCRIPTION QMK keyboard firmware for Ergodox EZ
+#define MANUFACTURER Ortholinear Keyboards
+#define PRODUCT The Preonic Keyboard
+#define DESCRIPTION A compact ortholinear keyboard
/* key matrix size */
-#define MATRIX_ROWS 14
-#define MATRIX_COLS 6
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 12
-#define MOUSEKEY_DELAY 100
-#define MOUSEKEY_INTERVAL 20
-#define MOUSEKEY_MAX_SPEED 3
-#define MOUSEKEY_TIME_TO_MAX 10
+/* Planck PCB default pin-out */
+#define MATRIX_ROW_PINS { D2, D5, B5, B6, D3 }
+#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
+#define UNUSED_PINS
-#define TAPPING_TOGGLE 1
+#define BACKLIGHT_PIN B7
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
@@ -47,9 +49,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_LEVELS 3
/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-#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.)
+#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
@@ -58,15 +58,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* 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)) \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D1
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 28 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
+#define TAPPING_TERM 200
+
/* disable debug print */
// #define NO_DEBUG
@@ -79,6 +88,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
-//#define DEBUG_MATRIX_SCAN_RATE
#endif
diff --git a/keyboards/preonic/keymaps/kinesis/keymap.c b/keyboards/preonic/keymaps/kinesis/keymap.c
new file mode 100644
index 000000000..9691be91d
--- /dev/null
+++ b/keyboards/preonic/keymaps/kinesis/keymap.c
@@ -0,0 +1,144 @@
+#include "preonic.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+#ifdef AUDIO_ENABLE
+#include "audio.h"
+#endif
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _FN 1
+#define _ULCK 2
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+#define HYP_TIC ALL_T(KC_GRV)
+#define EQ_LOCK TD(TD_EQ_LOCK)
+#define MIN_ULK TD(TD_MIN_ULOCK)
+
+//Tap Dance Declarations
+enum {
+ TD_EQ_LOCK = 0,
+ TD_MIN_ULOCK
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | \ |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Ctrl | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | FN | ` | Alt | LGUI | Back | ESC |ENTER | SPCE | RGUI | [ | ] | FN |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [_QWERTY] = {
+ {EQ_LOCK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, MIN_ULK },
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS },
+ {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT },
+ {KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC },
+ {MO(_FN), HYP_TIC, KC_LALT, KC_LGUI, KC_BSPC, KC_ESC, KC_ENT, KC_SPC, KC_RGUI, KC_LBRC, KC_RBRC, MO(_FN) }
+ },
+
+ /* Fn
+ * ,-----------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | VOL- | VOL+ | MUTE |BLtogg| | LEFT | DOWN | UP | RGHT | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | BL- | BL+ |Aud on|AudOff|AGnorm|AGswap| | | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|MusOff| | |PLY/PS| | PREV | NEXT | |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [_FN] = {
+ {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______ },
+ {_______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______ },
+ {_______, KC_VOLD, KC_VOLU, KC_MUTE, BL_TOGG, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______ },
+ {_______, BL_DEC, BL_INC, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______ },
+ {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, KC_MPLY, _______, KC_MPRV, KC_MNXT, _______ }
+ }
+
+};
+
+float tone_startup[][2] = {
+ {NOTE_B5, 20},
+ {NOTE_B6, 8},
+ {NOTE_DS6, 20},
+ {NOTE_B6, 8}
+};
+
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+/*bool process_record_user(uint16_t keycode, keyrecord_t *record) {*/
+ /*return true;*/
+ /*[>switch (keycode) {<]*/
+ /*[>case QWERTY:<]*/
+ /*[>return true;<]*/
+ /*[>}<]*/
+/*};*/
+
+void matrix_init_user(void) {
+ startup_user();
+}
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ //Tap once for equal, twice for hyper + X (alfred lock)
+ [TD_EQ_LOCK] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, HYPR(KC_X)),
+ //Tap once for minus, twice for time.heals.nothing
+ [TD_MIN_ULOCK] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, M(_ULCK))
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case _ULCK:
+ if (record->event.pressed) {
+ /* time.heals.nothing */
+ return MACRO( I(220), T(T), T(I), T(M), T(E), T(DOT), T(H), T(E), T(A), T(L), T(S), T(DOT), T(N), T(O), T(T), T(H), T(I), T(N), T(G), END);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/preonic/keymaps/kinesis/readme.md b/keyboards/preonic/keymaps/kinesis/readme.md
new file mode 100644
index 000000000..e911968dd
--- /dev/null
+++ b/keyboards/preonic/keymaps/kinesis/readme.md
@@ -0,0 +1 @@
+# The default Preonic layout - largely based on the Planck's \ No newline at end of file
diff --git a/keyboards/preonic/keymaps/smt/Makefile b/keyboards/preonic/keymaps/smt/Makefile
new file mode 100644
index 000000000..3d4659ceb
--- /dev/null
+++ b/keyboards/preonic/keymaps/smt/Makefile
@@ -0,0 +1,3 @@
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/preonic/keymaps/smt/keymap.c b/keyboards/preonic/keymaps/smt/keymap.c
new file mode 100644
index 000000000..ba05d9ad5
--- /dev/null
+++ b/keyboards/preonic/keymaps/smt/keymap.c
@@ -0,0 +1,247 @@
+#include "preonic.h"
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+#include "eeconfig.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 _DVORAK 0
+#define _QWERTY 1
+#define _LOWER 2
+#define _RAISE 3
+#define _ADJUST 16
+
+enum preonic_keycodes {
+ DVORAK = SAFE_RANGE,
+ QWERTY,
+ LOWER,
+ RAISE,
+ BACKLIT
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | O | E | U | I | D | H | T | N | S | - |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = {
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
+ {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
+ {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS},
+ {SFT_T(KC_ESC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT)},
+ {ALL_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ {_______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, _______},
+ {_______, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | End |PageDn|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = {
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL},
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL},
+ {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_HOME, KC_PGUP},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_END, KC_PGDN},
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | _ | ? | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | - | / | = | [ | ] | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = {
+ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL},
+ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL},
+ {_______, _______, _______, _______, _______, _______, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+ {_______, _______, _______, _______, _______, _______, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | Reset| | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|AudOff|AGnorm|AGswap|Dvorak|Qwerty| | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = {
+ {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12},
+ {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
+ {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, DVORAK, QWERTY, _______, _______, _______},
+ {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+}
+
+
+};
+
+#ifdef AUDIO_ENABLE
+float tone_startup[][2] = {
+ {NOTE_B5, 20},
+ {NOTE_B6, 8},
+ {NOTE_DS6, 20},
+ {NOTE_B6, 8}
+};
+
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+#endif
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case DVORAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_DVORAK);
+ }
+ return false;
+ break;
+ case QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ return false;
+ break;
+ }
+ return true;
+};
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif
diff --git a/keyboards/preonic/keymaps/smt/readme.md b/keyboards/preonic/keymaps/smt/readme.md
new file mode 100644
index 000000000..016da7b01
--- /dev/null
+++ b/keyboards/preonic/keymaps/smt/readme.md
@@ -0,0 +1,113 @@
+# smt's Preonic keymap
+
+This keymap is primarily based on the default Preonic keymap, which in turn is derived from Planck's default.
+
+Notable differences from the default are:
+
+1. **Dvorak by default**
+
+ I happen to type in Dvorak, and prefer that layer to be the default on my keyboard. This is easy enough to switch around with Qwerty, Colemak, or whatever.
+
+2. **Right Shift**
+
+ I use both the left and right shift keys when I type. When I want to modify a key with shift, I hold shift with the hand opposite the one typing the key. In the default keymap, Enter is where shift would be on a standard keyboard layout. Oh, muscle memory.
+
+ Thankfully, QMK supports [mod-tap](https://github.com/jackhumbert/qmk_firmware/wiki#fun-with-modifier-keys) keys, and this allows me to set the Enter key to send a modifier (MOD_LSFT) when held, and KC_ENT when tapped. Awesome!
+
+3. Escape
+
+ I am experimenting with using Left Shift as a mod-tap key for Escape, similar to how I use the Enter key. It's set up like this on my Minivan, so in the interest of consistency...
+
+4. Backtick
+
+ I don't currently have LEDs on any of my keyboards, and even if I did, I don't think I would want their controls on a base layer.
+
+ So, why use backtick in the lower left corner? I use it as my tmux prefix key, so I need to type it more frequently than most people. Putting it on the base layer works well for me.
+
+## Dvorak (default)
+
+```
+,-----------------------------------------------------------------------------------.
+| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
+|------+------+------+------+------+-------------+------+------+------+------+------|
+| Esc | A | O | E | U | I | D | H | T | N | S | - |
+|------+------+------+------+------+------|------+------+------+------+------+------|
+| Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+`-----------------------------------------------------------------------------------'
+```
+
+## Qwerty (same as default)
+
+```
+,-----------------------------------------------------------------------------------.
+| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+|------+------+------+------+------+-------------+------+------+------+------+------|
+| Esc | A | S | D | F | G | H | J | K | L | ; | " |
+|------+------+------+------+------+------|------+------+------+------+------+------|
+| Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+`-----------------------------------------------------------------------------------'
+```
+
+## Lower
+
+This is where I put the number row, a numpad cluster, function keys, and some light navigation via Home/End/PageUp/PageDn. Like the "Raise" layer, the top row is redundant to help with Planck compatibility.
+
+```
+,-----------------------------------------------------------------------------------.
+| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+|------+------+------+------+------+-------------+------+------+------+------+------|
+| | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp|
+|------+------+------+------+------+------|------+------+------+------+------+------|
+| | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | End |PageDn|
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| | | | | | | | Next | Vol- | Vol+ | Play |
+`-----------------------------------------------------------------------------------'
+```
+
+## Raise
+
+As a developer, it makes the most sense for me to group all the commonly-used symbols that don't fit on the main layer. In particular, having the dual-column of parens-braces-brackets really helps a lot.
+
+I haven't completely filled this layer, which leaves room for future mappings and macros.
+
+```
+,-----------------------------------------------------------------------------------.
+| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+|------+------+------+------+------+-------------+------+------+------+------+------|
+| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+|------+------+------+------+------+-------------+------+------+------+------+------|
+| | | | | | | _ | ? | + | { | } | | |
+|------+------+------+------+------+------|------+------+------+------+------+------|
+| | | | | | | - | / | = | [ | ] | \ |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| | | | | | | | Next | Vol- | Vol+ | Play |
+`-----------------------------------------------------------------------------------'
+```
+
+## Adjust (Lower + Raise)
+
+Utility layer. This is where I'd switch to Qwerty, or ~~fool around with~~ adjust the audio/music settings.
+
+```
+,-----------------------------------------------------------------------------------.
+| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| | Reset| | | | | | | | | | Del |
+|------+------+------+------+------+-------------+------+------+------+------+------|
+| | | |Aud on|AudOff|AGnorm|AGswap|Dvorak|Qwerty| | | |
+|------+------+------+------+------+------|------+------+------+------+------+------|
+| |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| | | | | | | | | | | |
+`-----------------------------------------------------------------------------------'
+```
diff --git a/keyboards/preonic/keymaps/xyverz/keymap.c b/keyboards/preonic/keymaps/xyverz/keymap.c
new file mode 100644
index 000000000..adc7392e5
--- /dev/null
+++ b/keyboards/preonic/keymaps/xyverz/keymap.c
@@ -0,0 +1,342 @@
+#include "preonic.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _COLEMAK 1
+#define _DVORAK 2
+#define _LOWER 3
+#define _RAISE 4
+#define _MUSIC 5
+#define _ADJUST 16
+
+// Macro name shortcuts
+#define QWERTY M(_QWERTY)
+#define COLEMAK M(_COLEMAK)
+#define DVORAK M(_DVORAK)
+#define LOWER M(_LOWER)
+#define RAISE M(_RAISE)
+#define M_BL 5
+#define AUD_OFF M(6)
+#define AUD_ON M(7)
+#define MUS_OFF M(8)
+#define MUS_ON M(9)
+#define VC_IN M(10)
+#define VC_DE M(11)
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | - | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / | Shift|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | Left |Right |Lower | Space |Raise | Up | Down | GUI |Enter |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+ {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL},
+ {KC_MINS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT},
+ {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_SPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT }
+},
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | R | S | T | D | H | N | E | I | O | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = {
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
+ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL},
+ {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
+ {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | " | , | . | P | Y | F | G | C | R | L | / |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | O | E | U | I | D | H | T | N | S | - |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | B | M | W | V | Z | Shift|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | Left |Right |Lower | Space |Raise | Up | Down | GUI |Enter |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = {
+ {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
+ {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH},
+ {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS},
+ {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT},
+ {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_SPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT }
+},
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | Mute | Vol- | Vol+ | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| | Home | End | | Ins | | PgUp | PgDN | |Enter |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = {
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
+ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL},
+ {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______},
+ {M(M_BL), _______, KC_HOME, KC_END, _______, KC_INS, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______}
+},
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | Prev | Play | Next | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| | Home | End | | Ins | | PgUp | PgDN | |Enter |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = {
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
+ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL},
+ {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______},
+ {M(M_BL), _______, KC_HOME, KC_END, _______, KC_INS, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______}
+},
+
+/* Music (reserved for process_action_user)
+ *
+ */
+[_MUSIC] = {
+ {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
+ {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
+ {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
+ {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
+ {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
+},
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | Reset| | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Musoff|Mus on| | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = {
+ {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12},
+ {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
+ {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______},
+ {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+}
+
+
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+#ifdef AUDIO_ENABLE
+float start_up[][2] = {
+ {440.0*pow(2.0,(14)/12.0), 20},
+ {440.0*pow(2.0,(26)/12.0), 8},
+ {440.0*pow(2.0,(18)/12.0), 20},
+ {440.0*pow(2.0,(26)/12.0), 8}
+};
+
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+float goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case _QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ break;
+ case _COLEMAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_COLEMAK);
+ }
+ break;
+ case _DVORAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_DVORAK);
+ }
+ break;
+ case _LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ break;
+ case _RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ break;
+ case M_BL:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ case 6:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ audio_off();
+ #endif
+ }
+ break;
+ case 7:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ audio_on();
+ PLAY_NOTE_ARRAY(start_up, false, 0);
+ #endif
+ }
+ break;
+ case 8:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ layer_off(_MUSIC);
+ stop_all_notes();
+ #endif
+ }
+ break;
+ case 9:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+ layer_on(_MUSIC);
+ #endif
+ }
+ break;
+ case 10:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ voice_iterate();
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+ #endif
+ }
+ break;
+ case 11:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ voice_deiterate();
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+ #endif
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(start_up, false, 0);
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+
+uint8_t starting_note = 0x0C;
+int offset = 7;
+
+void process_action_user(keyrecord_t *record) {
+
+ if (IS_LAYER_ON(_MUSIC)) {
+ if (record->event.pressed) {
+ play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF);
+ } else {
+ stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)));
+ }
+ }
+
+}
+
+void play_goodbye_tone()
+{
+ PLAY_NOTE_ARRAY(goodbye, false, 0);
+ _delay_ms(150);
+}
+
+#endif \ No newline at end of file
diff --git a/keyboards/preonic/keymaps/xyverz/makefile.mk b/keyboards/preonic/keymaps/xyverz/makefile.mk
new file mode 100644
index 000000000..628167ff6
--- /dev/null
+++ b/keyboards/preonic/keymaps/xyverz/makefile.mk
@@ -0,0 +1 @@
+AUDIO_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/preonic/preonic.c b/keyboards/preonic/preonic.c
index 889c3fc8f..d9c119b8d 100644
--- a/keyboards/preonic/preonic.c
+++ b/keyboards/preonic/preonic.c
@@ -1,5 +1,16 @@
#include "preonic.h"
+#ifdef ONEHAND_ENABLE
+__attribute__ ((weak))
+const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
+ {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
+ {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
+ {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
+ {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
+ {{11, 4}, {10, 4}, {9, 4}, {8, 4}, {7, 4}, {6, 4}, {5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}},
+};
+#endif
+
void matrix_init_kb(void) {
// Turn status LED on
diff --git a/keyboards/preonic/readme.md b/keyboards/preonic/readme.md
index f0be255a0..10763ee97 100644
--- a/keyboards/preonic/readme.md
+++ b/keyboards/preonic/readme.md
@@ -13,13 +13,15 @@ Download or clone the whole firmware and navigate to the keyboards/preonic folde
Depending on which keymap you would like to use, you will have to compile slightly differently.
### Default
-To build with the default keymap, simply run `make`.
+To build with the default keymap, simply run `make default`.
### Other Keymaps
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap, create a file in the keymaps folder named `<name>.c` and see keymap document (you can find in top readme.md) and existent keymap files.
-To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
```
-$ make KEYMAP=[default|jack|<name>]
+$ make [default|jack|<name>]
```
+
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboards/preonic/rules.mk b/keyboards/preonic/rules.mk
new file mode 100644
index 000000000..62473e356
--- /dev/null
+++ b/keyboards/preonic/rules.mk
@@ -0,0 +1,70 @@
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= no # Commands for debug and configuration
+NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
+MIDI_ENABLE ?= yes # MIDI controls
+AUDIO_ENABLE ?= yes # Audio output on port C6
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight.
+API_SYSEX_ENABLE ?= yes
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend \ No newline at end of file
diff --git a/keyboards/ps2avrGB/Makefile b/keyboards/ps2avrGB/Makefile
new file mode 100644
index 000000000..57b2ef62e
--- /dev/null
+++ b/keyboards/ps2avrGB/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif
diff --git a/keyboards/ps2avrGB/README.md b/keyboards/ps2avrGB/README.md
new file mode 100644
index 000000000..f8360aec0
--- /dev/null
+++ b/keyboards/ps2avrGB/README.md
@@ -0,0 +1,61 @@
+ps2avrGB keyboard firmware
+==========================
+
+This is a port of the QMK firmware for boards that are based on the
+ps2avrGB firmware, like the [ps2avrGB
+keyboard](https://www.keyclack.com/product/gb-ps2avrgb/) or the ones sold
+by [Winkeyless](http://winkeyless.kr/product/ps2avrgb-parts/).
+
+Note that this is a complete replacement for the firmware, so you won't be
+using Bootmapper Client to change any keyboard settings, since not all the
+USB report options are supported.
+
+## Supported Boards
+
+Only the [B.mini X2](http://winkeyless.kr/product/b-mini-x2-pcb/) has been
+tested so far (since it's the only one I own). But other boards that use
+the ps2avrGB firmware should work as well.
+
+## Installing
+
+First, install the requirements. These commands are for OSX, but all you
+need is the AVR toolchain and `bootloadHID` for flashing:
+
+```
+$ brew cask install crosspack-avr
+$ brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb
+```
+
+In order to use the `./program` script, which can reboot the board into
+the bootloader, you'll need Python 2 with PyUSB installed:
+
+```
+$ pip install pyusb
+```
+
+Then, with the keyboard plugged in, simply run this command from the
+`qmk_firmware` directory:
+
+```
+$ make ps2avrGB-program
+```
+
+If you prefer, you can just build it and flash the firmware directly with
+`bootloadHID` if you boot the board while holding down `L_Ctrl` to keep it
+in the bootloader:
+
+```
+$ make ps2avrGB
+$ bootloadHID -r ps2avrGB_default.hex
+```
+
+## Troubleshooting
+
+From my experience, it's really hard to brick these boards. But these
+tricks have been useful when it got stuck in a weird scenario.
+
+1. Try plugging the board in while pressing `L_Ctrl`. This will force it
+ to boot only the bootloader without loading the firmware. Once this is
+ done, just reflash the board with the original firmware.
+2. Sometimes USB hubs can act weird, so try connecting the board directly
+ to your computer or plugging/unplugging the USB hub.
diff --git a/keyboards/ps2avrGB/config.h b/keyboards/ps2avrGB/config.h
new file mode 100644
index 000000000..b5c696f3f
--- /dev/null
+++ b/keyboards/ps2avrGB/config.h
@@ -0,0 +1,38 @@
+/*
+Copyright 2017 Luiz Ribeiro <luizribeiro@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
+
+#define VENDOR_ID 0x20A0
+#define PRODUCT_ID 0x422D
+// TODO: share these strings with usbconfig.h
+// Edit usbconfig.h to change these.
+#define MANUFACTURER winkeyless.kr
+#define PRODUCT ps2avrGB
+
+/* matrix size */
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 15
+
+#define NO_UART 1
+#define BOOTLOADHID_BOOTLOADER 1
+
+/* key combination for command */
+#define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
+
+#endif
diff --git a/keyboards/ps2avrGB/keymaps/default/keymap.c b/keyboards/ps2avrGB/keymaps/default/keymap.c
new file mode 100644
index 000000000..5c66cde59
--- /dev/null
+++ b/keyboards/ps2avrGB/keymaps/default/keymap.c
@@ -0,0 +1,32 @@
+/*
+Copyright 2017 Luiz Ribeiro <luizribeiro@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/>.
+*/
+
+#include "ps2avrGB.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ KEYMAP( \
+ ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,HOME,END, \
+ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, DEL, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, INS, \
+ CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, PGUP,\
+ LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT, UP, PGDN,\
+ LCTL,LALT,LGUI, SPC, RGUI,RALT,RCTL,LEFT,DOWN,RGHT \
+ ),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+};
diff --git a/keyboards/ps2avrGB/matrix.c b/keyboards/ps2avrGB/matrix.c
new file mode 100644
index 000000000..beaa54c40
--- /dev/null
+++ b/keyboards/ps2avrGB/matrix.c
@@ -0,0 +1,104 @@
+/*
+Copyright 2017 Luiz Ribeiro <luizribeiro@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/>.
+*/
+
+#include <avr/io.h>
+#include <util/delay.h>
+
+#include "matrix.h"
+
+#ifndef DEBOUNCE
+# define DEBOUNCE 5
+#endif
+
+static uint8_t debouncing = DEBOUNCE;
+
+static matrix_row_t matrix[MATRIX_ROWS];
+static matrix_row_t matrix_debouncing[MATRIX_ROWS];
+
+void matrix_init(void) {
+ // all outputs for rows high
+ DDRB = 0xFF;
+ PORTB = 0xFF;
+ // all inputs for columns
+ DDRA = 0x00;
+ DDRC &= ~(0x111111<<2);
+ DDRD &= ~(1<<PIND7);
+ // all columns are pulled-up
+ PORTA = 0xFF;
+ PORTC |= (0b111111<<2);
+ PORTD |= (1<<PIND7);
+
+ // initialize matrix state: all keys off
+ for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
+ matrix[row] = 0x00;
+ matrix_debouncing[row] = 0x00;
+ }
+}
+
+void matrix_set_row_status(uint8_t row) {
+ DDRB = (1 << row);
+ PORTB = ~(1 << row);
+}
+
+uint8_t bit_reverse(uint8_t x) {
+ x = ((x >> 1) & 0x55) | ((x << 1) & 0xaa);
+ x = ((x >> 2) & 0x33) | ((x << 2) & 0xcc);
+ x = ((x >> 4) & 0x0f) | ((x << 4) & 0xf0);
+ return x;
+}
+
+uint8_t matrix_scan(void) {
+ for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
+ matrix_set_row_status(row);
+ _delay_us(5);
+
+ matrix_row_t cols = (
+ // cols 0..7, PORTA 0 -> 7
+ (~PINA) & 0xFF
+ ) | (
+ // cols 8..13, PORTC 7 -> 0
+ bit_reverse((~PINC) & 0xFF) << 8
+ ) | (
+ // col 14, PORTD 7
+ ((~PIND) & (1 << PIND7)) << 7
+ );
+
+ if (matrix_debouncing[row] != cols) {
+ matrix_debouncing[row] = cols;
+ debouncing = DEBOUNCE;
+ }
+ }
+
+ if (debouncing) {
+ if (--debouncing) {
+ _delay_ms(1);
+ } else {
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ matrix[i] = matrix_debouncing[i];
+ }
+ }
+ }
+
+ return 1;
+}
+
+inline matrix_row_t matrix_get_row(uint8_t row) {
+ return matrix[row];
+}
+
+void matrix_print(void) {
+}
diff --git a/keyboards/ps2avrGB/program b/keyboards/ps2avrGB/program
new file mode 100755
index 000000000..a88d9cd9b
--- /dev/null
+++ b/keyboards/ps2avrGB/program
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+# Copyright 2017 Luiz Ribeiro <luizribeiro@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/>.
+
+from __future__ import print_function
+
+import os
+import sys
+import time
+import usb
+
+if len(sys.argv) < 2:
+ print('Usage: %s <firmware.hex>' % sys.argv[0])
+ sys.exit(1)
+
+print('Searching for ps2avrGB... ', end='')
+
+dev = usb.core.find(idVendor=0x20A0, idProduct=0x422D)
+if dev is None:
+ raise ValueError('Device not found')
+
+print('Found', end='\n\n')
+
+print('Device Information:')
+print(' idVendor: %d (0x%04x)' % (dev.idVendor, dev.idVendor))
+print(' idProduct: %d (0x%04x)' % (dev.idProduct, dev.idProduct))
+print('Manufacturer: %s' % (dev.iManufacturer))
+print('Serial: %s' % (dev.iSerialNumber))
+print('Product: %s' % (dev.iProduct), end='\n\n')
+
+print('Transferring control to bootloader... ', end='')
+
+dev.set_configuration()
+
+request_type = usb.util.build_request_type(
+ usb.util.CTRL_OUT,
+ usb.util.CTRL_TYPE_CLASS,
+ usb.util.CTRL_RECIPIENT_DEVICE)
+
+USBRQ_HID_SET_REPORT = 0x09
+HID_REPORT_OPTION = 0x0301
+
+
+try:
+ dev.ctrl_transfer(
+ request_type,
+ USBRQ_HID_SET_REPORT,
+ HID_REPORT_OPTION,
+ 0,
+ [0, 0, 0xFF] + [0] * 5
+ )
+except usb.core.USBError:
+ # for some reason I keep getting USBError, but it works!
+ pass
+
+# wait a bit until bootloader starts up
+time.sleep(2)
+
+print('OK')
+print('Programming...')
+if os.system('bootloadHID -r "%s"' % sys.argv[1]) == 0:
+ print('\nDone!')
diff --git a/keyboards/ps2avrGB/ps2avrGB.c b/keyboards/ps2avrGB/ps2avrGB.c
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/keyboards/ps2avrGB/ps2avrGB.c
diff --git a/keyboards/ps2avrGB/ps2avrGB.h b/keyboards/ps2avrGB/ps2avrGB.h
new file mode 100644
index 000000000..6432e3be9
--- /dev/null
+++ b/keyboards/ps2avrGB/ps2avrGB.h
@@ -0,0 +1,43 @@
+/*
+Copyright 2017 Luiz Ribeiro <luizribeiro@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 KEYMAP_COMMON_H
+#define KEYMAP_COMMON_H
+
+#include "keycode.h"
+#include "action.h"
+
+#define KEYMAP( \
+ K05, K25, K35, K45, K55, K06, KA6, KA7, K07, KB5, KC5, KD5, KE5, KD1, KE1, KE2, \
+ K04, K14, K24, K34, K44, K54, K16, KB6, KB7, K17, KA4, KB4, KC4, KE4, KD0, \
+ K03, K13, K23, K33, K43, K53, K26, KC6, KC7, K27, KA3, KB3, KC3, KD3, K67, \
+ K02, K12, K22, K32, K42, K52, K36, KD6, KD7, K37, KA2, KB2, KD2, KE0, \
+ K01, K11, K21, K31, K41, K51, K46, KE6, KE7, K47, KA1, KB1, K86, K77, \
+ K00, K10, K20, K56, K57, KB0, KC0, K66, K76, K96 \
+) \
+{ \
+ { KC_##K00, KC_##K10, KC_##K20, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KB0, KC_##KC0, KC_##KD0, KC_##KE0 }, \
+ { KC_##K01, KC_##K11, KC_##K21, KC_##K31, KC_##K41, KC_##K51, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KA1, KC_##KB1, KC_NO, KC_##KD1, KC_##KE1 }, \
+ { KC_##K02, KC_##K12, KC_##K22, KC_##K32, KC_##K42, KC_##K52, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KA2, KC_##KB2, KC_NO, KC_##KD2, KC_##KE2 }, \
+ { KC_##K03, KC_##K13, KC_##K23, KC_##K33, KC_##K43, KC_##K53, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KA3, KC_##KB3, KC_##KC3, KC_##KD3, KC_NO }, \
+ { KC_##K04, KC_##K14, KC_##K24, KC_##K34, KC_##K44, KC_##K54, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KA4, KC_##KB4, KC_##KC4, KC_NO, KC_##KE4 }, \
+ { KC_##K05, KC_NO, KC_##K25, KC_##K35, KC_##K45, KC_##K55, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KB5, KC_##KC5, KC_##KD5, KC_##KE5 }, \
+ { KC_##K06, KC_##K16, KC_##K26, KC_##K36, KC_##K46, KC_##K56, KC_##K66, KC_##K76, KC_##K86, KC_##K96, KC_##KA6, KC_##KB6, KC_##KC6, KC_##KD6, KC_##KE6 }, \
+ { KC_##K07, KC_##K17, KC_##K27, KC_##K37, KC_##K47, KC_##K57, KC_##K67, KC_##K77, KC_NO, KC_NO, KC_##KA7, KC_##KB7, KC_##KC7, KC_##KD7, KC_##KE7 } \
+}
+
+#endif
diff --git a/keyboards/ps2avrGB/rules.mk b/keyboards/ps2avrGB/rules.mk
new file mode 100644
index 000000000..e2b5922ea
--- /dev/null
+++ b/keyboards/ps2avrGB/rules.mk
@@ -0,0 +1,43 @@
+# Copyright 2017 Luiz Ribeiro <luizribeiro@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/>.
+
+# MCU name
+MCU = atmega32a
+PROTOCOL = VUSB
+
+# unsupported features for now
+NO_UART = yes
+NO_SUSPEND_POWER_DOWN = yes
+BACKLIGHT_ENABLE = no
+
+# processor frequency
+F_CPU = 12000000
+
+# build options
+BOOTMAGIC_ENABLE = yes
+MOUSEKEY_ENABLE = yes
+EXTRAKEY_ENABLE = yes
+CONSOLE_ENABLE = yes
+COMMAND_ENABLE = yes
+
+OPT_DEFS = -DDEBUG_LEVEL=0
+OPT_DEFS += -DBOOTLOADER_SIZE=2048
+
+# custom matrix setup
+CUSTOM_MATRIX = yes
+SRC = matrix.c
+
+# programming options
+PROGRAM_CMD = ./keyboards/ps2avrGB/program $(TARGET).hex
diff --git a/keyboards/ps2avrGB/usbconfig.h b/keyboards/ps2avrGB/usbconfig.h
new file mode 100644
index 000000000..d2d848fcd
--- /dev/null
+++ b/keyboards/ps2avrGB/usbconfig.h
@@ -0,0 +1,396 @@
+/* Name: usbconfig.h
+ * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
+ * Author: Christian Starkjohann
+ * Creation Date: 2005-04-01
+ * Tabsize: 4
+ * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
+ * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
+ * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
+ */
+
+#ifndef __usbconfig_h_included__
+#define __usbconfig_h_included__
+
+#include "config.h"
+
+/*
+General Description:
+This file is an example configuration (with inline documentation) for the USB
+driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
+also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
+wire the lines to any other port, as long as D+ is also wired to INT0 (or any
+other hardware interrupt, as long as it is the highest level interrupt, see
+section at the end of this file).
+*/
+
+/* ---------------------------- Hardware Config ---------------------------- */
+
+#define USB_CFG_IOPORTNAME D
+/* This is the port where the USB bus is connected. When you configure it to
+ * "B", the registers PORTB, PINB and DDRB will be used.
+ */
+#define USB_CFG_DMINUS_BIT 3
+/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
+ * This may be any bit in the port.
+ */
+#define USB_CFG_DPLUS_BIT 2
+/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
+ * This may be any bit in the port. Please note that D+ must also be connected
+ * to interrupt pin INT0! [You can also use other interrupts, see section
+ * "Optional MCU Description" below, or you can connect D- to the interrupt, as
+ * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
+ * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
+ * markers every millisecond.]
+ */
+#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
+/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
+ * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
+ * require no crystal, they tolerate +/- 1% deviation from the nominal
+ * frequency. All other rates require a precision of 2000 ppm and thus a
+ * crystal!
+ * Since F_CPU should be defined to your actual clock rate anyway, you should
+ * not need to modify this setting.
+ */
+#define USB_CFG_CHECK_CRC 0
+/* Define this to 1 if you want that the driver checks integrity of incoming
+ * data packets (CRC checks). CRC checks cost quite a bit of code size and are
+ * currently only available for 18 MHz crystal clock. You must choose
+ * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
+ */
+
+/* ----------------------- Optional Hardware Config ------------------------ */
+
+/* #define USB_CFG_PULLUP_IOPORTNAME D */
+/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
+ * V+, you can connect and disconnect the device from firmware by calling
+ * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
+ * This constant defines the port on which the pullup resistor is connected.
+ */
+/* #define USB_CFG_PULLUP_BIT 4 */
+/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
+ * above) where the 1.5k pullup resistor is connected. See description
+ * above for details.
+ */
+
+/* --------------------------- Functional Range ---------------------------- */
+
+#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
+/* Define this to 1 if you want to compile a version with two endpoints: The
+ * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
+ * number).
+ */
+#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
+/* Define this to 1 if you want to compile a version with three endpoints: The
+ * default control endpoint 0, an interrupt-in endpoint 3 (or the number
+ * configured below) and a catch-all default interrupt-in endpoint as above.
+ * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
+ */
+#define USB_CFG_EP3_NUMBER 3
+/* If the so-called endpoint 3 is used, it can now be configured to any other
+ * endpoint number (except 0) with this macro. Default if undefined is 3.
+ */
+/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
+/* The above macro defines the startup condition for data toggling on the
+ * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
+ * Since the token is toggled BEFORE sending any data, the first packet is
+ * sent with the oposite value of this configuration!
+ */
+#define USB_CFG_IMPLEMENT_HALT 0
+/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
+ * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
+ * it is required by the standard. We have made it a config option because it
+ * bloats the code considerably.
+ */
+#define USB_CFG_SUPPRESS_INTR_CODE 0
+/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
+ * want to send any data over them. If this macro is defined to 1, functions
+ * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
+ * you need the interrupt-in endpoints in order to comply to an interface
+ * (e.g. HID), but never want to send any data. This option saves a couple
+ * of bytes in flash memory and the transmit buffers in RAM.
+ */
+#define USB_CFG_INTR_POLL_INTERVAL 1
+/* If you compile a version with endpoint 1 (interrupt-in), this is the poll
+ * interval. The value is in milliseconds and must not be less than 10 ms for
+ * low speed devices.
+ */
+#define USB_CFG_IS_SELF_POWERED 0
+/* Define this to 1 if the device has its own power supply. Set it to 0 if the
+ * device is powered from the USB bus.
+ */
+#define USB_CFG_MAX_BUS_POWER 500
+/* Set this variable to the maximum USB bus power consumption of your device.
+ * The value is in milliamperes. [It will be divided by two since USB
+ * communicates power requirements in units of 2 mA.]
+ */
+#define USB_CFG_IMPLEMENT_FN_WRITE 1
+/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
+ * transfers. Set it to 0 if you don't need it and want to save a couple of
+ * bytes.
+ */
+#define USB_CFG_IMPLEMENT_FN_READ 0
+/* Set this to 1 if you need to send control replies which are generated
+ * "on the fly" when usbFunctionRead() is called. If you only want to send
+ * data from a static buffer, set it to 0 and return the data from
+ * usbFunctionSetup(). This saves a couple of bytes.
+ */
+#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
+/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
+ * You must implement the function usbFunctionWriteOut() which receives all
+ * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
+ * can be found in 'usbRxToken'.
+ */
+#define USB_CFG_HAVE_FLOWCONTROL 0
+/* Define this to 1 if you want flowcontrol over USB data. See the definition
+ * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
+ * usbdrv.h.
+ */
+#define USB_CFG_DRIVER_FLASH_PAGE 0
+/* If the device has more than 64 kBytes of flash, define this to the 64 k page
+ * where the driver's constants (descriptors) are located. Or in other words:
+ * Define this to 1 for boot loaders on the ATMega128.
+ */
+#define USB_CFG_LONG_TRANSFERS 0
+/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
+ * in a single control-in or control-out transfer. Note that the capability
+ * for long transfers increases the driver size.
+ */
+/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
+/* This macro is a hook if you want to do unconventional things. If it is
+ * defined, it's inserted at the beginning of received message processing.
+ * If you eat the received message and don't want default processing to
+ * proceed, do a return after doing your things. One possible application
+ * (besides debugging) is to flash a status LED on each packet.
+ */
+/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
+/* This macro is a hook if you need to know when an USB RESET occurs. It has
+ * one parameter which distinguishes between the start of RESET state and its
+ * end.
+ */
+/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
+/* This macro (if defined) is executed when a USB SET_ADDRESS request was
+ * received.
+ */
+#define USB_COUNT_SOF 1
+/* define this macro to 1 if you need the global variable "usbSofCount" which
+ * counts SOF packets. This feature requires that the hardware interrupt is
+ * connected to D- instead of D+.
+ */
+/* #ifdef __ASSEMBLER__
+ * macro myAssemblerMacro
+ * in YL, TCNT0
+ * sts timer0Snapshot, YL
+ * endm
+ * #endif
+ * #define USB_SOF_HOOK myAssemblerMacro
+ * This macro (if defined) is executed in the assembler module when a
+ * Start Of Frame condition is detected. It is recommended to define it to
+ * the name of an assembler macro which is defined here as well so that more
+ * than one assembler instruction can be used. The macro may use the register
+ * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
+ * immediately after an SOF pulse may be lost and must be retried by the host.
+ * What can you do with this hook? Since the SOF signal occurs exactly every
+ * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
+ * designs running on the internal RC oscillator.
+ * Please note that Start Of Frame detection works only if D- is wired to the
+ * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
+ */
+#define USB_CFG_CHECK_DATA_TOGGLING 0
+/* define this macro to 1 if you want to filter out duplicate data packets
+ * sent by the host. Duplicates occur only as a consequence of communication
+ * errors, when the host does not receive an ACK. Please note that you need to
+ * implement the filtering yourself in usbFunctionWriteOut() and
+ * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
+ * for each control- and out-endpoint to check for duplicate packets.
+ */
+#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
+/* define this macro to 1 if you want the function usbMeasureFrameLength()
+ * compiled in. This function can be used to calibrate the AVR's RC oscillator.
+ */
+#define USB_USE_FAST_CRC 0
+/* The assembler module has two implementations for the CRC algorithm. One is
+ * faster, the other is smaller. This CRC routine is only used for transmitted
+ * messages where timing is not critical. The faster routine needs 31 cycles
+ * per byte while the smaller one needs 61 to 69 cycles. The faster routine
+ * may be worth the 32 bytes bigger code size if you transmit lots of data and
+ * run the AVR close to its limit.
+ */
+
+/* -------------------------- Device Description --------------------------- */
+
+#define USB_CFG_VENDOR_ID (VENDOR_ID & 0xFF), ((VENDOR_ID >> 8) & 0xFF)
+/* USB vendor ID for the device, low byte first. If you have registered your
+ * own Vendor ID, define it here. Otherwise you may use one of obdev's free
+ * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
+ * *** IMPORTANT NOTE ***
+ * This template uses obdev's shared VID/PID pair for Vendor Class devices
+ * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
+ * the implications!
+ */
+#define USB_CFG_DEVICE_ID (PRODUCT_ID & 0xFF), ((PRODUCT_ID >> 8) & 0xFF)
+/* This is the ID of the product, low byte first. It is interpreted in the
+ * scope of the vendor ID. If you have registered your own VID with usb.org
+ * or if you have licensed a PID from somebody else, define it here. Otherwise
+ * you may use one of obdev's free shared VID/PID pairs. See the file
+ * USB-IDs-for-free.txt for details!
+ * *** IMPORTANT NOTE ***
+ * This template uses obdev's shared VID/PID pair for Vendor Class devices
+ * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
+ * the implications!
+ */
+#define USB_CFG_DEVICE_VERSION 0x00, 0x02
+/* Version number of the device: Minor number first, then major number.
+ */
+#define USB_CFG_VENDOR_NAME 'w', 'i', 'n', 'k', 'e', 'y', 'l', 'e', 's', 's', '.', 'k', 'r'
+#define USB_CFG_VENDOR_NAME_LEN 13
+/* These two values define the vendor name returned by the USB device. The name
+ * must be given as a list of characters under single quotes. The characters
+ * are interpreted as Unicode (UTF-16) entities.
+ * If you don't want a vendor name string, undefine these macros.
+ * ALWAYS define a vendor name containing your Internet domain name if you use
+ * obdev's free shared VID/PID pair. See the file USB-IDs-for-free.txt for
+ * details.
+ */
+#define USB_CFG_DEVICE_NAME 'p', 's', '2', 'a', 'v', 'r', 'G', 'B'
+#define USB_CFG_DEVICE_NAME_LEN 8
+/* Same as above for the device name. If you don't want a device name, undefine
+ * the macros. See the file USB-IDs-for-free.txt before you assign a name if
+ * you use a shared VID/PID.
+ */
+/*#define USB_CFG_SERIAL_NUMBER 'N', 'o', 'n', 'e' */
+/*#define USB_CFG_SERIAL_NUMBER_LEN 0 */
+/* Same as above for the serial number. If you don't want a serial number,
+ * undefine the macros.
+ * It may be useful to provide the serial number through other means than at
+ * compile time. See the section about descriptor properties below for how
+ * to fine tune control over USB descriptors such as the string descriptor
+ * for the serial number.
+ */
+#define USB_CFG_DEVICE_CLASS 0
+#define USB_CFG_DEVICE_SUBCLASS 0
+/* See USB specification if you want to conform to an existing device class.
+ * Class 0xff is "vendor specific".
+ */
+#define USB_CFG_INTERFACE_CLASS 3 /* HID */
+#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
+#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
+/* See USB specification if you want to conform to an existing device class or
+ * protocol. The following classes must be set at interface level:
+ * HID class is 3, no subclass and protocol required (but may be useful!)
+ * CDC class is 2, use subclass 2 and protocol 1 for ACM
+ */
+#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
+/* Define this to the length of the HID report descriptor, if you implement
+ * an HID device. Otherwise don't define it or define it to 0.
+ * If you use this define, you must add a PROGMEM character array named
+ * "usbHidReportDescriptor" to your code which contains the report descriptor.
+ * Don't forget to keep the array and this define in sync!
+ */
+
+/* #define USB_PUBLIC static */
+/* Use the define above if you #include usbdrv.c instead of linking against it.
+ * This technique saves a couple of bytes in flash memory.
+ */
+
+/* ------------------- Fine Control over USB Descriptors ------------------- */
+/* If you don't want to use the driver's default USB descriptors, you can
+ * provide our own. These can be provided as (1) fixed length static data in
+ * flash memory, (2) fixed length static data in RAM or (3) dynamically at
+ * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
+ * information about this function.
+ * Descriptor handling is configured through the descriptor's properties. If
+ * no properties are defined or if they are 0, the default descriptor is used.
+ * Possible properties are:
+ * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
+ * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
+ * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
+ * you want RAM pointers.
+ * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
+ * in static memory is in RAM, not in flash memory.
+ * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
+ * the driver must know the descriptor's length. The descriptor itself is
+ * found at the address of a well known identifier (see below).
+ * List of static descriptor names (must be declared PROGMEM if in flash):
+ * char usbDescriptorDevice[];
+ * char usbDescriptorConfiguration[];
+ * char usbDescriptorHidReport[];
+ * char usbDescriptorString0[];
+ * int usbDescriptorStringVendor[];
+ * int usbDescriptorStringDevice[];
+ * int usbDescriptorStringSerialNumber[];
+ * Other descriptors can't be provided statically, they must be provided
+ * dynamically at runtime.
+ *
+ * Descriptor properties are or-ed or added together, e.g.:
+ * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
+ *
+ * The following descriptors are defined:
+ * USB_CFG_DESCR_PROPS_DEVICE
+ * USB_CFG_DESCR_PROPS_CONFIGURATION
+ * USB_CFG_DESCR_PROPS_STRINGS
+ * USB_CFG_DESCR_PROPS_STRING_0
+ * USB_CFG_DESCR_PROPS_STRING_VENDOR
+ * USB_CFG_DESCR_PROPS_STRING_PRODUCT
+ * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
+ * USB_CFG_DESCR_PROPS_HID
+ * USB_CFG_DESCR_PROPS_HID_REPORT
+ * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
+ *
+ * Note about string descriptors: String descriptors are not just strings, they
+ * are Unicode strings prefixed with a 2 byte header. Example:
+ * int serialNumberDescriptor[] = {
+ * USB_STRING_DESCRIPTOR_HEADER(6),
+ * 'S', 'e', 'r', 'i', 'a', 'l'
+ * };
+ */
+
+#define USB_CFG_DESCR_PROPS_DEVICE 0
+#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
+//#define USB_CFG_DESCR_PROPS_CONFIGURATION 0
+#define USB_CFG_DESCR_PROPS_STRINGS 0
+#define USB_CFG_DESCR_PROPS_STRING_0 0
+#define USB_CFG_DESCR_PROPS_STRING_VENDOR 0
+#define USB_CFG_DESCR_PROPS_STRING_PRODUCT 0
+#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER 0
+#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
+//#define USB_CFG_DESCR_PROPS_HID 0
+#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
+//#define USB_CFG_DESCR_PROPS_HID_REPORT 0
+#define USB_CFG_DESCR_PROPS_UNKNOWN 0
+
+#define usbMsgPtr_t unsigned short
+/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
+ * a scalar type here because gcc generates slightly shorter code for scalar
+ * arithmetics than for pointer arithmetics. Remove this define for backward
+ * type compatibility or define it to an 8 bit type if you use data in RAM only
+ * and all RAM is below 256 bytes (tiny memory model in IAR CC).
+ */
+
+/* ----------------------- Optional MCU Description ------------------------ */
+
+/* The following configurations have working defaults in usbdrv.h. You
+ * usually don't need to set them explicitly. Only if you want to run
+ * the driver on a device which is not yet supported or with a compiler
+ * which is not fully supported (such as IAR C) or if you use a differnt
+ * interrupt than INT0, you may have to define some of these.
+ */
+/* #define USB_INTR_CFG MCUCR */
+/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
+/* #define USB_INTR_CFG_CLR 0 */
+/* #define USB_INTR_ENABLE GIMSK */
+/* #define USB_INTR_ENABLE_BIT INT0 */
+/* #define USB_INTR_PENDING GIFR */
+/* #define USB_INTR_PENDING_BIT INTF0 */
+/* #define USB_INTR_VECTOR INT0_vect */
+
+/* Set INT1 for D- falling edge to count SOF */
+/* #define USB_INTR_CFG EICRA */
+#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
+/* #define USB_INTR_CFG_CLR 0 */
+/* #define USB_INTR_ENABLE EIMSK */
+#define USB_INTR_ENABLE_BIT INT1
+/* #define USB_INTR_PENDING EIFR */
+#define USB_INTR_PENDING_BIT INTF1
+#define USB_INTR_VECTOR INT1_vect
+
+#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/readme.md b/keyboards/readme.md
index e97986546..5b7b28207 100644
--- a/keyboards/readme.md
+++ b/keyboards/readme.md
@@ -9,37 +9,49 @@ These keyboards are manufactured by the maintainers of QMK.
What makes OLKB keyboards shine is a combo of lean aesthetics, compact size, and killer tactile feel. These are available through [olkb.com](http://olkb.com) as well as through [Massdrop](http://massdrop.com) from time to time, as easy to assemble kits.
-* [Planck](/keyboards/planck/) - A 40% DIY powerhouse of customizability and modification capability. It's a lean, mean, typing machine.
-* [Preonic](/keyboards/preonic/) - Like the Planck, but bigger. 50%.
-* [Atomic](/keyboards/atomic/) - Imagine the size of the Planck. Now imagine the size of the Preonic. Now imagine _bigger_. That is the Atomic. A 60% keyboard.
+* [Planck](/keyboards/planck/) &mdash; A 40% DIY powerhouse of customizability and modification capability. It's a lean, mean, typing machine.
+* [Preonic](/keyboards/preonic/) &mdash; Like the Planck, but bigger. 50%.
+* [Atomic](/keyboards/atomic/) &mdash; Imagine the size of the Planck. Now imagine the size of the Preonic. Now imagine _bigger_. That is the Atomic. A 60% keyboard.
### ErgoDox EZ - Erez Zukerman
Made in Taiwan using advanced robotic manufacturing, the ErgoDox EZ is a fully-assembled, premium ergonomic keyboard. Its split design allows you to place both halves shoulder width, and its custom-made wrist rests and tilt/tent kit make for incredibly comfortable typing. Available on [ergodox-ez.com](https://ergodox-ez.com).
-* [ErgoDox EZ](/keyboards/ergodox_ez/) - Our one and only product. Yes, it's that awesome. Comes with either printed or blank keycaps, and 7 different keyswitch types.
+* [ErgoDox EZ](/keyboards/ergodox/) &mdash; Our one and only product. Yes, it's that awesome. Comes with either printed or blank keycaps, and 7 different keyswitch types.
### Clueboard - Zach White
Designed and built in Felton, CA, Clueboards keyboard emphasize quality and locally sourced components, available on [clueboard.co](http://clueboard.co)
-* [Clueboard](/keyboards/clueboard/) - The 66% custom keyboard.
-* [Cluepad](/keyboards/cluepad/) - A mechanical numpad with QMK superpowers.
+* [Clueboard](/keyboards/clueboard/) &mdash; The 66% custom keyboard.
+* [Cluecard](/keyboards/cluecard/) &mdash; A small board to help you hack on QMK.
+* [Cluepad](/keyboards/cluepad/) &mdash; A mechanical numpad with QMK superpowers.
## Community-supported QMK Keyboards
These keyboards are part of the QMK repository, but their manufacturers are not official maintainers of the repository.
-* [alps64](/keyboards/alps64/) &mdash; A 60% keyboard for Alps keyswitches.
-* [arrow_pad](/keyboards/arrow_pad) &mdash; A custom creation by IBNobody.
-* [atreus](/keyboards/atreus) &mdash; Made by Technomancy.
-* [bantam44](/keyboards/bantam44) &mdash; It is a 44-key 40% staggered keyboard.
-* [gh60](/keyboards/gh60) &mdash; A 60% Geekhack community-driven project.
-* [hhkb](/keyboards/hhkb) &mdash; The Happy Hacking keyboard can be hacked with a custom controller to run QMK.
-* [jd45](/keyboards/jd45) &mdash; Another Geekhack community project, designed by jdcarpe.
-* [kc60](/keyboards/kc60) &mdash; A programmable Chinese-made keyboard, lost in the mists of time.
-* [phantom](/keyboards/phantom) &mdash; A tenkeyless kit by Teel, also from Geekhack.
-* [retro_refit](/keyboards/retro_refit) &mdash; Another creation by IBNobody.
-* [satan](/keyboards/satan) &mdash; A GH60 variant.
-* [sixkeyboard](/keyboards/sixkeyboard) &mdash; A 6-key keyboard made by TechKeys.
+* [Alps64](/keyboards/alps64) &mdash; A 60% keyboard for Alps keyswitches.
+* [AMJ60](/keyboards/amj60) &mdash; DIY/Assembled compact 60% keyboard.
+* [Arrow Pad](/keyboards/arrow_pad) &mdash; A custom creation by IBNobody.
+* [Atreus](/keyboards/atreus) &mdash; Made by Technomancy.
+* [Bantam44](/keyboards/bantam44) &mdash; It is a 44-key 40% staggered keyboard.
+* [Ergodox Infinity](/keyboards/ergodox) - Ergonomic Split Keyboard by Input Club.
+* [GH60](/keyboards/gh60) &mdash; A 60% Geekhack community-driven project.
+* [GON NerD](/keyboards/gonnerd) &mdash; Korean custom 60% PCB
+* [Happy Hacking Keyboard](/keyboards/hhkb) &mdash; The Happy Hacking keyboard can be hacked with a custom controller to run QMK.
+* [Infinity 60%](/keyboards/infinity60) - &mdash; Compact community keyboard by Input Club.
+* [JD45](/keyboards/jd45) &mdash; Another Geekhack community project, designed by jdcarpe.
+* [KC60](/keyboards/kc60) &mdash; A programmable Chinese-made keyboard, lost in the mists of time.
+* [Kinesis Advantage](/keyboards/kinesis) &mdash; Contoured ergonomic keyboard by Kinesis Computer Ergonomics.
+* [The Kitten Paw](/keyboards/kitten_paw) &mdash; A replacement controller (2016 revision) for the Filco Majestouch by [Bathroom Epiphanies](https://github.com/BathroomEpiphanies).
+* [Lets Split](/keyboards/lets_split) - Split ortholinear 40% keyboard.
+* [Phantom](/keyboards/phantom) &mdash; A tenkeyless kit by Teel, also from Geekhack.
+* [Retro Refit](/keyboards/retro_refit) &mdash; Another creation by IBNobody.
+* [S60-x](/keyboards/s60-x) &mdash; DIY compact keyboard designed by VinnyCordeiro for Sentraq.
+* [Satan](/keyboards/satan) &mdash; A GH60 variant.
+* [SixKeyBoard](/keyboards/sixkeyboard) &mdash; A 6-key keyboard made by TechKeys.
+* [TheVan 44](/keyboards/tv44) &mdash; A 44-key staggered keybard by Evangs.
+* [WhiteFox](/keyboards/whitefox) &mdash; A 65% keyboard designed as a partnership by matt3o, Massdrop and Input Club
+* [Vision Division](/keyboards/vision_division) &mdash; Full Size / Split Linear Keyboard by IBNobody.
diff --git a/keyboards/s60-x/Makefile b/keyboards/s60-x/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/s60-x/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/s60-x/config.h b/keyboards/s60-x/config.h
new file mode 100644
index 000000000..ac7951c24
--- /dev/null
+++ b/keyboards/s60-x/config.h
@@ -0,0 +1,164 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2016 Julien Pecqueur <julien@peclu.net>
+Copyright 2016 Felix Uhl <ifreilicht@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 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Massdrop
+#define PRODUCT S60-X
+#define DESCRIPTION q.m.k. keyboard firmware for S60-X
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { B7, B3, B2, B1, B0 }
+#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, E6, F1 }
+#define UNUSED_PINS { F0 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+#define NO_ACTION_ONESHOT
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/Makefile b/keyboards/s60-x/keymaps/ansi_qwertz/Makefile
new file mode 100644
index 000000000..6a078bcc3
--- /dev/null
+++ b/keyboards/s60-x/keymaps/ansi_qwertz/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = yes # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/config.h b/keyboards/s60-x/keymaps/ansi_qwertz/config.h
new file mode 100644
index 000000000..6c01d579f
--- /dev/null
+++ b/keyboards/s60-x/keymaps/ansi_qwertz/config.h
@@ -0,0 +1,14 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// keymap needs oneshot functionality
+#undef NO_ACTION_ONESHOT
+
+#undef IS_COMMAND
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+#endif \ No newline at end of file
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png
new file mode 100644
index 000000000..168780c82
--- /dev/null
+++ b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png
Binary files differ
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg
new file mode 100644
index 000000000..f03858993
--- /dev/null
+++ b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg
@@ -0,0 +1,1046 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="900"
+ height="300"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.91 r13725"
+ version="1.0"
+ sodipodi:docname="KB_US-International-Alternative.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lend"
+ style="overflow:visible;">
+ <path
+ id="path5387"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.8) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ id="path5390"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Tail"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Tail"
+ style="overflow:visible">
+ <g
+ id="g5342"
+ transform="scale(-1.2)">
+ <path
+ id="path5344"
+ d="M -3.8048674,-3.9585227 L 0.54352094,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5346"
+ d="M -1.2866832,-3.9585227 L 3.0617053,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5348"
+ d="M 1.3053582,-3.9585227 L 5.6537466,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5350"
+ d="M -3.8048674,4.1775838 L 0.54352094,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5352"
+ d="M -1.2866832,4.1775838 L 3.0617053,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5354"
+ d="M 1.3053582,4.1775838 L 5.6537466,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ </g>
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Mend"
+ style="overflow:visible;">
+ <path
+ id="path5363"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(0.6) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lend"
+ style="overflow:visible;">
+ <path
+ id="path5369"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Send"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Send"
+ style="overflow:visible;">
+ <path
+ id="path5375"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.2) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Send"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Send"
+ style="overflow:visible;">
+ <path
+ id="path5357"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(0.3) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Mend"
+ style="overflow:visible;">
+ <path
+ id="path5381"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.4) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lstart"
+ style="overflow:visible">
+ <path
+ id="path5372"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) translate(-5,0)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4142136"
+ inkscape:cx="435.66801"
+ inkscape:cy="291.15819"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:grid-points="true"
+ showgrid="true"
+ gridtolerance="15px"
+ showborder="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1017"
+ inkscape:window-x="1912"
+ inkscape:window-y="-8"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:grid-bbox="true"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="7.5px"
+ spacingy="7.5px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.12156863"
+ empopacity="0.25098039"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,0 L 60,0 L 60,60 L 0,60 L 0,0 z "
+ id="rect2186" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 60,0 L 120,0 L 120,60 L 60,60 L 60,0 z "
+ id="rect2218" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 120,0 L 180,0 L 180,60 L 120,60 L 120,0 z "
+ id="rect2222" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 180,0 L 240,0 L 240,60 L 180,60 L 180,0 z "
+ id="rect2228" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 240,0 L 300,0 L 300,60 L 240,60 L 240,0 z "
+ id="rect2230" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 300,0 L 360,0 L 360,60 L 300,60 L 300,0 z "
+ id="rect2232" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 360,0 L 420,0 L 420,60 L 360,60 L 360,0 z "
+ id="rect2234" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 420,0 L 480,0 L 480,60 L 420,60 L 420,0 z "
+ id="rect2236" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 480,0 L 540,0 L 540,60 L 480,60 L 480,0 z "
+ id="rect2238" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 540,0 L 600,0 L 600,60 L 540,60 L 540,0 z "
+ id="rect2240" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 600,0 L 660,0 L 660,60 L 600,60 L 600,0 z "
+ id="rect2242" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 660,0 L 720,0 L 720,60 L 660,60 L 660,0 z "
+ id="rect2244" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 720,0 L 780,0 L 780,60 L 720,60 L 720,0 z "
+ id="rect2246" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 780,0 L 900,0 L 900,60 L 780,60 L 780,0 z "
+ id="rect2248" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,60 L 90,60 L 90,120 L 0,120 L 0,60 z "
+ id="rect2250" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 90,60 L 150,60 L 150,120 L 90,120 L 90,60 z "
+ id="rect2252" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 150,60 L 210,60 L 210,120 L 150,120 L 150,60 z "
+ id="rect2254" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 210,60 L 270,60 L 270,120 L 210,120 L 210,60 z "
+ id="rect2256" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 270,60 L 330,60 L 330,120 L 270,120 L 270,60 z "
+ id="rect2258" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 330,60 L 390,60 L 390,120 L 330,120 L 330,60 z "
+ id="rect2262" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 390,60 L 450,60 L 450,120 L 390,120 L 390,60 z "
+ id="rect2264" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 450,60 L 510,60 L 510,120 L 450,120 L 450,60 z "
+ id="rect2266" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 510,60 L 570,60 L 570,120 L 510,120 L 510,60 z "
+ id="rect2270" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 570,60 L 630,60 L 630,120 L 570,120 L 570,60 z "
+ id="rect2272" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 630,60 L 690,60 L 690,120 L 630,120 L 630,60 z "
+ id="rect2274" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 690,60 L 750,60 L 750,120 L 690,120 L 690,60 z "
+ id="rect2278" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 750,60 L 810,60 L 810,120 L 750,120 L 750,60 z "
+ id="rect2280" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 810,60 L 900,60 L 900,120 L 810,120 L 810,60 z "
+ id="rect2284" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,120 L 105,120 L 105,180 L 0,180 L 0,120 z "
+ id="rect2286" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 105,120 L 165,120 L 165,180 L 105,180 L 105,120 z "
+ id="rect2292" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 165,120 L 225,120 L 225,180 L 165,180 L 165,120 z "
+ id="rect2296" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 225,120 L 285,120 L 285,180 L 225,180 L 225,120 z "
+ id="rect2298" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 285,120 L 345,120 L 345,180 L 285,180 L 285,120 z "
+ id="rect2300" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 345,120 L 405,120 L 405,180 L 345,180 L 345,120 z "
+ id="rect2302" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 405,120 L 465,120 L 465,180 L 405,180 L 405,120 z "
+ id="rect2306" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 465,120 L 525,120 L 525,180 L 465,180 L 465,120 z "
+ id="rect2308" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 525,120 L 585,120 L 585,180 L 525,180 L 525,120 z "
+ id="rect2312" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 585,120 L 645,120 L 645,180 L 585,180 L 585,120 z "
+ id="rect2314" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 645,120 L 705,120 L 705,180 L 645,180 L 645,120 z "
+ id="rect2316" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 705,120 L 765,120 L 765,180 L 705,180 L 705,120 z "
+ id="rect2318" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 765,120 L 900,120 L 900,180 L 765,180 L 765,120 z "
+ id="rect2320" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,180 L 135,180 L 135,240 L 0,240 L 0,180 z "
+ id="rect2322" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 135,180 L 195,180 L 195,240 L 135,240 L 135,180 z "
+ id="rect2324" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 195,180 L 255,180 L 255,240 L 195,240 L 195,180 z "
+ id="rect2326" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 255,180 L 315,180 L 315,240 L 255,240 L 255,180 z "
+ id="rect2330" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 315,180 L 375,180 L 375,240 L 315,240 L 315,180 z "
+ id="rect2334" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 375,180 L 435,180 L 435,240 L 375,240 L 375,180 z "
+ id="rect2336" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 435,180 L 495,180 L 495,240 L 435,240 L 435,180 z "
+ id="rect2338" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 495,180 L 555,180 L 555,240 L 495,240 L 495,180 z "
+ id="rect2340" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 555,180 L 615,180 L 615,240 L 555,240 L 555,180 z "
+ id="rect2342" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 615,180 L 675,180 L 675,240 L 615,240 L 615,180 z "
+ id="rect2344" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 675,180 L 735,180 L 735,240 L 675,240 L 675,180 z "
+ id="rect2346" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 735,180 L 900,180 L 900,240 L 735,240 L 735,180 z "
+ id="rect2348" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,240 L 90,240 L 90,300 L 0,300 L 0,240 z "
+ id="rect2350" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 810,240 L 900,240 L 900,300 L 810,300 L 810,240 z "
+ id="rect2352" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 150,240 L 240,240 L 240,300 L 150,300 L 150,240 z "
+ id="rect2354" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 600,240 L 690,240 L 690,300 L 600,300 L 600,240 z "
+ id="rect2360" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 240,240 L 600,240 L 600,300 L 240,300 L 240,240 z "
+ id="rect2362" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 90,240 L 150,240 L 150,300 L 90,300 L 90,240 z "
+ id="rect2364" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 690,240 L 750,240 L 750,300 L 690,300 L 690,240 z "
+ id="rect2366" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 750,240 L 810,240 L 810,300 L 750,300 L 750,240 z "
+ id="rect2368" />
+ <path
+ style=""
+ d=""
+ id="flowRoot4146" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 75.351563,18.826172 L 74.4375,11.056641 L 74.4375,6.3691406 L 78.046875,6.3691406 L 78.046875,11.056641 L 77.132813,18.826172 L 75.351563,18.826172 M 74.484375,23.630859 L 74.484375,20.173828 L 77.964844,20.173828 L 77.964844,23.630859 L 74.484375,23.630859 M 75.351563,53.630859 L 75.351563,42.158203 L 71.34375,42.158203 L 71.34375,39.802734 L 71.601563,39.802734 C 73.062496,39.802748 74.124995,39.576186 74.789063,39.123047 C 75.460931,38.669937 75.855462,37.912125 75.972656,36.849609 L 78.65625,36.849609 L 78.65625,53.630859 L 75.351563,53.630859"
+ id="text5091" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 23.34375,14.220703 L 23.34375,16.810547 C 22.531233,17.365241 21.761702,17.775396 21.035156,18.041016 C 20.316391,18.298833 19.605455,18.42774 18.902344,18.427734 C 18.542956,18.42774 18.183581,18.39649 17.824219,18.333984 C 17.464832,18.27149 17.105457,18.181646 16.746094,18.064453 C 16.558583,18.001959 16.281239,17.904303 15.914063,17.771484 C 14.203116,17.185553 12.902336,16.892585 12.011719,16.892578 C 11.34765,16.892585 10.652339,17.041022 9.9257813,17.337891 C 9.2070275,17.626959 8.3984345,18.091802 7.5,18.732422 L 7.5,16.142578 C 8.3359346,15.580086 9.1328088,15.162118 9.890625,14.888672 C 10.648432,14.607431 11.363275,14.466806 12.035156,14.466797 C 12.949211,14.466806 14.085929,14.693368 15.445313,15.146484 C 15.46874,15.154305 15.484365,15.158212 15.492188,15.158203 C 15.632802,15.205087 15.847646,15.279305 16.136719,15.380859 C 17.347644,15.810555 18.285143,16.025398 18.949219,16.025391 C 19.613267,16.025398 20.29686,15.880867 21,15.591797 C 21.703109,15.302743 22.484358,14.845712 23.34375,14.220703 M 11.988281,35.033203 L 15.011719,35.033203 L 17.320313,39.369141 L 15.65625,39.369141 L 11.988281,35.033203"
+ id="text5103" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 136.47578,20.443359 C 136.04608,21.099612 135.54999,21.583986 134.9875,21.896484 C 134.42499,22.201173 133.76093,22.353517 132.99532,22.353516 C 131.76093,22.353517 130.81953,22.01758 130.1711,21.345703 C 129.53047,20.673831 129.21015,19.681645 129.21016,18.369141 C 129.21015,16.50196 129.75312,14.935556 130.83907,13.669922 C 131.93281,12.404308 133.27656,11.771496 134.87032,11.771484 C 135.4953,11.771496 136.03827,11.900402 136.49922,12.158203 C 136.96015,12.416027 137.33905,12.798839 137.63594,13.306641 L 138.25703,12.158203 L 140.34297,12.158203 L 138.62032,19.166016 C 138.59686,19.251958 138.57733,19.341801 138.56172,19.435547 C 138.54608,19.521488 138.53827,19.591801 138.53828,19.646484 C 138.53827,19.919926 138.63202,20.126957 138.81953,20.267578 C 139.00702,20.400394 139.28436,20.4668 139.65157,20.466797 C 139.95624,20.4668 140.27264,20.388675 140.60078,20.232422 C 140.9367,20.076175 141.2492,19.857426 141.53828,19.576172 C 142.21014,18.951177 142.71795,18.220709 143.06172,17.384766 C 143.41326,16.548835 143.58904,15.630867 143.58907,14.630859 C 143.58904,12.75587 142.86248,11.216809 141.40938,10.013672 C 139.96405,8.8027492 138.09686,8.1972811 135.80782,8.1972656 C 134.70624,8.1972811 133.6789,8.3300934 132.72578,8.5957031 C 131.78046,8.8613429 130.92109,9.2558737 130.14766,9.7792969 C 128.81953,10.669935 127.79609,11.783215 127.07735,13.119141 C 126.36641,14.455087 126.01094,15.91993 126.01094,17.513672 C 126.01094,19.912113 126.81953,21.83008 128.43672,23.267578 C 130.0539,24.697265 132.21406,25.412108 134.91719,25.412109 C 136.1828,25.412108 137.41718,25.220702 138.62032,24.837891 C 139.83124,24.455077 140.95623,23.90039 141.99532,23.173828 L 142.95625,24.544922 C 141.76092,25.443358 140.49139,26.119138 139.14766,26.572266 C 137.81171,27.025387 136.41718,27.25195 134.96407,27.251953 C 133.46405,27.25195 132.08515,27.060543 130.82735,26.677734 C 129.56953,26.302732 128.45234,25.744139 127.47578,25.001953 C 126.26484,24.05664 125.35859,22.966798 124.75703,21.732422 C 124.15547,20.49805 123.85469,19.099614 123.85469,17.537109 C 123.85469,16.232429 124.05781,14.990243 124.46407,13.810547 C 124.87813,12.623058 125.48359,11.544934 126.28047,10.576172 C 127.43672,9.1621238 128.82734,8.0918124 130.45235,7.3652344 C 132.07734,6.6386889 133.88593,6.275408 135.87813,6.2753906 C 137.19843,6.275408 138.43671,6.4550953 139.59297,6.8144531 C 140.75702,7.1660321 141.76873,7.6660316 142.62813,8.3144531 C 143.68279,9.1347801 144.46795,10.072279 144.9836,11.126953 C 145.50701,12.17384 145.76873,13.357432 145.76875,14.677734 C 145.76873,15.966805 145.51092,17.15821 144.99532,18.251953 C 144.48748,19.337895 143.75311,20.267581 142.79219,21.041016 C 142.2453,21.478518 141.64764,21.814455 140.99922,22.048828 C 140.35858,22.275392 139.69061,22.388673 138.99532,22.388672 C 138.16718,22.388673 137.54218,22.224611 137.12032,21.896484 C 136.70624,21.568361 136.4914,21.083987 136.47578,20.443359 M 137.06172,15.427734 C 136.96015,14.794931 136.73358,14.314462 136.38203,13.986328 C 136.03827,13.650401 135.58124,13.482432 135.01094,13.482422 C 134.1203,13.482432 133.34687,13.966807 132.69063,14.935547 C 132.03437,15.904305 131.70624,17.068366 131.70625,18.427734 C 131.70624,19.146489 131.86249,19.693363 132.175,20.068359 C 132.49531,20.443363 132.95624,20.630862 133.55782,20.630859 C 134.20624,20.630862 134.79608,20.384769 135.32735,19.892578 C 135.8664,19.400395 136.23358,18.75977 136.42891,17.970703 L 137.06172,15.427734 M 128.56563,53.630859 C 128.58125,52.130861 128.90156,50.861331 129.52657,49.822266 C 130.15156,48.775395 131.26094,47.716803 132.85469,46.646484 C 133.09687,46.482429 133.44844,46.255867 133.90938,45.966797 C 136.01875,44.615243 137.07343,43.314463 137.07344,42.064453 C 137.07343,41.322278 136.85078,40.736341 136.40547,40.306641 C 135.96015,39.876967 135.35078,39.662123 134.57735,39.662109 C 133.73359,39.662123 133.08125,39.927748 132.62032,40.458984 C 132.16719,40.982435 131.94062,41.732434 131.94063,42.708984 L 131.94063,42.849609 L 128.84688,42.849609 C 128.84688,40.927747 129.3625,39.44728 130.39375,38.408203 C 131.425,37.369157 132.89375,36.849626 134.8,36.849609 C 136.52656,36.849626 137.90546,37.322282 138.93672,38.267578 C 139.96796,39.205093 140.48358,40.455091 140.4836,42.017578 C 140.48358,43.134776 140.21405,44.103525 139.675,44.923828 C 139.13593,45.744149 138.09296,46.677741 136.5461,47.724609 C 136.21796,47.951178 135.76484,48.248052 135.18672,48.615234 C 133.71797,49.560551 132.88984,50.2793 132.70235,50.771484 L 140.31953,50.771484 L 140.31953,53.630859 L 128.56563,53.630859"
+ id="text5127" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 195.28125,13.693359 L 194.25,16.552734 L 197.19141,16.552734 L 198.19922,13.693359 L 195.28125,13.693359 M 195.28125,6.4746094 L 197.87109,6.4746094 L 196.16016,11.337891 L 198.99609,11.337891 L 200.73047,6.4746094 L 203.32031,6.4746094 L 201.58594,11.337891 L 204.90234,11.337891 L 204.03516,13.693359 L 200.75391,13.693359 L 199.76953,16.529297 L 203.16797,16.529297 L 202.33594,18.873047 L 198.92578,18.873047 L 197.19141,23.748047 L 194.60156,23.748047 L 196.33594,18.873047 L 193.47656,18.873047 L 191.73047,23.748047 L 189.15234,23.748047 L 190.86328,18.873047 L 187.5,18.873047 L 188.39063,16.529297 L 191.69531,16.529297 L 192.70313,13.693359 L 189.19922,13.693359 L 190.06641,11.337891 L 193.54688,11.337891 L 195.28125,6.4746094 M 190.07813,48.521484 L 193.30078,48.521484 C 193.30859,49.458989 193.53515,50.166019 193.98047,50.642578 C 194.42578,51.111331 195.08593,51.345705 195.96094,51.345703 C 196.80468,51.345705 197.45312,51.126956 197.90625,50.689453 C 198.36718,50.244144 198.59765,49.607426 198.59766,48.779297 C 198.59765,47.951178 198.32812,47.326178 197.78906,46.904297 C 197.2578,46.474617 196.46484,46.259773 195.41016,46.259766 C 195.35546,46.259773 195.26953,46.263679 195.15234,46.271484 C 195.04296,46.279304 194.96093,46.28321 194.90625,46.283203 L 194.90625,43.962891 L 195.26953,43.962891 C 196.23827,43.9629 196.95312,43.7754 197.41406,43.400391 C 197.8828,43.017589 198.11718,42.435558 198.11719,41.654297 C 198.11718,41.005872 197.91796,40.494154 197.51953,40.119141 C 197.1289,39.736342 196.59374,39.544936 195.91406,39.544922 C 195.17187,39.544936 194.59765,39.763686 194.19141,40.201172 C 193.78515,40.638685 193.58203,41.259778 193.58203,42.064453 L 193.58203,42.205078 L 190.41797,42.205078 C 190.45703,40.486341 190.96094,39.169936 191.92969,38.255859 C 192.90625,37.334001 194.28125,36.873064 196.05469,36.873047 C 197.73437,36.873064 199.0664,37.283219 200.05078,38.103516 C 201.03514,38.923843 201.52733,40.02931 201.52734,41.419922 C 201.52733,42.154308 201.35936,42.798839 201.02344,43.353516 C 200.68749,43.908213 200.18358,44.365244 199.51172,44.724609 C 200.37108,45.099618 201.01952,45.619149 201.45703,46.283203 C 201.90233,46.93946 202.12499,47.724615 202.125,48.638672 C 202.12499,50.318363 201.57421,51.650393 200.47266,52.634766 C 199.37108,53.619141 197.86718,54.111328 195.96094,54.111328 C 194.07812,54.111328 192.625,53.634766 191.60156,52.681641 C 190.58594,51.720705 190.07812,50.357425 190.07813,48.591797 L 190.07813,48.521484"
+ id="text5139" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 254.46094,21.451172 C 255.10155,21.365237 255.58984,21.134768 255.92578,20.759766 C 256.26171,20.384769 256.42968,19.884769 256.42969,19.259766 C 256.42968,18.705083 256.26952,18.248052 255.94922,17.888672 C 255.63671,17.52149 255.14062,17.236335 254.46094,17.033203 L 254.46094,21.451172 M 253.06641,13.435547 L 253.06641,9.4511719 C 252.45703,9.529311 251.99218,9.7402483 251.67188,10.083984 C 251.35156,10.419935 251.1914,10.87306 251.19141,11.443359 C 251.1914,11.919934 251.33984,12.318371 251.63672,12.638672 C 251.9414,12.958995 252.41796,13.22462 253.06641,13.435547 M 253.06641,26.267578 L 253.06641,24.017578 C 251.30078,23.908203 249.98047,23.396485 249.10547,22.482422 C 248.23047,21.568361 247.79297,20.24805 247.79297,18.521484 L 250.93359,18.521484 C 250.97265,19.365239 251.16796,20.033207 251.51953,20.525391 C 251.8789,21.009768 252.39453,21.318362 253.06641,21.451172 L 253.06641,16.599609 C 251.2539,16.138679 249.96484,15.537117 249.19922,14.794922 C 248.43359,14.052744 248.05078,13.03712 248.05078,11.748047 C 248.05078,10.318373 248.5039,9.1660301 249.41016,8.2910156 C 250.32422,7.4160318 251.54296,6.959001 253.06641,6.9199219 L 253.06641,5.4199219 L 254.46094,5.4199219 L 254.46094,6.9199219 C 255.98437,6.9980635 257.17186,7.4590005 258.02344,8.3027344 C 258.87499,9.1386864 259.34374,10.318373 259.42969,11.841797 L 256.24219,11.841797 C 256.18749,11.115247 256.01171,10.56056 255.71484,10.177734 C 255.42577,9.7871232 255.0078,9.5683734 254.46094,9.5214844 L 254.46094,13.787109 C 256.39062,14.388681 257.74999,15.07618 258.53906,15.849609 C 259.32811,16.623054 259.72264,17.642584 259.72266,18.908203 C 259.72264,20.400394 259.26171,21.591799 258.33984,22.482422 C 257.42577,23.373047 256.1328,23.892578 254.46094,24.041016 L 254.46094,26.267578 L 253.06641,26.267578 M 254.64844,47.419922 L 254.64844,40.236328 L 250.08984,47.419922 L 254.64844,47.419922 M 254.57813,53.630859 L 254.57813,50.009766 L 247.5,50.009766 L 247.5,47.056641 L 253.6875,37.330078 L 257.84766,37.330078 L 257.84766,47.337891 L 259.79297,47.337891 L 259.79297,50.009766 L 257.84766,50.009766 L 257.84766,53.630859 L 254.57813,53.630859"
+ id="text5145" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 320.42578,19.740234 C 320.42577,20.263675 320.60155,20.705081 320.95313,21.064453 C 321.30467,21.416018 321.73827,21.591799 322.25391,21.591797 C 322.75389,21.591799 323.18358,21.412112 323.54297,21.052734 C 323.90233,20.68555 324.08201,20.24805 324.08203,19.740234 C 324.08201,19.240239 323.90233,18.814458 323.54297,18.462891 C 323.19139,18.103521 322.7617,17.923834 322.25391,17.923828 C 321.73827,17.923834 321.30467,18.099615 320.95313,18.451172 C 320.60155,18.794927 320.42577,19.224614 320.42578,19.740234 M 317.88281,19.740234 C 317.8828,18.521489 318.30468,17.494147 319.14844,16.658203 C 319.99217,15.822273 321.02733,15.404305 322.25391,15.404297 C 323.45701,15.404305 324.48045,15.830086 325.32422,16.681641 C 326.17576,17.525397 326.60154,18.544927 326.60156,19.740234 C 326.60154,20.943362 326.17576,21.974611 325.32422,22.833984 C 324.47264,23.685547 323.4492,24.111328 322.25391,24.111328 C 321.02733,24.111328 319.99217,23.689453 319.14844,22.845703 C 318.30468,22.001955 317.8828,20.9668 317.88281,19.740234 M 311.07422,24.111328 L 321.08203,6.8496094 L 322.96875,6.8496094 L 312.96094,24.111328 L 311.07422,24.111328 M 310.04297,11.220703 C 310.04297,11.73634 310.21484,12.169933 310.55859,12.521484 C 310.91015,12.873058 311.34375,13.048839 311.85938,13.048828 C 312.36718,13.048839 312.79687,12.873058 313.14844,12.521484 C 313.50781,12.162121 313.68749,11.728528 313.6875,11.220703 C 313.68749,10.720716 313.50781,10.294935 313.14844,9.9433594 C 312.79687,9.5839984 312.36718,9.4043111 311.85938,9.4042969 C 311.34375,9.4043111 310.91015,9.5800922 310.55859,9.9316406 C 310.21484,10.275404 310.04297,10.705091 310.04297,11.220703 M 307.5,11.220703 C 307.5,10.001967 307.92187,8.9707178 308.76563,8.1269531 C 309.60937,7.275407 310.64062,6.8496262 311.85938,6.8496094 C 313.06249,6.8496262 314.08593,7.2793132 314.92969,8.1386719 C 315.78124,8.990249 316.20702,10.017592 316.20703,11.220703 C 316.20702,12.423839 315.78124,13.451182 314.92969,14.302734 C 314.08593,15.146493 313.06249,15.568367 311.85938,15.568359 C 310.63281,15.568367 309.59765,15.150399 308.75391,14.314453 C 307.91797,13.478526 307.5,12.447277 307.5,11.220703 M 310.85156,49.119141 L 314.13281,49.119141 C 314.1875,49.853519 314.43359,50.423831 314.87109,50.830078 C 315.30859,51.228518 315.89453,51.427737 316.62891,51.427734 C 317.53515,51.427737 318.22655,51.162112 318.70313,50.630859 C 319.18749,50.099613 319.42968,49.337895 319.42969,48.345703 C 319.42968,47.416022 319.18358,46.685554 318.69141,46.154297 C 318.19921,45.615242 317.51952,45.345711 316.65234,45.345703 C 316.16796,45.345711 315.74218,45.443368 315.375,45.638672 C 315.00781,45.833992 314.69531,46.123054 314.4375,46.505859 L 311.41406,46.330078 L 312.50391,37.330078 L 322.14844,37.330078 L 322.14844,40.166016 L 314.87109,40.166016 L 314.4375,43.529297 C 314.80468,43.240245 315.22656,43.025401 315.70313,42.884766 C 316.17968,42.736339 316.71093,42.66212 317.29688,42.662109 C 318.96874,42.66212 320.3164,43.169932 321.33984,44.185547 C 322.37108,45.20118 322.88671,46.53321 322.88672,48.181641 C 322.88671,49.986332 322.3203,51.427737 321.1875,52.505859 C 320.05468,53.576172 318.53515,54.111328 316.62891,54.111328 C 314.89453,54.111328 313.51172,53.669922 312.48047,52.787109 C 311.45703,51.896486 310.91406,50.673831 310.85156,49.119141"
+ id="text5151" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 372.15234,48.298828 C 372.15234,49.25977 372.39062,50.021488 372.86719,50.583984 C 373.35156,51.146487 374.00781,51.427737 374.83594,51.427734 C 375.60937,51.427737 376.21484,51.154299 376.65234,50.607422 C 377.08983,50.06055 377.30858,49.298832 377.30859,48.322266 C 377.30858,47.423834 377.08202,46.724616 376.62891,46.224609 C 376.17577,45.724617 375.53905,45.474618 374.71875,45.474609 C 373.91406,45.474618 373.28515,45.724617 372.83203,46.224609 C 372.3789,46.724616 372.15234,47.416022 372.15234,48.298828 M 372.10547,43.916016 C 372.48828,43.525401 372.94921,43.232432 373.48828,43.037109 C 374.02734,42.833995 374.6289,42.732433 375.29297,42.732422 C 376.93358,42.732433 378.24608,43.232432 379.23047,44.232422 C 380.22264,45.23243 380.71874,46.56446 380.71875,48.228516 C 380.71874,49.994144 380.17968,51.419924 379.10156,52.505859 C 378.02343,53.591797 376.60155,54.134765 374.83594,54.134766 C 372.79687,54.134765 371.24609,53.431641 370.18359,52.025391 C 369.1289,50.619144 368.60156,48.560552 368.60156,45.849609 C 368.60156,42.935558 369.16797,40.708997 370.30078,39.169922 C 371.43359,37.623063 373.0664,36.849626 375.19922,36.849609 C 376.68358,36.849626 377.8789,37.236345 378.78516,38.009766 C 379.69921,38.783218 380.19921,39.830092 380.28516,41.150391 L 376.88672,41.150391 C 376.80858,40.611341 376.59765,40.205092 376.25391,39.931641 C 375.91015,39.658217 375.42968,39.521498 374.8125,39.521484 C 373.96874,39.521498 373.32031,39.888686 372.86719,40.623047 C 372.41406,41.349622 372.16015,42.447277 372.10547,43.916016"
+ id="text5157" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 432.85547,16.095703 L 431.96484,16.740234 C 431.60546,16.990241 431.33593,17.291022 431.15625,17.642578 C 430.97656,17.994146 430.88671,18.388677 430.88672,18.826172 C 430.88671,19.490239 431.11328,20.048832 431.56641,20.501953 C 432.01953,20.955081 432.58593,21.181643 433.26563,21.181641 C 433.76562,21.181643 434.24218,21.080081 434.69531,20.876953 C 435.15624,20.666019 435.58202,20.361331 435.97266,19.962891 L 432.85547,16.095703 M 433.79297,12.404297 L 434.20313,12.111328 C 434.57812,11.853527 434.85546,11.564465 435.03516,11.244141 C 435.21483,10.923841 435.30468,10.556654 435.30469,10.142578 C 435.30468,9.7441545 435.17968,9.4277486 434.92969,9.1933594 C 434.68749,8.958999 434.35546,8.8418117 433.93359,8.8417969 C 433.5039,8.8418117 433.16406,8.9629053 432.91406,9.2050781 C 432.66406,9.4394673 432.53906,9.7597795 432.53906,10.166016 C 432.53906,10.384779 432.59765,10.62306 432.71484,10.880859 C 432.83984,11.138684 433.01562,11.412122 433.24219,11.701172 L 433.79297,12.404297 M 431.15625,13.962891 L 430.47656,13.072266 C 430.125,12.603527 429.87109,12.166027 429.71484,11.759766 C 429.5664,11.345715 429.49218,10.912122 429.49219,10.458984 C 429.49218,9.2089988 429.89062,8.2168123 430.6875,7.4824219 C 431.49218,6.7402513 432.58203,6.3691579 433.95703,6.3691406 C 435.27733,6.3691579 436.3203,6.7090013 437.08594,7.3886719 C 437.85155,8.0683749 438.23436,8.9863428 438.23438,10.142578 C 438.23436,11.017591 438.0078,11.802746 437.55469,12.498047 C 437.10936,13.185557 436.40624,13.833994 435.44531,14.443359 L 437.91797,17.490234 C 438.15233,17.107428 438.33593,16.677741 438.46875,16.201172 C 438.60936,15.724617 438.70702,15.193368 438.76172,14.607422 L 441.80859,14.607422 C 441.72264,15.623055 441.5117,16.56446 441.17578,17.431641 C 440.83983,18.298833 440.37889,19.091801 439.79297,19.810547 L 442.93359,23.630859 L 438.94922,23.630859 L 437.77734,22.189453 C 437.08983,22.822266 436.33202,23.302735 435.50391,23.630859 C 434.68359,23.951172 433.82421,24.111328 432.92578,24.111328 C 431.33203,24.111328 430.02734,23.638672 429.01172,22.693359 C 428.0039,21.748049 427.5,20.541019 427.5,19.072266 C 427.5,17.978521 427.78125,17.037116 428.34375,16.248047 C 428.90625,15.458993 429.84375,14.697275 431.15625,13.962891 M 434.66016,53.630859 L 431.15625,53.630859 C 431.28125,51.341799 431.83203,49.07227 432.80859,46.822266 C 433.79296,44.572275 435.19531,42.361339 437.01563,40.189453 L 428.76563,40.189453 L 428.76563,37.330078 L 440.66016,37.330078 L 440.66016,39.849609 C 438.8164,41.880871 437.39843,44.029306 436.40625,46.294922 C 435.42187,48.560552 434.83984,51.005862 434.66016,53.630859"
+ id="text5163" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 493.5,13.212891 L 491.4375,16.119141 L 489.44531,14.724609 L 491.69531,11.900391 L 488.41406,10.986328 L 489.17578,8.6074219 L 492.32813,9.7324219 L 492.32813,6.3691406 L 494.64844,6.3691406 L 494.64844,9.7324219 L 497.80078,8.6308594 L 498.58594,11.009766 L 495.30469,11.900391 L 497.53125,14.701172 L 495.49219,16.166016 L 493.5,13.212891 M 490.875,48.755859 C 490.875,49.576176 491.10156,50.208988 491.55469,50.654297 C 492.01562,51.099612 492.67187,51.322268 493.52344,51.322266 C 494.33593,51.322268 494.97265,51.095706 495.43359,50.642578 C 495.90233,50.189457 496.13671,49.560551 496.13672,48.755859 C 496.13671,47.982428 495.89843,47.361334 495.42188,46.892578 C 494.9453,46.423835 494.31249,46.189461 493.52344,46.189453 C 492.73437,46.189461 492.09374,46.427742 491.60156,46.904297 C 491.11718,47.380866 490.875,47.998053 490.875,48.755859 M 491.14453,41.560547 C 491.14453,42.208996 491.34765,42.708995 491.75391,43.060547 C 492.16015,43.404307 492.74218,43.576182 493.5,43.576172 C 494.2578,43.576182 494.83984,43.400401 495.24609,43.048828 C 495.66015,42.697277 495.86718,42.201183 495.86719,41.560547 C 495.86718,40.93556 495.65624,40.443373 495.23438,40.083984 C 494.81249,39.724623 494.23437,39.544936 493.5,39.544922 C 492.78124,39.544936 492.20703,39.72853 491.77734,40.095703 C 491.35546,40.462904 491.14453,40.951185 491.14453,41.560547 M 489.9375,44.818359 C 489.23437,44.427744 488.72656,43.970713 488.41406,43.447266 C 488.10156,42.923839 487.94531,42.255871 487.94531,41.443359 C 487.94531,40.005873 488.4375,38.876968 489.42188,38.056641 C 490.40625,37.236345 491.76562,36.826189 493.5,36.826172 C 495.24999,36.826189 496.61718,37.236345 497.60156,38.056641 C 498.59374,38.869155 499.08983,39.998061 499.08984,41.443359 C 499.08983,42.216808 498.92186,42.888683 498.58594,43.458984 C 498.24999,44.021494 497.74608,44.474619 497.07422,44.818359 C 497.89452,45.20118 498.51171,45.73243 498.92578,46.412109 C 499.33983,47.083991 499.54686,47.904303 499.54688,48.873047 C 499.54686,50.505862 499.0078,51.787111 497.92969,52.716797 C 496.85936,53.646484 495.3828,54.111328 493.5,54.111328 C 491.59375,54.111328 490.11328,53.650391 489.05859,52.728516 C 488.0039,51.806642 487.47656,50.521487 487.47656,48.873047 C 487.47656,47.912115 487.67187,47.107428 488.0625,46.458984 C 488.46094,45.802742 489.08594,45.255868 489.9375,44.818359"
+ id="text5169" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 557.85938,6.3691406 C 556.78124,8.1347811 555.98046,9.9316543 555.45703,11.759766 C 554.93359,13.587901 554.67187,15.505868 554.67188,17.513672 C 554.67187,19.513676 554.93359,21.427737 555.45703,23.255859 C 555.98046,25.083983 556.78124,26.880856 557.85938,28.646484 L 555.38672,28.646484 C 554.01953,26.779294 552.98046,24.904296 552.26953,23.021484 C 551.5664,21.130862 551.21484,19.294926 551.21484,17.513672 C 551.21484,15.73243 551.5664,13.896494 552.26953,12.005859 C 552.98046,10.115248 554.01953,8.2363435 555.38672,6.3691406 L 557.85938,6.3691406 M 556.06641,42.685547 C 556.0664,41.724621 555.82421,40.96681 555.33984,40.412109 C 554.86327,39.849623 554.21093,39.568373 553.38281,39.568359 C 552.60156,39.568373 551.99218,39.837904 551.55469,40.376953 C 551.125,40.916028 550.91015,41.669934 550.91016,42.638672 C 550.91015,43.544932 551.13671,44.251963 551.58984,44.759766 C 552.04296,45.267586 552.67968,45.521492 553.5,45.521484 C 554.30468,45.521492 554.93359,45.271493 555.38672,44.771484 C 555.83983,44.271494 556.0664,43.576182 556.06641,42.685547 M 556.125,47.056641 C 555.73437,47.447272 555.27343,47.74024 554.74219,47.935547 C 554.21093,48.130865 553.61327,48.228521 552.94922,48.228516 C 551.30078,48.228521 549.98047,47.732428 548.98828,46.740234 C 547.99609,45.748055 547.5,44.419931 547.5,42.755859 C 547.5,40.990247 548.03906,39.564467 549.11719,38.478516 C 550.19531,37.392594 551.61718,36.849626 553.38281,36.849609 C 555.42968,36.849626 556.98436,37.556657 558.04688,38.970703 C 559.11718,40.376966 559.65233,42.431652 559.65234,45.134766 C 559.65233,48.041021 559.08202,50.267581 557.94141,51.814453 C 556.80077,53.361328 555.16015,54.134765 553.01953,54.134766 C 551.54296,54.134765 550.35156,53.751953 549.44531,52.986328 C 548.53906,52.212892 548.04297,51.162112 547.95703,49.833984 L 551.34375,49.845703 C 551.42187,50.384769 551.63281,50.787112 551.97656,51.052734 C 552.32031,51.318362 552.80468,51.451174 553.42969,51.451172 C 554.27343,51.451174 554.91796,51.083987 555.36328,50.349609 C 555.80858,49.615238 556.06249,48.517583 556.125,47.056641"
+ id="text5175" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 609.375,6.3691406 L 611.87109,6.3691406 C 613.23046,8.228531 614.26171,10.103529 614.96484,11.994141 C 615.66796,13.876963 616.01952,15.716805 616.01953,17.513672 C 616.01952,19.302739 615.66796,21.142581 614.96484,23.033203 C 614.26171,24.923827 613.23046,26.794919 611.87109,28.646484 L 609.375,28.646484 C 610.46094,26.873044 611.26562,25.072264 611.78906,23.244141 C 612.32031,21.408205 612.58593,19.498051 612.58594,17.513672 C 612.58593,15.521492 612.32031,13.611338 611.78906,11.783203 C 611.26562,9.9550918 610.46094,8.1504061 609.375,6.3691406 M 610.98047,45.474609 C 610.98046,47.513678 611.18359,48.994145 611.58984,49.916016 C 612.0039,50.837893 612.66015,51.29883 613.55859,51.298828 C 614.45702,51.29883 615.11327,50.833987 615.52734,49.904297 C 615.9414,48.974614 616.14843,47.498053 616.14844,45.474609 C 616.14843,43.44337 615.9414,41.966809 615.52734,41.044922 C 615.11327,40.12306 614.45702,39.662123 613.55859,39.662109 C 612.66015,39.662123 612.0039,40.12306 611.58984,41.044922 C 611.18359,41.958996 610.98046,43.435557 610.98047,45.474609 M 607.5,45.474609 C 607.5,42.591808 608,40.43556 609,39.005859 C 610.00781,37.568375 611.52734,36.849626 613.55859,36.849609 C 615.58202,36.849626 617.09765,37.572282 618.10547,39.017578 C 619.12108,40.455091 619.62889,42.615245 619.62891,45.498047 C 619.62889,48.380865 619.12499,50.533206 618.11719,51.955078 C 617.11718,53.376953 615.59765,54.08789 613.55859,54.087891 C 611.52734,54.08789 610.00781,53.373047 609,51.943359 C 608,50.513675 607.5,48.357427 607.5,45.474609"
+ id="text5181" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 667.5,26.900391 L 679.5,26.900391 L 679.5,29.291016 L 667.5,29.291016 L 667.5,26.900391 M 670.20703,48.849609 L 670.20703,45.638672 L 676.79297,45.638672 L 676.79297,48.849609 L 670.20703,48.849609"
+ id="text5187" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 733.33594,9.3222656 L 735.70313,9.3222656 L 735.70313,15.298828 L 741.53906,15.298828 L 741.53906,17.630859 L 735.70313,17.630859 L 735.70313,23.630859 L 733.33594,23.630859 L 733.33594,17.630859 L 727.5,17.630859 L 727.5,15.298828 L 733.33594,15.298828 L 733.33594,9.3222656 M 727.5,47.818359 L 741.53906,47.818359 L 741.53906,50.150391 L 727.5,50.150391 L 727.5,47.818359 M 727.5,42.779297 L 741.53906,42.779297 L 741.53906,45.111328 L 727.5,45.111328 L 727.5,42.779297"
+ id="text5201" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 11.070313,95.601563 L 11.070313,86.148438 L 7.65625,86.148438 L 7.65625,84.09375 L 16.828125,84.09375 L 16.828125,86.148438 L 13.4375,86.148438 L 13.4375,95.601563 L 11.070313,95.601563 M 22.859375,94.546875 C 22.572911,94.989584 22.197911,95.328125 21.734375,95.5625 C 21.270829,95.791666 20.731767,95.90625 20.117188,95.90625 C 19.294269,95.90625 18.658853,95.671875 18.210938,95.203125 C 17.768228,94.734376 17.546874,94.06771 17.546875,93.203125 C 17.546874,92.401045 17.768228,91.789066 18.210938,91.367188 C 18.658853,90.945317 19.395831,90.656255 20.421875,90.5 C 20.656246,90.463547 20.963538,90.42188 21.34375,90.375 C 22.307286,90.250005 22.789057,89.97136 22.789063,89.539063 C 22.789057,89.195319 22.682286,88.950527 22.46875,88.804688 C 22.255203,88.653653 21.898433,88.578132 21.398438,88.578125 C 20.9401,88.578132 20.588538,88.669278 20.34375,88.851563 C 20.098955,89.033861 19.97656,89.294277 19.976563,89.632813 L 19.976563,89.757813 L 17.851563,89.757813 L 17.851563,89.601563 C 17.851562,88.731778 18.158853,88.049487 18.773438,87.554688 C 19.388018,87.054696 20.236976,86.804696 21.320313,86.804688 C 22.507807,86.804696 23.41666,87.010425 24.046875,87.421875 C 24.682284,87.833341 24.999992,88.427091 25,89.203125 L 25,94.03125 C 24.999992,94.385418 25.03645,94.651043 25.109375,94.828125 C 25.182283,95.000001 25.304679,95.130209 25.476563,95.21875 L 25.476563,95.601563 L 23.109375,95.601563 C 23.031244,95.455729 22.971348,95.294271 22.929688,95.117188 C 22.888015,94.940105 22.864577,94.750001 22.859375,94.546875 M 22.820313,91.421875 C 22.450515,91.593754 22.023432,91.731775 21.539063,91.835938 C 21.059892,91.940108 20.812496,91.994795 20.796875,92 C 20.39583,92.114587 20.11458,92.257816 19.953125,92.429688 C 19.796872,92.601566 19.718747,92.838544 19.71875,93.140625 C 19.718747,93.453127 19.82031,93.703127 20.023438,93.890625 C 20.226559,94.072918 20.499997,94.164064 20.84375,94.164063 C 21.458329,94.164064 21.940099,93.992189 22.289063,93.648438 C 22.643224,93.299481 22.820307,92.825524 22.820313,92.226563 L 22.820313,91.421875 M 27.039063,84.09375 L 29.25,84.09375 L 29.25,88.164063 C 29.531246,87.721362 29.882809,87.388029 30.304688,87.164063 C 30.731766,86.934905 31.216141,86.820321 31.757813,86.820313 C 32.783847,86.820321 33.622388,87.2448 34.273438,88.09375 C 34.92447,88.937507 35.249991,90.036464 35.25,91.390625 C 35.249991,92.734378 34.92447,93.820314 34.273438,94.648438 C 33.622388,95.476563 32.773431,95.890625 31.726563,95.890625 C 31.179682,95.890625 30.70312,95.776041 30.296875,95.546875 C 29.895829,95.317709 29.531246,94.953126 29.203125,94.453125 L 29.203125,95.601563 L 27.039063,95.601563 L 27.039063,84.09375 M 32.992188,91.296875 C 32.992181,90.51563 32.828118,89.903652 32.5,89.460938 C 32.171869,89.013027 31.721348,88.789069 31.148438,88.789063 C 30.544266,88.789069 30.075517,89.007819 29.742188,89.445313 C 29.414059,89.87761 29.249997,90.494797 29.25,91.296875 C 29.249997,92.161462 29.406247,92.817711 29.71875,93.265625 C 30.036454,93.713544 30.497391,93.937502 31.101563,93.9375 C 31.71614,93.937502 32.18489,93.713544 32.507813,93.265625 C 32.830722,92.812503 32.992181,92.156253 32.992188,91.296875"
+ id="text5427" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 789.76563,44.369141 L 792.57031,44.369141 C 793.23176,44.369143 793.71353,44.249351 794.01563,44.009766 C 794.3177,43.770185 794.46874,43.392581 794.46875,42.876953 C 794.46874,42.340499 794.3203,41.955083 794.02344,41.720703 C 793.72656,41.481125 793.23697,41.361333 792.55469,41.361328 L 789.76563,41.361328 L 789.76563,44.369141 M 789.76563,39.392578 L 792.46875,39.392578 C 793.05208,39.392585 793.47916,39.293627 793.75,39.095703 C 794.02083,38.892586 794.15624,38.574878 794.15625,38.142578 C 794.15624,37.720712 794.02343,37.416025 793.75781,37.228516 C 793.49739,37.035817 793.06249,36.939463 792.45313,36.939453 L 789.76563,36.939453 L 789.76563,39.392578 M 787.5,46.447266 L 787.5,34.939453 L 792.92188,34.939453 C 794.09895,34.939465 794.99478,35.189464 795.60938,35.689453 C 796.22916,36.184255 796.53905,36.905609 796.53906,37.853516 C 796.53905,38.436857 796.42447,38.923836 796.19531,39.314453 C 795.96614,39.705085 795.62239,40.007168 795.16406,40.220703 C 795.7578,40.460292 796.20051,40.806646 796.49219,41.259766 C 796.78905,41.707687 796.93749,42.267582 796.9375,42.939453 C 796.93749,44.059247 796.57291,44.92383 795.84375,45.533203 C 795.11457,46.142578 794.08072,46.447266 792.74219,46.447266 L 787.5,46.447266 M 803.45313,45.392578 C 803.16666,45.835287 802.79166,46.173828 802.32813,46.408203 C 801.86458,46.63737 801.32552,46.751953 800.71094,46.751953 C 799.88802,46.751953 799.2526,46.517578 798.80469,46.048828 C 798.36198,45.580079 798.14062,44.913413 798.14063,44.048828 C 798.14062,43.246748 798.36198,42.634769 798.80469,42.212891 C 799.2526,41.79102 799.98958,41.501958 801.01563,41.345703 C 801.25,41.30925 801.55729,41.267583 801.9375,41.220703 C 802.90104,41.095708 803.38281,40.817063 803.38281,40.384766 C 803.38281,40.041022 803.27604,39.796231 803.0625,39.650391 C 802.84895,39.499356 802.49218,39.423835 801.99219,39.423828 C 801.53385,39.423835 801.18229,39.514981 800.9375,39.697266 C 800.69271,39.879564 800.57031,40.13998 800.57031,40.478516 L 800.57031,40.603516 L 798.44531,40.603516 L 798.44531,40.447266 C 798.44531,39.577481 798.7526,38.89519 799.36719,38.400391 C 799.98177,37.900399 800.83073,37.650399 801.91406,37.650391 C 803.10156,37.650399 804.01041,37.856128 804.64063,38.267578 C 805.27603,38.679044 805.59374,39.272794 805.59375,40.048828 L 805.59375,44.876953 C 805.59374,45.231121 805.6302,45.496746 805.70313,45.673828 C 805.77603,45.845704 805.89843,45.975912 806.07031,46.064453 L 806.07031,46.447266 L 803.70313,46.447266 C 803.62499,46.301432 803.5651,46.139974 803.52344,45.962891 C 803.48176,45.785808 803.45833,45.595704 803.45313,45.392578 M 803.41406,42.267578 C 803.04427,42.439457 802.61718,42.577478 802.13281,42.681641 C 801.65364,42.785811 801.40625,42.840498 801.39063,42.845703 C 800.98958,42.96029 800.70833,43.103519 800.54688,43.275391 C 800.39062,43.447269 800.3125,43.684248 800.3125,43.986328 C 800.3125,44.29883 800.41406,44.54883 800.61719,44.736328 C 800.82031,44.918621 801.09375,45.009767 801.4375,45.009766 C 802.05208,45.009767 802.53385,44.837892 802.88281,44.494141 C 803.23697,44.145185 803.41406,43.671227 803.41406,43.072266 L 803.41406,42.267578 M 812.71875,43.244141 L 814.96094,43.244141 C 814.86718,44.322268 814.47395,45.173829 813.78125,45.798828 C 813.08854,46.423828 812.19791,46.736328 811.10938,46.736328 C 809.875,46.736328 808.90625,46.335287 808.20313,45.533203 C 807.50521,44.725913 807.15625,43.611331 807.15625,42.189453 C 807.15625,40.772792 807.51302,39.663418 808.22656,38.861328 C 808.94531,38.054045 809.93229,37.650399 811.1875,37.650391 C 812.28645,37.650399 813.16666,37.942066 813.82813,38.525391 C 814.49478,39.108731 814.86718,39.92123 814.94531,40.962891 L 812.6875,40.962891 C 812.62499,40.509772 812.46614,40.163418 812.21094,39.923828 C 811.95572,39.684252 811.61979,39.56446 811.20313,39.564453 C 810.64062,39.56446 810.21875,39.785814 809.9375,40.228516 C 809.66146,40.67123 809.52343,41.335292 809.52344,42.220703 C 809.52343,43.038415 809.66666,43.668623 809.95313,44.111328 C 810.24479,44.54883 810.66145,44.76758 811.20313,44.767578 C 811.62499,44.76758 811.96354,44.639976 812.21875,44.384766 C 812.47395,44.12956 812.64062,43.749352 812.71875,43.244141 M 816.44531,46.447266 L 816.44531,34.939453 L 818.65625,34.939453 L 818.65625,40.978516 L 821.35938,37.955078 L 824.09375,37.955078 L 821.13281,41.103516 L 824.27344,46.447266 L 821.54688,46.447266 L 819.51563,42.830078 L 818.65625,43.759766 L 818.65625,46.447266 L 816.44531,46.447266 M 824.79688,43.681641 L 827.0625,43.681641 C 827.08333,44.113935 827.23958,44.436851 827.53125,44.650391 C 827.82291,44.858726 828.26041,44.962892 828.84375,44.962891 C 829.28645,44.962892 829.6276,44.889976 829.86719,44.744141 C 830.11197,44.593101 830.23437,44.382164 830.23438,44.111328 C 830.23437,43.725914 829.78124,43.436852 828.875,43.244141 C 828.5052,43.166019 828.21093,43.098311 827.99219,43.041016 C 826.88802,42.759769 826.11979,42.426436 825.6875,42.041016 C 825.26042,41.655604 825.04687,41.134771 825.04688,40.478516 C 825.04687,39.608731 825.35937,38.921231 825.98438,38.416016 C 826.61458,37.905608 827.46614,37.650399 828.53906,37.650391 C 829.67447,37.650399 830.5651,37.903003 831.21094,38.408203 C 831.86197,38.913419 832.20833,39.624356 832.25,40.541016 L 830.03906,40.541016 C 830.02343,40.181647 829.88541,39.903001 829.625,39.705078 C 829.36979,39.507168 829.01302,39.40821 828.55469,39.408203 C 828.12239,39.40821 827.79948,39.473314 827.58594,39.603516 C 827.3776,39.733731 827.27343,39.929043 827.27344,40.189453 C 827.27343,40.528001 827.83854,40.82748 828.96875,41.087891 C 829.22916,41.145188 829.43489,41.192063 829.58594,41.228516 C 830.71614,41.494146 831.48697,41.814458 831.89844,42.189453 C 832.3151,42.564457 832.52343,43.093102 832.52344,43.775391 C 832.52343,44.738934 832.18228,45.473308 831.5,45.978516 C 830.82291,46.483724 829.83593,46.736328 828.53906,46.736328 C 827.36718,46.736328 826.45052,46.473307 825.78906,45.947266 C 825.1276,45.421225 824.79687,44.697267 824.79688,43.775391 L 824.79688,43.681641 M 840.02344,42.251953 C 840.02343,41.397792 839.86197,40.74675 839.53906,40.298828 C 839.21614,39.84571 838.74739,39.619147 838.13281,39.619141 C 837.52864,39.619147 837.0677,39.843106 836.75,40.291016 C 836.4375,40.738938 836.28125,41.392583 836.28125,42.251953 C 836.28125,43.05404 836.44531,43.673831 836.77344,44.111328 C 837.10677,44.54883 837.57552,44.76758 838.17969,44.767578 C 838.7526,44.76758 839.20312,44.543622 839.53125,44.095703 C 839.85937,43.647789 840.02343,43.033207 840.02344,42.251953 M 834.07031,49.853516 L 834.07031,37.955078 L 836.23438,37.955078 L 836.23438,39.103516 C 836.5625,38.603523 836.92708,38.23894 837.32813,38.009766 C 837.73437,37.780608 838.21093,37.666024 838.75781,37.666016 C 839.80468,37.666024 840.65364,38.080086 841.30469,38.908203 C 841.95572,39.731127 842.28124,40.814459 842.28125,42.158203 C 842.28124,43.517581 841.95572,44.621747 841.30469,45.470703 C 840.65364,46.314453 839.8151,46.736328 838.78906,46.736328 C 838.24739,46.736328 837.76302,46.621745 837.33594,46.392578 C 836.91406,46.163412 836.5625,45.830079 836.28125,45.392578 L 836.28125,49.853516 L 834.07031,49.853516 M 848.70313,45.392578 C 848.41666,45.835287 848.04166,46.173828 847.57813,46.408203 C 847.11458,46.63737 846.57552,46.751953 845.96094,46.751953 C 845.13802,46.751953 844.5026,46.517578 844.05469,46.048828 C 843.61198,45.580079 843.39062,44.913413 843.39063,44.048828 C 843.39062,43.246748 843.61198,42.634769 844.05469,42.212891 C 844.5026,41.79102 845.23958,41.501958 846.26563,41.345703 C 846.5,41.30925 846.80729,41.267583 847.1875,41.220703 C 848.15104,41.095708 848.63281,40.817063 848.63281,40.384766 C 848.63281,40.041022 848.52604,39.796231 848.3125,39.650391 C 848.09895,39.499356 847.74218,39.423835 847.24219,39.423828 C 846.78385,39.423835 846.43229,39.514981 846.1875,39.697266 C 845.94271,39.879564 845.82031,40.13998 845.82031,40.478516 L 845.82031,40.603516 L 843.69531,40.603516 L 843.69531,40.447266 C 843.69531,39.577481 844.0026,38.89519 844.61719,38.400391 C 845.23177,37.900399 846.08073,37.650399 847.16406,37.650391 C 848.35156,37.650399 849.26041,37.856128 849.89063,38.267578 C 850.52603,38.679044 850.84374,39.272794 850.84375,40.048828 L 850.84375,44.876953 C 850.84374,45.231121 850.8802,45.496746 850.95313,45.673828 C 851.02603,45.845704 851.14843,45.975912 851.32031,46.064453 L 851.32031,46.447266 L 848.95313,46.447266 C 848.87499,46.301432 848.8151,46.139974 848.77344,45.962891 C 848.73176,45.785808 848.70833,45.595704 848.70313,45.392578 M 848.66406,42.267578 C 848.29427,42.439457 847.86718,42.577478 847.38281,42.681641 C 846.90364,42.785811 846.65625,42.840498 846.64063,42.845703 C 846.23958,42.96029 845.95833,43.103519 845.79688,43.275391 C 845.64062,43.447269 845.5625,43.684248 845.5625,43.986328 C 845.5625,44.29883 845.66406,44.54883 845.86719,44.736328 C 846.07031,44.918621 846.34375,45.009767 846.6875,45.009766 C 847.30208,45.009767 847.78385,44.837892 848.13281,44.494141 C 848.48697,44.145185 848.66406,43.671227 848.66406,43.072266 L 848.66406,42.267578 M 857.96875,43.244141 L 860.21094,43.244141 C 860.11718,44.322268 859.72395,45.173829 859.03125,45.798828 C 858.33854,46.423828 857.44791,46.736328 856.35938,46.736328 C 855.125,46.736328 854.15625,46.335287 853.45313,45.533203 C 852.75521,44.725913 852.40625,43.611331 852.40625,42.189453 C 852.40625,40.772792 852.76302,39.663418 853.47656,38.861328 C 854.19531,38.054045 855.18229,37.650399 856.4375,37.650391 C 857.53645,37.650399 858.41666,37.942066 859.07813,38.525391 C 859.74478,39.108731 860.11718,39.92123 860.19531,40.962891 L 857.9375,40.962891 C 857.87499,40.509772 857.71614,40.163418 857.46094,39.923828 C 857.20572,39.684252 856.86979,39.56446 856.45313,39.564453 C 855.89062,39.56446 855.46875,39.785814 855.1875,40.228516 C 854.91146,40.67123 854.77343,41.335292 854.77344,42.220703 C 854.77343,43.038415 854.91666,43.668623 855.20313,44.111328 C 855.49479,44.54883 855.91145,44.76758 856.45313,44.767578 C 856.87499,44.76758 857.21354,44.639976 857.46875,44.384766 C 857.72395,44.12956 857.89062,43.749352 857.96875,43.244141 M 866.88281,43.869141 L 869.14844,43.869141 C 868.91926,44.764976 868.45572,45.4681 867.75781,45.978516 C 867.0651,46.483724 866.21874,46.736328 865.21875,46.736328 C 863.98958,46.736328 863.01562,46.32487 862.29688,45.501953 C 861.57812,44.67383 861.21875,43.554039 861.21875,42.142578 C 861.21875,40.751959 861.57292,39.655606 862.28125,38.853516 C 862.98958,38.051441 863.95833,37.650399 865.1875,37.650391 C 866.48958,37.650399 867.49478,38.046232 868.20313,38.837891 C 868.91145,39.624356 869.26562,40.74675 869.26563,42.205078 C 869.26562,42.366541 869.26301,42.488936 869.25781,42.572266 C 869.2578,42.650394 869.2526,42.725915 869.24219,42.798828 L 863.57031,42.798828 C 863.60156,43.465498 863.76302,43.968101 864.05469,44.306641 C 864.35156,44.645184 864.77604,44.814455 865.32813,44.814453 C 865.71874,44.814455 866.03906,44.738934 866.28906,44.587891 C 866.53906,44.431643 866.73697,44.19206 866.88281,43.869141 M 863.57031,41.306641 L 866.91406,41.306641 C 866.89322,40.73373 866.73958,40.298834 866.45313,40.001953 C 866.17187,39.699877 865.76562,39.548835 865.23438,39.548828 C 864.73958,39.548835 864.34895,39.699877 864.0625,40.001953 C 863.78125,40.304043 863.61718,40.738938 863.57031,41.306641"
+ id="text5207" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 840,17.646484 L 797.02608,17.646484"
+ id="path5439" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 802.5,25.146484 L 802.5,10.146484 L 787.5,17.646484 L 802.5,25.146484 z "
+ id="path5441" />
+ <g
+ id="g5459"
+ transform="translate(0,7.5)">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 82.50003,75 L 54.020182,75"
+ id="path5453" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 60,82.5 L 60,67.5 L 45,75 L 60,82.5 z "
+ id="path5455" />
+ <path
+ id="path5457"
+ d="M 45,67.5 C 45,82.5 45,82.5 45,82.5"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ id="g5464"
+ transform="matrix(-1,9.581637e-17,-9.581637e-17,-1,127.5,172.5)">
+ <path
+ id="path5466"
+ d="M 82.50003,75 L 54.020182,75"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path5468"
+ d="M 60,82.5 L 60,67.5 L 45,75 L 60,82.5 z "
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 45,67.5 C 45,82.5 45,82.5 45,82.5"
+ id="path5470" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 107.0625,80.560547 L 105.23438,78.779297 L 107.17969,76.763672 L 109.05469,78.591797 C 109.30467,78.123052 109.49608,77.587897 109.62891,76.986328 C 109.7617,76.384773 109.82811,75.728524 109.82813,75.017578 C 109.82811,73.119151 109.40233,71.646496 108.55078,70.599609 C 107.69921,69.544936 106.5078,69.017593 104.97656,69.017578 C 103.46093,69.017593 102.28124,69.54103 101.4375,70.587891 C 100.59374,71.634778 100.17187,73.111339 100.17188,75.017578 C 100.17187,76.916022 100.59374,78.392583 101.4375,79.447266 C 102.28124,80.494144 103.46093,81.017581 104.97656,81.017578 C 105.36718,81.017581 105.73436,80.978518 106.07813,80.900391 C 106.42968,80.822268 106.7578,80.708987 107.0625,80.560547 M 109.55859,82.916016 C 108.97264,83.306641 108.28905,83.603516 107.50781,83.806641 C 106.73436,84.009765 105.89061,84.111328 104.97656,84.111328 C 102.39843,84.111328 100.34765,83.291016 98.824219,81.650391 C 97.308592,80.009769 96.55078,77.798834 96.550781,75.017578 C 96.55078,72.228527 97.308592,70.017592 98.824219,68.384766 C 100.34765,66.744158 102.39843,65.923846 104.97656,65.923828 C 107.55468,65.923846 109.60545,66.744158 111.12891,68.384766 C 112.66014,70.025404 113.42576,72.23634 113.42578,75.017578 C 113.42576,76.236336 113.26951,77.353522 112.95703,78.369141 C 112.64451,79.376957 112.18358,80.259769 111.57422,81.017578 L 113.44922,82.810547 L 111.52734,84.826172 L 109.55859,82.916016"
+ id="text5474" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 158.94141,83.630859 L 153.99609,66.369141 L 157.67578,66.369141 L 160.62891,78.544922 L 163.125,66.369141 L 166.91016,66.369141 L 169.40625,78.544922 L 172.35938,66.369141 L 176.00391,66.369141 L 171.07031,83.630859 L 167.68359,83.630859 L 165.01172,70.412109 L 162.32813,83.630859 L 158.94141,83.630859"
+ id="text5482" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 218.52539,83.630859 L 218.52539,66.369141 L 231.05273,66.369141 L 231.05273,69.369141 L 222.0293,69.369141 L 222.0293,73.048828 L 230.2793,73.048828 L 230.2793,76.001953 L 222.0293,76.001953 L 222.0293,80.443359 L 231.47461,80.443359 L 231.47461,83.630859 L 218.52539,83.630859"
+ id="text5492" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 281.4375,73.916016 L 285.60938,73.916016 C 286.51561,73.916025 287.17968,73.732432 287.60156,73.365234 C 288.03124,72.998058 288.24608,72.419933 288.24609,71.630859 C 288.24608,70.880872 288.03905,70.314466 287.625,69.931641 C 287.21093,69.54103 286.59374,69.345717 285.77344,69.345703 L 281.4375,69.345703 L 281.4375,73.916016 M 277.88672,83.630859 L 277.88672,66.369141 L 286.25391,66.369141 C 288.13671,66.369158 289.53124,66.771501 290.4375,67.576172 C 291.34373,68.380875 291.79686,69.611342 291.79688,71.267578 C 291.79686,72.322277 291.5742,73.201182 291.12891,73.904297 C 290.69139,74.607431 290.05858,75.087899 289.23047,75.345703 C 289.98045,75.611336 290.5117,76.017586 290.82422,76.564453 C 291.14452,77.111335 291.32811,77.962896 291.375,79.119141 L 291.44531,81.158203 C 291.4453,81.173831 291.4453,81.197268 291.44531,81.228516 C 291.46873,82.259767 291.69139,82.884766 292.11328,83.103516 L 292.11328,83.630859 L 288.22266,83.630859 C 288.09764,83.388672 287.99999,83.091797 287.92969,82.740234 C 287.86718,82.380861 287.82811,81.95508 287.8125,81.462891 L 287.76563,79.646484 C 287.72655,78.576177 287.52343,77.853521 287.15625,77.478516 C 286.79686,77.103522 286.14452,76.916022 285.19922,76.916016 L 281.4375,76.916016 L 281.4375,83.630859 L 277.88672,83.630859"
+ id="text5500" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 343.24219,83.630859 L 343.24219,69.451172 L 338.12109,69.451172 L 338.12109,66.369141 L 351.87891,66.369141 L 351.87891,69.451172 L 346.79297,69.451172 L 346.79297,83.630859 L 343.24219,83.630859"
+ id="text5504" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 407.06836,83.630859 L 403.51758,83.630859 L 403.51758,77.197266 L 397.24805,66.369141 L 401.5957,66.369141 L 405.28711,73.810547 L 408.69727,66.369141 L 412.75195,66.369141 L 407.06836,77.197266 L 407.06836,83.630859"
+ id="text5518" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 458.08594,66.105469 L 461.67188,66.105469 L 461.67188,76.933594 C 461.67187,78.269536 461.93749,79.246098 462.46875,79.863281 C 462.99999,80.472659 463.84374,80.777346 465,80.777344 C 466.17187,80.777346 467.02343,80.472659 467.55469,79.863281 C 468.09374,79.25391 468.36327,78.277349 468.36328,76.933594 L 468.36328,66.105469 L 471.91406,66.105469 L 471.91406,77.320313 C 471.91405,79.437504 471.3203,81.062502 470.13281,82.195313 C 468.95311,83.328125 467.24999,83.894531 465.02344,83.894531 C 462.78124,83.894531 461.0625,83.332031 459.86719,82.207031 C 458.67969,81.074221 458.08594,79.445316 458.08594,77.320313 L 458.08594,66.105469"
+ id="text5522" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 523.22461,83.630859 L 523.22461,66.369141 L 526.77539,66.369141 L 526.77539,83.630859 L 523.22461,83.630859"
+ id="text5526" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 580.18359,75 C 580.18359,76.898444 580.60546,78.375005 581.44922,79.429688 C 582.29296,80.476566 583.47265,81.000003 584.98828,81 C 586.51952,81.000003 587.71093,80.476566 588.5625,79.429688 C 589.41405,78.375005 589.83983,76.898444 589.83984,75 C 589.83983,73.101573 589.41405,71.628918 588.5625,70.582031 C 587.71093,69.527358 586.51952,69.000015 584.98828,69 C 583.47265,69.000015 582.29296,69.523452 581.44922,70.570313 C 580.60546,71.617199 580.18359,73.093761 580.18359,75 M 576.5625,75 C 576.5625,72.210949 577.32031,70.000014 578.83594,68.367188 C 580.35937,66.726579 582.41015,65.906268 584.98828,65.90625 C 587.56639,65.906268 589.61717,66.726579 591.14063,68.367188 C 592.67186,70.007826 593.43748,72.218761 593.4375,75 C 593.43748,77.781256 592.67186,79.992191 591.14063,81.632813 C 589.61717,83.273438 587.56639,84.09375 584.98828,84.09375 C 582.41015,84.09375 580.35937,83.273438 578.83594,81.632813 C 577.32031,79.992191 576.5625,77.781256 576.5625,75"
+ id="text5530" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 641.97656,74.361328 L 645.41016,74.361328 C 646.33983,74.361337 647.01561,74.166025 647.4375,73.775391 C 647.85936,73.376963 648.0703,72.740245 648.07031,71.865234 C 648.0703,71.044934 647.86327,70.423841 647.44922,70.001953 C 647.03515,69.580092 646.41796,69.369155 645.59766,69.369141 L 641.97656,69.369141 L 641.97656,74.361328 M 641.95313,77.490234 L 641.95313,83.630859 L 638.40234,83.630859 L 638.40234,66.369141 L 646.07813,66.369141 C 647.89061,66.369158 649.26171,66.841814 650.19141,67.787109 C 651.12889,68.724624 651.59764,70.103529 651.59766,71.923828 C 651.59764,73.705088 651.14061,75.080087 650.22656,76.048828 C 649.31249,77.009772 648.0078,77.490241 646.3125,77.490234 L 641.95313,77.490234"
+ id="text5534" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 709.24805,63.919922 L 709.24805,66.369141 C 709.17772,66.369155 709.08007,66.365249 708.95508,66.357422 C 708.83007,66.349624 708.74413,66.345718 708.69727,66.345703 C 707.90819,66.345718 707.37304,66.498062 707.0918,66.802734 C 706.81835,67.099624 706.68163,67.732435 706.68164,68.701172 L 706.68164,71.513672 C 706.68163,72.66993 706.50585,73.490242 706.1543,73.974609 C 705.80273,74.458991 705.16992,74.806647 704.25586,75.017578 C 705.16992,75.228522 705.80273,75.572271 706.1543,76.048828 C 706.50585,76.525395 706.68163,77.341801 706.68164,78.498047 L 706.68164,81.322266 C 706.68163,82.283202 706.81835,82.912108 707.0918,83.208984 C 707.36523,83.505857 707.90038,83.654294 708.69727,83.654297 C 708.74413,83.654294 708.83007,83.650388 708.95508,83.642578 C 709.08007,83.634763 709.17772,83.630857 709.24805,83.630859 L 709.24805,86.080078 C 709.13866,86.080073 708.98632,86.08398 708.79102,86.091797 C 708.59569,86.099605 708.45116,86.103511 708.35742,86.103516 C 707.57616,86.103511 706.92382,86.056636 706.40039,85.962891 C 705.87695,85.869136 705.43163,85.724605 705.06445,85.529297 C 704.61913,85.263668 704.30273,84.904293 704.11523,84.451172 C 703.93554,84.005857 703.8457,83.228514 703.8457,82.119141 L 703.8457,79.166016 C 703.8457,78.095706 703.64648,77.337895 703.24805,76.892578 C 702.84961,76.439458 702.17773,76.212896 701.23242,76.212891 C 701.18554,76.212896 701.10742,76.216802 700.99805,76.224609 C 700.88867,76.232427 700.80664,76.236333 700.75195,76.236328 L 700.75195,73.787109 C 700.80664,73.787117 700.88867,73.791023 700.99805,73.798828 C 701.10742,73.806648 701.18554,73.810554 701.23242,73.810547 C 702.16992,73.810554 702.83789,73.583992 703.23633,73.130859 C 703.64257,72.677743 703.8457,71.912119 703.8457,70.833984 L 703.8457,67.904297 C 703.8457,66.787124 703.93554,66.001968 704.11523,65.548828 C 704.30273,65.095719 704.61913,64.736345 705.06445,64.470703 C 705.43163,64.275408 705.87695,64.130876 706.40039,64.037109 C 706.92382,63.943377 707.57616,63.896502 708.35742,63.896484 C 708.45116,63.896502 708.59569,63.900408 708.79102,63.908203 C 708.98632,63.916033 709.13866,63.919939 709.24805,63.919922 M 703.0957,93.966797 L 709.01367,93.966797 L 709.01367,96.462891 L 706.25977,96.462891 L 706.25977,113.8418 L 709.01367,113.8418 L 709.01367,116.33789 L 703.0957,116.33789 L 703.0957,93.966797"
+ id="text5546" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 760.75195,63.908203 L 761.54883,63.908203 C 762.4082,63.90822 763.09961,63.955095 763.62305,64.048828 C 764.14648,64.142595 764.58398,64.291033 764.93555,64.494141 C 765.38085,64.744157 765.69335,65.103532 765.87305,65.572266 C 766.06054,66.033218 766.15429,66.806655 766.1543,67.892578 L 766.1543,70.845703 C 766.15429,71.916025 766.35351,72.677743 766.75195,73.130859 C 767.15038,73.57618 767.82226,73.798836 768.76758,73.798828 C 768.81444,73.798836 768.89257,73.794929 769.00195,73.787109 C 769.11132,73.779304 769.19335,73.775398 769.24805,73.775391 L 769.24805,76.224609 L 768.81445,76.224609 C 767.83788,76.224614 767.15038,76.443364 766.75195,76.880859 C 766.35351,77.318363 766.15429,78.076175 766.1543,79.154297 L 766.1543,82.107422 C 766.15429,83.224607 766.06054,84.009763 765.87305,84.462891 C 765.69335,84.916012 765.38085,85.267574 764.93555,85.517578 C 764.56835,85.712886 764.12304,85.857417 763.59961,85.951172 C 763.07617,86.044917 762.42382,86.091792 761.64258,86.091797 C 761.54883,86.091792 761.40429,86.087886 761.20898,86.080078 C 761.01367,86.072261 760.86133,86.068355 760.75195,86.068359 L 760.75195,83.619141 C 760.82226,83.619138 760.91992,83.623044 761.04492,83.630859 C 761.16992,83.638669 761.25586,83.642576 761.30273,83.642578 C 762.09179,83.642576 762.62304,83.490232 762.89648,83.185547 C 763.17773,82.88867 763.31836,82.263671 763.31836,81.310547 L 763.31836,78.509766 C 763.31836,77.337895 763.49414,76.513677 763.8457,76.037109 C 764.19726,75.55274 764.83007,75.20899 765.74414,75.005859 C 764.83007,74.794928 764.19726,74.447272 763.8457,73.962891 C 763.49414,73.478523 763.31836,72.658212 763.31836,71.501953 L 763.31836,68.666016 C 763.31836,67.712904 763.17773,67.087905 762.89648,66.791016 C 762.62304,66.486343 762.09179,66.333999 761.30273,66.333984 C 761.25586,66.333999 761.16992,66.337906 761.04492,66.345703 C 760.91992,66.35353 760.82226,66.357437 760.75195,66.357422 L 760.75195,63.908203 M 767.00977,93.955078 L 767.00977,116.32617 L 761.08008,116.32617 L 761.08008,113.83008 L 763.8457,113.83008 L 763.8457,96.451172 L 761.08008,96.451172 L 761.08008,93.955078 L 767.00977,93.955078"
+ id="text5554" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 823.79883,62.977287 L 826.21289,62.977287 L 826.21289,86.977287 L 823.79883,86.977287 L 823.79883,62.977287 M 827.10352,113.54369 L 821.29102,93.6101 L 822.87305,93.6101 L 828.70898,113.54369 L 827.10352,113.54369"
+ id="text5564" />
+ <g
+ id="g3597">
+ <path
+ id="text5570"
+ d="M 22.996094,139.10156 C 22.907541,140.40886 22.403635,141.44792 21.484375,142.21875 C 20.565095,142.98958 19.365878,143.375 17.886719,143.375 C 16.183589,143.375 14.859372,142.84375 13.914063,141.78125 C 12.968749,140.71875 12.496093,139.22917 12.496094,137.3125 C 12.496093,135.35417 12.977863,133.85418 13.941406,132.8125 C 14.904945,131.77084 16.29036,131.25001 18.097656,131.25 C 19.566398,131.25001 20.726554,131.60808 21.578125,132.32422 C 22.429677,133.04037 22.897124,134.05209 22.980469,135.35938 L 20.644531,135.35938 C 20.545564,134.70834 20.279939,134.21225 19.847656,133.87109 C 19.415357,133.52996 18.832024,133.35938 18.097656,133.35938 C 17.055984,133.35938 16.264318,133.69532 15.722656,134.36719 C 15.180986,135.03907 14.910153,136.02084 14.910156,137.3125 C 14.910153,138.5625 15.179684,139.52865 15.71875,140.21094 C 16.257808,140.89323 17.024734,141.23438 18.019531,141.23438 C 18.738274,141.23438 19.326815,141.05078 19.785156,140.68359 C 20.243481,140.31641 20.540356,139.78907 20.675781,139.10156 L 22.996094,139.10156 z M 29.558594,142 C 29.27213,142.44271 28.89713,142.77995 28.433594,143.01172 C 27.970048,143.24349 27.430986,143.35937 26.816406,143.35938 C 25.993487,143.35937 25.359373,143.125 24.914063,142.65625 C 24.468749,142.1875 24.246093,141.52083 24.246094,140.65625 C 24.246093,139.85417 24.468749,139.24219 24.914063,138.82031 C 25.359373,138.39844 26.09505,138.10938 27.121094,137.95313 C 27.355465,137.91667 27.662756,137.87501 28.042969,137.82813 C 29.006505,137.70313 29.488275,137.42448 29.488281,136.99219 C 29.488275,136.64844 29.381505,136.40235 29.167969,136.25391 C 28.954422,136.10548 28.597651,136.03126 28.097656,136.03125 C 27.639319,136.03126 27.287757,136.1224 27.042969,136.30469 C 26.798174,136.48699 26.675778,136.7474 26.675781,137.08594 L 26.675781,137.21094 L 24.550781,137.21094 L 24.550781,137.05469 C 24.55078,136.1849 24.858072,135.50131 25.472656,135.00391 C 26.087237,134.50652 26.936195,134.25782 28.019531,134.25781 C 29.207026,134.25782 30.117181,134.46355 30.75,134.875 C 31.382805,135.28647 31.699211,135.88022 31.699219,136.65625 L 31.699219,141.48438 C 31.699211,141.83854 31.735669,142.10287 31.808594,142.27734 C 31.881502,142.45182 32.003898,142.58333 32.175781,142.67188 L 32.175781,143.05469 L 29.808594,143.05469 C 29.730463,142.90885 29.670567,142.7474 29.628906,142.57031 C 29.587234,142.39323 29.563796,142.20313 29.558594,142 L 29.558594,142 z M 29.519531,138.875 C 29.149734,139.04688 28.723953,139.1849 28.242188,139.28906 C 27.760413,139.39323 27.511715,139.44792 27.496094,139.45313 C 27.095049,139.56771 26.815101,139.71094 26.65625,139.88281 C 26.497393,140.05469 26.417966,140.29167 26.417969,140.59375 C 26.417966,140.90625 26.519528,141.15495 26.722656,141.33984 C 26.925778,141.52474 27.199215,141.61719 27.542969,141.61719 C 28.157548,141.61719 28.64062,141.44401 28.992188,141.09766 C 29.343744,140.7513 29.519525,140.27865 29.519531,139.67969 L 29.519531,138.875 z M 39.691406,138.85938 C 39.691399,138.00521 39.529941,137.35287 39.207031,136.90234 C 38.884108,136.45183 38.415359,136.22657 37.800781,136.22656 C 37.19661,136.22657 36.736975,136.45053 36.421875,136.89844 C 36.106767,137.34636 35.949216,138.00001 35.949219,138.85938 C 35.949216,139.66146 36.11458,140.28125 36.445313,140.71875 C 36.776038,141.15625 37.243485,141.375 37.847656,141.375 C 38.420567,141.375 38.871088,141.15104 39.199219,140.70313 C 39.527337,140.25521 39.691399,139.64063 39.691406,138.85938 L 39.691406,138.85938 z M 33.738281,146.46094 L 33.738281,134.5625 L 35.902344,134.5625 L 35.902344,135.71094 C 36.230465,135.21095 36.59635,134.84636 37,134.61719 C 37.403641,134.38803 37.878901,134.27345 38.425781,134.27344 C 39.472649,134.27345 40.321607,134.68621 40.972656,135.51172 C 41.623689,136.33725 41.94921,137.42188 41.949219,138.76563 C 41.94921,140.125 41.623689,141.22787 40.972656,142.07422 C 40.321607,142.92057 39.483066,143.34375 38.457031,143.34375 C 37.915359,143.34375 37.432287,143.22917 37.007813,143 C 36.583329,142.77083 36.230465,142.4375 35.949219,142 L 35.949219,146.46094 L 33.738281,146.46094 z M 43.027344,140.28906 L 45.292969,140.28906 C 45.313799,140.72136 45.470049,141.04297 45.761719,141.25391 C 46.053382,141.46485 46.490881,141.57031 47.074219,141.57031 C 47.516922,141.57031 47.85937,141.4961 48.101563,141.34766 C 48.343744,141.19922 48.464838,140.98959 48.464844,140.71875 C 48.464838,140.33334 48.011713,140.04427 47.105469,139.85156 C 46.735673,139.77344 46.441402,139.70573 46.222656,139.64844 C 45.118487,139.36719 44.351561,139.03386 43.921875,138.64844 C 43.492187,138.26303 43.277343,137.74219 43.277344,137.08594 C 43.277343,136.21615 43.591145,135.52735 44.21875,135.01953 C 44.846352,134.51173 45.696611,134.25782 46.769531,134.25781 C 47.904943,134.25782 48.796869,134.51043 49.445313,135.01563 C 50.093742,135.52084 50.438794,136.23178 50.480469,137.14844 L 48.269531,137.14844 C 48.253901,136.78907 48.117182,136.51042 47.859375,136.3125 C 47.601557,136.11459 47.243485,136.01563 46.785156,136.01563 C 46.352861,136.01563 46.031246,136.08074 45.820313,136.21094 C 45.609372,136.34115 45.503903,136.53646 45.503906,136.79688 C 45.503903,137.13542 46.069007,137.4349 47.199219,137.69531 C 47.45963,137.75261 47.665359,137.79948 47.816406,137.83594 C 48.946608,138.10157 49.718743,138.42188 50.132813,138.79688 C 50.546867,139.17188 50.753898,139.70052 50.753906,140.38281 C 50.753898,141.34636 50.414055,142.08073 49.734375,142.58594 C 49.054681,143.09115 48.066401,143.34375 46.769531,143.34375 C 45.597653,143.34375 44.680987,143.08073 44.019531,142.55469 C 43.358072,142.02865 43.027343,141.30469 43.027344,140.38281 L 43.027344,140.28906 z M 57.011719,143.05469 L 57.011719,131.54688 L 59.378906,131.54688 L 59.378906,140.92969 L 64.996094,140.92969 L 64.996094,143.05469 L 57.011719,143.05469 z M 67.972656,138.79688 C 67.972653,139.64063 68.14583,140.29167 68.492188,140.75 C 68.838538,141.20834 69.332027,141.4375 69.972656,141.4375 C 70.602859,141.4375 71.09114,141.20834 71.4375,140.75 C 71.783847,140.29167 71.957024,139.64063 71.957031,138.79688 C 71.957024,137.95834 71.78515,137.3112 71.441406,136.85547 C 71.09765,136.39975 70.608067,136.17188 69.972656,136.17188 C 69.332027,136.17188 68.838538,136.39975 68.492188,136.85547 C 68.14583,137.3112 67.972653,137.95834 67.972656,138.79688 L 67.972656,138.79688 z M 65.667969,138.79688 C 65.667968,137.38542 66.05078,136.27605 66.816406,135.46875 C 67.582029,134.66147 68.634111,134.25782 69.972656,134.25781 C 71.305983,134.25782 72.356764,134.66147 73.125,135.46875 C 73.89322,136.27605 74.277335,137.38542 74.277344,138.79688 C 74.277335,140.21354 73.89322,141.32552 73.125,142.13281 C 72.356764,142.9401 71.305983,143.34375 69.972656,143.34375 C 68.634111,143.34375 67.582029,142.9401 66.816406,142.13281 C 66.05078,141.32552 65.667968,140.21354 65.667969,138.79688 L 65.667969,138.79688 z M 80.949219,139.85156 L 83.191406,139.85156 C 83.097648,140.92969 82.704419,141.78125 82.011719,142.40625 C 81.319004,143.03125 80.42838,143.34375 79.339844,143.34375 C 78.105465,143.34375 77.138019,142.94141 76.4375,142.13672 C 75.736978,141.33203 75.386718,140.21875 75.386719,138.79688 C 75.386718,137.38021 75.744791,136.26954 76.460938,135.46484 C 77.177081,134.66016 78.162757,134.25782 79.417969,134.25781 C 80.516921,134.25782 81.398431,134.54949 82.0625,135.13281 C 82.726555,135.71615 83.097648,136.52865 83.175781,137.57031 L 80.917969,137.57031 C 80.855463,137.11719 80.696609,136.77084 80.441406,136.53125 C 80.186193,136.29167 79.850255,136.17188 79.433594,136.17188 C 78.87109,136.17188 78.450517,136.39324 78.171875,136.83594 C 77.893226,137.27865 77.753903,137.94271 77.753906,138.82813 C 77.753903,139.64584 77.898434,140.27474 78.1875,140.71484 C 78.476559,141.15495 78.891923,141.375 79.433594,141.375 C 79.855464,141.375 80.194005,141.2474 80.449219,140.99219 C 80.704421,140.73698 80.871088,140.35677 80.949219,139.85156 L 80.949219,139.85156 z M 84.675781,143.05469 L 84.675781,131.54688 L 86.886719,131.54688 L 86.886719,137.58594 L 89.589844,134.5625 L 92.324219,134.5625 L 89.363281,137.71094 L 92.503906,143.05469 L 89.777344,143.05469 L 87.746094,139.4375 L 86.886719,140.36719 L 86.886719,143.05469 L 84.675781,143.05469 z "
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT" />
+ <path
+ id="path5584"
+ d="M 23.746094,146.25 L 12.496094,161.25 L 19.996094,161.25 L 19.996094,168.75 L 27.496094,168.75 L 27.496094,161.25 L 34.996094,161.25 L 23.746094,146.25 z M 22.714844,150.46875 L 24.746094,150.46875 L 27.871094,159.09375 L 25.996094,159.09375 L 25.402344,157.3125 L 22.058594,157.3125 L 21.496094,159.09375 L 19.621094,159.09375 L 22.714844,150.46875 z M 23.746094,152.1875 L 22.527344,155.84375 L 24.933594,155.84375 L 23.746094,152.1875 z "
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 119.9707,129.82617 L 117.58008,137.17383 L 122.37305,137.17383 L 119.9707,129.82617 M 117.9082,126.36914 L 122.00977,126.36914 L 128.23242,143.63086 L 124.50586,143.63086 L 123.33398,140.08008 L 116.64258,140.08008 L 115.50586,143.63086 L 111.76758,143.63086 L 117.9082,126.36914"
+ id="text5641" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 172.98047,138.29297 L 176.48438,138.29297 C 176.61718,139.23829 177.0039,139.94141 177.64453,140.40234 C 178.28515,140.85547 179.21093,141.08203 180.42188,141.08203 C 181.45312,141.08203 182.23046,140.89844 182.75391,140.53125 C 183.27733,140.16407 183.53905,139.6211 183.53906,138.90234 C 183.53905,137.85547 182.03515,136.98829 179.02734,136.30078 C 178.98827,136.29298 178.95312,136.28516 178.92188,136.27734 C 178.84374,136.26173 178.72265,136.23438 178.55859,136.19531 C 176.94921,135.84376 175.80078,135.44923 175.11328,135.01172 C 174.5039,134.6211 174.03906,134.09767 173.71875,133.44141 C 173.39844,132.77735 173.23828,131.99611 173.23828,131.09766 C 173.23828,129.41798 173.80859,128.13283 174.94922,127.24219 C 176.08984,126.34377 177.73828,125.89455 179.89453,125.89453 C 181.91015,125.89455 183.48436,126.37111 184.61719,127.32422 C 185.7578,128.27736 186.35936,129.62111 186.42188,131.35547 L 183.01172,131.35547 C 182.94921,130.51954 182.6289,129.88283 182.05078,129.44531 C 181.47265,129.00783 180.64843,128.78908 179.57813,128.78906 C 178.64843,128.78908 177.92968,128.97267 177.42188,129.33984 C 176.92187,129.69923 176.67187,130.21486 176.67188,130.88672 C 176.67187,131.80079 177.65234,132.48439 179.61328,132.9375 C 180.14452,133.06251 180.55859,133.16017 180.85547,133.23047 C 182.11327,133.55079 183.0039,133.80079 183.52734,133.98047 C 184.05858,134.16017 184.51952,134.35938 184.91016,134.57813 C 185.61327,134.96876 186.14061,135.48829 186.49219,136.13672 C 186.84374,136.77735 187.01952,137.54688 187.01953,138.44531 C 187.01952,140.24219 186.41405,141.63672 185.20313,142.62891 C 183.99218,143.61328 182.28515,144.10547 180.08203,144.10547 C 177.91015,144.10547 176.20703,143.60156 174.97266,142.59375 C 173.73828,141.58594 173.07422,140.15235 172.98047,138.29297"
+ id="text5645" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 236.16211,140.51367 L 239.00977,140.51367 C 240.65819,140.51367 241.8496,140.08399 242.58398,139.22461 C 243.32616,138.35743 243.69725,136.95508 243.69727,135.01758 C 243.69725,133.0879 243.3535,131.66993 242.66602,130.76367 C 241.9785,129.85744 240.90429,129.40431 239.44336,129.4043 L 236.16211,129.4043 L 236.16211,140.51367 M 232.68164,143.63086 L 232.68164,126.36914 L 239.44336,126.36914 C 242.09179,126.36916 244.06444,127.084 245.36133,128.51367 C 246.666,129.94337 247.31834,132.11134 247.31836,135.01758 C 247.31834,136.59571 247.07616,137.98633 246.5918,139.18945 C 246.11522,140.39258 245.41991,141.36133 244.50586,142.0957 C 243.81835,142.64258 243.0371,143.03711 242.16211,143.2793 C 241.2871,143.51367 240.06054,143.63086 238.48242,143.63086 L 232.68164,143.63086"
+ id="text5649" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 293.97656,143.63086 L 293.97656,126.36914 L 306.02344,126.36914 L 306.02344,129.36914 L 297.48047,129.36914 L 297.48047,133.2832 L 304.96875,133.2832 L 304.96875,136.2832 L 297.48047,136.2832 L 297.48047,143.63086 L 293.97656,143.63086"
+ id="text5653" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 365.17969,141.57422 C 364.53905,142.44141 363.80858,143.07813 362.98828,143.48438 C 362.17577,143.89062 361.21874,144.09375 360.11719,144.09375 C 357.70312,144.09375 355.74609,143.25781 354.24609,141.58594 C 352.7539,139.90625 352.00781,137.70313 352.00781,134.97656 C 352.00781,132.22657 352.7539,130.02736 354.24609,128.37891 C 355.73828,126.73049 357.72656,125.90627 360.21094,125.90625 C 362.37499,125.90627 364.14061,126.4258 365.50781,127.46484 C 366.87498,128.49611 367.68748,129.91798 367.94531,131.73047 L 364.32422,131.73047 C 364.10546,130.83204 363.65624,130.14845 362.97656,129.67969 C 362.30468,129.21095 361.42577,128.97658 360.33984,128.97656 C 358.89452,128.97658 357.75781,129.50783 356.92969,130.57031 C 356.10937,131.62501 355.69921,133.08595 355.69922,134.95313 C 355.69921,136.82813 356.1289,138.29688 356.98828,139.35938 C 357.84765,140.42188 359.02734,140.95313 360.52734,140.95313 C 361.65233,140.95313 362.59374,140.6211 363.35156,139.95703 C 364.10936,139.29297 364.57811,138.38282 364.75781,137.22656 L 360.84375,137.22656 L 360.84375,134.27344 L 367.99219,134.27344 L 367.99219,143.61328 L 365.61328,143.61328 L 365.17969,141.57422"
+ id="text5657" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 412.86328,143.63086 L 412.86328,126.36914 L 416.4375,126.36914 L 416.4375,132.80273 L 423.5625,132.80273 L 423.5625,126.36914 L 427.13672,126.36914 L 427.13672,143.63086 L 423.5625,143.63086 L 423.5625,135.97852 L 416.4375,135.97852 L 416.4375,143.63086 L 412.86328,143.63086"
+ id="text5661" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 474.48047,136.95703 L 477.91406,136.95703 L 477.91406,139.04297 C 477.91406,139.64453 478.09375,140.10547 478.45313,140.42578 C 478.8125,140.73828 479.32812,140.89453 480,140.89453 C 480.73437,140.89453 481.24609,140.70313 481.53516,140.32031 C 481.82421,139.9375 481.96874,139.21875 481.96875,138.16406 L 481.96875,126.12891 L 485.51953,126.12891 L 485.51953,138.32813 C 485.51952,139.42188 485.45311,140.22657 485.32031,140.74219 C 485.1953,141.25 484.98436,141.69922 484.6875,142.08984 C 484.23436,142.66797 483.61327,143.10938 482.82422,143.41406 C 482.03515,143.71875 481.10937,143.87109 480.04688,143.87109 C 479.07031,143.87109 478.20703,143.73828 477.45703,143.47266 C 476.70703,143.20703 476.08203,142.8125 475.58203,142.28906 C 475.18359,141.86719 474.89844,141.39844 474.72656,140.88281 C 474.5625,140.35938 474.48047,139.5 474.48047,138.30469 L 474.48047,136.95703"
+ id="text5665" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 532.32422,143.63086 L 532.32422,126.36914 L 535.875,126.36914 L 535.875,133.45898 L 542.61328,126.36914 L 547.05469,126.36914 L 540.16406,133.35352 L 547.67578,143.63086 L 543.33984,143.63086 L 537.71484,135.73242 L 535.875,137.56055 L 535.875,143.63086 L 532.32422,143.63086"
+ id="text5669" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 594.01172,143.63086 L 594.01172,126.36914 L 597.5625,126.36914 L 597.5625,140.44336 L 605.98828,140.44336 L 605.98828,143.63086 L 594.01172,143.63086"
+ id="text5673" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 143.15039,203.63086 L 143.15039,200.63086 L 152.53711,189.49805 L 143.33789,189.49805 L 143.33789,186.36914 L 156.84961,186.36914 L 156.84961,189.36914 L 147.43945,200.51367 L 156.63867,200.51367 L 156.63867,203.63086 L 143.15039,203.63086"
+ id="text5679" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 202.37109,203.63086 L 207.79688,194.81836 L 202.37109,186.36914 L 206.47266,186.36914 L 210,192.4043 L 213.50391,186.36914 L 217.62891,186.36914 L 212.20313,194.79492 L 217.62891,203.63086 L 213.52734,203.63086 L 210,197.6543 L 206.47266,203.63086 L 202.37109,203.63086"
+ id="text5683" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 277.875,197.68359 C 277.74217,199.64454 276.98436,201.20313 275.60156,202.35938 C 274.22655,203.51563 272.42968,204.09375 270.21094,204.09375 C 267.65624,204.09375 265.66796,203.29688 264.24609,201.70313 C 262.83203,200.10938 262.125,197.87501 262.125,195 C 262.125,192.06251 262.84765,189.81251 264.29297,188.25 C 265.73828,186.68752 267.8164,185.90627 270.52734,185.90625 C 272.73046,185.90627 274.46874,186.44533 275.74219,187.52344 C 277.02342,188.59377 277.72655,190.10939 277.85156,192.07031 L 274.34766,192.07031 C 274.19921,191.09376 273.80077,190.35158 273.15234,189.84375 C 272.50389,189.32814 271.6289,189.07033 270.52734,189.07031 C 268.96484,189.07033 267.77734,189.57423 266.96484,190.58203 C 266.15234,191.58986 265.74609,193.06251 265.74609,195 C 265.74609,196.87501 266.14843,198.32422 266.95313,199.34766 C 267.76562,200.3711 268.91796,200.88282 270.41016,200.88281 C 271.48827,200.88282 272.37108,200.60938 273.05859,200.0625 C 273.74608,199.50782 274.19139,198.71485 274.39453,197.68359 L 277.875,197.68359"
+ id="text5687" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 328.33594,203.63086 L 322.38281,186.36914 L 326.32031,186.36914 L 329.98828,199.2832 L 333.72656,186.36914 L 337.61719,186.36914 L 331.73438,203.63086 L 328.33594,203.63086"
+ id="text5691" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 386.32031,200.51367 L 390.52734,200.51367 C 391.51952,200.51367 392.24218,200.33399 392.69531,199.97461 C 393.14843,199.61524 393.37499,199.04883 393.375,198.27539 C 393.37499,197.47071 393.15233,196.89258 392.70703,196.54102 C 392.26171,196.18165 391.52733,196.00196 390.50391,196.00195 L 386.32031,196.00195 L 386.32031,200.51367 M 386.32031,193.04883 L 390.375,193.04883 C 391.24999,193.04884 391.89061,192.9004 392.29688,192.60352 C 392.70311,192.29884 392.90624,191.82228 392.90625,191.17383 C 392.90624,190.54103 392.70702,190.084 392.30859,189.80273 C 391.91796,189.51369 391.26561,189.36915 390.35156,189.36914 L 386.32031,189.36914 L 386.32031,193.04883 M 382.92188,203.63086 L 382.92188,186.36914 L 391.05469,186.36914 C 392.8203,186.36916 394.16405,186.74416 395.08594,187.49414 C 396.01561,188.23634 396.48045,189.31837 396.48047,190.74023 C 396.48045,191.61525 396.30858,192.34571 395.96484,192.93164 C 395.62108,193.51759 395.10545,193.97071 394.41797,194.29102 C 395.30858,194.6504 395.97264,195.16993 396.41016,195.84961 C 396.85545,196.52149 397.07811,197.36133 397.07813,198.36914 C 397.07811,200.04883 396.53123,201.34571 395.4375,202.25977 C 394.34374,203.17383 392.79296,203.63086 390.78516,203.63086 L 382.92188,203.63086"
+ id="text5695" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 442.88672,203.63086 L 442.88672,186.36914 L 446.60156,186.36914 L 453.60938,198.22852 L 453.60938,186.36914 L 457.11328,186.36914 L 457.11328,203.63086 L 453.44531,203.63086 L 446.39063,191.77148 L 446.39063,203.63086 L 442.88672,203.63086"
+ id="text5699" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 501.32813,203.63086 L 501.32813,186.36914 L 506.57813,186.36914 L 510.01172,199.50586 L 513.39844,186.36914 L 518.67188,186.36914 L 518.67188,203.63086 L 515.34375,203.63086 L 515.34375,189.70898 L 511.83984,203.63086 L 508.20703,203.63086 L 504.65625,189.70898 L 504.65625,203.63086 L 501.32813,203.63086"
+ id="text5703" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 658.22461,134.6543 L 658.22461,131.10352 L 661.77539,131.10352 L 661.77539,134.6543 L 658.22461,134.6543 M 658.22461,143.63086 L 658.22461,140.10352 L 661.77539,140.10352 L 661.77539,143.63086 L 658.22461,143.63086 M 658.24805,164.6543 L 658.24805,161.10352 L 661.77539,161.10352 L 661.77539,164.6543 L 658.24805,164.6543 M 658.24805,177.68555 L 658.24805,176.31445 C 658.90429,176.12695 659.38867,175.83789 659.70117,175.44727 C 660.01367,175.05664 660.16992,174.54883 660.16992,173.92383 L 660.16992,173.63086 L 658.22461,173.63086 L 658.22461,170.10352 L 661.77539,170.10352 L 661.77539,173.49023 C 661.77539,174.66211 661.47851,175.59961 660.88477,176.30273 C 660.29101,177.01367 659.41211,177.47461 658.24805,177.68555"
+ id="text5725" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 720.78516,126.7793 L 723.03516,126.7793 L 723.03516,133.33008 L 720.78516,133.33008 L 720.78516,126.7793 M 716.96484,126.7793 L 719.21484,126.7793 L 719.21484,133.33008 L 716.96484,133.33008 L 716.96484,126.7793 M 718.88672,156.7793 L 721.13672,156.7793 L 721.13672,163.33008 L 718.88672,163.33008 L 718.88672,156.7793"
+ id="text5731" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 772.5,140.60938 L 772.5,129.10156 L 780.85156,129.10156 L 780.85156,131.10156 L 774.83594,131.10156 L 774.83594,133.55469 L 780.33594,133.55469 L 780.33594,135.52344 L 774.83594,135.52344 L 774.83594,138.48438 L 781.13281,138.48438 L 781.13281,140.60938 L 772.5,140.60938 M 782.74219,140.60938 L 782.74219,132.11719 L 784.96875,132.11719 L 784.96875,133.125 C 785.28645,132.71355 785.66145,132.40626 786.09375,132.20313 C 786.52604,131.9948 787.00781,131.89063 787.53906,131.89063 C 788.47656,131.89063 789.17708,132.13543 789.64063,132.625 C 790.10937,133.10938 790.34374,133.84115 790.34375,134.82031 L 790.34375,140.60938 L 788.07031,140.60938 L 788.07031,135.47656 C 788.07031,134.86719 787.96614,134.4323 787.75781,134.17188 C 787.55468,133.91147 787.22135,133.78126 786.75781,133.78125 C 786.22135,133.78126 785.79687,133.94271 785.48438,134.26563 C 785.17187,134.58334 785.01562,135.01823 785.01563,135.57031 L 785.01563,140.60938 L 782.74219,140.60938 M 796.07813,140.67188 C 795.86979,140.67708 795.61979,140.6849 795.32813,140.69531 C 795.04166,140.71094 794.85937,140.71875 794.78125,140.71875 C 793.91146,140.71875 793.3151,140.55729 792.99219,140.23438 C 792.67448,139.90625 792.51562,139.26302 792.51563,138.30469 L 792.51563,133.71094 L 791.39063,133.71094 L 791.39063,132.11719 L 792.51563,132.11719 L 792.51563,129.79688 L 794.76563,129.79688 L 794.76563,132.11719 L 796.07813,132.11719 L 796.07813,133.71094 L 794.76563,133.71094 L 794.76563,138.41406 C 794.76562,138.63802 794.8151,138.78646 794.91406,138.85938 C 795.01302,138.92709 795.21614,138.96094 795.52344,138.96094 L 796.07813,138.96094 L 796.07813,140.67188 M 802.63281,138.03125 L 804.89844,138.03125 C 804.66926,138.92709 804.20572,139.63021 803.50781,140.14063 C 802.8151,140.64583 801.96874,140.89844 800.96875,140.89844 C 799.73958,140.89844 798.76562,140.48698 798.04688,139.66406 C 797.32812,138.83594 796.96875,137.71615 796.96875,136.30469 C 796.96875,134.91407 797.32292,133.81772 798.03125,133.01563 C 798.73958,132.21355 799.70833,131.81251 800.9375,131.8125 C 802.23958,131.81251 803.24478,132.20834 803.95313,133 C 804.66145,133.78647 805.01562,134.90886 805.01563,136.36719 C 805.01562,136.52865 805.01301,136.65105 805.00781,136.73438 C 805.0078,136.8125 805.0026,136.88802 804.99219,136.96094 L 799.32031,136.96094 C 799.35156,137.62761 799.51302,138.13021 799.80469,138.46875 C 800.10156,138.80729 800.52604,138.97656 801.07813,138.97656 C 801.46874,138.97656 801.78906,138.90104 802.03906,138.75 C 802.28906,138.59375 802.48697,138.35417 802.63281,138.03125 M 799.32031,135.46875 L 802.66406,135.46875 C 802.64322,134.89584 802.48958,134.46094 802.20313,134.16406 C 801.92187,133.86199 801.51562,133.71094 800.98438,133.71094 C 800.48958,133.71094 800.09895,133.86199 799.8125,134.16406 C 799.53125,134.46615 799.36718,134.90105 799.32031,135.46875 M 806.52344,140.60938 L 806.52344,132.11719 L 808.63281,132.11719 L 808.63281,133.57031 C 808.92968,132.98699 809.27604,132.5599 809.67188,132.28906 C 810.0677,132.01303 810.53906,131.87501 811.08594,131.875 C 811.17447,131.87501 811.24218,131.87761 811.28906,131.88281 C 811.34114,131.88282 811.38281,131.88543 811.41406,131.89063 L 811.42188,134.19531 L 810.66406,134.19531 C 810.04427,134.19532 809.57812,134.35678 809.26563,134.67969 C 808.95312,135.00261 808.79687,135.48178 808.79688,136.11719 L 808.79688,140.60938 L 806.52344,140.60938"
+ id="text5737" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 787.5,172.5 L 787.5,157.5 L 772.5,165 L 787.5,172.5 z "
+ id="path5745" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 810,150 L 810,165 L 780,165"
+ id="path5747" />
+ <g
+ id="g3601">
+ <path
+ id="text5753"
+ d="M 12.496094,197.64063 L 14.832032,197.64063 C 14.92057,198.27084 15.178382,198.73828 15.605469,199.04297 C 16.032548,199.34766 16.649735,199.5 17.457032,199.5 C 18.144525,199.5 18.662754,199.37761 19.011719,199.13281 C 19.36067,198.88802 19.535149,198.52604 19.535157,198.04688 C 19.535149,197.34896 18.532546,196.77084 16.527344,196.3125 C 16.501298,196.3073 16.47786,196.30209 16.457032,196.29688 C 16.404944,196.28646 16.324215,196.26823 16.214844,196.24219 C 15.141924,196.00782 14.3763,195.7448 13.917969,195.45313 C 13.511717,195.19271 13.201822,194.84245 12.988282,194.40234 C 12.774739,193.96225 12.667968,193.44272 12.667969,192.84375 C 12.667968,191.72397 13.048176,190.8659 13.808594,190.26953 C 14.569008,189.67319 15.667965,189.37501 17.105469,189.375 C 18.449212,189.37501 19.499993,189.69272 20.257813,190.32813 C 21.015616,190.96355 21.415355,191.85938 21.457032,193.01563 L 19.183594,193.01563 C 19.14192,192.45834 18.928379,192.03386 18.542969,191.74219 C 18.157546,191.45053 17.608067,191.3047 16.894532,191.30469 C 16.274735,191.3047 15.796871,191.42579 15.460938,191.66797 C 15.124997,191.91017 14.957028,192.25522 14.957032,192.70313 C 14.957028,193.31251 15.610674,193.76824 16.917969,194.07031 C 17.27213,194.15365 17.548172,194.21876 17.746094,194.26563 C 18.584629,194.47917 19.17968,194.64584 19.53125,194.76563 C 19.882805,194.88542 20.188794,195.01824 20.449219,195.16406 C 20.91796,195.42448 21.269522,195.76954 21.503907,196.19922 C 21.738272,196.62891 21.855459,197.14323 21.855469,197.74219 C 21.855459,198.94011 21.451814,199.86849 20.644532,200.52734 C 19.837232,201.1862 18.699212,201.51562 17.230469,201.51563 C 15.782548,201.51562 14.647133,201.17969 13.824219,200.50781 C 13.001301,199.83594 12.558593,198.88021 12.496094,197.64063 L 12.496094,197.64063 z M 23.566407,201.19531 L 23.566407,189.6875 L 25.824219,189.6875 L 25.824219,193.64063 C 26.131507,193.25522 26.497392,192.96485 26.921875,192.76953 C 27.34635,192.57423 27.82161,192.47657 28.347657,192.47656 C 28.84765,192.47657 29.299473,192.56251 29.703125,192.73438 C 30.106764,192.90626 30.433586,193.15105 30.683594,193.46875 C 30.855461,193.6823 30.976554,193.92709 31.046875,194.20313 C 31.117179,194.47917 31.152335,194.92188 31.152344,195.53125 L 31.152344,195.6875 L 31.152344,201.19531 L 28.894532,201.19531 L 28.894532,196.75 C 28.894525,195.69792 28.798171,195.03777 28.605469,194.76953 C 28.412755,194.50131 28.066401,194.36719 27.566407,194.36719 C 27.029944,194.36719 26.605465,194.52735 26.292969,194.84766 C 25.980466,195.16797 25.824216,195.60417 25.824219,196.15625 L 25.824219,201.19531 L 23.566407,201.19531 z M 33.191407,191.75781 L 33.191407,189.6875 L 35.464844,189.6875 L 35.464844,191.75781 L 33.191407,191.75781 z M 33.191407,201.19531 L 33.191407,192.70313 L 35.464844,192.70313 L 35.464844,201.19531 L 33.191407,201.19531 z M 37.886719,201.19531 L 37.886719,194.29688 L 36.675782,194.29688 L 36.675782,192.70313 L 37.886719,192.70313 L 37.886719,191.91406 C 37.886718,191.12241 38.091144,190.54038 38.5,190.16797 C 38.908852,189.79558 39.553383,189.60939 40.433594,189.60938 C 40.595048,189.60939 40.765621,189.61329 40.945313,189.62109 C 41.124996,189.62892 41.316402,189.64324 41.519532,189.66406 L 41.519532,191.46875 L 40.925782,191.46875 C 40.587236,191.46876 40.36458,191.51303 40.257813,191.60156 C 40.151038,191.69011 40.097653,191.85938 40.097657,192.10938 L 40.097657,192.70313 L 41.519532,192.70313 L 41.519532,194.29688 L 40.113282,194.29688 L 40.113282,201.19531 L 37.886719,201.19531 z M 46.449219,201.25781 C 46.240881,201.26302 45.992183,201.27214 45.703125,201.28516 C 45.414059,201.29818 45.230465,201.30469 45.152344,201.30469 C 44.28255,201.30469 43.687498,201.14193 43.367188,200.81641 C 43.046874,200.49089 42.886718,199.84896 42.886719,198.89063 L 42.886719,194.29688 L 41.761719,194.29688 L 41.761719,192.70313 L 42.886719,192.70313 L 42.886719,190.38281 L 45.136719,190.38281 L 45.136719,192.70313 L 46.449219,192.70313 L 46.449219,194.29688 L 45.136719,194.29688 L 45.136719,199 C 45.136716,199.22396 45.186195,199.3711 45.285157,199.44141 C 45.384111,199.51172 45.587236,199.54688 45.894532,199.54688 L 46.449219,199.54688 L 46.449219,201.25781 z "
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT" />
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 24.746094,207.125 L 13.496094,222.125 L 20.996094,222.125 L 20.996094,229.625 L 28.496094,229.625 L 28.496094,222.125 L 35.996094,222.125 L 24.746094,207.125 z "
+ id="path5757" />
+ </g>
+ <g
+ id="g5795"
+ transform="translate(727.5,0)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text5797"
+ y="201.19531"
+ x="31.8125"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ xml:space="preserve"><tspan
+ y="201.19531"
+ x="31.8125"
+ id="tspan5799"
+ sodipodi:role="line">Shift</tspan></text>
+ <path
+ id="path5801"
+ d="M 27.25,207.125 L 16,222.125 L 23.5,222.125 L 23.5,229.625 L 31,229.625 L 31,222.125 L 38.5,222.125 L 27.25,207.125 z "
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 576.90234,189.63867 L 576.90234,192.20508 L 566.4375,196.48242 L 576.90234,200.74805 L 576.90234,203.31445 L 563.09766,197.63086 L 563.09766,195.29883 L 576.90234,189.63867 M 568.21875,237.68555 L 568.21875,236.31445 C 568.875,236.12695 569.35937,235.83789 569.67188,235.44727 C 569.98437,235.05664 570.14062,234.54883 570.14063,233.92383 L 570.14063,233.63086 L 568.21875,233.63086 L 568.21875,230.10352 L 571.76953,230.10352 L 571.76953,233.49023 C 571.76953,234.6543 571.46875,235.59179 570.86719,236.30273 C 570.27343,237.01367 569.39062,237.47461 568.21875,237.68555"
+ id="text5803" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 623.09766,189.63867 L 636.90234,195.29883 L 636.90234,197.63086 L 623.09766,203.31445 L 623.09766,200.74805 L 633.58594,196.48242 L 623.09766,192.20508 L 623.09766,189.63867 M 628.21875,233.63086 L 628.21875,230.10352 L 631.74609,230.10352 L 631.74609,233.63086 L 628.21875,233.63086"
+ id="text5813" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 688.44727,198.61523 C 688.44726,198.5293 688.44335,198.41602 688.43555,198.27539 C 688.42773,198.12696 688.42382,198.01758 688.42383,197.94727 C 688.42382,197.25977 688.49804,196.68946 688.64648,196.23633 C 688.79492,195.7754 689.0332,195.34571 689.36133,194.94727 C 689.61132,194.6504 689.98242,194.31056 690.47461,193.92773 C 690.9746,193.54493 691.29882,193.26759 691.44727,193.0957 C 691.75976,192.74415 691.9746,192.42775 692.0918,192.14648 C 692.20898,191.86525 692.26757,191.55665 692.26758,191.2207 C 692.26757,190.47853 692.06054,189.9004 691.64648,189.48633 C 691.23241,189.07228 690.65429,188.86525 689.91211,188.86523 C 689.16992,188.86525 688.58398,189.11525 688.1543,189.61523 C 687.73242,190.10744 687.50195,190.80275 687.46289,191.70117 L 684.1582,191.70117 L 684.1582,191.33789 C 684.1582,189.68947 684.67773,188.37697 685.7168,187.40039 C 686.76367,186.41603 688.16992,185.92385 689.93555,185.92383 C 691.74023,185.92385 693.17382,186.38869 694.23633,187.31836 C 695.30663,188.24025 695.84178,189.47853 695.8418,191.0332 C 695.84178,191.58009 695.77928,192.07228 695.6543,192.50977 C 695.5371,192.93946 695.3535,193.33399 695.10352,193.69336 C 694.78319,194.14649 694.2871,194.63868 693.61523,195.16992 C 692.95116,195.69337 692.54882,196.01759 692.4082,196.14258 C 692.11132,196.43165 691.89648,196.73634 691.76367,197.05664 C 691.63866,197.37696 691.57616,197.75977 691.57617,198.20508 C 691.57616,198.24415 691.58007,198.31055 691.58789,198.4043 C 691.59569,198.49805 691.5996,198.56836 691.59961,198.61523 L 688.44727,198.61523 M 688.2832,203.63086 L 688.2832,200.19727 L 691.74023,200.19727 L 691.74023,203.63086 L 688.2832,203.63086 M 686.31445,235.85742 L 692.12695,215.92383 L 693.73242,215.92383 L 687.89648,235.85742 L 686.31445,235.85742"
+ id="text5819" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 18,271.78906 C 17.911447,273.09636 17.406239,274.13542 16.484375,274.90625 C 15.5677,275.67708 14.369784,276.0625 12.890625,276.0625 C 11.187496,276.0625 9.8619761,275.53125 8.9140625,274.46875 C 7.971353,273.40625 7.4999993,271.91667 7.5,270 C 7.4999993,268.04167 7.9817696,266.54168 8.9453125,265.5 C 9.9088511,264.45834 11.294266,263.93751 13.101563,263.9375 C 14.570305,263.93751 15.729158,264.29689 16.578125,265.01563 C 17.432281,265.72918 17.901031,266.73959 17.984375,268.04688 L 15.648438,268.04688 C 15.54947,267.39584 15.283846,266.90105 14.851563,266.5625 C 14.419263,266.21876 13.83593,266.04688 13.101563,266.04688 C 12.059891,266.04688 11.268225,266.38282 10.726563,267.05469 C 10.184892,267.72657 9.9140594,268.70834 9.9140625,270 C 9.9140594,271.25 10.182288,272.21615 10.71875,272.89844 C 11.260412,273.58073 12.028641,273.92188 13.023438,273.92188 C 13.742181,273.92188 14.330722,273.73959 14.789063,273.375 C 15.247387,273.00521 15.544262,272.47657 15.679688,271.78906 L 18,271.78906 M 23.46875,275.80469 C 23.260412,275.8099 23.010412,275.81771 22.71875,275.82813 C 22.432288,275.84375 22.249996,275.85156 22.171875,275.85156 C 21.302081,275.85156 20.705727,275.6901 20.382813,275.36719 C 20.065103,275.03906 19.906249,274.39583 19.90625,273.4375 L 19.90625,268.84375 L 18.78125,268.84375 L 18.78125,267.25 L 19.90625,267.25 L 19.90625,264.92969 L 22.15625,264.92969 L 22.15625,267.25 L 23.46875,267.25 L 23.46875,268.84375 L 22.15625,268.84375 L 22.15625,273.54688 C 22.156247,273.77084 22.205726,273.91927 22.304688,273.99219 C 22.403642,274.0599 22.606767,274.09375 22.914063,274.09375 L 23.46875,274.09375 L 23.46875,275.80469 M 24.789063,275.74219 L 24.789063,267.25 L 26.898438,267.25 L 26.898438,268.70313 C 27.195309,268.1198 27.541663,267.69272 27.9375,267.42188 C 28.333329,267.14584 28.804682,267.00782 29.351563,267.00781 C 29.440099,267.00782 29.507807,267.01043 29.554688,267.01563 C 29.606765,267.01563 29.648432,267.01824 29.679688,267.02344 L 29.6875,269.32813 L 28.929688,269.32813 C 28.309891,269.32813 27.843746,269.48959 27.53125,269.8125 C 27.218747,270.13542 27.062497,270.61459 27.0625,271.25 L 27.0625,275.74219 L 24.789063,275.74219 M 31.023438,275.74219 L 31.023438,264.23438 L 33.296875,264.23438 L 33.296875,275.74219 L 31.023438,275.74219"
+ id="text5827" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 162.96875,266.49609 L 161.375,271.39453 L 164.57031,271.39453 L 162.96875,266.49609 M 161.59375,264.19141 L 164.32813,264.19141 L 168.47656,275.69922 L 165.99219,275.69922 L 165.21094,273.33203 L 160.75,273.33203 L 159.99219,275.69922 L 157.5,275.69922 L 161.59375,264.19141 M 169.53906,275.69922 L 169.53906,264.19141 L 171.8125,264.19141 L 171.8125,275.69922 L 169.53906,275.69922 M 177.64063,275.76172 C 177.43229,275.76693 177.18229,275.77474 176.89063,275.78516 C 176.60416,275.80078 176.42187,275.80859 176.34375,275.80859 C 175.47396,275.80859 174.8776,275.64714 174.55469,275.32422 C 174.23698,274.99609 174.07812,274.35287 174.07813,273.39453 L 174.07813,268.80078 L 172.95313,268.80078 L 172.95313,267.20703 L 174.07813,267.20703 L 174.07813,264.88672 L 176.32813,264.88672 L 176.32813,267.20703 L 177.64063,267.20703 L 177.64063,268.80078 L 176.32813,268.80078 L 176.32813,273.50391 C 176.32812,273.72787 176.3776,273.8763 176.47656,273.94922 C 176.57552,274.01693 176.77864,274.05078 177.08594,274.05078 L 177.64063,274.05078 L 177.64063,275.76172"
+ id="text5831" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 612.96875,266.53906 L 611.375,271.4375 L 614.57031,271.4375 L 612.96875,266.53906 M 611.59375,264.23438 L 614.32813,264.23438 L 618.47656,275.74219 L 615.99219,275.74219 L 615.21094,273.375 L 610.75,273.375 L 609.99219,275.74219 L 607.5,275.74219 L 611.59375,264.23438 M 619.53906,275.74219 L 619.53906,264.23438 L 621.8125,264.23438 L 621.8125,275.74219 L 619.53906,275.74219 M 627.64063,275.80469 C 627.43229,275.8099 627.18229,275.81771 626.89063,275.82813 C 626.60416,275.84375 626.42187,275.85156 626.34375,275.85156 C 625.47396,275.85156 624.8776,275.6901 624.55469,275.36719 C 624.23698,275.03906 624.07812,274.39583 624.07813,273.4375 L 624.07813,268.84375 L 622.95313,268.84375 L 622.95313,267.25 L 624.07813,267.25 L 624.07813,264.92969 L 626.32813,264.92969 L 626.32813,267.25 L 627.64063,267.25 L 627.64063,268.84375 L 626.32813,268.84375 L 626.32813,273.54688 C 626.32812,273.77084 626.3776,273.91927 626.47656,273.99219 C 626.57552,274.0599 626.77864,274.09375 627.08594,274.09375 L 627.64063,274.09375 L 627.64063,275.80469 M 642,274.38281 C 641.57291,274.96094 641.08593,275.38542 640.53906,275.65625 C 639.99739,275.92708 639.35937,276.0625 638.625,276.0625 C 637.01562,276.0625 635.71093,275.50521 634.71094,274.39063 C 633.71614,273.27084 633.21875,271.80209 633.21875,269.98438 C 633.21875,268.15105 633.71614,266.6849 634.71094,265.58594 C 635.70573,264.48699 637.03125,263.93751 638.6875,263.9375 C 640.1302,263.93751 641.30728,264.28387 642.21875,264.97656 C 643.1302,265.66407 643.67186,266.61199 643.84375,267.82031 L 641.42969,267.82031 C 641.28385,267.22136 640.98437,266.76563 640.53125,266.45313 C 640.08333,266.14063 639.49739,265.98438 638.77344,265.98438 C 637.80989,265.98438 637.05208,266.33855 636.5,267.04688 C 635.95312,267.75001 635.67968,268.72397 635.67969,269.96875 C 635.67968,271.21875 635.96614,272.19792 636.53906,272.90625 C 637.11197,273.61459 637.89843,273.96875 638.89844,273.96875 C 639.64843,273.96875 640.27603,273.7474 640.78125,273.30469 C 641.28645,272.86198 641.59895,272.25521 641.71875,271.48438 L 639.10938,271.48438 L 639.10938,269.51563 L 643.875,269.51563 L 643.875,275.74219 L 642.28906,275.74219 L 642,274.38281 M 645.96094,275.74219 L 645.96094,267.25 L 648.07031,267.25 L 648.07031,268.70313 C 648.36718,268.1198 648.71354,267.69272 649.10938,267.42188 C 649.5052,267.14584 649.97656,267.00782 650.52344,267.00781 C 650.61197,267.00782 650.67968,267.01043 650.72656,267.01563 C 650.77864,267.01563 650.82031,267.01824 650.85156,267.02344 L 650.85938,269.32813 L 650.10156,269.32813 C 649.48177,269.32813 649.01562,269.48959 648.70313,269.8125 C 648.39062,270.13542 648.23437,270.61459 648.23438,271.25 L 648.23438,275.74219 L 645.96094,275.74219"
+ id="text5835" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 828,271.78906 C 827.91145,273.09636 827.40624,274.13542 826.48438,274.90625 C 825.5677,275.67708 824.36978,276.0625 822.89063,276.0625 C 821.1875,276.0625 819.86198,275.53125 818.91406,274.46875 C 817.97135,273.40625 817.5,271.91667 817.5,270 C 817.5,268.04167 817.98177,266.54168 818.94531,265.5 C 819.90885,264.45834 821.29427,263.93751 823.10156,263.9375 C 824.5703,263.93751 825.72916,264.29689 826.57813,265.01563 C 827.43228,265.72918 827.90103,266.73959 827.98438,268.04688 L 825.64844,268.04688 C 825.54947,267.39584 825.28385,266.90105 824.85156,266.5625 C 824.41926,266.21876 823.83593,266.04688 823.10156,266.04688 C 822.05989,266.04688 821.26822,266.38282 820.72656,267.05469 C 820.18489,267.72657 819.91406,268.70834 819.91406,270 C 819.91406,271.25 820.18229,272.21615 820.71875,272.89844 C 821.26041,273.58073 822.02864,273.92188 823.02344,273.92188 C 823.74218,273.92188 824.33072,273.73959 824.78906,273.375 C 825.24739,273.00521 825.54426,272.47657 825.67969,271.78906 L 828,271.78906 M 833.46875,275.80469 C 833.26041,275.8099 833.01041,275.81771 832.71875,275.82813 C 832.43229,275.84375 832.25,275.85156 832.17188,275.85156 C 831.30208,275.85156 830.70573,275.6901 830.38281,275.36719 C 830.0651,275.03906 829.90625,274.39583 829.90625,273.4375 L 829.90625,268.84375 L 828.78125,268.84375 L 828.78125,267.25 L 829.90625,267.25 L 829.90625,264.92969 L 832.15625,264.92969 L 832.15625,267.25 L 833.46875,267.25 L 833.46875,268.84375 L 832.15625,268.84375 L 832.15625,273.54688 C 832.15625,273.77084 832.20573,273.91927 832.30469,273.99219 C 832.40364,274.0599 832.60677,274.09375 832.91406,274.09375 L 833.46875,274.09375 L 833.46875,275.80469 M 834.78906,275.74219 L 834.78906,267.25 L 836.89844,267.25 L 836.89844,268.70313 C 837.19531,268.1198 837.54166,267.69272 837.9375,267.42188 C 838.33333,267.14584 838.80468,267.00782 839.35156,267.00781 C 839.4401,267.00782 839.50781,267.01043 839.55469,267.01563 C 839.60677,267.01563 839.64843,267.01824 839.67969,267.02344 L 839.6875,269.32813 L 838.92969,269.32813 C 838.30989,269.32813 837.84375,269.48959 837.53125,269.8125 C 837.21875,270.13542 837.0625,270.61459 837.0625,271.25 L 837.0625,275.74219 L 834.78906,275.74219 M 841.02344,275.74219 L 841.02344,264.23438 L 843.29688,264.23438 L 843.29688,275.74219 L 841.02344,275.74219"
+ id="text5839" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 108.94531,264.01953 L 105.64844,252.51172 L 108.10156,252.51172 L 110.07031,260.62891 L 111.73438,252.51172 L 114.25781,252.51172 L 115.92188,260.62891 L 117.89063,252.51172 L 120.32031,252.51172 L 117.03125,264.01953 L 114.77344,264.01953 L 112.99219,255.20703 L 111.20313,264.01953 L 108.94531,264.01953 M 121.5,254.58203 L 121.5,252.51172 L 123.77344,252.51172 L 123.77344,254.58203 L 121.5,254.58203 M 121.5,264.01953 L 121.5,255.52734 L 123.77344,255.52734 L 123.77344,264.01953 L 121.5,264.01953 M 125.79688,264.01953 L 125.79688,255.52734 L 128.02344,255.52734 L 128.02344,256.53516 C 128.34114,256.12371 128.71614,255.81641 129.14844,255.61328 C 129.58072,255.40496 130.06249,255.30079 130.59375,255.30078 C 131.53124,255.30079 132.23176,255.54558 132.69531,256.03516 C 133.16405,256.51954 133.39843,257.25131 133.39844,258.23047 L 133.39844,264.01953 L 131.125,264.01953 L 131.125,258.88672 C 131.12499,258.27735 131.02083,257.84245 130.8125,257.58203 C 130.60937,257.32162 130.27604,257.19141 129.8125,257.19141 C 129.27604,257.19141 128.85156,257.35287 128.53906,257.67578 C 128.22656,257.9935 128.07031,258.42839 128.07031,258.98047 L 128.07031,264.01953 L 125.79688,264.01953 M 106.64844,284.01953 L 106.64844,272.51172 L 109.01563,272.51172 L 109.01563,277.23828 L 113.50781,272.51172 L 116.46875,272.51172 L 111.875,277.16797 L 116.88281,284.01953 L 113.99219,284.01953 L 110.24219,278.75391 L 109.01563,279.97266 L 109.01563,284.01953 L 106.64844,284.01953 M 122.9375,281.44141 L 125.20313,281.44141 C 124.97395,282.33724 124.51041,283.04037 123.8125,283.55078 C 123.11979,284.05599 122.27343,284.30859 121.27344,284.30859 C 120.04427,284.30859 119.07031,283.89714 118.35156,283.07422 C 117.63281,282.2461 117.27344,281.1263 117.27344,279.71484 C 117.27344,278.32422 117.6276,277.22787 118.33594,276.42578 C 119.04427,275.62371 120.01302,275.22267 121.24219,275.22266 C 122.54427,275.22267 123.54947,275.6185 124.25781,276.41016 C 124.96614,277.19662 125.3203,278.31902 125.32031,279.77734 C 125.3203,279.93881 125.3177,280.0612 125.3125,280.14453 C 125.31249,280.22266 125.30728,280.29818 125.29688,280.37109 L 119.625,280.37109 C 119.65625,281.03776 119.81771,281.54037 120.10938,281.87891 C 120.40625,282.21745 120.83073,282.38672 121.38281,282.38672 C 121.77343,282.38672 122.09374,282.3112 122.34375,282.16016 C 122.59374,282.00391 122.79166,281.76433 122.9375,281.44141 M 119.625,278.87891 L 122.96875,278.87891 C 122.94791,278.306 122.79426,277.8711 122.50781,277.57422 C 122.22656,277.27214 121.82031,277.1211 121.28906,277.12109 C 120.79427,277.1211 120.40364,277.27214 120.11719,277.57422 C 119.83593,277.87631 119.67187,278.3112 119.625,278.87891 M 127.16406,287.42578 L 127.16406,285.58984 C 127.23698,285.60026 127.3125,285.60807 127.39063,285.61328 C 127.46875,285.61849 127.57031,285.62109 127.69531,285.62109 C 128.14323,285.62109 128.47916,285.51432 128.70313,285.30078 C 128.92708,285.09245 129.03906,284.77734 129.03906,284.35547 C 129.03906,284.32422 129.03385,284.28516 129.02344,284.23828 C 129.01302,284.19141 129.0026,284.15234 128.99219,284.12109 L 125.92969,275.52734 L 128.42969,275.52734 L 130.21875,281.65234 L 131.96094,275.52734 L 134.35156,275.52734 L 130.85938,285.54297 C 130.59895,286.29297 130.27343,286.80338 129.88281,287.07422 C 129.49218,287.35026 128.90625,287.48828 128.125,287.48828 C 127.98437,287.48828 127.83333,287.48307 127.67188,287.47266 C 127.51041,287.46224 127.34114,287.44661 127.16406,287.42578"
+ id="text5872" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 708.94531,264.01953 L 705.64844,252.51172 L 708.10156,252.51172 L 710.07031,260.62891 L 711.73438,252.51172 L 714.25781,252.51172 L 715.92188,260.62891 L 717.89063,252.51172 L 720.32031,252.51172 L 717.03125,264.01953 L 714.77344,264.01953 L 712.99219,255.20703 L 711.20313,264.01953 L 708.94531,264.01953 M 721.5,254.58203 L 721.5,252.51172 L 723.77344,252.51172 L 723.77344,254.58203 L 721.5,254.58203 M 721.5,264.01953 L 721.5,255.52734 L 723.77344,255.52734 L 723.77344,264.01953 L 721.5,264.01953 M 725.79688,264.01953 L 725.79688,255.52734 L 728.02344,255.52734 L 728.02344,256.53516 C 728.34114,256.12371 728.71614,255.81641 729.14844,255.61328 C 729.58072,255.40496 730.06249,255.30079 730.59375,255.30078 C 731.53124,255.30079 732.23176,255.54558 732.69531,256.03516 C 733.16405,256.51954 733.39843,257.25131 733.39844,258.23047 L 733.39844,264.01953 L 731.125,264.01953 L 731.125,258.88672 C 731.12499,258.27735 731.02083,257.84245 730.8125,257.58203 C 730.60937,257.32162 730.27604,257.19141 729.8125,257.19141 C 729.27604,257.19141 728.85156,257.35287 728.53906,257.67578 C 728.22656,257.9935 728.07031,258.42839 728.07031,258.98047 L 728.07031,264.01953 L 725.79688,264.01953 M 706.64844,284.01953 L 706.64844,272.51172 L 709.01563,272.51172 L 709.01563,277.23828 L 713.50781,272.51172 L 716.46875,272.51172 L 711.875,277.16797 L 716.88281,284.01953 L 713.99219,284.01953 L 710.24219,278.75391 L 709.01563,279.97266 L 709.01563,284.01953 L 706.64844,284.01953 M 722.9375,281.44141 L 725.20313,281.44141 C 724.97395,282.33724 724.51041,283.04037 723.8125,283.55078 C 723.11979,284.05599 722.27343,284.30859 721.27344,284.30859 C 720.04427,284.30859 719.07031,283.89714 718.35156,283.07422 C 717.63281,282.2461 717.27344,281.1263 717.27344,279.71484 C 717.27344,278.32422 717.6276,277.22787 718.33594,276.42578 C 719.04427,275.62371 720.01302,275.22267 721.24219,275.22266 C 722.54427,275.22267 723.54947,275.6185 724.25781,276.41016 C 724.96614,277.19662 725.3203,278.31902 725.32031,279.77734 C 725.3203,279.93881 725.3177,280.0612 725.3125,280.14453 C 725.31249,280.22266 725.30728,280.29818 725.29688,280.37109 L 719.625,280.37109 C 719.65625,281.03776 719.81771,281.54037 720.10938,281.87891 C 720.40625,282.21745 720.83073,282.38672 721.38281,282.38672 C 721.77343,282.38672 722.09374,282.3112 722.34375,282.16016 C 722.59374,282.00391 722.79166,281.76433 722.9375,281.44141 M 719.625,278.87891 L 722.96875,278.87891 C 722.94791,278.306 722.79426,277.8711 722.50781,277.57422 C 722.22656,277.27214 721.82031,277.1211 721.28906,277.12109 C 720.79427,277.1211 720.40364,277.27214 720.11719,277.57422 C 719.83593,277.87631 719.67187,278.3112 719.625,278.87891 M 727.16406,287.42578 L 727.16406,285.58984 C 727.23698,285.60026 727.3125,285.60807 727.39063,285.61328 C 727.46875,285.61849 727.57031,285.62109 727.69531,285.62109 C 728.14323,285.62109 728.47916,285.51432 728.70313,285.30078 C 728.92708,285.09245 729.03906,284.77734 729.03906,284.35547 C 729.03906,284.32422 729.03385,284.28516 729.02344,284.23828 C 729.01302,284.19141 729.0026,284.15234 728.99219,284.12109 L 725.92969,275.52734 L 728.42969,275.52734 L 730.21875,281.65234 L 731.96094,275.52734 L 734.35156,275.52734 L 730.85938,285.54297 C 730.59895,286.29297 730.27343,286.80338 729.88281,287.07422 C 729.49218,287.35026 728.90625,287.48828 728.125,287.48828 C 727.98437,287.48828 727.83333,287.48307 727.67188,287.47266 C 727.51041,287.46224 727.34114,287.44661 727.16406,287.42578"
+ id="text5878" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 759.98438,275.60938 L 759.98438,264.10156 L 763.48438,264.10156 L 765.77344,272.85938 L 768.03125,264.10156 L 771.54688,264.10156 L 771.54688,275.60938 L 769.32813,275.60938 L 769.32813,266.32813 L 766.99219,275.60938 L 764.57031,275.60938 L 762.20313,266.32813 L 762.20313,275.60938 L 759.98438,275.60938 M 778.99219,273.03125 L 781.25781,273.03125 C 781.02864,273.92709 780.5651,274.63021 779.86719,275.14063 C 779.17447,275.64583 778.32812,275.89844 777.32813,275.89844 C 776.09896,275.89844 775.125,275.48698 774.40625,274.66406 C 773.6875,273.83594 773.32812,272.71615 773.32813,271.30469 C 773.32812,269.91407 773.68229,268.81772 774.39063,268.01563 C 775.09896,267.21355 776.06771,266.81251 777.29688,266.8125 C 778.59895,266.81251 779.60416,267.20834 780.3125,268 C 781.02083,268.78647 781.37499,269.90886 781.375,271.36719 C 781.37499,271.52865 781.37239,271.65105 781.36719,271.73438 C 781.36718,271.8125 781.36197,271.88802 781.35156,271.96094 L 775.67969,271.96094 C 775.71093,272.62761 775.87239,273.13021 776.16406,273.46875 C 776.46093,273.80729 776.88541,273.97656 777.4375,273.97656 C 777.82812,273.97656 778.14843,273.90104 778.39844,273.75 C 778.64843,273.59375 778.84635,273.35417 778.99219,273.03125 M 775.67969,270.46875 L 779.02344,270.46875 C 779.0026,269.89584 778.84895,269.46094 778.5625,269.16406 C 778.28124,268.86199 777.87499,268.71094 777.34375,268.71094 C 776.84895,268.71094 776.45833,268.86199 776.17188,269.16406 C 775.89062,269.46615 775.72656,269.90105 775.67969,270.46875 M 782.88281,275.60938 L 782.88281,267.11719 L 785.10938,267.11719 L 785.10938,268.125 C 785.42708,267.71355 785.80208,267.40626 786.23438,267.20313 C 786.66666,266.9948 787.14843,266.89063 787.67969,266.89063 C 788.61718,266.89063 789.3177,267.13543 789.78125,267.625 C 790.24999,268.10938 790.48437,268.84115 790.48438,269.82031 L 790.48438,275.60938 L 788.21094,275.60938 L 788.21094,270.47656 C 788.21093,269.86719 788.10676,269.4323 787.89844,269.17188 C 787.69531,268.91147 787.36197,268.78126 786.89844,268.78125 C 786.36197,268.78126 785.9375,268.94272 785.625,269.26563 C 785.3125,269.58334 785.15625,270.01823 785.15625,270.57031 L 785.15625,275.60938 L 782.88281,275.60938 M 800.01563,267.11719 L 800.01563,275.60938 L 797.78906,275.60938 L 797.78906,274.60156 C 797.46614,275.01302 797.08854,275.32292 796.65625,275.53125 C 796.22916,275.73437 795.74739,275.83594 795.21094,275.83594 C 794.27864,275.83594 793.57812,275.59115 793.10938,275.10156 C 792.64583,274.61198 792.41406,273.88021 792.41406,272.90625 L 792.41406,267.11719 L 794.6875,267.11719 L 794.6875,272.25 C 794.6875,272.85417 794.78906,273.28646 794.99219,273.54688 C 795.19531,273.80209 795.53125,273.92969 796,273.92969 C 796.53124,273.92969 796.95312,273.77084 797.26563,273.45313 C 797.58333,273.13021 797.74218,272.69271 797.74219,272.14063 L 797.74219,267.11719 L 800.01563,267.11719"
+ id="text5884" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 104.41406,17.103516 L 104.41406,10.212891 L 101.74219,10.212891 L 101.74219,8.7949219 L 101.94141,8.7949219 C 102.89453,8.7949367 103.58984,8.6621243 104.02734,8.3964844 C 104.47265,8.1308749 104.73828,7.6894691 104.82422,7.0722656 L 106.59375,7.0722656 L 106.59375,17.103516 L 104.41406,17.103516 M 106.72266,36.369141 L 106.72266,39.826172 L 103.24219,39.826172 L 103.24219,36.369141 L 106.72266,36.369141 M 105.89063,41.173828 L 106.80469,48.978516 L 106.80469,53.630859 L 103.19531,53.630859 L 103.19531,48.978516 L 104.10938,41.173828 L 105.89063,41.173828"
+ id="text5890" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 160.85156,47.103516 C 160.875,46.197273 161.08984,45.431649 161.49609,44.806641 C 161.91015,44.18165 162.63672,43.548838 163.67578,42.908203 C 163.82422,42.822276 164.03125,42.701183 164.29688,42.544922 C 165.74218,41.724621 166.46484,40.931653 166.46484,40.166016 C 166.46484,39.720717 166.32031,39.369155 166.03125,39.111328 C 165.74218,38.85353 165.34375,38.724624 164.83594,38.724609 C 164.27343,38.724624 163.83984,38.88478 163.53516,39.205078 C 163.23047,39.517592 163.07812,39.966811 163.07813,40.552734 L 163.07813,40.646484 L 161.03906,40.646484 C 161.03906,39.498061 161.37891,38.615249 162.05859,37.998047 C 162.73828,37.380876 163.71093,37.072282 164.97656,37.072266 C 166.11718,37.072282 167.02343,37.353532 167.69531,37.916016 C 168.37499,38.470718 168.71484,39.212905 168.71484,40.142578 C 168.71484,40.814466 168.53905,41.39259 168.1875,41.876953 C 167.83593,42.361339 167.14843,42.919933 166.125,43.552734 C 165.89843,43.701182 165.57812,43.896494 165.16406,44.138672 C 164.22656,44.685556 163.69922,45.115243 163.58203,45.427734 L 168.62109,45.427734 L 168.62109,47.103516 L 160.85156,47.103516"
+ id="text5910" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 220.92188,44.033203 L 223.05469,44.033203 C 223.07031,44.603525 223.22265,45.029305 223.51172,45.310547 C 223.80078,45.591805 224.23437,45.73243 224.8125,45.732422 C 225.36718,45.73243 225.79687,45.599617 226.10156,45.333984 C 226.40624,45.068368 226.55859,44.689462 226.55859,44.197266 C 226.55859,43.697276 226.38281,43.322276 226.03125,43.072266 C 225.67968,42.814464 225.15234,42.685558 224.44922,42.685547 L 224.10938,42.685547 L 224.10938,41.291016 L 224.35547,41.291016 C 225.0039,41.291028 225.48046,41.181653 225.78516,40.962891 C 226.09765,40.736341 226.2539,40.392591 226.25391,39.931641 C 226.2539,39.54103 226.12109,39.232436 225.85547,39.005859 C 225.58984,38.771499 225.23437,38.654312 224.78906,38.654297 C 224.29687,38.654312 223.91797,38.787124 223.65234,39.052734 C 223.38672,39.310561 223.2539,39.681655 223.25391,40.166016 L 223.25391,40.236328 L 221.16797,40.236328 C 221.19141,39.212905 221.51953,38.431656 222.15234,37.892578 C 222.79297,37.345719 223.70312,37.072282 224.88281,37.072266 C 225.99218,37.072282 226.86718,37.314469 227.50781,37.798828 C 228.15624,38.283218 228.48046,38.943374 228.48047,39.779297 C 228.48046,40.21681 228.36718,40.603529 228.14063,40.939453 C 227.92187,41.26759 227.59374,41.537121 227.15625,41.748047 C 227.72656,41.974621 228.15624,42.291027 228.44531,42.697266 C 228.74218,43.095714 228.89062,43.564463 228.89063,44.103516 C 228.89062,45.119149 228.52343,45.923836 227.78906,46.517578 C 227.06249,47.103522 226.07031,47.396491 224.8125,47.396484 C 223.57031,47.396491 222.60937,47.107428 221.92969,46.529297 C 221.25781,45.95118 220.92187,45.134774 220.92188,44.080078 L 220.92188,44.033203"
+ id="text5922" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 278.92969,21.685547 C 279.86719,21.037112 280.53125,20.439456 280.92188,19.892578 C 281.32031,19.345707 281.51953,18.75977 281.51953,18.134766 C 281.51953,17.837896 281.47265,17.525397 281.37891,17.197266 C 281.28515,16.861335 281.14843,16.509773 280.96875,16.142578 L 278.90625,16.142578 L 278.90625,14.841797 L 280.17188,14.841797 C 279.82812,14.162119 279.57812,13.556651 279.42188,13.025391 C 279.26562,12.494152 279.1875,11.998059 279.1875,11.537109 C 279.1875,10.146498 279.69531,9.021499 280.71094,8.1621094 C 281.73437,7.3027507 283.08203,6.8730636 284.75391,6.8730469 C 286.5664,6.8730636 287.98827,7.3379069 289.01953,8.2675781 C 290.05077,9.1972801 290.61327,10.517591 290.70703,12.228516 L 287.47266,12.228516 C 287.41015,11.345715 287.15624,10.669935 286.71094,10.201172 C 286.26562,9.7324358 285.65624,9.498061 284.88281,9.4980469 C 284.14843,9.498061 283.58203,9.6894671 283.18359,10.072266 C 282.79296,10.455091 282.59765,11.005872 282.59766,11.724609 C 282.59765,12.138683 282.84375,12.888683 283.33594,13.974609 C 283.50781,14.349619 283.63671,14.638681 283.72266,14.841797 L 287.0625,14.841797 L 287.0625,16.142578 L 284.20313,16.142578 C 284.27343,16.43946 284.32421,16.712898 284.35547,16.962891 C 284.38671,17.212897 284.40234,17.443366 284.40234,17.654297 C 284.40234,18.216802 284.22656,18.779302 283.875,19.341797 C 283.53124,19.896488 282.94531,20.548831 282.11719,21.298828 C 282.625,21.064456 283.08203,20.892581 283.48828,20.783203 C 283.90234,20.666019 284.27734,20.607425 284.61328,20.607422 C 285.01952,20.607425 285.57421,20.701175 286.27734,20.888672 C 286.98046,21.068362 287.48046,21.158206 287.77734,21.158203 C 288.16796,21.158206 288.55077,21.095706 288.92578,20.970703 C 289.30858,20.845706 289.68749,20.6543 290.0625,20.396484 L 291.09375,22.939453 C 290.4453,23.322266 289.82421,23.611328 289.23047,23.806641 C 288.63671,24.009765 288.08202,24.111328 287.56641,24.111328 C 286.97265,24.111328 286.16796,23.955078 285.15234,23.642578 C 284.14453,23.330078 283.41406,23.173829 282.96094,23.173828 C 282.48437,23.173829 282.01953,23.251954 281.56641,23.408203 C 281.12109,23.564453 280.6875,23.798828 280.26563,24.111328 L 278.92969,21.685547 M 284.94141,40.025391 C 284.05859,40.025404 283.29687,40.345716 282.65625,40.986328 C 282.01562,41.626965 281.69531,42.384777 281.69531,43.259766 C 281.69531,44.1504 282.01171,44.912118 282.64453,45.544922 C 283.27734,46.169929 284.04296,46.482429 284.94141,46.482422 C 285.82421,46.482429 286.58202,46.169929 287.21484,45.544922 C 287.85546,44.912118 288.17577,44.1504 288.17578,43.259766 C 288.17577,42.384777 287.85546,41.626965 287.21484,40.986328 C 286.58202,40.345716 285.82421,40.025404 284.94141,40.025391 M 279.65625,36.779297 L 282.05859,39.158203 C 282.48046,38.85353 282.92578,38.626968 283.39453,38.478516 C 283.86328,38.322281 284.37109,38.244156 284.91797,38.244141 C 285.46484,38.244156 285.97655,38.322281 286.45313,38.478516 C 286.93749,38.626968 287.39062,38.85353 287.8125,39.158203 L 290.19141,36.779297 L 291.42188,38.033203 L 289.04297,40.435547 C 289.33983,40.849622 289.56249,41.294934 289.71094,41.771484 C 289.85936,42.240246 289.93358,42.736339 289.93359,43.259766 C 289.93358,43.783213 289.85936,44.279306 289.71094,44.748047 C 289.56249,45.216805 289.33983,45.666024 289.04297,46.095703 L 291.42188,48.498047 L 290.19141,49.716797 L 287.8125,47.337891 C 287.39062,47.650397 286.9414,47.880865 286.46484,48.029297 C 285.98827,48.17774 285.48046,48.251959 284.94141,48.251953 C 284.3789,48.251959 283.85937,48.17774 283.38281,48.029297 C 282.91406,47.880865 282.47265,47.650397 282.05859,47.337891 L 279.65625,49.716797 L 278.4375,48.498047 L 280.80469,46.095703 C 280.50781,45.673836 280.28515,45.23243 280.13672,44.771484 C 279.99609,44.302744 279.92578,43.798838 279.92578,43.259766 C 279.92578,42.736339 279.99609,42.240246 280.13672,41.771484 C 280.28515,41.294934 280.50781,40.849622 280.80469,40.435547 L 278.4375,38.033203 L 279.65625,36.779297"
+ id="text5928" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 352.875,47.701172 C 352.74217,49.662113 351.98436,51.220706 350.60156,52.376953 C 349.22655,53.533203 347.42968,54.111328 345.21094,54.111328 C 342.65624,54.111328 340.66796,53.314453 339.24609,51.720703 C 337.83203,50.126957 337.125,47.892584 337.125,45.017578 C 337.125,42.08009 337.84765,39.830092 339.29297,38.267578 C 340.73828,36.705095 342.8164,35.923846 345.52734,35.923828 C 347.73046,35.923846 349.46874,36.462908 350.74219,37.541016 C 352.02342,38.611343 352.72655,40.126967 352.85156,42.087891 L 349.34766,42.087891 C 349.19921,41.111341 348.80077,40.369154 348.15234,39.861328 C 347.50389,39.345717 346.6289,39.087905 345.52734,39.087891 C 343.96484,39.087905 342.77734,39.591811 341.96484,40.599609 C 341.15234,41.607434 340.74609,43.080089 340.74609,45.017578 C 340.74609,46.892585 341.14843,48.341802 341.95313,49.365234 C 342.76562,50.388675 343.91796,50.900393 345.41016,50.900391 C 346.48827,50.900393 347.37108,50.626956 348.05859,50.080078 C 348.74608,49.525395 349.19139,48.732427 349.39453,47.701172 L 352.875,47.701172"
+ id="text5946" />
+ <path
+ transform="matrix(1.16233,0,-0.444745,0.860341,0,0)"
+ style="font-size:16.72912407px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 307.52845,53.268758 L 317.31434,53.268758 L 317.31434,54.894293 L 307.52845,54.894293 L 307.52845,53.268758 M 307.52845,49.756296 L 317.31434,49.756296 L 317.31434,51.381831 L 307.52845,51.381831 L 307.52845,49.756296"
+ id="text5956" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 411.45117,50.150391 L 411.45117,46.142578 L 408.63867,50.150391 L 411.45117,50.150391 M 411.45117,53.630859 L 411.45117,51.591797 L 406.98633,51.591797 L 406.98633,49.962891 L 410.90039,44.513672 L 413.51367,44.513672 L 413.51367,50.103516 L 414.73242,50.103516 L 414.73242,51.591797 L 413.51367,51.591797 L 413.51367,53.630859 L 411.45117,53.630859 M 398.58398,54.111328 L 408.7793,36.615234 L 410.70117,36.615234 L 400.48242,54.111328 L 398.58398,54.111328 M 397.78711,46.458984 L 397.78711,40.025391 L 395.26758,40.025391 L 395.26758,38.701172 L 395.44336,38.701172 C 396.36523,38.701187 397.0332,38.576187 397.44727,38.326172 C 397.86914,38.076187 398.11914,37.658219 398.19727,37.072266 L 399.88477,37.072266 L 399.88477,46.458984 L 397.78711,46.458984"
+ id="text5960" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 467.0918,53.630859 C 467.11522,52.779298 467.32225,52.064455 467.71289,51.486328 C 468.11131,50.900393 468.80663,50.31055 469.79883,49.716797 C 469.95506,49.630863 470.16991,49.50977 470.44336,49.353516 C 471.7949,48.595708 472.47068,47.861334 472.4707,47.150391 C 472.47068,46.736335 472.33006,46.40821 472.04883,46.166016 C 471.76756,45.923836 471.38475,45.802742 470.90039,45.802734 C 470.36912,45.802742 469.95506,45.95118 469.6582,46.248047 C 469.36913,46.544929 469.22459,46.966804 469.22461,47.513672 L 469.22461,47.607422 L 467.2793,47.607422 C 467.27928,46.529304 467.6035,45.70118 468.25195,45.123047 C 468.90038,44.537118 469.82616,44.24415 471.0293,44.244141 C 472.12303,44.24415 472.99412,44.505868 473.64258,45.029297 C 474.29881,45.552742 474.62693,46.251961 474.62695,47.126953 C 474.62693,47.751959 474.45506,48.294927 474.11133,48.755859 C 473.77537,49.208989 473.11522,49.72852 472.13086,50.314453 C 471.9199,50.439456 471.63084,50.607425 471.26367,50.818359 C 470.34959,51.341799 469.83397,51.744143 469.7168,52.025391 L 474.50977,52.025391 L 474.50977,53.630859 L 467.0918,53.630859 M 458.68945,54.111328 L 468.88477,36.615234 L 470.80664,36.615234 L 460.58789,54.111328 L 458.68945,54.111328 M 457.89258,46.458984 L 457.89258,40.025391 L 455.37305,40.025391 L 455.37305,38.701172 L 455.54883,38.701172 C 456.4707,38.701187 457.13867,38.576187 457.55273,38.326172 C 457.97461,38.076187 458.22461,37.658219 458.30273,37.072266 L 459.99023,37.072266 L 459.99023,46.458984 L 457.89258,46.458984"
+ id="text5967" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 531.83203,50.150391 L 531.83203,46.142578 L 529.01953,50.150391 L 531.83203,50.150391 M 531.83203,53.630859 L 531.83203,51.591797 L 527.36719,51.591797 L 527.36719,49.962891 L 531.28125,44.513672 L 533.89453,44.513672 L 533.89453,50.103516 L 535.11328,50.103516 L 535.11328,51.591797 L 533.89453,51.591797 L 533.89453,53.630859 L 531.83203,53.630859 M 518.96484,54.111328 L 529.16016,36.615234 L 531.08203,36.615234 L 520.86328,54.111328 L 518.96484,54.111328 M 514.88672,43.599609 L 516.89063,43.599609 C 516.91406,44.130869 517.0625,44.529306 517.33594,44.794922 C 517.61718,45.052743 518.03125,45.181649 518.57813,45.181641 C 519.10937,45.181649 519.51953,45.060555 519.80859,44.818359 C 520.09765,44.568368 520.24218,44.208994 520.24219,43.740234 C 520.24218,43.271495 520.07421,42.919933 519.73828,42.685547 C 519.40234,42.443371 518.90625,42.322277 518.25,42.322266 C 518.20312,42.322277 518.14453,42.326183 518.07422,42.333984 C 518.0039,42.341808 517.94922,42.345714 517.91016,42.345703 L 517.91016,41.033203 L 518.14453,41.033203 C 518.76171,41.033216 519.21484,40.931653 519.50391,40.728516 C 519.80078,40.517591 519.94921,40.193373 519.94922,39.755859 C 519.94921,39.388686 519.82421,39.099624 519.57422,38.888672 C 519.32421,38.669937 518.98437,38.560562 518.55469,38.560547 C 518.08593,38.560562 517.72265,38.685562 517.46484,38.935547 C 517.21484,39.177749 517.08984,39.525405 517.08984,39.978516 L 517.08984,40.048828 L 515.08594,40.048828 C 515.10156,39.087905 515.41797,38.353531 516.03516,37.845703 C 516.65234,37.330094 517.52343,37.072282 518.64844,37.072266 C 519.70312,37.072282 520.53906,37.302751 521.15625,37.763672 C 521.77343,38.216812 522.08202,38.833999 522.08203,39.615234 C 522.08202,40.02931 521.97655,40.392591 521.76563,40.705078 C 521.55468,41.009778 521.23827,41.263684 520.81641,41.466797 C 521.36327,41.677746 521.77343,41.970715 522.04688,42.345703 C 522.32812,42.712902 522.46874,43.154307 522.46875,43.669922 C 522.46874,44.607431 522.11718,45.349618 521.41406,45.896484 C 520.71874,46.443367 519.77343,46.716804 518.57813,46.716797 C 517.39062,46.716804 516.47656,46.451179 515.83594,45.919922 C 515.20312,45.380868 514.88672,44.615243 514.88672,43.623047 L 514.88672,43.599609"
+ id="text5973" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 586.63477,39.404297 L 586.63477,42.498047 L 583.36523,42.498047 L 583.36523,39.474609 C 583.36523,38.482437 583.66992,37.654313 584.2793,36.990234 C 584.88867,36.326189 585.67382,35.970721 586.63477,35.923828 L 586.63477,37.119141 C 586.04101,37.259782 585.59961,37.509782 585.31055,37.869141 C 585.02148,38.220719 584.87695,38.681656 584.87695,39.251953 L 584.87695,39.404297 L 586.63477,39.404297"
+ id="text5979" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 643.36523,39.474609 L 643.36523,36.369141 L 646.63477,36.369141 L 646.63477,39.427734 C 646.63476,40.412123 646.33007,41.240247 645.7207,41.912109 C 645.11132,42.576183 644.32617,42.931651 643.36523,42.978516 L 643.36523,41.771484 C 643.95898,41.630871 644.39648,41.384778 644.67773,41.033203 C 644.96679,40.673841 645.11132,40.201185 645.11133,39.615234 L 645.11133,39.474609 L 643.36523,39.474609"
+ id="text5985" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 706.89258,53.630859 L 703.50586,53.630859 L 703.50586,47.560547 L 703.27148,47.150391 L 698.00977,47.150391 L 698.00977,45.826172 L 702.49805,45.826172 L 701.64258,44.337891 L 698.00977,44.337891 L 698.00977,43.025391 L 700.86914,43.025391 L 697.61133,37.330078 L 701.41992,37.330078 L 705.19336,44.724609 L 708.69727,37.330078 L 712.27148,37.330078 L 709.27148,43.025391 L 712.00195,43.025391 L 712.00195,44.337891 L 708.58008,44.337891 L 707.7832,45.826172 L 712.00195,45.826172 L 712.00195,47.150391 L 707.0918,47.150391 L 706.89258,47.560547 L 706.89258,53.630859"
+ id="text5991" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 764.97656,19.306641 C 765.46093,19.306645 765.8789,19.482426 766.23047,19.833984 C 766.58202,20.18555 766.7578,20.603519 766.75781,21.087891 C 766.7578,21.564455 766.58202,21.974611 766.23047,22.318359 C 765.8789,22.66211 765.46093,22.833985 764.97656,22.833984 C 764.48437,22.833985 764.06249,22.666017 763.71094,22.330078 C 763.36718,21.994142 763.1953,21.58008 763.19531,21.087891 C 763.1953,20.595706 763.36718,20.177738 763.71094,19.833984 C 764.06249,19.482426 764.48437,19.306645 764.97656,19.306641 M 757.94531,15.298828 L 771.98438,15.298828 L 771.98438,17.630859 L 757.94531,17.630859 L 757.94531,15.298828 M 764.97656,10.095703 C 765.46093,10.095717 765.8789,10.271498 766.23047,10.623047 C 766.58202,10.96681 766.7578,11.380872 766.75781,11.865234 C 766.7578,12.357433 766.58202,12.779308 766.23047,13.130859 C 765.88671,13.47462 765.46874,13.646494 764.97656,13.646484 C 764.48437,13.646494 764.06249,13.47462 763.71094,13.130859 C 763.36718,12.779308 763.1953,12.357433 763.19531,11.865234 C 763.1953,11.373059 763.36718,10.955091 763.71094,10.611328 C 764.06249,10.267591 764.48437,10.095717 764.97656,10.095703 M 759.84375,39.544922 L 765.11719,44.818359 L 770.40234,39.544922 L 772.05469,41.173828 L 766.78125,46.482422 L 772.05469,51.755859 L 770.40234,53.396484 L 765.11719,48.111328 L 759.84375,53.396484 L 758.20313,51.755859 L 763.48828,46.482422 L 758.20313,41.173828 L 759.84375,39.544922"
+ id="text5997" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 134.9707,69.826172 L 132.58008,77.173828 L 137.37305,77.173828 L 134.9707,69.826172 M 132.9082,66.369141 L 137.00977,66.369141 L 143.23242,83.630859 L 139.50586,83.630859 L 138.33398,80.080078 L 131.64258,80.080078 L 130.50586,83.630859 L 126.76758,83.630859 L 132.9082,66.369141 M 135.70898,64.166016 L 135.70898,61.283203 L 138.35742,61.283203 L 138.35742,64.166016 L 135.70898,64.166016 M 131.63086,64.166016 L 131.63086,61.283203 L 134.2793,61.283203 L 134.2793,64.166016 L 131.63086,64.166016"
+ id="text6003" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 194.9707,62.126953 C 194.5957,62.126975 194.27538,62.267599 194.00977,62.548828 C 193.74413,62.822286 193.61132,63.154317 193.61133,63.544922 C 193.61132,63.927754 193.74023,64.251973 193.99805,64.517578 C 194.26366,64.783222 194.58788,64.916034 194.9707,64.916016 C 195.36132,64.916034 195.69335,64.783222 195.9668,64.517578 C 196.24804,64.24416 196.38866,63.919942 196.38867,63.544922 C 196.38866,63.16213 196.24804,62.830099 195.9668,62.548828 C 195.69335,62.267599 195.36132,62.126975 194.9707,62.126953 M 194.9707,60.521484 C 195.81444,60.521507 196.52929,60.814476 197.11523,61.400391 C 197.70116,61.978537 197.99413,62.685568 197.99414,63.521484 C 197.99413,64.357441 197.70116,65.068378 197.11523,65.654297 C 196.52929,66.232439 195.81444,66.521501 194.9707,66.521484 C 194.13476,66.521501 193.42773,66.232439 192.84961,65.654297 C 192.27929,65.07619 191.99414,64.365254 191.99414,63.521484 C 191.99414,62.677755 192.27929,61.966819 192.84961,61.388672 C 193.42773,60.81057 194.13476,60.521507 194.9707,60.521484 M 192.7207,67.072266 L 197.23242,67.072266 L 203.23242,83.630859 L 199.50586,83.630859 L 198.33398,80.080078 L 191.64258,80.080078 L 190.50586,83.630859 L 186.76758,83.630859 L 192.7207,67.072266 M 194.9707,69.826172 L 192.58008,77.173828 L 197.37305,77.173828 L 194.9707,69.826172"
+ id="text6007" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 248.52539,83.630859 L 248.52539,66.369141 L 261.05273,66.369141 L 261.05273,69.369141 L 252.0293,69.369141 L 252.0293,73.048828 L 260.2793,73.048828 L 260.2793,76.001953 L 252.0293,76.001953 L 252.0293,80.443359 L 261.47461,80.443359 L 261.47461,83.630859 L 248.52539,83.630859 M 258.24023,60.521484 L 254.57227,64.857422 L 252.9082,64.857422 L 255.2168,60.521484 L 258.24023,60.521484"
+ id="text6011" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 313.72266,101.49056 L 313.72266,104.29134 L 314.88281,104.29134 C 315.5703,104.29135 316.07421,104.18198 316.39453,103.96322 C 316.71483,103.74448 316.87499,103.40073 316.875,102.93197 C 316.87499,102.43979 316.70311,102.07651 316.35938,101.84212 C 316.01561,101.60776 315.48436,101.49057 314.76563,101.49056 L 313.72266,101.49056 M 311.37891,100.00228 L 315.16406,100.00228 C 316.53905,100.00229 317.5703,100.23667 318.25781,100.70541 C 318.95311,101.16636 319.30077,101.85776 319.30078,102.77962 C 319.30077,103.42026 319.11327,103.96713 318.73828,104.42025 C 318.36327,104.87338 317.84374,105.18198 317.17969,105.34603 L 319.34766,109.67025 L 316.72266,109.67025 L 314.88281,105.70931 L 313.72266,105.70931 L 313.72266,109.67025 L 311.37891,109.67025 L 311.37891,100.00228 M 315,97.717125 C 314.0078,97.717141 313.08593,97.892922 312.23438,98.244469 C 311.38281,98.588234 310.61718,99.099952 309.9375,99.779625 C 309.22656,100.49058 308.67968,101.29917 308.29688,102.20541 C 307.91406,103.10385 307.72265,104.03354 307.72266,104.99447 C 307.72265,105.96323 307.90234,106.8851 308.26172,107.76009 C 308.62109,108.62729 309.14062,109.40072 309.82031,110.08041 C 310.51562,110.79135 311.30859,111.33822 312.19922,111.72103 C 313.08984,112.09603 314.01562,112.28353 314.97656,112.28353 C 315.91405,112.28353 316.82421,112.09994 317.70703,111.73275 C 318.59764,111.36556 319.40624,110.83822 320.13281,110.15072 C 320.81248,109.49447 321.33983,108.72885 321.71484,107.85384 C 322.08983,106.97885 322.27733,106.0726 322.27734,105.13509 C 322.27733,104.09604 322.10155,103.13901 321.75,102.264 C 321.40623,101.38901 320.89061,100.60386 320.20313,99.908531 C 319.49999,99.181983 318.70702,98.635109 317.82422,98.267906 C 316.94921,97.900734 316.0078,97.717141 315,97.717125 M 314.97656,96.275719 C 316.17968,96.275736 317.31249,96.502298 318.375,96.955406 C 319.4453,97.400735 320.39842,98.049172 321.23438,98.900719 C 322.03905,99.713233 322.65233,100.64292 323.07422,101.68978 C 323.49608,102.73667 323.70701,103.84604 323.70703,105.01791 C 323.70701,106.20541 323.48826,107.33041 323.05078,108.39291 C 322.61326,109.4476 321.97655,110.37728 321.14063,111.18197 C 320.30467,112.00228 319.35155,112.63119 318.28125,113.06869 C 317.21874,113.50619 316.11718,113.72494 314.97656,113.72494 C 313.81249,113.72494 312.69921,113.49838 311.63672,113.04525 C 310.57421,112.59213 309.625,111.93978 308.78906,111.08822 C 307.97656,110.26791 307.35547,109.33822 306.92578,108.29916 C 306.5039,107.25229 306.29297,106.15854 306.29297,105.01791 C 306.29297,104.22104 306.39844,103.4476 306.60938,102.69759 C 306.82031,101.93979 307.13672,101.20151 307.55859,100.48275 C 308.34765,99.154639 309.39062,98.12339 310.6875,97.389 C 311.98437,96.646829 313.41405,96.275736 314.97656,96.275719"
+ id="text6015" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 372.0293,69.064453 L 376.06055,69.064453 C 377.84179,69.064468 379.18944,69.505874 380.10352,70.388672 C 381.01756,71.263684 381.47459,72.556652 381.47461,74.267578 C 381.47459,75.939461 381.02538,77.228522 380.12695,78.134766 C 379.23632,79.033208 377.95897,79.482426 376.29492,79.482422 L 372.0293,79.482422 L 372.0293,83.630859 L 368.52539,83.630859 L 368.52539,66.369141 L 372.0293,66.369141 L 372.0293,69.064453 M 372.05273,76.599609 L 375.47461,76.599609 C 376.4121,76.599616 377.09179,76.416023 377.51367,76.048828 C 377.93554,75.673836 378.14647,75.080087 378.14648,74.267578 C 378.14647,73.509776 377.93554,72.939464 377.51367,72.556641 C 377.09179,72.166027 376.47069,71.970715 375.65039,71.970703 L 372.05273,71.970703 L 372.05273,76.599609"
+ id="text6019" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 428.08594,66.322266 L 431.67188,66.322266 L 431.67188,77.150391 C 431.67187,78.486333 431.93749,79.462895 432.46875,80.080078 C 432.99999,80.689456 433.84374,80.994143 435,80.994141 C 436.17187,80.994143 437.02343,80.689456 437.55469,80.080078 C 438.09374,79.470707 438.36327,78.494146 438.36328,77.150391 L 438.36328,66.322266 L 441.91406,66.322266 L 441.91406,77.537109 C 441.91405,79.654301 441.3203,81.279299 440.13281,82.412109 C 438.95311,83.544922 437.24999,84.111328 435.02344,84.111328 C 432.78124,84.111328 431.0625,83.548828 429.86719,82.423828 C 428.67969,81.291018 428.08594,79.662113 428.08594,77.537109 L 428.08594,66.322266 M 435.73828,64.166016 L 435.73828,61.283203 L 438.38672,61.283203 L 438.38672,64.166016 L 435.73828,64.166016 M 431.66016,64.166016 L 431.66016,61.283203 L 434.30859,61.283203 L 434.30859,64.166016 L 431.66016,64.166016"
+ id="text6023" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 488.08594,66.105469 L 491.67188,66.105469 L 491.67188,76.933594 C 491.67187,78.269536 491.93749,79.246098 492.46875,79.863281 C 492.99999,80.472659 493.84374,80.777346 495,80.777344 C 496.17187,80.777346 497.02343,80.472659 497.55469,79.863281 C 498.09374,79.25391 498.36327,78.277349 498.36328,76.933594 L 498.36328,66.105469 L 501.91406,66.105469 L 501.91406,77.320313 C 501.91405,79.437504 501.3203,81.062502 500.13281,82.195313 C 498.95311,83.328125 497.24999,83.894531 495.02344,83.894531 C 492.78124,83.894531 491.0625,83.332031 489.86719,82.207031 C 488.67969,81.074221 488.08594,79.445316 488.08594,77.320313 L 488.08594,66.105469 M 498.45703,60.304688 L 494.78906,64.640625 L 493.125,64.640625 L 495.43359,60.304688 L 498.45703,60.304688"
+ id="text6029" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 552.43945,83.630859 L 552.43945,66.369141 L 555.99023,66.369141 L 555.99023,83.630859 L 552.43945,83.630859 M 557.66602,60.521484 L 553.99805,64.857422 L 552.33398,64.857422 L 554.64258,60.521484 L 557.66602,60.521484"
+ id="text6033" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 610.18359,75 C 610.18359,76.898444 610.60546,78.375005 611.44922,79.429688 C 612.29296,80.476566 613.47265,81.000003 614.98828,81 C 616.51952,81.000003 617.71093,80.476566 618.5625,79.429688 C 619.41405,78.375005 619.83983,76.898444 619.83984,75 C 619.83983,73.101573 619.41405,71.628918 618.5625,70.582031 C 617.71093,69.527358 616.51952,69.000015 614.98828,69 C 613.47265,69.000015 612.29296,69.523452 611.44922,70.570313 C 610.60546,71.617199 610.18359,73.093761 610.18359,75 M 606.5625,75 C 606.5625,72.210949 607.32031,70.000014 608.83594,68.367188 C 610.35937,66.726579 612.41015,65.906268 614.98828,65.90625 C 617.56639,65.906268 619.61717,66.726579 621.14063,68.367188 C 622.67186,70.007826 623.43748,72.218761 623.4375,75 C 623.43748,77.781256 622.67186,79.992191 621.14063,81.632813 C 619.61717,83.273438 617.56639,84.09375 614.98828,84.09375 C 612.41015,84.09375 610.35937,83.273438 608.83594,81.632813 C 607.32031,79.992191 606.5625,77.781256 606.5625,75 M 618.44531,60.503906 L 614.77734,64.839844 L 613.11328,64.839844 L 615.42188,60.503906 L 618.44531,60.503906"
+ id="text6037" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 670.18359,75.017578 C 670.18359,76.916022 670.60546,78.392583 671.44922,79.447266 C 672.29296,80.494144 673.47265,81.017581 674.98828,81.017578 C 676.51952,81.017581 677.71093,80.494144 678.5625,79.447266 C 679.41405,78.392583 679.83983,76.916022 679.83984,75.017578 C 679.83983,73.119151 679.41405,71.646496 678.5625,70.599609 C 677.71093,69.544936 676.51952,69.017593 674.98828,69.017578 C 673.47265,69.017593 672.29296,69.54103 671.44922,70.587891 C 670.60546,71.634778 670.18359,73.111339 670.18359,75.017578 M 666.5625,75.017578 C 666.5625,72.228527 667.32031,70.017592 668.83594,68.384766 C 670.35937,66.744158 672.41015,65.923846 674.98828,65.923828 C 677.56639,65.923846 679.61717,66.744158 681.14063,68.384766 C 682.67186,70.025404 683.43748,72.23634 683.4375,75.017578 C 683.43748,77.798834 682.67186,80.009769 681.14063,81.650391 C 679.61717,83.291016 677.56639,84.111328 674.98828,84.111328 C 672.41015,84.111328 670.35937,83.291016 668.83594,81.650391 C 667.32031,80.009769 666.5625,77.798834 666.5625,75.017578 M 675.72656,64.166016 L 675.72656,61.283203 L 678.375,61.283203 L 678.375,64.166016 L 675.72656,64.166016 M 671.64844,64.166016 L 671.64844,61.283203 L 674.29688,61.283203 L 674.29688,64.166016 L 671.64844,64.166016"
+ id="text6041" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 735.5332,106.35352 L 735.5332,103.35352 L 739.44727,99.966797 L 739.44727,102.75586 L 737.04492,104.8418 L 739.44727,106.92773 L 739.44727,109.74023 L 735.5332,106.35352 M 730.4707,106.35352 L 730.4707,103.35352 L 734.4082,99.966797 L 734.4082,102.75586 L 732.00586,104.8418 L 734.4082,106.92773 L 734.4082,109.74023 L 730.4707,106.35352"
+ id="text6045" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 799.44727,103.3418 L 799.44727,106.3418 L 795.5332,109.72852 L 795.5332,106.93945 L 797.93555,104.83008 L 795.5332,102.76758 L 795.5332,99.955078 L 799.44727,103.3418 M 794.4082,103.3418 L 794.4082,106.3418 L 790.4707,109.72852 L 790.4707,106.93945 L 792.86133,104.83008 L 790.4707,102.76758 L 790.4707,99.955078 L 794.4082,103.3418"
+ id="text6051" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 883.81641,76.535881 L 886.23047,76.535881 L 886.23047,85.418694 L 883.81641,85.418694 L 883.81641,76.535881 M 883.81641,64.535881 L 886.23047,64.535881 L 886.23047,73.418694 L 883.81641,73.418694 L 883.81641,64.535881 M 877.98047,101.19213 L 892.01953,101.19213 L 892.01953,107.07494 L 889.6875,107.07494 L 889.6875,103.48901 L 877.98047,103.48901 L 877.98047,101.19213"
+ id="text6057" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 149.9707,129.82617 L 147.58008,137.17383 L 152.37305,137.17383 L 149.9707,129.82617 M 147.9082,126.36914 L 152.00977,126.36914 L 158.23242,143.63086 L 154.50586,143.63086 L 153.33398,140.08008 L 146.64258,140.08008 L 145.50586,143.63086 L 141.76758,143.63086 L 147.9082,126.36914 M 153.42773,120.52148 L 149.75977,124.85742 L 148.0957,124.85742 L 150.4043,120.52148 L 153.42773,120.52148"
+ id="text6065" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 211.40625,137.91797 C 211.71874,137.73829 211.95312,137.53907 212.10938,137.32031 C 212.26562,137.10157 212.34374,136.86719 212.34375,136.61719 C 212.34374,136.31251 212.2539,136.0547 212.07422,135.84375 C 211.89452,135.62501 211.52343,135.3711 210.96094,135.08203 L 207.85547,133.47656 C 207.55078,133.65626 207.3164,133.85938 207.15234,134.08594 C 206.99609,134.31251 206.91797,134.5547 206.91797,134.8125 C 206.91797,135.1172 207.03125,135.38673 207.25781,135.62109 C 207.49218,135.84766 208.0039,136.16407 208.79297,136.57031 L 211.40625,137.91797 M 205.03125,141.75 L 207.92578,141.75 C 207.98828,142.35938 208.16796,142.8125 208.46484,143.10938 C 208.76953,143.40625 209.19921,143.55469 209.75391,143.55469 C 210.26952,143.55469 210.67968,143.43359 210.98438,143.19141 C 211.28905,142.94141 211.4414,142.60547 211.44141,142.18359 C 211.4414,141.83985 211.32812,141.54297 211.10156,141.29297 C 210.87499,141.03516 210.42577,140.74219 209.75391,140.41406 L 206.95313,138.99609 C 206.0625,138.55079 205.39844,138.03907 204.96094,137.46094 C 204.52344,136.88282 204.30469,136.23438 204.30469,135.51563 C 204.30469,134.82032 204.47266,134.21095 204.80859,133.6875 C 205.15234,133.15626 205.65625,132.71485 206.32031,132.36328 C 205.92969,132.01173 205.64062,131.62892 205.45313,131.21484 C 205.26562,130.79298 205.17187,130.32814 205.17188,129.82031 C 205.17187,128.64845 205.57422,127.70705 206.37891,126.99609 C 207.18359,126.27736 208.2539,125.91799 209.58984,125.91797 C 210.96484,125.91799 212.04296,126.26955 212.82422,126.97266 C 213.60546,127.6758 214.0078,128.64845 214.03125,129.89063 L 211.26563,129.89063 C 211.24999,129.3672 211.09374,128.96876 210.79688,128.69531 C 210.50781,128.42189 210.08984,128.28517 209.54297,128.28516 C 209.05859,128.28517 208.68359,128.39064 208.41797,128.60156 C 208.16015,128.81251 208.03125,129.10939 208.03125,129.49219 C 208.03125,129.8047 208.18359,130.09767 208.48828,130.37109 C 208.80078,130.63673 209.35937,130.95704 210.16406,131.33203 L 212.13281,132.24609 C 213.1328,132.72267 213.87108,133.25392 214.34766,133.83984 C 214.82421,134.41798 215.06249,135.08595 215.0625,135.84375 C 215.06249,136.55469 214.8828,137.17579 214.52344,137.70703 C 214.17186,138.23047 213.66405,138.63672 213,138.92578 C 213.45312,139.32422 213.79296,139.76563 214.01953,140.25 C 214.24608,140.73438 214.35936,141.26563 214.35938,141.84375 C 214.35936,143.04688 213.92968,144.03906 213.07031,144.82031 C 212.21093,145.60937 211.10546,146.0039 209.75391,146.00391 C 208.26953,146.0039 207.1289,145.64453 206.33203,144.92578 C 205.53515,144.20703 205.10156,143.14844 205.03125,141.75 M 203.97656,173.625 L 203.97656,160.59375 C 203.97656,159.29689 204.48047,158.25002 205.48828,157.45313 C 206.49609,156.64845 207.83984,156.24611 209.51953,156.24609 C 211.23046,156.24611 212.5703,156.63674 213.53906,157.41797 C 214.5078,158.19923 214.99217,159.27345 214.99219,160.64063 C 214.99217,161.48439 214.84764,162.17579 214.55859,162.71484 C 214.27733,163.25392 213.83983,163.66798 213.24609,163.95703 C 214.16796,164.32423 214.85936,164.86329 215.32031,165.57422 C 215.78905,166.28516 216.02342,167.16016 216.02344,168.19922 C 216.02342,169.94922 215.51952,171.36328 214.51172,172.44141 C 213.5039,173.51953 212.18358,174.05859 210.55078,174.05859 C 210.32421,174.05859 210.0703,174.04687 209.78906,174.02344 C 209.51562,174 209.21874,173.96484 208.89844,173.91797 L 208.89844,171.17578 C 208.99999,171.19141 209.10156,171.20313 209.20313,171.21094 C 209.31249,171.21875 209.47265,171.22266 209.68359,171.22266 C 210.60546,171.22266 211.3164,170.96875 211.81641,170.46094 C 212.3164,169.94532 212.5664,169.21485 212.56641,168.26953 C 212.5664,167.35548 212.29296,166.66016 211.74609,166.18359 C 211.20702,165.70704 210.41796,165.46876 209.37891,165.46875 L 209.0625,165.46875 L 209.07422,163.06641 C 209.12109,163.07423 209.17187,163.08204 209.22656,163.08984 C 209.28124,163.08985 209.36327,163.08985 209.47266,163.08984 C 210.16796,163.08985 210.6953,162.91798 211.05469,162.57422 C 211.42187,162.22267 211.60546,161.71486 211.60547,161.05078 C 211.60546,160.38673 211.41405,159.88283 211.03125,159.53906 C 210.65624,159.18751 210.10546,159.01173 209.37891,159.01172 C 208.70703,159.01173 208.19531,159.20705 207.84375,159.59766 C 207.49218,159.98048 207.3164,160.54298 207.31641,161.28516 L 207.31641,173.625 L 203.97656,173.625"
+ id="text6073" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 267.09961,140.51367 L 269.94727,140.51367 C 271.60351,140.51367 272.80272,140.08008 273.54492,139.21289 C 274.2871,138.34571 274.65819,136.94727 274.6582,135.01758 C 274.65819,133.09571 274.31053,131.68165 273.61523,130.77539 C 272.92772,129.86134 271.8496,129.40431 270.38086,129.4043 L 267.09961,129.4043 L 267.09961,133.23633 L 270.88477,133.23633 L 270.88477,135.47461 L 267.09961,135.47461 L 267.09961,140.51367 M 263.61914,143.63086 L 263.61914,135.47461 L 261.74414,135.47461 L 261.74414,133.23633 L 263.61914,133.23633 L 263.61914,126.36914 L 270.4043,126.36914 C 273.04491,126.36916 275.01366,127.084 276.31055,128.51367 C 277.60741,129.93556 278.25584,132.10353 278.25586,135.01758 C 278.25584,136.60352 278.01756,137.99805 277.54102,139.20117 C 277.07225,140.4043 276.38084,141.36914 275.4668,142.0957 C 274.77928,142.64258 273.99413,143.03711 273.11133,143.2793 C 272.23632,143.51367 271.00585,143.63086 269.41992,143.63086 L 263.61914,143.63086"
+ id="text6077" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 626.72461,139.55273 C 627.17773,140.04493 627.68945,140.41211 628.25977,140.6543 C 628.83007,140.89649 629.47069,141.01758 630.18164,141.01758 C 631.71288,141.01758 632.90428,140.49414 633.75586,139.44727 C 634.60741,138.39258 635.03319,136.91602 635.0332,135.01758 C 635.03319,134.24415 634.96288,133.54493 634.82227,132.91992 C 634.68163,132.28712 634.4785,131.73634 634.21289,131.26758 L 626.72461,139.55273 M 625.98633,138.36914 L 633.39258,130.21289 C 632.9785,129.81447 632.50585,129.51759 631.97461,129.32227 C 631.44335,129.11916 630.84569,129.01759 630.18164,129.01758 C 628.66601,129.01759 627.48632,129.54103 626.64258,130.58789 C 625.79882,131.63478 625.37695,133.11134 625.37695,135.01758 C 625.37695,135.72071 625.42382,136.34571 625.51758,136.89258 C 625.61914,137.43946 625.77539,137.93165 625.98633,138.36914 M 621.36914,143.36133 L 623.51367,140.9707 C 622.91992,140.16602 622.47851,139.27149 622.18945,138.28711 C 621.90039,137.29493 621.75586,136.20509 621.75586,135.01758 C 621.75586,132.22853 622.51367,130.01759 624.0293,128.38477 C 625.55273,126.74416 627.60351,125.92385 630.18164,125.92383 C 631.28319,125.92385 632.27147,126.06447 633.14648,126.3457 C 634.02928,126.62697 634.84178,127.06056 635.58398,127.64648 L 637.30664,125.70117 L 638.45508,126.73242 L 636.63867,128.70117 C 637.30272,129.5215 637.79881,130.45509 638.12695,131.50195 C 638.46287,132.54884 638.63084,133.72071 638.63086,135.01758 C 638.63084,137.79883 637.86912,140.00977 636.3457,141.65039 C 634.82225,143.29102 632.76757,144.11133 630.18164,144.11133 C 629.01757,144.11133 627.96679,143.94727 627.0293,143.61914 C 626.0996,143.29102 625.26367,142.79102 624.52148,142.11914 L 622.50586,144.4043 L 621.36914,143.36133"
+ id="text6081" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 690,127.98633 C 689.42968,127.98634 688.9414,128.18556 688.53516,128.58398 C 688.13672,128.98244 687.9375,129.4629 687.9375,130.02539 C 687.9375,130.60353 688.13672,131.09181 688.53516,131.49023 C 688.93359,131.88868 689.42187,132.0879 690,132.08789 C 690.5625,132.0879 691.04296,131.88478 691.44141,131.47852 C 691.83984,131.07228 692.03906,130.5879 692.03906,130.02539 C 692.03906,129.4629 691.83984,128.98244 691.44141,128.58398 C 691.04296,128.18556 690.5625,127.98634 690,127.98633 M 690,126.47461 C 690.98437,126.47463 691.82031,126.82619 692.50781,127.5293 C 693.20312,128.22462 693.55077,129.06447 693.55078,130.04883 C 693.55077,131.0254 693.20312,131.86134 692.50781,132.55664 C 691.81249,133.25196 690.96875,133.59962 689.97656,133.59961 C 688.99218,133.59962 688.15625,133.25587 687.46875,132.56836 C 686.78906,131.88087 686.44922,131.04103 686.44922,130.04883 C 686.44922,129.05666 686.79297,128.21291 687.48047,127.51758 C 688.17578,126.82228 689.01562,126.47463 690,126.47461 M 695.51953,156.29883 L 695.51953,157.59961 L 694.19531,157.59961 L 694.19531,173.63086 L 692.42578,173.63086 L 692.42578,157.59961 L 690.57422,157.59961 L 690.57422,173.63086 L 688.78125,173.63086 L 688.78125,164.44336 C 687.47656,164.39649 686.43359,164.00196 685.65234,163.25977 C 684.87109,162.51759 684.48047,161.56056 684.48047,160.38867 C 684.48047,159.15431 684.89844,158.16603 685.73438,157.42383 C 686.57031,156.67385 687.67968,156.29885 689.0625,156.29883 L 695.51953,156.29883"
+ id="text6085" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 373.13672,6.5214844 L 376.08984,6.5214844 L 381.72656,13.095703 L 378.97266,13.095703 L 374.625,8.7480469 L 370.25391,13.095703 L 367.5,13.095703 L 373.13672,6.5214844"
+ id="text6091" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 750.67969,128.67773 L 750.67969,125.79492 L 753.32813,125.79492 L 753.32813,128.67773 L 750.67969,128.67773 M 746.60156,128.67773 L 746.60156,125.79492 L 749.25,125.79492 L 749.25,128.67773 L 746.60156,128.67773 M 753.39844,155.0332 L 749.73047,159.36914 L 748.06641,159.36914 L 750.375,155.0332 L 753.39844,155.0332"
+ id="text6099" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 171.07031,197.29102 L 175.92188,197.29102 L 175.92188,189.29883 L 173.97656,189.29883 L 171.07031,197.29102 M 165,203.63086 L 171.80859,186.36914 L 187.81641,186.36914 L 187.81641,189.36914 L 179.34375,189.36914 L 179.34375,193.04883 L 187.05469,193.04883 L 187.05469,196.00195 L 179.34375,196.00195 L 179.34375,200.44336 L 188.25,200.44336 L 188.25,203.63086 L 175.92188,203.63086 L 175.92188,200.08008 L 170.0625,200.08008 L 168.76172,203.63086 L 165,203.63086"
+ id="text6105" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 300.46875,193.23633 C 300.32031,193.22071 300.20312,193.20899 300.11719,193.20117 C 300.03906,193.19337 299.96484,193.18946 299.89453,193.18945 C 299.05859,193.18946 298.42578,193.53321 297.99609,194.2207 C 297.5664,194.90821 297.35156,195.92384 297.35156,197.26758 C 297.35156,198.04102 297.4375,198.70899 297.60938,199.27148 C 297.78906,199.83399 298.04687,200.28711 298.38281,200.63086 L 300.46875,193.23633 M 296.68359,206.49023 L 297.48047,203.63086 C 296.30859,203.13867 295.42187,202.35352 294.82031,201.27539 C 294.21875,200.19727 293.91797,198.85352 293.91797,197.24414 C 293.91797,195.11134 294.45312,193.43946 295.52344,192.22852 C 296.60156,191.01759 298.07421,190.41212 299.94141,190.41211 C 300.15234,190.41212 300.35937,190.41994 300.5625,190.43555 C 300.76562,190.45119 300.96874,190.47462 301.17188,190.50586 L 301.69922,188.56055 L 302.97656,188.56055 L 302.34375,190.78711 C 303.32811,191.09181 304.09765,191.63478 304.65234,192.41602 C 305.20702,193.18946 305.52733,194.17774 305.61328,195.38086 L 302.32031,195.36914 C 302.28124,194.98634 302.1914,194.65821 302.05078,194.38477 C 301.91796,194.10353 301.72265,193.85743 301.46484,193.64648 L 299.36719,201.13477 C 299.38281,201.13477 299.40624,201.13867 299.4375,201.14648 C 299.67187,201.16992 299.85156,201.18164 299.97656,201.18164 C 300.66406,201.18164 301.19921,200.99024 301.58203,200.60742 C 301.97265,200.22461 302.23437,199.62305 302.36719,198.80273 L 305.66016,198.80273 C 305.54296,200.41993 304.96874,201.70117 303.9375,202.64648 C 302.91405,203.5918 301.59374,204.06445 299.97656,204.06445 C 299.76562,204.06445 299.55077,204.05664 299.33203,204.04102 C 299.11328,204.02539 298.88671,204.00195 298.65234,203.9707 L 297.96094,206.49023 L 296.68359,206.49023 M 304.19531,223.0957 L 301.99219,223.0957 C 301.92968,222.54884 301.72264,222.12696 301.37109,221.83008 C 301.01952,221.5254 300.55468,221.37306 299.97656,221.37305 C 299.26562,221.37306 298.70702,221.69337 298.30078,222.33398 C 297.89452,222.96681 297.6914,223.85353 297.69141,224.99414 C 297.6914,226.14259 297.89452,227.01758 298.30078,227.61914 C 298.70702,228.22071 299.29687,228.52149 300.07031,228.52148 C 300.64061,228.52149 301.09765,228.35743 301.44141,228.0293 C 301.78514,227.70118 301.99218,227.23633 302.0625,226.63477 L 304.32422,226.62305 C 304.2617,227.70899 303.83592,228.58008 303.04688,229.23633 C 302.2578,229.89258 301.24218,230.22071 300,230.2207 C 298.54687,230.22071 297.39843,229.75977 296.55469,228.83789 C 295.71874,227.91602 295.30078,226.65821 295.30078,225.06445 C 295.30078,223.45509 295.72656,222.17384 296.57813,221.2207 C 297.43749,220.25978 298.58593,219.77931 300.02344,219.7793 C 301.21093,219.77931 302.18749,220.084 302.95313,220.69336 C 303.72655,221.30275 304.14061,222.10353 304.19531,223.0957 M 300,217.7168 C 298.99999,217.71681 298.06249,217.8965 297.1875,218.25586 C 296.32031,218.61525 295.54687,219.13869 294.86719,219.82617 C 294.17187,220.52931 293.64062,221.32618 293.27344,222.2168 C 292.90625,223.09962 292.72265,224.0254 292.72266,224.99414 C 292.72265,225.97071 292.90625,226.89649 293.27344,227.77148 C 293.64062,228.64649 294.17187,229.43164 294.86719,230.12695 C 295.55468,230.81446 296.33984,231.3418 297.22266,231.70898 C 298.10546,232.07617 299.03124,232.25977 300,232.25977 C 300.96874,232.25977 301.89452,232.07617 302.77734,231.70898 C 303.66796,231.3418 304.46874,230.80664 305.17969,230.10352 C 305.86717,229.43164 306.3867,228.66211 306.73828,227.79492 C 307.09764,226.92774 307.27733,225.99415 307.27734,224.99414 C 307.27733,224.00978 307.09373,223.08009 306.72656,222.20508 C 306.36717,221.32228 305.84373,220.53712 305.15625,219.84961 C 304.46092,219.15431 303.67577,218.62697 302.80078,218.26758 C 301.92577,217.90041 300.99218,217.71681 300,217.7168 M 299.97656,216.27539 C 301.16405,216.27541 302.28514,216.49416 303.33984,216.93164 C 304.40233,217.36916 305.35155,218.00587 306.1875,218.8418 C 307.0078,219.66212 307.63279,220.60353 308.0625,221.66602 C 308.49217,222.72071 308.70701,223.8379 308.70703,225.01758 C 308.70701,226.20509 308.49217,227.31446 308.0625,228.3457 C 307.64061,229.37696 307.01561,230.29883 306.1875,231.11133 C 305.3203,231.95508 304.35155,232.60352 303.28125,233.05664 C 302.21093,233.50195 301.10936,233.72461 299.97656,233.72461 C 298.82812,233.72461 297.73046,233.50586 296.68359,233.06836 C 295.64453,232.62305 294.70312,231.97852 293.85938,231.13477 C 293.02343,230.30664 292.38672,229.36914 291.94922,228.32227 C 291.51172,227.26758 291.29297,226.16602 291.29297,225.01758 C 291.29297,223.85353 291.51172,222.74415 291.94922,221.68945 C 292.38672,220.62697 293.02343,219.66994 293.85938,218.81836 C 294.67968,217.99025 295.60937,217.36134 296.64844,216.93164 C 297.68749,216.49416 298.79687,216.27541 299.97656,216.27539"
+ id="text6109" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 472.88672,203.63086 L 472.88672,186.36914 L 476.60156,186.36914 L 483.60938,198.22852 L 483.60938,186.36914 L 487.11328,186.36914 L 487.11328,203.63086 L 483.44531,203.63086 L 476.39063,191.77148 L 476.39063,203.63086 L 472.88672,203.63086 M 483.82031,181.0957 C 483.61717,182.07229 483.31639,182.79494 482.91797,183.26367 C 482.51952,183.72463 482.0078,183.9551 481.38281,183.95508 C 481.21874,183.9551 481.0664,183.94729 480.92578,183.93164 C 480.78515,183.90822 480.64452,183.87307 480.50391,183.82617 L 479.48438,183.52148 C 479.33593,183.48244 479.19921,183.4551 479.07422,183.43945 C 478.94921,183.41604 478.82812,183.40432 478.71094,183.4043 C 478.44531,183.40432 478.23046,183.47463 478.06641,183.61523 C 477.90234,183.75588 477.77343,183.98635 477.67969,184.30664 L 476.39063,184.30664 C 476.57812,183.36135 476.86718,182.66604 477.25781,182.2207 C 477.64843,181.77541 478.15624,181.55276 478.78125,181.55273 C 478.9453,181.55276 479.10937,181.56838 479.27344,181.59961 C 479.43749,181.62307 479.60937,181.66213 479.78906,181.7168 L 480.87891,182.00977 C 480.97265,182.04104 481.0703,182.06447 481.17188,182.08008 C 481.28124,182.09572 481.39843,182.10354 481.52344,182.10352 C 481.77343,182.10354 481.98046,182.02151 482.14453,181.85742 C 482.3164,181.68557 482.4453,181.43166 482.53125,181.0957 L 483.82031,181.0957"
+ id="text6113" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 535.83398,220.83432 L 539.2207,220.83432 L 538.33008,225.93198 C 538.21289,226.55698 538.12304,227.15073 538.06055,227.71323 C 537.99804,228.26792 537.96679,228.72104 537.9668,229.0726 C 537.96679,229.79917 538.13085,230.34214 538.45898,230.70151 C 538.7871,231.05307 539.2871,231.22885 539.95898,231.22885 C 540.74023,231.22885 541.3457,230.90854 541.77539,230.26791 C 542.21288,229.62729 542.57616,228.49058 542.86523,226.85776 L 543.91992,220.83432 L 547.30664,220.83432 L 545.04492,233.6312 L 541.9043,233.6312 L 542.11523,232.2601 C 541.7871,232.86948 541.41991,233.31479 541.01367,233.59604 C 540.61523,233.87729 540.14257,234.01791 539.5957,234.01791 C 539.07226,234.01791 538.60742,233.90073 538.20117,233.66635 C 537.79492,233.43979 537.42773,233.08432 537.09961,232.59995 L 536.04492,238.76401 L 532.69336,238.76401 L 535.83398,220.83432"
+ id="text6117" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 607.875,197.70117 C 607.74217,199.66211 606.98436,201.22071 605.60156,202.37695 C 604.22655,203.5332 602.42968,204.11133 600.21094,204.11133 C 597.65624,204.11133 595.66796,203.31445 594.24609,201.7207 C 592.83203,200.12696 592.125,197.89258 592.125,195.01758 C 592.125,192.08009 592.84765,189.83009 594.29297,188.26758 C 595.73828,186.7051 597.8164,185.92385 600.52734,185.92383 C 602.73046,185.92385 604.46874,186.46291 605.74219,187.54102 C 607.02342,188.61134 607.72655,190.12697 607.85156,192.08789 L 604.34766,192.08789 C 604.19921,191.11134 603.80077,190.36915 603.15234,189.86133 C 602.50389,189.34572 601.6289,189.08791 600.52734,189.08789 C 598.96484,189.08791 597.77734,189.59181 596.96484,190.59961 C 596.15234,191.60743 595.74609,193.08009 595.74609,195.01758 C 595.74609,196.89258 596.14843,198.3418 596.95313,199.36523 C 597.76562,200.38868 598.91796,200.90039 600.41016,200.90039 C 601.48827,200.90039 602.37108,200.62696 603.05859,200.08008 C 603.74608,199.52539 604.19139,198.73243 604.39453,197.70117 L 607.875,197.70117 M 597.62109,208.76367 L 597.62109,207.25195 C 598.24609,207.41601 598.81249,207.54101 599.32031,207.62695 C 599.82812,207.71289 600.26171,207.75586 600.62109,207.75586 C 601.02733,207.75586 601.32421,207.68554 601.51172,207.54492 C 601.69921,207.41211 601.79296,207.19726 601.79297,206.90039 C 601.79296,206.60351 601.68358,206.39258 601.46484,206.26758 C 601.24608,206.14258 600.8828,206.08008 600.375,206.08008 C 600.1953,206.08008 600.05858,206.08008 599.96484,206.08008 C 599.87108,206.08789 599.78515,206.0957 599.70703,206.10352 L 599.70703,203.63086 L 600.90234,203.63086 L 600.90234,204.68555 L 601.07813,204.68555 C 601.99218,204.68555 602.67968,204.87305 603.14063,205.24805 C 603.60155,205.62304 603.83202,206.18164 603.83203,206.92383 C 603.83202,207.70507 603.57421,208.29101 603.05859,208.68164 C 602.54296,209.07226 601.76952,209.26757 600.73828,209.26758 C 600.33983,209.26757 599.87108,209.2246 599.33203,209.13867 C 598.80077,209.05273 598.23046,208.92773 597.62109,208.76367"
+ id="text6121" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 721.7168,216.36914 L 721.7168,219.82617 L 718.23633,219.82617 L 718.23633,216.36914 L 721.7168,216.36914 M 721.55273,221.39648 C 721.55273,221.47462 721.55663,221.5879 721.56445,221.73633 C 721.57226,221.88478 721.57616,221.99415 721.57617,222.06445 C 721.57616,222.74415 721.50194,223.31446 721.35352,223.77539 C 721.20507,224.23634 720.96679,224.66602 720.63867,225.06445 C 720.38085,225.36134 720.00195,225.70118 719.50195,226.08398 C 719.00976,226.4668 718.69335,226.74415 718.55273,226.91602 C 718.24804,227.25977 718.0332,227.57618 717.9082,227.86523 C 717.79101,228.1543 717.73242,228.4668 717.73242,228.80273 C 717.73242,229.55274 717.93554,230.13477 718.3418,230.54883 C 718.74804,230.95508 719.32226,231.15821 720.06445,231.1582 C 720.79882,231.15821 721.38085,230.91211 721.81055,230.41992 C 722.24023,229.91993 722.4746,229.22071 722.51367,228.32227 L 725.8418,228.32227 L 725.8418,228.68555 C 725.84178,230.3418 725.31835,231.66211 724.27148,232.64648 C 723.23241,233.62305 721.83007,234.11133 720.06445,234.11133 C 718.25976,234.11133 716.82226,233.64648 715.75195,232.7168 C 714.68945,231.7793 714.1582,230.53321 714.1582,228.97852 C 714.1582,228.40821 714.2168,227.90821 714.33398,227.47852 C 714.45117,227.04883 714.63086,226.65821 714.87305,226.30664 C 715.18554,225.86915 715.67773,225.39259 716.34961,224.87695 C 717.02148,224.36134 717.43554,224.03321 717.5918,223.89258 C 717.88867,223.60353 718.0996,223.29884 718.22461,222.97852 C 718.35742,222.6504 718.42382,222.25587 718.42383,221.79492 C 718.42382,221.75587 718.41992,221.69337 718.41211,221.60742 C 718.40429,221.51368 718.40039,221.44337 718.40039,221.39648 L 721.55273,221.39648"
+ id="text6131" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Matrix Unicode"
+ d=""
+ id="text6955" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="137.05411"
+ y="23.149496"
+ id="text4346"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348"
+ x="137.05411"
+ y="23.149496"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"> Ë </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="186.05411"
+ y="27.3995"
+ id="text4346-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348-1"
+ x="186.05411"
+ y="27.3995"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"> ¯ </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="482.80411"
+ y="24.6495"
+ id="text4346-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348-7"
+ x="482.80411"
+ y="24.6495"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"> Ë› </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="558.30408"
+ y="24.399498"
+ id="text4346-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348-0"
+ x="558.30408"
+ y="24.399498"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"> ˘ </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="626.55408"
+ y="11.1495"
+ id="text4346-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348-09"
+ x="626.55408"
+ y="11.1495"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start"
+ id="tspan4483"> o</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="667.80408"
+ y="28.899498"
+ id="text4346-31"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348-15"
+ x="667.80408"
+ y="28.899498"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"> . </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="619.55408"
+ y="203.14951"
+ id="text4346-38"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348-8"
+ x="619.55408"
+ y="203.14951"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"> ˇ </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="620.30408"
+ y="232.14951"
+ id="text4346-9"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348-6"
+ x="620.30408"
+ y="232.14951"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"> Ë™ </tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:24px;line-height:125%;font-family:'Swis721 BT';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 402.88672,6.52148 2.95312,0 5.63672,6.574219 -2.7539,0 -4.34766,-4.3476565 -4.37109,4.3476565 -2.75391,0 5.63672,-6.574219"
+ id="text6091-3" />
+ </g>
+</svg>
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg
new file mode 100644
index 000000000..2304b2a4c
--- /dev/null
+++ b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg
@@ -0,0 +1,1049 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="900"
+ height="300"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.91 r13725"
+ version="1.0"
+ sodipodi:docname="KB_US-International-Alternative.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="D:\Users\Felix\Source\Repos\qmk_firmware\keyboards\s60-x\keymaps\ansi_qwertz\docs\KB_US-International-Alternative.png"
+ inkscape:export-xdpi="79.910004"
+ inkscape:export-ydpi="79.910004">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lend"
+ style="overflow:visible;">
+ <path
+ id="path5387"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.8) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ id="path5390"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Tail"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Tail"
+ style="overflow:visible">
+ <g
+ id="g5342"
+ transform="scale(-1.2)">
+ <path
+ id="path5344"
+ d="M -3.8048674,-3.9585227 L 0.54352094,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5346"
+ d="M -1.2866832,-3.9585227 L 3.0617053,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5348"
+ d="M 1.3053582,-3.9585227 L 5.6537466,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5350"
+ d="M -3.8048674,4.1775838 L 0.54352094,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5352"
+ d="M -1.2866832,4.1775838 L 3.0617053,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5354"
+ d="M 1.3053582,4.1775838 L 5.6537466,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ </g>
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Mend"
+ style="overflow:visible;">
+ <path
+ id="path5363"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(0.6) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lend"
+ style="overflow:visible;">
+ <path
+ id="path5369"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Send"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Send"
+ style="overflow:visible;">
+ <path
+ id="path5375"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.2) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Send"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Send"
+ style="overflow:visible;">
+ <path
+ id="path5357"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(0.3) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Mend"
+ style="overflow:visible;">
+ <path
+ id="path5381"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.4) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lstart"
+ style="overflow:visible">
+ <path
+ id="path5372"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) translate(-5,0)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4142136"
+ inkscape:cx="435.66801"
+ inkscape:cy="291.15819"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:grid-points="true"
+ showgrid="true"
+ gridtolerance="15px"
+ showborder="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1017"
+ inkscape:window-x="1912"
+ inkscape:window-y="-8"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:grid-bbox="true"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="7.5px"
+ spacingy="7.5px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.12156863"
+ empopacity="0.25098039"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,0 L 60,0 L 60,60 L 0,60 L 0,0 z "
+ id="rect2186" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 60,0 L 120,0 L 120,60 L 60,60 L 60,0 z "
+ id="rect2218" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 120,0 L 180,0 L 180,60 L 120,60 L 120,0 z "
+ id="rect2222" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 180,0 L 240,0 L 240,60 L 180,60 L 180,0 z "
+ id="rect2228" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 240,0 L 300,0 L 300,60 L 240,60 L 240,0 z "
+ id="rect2230" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 300,0 L 360,0 L 360,60 L 300,60 L 300,0 z "
+ id="rect2232" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 360,0 L 420,0 L 420,60 L 360,60 L 360,0 z "
+ id="rect2234" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 420,0 L 480,0 L 480,60 L 420,60 L 420,0 z "
+ id="rect2236" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 480,0 L 540,0 L 540,60 L 480,60 L 480,0 z "
+ id="rect2238" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 540,0 L 600,0 L 600,60 L 540,60 L 540,0 z "
+ id="rect2240" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 600,0 L 660,0 L 660,60 L 600,60 L 600,0 z "
+ id="rect2242" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 660,0 L 720,0 L 720,60 L 660,60 L 660,0 z "
+ id="rect2244" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 720,0 L 780,0 L 780,60 L 720,60 L 720,0 z "
+ id="rect2246" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 780,0 L 900,0 L 900,60 L 780,60 L 780,0 z "
+ id="rect2248" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,60 L 90,60 L 90,120 L 0,120 L 0,60 z "
+ id="rect2250" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 90,60 L 150,60 L 150,120 L 90,120 L 90,60 z "
+ id="rect2252" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 150,60 L 210,60 L 210,120 L 150,120 L 150,60 z "
+ id="rect2254" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 210,60 L 270,60 L 270,120 L 210,120 L 210,60 z "
+ id="rect2256" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 270,60 L 330,60 L 330,120 L 270,120 L 270,60 z "
+ id="rect2258" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 330,60 L 390,60 L 390,120 L 330,120 L 330,60 z "
+ id="rect2262" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 390,60 L 450,60 L 450,120 L 390,120 L 390,60 z "
+ id="rect2264" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 450,60 L 510,60 L 510,120 L 450,120 L 450,60 z "
+ id="rect2266" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 510,60 L 570,60 L 570,120 L 510,120 L 510,60 z "
+ id="rect2270" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 570,60 L 630,60 L 630,120 L 570,120 L 570,60 z "
+ id="rect2272" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 630,60 L 690,60 L 690,120 L 630,120 L 630,60 z "
+ id="rect2274" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 690,60 L 750,60 L 750,120 L 690,120 L 690,60 z "
+ id="rect2278" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 750,60 L 810,60 L 810,120 L 750,120 L 750,60 z "
+ id="rect2280" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 810,60 L 900,60 L 900,120 L 810,120 L 810,60 z "
+ id="rect2284" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,120 L 105,120 L 105,180 L 0,180 L 0,120 z "
+ id="rect2286" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 105,120 L 165,120 L 165,180 L 105,180 L 105,120 z "
+ id="rect2292" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 165,120 L 225,120 L 225,180 L 165,180 L 165,120 z "
+ id="rect2296" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 225,120 L 285,120 L 285,180 L 225,180 L 225,120 z "
+ id="rect2298" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 285,120 L 345,120 L 345,180 L 285,180 L 285,120 z "
+ id="rect2300" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 345,120 L 405,120 L 405,180 L 345,180 L 345,120 z "
+ id="rect2302" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 405,120 L 465,120 L 465,180 L 405,180 L 405,120 z "
+ id="rect2306" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 465,120 L 525,120 L 525,180 L 465,180 L 465,120 z "
+ id="rect2308" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 525,120 L 585,120 L 585,180 L 525,180 L 525,120 z "
+ id="rect2312" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 585,120 L 645,120 L 645,180 L 585,180 L 585,120 z "
+ id="rect2314" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 645,120 L 705,120 L 705,180 L 645,180 L 645,120 z "
+ id="rect2316" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 705,120 L 765,120 L 765,180 L 705,180 L 705,120 z "
+ id="rect2318" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 765,120 L 900,120 L 900,180 L 765,180 L 765,120 z "
+ id="rect2320" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,180 L 135,180 L 135,240 L 0,240 L 0,180 z "
+ id="rect2322" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 135,180 L 195,180 L 195,240 L 135,240 L 135,180 z "
+ id="rect2324" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 195,180 L 255,180 L 255,240 L 195,240 L 195,180 z "
+ id="rect2326" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 255,180 L 315,180 L 315,240 L 255,240 L 255,180 z "
+ id="rect2330" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 315,180 L 375,180 L 375,240 L 315,240 L 315,180 z "
+ id="rect2334" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 375,180 L 435,180 L 435,240 L 375,240 L 375,180 z "
+ id="rect2336" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 435,180 L 495,180 L 495,240 L 435,240 L 435,180 z "
+ id="rect2338" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 495,180 L 555,180 L 555,240 L 495,240 L 495,180 z "
+ id="rect2340" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 555,180 L 615,180 L 615,240 L 555,240 L 555,180 z "
+ id="rect2342" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 615,180 L 675,180 L 675,240 L 615,240 L 615,180 z "
+ id="rect2344" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 675,180 L 735,180 L 735,240 L 675,240 L 675,180 z "
+ id="rect2346" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 735,180 L 900,180 L 900,240 L 735,240 L 735,180 z "
+ id="rect2348" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,240 L 90,240 L 90,300 L 0,300 L 0,240 z "
+ id="rect2350" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 810,240 L 900,240 L 900,300 L 810,300 L 810,240 z "
+ id="rect2352" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 150,240 L 240,240 L 240,300 L 150,300 L 150,240 z "
+ id="rect2354" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 600,240 L 690,240 L 690,300 L 600,300 L 600,240 z "
+ id="rect2360" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 240,240 L 600,240 L 600,300 L 240,300 L 240,240 z "
+ id="rect2362" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 90,240 L 150,240 L 150,300 L 90,300 L 90,240 z "
+ id="rect2364" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 690,240 L 750,240 L 750,300 L 690,300 L 690,240 z "
+ id="rect2366" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 750,240 L 810,240 L 810,300 L 750,300 L 750,240 z "
+ id="rect2368" />
+ <path
+ style=""
+ d=""
+ id="flowRoot4146" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 75.351563,18.826172 L 74.4375,11.056641 L 74.4375,6.3691406 L 78.046875,6.3691406 L 78.046875,11.056641 L 77.132813,18.826172 L 75.351563,18.826172 M 74.484375,23.630859 L 74.484375,20.173828 L 77.964844,20.173828 L 77.964844,23.630859 L 74.484375,23.630859 M 75.351563,53.630859 L 75.351563,42.158203 L 71.34375,42.158203 L 71.34375,39.802734 L 71.601563,39.802734 C 73.062496,39.802748 74.124995,39.576186 74.789063,39.123047 C 75.460931,38.669937 75.855462,37.912125 75.972656,36.849609 L 78.65625,36.849609 L 78.65625,53.630859 L 75.351563,53.630859"
+ id="text5091" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 23.34375,14.220703 L 23.34375,16.810547 C 22.531233,17.365241 21.761702,17.775396 21.035156,18.041016 C 20.316391,18.298833 19.605455,18.42774 18.902344,18.427734 C 18.542956,18.42774 18.183581,18.39649 17.824219,18.333984 C 17.464832,18.27149 17.105457,18.181646 16.746094,18.064453 C 16.558583,18.001959 16.281239,17.904303 15.914063,17.771484 C 14.203116,17.185553 12.902336,16.892585 12.011719,16.892578 C 11.34765,16.892585 10.652339,17.041022 9.9257813,17.337891 C 9.2070275,17.626959 8.3984345,18.091802 7.5,18.732422 L 7.5,16.142578 C 8.3359346,15.580086 9.1328088,15.162118 9.890625,14.888672 C 10.648432,14.607431 11.363275,14.466806 12.035156,14.466797 C 12.949211,14.466806 14.085929,14.693368 15.445313,15.146484 C 15.46874,15.154305 15.484365,15.158212 15.492188,15.158203 C 15.632802,15.205087 15.847646,15.279305 16.136719,15.380859 C 17.347644,15.810555 18.285143,16.025398 18.949219,16.025391 C 19.613267,16.025398 20.29686,15.880867 21,15.591797 C 21.703109,15.302743 22.484358,14.845712 23.34375,14.220703 M 11.988281,35.033203 L 15.011719,35.033203 L 17.320313,39.369141 L 15.65625,39.369141 L 11.988281,35.033203"
+ id="text5103" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 136.47578,20.443359 C 136.04608,21.099612 135.54999,21.583986 134.9875,21.896484 C 134.42499,22.201173 133.76093,22.353517 132.99532,22.353516 C 131.76093,22.353517 130.81953,22.01758 130.1711,21.345703 C 129.53047,20.673831 129.21015,19.681645 129.21016,18.369141 C 129.21015,16.50196 129.75312,14.935556 130.83907,13.669922 C 131.93281,12.404308 133.27656,11.771496 134.87032,11.771484 C 135.4953,11.771496 136.03827,11.900402 136.49922,12.158203 C 136.96015,12.416027 137.33905,12.798839 137.63594,13.306641 L 138.25703,12.158203 L 140.34297,12.158203 L 138.62032,19.166016 C 138.59686,19.251958 138.57733,19.341801 138.56172,19.435547 C 138.54608,19.521488 138.53827,19.591801 138.53828,19.646484 C 138.53827,19.919926 138.63202,20.126957 138.81953,20.267578 C 139.00702,20.400394 139.28436,20.4668 139.65157,20.466797 C 139.95624,20.4668 140.27264,20.388675 140.60078,20.232422 C 140.9367,20.076175 141.2492,19.857426 141.53828,19.576172 C 142.21014,18.951177 142.71795,18.220709 143.06172,17.384766 C 143.41326,16.548835 143.58904,15.630867 143.58907,14.630859 C 143.58904,12.75587 142.86248,11.216809 141.40938,10.013672 C 139.96405,8.8027492 138.09686,8.1972811 135.80782,8.1972656 C 134.70624,8.1972811 133.6789,8.3300934 132.72578,8.5957031 C 131.78046,8.8613429 130.92109,9.2558737 130.14766,9.7792969 C 128.81953,10.669935 127.79609,11.783215 127.07735,13.119141 C 126.36641,14.455087 126.01094,15.91993 126.01094,17.513672 C 126.01094,19.912113 126.81953,21.83008 128.43672,23.267578 C 130.0539,24.697265 132.21406,25.412108 134.91719,25.412109 C 136.1828,25.412108 137.41718,25.220702 138.62032,24.837891 C 139.83124,24.455077 140.95623,23.90039 141.99532,23.173828 L 142.95625,24.544922 C 141.76092,25.443358 140.49139,26.119138 139.14766,26.572266 C 137.81171,27.025387 136.41718,27.25195 134.96407,27.251953 C 133.46405,27.25195 132.08515,27.060543 130.82735,26.677734 C 129.56953,26.302732 128.45234,25.744139 127.47578,25.001953 C 126.26484,24.05664 125.35859,22.966798 124.75703,21.732422 C 124.15547,20.49805 123.85469,19.099614 123.85469,17.537109 C 123.85469,16.232429 124.05781,14.990243 124.46407,13.810547 C 124.87813,12.623058 125.48359,11.544934 126.28047,10.576172 C 127.43672,9.1621238 128.82734,8.0918124 130.45235,7.3652344 C 132.07734,6.6386889 133.88593,6.275408 135.87813,6.2753906 C 137.19843,6.275408 138.43671,6.4550953 139.59297,6.8144531 C 140.75702,7.1660321 141.76873,7.6660316 142.62813,8.3144531 C 143.68279,9.1347801 144.46795,10.072279 144.9836,11.126953 C 145.50701,12.17384 145.76873,13.357432 145.76875,14.677734 C 145.76873,15.966805 145.51092,17.15821 144.99532,18.251953 C 144.48748,19.337895 143.75311,20.267581 142.79219,21.041016 C 142.2453,21.478518 141.64764,21.814455 140.99922,22.048828 C 140.35858,22.275392 139.69061,22.388673 138.99532,22.388672 C 138.16718,22.388673 137.54218,22.224611 137.12032,21.896484 C 136.70624,21.568361 136.4914,21.083987 136.47578,20.443359 M 137.06172,15.427734 C 136.96015,14.794931 136.73358,14.314462 136.38203,13.986328 C 136.03827,13.650401 135.58124,13.482432 135.01094,13.482422 C 134.1203,13.482432 133.34687,13.966807 132.69063,14.935547 C 132.03437,15.904305 131.70624,17.068366 131.70625,18.427734 C 131.70624,19.146489 131.86249,19.693363 132.175,20.068359 C 132.49531,20.443363 132.95624,20.630862 133.55782,20.630859 C 134.20624,20.630862 134.79608,20.384769 135.32735,19.892578 C 135.8664,19.400395 136.23358,18.75977 136.42891,17.970703 L 137.06172,15.427734 M 128.56563,53.630859 C 128.58125,52.130861 128.90156,50.861331 129.52657,49.822266 C 130.15156,48.775395 131.26094,47.716803 132.85469,46.646484 C 133.09687,46.482429 133.44844,46.255867 133.90938,45.966797 C 136.01875,44.615243 137.07343,43.314463 137.07344,42.064453 C 137.07343,41.322278 136.85078,40.736341 136.40547,40.306641 C 135.96015,39.876967 135.35078,39.662123 134.57735,39.662109 C 133.73359,39.662123 133.08125,39.927748 132.62032,40.458984 C 132.16719,40.982435 131.94062,41.732434 131.94063,42.708984 L 131.94063,42.849609 L 128.84688,42.849609 C 128.84688,40.927747 129.3625,39.44728 130.39375,38.408203 C 131.425,37.369157 132.89375,36.849626 134.8,36.849609 C 136.52656,36.849626 137.90546,37.322282 138.93672,38.267578 C 139.96796,39.205093 140.48358,40.455091 140.4836,42.017578 C 140.48358,43.134776 140.21405,44.103525 139.675,44.923828 C 139.13593,45.744149 138.09296,46.677741 136.5461,47.724609 C 136.21796,47.951178 135.76484,48.248052 135.18672,48.615234 C 133.71797,49.560551 132.88984,50.2793 132.70235,50.771484 L 140.31953,50.771484 L 140.31953,53.630859 L 128.56563,53.630859"
+ id="text5127" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 195.28125,13.693359 L 194.25,16.552734 L 197.19141,16.552734 L 198.19922,13.693359 L 195.28125,13.693359 M 195.28125,6.4746094 L 197.87109,6.4746094 L 196.16016,11.337891 L 198.99609,11.337891 L 200.73047,6.4746094 L 203.32031,6.4746094 L 201.58594,11.337891 L 204.90234,11.337891 L 204.03516,13.693359 L 200.75391,13.693359 L 199.76953,16.529297 L 203.16797,16.529297 L 202.33594,18.873047 L 198.92578,18.873047 L 197.19141,23.748047 L 194.60156,23.748047 L 196.33594,18.873047 L 193.47656,18.873047 L 191.73047,23.748047 L 189.15234,23.748047 L 190.86328,18.873047 L 187.5,18.873047 L 188.39063,16.529297 L 191.69531,16.529297 L 192.70313,13.693359 L 189.19922,13.693359 L 190.06641,11.337891 L 193.54688,11.337891 L 195.28125,6.4746094 M 190.07813,48.521484 L 193.30078,48.521484 C 193.30859,49.458989 193.53515,50.166019 193.98047,50.642578 C 194.42578,51.111331 195.08593,51.345705 195.96094,51.345703 C 196.80468,51.345705 197.45312,51.126956 197.90625,50.689453 C 198.36718,50.244144 198.59765,49.607426 198.59766,48.779297 C 198.59765,47.951178 198.32812,47.326178 197.78906,46.904297 C 197.2578,46.474617 196.46484,46.259773 195.41016,46.259766 C 195.35546,46.259773 195.26953,46.263679 195.15234,46.271484 C 195.04296,46.279304 194.96093,46.28321 194.90625,46.283203 L 194.90625,43.962891 L 195.26953,43.962891 C 196.23827,43.9629 196.95312,43.7754 197.41406,43.400391 C 197.8828,43.017589 198.11718,42.435558 198.11719,41.654297 C 198.11718,41.005872 197.91796,40.494154 197.51953,40.119141 C 197.1289,39.736342 196.59374,39.544936 195.91406,39.544922 C 195.17187,39.544936 194.59765,39.763686 194.19141,40.201172 C 193.78515,40.638685 193.58203,41.259778 193.58203,42.064453 L 193.58203,42.205078 L 190.41797,42.205078 C 190.45703,40.486341 190.96094,39.169936 191.92969,38.255859 C 192.90625,37.334001 194.28125,36.873064 196.05469,36.873047 C 197.73437,36.873064 199.0664,37.283219 200.05078,38.103516 C 201.03514,38.923843 201.52733,40.02931 201.52734,41.419922 C 201.52733,42.154308 201.35936,42.798839 201.02344,43.353516 C 200.68749,43.908213 200.18358,44.365244 199.51172,44.724609 C 200.37108,45.099618 201.01952,45.619149 201.45703,46.283203 C 201.90233,46.93946 202.12499,47.724615 202.125,48.638672 C 202.12499,50.318363 201.57421,51.650393 200.47266,52.634766 C 199.37108,53.619141 197.86718,54.111328 195.96094,54.111328 C 194.07812,54.111328 192.625,53.634766 191.60156,52.681641 C 190.58594,51.720705 190.07812,50.357425 190.07813,48.591797 L 190.07813,48.521484"
+ id="text5139" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 254.46094,21.451172 C 255.10155,21.365237 255.58984,21.134768 255.92578,20.759766 C 256.26171,20.384769 256.42968,19.884769 256.42969,19.259766 C 256.42968,18.705083 256.26952,18.248052 255.94922,17.888672 C 255.63671,17.52149 255.14062,17.236335 254.46094,17.033203 L 254.46094,21.451172 M 253.06641,13.435547 L 253.06641,9.4511719 C 252.45703,9.529311 251.99218,9.7402483 251.67188,10.083984 C 251.35156,10.419935 251.1914,10.87306 251.19141,11.443359 C 251.1914,11.919934 251.33984,12.318371 251.63672,12.638672 C 251.9414,12.958995 252.41796,13.22462 253.06641,13.435547 M 253.06641,26.267578 L 253.06641,24.017578 C 251.30078,23.908203 249.98047,23.396485 249.10547,22.482422 C 248.23047,21.568361 247.79297,20.24805 247.79297,18.521484 L 250.93359,18.521484 C 250.97265,19.365239 251.16796,20.033207 251.51953,20.525391 C 251.8789,21.009768 252.39453,21.318362 253.06641,21.451172 L 253.06641,16.599609 C 251.2539,16.138679 249.96484,15.537117 249.19922,14.794922 C 248.43359,14.052744 248.05078,13.03712 248.05078,11.748047 C 248.05078,10.318373 248.5039,9.1660301 249.41016,8.2910156 C 250.32422,7.4160318 251.54296,6.959001 253.06641,6.9199219 L 253.06641,5.4199219 L 254.46094,5.4199219 L 254.46094,6.9199219 C 255.98437,6.9980635 257.17186,7.4590005 258.02344,8.3027344 C 258.87499,9.1386864 259.34374,10.318373 259.42969,11.841797 L 256.24219,11.841797 C 256.18749,11.115247 256.01171,10.56056 255.71484,10.177734 C 255.42577,9.7871232 255.0078,9.5683734 254.46094,9.5214844 L 254.46094,13.787109 C 256.39062,14.388681 257.74999,15.07618 258.53906,15.849609 C 259.32811,16.623054 259.72264,17.642584 259.72266,18.908203 C 259.72264,20.400394 259.26171,21.591799 258.33984,22.482422 C 257.42577,23.373047 256.1328,23.892578 254.46094,24.041016 L 254.46094,26.267578 L 253.06641,26.267578 M 254.64844,47.419922 L 254.64844,40.236328 L 250.08984,47.419922 L 254.64844,47.419922 M 254.57813,53.630859 L 254.57813,50.009766 L 247.5,50.009766 L 247.5,47.056641 L 253.6875,37.330078 L 257.84766,37.330078 L 257.84766,47.337891 L 259.79297,47.337891 L 259.79297,50.009766 L 257.84766,50.009766 L 257.84766,53.630859 L 254.57813,53.630859"
+ id="text5145" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 320.42578,19.740234 C 320.42577,20.263675 320.60155,20.705081 320.95313,21.064453 C 321.30467,21.416018 321.73827,21.591799 322.25391,21.591797 C 322.75389,21.591799 323.18358,21.412112 323.54297,21.052734 C 323.90233,20.68555 324.08201,20.24805 324.08203,19.740234 C 324.08201,19.240239 323.90233,18.814458 323.54297,18.462891 C 323.19139,18.103521 322.7617,17.923834 322.25391,17.923828 C 321.73827,17.923834 321.30467,18.099615 320.95313,18.451172 C 320.60155,18.794927 320.42577,19.224614 320.42578,19.740234 M 317.88281,19.740234 C 317.8828,18.521489 318.30468,17.494147 319.14844,16.658203 C 319.99217,15.822273 321.02733,15.404305 322.25391,15.404297 C 323.45701,15.404305 324.48045,15.830086 325.32422,16.681641 C 326.17576,17.525397 326.60154,18.544927 326.60156,19.740234 C 326.60154,20.943362 326.17576,21.974611 325.32422,22.833984 C 324.47264,23.685547 323.4492,24.111328 322.25391,24.111328 C 321.02733,24.111328 319.99217,23.689453 319.14844,22.845703 C 318.30468,22.001955 317.8828,20.9668 317.88281,19.740234 M 311.07422,24.111328 L 321.08203,6.8496094 L 322.96875,6.8496094 L 312.96094,24.111328 L 311.07422,24.111328 M 310.04297,11.220703 C 310.04297,11.73634 310.21484,12.169933 310.55859,12.521484 C 310.91015,12.873058 311.34375,13.048839 311.85938,13.048828 C 312.36718,13.048839 312.79687,12.873058 313.14844,12.521484 C 313.50781,12.162121 313.68749,11.728528 313.6875,11.220703 C 313.68749,10.720716 313.50781,10.294935 313.14844,9.9433594 C 312.79687,9.5839984 312.36718,9.4043111 311.85938,9.4042969 C 311.34375,9.4043111 310.91015,9.5800922 310.55859,9.9316406 C 310.21484,10.275404 310.04297,10.705091 310.04297,11.220703 M 307.5,11.220703 C 307.5,10.001967 307.92187,8.9707178 308.76563,8.1269531 C 309.60937,7.275407 310.64062,6.8496262 311.85938,6.8496094 C 313.06249,6.8496262 314.08593,7.2793132 314.92969,8.1386719 C 315.78124,8.990249 316.20702,10.017592 316.20703,11.220703 C 316.20702,12.423839 315.78124,13.451182 314.92969,14.302734 C 314.08593,15.146493 313.06249,15.568367 311.85938,15.568359 C 310.63281,15.568367 309.59765,15.150399 308.75391,14.314453 C 307.91797,13.478526 307.5,12.447277 307.5,11.220703 M 310.85156,49.119141 L 314.13281,49.119141 C 314.1875,49.853519 314.43359,50.423831 314.87109,50.830078 C 315.30859,51.228518 315.89453,51.427737 316.62891,51.427734 C 317.53515,51.427737 318.22655,51.162112 318.70313,50.630859 C 319.18749,50.099613 319.42968,49.337895 319.42969,48.345703 C 319.42968,47.416022 319.18358,46.685554 318.69141,46.154297 C 318.19921,45.615242 317.51952,45.345711 316.65234,45.345703 C 316.16796,45.345711 315.74218,45.443368 315.375,45.638672 C 315.00781,45.833992 314.69531,46.123054 314.4375,46.505859 L 311.41406,46.330078 L 312.50391,37.330078 L 322.14844,37.330078 L 322.14844,40.166016 L 314.87109,40.166016 L 314.4375,43.529297 C 314.80468,43.240245 315.22656,43.025401 315.70313,42.884766 C 316.17968,42.736339 316.71093,42.66212 317.29688,42.662109 C 318.96874,42.66212 320.3164,43.169932 321.33984,44.185547 C 322.37108,45.20118 322.88671,46.53321 322.88672,48.181641 C 322.88671,49.986332 322.3203,51.427737 321.1875,52.505859 C 320.05468,53.576172 318.53515,54.111328 316.62891,54.111328 C 314.89453,54.111328 313.51172,53.669922 312.48047,52.787109 C 311.45703,51.896486 310.91406,50.673831 310.85156,49.119141"
+ id="text5151" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 372.15234,48.298828 C 372.15234,49.25977 372.39062,50.021488 372.86719,50.583984 C 373.35156,51.146487 374.00781,51.427737 374.83594,51.427734 C 375.60937,51.427737 376.21484,51.154299 376.65234,50.607422 C 377.08983,50.06055 377.30858,49.298832 377.30859,48.322266 C 377.30858,47.423834 377.08202,46.724616 376.62891,46.224609 C 376.17577,45.724617 375.53905,45.474618 374.71875,45.474609 C 373.91406,45.474618 373.28515,45.724617 372.83203,46.224609 C 372.3789,46.724616 372.15234,47.416022 372.15234,48.298828 M 372.10547,43.916016 C 372.48828,43.525401 372.94921,43.232432 373.48828,43.037109 C 374.02734,42.833995 374.6289,42.732433 375.29297,42.732422 C 376.93358,42.732433 378.24608,43.232432 379.23047,44.232422 C 380.22264,45.23243 380.71874,46.56446 380.71875,48.228516 C 380.71874,49.994144 380.17968,51.419924 379.10156,52.505859 C 378.02343,53.591797 376.60155,54.134765 374.83594,54.134766 C 372.79687,54.134765 371.24609,53.431641 370.18359,52.025391 C 369.1289,50.619144 368.60156,48.560552 368.60156,45.849609 C 368.60156,42.935558 369.16797,40.708997 370.30078,39.169922 C 371.43359,37.623063 373.0664,36.849626 375.19922,36.849609 C 376.68358,36.849626 377.8789,37.236345 378.78516,38.009766 C 379.69921,38.783218 380.19921,39.830092 380.28516,41.150391 L 376.88672,41.150391 C 376.80858,40.611341 376.59765,40.205092 376.25391,39.931641 C 375.91015,39.658217 375.42968,39.521498 374.8125,39.521484 C 373.96874,39.521498 373.32031,39.888686 372.86719,40.623047 C 372.41406,41.349622 372.16015,42.447277 372.10547,43.916016"
+ id="text5157" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 432.85547,16.095703 L 431.96484,16.740234 C 431.60546,16.990241 431.33593,17.291022 431.15625,17.642578 C 430.97656,17.994146 430.88671,18.388677 430.88672,18.826172 C 430.88671,19.490239 431.11328,20.048832 431.56641,20.501953 C 432.01953,20.955081 432.58593,21.181643 433.26563,21.181641 C 433.76562,21.181643 434.24218,21.080081 434.69531,20.876953 C 435.15624,20.666019 435.58202,20.361331 435.97266,19.962891 L 432.85547,16.095703 M 433.79297,12.404297 L 434.20313,12.111328 C 434.57812,11.853527 434.85546,11.564465 435.03516,11.244141 C 435.21483,10.923841 435.30468,10.556654 435.30469,10.142578 C 435.30468,9.7441545 435.17968,9.4277486 434.92969,9.1933594 C 434.68749,8.958999 434.35546,8.8418117 433.93359,8.8417969 C 433.5039,8.8418117 433.16406,8.9629053 432.91406,9.2050781 C 432.66406,9.4394673 432.53906,9.7597795 432.53906,10.166016 C 432.53906,10.384779 432.59765,10.62306 432.71484,10.880859 C 432.83984,11.138684 433.01562,11.412122 433.24219,11.701172 L 433.79297,12.404297 M 431.15625,13.962891 L 430.47656,13.072266 C 430.125,12.603527 429.87109,12.166027 429.71484,11.759766 C 429.5664,11.345715 429.49218,10.912122 429.49219,10.458984 C 429.49218,9.2089988 429.89062,8.2168123 430.6875,7.4824219 C 431.49218,6.7402513 432.58203,6.3691579 433.95703,6.3691406 C 435.27733,6.3691579 436.3203,6.7090013 437.08594,7.3886719 C 437.85155,8.0683749 438.23436,8.9863428 438.23438,10.142578 C 438.23436,11.017591 438.0078,11.802746 437.55469,12.498047 C 437.10936,13.185557 436.40624,13.833994 435.44531,14.443359 L 437.91797,17.490234 C 438.15233,17.107428 438.33593,16.677741 438.46875,16.201172 C 438.60936,15.724617 438.70702,15.193368 438.76172,14.607422 L 441.80859,14.607422 C 441.72264,15.623055 441.5117,16.56446 441.17578,17.431641 C 440.83983,18.298833 440.37889,19.091801 439.79297,19.810547 L 442.93359,23.630859 L 438.94922,23.630859 L 437.77734,22.189453 C 437.08983,22.822266 436.33202,23.302735 435.50391,23.630859 C 434.68359,23.951172 433.82421,24.111328 432.92578,24.111328 C 431.33203,24.111328 430.02734,23.638672 429.01172,22.693359 C 428.0039,21.748049 427.5,20.541019 427.5,19.072266 C 427.5,17.978521 427.78125,17.037116 428.34375,16.248047 C 428.90625,15.458993 429.84375,14.697275 431.15625,13.962891 M 434.66016,53.630859 L 431.15625,53.630859 C 431.28125,51.341799 431.83203,49.07227 432.80859,46.822266 C 433.79296,44.572275 435.19531,42.361339 437.01563,40.189453 L 428.76563,40.189453 L 428.76563,37.330078 L 440.66016,37.330078 L 440.66016,39.849609 C 438.8164,41.880871 437.39843,44.029306 436.40625,46.294922 C 435.42187,48.560552 434.83984,51.005862 434.66016,53.630859"
+ id="text5163" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 493.5,13.212891 L 491.4375,16.119141 L 489.44531,14.724609 L 491.69531,11.900391 L 488.41406,10.986328 L 489.17578,8.6074219 L 492.32813,9.7324219 L 492.32813,6.3691406 L 494.64844,6.3691406 L 494.64844,9.7324219 L 497.80078,8.6308594 L 498.58594,11.009766 L 495.30469,11.900391 L 497.53125,14.701172 L 495.49219,16.166016 L 493.5,13.212891 M 490.875,48.755859 C 490.875,49.576176 491.10156,50.208988 491.55469,50.654297 C 492.01562,51.099612 492.67187,51.322268 493.52344,51.322266 C 494.33593,51.322268 494.97265,51.095706 495.43359,50.642578 C 495.90233,50.189457 496.13671,49.560551 496.13672,48.755859 C 496.13671,47.982428 495.89843,47.361334 495.42188,46.892578 C 494.9453,46.423835 494.31249,46.189461 493.52344,46.189453 C 492.73437,46.189461 492.09374,46.427742 491.60156,46.904297 C 491.11718,47.380866 490.875,47.998053 490.875,48.755859 M 491.14453,41.560547 C 491.14453,42.208996 491.34765,42.708995 491.75391,43.060547 C 492.16015,43.404307 492.74218,43.576182 493.5,43.576172 C 494.2578,43.576182 494.83984,43.400401 495.24609,43.048828 C 495.66015,42.697277 495.86718,42.201183 495.86719,41.560547 C 495.86718,40.93556 495.65624,40.443373 495.23438,40.083984 C 494.81249,39.724623 494.23437,39.544936 493.5,39.544922 C 492.78124,39.544936 492.20703,39.72853 491.77734,40.095703 C 491.35546,40.462904 491.14453,40.951185 491.14453,41.560547 M 489.9375,44.818359 C 489.23437,44.427744 488.72656,43.970713 488.41406,43.447266 C 488.10156,42.923839 487.94531,42.255871 487.94531,41.443359 C 487.94531,40.005873 488.4375,38.876968 489.42188,38.056641 C 490.40625,37.236345 491.76562,36.826189 493.5,36.826172 C 495.24999,36.826189 496.61718,37.236345 497.60156,38.056641 C 498.59374,38.869155 499.08983,39.998061 499.08984,41.443359 C 499.08983,42.216808 498.92186,42.888683 498.58594,43.458984 C 498.24999,44.021494 497.74608,44.474619 497.07422,44.818359 C 497.89452,45.20118 498.51171,45.73243 498.92578,46.412109 C 499.33983,47.083991 499.54686,47.904303 499.54688,48.873047 C 499.54686,50.505862 499.0078,51.787111 497.92969,52.716797 C 496.85936,53.646484 495.3828,54.111328 493.5,54.111328 C 491.59375,54.111328 490.11328,53.650391 489.05859,52.728516 C 488.0039,51.806642 487.47656,50.521487 487.47656,48.873047 C 487.47656,47.912115 487.67187,47.107428 488.0625,46.458984 C 488.46094,45.802742 489.08594,45.255868 489.9375,44.818359"
+ id="text5169" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 557.85938,6.3691406 C 556.78124,8.1347811 555.98046,9.9316543 555.45703,11.759766 C 554.93359,13.587901 554.67187,15.505868 554.67188,17.513672 C 554.67187,19.513676 554.93359,21.427737 555.45703,23.255859 C 555.98046,25.083983 556.78124,26.880856 557.85938,28.646484 L 555.38672,28.646484 C 554.01953,26.779294 552.98046,24.904296 552.26953,23.021484 C 551.5664,21.130862 551.21484,19.294926 551.21484,17.513672 C 551.21484,15.73243 551.5664,13.896494 552.26953,12.005859 C 552.98046,10.115248 554.01953,8.2363435 555.38672,6.3691406 L 557.85938,6.3691406 M 556.06641,42.685547 C 556.0664,41.724621 555.82421,40.96681 555.33984,40.412109 C 554.86327,39.849623 554.21093,39.568373 553.38281,39.568359 C 552.60156,39.568373 551.99218,39.837904 551.55469,40.376953 C 551.125,40.916028 550.91015,41.669934 550.91016,42.638672 C 550.91015,43.544932 551.13671,44.251963 551.58984,44.759766 C 552.04296,45.267586 552.67968,45.521492 553.5,45.521484 C 554.30468,45.521492 554.93359,45.271493 555.38672,44.771484 C 555.83983,44.271494 556.0664,43.576182 556.06641,42.685547 M 556.125,47.056641 C 555.73437,47.447272 555.27343,47.74024 554.74219,47.935547 C 554.21093,48.130865 553.61327,48.228521 552.94922,48.228516 C 551.30078,48.228521 549.98047,47.732428 548.98828,46.740234 C 547.99609,45.748055 547.5,44.419931 547.5,42.755859 C 547.5,40.990247 548.03906,39.564467 549.11719,38.478516 C 550.19531,37.392594 551.61718,36.849626 553.38281,36.849609 C 555.42968,36.849626 556.98436,37.556657 558.04688,38.970703 C 559.11718,40.376966 559.65233,42.431652 559.65234,45.134766 C 559.65233,48.041021 559.08202,50.267581 557.94141,51.814453 C 556.80077,53.361328 555.16015,54.134765 553.01953,54.134766 C 551.54296,54.134765 550.35156,53.751953 549.44531,52.986328 C 548.53906,52.212892 548.04297,51.162112 547.95703,49.833984 L 551.34375,49.845703 C 551.42187,50.384769 551.63281,50.787112 551.97656,51.052734 C 552.32031,51.318362 552.80468,51.451174 553.42969,51.451172 C 554.27343,51.451174 554.91796,51.083987 555.36328,50.349609 C 555.80858,49.615238 556.06249,48.517583 556.125,47.056641"
+ id="text5175" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 609.375,6.3691406 L 611.87109,6.3691406 C 613.23046,8.228531 614.26171,10.103529 614.96484,11.994141 C 615.66796,13.876963 616.01952,15.716805 616.01953,17.513672 C 616.01952,19.302739 615.66796,21.142581 614.96484,23.033203 C 614.26171,24.923827 613.23046,26.794919 611.87109,28.646484 L 609.375,28.646484 C 610.46094,26.873044 611.26562,25.072264 611.78906,23.244141 C 612.32031,21.408205 612.58593,19.498051 612.58594,17.513672 C 612.58593,15.521492 612.32031,13.611338 611.78906,11.783203 C 611.26562,9.9550918 610.46094,8.1504061 609.375,6.3691406 M 610.98047,45.474609 C 610.98046,47.513678 611.18359,48.994145 611.58984,49.916016 C 612.0039,50.837893 612.66015,51.29883 613.55859,51.298828 C 614.45702,51.29883 615.11327,50.833987 615.52734,49.904297 C 615.9414,48.974614 616.14843,47.498053 616.14844,45.474609 C 616.14843,43.44337 615.9414,41.966809 615.52734,41.044922 C 615.11327,40.12306 614.45702,39.662123 613.55859,39.662109 C 612.66015,39.662123 612.0039,40.12306 611.58984,41.044922 C 611.18359,41.958996 610.98046,43.435557 610.98047,45.474609 M 607.5,45.474609 C 607.5,42.591808 608,40.43556 609,39.005859 C 610.00781,37.568375 611.52734,36.849626 613.55859,36.849609 C 615.58202,36.849626 617.09765,37.572282 618.10547,39.017578 C 619.12108,40.455091 619.62889,42.615245 619.62891,45.498047 C 619.62889,48.380865 619.12499,50.533206 618.11719,51.955078 C 617.11718,53.376953 615.59765,54.08789 613.55859,54.087891 C 611.52734,54.08789 610.00781,53.373047 609,51.943359 C 608,50.513675 607.5,48.357427 607.5,45.474609"
+ id="text5181" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 667.5,26.900391 L 679.5,26.900391 L 679.5,29.291016 L 667.5,29.291016 L 667.5,26.900391 M 670.20703,48.849609 L 670.20703,45.638672 L 676.79297,45.638672 L 676.79297,48.849609 L 670.20703,48.849609"
+ id="text5187" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 733.33594,9.3222656 L 735.70313,9.3222656 L 735.70313,15.298828 L 741.53906,15.298828 L 741.53906,17.630859 L 735.70313,17.630859 L 735.70313,23.630859 L 733.33594,23.630859 L 733.33594,17.630859 L 727.5,17.630859 L 727.5,15.298828 L 733.33594,15.298828 L 733.33594,9.3222656 M 727.5,47.818359 L 741.53906,47.818359 L 741.53906,50.150391 L 727.5,50.150391 L 727.5,47.818359 M 727.5,42.779297 L 741.53906,42.779297 L 741.53906,45.111328 L 727.5,45.111328 L 727.5,42.779297"
+ id="text5201" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 11.070313,95.601563 L 11.070313,86.148438 L 7.65625,86.148438 L 7.65625,84.09375 L 16.828125,84.09375 L 16.828125,86.148438 L 13.4375,86.148438 L 13.4375,95.601563 L 11.070313,95.601563 M 22.859375,94.546875 C 22.572911,94.989584 22.197911,95.328125 21.734375,95.5625 C 21.270829,95.791666 20.731767,95.90625 20.117188,95.90625 C 19.294269,95.90625 18.658853,95.671875 18.210938,95.203125 C 17.768228,94.734376 17.546874,94.06771 17.546875,93.203125 C 17.546874,92.401045 17.768228,91.789066 18.210938,91.367188 C 18.658853,90.945317 19.395831,90.656255 20.421875,90.5 C 20.656246,90.463547 20.963538,90.42188 21.34375,90.375 C 22.307286,90.250005 22.789057,89.97136 22.789063,89.539063 C 22.789057,89.195319 22.682286,88.950527 22.46875,88.804688 C 22.255203,88.653653 21.898433,88.578132 21.398438,88.578125 C 20.9401,88.578132 20.588538,88.669278 20.34375,88.851563 C 20.098955,89.033861 19.97656,89.294277 19.976563,89.632813 L 19.976563,89.757813 L 17.851563,89.757813 L 17.851563,89.601563 C 17.851562,88.731778 18.158853,88.049487 18.773438,87.554688 C 19.388018,87.054696 20.236976,86.804696 21.320313,86.804688 C 22.507807,86.804696 23.41666,87.010425 24.046875,87.421875 C 24.682284,87.833341 24.999992,88.427091 25,89.203125 L 25,94.03125 C 24.999992,94.385418 25.03645,94.651043 25.109375,94.828125 C 25.182283,95.000001 25.304679,95.130209 25.476563,95.21875 L 25.476563,95.601563 L 23.109375,95.601563 C 23.031244,95.455729 22.971348,95.294271 22.929688,95.117188 C 22.888015,94.940105 22.864577,94.750001 22.859375,94.546875 M 22.820313,91.421875 C 22.450515,91.593754 22.023432,91.731775 21.539063,91.835938 C 21.059892,91.940108 20.812496,91.994795 20.796875,92 C 20.39583,92.114587 20.11458,92.257816 19.953125,92.429688 C 19.796872,92.601566 19.718747,92.838544 19.71875,93.140625 C 19.718747,93.453127 19.82031,93.703127 20.023438,93.890625 C 20.226559,94.072918 20.499997,94.164064 20.84375,94.164063 C 21.458329,94.164064 21.940099,93.992189 22.289063,93.648438 C 22.643224,93.299481 22.820307,92.825524 22.820313,92.226563 L 22.820313,91.421875 M 27.039063,84.09375 L 29.25,84.09375 L 29.25,88.164063 C 29.531246,87.721362 29.882809,87.388029 30.304688,87.164063 C 30.731766,86.934905 31.216141,86.820321 31.757813,86.820313 C 32.783847,86.820321 33.622388,87.2448 34.273438,88.09375 C 34.92447,88.937507 35.249991,90.036464 35.25,91.390625 C 35.249991,92.734378 34.92447,93.820314 34.273438,94.648438 C 33.622388,95.476563 32.773431,95.890625 31.726563,95.890625 C 31.179682,95.890625 30.70312,95.776041 30.296875,95.546875 C 29.895829,95.317709 29.531246,94.953126 29.203125,94.453125 L 29.203125,95.601563 L 27.039063,95.601563 L 27.039063,84.09375 M 32.992188,91.296875 C 32.992181,90.51563 32.828118,89.903652 32.5,89.460938 C 32.171869,89.013027 31.721348,88.789069 31.148438,88.789063 C 30.544266,88.789069 30.075517,89.007819 29.742188,89.445313 C 29.414059,89.87761 29.249997,90.494797 29.25,91.296875 C 29.249997,92.161462 29.406247,92.817711 29.71875,93.265625 C 30.036454,93.713544 30.497391,93.937502 31.101563,93.9375 C 31.71614,93.937502 32.18489,93.713544 32.507813,93.265625 C 32.830722,92.812503 32.992181,92.156253 32.992188,91.296875"
+ id="text5427" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 789.76563,44.369141 L 792.57031,44.369141 C 793.23176,44.369143 793.71353,44.249351 794.01563,44.009766 C 794.3177,43.770185 794.46874,43.392581 794.46875,42.876953 C 794.46874,42.340499 794.3203,41.955083 794.02344,41.720703 C 793.72656,41.481125 793.23697,41.361333 792.55469,41.361328 L 789.76563,41.361328 L 789.76563,44.369141 M 789.76563,39.392578 L 792.46875,39.392578 C 793.05208,39.392585 793.47916,39.293627 793.75,39.095703 C 794.02083,38.892586 794.15624,38.574878 794.15625,38.142578 C 794.15624,37.720712 794.02343,37.416025 793.75781,37.228516 C 793.49739,37.035817 793.06249,36.939463 792.45313,36.939453 L 789.76563,36.939453 L 789.76563,39.392578 M 787.5,46.447266 L 787.5,34.939453 L 792.92188,34.939453 C 794.09895,34.939465 794.99478,35.189464 795.60938,35.689453 C 796.22916,36.184255 796.53905,36.905609 796.53906,37.853516 C 796.53905,38.436857 796.42447,38.923836 796.19531,39.314453 C 795.96614,39.705085 795.62239,40.007168 795.16406,40.220703 C 795.7578,40.460292 796.20051,40.806646 796.49219,41.259766 C 796.78905,41.707687 796.93749,42.267582 796.9375,42.939453 C 796.93749,44.059247 796.57291,44.92383 795.84375,45.533203 C 795.11457,46.142578 794.08072,46.447266 792.74219,46.447266 L 787.5,46.447266 M 803.45313,45.392578 C 803.16666,45.835287 802.79166,46.173828 802.32813,46.408203 C 801.86458,46.63737 801.32552,46.751953 800.71094,46.751953 C 799.88802,46.751953 799.2526,46.517578 798.80469,46.048828 C 798.36198,45.580079 798.14062,44.913413 798.14063,44.048828 C 798.14062,43.246748 798.36198,42.634769 798.80469,42.212891 C 799.2526,41.79102 799.98958,41.501958 801.01563,41.345703 C 801.25,41.30925 801.55729,41.267583 801.9375,41.220703 C 802.90104,41.095708 803.38281,40.817063 803.38281,40.384766 C 803.38281,40.041022 803.27604,39.796231 803.0625,39.650391 C 802.84895,39.499356 802.49218,39.423835 801.99219,39.423828 C 801.53385,39.423835 801.18229,39.514981 800.9375,39.697266 C 800.69271,39.879564 800.57031,40.13998 800.57031,40.478516 L 800.57031,40.603516 L 798.44531,40.603516 L 798.44531,40.447266 C 798.44531,39.577481 798.7526,38.89519 799.36719,38.400391 C 799.98177,37.900399 800.83073,37.650399 801.91406,37.650391 C 803.10156,37.650399 804.01041,37.856128 804.64063,38.267578 C 805.27603,38.679044 805.59374,39.272794 805.59375,40.048828 L 805.59375,44.876953 C 805.59374,45.231121 805.6302,45.496746 805.70313,45.673828 C 805.77603,45.845704 805.89843,45.975912 806.07031,46.064453 L 806.07031,46.447266 L 803.70313,46.447266 C 803.62499,46.301432 803.5651,46.139974 803.52344,45.962891 C 803.48176,45.785808 803.45833,45.595704 803.45313,45.392578 M 803.41406,42.267578 C 803.04427,42.439457 802.61718,42.577478 802.13281,42.681641 C 801.65364,42.785811 801.40625,42.840498 801.39063,42.845703 C 800.98958,42.96029 800.70833,43.103519 800.54688,43.275391 C 800.39062,43.447269 800.3125,43.684248 800.3125,43.986328 C 800.3125,44.29883 800.41406,44.54883 800.61719,44.736328 C 800.82031,44.918621 801.09375,45.009767 801.4375,45.009766 C 802.05208,45.009767 802.53385,44.837892 802.88281,44.494141 C 803.23697,44.145185 803.41406,43.671227 803.41406,43.072266 L 803.41406,42.267578 M 812.71875,43.244141 L 814.96094,43.244141 C 814.86718,44.322268 814.47395,45.173829 813.78125,45.798828 C 813.08854,46.423828 812.19791,46.736328 811.10938,46.736328 C 809.875,46.736328 808.90625,46.335287 808.20313,45.533203 C 807.50521,44.725913 807.15625,43.611331 807.15625,42.189453 C 807.15625,40.772792 807.51302,39.663418 808.22656,38.861328 C 808.94531,38.054045 809.93229,37.650399 811.1875,37.650391 C 812.28645,37.650399 813.16666,37.942066 813.82813,38.525391 C 814.49478,39.108731 814.86718,39.92123 814.94531,40.962891 L 812.6875,40.962891 C 812.62499,40.509772 812.46614,40.163418 812.21094,39.923828 C 811.95572,39.684252 811.61979,39.56446 811.20313,39.564453 C 810.64062,39.56446 810.21875,39.785814 809.9375,40.228516 C 809.66146,40.67123 809.52343,41.335292 809.52344,42.220703 C 809.52343,43.038415 809.66666,43.668623 809.95313,44.111328 C 810.24479,44.54883 810.66145,44.76758 811.20313,44.767578 C 811.62499,44.76758 811.96354,44.639976 812.21875,44.384766 C 812.47395,44.12956 812.64062,43.749352 812.71875,43.244141 M 816.44531,46.447266 L 816.44531,34.939453 L 818.65625,34.939453 L 818.65625,40.978516 L 821.35938,37.955078 L 824.09375,37.955078 L 821.13281,41.103516 L 824.27344,46.447266 L 821.54688,46.447266 L 819.51563,42.830078 L 818.65625,43.759766 L 818.65625,46.447266 L 816.44531,46.447266 M 824.79688,43.681641 L 827.0625,43.681641 C 827.08333,44.113935 827.23958,44.436851 827.53125,44.650391 C 827.82291,44.858726 828.26041,44.962892 828.84375,44.962891 C 829.28645,44.962892 829.6276,44.889976 829.86719,44.744141 C 830.11197,44.593101 830.23437,44.382164 830.23438,44.111328 C 830.23437,43.725914 829.78124,43.436852 828.875,43.244141 C 828.5052,43.166019 828.21093,43.098311 827.99219,43.041016 C 826.88802,42.759769 826.11979,42.426436 825.6875,42.041016 C 825.26042,41.655604 825.04687,41.134771 825.04688,40.478516 C 825.04687,39.608731 825.35937,38.921231 825.98438,38.416016 C 826.61458,37.905608 827.46614,37.650399 828.53906,37.650391 C 829.67447,37.650399 830.5651,37.903003 831.21094,38.408203 C 831.86197,38.913419 832.20833,39.624356 832.25,40.541016 L 830.03906,40.541016 C 830.02343,40.181647 829.88541,39.903001 829.625,39.705078 C 829.36979,39.507168 829.01302,39.40821 828.55469,39.408203 C 828.12239,39.40821 827.79948,39.473314 827.58594,39.603516 C 827.3776,39.733731 827.27343,39.929043 827.27344,40.189453 C 827.27343,40.528001 827.83854,40.82748 828.96875,41.087891 C 829.22916,41.145188 829.43489,41.192063 829.58594,41.228516 C 830.71614,41.494146 831.48697,41.814458 831.89844,42.189453 C 832.3151,42.564457 832.52343,43.093102 832.52344,43.775391 C 832.52343,44.738934 832.18228,45.473308 831.5,45.978516 C 830.82291,46.483724 829.83593,46.736328 828.53906,46.736328 C 827.36718,46.736328 826.45052,46.473307 825.78906,45.947266 C 825.1276,45.421225 824.79687,44.697267 824.79688,43.775391 L 824.79688,43.681641 M 840.02344,42.251953 C 840.02343,41.397792 839.86197,40.74675 839.53906,40.298828 C 839.21614,39.84571 838.74739,39.619147 838.13281,39.619141 C 837.52864,39.619147 837.0677,39.843106 836.75,40.291016 C 836.4375,40.738938 836.28125,41.392583 836.28125,42.251953 C 836.28125,43.05404 836.44531,43.673831 836.77344,44.111328 C 837.10677,44.54883 837.57552,44.76758 838.17969,44.767578 C 838.7526,44.76758 839.20312,44.543622 839.53125,44.095703 C 839.85937,43.647789 840.02343,43.033207 840.02344,42.251953 M 834.07031,49.853516 L 834.07031,37.955078 L 836.23438,37.955078 L 836.23438,39.103516 C 836.5625,38.603523 836.92708,38.23894 837.32813,38.009766 C 837.73437,37.780608 838.21093,37.666024 838.75781,37.666016 C 839.80468,37.666024 840.65364,38.080086 841.30469,38.908203 C 841.95572,39.731127 842.28124,40.814459 842.28125,42.158203 C 842.28124,43.517581 841.95572,44.621747 841.30469,45.470703 C 840.65364,46.314453 839.8151,46.736328 838.78906,46.736328 C 838.24739,46.736328 837.76302,46.621745 837.33594,46.392578 C 836.91406,46.163412 836.5625,45.830079 836.28125,45.392578 L 836.28125,49.853516 L 834.07031,49.853516 M 848.70313,45.392578 C 848.41666,45.835287 848.04166,46.173828 847.57813,46.408203 C 847.11458,46.63737 846.57552,46.751953 845.96094,46.751953 C 845.13802,46.751953 844.5026,46.517578 844.05469,46.048828 C 843.61198,45.580079 843.39062,44.913413 843.39063,44.048828 C 843.39062,43.246748 843.61198,42.634769 844.05469,42.212891 C 844.5026,41.79102 845.23958,41.501958 846.26563,41.345703 C 846.5,41.30925 846.80729,41.267583 847.1875,41.220703 C 848.15104,41.095708 848.63281,40.817063 848.63281,40.384766 C 848.63281,40.041022 848.52604,39.796231 848.3125,39.650391 C 848.09895,39.499356 847.74218,39.423835 847.24219,39.423828 C 846.78385,39.423835 846.43229,39.514981 846.1875,39.697266 C 845.94271,39.879564 845.82031,40.13998 845.82031,40.478516 L 845.82031,40.603516 L 843.69531,40.603516 L 843.69531,40.447266 C 843.69531,39.577481 844.0026,38.89519 844.61719,38.400391 C 845.23177,37.900399 846.08073,37.650399 847.16406,37.650391 C 848.35156,37.650399 849.26041,37.856128 849.89063,38.267578 C 850.52603,38.679044 850.84374,39.272794 850.84375,40.048828 L 850.84375,44.876953 C 850.84374,45.231121 850.8802,45.496746 850.95313,45.673828 C 851.02603,45.845704 851.14843,45.975912 851.32031,46.064453 L 851.32031,46.447266 L 848.95313,46.447266 C 848.87499,46.301432 848.8151,46.139974 848.77344,45.962891 C 848.73176,45.785808 848.70833,45.595704 848.70313,45.392578 M 848.66406,42.267578 C 848.29427,42.439457 847.86718,42.577478 847.38281,42.681641 C 846.90364,42.785811 846.65625,42.840498 846.64063,42.845703 C 846.23958,42.96029 845.95833,43.103519 845.79688,43.275391 C 845.64062,43.447269 845.5625,43.684248 845.5625,43.986328 C 845.5625,44.29883 845.66406,44.54883 845.86719,44.736328 C 846.07031,44.918621 846.34375,45.009767 846.6875,45.009766 C 847.30208,45.009767 847.78385,44.837892 848.13281,44.494141 C 848.48697,44.145185 848.66406,43.671227 848.66406,43.072266 L 848.66406,42.267578 M 857.96875,43.244141 L 860.21094,43.244141 C 860.11718,44.322268 859.72395,45.173829 859.03125,45.798828 C 858.33854,46.423828 857.44791,46.736328 856.35938,46.736328 C 855.125,46.736328 854.15625,46.335287 853.45313,45.533203 C 852.75521,44.725913 852.40625,43.611331 852.40625,42.189453 C 852.40625,40.772792 852.76302,39.663418 853.47656,38.861328 C 854.19531,38.054045 855.18229,37.650399 856.4375,37.650391 C 857.53645,37.650399 858.41666,37.942066 859.07813,38.525391 C 859.74478,39.108731 860.11718,39.92123 860.19531,40.962891 L 857.9375,40.962891 C 857.87499,40.509772 857.71614,40.163418 857.46094,39.923828 C 857.20572,39.684252 856.86979,39.56446 856.45313,39.564453 C 855.89062,39.56446 855.46875,39.785814 855.1875,40.228516 C 854.91146,40.67123 854.77343,41.335292 854.77344,42.220703 C 854.77343,43.038415 854.91666,43.668623 855.20313,44.111328 C 855.49479,44.54883 855.91145,44.76758 856.45313,44.767578 C 856.87499,44.76758 857.21354,44.639976 857.46875,44.384766 C 857.72395,44.12956 857.89062,43.749352 857.96875,43.244141 M 866.88281,43.869141 L 869.14844,43.869141 C 868.91926,44.764976 868.45572,45.4681 867.75781,45.978516 C 867.0651,46.483724 866.21874,46.736328 865.21875,46.736328 C 863.98958,46.736328 863.01562,46.32487 862.29688,45.501953 C 861.57812,44.67383 861.21875,43.554039 861.21875,42.142578 C 861.21875,40.751959 861.57292,39.655606 862.28125,38.853516 C 862.98958,38.051441 863.95833,37.650399 865.1875,37.650391 C 866.48958,37.650399 867.49478,38.046232 868.20313,38.837891 C 868.91145,39.624356 869.26562,40.74675 869.26563,42.205078 C 869.26562,42.366541 869.26301,42.488936 869.25781,42.572266 C 869.2578,42.650394 869.2526,42.725915 869.24219,42.798828 L 863.57031,42.798828 C 863.60156,43.465498 863.76302,43.968101 864.05469,44.306641 C 864.35156,44.645184 864.77604,44.814455 865.32813,44.814453 C 865.71874,44.814455 866.03906,44.738934 866.28906,44.587891 C 866.53906,44.431643 866.73697,44.19206 866.88281,43.869141 M 863.57031,41.306641 L 866.91406,41.306641 C 866.89322,40.73373 866.73958,40.298834 866.45313,40.001953 C 866.17187,39.699877 865.76562,39.548835 865.23438,39.548828 C 864.73958,39.548835 864.34895,39.699877 864.0625,40.001953 C 863.78125,40.304043 863.61718,40.738938 863.57031,41.306641"
+ id="text5207" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 840,17.646484 L 797.02608,17.646484"
+ id="path5439" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 802.5,25.146484 L 802.5,10.146484 L 787.5,17.646484 L 802.5,25.146484 z "
+ id="path5441" />
+ <g
+ id="g5459"
+ transform="translate(0,7.5)">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 82.50003,75 L 54.020182,75"
+ id="path5453" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 60,82.5 L 60,67.5 L 45,75 L 60,82.5 z "
+ id="path5455" />
+ <path
+ id="path5457"
+ d="M 45,67.5 C 45,82.5 45,82.5 45,82.5"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ id="g5464"
+ transform="matrix(-1,9.581637e-17,-9.581637e-17,-1,127.5,172.5)">
+ <path
+ id="path5466"
+ d="M 82.50003,75 L 54.020182,75"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path5468"
+ d="M 60,82.5 L 60,67.5 L 45,75 L 60,82.5 z "
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 45,67.5 C 45,82.5 45,82.5 45,82.5"
+ id="path5470" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 107.0625,80.560547 L 105.23438,78.779297 L 107.17969,76.763672 L 109.05469,78.591797 C 109.30467,78.123052 109.49608,77.587897 109.62891,76.986328 C 109.7617,76.384773 109.82811,75.728524 109.82813,75.017578 C 109.82811,73.119151 109.40233,71.646496 108.55078,70.599609 C 107.69921,69.544936 106.5078,69.017593 104.97656,69.017578 C 103.46093,69.017593 102.28124,69.54103 101.4375,70.587891 C 100.59374,71.634778 100.17187,73.111339 100.17188,75.017578 C 100.17187,76.916022 100.59374,78.392583 101.4375,79.447266 C 102.28124,80.494144 103.46093,81.017581 104.97656,81.017578 C 105.36718,81.017581 105.73436,80.978518 106.07813,80.900391 C 106.42968,80.822268 106.7578,80.708987 107.0625,80.560547 M 109.55859,82.916016 C 108.97264,83.306641 108.28905,83.603516 107.50781,83.806641 C 106.73436,84.009765 105.89061,84.111328 104.97656,84.111328 C 102.39843,84.111328 100.34765,83.291016 98.824219,81.650391 C 97.308592,80.009769 96.55078,77.798834 96.550781,75.017578 C 96.55078,72.228527 97.308592,70.017592 98.824219,68.384766 C 100.34765,66.744158 102.39843,65.923846 104.97656,65.923828 C 107.55468,65.923846 109.60545,66.744158 111.12891,68.384766 C 112.66014,70.025404 113.42576,72.23634 113.42578,75.017578 C 113.42576,76.236336 113.26951,77.353522 112.95703,78.369141 C 112.64451,79.376957 112.18358,80.259769 111.57422,81.017578 L 113.44922,82.810547 L 111.52734,84.826172 L 109.55859,82.916016"
+ id="text5474" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 158.94141,83.630859 L 153.99609,66.369141 L 157.67578,66.369141 L 160.62891,78.544922 L 163.125,66.369141 L 166.91016,66.369141 L 169.40625,78.544922 L 172.35938,66.369141 L 176.00391,66.369141 L 171.07031,83.630859 L 167.68359,83.630859 L 165.01172,70.412109 L 162.32813,83.630859 L 158.94141,83.630859"
+ id="text5482" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 218.52539,83.630859 L 218.52539,66.369141 L 231.05273,66.369141 L 231.05273,69.369141 L 222.0293,69.369141 L 222.0293,73.048828 L 230.2793,73.048828 L 230.2793,76.001953 L 222.0293,76.001953 L 222.0293,80.443359 L 231.47461,80.443359 L 231.47461,83.630859 L 218.52539,83.630859"
+ id="text5492" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 281.4375,73.916016 L 285.60938,73.916016 C 286.51561,73.916025 287.17968,73.732432 287.60156,73.365234 C 288.03124,72.998058 288.24608,72.419933 288.24609,71.630859 C 288.24608,70.880872 288.03905,70.314466 287.625,69.931641 C 287.21093,69.54103 286.59374,69.345717 285.77344,69.345703 L 281.4375,69.345703 L 281.4375,73.916016 M 277.88672,83.630859 L 277.88672,66.369141 L 286.25391,66.369141 C 288.13671,66.369158 289.53124,66.771501 290.4375,67.576172 C 291.34373,68.380875 291.79686,69.611342 291.79688,71.267578 C 291.79686,72.322277 291.5742,73.201182 291.12891,73.904297 C 290.69139,74.607431 290.05858,75.087899 289.23047,75.345703 C 289.98045,75.611336 290.5117,76.017586 290.82422,76.564453 C 291.14452,77.111335 291.32811,77.962896 291.375,79.119141 L 291.44531,81.158203 C 291.4453,81.173831 291.4453,81.197268 291.44531,81.228516 C 291.46873,82.259767 291.69139,82.884766 292.11328,83.103516 L 292.11328,83.630859 L 288.22266,83.630859 C 288.09764,83.388672 287.99999,83.091797 287.92969,82.740234 C 287.86718,82.380861 287.82811,81.95508 287.8125,81.462891 L 287.76563,79.646484 C 287.72655,78.576177 287.52343,77.853521 287.15625,77.478516 C 286.79686,77.103522 286.14452,76.916022 285.19922,76.916016 L 281.4375,76.916016 L 281.4375,83.630859 L 277.88672,83.630859"
+ id="text5500" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 343.24219,83.630859 L 343.24219,69.451172 L 338.12109,69.451172 L 338.12109,66.369141 L 351.87891,66.369141 L 351.87891,69.451172 L 346.79297,69.451172 L 346.79297,83.630859 L 343.24219,83.630859"
+ id="text5504" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 407.06836,83.630859 L 403.51758,83.630859 L 403.51758,77.197266 L 397.24805,66.369141 L 401.5957,66.369141 L 405.28711,73.810547 L 408.69727,66.369141 L 412.75195,66.369141 L 407.06836,77.197266 L 407.06836,83.630859"
+ id="text5518" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 458.08594,66.105469 L 461.67188,66.105469 L 461.67188,76.933594 C 461.67187,78.269536 461.93749,79.246098 462.46875,79.863281 C 462.99999,80.472659 463.84374,80.777346 465,80.777344 C 466.17187,80.777346 467.02343,80.472659 467.55469,79.863281 C 468.09374,79.25391 468.36327,78.277349 468.36328,76.933594 L 468.36328,66.105469 L 471.91406,66.105469 L 471.91406,77.320313 C 471.91405,79.437504 471.3203,81.062502 470.13281,82.195313 C 468.95311,83.328125 467.24999,83.894531 465.02344,83.894531 C 462.78124,83.894531 461.0625,83.332031 459.86719,82.207031 C 458.67969,81.074221 458.08594,79.445316 458.08594,77.320313 L 458.08594,66.105469"
+ id="text5522" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 523.22461,83.630859 L 523.22461,66.369141 L 526.77539,66.369141 L 526.77539,83.630859 L 523.22461,83.630859"
+ id="text5526" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 580.18359,75 C 580.18359,76.898444 580.60546,78.375005 581.44922,79.429688 C 582.29296,80.476566 583.47265,81.000003 584.98828,81 C 586.51952,81.000003 587.71093,80.476566 588.5625,79.429688 C 589.41405,78.375005 589.83983,76.898444 589.83984,75 C 589.83983,73.101573 589.41405,71.628918 588.5625,70.582031 C 587.71093,69.527358 586.51952,69.000015 584.98828,69 C 583.47265,69.000015 582.29296,69.523452 581.44922,70.570313 C 580.60546,71.617199 580.18359,73.093761 580.18359,75 M 576.5625,75 C 576.5625,72.210949 577.32031,70.000014 578.83594,68.367188 C 580.35937,66.726579 582.41015,65.906268 584.98828,65.90625 C 587.56639,65.906268 589.61717,66.726579 591.14063,68.367188 C 592.67186,70.007826 593.43748,72.218761 593.4375,75 C 593.43748,77.781256 592.67186,79.992191 591.14063,81.632813 C 589.61717,83.273438 587.56639,84.09375 584.98828,84.09375 C 582.41015,84.09375 580.35937,83.273438 578.83594,81.632813 C 577.32031,79.992191 576.5625,77.781256 576.5625,75"
+ id="text5530" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 641.97656,74.361328 L 645.41016,74.361328 C 646.33983,74.361337 647.01561,74.166025 647.4375,73.775391 C 647.85936,73.376963 648.0703,72.740245 648.07031,71.865234 C 648.0703,71.044934 647.86327,70.423841 647.44922,70.001953 C 647.03515,69.580092 646.41796,69.369155 645.59766,69.369141 L 641.97656,69.369141 L 641.97656,74.361328 M 641.95313,77.490234 L 641.95313,83.630859 L 638.40234,83.630859 L 638.40234,66.369141 L 646.07813,66.369141 C 647.89061,66.369158 649.26171,66.841814 650.19141,67.787109 C 651.12889,68.724624 651.59764,70.103529 651.59766,71.923828 C 651.59764,73.705088 651.14061,75.080087 650.22656,76.048828 C 649.31249,77.009772 648.0078,77.490241 646.3125,77.490234 L 641.95313,77.490234"
+ id="text5534" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 709.24805,63.919922 L 709.24805,66.369141 C 709.17772,66.369155 709.08007,66.365249 708.95508,66.357422 C 708.83007,66.349624 708.74413,66.345718 708.69727,66.345703 C 707.90819,66.345718 707.37304,66.498062 707.0918,66.802734 C 706.81835,67.099624 706.68163,67.732435 706.68164,68.701172 L 706.68164,71.513672 C 706.68163,72.66993 706.50585,73.490242 706.1543,73.974609 C 705.80273,74.458991 705.16992,74.806647 704.25586,75.017578 C 705.16992,75.228522 705.80273,75.572271 706.1543,76.048828 C 706.50585,76.525395 706.68163,77.341801 706.68164,78.498047 L 706.68164,81.322266 C 706.68163,82.283202 706.81835,82.912108 707.0918,83.208984 C 707.36523,83.505857 707.90038,83.654294 708.69727,83.654297 C 708.74413,83.654294 708.83007,83.650388 708.95508,83.642578 C 709.08007,83.634763 709.17772,83.630857 709.24805,83.630859 L 709.24805,86.080078 C 709.13866,86.080073 708.98632,86.08398 708.79102,86.091797 C 708.59569,86.099605 708.45116,86.103511 708.35742,86.103516 C 707.57616,86.103511 706.92382,86.056636 706.40039,85.962891 C 705.87695,85.869136 705.43163,85.724605 705.06445,85.529297 C 704.61913,85.263668 704.30273,84.904293 704.11523,84.451172 C 703.93554,84.005857 703.8457,83.228514 703.8457,82.119141 L 703.8457,79.166016 C 703.8457,78.095706 703.64648,77.337895 703.24805,76.892578 C 702.84961,76.439458 702.17773,76.212896 701.23242,76.212891 C 701.18554,76.212896 701.10742,76.216802 700.99805,76.224609 C 700.88867,76.232427 700.80664,76.236333 700.75195,76.236328 L 700.75195,73.787109 C 700.80664,73.787117 700.88867,73.791023 700.99805,73.798828 C 701.10742,73.806648 701.18554,73.810554 701.23242,73.810547 C 702.16992,73.810554 702.83789,73.583992 703.23633,73.130859 C 703.64257,72.677743 703.8457,71.912119 703.8457,70.833984 L 703.8457,67.904297 C 703.8457,66.787124 703.93554,66.001968 704.11523,65.548828 C 704.30273,65.095719 704.61913,64.736345 705.06445,64.470703 C 705.43163,64.275408 705.87695,64.130876 706.40039,64.037109 C 706.92382,63.943377 707.57616,63.896502 708.35742,63.896484 C 708.45116,63.896502 708.59569,63.900408 708.79102,63.908203 C 708.98632,63.916033 709.13866,63.919939 709.24805,63.919922 M 703.0957,93.966797 L 709.01367,93.966797 L 709.01367,96.462891 L 706.25977,96.462891 L 706.25977,113.8418 L 709.01367,113.8418 L 709.01367,116.33789 L 703.0957,116.33789 L 703.0957,93.966797"
+ id="text5546" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 760.75195,63.908203 L 761.54883,63.908203 C 762.4082,63.90822 763.09961,63.955095 763.62305,64.048828 C 764.14648,64.142595 764.58398,64.291033 764.93555,64.494141 C 765.38085,64.744157 765.69335,65.103532 765.87305,65.572266 C 766.06054,66.033218 766.15429,66.806655 766.1543,67.892578 L 766.1543,70.845703 C 766.15429,71.916025 766.35351,72.677743 766.75195,73.130859 C 767.15038,73.57618 767.82226,73.798836 768.76758,73.798828 C 768.81444,73.798836 768.89257,73.794929 769.00195,73.787109 C 769.11132,73.779304 769.19335,73.775398 769.24805,73.775391 L 769.24805,76.224609 L 768.81445,76.224609 C 767.83788,76.224614 767.15038,76.443364 766.75195,76.880859 C 766.35351,77.318363 766.15429,78.076175 766.1543,79.154297 L 766.1543,82.107422 C 766.15429,83.224607 766.06054,84.009763 765.87305,84.462891 C 765.69335,84.916012 765.38085,85.267574 764.93555,85.517578 C 764.56835,85.712886 764.12304,85.857417 763.59961,85.951172 C 763.07617,86.044917 762.42382,86.091792 761.64258,86.091797 C 761.54883,86.091792 761.40429,86.087886 761.20898,86.080078 C 761.01367,86.072261 760.86133,86.068355 760.75195,86.068359 L 760.75195,83.619141 C 760.82226,83.619138 760.91992,83.623044 761.04492,83.630859 C 761.16992,83.638669 761.25586,83.642576 761.30273,83.642578 C 762.09179,83.642576 762.62304,83.490232 762.89648,83.185547 C 763.17773,82.88867 763.31836,82.263671 763.31836,81.310547 L 763.31836,78.509766 C 763.31836,77.337895 763.49414,76.513677 763.8457,76.037109 C 764.19726,75.55274 764.83007,75.20899 765.74414,75.005859 C 764.83007,74.794928 764.19726,74.447272 763.8457,73.962891 C 763.49414,73.478523 763.31836,72.658212 763.31836,71.501953 L 763.31836,68.666016 C 763.31836,67.712904 763.17773,67.087905 762.89648,66.791016 C 762.62304,66.486343 762.09179,66.333999 761.30273,66.333984 C 761.25586,66.333999 761.16992,66.337906 761.04492,66.345703 C 760.91992,66.35353 760.82226,66.357437 760.75195,66.357422 L 760.75195,63.908203 M 767.00977,93.955078 L 767.00977,116.32617 L 761.08008,116.32617 L 761.08008,113.83008 L 763.8457,113.83008 L 763.8457,96.451172 L 761.08008,96.451172 L 761.08008,93.955078 L 767.00977,93.955078"
+ id="text5554" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 823.79883,62.977287 L 826.21289,62.977287 L 826.21289,86.977287 L 823.79883,86.977287 L 823.79883,62.977287 M 827.10352,113.54369 L 821.29102,93.6101 L 822.87305,93.6101 L 828.70898,113.54369 L 827.10352,113.54369"
+ id="text5564" />
+ <g
+ id="g3597">
+ <path
+ id="text5570"
+ d="M 22.996094,139.10156 C 22.907541,140.40886 22.403635,141.44792 21.484375,142.21875 C 20.565095,142.98958 19.365878,143.375 17.886719,143.375 C 16.183589,143.375 14.859372,142.84375 13.914063,141.78125 C 12.968749,140.71875 12.496093,139.22917 12.496094,137.3125 C 12.496093,135.35417 12.977863,133.85418 13.941406,132.8125 C 14.904945,131.77084 16.29036,131.25001 18.097656,131.25 C 19.566398,131.25001 20.726554,131.60808 21.578125,132.32422 C 22.429677,133.04037 22.897124,134.05209 22.980469,135.35938 L 20.644531,135.35938 C 20.545564,134.70834 20.279939,134.21225 19.847656,133.87109 C 19.415357,133.52996 18.832024,133.35938 18.097656,133.35938 C 17.055984,133.35938 16.264318,133.69532 15.722656,134.36719 C 15.180986,135.03907 14.910153,136.02084 14.910156,137.3125 C 14.910153,138.5625 15.179684,139.52865 15.71875,140.21094 C 16.257808,140.89323 17.024734,141.23438 18.019531,141.23438 C 18.738274,141.23438 19.326815,141.05078 19.785156,140.68359 C 20.243481,140.31641 20.540356,139.78907 20.675781,139.10156 L 22.996094,139.10156 z M 29.558594,142 C 29.27213,142.44271 28.89713,142.77995 28.433594,143.01172 C 27.970048,143.24349 27.430986,143.35937 26.816406,143.35938 C 25.993487,143.35937 25.359373,143.125 24.914063,142.65625 C 24.468749,142.1875 24.246093,141.52083 24.246094,140.65625 C 24.246093,139.85417 24.468749,139.24219 24.914063,138.82031 C 25.359373,138.39844 26.09505,138.10938 27.121094,137.95313 C 27.355465,137.91667 27.662756,137.87501 28.042969,137.82813 C 29.006505,137.70313 29.488275,137.42448 29.488281,136.99219 C 29.488275,136.64844 29.381505,136.40235 29.167969,136.25391 C 28.954422,136.10548 28.597651,136.03126 28.097656,136.03125 C 27.639319,136.03126 27.287757,136.1224 27.042969,136.30469 C 26.798174,136.48699 26.675778,136.7474 26.675781,137.08594 L 26.675781,137.21094 L 24.550781,137.21094 L 24.550781,137.05469 C 24.55078,136.1849 24.858072,135.50131 25.472656,135.00391 C 26.087237,134.50652 26.936195,134.25782 28.019531,134.25781 C 29.207026,134.25782 30.117181,134.46355 30.75,134.875 C 31.382805,135.28647 31.699211,135.88022 31.699219,136.65625 L 31.699219,141.48438 C 31.699211,141.83854 31.735669,142.10287 31.808594,142.27734 C 31.881502,142.45182 32.003898,142.58333 32.175781,142.67188 L 32.175781,143.05469 L 29.808594,143.05469 C 29.730463,142.90885 29.670567,142.7474 29.628906,142.57031 C 29.587234,142.39323 29.563796,142.20313 29.558594,142 L 29.558594,142 z M 29.519531,138.875 C 29.149734,139.04688 28.723953,139.1849 28.242188,139.28906 C 27.760413,139.39323 27.511715,139.44792 27.496094,139.45313 C 27.095049,139.56771 26.815101,139.71094 26.65625,139.88281 C 26.497393,140.05469 26.417966,140.29167 26.417969,140.59375 C 26.417966,140.90625 26.519528,141.15495 26.722656,141.33984 C 26.925778,141.52474 27.199215,141.61719 27.542969,141.61719 C 28.157548,141.61719 28.64062,141.44401 28.992188,141.09766 C 29.343744,140.7513 29.519525,140.27865 29.519531,139.67969 L 29.519531,138.875 z M 39.691406,138.85938 C 39.691399,138.00521 39.529941,137.35287 39.207031,136.90234 C 38.884108,136.45183 38.415359,136.22657 37.800781,136.22656 C 37.19661,136.22657 36.736975,136.45053 36.421875,136.89844 C 36.106767,137.34636 35.949216,138.00001 35.949219,138.85938 C 35.949216,139.66146 36.11458,140.28125 36.445313,140.71875 C 36.776038,141.15625 37.243485,141.375 37.847656,141.375 C 38.420567,141.375 38.871088,141.15104 39.199219,140.70313 C 39.527337,140.25521 39.691399,139.64063 39.691406,138.85938 L 39.691406,138.85938 z M 33.738281,146.46094 L 33.738281,134.5625 L 35.902344,134.5625 L 35.902344,135.71094 C 36.230465,135.21095 36.59635,134.84636 37,134.61719 C 37.403641,134.38803 37.878901,134.27345 38.425781,134.27344 C 39.472649,134.27345 40.321607,134.68621 40.972656,135.51172 C 41.623689,136.33725 41.94921,137.42188 41.949219,138.76563 C 41.94921,140.125 41.623689,141.22787 40.972656,142.07422 C 40.321607,142.92057 39.483066,143.34375 38.457031,143.34375 C 37.915359,143.34375 37.432287,143.22917 37.007813,143 C 36.583329,142.77083 36.230465,142.4375 35.949219,142 L 35.949219,146.46094 L 33.738281,146.46094 z M 43.027344,140.28906 L 45.292969,140.28906 C 45.313799,140.72136 45.470049,141.04297 45.761719,141.25391 C 46.053382,141.46485 46.490881,141.57031 47.074219,141.57031 C 47.516922,141.57031 47.85937,141.4961 48.101563,141.34766 C 48.343744,141.19922 48.464838,140.98959 48.464844,140.71875 C 48.464838,140.33334 48.011713,140.04427 47.105469,139.85156 C 46.735673,139.77344 46.441402,139.70573 46.222656,139.64844 C 45.118487,139.36719 44.351561,139.03386 43.921875,138.64844 C 43.492187,138.26303 43.277343,137.74219 43.277344,137.08594 C 43.277343,136.21615 43.591145,135.52735 44.21875,135.01953 C 44.846352,134.51173 45.696611,134.25782 46.769531,134.25781 C 47.904943,134.25782 48.796869,134.51043 49.445313,135.01563 C 50.093742,135.52084 50.438794,136.23178 50.480469,137.14844 L 48.269531,137.14844 C 48.253901,136.78907 48.117182,136.51042 47.859375,136.3125 C 47.601557,136.11459 47.243485,136.01563 46.785156,136.01563 C 46.352861,136.01563 46.031246,136.08074 45.820313,136.21094 C 45.609372,136.34115 45.503903,136.53646 45.503906,136.79688 C 45.503903,137.13542 46.069007,137.4349 47.199219,137.69531 C 47.45963,137.75261 47.665359,137.79948 47.816406,137.83594 C 48.946608,138.10157 49.718743,138.42188 50.132813,138.79688 C 50.546867,139.17188 50.753898,139.70052 50.753906,140.38281 C 50.753898,141.34636 50.414055,142.08073 49.734375,142.58594 C 49.054681,143.09115 48.066401,143.34375 46.769531,143.34375 C 45.597653,143.34375 44.680987,143.08073 44.019531,142.55469 C 43.358072,142.02865 43.027343,141.30469 43.027344,140.38281 L 43.027344,140.28906 z M 57.011719,143.05469 L 57.011719,131.54688 L 59.378906,131.54688 L 59.378906,140.92969 L 64.996094,140.92969 L 64.996094,143.05469 L 57.011719,143.05469 z M 67.972656,138.79688 C 67.972653,139.64063 68.14583,140.29167 68.492188,140.75 C 68.838538,141.20834 69.332027,141.4375 69.972656,141.4375 C 70.602859,141.4375 71.09114,141.20834 71.4375,140.75 C 71.783847,140.29167 71.957024,139.64063 71.957031,138.79688 C 71.957024,137.95834 71.78515,137.3112 71.441406,136.85547 C 71.09765,136.39975 70.608067,136.17188 69.972656,136.17188 C 69.332027,136.17188 68.838538,136.39975 68.492188,136.85547 C 68.14583,137.3112 67.972653,137.95834 67.972656,138.79688 L 67.972656,138.79688 z M 65.667969,138.79688 C 65.667968,137.38542 66.05078,136.27605 66.816406,135.46875 C 67.582029,134.66147 68.634111,134.25782 69.972656,134.25781 C 71.305983,134.25782 72.356764,134.66147 73.125,135.46875 C 73.89322,136.27605 74.277335,137.38542 74.277344,138.79688 C 74.277335,140.21354 73.89322,141.32552 73.125,142.13281 C 72.356764,142.9401 71.305983,143.34375 69.972656,143.34375 C 68.634111,143.34375 67.582029,142.9401 66.816406,142.13281 C 66.05078,141.32552 65.667968,140.21354 65.667969,138.79688 L 65.667969,138.79688 z M 80.949219,139.85156 L 83.191406,139.85156 C 83.097648,140.92969 82.704419,141.78125 82.011719,142.40625 C 81.319004,143.03125 80.42838,143.34375 79.339844,143.34375 C 78.105465,143.34375 77.138019,142.94141 76.4375,142.13672 C 75.736978,141.33203 75.386718,140.21875 75.386719,138.79688 C 75.386718,137.38021 75.744791,136.26954 76.460938,135.46484 C 77.177081,134.66016 78.162757,134.25782 79.417969,134.25781 C 80.516921,134.25782 81.398431,134.54949 82.0625,135.13281 C 82.726555,135.71615 83.097648,136.52865 83.175781,137.57031 L 80.917969,137.57031 C 80.855463,137.11719 80.696609,136.77084 80.441406,136.53125 C 80.186193,136.29167 79.850255,136.17188 79.433594,136.17188 C 78.87109,136.17188 78.450517,136.39324 78.171875,136.83594 C 77.893226,137.27865 77.753903,137.94271 77.753906,138.82813 C 77.753903,139.64584 77.898434,140.27474 78.1875,140.71484 C 78.476559,141.15495 78.891923,141.375 79.433594,141.375 C 79.855464,141.375 80.194005,141.2474 80.449219,140.99219 C 80.704421,140.73698 80.871088,140.35677 80.949219,139.85156 L 80.949219,139.85156 z M 84.675781,143.05469 L 84.675781,131.54688 L 86.886719,131.54688 L 86.886719,137.58594 L 89.589844,134.5625 L 92.324219,134.5625 L 89.363281,137.71094 L 92.503906,143.05469 L 89.777344,143.05469 L 87.746094,139.4375 L 86.886719,140.36719 L 86.886719,143.05469 L 84.675781,143.05469 z "
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT" />
+ <path
+ id="path5584"
+ d="M 23.746094,146.25 L 12.496094,161.25 L 19.996094,161.25 L 19.996094,168.75 L 27.496094,168.75 L 27.496094,161.25 L 34.996094,161.25 L 23.746094,146.25 z M 22.714844,150.46875 L 24.746094,150.46875 L 27.871094,159.09375 L 25.996094,159.09375 L 25.402344,157.3125 L 22.058594,157.3125 L 21.496094,159.09375 L 19.621094,159.09375 L 22.714844,150.46875 z M 23.746094,152.1875 L 22.527344,155.84375 L 24.933594,155.84375 L 23.746094,152.1875 z "
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 119.9707,129.82617 L 117.58008,137.17383 L 122.37305,137.17383 L 119.9707,129.82617 M 117.9082,126.36914 L 122.00977,126.36914 L 128.23242,143.63086 L 124.50586,143.63086 L 123.33398,140.08008 L 116.64258,140.08008 L 115.50586,143.63086 L 111.76758,143.63086 L 117.9082,126.36914"
+ id="text5641" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 172.98047,138.29297 L 176.48438,138.29297 C 176.61718,139.23829 177.0039,139.94141 177.64453,140.40234 C 178.28515,140.85547 179.21093,141.08203 180.42188,141.08203 C 181.45312,141.08203 182.23046,140.89844 182.75391,140.53125 C 183.27733,140.16407 183.53905,139.6211 183.53906,138.90234 C 183.53905,137.85547 182.03515,136.98829 179.02734,136.30078 C 178.98827,136.29298 178.95312,136.28516 178.92188,136.27734 C 178.84374,136.26173 178.72265,136.23438 178.55859,136.19531 C 176.94921,135.84376 175.80078,135.44923 175.11328,135.01172 C 174.5039,134.6211 174.03906,134.09767 173.71875,133.44141 C 173.39844,132.77735 173.23828,131.99611 173.23828,131.09766 C 173.23828,129.41798 173.80859,128.13283 174.94922,127.24219 C 176.08984,126.34377 177.73828,125.89455 179.89453,125.89453 C 181.91015,125.89455 183.48436,126.37111 184.61719,127.32422 C 185.7578,128.27736 186.35936,129.62111 186.42188,131.35547 L 183.01172,131.35547 C 182.94921,130.51954 182.6289,129.88283 182.05078,129.44531 C 181.47265,129.00783 180.64843,128.78908 179.57813,128.78906 C 178.64843,128.78908 177.92968,128.97267 177.42188,129.33984 C 176.92187,129.69923 176.67187,130.21486 176.67188,130.88672 C 176.67187,131.80079 177.65234,132.48439 179.61328,132.9375 C 180.14452,133.06251 180.55859,133.16017 180.85547,133.23047 C 182.11327,133.55079 183.0039,133.80079 183.52734,133.98047 C 184.05858,134.16017 184.51952,134.35938 184.91016,134.57813 C 185.61327,134.96876 186.14061,135.48829 186.49219,136.13672 C 186.84374,136.77735 187.01952,137.54688 187.01953,138.44531 C 187.01952,140.24219 186.41405,141.63672 185.20313,142.62891 C 183.99218,143.61328 182.28515,144.10547 180.08203,144.10547 C 177.91015,144.10547 176.20703,143.60156 174.97266,142.59375 C 173.73828,141.58594 173.07422,140.15235 172.98047,138.29297"
+ id="text5645" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 236.16211,140.51367 L 239.00977,140.51367 C 240.65819,140.51367 241.8496,140.08399 242.58398,139.22461 C 243.32616,138.35743 243.69725,136.95508 243.69727,135.01758 C 243.69725,133.0879 243.3535,131.66993 242.66602,130.76367 C 241.9785,129.85744 240.90429,129.40431 239.44336,129.4043 L 236.16211,129.4043 L 236.16211,140.51367 M 232.68164,143.63086 L 232.68164,126.36914 L 239.44336,126.36914 C 242.09179,126.36916 244.06444,127.084 245.36133,128.51367 C 246.666,129.94337 247.31834,132.11134 247.31836,135.01758 C 247.31834,136.59571 247.07616,137.98633 246.5918,139.18945 C 246.11522,140.39258 245.41991,141.36133 244.50586,142.0957 C 243.81835,142.64258 243.0371,143.03711 242.16211,143.2793 C 241.2871,143.51367 240.06054,143.63086 238.48242,143.63086 L 232.68164,143.63086"
+ id="text5649" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 293.97656,143.63086 L 293.97656,126.36914 L 306.02344,126.36914 L 306.02344,129.36914 L 297.48047,129.36914 L 297.48047,133.2832 L 304.96875,133.2832 L 304.96875,136.2832 L 297.48047,136.2832 L 297.48047,143.63086 L 293.97656,143.63086"
+ id="text5653" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 365.17969,141.57422 C 364.53905,142.44141 363.80858,143.07813 362.98828,143.48438 C 362.17577,143.89062 361.21874,144.09375 360.11719,144.09375 C 357.70312,144.09375 355.74609,143.25781 354.24609,141.58594 C 352.7539,139.90625 352.00781,137.70313 352.00781,134.97656 C 352.00781,132.22657 352.7539,130.02736 354.24609,128.37891 C 355.73828,126.73049 357.72656,125.90627 360.21094,125.90625 C 362.37499,125.90627 364.14061,126.4258 365.50781,127.46484 C 366.87498,128.49611 367.68748,129.91798 367.94531,131.73047 L 364.32422,131.73047 C 364.10546,130.83204 363.65624,130.14845 362.97656,129.67969 C 362.30468,129.21095 361.42577,128.97658 360.33984,128.97656 C 358.89452,128.97658 357.75781,129.50783 356.92969,130.57031 C 356.10937,131.62501 355.69921,133.08595 355.69922,134.95313 C 355.69921,136.82813 356.1289,138.29688 356.98828,139.35938 C 357.84765,140.42188 359.02734,140.95313 360.52734,140.95313 C 361.65233,140.95313 362.59374,140.6211 363.35156,139.95703 C 364.10936,139.29297 364.57811,138.38282 364.75781,137.22656 L 360.84375,137.22656 L 360.84375,134.27344 L 367.99219,134.27344 L 367.99219,143.61328 L 365.61328,143.61328 L 365.17969,141.57422"
+ id="text5657" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 412.86328,143.63086 L 412.86328,126.36914 L 416.4375,126.36914 L 416.4375,132.80273 L 423.5625,132.80273 L 423.5625,126.36914 L 427.13672,126.36914 L 427.13672,143.63086 L 423.5625,143.63086 L 423.5625,135.97852 L 416.4375,135.97852 L 416.4375,143.63086 L 412.86328,143.63086"
+ id="text5661" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 474.48047,136.95703 L 477.91406,136.95703 L 477.91406,139.04297 C 477.91406,139.64453 478.09375,140.10547 478.45313,140.42578 C 478.8125,140.73828 479.32812,140.89453 480,140.89453 C 480.73437,140.89453 481.24609,140.70313 481.53516,140.32031 C 481.82421,139.9375 481.96874,139.21875 481.96875,138.16406 L 481.96875,126.12891 L 485.51953,126.12891 L 485.51953,138.32813 C 485.51952,139.42188 485.45311,140.22657 485.32031,140.74219 C 485.1953,141.25 484.98436,141.69922 484.6875,142.08984 C 484.23436,142.66797 483.61327,143.10938 482.82422,143.41406 C 482.03515,143.71875 481.10937,143.87109 480.04688,143.87109 C 479.07031,143.87109 478.20703,143.73828 477.45703,143.47266 C 476.70703,143.20703 476.08203,142.8125 475.58203,142.28906 C 475.18359,141.86719 474.89844,141.39844 474.72656,140.88281 C 474.5625,140.35938 474.48047,139.5 474.48047,138.30469 L 474.48047,136.95703"
+ id="text5665" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 532.32422,143.63086 L 532.32422,126.36914 L 535.875,126.36914 L 535.875,133.45898 L 542.61328,126.36914 L 547.05469,126.36914 L 540.16406,133.35352 L 547.67578,143.63086 L 543.33984,143.63086 L 537.71484,135.73242 L 535.875,137.56055 L 535.875,143.63086 L 532.32422,143.63086"
+ id="text5669" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 594.01172,143.63086 L 594.01172,126.36914 L 597.5625,126.36914 L 597.5625,140.44336 L 605.98828,140.44336 L 605.98828,143.63086 L 594.01172,143.63086"
+ id="text5673" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 143.15039,203.63086 L 143.15039,200.63086 L 152.53711,189.49805 L 143.33789,189.49805 L 143.33789,186.36914 L 156.84961,186.36914 L 156.84961,189.36914 L 147.43945,200.51367 L 156.63867,200.51367 L 156.63867,203.63086 L 143.15039,203.63086"
+ id="text5679" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 202.37109,203.63086 L 207.79688,194.81836 L 202.37109,186.36914 L 206.47266,186.36914 L 210,192.4043 L 213.50391,186.36914 L 217.62891,186.36914 L 212.20313,194.79492 L 217.62891,203.63086 L 213.52734,203.63086 L 210,197.6543 L 206.47266,203.63086 L 202.37109,203.63086"
+ id="text5683" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 277.875,197.68359 C 277.74217,199.64454 276.98436,201.20313 275.60156,202.35938 C 274.22655,203.51563 272.42968,204.09375 270.21094,204.09375 C 267.65624,204.09375 265.66796,203.29688 264.24609,201.70313 C 262.83203,200.10938 262.125,197.87501 262.125,195 C 262.125,192.06251 262.84765,189.81251 264.29297,188.25 C 265.73828,186.68752 267.8164,185.90627 270.52734,185.90625 C 272.73046,185.90627 274.46874,186.44533 275.74219,187.52344 C 277.02342,188.59377 277.72655,190.10939 277.85156,192.07031 L 274.34766,192.07031 C 274.19921,191.09376 273.80077,190.35158 273.15234,189.84375 C 272.50389,189.32814 271.6289,189.07033 270.52734,189.07031 C 268.96484,189.07033 267.77734,189.57423 266.96484,190.58203 C 266.15234,191.58986 265.74609,193.06251 265.74609,195 C 265.74609,196.87501 266.14843,198.32422 266.95313,199.34766 C 267.76562,200.3711 268.91796,200.88282 270.41016,200.88281 C 271.48827,200.88282 272.37108,200.60938 273.05859,200.0625 C 273.74608,199.50782 274.19139,198.71485 274.39453,197.68359 L 277.875,197.68359"
+ id="text5687" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 328.33594,203.63086 L 322.38281,186.36914 L 326.32031,186.36914 L 329.98828,199.2832 L 333.72656,186.36914 L 337.61719,186.36914 L 331.73438,203.63086 L 328.33594,203.63086"
+ id="text5691" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 386.32031,200.51367 L 390.52734,200.51367 C 391.51952,200.51367 392.24218,200.33399 392.69531,199.97461 C 393.14843,199.61524 393.37499,199.04883 393.375,198.27539 C 393.37499,197.47071 393.15233,196.89258 392.70703,196.54102 C 392.26171,196.18165 391.52733,196.00196 390.50391,196.00195 L 386.32031,196.00195 L 386.32031,200.51367 M 386.32031,193.04883 L 390.375,193.04883 C 391.24999,193.04884 391.89061,192.9004 392.29688,192.60352 C 392.70311,192.29884 392.90624,191.82228 392.90625,191.17383 C 392.90624,190.54103 392.70702,190.084 392.30859,189.80273 C 391.91796,189.51369 391.26561,189.36915 390.35156,189.36914 L 386.32031,189.36914 L 386.32031,193.04883 M 382.92188,203.63086 L 382.92188,186.36914 L 391.05469,186.36914 C 392.8203,186.36916 394.16405,186.74416 395.08594,187.49414 C 396.01561,188.23634 396.48045,189.31837 396.48047,190.74023 C 396.48045,191.61525 396.30858,192.34571 395.96484,192.93164 C 395.62108,193.51759 395.10545,193.97071 394.41797,194.29102 C 395.30858,194.6504 395.97264,195.16993 396.41016,195.84961 C 396.85545,196.52149 397.07811,197.36133 397.07813,198.36914 C 397.07811,200.04883 396.53123,201.34571 395.4375,202.25977 C 394.34374,203.17383 392.79296,203.63086 390.78516,203.63086 L 382.92188,203.63086"
+ id="text5695" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 442.88672,203.63086 L 442.88672,186.36914 L 446.60156,186.36914 L 453.60938,198.22852 L 453.60938,186.36914 L 457.11328,186.36914 L 457.11328,203.63086 L 453.44531,203.63086 L 446.39063,191.77148 L 446.39063,203.63086 L 442.88672,203.63086"
+ id="text5699" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 501.32813,203.63086 L 501.32813,186.36914 L 506.57813,186.36914 L 510.01172,199.50586 L 513.39844,186.36914 L 518.67188,186.36914 L 518.67188,203.63086 L 515.34375,203.63086 L 515.34375,189.70898 L 511.83984,203.63086 L 508.20703,203.63086 L 504.65625,189.70898 L 504.65625,203.63086 L 501.32813,203.63086"
+ id="text5703" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 658.22461,134.6543 L 658.22461,131.10352 L 661.77539,131.10352 L 661.77539,134.6543 L 658.22461,134.6543 M 658.22461,143.63086 L 658.22461,140.10352 L 661.77539,140.10352 L 661.77539,143.63086 L 658.22461,143.63086 M 658.24805,164.6543 L 658.24805,161.10352 L 661.77539,161.10352 L 661.77539,164.6543 L 658.24805,164.6543 M 658.24805,177.68555 L 658.24805,176.31445 C 658.90429,176.12695 659.38867,175.83789 659.70117,175.44727 C 660.01367,175.05664 660.16992,174.54883 660.16992,173.92383 L 660.16992,173.63086 L 658.22461,173.63086 L 658.22461,170.10352 L 661.77539,170.10352 L 661.77539,173.49023 C 661.77539,174.66211 661.47851,175.59961 660.88477,176.30273 C 660.29101,177.01367 659.41211,177.47461 658.24805,177.68555"
+ id="text5725" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 720.78516,126.7793 L 723.03516,126.7793 L 723.03516,133.33008 L 720.78516,133.33008 L 720.78516,126.7793 M 716.96484,126.7793 L 719.21484,126.7793 L 719.21484,133.33008 L 716.96484,133.33008 L 716.96484,126.7793 M 718.88672,156.7793 L 721.13672,156.7793 L 721.13672,163.33008 L 718.88672,163.33008 L 718.88672,156.7793"
+ id="text5731" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 772.5,140.60938 L 772.5,129.10156 L 780.85156,129.10156 L 780.85156,131.10156 L 774.83594,131.10156 L 774.83594,133.55469 L 780.33594,133.55469 L 780.33594,135.52344 L 774.83594,135.52344 L 774.83594,138.48438 L 781.13281,138.48438 L 781.13281,140.60938 L 772.5,140.60938 M 782.74219,140.60938 L 782.74219,132.11719 L 784.96875,132.11719 L 784.96875,133.125 C 785.28645,132.71355 785.66145,132.40626 786.09375,132.20313 C 786.52604,131.9948 787.00781,131.89063 787.53906,131.89063 C 788.47656,131.89063 789.17708,132.13543 789.64063,132.625 C 790.10937,133.10938 790.34374,133.84115 790.34375,134.82031 L 790.34375,140.60938 L 788.07031,140.60938 L 788.07031,135.47656 C 788.07031,134.86719 787.96614,134.4323 787.75781,134.17188 C 787.55468,133.91147 787.22135,133.78126 786.75781,133.78125 C 786.22135,133.78126 785.79687,133.94271 785.48438,134.26563 C 785.17187,134.58334 785.01562,135.01823 785.01563,135.57031 L 785.01563,140.60938 L 782.74219,140.60938 M 796.07813,140.67188 C 795.86979,140.67708 795.61979,140.6849 795.32813,140.69531 C 795.04166,140.71094 794.85937,140.71875 794.78125,140.71875 C 793.91146,140.71875 793.3151,140.55729 792.99219,140.23438 C 792.67448,139.90625 792.51562,139.26302 792.51563,138.30469 L 792.51563,133.71094 L 791.39063,133.71094 L 791.39063,132.11719 L 792.51563,132.11719 L 792.51563,129.79688 L 794.76563,129.79688 L 794.76563,132.11719 L 796.07813,132.11719 L 796.07813,133.71094 L 794.76563,133.71094 L 794.76563,138.41406 C 794.76562,138.63802 794.8151,138.78646 794.91406,138.85938 C 795.01302,138.92709 795.21614,138.96094 795.52344,138.96094 L 796.07813,138.96094 L 796.07813,140.67188 M 802.63281,138.03125 L 804.89844,138.03125 C 804.66926,138.92709 804.20572,139.63021 803.50781,140.14063 C 802.8151,140.64583 801.96874,140.89844 800.96875,140.89844 C 799.73958,140.89844 798.76562,140.48698 798.04688,139.66406 C 797.32812,138.83594 796.96875,137.71615 796.96875,136.30469 C 796.96875,134.91407 797.32292,133.81772 798.03125,133.01563 C 798.73958,132.21355 799.70833,131.81251 800.9375,131.8125 C 802.23958,131.81251 803.24478,132.20834 803.95313,133 C 804.66145,133.78647 805.01562,134.90886 805.01563,136.36719 C 805.01562,136.52865 805.01301,136.65105 805.00781,136.73438 C 805.0078,136.8125 805.0026,136.88802 804.99219,136.96094 L 799.32031,136.96094 C 799.35156,137.62761 799.51302,138.13021 799.80469,138.46875 C 800.10156,138.80729 800.52604,138.97656 801.07813,138.97656 C 801.46874,138.97656 801.78906,138.90104 802.03906,138.75 C 802.28906,138.59375 802.48697,138.35417 802.63281,138.03125 M 799.32031,135.46875 L 802.66406,135.46875 C 802.64322,134.89584 802.48958,134.46094 802.20313,134.16406 C 801.92187,133.86199 801.51562,133.71094 800.98438,133.71094 C 800.48958,133.71094 800.09895,133.86199 799.8125,134.16406 C 799.53125,134.46615 799.36718,134.90105 799.32031,135.46875 M 806.52344,140.60938 L 806.52344,132.11719 L 808.63281,132.11719 L 808.63281,133.57031 C 808.92968,132.98699 809.27604,132.5599 809.67188,132.28906 C 810.0677,132.01303 810.53906,131.87501 811.08594,131.875 C 811.17447,131.87501 811.24218,131.87761 811.28906,131.88281 C 811.34114,131.88282 811.38281,131.88543 811.41406,131.89063 L 811.42188,134.19531 L 810.66406,134.19531 C 810.04427,134.19532 809.57812,134.35678 809.26563,134.67969 C 808.95312,135.00261 808.79687,135.48178 808.79688,136.11719 L 808.79688,140.60938 L 806.52344,140.60938"
+ id="text5737" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 787.5,172.5 L 787.5,157.5 L 772.5,165 L 787.5,172.5 z "
+ id="path5745" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 810,150 L 810,165 L 780,165"
+ id="path5747" />
+ <g
+ id="g3601">
+ <path
+ id="text5753"
+ d="M 12.496094,197.64063 L 14.832032,197.64063 C 14.92057,198.27084 15.178382,198.73828 15.605469,199.04297 C 16.032548,199.34766 16.649735,199.5 17.457032,199.5 C 18.144525,199.5 18.662754,199.37761 19.011719,199.13281 C 19.36067,198.88802 19.535149,198.52604 19.535157,198.04688 C 19.535149,197.34896 18.532546,196.77084 16.527344,196.3125 C 16.501298,196.3073 16.47786,196.30209 16.457032,196.29688 C 16.404944,196.28646 16.324215,196.26823 16.214844,196.24219 C 15.141924,196.00782 14.3763,195.7448 13.917969,195.45313 C 13.511717,195.19271 13.201822,194.84245 12.988282,194.40234 C 12.774739,193.96225 12.667968,193.44272 12.667969,192.84375 C 12.667968,191.72397 13.048176,190.8659 13.808594,190.26953 C 14.569008,189.67319 15.667965,189.37501 17.105469,189.375 C 18.449212,189.37501 19.499993,189.69272 20.257813,190.32813 C 21.015616,190.96355 21.415355,191.85938 21.457032,193.01563 L 19.183594,193.01563 C 19.14192,192.45834 18.928379,192.03386 18.542969,191.74219 C 18.157546,191.45053 17.608067,191.3047 16.894532,191.30469 C 16.274735,191.3047 15.796871,191.42579 15.460938,191.66797 C 15.124997,191.91017 14.957028,192.25522 14.957032,192.70313 C 14.957028,193.31251 15.610674,193.76824 16.917969,194.07031 C 17.27213,194.15365 17.548172,194.21876 17.746094,194.26563 C 18.584629,194.47917 19.17968,194.64584 19.53125,194.76563 C 19.882805,194.88542 20.188794,195.01824 20.449219,195.16406 C 20.91796,195.42448 21.269522,195.76954 21.503907,196.19922 C 21.738272,196.62891 21.855459,197.14323 21.855469,197.74219 C 21.855459,198.94011 21.451814,199.86849 20.644532,200.52734 C 19.837232,201.1862 18.699212,201.51562 17.230469,201.51563 C 15.782548,201.51562 14.647133,201.17969 13.824219,200.50781 C 13.001301,199.83594 12.558593,198.88021 12.496094,197.64063 L 12.496094,197.64063 z M 23.566407,201.19531 L 23.566407,189.6875 L 25.824219,189.6875 L 25.824219,193.64063 C 26.131507,193.25522 26.497392,192.96485 26.921875,192.76953 C 27.34635,192.57423 27.82161,192.47657 28.347657,192.47656 C 28.84765,192.47657 29.299473,192.56251 29.703125,192.73438 C 30.106764,192.90626 30.433586,193.15105 30.683594,193.46875 C 30.855461,193.6823 30.976554,193.92709 31.046875,194.20313 C 31.117179,194.47917 31.152335,194.92188 31.152344,195.53125 L 31.152344,195.6875 L 31.152344,201.19531 L 28.894532,201.19531 L 28.894532,196.75 C 28.894525,195.69792 28.798171,195.03777 28.605469,194.76953 C 28.412755,194.50131 28.066401,194.36719 27.566407,194.36719 C 27.029944,194.36719 26.605465,194.52735 26.292969,194.84766 C 25.980466,195.16797 25.824216,195.60417 25.824219,196.15625 L 25.824219,201.19531 L 23.566407,201.19531 z M 33.191407,191.75781 L 33.191407,189.6875 L 35.464844,189.6875 L 35.464844,191.75781 L 33.191407,191.75781 z M 33.191407,201.19531 L 33.191407,192.70313 L 35.464844,192.70313 L 35.464844,201.19531 L 33.191407,201.19531 z M 37.886719,201.19531 L 37.886719,194.29688 L 36.675782,194.29688 L 36.675782,192.70313 L 37.886719,192.70313 L 37.886719,191.91406 C 37.886718,191.12241 38.091144,190.54038 38.5,190.16797 C 38.908852,189.79558 39.553383,189.60939 40.433594,189.60938 C 40.595048,189.60939 40.765621,189.61329 40.945313,189.62109 C 41.124996,189.62892 41.316402,189.64324 41.519532,189.66406 L 41.519532,191.46875 L 40.925782,191.46875 C 40.587236,191.46876 40.36458,191.51303 40.257813,191.60156 C 40.151038,191.69011 40.097653,191.85938 40.097657,192.10938 L 40.097657,192.70313 L 41.519532,192.70313 L 41.519532,194.29688 L 40.113282,194.29688 L 40.113282,201.19531 L 37.886719,201.19531 z M 46.449219,201.25781 C 46.240881,201.26302 45.992183,201.27214 45.703125,201.28516 C 45.414059,201.29818 45.230465,201.30469 45.152344,201.30469 C 44.28255,201.30469 43.687498,201.14193 43.367188,200.81641 C 43.046874,200.49089 42.886718,199.84896 42.886719,198.89063 L 42.886719,194.29688 L 41.761719,194.29688 L 41.761719,192.70313 L 42.886719,192.70313 L 42.886719,190.38281 L 45.136719,190.38281 L 45.136719,192.70313 L 46.449219,192.70313 L 46.449219,194.29688 L 45.136719,194.29688 L 45.136719,199 C 45.136716,199.22396 45.186195,199.3711 45.285157,199.44141 C 45.384111,199.51172 45.587236,199.54688 45.894532,199.54688 L 46.449219,199.54688 L 46.449219,201.25781 z "
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT" />
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 24.746094,207.125 L 13.496094,222.125 L 20.996094,222.125 L 20.996094,229.625 L 28.496094,229.625 L 28.496094,222.125 L 35.996094,222.125 L 24.746094,207.125 z "
+ id="path5757" />
+ </g>
+ <g
+ id="g5795"
+ transform="translate(727.5,0)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text5797"
+ y="201.19531"
+ x="31.8125"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ xml:space="preserve"><tspan
+ y="201.19531"
+ x="31.8125"
+ id="tspan5799"
+ sodipodi:role="line">Shift</tspan></text>
+ <path
+ id="path5801"
+ d="M 27.25,207.125 L 16,222.125 L 23.5,222.125 L 23.5,229.625 L 31,229.625 L 31,222.125 L 38.5,222.125 L 27.25,207.125 z "
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 576.90234,189.63867 L 576.90234,192.20508 L 566.4375,196.48242 L 576.90234,200.74805 L 576.90234,203.31445 L 563.09766,197.63086 L 563.09766,195.29883 L 576.90234,189.63867 M 568.21875,237.68555 L 568.21875,236.31445 C 568.875,236.12695 569.35937,235.83789 569.67188,235.44727 C 569.98437,235.05664 570.14062,234.54883 570.14063,233.92383 L 570.14063,233.63086 L 568.21875,233.63086 L 568.21875,230.10352 L 571.76953,230.10352 L 571.76953,233.49023 C 571.76953,234.6543 571.46875,235.59179 570.86719,236.30273 C 570.27343,237.01367 569.39062,237.47461 568.21875,237.68555"
+ id="text5803" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 623.09766,189.63867 L 636.90234,195.29883 L 636.90234,197.63086 L 623.09766,203.31445 L 623.09766,200.74805 L 633.58594,196.48242 L 623.09766,192.20508 L 623.09766,189.63867 M 628.21875,233.63086 L 628.21875,230.10352 L 631.74609,230.10352 L 631.74609,233.63086 L 628.21875,233.63086"
+ id="text5813" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 688.44727,198.61523 C 688.44726,198.5293 688.44335,198.41602 688.43555,198.27539 C 688.42773,198.12696 688.42382,198.01758 688.42383,197.94727 C 688.42382,197.25977 688.49804,196.68946 688.64648,196.23633 C 688.79492,195.7754 689.0332,195.34571 689.36133,194.94727 C 689.61132,194.6504 689.98242,194.31056 690.47461,193.92773 C 690.9746,193.54493 691.29882,193.26759 691.44727,193.0957 C 691.75976,192.74415 691.9746,192.42775 692.0918,192.14648 C 692.20898,191.86525 692.26757,191.55665 692.26758,191.2207 C 692.26757,190.47853 692.06054,189.9004 691.64648,189.48633 C 691.23241,189.07228 690.65429,188.86525 689.91211,188.86523 C 689.16992,188.86525 688.58398,189.11525 688.1543,189.61523 C 687.73242,190.10744 687.50195,190.80275 687.46289,191.70117 L 684.1582,191.70117 L 684.1582,191.33789 C 684.1582,189.68947 684.67773,188.37697 685.7168,187.40039 C 686.76367,186.41603 688.16992,185.92385 689.93555,185.92383 C 691.74023,185.92385 693.17382,186.38869 694.23633,187.31836 C 695.30663,188.24025 695.84178,189.47853 695.8418,191.0332 C 695.84178,191.58009 695.77928,192.07228 695.6543,192.50977 C 695.5371,192.93946 695.3535,193.33399 695.10352,193.69336 C 694.78319,194.14649 694.2871,194.63868 693.61523,195.16992 C 692.95116,195.69337 692.54882,196.01759 692.4082,196.14258 C 692.11132,196.43165 691.89648,196.73634 691.76367,197.05664 C 691.63866,197.37696 691.57616,197.75977 691.57617,198.20508 C 691.57616,198.24415 691.58007,198.31055 691.58789,198.4043 C 691.59569,198.49805 691.5996,198.56836 691.59961,198.61523 L 688.44727,198.61523 M 688.2832,203.63086 L 688.2832,200.19727 L 691.74023,200.19727 L 691.74023,203.63086 L 688.2832,203.63086 M 686.31445,235.85742 L 692.12695,215.92383 L 693.73242,215.92383 L 687.89648,235.85742 L 686.31445,235.85742"
+ id="text5819" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 18,271.78906 C 17.911447,273.09636 17.406239,274.13542 16.484375,274.90625 C 15.5677,275.67708 14.369784,276.0625 12.890625,276.0625 C 11.187496,276.0625 9.8619761,275.53125 8.9140625,274.46875 C 7.971353,273.40625 7.4999993,271.91667 7.5,270 C 7.4999993,268.04167 7.9817696,266.54168 8.9453125,265.5 C 9.9088511,264.45834 11.294266,263.93751 13.101563,263.9375 C 14.570305,263.93751 15.729158,264.29689 16.578125,265.01563 C 17.432281,265.72918 17.901031,266.73959 17.984375,268.04688 L 15.648438,268.04688 C 15.54947,267.39584 15.283846,266.90105 14.851563,266.5625 C 14.419263,266.21876 13.83593,266.04688 13.101563,266.04688 C 12.059891,266.04688 11.268225,266.38282 10.726563,267.05469 C 10.184892,267.72657 9.9140594,268.70834 9.9140625,270 C 9.9140594,271.25 10.182288,272.21615 10.71875,272.89844 C 11.260412,273.58073 12.028641,273.92188 13.023438,273.92188 C 13.742181,273.92188 14.330722,273.73959 14.789063,273.375 C 15.247387,273.00521 15.544262,272.47657 15.679688,271.78906 L 18,271.78906 M 23.46875,275.80469 C 23.260412,275.8099 23.010412,275.81771 22.71875,275.82813 C 22.432288,275.84375 22.249996,275.85156 22.171875,275.85156 C 21.302081,275.85156 20.705727,275.6901 20.382813,275.36719 C 20.065103,275.03906 19.906249,274.39583 19.90625,273.4375 L 19.90625,268.84375 L 18.78125,268.84375 L 18.78125,267.25 L 19.90625,267.25 L 19.90625,264.92969 L 22.15625,264.92969 L 22.15625,267.25 L 23.46875,267.25 L 23.46875,268.84375 L 22.15625,268.84375 L 22.15625,273.54688 C 22.156247,273.77084 22.205726,273.91927 22.304688,273.99219 C 22.403642,274.0599 22.606767,274.09375 22.914063,274.09375 L 23.46875,274.09375 L 23.46875,275.80469 M 24.789063,275.74219 L 24.789063,267.25 L 26.898438,267.25 L 26.898438,268.70313 C 27.195309,268.1198 27.541663,267.69272 27.9375,267.42188 C 28.333329,267.14584 28.804682,267.00782 29.351563,267.00781 C 29.440099,267.00782 29.507807,267.01043 29.554688,267.01563 C 29.606765,267.01563 29.648432,267.01824 29.679688,267.02344 L 29.6875,269.32813 L 28.929688,269.32813 C 28.309891,269.32813 27.843746,269.48959 27.53125,269.8125 C 27.218747,270.13542 27.062497,270.61459 27.0625,271.25 L 27.0625,275.74219 L 24.789063,275.74219 M 31.023438,275.74219 L 31.023438,264.23438 L 33.296875,264.23438 L 33.296875,275.74219 L 31.023438,275.74219"
+ id="text5827" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 162.96875,266.49609 L 161.375,271.39453 L 164.57031,271.39453 L 162.96875,266.49609 M 161.59375,264.19141 L 164.32813,264.19141 L 168.47656,275.69922 L 165.99219,275.69922 L 165.21094,273.33203 L 160.75,273.33203 L 159.99219,275.69922 L 157.5,275.69922 L 161.59375,264.19141 M 169.53906,275.69922 L 169.53906,264.19141 L 171.8125,264.19141 L 171.8125,275.69922 L 169.53906,275.69922 M 177.64063,275.76172 C 177.43229,275.76693 177.18229,275.77474 176.89063,275.78516 C 176.60416,275.80078 176.42187,275.80859 176.34375,275.80859 C 175.47396,275.80859 174.8776,275.64714 174.55469,275.32422 C 174.23698,274.99609 174.07812,274.35287 174.07813,273.39453 L 174.07813,268.80078 L 172.95313,268.80078 L 172.95313,267.20703 L 174.07813,267.20703 L 174.07813,264.88672 L 176.32813,264.88672 L 176.32813,267.20703 L 177.64063,267.20703 L 177.64063,268.80078 L 176.32813,268.80078 L 176.32813,273.50391 C 176.32812,273.72787 176.3776,273.8763 176.47656,273.94922 C 176.57552,274.01693 176.77864,274.05078 177.08594,274.05078 L 177.64063,274.05078 L 177.64063,275.76172"
+ id="text5831" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 612.96875,266.53906 L 611.375,271.4375 L 614.57031,271.4375 L 612.96875,266.53906 M 611.59375,264.23438 L 614.32813,264.23438 L 618.47656,275.74219 L 615.99219,275.74219 L 615.21094,273.375 L 610.75,273.375 L 609.99219,275.74219 L 607.5,275.74219 L 611.59375,264.23438 M 619.53906,275.74219 L 619.53906,264.23438 L 621.8125,264.23438 L 621.8125,275.74219 L 619.53906,275.74219 M 627.64063,275.80469 C 627.43229,275.8099 627.18229,275.81771 626.89063,275.82813 C 626.60416,275.84375 626.42187,275.85156 626.34375,275.85156 C 625.47396,275.85156 624.8776,275.6901 624.55469,275.36719 C 624.23698,275.03906 624.07812,274.39583 624.07813,273.4375 L 624.07813,268.84375 L 622.95313,268.84375 L 622.95313,267.25 L 624.07813,267.25 L 624.07813,264.92969 L 626.32813,264.92969 L 626.32813,267.25 L 627.64063,267.25 L 627.64063,268.84375 L 626.32813,268.84375 L 626.32813,273.54688 C 626.32812,273.77084 626.3776,273.91927 626.47656,273.99219 C 626.57552,274.0599 626.77864,274.09375 627.08594,274.09375 L 627.64063,274.09375 L 627.64063,275.80469 M 642,274.38281 C 641.57291,274.96094 641.08593,275.38542 640.53906,275.65625 C 639.99739,275.92708 639.35937,276.0625 638.625,276.0625 C 637.01562,276.0625 635.71093,275.50521 634.71094,274.39063 C 633.71614,273.27084 633.21875,271.80209 633.21875,269.98438 C 633.21875,268.15105 633.71614,266.6849 634.71094,265.58594 C 635.70573,264.48699 637.03125,263.93751 638.6875,263.9375 C 640.1302,263.93751 641.30728,264.28387 642.21875,264.97656 C 643.1302,265.66407 643.67186,266.61199 643.84375,267.82031 L 641.42969,267.82031 C 641.28385,267.22136 640.98437,266.76563 640.53125,266.45313 C 640.08333,266.14063 639.49739,265.98438 638.77344,265.98438 C 637.80989,265.98438 637.05208,266.33855 636.5,267.04688 C 635.95312,267.75001 635.67968,268.72397 635.67969,269.96875 C 635.67968,271.21875 635.96614,272.19792 636.53906,272.90625 C 637.11197,273.61459 637.89843,273.96875 638.89844,273.96875 C 639.64843,273.96875 640.27603,273.7474 640.78125,273.30469 C 641.28645,272.86198 641.59895,272.25521 641.71875,271.48438 L 639.10938,271.48438 L 639.10938,269.51563 L 643.875,269.51563 L 643.875,275.74219 L 642.28906,275.74219 L 642,274.38281 M 645.96094,275.74219 L 645.96094,267.25 L 648.07031,267.25 L 648.07031,268.70313 C 648.36718,268.1198 648.71354,267.69272 649.10938,267.42188 C 649.5052,267.14584 649.97656,267.00782 650.52344,267.00781 C 650.61197,267.00782 650.67968,267.01043 650.72656,267.01563 C 650.77864,267.01563 650.82031,267.01824 650.85156,267.02344 L 650.85938,269.32813 L 650.10156,269.32813 C 649.48177,269.32813 649.01562,269.48959 648.70313,269.8125 C 648.39062,270.13542 648.23437,270.61459 648.23438,271.25 L 648.23438,275.74219 L 645.96094,275.74219"
+ id="text5835" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 828,271.78906 C 827.91145,273.09636 827.40624,274.13542 826.48438,274.90625 C 825.5677,275.67708 824.36978,276.0625 822.89063,276.0625 C 821.1875,276.0625 819.86198,275.53125 818.91406,274.46875 C 817.97135,273.40625 817.5,271.91667 817.5,270 C 817.5,268.04167 817.98177,266.54168 818.94531,265.5 C 819.90885,264.45834 821.29427,263.93751 823.10156,263.9375 C 824.5703,263.93751 825.72916,264.29689 826.57813,265.01563 C 827.43228,265.72918 827.90103,266.73959 827.98438,268.04688 L 825.64844,268.04688 C 825.54947,267.39584 825.28385,266.90105 824.85156,266.5625 C 824.41926,266.21876 823.83593,266.04688 823.10156,266.04688 C 822.05989,266.04688 821.26822,266.38282 820.72656,267.05469 C 820.18489,267.72657 819.91406,268.70834 819.91406,270 C 819.91406,271.25 820.18229,272.21615 820.71875,272.89844 C 821.26041,273.58073 822.02864,273.92188 823.02344,273.92188 C 823.74218,273.92188 824.33072,273.73959 824.78906,273.375 C 825.24739,273.00521 825.54426,272.47657 825.67969,271.78906 L 828,271.78906 M 833.46875,275.80469 C 833.26041,275.8099 833.01041,275.81771 832.71875,275.82813 C 832.43229,275.84375 832.25,275.85156 832.17188,275.85156 C 831.30208,275.85156 830.70573,275.6901 830.38281,275.36719 C 830.0651,275.03906 829.90625,274.39583 829.90625,273.4375 L 829.90625,268.84375 L 828.78125,268.84375 L 828.78125,267.25 L 829.90625,267.25 L 829.90625,264.92969 L 832.15625,264.92969 L 832.15625,267.25 L 833.46875,267.25 L 833.46875,268.84375 L 832.15625,268.84375 L 832.15625,273.54688 C 832.15625,273.77084 832.20573,273.91927 832.30469,273.99219 C 832.40364,274.0599 832.60677,274.09375 832.91406,274.09375 L 833.46875,274.09375 L 833.46875,275.80469 M 834.78906,275.74219 L 834.78906,267.25 L 836.89844,267.25 L 836.89844,268.70313 C 837.19531,268.1198 837.54166,267.69272 837.9375,267.42188 C 838.33333,267.14584 838.80468,267.00782 839.35156,267.00781 C 839.4401,267.00782 839.50781,267.01043 839.55469,267.01563 C 839.60677,267.01563 839.64843,267.01824 839.67969,267.02344 L 839.6875,269.32813 L 838.92969,269.32813 C 838.30989,269.32813 837.84375,269.48959 837.53125,269.8125 C 837.21875,270.13542 837.0625,270.61459 837.0625,271.25 L 837.0625,275.74219 L 834.78906,275.74219 M 841.02344,275.74219 L 841.02344,264.23438 L 843.29688,264.23438 L 843.29688,275.74219 L 841.02344,275.74219"
+ id="text5839" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 108.94531,264.01953 L 105.64844,252.51172 L 108.10156,252.51172 L 110.07031,260.62891 L 111.73438,252.51172 L 114.25781,252.51172 L 115.92188,260.62891 L 117.89063,252.51172 L 120.32031,252.51172 L 117.03125,264.01953 L 114.77344,264.01953 L 112.99219,255.20703 L 111.20313,264.01953 L 108.94531,264.01953 M 121.5,254.58203 L 121.5,252.51172 L 123.77344,252.51172 L 123.77344,254.58203 L 121.5,254.58203 M 121.5,264.01953 L 121.5,255.52734 L 123.77344,255.52734 L 123.77344,264.01953 L 121.5,264.01953 M 125.79688,264.01953 L 125.79688,255.52734 L 128.02344,255.52734 L 128.02344,256.53516 C 128.34114,256.12371 128.71614,255.81641 129.14844,255.61328 C 129.58072,255.40496 130.06249,255.30079 130.59375,255.30078 C 131.53124,255.30079 132.23176,255.54558 132.69531,256.03516 C 133.16405,256.51954 133.39843,257.25131 133.39844,258.23047 L 133.39844,264.01953 L 131.125,264.01953 L 131.125,258.88672 C 131.12499,258.27735 131.02083,257.84245 130.8125,257.58203 C 130.60937,257.32162 130.27604,257.19141 129.8125,257.19141 C 129.27604,257.19141 128.85156,257.35287 128.53906,257.67578 C 128.22656,257.9935 128.07031,258.42839 128.07031,258.98047 L 128.07031,264.01953 L 125.79688,264.01953 M 106.64844,284.01953 L 106.64844,272.51172 L 109.01563,272.51172 L 109.01563,277.23828 L 113.50781,272.51172 L 116.46875,272.51172 L 111.875,277.16797 L 116.88281,284.01953 L 113.99219,284.01953 L 110.24219,278.75391 L 109.01563,279.97266 L 109.01563,284.01953 L 106.64844,284.01953 M 122.9375,281.44141 L 125.20313,281.44141 C 124.97395,282.33724 124.51041,283.04037 123.8125,283.55078 C 123.11979,284.05599 122.27343,284.30859 121.27344,284.30859 C 120.04427,284.30859 119.07031,283.89714 118.35156,283.07422 C 117.63281,282.2461 117.27344,281.1263 117.27344,279.71484 C 117.27344,278.32422 117.6276,277.22787 118.33594,276.42578 C 119.04427,275.62371 120.01302,275.22267 121.24219,275.22266 C 122.54427,275.22267 123.54947,275.6185 124.25781,276.41016 C 124.96614,277.19662 125.3203,278.31902 125.32031,279.77734 C 125.3203,279.93881 125.3177,280.0612 125.3125,280.14453 C 125.31249,280.22266 125.30728,280.29818 125.29688,280.37109 L 119.625,280.37109 C 119.65625,281.03776 119.81771,281.54037 120.10938,281.87891 C 120.40625,282.21745 120.83073,282.38672 121.38281,282.38672 C 121.77343,282.38672 122.09374,282.3112 122.34375,282.16016 C 122.59374,282.00391 122.79166,281.76433 122.9375,281.44141 M 119.625,278.87891 L 122.96875,278.87891 C 122.94791,278.306 122.79426,277.8711 122.50781,277.57422 C 122.22656,277.27214 121.82031,277.1211 121.28906,277.12109 C 120.79427,277.1211 120.40364,277.27214 120.11719,277.57422 C 119.83593,277.87631 119.67187,278.3112 119.625,278.87891 M 127.16406,287.42578 L 127.16406,285.58984 C 127.23698,285.60026 127.3125,285.60807 127.39063,285.61328 C 127.46875,285.61849 127.57031,285.62109 127.69531,285.62109 C 128.14323,285.62109 128.47916,285.51432 128.70313,285.30078 C 128.92708,285.09245 129.03906,284.77734 129.03906,284.35547 C 129.03906,284.32422 129.03385,284.28516 129.02344,284.23828 C 129.01302,284.19141 129.0026,284.15234 128.99219,284.12109 L 125.92969,275.52734 L 128.42969,275.52734 L 130.21875,281.65234 L 131.96094,275.52734 L 134.35156,275.52734 L 130.85938,285.54297 C 130.59895,286.29297 130.27343,286.80338 129.88281,287.07422 C 129.49218,287.35026 128.90625,287.48828 128.125,287.48828 C 127.98437,287.48828 127.83333,287.48307 127.67188,287.47266 C 127.51041,287.46224 127.34114,287.44661 127.16406,287.42578"
+ id="text5872" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 708.94531,264.01953 L 705.64844,252.51172 L 708.10156,252.51172 L 710.07031,260.62891 L 711.73438,252.51172 L 714.25781,252.51172 L 715.92188,260.62891 L 717.89063,252.51172 L 720.32031,252.51172 L 717.03125,264.01953 L 714.77344,264.01953 L 712.99219,255.20703 L 711.20313,264.01953 L 708.94531,264.01953 M 721.5,254.58203 L 721.5,252.51172 L 723.77344,252.51172 L 723.77344,254.58203 L 721.5,254.58203 M 721.5,264.01953 L 721.5,255.52734 L 723.77344,255.52734 L 723.77344,264.01953 L 721.5,264.01953 M 725.79688,264.01953 L 725.79688,255.52734 L 728.02344,255.52734 L 728.02344,256.53516 C 728.34114,256.12371 728.71614,255.81641 729.14844,255.61328 C 729.58072,255.40496 730.06249,255.30079 730.59375,255.30078 C 731.53124,255.30079 732.23176,255.54558 732.69531,256.03516 C 733.16405,256.51954 733.39843,257.25131 733.39844,258.23047 L 733.39844,264.01953 L 731.125,264.01953 L 731.125,258.88672 C 731.12499,258.27735 731.02083,257.84245 730.8125,257.58203 C 730.60937,257.32162 730.27604,257.19141 729.8125,257.19141 C 729.27604,257.19141 728.85156,257.35287 728.53906,257.67578 C 728.22656,257.9935 728.07031,258.42839 728.07031,258.98047 L 728.07031,264.01953 L 725.79688,264.01953 M 706.64844,284.01953 L 706.64844,272.51172 L 709.01563,272.51172 L 709.01563,277.23828 L 713.50781,272.51172 L 716.46875,272.51172 L 711.875,277.16797 L 716.88281,284.01953 L 713.99219,284.01953 L 710.24219,278.75391 L 709.01563,279.97266 L 709.01563,284.01953 L 706.64844,284.01953 M 722.9375,281.44141 L 725.20313,281.44141 C 724.97395,282.33724 724.51041,283.04037 723.8125,283.55078 C 723.11979,284.05599 722.27343,284.30859 721.27344,284.30859 C 720.04427,284.30859 719.07031,283.89714 718.35156,283.07422 C 717.63281,282.2461 717.27344,281.1263 717.27344,279.71484 C 717.27344,278.32422 717.6276,277.22787 718.33594,276.42578 C 719.04427,275.62371 720.01302,275.22267 721.24219,275.22266 C 722.54427,275.22267 723.54947,275.6185 724.25781,276.41016 C 724.96614,277.19662 725.3203,278.31902 725.32031,279.77734 C 725.3203,279.93881 725.3177,280.0612 725.3125,280.14453 C 725.31249,280.22266 725.30728,280.29818 725.29688,280.37109 L 719.625,280.37109 C 719.65625,281.03776 719.81771,281.54037 720.10938,281.87891 C 720.40625,282.21745 720.83073,282.38672 721.38281,282.38672 C 721.77343,282.38672 722.09374,282.3112 722.34375,282.16016 C 722.59374,282.00391 722.79166,281.76433 722.9375,281.44141 M 719.625,278.87891 L 722.96875,278.87891 C 722.94791,278.306 722.79426,277.8711 722.50781,277.57422 C 722.22656,277.27214 721.82031,277.1211 721.28906,277.12109 C 720.79427,277.1211 720.40364,277.27214 720.11719,277.57422 C 719.83593,277.87631 719.67187,278.3112 719.625,278.87891 M 727.16406,287.42578 L 727.16406,285.58984 C 727.23698,285.60026 727.3125,285.60807 727.39063,285.61328 C 727.46875,285.61849 727.57031,285.62109 727.69531,285.62109 C 728.14323,285.62109 728.47916,285.51432 728.70313,285.30078 C 728.92708,285.09245 729.03906,284.77734 729.03906,284.35547 C 729.03906,284.32422 729.03385,284.28516 729.02344,284.23828 C 729.01302,284.19141 729.0026,284.15234 728.99219,284.12109 L 725.92969,275.52734 L 728.42969,275.52734 L 730.21875,281.65234 L 731.96094,275.52734 L 734.35156,275.52734 L 730.85938,285.54297 C 730.59895,286.29297 730.27343,286.80338 729.88281,287.07422 C 729.49218,287.35026 728.90625,287.48828 728.125,287.48828 C 727.98437,287.48828 727.83333,287.48307 727.67188,287.47266 C 727.51041,287.46224 727.34114,287.44661 727.16406,287.42578"
+ id="text5878" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 759.98438,275.60938 L 759.98438,264.10156 L 763.48438,264.10156 L 765.77344,272.85938 L 768.03125,264.10156 L 771.54688,264.10156 L 771.54688,275.60938 L 769.32813,275.60938 L 769.32813,266.32813 L 766.99219,275.60938 L 764.57031,275.60938 L 762.20313,266.32813 L 762.20313,275.60938 L 759.98438,275.60938 M 778.99219,273.03125 L 781.25781,273.03125 C 781.02864,273.92709 780.5651,274.63021 779.86719,275.14063 C 779.17447,275.64583 778.32812,275.89844 777.32813,275.89844 C 776.09896,275.89844 775.125,275.48698 774.40625,274.66406 C 773.6875,273.83594 773.32812,272.71615 773.32813,271.30469 C 773.32812,269.91407 773.68229,268.81772 774.39063,268.01563 C 775.09896,267.21355 776.06771,266.81251 777.29688,266.8125 C 778.59895,266.81251 779.60416,267.20834 780.3125,268 C 781.02083,268.78647 781.37499,269.90886 781.375,271.36719 C 781.37499,271.52865 781.37239,271.65105 781.36719,271.73438 C 781.36718,271.8125 781.36197,271.88802 781.35156,271.96094 L 775.67969,271.96094 C 775.71093,272.62761 775.87239,273.13021 776.16406,273.46875 C 776.46093,273.80729 776.88541,273.97656 777.4375,273.97656 C 777.82812,273.97656 778.14843,273.90104 778.39844,273.75 C 778.64843,273.59375 778.84635,273.35417 778.99219,273.03125 M 775.67969,270.46875 L 779.02344,270.46875 C 779.0026,269.89584 778.84895,269.46094 778.5625,269.16406 C 778.28124,268.86199 777.87499,268.71094 777.34375,268.71094 C 776.84895,268.71094 776.45833,268.86199 776.17188,269.16406 C 775.89062,269.46615 775.72656,269.90105 775.67969,270.46875 M 782.88281,275.60938 L 782.88281,267.11719 L 785.10938,267.11719 L 785.10938,268.125 C 785.42708,267.71355 785.80208,267.40626 786.23438,267.20313 C 786.66666,266.9948 787.14843,266.89063 787.67969,266.89063 C 788.61718,266.89063 789.3177,267.13543 789.78125,267.625 C 790.24999,268.10938 790.48437,268.84115 790.48438,269.82031 L 790.48438,275.60938 L 788.21094,275.60938 L 788.21094,270.47656 C 788.21093,269.86719 788.10676,269.4323 787.89844,269.17188 C 787.69531,268.91147 787.36197,268.78126 786.89844,268.78125 C 786.36197,268.78126 785.9375,268.94272 785.625,269.26563 C 785.3125,269.58334 785.15625,270.01823 785.15625,270.57031 L 785.15625,275.60938 L 782.88281,275.60938 M 800.01563,267.11719 L 800.01563,275.60938 L 797.78906,275.60938 L 797.78906,274.60156 C 797.46614,275.01302 797.08854,275.32292 796.65625,275.53125 C 796.22916,275.73437 795.74739,275.83594 795.21094,275.83594 C 794.27864,275.83594 793.57812,275.59115 793.10938,275.10156 C 792.64583,274.61198 792.41406,273.88021 792.41406,272.90625 L 792.41406,267.11719 L 794.6875,267.11719 L 794.6875,272.25 C 794.6875,272.85417 794.78906,273.28646 794.99219,273.54688 C 795.19531,273.80209 795.53125,273.92969 796,273.92969 C 796.53124,273.92969 796.95312,273.77084 797.26563,273.45313 C 797.58333,273.13021 797.74218,272.69271 797.74219,272.14063 L 797.74219,267.11719 L 800.01563,267.11719"
+ id="text5884" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 104.41406,17.103516 L 104.41406,10.212891 L 101.74219,10.212891 L 101.74219,8.7949219 L 101.94141,8.7949219 C 102.89453,8.7949367 103.58984,8.6621243 104.02734,8.3964844 C 104.47265,8.1308749 104.73828,7.6894691 104.82422,7.0722656 L 106.59375,7.0722656 L 106.59375,17.103516 L 104.41406,17.103516 M 106.72266,36.369141 L 106.72266,39.826172 L 103.24219,39.826172 L 103.24219,36.369141 L 106.72266,36.369141 M 105.89063,41.173828 L 106.80469,48.978516 L 106.80469,53.630859 L 103.19531,53.630859 L 103.19531,48.978516 L 104.10938,41.173828 L 105.89063,41.173828"
+ id="text5890" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 160.85156,47.103516 C 160.875,46.197273 161.08984,45.431649 161.49609,44.806641 C 161.91015,44.18165 162.63672,43.548838 163.67578,42.908203 C 163.82422,42.822276 164.03125,42.701183 164.29688,42.544922 C 165.74218,41.724621 166.46484,40.931653 166.46484,40.166016 C 166.46484,39.720717 166.32031,39.369155 166.03125,39.111328 C 165.74218,38.85353 165.34375,38.724624 164.83594,38.724609 C 164.27343,38.724624 163.83984,38.88478 163.53516,39.205078 C 163.23047,39.517592 163.07812,39.966811 163.07813,40.552734 L 163.07813,40.646484 L 161.03906,40.646484 C 161.03906,39.498061 161.37891,38.615249 162.05859,37.998047 C 162.73828,37.380876 163.71093,37.072282 164.97656,37.072266 C 166.11718,37.072282 167.02343,37.353532 167.69531,37.916016 C 168.37499,38.470718 168.71484,39.212905 168.71484,40.142578 C 168.71484,40.814466 168.53905,41.39259 168.1875,41.876953 C 167.83593,42.361339 167.14843,42.919933 166.125,43.552734 C 165.89843,43.701182 165.57812,43.896494 165.16406,44.138672 C 164.22656,44.685556 163.69922,45.115243 163.58203,45.427734 L 168.62109,45.427734 L 168.62109,47.103516 L 160.85156,47.103516"
+ id="text5910" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 220.92188,44.033203 L 223.05469,44.033203 C 223.07031,44.603525 223.22265,45.029305 223.51172,45.310547 C 223.80078,45.591805 224.23437,45.73243 224.8125,45.732422 C 225.36718,45.73243 225.79687,45.599617 226.10156,45.333984 C 226.40624,45.068368 226.55859,44.689462 226.55859,44.197266 C 226.55859,43.697276 226.38281,43.322276 226.03125,43.072266 C 225.67968,42.814464 225.15234,42.685558 224.44922,42.685547 L 224.10938,42.685547 L 224.10938,41.291016 L 224.35547,41.291016 C 225.0039,41.291028 225.48046,41.181653 225.78516,40.962891 C 226.09765,40.736341 226.2539,40.392591 226.25391,39.931641 C 226.2539,39.54103 226.12109,39.232436 225.85547,39.005859 C 225.58984,38.771499 225.23437,38.654312 224.78906,38.654297 C 224.29687,38.654312 223.91797,38.787124 223.65234,39.052734 C 223.38672,39.310561 223.2539,39.681655 223.25391,40.166016 L 223.25391,40.236328 L 221.16797,40.236328 C 221.19141,39.212905 221.51953,38.431656 222.15234,37.892578 C 222.79297,37.345719 223.70312,37.072282 224.88281,37.072266 C 225.99218,37.072282 226.86718,37.314469 227.50781,37.798828 C 228.15624,38.283218 228.48046,38.943374 228.48047,39.779297 C 228.48046,40.21681 228.36718,40.603529 228.14063,40.939453 C 227.92187,41.26759 227.59374,41.537121 227.15625,41.748047 C 227.72656,41.974621 228.15624,42.291027 228.44531,42.697266 C 228.74218,43.095714 228.89062,43.564463 228.89063,44.103516 C 228.89062,45.119149 228.52343,45.923836 227.78906,46.517578 C 227.06249,47.103522 226.07031,47.396491 224.8125,47.396484 C 223.57031,47.396491 222.60937,47.107428 221.92969,46.529297 C 221.25781,45.95118 220.92187,45.134774 220.92188,44.080078 L 220.92188,44.033203"
+ id="text5922" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 278.92969,21.685547 C 279.86719,21.037112 280.53125,20.439456 280.92188,19.892578 C 281.32031,19.345707 281.51953,18.75977 281.51953,18.134766 C 281.51953,17.837896 281.47265,17.525397 281.37891,17.197266 C 281.28515,16.861335 281.14843,16.509773 280.96875,16.142578 L 278.90625,16.142578 L 278.90625,14.841797 L 280.17188,14.841797 C 279.82812,14.162119 279.57812,13.556651 279.42188,13.025391 C 279.26562,12.494152 279.1875,11.998059 279.1875,11.537109 C 279.1875,10.146498 279.69531,9.021499 280.71094,8.1621094 C 281.73437,7.3027507 283.08203,6.8730636 284.75391,6.8730469 C 286.5664,6.8730636 287.98827,7.3379069 289.01953,8.2675781 C 290.05077,9.1972801 290.61327,10.517591 290.70703,12.228516 L 287.47266,12.228516 C 287.41015,11.345715 287.15624,10.669935 286.71094,10.201172 C 286.26562,9.7324358 285.65624,9.498061 284.88281,9.4980469 C 284.14843,9.498061 283.58203,9.6894671 283.18359,10.072266 C 282.79296,10.455091 282.59765,11.005872 282.59766,11.724609 C 282.59765,12.138683 282.84375,12.888683 283.33594,13.974609 C 283.50781,14.349619 283.63671,14.638681 283.72266,14.841797 L 287.0625,14.841797 L 287.0625,16.142578 L 284.20313,16.142578 C 284.27343,16.43946 284.32421,16.712898 284.35547,16.962891 C 284.38671,17.212897 284.40234,17.443366 284.40234,17.654297 C 284.40234,18.216802 284.22656,18.779302 283.875,19.341797 C 283.53124,19.896488 282.94531,20.548831 282.11719,21.298828 C 282.625,21.064456 283.08203,20.892581 283.48828,20.783203 C 283.90234,20.666019 284.27734,20.607425 284.61328,20.607422 C 285.01952,20.607425 285.57421,20.701175 286.27734,20.888672 C 286.98046,21.068362 287.48046,21.158206 287.77734,21.158203 C 288.16796,21.158206 288.55077,21.095706 288.92578,20.970703 C 289.30858,20.845706 289.68749,20.6543 290.0625,20.396484 L 291.09375,22.939453 C 290.4453,23.322266 289.82421,23.611328 289.23047,23.806641 C 288.63671,24.009765 288.08202,24.111328 287.56641,24.111328 C 286.97265,24.111328 286.16796,23.955078 285.15234,23.642578 C 284.14453,23.330078 283.41406,23.173829 282.96094,23.173828 C 282.48437,23.173829 282.01953,23.251954 281.56641,23.408203 C 281.12109,23.564453 280.6875,23.798828 280.26563,24.111328 L 278.92969,21.685547 M 284.94141,40.025391 C 284.05859,40.025404 283.29687,40.345716 282.65625,40.986328 C 282.01562,41.626965 281.69531,42.384777 281.69531,43.259766 C 281.69531,44.1504 282.01171,44.912118 282.64453,45.544922 C 283.27734,46.169929 284.04296,46.482429 284.94141,46.482422 C 285.82421,46.482429 286.58202,46.169929 287.21484,45.544922 C 287.85546,44.912118 288.17577,44.1504 288.17578,43.259766 C 288.17577,42.384777 287.85546,41.626965 287.21484,40.986328 C 286.58202,40.345716 285.82421,40.025404 284.94141,40.025391 M 279.65625,36.779297 L 282.05859,39.158203 C 282.48046,38.85353 282.92578,38.626968 283.39453,38.478516 C 283.86328,38.322281 284.37109,38.244156 284.91797,38.244141 C 285.46484,38.244156 285.97655,38.322281 286.45313,38.478516 C 286.93749,38.626968 287.39062,38.85353 287.8125,39.158203 L 290.19141,36.779297 L 291.42188,38.033203 L 289.04297,40.435547 C 289.33983,40.849622 289.56249,41.294934 289.71094,41.771484 C 289.85936,42.240246 289.93358,42.736339 289.93359,43.259766 C 289.93358,43.783213 289.85936,44.279306 289.71094,44.748047 C 289.56249,45.216805 289.33983,45.666024 289.04297,46.095703 L 291.42188,48.498047 L 290.19141,49.716797 L 287.8125,47.337891 C 287.39062,47.650397 286.9414,47.880865 286.46484,48.029297 C 285.98827,48.17774 285.48046,48.251959 284.94141,48.251953 C 284.3789,48.251959 283.85937,48.17774 283.38281,48.029297 C 282.91406,47.880865 282.47265,47.650397 282.05859,47.337891 L 279.65625,49.716797 L 278.4375,48.498047 L 280.80469,46.095703 C 280.50781,45.673836 280.28515,45.23243 280.13672,44.771484 C 279.99609,44.302744 279.92578,43.798838 279.92578,43.259766 C 279.92578,42.736339 279.99609,42.240246 280.13672,41.771484 C 280.28515,41.294934 280.50781,40.849622 280.80469,40.435547 L 278.4375,38.033203 L 279.65625,36.779297"
+ id="text5928" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 352.875,47.701172 C 352.74217,49.662113 351.98436,51.220706 350.60156,52.376953 C 349.22655,53.533203 347.42968,54.111328 345.21094,54.111328 C 342.65624,54.111328 340.66796,53.314453 339.24609,51.720703 C 337.83203,50.126957 337.125,47.892584 337.125,45.017578 C 337.125,42.08009 337.84765,39.830092 339.29297,38.267578 C 340.73828,36.705095 342.8164,35.923846 345.52734,35.923828 C 347.73046,35.923846 349.46874,36.462908 350.74219,37.541016 C 352.02342,38.611343 352.72655,40.126967 352.85156,42.087891 L 349.34766,42.087891 C 349.19921,41.111341 348.80077,40.369154 348.15234,39.861328 C 347.50389,39.345717 346.6289,39.087905 345.52734,39.087891 C 343.96484,39.087905 342.77734,39.591811 341.96484,40.599609 C 341.15234,41.607434 340.74609,43.080089 340.74609,45.017578 C 340.74609,46.892585 341.14843,48.341802 341.95313,49.365234 C 342.76562,50.388675 343.91796,50.900393 345.41016,50.900391 C 346.48827,50.900393 347.37108,50.626956 348.05859,50.080078 C 348.74608,49.525395 349.19139,48.732427 349.39453,47.701172 L 352.875,47.701172"
+ id="text5946" />
+ <path
+ transform="matrix(1.16233,0,-0.444745,0.860341,0,0)"
+ style="font-size:16.72912407px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 307.52845,53.268758 L 317.31434,53.268758 L 317.31434,54.894293 L 307.52845,54.894293 L 307.52845,53.268758 M 307.52845,49.756296 L 317.31434,49.756296 L 317.31434,51.381831 L 307.52845,51.381831 L 307.52845,49.756296"
+ id="text5956" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 411.45117,50.150391 L 411.45117,46.142578 L 408.63867,50.150391 L 411.45117,50.150391 M 411.45117,53.630859 L 411.45117,51.591797 L 406.98633,51.591797 L 406.98633,49.962891 L 410.90039,44.513672 L 413.51367,44.513672 L 413.51367,50.103516 L 414.73242,50.103516 L 414.73242,51.591797 L 413.51367,51.591797 L 413.51367,53.630859 L 411.45117,53.630859 M 398.58398,54.111328 L 408.7793,36.615234 L 410.70117,36.615234 L 400.48242,54.111328 L 398.58398,54.111328 M 397.78711,46.458984 L 397.78711,40.025391 L 395.26758,40.025391 L 395.26758,38.701172 L 395.44336,38.701172 C 396.36523,38.701187 397.0332,38.576187 397.44727,38.326172 C 397.86914,38.076187 398.11914,37.658219 398.19727,37.072266 L 399.88477,37.072266 L 399.88477,46.458984 L 397.78711,46.458984"
+ id="text5960" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 467.0918,53.630859 C 467.11522,52.779298 467.32225,52.064455 467.71289,51.486328 C 468.11131,50.900393 468.80663,50.31055 469.79883,49.716797 C 469.95506,49.630863 470.16991,49.50977 470.44336,49.353516 C 471.7949,48.595708 472.47068,47.861334 472.4707,47.150391 C 472.47068,46.736335 472.33006,46.40821 472.04883,46.166016 C 471.76756,45.923836 471.38475,45.802742 470.90039,45.802734 C 470.36912,45.802742 469.95506,45.95118 469.6582,46.248047 C 469.36913,46.544929 469.22459,46.966804 469.22461,47.513672 L 469.22461,47.607422 L 467.2793,47.607422 C 467.27928,46.529304 467.6035,45.70118 468.25195,45.123047 C 468.90038,44.537118 469.82616,44.24415 471.0293,44.244141 C 472.12303,44.24415 472.99412,44.505868 473.64258,45.029297 C 474.29881,45.552742 474.62693,46.251961 474.62695,47.126953 C 474.62693,47.751959 474.45506,48.294927 474.11133,48.755859 C 473.77537,49.208989 473.11522,49.72852 472.13086,50.314453 C 471.9199,50.439456 471.63084,50.607425 471.26367,50.818359 C 470.34959,51.341799 469.83397,51.744143 469.7168,52.025391 L 474.50977,52.025391 L 474.50977,53.630859 L 467.0918,53.630859 M 458.68945,54.111328 L 468.88477,36.615234 L 470.80664,36.615234 L 460.58789,54.111328 L 458.68945,54.111328 M 457.89258,46.458984 L 457.89258,40.025391 L 455.37305,40.025391 L 455.37305,38.701172 L 455.54883,38.701172 C 456.4707,38.701187 457.13867,38.576187 457.55273,38.326172 C 457.97461,38.076187 458.22461,37.658219 458.30273,37.072266 L 459.99023,37.072266 L 459.99023,46.458984 L 457.89258,46.458984"
+ id="text5967" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 531.83203,50.150391 L 531.83203,46.142578 L 529.01953,50.150391 L 531.83203,50.150391 M 531.83203,53.630859 L 531.83203,51.591797 L 527.36719,51.591797 L 527.36719,49.962891 L 531.28125,44.513672 L 533.89453,44.513672 L 533.89453,50.103516 L 535.11328,50.103516 L 535.11328,51.591797 L 533.89453,51.591797 L 533.89453,53.630859 L 531.83203,53.630859 M 518.96484,54.111328 L 529.16016,36.615234 L 531.08203,36.615234 L 520.86328,54.111328 L 518.96484,54.111328 M 514.88672,43.599609 L 516.89063,43.599609 C 516.91406,44.130869 517.0625,44.529306 517.33594,44.794922 C 517.61718,45.052743 518.03125,45.181649 518.57813,45.181641 C 519.10937,45.181649 519.51953,45.060555 519.80859,44.818359 C 520.09765,44.568368 520.24218,44.208994 520.24219,43.740234 C 520.24218,43.271495 520.07421,42.919933 519.73828,42.685547 C 519.40234,42.443371 518.90625,42.322277 518.25,42.322266 C 518.20312,42.322277 518.14453,42.326183 518.07422,42.333984 C 518.0039,42.341808 517.94922,42.345714 517.91016,42.345703 L 517.91016,41.033203 L 518.14453,41.033203 C 518.76171,41.033216 519.21484,40.931653 519.50391,40.728516 C 519.80078,40.517591 519.94921,40.193373 519.94922,39.755859 C 519.94921,39.388686 519.82421,39.099624 519.57422,38.888672 C 519.32421,38.669937 518.98437,38.560562 518.55469,38.560547 C 518.08593,38.560562 517.72265,38.685562 517.46484,38.935547 C 517.21484,39.177749 517.08984,39.525405 517.08984,39.978516 L 517.08984,40.048828 L 515.08594,40.048828 C 515.10156,39.087905 515.41797,38.353531 516.03516,37.845703 C 516.65234,37.330094 517.52343,37.072282 518.64844,37.072266 C 519.70312,37.072282 520.53906,37.302751 521.15625,37.763672 C 521.77343,38.216812 522.08202,38.833999 522.08203,39.615234 C 522.08202,40.02931 521.97655,40.392591 521.76563,40.705078 C 521.55468,41.009778 521.23827,41.263684 520.81641,41.466797 C 521.36327,41.677746 521.77343,41.970715 522.04688,42.345703 C 522.32812,42.712902 522.46874,43.154307 522.46875,43.669922 C 522.46874,44.607431 522.11718,45.349618 521.41406,45.896484 C 520.71874,46.443367 519.77343,46.716804 518.57813,46.716797 C 517.39062,46.716804 516.47656,46.451179 515.83594,45.919922 C 515.20312,45.380868 514.88672,44.615243 514.88672,43.623047 L 514.88672,43.599609"
+ id="text5973" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 586.63477,39.404297 L 586.63477,42.498047 L 583.36523,42.498047 L 583.36523,39.474609 C 583.36523,38.482437 583.66992,37.654313 584.2793,36.990234 C 584.88867,36.326189 585.67382,35.970721 586.63477,35.923828 L 586.63477,37.119141 C 586.04101,37.259782 585.59961,37.509782 585.31055,37.869141 C 585.02148,38.220719 584.87695,38.681656 584.87695,39.251953 L 584.87695,39.404297 L 586.63477,39.404297"
+ id="text5979" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 643.36523,39.474609 L 643.36523,36.369141 L 646.63477,36.369141 L 646.63477,39.427734 C 646.63476,40.412123 646.33007,41.240247 645.7207,41.912109 C 645.11132,42.576183 644.32617,42.931651 643.36523,42.978516 L 643.36523,41.771484 C 643.95898,41.630871 644.39648,41.384778 644.67773,41.033203 C 644.96679,40.673841 645.11132,40.201185 645.11133,39.615234 L 645.11133,39.474609 L 643.36523,39.474609"
+ id="text5985" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 706.89258,53.630859 L 703.50586,53.630859 L 703.50586,47.560547 L 703.27148,47.150391 L 698.00977,47.150391 L 698.00977,45.826172 L 702.49805,45.826172 L 701.64258,44.337891 L 698.00977,44.337891 L 698.00977,43.025391 L 700.86914,43.025391 L 697.61133,37.330078 L 701.41992,37.330078 L 705.19336,44.724609 L 708.69727,37.330078 L 712.27148,37.330078 L 709.27148,43.025391 L 712.00195,43.025391 L 712.00195,44.337891 L 708.58008,44.337891 L 707.7832,45.826172 L 712.00195,45.826172 L 712.00195,47.150391 L 707.0918,47.150391 L 706.89258,47.560547 L 706.89258,53.630859"
+ id="text5991" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 764.97656,19.306641 C 765.46093,19.306645 765.8789,19.482426 766.23047,19.833984 C 766.58202,20.18555 766.7578,20.603519 766.75781,21.087891 C 766.7578,21.564455 766.58202,21.974611 766.23047,22.318359 C 765.8789,22.66211 765.46093,22.833985 764.97656,22.833984 C 764.48437,22.833985 764.06249,22.666017 763.71094,22.330078 C 763.36718,21.994142 763.1953,21.58008 763.19531,21.087891 C 763.1953,20.595706 763.36718,20.177738 763.71094,19.833984 C 764.06249,19.482426 764.48437,19.306645 764.97656,19.306641 M 757.94531,15.298828 L 771.98438,15.298828 L 771.98438,17.630859 L 757.94531,17.630859 L 757.94531,15.298828 M 764.97656,10.095703 C 765.46093,10.095717 765.8789,10.271498 766.23047,10.623047 C 766.58202,10.96681 766.7578,11.380872 766.75781,11.865234 C 766.7578,12.357433 766.58202,12.779308 766.23047,13.130859 C 765.88671,13.47462 765.46874,13.646494 764.97656,13.646484 C 764.48437,13.646494 764.06249,13.47462 763.71094,13.130859 C 763.36718,12.779308 763.1953,12.357433 763.19531,11.865234 C 763.1953,11.373059 763.36718,10.955091 763.71094,10.611328 C 764.06249,10.267591 764.48437,10.095717 764.97656,10.095703 M 759.84375,39.544922 L 765.11719,44.818359 L 770.40234,39.544922 L 772.05469,41.173828 L 766.78125,46.482422 L 772.05469,51.755859 L 770.40234,53.396484 L 765.11719,48.111328 L 759.84375,53.396484 L 758.20313,51.755859 L 763.48828,46.482422 L 758.20313,41.173828 L 759.84375,39.544922"
+ id="text5997" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 134.9707,69.826172 L 132.58008,77.173828 L 137.37305,77.173828 L 134.9707,69.826172 M 132.9082,66.369141 L 137.00977,66.369141 L 143.23242,83.630859 L 139.50586,83.630859 L 138.33398,80.080078 L 131.64258,80.080078 L 130.50586,83.630859 L 126.76758,83.630859 L 132.9082,66.369141 M 135.70898,64.166016 L 135.70898,61.283203 L 138.35742,61.283203 L 138.35742,64.166016 L 135.70898,64.166016 M 131.63086,64.166016 L 131.63086,61.283203 L 134.2793,61.283203 L 134.2793,64.166016 L 131.63086,64.166016"
+ id="text6003" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 194.9707,62.126953 C 194.5957,62.126975 194.27538,62.267599 194.00977,62.548828 C 193.74413,62.822286 193.61132,63.154317 193.61133,63.544922 C 193.61132,63.927754 193.74023,64.251973 193.99805,64.517578 C 194.26366,64.783222 194.58788,64.916034 194.9707,64.916016 C 195.36132,64.916034 195.69335,64.783222 195.9668,64.517578 C 196.24804,64.24416 196.38866,63.919942 196.38867,63.544922 C 196.38866,63.16213 196.24804,62.830099 195.9668,62.548828 C 195.69335,62.267599 195.36132,62.126975 194.9707,62.126953 M 194.9707,60.521484 C 195.81444,60.521507 196.52929,60.814476 197.11523,61.400391 C 197.70116,61.978537 197.99413,62.685568 197.99414,63.521484 C 197.99413,64.357441 197.70116,65.068378 197.11523,65.654297 C 196.52929,66.232439 195.81444,66.521501 194.9707,66.521484 C 194.13476,66.521501 193.42773,66.232439 192.84961,65.654297 C 192.27929,65.07619 191.99414,64.365254 191.99414,63.521484 C 191.99414,62.677755 192.27929,61.966819 192.84961,61.388672 C 193.42773,60.81057 194.13476,60.521507 194.9707,60.521484 M 192.7207,67.072266 L 197.23242,67.072266 L 203.23242,83.630859 L 199.50586,83.630859 L 198.33398,80.080078 L 191.64258,80.080078 L 190.50586,83.630859 L 186.76758,83.630859 L 192.7207,67.072266 M 194.9707,69.826172 L 192.58008,77.173828 L 197.37305,77.173828 L 194.9707,69.826172"
+ id="text6007" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 248.52539,83.630859 L 248.52539,66.369141 L 261.05273,66.369141 L 261.05273,69.369141 L 252.0293,69.369141 L 252.0293,73.048828 L 260.2793,73.048828 L 260.2793,76.001953 L 252.0293,76.001953 L 252.0293,80.443359 L 261.47461,80.443359 L 261.47461,83.630859 L 248.52539,83.630859 M 258.24023,60.521484 L 254.57227,64.857422 L 252.9082,64.857422 L 255.2168,60.521484 L 258.24023,60.521484"
+ id="text6011" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 313.72266,101.49056 L 313.72266,104.29134 L 314.88281,104.29134 C 315.5703,104.29135 316.07421,104.18198 316.39453,103.96322 C 316.71483,103.74448 316.87499,103.40073 316.875,102.93197 C 316.87499,102.43979 316.70311,102.07651 316.35938,101.84212 C 316.01561,101.60776 315.48436,101.49057 314.76563,101.49056 L 313.72266,101.49056 M 311.37891,100.00228 L 315.16406,100.00228 C 316.53905,100.00229 317.5703,100.23667 318.25781,100.70541 C 318.95311,101.16636 319.30077,101.85776 319.30078,102.77962 C 319.30077,103.42026 319.11327,103.96713 318.73828,104.42025 C 318.36327,104.87338 317.84374,105.18198 317.17969,105.34603 L 319.34766,109.67025 L 316.72266,109.67025 L 314.88281,105.70931 L 313.72266,105.70931 L 313.72266,109.67025 L 311.37891,109.67025 L 311.37891,100.00228 M 315,97.717125 C 314.0078,97.717141 313.08593,97.892922 312.23438,98.244469 C 311.38281,98.588234 310.61718,99.099952 309.9375,99.779625 C 309.22656,100.49058 308.67968,101.29917 308.29688,102.20541 C 307.91406,103.10385 307.72265,104.03354 307.72266,104.99447 C 307.72265,105.96323 307.90234,106.8851 308.26172,107.76009 C 308.62109,108.62729 309.14062,109.40072 309.82031,110.08041 C 310.51562,110.79135 311.30859,111.33822 312.19922,111.72103 C 313.08984,112.09603 314.01562,112.28353 314.97656,112.28353 C 315.91405,112.28353 316.82421,112.09994 317.70703,111.73275 C 318.59764,111.36556 319.40624,110.83822 320.13281,110.15072 C 320.81248,109.49447 321.33983,108.72885 321.71484,107.85384 C 322.08983,106.97885 322.27733,106.0726 322.27734,105.13509 C 322.27733,104.09604 322.10155,103.13901 321.75,102.264 C 321.40623,101.38901 320.89061,100.60386 320.20313,99.908531 C 319.49999,99.181983 318.70702,98.635109 317.82422,98.267906 C 316.94921,97.900734 316.0078,97.717141 315,97.717125 M 314.97656,96.275719 C 316.17968,96.275736 317.31249,96.502298 318.375,96.955406 C 319.4453,97.400735 320.39842,98.049172 321.23438,98.900719 C 322.03905,99.713233 322.65233,100.64292 323.07422,101.68978 C 323.49608,102.73667 323.70701,103.84604 323.70703,105.01791 C 323.70701,106.20541 323.48826,107.33041 323.05078,108.39291 C 322.61326,109.4476 321.97655,110.37728 321.14063,111.18197 C 320.30467,112.00228 319.35155,112.63119 318.28125,113.06869 C 317.21874,113.50619 316.11718,113.72494 314.97656,113.72494 C 313.81249,113.72494 312.69921,113.49838 311.63672,113.04525 C 310.57421,112.59213 309.625,111.93978 308.78906,111.08822 C 307.97656,110.26791 307.35547,109.33822 306.92578,108.29916 C 306.5039,107.25229 306.29297,106.15854 306.29297,105.01791 C 306.29297,104.22104 306.39844,103.4476 306.60938,102.69759 C 306.82031,101.93979 307.13672,101.20151 307.55859,100.48275 C 308.34765,99.154639 309.39062,98.12339 310.6875,97.389 C 311.98437,96.646829 313.41405,96.275736 314.97656,96.275719"
+ id="text6015" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 372.0293,69.064453 L 376.06055,69.064453 C 377.84179,69.064468 379.18944,69.505874 380.10352,70.388672 C 381.01756,71.263684 381.47459,72.556652 381.47461,74.267578 C 381.47459,75.939461 381.02538,77.228522 380.12695,78.134766 C 379.23632,79.033208 377.95897,79.482426 376.29492,79.482422 L 372.0293,79.482422 L 372.0293,83.630859 L 368.52539,83.630859 L 368.52539,66.369141 L 372.0293,66.369141 L 372.0293,69.064453 M 372.05273,76.599609 L 375.47461,76.599609 C 376.4121,76.599616 377.09179,76.416023 377.51367,76.048828 C 377.93554,75.673836 378.14647,75.080087 378.14648,74.267578 C 378.14647,73.509776 377.93554,72.939464 377.51367,72.556641 C 377.09179,72.166027 376.47069,71.970715 375.65039,71.970703 L 372.05273,71.970703 L 372.05273,76.599609"
+ id="text6019" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 428.08594,66.322266 L 431.67188,66.322266 L 431.67188,77.150391 C 431.67187,78.486333 431.93749,79.462895 432.46875,80.080078 C 432.99999,80.689456 433.84374,80.994143 435,80.994141 C 436.17187,80.994143 437.02343,80.689456 437.55469,80.080078 C 438.09374,79.470707 438.36327,78.494146 438.36328,77.150391 L 438.36328,66.322266 L 441.91406,66.322266 L 441.91406,77.537109 C 441.91405,79.654301 441.3203,81.279299 440.13281,82.412109 C 438.95311,83.544922 437.24999,84.111328 435.02344,84.111328 C 432.78124,84.111328 431.0625,83.548828 429.86719,82.423828 C 428.67969,81.291018 428.08594,79.662113 428.08594,77.537109 L 428.08594,66.322266 M 435.73828,64.166016 L 435.73828,61.283203 L 438.38672,61.283203 L 438.38672,64.166016 L 435.73828,64.166016 M 431.66016,64.166016 L 431.66016,61.283203 L 434.30859,61.283203 L 434.30859,64.166016 L 431.66016,64.166016"
+ id="text6023" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 488.08594,66.105469 L 491.67188,66.105469 L 491.67188,76.933594 C 491.67187,78.269536 491.93749,79.246098 492.46875,79.863281 C 492.99999,80.472659 493.84374,80.777346 495,80.777344 C 496.17187,80.777346 497.02343,80.472659 497.55469,79.863281 C 498.09374,79.25391 498.36327,78.277349 498.36328,76.933594 L 498.36328,66.105469 L 501.91406,66.105469 L 501.91406,77.320313 C 501.91405,79.437504 501.3203,81.062502 500.13281,82.195313 C 498.95311,83.328125 497.24999,83.894531 495.02344,83.894531 C 492.78124,83.894531 491.0625,83.332031 489.86719,82.207031 C 488.67969,81.074221 488.08594,79.445316 488.08594,77.320313 L 488.08594,66.105469 M 498.45703,60.304688 L 494.78906,64.640625 L 493.125,64.640625 L 495.43359,60.304688 L 498.45703,60.304688"
+ id="text6029" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 552.43945,83.630859 L 552.43945,66.369141 L 555.99023,66.369141 L 555.99023,83.630859 L 552.43945,83.630859 M 557.66602,60.521484 L 553.99805,64.857422 L 552.33398,64.857422 L 554.64258,60.521484 L 557.66602,60.521484"
+ id="text6033" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 610.18359,75 C 610.18359,76.898444 610.60546,78.375005 611.44922,79.429688 C 612.29296,80.476566 613.47265,81.000003 614.98828,81 C 616.51952,81.000003 617.71093,80.476566 618.5625,79.429688 C 619.41405,78.375005 619.83983,76.898444 619.83984,75 C 619.83983,73.101573 619.41405,71.628918 618.5625,70.582031 C 617.71093,69.527358 616.51952,69.000015 614.98828,69 C 613.47265,69.000015 612.29296,69.523452 611.44922,70.570313 C 610.60546,71.617199 610.18359,73.093761 610.18359,75 M 606.5625,75 C 606.5625,72.210949 607.32031,70.000014 608.83594,68.367188 C 610.35937,66.726579 612.41015,65.906268 614.98828,65.90625 C 617.56639,65.906268 619.61717,66.726579 621.14063,68.367188 C 622.67186,70.007826 623.43748,72.218761 623.4375,75 C 623.43748,77.781256 622.67186,79.992191 621.14063,81.632813 C 619.61717,83.273438 617.56639,84.09375 614.98828,84.09375 C 612.41015,84.09375 610.35937,83.273438 608.83594,81.632813 C 607.32031,79.992191 606.5625,77.781256 606.5625,75 M 618.44531,60.503906 L 614.77734,64.839844 L 613.11328,64.839844 L 615.42188,60.503906 L 618.44531,60.503906"
+ id="text6037" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 670.18359,75.017578 C 670.18359,76.916022 670.60546,78.392583 671.44922,79.447266 C 672.29296,80.494144 673.47265,81.017581 674.98828,81.017578 C 676.51952,81.017581 677.71093,80.494144 678.5625,79.447266 C 679.41405,78.392583 679.83983,76.916022 679.83984,75.017578 C 679.83983,73.119151 679.41405,71.646496 678.5625,70.599609 C 677.71093,69.544936 676.51952,69.017593 674.98828,69.017578 C 673.47265,69.017593 672.29296,69.54103 671.44922,70.587891 C 670.60546,71.634778 670.18359,73.111339 670.18359,75.017578 M 666.5625,75.017578 C 666.5625,72.228527 667.32031,70.017592 668.83594,68.384766 C 670.35937,66.744158 672.41015,65.923846 674.98828,65.923828 C 677.56639,65.923846 679.61717,66.744158 681.14063,68.384766 C 682.67186,70.025404 683.43748,72.23634 683.4375,75.017578 C 683.43748,77.798834 682.67186,80.009769 681.14063,81.650391 C 679.61717,83.291016 677.56639,84.111328 674.98828,84.111328 C 672.41015,84.111328 670.35937,83.291016 668.83594,81.650391 C 667.32031,80.009769 666.5625,77.798834 666.5625,75.017578 M 675.72656,64.166016 L 675.72656,61.283203 L 678.375,61.283203 L 678.375,64.166016 L 675.72656,64.166016 M 671.64844,64.166016 L 671.64844,61.283203 L 674.29688,61.283203 L 674.29688,64.166016 L 671.64844,64.166016"
+ id="text6041" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 735.5332,106.35352 L 735.5332,103.35352 L 739.44727,99.966797 L 739.44727,102.75586 L 737.04492,104.8418 L 739.44727,106.92773 L 739.44727,109.74023 L 735.5332,106.35352 M 730.4707,106.35352 L 730.4707,103.35352 L 734.4082,99.966797 L 734.4082,102.75586 L 732.00586,104.8418 L 734.4082,106.92773 L 734.4082,109.74023 L 730.4707,106.35352"
+ id="text6045" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 799.44727,103.3418 L 799.44727,106.3418 L 795.5332,109.72852 L 795.5332,106.93945 L 797.93555,104.83008 L 795.5332,102.76758 L 795.5332,99.955078 L 799.44727,103.3418 M 794.4082,103.3418 L 794.4082,106.3418 L 790.4707,109.72852 L 790.4707,106.93945 L 792.86133,104.83008 L 790.4707,102.76758 L 790.4707,99.955078 L 794.4082,103.3418"
+ id="text6051" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 883.81641,76.535881 L 886.23047,76.535881 L 886.23047,85.418694 L 883.81641,85.418694 L 883.81641,76.535881 M 883.81641,64.535881 L 886.23047,64.535881 L 886.23047,73.418694 L 883.81641,73.418694 L 883.81641,64.535881 M 877.98047,101.19213 L 892.01953,101.19213 L 892.01953,107.07494 L 889.6875,107.07494 L 889.6875,103.48901 L 877.98047,103.48901 L 877.98047,101.19213"
+ id="text6057" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 149.9707,129.82617 L 147.58008,137.17383 L 152.37305,137.17383 L 149.9707,129.82617 M 147.9082,126.36914 L 152.00977,126.36914 L 158.23242,143.63086 L 154.50586,143.63086 L 153.33398,140.08008 L 146.64258,140.08008 L 145.50586,143.63086 L 141.76758,143.63086 L 147.9082,126.36914 M 153.42773,120.52148 L 149.75977,124.85742 L 148.0957,124.85742 L 150.4043,120.52148 L 153.42773,120.52148"
+ id="text6065" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 211.40625,137.91797 C 211.71874,137.73829 211.95312,137.53907 212.10938,137.32031 C 212.26562,137.10157 212.34374,136.86719 212.34375,136.61719 C 212.34374,136.31251 212.2539,136.0547 212.07422,135.84375 C 211.89452,135.62501 211.52343,135.3711 210.96094,135.08203 L 207.85547,133.47656 C 207.55078,133.65626 207.3164,133.85938 207.15234,134.08594 C 206.99609,134.31251 206.91797,134.5547 206.91797,134.8125 C 206.91797,135.1172 207.03125,135.38673 207.25781,135.62109 C 207.49218,135.84766 208.0039,136.16407 208.79297,136.57031 L 211.40625,137.91797 M 205.03125,141.75 L 207.92578,141.75 C 207.98828,142.35938 208.16796,142.8125 208.46484,143.10938 C 208.76953,143.40625 209.19921,143.55469 209.75391,143.55469 C 210.26952,143.55469 210.67968,143.43359 210.98438,143.19141 C 211.28905,142.94141 211.4414,142.60547 211.44141,142.18359 C 211.4414,141.83985 211.32812,141.54297 211.10156,141.29297 C 210.87499,141.03516 210.42577,140.74219 209.75391,140.41406 L 206.95313,138.99609 C 206.0625,138.55079 205.39844,138.03907 204.96094,137.46094 C 204.52344,136.88282 204.30469,136.23438 204.30469,135.51563 C 204.30469,134.82032 204.47266,134.21095 204.80859,133.6875 C 205.15234,133.15626 205.65625,132.71485 206.32031,132.36328 C 205.92969,132.01173 205.64062,131.62892 205.45313,131.21484 C 205.26562,130.79298 205.17187,130.32814 205.17188,129.82031 C 205.17187,128.64845 205.57422,127.70705 206.37891,126.99609 C 207.18359,126.27736 208.2539,125.91799 209.58984,125.91797 C 210.96484,125.91799 212.04296,126.26955 212.82422,126.97266 C 213.60546,127.6758 214.0078,128.64845 214.03125,129.89063 L 211.26563,129.89063 C 211.24999,129.3672 211.09374,128.96876 210.79688,128.69531 C 210.50781,128.42189 210.08984,128.28517 209.54297,128.28516 C 209.05859,128.28517 208.68359,128.39064 208.41797,128.60156 C 208.16015,128.81251 208.03125,129.10939 208.03125,129.49219 C 208.03125,129.8047 208.18359,130.09767 208.48828,130.37109 C 208.80078,130.63673 209.35937,130.95704 210.16406,131.33203 L 212.13281,132.24609 C 213.1328,132.72267 213.87108,133.25392 214.34766,133.83984 C 214.82421,134.41798 215.06249,135.08595 215.0625,135.84375 C 215.06249,136.55469 214.8828,137.17579 214.52344,137.70703 C 214.17186,138.23047 213.66405,138.63672 213,138.92578 C 213.45312,139.32422 213.79296,139.76563 214.01953,140.25 C 214.24608,140.73438 214.35936,141.26563 214.35938,141.84375 C 214.35936,143.04688 213.92968,144.03906 213.07031,144.82031 C 212.21093,145.60937 211.10546,146.0039 209.75391,146.00391 C 208.26953,146.0039 207.1289,145.64453 206.33203,144.92578 C 205.53515,144.20703 205.10156,143.14844 205.03125,141.75 M 203.97656,173.625 L 203.97656,160.59375 C 203.97656,159.29689 204.48047,158.25002 205.48828,157.45313 C 206.49609,156.64845 207.83984,156.24611 209.51953,156.24609 C 211.23046,156.24611 212.5703,156.63674 213.53906,157.41797 C 214.5078,158.19923 214.99217,159.27345 214.99219,160.64063 C 214.99217,161.48439 214.84764,162.17579 214.55859,162.71484 C 214.27733,163.25392 213.83983,163.66798 213.24609,163.95703 C 214.16796,164.32423 214.85936,164.86329 215.32031,165.57422 C 215.78905,166.28516 216.02342,167.16016 216.02344,168.19922 C 216.02342,169.94922 215.51952,171.36328 214.51172,172.44141 C 213.5039,173.51953 212.18358,174.05859 210.55078,174.05859 C 210.32421,174.05859 210.0703,174.04687 209.78906,174.02344 C 209.51562,174 209.21874,173.96484 208.89844,173.91797 L 208.89844,171.17578 C 208.99999,171.19141 209.10156,171.20313 209.20313,171.21094 C 209.31249,171.21875 209.47265,171.22266 209.68359,171.22266 C 210.60546,171.22266 211.3164,170.96875 211.81641,170.46094 C 212.3164,169.94532 212.5664,169.21485 212.56641,168.26953 C 212.5664,167.35548 212.29296,166.66016 211.74609,166.18359 C 211.20702,165.70704 210.41796,165.46876 209.37891,165.46875 L 209.0625,165.46875 L 209.07422,163.06641 C 209.12109,163.07423 209.17187,163.08204 209.22656,163.08984 C 209.28124,163.08985 209.36327,163.08985 209.47266,163.08984 C 210.16796,163.08985 210.6953,162.91798 211.05469,162.57422 C 211.42187,162.22267 211.60546,161.71486 211.60547,161.05078 C 211.60546,160.38673 211.41405,159.88283 211.03125,159.53906 C 210.65624,159.18751 210.10546,159.01173 209.37891,159.01172 C 208.70703,159.01173 208.19531,159.20705 207.84375,159.59766 C 207.49218,159.98048 207.3164,160.54298 207.31641,161.28516 L 207.31641,173.625 L 203.97656,173.625"
+ id="text6073" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 267.09961,140.51367 L 269.94727,140.51367 C 271.60351,140.51367 272.80272,140.08008 273.54492,139.21289 C 274.2871,138.34571 274.65819,136.94727 274.6582,135.01758 C 274.65819,133.09571 274.31053,131.68165 273.61523,130.77539 C 272.92772,129.86134 271.8496,129.40431 270.38086,129.4043 L 267.09961,129.4043 L 267.09961,133.23633 L 270.88477,133.23633 L 270.88477,135.47461 L 267.09961,135.47461 L 267.09961,140.51367 M 263.61914,143.63086 L 263.61914,135.47461 L 261.74414,135.47461 L 261.74414,133.23633 L 263.61914,133.23633 L 263.61914,126.36914 L 270.4043,126.36914 C 273.04491,126.36916 275.01366,127.084 276.31055,128.51367 C 277.60741,129.93556 278.25584,132.10353 278.25586,135.01758 C 278.25584,136.60352 278.01756,137.99805 277.54102,139.20117 C 277.07225,140.4043 276.38084,141.36914 275.4668,142.0957 C 274.77928,142.64258 273.99413,143.03711 273.11133,143.2793 C 272.23632,143.51367 271.00585,143.63086 269.41992,143.63086 L 263.61914,143.63086"
+ id="text6077" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 626.72461,139.55273 C 627.17773,140.04493 627.68945,140.41211 628.25977,140.6543 C 628.83007,140.89649 629.47069,141.01758 630.18164,141.01758 C 631.71288,141.01758 632.90428,140.49414 633.75586,139.44727 C 634.60741,138.39258 635.03319,136.91602 635.0332,135.01758 C 635.03319,134.24415 634.96288,133.54493 634.82227,132.91992 C 634.68163,132.28712 634.4785,131.73634 634.21289,131.26758 L 626.72461,139.55273 M 625.98633,138.36914 L 633.39258,130.21289 C 632.9785,129.81447 632.50585,129.51759 631.97461,129.32227 C 631.44335,129.11916 630.84569,129.01759 630.18164,129.01758 C 628.66601,129.01759 627.48632,129.54103 626.64258,130.58789 C 625.79882,131.63478 625.37695,133.11134 625.37695,135.01758 C 625.37695,135.72071 625.42382,136.34571 625.51758,136.89258 C 625.61914,137.43946 625.77539,137.93165 625.98633,138.36914 M 621.36914,143.36133 L 623.51367,140.9707 C 622.91992,140.16602 622.47851,139.27149 622.18945,138.28711 C 621.90039,137.29493 621.75586,136.20509 621.75586,135.01758 C 621.75586,132.22853 622.51367,130.01759 624.0293,128.38477 C 625.55273,126.74416 627.60351,125.92385 630.18164,125.92383 C 631.28319,125.92385 632.27147,126.06447 633.14648,126.3457 C 634.02928,126.62697 634.84178,127.06056 635.58398,127.64648 L 637.30664,125.70117 L 638.45508,126.73242 L 636.63867,128.70117 C 637.30272,129.5215 637.79881,130.45509 638.12695,131.50195 C 638.46287,132.54884 638.63084,133.72071 638.63086,135.01758 C 638.63084,137.79883 637.86912,140.00977 636.3457,141.65039 C 634.82225,143.29102 632.76757,144.11133 630.18164,144.11133 C 629.01757,144.11133 627.96679,143.94727 627.0293,143.61914 C 626.0996,143.29102 625.26367,142.79102 624.52148,142.11914 L 622.50586,144.4043 L 621.36914,143.36133"
+ id="text6081" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 690,127.98633 C 689.42968,127.98634 688.9414,128.18556 688.53516,128.58398 C 688.13672,128.98244 687.9375,129.4629 687.9375,130.02539 C 687.9375,130.60353 688.13672,131.09181 688.53516,131.49023 C 688.93359,131.88868 689.42187,132.0879 690,132.08789 C 690.5625,132.0879 691.04296,131.88478 691.44141,131.47852 C 691.83984,131.07228 692.03906,130.5879 692.03906,130.02539 C 692.03906,129.4629 691.83984,128.98244 691.44141,128.58398 C 691.04296,128.18556 690.5625,127.98634 690,127.98633 M 690,126.47461 C 690.98437,126.47463 691.82031,126.82619 692.50781,127.5293 C 693.20312,128.22462 693.55077,129.06447 693.55078,130.04883 C 693.55077,131.0254 693.20312,131.86134 692.50781,132.55664 C 691.81249,133.25196 690.96875,133.59962 689.97656,133.59961 C 688.99218,133.59962 688.15625,133.25587 687.46875,132.56836 C 686.78906,131.88087 686.44922,131.04103 686.44922,130.04883 C 686.44922,129.05666 686.79297,128.21291 687.48047,127.51758 C 688.17578,126.82228 689.01562,126.47463 690,126.47461 M 695.51953,156.29883 L 695.51953,157.59961 L 694.19531,157.59961 L 694.19531,173.63086 L 692.42578,173.63086 L 692.42578,157.59961 L 690.57422,157.59961 L 690.57422,173.63086 L 688.78125,173.63086 L 688.78125,164.44336 C 687.47656,164.39649 686.43359,164.00196 685.65234,163.25977 C 684.87109,162.51759 684.48047,161.56056 684.48047,160.38867 C 684.48047,159.15431 684.89844,158.16603 685.73438,157.42383 C 686.57031,156.67385 687.67968,156.29885 689.0625,156.29883 L 695.51953,156.29883"
+ id="text6085" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 373.13672,6.5214844 L 376.08984,6.5214844 L 381.72656,13.095703 L 378.97266,13.095703 L 374.625,8.7480469 L 370.25391,13.095703 L 367.5,13.095703 L 373.13672,6.5214844"
+ id="text6091" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 750.67969,128.67773 L 750.67969,125.79492 L 753.32813,125.79492 L 753.32813,128.67773 L 750.67969,128.67773 M 746.60156,128.67773 L 746.60156,125.79492 L 749.25,125.79492 L 749.25,128.67773 L 746.60156,128.67773 M 753.39844,155.0332 L 749.73047,159.36914 L 748.06641,159.36914 L 750.375,155.0332 L 753.39844,155.0332"
+ id="text6099" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 171.07031,197.29102 L 175.92188,197.29102 L 175.92188,189.29883 L 173.97656,189.29883 L 171.07031,197.29102 M 165,203.63086 L 171.80859,186.36914 L 187.81641,186.36914 L 187.81641,189.36914 L 179.34375,189.36914 L 179.34375,193.04883 L 187.05469,193.04883 L 187.05469,196.00195 L 179.34375,196.00195 L 179.34375,200.44336 L 188.25,200.44336 L 188.25,203.63086 L 175.92188,203.63086 L 175.92188,200.08008 L 170.0625,200.08008 L 168.76172,203.63086 L 165,203.63086"
+ id="text6105" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 300.46875,193.23633 C 300.32031,193.22071 300.20312,193.20899 300.11719,193.20117 C 300.03906,193.19337 299.96484,193.18946 299.89453,193.18945 C 299.05859,193.18946 298.42578,193.53321 297.99609,194.2207 C 297.5664,194.90821 297.35156,195.92384 297.35156,197.26758 C 297.35156,198.04102 297.4375,198.70899 297.60938,199.27148 C 297.78906,199.83399 298.04687,200.28711 298.38281,200.63086 L 300.46875,193.23633 M 296.68359,206.49023 L 297.48047,203.63086 C 296.30859,203.13867 295.42187,202.35352 294.82031,201.27539 C 294.21875,200.19727 293.91797,198.85352 293.91797,197.24414 C 293.91797,195.11134 294.45312,193.43946 295.52344,192.22852 C 296.60156,191.01759 298.07421,190.41212 299.94141,190.41211 C 300.15234,190.41212 300.35937,190.41994 300.5625,190.43555 C 300.76562,190.45119 300.96874,190.47462 301.17188,190.50586 L 301.69922,188.56055 L 302.97656,188.56055 L 302.34375,190.78711 C 303.32811,191.09181 304.09765,191.63478 304.65234,192.41602 C 305.20702,193.18946 305.52733,194.17774 305.61328,195.38086 L 302.32031,195.36914 C 302.28124,194.98634 302.1914,194.65821 302.05078,194.38477 C 301.91796,194.10353 301.72265,193.85743 301.46484,193.64648 L 299.36719,201.13477 C 299.38281,201.13477 299.40624,201.13867 299.4375,201.14648 C 299.67187,201.16992 299.85156,201.18164 299.97656,201.18164 C 300.66406,201.18164 301.19921,200.99024 301.58203,200.60742 C 301.97265,200.22461 302.23437,199.62305 302.36719,198.80273 L 305.66016,198.80273 C 305.54296,200.41993 304.96874,201.70117 303.9375,202.64648 C 302.91405,203.5918 301.59374,204.06445 299.97656,204.06445 C 299.76562,204.06445 299.55077,204.05664 299.33203,204.04102 C 299.11328,204.02539 298.88671,204.00195 298.65234,203.9707 L 297.96094,206.49023 L 296.68359,206.49023 M 304.19531,223.0957 L 301.99219,223.0957 C 301.92968,222.54884 301.72264,222.12696 301.37109,221.83008 C 301.01952,221.5254 300.55468,221.37306 299.97656,221.37305 C 299.26562,221.37306 298.70702,221.69337 298.30078,222.33398 C 297.89452,222.96681 297.6914,223.85353 297.69141,224.99414 C 297.6914,226.14259 297.89452,227.01758 298.30078,227.61914 C 298.70702,228.22071 299.29687,228.52149 300.07031,228.52148 C 300.64061,228.52149 301.09765,228.35743 301.44141,228.0293 C 301.78514,227.70118 301.99218,227.23633 302.0625,226.63477 L 304.32422,226.62305 C 304.2617,227.70899 303.83592,228.58008 303.04688,229.23633 C 302.2578,229.89258 301.24218,230.22071 300,230.2207 C 298.54687,230.22071 297.39843,229.75977 296.55469,228.83789 C 295.71874,227.91602 295.30078,226.65821 295.30078,225.06445 C 295.30078,223.45509 295.72656,222.17384 296.57813,221.2207 C 297.43749,220.25978 298.58593,219.77931 300.02344,219.7793 C 301.21093,219.77931 302.18749,220.084 302.95313,220.69336 C 303.72655,221.30275 304.14061,222.10353 304.19531,223.0957 M 300,217.7168 C 298.99999,217.71681 298.06249,217.8965 297.1875,218.25586 C 296.32031,218.61525 295.54687,219.13869 294.86719,219.82617 C 294.17187,220.52931 293.64062,221.32618 293.27344,222.2168 C 292.90625,223.09962 292.72265,224.0254 292.72266,224.99414 C 292.72265,225.97071 292.90625,226.89649 293.27344,227.77148 C 293.64062,228.64649 294.17187,229.43164 294.86719,230.12695 C 295.55468,230.81446 296.33984,231.3418 297.22266,231.70898 C 298.10546,232.07617 299.03124,232.25977 300,232.25977 C 300.96874,232.25977 301.89452,232.07617 302.77734,231.70898 C 303.66796,231.3418 304.46874,230.80664 305.17969,230.10352 C 305.86717,229.43164 306.3867,228.66211 306.73828,227.79492 C 307.09764,226.92774 307.27733,225.99415 307.27734,224.99414 C 307.27733,224.00978 307.09373,223.08009 306.72656,222.20508 C 306.36717,221.32228 305.84373,220.53712 305.15625,219.84961 C 304.46092,219.15431 303.67577,218.62697 302.80078,218.26758 C 301.92577,217.90041 300.99218,217.71681 300,217.7168 M 299.97656,216.27539 C 301.16405,216.27541 302.28514,216.49416 303.33984,216.93164 C 304.40233,217.36916 305.35155,218.00587 306.1875,218.8418 C 307.0078,219.66212 307.63279,220.60353 308.0625,221.66602 C 308.49217,222.72071 308.70701,223.8379 308.70703,225.01758 C 308.70701,226.20509 308.49217,227.31446 308.0625,228.3457 C 307.64061,229.37696 307.01561,230.29883 306.1875,231.11133 C 305.3203,231.95508 304.35155,232.60352 303.28125,233.05664 C 302.21093,233.50195 301.10936,233.72461 299.97656,233.72461 C 298.82812,233.72461 297.73046,233.50586 296.68359,233.06836 C 295.64453,232.62305 294.70312,231.97852 293.85938,231.13477 C 293.02343,230.30664 292.38672,229.36914 291.94922,228.32227 C 291.51172,227.26758 291.29297,226.16602 291.29297,225.01758 C 291.29297,223.85353 291.51172,222.74415 291.94922,221.68945 C 292.38672,220.62697 293.02343,219.66994 293.85938,218.81836 C 294.67968,217.99025 295.60937,217.36134 296.64844,216.93164 C 297.68749,216.49416 298.79687,216.27541 299.97656,216.27539"
+ id="text6109" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 472.88672,203.63086 L 472.88672,186.36914 L 476.60156,186.36914 L 483.60938,198.22852 L 483.60938,186.36914 L 487.11328,186.36914 L 487.11328,203.63086 L 483.44531,203.63086 L 476.39063,191.77148 L 476.39063,203.63086 L 472.88672,203.63086 M 483.82031,181.0957 C 483.61717,182.07229 483.31639,182.79494 482.91797,183.26367 C 482.51952,183.72463 482.0078,183.9551 481.38281,183.95508 C 481.21874,183.9551 481.0664,183.94729 480.92578,183.93164 C 480.78515,183.90822 480.64452,183.87307 480.50391,183.82617 L 479.48438,183.52148 C 479.33593,183.48244 479.19921,183.4551 479.07422,183.43945 C 478.94921,183.41604 478.82812,183.40432 478.71094,183.4043 C 478.44531,183.40432 478.23046,183.47463 478.06641,183.61523 C 477.90234,183.75588 477.77343,183.98635 477.67969,184.30664 L 476.39063,184.30664 C 476.57812,183.36135 476.86718,182.66604 477.25781,182.2207 C 477.64843,181.77541 478.15624,181.55276 478.78125,181.55273 C 478.9453,181.55276 479.10937,181.56838 479.27344,181.59961 C 479.43749,181.62307 479.60937,181.66213 479.78906,181.7168 L 480.87891,182.00977 C 480.97265,182.04104 481.0703,182.06447 481.17188,182.08008 C 481.28124,182.09572 481.39843,182.10354 481.52344,182.10352 C 481.77343,182.10354 481.98046,182.02151 482.14453,181.85742 C 482.3164,181.68557 482.4453,181.43166 482.53125,181.0957 L 483.82031,181.0957"
+ id="text6113" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 535.83398,220.83432 L 539.2207,220.83432 L 538.33008,225.93198 C 538.21289,226.55698 538.12304,227.15073 538.06055,227.71323 C 537.99804,228.26792 537.96679,228.72104 537.9668,229.0726 C 537.96679,229.79917 538.13085,230.34214 538.45898,230.70151 C 538.7871,231.05307 539.2871,231.22885 539.95898,231.22885 C 540.74023,231.22885 541.3457,230.90854 541.77539,230.26791 C 542.21288,229.62729 542.57616,228.49058 542.86523,226.85776 L 543.91992,220.83432 L 547.30664,220.83432 L 545.04492,233.6312 L 541.9043,233.6312 L 542.11523,232.2601 C 541.7871,232.86948 541.41991,233.31479 541.01367,233.59604 C 540.61523,233.87729 540.14257,234.01791 539.5957,234.01791 C 539.07226,234.01791 538.60742,233.90073 538.20117,233.66635 C 537.79492,233.43979 537.42773,233.08432 537.09961,232.59995 L 536.04492,238.76401 L 532.69336,238.76401 L 535.83398,220.83432"
+ id="text6117" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 607.875,197.70117 C 607.74217,199.66211 606.98436,201.22071 605.60156,202.37695 C 604.22655,203.5332 602.42968,204.11133 600.21094,204.11133 C 597.65624,204.11133 595.66796,203.31445 594.24609,201.7207 C 592.83203,200.12696 592.125,197.89258 592.125,195.01758 C 592.125,192.08009 592.84765,189.83009 594.29297,188.26758 C 595.73828,186.7051 597.8164,185.92385 600.52734,185.92383 C 602.73046,185.92385 604.46874,186.46291 605.74219,187.54102 C 607.02342,188.61134 607.72655,190.12697 607.85156,192.08789 L 604.34766,192.08789 C 604.19921,191.11134 603.80077,190.36915 603.15234,189.86133 C 602.50389,189.34572 601.6289,189.08791 600.52734,189.08789 C 598.96484,189.08791 597.77734,189.59181 596.96484,190.59961 C 596.15234,191.60743 595.74609,193.08009 595.74609,195.01758 C 595.74609,196.89258 596.14843,198.3418 596.95313,199.36523 C 597.76562,200.38868 598.91796,200.90039 600.41016,200.90039 C 601.48827,200.90039 602.37108,200.62696 603.05859,200.08008 C 603.74608,199.52539 604.19139,198.73243 604.39453,197.70117 L 607.875,197.70117 M 597.62109,208.76367 L 597.62109,207.25195 C 598.24609,207.41601 598.81249,207.54101 599.32031,207.62695 C 599.82812,207.71289 600.26171,207.75586 600.62109,207.75586 C 601.02733,207.75586 601.32421,207.68554 601.51172,207.54492 C 601.69921,207.41211 601.79296,207.19726 601.79297,206.90039 C 601.79296,206.60351 601.68358,206.39258 601.46484,206.26758 C 601.24608,206.14258 600.8828,206.08008 600.375,206.08008 C 600.1953,206.08008 600.05858,206.08008 599.96484,206.08008 C 599.87108,206.08789 599.78515,206.0957 599.70703,206.10352 L 599.70703,203.63086 L 600.90234,203.63086 L 600.90234,204.68555 L 601.07813,204.68555 C 601.99218,204.68555 602.67968,204.87305 603.14063,205.24805 C 603.60155,205.62304 603.83202,206.18164 603.83203,206.92383 C 603.83202,207.70507 603.57421,208.29101 603.05859,208.68164 C 602.54296,209.07226 601.76952,209.26757 600.73828,209.26758 C 600.33983,209.26757 599.87108,209.2246 599.33203,209.13867 C 598.80077,209.05273 598.23046,208.92773 597.62109,208.76367"
+ id="text6121" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 721.7168,216.36914 L 721.7168,219.82617 L 718.23633,219.82617 L 718.23633,216.36914 L 721.7168,216.36914 M 721.55273,221.39648 C 721.55273,221.47462 721.55663,221.5879 721.56445,221.73633 C 721.57226,221.88478 721.57616,221.99415 721.57617,222.06445 C 721.57616,222.74415 721.50194,223.31446 721.35352,223.77539 C 721.20507,224.23634 720.96679,224.66602 720.63867,225.06445 C 720.38085,225.36134 720.00195,225.70118 719.50195,226.08398 C 719.00976,226.4668 718.69335,226.74415 718.55273,226.91602 C 718.24804,227.25977 718.0332,227.57618 717.9082,227.86523 C 717.79101,228.1543 717.73242,228.4668 717.73242,228.80273 C 717.73242,229.55274 717.93554,230.13477 718.3418,230.54883 C 718.74804,230.95508 719.32226,231.15821 720.06445,231.1582 C 720.79882,231.15821 721.38085,230.91211 721.81055,230.41992 C 722.24023,229.91993 722.4746,229.22071 722.51367,228.32227 L 725.8418,228.32227 L 725.8418,228.68555 C 725.84178,230.3418 725.31835,231.66211 724.27148,232.64648 C 723.23241,233.62305 721.83007,234.11133 720.06445,234.11133 C 718.25976,234.11133 716.82226,233.64648 715.75195,232.7168 C 714.68945,231.7793 714.1582,230.53321 714.1582,228.97852 C 714.1582,228.40821 714.2168,227.90821 714.33398,227.47852 C 714.45117,227.04883 714.63086,226.65821 714.87305,226.30664 C 715.18554,225.86915 715.67773,225.39259 716.34961,224.87695 C 717.02148,224.36134 717.43554,224.03321 717.5918,223.89258 C 717.88867,223.60353 718.0996,223.29884 718.22461,222.97852 C 718.35742,222.6504 718.42382,222.25587 718.42383,221.79492 C 718.42382,221.75587 718.41992,221.69337 718.41211,221.60742 C 718.40429,221.51368 718.40039,221.44337 718.40039,221.39648 L 721.55273,221.39648"
+ id="text6131" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Matrix Unicode"
+ d=""
+ id="text6955" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="137.05411"
+ y="23.149496"
+ id="text4346"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348"
+ x="137.05411"
+ y="23.149496"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"> Ë </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="186.05411"
+ y="27.3995"
+ id="text4346-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348-1"
+ x="186.05411"
+ y="27.3995"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"> ¯ </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="482.80411"
+ y="24.6495"
+ id="text4346-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348-7"
+ x="482.80411"
+ y="24.6495"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"> Ë› </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="558.30408"
+ y="24.399498"
+ id="text4346-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348-0"
+ x="558.30408"
+ y="24.399498"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"> ˘ </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="626.55408"
+ y="11.1495"
+ id="text4346-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348-09"
+ x="626.55408"
+ y="11.1495"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start"
+ id="tspan4483"> o</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="667.80408"
+ y="28.899498"
+ id="text4346-31"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348-15"
+ x="667.80408"
+ y="28.899498"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"> . </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="619.55408"
+ y="203.14951"
+ id="text4346-38"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348-8"
+ x="619.55408"
+ y="203.14951"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"> ˇ </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="620.30408"
+ y="232.14951"
+ id="text4346-9"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4348-6"
+ x="620.30408"
+ y="232.14951"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:23.75px;line-height:125%;font-family:'Arial Nova';-inkscape-font-specification:'Arial Nova, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"> Ë™ </tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:24px;line-height:125%;font-family:'Swis721 BT';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 402.88672,6.52148 2.95312,0 5.63672,6.574219 -2.7539,0 -4.34766,-4.3476565 -4.37109,4.3476565 -2.75391,0 5.63672,-6.574219"
+ id="text6091-3" />
+ </g>
+</svg>
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.png b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.png
new file mode 100644
index 000000000..875eb3652
--- /dev/null
+++ b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.png
Binary files differ
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.svg b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.svg
new file mode 100644
index 000000000..1ca6a9c87
--- /dev/null
+++ b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.svg
@@ -0,0 +1,935 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="900"
+ height="300"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.45.1"
+ version="1.0"
+ sodipodi:docbase="C:\Documents and Settings\David Nelson\Archives\Svg"
+ sodipodi:docname="KB_US-International.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lend"
+ style="overflow:visible;">
+ <path
+ id="path5387"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.8) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ id="path5390"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Tail"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Tail"
+ style="overflow:visible">
+ <g
+ id="g5342"
+ transform="scale(-1.2)">
+ <path
+ id="path5344"
+ d="M -3.8048674,-3.9585227 L 0.54352094,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5346"
+ d="M -1.2866832,-3.9585227 L 3.0617053,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5348"
+ d="M 1.3053582,-3.9585227 L 5.6537466,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5350"
+ d="M -3.8048674,4.1775838 L 0.54352094,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5352"
+ d="M -1.2866832,4.1775838 L 3.0617053,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5354"
+ d="M 1.3053582,4.1775838 L 5.6537466,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ </g>
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Mend"
+ style="overflow:visible;">
+ <path
+ id="path5363"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(0.6) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lend"
+ style="overflow:visible;">
+ <path
+ id="path5369"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Send"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Send"
+ style="overflow:visible;">
+ <path
+ id="path5375"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.2) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Send"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Send"
+ style="overflow:visible;">
+ <path
+ id="path5357"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(0.3) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Mend"
+ style="overflow:visible;">
+ <path
+ id="path5381"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.4) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lstart"
+ style="overflow:visible">
+ <path
+ id="path5372"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) translate(-5,0)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.74472808"
+ inkscape:cx="450"
+ inkscape:cy="150"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:grid-points="true"
+ showgrid="true"
+ gridtolerance="15px"
+ gridcolor="#0000ff"
+ gridopacity="0.12156863"
+ gridempcolor="#0000ff"
+ gridempopacity="0.25098039"
+ gridspacingx="7.5px"
+ gridspacingy="7.5px"
+ gridempspacing="4"
+ showborder="false"
+ inkscape:window-width="756"
+ inkscape:window-height="569"
+ inkscape:window-x="28"
+ inkscape:window-y="218"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:grid-bbox="true" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,0 L 60,0 L 60,60 L 0,60 L 0,0 z "
+ id="rect2186" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 60,0 L 120,0 L 120,60 L 60,60 L 60,0 z "
+ id="rect2218" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 120,0 L 180,0 L 180,60 L 120,60 L 120,0 z "
+ id="rect2222" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 180,0 L 240,0 L 240,60 L 180,60 L 180,0 z "
+ id="rect2228" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 240,0 L 300,0 L 300,60 L 240,60 L 240,0 z "
+ id="rect2230" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 300,0 L 360,0 L 360,60 L 300,60 L 300,0 z "
+ id="rect2232" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 360,0 L 420,0 L 420,60 L 360,60 L 360,0 z "
+ id="rect2234" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 420,0 L 480,0 L 480,60 L 420,60 L 420,0 z "
+ id="rect2236" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 480,0 L 540,0 L 540,60 L 480,60 L 480,0 z "
+ id="rect2238" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 540,0 L 600,0 L 600,60 L 540,60 L 540,0 z "
+ id="rect2240" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 600,0 L 660,0 L 660,60 L 600,60 L 600,0 z "
+ id="rect2242" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 660,0 L 720,0 L 720,60 L 660,60 L 660,0 z "
+ id="rect2244" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 720,0 L 780,0 L 780,60 L 720,60 L 720,0 z "
+ id="rect2246" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 780,0 L 900,0 L 900,60 L 780,60 L 780,0 z "
+ id="rect2248" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,60 L 90,60 L 90,120 L 0,120 L 0,60 z "
+ id="rect2250" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 90,60 L 150,60 L 150,120 L 90,120 L 90,60 z "
+ id="rect2252" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 150,60 L 210,60 L 210,120 L 150,120 L 150,60 z "
+ id="rect2254" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 210,60 L 270,60 L 270,120 L 210,120 L 210,60 z "
+ id="rect2256" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 270,60 L 330,60 L 330,120 L 270,120 L 270,60 z "
+ id="rect2258" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 330,60 L 390,60 L 390,120 L 330,120 L 330,60 z "
+ id="rect2262" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 390,60 L 450,60 L 450,120 L 390,120 L 390,60 z "
+ id="rect2264" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 450,60 L 510,60 L 510,120 L 450,120 L 450,60 z "
+ id="rect2266" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 510,60 L 570,60 L 570,120 L 510,120 L 510,60 z "
+ id="rect2270" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 570,60 L 630,60 L 630,120 L 570,120 L 570,60 z "
+ id="rect2272" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 630,60 L 690,60 L 690,120 L 630,120 L 630,60 z "
+ id="rect2274" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 690,60 L 750,60 L 750,120 L 690,120 L 690,60 z "
+ id="rect2278" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 750,60 L 810,60 L 810,120 L 750,120 L 750,60 z "
+ id="rect2280" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 810,60 L 900,60 L 900,120 L 810,120 L 810,60 z "
+ id="rect2284" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,120 L 105,120 L 105,180 L 0,180 L 0,120 z "
+ id="rect2286" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 105,120 L 165,120 L 165,180 L 105,180 L 105,120 z "
+ id="rect2292" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 165,120 L 225,120 L 225,180 L 165,180 L 165,120 z "
+ id="rect2296" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 225,120 L 285,120 L 285,180 L 225,180 L 225,120 z "
+ id="rect2298" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 285,120 L 345,120 L 345,180 L 285,180 L 285,120 z "
+ id="rect2300" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 345,120 L 405,120 L 405,180 L 345,180 L 345,120 z "
+ id="rect2302" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 405,120 L 465,120 L 465,180 L 405,180 L 405,120 z "
+ id="rect2306" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 465,120 L 525,120 L 525,180 L 465,180 L 465,120 z "
+ id="rect2308" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 525,120 L 585,120 L 585,180 L 525,180 L 525,120 z "
+ id="rect2312" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 585,120 L 645,120 L 645,180 L 585,180 L 585,120 z "
+ id="rect2314" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 645,120 L 705,120 L 705,180 L 645,180 L 645,120 z "
+ id="rect2316" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 705,120 L 765,120 L 765,180 L 705,180 L 705,120 z "
+ id="rect2318" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 765,120 L 900,120 L 900,180 L 765,180 L 765,120 z "
+ id="rect2320" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,180 L 135,180 L 135,240 L 0,240 L 0,180 z "
+ id="rect2322" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 135,180 L 195,180 L 195,240 L 135,240 L 135,180 z "
+ id="rect2324" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 195,180 L 255,180 L 255,240 L 195,240 L 195,180 z "
+ id="rect2326" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 255,180 L 315,180 L 315,240 L 255,240 L 255,180 z "
+ id="rect2330" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 315,180 L 375,180 L 375,240 L 315,240 L 315,180 z "
+ id="rect2334" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 375,180 L 435,180 L 435,240 L 375,240 L 375,180 z "
+ id="rect2336" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 435,180 L 495,180 L 495,240 L 435,240 L 435,180 z "
+ id="rect2338" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 495,180 L 555,180 L 555,240 L 495,240 L 495,180 z "
+ id="rect2340" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 555,180 L 615,180 L 615,240 L 555,240 L 555,180 z "
+ id="rect2342" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 615,180 L 675,180 L 675,240 L 615,240 L 615,180 z "
+ id="rect2344" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 675,180 L 735,180 L 735,240 L 675,240 L 675,180 z "
+ id="rect2346" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 735,180 L 900,180 L 900,240 L 735,240 L 735,180 z "
+ id="rect2348" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,240 L 90,240 L 90,300 L 0,300 L 0,240 z "
+ id="rect2350" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 810,240 L 900,240 L 900,300 L 810,300 L 810,240 z "
+ id="rect2352" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 150,240 L 240,240 L 240,300 L 150,300 L 150,240 z "
+ id="rect2354" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 600,240 L 690,240 L 690,300 L 600,300 L 600,240 z "
+ id="rect2360" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 240,240 L 600,240 L 600,300 L 240,300 L 240,240 z "
+ id="rect2362" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 90,240 L 150,240 L 150,300 L 90,300 L 90,240 z "
+ id="rect2364" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 690,240 L 750,240 L 750,300 L 690,300 L 690,240 z "
+ id="rect2366" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 750,240 L 810,240 L 810,300 L 750,300 L 750,240 z "
+ id="rect2368" />
+ <path
+ style=""
+ d=""
+ id="flowRoot4146" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 75.351563,18.826172 L 74.4375,11.056641 L 74.4375,6.3691406 L 78.046875,6.3691406 L 78.046875,11.056641 L 77.132813,18.826172 L 75.351563,18.826172 M 74.484375,23.630859 L 74.484375,20.173828 L 77.964844,20.173828 L 77.964844,23.630859 L 74.484375,23.630859 M 75.351563,53.630859 L 75.351563,42.158203 L 71.34375,42.158203 L 71.34375,39.802734 L 71.601563,39.802734 C 73.062496,39.802748 74.124995,39.576186 74.789063,39.123047 C 75.460931,38.669937 75.855462,37.912125 75.972656,36.849609 L 78.65625,36.849609 L 78.65625,53.630859 L 75.351563,53.630859"
+ id="text5091" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 23.34375,14.220703 L 23.34375,16.810547 C 22.531233,17.365241 21.761702,17.775396 21.035156,18.041016 C 20.316391,18.298833 19.605455,18.42774 18.902344,18.427734 C 18.542956,18.42774 18.183581,18.39649 17.824219,18.333984 C 17.464832,18.27149 17.105457,18.181646 16.746094,18.064453 C 16.558583,18.001959 16.281239,17.904303 15.914063,17.771484 C 14.203116,17.185553 12.902336,16.892585 12.011719,16.892578 C 11.34765,16.892585 10.652339,17.041022 9.9257813,17.337891 C 9.2070275,17.626959 8.3984345,18.091802 7.5,18.732422 L 7.5,16.142578 C 8.3359346,15.580086 9.1328088,15.162118 9.890625,14.888672 C 10.648432,14.607431 11.363275,14.466806 12.035156,14.466797 C 12.949211,14.466806 14.085929,14.693368 15.445313,15.146484 C 15.46874,15.154305 15.484365,15.158212 15.492188,15.158203 C 15.632802,15.205087 15.847646,15.279305 16.136719,15.380859 C 17.347644,15.810555 18.285143,16.025398 18.949219,16.025391 C 19.613267,16.025398 20.29686,15.880867 21,15.591797 C 21.703109,15.302743 22.484358,14.845712 23.34375,14.220703 M 11.988281,35.033203 L 15.011719,35.033203 L 17.320313,39.369141 L 15.65625,39.369141 L 11.988281,35.033203"
+ id="text5103" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 136.47578,20.443359 C 136.04608,21.099612 135.54999,21.583986 134.9875,21.896484 C 134.42499,22.201173 133.76093,22.353517 132.99532,22.353516 C 131.76093,22.353517 130.81953,22.01758 130.1711,21.345703 C 129.53047,20.673831 129.21015,19.681645 129.21016,18.369141 C 129.21015,16.50196 129.75312,14.935556 130.83907,13.669922 C 131.93281,12.404308 133.27656,11.771496 134.87032,11.771484 C 135.4953,11.771496 136.03827,11.900402 136.49922,12.158203 C 136.96015,12.416027 137.33905,12.798839 137.63594,13.306641 L 138.25703,12.158203 L 140.34297,12.158203 L 138.62032,19.166016 C 138.59686,19.251958 138.57733,19.341801 138.56172,19.435547 C 138.54608,19.521488 138.53827,19.591801 138.53828,19.646484 C 138.53827,19.919926 138.63202,20.126957 138.81953,20.267578 C 139.00702,20.400394 139.28436,20.4668 139.65157,20.466797 C 139.95624,20.4668 140.27264,20.388675 140.60078,20.232422 C 140.9367,20.076175 141.2492,19.857426 141.53828,19.576172 C 142.21014,18.951177 142.71795,18.220709 143.06172,17.384766 C 143.41326,16.548835 143.58904,15.630867 143.58907,14.630859 C 143.58904,12.75587 142.86248,11.216809 141.40938,10.013672 C 139.96405,8.8027492 138.09686,8.1972811 135.80782,8.1972656 C 134.70624,8.1972811 133.6789,8.3300934 132.72578,8.5957031 C 131.78046,8.8613429 130.92109,9.2558737 130.14766,9.7792969 C 128.81953,10.669935 127.79609,11.783215 127.07735,13.119141 C 126.36641,14.455087 126.01094,15.91993 126.01094,17.513672 C 126.01094,19.912113 126.81953,21.83008 128.43672,23.267578 C 130.0539,24.697265 132.21406,25.412108 134.91719,25.412109 C 136.1828,25.412108 137.41718,25.220702 138.62032,24.837891 C 139.83124,24.455077 140.95623,23.90039 141.99532,23.173828 L 142.95625,24.544922 C 141.76092,25.443358 140.49139,26.119138 139.14766,26.572266 C 137.81171,27.025387 136.41718,27.25195 134.96407,27.251953 C 133.46405,27.25195 132.08515,27.060543 130.82735,26.677734 C 129.56953,26.302732 128.45234,25.744139 127.47578,25.001953 C 126.26484,24.05664 125.35859,22.966798 124.75703,21.732422 C 124.15547,20.49805 123.85469,19.099614 123.85469,17.537109 C 123.85469,16.232429 124.05781,14.990243 124.46407,13.810547 C 124.87813,12.623058 125.48359,11.544934 126.28047,10.576172 C 127.43672,9.1621238 128.82734,8.0918124 130.45235,7.3652344 C 132.07734,6.6386889 133.88593,6.275408 135.87813,6.2753906 C 137.19843,6.275408 138.43671,6.4550953 139.59297,6.8144531 C 140.75702,7.1660321 141.76873,7.6660316 142.62813,8.3144531 C 143.68279,9.1347801 144.46795,10.072279 144.9836,11.126953 C 145.50701,12.17384 145.76873,13.357432 145.76875,14.677734 C 145.76873,15.966805 145.51092,17.15821 144.99532,18.251953 C 144.48748,19.337895 143.75311,20.267581 142.79219,21.041016 C 142.2453,21.478518 141.64764,21.814455 140.99922,22.048828 C 140.35858,22.275392 139.69061,22.388673 138.99532,22.388672 C 138.16718,22.388673 137.54218,22.224611 137.12032,21.896484 C 136.70624,21.568361 136.4914,21.083987 136.47578,20.443359 M 137.06172,15.427734 C 136.96015,14.794931 136.73358,14.314462 136.38203,13.986328 C 136.03827,13.650401 135.58124,13.482432 135.01094,13.482422 C 134.1203,13.482432 133.34687,13.966807 132.69063,14.935547 C 132.03437,15.904305 131.70624,17.068366 131.70625,18.427734 C 131.70624,19.146489 131.86249,19.693363 132.175,20.068359 C 132.49531,20.443363 132.95624,20.630862 133.55782,20.630859 C 134.20624,20.630862 134.79608,20.384769 135.32735,19.892578 C 135.8664,19.400395 136.23358,18.75977 136.42891,17.970703 L 137.06172,15.427734 M 128.56563,53.630859 C 128.58125,52.130861 128.90156,50.861331 129.52657,49.822266 C 130.15156,48.775395 131.26094,47.716803 132.85469,46.646484 C 133.09687,46.482429 133.44844,46.255867 133.90938,45.966797 C 136.01875,44.615243 137.07343,43.314463 137.07344,42.064453 C 137.07343,41.322278 136.85078,40.736341 136.40547,40.306641 C 135.96015,39.876967 135.35078,39.662123 134.57735,39.662109 C 133.73359,39.662123 133.08125,39.927748 132.62032,40.458984 C 132.16719,40.982435 131.94062,41.732434 131.94063,42.708984 L 131.94063,42.849609 L 128.84688,42.849609 C 128.84688,40.927747 129.3625,39.44728 130.39375,38.408203 C 131.425,37.369157 132.89375,36.849626 134.8,36.849609 C 136.52656,36.849626 137.90546,37.322282 138.93672,38.267578 C 139.96796,39.205093 140.48358,40.455091 140.4836,42.017578 C 140.48358,43.134776 140.21405,44.103525 139.675,44.923828 C 139.13593,45.744149 138.09296,46.677741 136.5461,47.724609 C 136.21796,47.951178 135.76484,48.248052 135.18672,48.615234 C 133.71797,49.560551 132.88984,50.2793 132.70235,50.771484 L 140.31953,50.771484 L 140.31953,53.630859 L 128.56563,53.630859"
+ id="text5127" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 195.28125,13.693359 L 194.25,16.552734 L 197.19141,16.552734 L 198.19922,13.693359 L 195.28125,13.693359 M 195.28125,6.4746094 L 197.87109,6.4746094 L 196.16016,11.337891 L 198.99609,11.337891 L 200.73047,6.4746094 L 203.32031,6.4746094 L 201.58594,11.337891 L 204.90234,11.337891 L 204.03516,13.693359 L 200.75391,13.693359 L 199.76953,16.529297 L 203.16797,16.529297 L 202.33594,18.873047 L 198.92578,18.873047 L 197.19141,23.748047 L 194.60156,23.748047 L 196.33594,18.873047 L 193.47656,18.873047 L 191.73047,23.748047 L 189.15234,23.748047 L 190.86328,18.873047 L 187.5,18.873047 L 188.39063,16.529297 L 191.69531,16.529297 L 192.70313,13.693359 L 189.19922,13.693359 L 190.06641,11.337891 L 193.54688,11.337891 L 195.28125,6.4746094 M 190.07813,48.521484 L 193.30078,48.521484 C 193.30859,49.458989 193.53515,50.166019 193.98047,50.642578 C 194.42578,51.111331 195.08593,51.345705 195.96094,51.345703 C 196.80468,51.345705 197.45312,51.126956 197.90625,50.689453 C 198.36718,50.244144 198.59765,49.607426 198.59766,48.779297 C 198.59765,47.951178 198.32812,47.326178 197.78906,46.904297 C 197.2578,46.474617 196.46484,46.259773 195.41016,46.259766 C 195.35546,46.259773 195.26953,46.263679 195.15234,46.271484 C 195.04296,46.279304 194.96093,46.28321 194.90625,46.283203 L 194.90625,43.962891 L 195.26953,43.962891 C 196.23827,43.9629 196.95312,43.7754 197.41406,43.400391 C 197.8828,43.017589 198.11718,42.435558 198.11719,41.654297 C 198.11718,41.005872 197.91796,40.494154 197.51953,40.119141 C 197.1289,39.736342 196.59374,39.544936 195.91406,39.544922 C 195.17187,39.544936 194.59765,39.763686 194.19141,40.201172 C 193.78515,40.638685 193.58203,41.259778 193.58203,42.064453 L 193.58203,42.205078 L 190.41797,42.205078 C 190.45703,40.486341 190.96094,39.169936 191.92969,38.255859 C 192.90625,37.334001 194.28125,36.873064 196.05469,36.873047 C 197.73437,36.873064 199.0664,37.283219 200.05078,38.103516 C 201.03514,38.923843 201.52733,40.02931 201.52734,41.419922 C 201.52733,42.154308 201.35936,42.798839 201.02344,43.353516 C 200.68749,43.908213 200.18358,44.365244 199.51172,44.724609 C 200.37108,45.099618 201.01952,45.619149 201.45703,46.283203 C 201.90233,46.93946 202.12499,47.724615 202.125,48.638672 C 202.12499,50.318363 201.57421,51.650393 200.47266,52.634766 C 199.37108,53.619141 197.86718,54.111328 195.96094,54.111328 C 194.07812,54.111328 192.625,53.634766 191.60156,52.681641 C 190.58594,51.720705 190.07812,50.357425 190.07813,48.591797 L 190.07813,48.521484"
+ id="text5139" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 254.46094,21.451172 C 255.10155,21.365237 255.58984,21.134768 255.92578,20.759766 C 256.26171,20.384769 256.42968,19.884769 256.42969,19.259766 C 256.42968,18.705083 256.26952,18.248052 255.94922,17.888672 C 255.63671,17.52149 255.14062,17.236335 254.46094,17.033203 L 254.46094,21.451172 M 253.06641,13.435547 L 253.06641,9.4511719 C 252.45703,9.529311 251.99218,9.7402483 251.67188,10.083984 C 251.35156,10.419935 251.1914,10.87306 251.19141,11.443359 C 251.1914,11.919934 251.33984,12.318371 251.63672,12.638672 C 251.9414,12.958995 252.41796,13.22462 253.06641,13.435547 M 253.06641,26.267578 L 253.06641,24.017578 C 251.30078,23.908203 249.98047,23.396485 249.10547,22.482422 C 248.23047,21.568361 247.79297,20.24805 247.79297,18.521484 L 250.93359,18.521484 C 250.97265,19.365239 251.16796,20.033207 251.51953,20.525391 C 251.8789,21.009768 252.39453,21.318362 253.06641,21.451172 L 253.06641,16.599609 C 251.2539,16.138679 249.96484,15.537117 249.19922,14.794922 C 248.43359,14.052744 248.05078,13.03712 248.05078,11.748047 C 248.05078,10.318373 248.5039,9.1660301 249.41016,8.2910156 C 250.32422,7.4160318 251.54296,6.959001 253.06641,6.9199219 L 253.06641,5.4199219 L 254.46094,5.4199219 L 254.46094,6.9199219 C 255.98437,6.9980635 257.17186,7.4590005 258.02344,8.3027344 C 258.87499,9.1386864 259.34374,10.318373 259.42969,11.841797 L 256.24219,11.841797 C 256.18749,11.115247 256.01171,10.56056 255.71484,10.177734 C 255.42577,9.7871232 255.0078,9.5683734 254.46094,9.5214844 L 254.46094,13.787109 C 256.39062,14.388681 257.74999,15.07618 258.53906,15.849609 C 259.32811,16.623054 259.72264,17.642584 259.72266,18.908203 C 259.72264,20.400394 259.26171,21.591799 258.33984,22.482422 C 257.42577,23.373047 256.1328,23.892578 254.46094,24.041016 L 254.46094,26.267578 L 253.06641,26.267578 M 254.64844,47.419922 L 254.64844,40.236328 L 250.08984,47.419922 L 254.64844,47.419922 M 254.57813,53.630859 L 254.57813,50.009766 L 247.5,50.009766 L 247.5,47.056641 L 253.6875,37.330078 L 257.84766,37.330078 L 257.84766,47.337891 L 259.79297,47.337891 L 259.79297,50.009766 L 257.84766,50.009766 L 257.84766,53.630859 L 254.57813,53.630859"
+ id="text5145" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 320.42578,19.740234 C 320.42577,20.263675 320.60155,20.705081 320.95313,21.064453 C 321.30467,21.416018 321.73827,21.591799 322.25391,21.591797 C 322.75389,21.591799 323.18358,21.412112 323.54297,21.052734 C 323.90233,20.68555 324.08201,20.24805 324.08203,19.740234 C 324.08201,19.240239 323.90233,18.814458 323.54297,18.462891 C 323.19139,18.103521 322.7617,17.923834 322.25391,17.923828 C 321.73827,17.923834 321.30467,18.099615 320.95313,18.451172 C 320.60155,18.794927 320.42577,19.224614 320.42578,19.740234 M 317.88281,19.740234 C 317.8828,18.521489 318.30468,17.494147 319.14844,16.658203 C 319.99217,15.822273 321.02733,15.404305 322.25391,15.404297 C 323.45701,15.404305 324.48045,15.830086 325.32422,16.681641 C 326.17576,17.525397 326.60154,18.544927 326.60156,19.740234 C 326.60154,20.943362 326.17576,21.974611 325.32422,22.833984 C 324.47264,23.685547 323.4492,24.111328 322.25391,24.111328 C 321.02733,24.111328 319.99217,23.689453 319.14844,22.845703 C 318.30468,22.001955 317.8828,20.9668 317.88281,19.740234 M 311.07422,24.111328 L 321.08203,6.8496094 L 322.96875,6.8496094 L 312.96094,24.111328 L 311.07422,24.111328 M 310.04297,11.220703 C 310.04297,11.73634 310.21484,12.169933 310.55859,12.521484 C 310.91015,12.873058 311.34375,13.048839 311.85938,13.048828 C 312.36718,13.048839 312.79687,12.873058 313.14844,12.521484 C 313.50781,12.162121 313.68749,11.728528 313.6875,11.220703 C 313.68749,10.720716 313.50781,10.294935 313.14844,9.9433594 C 312.79687,9.5839984 312.36718,9.4043111 311.85938,9.4042969 C 311.34375,9.4043111 310.91015,9.5800922 310.55859,9.9316406 C 310.21484,10.275404 310.04297,10.705091 310.04297,11.220703 M 307.5,11.220703 C 307.5,10.001967 307.92187,8.9707178 308.76563,8.1269531 C 309.60937,7.275407 310.64062,6.8496262 311.85938,6.8496094 C 313.06249,6.8496262 314.08593,7.2793132 314.92969,8.1386719 C 315.78124,8.990249 316.20702,10.017592 316.20703,11.220703 C 316.20702,12.423839 315.78124,13.451182 314.92969,14.302734 C 314.08593,15.146493 313.06249,15.568367 311.85938,15.568359 C 310.63281,15.568367 309.59765,15.150399 308.75391,14.314453 C 307.91797,13.478526 307.5,12.447277 307.5,11.220703 M 310.85156,49.119141 L 314.13281,49.119141 C 314.1875,49.853519 314.43359,50.423831 314.87109,50.830078 C 315.30859,51.228518 315.89453,51.427737 316.62891,51.427734 C 317.53515,51.427737 318.22655,51.162112 318.70313,50.630859 C 319.18749,50.099613 319.42968,49.337895 319.42969,48.345703 C 319.42968,47.416022 319.18358,46.685554 318.69141,46.154297 C 318.19921,45.615242 317.51952,45.345711 316.65234,45.345703 C 316.16796,45.345711 315.74218,45.443368 315.375,45.638672 C 315.00781,45.833992 314.69531,46.123054 314.4375,46.505859 L 311.41406,46.330078 L 312.50391,37.330078 L 322.14844,37.330078 L 322.14844,40.166016 L 314.87109,40.166016 L 314.4375,43.529297 C 314.80468,43.240245 315.22656,43.025401 315.70313,42.884766 C 316.17968,42.736339 316.71093,42.66212 317.29688,42.662109 C 318.96874,42.66212 320.3164,43.169932 321.33984,44.185547 C 322.37108,45.20118 322.88671,46.53321 322.88672,48.181641 C 322.88671,49.986332 322.3203,51.427737 321.1875,52.505859 C 320.05468,53.576172 318.53515,54.111328 316.62891,54.111328 C 314.89453,54.111328 313.51172,53.669922 312.48047,52.787109 C 311.45703,51.896486 310.91406,50.673831 310.85156,49.119141"
+ id="text5151" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 372.15234,48.298828 C 372.15234,49.25977 372.39062,50.021488 372.86719,50.583984 C 373.35156,51.146487 374.00781,51.427737 374.83594,51.427734 C 375.60937,51.427737 376.21484,51.154299 376.65234,50.607422 C 377.08983,50.06055 377.30858,49.298832 377.30859,48.322266 C 377.30858,47.423834 377.08202,46.724616 376.62891,46.224609 C 376.17577,45.724617 375.53905,45.474618 374.71875,45.474609 C 373.91406,45.474618 373.28515,45.724617 372.83203,46.224609 C 372.3789,46.724616 372.15234,47.416022 372.15234,48.298828 M 372.10547,43.916016 C 372.48828,43.525401 372.94921,43.232432 373.48828,43.037109 C 374.02734,42.833995 374.6289,42.732433 375.29297,42.732422 C 376.93358,42.732433 378.24608,43.232432 379.23047,44.232422 C 380.22264,45.23243 380.71874,46.56446 380.71875,48.228516 C 380.71874,49.994144 380.17968,51.419924 379.10156,52.505859 C 378.02343,53.591797 376.60155,54.134765 374.83594,54.134766 C 372.79687,54.134765 371.24609,53.431641 370.18359,52.025391 C 369.1289,50.619144 368.60156,48.560552 368.60156,45.849609 C 368.60156,42.935558 369.16797,40.708997 370.30078,39.169922 C 371.43359,37.623063 373.0664,36.849626 375.19922,36.849609 C 376.68358,36.849626 377.8789,37.236345 378.78516,38.009766 C 379.69921,38.783218 380.19921,39.830092 380.28516,41.150391 L 376.88672,41.150391 C 376.80858,40.611341 376.59765,40.205092 376.25391,39.931641 C 375.91015,39.658217 375.42968,39.521498 374.8125,39.521484 C 373.96874,39.521498 373.32031,39.888686 372.86719,40.623047 C 372.41406,41.349622 372.16015,42.447277 372.10547,43.916016"
+ id="text5157" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 432.85547,16.095703 L 431.96484,16.740234 C 431.60546,16.990241 431.33593,17.291022 431.15625,17.642578 C 430.97656,17.994146 430.88671,18.388677 430.88672,18.826172 C 430.88671,19.490239 431.11328,20.048832 431.56641,20.501953 C 432.01953,20.955081 432.58593,21.181643 433.26563,21.181641 C 433.76562,21.181643 434.24218,21.080081 434.69531,20.876953 C 435.15624,20.666019 435.58202,20.361331 435.97266,19.962891 L 432.85547,16.095703 M 433.79297,12.404297 L 434.20313,12.111328 C 434.57812,11.853527 434.85546,11.564465 435.03516,11.244141 C 435.21483,10.923841 435.30468,10.556654 435.30469,10.142578 C 435.30468,9.7441545 435.17968,9.4277486 434.92969,9.1933594 C 434.68749,8.958999 434.35546,8.8418117 433.93359,8.8417969 C 433.5039,8.8418117 433.16406,8.9629053 432.91406,9.2050781 C 432.66406,9.4394673 432.53906,9.7597795 432.53906,10.166016 C 432.53906,10.384779 432.59765,10.62306 432.71484,10.880859 C 432.83984,11.138684 433.01562,11.412122 433.24219,11.701172 L 433.79297,12.404297 M 431.15625,13.962891 L 430.47656,13.072266 C 430.125,12.603527 429.87109,12.166027 429.71484,11.759766 C 429.5664,11.345715 429.49218,10.912122 429.49219,10.458984 C 429.49218,9.2089988 429.89062,8.2168123 430.6875,7.4824219 C 431.49218,6.7402513 432.58203,6.3691579 433.95703,6.3691406 C 435.27733,6.3691579 436.3203,6.7090013 437.08594,7.3886719 C 437.85155,8.0683749 438.23436,8.9863428 438.23438,10.142578 C 438.23436,11.017591 438.0078,11.802746 437.55469,12.498047 C 437.10936,13.185557 436.40624,13.833994 435.44531,14.443359 L 437.91797,17.490234 C 438.15233,17.107428 438.33593,16.677741 438.46875,16.201172 C 438.60936,15.724617 438.70702,15.193368 438.76172,14.607422 L 441.80859,14.607422 C 441.72264,15.623055 441.5117,16.56446 441.17578,17.431641 C 440.83983,18.298833 440.37889,19.091801 439.79297,19.810547 L 442.93359,23.630859 L 438.94922,23.630859 L 437.77734,22.189453 C 437.08983,22.822266 436.33202,23.302735 435.50391,23.630859 C 434.68359,23.951172 433.82421,24.111328 432.92578,24.111328 C 431.33203,24.111328 430.02734,23.638672 429.01172,22.693359 C 428.0039,21.748049 427.5,20.541019 427.5,19.072266 C 427.5,17.978521 427.78125,17.037116 428.34375,16.248047 C 428.90625,15.458993 429.84375,14.697275 431.15625,13.962891 M 434.66016,53.630859 L 431.15625,53.630859 C 431.28125,51.341799 431.83203,49.07227 432.80859,46.822266 C 433.79296,44.572275 435.19531,42.361339 437.01563,40.189453 L 428.76563,40.189453 L 428.76563,37.330078 L 440.66016,37.330078 L 440.66016,39.849609 C 438.8164,41.880871 437.39843,44.029306 436.40625,46.294922 C 435.42187,48.560552 434.83984,51.005862 434.66016,53.630859"
+ id="text5163" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 493.5,13.212891 L 491.4375,16.119141 L 489.44531,14.724609 L 491.69531,11.900391 L 488.41406,10.986328 L 489.17578,8.6074219 L 492.32813,9.7324219 L 492.32813,6.3691406 L 494.64844,6.3691406 L 494.64844,9.7324219 L 497.80078,8.6308594 L 498.58594,11.009766 L 495.30469,11.900391 L 497.53125,14.701172 L 495.49219,16.166016 L 493.5,13.212891 M 490.875,48.755859 C 490.875,49.576176 491.10156,50.208988 491.55469,50.654297 C 492.01562,51.099612 492.67187,51.322268 493.52344,51.322266 C 494.33593,51.322268 494.97265,51.095706 495.43359,50.642578 C 495.90233,50.189457 496.13671,49.560551 496.13672,48.755859 C 496.13671,47.982428 495.89843,47.361334 495.42188,46.892578 C 494.9453,46.423835 494.31249,46.189461 493.52344,46.189453 C 492.73437,46.189461 492.09374,46.427742 491.60156,46.904297 C 491.11718,47.380866 490.875,47.998053 490.875,48.755859 M 491.14453,41.560547 C 491.14453,42.208996 491.34765,42.708995 491.75391,43.060547 C 492.16015,43.404307 492.74218,43.576182 493.5,43.576172 C 494.2578,43.576182 494.83984,43.400401 495.24609,43.048828 C 495.66015,42.697277 495.86718,42.201183 495.86719,41.560547 C 495.86718,40.93556 495.65624,40.443373 495.23438,40.083984 C 494.81249,39.724623 494.23437,39.544936 493.5,39.544922 C 492.78124,39.544936 492.20703,39.72853 491.77734,40.095703 C 491.35546,40.462904 491.14453,40.951185 491.14453,41.560547 M 489.9375,44.818359 C 489.23437,44.427744 488.72656,43.970713 488.41406,43.447266 C 488.10156,42.923839 487.94531,42.255871 487.94531,41.443359 C 487.94531,40.005873 488.4375,38.876968 489.42188,38.056641 C 490.40625,37.236345 491.76562,36.826189 493.5,36.826172 C 495.24999,36.826189 496.61718,37.236345 497.60156,38.056641 C 498.59374,38.869155 499.08983,39.998061 499.08984,41.443359 C 499.08983,42.216808 498.92186,42.888683 498.58594,43.458984 C 498.24999,44.021494 497.74608,44.474619 497.07422,44.818359 C 497.89452,45.20118 498.51171,45.73243 498.92578,46.412109 C 499.33983,47.083991 499.54686,47.904303 499.54688,48.873047 C 499.54686,50.505862 499.0078,51.787111 497.92969,52.716797 C 496.85936,53.646484 495.3828,54.111328 493.5,54.111328 C 491.59375,54.111328 490.11328,53.650391 489.05859,52.728516 C 488.0039,51.806642 487.47656,50.521487 487.47656,48.873047 C 487.47656,47.912115 487.67187,47.107428 488.0625,46.458984 C 488.46094,45.802742 489.08594,45.255868 489.9375,44.818359"
+ id="text5169" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 557.85938,6.3691406 C 556.78124,8.1347811 555.98046,9.9316543 555.45703,11.759766 C 554.93359,13.587901 554.67187,15.505868 554.67188,17.513672 C 554.67187,19.513676 554.93359,21.427737 555.45703,23.255859 C 555.98046,25.083983 556.78124,26.880856 557.85938,28.646484 L 555.38672,28.646484 C 554.01953,26.779294 552.98046,24.904296 552.26953,23.021484 C 551.5664,21.130862 551.21484,19.294926 551.21484,17.513672 C 551.21484,15.73243 551.5664,13.896494 552.26953,12.005859 C 552.98046,10.115248 554.01953,8.2363435 555.38672,6.3691406 L 557.85938,6.3691406 M 556.06641,42.685547 C 556.0664,41.724621 555.82421,40.96681 555.33984,40.412109 C 554.86327,39.849623 554.21093,39.568373 553.38281,39.568359 C 552.60156,39.568373 551.99218,39.837904 551.55469,40.376953 C 551.125,40.916028 550.91015,41.669934 550.91016,42.638672 C 550.91015,43.544932 551.13671,44.251963 551.58984,44.759766 C 552.04296,45.267586 552.67968,45.521492 553.5,45.521484 C 554.30468,45.521492 554.93359,45.271493 555.38672,44.771484 C 555.83983,44.271494 556.0664,43.576182 556.06641,42.685547 M 556.125,47.056641 C 555.73437,47.447272 555.27343,47.74024 554.74219,47.935547 C 554.21093,48.130865 553.61327,48.228521 552.94922,48.228516 C 551.30078,48.228521 549.98047,47.732428 548.98828,46.740234 C 547.99609,45.748055 547.5,44.419931 547.5,42.755859 C 547.5,40.990247 548.03906,39.564467 549.11719,38.478516 C 550.19531,37.392594 551.61718,36.849626 553.38281,36.849609 C 555.42968,36.849626 556.98436,37.556657 558.04688,38.970703 C 559.11718,40.376966 559.65233,42.431652 559.65234,45.134766 C 559.65233,48.041021 559.08202,50.267581 557.94141,51.814453 C 556.80077,53.361328 555.16015,54.134765 553.01953,54.134766 C 551.54296,54.134765 550.35156,53.751953 549.44531,52.986328 C 548.53906,52.212892 548.04297,51.162112 547.95703,49.833984 L 551.34375,49.845703 C 551.42187,50.384769 551.63281,50.787112 551.97656,51.052734 C 552.32031,51.318362 552.80468,51.451174 553.42969,51.451172 C 554.27343,51.451174 554.91796,51.083987 555.36328,50.349609 C 555.80858,49.615238 556.06249,48.517583 556.125,47.056641"
+ id="text5175" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 609.375,6.3691406 L 611.87109,6.3691406 C 613.23046,8.228531 614.26171,10.103529 614.96484,11.994141 C 615.66796,13.876963 616.01952,15.716805 616.01953,17.513672 C 616.01952,19.302739 615.66796,21.142581 614.96484,23.033203 C 614.26171,24.923827 613.23046,26.794919 611.87109,28.646484 L 609.375,28.646484 C 610.46094,26.873044 611.26562,25.072264 611.78906,23.244141 C 612.32031,21.408205 612.58593,19.498051 612.58594,17.513672 C 612.58593,15.521492 612.32031,13.611338 611.78906,11.783203 C 611.26562,9.9550918 610.46094,8.1504061 609.375,6.3691406 M 610.98047,45.474609 C 610.98046,47.513678 611.18359,48.994145 611.58984,49.916016 C 612.0039,50.837893 612.66015,51.29883 613.55859,51.298828 C 614.45702,51.29883 615.11327,50.833987 615.52734,49.904297 C 615.9414,48.974614 616.14843,47.498053 616.14844,45.474609 C 616.14843,43.44337 615.9414,41.966809 615.52734,41.044922 C 615.11327,40.12306 614.45702,39.662123 613.55859,39.662109 C 612.66015,39.662123 612.0039,40.12306 611.58984,41.044922 C 611.18359,41.958996 610.98046,43.435557 610.98047,45.474609 M 607.5,45.474609 C 607.5,42.591808 608,40.43556 609,39.005859 C 610.00781,37.568375 611.52734,36.849626 613.55859,36.849609 C 615.58202,36.849626 617.09765,37.572282 618.10547,39.017578 C 619.12108,40.455091 619.62889,42.615245 619.62891,45.498047 C 619.62889,48.380865 619.12499,50.533206 618.11719,51.955078 C 617.11718,53.376953 615.59765,54.08789 613.55859,54.087891 C 611.52734,54.08789 610.00781,53.373047 609,51.943359 C 608,50.513675 607.5,48.357427 607.5,45.474609"
+ id="text5181" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 667.5,26.900391 L 679.5,26.900391 L 679.5,29.291016 L 667.5,29.291016 L 667.5,26.900391 M 670.20703,48.849609 L 670.20703,45.638672 L 676.79297,45.638672 L 676.79297,48.849609 L 670.20703,48.849609"
+ id="text5187" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 733.33594,9.3222656 L 735.70313,9.3222656 L 735.70313,15.298828 L 741.53906,15.298828 L 741.53906,17.630859 L 735.70313,17.630859 L 735.70313,23.630859 L 733.33594,23.630859 L 733.33594,17.630859 L 727.5,17.630859 L 727.5,15.298828 L 733.33594,15.298828 L 733.33594,9.3222656 M 727.5,47.818359 L 741.53906,47.818359 L 741.53906,50.150391 L 727.5,50.150391 L 727.5,47.818359 M 727.5,42.779297 L 741.53906,42.779297 L 741.53906,45.111328 L 727.5,45.111328 L 727.5,42.779297"
+ id="text5201" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 11.070313,95.601563 L 11.070313,86.148438 L 7.65625,86.148438 L 7.65625,84.09375 L 16.828125,84.09375 L 16.828125,86.148438 L 13.4375,86.148438 L 13.4375,95.601563 L 11.070313,95.601563 M 22.859375,94.546875 C 22.572911,94.989584 22.197911,95.328125 21.734375,95.5625 C 21.270829,95.791666 20.731767,95.90625 20.117188,95.90625 C 19.294269,95.90625 18.658853,95.671875 18.210938,95.203125 C 17.768228,94.734376 17.546874,94.06771 17.546875,93.203125 C 17.546874,92.401045 17.768228,91.789066 18.210938,91.367188 C 18.658853,90.945317 19.395831,90.656255 20.421875,90.5 C 20.656246,90.463547 20.963538,90.42188 21.34375,90.375 C 22.307286,90.250005 22.789057,89.97136 22.789063,89.539063 C 22.789057,89.195319 22.682286,88.950527 22.46875,88.804688 C 22.255203,88.653653 21.898433,88.578132 21.398438,88.578125 C 20.9401,88.578132 20.588538,88.669278 20.34375,88.851563 C 20.098955,89.033861 19.97656,89.294277 19.976563,89.632813 L 19.976563,89.757813 L 17.851563,89.757813 L 17.851563,89.601563 C 17.851562,88.731778 18.158853,88.049487 18.773438,87.554688 C 19.388018,87.054696 20.236976,86.804696 21.320313,86.804688 C 22.507807,86.804696 23.41666,87.010425 24.046875,87.421875 C 24.682284,87.833341 24.999992,88.427091 25,89.203125 L 25,94.03125 C 24.999992,94.385418 25.03645,94.651043 25.109375,94.828125 C 25.182283,95.000001 25.304679,95.130209 25.476563,95.21875 L 25.476563,95.601563 L 23.109375,95.601563 C 23.031244,95.455729 22.971348,95.294271 22.929688,95.117188 C 22.888015,94.940105 22.864577,94.750001 22.859375,94.546875 M 22.820313,91.421875 C 22.450515,91.593754 22.023432,91.731775 21.539063,91.835938 C 21.059892,91.940108 20.812496,91.994795 20.796875,92 C 20.39583,92.114587 20.11458,92.257816 19.953125,92.429688 C 19.796872,92.601566 19.718747,92.838544 19.71875,93.140625 C 19.718747,93.453127 19.82031,93.703127 20.023438,93.890625 C 20.226559,94.072918 20.499997,94.164064 20.84375,94.164063 C 21.458329,94.164064 21.940099,93.992189 22.289063,93.648438 C 22.643224,93.299481 22.820307,92.825524 22.820313,92.226563 L 22.820313,91.421875 M 27.039063,84.09375 L 29.25,84.09375 L 29.25,88.164063 C 29.531246,87.721362 29.882809,87.388029 30.304688,87.164063 C 30.731766,86.934905 31.216141,86.820321 31.757813,86.820313 C 32.783847,86.820321 33.622388,87.2448 34.273438,88.09375 C 34.92447,88.937507 35.249991,90.036464 35.25,91.390625 C 35.249991,92.734378 34.92447,93.820314 34.273438,94.648438 C 33.622388,95.476563 32.773431,95.890625 31.726563,95.890625 C 31.179682,95.890625 30.70312,95.776041 30.296875,95.546875 C 29.895829,95.317709 29.531246,94.953126 29.203125,94.453125 L 29.203125,95.601563 L 27.039063,95.601563 L 27.039063,84.09375 M 32.992188,91.296875 C 32.992181,90.51563 32.828118,89.903652 32.5,89.460938 C 32.171869,89.013027 31.721348,88.789069 31.148438,88.789063 C 30.544266,88.789069 30.075517,89.007819 29.742188,89.445313 C 29.414059,89.87761 29.249997,90.494797 29.25,91.296875 C 29.249997,92.161462 29.406247,92.817711 29.71875,93.265625 C 30.036454,93.713544 30.497391,93.937502 31.101563,93.9375 C 31.71614,93.937502 32.18489,93.713544 32.507813,93.265625 C 32.830722,92.812503 32.992181,92.156253 32.992188,91.296875"
+ id="text5427" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 789.76563,44.369141 L 792.57031,44.369141 C 793.23176,44.369143 793.71353,44.249351 794.01563,44.009766 C 794.3177,43.770185 794.46874,43.392581 794.46875,42.876953 C 794.46874,42.340499 794.3203,41.955083 794.02344,41.720703 C 793.72656,41.481125 793.23697,41.361333 792.55469,41.361328 L 789.76563,41.361328 L 789.76563,44.369141 M 789.76563,39.392578 L 792.46875,39.392578 C 793.05208,39.392585 793.47916,39.293627 793.75,39.095703 C 794.02083,38.892586 794.15624,38.574878 794.15625,38.142578 C 794.15624,37.720712 794.02343,37.416025 793.75781,37.228516 C 793.49739,37.035817 793.06249,36.939463 792.45313,36.939453 L 789.76563,36.939453 L 789.76563,39.392578 M 787.5,46.447266 L 787.5,34.939453 L 792.92188,34.939453 C 794.09895,34.939465 794.99478,35.189464 795.60938,35.689453 C 796.22916,36.184255 796.53905,36.905609 796.53906,37.853516 C 796.53905,38.436857 796.42447,38.923836 796.19531,39.314453 C 795.96614,39.705085 795.62239,40.007168 795.16406,40.220703 C 795.7578,40.460292 796.20051,40.806646 796.49219,41.259766 C 796.78905,41.707687 796.93749,42.267582 796.9375,42.939453 C 796.93749,44.059247 796.57291,44.92383 795.84375,45.533203 C 795.11457,46.142578 794.08072,46.447266 792.74219,46.447266 L 787.5,46.447266 M 803.45313,45.392578 C 803.16666,45.835287 802.79166,46.173828 802.32813,46.408203 C 801.86458,46.63737 801.32552,46.751953 800.71094,46.751953 C 799.88802,46.751953 799.2526,46.517578 798.80469,46.048828 C 798.36198,45.580079 798.14062,44.913413 798.14063,44.048828 C 798.14062,43.246748 798.36198,42.634769 798.80469,42.212891 C 799.2526,41.79102 799.98958,41.501958 801.01563,41.345703 C 801.25,41.30925 801.55729,41.267583 801.9375,41.220703 C 802.90104,41.095708 803.38281,40.817063 803.38281,40.384766 C 803.38281,40.041022 803.27604,39.796231 803.0625,39.650391 C 802.84895,39.499356 802.49218,39.423835 801.99219,39.423828 C 801.53385,39.423835 801.18229,39.514981 800.9375,39.697266 C 800.69271,39.879564 800.57031,40.13998 800.57031,40.478516 L 800.57031,40.603516 L 798.44531,40.603516 L 798.44531,40.447266 C 798.44531,39.577481 798.7526,38.89519 799.36719,38.400391 C 799.98177,37.900399 800.83073,37.650399 801.91406,37.650391 C 803.10156,37.650399 804.01041,37.856128 804.64063,38.267578 C 805.27603,38.679044 805.59374,39.272794 805.59375,40.048828 L 805.59375,44.876953 C 805.59374,45.231121 805.6302,45.496746 805.70313,45.673828 C 805.77603,45.845704 805.89843,45.975912 806.07031,46.064453 L 806.07031,46.447266 L 803.70313,46.447266 C 803.62499,46.301432 803.5651,46.139974 803.52344,45.962891 C 803.48176,45.785808 803.45833,45.595704 803.45313,45.392578 M 803.41406,42.267578 C 803.04427,42.439457 802.61718,42.577478 802.13281,42.681641 C 801.65364,42.785811 801.40625,42.840498 801.39063,42.845703 C 800.98958,42.96029 800.70833,43.103519 800.54688,43.275391 C 800.39062,43.447269 800.3125,43.684248 800.3125,43.986328 C 800.3125,44.29883 800.41406,44.54883 800.61719,44.736328 C 800.82031,44.918621 801.09375,45.009767 801.4375,45.009766 C 802.05208,45.009767 802.53385,44.837892 802.88281,44.494141 C 803.23697,44.145185 803.41406,43.671227 803.41406,43.072266 L 803.41406,42.267578 M 812.71875,43.244141 L 814.96094,43.244141 C 814.86718,44.322268 814.47395,45.173829 813.78125,45.798828 C 813.08854,46.423828 812.19791,46.736328 811.10938,46.736328 C 809.875,46.736328 808.90625,46.335287 808.20313,45.533203 C 807.50521,44.725913 807.15625,43.611331 807.15625,42.189453 C 807.15625,40.772792 807.51302,39.663418 808.22656,38.861328 C 808.94531,38.054045 809.93229,37.650399 811.1875,37.650391 C 812.28645,37.650399 813.16666,37.942066 813.82813,38.525391 C 814.49478,39.108731 814.86718,39.92123 814.94531,40.962891 L 812.6875,40.962891 C 812.62499,40.509772 812.46614,40.163418 812.21094,39.923828 C 811.95572,39.684252 811.61979,39.56446 811.20313,39.564453 C 810.64062,39.56446 810.21875,39.785814 809.9375,40.228516 C 809.66146,40.67123 809.52343,41.335292 809.52344,42.220703 C 809.52343,43.038415 809.66666,43.668623 809.95313,44.111328 C 810.24479,44.54883 810.66145,44.76758 811.20313,44.767578 C 811.62499,44.76758 811.96354,44.639976 812.21875,44.384766 C 812.47395,44.12956 812.64062,43.749352 812.71875,43.244141 M 816.44531,46.447266 L 816.44531,34.939453 L 818.65625,34.939453 L 818.65625,40.978516 L 821.35938,37.955078 L 824.09375,37.955078 L 821.13281,41.103516 L 824.27344,46.447266 L 821.54688,46.447266 L 819.51563,42.830078 L 818.65625,43.759766 L 818.65625,46.447266 L 816.44531,46.447266 M 824.79688,43.681641 L 827.0625,43.681641 C 827.08333,44.113935 827.23958,44.436851 827.53125,44.650391 C 827.82291,44.858726 828.26041,44.962892 828.84375,44.962891 C 829.28645,44.962892 829.6276,44.889976 829.86719,44.744141 C 830.11197,44.593101 830.23437,44.382164 830.23438,44.111328 C 830.23437,43.725914 829.78124,43.436852 828.875,43.244141 C 828.5052,43.166019 828.21093,43.098311 827.99219,43.041016 C 826.88802,42.759769 826.11979,42.426436 825.6875,42.041016 C 825.26042,41.655604 825.04687,41.134771 825.04688,40.478516 C 825.04687,39.608731 825.35937,38.921231 825.98438,38.416016 C 826.61458,37.905608 827.46614,37.650399 828.53906,37.650391 C 829.67447,37.650399 830.5651,37.903003 831.21094,38.408203 C 831.86197,38.913419 832.20833,39.624356 832.25,40.541016 L 830.03906,40.541016 C 830.02343,40.181647 829.88541,39.903001 829.625,39.705078 C 829.36979,39.507168 829.01302,39.40821 828.55469,39.408203 C 828.12239,39.40821 827.79948,39.473314 827.58594,39.603516 C 827.3776,39.733731 827.27343,39.929043 827.27344,40.189453 C 827.27343,40.528001 827.83854,40.82748 828.96875,41.087891 C 829.22916,41.145188 829.43489,41.192063 829.58594,41.228516 C 830.71614,41.494146 831.48697,41.814458 831.89844,42.189453 C 832.3151,42.564457 832.52343,43.093102 832.52344,43.775391 C 832.52343,44.738934 832.18228,45.473308 831.5,45.978516 C 830.82291,46.483724 829.83593,46.736328 828.53906,46.736328 C 827.36718,46.736328 826.45052,46.473307 825.78906,45.947266 C 825.1276,45.421225 824.79687,44.697267 824.79688,43.775391 L 824.79688,43.681641 M 840.02344,42.251953 C 840.02343,41.397792 839.86197,40.74675 839.53906,40.298828 C 839.21614,39.84571 838.74739,39.619147 838.13281,39.619141 C 837.52864,39.619147 837.0677,39.843106 836.75,40.291016 C 836.4375,40.738938 836.28125,41.392583 836.28125,42.251953 C 836.28125,43.05404 836.44531,43.673831 836.77344,44.111328 C 837.10677,44.54883 837.57552,44.76758 838.17969,44.767578 C 838.7526,44.76758 839.20312,44.543622 839.53125,44.095703 C 839.85937,43.647789 840.02343,43.033207 840.02344,42.251953 M 834.07031,49.853516 L 834.07031,37.955078 L 836.23438,37.955078 L 836.23438,39.103516 C 836.5625,38.603523 836.92708,38.23894 837.32813,38.009766 C 837.73437,37.780608 838.21093,37.666024 838.75781,37.666016 C 839.80468,37.666024 840.65364,38.080086 841.30469,38.908203 C 841.95572,39.731127 842.28124,40.814459 842.28125,42.158203 C 842.28124,43.517581 841.95572,44.621747 841.30469,45.470703 C 840.65364,46.314453 839.8151,46.736328 838.78906,46.736328 C 838.24739,46.736328 837.76302,46.621745 837.33594,46.392578 C 836.91406,46.163412 836.5625,45.830079 836.28125,45.392578 L 836.28125,49.853516 L 834.07031,49.853516 M 848.70313,45.392578 C 848.41666,45.835287 848.04166,46.173828 847.57813,46.408203 C 847.11458,46.63737 846.57552,46.751953 845.96094,46.751953 C 845.13802,46.751953 844.5026,46.517578 844.05469,46.048828 C 843.61198,45.580079 843.39062,44.913413 843.39063,44.048828 C 843.39062,43.246748 843.61198,42.634769 844.05469,42.212891 C 844.5026,41.79102 845.23958,41.501958 846.26563,41.345703 C 846.5,41.30925 846.80729,41.267583 847.1875,41.220703 C 848.15104,41.095708 848.63281,40.817063 848.63281,40.384766 C 848.63281,40.041022 848.52604,39.796231 848.3125,39.650391 C 848.09895,39.499356 847.74218,39.423835 847.24219,39.423828 C 846.78385,39.423835 846.43229,39.514981 846.1875,39.697266 C 845.94271,39.879564 845.82031,40.13998 845.82031,40.478516 L 845.82031,40.603516 L 843.69531,40.603516 L 843.69531,40.447266 C 843.69531,39.577481 844.0026,38.89519 844.61719,38.400391 C 845.23177,37.900399 846.08073,37.650399 847.16406,37.650391 C 848.35156,37.650399 849.26041,37.856128 849.89063,38.267578 C 850.52603,38.679044 850.84374,39.272794 850.84375,40.048828 L 850.84375,44.876953 C 850.84374,45.231121 850.8802,45.496746 850.95313,45.673828 C 851.02603,45.845704 851.14843,45.975912 851.32031,46.064453 L 851.32031,46.447266 L 848.95313,46.447266 C 848.87499,46.301432 848.8151,46.139974 848.77344,45.962891 C 848.73176,45.785808 848.70833,45.595704 848.70313,45.392578 M 848.66406,42.267578 C 848.29427,42.439457 847.86718,42.577478 847.38281,42.681641 C 846.90364,42.785811 846.65625,42.840498 846.64063,42.845703 C 846.23958,42.96029 845.95833,43.103519 845.79688,43.275391 C 845.64062,43.447269 845.5625,43.684248 845.5625,43.986328 C 845.5625,44.29883 845.66406,44.54883 845.86719,44.736328 C 846.07031,44.918621 846.34375,45.009767 846.6875,45.009766 C 847.30208,45.009767 847.78385,44.837892 848.13281,44.494141 C 848.48697,44.145185 848.66406,43.671227 848.66406,43.072266 L 848.66406,42.267578 M 857.96875,43.244141 L 860.21094,43.244141 C 860.11718,44.322268 859.72395,45.173829 859.03125,45.798828 C 858.33854,46.423828 857.44791,46.736328 856.35938,46.736328 C 855.125,46.736328 854.15625,46.335287 853.45313,45.533203 C 852.75521,44.725913 852.40625,43.611331 852.40625,42.189453 C 852.40625,40.772792 852.76302,39.663418 853.47656,38.861328 C 854.19531,38.054045 855.18229,37.650399 856.4375,37.650391 C 857.53645,37.650399 858.41666,37.942066 859.07813,38.525391 C 859.74478,39.108731 860.11718,39.92123 860.19531,40.962891 L 857.9375,40.962891 C 857.87499,40.509772 857.71614,40.163418 857.46094,39.923828 C 857.20572,39.684252 856.86979,39.56446 856.45313,39.564453 C 855.89062,39.56446 855.46875,39.785814 855.1875,40.228516 C 854.91146,40.67123 854.77343,41.335292 854.77344,42.220703 C 854.77343,43.038415 854.91666,43.668623 855.20313,44.111328 C 855.49479,44.54883 855.91145,44.76758 856.45313,44.767578 C 856.87499,44.76758 857.21354,44.639976 857.46875,44.384766 C 857.72395,44.12956 857.89062,43.749352 857.96875,43.244141 M 866.88281,43.869141 L 869.14844,43.869141 C 868.91926,44.764976 868.45572,45.4681 867.75781,45.978516 C 867.0651,46.483724 866.21874,46.736328 865.21875,46.736328 C 863.98958,46.736328 863.01562,46.32487 862.29688,45.501953 C 861.57812,44.67383 861.21875,43.554039 861.21875,42.142578 C 861.21875,40.751959 861.57292,39.655606 862.28125,38.853516 C 862.98958,38.051441 863.95833,37.650399 865.1875,37.650391 C 866.48958,37.650399 867.49478,38.046232 868.20313,38.837891 C 868.91145,39.624356 869.26562,40.74675 869.26563,42.205078 C 869.26562,42.366541 869.26301,42.488936 869.25781,42.572266 C 869.2578,42.650394 869.2526,42.725915 869.24219,42.798828 L 863.57031,42.798828 C 863.60156,43.465498 863.76302,43.968101 864.05469,44.306641 C 864.35156,44.645184 864.77604,44.814455 865.32813,44.814453 C 865.71874,44.814455 866.03906,44.738934 866.28906,44.587891 C 866.53906,44.431643 866.73697,44.19206 866.88281,43.869141 M 863.57031,41.306641 L 866.91406,41.306641 C 866.89322,40.73373 866.73958,40.298834 866.45313,40.001953 C 866.17187,39.699877 865.76562,39.548835 865.23438,39.548828 C 864.73958,39.548835 864.34895,39.699877 864.0625,40.001953 C 863.78125,40.304043 863.61718,40.738938 863.57031,41.306641"
+ id="text5207" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 840,17.646484 L 797.02608,17.646484"
+ id="path5439" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 802.5,25.146484 L 802.5,10.146484 L 787.5,17.646484 L 802.5,25.146484 z "
+ id="path5441" />
+ <g
+ id="g5459"
+ transform="translate(0,7.5)">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 82.50003,75 L 54.020182,75"
+ id="path5453" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 60,82.5 L 60,67.5 L 45,75 L 60,82.5 z "
+ id="path5455" />
+ <path
+ id="path5457"
+ d="M 45,67.5 C 45,82.5 45,82.5 45,82.5"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ id="g5464"
+ transform="matrix(-1,9.581637e-17,-9.581637e-17,-1,127.5,172.5)">
+ <path
+ id="path5466"
+ d="M 82.50003,75 L 54.020182,75"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path5468"
+ d="M 60,82.5 L 60,67.5 L 45,75 L 60,82.5 z "
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 45,67.5 C 45,82.5 45,82.5 45,82.5"
+ id="path5470" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 107.0625,80.560547 L 105.23438,78.779297 L 107.17969,76.763672 L 109.05469,78.591797 C 109.30467,78.123052 109.49608,77.587897 109.62891,76.986328 C 109.7617,76.384773 109.82811,75.728524 109.82813,75.017578 C 109.82811,73.119151 109.40233,71.646496 108.55078,70.599609 C 107.69921,69.544936 106.5078,69.017593 104.97656,69.017578 C 103.46093,69.017593 102.28124,69.54103 101.4375,70.587891 C 100.59374,71.634778 100.17187,73.111339 100.17188,75.017578 C 100.17187,76.916022 100.59374,78.392583 101.4375,79.447266 C 102.28124,80.494144 103.46093,81.017581 104.97656,81.017578 C 105.36718,81.017581 105.73436,80.978518 106.07813,80.900391 C 106.42968,80.822268 106.7578,80.708987 107.0625,80.560547 M 109.55859,82.916016 C 108.97264,83.306641 108.28905,83.603516 107.50781,83.806641 C 106.73436,84.009765 105.89061,84.111328 104.97656,84.111328 C 102.39843,84.111328 100.34765,83.291016 98.824219,81.650391 C 97.308592,80.009769 96.55078,77.798834 96.550781,75.017578 C 96.55078,72.228527 97.308592,70.017592 98.824219,68.384766 C 100.34765,66.744158 102.39843,65.923846 104.97656,65.923828 C 107.55468,65.923846 109.60545,66.744158 111.12891,68.384766 C 112.66014,70.025404 113.42576,72.23634 113.42578,75.017578 C 113.42576,76.236336 113.26951,77.353522 112.95703,78.369141 C 112.64451,79.376957 112.18358,80.259769 111.57422,81.017578 L 113.44922,82.810547 L 111.52734,84.826172 L 109.55859,82.916016"
+ id="text5474" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 158.94141,83.630859 L 153.99609,66.369141 L 157.67578,66.369141 L 160.62891,78.544922 L 163.125,66.369141 L 166.91016,66.369141 L 169.40625,78.544922 L 172.35938,66.369141 L 176.00391,66.369141 L 171.07031,83.630859 L 167.68359,83.630859 L 165.01172,70.412109 L 162.32813,83.630859 L 158.94141,83.630859"
+ id="text5482" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 218.52539,83.630859 L 218.52539,66.369141 L 231.05273,66.369141 L 231.05273,69.369141 L 222.0293,69.369141 L 222.0293,73.048828 L 230.2793,73.048828 L 230.2793,76.001953 L 222.0293,76.001953 L 222.0293,80.443359 L 231.47461,80.443359 L 231.47461,83.630859 L 218.52539,83.630859"
+ id="text5492" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 281.4375,73.916016 L 285.60938,73.916016 C 286.51561,73.916025 287.17968,73.732432 287.60156,73.365234 C 288.03124,72.998058 288.24608,72.419933 288.24609,71.630859 C 288.24608,70.880872 288.03905,70.314466 287.625,69.931641 C 287.21093,69.54103 286.59374,69.345717 285.77344,69.345703 L 281.4375,69.345703 L 281.4375,73.916016 M 277.88672,83.630859 L 277.88672,66.369141 L 286.25391,66.369141 C 288.13671,66.369158 289.53124,66.771501 290.4375,67.576172 C 291.34373,68.380875 291.79686,69.611342 291.79688,71.267578 C 291.79686,72.322277 291.5742,73.201182 291.12891,73.904297 C 290.69139,74.607431 290.05858,75.087899 289.23047,75.345703 C 289.98045,75.611336 290.5117,76.017586 290.82422,76.564453 C 291.14452,77.111335 291.32811,77.962896 291.375,79.119141 L 291.44531,81.158203 C 291.4453,81.173831 291.4453,81.197268 291.44531,81.228516 C 291.46873,82.259767 291.69139,82.884766 292.11328,83.103516 L 292.11328,83.630859 L 288.22266,83.630859 C 288.09764,83.388672 287.99999,83.091797 287.92969,82.740234 C 287.86718,82.380861 287.82811,81.95508 287.8125,81.462891 L 287.76563,79.646484 C 287.72655,78.576177 287.52343,77.853521 287.15625,77.478516 C 286.79686,77.103522 286.14452,76.916022 285.19922,76.916016 L 281.4375,76.916016 L 281.4375,83.630859 L 277.88672,83.630859"
+ id="text5500" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 343.24219,83.630859 L 343.24219,69.451172 L 338.12109,69.451172 L 338.12109,66.369141 L 351.87891,66.369141 L 351.87891,69.451172 L 346.79297,69.451172 L 346.79297,83.630859 L 343.24219,83.630859"
+ id="text5504" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 407.06836,83.630859 L 403.51758,83.630859 L 403.51758,77.197266 L 397.24805,66.369141 L 401.5957,66.369141 L 405.28711,73.810547 L 408.69727,66.369141 L 412.75195,66.369141 L 407.06836,77.197266 L 407.06836,83.630859"
+ id="text5518" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 458.08594,66.105469 L 461.67188,66.105469 L 461.67188,76.933594 C 461.67187,78.269536 461.93749,79.246098 462.46875,79.863281 C 462.99999,80.472659 463.84374,80.777346 465,80.777344 C 466.17187,80.777346 467.02343,80.472659 467.55469,79.863281 C 468.09374,79.25391 468.36327,78.277349 468.36328,76.933594 L 468.36328,66.105469 L 471.91406,66.105469 L 471.91406,77.320313 C 471.91405,79.437504 471.3203,81.062502 470.13281,82.195313 C 468.95311,83.328125 467.24999,83.894531 465.02344,83.894531 C 462.78124,83.894531 461.0625,83.332031 459.86719,82.207031 C 458.67969,81.074221 458.08594,79.445316 458.08594,77.320313 L 458.08594,66.105469"
+ id="text5522" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 523.22461,83.630859 L 523.22461,66.369141 L 526.77539,66.369141 L 526.77539,83.630859 L 523.22461,83.630859"
+ id="text5526" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 580.18359,75 C 580.18359,76.898444 580.60546,78.375005 581.44922,79.429688 C 582.29296,80.476566 583.47265,81.000003 584.98828,81 C 586.51952,81.000003 587.71093,80.476566 588.5625,79.429688 C 589.41405,78.375005 589.83983,76.898444 589.83984,75 C 589.83983,73.101573 589.41405,71.628918 588.5625,70.582031 C 587.71093,69.527358 586.51952,69.000015 584.98828,69 C 583.47265,69.000015 582.29296,69.523452 581.44922,70.570313 C 580.60546,71.617199 580.18359,73.093761 580.18359,75 M 576.5625,75 C 576.5625,72.210949 577.32031,70.000014 578.83594,68.367188 C 580.35937,66.726579 582.41015,65.906268 584.98828,65.90625 C 587.56639,65.906268 589.61717,66.726579 591.14063,68.367188 C 592.67186,70.007826 593.43748,72.218761 593.4375,75 C 593.43748,77.781256 592.67186,79.992191 591.14063,81.632813 C 589.61717,83.273438 587.56639,84.09375 584.98828,84.09375 C 582.41015,84.09375 580.35937,83.273438 578.83594,81.632813 C 577.32031,79.992191 576.5625,77.781256 576.5625,75"
+ id="text5530" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 641.97656,74.361328 L 645.41016,74.361328 C 646.33983,74.361337 647.01561,74.166025 647.4375,73.775391 C 647.85936,73.376963 648.0703,72.740245 648.07031,71.865234 C 648.0703,71.044934 647.86327,70.423841 647.44922,70.001953 C 647.03515,69.580092 646.41796,69.369155 645.59766,69.369141 L 641.97656,69.369141 L 641.97656,74.361328 M 641.95313,77.490234 L 641.95313,83.630859 L 638.40234,83.630859 L 638.40234,66.369141 L 646.07813,66.369141 C 647.89061,66.369158 649.26171,66.841814 650.19141,67.787109 C 651.12889,68.724624 651.59764,70.103529 651.59766,71.923828 C 651.59764,73.705088 651.14061,75.080087 650.22656,76.048828 C 649.31249,77.009772 648.0078,77.490241 646.3125,77.490234 L 641.95313,77.490234"
+ id="text5534" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 709.24805,63.919922 L 709.24805,66.369141 C 709.17772,66.369155 709.08007,66.365249 708.95508,66.357422 C 708.83007,66.349624 708.74413,66.345718 708.69727,66.345703 C 707.90819,66.345718 707.37304,66.498062 707.0918,66.802734 C 706.81835,67.099624 706.68163,67.732435 706.68164,68.701172 L 706.68164,71.513672 C 706.68163,72.66993 706.50585,73.490242 706.1543,73.974609 C 705.80273,74.458991 705.16992,74.806647 704.25586,75.017578 C 705.16992,75.228522 705.80273,75.572271 706.1543,76.048828 C 706.50585,76.525395 706.68163,77.341801 706.68164,78.498047 L 706.68164,81.322266 C 706.68163,82.283202 706.81835,82.912108 707.0918,83.208984 C 707.36523,83.505857 707.90038,83.654294 708.69727,83.654297 C 708.74413,83.654294 708.83007,83.650388 708.95508,83.642578 C 709.08007,83.634763 709.17772,83.630857 709.24805,83.630859 L 709.24805,86.080078 C 709.13866,86.080073 708.98632,86.08398 708.79102,86.091797 C 708.59569,86.099605 708.45116,86.103511 708.35742,86.103516 C 707.57616,86.103511 706.92382,86.056636 706.40039,85.962891 C 705.87695,85.869136 705.43163,85.724605 705.06445,85.529297 C 704.61913,85.263668 704.30273,84.904293 704.11523,84.451172 C 703.93554,84.005857 703.8457,83.228514 703.8457,82.119141 L 703.8457,79.166016 C 703.8457,78.095706 703.64648,77.337895 703.24805,76.892578 C 702.84961,76.439458 702.17773,76.212896 701.23242,76.212891 C 701.18554,76.212896 701.10742,76.216802 700.99805,76.224609 C 700.88867,76.232427 700.80664,76.236333 700.75195,76.236328 L 700.75195,73.787109 C 700.80664,73.787117 700.88867,73.791023 700.99805,73.798828 C 701.10742,73.806648 701.18554,73.810554 701.23242,73.810547 C 702.16992,73.810554 702.83789,73.583992 703.23633,73.130859 C 703.64257,72.677743 703.8457,71.912119 703.8457,70.833984 L 703.8457,67.904297 C 703.8457,66.787124 703.93554,66.001968 704.11523,65.548828 C 704.30273,65.095719 704.61913,64.736345 705.06445,64.470703 C 705.43163,64.275408 705.87695,64.130876 706.40039,64.037109 C 706.92382,63.943377 707.57616,63.896502 708.35742,63.896484 C 708.45116,63.896502 708.59569,63.900408 708.79102,63.908203 C 708.98632,63.916033 709.13866,63.919939 709.24805,63.919922 M 703.0957,93.966797 L 709.01367,93.966797 L 709.01367,96.462891 L 706.25977,96.462891 L 706.25977,113.8418 L 709.01367,113.8418 L 709.01367,116.33789 L 703.0957,116.33789 L 703.0957,93.966797"
+ id="text5546" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 760.75195,63.908203 L 761.54883,63.908203 C 762.4082,63.90822 763.09961,63.955095 763.62305,64.048828 C 764.14648,64.142595 764.58398,64.291033 764.93555,64.494141 C 765.38085,64.744157 765.69335,65.103532 765.87305,65.572266 C 766.06054,66.033218 766.15429,66.806655 766.1543,67.892578 L 766.1543,70.845703 C 766.15429,71.916025 766.35351,72.677743 766.75195,73.130859 C 767.15038,73.57618 767.82226,73.798836 768.76758,73.798828 C 768.81444,73.798836 768.89257,73.794929 769.00195,73.787109 C 769.11132,73.779304 769.19335,73.775398 769.24805,73.775391 L 769.24805,76.224609 L 768.81445,76.224609 C 767.83788,76.224614 767.15038,76.443364 766.75195,76.880859 C 766.35351,77.318363 766.15429,78.076175 766.1543,79.154297 L 766.1543,82.107422 C 766.15429,83.224607 766.06054,84.009763 765.87305,84.462891 C 765.69335,84.916012 765.38085,85.267574 764.93555,85.517578 C 764.56835,85.712886 764.12304,85.857417 763.59961,85.951172 C 763.07617,86.044917 762.42382,86.091792 761.64258,86.091797 C 761.54883,86.091792 761.40429,86.087886 761.20898,86.080078 C 761.01367,86.072261 760.86133,86.068355 760.75195,86.068359 L 760.75195,83.619141 C 760.82226,83.619138 760.91992,83.623044 761.04492,83.630859 C 761.16992,83.638669 761.25586,83.642576 761.30273,83.642578 C 762.09179,83.642576 762.62304,83.490232 762.89648,83.185547 C 763.17773,82.88867 763.31836,82.263671 763.31836,81.310547 L 763.31836,78.509766 C 763.31836,77.337895 763.49414,76.513677 763.8457,76.037109 C 764.19726,75.55274 764.83007,75.20899 765.74414,75.005859 C 764.83007,74.794928 764.19726,74.447272 763.8457,73.962891 C 763.49414,73.478523 763.31836,72.658212 763.31836,71.501953 L 763.31836,68.666016 C 763.31836,67.712904 763.17773,67.087905 762.89648,66.791016 C 762.62304,66.486343 762.09179,66.333999 761.30273,66.333984 C 761.25586,66.333999 761.16992,66.337906 761.04492,66.345703 C 760.91992,66.35353 760.82226,66.357437 760.75195,66.357422 L 760.75195,63.908203 M 767.00977,93.955078 L 767.00977,116.32617 L 761.08008,116.32617 L 761.08008,113.83008 L 763.8457,113.83008 L 763.8457,96.451172 L 761.08008,96.451172 L 761.08008,93.955078 L 767.00977,93.955078"
+ id="text5554" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 823.79883,62.977287 L 826.21289,62.977287 L 826.21289,86.977287 L 823.79883,86.977287 L 823.79883,62.977287 M 827.10352,113.54369 L 821.29102,93.6101 L 822.87305,93.6101 L 828.70898,113.54369 L 827.10352,113.54369"
+ id="text5564" />
+ <g
+ id="g3597">
+ <path
+ id="text5570"
+ d="M 22.996094,139.10156 C 22.907541,140.40886 22.403635,141.44792 21.484375,142.21875 C 20.565095,142.98958 19.365878,143.375 17.886719,143.375 C 16.183589,143.375 14.859372,142.84375 13.914063,141.78125 C 12.968749,140.71875 12.496093,139.22917 12.496094,137.3125 C 12.496093,135.35417 12.977863,133.85418 13.941406,132.8125 C 14.904945,131.77084 16.29036,131.25001 18.097656,131.25 C 19.566398,131.25001 20.726554,131.60808 21.578125,132.32422 C 22.429677,133.04037 22.897124,134.05209 22.980469,135.35938 L 20.644531,135.35938 C 20.545564,134.70834 20.279939,134.21225 19.847656,133.87109 C 19.415357,133.52996 18.832024,133.35938 18.097656,133.35938 C 17.055984,133.35938 16.264318,133.69532 15.722656,134.36719 C 15.180986,135.03907 14.910153,136.02084 14.910156,137.3125 C 14.910153,138.5625 15.179684,139.52865 15.71875,140.21094 C 16.257808,140.89323 17.024734,141.23438 18.019531,141.23438 C 18.738274,141.23438 19.326815,141.05078 19.785156,140.68359 C 20.243481,140.31641 20.540356,139.78907 20.675781,139.10156 L 22.996094,139.10156 z M 29.558594,142 C 29.27213,142.44271 28.89713,142.77995 28.433594,143.01172 C 27.970048,143.24349 27.430986,143.35937 26.816406,143.35938 C 25.993487,143.35937 25.359373,143.125 24.914063,142.65625 C 24.468749,142.1875 24.246093,141.52083 24.246094,140.65625 C 24.246093,139.85417 24.468749,139.24219 24.914063,138.82031 C 25.359373,138.39844 26.09505,138.10938 27.121094,137.95313 C 27.355465,137.91667 27.662756,137.87501 28.042969,137.82813 C 29.006505,137.70313 29.488275,137.42448 29.488281,136.99219 C 29.488275,136.64844 29.381505,136.40235 29.167969,136.25391 C 28.954422,136.10548 28.597651,136.03126 28.097656,136.03125 C 27.639319,136.03126 27.287757,136.1224 27.042969,136.30469 C 26.798174,136.48699 26.675778,136.7474 26.675781,137.08594 L 26.675781,137.21094 L 24.550781,137.21094 L 24.550781,137.05469 C 24.55078,136.1849 24.858072,135.50131 25.472656,135.00391 C 26.087237,134.50652 26.936195,134.25782 28.019531,134.25781 C 29.207026,134.25782 30.117181,134.46355 30.75,134.875 C 31.382805,135.28647 31.699211,135.88022 31.699219,136.65625 L 31.699219,141.48438 C 31.699211,141.83854 31.735669,142.10287 31.808594,142.27734 C 31.881502,142.45182 32.003898,142.58333 32.175781,142.67188 L 32.175781,143.05469 L 29.808594,143.05469 C 29.730463,142.90885 29.670567,142.7474 29.628906,142.57031 C 29.587234,142.39323 29.563796,142.20313 29.558594,142 L 29.558594,142 z M 29.519531,138.875 C 29.149734,139.04688 28.723953,139.1849 28.242188,139.28906 C 27.760413,139.39323 27.511715,139.44792 27.496094,139.45313 C 27.095049,139.56771 26.815101,139.71094 26.65625,139.88281 C 26.497393,140.05469 26.417966,140.29167 26.417969,140.59375 C 26.417966,140.90625 26.519528,141.15495 26.722656,141.33984 C 26.925778,141.52474 27.199215,141.61719 27.542969,141.61719 C 28.157548,141.61719 28.64062,141.44401 28.992188,141.09766 C 29.343744,140.7513 29.519525,140.27865 29.519531,139.67969 L 29.519531,138.875 z M 39.691406,138.85938 C 39.691399,138.00521 39.529941,137.35287 39.207031,136.90234 C 38.884108,136.45183 38.415359,136.22657 37.800781,136.22656 C 37.19661,136.22657 36.736975,136.45053 36.421875,136.89844 C 36.106767,137.34636 35.949216,138.00001 35.949219,138.85938 C 35.949216,139.66146 36.11458,140.28125 36.445313,140.71875 C 36.776038,141.15625 37.243485,141.375 37.847656,141.375 C 38.420567,141.375 38.871088,141.15104 39.199219,140.70313 C 39.527337,140.25521 39.691399,139.64063 39.691406,138.85938 L 39.691406,138.85938 z M 33.738281,146.46094 L 33.738281,134.5625 L 35.902344,134.5625 L 35.902344,135.71094 C 36.230465,135.21095 36.59635,134.84636 37,134.61719 C 37.403641,134.38803 37.878901,134.27345 38.425781,134.27344 C 39.472649,134.27345 40.321607,134.68621 40.972656,135.51172 C 41.623689,136.33725 41.94921,137.42188 41.949219,138.76563 C 41.94921,140.125 41.623689,141.22787 40.972656,142.07422 C 40.321607,142.92057 39.483066,143.34375 38.457031,143.34375 C 37.915359,143.34375 37.432287,143.22917 37.007813,143 C 36.583329,142.77083 36.230465,142.4375 35.949219,142 L 35.949219,146.46094 L 33.738281,146.46094 z M 43.027344,140.28906 L 45.292969,140.28906 C 45.313799,140.72136 45.470049,141.04297 45.761719,141.25391 C 46.053382,141.46485 46.490881,141.57031 47.074219,141.57031 C 47.516922,141.57031 47.85937,141.4961 48.101563,141.34766 C 48.343744,141.19922 48.464838,140.98959 48.464844,140.71875 C 48.464838,140.33334 48.011713,140.04427 47.105469,139.85156 C 46.735673,139.77344 46.441402,139.70573 46.222656,139.64844 C 45.118487,139.36719 44.351561,139.03386 43.921875,138.64844 C 43.492187,138.26303 43.277343,137.74219 43.277344,137.08594 C 43.277343,136.21615 43.591145,135.52735 44.21875,135.01953 C 44.846352,134.51173 45.696611,134.25782 46.769531,134.25781 C 47.904943,134.25782 48.796869,134.51043 49.445313,135.01563 C 50.093742,135.52084 50.438794,136.23178 50.480469,137.14844 L 48.269531,137.14844 C 48.253901,136.78907 48.117182,136.51042 47.859375,136.3125 C 47.601557,136.11459 47.243485,136.01563 46.785156,136.01563 C 46.352861,136.01563 46.031246,136.08074 45.820313,136.21094 C 45.609372,136.34115 45.503903,136.53646 45.503906,136.79688 C 45.503903,137.13542 46.069007,137.4349 47.199219,137.69531 C 47.45963,137.75261 47.665359,137.79948 47.816406,137.83594 C 48.946608,138.10157 49.718743,138.42188 50.132813,138.79688 C 50.546867,139.17188 50.753898,139.70052 50.753906,140.38281 C 50.753898,141.34636 50.414055,142.08073 49.734375,142.58594 C 49.054681,143.09115 48.066401,143.34375 46.769531,143.34375 C 45.597653,143.34375 44.680987,143.08073 44.019531,142.55469 C 43.358072,142.02865 43.027343,141.30469 43.027344,140.38281 L 43.027344,140.28906 z M 57.011719,143.05469 L 57.011719,131.54688 L 59.378906,131.54688 L 59.378906,140.92969 L 64.996094,140.92969 L 64.996094,143.05469 L 57.011719,143.05469 z M 67.972656,138.79688 C 67.972653,139.64063 68.14583,140.29167 68.492188,140.75 C 68.838538,141.20834 69.332027,141.4375 69.972656,141.4375 C 70.602859,141.4375 71.09114,141.20834 71.4375,140.75 C 71.783847,140.29167 71.957024,139.64063 71.957031,138.79688 C 71.957024,137.95834 71.78515,137.3112 71.441406,136.85547 C 71.09765,136.39975 70.608067,136.17188 69.972656,136.17188 C 69.332027,136.17188 68.838538,136.39975 68.492188,136.85547 C 68.14583,137.3112 67.972653,137.95834 67.972656,138.79688 L 67.972656,138.79688 z M 65.667969,138.79688 C 65.667968,137.38542 66.05078,136.27605 66.816406,135.46875 C 67.582029,134.66147 68.634111,134.25782 69.972656,134.25781 C 71.305983,134.25782 72.356764,134.66147 73.125,135.46875 C 73.89322,136.27605 74.277335,137.38542 74.277344,138.79688 C 74.277335,140.21354 73.89322,141.32552 73.125,142.13281 C 72.356764,142.9401 71.305983,143.34375 69.972656,143.34375 C 68.634111,143.34375 67.582029,142.9401 66.816406,142.13281 C 66.05078,141.32552 65.667968,140.21354 65.667969,138.79688 L 65.667969,138.79688 z M 80.949219,139.85156 L 83.191406,139.85156 C 83.097648,140.92969 82.704419,141.78125 82.011719,142.40625 C 81.319004,143.03125 80.42838,143.34375 79.339844,143.34375 C 78.105465,143.34375 77.138019,142.94141 76.4375,142.13672 C 75.736978,141.33203 75.386718,140.21875 75.386719,138.79688 C 75.386718,137.38021 75.744791,136.26954 76.460938,135.46484 C 77.177081,134.66016 78.162757,134.25782 79.417969,134.25781 C 80.516921,134.25782 81.398431,134.54949 82.0625,135.13281 C 82.726555,135.71615 83.097648,136.52865 83.175781,137.57031 L 80.917969,137.57031 C 80.855463,137.11719 80.696609,136.77084 80.441406,136.53125 C 80.186193,136.29167 79.850255,136.17188 79.433594,136.17188 C 78.87109,136.17188 78.450517,136.39324 78.171875,136.83594 C 77.893226,137.27865 77.753903,137.94271 77.753906,138.82813 C 77.753903,139.64584 77.898434,140.27474 78.1875,140.71484 C 78.476559,141.15495 78.891923,141.375 79.433594,141.375 C 79.855464,141.375 80.194005,141.2474 80.449219,140.99219 C 80.704421,140.73698 80.871088,140.35677 80.949219,139.85156 L 80.949219,139.85156 z M 84.675781,143.05469 L 84.675781,131.54688 L 86.886719,131.54688 L 86.886719,137.58594 L 89.589844,134.5625 L 92.324219,134.5625 L 89.363281,137.71094 L 92.503906,143.05469 L 89.777344,143.05469 L 87.746094,139.4375 L 86.886719,140.36719 L 86.886719,143.05469 L 84.675781,143.05469 z "
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT" />
+ <path
+ id="path5584"
+ d="M 23.746094,146.25 L 12.496094,161.25 L 19.996094,161.25 L 19.996094,168.75 L 27.496094,168.75 L 27.496094,161.25 L 34.996094,161.25 L 23.746094,146.25 z M 22.714844,150.46875 L 24.746094,150.46875 L 27.871094,159.09375 L 25.996094,159.09375 L 25.402344,157.3125 L 22.058594,157.3125 L 21.496094,159.09375 L 19.621094,159.09375 L 22.714844,150.46875 z M 23.746094,152.1875 L 22.527344,155.84375 L 24.933594,155.84375 L 23.746094,152.1875 z "
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 119.9707,129.82617 L 117.58008,137.17383 L 122.37305,137.17383 L 119.9707,129.82617 M 117.9082,126.36914 L 122.00977,126.36914 L 128.23242,143.63086 L 124.50586,143.63086 L 123.33398,140.08008 L 116.64258,140.08008 L 115.50586,143.63086 L 111.76758,143.63086 L 117.9082,126.36914"
+ id="text5641" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 172.98047,138.29297 L 176.48438,138.29297 C 176.61718,139.23829 177.0039,139.94141 177.64453,140.40234 C 178.28515,140.85547 179.21093,141.08203 180.42188,141.08203 C 181.45312,141.08203 182.23046,140.89844 182.75391,140.53125 C 183.27733,140.16407 183.53905,139.6211 183.53906,138.90234 C 183.53905,137.85547 182.03515,136.98829 179.02734,136.30078 C 178.98827,136.29298 178.95312,136.28516 178.92188,136.27734 C 178.84374,136.26173 178.72265,136.23438 178.55859,136.19531 C 176.94921,135.84376 175.80078,135.44923 175.11328,135.01172 C 174.5039,134.6211 174.03906,134.09767 173.71875,133.44141 C 173.39844,132.77735 173.23828,131.99611 173.23828,131.09766 C 173.23828,129.41798 173.80859,128.13283 174.94922,127.24219 C 176.08984,126.34377 177.73828,125.89455 179.89453,125.89453 C 181.91015,125.89455 183.48436,126.37111 184.61719,127.32422 C 185.7578,128.27736 186.35936,129.62111 186.42188,131.35547 L 183.01172,131.35547 C 182.94921,130.51954 182.6289,129.88283 182.05078,129.44531 C 181.47265,129.00783 180.64843,128.78908 179.57813,128.78906 C 178.64843,128.78908 177.92968,128.97267 177.42188,129.33984 C 176.92187,129.69923 176.67187,130.21486 176.67188,130.88672 C 176.67187,131.80079 177.65234,132.48439 179.61328,132.9375 C 180.14452,133.06251 180.55859,133.16017 180.85547,133.23047 C 182.11327,133.55079 183.0039,133.80079 183.52734,133.98047 C 184.05858,134.16017 184.51952,134.35938 184.91016,134.57813 C 185.61327,134.96876 186.14061,135.48829 186.49219,136.13672 C 186.84374,136.77735 187.01952,137.54688 187.01953,138.44531 C 187.01952,140.24219 186.41405,141.63672 185.20313,142.62891 C 183.99218,143.61328 182.28515,144.10547 180.08203,144.10547 C 177.91015,144.10547 176.20703,143.60156 174.97266,142.59375 C 173.73828,141.58594 173.07422,140.15235 172.98047,138.29297"
+ id="text5645" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 236.16211,140.51367 L 239.00977,140.51367 C 240.65819,140.51367 241.8496,140.08399 242.58398,139.22461 C 243.32616,138.35743 243.69725,136.95508 243.69727,135.01758 C 243.69725,133.0879 243.3535,131.66993 242.66602,130.76367 C 241.9785,129.85744 240.90429,129.40431 239.44336,129.4043 L 236.16211,129.4043 L 236.16211,140.51367 M 232.68164,143.63086 L 232.68164,126.36914 L 239.44336,126.36914 C 242.09179,126.36916 244.06444,127.084 245.36133,128.51367 C 246.666,129.94337 247.31834,132.11134 247.31836,135.01758 C 247.31834,136.59571 247.07616,137.98633 246.5918,139.18945 C 246.11522,140.39258 245.41991,141.36133 244.50586,142.0957 C 243.81835,142.64258 243.0371,143.03711 242.16211,143.2793 C 241.2871,143.51367 240.06054,143.63086 238.48242,143.63086 L 232.68164,143.63086"
+ id="text5649" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 293.97656,143.63086 L 293.97656,126.36914 L 306.02344,126.36914 L 306.02344,129.36914 L 297.48047,129.36914 L 297.48047,133.2832 L 304.96875,133.2832 L 304.96875,136.2832 L 297.48047,136.2832 L 297.48047,143.63086 L 293.97656,143.63086"
+ id="text5653" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 365.17969,141.57422 C 364.53905,142.44141 363.80858,143.07813 362.98828,143.48438 C 362.17577,143.89062 361.21874,144.09375 360.11719,144.09375 C 357.70312,144.09375 355.74609,143.25781 354.24609,141.58594 C 352.7539,139.90625 352.00781,137.70313 352.00781,134.97656 C 352.00781,132.22657 352.7539,130.02736 354.24609,128.37891 C 355.73828,126.73049 357.72656,125.90627 360.21094,125.90625 C 362.37499,125.90627 364.14061,126.4258 365.50781,127.46484 C 366.87498,128.49611 367.68748,129.91798 367.94531,131.73047 L 364.32422,131.73047 C 364.10546,130.83204 363.65624,130.14845 362.97656,129.67969 C 362.30468,129.21095 361.42577,128.97658 360.33984,128.97656 C 358.89452,128.97658 357.75781,129.50783 356.92969,130.57031 C 356.10937,131.62501 355.69921,133.08595 355.69922,134.95313 C 355.69921,136.82813 356.1289,138.29688 356.98828,139.35938 C 357.84765,140.42188 359.02734,140.95313 360.52734,140.95313 C 361.65233,140.95313 362.59374,140.6211 363.35156,139.95703 C 364.10936,139.29297 364.57811,138.38282 364.75781,137.22656 L 360.84375,137.22656 L 360.84375,134.27344 L 367.99219,134.27344 L 367.99219,143.61328 L 365.61328,143.61328 L 365.17969,141.57422"
+ id="text5657" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 412.86328,143.63086 L 412.86328,126.36914 L 416.4375,126.36914 L 416.4375,132.80273 L 423.5625,132.80273 L 423.5625,126.36914 L 427.13672,126.36914 L 427.13672,143.63086 L 423.5625,143.63086 L 423.5625,135.97852 L 416.4375,135.97852 L 416.4375,143.63086 L 412.86328,143.63086"
+ id="text5661" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 474.48047,136.95703 L 477.91406,136.95703 L 477.91406,139.04297 C 477.91406,139.64453 478.09375,140.10547 478.45313,140.42578 C 478.8125,140.73828 479.32812,140.89453 480,140.89453 C 480.73437,140.89453 481.24609,140.70313 481.53516,140.32031 C 481.82421,139.9375 481.96874,139.21875 481.96875,138.16406 L 481.96875,126.12891 L 485.51953,126.12891 L 485.51953,138.32813 C 485.51952,139.42188 485.45311,140.22657 485.32031,140.74219 C 485.1953,141.25 484.98436,141.69922 484.6875,142.08984 C 484.23436,142.66797 483.61327,143.10938 482.82422,143.41406 C 482.03515,143.71875 481.10937,143.87109 480.04688,143.87109 C 479.07031,143.87109 478.20703,143.73828 477.45703,143.47266 C 476.70703,143.20703 476.08203,142.8125 475.58203,142.28906 C 475.18359,141.86719 474.89844,141.39844 474.72656,140.88281 C 474.5625,140.35938 474.48047,139.5 474.48047,138.30469 L 474.48047,136.95703"
+ id="text5665" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 532.32422,143.63086 L 532.32422,126.36914 L 535.875,126.36914 L 535.875,133.45898 L 542.61328,126.36914 L 547.05469,126.36914 L 540.16406,133.35352 L 547.67578,143.63086 L 543.33984,143.63086 L 537.71484,135.73242 L 535.875,137.56055 L 535.875,143.63086 L 532.32422,143.63086"
+ id="text5669" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 594.01172,143.63086 L 594.01172,126.36914 L 597.5625,126.36914 L 597.5625,140.44336 L 605.98828,140.44336 L 605.98828,143.63086 L 594.01172,143.63086"
+ id="text5673" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 143.15039,203.63086 L 143.15039,200.63086 L 152.53711,189.49805 L 143.33789,189.49805 L 143.33789,186.36914 L 156.84961,186.36914 L 156.84961,189.36914 L 147.43945,200.51367 L 156.63867,200.51367 L 156.63867,203.63086 L 143.15039,203.63086"
+ id="text5679" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 202.37109,203.63086 L 207.79688,194.81836 L 202.37109,186.36914 L 206.47266,186.36914 L 210,192.4043 L 213.50391,186.36914 L 217.62891,186.36914 L 212.20313,194.79492 L 217.62891,203.63086 L 213.52734,203.63086 L 210,197.6543 L 206.47266,203.63086 L 202.37109,203.63086"
+ id="text5683" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 277.875,197.68359 C 277.74217,199.64454 276.98436,201.20313 275.60156,202.35938 C 274.22655,203.51563 272.42968,204.09375 270.21094,204.09375 C 267.65624,204.09375 265.66796,203.29688 264.24609,201.70313 C 262.83203,200.10938 262.125,197.87501 262.125,195 C 262.125,192.06251 262.84765,189.81251 264.29297,188.25 C 265.73828,186.68752 267.8164,185.90627 270.52734,185.90625 C 272.73046,185.90627 274.46874,186.44533 275.74219,187.52344 C 277.02342,188.59377 277.72655,190.10939 277.85156,192.07031 L 274.34766,192.07031 C 274.19921,191.09376 273.80077,190.35158 273.15234,189.84375 C 272.50389,189.32814 271.6289,189.07033 270.52734,189.07031 C 268.96484,189.07033 267.77734,189.57423 266.96484,190.58203 C 266.15234,191.58986 265.74609,193.06251 265.74609,195 C 265.74609,196.87501 266.14843,198.32422 266.95313,199.34766 C 267.76562,200.3711 268.91796,200.88282 270.41016,200.88281 C 271.48827,200.88282 272.37108,200.60938 273.05859,200.0625 C 273.74608,199.50782 274.19139,198.71485 274.39453,197.68359 L 277.875,197.68359"
+ id="text5687" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 328.33594,203.63086 L 322.38281,186.36914 L 326.32031,186.36914 L 329.98828,199.2832 L 333.72656,186.36914 L 337.61719,186.36914 L 331.73438,203.63086 L 328.33594,203.63086"
+ id="text5691" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 386.32031,200.51367 L 390.52734,200.51367 C 391.51952,200.51367 392.24218,200.33399 392.69531,199.97461 C 393.14843,199.61524 393.37499,199.04883 393.375,198.27539 C 393.37499,197.47071 393.15233,196.89258 392.70703,196.54102 C 392.26171,196.18165 391.52733,196.00196 390.50391,196.00195 L 386.32031,196.00195 L 386.32031,200.51367 M 386.32031,193.04883 L 390.375,193.04883 C 391.24999,193.04884 391.89061,192.9004 392.29688,192.60352 C 392.70311,192.29884 392.90624,191.82228 392.90625,191.17383 C 392.90624,190.54103 392.70702,190.084 392.30859,189.80273 C 391.91796,189.51369 391.26561,189.36915 390.35156,189.36914 L 386.32031,189.36914 L 386.32031,193.04883 M 382.92188,203.63086 L 382.92188,186.36914 L 391.05469,186.36914 C 392.8203,186.36916 394.16405,186.74416 395.08594,187.49414 C 396.01561,188.23634 396.48045,189.31837 396.48047,190.74023 C 396.48045,191.61525 396.30858,192.34571 395.96484,192.93164 C 395.62108,193.51759 395.10545,193.97071 394.41797,194.29102 C 395.30858,194.6504 395.97264,195.16993 396.41016,195.84961 C 396.85545,196.52149 397.07811,197.36133 397.07813,198.36914 C 397.07811,200.04883 396.53123,201.34571 395.4375,202.25977 C 394.34374,203.17383 392.79296,203.63086 390.78516,203.63086 L 382.92188,203.63086"
+ id="text5695" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 442.88672,203.63086 L 442.88672,186.36914 L 446.60156,186.36914 L 453.60938,198.22852 L 453.60938,186.36914 L 457.11328,186.36914 L 457.11328,203.63086 L 453.44531,203.63086 L 446.39063,191.77148 L 446.39063,203.63086 L 442.88672,203.63086"
+ id="text5699" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 501.32813,203.63086 L 501.32813,186.36914 L 506.57813,186.36914 L 510.01172,199.50586 L 513.39844,186.36914 L 518.67188,186.36914 L 518.67188,203.63086 L 515.34375,203.63086 L 515.34375,189.70898 L 511.83984,203.63086 L 508.20703,203.63086 L 504.65625,189.70898 L 504.65625,203.63086 L 501.32813,203.63086"
+ id="text5703" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 658.22461,134.6543 L 658.22461,131.10352 L 661.77539,131.10352 L 661.77539,134.6543 L 658.22461,134.6543 M 658.22461,143.63086 L 658.22461,140.10352 L 661.77539,140.10352 L 661.77539,143.63086 L 658.22461,143.63086 M 658.24805,164.6543 L 658.24805,161.10352 L 661.77539,161.10352 L 661.77539,164.6543 L 658.24805,164.6543 M 658.24805,177.68555 L 658.24805,176.31445 C 658.90429,176.12695 659.38867,175.83789 659.70117,175.44727 C 660.01367,175.05664 660.16992,174.54883 660.16992,173.92383 L 660.16992,173.63086 L 658.22461,173.63086 L 658.22461,170.10352 L 661.77539,170.10352 L 661.77539,173.49023 C 661.77539,174.66211 661.47851,175.59961 660.88477,176.30273 C 660.29101,177.01367 659.41211,177.47461 658.24805,177.68555"
+ id="text5725" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 720.78516,126.7793 L 723.03516,126.7793 L 723.03516,133.33008 L 720.78516,133.33008 L 720.78516,126.7793 M 716.96484,126.7793 L 719.21484,126.7793 L 719.21484,133.33008 L 716.96484,133.33008 L 716.96484,126.7793 M 718.88672,156.7793 L 721.13672,156.7793 L 721.13672,163.33008 L 718.88672,163.33008 L 718.88672,156.7793"
+ id="text5731" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 772.5,140.60938 L 772.5,129.10156 L 780.85156,129.10156 L 780.85156,131.10156 L 774.83594,131.10156 L 774.83594,133.55469 L 780.33594,133.55469 L 780.33594,135.52344 L 774.83594,135.52344 L 774.83594,138.48438 L 781.13281,138.48438 L 781.13281,140.60938 L 772.5,140.60938 M 782.74219,140.60938 L 782.74219,132.11719 L 784.96875,132.11719 L 784.96875,133.125 C 785.28645,132.71355 785.66145,132.40626 786.09375,132.20313 C 786.52604,131.9948 787.00781,131.89063 787.53906,131.89063 C 788.47656,131.89063 789.17708,132.13543 789.64063,132.625 C 790.10937,133.10938 790.34374,133.84115 790.34375,134.82031 L 790.34375,140.60938 L 788.07031,140.60938 L 788.07031,135.47656 C 788.07031,134.86719 787.96614,134.4323 787.75781,134.17188 C 787.55468,133.91147 787.22135,133.78126 786.75781,133.78125 C 786.22135,133.78126 785.79687,133.94271 785.48438,134.26563 C 785.17187,134.58334 785.01562,135.01823 785.01563,135.57031 L 785.01563,140.60938 L 782.74219,140.60938 M 796.07813,140.67188 C 795.86979,140.67708 795.61979,140.6849 795.32813,140.69531 C 795.04166,140.71094 794.85937,140.71875 794.78125,140.71875 C 793.91146,140.71875 793.3151,140.55729 792.99219,140.23438 C 792.67448,139.90625 792.51562,139.26302 792.51563,138.30469 L 792.51563,133.71094 L 791.39063,133.71094 L 791.39063,132.11719 L 792.51563,132.11719 L 792.51563,129.79688 L 794.76563,129.79688 L 794.76563,132.11719 L 796.07813,132.11719 L 796.07813,133.71094 L 794.76563,133.71094 L 794.76563,138.41406 C 794.76562,138.63802 794.8151,138.78646 794.91406,138.85938 C 795.01302,138.92709 795.21614,138.96094 795.52344,138.96094 L 796.07813,138.96094 L 796.07813,140.67188 M 802.63281,138.03125 L 804.89844,138.03125 C 804.66926,138.92709 804.20572,139.63021 803.50781,140.14063 C 802.8151,140.64583 801.96874,140.89844 800.96875,140.89844 C 799.73958,140.89844 798.76562,140.48698 798.04688,139.66406 C 797.32812,138.83594 796.96875,137.71615 796.96875,136.30469 C 796.96875,134.91407 797.32292,133.81772 798.03125,133.01563 C 798.73958,132.21355 799.70833,131.81251 800.9375,131.8125 C 802.23958,131.81251 803.24478,132.20834 803.95313,133 C 804.66145,133.78647 805.01562,134.90886 805.01563,136.36719 C 805.01562,136.52865 805.01301,136.65105 805.00781,136.73438 C 805.0078,136.8125 805.0026,136.88802 804.99219,136.96094 L 799.32031,136.96094 C 799.35156,137.62761 799.51302,138.13021 799.80469,138.46875 C 800.10156,138.80729 800.52604,138.97656 801.07813,138.97656 C 801.46874,138.97656 801.78906,138.90104 802.03906,138.75 C 802.28906,138.59375 802.48697,138.35417 802.63281,138.03125 M 799.32031,135.46875 L 802.66406,135.46875 C 802.64322,134.89584 802.48958,134.46094 802.20313,134.16406 C 801.92187,133.86199 801.51562,133.71094 800.98438,133.71094 C 800.48958,133.71094 800.09895,133.86199 799.8125,134.16406 C 799.53125,134.46615 799.36718,134.90105 799.32031,135.46875 M 806.52344,140.60938 L 806.52344,132.11719 L 808.63281,132.11719 L 808.63281,133.57031 C 808.92968,132.98699 809.27604,132.5599 809.67188,132.28906 C 810.0677,132.01303 810.53906,131.87501 811.08594,131.875 C 811.17447,131.87501 811.24218,131.87761 811.28906,131.88281 C 811.34114,131.88282 811.38281,131.88543 811.41406,131.89063 L 811.42188,134.19531 L 810.66406,134.19531 C 810.04427,134.19532 809.57812,134.35678 809.26563,134.67969 C 808.95312,135.00261 808.79687,135.48178 808.79688,136.11719 L 808.79688,140.60938 L 806.52344,140.60938"
+ id="text5737" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 787.5,172.5 L 787.5,157.5 L 772.5,165 L 787.5,172.5 z "
+ id="path5745" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 810,150 L 810,165 L 780,165"
+ id="path5747" />
+ <g
+ id="g3601">
+ <path
+ id="text5753"
+ d="M 12.496094,197.64063 L 14.832032,197.64063 C 14.92057,198.27084 15.178382,198.73828 15.605469,199.04297 C 16.032548,199.34766 16.649735,199.5 17.457032,199.5 C 18.144525,199.5 18.662754,199.37761 19.011719,199.13281 C 19.36067,198.88802 19.535149,198.52604 19.535157,198.04688 C 19.535149,197.34896 18.532546,196.77084 16.527344,196.3125 C 16.501298,196.3073 16.47786,196.30209 16.457032,196.29688 C 16.404944,196.28646 16.324215,196.26823 16.214844,196.24219 C 15.141924,196.00782 14.3763,195.7448 13.917969,195.45313 C 13.511717,195.19271 13.201822,194.84245 12.988282,194.40234 C 12.774739,193.96225 12.667968,193.44272 12.667969,192.84375 C 12.667968,191.72397 13.048176,190.8659 13.808594,190.26953 C 14.569008,189.67319 15.667965,189.37501 17.105469,189.375 C 18.449212,189.37501 19.499993,189.69272 20.257813,190.32813 C 21.015616,190.96355 21.415355,191.85938 21.457032,193.01563 L 19.183594,193.01563 C 19.14192,192.45834 18.928379,192.03386 18.542969,191.74219 C 18.157546,191.45053 17.608067,191.3047 16.894532,191.30469 C 16.274735,191.3047 15.796871,191.42579 15.460938,191.66797 C 15.124997,191.91017 14.957028,192.25522 14.957032,192.70313 C 14.957028,193.31251 15.610674,193.76824 16.917969,194.07031 C 17.27213,194.15365 17.548172,194.21876 17.746094,194.26563 C 18.584629,194.47917 19.17968,194.64584 19.53125,194.76563 C 19.882805,194.88542 20.188794,195.01824 20.449219,195.16406 C 20.91796,195.42448 21.269522,195.76954 21.503907,196.19922 C 21.738272,196.62891 21.855459,197.14323 21.855469,197.74219 C 21.855459,198.94011 21.451814,199.86849 20.644532,200.52734 C 19.837232,201.1862 18.699212,201.51562 17.230469,201.51563 C 15.782548,201.51562 14.647133,201.17969 13.824219,200.50781 C 13.001301,199.83594 12.558593,198.88021 12.496094,197.64063 L 12.496094,197.64063 z M 23.566407,201.19531 L 23.566407,189.6875 L 25.824219,189.6875 L 25.824219,193.64063 C 26.131507,193.25522 26.497392,192.96485 26.921875,192.76953 C 27.34635,192.57423 27.82161,192.47657 28.347657,192.47656 C 28.84765,192.47657 29.299473,192.56251 29.703125,192.73438 C 30.106764,192.90626 30.433586,193.15105 30.683594,193.46875 C 30.855461,193.6823 30.976554,193.92709 31.046875,194.20313 C 31.117179,194.47917 31.152335,194.92188 31.152344,195.53125 L 31.152344,195.6875 L 31.152344,201.19531 L 28.894532,201.19531 L 28.894532,196.75 C 28.894525,195.69792 28.798171,195.03777 28.605469,194.76953 C 28.412755,194.50131 28.066401,194.36719 27.566407,194.36719 C 27.029944,194.36719 26.605465,194.52735 26.292969,194.84766 C 25.980466,195.16797 25.824216,195.60417 25.824219,196.15625 L 25.824219,201.19531 L 23.566407,201.19531 z M 33.191407,191.75781 L 33.191407,189.6875 L 35.464844,189.6875 L 35.464844,191.75781 L 33.191407,191.75781 z M 33.191407,201.19531 L 33.191407,192.70313 L 35.464844,192.70313 L 35.464844,201.19531 L 33.191407,201.19531 z M 37.886719,201.19531 L 37.886719,194.29688 L 36.675782,194.29688 L 36.675782,192.70313 L 37.886719,192.70313 L 37.886719,191.91406 C 37.886718,191.12241 38.091144,190.54038 38.5,190.16797 C 38.908852,189.79558 39.553383,189.60939 40.433594,189.60938 C 40.595048,189.60939 40.765621,189.61329 40.945313,189.62109 C 41.124996,189.62892 41.316402,189.64324 41.519532,189.66406 L 41.519532,191.46875 L 40.925782,191.46875 C 40.587236,191.46876 40.36458,191.51303 40.257813,191.60156 C 40.151038,191.69011 40.097653,191.85938 40.097657,192.10938 L 40.097657,192.70313 L 41.519532,192.70313 L 41.519532,194.29688 L 40.113282,194.29688 L 40.113282,201.19531 L 37.886719,201.19531 z M 46.449219,201.25781 C 46.240881,201.26302 45.992183,201.27214 45.703125,201.28516 C 45.414059,201.29818 45.230465,201.30469 45.152344,201.30469 C 44.28255,201.30469 43.687498,201.14193 43.367188,200.81641 C 43.046874,200.49089 42.886718,199.84896 42.886719,198.89063 L 42.886719,194.29688 L 41.761719,194.29688 L 41.761719,192.70313 L 42.886719,192.70313 L 42.886719,190.38281 L 45.136719,190.38281 L 45.136719,192.70313 L 46.449219,192.70313 L 46.449219,194.29688 L 45.136719,194.29688 L 45.136719,199 C 45.136716,199.22396 45.186195,199.3711 45.285157,199.44141 C 45.384111,199.51172 45.587236,199.54688 45.894532,199.54688 L 46.449219,199.54688 L 46.449219,201.25781 z "
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT" />
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 24.746094,207.125 L 13.496094,222.125 L 20.996094,222.125 L 20.996094,229.625 L 28.496094,229.625 L 28.496094,222.125 L 35.996094,222.125 L 24.746094,207.125 z "
+ id="path5757" />
+ </g>
+ <g
+ id="g5795"
+ transform="translate(727.5,0)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text5797"
+ y="201.19531"
+ x="31.8125"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ xml:space="preserve"><tspan
+ y="201.19531"
+ x="31.8125"
+ id="tspan5799"
+ sodipodi:role="line">Shift</tspan></text>
+ <path
+ id="path5801"
+ d="M 27.25,207.125 L 16,222.125 L 23.5,222.125 L 23.5,229.625 L 31,229.625 L 31,222.125 L 38.5,222.125 L 27.25,207.125 z "
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 576.90234,189.63867 L 576.90234,192.20508 L 566.4375,196.48242 L 576.90234,200.74805 L 576.90234,203.31445 L 563.09766,197.63086 L 563.09766,195.29883 L 576.90234,189.63867 M 568.21875,237.68555 L 568.21875,236.31445 C 568.875,236.12695 569.35937,235.83789 569.67188,235.44727 C 569.98437,235.05664 570.14062,234.54883 570.14063,233.92383 L 570.14063,233.63086 L 568.21875,233.63086 L 568.21875,230.10352 L 571.76953,230.10352 L 571.76953,233.49023 C 571.76953,234.6543 571.46875,235.59179 570.86719,236.30273 C 570.27343,237.01367 569.39062,237.47461 568.21875,237.68555"
+ id="text5803" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 623.09766,189.63867 L 636.90234,195.29883 L 636.90234,197.63086 L 623.09766,203.31445 L 623.09766,200.74805 L 633.58594,196.48242 L 623.09766,192.20508 L 623.09766,189.63867 M 628.21875,233.63086 L 628.21875,230.10352 L 631.74609,230.10352 L 631.74609,233.63086 L 628.21875,233.63086"
+ id="text5813" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 688.44727,198.61523 C 688.44726,198.5293 688.44335,198.41602 688.43555,198.27539 C 688.42773,198.12696 688.42382,198.01758 688.42383,197.94727 C 688.42382,197.25977 688.49804,196.68946 688.64648,196.23633 C 688.79492,195.7754 689.0332,195.34571 689.36133,194.94727 C 689.61132,194.6504 689.98242,194.31056 690.47461,193.92773 C 690.9746,193.54493 691.29882,193.26759 691.44727,193.0957 C 691.75976,192.74415 691.9746,192.42775 692.0918,192.14648 C 692.20898,191.86525 692.26757,191.55665 692.26758,191.2207 C 692.26757,190.47853 692.06054,189.9004 691.64648,189.48633 C 691.23241,189.07228 690.65429,188.86525 689.91211,188.86523 C 689.16992,188.86525 688.58398,189.11525 688.1543,189.61523 C 687.73242,190.10744 687.50195,190.80275 687.46289,191.70117 L 684.1582,191.70117 L 684.1582,191.33789 C 684.1582,189.68947 684.67773,188.37697 685.7168,187.40039 C 686.76367,186.41603 688.16992,185.92385 689.93555,185.92383 C 691.74023,185.92385 693.17382,186.38869 694.23633,187.31836 C 695.30663,188.24025 695.84178,189.47853 695.8418,191.0332 C 695.84178,191.58009 695.77928,192.07228 695.6543,192.50977 C 695.5371,192.93946 695.3535,193.33399 695.10352,193.69336 C 694.78319,194.14649 694.2871,194.63868 693.61523,195.16992 C 692.95116,195.69337 692.54882,196.01759 692.4082,196.14258 C 692.11132,196.43165 691.89648,196.73634 691.76367,197.05664 C 691.63866,197.37696 691.57616,197.75977 691.57617,198.20508 C 691.57616,198.24415 691.58007,198.31055 691.58789,198.4043 C 691.59569,198.49805 691.5996,198.56836 691.59961,198.61523 L 688.44727,198.61523 M 688.2832,203.63086 L 688.2832,200.19727 L 691.74023,200.19727 L 691.74023,203.63086 L 688.2832,203.63086 M 686.31445,235.85742 L 692.12695,215.92383 L 693.73242,215.92383 L 687.89648,235.85742 L 686.31445,235.85742"
+ id="text5819" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 18,271.78906 C 17.911447,273.09636 17.406239,274.13542 16.484375,274.90625 C 15.5677,275.67708 14.369784,276.0625 12.890625,276.0625 C 11.187496,276.0625 9.8619761,275.53125 8.9140625,274.46875 C 7.971353,273.40625 7.4999993,271.91667 7.5,270 C 7.4999993,268.04167 7.9817696,266.54168 8.9453125,265.5 C 9.9088511,264.45834 11.294266,263.93751 13.101563,263.9375 C 14.570305,263.93751 15.729158,264.29689 16.578125,265.01563 C 17.432281,265.72918 17.901031,266.73959 17.984375,268.04688 L 15.648438,268.04688 C 15.54947,267.39584 15.283846,266.90105 14.851563,266.5625 C 14.419263,266.21876 13.83593,266.04688 13.101563,266.04688 C 12.059891,266.04688 11.268225,266.38282 10.726563,267.05469 C 10.184892,267.72657 9.9140594,268.70834 9.9140625,270 C 9.9140594,271.25 10.182288,272.21615 10.71875,272.89844 C 11.260412,273.58073 12.028641,273.92188 13.023438,273.92188 C 13.742181,273.92188 14.330722,273.73959 14.789063,273.375 C 15.247387,273.00521 15.544262,272.47657 15.679688,271.78906 L 18,271.78906 M 23.46875,275.80469 C 23.260412,275.8099 23.010412,275.81771 22.71875,275.82813 C 22.432288,275.84375 22.249996,275.85156 22.171875,275.85156 C 21.302081,275.85156 20.705727,275.6901 20.382813,275.36719 C 20.065103,275.03906 19.906249,274.39583 19.90625,273.4375 L 19.90625,268.84375 L 18.78125,268.84375 L 18.78125,267.25 L 19.90625,267.25 L 19.90625,264.92969 L 22.15625,264.92969 L 22.15625,267.25 L 23.46875,267.25 L 23.46875,268.84375 L 22.15625,268.84375 L 22.15625,273.54688 C 22.156247,273.77084 22.205726,273.91927 22.304688,273.99219 C 22.403642,274.0599 22.606767,274.09375 22.914063,274.09375 L 23.46875,274.09375 L 23.46875,275.80469 M 24.789063,275.74219 L 24.789063,267.25 L 26.898438,267.25 L 26.898438,268.70313 C 27.195309,268.1198 27.541663,267.69272 27.9375,267.42188 C 28.333329,267.14584 28.804682,267.00782 29.351563,267.00781 C 29.440099,267.00782 29.507807,267.01043 29.554688,267.01563 C 29.606765,267.01563 29.648432,267.01824 29.679688,267.02344 L 29.6875,269.32813 L 28.929688,269.32813 C 28.309891,269.32813 27.843746,269.48959 27.53125,269.8125 C 27.218747,270.13542 27.062497,270.61459 27.0625,271.25 L 27.0625,275.74219 L 24.789063,275.74219 M 31.023438,275.74219 L 31.023438,264.23438 L 33.296875,264.23438 L 33.296875,275.74219 L 31.023438,275.74219"
+ id="text5827" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 162.96875,266.49609 L 161.375,271.39453 L 164.57031,271.39453 L 162.96875,266.49609 M 161.59375,264.19141 L 164.32813,264.19141 L 168.47656,275.69922 L 165.99219,275.69922 L 165.21094,273.33203 L 160.75,273.33203 L 159.99219,275.69922 L 157.5,275.69922 L 161.59375,264.19141 M 169.53906,275.69922 L 169.53906,264.19141 L 171.8125,264.19141 L 171.8125,275.69922 L 169.53906,275.69922 M 177.64063,275.76172 C 177.43229,275.76693 177.18229,275.77474 176.89063,275.78516 C 176.60416,275.80078 176.42187,275.80859 176.34375,275.80859 C 175.47396,275.80859 174.8776,275.64714 174.55469,275.32422 C 174.23698,274.99609 174.07812,274.35287 174.07813,273.39453 L 174.07813,268.80078 L 172.95313,268.80078 L 172.95313,267.20703 L 174.07813,267.20703 L 174.07813,264.88672 L 176.32813,264.88672 L 176.32813,267.20703 L 177.64063,267.20703 L 177.64063,268.80078 L 176.32813,268.80078 L 176.32813,273.50391 C 176.32812,273.72787 176.3776,273.8763 176.47656,273.94922 C 176.57552,274.01693 176.77864,274.05078 177.08594,274.05078 L 177.64063,274.05078 L 177.64063,275.76172"
+ id="text5831" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 612.96875,266.53906 L 611.375,271.4375 L 614.57031,271.4375 L 612.96875,266.53906 M 611.59375,264.23438 L 614.32813,264.23438 L 618.47656,275.74219 L 615.99219,275.74219 L 615.21094,273.375 L 610.75,273.375 L 609.99219,275.74219 L 607.5,275.74219 L 611.59375,264.23438 M 619.53906,275.74219 L 619.53906,264.23438 L 621.8125,264.23438 L 621.8125,275.74219 L 619.53906,275.74219 M 627.64063,275.80469 C 627.43229,275.8099 627.18229,275.81771 626.89063,275.82813 C 626.60416,275.84375 626.42187,275.85156 626.34375,275.85156 C 625.47396,275.85156 624.8776,275.6901 624.55469,275.36719 C 624.23698,275.03906 624.07812,274.39583 624.07813,273.4375 L 624.07813,268.84375 L 622.95313,268.84375 L 622.95313,267.25 L 624.07813,267.25 L 624.07813,264.92969 L 626.32813,264.92969 L 626.32813,267.25 L 627.64063,267.25 L 627.64063,268.84375 L 626.32813,268.84375 L 626.32813,273.54688 C 626.32812,273.77084 626.3776,273.91927 626.47656,273.99219 C 626.57552,274.0599 626.77864,274.09375 627.08594,274.09375 L 627.64063,274.09375 L 627.64063,275.80469 M 642,274.38281 C 641.57291,274.96094 641.08593,275.38542 640.53906,275.65625 C 639.99739,275.92708 639.35937,276.0625 638.625,276.0625 C 637.01562,276.0625 635.71093,275.50521 634.71094,274.39063 C 633.71614,273.27084 633.21875,271.80209 633.21875,269.98438 C 633.21875,268.15105 633.71614,266.6849 634.71094,265.58594 C 635.70573,264.48699 637.03125,263.93751 638.6875,263.9375 C 640.1302,263.93751 641.30728,264.28387 642.21875,264.97656 C 643.1302,265.66407 643.67186,266.61199 643.84375,267.82031 L 641.42969,267.82031 C 641.28385,267.22136 640.98437,266.76563 640.53125,266.45313 C 640.08333,266.14063 639.49739,265.98438 638.77344,265.98438 C 637.80989,265.98438 637.05208,266.33855 636.5,267.04688 C 635.95312,267.75001 635.67968,268.72397 635.67969,269.96875 C 635.67968,271.21875 635.96614,272.19792 636.53906,272.90625 C 637.11197,273.61459 637.89843,273.96875 638.89844,273.96875 C 639.64843,273.96875 640.27603,273.7474 640.78125,273.30469 C 641.28645,272.86198 641.59895,272.25521 641.71875,271.48438 L 639.10938,271.48438 L 639.10938,269.51563 L 643.875,269.51563 L 643.875,275.74219 L 642.28906,275.74219 L 642,274.38281 M 645.96094,275.74219 L 645.96094,267.25 L 648.07031,267.25 L 648.07031,268.70313 C 648.36718,268.1198 648.71354,267.69272 649.10938,267.42188 C 649.5052,267.14584 649.97656,267.00782 650.52344,267.00781 C 650.61197,267.00782 650.67968,267.01043 650.72656,267.01563 C 650.77864,267.01563 650.82031,267.01824 650.85156,267.02344 L 650.85938,269.32813 L 650.10156,269.32813 C 649.48177,269.32813 649.01562,269.48959 648.70313,269.8125 C 648.39062,270.13542 648.23437,270.61459 648.23438,271.25 L 648.23438,275.74219 L 645.96094,275.74219"
+ id="text5835" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 828,271.78906 C 827.91145,273.09636 827.40624,274.13542 826.48438,274.90625 C 825.5677,275.67708 824.36978,276.0625 822.89063,276.0625 C 821.1875,276.0625 819.86198,275.53125 818.91406,274.46875 C 817.97135,273.40625 817.5,271.91667 817.5,270 C 817.5,268.04167 817.98177,266.54168 818.94531,265.5 C 819.90885,264.45834 821.29427,263.93751 823.10156,263.9375 C 824.5703,263.93751 825.72916,264.29689 826.57813,265.01563 C 827.43228,265.72918 827.90103,266.73959 827.98438,268.04688 L 825.64844,268.04688 C 825.54947,267.39584 825.28385,266.90105 824.85156,266.5625 C 824.41926,266.21876 823.83593,266.04688 823.10156,266.04688 C 822.05989,266.04688 821.26822,266.38282 820.72656,267.05469 C 820.18489,267.72657 819.91406,268.70834 819.91406,270 C 819.91406,271.25 820.18229,272.21615 820.71875,272.89844 C 821.26041,273.58073 822.02864,273.92188 823.02344,273.92188 C 823.74218,273.92188 824.33072,273.73959 824.78906,273.375 C 825.24739,273.00521 825.54426,272.47657 825.67969,271.78906 L 828,271.78906 M 833.46875,275.80469 C 833.26041,275.8099 833.01041,275.81771 832.71875,275.82813 C 832.43229,275.84375 832.25,275.85156 832.17188,275.85156 C 831.30208,275.85156 830.70573,275.6901 830.38281,275.36719 C 830.0651,275.03906 829.90625,274.39583 829.90625,273.4375 L 829.90625,268.84375 L 828.78125,268.84375 L 828.78125,267.25 L 829.90625,267.25 L 829.90625,264.92969 L 832.15625,264.92969 L 832.15625,267.25 L 833.46875,267.25 L 833.46875,268.84375 L 832.15625,268.84375 L 832.15625,273.54688 C 832.15625,273.77084 832.20573,273.91927 832.30469,273.99219 C 832.40364,274.0599 832.60677,274.09375 832.91406,274.09375 L 833.46875,274.09375 L 833.46875,275.80469 M 834.78906,275.74219 L 834.78906,267.25 L 836.89844,267.25 L 836.89844,268.70313 C 837.19531,268.1198 837.54166,267.69272 837.9375,267.42188 C 838.33333,267.14584 838.80468,267.00782 839.35156,267.00781 C 839.4401,267.00782 839.50781,267.01043 839.55469,267.01563 C 839.60677,267.01563 839.64843,267.01824 839.67969,267.02344 L 839.6875,269.32813 L 838.92969,269.32813 C 838.30989,269.32813 837.84375,269.48959 837.53125,269.8125 C 837.21875,270.13542 837.0625,270.61459 837.0625,271.25 L 837.0625,275.74219 L 834.78906,275.74219 M 841.02344,275.74219 L 841.02344,264.23438 L 843.29688,264.23438 L 843.29688,275.74219 L 841.02344,275.74219"
+ id="text5839" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 108.94531,264.01953 L 105.64844,252.51172 L 108.10156,252.51172 L 110.07031,260.62891 L 111.73438,252.51172 L 114.25781,252.51172 L 115.92188,260.62891 L 117.89063,252.51172 L 120.32031,252.51172 L 117.03125,264.01953 L 114.77344,264.01953 L 112.99219,255.20703 L 111.20313,264.01953 L 108.94531,264.01953 M 121.5,254.58203 L 121.5,252.51172 L 123.77344,252.51172 L 123.77344,254.58203 L 121.5,254.58203 M 121.5,264.01953 L 121.5,255.52734 L 123.77344,255.52734 L 123.77344,264.01953 L 121.5,264.01953 M 125.79688,264.01953 L 125.79688,255.52734 L 128.02344,255.52734 L 128.02344,256.53516 C 128.34114,256.12371 128.71614,255.81641 129.14844,255.61328 C 129.58072,255.40496 130.06249,255.30079 130.59375,255.30078 C 131.53124,255.30079 132.23176,255.54558 132.69531,256.03516 C 133.16405,256.51954 133.39843,257.25131 133.39844,258.23047 L 133.39844,264.01953 L 131.125,264.01953 L 131.125,258.88672 C 131.12499,258.27735 131.02083,257.84245 130.8125,257.58203 C 130.60937,257.32162 130.27604,257.19141 129.8125,257.19141 C 129.27604,257.19141 128.85156,257.35287 128.53906,257.67578 C 128.22656,257.9935 128.07031,258.42839 128.07031,258.98047 L 128.07031,264.01953 L 125.79688,264.01953 M 106.64844,284.01953 L 106.64844,272.51172 L 109.01563,272.51172 L 109.01563,277.23828 L 113.50781,272.51172 L 116.46875,272.51172 L 111.875,277.16797 L 116.88281,284.01953 L 113.99219,284.01953 L 110.24219,278.75391 L 109.01563,279.97266 L 109.01563,284.01953 L 106.64844,284.01953 M 122.9375,281.44141 L 125.20313,281.44141 C 124.97395,282.33724 124.51041,283.04037 123.8125,283.55078 C 123.11979,284.05599 122.27343,284.30859 121.27344,284.30859 C 120.04427,284.30859 119.07031,283.89714 118.35156,283.07422 C 117.63281,282.2461 117.27344,281.1263 117.27344,279.71484 C 117.27344,278.32422 117.6276,277.22787 118.33594,276.42578 C 119.04427,275.62371 120.01302,275.22267 121.24219,275.22266 C 122.54427,275.22267 123.54947,275.6185 124.25781,276.41016 C 124.96614,277.19662 125.3203,278.31902 125.32031,279.77734 C 125.3203,279.93881 125.3177,280.0612 125.3125,280.14453 C 125.31249,280.22266 125.30728,280.29818 125.29688,280.37109 L 119.625,280.37109 C 119.65625,281.03776 119.81771,281.54037 120.10938,281.87891 C 120.40625,282.21745 120.83073,282.38672 121.38281,282.38672 C 121.77343,282.38672 122.09374,282.3112 122.34375,282.16016 C 122.59374,282.00391 122.79166,281.76433 122.9375,281.44141 M 119.625,278.87891 L 122.96875,278.87891 C 122.94791,278.306 122.79426,277.8711 122.50781,277.57422 C 122.22656,277.27214 121.82031,277.1211 121.28906,277.12109 C 120.79427,277.1211 120.40364,277.27214 120.11719,277.57422 C 119.83593,277.87631 119.67187,278.3112 119.625,278.87891 M 127.16406,287.42578 L 127.16406,285.58984 C 127.23698,285.60026 127.3125,285.60807 127.39063,285.61328 C 127.46875,285.61849 127.57031,285.62109 127.69531,285.62109 C 128.14323,285.62109 128.47916,285.51432 128.70313,285.30078 C 128.92708,285.09245 129.03906,284.77734 129.03906,284.35547 C 129.03906,284.32422 129.03385,284.28516 129.02344,284.23828 C 129.01302,284.19141 129.0026,284.15234 128.99219,284.12109 L 125.92969,275.52734 L 128.42969,275.52734 L 130.21875,281.65234 L 131.96094,275.52734 L 134.35156,275.52734 L 130.85938,285.54297 C 130.59895,286.29297 130.27343,286.80338 129.88281,287.07422 C 129.49218,287.35026 128.90625,287.48828 128.125,287.48828 C 127.98437,287.48828 127.83333,287.48307 127.67188,287.47266 C 127.51041,287.46224 127.34114,287.44661 127.16406,287.42578"
+ id="text5872" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 708.94531,264.01953 L 705.64844,252.51172 L 708.10156,252.51172 L 710.07031,260.62891 L 711.73438,252.51172 L 714.25781,252.51172 L 715.92188,260.62891 L 717.89063,252.51172 L 720.32031,252.51172 L 717.03125,264.01953 L 714.77344,264.01953 L 712.99219,255.20703 L 711.20313,264.01953 L 708.94531,264.01953 M 721.5,254.58203 L 721.5,252.51172 L 723.77344,252.51172 L 723.77344,254.58203 L 721.5,254.58203 M 721.5,264.01953 L 721.5,255.52734 L 723.77344,255.52734 L 723.77344,264.01953 L 721.5,264.01953 M 725.79688,264.01953 L 725.79688,255.52734 L 728.02344,255.52734 L 728.02344,256.53516 C 728.34114,256.12371 728.71614,255.81641 729.14844,255.61328 C 729.58072,255.40496 730.06249,255.30079 730.59375,255.30078 C 731.53124,255.30079 732.23176,255.54558 732.69531,256.03516 C 733.16405,256.51954 733.39843,257.25131 733.39844,258.23047 L 733.39844,264.01953 L 731.125,264.01953 L 731.125,258.88672 C 731.12499,258.27735 731.02083,257.84245 730.8125,257.58203 C 730.60937,257.32162 730.27604,257.19141 729.8125,257.19141 C 729.27604,257.19141 728.85156,257.35287 728.53906,257.67578 C 728.22656,257.9935 728.07031,258.42839 728.07031,258.98047 L 728.07031,264.01953 L 725.79688,264.01953 M 706.64844,284.01953 L 706.64844,272.51172 L 709.01563,272.51172 L 709.01563,277.23828 L 713.50781,272.51172 L 716.46875,272.51172 L 711.875,277.16797 L 716.88281,284.01953 L 713.99219,284.01953 L 710.24219,278.75391 L 709.01563,279.97266 L 709.01563,284.01953 L 706.64844,284.01953 M 722.9375,281.44141 L 725.20313,281.44141 C 724.97395,282.33724 724.51041,283.04037 723.8125,283.55078 C 723.11979,284.05599 722.27343,284.30859 721.27344,284.30859 C 720.04427,284.30859 719.07031,283.89714 718.35156,283.07422 C 717.63281,282.2461 717.27344,281.1263 717.27344,279.71484 C 717.27344,278.32422 717.6276,277.22787 718.33594,276.42578 C 719.04427,275.62371 720.01302,275.22267 721.24219,275.22266 C 722.54427,275.22267 723.54947,275.6185 724.25781,276.41016 C 724.96614,277.19662 725.3203,278.31902 725.32031,279.77734 C 725.3203,279.93881 725.3177,280.0612 725.3125,280.14453 C 725.31249,280.22266 725.30728,280.29818 725.29688,280.37109 L 719.625,280.37109 C 719.65625,281.03776 719.81771,281.54037 720.10938,281.87891 C 720.40625,282.21745 720.83073,282.38672 721.38281,282.38672 C 721.77343,282.38672 722.09374,282.3112 722.34375,282.16016 C 722.59374,282.00391 722.79166,281.76433 722.9375,281.44141 M 719.625,278.87891 L 722.96875,278.87891 C 722.94791,278.306 722.79426,277.8711 722.50781,277.57422 C 722.22656,277.27214 721.82031,277.1211 721.28906,277.12109 C 720.79427,277.1211 720.40364,277.27214 720.11719,277.57422 C 719.83593,277.87631 719.67187,278.3112 719.625,278.87891 M 727.16406,287.42578 L 727.16406,285.58984 C 727.23698,285.60026 727.3125,285.60807 727.39063,285.61328 C 727.46875,285.61849 727.57031,285.62109 727.69531,285.62109 C 728.14323,285.62109 728.47916,285.51432 728.70313,285.30078 C 728.92708,285.09245 729.03906,284.77734 729.03906,284.35547 C 729.03906,284.32422 729.03385,284.28516 729.02344,284.23828 C 729.01302,284.19141 729.0026,284.15234 728.99219,284.12109 L 725.92969,275.52734 L 728.42969,275.52734 L 730.21875,281.65234 L 731.96094,275.52734 L 734.35156,275.52734 L 730.85938,285.54297 C 730.59895,286.29297 730.27343,286.80338 729.88281,287.07422 C 729.49218,287.35026 728.90625,287.48828 728.125,287.48828 C 727.98437,287.48828 727.83333,287.48307 727.67188,287.47266 C 727.51041,287.46224 727.34114,287.44661 727.16406,287.42578"
+ id="text5878" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 759.98438,275.60938 L 759.98438,264.10156 L 763.48438,264.10156 L 765.77344,272.85938 L 768.03125,264.10156 L 771.54688,264.10156 L 771.54688,275.60938 L 769.32813,275.60938 L 769.32813,266.32813 L 766.99219,275.60938 L 764.57031,275.60938 L 762.20313,266.32813 L 762.20313,275.60938 L 759.98438,275.60938 M 778.99219,273.03125 L 781.25781,273.03125 C 781.02864,273.92709 780.5651,274.63021 779.86719,275.14063 C 779.17447,275.64583 778.32812,275.89844 777.32813,275.89844 C 776.09896,275.89844 775.125,275.48698 774.40625,274.66406 C 773.6875,273.83594 773.32812,272.71615 773.32813,271.30469 C 773.32812,269.91407 773.68229,268.81772 774.39063,268.01563 C 775.09896,267.21355 776.06771,266.81251 777.29688,266.8125 C 778.59895,266.81251 779.60416,267.20834 780.3125,268 C 781.02083,268.78647 781.37499,269.90886 781.375,271.36719 C 781.37499,271.52865 781.37239,271.65105 781.36719,271.73438 C 781.36718,271.8125 781.36197,271.88802 781.35156,271.96094 L 775.67969,271.96094 C 775.71093,272.62761 775.87239,273.13021 776.16406,273.46875 C 776.46093,273.80729 776.88541,273.97656 777.4375,273.97656 C 777.82812,273.97656 778.14843,273.90104 778.39844,273.75 C 778.64843,273.59375 778.84635,273.35417 778.99219,273.03125 M 775.67969,270.46875 L 779.02344,270.46875 C 779.0026,269.89584 778.84895,269.46094 778.5625,269.16406 C 778.28124,268.86199 777.87499,268.71094 777.34375,268.71094 C 776.84895,268.71094 776.45833,268.86199 776.17188,269.16406 C 775.89062,269.46615 775.72656,269.90105 775.67969,270.46875 M 782.88281,275.60938 L 782.88281,267.11719 L 785.10938,267.11719 L 785.10938,268.125 C 785.42708,267.71355 785.80208,267.40626 786.23438,267.20313 C 786.66666,266.9948 787.14843,266.89063 787.67969,266.89063 C 788.61718,266.89063 789.3177,267.13543 789.78125,267.625 C 790.24999,268.10938 790.48437,268.84115 790.48438,269.82031 L 790.48438,275.60938 L 788.21094,275.60938 L 788.21094,270.47656 C 788.21093,269.86719 788.10676,269.4323 787.89844,269.17188 C 787.69531,268.91147 787.36197,268.78126 786.89844,268.78125 C 786.36197,268.78126 785.9375,268.94272 785.625,269.26563 C 785.3125,269.58334 785.15625,270.01823 785.15625,270.57031 L 785.15625,275.60938 L 782.88281,275.60938 M 800.01563,267.11719 L 800.01563,275.60938 L 797.78906,275.60938 L 797.78906,274.60156 C 797.46614,275.01302 797.08854,275.32292 796.65625,275.53125 C 796.22916,275.73437 795.74739,275.83594 795.21094,275.83594 C 794.27864,275.83594 793.57812,275.59115 793.10938,275.10156 C 792.64583,274.61198 792.41406,273.88021 792.41406,272.90625 L 792.41406,267.11719 L 794.6875,267.11719 L 794.6875,272.25 C 794.6875,272.85417 794.78906,273.28646 794.99219,273.54688 C 795.19531,273.80209 795.53125,273.92969 796,273.92969 C 796.53124,273.92969 796.95312,273.77084 797.26563,273.45313 C 797.58333,273.13021 797.74218,272.69271 797.74219,272.14063 L 797.74219,267.11719 L 800.01563,267.11719"
+ id="text5884" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 104.41406,17.103516 L 104.41406,10.212891 L 101.74219,10.212891 L 101.74219,8.7949219 L 101.94141,8.7949219 C 102.89453,8.7949367 103.58984,8.6621243 104.02734,8.3964844 C 104.47265,8.1308749 104.73828,7.6894691 104.82422,7.0722656 L 106.59375,7.0722656 L 106.59375,17.103516 L 104.41406,17.103516 M 106.72266,36.369141 L 106.72266,39.826172 L 103.24219,39.826172 L 103.24219,36.369141 L 106.72266,36.369141 M 105.89063,41.173828 L 106.80469,48.978516 L 106.80469,53.630859 L 103.19531,53.630859 L 103.19531,48.978516 L 104.10938,41.173828 L 105.89063,41.173828"
+ id="text5890" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 160.85156,47.103516 C 160.875,46.197273 161.08984,45.431649 161.49609,44.806641 C 161.91015,44.18165 162.63672,43.548838 163.67578,42.908203 C 163.82422,42.822276 164.03125,42.701183 164.29688,42.544922 C 165.74218,41.724621 166.46484,40.931653 166.46484,40.166016 C 166.46484,39.720717 166.32031,39.369155 166.03125,39.111328 C 165.74218,38.85353 165.34375,38.724624 164.83594,38.724609 C 164.27343,38.724624 163.83984,38.88478 163.53516,39.205078 C 163.23047,39.517592 163.07812,39.966811 163.07813,40.552734 L 163.07813,40.646484 L 161.03906,40.646484 C 161.03906,39.498061 161.37891,38.615249 162.05859,37.998047 C 162.73828,37.380876 163.71093,37.072282 164.97656,37.072266 C 166.11718,37.072282 167.02343,37.353532 167.69531,37.916016 C 168.37499,38.470718 168.71484,39.212905 168.71484,40.142578 C 168.71484,40.814466 168.53905,41.39259 168.1875,41.876953 C 167.83593,42.361339 167.14843,42.919933 166.125,43.552734 C 165.89843,43.701182 165.57812,43.896494 165.16406,44.138672 C 164.22656,44.685556 163.69922,45.115243 163.58203,45.427734 L 168.62109,45.427734 L 168.62109,47.103516 L 160.85156,47.103516"
+ id="text5910" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 220.92188,44.033203 L 223.05469,44.033203 C 223.07031,44.603525 223.22265,45.029305 223.51172,45.310547 C 223.80078,45.591805 224.23437,45.73243 224.8125,45.732422 C 225.36718,45.73243 225.79687,45.599617 226.10156,45.333984 C 226.40624,45.068368 226.55859,44.689462 226.55859,44.197266 C 226.55859,43.697276 226.38281,43.322276 226.03125,43.072266 C 225.67968,42.814464 225.15234,42.685558 224.44922,42.685547 L 224.10938,42.685547 L 224.10938,41.291016 L 224.35547,41.291016 C 225.0039,41.291028 225.48046,41.181653 225.78516,40.962891 C 226.09765,40.736341 226.2539,40.392591 226.25391,39.931641 C 226.2539,39.54103 226.12109,39.232436 225.85547,39.005859 C 225.58984,38.771499 225.23437,38.654312 224.78906,38.654297 C 224.29687,38.654312 223.91797,38.787124 223.65234,39.052734 C 223.38672,39.310561 223.2539,39.681655 223.25391,40.166016 L 223.25391,40.236328 L 221.16797,40.236328 C 221.19141,39.212905 221.51953,38.431656 222.15234,37.892578 C 222.79297,37.345719 223.70312,37.072282 224.88281,37.072266 C 225.99218,37.072282 226.86718,37.314469 227.50781,37.798828 C 228.15624,38.283218 228.48046,38.943374 228.48047,39.779297 C 228.48046,40.21681 228.36718,40.603529 228.14063,40.939453 C 227.92187,41.26759 227.59374,41.537121 227.15625,41.748047 C 227.72656,41.974621 228.15624,42.291027 228.44531,42.697266 C 228.74218,43.095714 228.89062,43.564463 228.89063,44.103516 C 228.89062,45.119149 228.52343,45.923836 227.78906,46.517578 C 227.06249,47.103522 226.07031,47.396491 224.8125,47.396484 C 223.57031,47.396491 222.60937,47.107428 221.92969,46.529297 C 221.25781,45.95118 220.92187,45.134774 220.92188,44.080078 L 220.92188,44.033203"
+ id="text5922" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 278.92969,21.685547 C 279.86719,21.037112 280.53125,20.439456 280.92188,19.892578 C 281.32031,19.345707 281.51953,18.75977 281.51953,18.134766 C 281.51953,17.837896 281.47265,17.525397 281.37891,17.197266 C 281.28515,16.861335 281.14843,16.509773 280.96875,16.142578 L 278.90625,16.142578 L 278.90625,14.841797 L 280.17188,14.841797 C 279.82812,14.162119 279.57812,13.556651 279.42188,13.025391 C 279.26562,12.494152 279.1875,11.998059 279.1875,11.537109 C 279.1875,10.146498 279.69531,9.021499 280.71094,8.1621094 C 281.73437,7.3027507 283.08203,6.8730636 284.75391,6.8730469 C 286.5664,6.8730636 287.98827,7.3379069 289.01953,8.2675781 C 290.05077,9.1972801 290.61327,10.517591 290.70703,12.228516 L 287.47266,12.228516 C 287.41015,11.345715 287.15624,10.669935 286.71094,10.201172 C 286.26562,9.7324358 285.65624,9.498061 284.88281,9.4980469 C 284.14843,9.498061 283.58203,9.6894671 283.18359,10.072266 C 282.79296,10.455091 282.59765,11.005872 282.59766,11.724609 C 282.59765,12.138683 282.84375,12.888683 283.33594,13.974609 C 283.50781,14.349619 283.63671,14.638681 283.72266,14.841797 L 287.0625,14.841797 L 287.0625,16.142578 L 284.20313,16.142578 C 284.27343,16.43946 284.32421,16.712898 284.35547,16.962891 C 284.38671,17.212897 284.40234,17.443366 284.40234,17.654297 C 284.40234,18.216802 284.22656,18.779302 283.875,19.341797 C 283.53124,19.896488 282.94531,20.548831 282.11719,21.298828 C 282.625,21.064456 283.08203,20.892581 283.48828,20.783203 C 283.90234,20.666019 284.27734,20.607425 284.61328,20.607422 C 285.01952,20.607425 285.57421,20.701175 286.27734,20.888672 C 286.98046,21.068362 287.48046,21.158206 287.77734,21.158203 C 288.16796,21.158206 288.55077,21.095706 288.92578,20.970703 C 289.30858,20.845706 289.68749,20.6543 290.0625,20.396484 L 291.09375,22.939453 C 290.4453,23.322266 289.82421,23.611328 289.23047,23.806641 C 288.63671,24.009765 288.08202,24.111328 287.56641,24.111328 C 286.97265,24.111328 286.16796,23.955078 285.15234,23.642578 C 284.14453,23.330078 283.41406,23.173829 282.96094,23.173828 C 282.48437,23.173829 282.01953,23.251954 281.56641,23.408203 C 281.12109,23.564453 280.6875,23.798828 280.26563,24.111328 L 278.92969,21.685547 M 284.94141,40.025391 C 284.05859,40.025404 283.29687,40.345716 282.65625,40.986328 C 282.01562,41.626965 281.69531,42.384777 281.69531,43.259766 C 281.69531,44.1504 282.01171,44.912118 282.64453,45.544922 C 283.27734,46.169929 284.04296,46.482429 284.94141,46.482422 C 285.82421,46.482429 286.58202,46.169929 287.21484,45.544922 C 287.85546,44.912118 288.17577,44.1504 288.17578,43.259766 C 288.17577,42.384777 287.85546,41.626965 287.21484,40.986328 C 286.58202,40.345716 285.82421,40.025404 284.94141,40.025391 M 279.65625,36.779297 L 282.05859,39.158203 C 282.48046,38.85353 282.92578,38.626968 283.39453,38.478516 C 283.86328,38.322281 284.37109,38.244156 284.91797,38.244141 C 285.46484,38.244156 285.97655,38.322281 286.45313,38.478516 C 286.93749,38.626968 287.39062,38.85353 287.8125,39.158203 L 290.19141,36.779297 L 291.42188,38.033203 L 289.04297,40.435547 C 289.33983,40.849622 289.56249,41.294934 289.71094,41.771484 C 289.85936,42.240246 289.93358,42.736339 289.93359,43.259766 C 289.93358,43.783213 289.85936,44.279306 289.71094,44.748047 C 289.56249,45.216805 289.33983,45.666024 289.04297,46.095703 L 291.42188,48.498047 L 290.19141,49.716797 L 287.8125,47.337891 C 287.39062,47.650397 286.9414,47.880865 286.46484,48.029297 C 285.98827,48.17774 285.48046,48.251959 284.94141,48.251953 C 284.3789,48.251959 283.85937,48.17774 283.38281,48.029297 C 282.91406,47.880865 282.47265,47.650397 282.05859,47.337891 L 279.65625,49.716797 L 278.4375,48.498047 L 280.80469,46.095703 C 280.50781,45.673836 280.28515,45.23243 280.13672,44.771484 C 279.99609,44.302744 279.92578,43.798838 279.92578,43.259766 C 279.92578,42.736339 279.99609,42.240246 280.13672,41.771484 C 280.28515,41.294934 280.50781,40.849622 280.80469,40.435547 L 278.4375,38.033203 L 279.65625,36.779297"
+ id="text5928" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 352.875,47.701172 C 352.74217,49.662113 351.98436,51.220706 350.60156,52.376953 C 349.22655,53.533203 347.42968,54.111328 345.21094,54.111328 C 342.65624,54.111328 340.66796,53.314453 339.24609,51.720703 C 337.83203,50.126957 337.125,47.892584 337.125,45.017578 C 337.125,42.08009 337.84765,39.830092 339.29297,38.267578 C 340.73828,36.705095 342.8164,35.923846 345.52734,35.923828 C 347.73046,35.923846 349.46874,36.462908 350.74219,37.541016 C 352.02342,38.611343 352.72655,40.126967 352.85156,42.087891 L 349.34766,42.087891 C 349.19921,41.111341 348.80077,40.369154 348.15234,39.861328 C 347.50389,39.345717 346.6289,39.087905 345.52734,39.087891 C 343.96484,39.087905 342.77734,39.591811 341.96484,40.599609 C 341.15234,41.607434 340.74609,43.080089 340.74609,45.017578 C 340.74609,46.892585 341.14843,48.341802 341.95313,49.365234 C 342.76562,50.388675 343.91796,50.900393 345.41016,50.900391 C 346.48827,50.900393 347.37108,50.626956 348.05859,50.080078 C 348.74608,49.525395 349.19139,48.732427 349.39453,47.701172 L 352.875,47.701172"
+ id="text5946" />
+ <path
+ transform="matrix(1.16233,0,-0.444745,0.860341,0,0)"
+ style="font-size:16.72912407px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 307.52845,53.268758 L 317.31434,53.268758 L 317.31434,54.894293 L 307.52845,54.894293 L 307.52845,53.268758 M 307.52845,49.756296 L 317.31434,49.756296 L 317.31434,51.381831 L 307.52845,51.381831 L 307.52845,49.756296"
+ id="text5956" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 411.45117,50.150391 L 411.45117,46.142578 L 408.63867,50.150391 L 411.45117,50.150391 M 411.45117,53.630859 L 411.45117,51.591797 L 406.98633,51.591797 L 406.98633,49.962891 L 410.90039,44.513672 L 413.51367,44.513672 L 413.51367,50.103516 L 414.73242,50.103516 L 414.73242,51.591797 L 413.51367,51.591797 L 413.51367,53.630859 L 411.45117,53.630859 M 398.58398,54.111328 L 408.7793,36.615234 L 410.70117,36.615234 L 400.48242,54.111328 L 398.58398,54.111328 M 397.78711,46.458984 L 397.78711,40.025391 L 395.26758,40.025391 L 395.26758,38.701172 L 395.44336,38.701172 C 396.36523,38.701187 397.0332,38.576187 397.44727,38.326172 C 397.86914,38.076187 398.11914,37.658219 398.19727,37.072266 L 399.88477,37.072266 L 399.88477,46.458984 L 397.78711,46.458984"
+ id="text5960" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 467.0918,53.630859 C 467.11522,52.779298 467.32225,52.064455 467.71289,51.486328 C 468.11131,50.900393 468.80663,50.31055 469.79883,49.716797 C 469.95506,49.630863 470.16991,49.50977 470.44336,49.353516 C 471.7949,48.595708 472.47068,47.861334 472.4707,47.150391 C 472.47068,46.736335 472.33006,46.40821 472.04883,46.166016 C 471.76756,45.923836 471.38475,45.802742 470.90039,45.802734 C 470.36912,45.802742 469.95506,45.95118 469.6582,46.248047 C 469.36913,46.544929 469.22459,46.966804 469.22461,47.513672 L 469.22461,47.607422 L 467.2793,47.607422 C 467.27928,46.529304 467.6035,45.70118 468.25195,45.123047 C 468.90038,44.537118 469.82616,44.24415 471.0293,44.244141 C 472.12303,44.24415 472.99412,44.505868 473.64258,45.029297 C 474.29881,45.552742 474.62693,46.251961 474.62695,47.126953 C 474.62693,47.751959 474.45506,48.294927 474.11133,48.755859 C 473.77537,49.208989 473.11522,49.72852 472.13086,50.314453 C 471.9199,50.439456 471.63084,50.607425 471.26367,50.818359 C 470.34959,51.341799 469.83397,51.744143 469.7168,52.025391 L 474.50977,52.025391 L 474.50977,53.630859 L 467.0918,53.630859 M 458.68945,54.111328 L 468.88477,36.615234 L 470.80664,36.615234 L 460.58789,54.111328 L 458.68945,54.111328 M 457.89258,46.458984 L 457.89258,40.025391 L 455.37305,40.025391 L 455.37305,38.701172 L 455.54883,38.701172 C 456.4707,38.701187 457.13867,38.576187 457.55273,38.326172 C 457.97461,38.076187 458.22461,37.658219 458.30273,37.072266 L 459.99023,37.072266 L 459.99023,46.458984 L 457.89258,46.458984"
+ id="text5967" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 531.83203,50.150391 L 531.83203,46.142578 L 529.01953,50.150391 L 531.83203,50.150391 M 531.83203,53.630859 L 531.83203,51.591797 L 527.36719,51.591797 L 527.36719,49.962891 L 531.28125,44.513672 L 533.89453,44.513672 L 533.89453,50.103516 L 535.11328,50.103516 L 535.11328,51.591797 L 533.89453,51.591797 L 533.89453,53.630859 L 531.83203,53.630859 M 518.96484,54.111328 L 529.16016,36.615234 L 531.08203,36.615234 L 520.86328,54.111328 L 518.96484,54.111328 M 514.88672,43.599609 L 516.89063,43.599609 C 516.91406,44.130869 517.0625,44.529306 517.33594,44.794922 C 517.61718,45.052743 518.03125,45.181649 518.57813,45.181641 C 519.10937,45.181649 519.51953,45.060555 519.80859,44.818359 C 520.09765,44.568368 520.24218,44.208994 520.24219,43.740234 C 520.24218,43.271495 520.07421,42.919933 519.73828,42.685547 C 519.40234,42.443371 518.90625,42.322277 518.25,42.322266 C 518.20312,42.322277 518.14453,42.326183 518.07422,42.333984 C 518.0039,42.341808 517.94922,42.345714 517.91016,42.345703 L 517.91016,41.033203 L 518.14453,41.033203 C 518.76171,41.033216 519.21484,40.931653 519.50391,40.728516 C 519.80078,40.517591 519.94921,40.193373 519.94922,39.755859 C 519.94921,39.388686 519.82421,39.099624 519.57422,38.888672 C 519.32421,38.669937 518.98437,38.560562 518.55469,38.560547 C 518.08593,38.560562 517.72265,38.685562 517.46484,38.935547 C 517.21484,39.177749 517.08984,39.525405 517.08984,39.978516 L 517.08984,40.048828 L 515.08594,40.048828 C 515.10156,39.087905 515.41797,38.353531 516.03516,37.845703 C 516.65234,37.330094 517.52343,37.072282 518.64844,37.072266 C 519.70312,37.072282 520.53906,37.302751 521.15625,37.763672 C 521.77343,38.216812 522.08202,38.833999 522.08203,39.615234 C 522.08202,40.02931 521.97655,40.392591 521.76563,40.705078 C 521.55468,41.009778 521.23827,41.263684 520.81641,41.466797 C 521.36327,41.677746 521.77343,41.970715 522.04688,42.345703 C 522.32812,42.712902 522.46874,43.154307 522.46875,43.669922 C 522.46874,44.607431 522.11718,45.349618 521.41406,45.896484 C 520.71874,46.443367 519.77343,46.716804 518.57813,46.716797 C 517.39062,46.716804 516.47656,46.451179 515.83594,45.919922 C 515.20312,45.380868 514.88672,44.615243 514.88672,43.623047 L 514.88672,43.599609"
+ id="text5973" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 586.63477,39.404297 L 586.63477,42.498047 L 583.36523,42.498047 L 583.36523,39.474609 C 583.36523,38.482437 583.66992,37.654313 584.2793,36.990234 C 584.88867,36.326189 585.67382,35.970721 586.63477,35.923828 L 586.63477,37.119141 C 586.04101,37.259782 585.59961,37.509782 585.31055,37.869141 C 585.02148,38.220719 584.87695,38.681656 584.87695,39.251953 L 584.87695,39.404297 L 586.63477,39.404297"
+ id="text5979" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 643.36523,39.474609 L 643.36523,36.369141 L 646.63477,36.369141 L 646.63477,39.427734 C 646.63476,40.412123 646.33007,41.240247 645.7207,41.912109 C 645.11132,42.576183 644.32617,42.931651 643.36523,42.978516 L 643.36523,41.771484 C 643.95898,41.630871 644.39648,41.384778 644.67773,41.033203 C 644.96679,40.673841 645.11132,40.201185 645.11133,39.615234 L 645.11133,39.474609 L 643.36523,39.474609"
+ id="text5985" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 706.89258,53.630859 L 703.50586,53.630859 L 703.50586,47.560547 L 703.27148,47.150391 L 698.00977,47.150391 L 698.00977,45.826172 L 702.49805,45.826172 L 701.64258,44.337891 L 698.00977,44.337891 L 698.00977,43.025391 L 700.86914,43.025391 L 697.61133,37.330078 L 701.41992,37.330078 L 705.19336,44.724609 L 708.69727,37.330078 L 712.27148,37.330078 L 709.27148,43.025391 L 712.00195,43.025391 L 712.00195,44.337891 L 708.58008,44.337891 L 707.7832,45.826172 L 712.00195,45.826172 L 712.00195,47.150391 L 707.0918,47.150391 L 706.89258,47.560547 L 706.89258,53.630859"
+ id="text5991" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 764.97656,19.306641 C 765.46093,19.306645 765.8789,19.482426 766.23047,19.833984 C 766.58202,20.18555 766.7578,20.603519 766.75781,21.087891 C 766.7578,21.564455 766.58202,21.974611 766.23047,22.318359 C 765.8789,22.66211 765.46093,22.833985 764.97656,22.833984 C 764.48437,22.833985 764.06249,22.666017 763.71094,22.330078 C 763.36718,21.994142 763.1953,21.58008 763.19531,21.087891 C 763.1953,20.595706 763.36718,20.177738 763.71094,19.833984 C 764.06249,19.482426 764.48437,19.306645 764.97656,19.306641 M 757.94531,15.298828 L 771.98438,15.298828 L 771.98438,17.630859 L 757.94531,17.630859 L 757.94531,15.298828 M 764.97656,10.095703 C 765.46093,10.095717 765.8789,10.271498 766.23047,10.623047 C 766.58202,10.96681 766.7578,11.380872 766.75781,11.865234 C 766.7578,12.357433 766.58202,12.779308 766.23047,13.130859 C 765.88671,13.47462 765.46874,13.646494 764.97656,13.646484 C 764.48437,13.646494 764.06249,13.47462 763.71094,13.130859 C 763.36718,12.779308 763.1953,12.357433 763.19531,11.865234 C 763.1953,11.373059 763.36718,10.955091 763.71094,10.611328 C 764.06249,10.267591 764.48437,10.095717 764.97656,10.095703 M 759.84375,39.544922 L 765.11719,44.818359 L 770.40234,39.544922 L 772.05469,41.173828 L 766.78125,46.482422 L 772.05469,51.755859 L 770.40234,53.396484 L 765.11719,48.111328 L 759.84375,53.396484 L 758.20313,51.755859 L 763.48828,46.482422 L 758.20313,41.173828 L 759.84375,39.544922"
+ id="text5997" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 134.9707,69.826172 L 132.58008,77.173828 L 137.37305,77.173828 L 134.9707,69.826172 M 132.9082,66.369141 L 137.00977,66.369141 L 143.23242,83.630859 L 139.50586,83.630859 L 138.33398,80.080078 L 131.64258,80.080078 L 130.50586,83.630859 L 126.76758,83.630859 L 132.9082,66.369141 M 135.70898,64.166016 L 135.70898,61.283203 L 138.35742,61.283203 L 138.35742,64.166016 L 135.70898,64.166016 M 131.63086,64.166016 L 131.63086,61.283203 L 134.2793,61.283203 L 134.2793,64.166016 L 131.63086,64.166016"
+ id="text6003" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 194.9707,62.126953 C 194.5957,62.126975 194.27538,62.267599 194.00977,62.548828 C 193.74413,62.822286 193.61132,63.154317 193.61133,63.544922 C 193.61132,63.927754 193.74023,64.251973 193.99805,64.517578 C 194.26366,64.783222 194.58788,64.916034 194.9707,64.916016 C 195.36132,64.916034 195.69335,64.783222 195.9668,64.517578 C 196.24804,64.24416 196.38866,63.919942 196.38867,63.544922 C 196.38866,63.16213 196.24804,62.830099 195.9668,62.548828 C 195.69335,62.267599 195.36132,62.126975 194.9707,62.126953 M 194.9707,60.521484 C 195.81444,60.521507 196.52929,60.814476 197.11523,61.400391 C 197.70116,61.978537 197.99413,62.685568 197.99414,63.521484 C 197.99413,64.357441 197.70116,65.068378 197.11523,65.654297 C 196.52929,66.232439 195.81444,66.521501 194.9707,66.521484 C 194.13476,66.521501 193.42773,66.232439 192.84961,65.654297 C 192.27929,65.07619 191.99414,64.365254 191.99414,63.521484 C 191.99414,62.677755 192.27929,61.966819 192.84961,61.388672 C 193.42773,60.81057 194.13476,60.521507 194.9707,60.521484 M 192.7207,67.072266 L 197.23242,67.072266 L 203.23242,83.630859 L 199.50586,83.630859 L 198.33398,80.080078 L 191.64258,80.080078 L 190.50586,83.630859 L 186.76758,83.630859 L 192.7207,67.072266 M 194.9707,69.826172 L 192.58008,77.173828 L 197.37305,77.173828 L 194.9707,69.826172"
+ id="text6007" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 248.52539,83.630859 L 248.52539,66.369141 L 261.05273,66.369141 L 261.05273,69.369141 L 252.0293,69.369141 L 252.0293,73.048828 L 260.2793,73.048828 L 260.2793,76.001953 L 252.0293,76.001953 L 252.0293,80.443359 L 261.47461,80.443359 L 261.47461,83.630859 L 248.52539,83.630859 M 258.24023,60.521484 L 254.57227,64.857422 L 252.9082,64.857422 L 255.2168,60.521484 L 258.24023,60.521484"
+ id="text6011" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 313.72266,101.49056 L 313.72266,104.29134 L 314.88281,104.29134 C 315.5703,104.29135 316.07421,104.18198 316.39453,103.96322 C 316.71483,103.74448 316.87499,103.40073 316.875,102.93197 C 316.87499,102.43979 316.70311,102.07651 316.35938,101.84212 C 316.01561,101.60776 315.48436,101.49057 314.76563,101.49056 L 313.72266,101.49056 M 311.37891,100.00228 L 315.16406,100.00228 C 316.53905,100.00229 317.5703,100.23667 318.25781,100.70541 C 318.95311,101.16636 319.30077,101.85776 319.30078,102.77962 C 319.30077,103.42026 319.11327,103.96713 318.73828,104.42025 C 318.36327,104.87338 317.84374,105.18198 317.17969,105.34603 L 319.34766,109.67025 L 316.72266,109.67025 L 314.88281,105.70931 L 313.72266,105.70931 L 313.72266,109.67025 L 311.37891,109.67025 L 311.37891,100.00228 M 315,97.717125 C 314.0078,97.717141 313.08593,97.892922 312.23438,98.244469 C 311.38281,98.588234 310.61718,99.099952 309.9375,99.779625 C 309.22656,100.49058 308.67968,101.29917 308.29688,102.20541 C 307.91406,103.10385 307.72265,104.03354 307.72266,104.99447 C 307.72265,105.96323 307.90234,106.8851 308.26172,107.76009 C 308.62109,108.62729 309.14062,109.40072 309.82031,110.08041 C 310.51562,110.79135 311.30859,111.33822 312.19922,111.72103 C 313.08984,112.09603 314.01562,112.28353 314.97656,112.28353 C 315.91405,112.28353 316.82421,112.09994 317.70703,111.73275 C 318.59764,111.36556 319.40624,110.83822 320.13281,110.15072 C 320.81248,109.49447 321.33983,108.72885 321.71484,107.85384 C 322.08983,106.97885 322.27733,106.0726 322.27734,105.13509 C 322.27733,104.09604 322.10155,103.13901 321.75,102.264 C 321.40623,101.38901 320.89061,100.60386 320.20313,99.908531 C 319.49999,99.181983 318.70702,98.635109 317.82422,98.267906 C 316.94921,97.900734 316.0078,97.717141 315,97.717125 M 314.97656,96.275719 C 316.17968,96.275736 317.31249,96.502298 318.375,96.955406 C 319.4453,97.400735 320.39842,98.049172 321.23438,98.900719 C 322.03905,99.713233 322.65233,100.64292 323.07422,101.68978 C 323.49608,102.73667 323.70701,103.84604 323.70703,105.01791 C 323.70701,106.20541 323.48826,107.33041 323.05078,108.39291 C 322.61326,109.4476 321.97655,110.37728 321.14063,111.18197 C 320.30467,112.00228 319.35155,112.63119 318.28125,113.06869 C 317.21874,113.50619 316.11718,113.72494 314.97656,113.72494 C 313.81249,113.72494 312.69921,113.49838 311.63672,113.04525 C 310.57421,112.59213 309.625,111.93978 308.78906,111.08822 C 307.97656,110.26791 307.35547,109.33822 306.92578,108.29916 C 306.5039,107.25229 306.29297,106.15854 306.29297,105.01791 C 306.29297,104.22104 306.39844,103.4476 306.60938,102.69759 C 306.82031,101.93979 307.13672,101.20151 307.55859,100.48275 C 308.34765,99.154639 309.39062,98.12339 310.6875,97.389 C 311.98437,96.646829 313.41405,96.275736 314.97656,96.275719"
+ id="text6015" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 372.0293,69.064453 L 376.06055,69.064453 C 377.84179,69.064468 379.18944,69.505874 380.10352,70.388672 C 381.01756,71.263684 381.47459,72.556652 381.47461,74.267578 C 381.47459,75.939461 381.02538,77.228522 380.12695,78.134766 C 379.23632,79.033208 377.95897,79.482426 376.29492,79.482422 L 372.0293,79.482422 L 372.0293,83.630859 L 368.52539,83.630859 L 368.52539,66.369141 L 372.0293,66.369141 L 372.0293,69.064453 M 372.05273,76.599609 L 375.47461,76.599609 C 376.4121,76.599616 377.09179,76.416023 377.51367,76.048828 C 377.93554,75.673836 378.14647,75.080087 378.14648,74.267578 C 378.14647,73.509776 377.93554,72.939464 377.51367,72.556641 C 377.09179,72.166027 376.47069,71.970715 375.65039,71.970703 L 372.05273,71.970703 L 372.05273,76.599609"
+ id="text6019" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 428.08594,66.322266 L 431.67188,66.322266 L 431.67188,77.150391 C 431.67187,78.486333 431.93749,79.462895 432.46875,80.080078 C 432.99999,80.689456 433.84374,80.994143 435,80.994141 C 436.17187,80.994143 437.02343,80.689456 437.55469,80.080078 C 438.09374,79.470707 438.36327,78.494146 438.36328,77.150391 L 438.36328,66.322266 L 441.91406,66.322266 L 441.91406,77.537109 C 441.91405,79.654301 441.3203,81.279299 440.13281,82.412109 C 438.95311,83.544922 437.24999,84.111328 435.02344,84.111328 C 432.78124,84.111328 431.0625,83.548828 429.86719,82.423828 C 428.67969,81.291018 428.08594,79.662113 428.08594,77.537109 L 428.08594,66.322266 M 435.73828,64.166016 L 435.73828,61.283203 L 438.38672,61.283203 L 438.38672,64.166016 L 435.73828,64.166016 M 431.66016,64.166016 L 431.66016,61.283203 L 434.30859,61.283203 L 434.30859,64.166016 L 431.66016,64.166016"
+ id="text6023" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 488.08594,66.105469 L 491.67188,66.105469 L 491.67188,76.933594 C 491.67187,78.269536 491.93749,79.246098 492.46875,79.863281 C 492.99999,80.472659 493.84374,80.777346 495,80.777344 C 496.17187,80.777346 497.02343,80.472659 497.55469,79.863281 C 498.09374,79.25391 498.36327,78.277349 498.36328,76.933594 L 498.36328,66.105469 L 501.91406,66.105469 L 501.91406,77.320313 C 501.91405,79.437504 501.3203,81.062502 500.13281,82.195313 C 498.95311,83.328125 497.24999,83.894531 495.02344,83.894531 C 492.78124,83.894531 491.0625,83.332031 489.86719,82.207031 C 488.67969,81.074221 488.08594,79.445316 488.08594,77.320313 L 488.08594,66.105469 M 498.45703,60.304688 L 494.78906,64.640625 L 493.125,64.640625 L 495.43359,60.304688 L 498.45703,60.304688"
+ id="text6029" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 552.43945,83.630859 L 552.43945,66.369141 L 555.99023,66.369141 L 555.99023,83.630859 L 552.43945,83.630859 M 557.66602,60.521484 L 553.99805,64.857422 L 552.33398,64.857422 L 554.64258,60.521484 L 557.66602,60.521484"
+ id="text6033" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 610.18359,75 C 610.18359,76.898444 610.60546,78.375005 611.44922,79.429688 C 612.29296,80.476566 613.47265,81.000003 614.98828,81 C 616.51952,81.000003 617.71093,80.476566 618.5625,79.429688 C 619.41405,78.375005 619.83983,76.898444 619.83984,75 C 619.83983,73.101573 619.41405,71.628918 618.5625,70.582031 C 617.71093,69.527358 616.51952,69.000015 614.98828,69 C 613.47265,69.000015 612.29296,69.523452 611.44922,70.570313 C 610.60546,71.617199 610.18359,73.093761 610.18359,75 M 606.5625,75 C 606.5625,72.210949 607.32031,70.000014 608.83594,68.367188 C 610.35937,66.726579 612.41015,65.906268 614.98828,65.90625 C 617.56639,65.906268 619.61717,66.726579 621.14063,68.367188 C 622.67186,70.007826 623.43748,72.218761 623.4375,75 C 623.43748,77.781256 622.67186,79.992191 621.14063,81.632813 C 619.61717,83.273438 617.56639,84.09375 614.98828,84.09375 C 612.41015,84.09375 610.35937,83.273438 608.83594,81.632813 C 607.32031,79.992191 606.5625,77.781256 606.5625,75 M 618.44531,60.503906 L 614.77734,64.839844 L 613.11328,64.839844 L 615.42188,60.503906 L 618.44531,60.503906"
+ id="text6037" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 670.18359,75.017578 C 670.18359,76.916022 670.60546,78.392583 671.44922,79.447266 C 672.29296,80.494144 673.47265,81.017581 674.98828,81.017578 C 676.51952,81.017581 677.71093,80.494144 678.5625,79.447266 C 679.41405,78.392583 679.83983,76.916022 679.83984,75.017578 C 679.83983,73.119151 679.41405,71.646496 678.5625,70.599609 C 677.71093,69.544936 676.51952,69.017593 674.98828,69.017578 C 673.47265,69.017593 672.29296,69.54103 671.44922,70.587891 C 670.60546,71.634778 670.18359,73.111339 670.18359,75.017578 M 666.5625,75.017578 C 666.5625,72.228527 667.32031,70.017592 668.83594,68.384766 C 670.35937,66.744158 672.41015,65.923846 674.98828,65.923828 C 677.56639,65.923846 679.61717,66.744158 681.14063,68.384766 C 682.67186,70.025404 683.43748,72.23634 683.4375,75.017578 C 683.43748,77.798834 682.67186,80.009769 681.14063,81.650391 C 679.61717,83.291016 677.56639,84.111328 674.98828,84.111328 C 672.41015,84.111328 670.35937,83.291016 668.83594,81.650391 C 667.32031,80.009769 666.5625,77.798834 666.5625,75.017578 M 675.72656,64.166016 L 675.72656,61.283203 L 678.375,61.283203 L 678.375,64.166016 L 675.72656,64.166016 M 671.64844,64.166016 L 671.64844,61.283203 L 674.29688,61.283203 L 674.29688,64.166016 L 671.64844,64.166016"
+ id="text6041" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 735.5332,106.35352 L 735.5332,103.35352 L 739.44727,99.966797 L 739.44727,102.75586 L 737.04492,104.8418 L 739.44727,106.92773 L 739.44727,109.74023 L 735.5332,106.35352 M 730.4707,106.35352 L 730.4707,103.35352 L 734.4082,99.966797 L 734.4082,102.75586 L 732.00586,104.8418 L 734.4082,106.92773 L 734.4082,109.74023 L 730.4707,106.35352"
+ id="text6045" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 799.44727,103.3418 L 799.44727,106.3418 L 795.5332,109.72852 L 795.5332,106.93945 L 797.93555,104.83008 L 795.5332,102.76758 L 795.5332,99.955078 L 799.44727,103.3418 M 794.4082,103.3418 L 794.4082,106.3418 L 790.4707,109.72852 L 790.4707,106.93945 L 792.86133,104.83008 L 790.4707,102.76758 L 790.4707,99.955078 L 794.4082,103.3418"
+ id="text6051" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 883.81641,76.535881 L 886.23047,76.535881 L 886.23047,85.418694 L 883.81641,85.418694 L 883.81641,76.535881 M 883.81641,64.535881 L 886.23047,64.535881 L 886.23047,73.418694 L 883.81641,73.418694 L 883.81641,64.535881 M 877.98047,101.19213 L 892.01953,101.19213 L 892.01953,107.07494 L 889.6875,107.07494 L 889.6875,103.48901 L 877.98047,103.48901 L 877.98047,101.19213"
+ id="text6057" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 149.9707,129.82617 L 147.58008,137.17383 L 152.37305,137.17383 L 149.9707,129.82617 M 147.9082,126.36914 L 152.00977,126.36914 L 158.23242,143.63086 L 154.50586,143.63086 L 153.33398,140.08008 L 146.64258,140.08008 L 145.50586,143.63086 L 141.76758,143.63086 L 147.9082,126.36914 M 153.42773,120.52148 L 149.75977,124.85742 L 148.0957,124.85742 L 150.4043,120.52148 L 153.42773,120.52148"
+ id="text6065" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 211.40625,137.91797 C 211.71874,137.73829 211.95312,137.53907 212.10938,137.32031 C 212.26562,137.10157 212.34374,136.86719 212.34375,136.61719 C 212.34374,136.31251 212.2539,136.0547 212.07422,135.84375 C 211.89452,135.62501 211.52343,135.3711 210.96094,135.08203 L 207.85547,133.47656 C 207.55078,133.65626 207.3164,133.85938 207.15234,134.08594 C 206.99609,134.31251 206.91797,134.5547 206.91797,134.8125 C 206.91797,135.1172 207.03125,135.38673 207.25781,135.62109 C 207.49218,135.84766 208.0039,136.16407 208.79297,136.57031 L 211.40625,137.91797 M 205.03125,141.75 L 207.92578,141.75 C 207.98828,142.35938 208.16796,142.8125 208.46484,143.10938 C 208.76953,143.40625 209.19921,143.55469 209.75391,143.55469 C 210.26952,143.55469 210.67968,143.43359 210.98438,143.19141 C 211.28905,142.94141 211.4414,142.60547 211.44141,142.18359 C 211.4414,141.83985 211.32812,141.54297 211.10156,141.29297 C 210.87499,141.03516 210.42577,140.74219 209.75391,140.41406 L 206.95313,138.99609 C 206.0625,138.55079 205.39844,138.03907 204.96094,137.46094 C 204.52344,136.88282 204.30469,136.23438 204.30469,135.51563 C 204.30469,134.82032 204.47266,134.21095 204.80859,133.6875 C 205.15234,133.15626 205.65625,132.71485 206.32031,132.36328 C 205.92969,132.01173 205.64062,131.62892 205.45313,131.21484 C 205.26562,130.79298 205.17187,130.32814 205.17188,129.82031 C 205.17187,128.64845 205.57422,127.70705 206.37891,126.99609 C 207.18359,126.27736 208.2539,125.91799 209.58984,125.91797 C 210.96484,125.91799 212.04296,126.26955 212.82422,126.97266 C 213.60546,127.6758 214.0078,128.64845 214.03125,129.89063 L 211.26563,129.89063 C 211.24999,129.3672 211.09374,128.96876 210.79688,128.69531 C 210.50781,128.42189 210.08984,128.28517 209.54297,128.28516 C 209.05859,128.28517 208.68359,128.39064 208.41797,128.60156 C 208.16015,128.81251 208.03125,129.10939 208.03125,129.49219 C 208.03125,129.8047 208.18359,130.09767 208.48828,130.37109 C 208.80078,130.63673 209.35937,130.95704 210.16406,131.33203 L 212.13281,132.24609 C 213.1328,132.72267 213.87108,133.25392 214.34766,133.83984 C 214.82421,134.41798 215.06249,135.08595 215.0625,135.84375 C 215.06249,136.55469 214.8828,137.17579 214.52344,137.70703 C 214.17186,138.23047 213.66405,138.63672 213,138.92578 C 213.45312,139.32422 213.79296,139.76563 214.01953,140.25 C 214.24608,140.73438 214.35936,141.26563 214.35938,141.84375 C 214.35936,143.04688 213.92968,144.03906 213.07031,144.82031 C 212.21093,145.60937 211.10546,146.0039 209.75391,146.00391 C 208.26953,146.0039 207.1289,145.64453 206.33203,144.92578 C 205.53515,144.20703 205.10156,143.14844 205.03125,141.75 M 203.97656,173.625 L 203.97656,160.59375 C 203.97656,159.29689 204.48047,158.25002 205.48828,157.45313 C 206.49609,156.64845 207.83984,156.24611 209.51953,156.24609 C 211.23046,156.24611 212.5703,156.63674 213.53906,157.41797 C 214.5078,158.19923 214.99217,159.27345 214.99219,160.64063 C 214.99217,161.48439 214.84764,162.17579 214.55859,162.71484 C 214.27733,163.25392 213.83983,163.66798 213.24609,163.95703 C 214.16796,164.32423 214.85936,164.86329 215.32031,165.57422 C 215.78905,166.28516 216.02342,167.16016 216.02344,168.19922 C 216.02342,169.94922 215.51952,171.36328 214.51172,172.44141 C 213.5039,173.51953 212.18358,174.05859 210.55078,174.05859 C 210.32421,174.05859 210.0703,174.04687 209.78906,174.02344 C 209.51562,174 209.21874,173.96484 208.89844,173.91797 L 208.89844,171.17578 C 208.99999,171.19141 209.10156,171.20313 209.20313,171.21094 C 209.31249,171.21875 209.47265,171.22266 209.68359,171.22266 C 210.60546,171.22266 211.3164,170.96875 211.81641,170.46094 C 212.3164,169.94532 212.5664,169.21485 212.56641,168.26953 C 212.5664,167.35548 212.29296,166.66016 211.74609,166.18359 C 211.20702,165.70704 210.41796,165.46876 209.37891,165.46875 L 209.0625,165.46875 L 209.07422,163.06641 C 209.12109,163.07423 209.17187,163.08204 209.22656,163.08984 C 209.28124,163.08985 209.36327,163.08985 209.47266,163.08984 C 210.16796,163.08985 210.6953,162.91798 211.05469,162.57422 C 211.42187,162.22267 211.60546,161.71486 211.60547,161.05078 C 211.60546,160.38673 211.41405,159.88283 211.03125,159.53906 C 210.65624,159.18751 210.10546,159.01173 209.37891,159.01172 C 208.70703,159.01173 208.19531,159.20705 207.84375,159.59766 C 207.49218,159.98048 207.3164,160.54298 207.31641,161.28516 L 207.31641,173.625 L 203.97656,173.625"
+ id="text6073" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 267.09961,140.51367 L 269.94727,140.51367 C 271.60351,140.51367 272.80272,140.08008 273.54492,139.21289 C 274.2871,138.34571 274.65819,136.94727 274.6582,135.01758 C 274.65819,133.09571 274.31053,131.68165 273.61523,130.77539 C 272.92772,129.86134 271.8496,129.40431 270.38086,129.4043 L 267.09961,129.4043 L 267.09961,133.23633 L 270.88477,133.23633 L 270.88477,135.47461 L 267.09961,135.47461 L 267.09961,140.51367 M 263.61914,143.63086 L 263.61914,135.47461 L 261.74414,135.47461 L 261.74414,133.23633 L 263.61914,133.23633 L 263.61914,126.36914 L 270.4043,126.36914 C 273.04491,126.36916 275.01366,127.084 276.31055,128.51367 C 277.60741,129.93556 278.25584,132.10353 278.25586,135.01758 C 278.25584,136.60352 278.01756,137.99805 277.54102,139.20117 C 277.07225,140.4043 276.38084,141.36914 275.4668,142.0957 C 274.77928,142.64258 273.99413,143.03711 273.11133,143.2793 C 272.23632,143.51367 271.00585,143.63086 269.41992,143.63086 L 263.61914,143.63086"
+ id="text6077" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 626.72461,139.55273 C 627.17773,140.04493 627.68945,140.41211 628.25977,140.6543 C 628.83007,140.89649 629.47069,141.01758 630.18164,141.01758 C 631.71288,141.01758 632.90428,140.49414 633.75586,139.44727 C 634.60741,138.39258 635.03319,136.91602 635.0332,135.01758 C 635.03319,134.24415 634.96288,133.54493 634.82227,132.91992 C 634.68163,132.28712 634.4785,131.73634 634.21289,131.26758 L 626.72461,139.55273 M 625.98633,138.36914 L 633.39258,130.21289 C 632.9785,129.81447 632.50585,129.51759 631.97461,129.32227 C 631.44335,129.11916 630.84569,129.01759 630.18164,129.01758 C 628.66601,129.01759 627.48632,129.54103 626.64258,130.58789 C 625.79882,131.63478 625.37695,133.11134 625.37695,135.01758 C 625.37695,135.72071 625.42382,136.34571 625.51758,136.89258 C 625.61914,137.43946 625.77539,137.93165 625.98633,138.36914 M 621.36914,143.36133 L 623.51367,140.9707 C 622.91992,140.16602 622.47851,139.27149 622.18945,138.28711 C 621.90039,137.29493 621.75586,136.20509 621.75586,135.01758 C 621.75586,132.22853 622.51367,130.01759 624.0293,128.38477 C 625.55273,126.74416 627.60351,125.92385 630.18164,125.92383 C 631.28319,125.92385 632.27147,126.06447 633.14648,126.3457 C 634.02928,126.62697 634.84178,127.06056 635.58398,127.64648 L 637.30664,125.70117 L 638.45508,126.73242 L 636.63867,128.70117 C 637.30272,129.5215 637.79881,130.45509 638.12695,131.50195 C 638.46287,132.54884 638.63084,133.72071 638.63086,135.01758 C 638.63084,137.79883 637.86912,140.00977 636.3457,141.65039 C 634.82225,143.29102 632.76757,144.11133 630.18164,144.11133 C 629.01757,144.11133 627.96679,143.94727 627.0293,143.61914 C 626.0996,143.29102 625.26367,142.79102 624.52148,142.11914 L 622.50586,144.4043 L 621.36914,143.36133"
+ id="text6081" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 690,127.98633 C 689.42968,127.98634 688.9414,128.18556 688.53516,128.58398 C 688.13672,128.98244 687.9375,129.4629 687.9375,130.02539 C 687.9375,130.60353 688.13672,131.09181 688.53516,131.49023 C 688.93359,131.88868 689.42187,132.0879 690,132.08789 C 690.5625,132.0879 691.04296,131.88478 691.44141,131.47852 C 691.83984,131.07228 692.03906,130.5879 692.03906,130.02539 C 692.03906,129.4629 691.83984,128.98244 691.44141,128.58398 C 691.04296,128.18556 690.5625,127.98634 690,127.98633 M 690,126.47461 C 690.98437,126.47463 691.82031,126.82619 692.50781,127.5293 C 693.20312,128.22462 693.55077,129.06447 693.55078,130.04883 C 693.55077,131.0254 693.20312,131.86134 692.50781,132.55664 C 691.81249,133.25196 690.96875,133.59962 689.97656,133.59961 C 688.99218,133.59962 688.15625,133.25587 687.46875,132.56836 C 686.78906,131.88087 686.44922,131.04103 686.44922,130.04883 C 686.44922,129.05666 686.79297,128.21291 687.48047,127.51758 C 688.17578,126.82228 689.01562,126.47463 690,126.47461 M 695.51953,156.29883 L 695.51953,157.59961 L 694.19531,157.59961 L 694.19531,173.63086 L 692.42578,173.63086 L 692.42578,157.59961 L 690.57422,157.59961 L 690.57422,173.63086 L 688.78125,173.63086 L 688.78125,164.44336 C 687.47656,164.39649 686.43359,164.00196 685.65234,163.25977 C 684.87109,162.51759 684.48047,161.56056 684.48047,160.38867 C 684.48047,159.15431 684.89844,158.16603 685.73438,157.42383 C 686.57031,156.67385 687.67968,156.29885 689.0625,156.29883 L 695.51953,156.29883"
+ id="text6085" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 373.13672,6.5214844 L 376.08984,6.5214844 L 381.72656,13.095703 L 378.97266,13.095703 L 374.625,8.7480469 L 370.25391,13.095703 L 367.5,13.095703 L 373.13672,6.5214844"
+ id="text6091" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 750.67969,128.67773 L 750.67969,125.79492 L 753.32813,125.79492 L 753.32813,128.67773 L 750.67969,128.67773 M 746.60156,128.67773 L 746.60156,125.79492 L 749.25,125.79492 L 749.25,128.67773 L 746.60156,128.67773 M 753.39844,155.0332 L 749.73047,159.36914 L 748.06641,159.36914 L 750.375,155.0332 L 753.39844,155.0332"
+ id="text6099" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 171.07031,197.29102 L 175.92188,197.29102 L 175.92188,189.29883 L 173.97656,189.29883 L 171.07031,197.29102 M 165,203.63086 L 171.80859,186.36914 L 187.81641,186.36914 L 187.81641,189.36914 L 179.34375,189.36914 L 179.34375,193.04883 L 187.05469,193.04883 L 187.05469,196.00195 L 179.34375,196.00195 L 179.34375,200.44336 L 188.25,200.44336 L 188.25,203.63086 L 175.92188,203.63086 L 175.92188,200.08008 L 170.0625,200.08008 L 168.76172,203.63086 L 165,203.63086"
+ id="text6105" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 300.46875,193.23633 C 300.32031,193.22071 300.20312,193.20899 300.11719,193.20117 C 300.03906,193.19337 299.96484,193.18946 299.89453,193.18945 C 299.05859,193.18946 298.42578,193.53321 297.99609,194.2207 C 297.5664,194.90821 297.35156,195.92384 297.35156,197.26758 C 297.35156,198.04102 297.4375,198.70899 297.60938,199.27148 C 297.78906,199.83399 298.04687,200.28711 298.38281,200.63086 L 300.46875,193.23633 M 296.68359,206.49023 L 297.48047,203.63086 C 296.30859,203.13867 295.42187,202.35352 294.82031,201.27539 C 294.21875,200.19727 293.91797,198.85352 293.91797,197.24414 C 293.91797,195.11134 294.45312,193.43946 295.52344,192.22852 C 296.60156,191.01759 298.07421,190.41212 299.94141,190.41211 C 300.15234,190.41212 300.35937,190.41994 300.5625,190.43555 C 300.76562,190.45119 300.96874,190.47462 301.17188,190.50586 L 301.69922,188.56055 L 302.97656,188.56055 L 302.34375,190.78711 C 303.32811,191.09181 304.09765,191.63478 304.65234,192.41602 C 305.20702,193.18946 305.52733,194.17774 305.61328,195.38086 L 302.32031,195.36914 C 302.28124,194.98634 302.1914,194.65821 302.05078,194.38477 C 301.91796,194.10353 301.72265,193.85743 301.46484,193.64648 L 299.36719,201.13477 C 299.38281,201.13477 299.40624,201.13867 299.4375,201.14648 C 299.67187,201.16992 299.85156,201.18164 299.97656,201.18164 C 300.66406,201.18164 301.19921,200.99024 301.58203,200.60742 C 301.97265,200.22461 302.23437,199.62305 302.36719,198.80273 L 305.66016,198.80273 C 305.54296,200.41993 304.96874,201.70117 303.9375,202.64648 C 302.91405,203.5918 301.59374,204.06445 299.97656,204.06445 C 299.76562,204.06445 299.55077,204.05664 299.33203,204.04102 C 299.11328,204.02539 298.88671,204.00195 298.65234,203.9707 L 297.96094,206.49023 L 296.68359,206.49023 M 304.19531,223.0957 L 301.99219,223.0957 C 301.92968,222.54884 301.72264,222.12696 301.37109,221.83008 C 301.01952,221.5254 300.55468,221.37306 299.97656,221.37305 C 299.26562,221.37306 298.70702,221.69337 298.30078,222.33398 C 297.89452,222.96681 297.6914,223.85353 297.69141,224.99414 C 297.6914,226.14259 297.89452,227.01758 298.30078,227.61914 C 298.70702,228.22071 299.29687,228.52149 300.07031,228.52148 C 300.64061,228.52149 301.09765,228.35743 301.44141,228.0293 C 301.78514,227.70118 301.99218,227.23633 302.0625,226.63477 L 304.32422,226.62305 C 304.2617,227.70899 303.83592,228.58008 303.04688,229.23633 C 302.2578,229.89258 301.24218,230.22071 300,230.2207 C 298.54687,230.22071 297.39843,229.75977 296.55469,228.83789 C 295.71874,227.91602 295.30078,226.65821 295.30078,225.06445 C 295.30078,223.45509 295.72656,222.17384 296.57813,221.2207 C 297.43749,220.25978 298.58593,219.77931 300.02344,219.7793 C 301.21093,219.77931 302.18749,220.084 302.95313,220.69336 C 303.72655,221.30275 304.14061,222.10353 304.19531,223.0957 M 300,217.7168 C 298.99999,217.71681 298.06249,217.8965 297.1875,218.25586 C 296.32031,218.61525 295.54687,219.13869 294.86719,219.82617 C 294.17187,220.52931 293.64062,221.32618 293.27344,222.2168 C 292.90625,223.09962 292.72265,224.0254 292.72266,224.99414 C 292.72265,225.97071 292.90625,226.89649 293.27344,227.77148 C 293.64062,228.64649 294.17187,229.43164 294.86719,230.12695 C 295.55468,230.81446 296.33984,231.3418 297.22266,231.70898 C 298.10546,232.07617 299.03124,232.25977 300,232.25977 C 300.96874,232.25977 301.89452,232.07617 302.77734,231.70898 C 303.66796,231.3418 304.46874,230.80664 305.17969,230.10352 C 305.86717,229.43164 306.3867,228.66211 306.73828,227.79492 C 307.09764,226.92774 307.27733,225.99415 307.27734,224.99414 C 307.27733,224.00978 307.09373,223.08009 306.72656,222.20508 C 306.36717,221.32228 305.84373,220.53712 305.15625,219.84961 C 304.46092,219.15431 303.67577,218.62697 302.80078,218.26758 C 301.92577,217.90041 300.99218,217.71681 300,217.7168 M 299.97656,216.27539 C 301.16405,216.27541 302.28514,216.49416 303.33984,216.93164 C 304.40233,217.36916 305.35155,218.00587 306.1875,218.8418 C 307.0078,219.66212 307.63279,220.60353 308.0625,221.66602 C 308.49217,222.72071 308.70701,223.8379 308.70703,225.01758 C 308.70701,226.20509 308.49217,227.31446 308.0625,228.3457 C 307.64061,229.37696 307.01561,230.29883 306.1875,231.11133 C 305.3203,231.95508 304.35155,232.60352 303.28125,233.05664 C 302.21093,233.50195 301.10936,233.72461 299.97656,233.72461 C 298.82812,233.72461 297.73046,233.50586 296.68359,233.06836 C 295.64453,232.62305 294.70312,231.97852 293.85938,231.13477 C 293.02343,230.30664 292.38672,229.36914 291.94922,228.32227 C 291.51172,227.26758 291.29297,226.16602 291.29297,225.01758 C 291.29297,223.85353 291.51172,222.74415 291.94922,221.68945 C 292.38672,220.62697 293.02343,219.66994 293.85938,218.81836 C 294.67968,217.99025 295.60937,217.36134 296.64844,216.93164 C 297.68749,216.49416 298.79687,216.27541 299.97656,216.27539"
+ id="text6109" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 472.88672,203.63086 L 472.88672,186.36914 L 476.60156,186.36914 L 483.60938,198.22852 L 483.60938,186.36914 L 487.11328,186.36914 L 487.11328,203.63086 L 483.44531,203.63086 L 476.39063,191.77148 L 476.39063,203.63086 L 472.88672,203.63086 M 483.82031,181.0957 C 483.61717,182.07229 483.31639,182.79494 482.91797,183.26367 C 482.51952,183.72463 482.0078,183.9551 481.38281,183.95508 C 481.21874,183.9551 481.0664,183.94729 480.92578,183.93164 C 480.78515,183.90822 480.64452,183.87307 480.50391,183.82617 L 479.48438,183.52148 C 479.33593,183.48244 479.19921,183.4551 479.07422,183.43945 C 478.94921,183.41604 478.82812,183.40432 478.71094,183.4043 C 478.44531,183.40432 478.23046,183.47463 478.06641,183.61523 C 477.90234,183.75588 477.77343,183.98635 477.67969,184.30664 L 476.39063,184.30664 C 476.57812,183.36135 476.86718,182.66604 477.25781,182.2207 C 477.64843,181.77541 478.15624,181.55276 478.78125,181.55273 C 478.9453,181.55276 479.10937,181.56838 479.27344,181.59961 C 479.43749,181.62307 479.60937,181.66213 479.78906,181.7168 L 480.87891,182.00977 C 480.97265,182.04104 481.0703,182.06447 481.17188,182.08008 C 481.28124,182.09572 481.39843,182.10354 481.52344,182.10352 C 481.77343,182.10354 481.98046,182.02151 482.14453,181.85742 C 482.3164,181.68557 482.4453,181.43166 482.53125,181.0957 L 483.82031,181.0957"
+ id="text6113" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 535.83398,220.83432 L 539.2207,220.83432 L 538.33008,225.93198 C 538.21289,226.55698 538.12304,227.15073 538.06055,227.71323 C 537.99804,228.26792 537.96679,228.72104 537.9668,229.0726 C 537.96679,229.79917 538.13085,230.34214 538.45898,230.70151 C 538.7871,231.05307 539.2871,231.22885 539.95898,231.22885 C 540.74023,231.22885 541.3457,230.90854 541.77539,230.26791 C 542.21288,229.62729 542.57616,228.49058 542.86523,226.85776 L 543.91992,220.83432 L 547.30664,220.83432 L 545.04492,233.6312 L 541.9043,233.6312 L 542.11523,232.2601 C 541.7871,232.86948 541.41991,233.31479 541.01367,233.59604 C 540.61523,233.87729 540.14257,234.01791 539.5957,234.01791 C 539.07226,234.01791 538.60742,233.90073 538.20117,233.66635 C 537.79492,233.43979 537.42773,233.08432 537.09961,232.59995 L 536.04492,238.76401 L 532.69336,238.76401 L 535.83398,220.83432"
+ id="text6117" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 607.875,197.70117 C 607.74217,199.66211 606.98436,201.22071 605.60156,202.37695 C 604.22655,203.5332 602.42968,204.11133 600.21094,204.11133 C 597.65624,204.11133 595.66796,203.31445 594.24609,201.7207 C 592.83203,200.12696 592.125,197.89258 592.125,195.01758 C 592.125,192.08009 592.84765,189.83009 594.29297,188.26758 C 595.73828,186.7051 597.8164,185.92385 600.52734,185.92383 C 602.73046,185.92385 604.46874,186.46291 605.74219,187.54102 C 607.02342,188.61134 607.72655,190.12697 607.85156,192.08789 L 604.34766,192.08789 C 604.19921,191.11134 603.80077,190.36915 603.15234,189.86133 C 602.50389,189.34572 601.6289,189.08791 600.52734,189.08789 C 598.96484,189.08791 597.77734,189.59181 596.96484,190.59961 C 596.15234,191.60743 595.74609,193.08009 595.74609,195.01758 C 595.74609,196.89258 596.14843,198.3418 596.95313,199.36523 C 597.76562,200.38868 598.91796,200.90039 600.41016,200.90039 C 601.48827,200.90039 602.37108,200.62696 603.05859,200.08008 C 603.74608,199.52539 604.19139,198.73243 604.39453,197.70117 L 607.875,197.70117 M 597.62109,208.76367 L 597.62109,207.25195 C 598.24609,207.41601 598.81249,207.54101 599.32031,207.62695 C 599.82812,207.71289 600.26171,207.75586 600.62109,207.75586 C 601.02733,207.75586 601.32421,207.68554 601.51172,207.54492 C 601.69921,207.41211 601.79296,207.19726 601.79297,206.90039 C 601.79296,206.60351 601.68358,206.39258 601.46484,206.26758 C 601.24608,206.14258 600.8828,206.08008 600.375,206.08008 C 600.1953,206.08008 600.05858,206.08008 599.96484,206.08008 C 599.87108,206.08789 599.78515,206.0957 599.70703,206.10352 L 599.70703,203.63086 L 600.90234,203.63086 L 600.90234,204.68555 L 601.07813,204.68555 C 601.99218,204.68555 602.67968,204.87305 603.14063,205.24805 C 603.60155,205.62304 603.83202,206.18164 603.83203,206.92383 C 603.83202,207.70507 603.57421,208.29101 603.05859,208.68164 C 602.54296,209.07226 601.76952,209.26757 600.73828,209.26758 C 600.33983,209.26757 599.87108,209.2246 599.33203,209.13867 C 598.80077,209.05273 598.23046,208.92773 597.62109,208.76367"
+ id="text6121" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 721.7168,216.36914 L 721.7168,219.82617 L 718.23633,219.82617 L 718.23633,216.36914 L 721.7168,216.36914 M 721.55273,221.39648 C 721.55273,221.47462 721.55663,221.5879 721.56445,221.73633 C 721.57226,221.88478 721.57616,221.99415 721.57617,222.06445 C 721.57616,222.74415 721.50194,223.31446 721.35352,223.77539 C 721.20507,224.23634 720.96679,224.66602 720.63867,225.06445 C 720.38085,225.36134 720.00195,225.70118 719.50195,226.08398 C 719.00976,226.4668 718.69335,226.74415 718.55273,226.91602 C 718.24804,227.25977 718.0332,227.57618 717.9082,227.86523 C 717.79101,228.1543 717.73242,228.4668 717.73242,228.80273 C 717.73242,229.55274 717.93554,230.13477 718.3418,230.54883 C 718.74804,230.95508 719.32226,231.15821 720.06445,231.1582 C 720.79882,231.15821 721.38085,230.91211 721.81055,230.41992 C 722.24023,229.91993 722.4746,229.22071 722.51367,228.32227 L 725.8418,228.32227 L 725.8418,228.68555 C 725.84178,230.3418 725.31835,231.66211 724.27148,232.64648 C 723.23241,233.62305 721.83007,234.11133 720.06445,234.11133 C 718.25976,234.11133 716.82226,233.64648 715.75195,232.7168 C 714.68945,231.7793 714.1582,230.53321 714.1582,228.97852 C 714.1582,228.40821 714.2168,227.90821 714.33398,227.47852 C 714.45117,227.04883 714.63086,226.65821 714.87305,226.30664 C 715.18554,225.86915 715.67773,225.39259 716.34961,224.87695 C 717.02148,224.36134 717.43554,224.03321 717.5918,223.89258 C 717.88867,223.60353 718.0996,223.29884 718.22461,222.97852 C 718.35742,222.6504 718.42382,222.25587 718.42383,221.79492 C 718.42382,221.75587 718.41992,221.69337 718.41211,221.60742 C 718.40429,221.51368 718.40039,221.44337 718.40039,221.39648 L 721.55273,221.39648"
+ id="text6131" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Matrix Unicode"
+ d=""
+ id="text6955" />
+ </g>
+</svg>
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/base_layer.PNG b/keyboards/s60-x/keymaps/ansi_qwertz/docs/base_layer.PNG
new file mode 100644
index 000000000..c730c2d65
--- /dev/null
+++ b/keyboards/s60-x/keymaps/ansi_qwertz/docs/base_layer.PNG
Binary files differ
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/function_layer.PNG b/keyboards/s60-x/keymaps/ansi_qwertz/docs/function_layer.PNG
new file mode 100644
index 000000000..fae2439ca
--- /dev/null
+++ b/keyboards/s60-x/keymaps/ansi_qwertz/docs/function_layer.PNG
Binary files differ
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/gaming_layer.PNG b/keyboards/s60-x/keymaps/ansi_qwertz/docs/gaming_layer.PNG
new file mode 100644
index 000000000..59b202be2
--- /dev/null
+++ b/keyboards/s60-x/keymaps/ansi_qwertz/docs/gaming_layer.PNG
Binary files differ
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/keymap.c b/keyboards/s60-x/keymaps/ansi_qwertz/keymap.c
new file mode 100644
index 000000000..317a245be
--- /dev/null
+++ b/keyboards/s60-x/keymaps/ansi_qwertz/keymap.c
@@ -0,0 +1,237 @@
+/*
+Copyright 2016 Julien Pecqueur <julien@peclu.net>
+Copyright 2016 Felix Uhl <ifreilicht@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/>.
+*/
+
+#include "s60-x.h"
+
+//make keymap a little easier to read
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+#define ONESHOT_TAP_TOGGLE 2
+#define ONESHOT_TIMEOUT 1
+
+//uncomment to activate dead keys
+//#define DONT_REVIVE_DEADKEYS 1
+
+//Function keycodes for better readability
+//SpaceFN
+//OneShot LeftShift
+//GamingMode Lock (disables SpaceFn and OneShot LShift)
+//Function
+//Mute microphone
+#define KC_SPACEFN KC_FN0
+#define KC_OSLS KC_FN3
+#define KC_GMLK KC_FN1
+#define KC_FUNC KC_FN2
+#define MICMUTE RCTL(KC_LCTL)
+
+enum function_codes {
+ F_SPACEFN = 0,
+ F_OSLS = 3,
+ F_GMLK = 1,
+ F_FUNC = 2
+};
+
+enum layer_names {
+ DEFAULT,
+ GAMING,
+ FUNCTION
+};
+
+enum languages {
+ GERMAN
+};
+
+#define LANGUAGE GERMAN
+
+enum custom_keycodes {
+ KC_CM_A = SAFE_RANGE,
+// KC_CM_B,
+ KC_CM_C,
+// KC_CM_D,
+ KC_CM_E,
+// KC_CM_F,
+ KC_CM_G,
+// KC_CM_H,
+ KC_CM_I,
+// KC_CM_J,
+ KC_CM_K,
+ KC_CM_L,
+ KC_CM_M,
+ KC_CM_N,
+ KC_CM_O,
+ KC_CM_P,
+// KC_CM_Q,
+ KC_CM_R,
+ KC_CM_S,
+// KC_CM_T,
+ KC_CM_U,
+// KC_CM_V,
+ KC_CM_W,
+// KC_CM_X,
+ KC_CM_Y,
+ KC_CM_Z
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Layout 0: Default Layer
+ * ,-----------------------------------------------------------.
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \|Del|
+ * |-----------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Z| U| I| O| P| [| ]|BckSp|
+ * |-----------------------------------------------------------|
+ * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return |
+ * |-----------------------------------------------------------|
+ * |Shift | Y| X| C| V| B| N| M| ,| .| /| Up |RSft|
+ * |-----------------------------------------------------------|
+ * |Fn2 |Gui |Alt | SpaceFn |Alt |Left|Down|Right|
+ * `-----------------------------------------------------------'
+ */
+ [DEFAULT] = KEYMAP(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \
+ KC_LSFT, KC_NUBS, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_UP, KC_RSFT, \
+ KC_FUNC, KC_LGUI, KC_LALT, KC_SPACEFN, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ /* Layout 1: Gaming Layer, SpaceFn disabled
+ * ,-----------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------|
+ * | | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------|
+ * | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------|
+ * | | | | | | | | | | | | |Fn1 |
+ * |-----------------------------------------------------------|
+ * | |RSft| | Space | | | | |
+ * `-----------------------------------------------------------'
+ */
+ [GAMING] = KEYMAP(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_GMLK, \
+ _______, KC_RSFT, _______, KC_SPC, _______, _______, _______, _______
+ ),
+
+ /* Layout 2: Function Layer
+ * MicMute requires special software to be installed. Check readme.md for more information
+ * ,-----------------------------------------------------------.
+ * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|RES|
+ * |-----------------------------------------------------------|
+ * | | | | |Prv|Ply|Nxt| Ü | | Ö | |Prt|Slk|Pau |
+ * |-----------------------------------------------------------|
+ * | | Ä | ß | |Vl-|Mut|Vl+| | | | | |PEnt |
+ * |-----------------------------------------------------------|
+ * | | | | |MicMut|Cal| | | | |Pau |PUp |Fn1 |
+ * |-----------------------------------------------------------|
+ * | | | | | |Home|PDn |End |
+ * `-----------------------------------------------------------'
+ */
+ [FUNCTION] = KEYMAP(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, RESET, \
+ _______, _______, KC_CM_W, KC_CM_E, KC_MPRV, KC_MPLY, KC_MNXT, KC_CM_U, KC_CM_I, KC_CM_O, KC_CM_P, KC_PSCR, KC_SLCK, KC_PAUS, \
+ _______, KC_CM_A, KC_CM_S, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, KC_CM_K, KC_CM_L, _______, _______, _______, KC_PENT, \
+ _______, _______, KC_CM_Y, _______, KC_CM_C, MICMUTE, KC_CALC, KC_CM_N, KC_CM_M, _______, _______, _______, _______, KC_PGUP, KC_GMLK, \
+ _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+ ),
+};
+
+/*
+* Fn action definition
+*/
+const uint16_t PROGMEM fn_actions[] = {
+ [F_SPACEFN] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), // SpaceFn layout 1
+ [F_GMLK] = ACTION_LAYER_TOGGLE(1), // Disable SpaceFn and Oneshot Shift
+ [F_FUNC] = ACTION_LAYER_MOMENTARY(2), // SpaceFn layout 1
+ [F_OSLS] = ACTION_MODS_ONESHOT(MOD_LSFT) // Oneshot Leftshift
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ return MACRO_NONE;
+};
+
+void matrix_init_user(void) {
+
+}
+
+void matrix_scan_user(void) {
+
+}
+
+bool process_german(uint16_t keycode, keyrecord_t *record) {
+ uint16_t send_code = 0;
+ if (record->event.pressed) {
+ switch (keycode) {
+ case KC_CM_A:
+ send_code = KC_Q;
+ break;
+ case KC_CM_O:
+ send_code = KC_P;
+ break;
+ case KC_CM_U:
+ send_code = KC_Y;
+ break;
+ case KC_CM_S:
+ send_code = KC_S;
+ break;
+ }
+
+ if (send_code == 0) {
+ return true;
+ }
+ else {
+ register_code(KC_RALT);
+ register_code(send_code);
+ unregister_code(send_code);
+ unregister_code(KC_RALT);
+ return false;
+ }
+ }
+ return true;
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ //revive dead keys
+#ifndef DONT_REVIVE_DEADKEYS
+ bool shift_active = keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_LSFT));
+ bool altgr_active = keyboard_report->mods & (MOD_BIT(KC_RALT));
+ if ((keycode == KC_QUOT && !altgr_active) ||
+ keycode == KC_GRV ||
+ (keycode == KC_6 && shift_active))
+ {
+ if (record->event.pressed) {
+ register_code(keycode);
+ unregister_code(keycode);
+ register_code(KC_SPACE);
+ unregister_code(KC_SPACE);
+ }
+ return false;
+ }
+#endif
+#if LANGUAGE == GERMAN
+ return process_german(keycode, record);
+#else
+ return true;
+#endif
+}
+
+void led_set_user(uint8_t usb_led) {
+
+} \ No newline at end of file
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md b/keyboards/s60-x/keymaps/ansi_qwertz/readme.md
new file mode 100644
index 000000000..b22010612
--- /dev/null
+++ b/keyboards/s60-x/keymaps/ansi_qwertz/readme.md
@@ -0,0 +1,94 @@
+# ANSI_QWERTZ
+
+[Click here to go to the layers directly.](readme.md#1-layers)
+
+This keymap was specifically designed to support keycaps with ANSI layout and legends, while retaining the possibility of inputting characters
+with diacritics that are normally not used in the english language.
+
+It currently relies on the US-International keyboard layout, which can be installed in any current operating system without the use of third party hardware.
+
+##0 Features
+* Input of letters with diacritics on familiar QWERTZ layout
+* Support for ANSI-legend keycaps
+* Option to "revive" all dead keys
+* Dedicated arrow cluster
+* SpaceFN for easy access to Function keys and diacritic input
+* Locking "Gaming Mode" that disables SpaceFN and allows to bind GUI key in Games
+* Reset key binding, no need to press hardware reset button to program
+* Microphone Mute key (requires 3rd-party software, see below)
+
+###0.0 Languages
+The US-International Layout is currently required for the support of non-english languages. This keymap swaps Y and Z to provide the familiar QWERTZ position for characters when using that layout.
+All diacritic characters are input by either holding `Space` or `Fn` and pressing the corresponding key. For languages that aren't yet supported explicitly,
+one can also use AltGr to input the characters as intended by the US-Intl layout or the dead keys, if they're kept from being [revived](readme.md#04-revive-dead-keys).
+
+The illustration below shows the "US International" layout available in the Language settings of Windows, Linux and Mac OS.
+
+![KB_US-International](docs/KB_US-International.png)
+
+Not all languages are supported by this layout. Linux also offers the "US International Alternative" layout,
+which contains more dead keys to input pretty much every diacritic character in a language using latin letters. More information can be found [here](http://web.archive.org/web/20160818101234/http://dry.sailingissues.com/us-international-keyboard-layout.html).
+
+![KB_US-International-Alternative](docs/KB_US-International-Alternative.png)
+
+####0.0.0 Explicitly Supported Languages
+* German
+
+####0.0.1 Implicitly Supported Languages
+This list only applies to Windows. Linux systems support all languages, see above. This list might be incomplete! Please add your language if you find it's supported.
+
+* French
+
+###0.1 SpaceFN
+SpaceFN basically means that `Space` acts as a normal spacebar when tapped, but acts as a layer-key when held down.
+This means that you can't hold space to output multiple spaces consecutively and that space only registers once released.
+The advantage is that the spacebar is easier to reach than any other `Fn`-key could be.
+
+###0.2 "Gaming Mode"
+To alleviate the problems SpaceFN would cause when gaming, the Gaming Mode is pretty much a layer that can be turned on by pressing Fn+RShift.
+This will turn the double-role Spacebar into a normal one, so the Fn-layer (and thus function and media keys) can only be accessed with the Fn-key.
+It also turns the GUI-key (aka Win-key aka Super-key) into Right Shift, so it can be bound in Games. This is especially useful when playing with ESDF instead of WASD.
+
+###0.3 Mute Microphone
+The function layer has a "Mute Microphone"-key. As this is not an existing media key and you can't normally set a shortcut to this function,
+you need to set this up in software before using it, see below. This key is bound to `RCtrl+LCtrl`, a keycombination that
+no other program in existence uses for anything, at least to my knowledge. It also can't be pressed with this keymap in any other way.
+
+####0.3.0 Linux
+Follow [these instructions](http://askubuntu.com/a/13364).
+
+#####0.3.1 Windows (Requires 3rd Party Software)
+*DISCLAIMER: I take no responsibility for any potential harm caused by third party applications!*
+
+You'll need a utility called "MicMute". It is available on [Sourceforge](https://sourceforge.net/projects/micmute/).
+After installing and running the tool, you only need to use the "Setup Shortcut" option to bind the key to muting the microphone
+and check whether your microphone is selected under "Devices".
+
+###0.4 Revive Dead Keys
+Some diacritics that are commonly used are dead keys on the international layouts, for example `` ` ``, `'`, or `"`.
+The dead keys on the regular international layout (shown in red [here](readme.md#00-languages)) are revived with this keymap by automatically inserting a space if one of those characters is typed.
+If you don't want this to be the case, uncomment the following line in `keymap.c` prior to compiling:
+```
+//#define DONT_REVIVE_DEADKEYS 1
+```
+
+##1 Layers
+###1.0 Base Layer
+The base layer is shown here for ANSI keysm, HHKB-style right shift and split backspace. If you use a 2U backspace key there, `Del` will not be available.
+Again, the Y and Z keys are swapped, so you get the QWERTZ-positions of Y and Z when using the US-International layout.
+
+![base_layer](docs/base_layer.PNG)
+
+###1.1 Gaming layer
+To turn this layer on, please use the combination `Fn+RShift`, not `Space+RShift`. If you do the latter, the Function layer will become stuck. You can press `Fn` once to unstick it if this happens to you. A solution is being worked on.
+
+![gaming_layer](docs/gaming_layer.PNG)
+
+###1.2 Function Layer
+This is the function layer for German diacritics. It can be accessed via the `Fn` or by holding `Space` on the base layer.
+
+![function_layer](docs/function_layer.PNG)
+
+
+
+
diff --git a/keyboards/s60-x/keymaps/custom/keymap.c b/keyboards/s60-x/keymaps/custom/keymap.c
new file mode 100644
index 000000000..fb2a40b85
--- /dev/null
+++ b/keyboards/s60-x/keymaps/custom/keymap.c
@@ -0,0 +1,28 @@
+#include "s60-x.h"
+
+/* Main layer: Test layout, using all keys.
+
+ 0 1 2 3 4 5 6 7 8 9 A B C D E
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ 0 │GRAVE│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │PGUP │BKSPC│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ 1 │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ 2 │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │PGDN │ENTER│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ 3 │LSHFT│HOME │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ END │RSHFT│ UP │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ 4 │LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│R_GUI│ APP │RCTRL│█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+*/
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* 0: ANSI qwerty */
+ LEGACY_KEYMAP(GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, PGUP, BSPC, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \
+ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, PGDN, ENT , \
+ LSFT, HOME, Z, X, C, V, B, N, M, COMM, DOT, SLSH, END, RSFT, UP, \
+ LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, RCTL),
+};
+const uint16_t PROGMEM fn_actions[] = {};
+
diff --git a/keyboards/s60-x/keymaps/custom/readme.md b/keyboards/s60-x/keymaps/custom/readme.md
new file mode 100644
index 000000000..cf87bd915
--- /dev/null
+++ b/keyboards/s60-x/keymaps/custom/readme.md
@@ -0,0 +1,15 @@
+### 8 Custom
+The custom keymap - [keymap_custom.c](keymap_custom.c) - is where I tested all the switches, not being concerned with a specific layout or layers. It's a plain layout option with the extra keys used on ISO & HHKB layouts being assigned some other keys.
+
+#### 8.0 Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │PgUp │BkSpc│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │PgDwn│Enter│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Shift│Home │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ End │Shift│ Up │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Ctrl │ Gui │ Alt │█████│█████│█████│Space│█████│█████│█████│ Alt │ Gui │ App │Ctrl │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
diff --git a/keyboards/s60-x/keymaps/default/keymap.c b/keyboards/s60-x/keymaps/default/keymap.c
new file mode 100644
index 000000000..eb0c6b056
--- /dev/null
+++ b/keyboards/s60-x/keymaps/default/keymap.c
@@ -0,0 +1,48 @@
+#include "s60-x.h"
+
+/* 0: Main layer
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │RCTRL│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+*/
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* 0: ANSI qwerty */
+ LEGACY_KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \
+ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT , \
+ LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \
+ LCTL, LGUI, LALT, SPC, RALT, FN0, APP, RCTL),
+
+/* 1: Fn layer
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+*/
+ LEGACY_KEYMAP(
+ GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \
+ TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, PGDN, PSCR, SLCK, PAUS, TRNS, \
+ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay
+};
diff --git a/keyboards/s60-x/keymaps/default/readme.md b/keyboards/s60-x/keymaps/default/readme.md
new file mode 100644
index 000000000..01cda9df9
--- /dev/null
+++ b/keyboards/s60-x/keymaps/default/readme.md
@@ -0,0 +1,27 @@
+### 1 Standard - ANSI
+The standard keymap is the one that is pre-flashed on the S60-X.
+
+#### 1.0 Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │RCTRL│█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+#### 1.1 Fn layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
diff --git a/keyboards/s60-x/keymaps/hasu/keymap.c b/keyboards/s60-x/keymaps/hasu/keymap.c
new file mode 100644
index 000000000..cbeaae028
--- /dev/null
+++ b/keyboards/s60-x/keymaps/hasu/keymap.c
@@ -0,0 +1,182 @@
+#include "s60-x.h"
+
+/*
+ * Hasu
+ */
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Keymap 0: Default Layer
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ Fn2 │ ' │▒▒▒▒▒│ENTER│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ Fn1 │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ Fn3 │ Fn3 │ Fn0 │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \
+ CAPS, A, S, D, F, G, H, J, K, L, FN2, QUOT, NO, ENT, \
+ LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, FN1, NO, FN9, NO, \
+ LCTL, LGUI, LALT, SPC, RALT, FN3, FN3, FN0),
+ /* Keymap 1: colemak
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│GRAVE│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ TAB │ Q │ W │ F │ P │ G │ J │ L │ U │ Y │ ; │ [ │ ] │ \ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│BKSPC│ A │ R │ S │ T │ D │ H │ N │ E │ I │ O │ ' │▒▒▒▒▒│ENTER│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ K │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│R_WIN│ APP │ Fn0 │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \
+ TAB, Q, W, F, P, G, J, L, U, Y, SCLN, LBRC, RBRC, BSLS, \
+ BSPC, A, R, S, T, D, H, N, E, I, O, QUOT, NO, ENT, \
+ LSFT, NO, Z, X, C, V, B, K, M, COMM, DOT, SLSH, NO, RSFT, NO, \
+ LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, FN0),
+ /* Keymap 2: dvorak
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│GRAVE│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ [ │ ] │▒▒▒▒▒│BKSPC│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ TAB │ ' │ , │ . │ P │ Y │ F │ G │ C │ R │ L │ / │ = │ \ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│CAPSL│ A │ O │ E │ U │ I │ D │ H │ T │ N │ S │ - │▒▒▒▒▒│ENTER│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ ; │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│R_WIN│ APP │ FN0 │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC, RBRC, NO, BSPC, \
+ TAB, QUOT, COMM, DOT, P, Y, F, G, C, R, L, SLSH, EQL, BSLS, \
+ CAPS, A, O, E, U, I, D, H, T, N, S, MINS, NO, ENT, \
+ LSFT, NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, RSFT, NO, \
+ LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, FN0),
+ /* Keymap 3: workman
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│GRAVE│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ TAB │ Q │ D │ E │ W │ B │ J │ F │ U │ P │ ; │ [ │ ] │ \ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│BKSPC│ A │ S │ H │ T │ G │ Y │ N │ E │ O │ I │ ' │▒▒▒▒▒│ENTER│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ Z │ X │ M │ C │ V │ K │ L │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│R_WIN│ APP │ FN0 │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \
+ TAB, Q, D, R, W, B, J, F, U, P, SCLN, LBRC, RBRC, BSLS, \
+ BSPC, A, S, H, T, G, Y, N, E, O, I, QUOT, NO, ENT, \
+ LSFT, NO, Z, X, M, C, V, K, L, COMM, DOT, SLSH, NO, RSFT, NO, \
+ LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, FN0),
+ /* Overlay 4: HHKB mode
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│Grave│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ Del │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│Caps │ │ │ │ │ │ │ │ Psc │ Slk │Pause│ Up │ │ Ins │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│ VoD │ VoU │Mute │ │ │NP_* │NP_/ │Home │PgUp │Left │Right│▒▒▒▒▒│Enter│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ │ │ │ │ │NP_+ │NP_- │ End │PgDwn│Down │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_GUI│L_ALT│█████│█████│█████│Space│█████│█████│█████│R_ALT│R_GUI│ App │ │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, DEL, \
+ CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, SLCK, PAUS, UP, TRNS, INS, \
+ LCTL, VOLD, VOLU, MUTE, TRNS, TRNS, PAST, PSLS, HOME, PGUP, LEFT, RGHT, TRNS, ENT, \
+ LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PPLS, PMNS, END, PGDN, DOWN, TRNS, RSFT, TRNS, \
+ LCTL, LGUI, LALT, SPC, RALT, RGUI, FN4, TRNS),
+ /* Overlay 5: Vi mode (Slash)
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│Grave│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│BkSpc│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ Tab │Home │PgDwn│ Up │PgUp │ End │Home │PgDwn│PgUp │ End │ │ │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│ │Left │Down │Right│ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│Enter│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ │ │ │ │ │Home │PgDwn│PgUp │ End │ │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_GUI│L_ALT│█████│█████│█████│Space│█████│█████│█████│R_ALT│R_GUI│ APP │RCTRL│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, BSPC, \
+ TAB, HOME, PGDN, UP, PGUP, END, HOME, PGDN, PGUP, END, TRNS, TRNS, TRNS, TRNS, \
+ LCTL, TRNS, LEFT, DOWN, RGHT, TRNS, LEFT, DOWN, UP, RGHT, TRNS, TRNS, TRNS, ENT, \
+ LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END, TRNS, TRNS, RSFT, TRNS, \
+ LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, RCTL),
+ /* Overlay 6: Mouse mode (Semicolon/App)
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│Grave│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│BkSpc│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ Tab │ │ │ │ │ │ MwL │ MwD │ MwU │ MwR │ │ │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│ │ Ac0 │ Ac1 │ Ac2 │ │ McL │ McD │ McU │ McR │ │ │▒▒▒▒▒│Enter│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSFHT│▒▒▒▒▒│ │ │ │ │ Mb3 │ Mb2 │ Mb1 │ Mb4 │ Mb5 │ │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_GUI│L_ALT│█████│█████│█████│ Mb1 │█████│█████│█████│ │ │ │RCTRL│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
+ */
+ LEGACY_KEYMAP(
+ GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, BSPC, \
+ TAB, TRNS, TRNS, TRNS, TRNS, TRNS, WH_L, WH_D, WH_U, WH_R, TRNS, TRNS, TRNS, TRNS, \
+ LCTL, TRNS, ACL0, ACL1, ACL2, TRNS, MS_L, MS_D, MS_U, MS_R, TRNS, TRNS, TRNS, ENT, \
+ LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, BTN3, BTN2, BTN1, BTN4, BTN5, TRNS, TRNS, RSFT, TRNS, \
+ LCTL, LGUI, LALT, BTN1, TRNS, TRNS, TRNS, RCTL),
+ /* Overlay 7: Layout selector
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ Lq │ Lc │ Ld │ Lw │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ Lq │ Lw │ │ │ │ │ │ │ │ │ │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ Ld │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ │ │ Lc │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+
+Lq: set Qwerty layout
+Lc: set Colemak layout
+Ld: set Dvorak layout
+Lw: set Workman layout
+
+ */
+ LEGACY_KEYMAP(
+ FN5, FN6, FN7, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, FN5, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, FN7, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, FN6, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
+};
+
+/*
+ * Fn action definition
+ */
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_MOMENTARY(4),
+ [1] = ACTION_LAYER_TAP_KEY(5, KC_SLASH),
+ [2] = ACTION_LAYER_TAP_KEY(6, KC_SCLN),
+ [3] = ACTION_LAYER_MOMENTARY(6),
+ [4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector
+ [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout
+ [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout
+ [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout
+ [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout
+ [9] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_GRV),
+};
diff --git a/keyboards/s60-x/keymaps/hasu/readme.md b/keyboards/s60-x/keymaps/hasu/readme.md
new file mode 100644
index 000000000..64969b616
--- /dev/null
+++ b/keyboards/s60-x/keymaps/hasu/readme.md
@@ -0,0 +1,4 @@
+### 5. Hasu
+This is Hasu's favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [keymap_hasu.c](keymap_hasu.c) for detail.
+
+(Hasu is the initial creator of the TMK firmware, in case you weren't aware.) \ No newline at end of file
diff --git a/keyboards/s60-x/keymaps/hhkb/keymap.c b/keyboards/s60-x/keymaps/hhkb/keymap.c
new file mode 100644
index 000000000..9afd1247f
--- /dev/null
+++ b/keyboards/s60-x/keymaps/hhkb/keymap.c
@@ -0,0 +1,52 @@
+#include "s60-x.h"
+
+/*
+ * HHKB Layout
+ */
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* 0: Default layer
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │BkSpc│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Fn3 │ ' │▒▒▒▒▒│Enter│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│Shift│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│Shift│ Fn │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│▒▒▒▒▒│ Gui │ Alt │█████│█████│█████│Space│█████│█████│█████│▒▒▒▒▒│ Alt │ Gui │▒▒▒▒▒│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSLS, GRV, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSPC, \
+ LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \
+ LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, FN0, \
+ NO, LGUI, LALT, SPC, NO, RALT, RGUI, NO),
+ /* 1: HHKB Fn layer
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ Pwr │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ Ins │ Del │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│Caps │ │ │ │ │ │ │ │ Psc │ Slk │ Pus │ Up │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ VoD │ VoU │ Mut │ Ejc │ │NP_* │NP_/ │Home │PgUp │Left │Right│▒▒▒▒▒│NPEnt│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ │ │ │ │ │NP_+ │NP_- │ End │PgDwn│Down │▒▒▒▒▒│ │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│▒▒▒▒▒│ │ │█████│█████│█████│ │█████│█████│█████│▒▒▒▒▒│ │ │▒▒▒▒▒│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
+ CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, SLCK, PAUS, UP, TRNS, TRNS, \
+ TRNS, VOLD, VOLU, MUTE, EJCT, TRNS, PAST, PSLS, HOME, PGUP, LEFT, RGHT, NO, PENT, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PPLS, PMNS, END, PGDN, DOWN, NO, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
+};
+
+/*
+ * Fn action definition
+ */
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_MOMENTARY(1),
+};
diff --git a/keyboards/s60-x/keymaps/hhkb/readme.md b/keyboards/s60-x/keymaps/hhkb/readme.md
new file mode 100644
index 000000000..2bceb26dd
--- /dev/null
+++ b/keyboards/s60-x/keymaps/hhkb/readme.md
@@ -0,0 +1,26 @@
+### 7. HHKB
+[keymap_hhkb.c](keymap_hhkb.c) emulates original HHKB layers.
+#### 7.0: Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │BkSpc│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Fn3 │ ' │▒▒▒▒▒│Enter│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Shift│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│Shift│ Fn │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │▒▒▒▒▒│ Gui │ Alt │█████│█████│█████│Space│█████│█████│█████│▒▒▒▒▒│ Alt │ Gui │▒▒▒▒▒│█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+#### 7.1: HHKB Fn layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ Pwr │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ Ins │ Del │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Caps │ │ │ │ │ │ │ │ Psc │ Slk │ Pus │ Up │ │ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ VoD │ VoU │ Mut │ Ejc │ │ * │ / │Home │PgUp │Left │Right│▒▒▒▒▒│Enter│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │▒▒▒▒▒│ │ │ │ │ │ + │ - │ End │PgDwn│Down │▒▒▒▒▒│ │ │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │▒▒▒▒▒│ │ │█████│█████│█████│ │█████│█████│█████│▒▒▒▒▒│ │ │▒▒▒▒▒│█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
diff --git a/keyboards/s60-x/keymaps/iso/keymap.c b/keyboards/s60-x/keymaps/iso/keymap.c
new file mode 100644
index 000000000..43a9c48b0
--- /dev/null
+++ b/keyboards/s60-x/keymaps/iso/keymap.c
@@ -0,0 +1,48 @@
+#include "s60-x.h"
+
+/* 0: Main layer
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │▒▒▒▒▒│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │NUHS │ENTER│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │RCTRL│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+*/
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* 0: ANSI qwerty */
+ LEGACY_KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, NO, \
+ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NUHS, ENT , \
+ LSFT, BSLS, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \
+ LCTL, LGUI, LALT, SPC, RALT, FN0, APP, RCTL),
+
+/* 1: Fn layer
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│▒▒▒▒▒│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │Left │Down │Right│ │ │ │ │ │ │ │ │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+*/
+ LEGACY_KEYMAP(
+ GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \
+ TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, PGDN, PSCR, SLCK, PAUS, TRNS, \
+ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay
+};
diff --git a/keyboards/s60-x/keymaps/iso/readme.md b/keyboards/s60-x/keymaps/iso/readme.md
new file mode 100644
index 000000000..2c06bf86f
--- /dev/null
+++ b/keyboards/s60-x/keymaps/iso/readme.md
@@ -0,0 +1,28 @@
+### 2 Standard - ISO
+The same as the standard keymap, but with additional ISO keys.
+
+
+#### 2.0 Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │▒▒▒▒▒│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │NUHS │ENTER│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │LSHFT│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │RCTRL│█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+#### 2.1 Fn layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│▒▒▒▒▒│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │Left │Down │Right│ │ │ │ │ │ │ │ │ │ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
diff --git a/keyboards/s60-x/keymaps/jpec/keymap.c b/keyboards/s60-x/keymaps/jpec/keymap.c
new file mode 100644
index 000000000..c8fc13328
--- /dev/null
+++ b/keyboards/s60-x/keymaps/jpec/keymap.c
@@ -0,0 +1,92 @@
+/*
+Copyright 2016 Julien Pecqueur <julien@peclu.net>
+Copyright 2016 Felix Uhl <ifreilicht@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/>.
+*/
+
+#include "s60-x.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Layout 0: Default Layer
+ * ,-----------------------------------------------------------.
+ * |` | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
+ * |-----------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
+ * |-----------------------------------------------------------|
+ * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return |
+ * |-----------------------------------------------------------|
+ * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
+ * |-----------------------------------------------------------|
+ * |Fn1 |Gui |Alt | SpaceFn |Alt |Gui |App |Ctrl|
+ * `-----------------------------------------------------------'
+ */
+ LEGACY_KEYMAP(
+ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, BSPC, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \
+ LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NUHS, ENT, \
+ LSFT, NUBS, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \
+ FN1, LGUI, LALT, FN0, RALT, RGUI, APP, RCTL),
+
+ /* Layout 1: Function Layer
+ * ,-----------------------------------------------------------.
+ * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
+ * |-----------------------------------------------------------|
+ * | |Prv|Ply|Nxt|Stp| | |PUp|Up |PDn| |Slk|Pau|Ins |
+ * |-----------------------------------------------------------|
+ * | |Vl-|Mut|Vl+| | |Hom|Lef|Dow|Rig|End| |PEnt |
+ * |-----------------------------------------------------------|
+ * | |Prt|Cut|Cop|Pst|Cal| | | | | |CapsLock |
+ * |-----------------------------------------------------------|
+ * | | | | | | | | |
+ * `-----------------------------------------------------------'
+ */
+ LEGACY_KEYMAP(
+ ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, DEL, \
+ TRNS, MPRV, MPLY, MNXT, MSTP, TRNS, TRNS, PGUP, UP, PGDN, TRNS, SLCK, PAUS, INS, \
+ TRNS, VOLD, MUTE, VOLU, TRNS, TRNS, HOME, LEFT, DOWN, RGHT, END, TRNS, TRNS, PENT, \
+ TRNS, TRNS, PSCR, FN2, FN3, FN4, CALC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CAPS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
+};
+
+/*
+* Fn action definition
+*/
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), /* SpaceFn layout 1 */
+ [1] = ACTION_LAYER_MOMENTARY(1), /* Momentary layout 1 */
+ [2] = ACTION_MODS_KEY(MOD_LSFT, KC_DEL), /* Cut */
+ [3] = ACTION_MODS_KEY(MOD_LCTL, KC_INS), /* Copy */
+ [4] = ACTION_MODS_KEY(MOD_LSFT, KC_INS), /* Paste */
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ return MACRO_NONE;
+};
+
+
+void matrix_init_user(void) {
+
+}
+
+void matrix_scan_user(void) {
+
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+
+} \ No newline at end of file
diff --git a/keyboards/s60-x/keymaps/jpec/readme.md b/keyboards/s60-x/keymaps/jpec/readme.md
new file mode 100644
index 000000000..73318dad7
--- /dev/null
+++ b/keyboards/s60-x/keymaps/jpec/readme.md
@@ -0,0 +1 @@
+# The default keymap for s60-x \ No newline at end of file
diff --git a/keyboards/s60-x/keymaps/plain/keymap.c b/keyboards/s60-x/keymaps/plain/keymap.c
new file mode 100644
index 000000000..790ac88e7
--- /dev/null
+++ b/keyboards/s60-x/keymaps/plain/keymap.c
@@ -0,0 +1,25 @@
+#include "s60-x.h"
+
+/* Main layer:
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│R_GUI│ APP │RCTRL│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+*/
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* 0: qwerty */
+ LEGACY_KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \
+ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \
+ LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \
+ LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, RCTL),
+};
+const uint16_t PROGMEM fn_actions[] = {};
diff --git a/keyboards/s60-x/keymaps/plain/readme.md b/keyboards/s60-x/keymaps/plain/readme.md
new file mode 100644
index 000000000..ab13323e3
--- /dev/null
+++ b/keyboards/s60-x/keymaps/plain/readme.md
@@ -0,0 +1,16 @@
+### 4. Plain
+Without any Fn layer this will be useful if you want to use key remapping tool like AHK on host.
+See [keymap_plain.c](keymap_plain.c) for detail.
+
+#### 4.0 Plain Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BkSpc│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│Enter│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Shift│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│Shift│▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Ctrl │ Gui │ Alt │█████│█████│█████│Space│█████│█████│█████│ Alt │ Gui │ App │Ctrl │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
diff --git a/keyboards/s60-x/keymaps/poker/keymap.c b/keyboards/s60-x/keymaps/poker/keymap.c
new file mode 100644
index 000000000..0a8691792
--- /dev/null
+++ b/keyboards/s60-x/keymaps/poker/keymap.c
@@ -0,0 +1,180 @@
+#include "s60-x.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* 0: qwerty
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│GRAVE│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│ Fn0 │R_WIN│ APP │RCTRL│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \
+ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \
+ LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \
+ LCTL, LGUI, LALT, SPC, FN0, RGUI, APP, RCTL),
+ /* 1: colemak
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│GRAVE│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ TAB │ Q │ W │ F │ P │ G │ J │ L │ U │ Y │ ; │ [ │ ] │ \ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│BKSPC│ A │ R │ S │ T │ D │ H │ N │ E │ I │ O │ ' │▒▒▒▒▒│ENTER│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ K │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│ Fn0 │R_WIN│ APP │RCTRL│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \
+ TAB, Q, W, F, P, G, J, L, U, Y, SCLN, LBRC, RBRC, BSLS, \
+ BSPC, A, R, S, T, D, H, N, E, I, O, QUOT, NO, ENT, \
+ LSFT, NO, Z, X, C, V, B, K, M, COMM, DOT, SLSH, NO, RSFT, NO, \
+ LCTL, LGUI, LALT, SPC, FN0, RGUI, APP, RCTL),
+ /* 2: dvorak
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│GRAVE│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ [ │ ] │▒▒▒▒▒│BKSPC│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ TAB │ ' │ , │ . │ P │ Y │ F │ G │ C │ R │ L │ / │ = │ \ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│CAPSL│ A │ O │ E │ U │ I │ D │ H │ T │ N │ S │ - │▒▒▒▒▒│ENTER│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ ; │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│ Fn0 │R_WIN│ APP │RCTRL│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC, RBRC, NO, BSPC, \
+ TAB, QUOT, COMM, DOT, P, Y, F, G, C, R, L, SLSH, EQL, BSLS, \
+ CAPS, A, O, E, U, I, D, H, T, N, S, MINS, NO, ENT, \
+ LSFT, NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, RSFT, NO, \
+ LCTL, LGUI, LALT, SPC, FN0, RGUI, APP, RCTL),
+ /* 3: workman
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│GRAVE│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ TAB │ Q │ D │ E │ W │ B │ J │ F │ U │ P │ ; │ [ │ ] │ \ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│BKSPC│ A │ S │ H │ T │ G │ Y │ N │ E │ O │ I │ ' │▒▒▒▒▒│ENTER│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ Z │ X │ M │ C │ V │ K │ L │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│ Fn0 │R_WIN│ APP │RCTRL│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \
+ TAB, Q, D, R, W, B, J, F, U, P, SCLN, LBRC, RBRC, BSLS, \
+ BSPC, A, S, H, T, G, Y, N, E, O, I, QUOT, NO, ENT, \
+ LSFT, NO, Z, X, M, C, V, K, L, COMM, DOT, SLSH, NO, RSFT, NO, \
+ LCTL, LGUI, LALT, SPC, FN0, RGUI, APP, RCTL),
+ /* 4: Poker with Arrow
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ Up │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ │█████│█████│█████│ │Left │Down │Right│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, LEFT, DOWN, RGHT),
+ /* 5: Poker with Esc
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ ESC │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
+ /* 6: Poker Fn
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ Esc │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ FnQ │ Up │ │ │ │ │ │ │ Cal │ │Home │ Ins │ FnL │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │Left │Down │Right│ │ │ Psc │ Slk │Pause│ │ Tsk │ End │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ Del │ │ Web │Mute │ VoU │ VoD │ │PgUp │PgDwn│ Del │▒▒▒▒▒│ │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ FnS │█████│█████│█████│ │ │ │ │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+
+Fn: to Fn overlay
+FnL: to Layout selector overaly
+FnQ: toggle Esc overlay
+FnS: toggle Arrow overlay
+
+ */
+ LEGACY_KEYMAP(
+ ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \
+ TRNS, FN2, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, FN4, \
+ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN3, END, TRNS, TRNS, \
+ TRNS, TRNS, DEL, TRNS, WHOM, MUTE, VOLU, VOLD, TRNS, PGUP, PGDN, DEL, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, FN1, TRNS, TRNS, TRNS, TRNS),
+ /* 7: Layout selector
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ Lq │ Lc │ Ld │ Lw │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ Lq │ Lw │ │ │ │ │ │ │ │ │ │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ Ld │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ │ │ Lc │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+
+Lq: set Qwerty layout
+Lc: set Colemak layout
+Ld: set Dvorak layout
+Lw: set Workman layout
+
+ */
+ LEGACY_KEYMAP(
+ FN5, FN6, FN7, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, FN5, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, FN7, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, FN6, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
+};
+const uint16_t PROGMEM fn_actions[] = {
+ /* Poker Layout */
+ [0] = ACTION_LAYER_MOMENTARY(6), // to Fn overlay
+ [1] = ACTION_LAYER_TOGGLE(4), // toggle arrow overlay
+ [2] = ACTION_LAYER_TOGGLE(5), // toggle Esc overlay
+ [3] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // Task(RControl,RShift+Esc)
+ [4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector
+ [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout
+ [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout
+ [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout
+ [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout
+};
diff --git a/keyboards/s60-x/keymaps/poker/readme.md b/keyboards/s60-x/keymaps/poker/readme.md
new file mode 100644
index 000000000..0d8be9d0f
--- /dev/null
+++ b/keyboards/s60-x/keymaps/poker/readme.md
@@ -0,0 +1,31 @@
+### 3 Poker
+[keymap_poker.c](keymap_poker.c) emulates original Poker layers
+while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys.
+
+ Fn + Esc = `
+ Fn + {left, down, up, right} = {home, pgdown, pgup, end}
+
+#### 3.0 Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BkSpc│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│Enter│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Shift│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│Shift│▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Ctrl │ Gui │ Alt │█████│█████│█████│Space│█████│█████│█████│ Fn │ Gui │ App │Ctrl │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+#### 3.1 Poker Fn layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ Esc │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ FnQ │ Up │ │ │ │ │ │ │ Cal │ │Home │ Ins │ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │Left │Down │Right│ │ │ Psc │ Slk │Pause│ │ Tsk │ End │▒▒▒▒▒│ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │▒▒▒▒▒│ Del │ │ Web │Mute │ VoU │ VoD │ │PgUp │PgDwn│ Del │▒▒▒▒▒│ Up │▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │█████│█████│█████│ FnS │█████│█████│█████│ Fn │Left │Down │Right│█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
diff --git a/keyboards/s60-x/keymaps/poker_bit/keymap.c b/keyboards/s60-x/keymaps/poker_bit/keymap.c
new file mode 100644
index 000000000..7626038f4
--- /dev/null
+++ b/keyboards/s60-x/keymaps/poker_bit/keymap.c
@@ -0,0 +1,110 @@
+#include "s60-x.h"
+
+// Poker fix with toggle and bit operation
+// Fn + Esc = `
+// Fn + {left, down, up, right} = {home, pgdown, pgup, end}
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* 0: qwerty
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│GRAVE│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│ Fn0 │R_WIN│ APP │RCTRL│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \
+ LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \
+ LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \
+ LCTL, LGUI, LALT, SPC, FN0, RGUI, APP, RCTL),
+ /* 4: Poker Default + Fn'd
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ Esc │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│Caps │ Fn2 │ Up │ │ │ │ │ │ │ Cal │ │Home │ Ins │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │Left │Down │Right│ │ │ Psc │ Slk │Pause│ │ Fn4 │ End │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ Del │ │ Web │Mute │ VoU │ VoD │ │PgUp │PgDwn│ Del │▒▒▒▒▒│ │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ Fn1 │█████│█████│█████│ │ │ │ │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ [4] = LEGACY_KEYMAP(
+ TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \
+ CAPS, FN2, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \
+ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN4, END, TRNS, TRNS, \
+ TRNS, TRNS, DEL, TRNS, WHOM, MUTE, VOLU, VOLD, TRNS, PGUP, PGDN, DEL, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, FN1, TRNS, TRNS, TRNS, TRNS),
+ /* 5: Poker with Arrow
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│PgUp │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ │█████│█████│█████│ Fn3 │Home │PgDwn│ End │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, FN3, HOME, PGDN, END),
+ /* 6: Poker with Esc
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ ESC │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
+ /* 7: Poker with Arrow + Fn'd
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ Up │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ │█████│█████│█████│ │Left │Down │Right│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, LEFT, DOWN, RGHT),
+};
+const uint16_t PROGMEM fn_actions[] = {
+ /* Poker Layout */
+ [0] = ACTION_LAYER_BIT_XOR(1, 0b0101, ON_BOTH), // Poker Fn(with fix for Esc)
+ [1] = ACTION_LAYER_TOGGLE(5), // Poker Arrow toggle
+ [2] = ACTION_LAYER_TOGGLE(6), // Poker Esc toggle
+ [3] = ACTION_LAYER_BIT_XOR(1, 0b1101, ON_BOTH), // Poker Fn(with fix for Arrow)
+ [4] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN3 Task(RControl,RShift+Esc)
+};
diff --git a/keyboards/s60-x/keymaps/poker_bit/readme.md b/keyboards/s60-x/keymaps/poker_bit/readme.md
new file mode 100644
index 000000000..0d8be9d0f
--- /dev/null
+++ b/keyboards/s60-x/keymaps/poker_bit/readme.md
@@ -0,0 +1,31 @@
+### 3 Poker
+[keymap_poker.c](keymap_poker.c) emulates original Poker layers
+while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys.
+
+ Fn + Esc = `
+ Fn + {left, down, up, right} = {home, pgdown, pgup, end}
+
+#### 3.0 Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BkSpc│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│Enter│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Shift│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│Shift│▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Ctrl │ Gui │ Alt │█████│█████│█████│Space│█████│█████│█████│ Fn │ Gui │ App │Ctrl │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+#### 3.1 Poker Fn layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ Esc │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ FnQ │ Up │ │ │ │ │ │ │ Cal │ │Home │ Ins │ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │Left │Down │Right│ │ │ Psc │ Slk │Pause│ │ Tsk │ End │▒▒▒▒▒│ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │▒▒▒▒▒│ Del │ │ Web │Mute │ VoU │ VoD │ │PgUp │PgDwn│ Del │▒▒▒▒▒│ Up │▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │█████│█████│█████│ FnS │█████│█████│█████│ Fn │Left │Down │Right│█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
diff --git a/keyboards/s60-x/keymaps/poker_set/keymap.c b/keyboards/s60-x/keymaps/poker_set/keymap.c
new file mode 100644
index 000000000..09423e75b
--- /dev/null
+++ b/keyboards/s60-x/keymaps/poker_set/keymap.c
@@ -0,0 +1,178 @@
+#include "s60-x.h"
+
+// Poker fix with set(state transition)
+// Fn + Esc = `
+// Fn + {left, down, up, right} = {home, pgdown, pgup, end}
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* 0: qwerty
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│GRAVE│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_WIN│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│ Fn0 │R_WIN│ APP │RCTRL│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \
+ LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \
+ LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \
+ LCTL, LGUI, LALT, SPC, FN0, RGUI, APP, RCTL),
+ /* 1: Poker with Arrow
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ Up │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ │█████│█████│█████│ Fn1 │Left │Down │Right│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, FN1, LEFT, DOWN, RGHT),
+ /* 2: Poker with Esc
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ ESC │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ │█████│█████│█████│ Fn2 │ │ │ │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, FN2, TRNS, TRNS, TRNS),
+ /* 3: Poker with Arrow and Esc
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ Esc │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ Up │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ │█████│█████│█████│ Fn3 │Left │Down │Right│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, FN3, LEFT, DOWN, RGHT),
+ /* 4: Poker Fn'd
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ Esc │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ Fn6 │ Up │ │ │ │ │ │ │ Cal │ │Home │ Ins │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │Left │Down │Right│ │ │ Psc │ Slk │Pause│ │ Fn8 │ End │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ Del │ │ Web │Mute │ VoU │ VoD │ │PgUp │PgDwn│ Del │▒▒▒▒▒│ │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ Fn5 │█████│█████│█████│ Fn4 │ │ │ │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \
+ TRNS, FN6, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \
+ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \
+ TRNS, TRNS, DEL, TRNS, WHOM, MUTE, VOLU, VOLD, TRNS, PGUP, PGDN, DEL, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, FN5, FN4, TRNS, TRNS, TRNS),
+ /* 5: Poker Fn'd arrow
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ Esc │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ Fn7 │ Up │ │ │ │ │ │ │ Cal │ │Home │ Ins │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │Left │Down │Right│ │ │ Psc │ Slk │Pause│ │ Fn8 │ End │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ Del │ │ Web │Mute │ VoU │ VoD │ │PgUp │PgDwn│ Del │▒▒▒▒▒│PgUp │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ Fn4 │█████│█████│█████│ Fn5 │Home │PgDwn│ End │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \
+ TRNS, FN7, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \
+ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \
+ TRNS, TRNS, DEL, TRNS, WHOM, MUTE, VOLU, VOLD, TRNS, PGUP, PGDN, DEL, TRNS, PGUP, TRNS, \
+ TRNS, TRNS, TRNS, FN4, FN5, HOME, PGDN, END),
+ /* 6: Poker Fn'd Esc
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│Grave│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ Fn4 │ Up │ │ │ │ │ │ │ Cal │ │Home │ Ins │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │Left │Down │Right│ │ │ Psc │ Slk │Pause│ │ Fn8 │ End │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ Del │ │ Web │Mute │ VoU │ VoD │ │PgUp │PgDwn│ Del │▒▒▒▒▒│ │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ Fn7 │█████│█████│█████│ Fn6 │ │ │ │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \
+ TRNS, FN4, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \
+ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \
+ TRNS, TRNS, DEL, TRNS, WHOM, MUTE, VOLU, VOLD, TRNS, PGUP, PGDN, DEL, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, FN7, FN6, TRNS, TRNS, TRNS),
+ /* 7: Poker Fn'd Arrow + Esc
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│Grave│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ Fn5 │ Up │ │ │ │ │ │ │ Cal │ │Home │ Ins │ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │Left │Down │Right│ │ │ Psc │ Slk │Pause│ │ Fn8 │ End │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ Del │ │ Web │Mute │ VoU │ VoD │ │PgUp │PgDwn│ Del │▒▒▒▒▒│PgUp │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ Fn6 │█████│█████│█████│ Fn7 │Home │PgDwn│ End │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \
+ TRNS, FN5, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \
+ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \
+ TRNS, TRNS, DEL, TRNS, WHOM, MUTE, VOLU, VOLD, TRNS, PGUP, PGDN, DEL, TRNS, PGUP, TRNS, \
+ TRNS, TRNS, TRNS, FN6, FN7, HOME, PGDN, END),
+};
+
+/*
+ * Fn action definition
+ */
+const uint16_t PROGMEM fn_actions[] = {
+ /* Poker Layout */
+ [0] = ACTION_LAYER_SET(4, ON_PRESS), // FN0 move to Fn'd when press
+ [1] = ACTION_LAYER_SET(5, ON_PRESS), // FN1 move to Fn'd arrow when press
+ [2] = ACTION_LAYER_SET(6, ON_PRESS), // FN2 move to Fn'd Esc when press
+ [3] = ACTION_LAYER_SET(7, ON_PRESS), // FN3 move to Fn'd arrow + Esc when press
+
+ //[4] = ACTION_LAYER_CLEAR(ON_RELEASE), // FN4 clear overlay when release
+ [4] = ACTION_LAYER_SET(0, ON_RELEASE), // FN4 clear overlay when release
+ [5] = ACTION_LAYER_SET(1, ON_RELEASE), // FN5 move to arrow when release
+ [6] = ACTION_LAYER_SET(2, ON_RELEASE), // FN6 move to Esc when release
+ [7] = ACTION_LAYER_SET(3, ON_RELEASE), // FN7 move to arrow + Esc when release
+
+ [8] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN8 Task(RControl,RShift+Esc)
+};
diff --git a/keyboards/s60-x/keymaps/poker_set/readme.md b/keyboards/s60-x/keymaps/poker_set/readme.md
new file mode 100644
index 000000000..0d8be9d0f
--- /dev/null
+++ b/keyboards/s60-x/keymaps/poker_set/readme.md
@@ -0,0 +1,31 @@
+### 3 Poker
+[keymap_poker.c](keymap_poker.c) emulates original Poker layers
+while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys.
+
+ Fn + Esc = `
+ Fn + {left, down, up, right} = {home, pgdown, pgup, end}
+
+#### 3.0 Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BkSpc│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│Enter│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Shift│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│Shift│▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Ctrl │ Gui │ Alt │█████│█████│█████│Space│█████│█████│█████│ Fn │ Gui │ App │Ctrl │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+#### 3.1 Poker Fn layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ Esc │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ FnQ │ Up │ │ │ │ │ │ │ Cal │ │Home │ Ins │ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │Left │Down │Right│ │ │ Psc │ Slk │Pause│ │ Tsk │ End │▒▒▒▒▒│ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │▒▒▒▒▒│ Del │ │ Web │Mute │ VoU │ VoD │ │PgUp │PgDwn│ Del │▒▒▒▒▒│ Up │▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │█████│█████│█████│ FnS │█████│█████│█████│ Fn │Left │Down │Right│█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
diff --git a/keyboards/s60-x/keymaps/spacefn/keymap.c b/keyboards/s60-x/keymaps/spacefn/keymap.c
new file mode 100644
index 000000000..b6dc7ca7e
--- /dev/null
+++ b/keyboards/s60-x/keymaps/spacefn/keymap.c
@@ -0,0 +1,55 @@
+#include "s60-x.h"
+
+/*
+ * SpaceFN
+ * http://geekhack.org/index.php?topic=51069.0
+ */
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Keymap 0: Default Layer
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│LCTRL│L_GUI│L_ALT│█████│█████│█████Spc/Fn0█████│█████│█████│R_ALT│R_GUI│ APP │RCTRL│█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \
+ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \
+ LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \
+ LCTL, LGUI, LALT, FN0, RALT, RGUI, APP, RCTL),
+
+ /* Overlay 1: SpaceFN
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+│ ` │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ Del │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ Esc │ │ │ │Home │ Up │ End │Pscr │Slck │Pause│ Ins │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │PgUp │Left │Down │Right│ │ │▒▒▒▒▒│ │█████│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │▒▒▒▒▒│ │ │ │Space│PgDwn│ ` │ ~ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+ */
+ LEGACY_KEYMAP(
+ GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, DEL, \
+ TRNS, TRNS, TRNS, ESC, TRNS, TRNS, TRNS, HOME, UP, END, PSCR, SLCK, PAUS, INS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, LEFT, DOWN, RGHT, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, SPC, PGDN, GRV, FN1, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
+};
+
+/*
+ * Fn action definition
+ */
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE),
+ [1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde
+};
diff --git a/keyboards/s60-x/keymaps/spacefn/readme.md b/keyboards/s60-x/keymaps/spacefn/readme.md
new file mode 100644
index 000000000..d04bd9486
--- /dev/null
+++ b/keyboards/s60-x/keymaps/spacefn/readme.md
@@ -0,0 +1,27 @@
+### 6. SpaceFN
+This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [keymap_spacefn.c](keymap_spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0).
+
+#### 6.0 Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BkSpc│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│Enter│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Shift│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│Shift│▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Ctrl │ Gui │ Alt │█████│█████│████ Space/Fn ███│█████│█████│ Alt │ Gui │ App │Ctrl │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+#### 6.1 SpaceFN layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ ` │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ Del │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │ │ │ │ │Home │ Up │ End │ Psc │ Slk │Pause│ Ins │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │ │ │ │PgUp │Left │Down │Right│ │ │▒▒▒▒▒│ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │▒▒▒▒▒│ │ │ │ │Space│PgDwn│ ` │ ~ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │█████│█████│█████│ Fn │█████│█████│█████│ Alt │ Gui │ App │Ctrl │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
diff --git a/keyboards/s60-x/readme.md b/keyboards/s60-x/readme.md
new file mode 100644
index 000000000..408ad13ac
--- /dev/null
+++ b/keyboards/s60-x/readme.md
@@ -0,0 +1,260 @@
+S60-x keyboard firmware
+======================
+DIY compact keyboard designed by VinnyCordeiro for Sentraq. Most of the keymaps are based on GH60 code. This is a port from TMK to QMK based on the [original S60-X Repo](https://github.com/VinnyCordeiro/tmk_keyboard).
+
+## S60X Resources
+- [Massdrop page](https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit?mode=guest_open)
+
+## Quickstart
+
+If you just want to test a few layouts, the archive [s60-x_precompiled.zip](s60-x_precompiled.zip) contains pre-compiled .hex-files for all available keymaps. Not all of them are tested.
+You only need to flash them onto your keyboard, which is explained below, there's no need to setup a build environment. For a full list
+
+## Flashing your keyboard
+The recommended programs for flashing your keyboard are [Atmel FLIP](http://www.atmel.com/tools/FLIP.aspx) (Windows) and [dfu-programmer](http://dfu-programmer.sourceforge.net/) (Linux/Windows).
+
+[QMK Firmware Flasher](https://github.com/qmk/qmk_firmware_flasher/releases) may work, as the S60-X keyboard uses the ATMega32U4 microcontroller, but it is untested. Use at your own risk.
+
+[Easy AVR USB Keyboard Firmware](https://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware) also supports S60-X, but it is completely unrelated to TMK firmware. Use at your own risk.
+
+**Programming the firmware (Windows)**
+
+1. download and install FLIP (http://www.atmel.com/tools/FLIP.aspx)
+2. connect the keyboard, press the program button on the underside of the board (S1) and wait until it enumerates (you'll hear the "disconnect" and "connect" sound)
+3. go to device manager, find the atmega32u4 chip and click "update driver"
+4. choose location manually: folder named "usb" inside the installation directory of FLIP
+5. once the driver is installed, run flip
+6. Device -> Select: choose ATMega32U4
+7. Settings -> Communication -> USB, FLIP should show the signature at this point (58 1E 95 87)
+8. File -> Load HEX file: choose the hex firmware: <firmware>.hex
+9. click "Run"
+10. after programming is done, disconnect the device from USB and connect again.
+
+
+**Programming the firmware (Linux)**
+
+1. Download and install/compile/unpack dfu-programmer from http://dfu-programmer.sourceforge.net/.
+2. Issue the following commands in the command prompt after connecting the device and pressing the programming button (S1). You may need root permissions or udev rules to do that.
+ 1. `sudo dfu-programmer atmega32u4 erase`
+ 2. `sudo dfu-programmer atmega32u4 flash <firmware>.hex`
+ 3. `sudo dfu-programmer atmega32u4 start`
+3. The keyboard should start working. If it doesn't, reconnect the cable.
+
+## Building the firmware
+
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
+ $ make [custom|poker|poker_set|poker_bit|plain|hasu|spacefn|hhkb|<name>]
+
+For a more detailed explanation of the build process and the environment setup, see the ["Getting Started" section](/readme.md#getting-started).
+
+## List of included Keymaps
+
+Several versions of keymaps are available in advance but you are recommended to define your favorite layout yourself.
+To define your own keymap, copy the [default keymap template](/quantum/template/keymaps/default) directory into the `keymaps` directory and start modifying the `keymap.c` file. Some options might require you to change the `config.h` or `Makefile` as well, refer to the main documentation for more information on those.
+If you want to later merge your finalised keymap into this repository to make it available for everyone, make sure to also modify the `readme.md` in your keymap directory to show a visual version of your keymap.
+
+Here's a list of the standard layouts that are provided with the precompiled .hex-files.
+
+### 0 Initial explanations
+The █████ blocks on the layouts hides the switch positions that do not exist physically on the PCB. If you feel like hacking the keyboard and adding new keys, those are the positions that can be used. You'll have to modify the [keymap_common.h](keymap_common.h) file for that.
+
+The â–’â–’â–’â–’â–’ blocks hides switch positions not used on this particular layout, but they do exist on the PCB.
+
+There is no LED support on the PCB at the moment, but I'll let the code for that untouched.
+
+
+### 1 [Standard - ANSI (default layout)](keymaps/default/keymap.c)
+The standard keymap is the one that is pre-flashed on the S60-X.
+
+#### 1.0 Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │RCTRL│█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+#### 1.1 Fn layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+
+
+### 2 [Standard - ISO](keymaps/iso/keymap.c)
+The same as the standard keymap, but with additional ISO keys.
+
+
+#### 2.0 Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │▒▒▒▒▒│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │NUHS │ENTER│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │LSHFT│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │RCTRL│█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+#### 2.1 Fn layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│▒▒▒▒▒│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │Left │Down │Right│ │ │ │ │ │ │ │ │ │ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+
+
+### 3 Poker
+[The poker keymap](keymaps/poker/keymap.c) emulates original Vortex Poker layers
+while both [poker_bit](keymaps/poker_bit/keymap.c) and [poker_set](keymap/poker_set/keymap.c) implement the same layout in a slightly different way, fix a minor issue of the original poker Layout and enhance arrow keys.
+
+ Fn + Esc = `
+ Fn + {left, down, up, right} = {home, pgdown, pgup, end}
+
+#### 3.0 Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BkSpc│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│Enter│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Shift│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│Shift│▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Ctrl │ Gui │ Alt │█████│█████│█████│Space│█████│█████│█████│ Fn │ Gui │ App │Ctrl │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+#### 3.1 Poker Fn layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ Esc │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ FnQ │ Up │ │ │ │ │ │ │ Cal │ │Home │ Ins │ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │Left │Down │Right│ │ │ Psc │ Slk │Pause│ │ Tsk │ End │▒▒▒▒▒│ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │▒▒▒▒▒│ Del │ │ Web │Mute │ VoU │ VoD │ │PgUp │PgDwn│ Del │▒▒▒▒▒│ Up │▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │█████│█████│█████│ FnS │█████│█████│█████│ Fn │Left │Down │Right│█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+
+
+### 4. [Plain](keymaps/plain/keymap.c)
+Without any Fn layer this will be useful if you want to use key remapping tool like AHK on host.
+
+#### 4.0 Plain Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BkSpc│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│Enter│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Shift│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│Shift│▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Ctrl │ Gui │ Alt │█████│█████│█████│Space│█████│█████│█████│ Alt │ Gui │ App │Ctrl │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+
+
+### 5. [Hasu](keymaps/hasu/keymap.c)
+This is Hasu's favorite keymap with HHKB Fn, Vi cursor and Mousekey layer.
+
+(Hasu is the creator of the TMK firmware, for those who do not know that.)
+
+
+### 6. [SpaceFN](keymaps/spacefn/keymap.c)
+This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. Check the sourcefile and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0) for more information.
+
+#### 6.0 Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BkSpc│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│Enter│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Shift│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│Shift│▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Ctrl │ Gui │ Alt │█████│█████│████ Space/Fn ███│█████│█████│ Alt │ Gui │ App │Ctrl │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+#### 6.1 SpaceFN layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ ` │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ Del │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │ │ │ │ │Home │ Up │ End │ Psc │ Slk │Pause│ Ins │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │ │ │ │PgUp │Left │Down │Right│ │ │▒▒▒▒▒│ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │▒▒▒▒▒│ │ │ │ │Space│PgDwn│ ` │ ~ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ │ │█████│█████│█████│ Fn │█████│█████│█████│ Alt │ Gui │ App │Ctrl │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+
+
+### 7. [HHKB](keymap/hhkb/keymap.c)
+The HHKB keymap emulates original HHKB layers.
+#### 7.0: Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │BkSpc│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Fn3 │ ' │▒▒▒▒▒│Enter│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Shift│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│Shift│ Fn │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │▒▒▒▒▒│ Gui │ Alt │█████│█████│█████│Space│█████│█████│█████│▒▒▒▒▒│ Alt │ Gui │▒▒▒▒▒│█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+#### 7.1: HHKB Fn layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ Pwr │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ Ins │ Del │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Caps │ │ │ │ │ │ │ │ Psc │ Slk │ Pus │ Up │ │ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │ VoD │ VoU │ Mut │ Ejc │ │ * │ / │Home │PgUp │Left │Right│▒▒▒▒▒│Enter│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ │▒▒▒▒▒│ │ │ │ │ │ + │ - │ End │PgDwn│Down │▒▒▒▒▒│ │ │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │▒▒▒▒▒│ │ │█████│█████│█████│ │█████│█████│█████│▒▒▒▒▒│ │ │▒▒▒▒▒│█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+
+
+### 8 [Custom](keymaps/custom/keymap.c)
+The custom keymap is where I tested all the switches, not being concerned with a specific layout or layers. It's a plain layout option with the extra keys used on ISO & HHKB layouts being assigned some other keys.
+
+#### 8.0 Default layer
+ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────â”
+ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │PgUp │BkSpc│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │PgDwn│Enter│█████│
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Shift│Home │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ End │Shift│ Up │
+ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ │Ctrl │ Gui │ Alt │█████│█████│█████│Space│█████│█████│█████│ Alt │ Gui │ App │Ctrl │█████│
+ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+
+### 9. [ANSI_QWERTZ](keymaps/ansi_qwertz/keymap.c)
+
+This keymap was designed for inputting characters with diacritics with ANSI keycaps.
+It provides toggleable SpaceFn functionality, a dedicated arrow cluster and a microphone mute key on the function layer as well as a bootloader reset key.
+
+For more info, [check here](keymaps/ansi_qwertz/readme.md).
diff --git a/keyboards/s60-x/rules.mk b/keyboards/s60-x/rules.mk
new file mode 100644
index 000000000..7ec93933a
--- /dev/null
+++ b/keyboards/s60-x/rules.mk
@@ -0,0 +1,69 @@
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= no # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no # Audio output on port C6 \ No newline at end of file
diff --git a/keyboards/s60-x/s60-x.c b/keyboards/s60-x/s60-x.c
new file mode 100644
index 000000000..417358140
--- /dev/null
+++ b/keyboards/s60-x/s60-x.c
@@ -0,0 +1,28 @@
+#include "s60-x.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // put your per-action keyboard code here
+ // runs for every action, just before processing by the firmware
+
+ return process_record_user(keycode, record);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ led_set_user(usb_led);
+}
diff --git a/keyboards/s60-x/s60-x.h b/keyboards/s60-x/s60-x.h
new file mode 100644
index 000000000..29a2a27b2
--- /dev/null
+++ b/keyboards/s60-x/s60-x.h
@@ -0,0 +1,69 @@
+/*
+Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Vinícius Nery Cordeiro <vinicius.nery.cordeiro@gmail.com>
+Copyright 2016 Felix Uhl <ifreilicht@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 S60X_H
+#define S60X_H
+
+#include "quantum.h"
+
+#ifdef __INTELLISENSE__
+#define PROGMEM
+#include "config.h"
+#endif
+
+/* S60-X keymap definition macro
+* K31 is the extra key next to short left ISO shift
+* K2C is the moved key next to enter on ISO boards
+* K3C is the extra key next to short right JIS shift
+* K0D is extra key from split backspace
+* K3E is extra key from HHKB-style split right shift
+*/
+
+#define KEYMAP( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
+ K40, K41, K42, K46, K4A, K4B, K4C, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO } \
+}
+
+/*This special definition is used for S60-X keymaps that were ported from TMK
+ * QMK has a lot of keycodes that don't start with KC_, so using the regular KEYMAP macro is recommended
+ */
+#define LEGACY_KEYMAP( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
+ K40, K41, K42, K46, K4A, K4B, K4C, K4D \
+) { \
+ { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E }, \
+ { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_NO }, \
+ { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_NO }, \
+ { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E }, \
+ { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_NO, KC_##K46, KC_NO, KC_NO, KC_NO, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_NO } \
+}
+
+#endif
diff --git a/keyboards/s60-x/s60-x_precompiled.zip b/keyboards/s60-x/s60-x_precompiled.zip
new file mode 100644
index 000000000..00d99ca8a
--- /dev/null
+++ b/keyboards/s60-x/s60-x_precompiled.zip
Binary files differ
diff --git a/keyboards/satan/Makefile b/keyboards/satan/Makefile
index 184b5ac37..4e2a6f00f 100644
--- a/keyboards/satan/Makefile
+++ b/keyboards/satan/Makefile
@@ -1,70 +1,3 @@
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
-# Build Options
-# comment out to disable the options.
-#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870)
-BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150)
-MIDI_ENABLE ?= no # MIDI controls
-AUDIO_ENABLE ?= no
-UNICODE_ENABLE ?= no # Unicode
-BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
-endif
+endif \ No newline at end of file
diff --git a/keyboards/satan/config.h b/keyboards/satan/config.h
index 7e9f91cc8..eb357b39e 100644
--- a/keyboards/satan/config.h
+++ b/keyboards/satan/config.h
@@ -67,7 +67,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#define RGB_DI_PIN E2
-#define RGBLIGHT_TIMER
+#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 8 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
diff --git a/keyboards/satan/keymaps/dbroqua/keymap.c b/keyboards/satan/keymaps/dbroqua/keymap.c
new file mode 100644
index 000000000..5b921e021
--- /dev/null
+++ b/keyboards/satan/keymaps/dbroqua/keymap.c
@@ -0,0 +1,152 @@
+#include "satan.h"
+#include "action_layer.h"
+#include "rgblight.h"
+
+#define _DEFAULT 0
+#define _FN 1
+#define _SFX 2
+
+enum planck_keycodes {
+ DEFAULT = SAFE_RANGE
+};
+
+// Fillers to make layering more clear
+#define ______ KC_TRNS
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Qwerty gui/alt/space/alt/gui
+ * ,-----------------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
+ * |-----------------------------------------------------------------------------------------+
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
+ * |-----------------------------------------------------------------------------------------+
+ * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
+ * |-----------------------------------------------------------------------------------------+
+ * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
+ * |-----------------------------------------------------------------------------------------+
+ * |LGUI | LAlt | Space | RAlt |RGUI |
+ * `-----------------------------------------------------------------'
+ */
+ [_DEFAULT] = KEYMAP_HHKB( /* Basic QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,KC_BSPC, \
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), \
+ ______, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, ______, ______ \
+ ),
+
+/* FN Layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
+ * |-----------------------------------------------------------------------------------------+
+ * | CAPS | BL- | BL+ | BL | | | | | Psc | Slck| Paus| Up | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Prev| Play| Next| | | + | - | End |PgDn| Down| | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | Stop | |
+ * `-----------------------------------------------------------------'
+ */
+ [_FN] = KEYMAP_HHKB( /* Layer 1 */
+ TG(_SFX), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \
+ KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \
+ ______, KC_VOLD,KC_VOLU,KC_MUTE,______, ______, KC_PAST,KC_PSLS,KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______, \
+ ______, KC_MPRV,KC_MPLY,KC_MNXT,______, ______, KC_PPLS,KC_PMNS,KC_END, KC_PGDN, KC_DOWN, ______, ______, \
+ ______, ______, ______, ______, KC_MSTP, ______, ______, ______ \
+ ),
+
+/* SFX Layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | BL- | BL+ | BL | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | RGBT| RGBM| | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Hue+| Hue-| Sat+| Sat-| Val+| Val-| | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | |
+ * `-----------------------------------------------------------------'
+ */
+ [_SFX] = KEYMAP_HHKB(
+ ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
+ ______, BL_DEC, BL_INC, BL_TOGG,______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
+ ______, F(0), F(1), ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
+ ______, F(2), F(3), F(4), F(5), F(6), F(7), ______, ______, ______, ______, ______, ______, \
+ ______, ______, ______, ______, ______, ______, ______, ______ \
+ )
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ return MACRO_NONE;
+};
+
+enum function_id {
+ RGBLED_TOGGLE,
+ RGBLED_STEP_MODE,
+ RGBLED_INCREASE_HUE,
+ RGBLED_DECREASE_HUE,
+ RGBLED_INCREASE_SAT,
+ RGBLED_DECREASE_SAT,
+ RGBLED_INCREASE_VAL,
+ RGBLED_DECREASE_VAL
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_FUNCTION(RGBLED_TOGGLE),
+ [1] = ACTION_FUNCTION(RGBLED_STEP_MODE),
+ [2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
+ [3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
+ [4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
+ [5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
+ [6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
+ [7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL)
+};
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ switch (id) {
+ case RGBLED_TOGGLE:
+ if (record->event.pressed) {
+ rgblight_toggle();
+ }
+ break;
+ case RGBLED_INCREASE_HUE:
+ if (record->event.pressed) {
+ rgblight_increase_hue();
+ }
+ break;
+ case RGBLED_DECREASE_HUE:
+ if (record->event.pressed) {
+ rgblight_decrease_hue();
+ }
+ break;
+ case RGBLED_INCREASE_SAT:
+ if (record->event.pressed) {
+ rgblight_increase_sat();
+ }
+ break;
+ case RGBLED_DECREASE_SAT:
+ if (record->event.pressed) {
+ rgblight_decrease_sat();
+ }
+ break;
+ case RGBLED_INCREASE_VAL:
+ if (record->event.pressed) {
+ rgblight_increase_val();
+ }
+ break;
+ case RGBLED_DECREASE_VAL:
+ if (record->event.pressed) {
+ rgblight_decrease_val();
+ }
+ break;
+ case RGBLED_STEP_MODE:
+ if (record->event.pressed) {
+ rgblight_step();
+ }
+ break;
+ }
+} \ No newline at end of file
diff --git a/keyboards/satan/keymaps/dbroqua/readme.md b/keyboards/satan/keymaps/dbroqua/readme.md
new file mode 100644
index 000000000..39e71beed
--- /dev/null
+++ b/keyboards/satan/keymaps/dbroqua/readme.md
@@ -0,0 +1,9 @@
+# Dbroqua HHKB like Layout
+
+Like the HHKB but with a Satan GH60 PCB :D.
+
+# Programming Instructions:
+Enter into programming mode and run the following command.
+```
+$ sudo KEYMAP=dbroqua_hhkb make dfu
+``` \ No newline at end of file
diff --git a/keyboards/satan/keymaps/default/Makefile b/keyboards/satan/keymaps/default/Makefile
new file mode 100644
index 000000000..2a7ff2779
--- /dev/null
+++ b/keyboards/satan/keymaps/default/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/satan/keymaps/default/keymap.c b/keyboards/satan/keymaps/default/keymap.c
index 35dbbb77b..2bf49d2e6 100644
--- a/keyboards/satan/keymaps/default/keymap.c
+++ b/keyboards/satan/keymaps/default/keymap.c
@@ -11,6 +11,8 @@
#define _BL 0
#define _FL 1
+#define _______ KC_TRNS
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: (Base Layer) Default Layer
* ,-----------------------------------------------------------.
@@ -25,12 +27,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
* `-----------------------------------------------------------'
*/
-[_BL] = KEYMAP(
- F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \
- KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL),
+[_BL] = KEYMAP_ANSI(
+ F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,KC_BSLS, \
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \
+ KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, MO(_FL),KC_RCTL),
/* Keymap _FL: Function Layer
* ,-----------------------------------------------------------.
@@ -45,19 +47,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | |
* `-----------------------------------------------------------'
*/
-[_FL] = KEYMAP(
+[_FL] = KEYMAP_ANSI(
#ifdef RGBLIGHT_ENABLE
- KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ KC_GRV, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC,BL_INC, BL_TOGG, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
+ _______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,_______,_______,_______, \
+ _______,_______,_______, _______, _______,_______,_______, _______),
#else
- KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ KC_GRV, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC, BL_INC,BL_TOGG, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
+ _______,_______,_______, _______, _______,_______,_______,_______),
#endif
};
diff --git a/keyboards/satan/keymaps/default/readme.md b/keyboards/satan/keymaps/default/readme.md
new file mode 100644
index 000000000..c366147df
--- /dev/null
+++ b/keyboards/satan/keymaps/default/readme.md
@@ -0,0 +1 @@
+# default Satan GH60 layout
diff --git a/keyboards/satan/keymaps/denolfe/Makefile b/keyboards/satan/keymaps/denolfe/Makefile
new file mode 100644
index 000000000..c4adab737
--- /dev/null
+++ b/keyboards/satan/keymaps/denolfe/Makefile
@@ -0,0 +1,20 @@
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality (+4870)
+BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150)
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/satan/keymaps/denolfe/README.md b/keyboards/satan/keymaps/denolfe/README.md
new file mode 100644
index 000000000..30b94fcdd
--- /dev/null
+++ b/keyboards/satan/keymaps/denolfe/README.md
@@ -0,0 +1,12 @@
+# denolfe's Layout
+Customized Satan keymap
+
+![Layout](keyboard-layout.png "Practical Keymap")
+
+## Programming Instructions:
+`cd` into keymap directory, `make dfu`
+
+## Features
+- Movement keys with <kbd>CapsLock</kbd> + <kbd>h</kbd>, <kbd>j</kbd>, <kbd>k</kbd>, <kbd>l</kbd>
+- Media Keys
+- Backlight control
diff --git a/keyboards/satan/keymaps/denolfe/keyboard-layout.png b/keyboards/satan/keymaps/denolfe/keyboard-layout.png
new file mode 100644
index 000000000..d6d6ad57f
--- /dev/null
+++ b/keyboards/satan/keymaps/denolfe/keyboard-layout.png
Binary files differ
diff --git a/keyboards/satan/keymaps/denolfe/keymap.c b/keyboards/satan/keymaps/denolfe/keymap.c
new file mode 100644
index 000000000..5f189d78a
--- /dev/null
+++ b/keyboards/satan/keymaps/denolfe/keymap.c
@@ -0,0 +1,171 @@
+#include "satan.h"
+
+#ifdef RGBLIGHT_ENABLE
+#include "rgblight.h"
+#endif
+
+// Used for SHIFT_ESC
+#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _BL 0
+#define _FL 1
+#define _SL 2
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Keymap _BL: (Base Layer) Default Layer
+ * ,-----------------------------------------------------------.
+ * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
+ * |-----------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
+ * |-----------------------------------------------------------|
+ * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
+ * |-----------------------------------------------------------|
+ * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
+ * |-----------------------------------------------------------|
+ * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
+ * `-----------------------------------------------------------'
+ */
+[_BL] = KEYMAP_ANSI(
+ F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
+ MO(_FL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
+ KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RGUI, KC_RCTL),
+
+ /* Keymap _FL: Function Layer
+ * ,-----------------------------------------------------------.
+ * | | | | | | | | | | | | | | RESET|
+ * |-----------------------------------------------------------|
+ * | | | | | | | | | | | |BL-|BL+|BL |
+ * |-----------------------------------------------------------|
+ * | | | | | | | | | | | | |
+ * |-----------------------------------------------------------|
+ * | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | |
+ * |-----------------------------------------------------------|
+ * | | | | | | | | |
+ * `-----------------------------------------------------------'
+ */
+[_FL] = KEYMAP_ANSI(
+ #ifdef RGBLIGHT_ENABLE
+ KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ #else
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, KC_END, KC_MPRV, KC_MNXT, KC_MPLY, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, KC_HOME, LCTL(KC_LEFT), LCTL(KC_END), LCTL(KC_RIGHT), KC_TRNS, RESET, \
+ KC_TRNS, KC_TRNS, F(9), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ #endif
+
+[_SL] = KEYMAP_ANSI(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, LSFT(KC_END), KC_MPRV, KC_MNXT, KC_MPLY, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_UP), LSFT(KC_RIGHT), KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, LSFT(KC_HOME), LCTL(LSFT(KC_LEFT)), LCTL(LSFT(KC_END)), LCTL(LSFT(KC_RIGHT)), KC_TRNS, RESET, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
+
+enum function_id {
+ SHIFT_ESC,
+ #ifdef RGBLIGHT_ENABLE
+ RGBLED_TOGGLE,
+ RGBLED_STEP_MODE,
+ RGBLED_INCREASE_HUE,
+ RGBLED_DECREASE_HUE,
+ RGBLED_INCREASE_SAT,
+ RGBLED_DECREASE_SAT,
+ RGBLED_INCREASE_VAL,
+ RGBLED_DECREASE_VAL
+ #endif
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_FUNCTION(SHIFT_ESC),
+ #ifdef RGBLIGHT_ENABLE
+ [1] = ACTION_FUNCTION(RGBLED_TOGGLE),
+ [2] = ACTION_FUNCTION(RGBLED_STEP_MODE),
+ [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
+ [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
+ [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
+ [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
+ [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
+ [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL),
+ #endif
+ [9] = ACTION_LAYER_MODS(2, MOD_LSFT)
+};
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ static uint8_t shift_esc_shift_mask;
+ switch (id) {
+ case SHIFT_ESC:
+ shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
+ if (record->event.pressed) {
+ if (shift_esc_shift_mask) {
+ add_key(KC_GRV);
+ send_keyboard_report();
+ } else {
+ add_key(KC_ESC);
+ send_keyboard_report();
+ }
+ } else {
+ if (shift_esc_shift_mask) {
+ del_key(KC_GRV);
+ send_keyboard_report();
+ } else {
+ del_key(KC_ESC);
+ send_keyboard_report();
+ }
+ }
+ break;
+ //led operations
+ #ifdef RGBLIGHT_ENABLE
+ case RGBLED_TOGGLE:
+ if (record->event.pressed) {
+ rgblight_toggle();
+ }
+ break;
+ case RGBLED_INCREASE_HUE:
+ if (record->event.pressed) {
+ rgblight_increase_hue();
+ }
+ break;
+ case RGBLED_DECREASE_HUE:
+ if (record->event.pressed) {
+ rgblight_decrease_hue();
+ }
+ break;
+ case RGBLED_INCREASE_SAT:
+ if (record->event.pressed) {
+ rgblight_increase_sat();
+ }
+ break;
+ case RGBLED_DECREASE_SAT:
+ if (record->event.pressed) {
+ rgblight_decrease_sat();
+ }
+ break;
+ case RGBLED_INCREASE_VAL:
+ if (record->event.pressed) {
+ rgblight_increase_val();
+ }
+ break;
+ case RGBLED_DECREASE_VAL:
+ if (record->event.pressed) {
+ rgblight_decrease_val();
+ }
+ break;
+ case RGBLED_STEP_MODE:
+ if (record->event.pressed) {
+ rgblight_step();
+ }
+ break;
+ #endif
+ }
+}
diff --git a/keyboards/satan/keymaps/iso_split_rshift/.gitignore b/keyboards/satan/keymaps/iso_split_rshift/.gitignore
new file mode 100644
index 000000000..4d652661c
--- /dev/null
+++ b/keyboards/satan/keymaps/iso_split_rshift/.gitignore
@@ -0,0 +1,3 @@
+updatemerge.sh
+clear_flash.hex
+resetboard.sh
diff --git a/keyboards/satan/keymaps/iso_split_rshift/LEDpinSatan.jpg b/keyboards/satan/keymaps/iso_split_rshift/LEDpinSatan.jpg
new file mode 100644
index 000000000..7616693f9
--- /dev/null
+++ b/keyboards/satan/keymaps/iso_split_rshift/LEDpinSatan.jpg
Binary files differ
diff --git a/keyboards/satan/keymaps/iso_split_rshift/Makefile b/keyboards/satan/keymaps/iso_split_rshift/Makefile
new file mode 100644
index 000000000..d1e07da3f
--- /dev/null
+++ b/keyboards/satan/keymaps/iso_split_rshift/Makefile
@@ -0,0 +1,16 @@
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = yes # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870)
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality (+1150)
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/satan/keymaps/iso_split_rshift/build.sh b/keyboards/satan/keymaps/iso_split_rshift/build.sh
new file mode 100755
index 000000000..6b4b4568f
--- /dev/null
+++ b/keyboards/satan/keymaps/iso_split_rshift/build.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+# adjust for cpu
+# -j 16 gave best result on a hyperthreaded quad core core i7
+
+LIMIT=10
+THREADS="-j 16"
+KMAP=iso_split_rshift
+
+echo "We need sudo later"
+sudo ls 2>&1 /dev/null
+
+function wait_bootloader {
+ echo "Waiting for Bootloader..."
+ local STARTTIME=$(date +"%s")
+ local REMIND=0
+ local EXEC=dfu-programmer
+ local TARGET=atmega32u4
+ while true
+ do
+ sudo $EXEC $TARGET get > /dev/null 2>&1
+ [ $? -eq 0 ] && break
+ ENDTIME=$(date +"%s")
+ DURATION=$(($ENDTIME-$STARTTIME))
+ if [ $REMIND -eq 0 -a $DURATION -gt $LIMIT ]
+ then
+ echo "Did you forget to press the reset button?"
+ REMIND=1
+ fi
+ sleep 1
+ done
+}
+make clean
+make KEYMAP=${KMAP} ${THREADS}
+if [[ $? -eq 0 ]]
+then
+ echo "please trigger flashing!"
+ wait_bootloader
+ sudo make KEYMAP=${KMAP} dfu ${THREADS}
+else
+ echo "make failed"
+ exit 77
+fi
diff --git a/keyboards/satan/keymaps/iso_split_rshift/config.h b/keyboards/satan/keymaps/iso_split_rshift/config.h
new file mode 100644
index 000000000..27c1372da
--- /dev/null
+++ b/keyboards/satan/keymaps/iso_split_rshift/config.h
@@ -0,0 +1,27 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// only change
+#undef RGB_DI_PIN
+#define RGB_DI_PIN B2
+
+#endif
diff --git a/keyboards/satan/keymaps/iso_split_rshift/keymap.c b/keyboards/satan/keymaps/iso_split_rshift/keymap.c
new file mode 100644
index 000000000..cf938e07d
--- /dev/null
+++ b/keyboards/satan/keymaps/iso_split_rshift/keymap.c
@@ -0,0 +1,209 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "satan.h"
+// TODO: replace your ugly german brckets with #defines
+
+// 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 _DEF 0
+#define _SPC 1
+#define _TAB 2
+#define _SFX 3
+
+// dual-role shortcuts
+#define TABDUAL LT(_TAB, KC_TAB)
+#define CAPSDUAL CTL_T(KC_ESC)
+#define SPACEDUAL LT(_SPC, KC_SPACE)
+#define ENTERDUAL CTL_T(KC_ENT)
+// arrow cluster duality bottom right corner
+#define ARRLEFT ALT_T(KC_LEFT)
+#define ARRDOWN GUI_T(KC_DOWN)
+#define ARRUP SFT_T(KC_UP)
+#define ARRRIGHT CTL_T(KC_RIGHT)
+// german brackets
+#define GER_CUR_L RALT(KC_7) // [
+#define GER_CUR_R RALT(KC_0) // ]
+#define GER_PAR_L LSFT(KC_8) // (
+#define GER_PAR_R LSFT(KC_9) // )
+#define GER_ANG_L KC_NUBS // <
+#define GER_ANG_R LSFT(KC_NUBS) // >
+#define GER_BRC_L RALT(KC_8) // [
+#define GER_BRC_R RALT(KC_9) // ]
+
+// increase readability
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Keymap _DEF: Default Layer
+ * ,-----------------------------------------------------------.
+ * |Grv| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
+ * |-----------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | Tab is Fn1
+ * |-----------------------------------------------------------|
+ * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| Return |
+ * |-----------------------------------------------------------|
+ * |Sft | < | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn2| RShift is UP
+ * |-----------------------------------------------------------|
+ * |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl| Gui Menu, RCtrl is
+ * `-----------------------------------------------------------' LEFT DWN RIGHT
+ */
+ [_DEF] = KEYMAP_ISO_SPLITRSHIFT(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
+ TABDUAL, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
+ CAPSDUAL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, ENTERDUAL, \
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, ARRUP, TG(_SFX), \
+ KC_LCTL, KC_LGUI, KC_LALT, SPACEDUAL, KC_RALT, ARRLEFT, ARRDOWN, ARRRIGHT),
+
+ /* Keymap 1: F-and-vim Layer, modified with Space (by holding space)
+ * ,-----------------------------------------------------------.
+ * |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete|
+ * |-----------------------------------------------------------|
+ * | |Paus| Up| [ | ] | | | | ( | ) | | | | |
+ * |-----------------------------------------------------------|
+ * | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY |
+ * |-----------------------------------------------------------|
+ * | | | | | < | > | |M0 | | | | | Vol+ | |
+ * |-----------------------------------------------------------|
+ * | | | | |Alt |Prev|Vol-|Next|
+ * `-----------------------------------------------------------'
+ */
+ [_SPC] = KEYMAP_ISO_SPLITRSHIFT(
+ KC_PSCR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
+ _______, KC_PAUS, KC_UP, GER_BRC_L, GER_BRC_R, _______, _______, GER_PAR_L, GER_PAR_R, _______, _______, _______, _______, _______, \
+ _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, KC_MPLY, \
+ _______, _______, _______, _______, GER_ANG_L, GER_ANG_R, KC_SPACE, M(0), _______, _______, _______, _______, KC_VOLU, _______, \
+ _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
+
+ /* Keymap 2: Tab Layer w/ vim pageup, modified with Tab (by holding tab)
+ * ,-----------------------------------------------------------.
+ * |WAKE| | | | | | | | | | | | |Insert| TAB+GRC = WAKE
+ * |-----------------------------------------------------------|
+ * | | | | | | | | | { | } | | | | |
+ * |-----------------------------------------------------------|
+ * | | | | | | |Pos1|PgDn|PgUp|End| | |Retrn |
+ * |-----------------------------------------------------------|
+ * | | | | | | | |AF2| | | | | PgUp | |
+ * |-----------------------------------------------------------|
+ * | | | | |Alt |Pos1|PgDn|End |
+ * `-----------------------------------------------------------'
+ */
+ [_TAB] = KEYMAP_ISO_SPLITRSHIFT(
+ KC_WAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, \
+ _______, _______, _______, _______, _______, _______, _______, GER_CUR_L, GER_CUR_R, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, KC_ENT, \
+ _______, _______, _______, _______, _______, _______, _______, M(1), _______, _______, _______, _______, KC_PGUP, _______, \
+ _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END),
+
+ /* Keymap 3: Split right shift Numpad toggle Layer (by tapping the split rshift key)
+ * ,-----------------------------------------------------------.
+ * |RSET| | | | | | | 7| 8| 9| | | |Backsp |
+ * |-----------------------------------------------------------|
+ * | | | | | | | | 4 | 5 | 6 | | | | \ |
+ * |-----------------------------------------------------------|
+ * | | L | L | | | | | 1 | 2 | 3 | | | Return |
+ * |-----------------------------------------------------------|
+ * | | | L | L | L | L | L | L | | 0 | | /| Up | | All "L"s represent
+ * |-----------------------------------------------------------| LED controlling
+ * |Ctrl|Win |Alt | |Alt |Left|Down|Right|
+ * `-----------------------------------------------------------'
+ */
+ [_SFX] = KEYMAP_ISO_SPLITRSHIFT(
+ RESET, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, KC_BSPC, \
+ _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, KC_BSLS, \
+ _______, F(2), F(3), _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, XXXXXXX, KC_ENT, \
+ _______, F(4), F(5), F(6), F(7), F(8), F(9), _______, _______, KC_0, _______, KC_SLSH, KC_UP, _______, \
+ _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT),
+};
+
+enum function_id {
+ LAUNCH,
+ RGBLED_TOGGLE,
+ RGBLED_STEP_MODE,
+ RGBLED_INCREASE_HUE,
+ RGBLED_DECREASE_HUE,
+ RGBLED_INCREASE_SAT,
+ RGBLED_DECREASE_SAT,
+ RGBLED_INCREASE_VAL,
+ RGBLED_DECREASE_VAL,
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_FUNCTION(LAUNCH),
+ [2] = ACTION_FUNCTION(RGBLED_TOGGLE),
+ [3] = ACTION_FUNCTION(RGBLED_STEP_MODE),
+ [4] = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
+ [5] = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
+ [6] = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
+ [7] = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
+ [8] = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
+ [9] = ACTION_FUNCTION(RGBLED_DECREASE_VAL),
+ [10] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_ENT),
+};
+
+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:
+ return (record->event.pressed ?
+ MACRO( D(RALT), T(SPC), U(RALT), END )
+ :MACRO( END ));
+ break;
+ case 1:
+ return (record->event.pressed ?
+ MACRO( D(LALT), T(F2), U(LALT), END )
+ :MACRO( END ));
+ break;
+ }
+ return MACRO_NONE;
+};
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ switch (id) {
+ case RGBLED_TOGGLE:
+ //led operations
+ if (record->event.pressed) {
+ rgblight_toggle();
+ }
+ break;
+ case RGBLED_INCREASE_HUE:
+ if (record->event.pressed) {
+ rgblight_increase_hue();
+ }
+ break;
+ case RGBLED_DECREASE_HUE:
+ if (record->event.pressed) {
+ rgblight_decrease_hue();
+ }
+ break;
+ case RGBLED_INCREASE_SAT:
+ if (record->event.pressed) {
+ rgblight_increase_sat();
+ }
+ break;
+ case RGBLED_DECREASE_SAT:
+ if (record->event.pressed) {
+ rgblight_decrease_sat();
+ }
+ break;
+ case RGBLED_INCREASE_VAL:
+ if (record->event.pressed) {
+ rgblight_increase_val();
+ }
+ break;
+ case RGBLED_DECREASE_VAL:
+ if (record->event.pressed) {
+ rgblight_decrease_val();
+ }
+ break;
+ case RGBLED_STEP_MODE:
+ if (record->event.pressed) {
+ rgblight_step();
+ }
+ break;
+ }
+}
diff --git a/keyboards/satan/keymaps/iso_split_rshift/readme.md b/keyboards/satan/keymaps/iso_split_rshift/readme.md
new file mode 100644
index 000000000..ec6123d8a
--- /dev/null
+++ b/keyboards/satan/keymaps/iso_split_rshift/readme.md
@@ -0,0 +1,36 @@
+toneman77's Satan Layout
+=====================
+
+##Quantum MK Firmware
+For the full Quantum feature list, see the parent readme.md.
+
+* heavily modified ISO (!) layout with split right shift key
+* spaceFn
+* Dual-Role keys:
+*
+ | Original key | when tapped | when held |
+ | ---------------- | ------------- | ------------- |
+ | Space | Space | layer change |
+ | Caps lock | Escape | Control |
+ | Tab | Tab | layer change |
+ | Enter | Enter | Control |
+
+* Lockable layer for LED functions and numpad
+* vim-style arrow keys on hjkl (spacefn layer)
+* corresponding Home/PgDn/PgUp/End on hjkl (tab layer)
+* bonus arrow keys in the bottom right corner on Alt/Win/Menu/rCtrl/Shift
+* more bonus arrow keys on wasd (spacefn layer)
+* media keys prev/next/play/vol+/vol- (spacefn layer)
+* firmware bootloader button
+* WS2812 RGB Underglow Support (not needed anymore to solder directly to the atmega)
+* additional brackets that only work in german layout due to horrible placement
+in the default qwertz layout
+
+
+### Additional Credits
+* Keymap has been based on TerryMathews' fork of Aqoush's fork of qmk-satan-rgb. [here](https://github.com/TerryMathews/qmk-satan-rgb/tree/master/keyboard/satan)
+* nice visualization of the layers [here](http://www.keyboard-layout-editor.com/#/gists/aba4e4396459ede85bc66a22cee88e48)
+* no-need-to-solder-on-chip picture:
+![no need to solder directly on the chip anymore](LEDpinSatan.jpg)
+* special thanks to /u/TerryMathews who suggested the pin PB2, so soldering
+directly on the atmega is not needed anymore. Happened on [reddit](https://www.reddit.com/r/MechanicalKeyboards/comments/4ghq9z/photos_satan_rgb60_w1976/d2k5tra)
diff --git a/keyboards/satan/keymaps/iso_split_rshift/resetboard.sh b/keyboards/satan/keymaps/iso_split_rshift/resetboard.sh
new file mode 100755
index 000000000..d955ccf54
--- /dev/null
+++ b/keyboards/satan/keymaps/iso_split_rshift/resetboard.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+sudo dfu-programmer atmega32u4 erase --force
+sudo dfu-programmer atmega32u4 flash clear_flash.hex
+sudo dfu-programmer atmega32u4 reset
diff --git a/keyboards/satan/keymaps/poker/keymap.c b/keyboards/satan/keymaps/poker/keymap.c
index 8181955cf..9da7d29b7 100644
--- a/keyboards/satan/keymaps/poker/keymap.c
+++ b/keyboards/satan/keymaps/poker/keymap.c
@@ -25,12 +25,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
* `-----------------------------------------------------------'
*/
-[_BL] = KEYMAP(
- F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \
- KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(_RL), MO(_FL), KC_RCTL),
+[_BL] = KEYMAP_ANSI(
+ F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_RL), MO(_FL), KC_RCTL),
/* Keymap _FL: Function Layer
* ,-----------------------------------------------------------.
@@ -45,12 +45,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | |
* `-----------------------------------------------------------'
*/
-[_FL] = KEYMAP(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
- KC_TRNS,KC_TRNS, KC_UP, KC_TRNS,KC_TRNS,KC_TRNS, KC_CALC,KC_TRNS,KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, \
- KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_APP, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_TRNS, \
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+[_FL] = KEYMAP_ANSI(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, \
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_APP, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
/* Keymap _RL: Function Layer
* ,-----------------------------------------------------------.
@@ -65,19 +65,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | |
* `-----------------------------------------------------------'
*/
-[_RL] = KEYMAP(
+[_RL] = KEYMAP_ANSI(
#ifdef RGBLIGHT_ENABLE
- KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
#else
- KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
#endif
};
diff --git a/keyboards/satan/keymaps/sethbc/Makefile b/keyboards/satan/keymaps/sethbc/Makefile
new file mode 100644
index 000000000..2a7ff2779
--- /dev/null
+++ b/keyboards/satan/keymaps/sethbc/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/satan/keymaps/sethbc/keymap.c b/keyboards/satan/keymaps/sethbc/keymap.c
index f8991f9fd..93610258b 100644
--- a/keyboards/satan/keymaps/sethbc/keymap.c
+++ b/keyboards/satan/keymaps/sethbc/keymap.c
@@ -10,6 +10,9 @@
#define _BL 0
#define _FL 1
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: (Base Layer) Default Layer
* ,-----------------------------------------------------------.
@@ -29,21 +32,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL), \
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL),
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_MENU, KC_RCTL),
[_FL] = KEYMAP_HHKB(
#ifdef RGBLIGHT_ENABLE
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RESET, \
- KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \
- KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RESET, \
+ KC_CAPS, _______, RGB_TOG,RGB_MOD,RGB_HUI, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_DEL, \
+ _______, KC_VOLD, RGB_HUD,RGB_SAI,RGB_SAD, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \
+ _______, RGB_VAI,RGB_VAD,_______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______),
#else
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RESET, \
- KC_CAPS, KC_TRNS, RGB_TOG,RGB_MOD,RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \
- KC_TRNS, KC_VOLD, RGB_HUD,RGB_SAI,RGB_SAD, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \
- KC_TRNS, RGB_VAI,RGB_VAD,KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RESET, \
+ KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_DEL, \
+ _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \
+ _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______),
#endif
};
diff --git a/keyboards/satan/keymaps/sethbc/readme.md b/keyboards/satan/keymaps/sethbc/readme.md
new file mode 100644
index 000000000..ed0eb8701
--- /dev/null
+++ b/keyboards/satan/keymaps/sethbc/readme.md
@@ -0,0 +1,3 @@
+# sethbc's Satan GH60 layout
+
+HHKB style split right shift and split backspace. Largely based on the HHKB layout.
diff --git a/keyboards/satan/keymaps/stanleylai/config.h b/keyboards/satan/keymaps/stanleylai/config.h
index ae2bd36db..7f4bb441c 100644
--- a/keyboards/satan/keymaps/stanleylai/config.h
+++ b/keyboards/satan/keymaps/stanleylai/config.h
@@ -1,20 +1,15 @@
#include "../../config.h"
-// USB Device descriptor parameter
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x6060
-#define DEVICE_VER 0x0003
-#define MANUFACTURER Custom
-#define PRODUCT GH60 rev.CHN
-#define DESCRIPTION QMK keyboard firmware for GH60 with WS2812 support
-
// Backlight configuration
+#undef BACKLIGHT_LEVELS
#define BACKLIGHT_LEVELS 3
// Underlight configuration
-#define RGB_DI_PIN E2
-#define RGBLIGHT_TIMER
+#undef RGBLED_NUM
#define RGBLED_NUM 6 // Number of LEDs
+#undef RGBLIGHT_HUE_STEP
#define RGBLIGHT_HUE_STEP 8
+#undef RGBLIGHT_SAT_STEP
#define RGBLIGHT_SAT_STEP 8
+#undef RGBLIGHT_VAL_STEP
#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/satan/keymaps/stanleylai/keymap.c b/keyboards/satan/keymaps/stanleylai/keymap.c
index 623427e97..979c122e5 100644
--- a/keyboards/satan/keymaps/stanleylai/keymap.c
+++ b/keyboards/satan/keymaps/stanleylai/keymap.c
@@ -26,25 +26,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Function layer
[_FL] = KEYMAP_HHKB(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_NO, \
- KC_NO, KC_MPRV, KC_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, \
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
- KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LT(_RGBL, KC_PGUP), KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_HOME, KC_PGDN, KC_END),
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_NO, \
+ KC_NO, KC_MPRV, KC_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, \
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
+ KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LT(_RGBL, KC_PGUP), KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_HOME, KC_PGDN, KC_END),
// RGB Layer
[_RGBL] = KEYMAP_HHKB(
#ifdef RGBLIGHT_ENABLE
RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
- KC_NO, BL_TOGG, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_NO, KC_NO, KC_TRNS, KC_TRNS,\
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
+ KC_NO, BL_TOGG, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
+ KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_NO, KC_NO, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
#else
RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
- KC_NO, BL_TOGG, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 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, KC_NO, KC_TRNS, KC_TRNS,\
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
+ KC_NO, BL_TOGG, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 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, KC_NO, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
#endif
};
diff --git a/keyboards/satan/readme.md b/keyboards/satan/readme.md
new file mode 100644
index 000000000..aaf189746
--- /dev/null
+++ b/keyboards/satan/readme.md
@@ -0,0 +1,4 @@
+Satan GH60 keyboard firmware
+======================
+
+TODO: to be updated.
diff --git a/keyboards/satan/rules.mk b/keyboards/satan/rules.mk
new file mode 100644
index 000000000..1102584d8
--- /dev/null
+++ b/keyboards/satan/rules.mk
@@ -0,0 +1,66 @@
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870)
+BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150)
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/satan/satan.h b/keyboards/satan/satan.h
index fa1711915..f3cbd5305 100644
--- a/keyboards/satan/satan.h
+++ b/keyboards/satan/satan.h
@@ -3,15 +3,18 @@
#include "quantum.h"
-/* Clueboard matrix layout
+// readability
+#define XXX KC_NO
+
+/* Satan GH60 matrix layout (3c is right of 3d, 3d is shift)
* ,-----------------------------------------------------------.
- * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
+ * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49|
* |-----------------------------------------------------------|
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
* |-----------------------------------------------------------|
- * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
+ * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d |
* |-----------------------------------------------------------|
- * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d |
+ * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c |
* |-----------------------------------------------------------|
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
* `-----------------------------------------------------------'
@@ -19,18 +22,45 @@
// The first section contains all of the arguments
// The second converts the arguments into a two-dimensional array
#define KEYMAP( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
+ k40, k41, k42, k45, k4a, k4b, k4c, k4d \
+) \
+{ \
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
+ {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d}, \
+ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
+}
+/* Satan GH60 ANSI layout
+ * ,-----------------------------------------------------------.
+ * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
+ * |-----------------------------------------------------------|
+ * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
+ * |-----------------------------------------------------------|
+ * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
+ * |-----------------------------------------------------------|
+ * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d |
+ * |-----------------------------------------------------------|
+ * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
+ * `-----------------------------------------------------------'
+ */
+#define KEYMAP_ANSI( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
- k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
) \
{ \
- {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
- {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
- {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2d}, \
- {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d}, \
- {k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d} \
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
+ {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d}, \
+ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
}
/* Satan HHKB matrix layout
@@ -51,17 +81,46 @@
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
- k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
) \
{ \
- {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
- {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
- {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2d}, \
- {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
- {k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, k49, k4a, k4b, k4c, k4d} \
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
+ {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
+ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
}
+/* ISO w/ split right shift key matrix layout
+ * ,-----------------------------------------------------------.
+ * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
+ * |-----------------------------------------------------------|
+ * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
+ * |-----------------------------------------------------------|
+ * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d |
+ * |-----------------------------------------------------------|
+ * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c|
+ * |-----------------------------------------------------------|
+ * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
+ * `-----------------------------------------------------------'
+
+ swap 3c and 3d. 3c is right of 3d in reality
+ */
+#define KEYMAP_ISO_SPLITRSHIFT( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
+ k40, k41, k42, k45, k4a, k4b, k4c, k4d \
+) \
+{ \
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
+ {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
+ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
+}
void matrix_init_user(void);
void matrix_scan_user(void);
diff --git a/keyboards/sixkeyboard/Makefile b/keyboards/sixkeyboard/Makefile
index 6f273064a..4e2a6f00f 100644
--- a/keyboards/sixkeyboard/Makefile
+++ b/keyboards/sixkeyboard/Makefile
@@ -1,75 +1,3 @@
-
-
-SRC = matrix.c
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega16u2
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
-# Build Options
-# comment out to disable the options.
-#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= no # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
-COMMAND_ENABLE ?= no # Commands for debug and configuration
-SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
-NKRO_ENABLE ?= no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
-MIDI_ENABLE ?= no # MIDI controls
-AUDIO_ENABLE ?= no
-UNICODE_ENABLE ?= no # Unicode
-BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
-CUSTOM_MATRIX = yes
-
-ifndef QUANTUM_DIR
+ifndef MAKEFILE_INCLUDED
include ../../Makefile
-endif
-
+endif \ No newline at end of file
diff --git a/keyboards/sixkeyboard/rules.mk b/keyboards/sixkeyboard/rules.mk
new file mode 100644
index 000000000..2c99985a9
--- /dev/null
+++ b/keyboards/sixkeyboard/rules.mk
@@ -0,0 +1,70 @@
+
+
+SRC = matrix.c
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega16u2
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= no # Audio control and System control(+450)
+CONSOLE_ENABLE ?= no # Console for debug(+400)
+COMMAND_ENABLE ?= no # Commands for debug and configuration
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+NKRO_ENABLE ?= no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+CUSTOM_MATRIX = yes \ No newline at end of file
diff --git a/keyboards/subatomic/keymaps/default/keymap.c b/keyboards/subatomic/keymaps/default/keymap.c
new file mode 100644
index 000000000..628ade9b6
--- /dev/null
+++ b/keyboards/subatomic/keymaps/default/keymap.c
@@ -0,0 +1,280 @@
+#include "subatomic.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _COLEMAK 1
+#define _DVORAK 2
+#define _LOWER 3
+#define _RAISE 4
+#define _ADJUST 16
+
+enum subatomic_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK,
+ LOWER,
+ RAISE,
+ BACKLIT
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-------------------------------------------------------------------------------------------------.
+ * | Ins | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] |
+ * |------+------+------+------+------+------+-------------+------+------+------+------+------+------|
+ * | = | Esc | A | S | D | F | G | H | J | K | L | ; | " |Enter |
+ * |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
+ * | Pg Up| Shift| Z | X | C | V | B | N | M | , | . | / | Home | End |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Pg Dn| Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up | Right| \ |
+ * `-------------------------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+ {KC_TRNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_TRNS},
+ {KC_TRNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_TRNS},
+ {KC_TRNS, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_TRNS},
+ {KC_TRNS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_TRNS},
+ {KC_TRNS, BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS}
+},
+
+/* Colemak
+ * ,-------------------------------------------------------------------------------------------------.
+ * | Ins | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | - | Tab | Q | W | F | P | G | J | L | U | Y | ; | [ | ] |
+ * |------+------+------+------+------+------+-------------+------+------+------+------+------+------|
+ * | = | Esc | A | R | S | T | D | H | N | E | I | O | " |Enter |
+ * |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
+ * | Pg Up| Shift| Z | X | C | V | B | K | M | , | . | / | Home | End |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Pg Dn| Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up | Right| \ |
+ * `-------------------------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = {
+ {KC_TRNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_TRNS},
+ {KC_TRNS, KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, KC_TRNS},
+ {KC_TRNS, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_TRNS},
+ {KC_TRNS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_TRNS},
+ {KC_TRNS, BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS}
+},
+
+/* Dvorak
+ * ,-------------------------------------------------------------------------------------------------.
+ * | Ins | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | [ | Tab | " | , | . | P | Y | F | G | C | R | L | / | = |
+ * |------+------+------+------+------+------+-------------+------+------+------+------+------+------|
+ * | ] | Esc | A | O | E | U | I | D | H | T | N | S | - |Enter |
+ * |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
+ * | Pg Up| Shift| ; | Q | J | K | X | B | M | W | V | Z | Home | End |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Pg Dn| Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up | Right| \ |
+ * `-------------------------------------------------------------------------------------------------'
+ */
+[_DVORAK] = {
+ {KC_TRNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_TRNS},
+ {KC_TRNS, KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, KC_TRNS},
+ {KC_TRNS, KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_TRNS},
+ {KC_TRNS, KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT, KC_TRNS},
+ {KC_TRNS, BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS}
+},
+
+/* Lower
+ * ,-------------------------------------------------------------------------------------------------.
+ * | | ~ | F1 | F3 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+------+------+------+------+------+-------------+------+------+------+------+------+------|
+ * | _ | Tab | ! | @ | # | $ | % | ^ | & | * | ( | ) | { | } |
+ * |------+------+------+------+------+------+-------------+------+------+------+------+------+------|
+ * | + | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
+ * | | Shift| F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | Next | Vol- | Vol+ | Play | |
+ * `-------------------------------------------------------------------------------------------------'
+ */
+[_LOWER] = {
+ {KC_TRNS, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_TRNS},
+ {KC_TRNS, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, KC_TRNS},
+ {KC_TRNS, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS},
+ {KC_TRNS, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______,KC_TRNS},
+ {KC_TRNS, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS}
+},
+
+/* Raise
+ * ,-------------------------------------------------------------------------------------------------.
+ * | | ~ | F1 | F3 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | _ | Tab | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | { | } |
+ * |------+------+------+------+------+------+-------------+------+------+------+------+------+------|
+ * | + | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | |
+ * |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
+ * | | Shift| F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | Next | Vol- | Vol+ | | Play |
+ * `-------------------------------------------------------------------------------------------------'
+ */
+[_RAISE] = {
+ {KC_TRNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_TRNS},
+ {KC_TRNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_TRNS},
+ {KC_TRNS, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS},
+ {KC_TRNS, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, KC_TRNS},
+ {KC_TRNS, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS}
+},
+
+/* Adjust (Lower + Raise)
+ * ,-------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | Reset| | | | | | | | | | | |
+ * |------+------+------+------+------+------+-------------+------+------+------+------+------+------|
+ * | | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | |
+ * |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
+ * | | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | | |
+ * `-------------------------------------------------------------------------------------------------'
+ */
+[_ADJUST] = {
+ {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS},
+ {KC_TRNS, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_TRNS},
+ {KC_TRNS, _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, KC_TRNS},
+ {KC_TRNS, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, KC_TRNS},
+ {KC_TRNS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TRNS}
+}
+
+
+};
+
+#ifdef AUDIO_ENABLE
+float tone_startup[][2] = {
+ {NOTE_B5, 20},
+ {NOTE_B6, 8},
+ {NOTE_DS6, 20},
+ {NOTE_B6, 8}
+};
+
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+
+float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+#endif
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_COLEMAK);
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_DVORAK);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ return false;
+ break;
+ }
+ return true;
+};
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ startup_user();
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+
+void startup_user()
+{
+ _delay_ms(20); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+}
+
+void shutdown_user()
+{
+ PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ _delay_ms(150);
+ stop_all_notes();
+}
+
+void music_on_user(void)
+{
+ music_scale_user();
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+}
+
+#endif
diff --git a/keyboards/tada68/Makefile b/keyboards/tada68/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/tada68/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/tada68/config.h b/keyboards/tada68/config.h
new file mode 100644
index 000000000..19cf9c9b3
--- /dev/null
+++ b/keyboards/tada68/config.h
@@ -0,0 +1,97 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6060
+#define DEVICE_VER 0x0003
+#define MANUFACTURER TADA
+#define PRODUCT TADA68
+#define DESCRIPTION QMK keyboard firmware for TADA68 with WS2812 support
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+// ROWS: Top to bottom, COLS: Left to right
+
+#define MATRIX_ROW_PINS {D0,D1,F6,F7,D5}
+#define MATRIX_COL_PINS {F0,F1,E6,C7,C6,B7,D4,B1,B0,B5,B4,D7,D6,B3,F4}
+#define UNUSED_PINS
+
+#define BACKLIGHT_PIN B6
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* Backlight configuration
+ */
+#define BACKLIGHT_LEVELS 4
+
+/* Underlight configuration
+ */
+
+/*#define RGB_DI_PIN E2
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 2 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17*/
+//Disabled while I figure out a suitable pin for RGB support.
+//I've tried F5, D2, D3, and E2 but it's possible the end of my
+//strand is bad. New LEDs on order.
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/tada68/keymaps/default/Makefile b/keyboards/tada68/keymaps/default/Makefile
new file mode 100644
index 000000000..2a7ff2779
--- /dev/null
+++ b/keyboards/tada68/keymaps/default/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/tada68/keymaps/default/keymap.c b/keyboards/tada68/keymaps/default/keymap.c
new file mode 100644
index 000000000..da57c0343
--- /dev/null
+++ b/keyboards/tada68/keymaps/default/keymap.c
@@ -0,0 +1,98 @@
+#include "tada68.h"
+
+
+// Used for SHIFT_ESC
+#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _BL 0
+#define _FL 1
+
+#define _______ KC_TRNS
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Keymap _BL: (Base Layer) Default Layer
+ * ,----------------------------------------------------------------.
+ * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |~ ` |
+ * |----------------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Del |
+ * |----------------------------------------------------------------|
+ * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |PgUp|
+ * |----------------------------------------------------------------|
+ * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|PgDn|
+ * |----------------------------------------------------------------|
+ * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
+ * `----------------------------------------------------------------'
+ */
+[_BL] = KEYMAP_ANSI(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,KC_GRV, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,KC_BSLS,KC_DEL, \
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,KC_PGUP, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,KC_UP,KC_PGDN, \
+ KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,MO(_FL),KC_RCTRL, KC_LEFT,KC_DOWN,KC_RGHT),
+
+ /* Keymap _FL: Function Layer
+ * ,----------------------------------------------------------------.
+ * | | | | | | | | | | | | | | RESET| |
+ * |----------------------------------------------------------------|
+ * | | | | | | | | | | | |BL-|BL+|BL | |
+ * |----------------------------------------------------------------|
+ * | | | | | | | | | | | | | |
+ * |----------------------------------------------------------------|
+ * | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | | | |
+ * |----------------------------------------------------------------|
+ * | | | | | | | | | | |
+ * `----------------------------------------------------------------'
+ */
+[_FL] = KEYMAP_ANSI(
+ #ifdef RGBLIGHT_ENABLE
+ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET,_______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC,BL_INC, BL_TOGG,_______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, \
+ _______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,_______,_______,_______,_______,_______, \
+ _______,_______,_______, _______, _______,_______,_______,_______,_______, _______),
+ #else
+ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET,_______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC,BL_INC, BL_TOGG,_______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, \
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
+ _______,_______,_______, _______, _______,_______,_______,_______,_______, _______),
+ #endif
+};
+
+/*enum function_id {
+ //SHIFT_ESC,
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ //[0] = ACTION_FUNCTION(SHIFT_ESC),
+};
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ static uint8_t shift_esc_shift_mask;
+ switch (id) {
+ case SHIFT_ESC:
+ shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
+ if (record->event.pressed) {
+ if (shift_esc_shift_mask) {
+ add_key(KC_GRV);
+ send_keyboard_report();
+ } else {
+ add_key(KC_ESC);
+ send_keyboard_report();
+ }
+ } else {
+ if (shift_esc_shift_mask) {
+ del_key(KC_GRV);
+ send_keyboard_report();
+ } else {
+ del_key(KC_ESC);
+ send_keyboard_report();
+ }
+ }
+ break;
+ }
+}*/
diff --git a/keyboards/tada68/keymaps/default/readme.md b/keyboards/tada68/keymaps/default/readme.md
new file mode 100644
index 000000000..36760d6b9
--- /dev/null
+++ b/keyboards/tada68/keymaps/default/readme.md
@@ -0,0 +1 @@
+# default TADA68 layout
diff --git a/keyboards/tada68/readme.md b/keyboards/tada68/readme.md
new file mode 100644
index 000000000..552fdea52
--- /dev/null
+++ b/keyboards/tada68/readme.md
@@ -0,0 +1,4 @@
+TADA68 keyboard firmware
+======================
+
+TODO: to be updated.
diff --git a/keyboards/tada68/rules.mk b/keyboards/tada68/rules.mk
new file mode 100644
index 000000000..d8ec42365
--- /dev/null
+++ b/keyboards/tada68/rules.mk
@@ -0,0 +1,66 @@
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality (+4870)
+BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150)
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/tada68/tada68.c b/keyboards/tada68/tada68.c
new file mode 100644
index 000000000..24f89048c
--- /dev/null
+++ b/keyboards/tada68/tada68.c
@@ -0,0 +1,30 @@
+#include "tada68.h"
+#include "led.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+ matrix_init_user();
+ led_init_ports();
+};
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+ matrix_scan_user();
+};
+
+void led_init_ports(void) {
+ // * Set our LED pins as output
+ DDRB |= (1<<2);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ // Turn capslock on
+ PORTB &= ~(1<<2);
+ } else {
+ // Turn capslock off
+ PORTB |= (1<<2);
+ }
+}
diff --git a/keyboards/tada68/tada68.h b/keyboards/tada68/tada68.h
new file mode 100644
index 000000000..d0e027a6f
--- /dev/null
+++ b/keyboards/tada68/tada68.h
@@ -0,0 +1,43 @@
+#ifndef TADA68_H
+#define TADA68_H
+
+#include "quantum.h"
+
+// readability
+#define XXX KC_NO
+
+/* TADA68 ANSI layout
+ * ,----------------------------------------------------------------.
+ * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | 0e |
+ * |----------------------------------------------------------------|
+ * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | 1e |
+ * |----------------------------------------------------------------|
+ * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d | 2e |
+ * |----------------------------------------------------------------|
+ * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3c| 3d| 3e |
+ * |----------------------------------------------------------------|
+ * | 40 | 41 | 42 | 45 | 49| 4a| 4b| 4c| 4d| 4e |
+ * `----------------------------------------------------------------'
+ */
+// The first section contains all of the arguments
+// The second converts the arguments into a two-dimensional array
+
+#define KEYMAP_ANSI( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
+ k40, k41, k42, k45, k49, k4a, k4b, k4c, k4d, k4e \
+) \
+{ \
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, k2e}, \
+ {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e}, \
+ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d, k4e} \
+}
+
+void matrix_init_user(void);
+void matrix_scan_user(void);
+
+#endif
diff --git a/keyboards/tv44/Makefile b/keyboards/tv44/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/tv44/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/tv44/config.h b/keyboards/tv44/config.h
new file mode 100644
index 000000000..0ae93c095
--- /dev/null
+++ b/keyboards/tv44/config.h
@@ -0,0 +1,162 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0xFEAE
+#define PRODUCT_ID 0x8844
+#define DEVICE_VER 0x0002
+#define MANUFACTURER Evan Sailer
+#define PRODUCT TheVan 44
+#define DESCRIPTION keyboard firmware for TV44
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { D7, B5, F7, D4 }
+#define MATRIX_COL_PINS { D2, D3, D5, D6, B4, B6, F6, F5, F4, F1, F0, B3 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/tv44/keymaps/default/Makefile b/keyboards/tv44/keymaps/default/Makefile
new file mode 100644
index 000000000..f4671a9d1
--- /dev/null
+++ b/keyboards/tv44/keymaps/default/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/tv44/keymaps/default/config.h b/keyboards/tv44/keymaps/default/config.h
new file mode 100644
index 000000000..df06a2620
--- /dev/null
+++ b/keyboards/tv44/keymaps/default/config.h
@@ -0,0 +1,8 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// place overrides here
+
+#endif \ No newline at end of file
diff --git a/keyboards/tv44/keymaps/default/keymap.c b/keyboards/tv44/keymaps/default/keymap.c
new file mode 100644
index 000000000..b9fe33a7c
--- /dev/null
+++ b/keyboards/tv44/keymaps/default/keymap.c
@@ -0,0 +1,97 @@
+#include "tv44.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+
+#define _QW 0
+#define _DV 1
+#define _CM 2
+#define _L1 3
+#define _L2 4
+#define _L3 5
+
+// Macro name shortcuts
+#define QWERTY M(_QW)
+#define DVORAK M(_DV)
+#define COLEMAK M(_CM)
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QW] = { /* Qwerty */
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC },
+ {MO(_L1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MO(_L1) },
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2) },
+ {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) }
+ },
+ [_DV] = { /* Dvorak */
+ {KC_TAB, KC_SLSH, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC },
+ {MO(_L1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, MO(_L1) },
+ {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MO(_L2) },
+ {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) }
+ },
+ [_CM] = { /* Colemak */
+ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC },
+ {MO(_L1), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, MO(_L1) },
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2) },
+ {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) }
+ },
+ [_L1] = { /* LAYER 1 */
+ {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL },
+ {_______, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______ },
+ {_______, KC_ESC, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT },
+ {_______, KC_LGUI, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, XXXXXXX, _______ }
+ },
+ [_L2] = { /* LAYER 2 */
+ {_______, QWERTY, DVORAK, COLEMAK, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______ },
+ {KC_ESC, KC_PIPE, KC_DQUO, KC_UNDS, KC_PLUS, LSFT(KC_LBRC), LSFT(KC_RBRC), KC_4, KC_5, KC_6, KC_VOLU, KC_ENT },
+ {_______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_VOLD, _______ },
+ {_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, XXXXXXX, _______ }
+ },
+ [_L3] = { /* LAYER 3 */
+ {_______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______ },
+ {KC_ESC, _______, _______, _______, _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______ },
+ {KC_LSFT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_F9, KC_F10, KC_F11, KC_F12, _______ },
+ {_______, KC_LSFT, KC_B, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_C, _______, _______, XXXXXXX, _______ }
+ }
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case _DV:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_DV);
+ }
+ break;
+ case _QW:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_QW);
+ }
+ break;
+ case _CM:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_CM);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/tv44/keymaps/default/readme.md b/keyboards/tv44/keymaps/default/readme.md
new file mode 100644
index 000000000..ac84c08cf
--- /dev/null
+++ b/keyboards/tv44/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for tv44 \ No newline at end of file
diff --git a/keyboards/tv44/keymaps/jeebak/Makefile b/keyboards/tv44/keymaps/jeebak/Makefile
new file mode 100644
index 000000000..f4671a9d1
--- /dev/null
+++ b/keyboards/tv44/keymaps/jeebak/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/tv44/keymaps/jeebak/config.h b/keyboards/tv44/keymaps/jeebak/config.h
new file mode 100644
index 000000000..a59ef2b70
--- /dev/null
+++ b/keyboards/tv44/keymaps/jeebak/config.h
@@ -0,0 +1,21 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+/**
+ *TV44 keymap definition macro
+ */
+#define KEYMAP_TV44( \
+ 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, K30, K31, K32, K33, K34, K35, K36, \
+ K37, K38, K39, K40, K41, K42, K43, K44 \
+) { \
+ { 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, K30, K31, K32, K33, K34, K35, K36, }, \
+ { K37, K38, K39, K40, KC_NO, KC_NO, KC_NO, K41, K42, K43, KC_NO, K44 } \
+}
+
+#endif
diff --git a/keyboards/tv44/keymaps/jeebak/keymap.c b/keyboards/tv44/keymaps/jeebak/keymap.c
new file mode 100644
index 000000000..1bb1015c3
--- /dev/null
+++ b/keyboards/tv44/keymaps/jeebak/keymap.c
@@ -0,0 +1,425 @@
+#include "tv44.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _COLEMAK 1
+#define _DVORAK 2
+#define _LOWER 3
+#define _RAISE 4
+#define _PLOVER 5
+#define _TOUCHCURSOR 6
+#define _MOUSECURSOR 7
+#define _ADJUST 16
+
+// Keycodes
+enum planck_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK,
+ PLOVER,
+ LOWER,
+ RAISE,
+ BACKLIT,
+ EXT_PLV
+};
+
+enum macro_keycodes {
+ KC_ALT_TAB,
+ KC_CMD_TAB,
+ KC_CTL_TAB,
+ KC_CMD_SLSH,
+ KC_AG_FIND,
+ KC_AG_AGAIN,
+ KC_AG_UNDO,
+ KC_AG_CUT,
+ KC_AG_COPY,
+ KC_AG_PASTE,
+ KC_AG_DESK_L,
+ KC_AG_DESK_R,
+ KC_AG_TAB_C,
+ KC_AG_TAB_N,
+ KC_AG_TAB_R,
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+// Custom macros
+#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl
+#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
+#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper
+#define GUI_SEM GUI_T(KC_SCLN) // Tap for Semicolon, hold for GUI
+#define ALT_QUO ALT_T(KC_QUOT) // Tap for Quote, hold for Alt
+// Requires KC_TRNS/_______ for the trigger key in the destination layer
+#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor
+#define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor
+#define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab
+#define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab
+#define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab
+#define CMD_SLSH M(KC_CMD_SLSH) // Macro for Cmd-Slash (personal shortcut to toggle iTerm2 visibility)
+#define AG_FIND M(KC_AG_FIND) // Macros for Cmd-[x] vs Ctrl-[x] based on current AG_NORM or AG_SWAP settings
+#define AG_AGAIN M(KC_AG_AGAIN)
+#define AG_UNDO M(KC_AG_UNDO)
+#define AG_CUT M(KC_AG_CUT)
+#define AG_COPY M(KC_AG_COPY)
+#define AG_PASTE M(KC_AG_PASTE)
+#define AG_D_L M(KC_AG_DESK_L) // For Virtual Desktop Switching: Left, and
+#define AG_D_R M(KC_AG_DESK_R) // Right
+#define AG_T_C M(KC_AG_TAB_C) // For Chrome, etc. Tab Close,
+#define AG_T_N M(KC_AG_TAB_N) // Tab New, and
+#define AG_T_R M(KC_AG_TAB_R) // Tab Reopen Closed
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ *
+ * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
+ * |Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
+ * | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L |GUI/; | Alt/" |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | Shift | Z | X | C | V | B | N | M | , | . | / | Sft/Ent |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play |
+ * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
+ */
+[_QWERTY] = KEYMAP_TV44(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ CTL_ESC , KC_A, KC_S,LT_MC(KC_D), KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, GUI_SEM, ALT_QUO ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ KC_LALT , KC_LGUI , LOWER , LT_TC , LT_TC , RAISE , KC_VOLU , KC_MPLY ),
+/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
+
+/* Colemak
+ * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
+ * |Hyper/Tab| Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
+ * | Ctrl/Esc | A | R | MC/S | T | D | H | N | E | I | O | " |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | Shift | Z | X | C | V | B | K | M | , | . | / | Sft/Ent |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play |
+ * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
+ */
+[_COLEMAK] = KEYMAP_TV44(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ CTL_ESC , KC_A, KC_R,LT_MC(KC_S), KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ KC_LALT , KC_LGUI , LOWER , LT_TC , LT_TC , RAISE , KC_VOLU , KC_MPLY ),
+/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
+
+/* Dvorak
+ * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
+ * |Hyper/Tab| " | , | . | P | Y | F | G | C | R | L | Bksp |
+ * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
+ * | Ctrl/Esc | A | O | MC/E | U | I | D | H | T | N | S | / |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | Shift | ; | Q | J | K | X | B | M | W | V | Z | Sft/Ent |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play |
+ * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
+ */
+[_DVORAK] = KEYMAP_TV44(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ HPR_TAB,KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ CTL_ESC , KC_A, KC_O,LT_MC(KC_E), KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_LSFT , KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ KC_LALT , KC_LGUI , LOWER , LT_TC , LT_TC , RAISE , KC_VOLU , KC_MPLY ),
+/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
+
+/* Lower
+ * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
+ * | [ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | "|" |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | ] | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | Brite | | | | | | Vol- | Mute |
+ * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
+ */
+[_LOWER] = KEYMAP_TV44(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ KC_TILD,KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ KC_LBRC , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_RBRC , KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ BACKLIT , _______ , _______ , _______ , _______ , _______ , KC_VOLD , KC_MUTE ),
+/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
+
+/* Raise
+ * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
+ * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
+ * | $ | 4 | 5 | 6 | . | + | . | 4 | 5 | 6 | * | "|" |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | = | 7 | 8 | 9 | 0 | - | . | 1 | 2 | 3 | / | \ |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | Brite | | | | | | Vol- | Mute |
+ * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
+ */
+[_RAISE] = KEYMAP_TV44(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ KC_0 , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ KC_DLR , KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_DOT, KC_4, KC_5, KC_6, KC_ASTR, KC_PIPE ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_EQL , KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DOT, KC_1, KC_2, KC_3, KC_SLSH, KC_BSLS ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ BACKLIT , _______ , _______ , _______ , _______ , _______ , KC_VOLD , KC_MUTE ),
+/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
+
+/* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations
+ * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
+ * | AltTab |CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | |
+ * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
+ * | | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L| Desk_R |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | | | | | | | | |
+ * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
+ *
+ * The KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND, and KC_AGAIN keycodes don't
+ * seem to work on Mac. Presumably they'll work under Windows.
+ */
+
+[_TOUCHCURSOR] = KEYMAP_TV44(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ ALT_TAB,CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______ ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ _______ ,KC_LALT, KC_SPC, AG_T_C, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, AG_D_L, AG_D_R ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ _______ ,AG_UNDO, AG_CUT, AG_COPY,AG_PASTE, KC_GRV, KC_PGDN, KC_DEL, AG_T_N, AG_T_R,CMD_SLSH, _______ ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ),
+/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
+
+/* Mouse Layer
+ * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
+ * | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | |
+ * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
+ * | |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | | | | | | | | |
+ * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
+ */
+
+[_MOUSECURSOR] = KEYMAP_TV44(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ _______,_______, KC_ACL0, _______, _______, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______ ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ _______ ,KC_ACL2, KC_BTN2, _______, KC_BTN1, KC_ACL1, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN4, KC_BTN5 ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ _______ ,_______, _______, _______, KC_BTN3, _______, KC_WH_D, KC_BTN1, _______, _______, KC_BTN3, _______ ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ),
+/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
+
+/* Plover layer (http://opensteno.org)
+ * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
+ * | # | # | # | # | # | # | # | # | # | # | # | # |
+ * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
+ * | | S | T | P | H | * | * | F | P | L | T | D |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | TogOut | S | K | W | R | * | * | R | B | G | S | Z |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | Exit | A | O | | | E | U | |
+ * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
+ */
+
+[_PLOVER] = KEYMAP_TV44(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ KC_1 , KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ XXXXXXX , KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ XXXXXXX , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ EXT_PLV , KC_C , KC_V , XXXXXXX , XXXXXXX , KC_N , KC_M , XXXXXXX ),
+/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
+
+/* Adjust (Lower + Raise)
+ * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
+ * | | | | | | | | | | | | Del |
+ * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
+ * | | | | | |AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
+ * |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ * | | | | | | | | | | | | |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ * | | | | | | | | Reset |
+ * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
+ */
+[_ADJUST] = KEYMAP_TV44(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ _______ ,_______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______ ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , RESET )
+/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ default_layer_set(1UL<<_COLEMAK);
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ default_layer_set(1UL<<_DVORAK);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ return false;
+ break;
+ case PLOVER:
+ if (record->event.pressed) {
+ layer_off(_RAISE);
+ layer_off(_LOWER);
+ layer_off(_ADJUST);
+ layer_on(_PLOVER);
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+ keymap_config.raw = eeconfig_read_keymap();
+ keymap_config.nkro = 1;
+ eeconfig_update_keymap(keymap_config.raw);
+ }
+ return false;
+ break;
+ case EXT_PLV:
+ if (record->event.pressed) {
+ layer_off(_PLOVER);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+/*
+ * Macro definition
+ */
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+
+ bool use_cmd = true; // Use, for example, Cmd-Tab, Cmd-C, Cmd-V, etc.
+ // Compare to MAGIC_SWAP_ALT_GUI and MAGIC_UNSWAP_ALT_GUI configs, set in:
+ // quantum/quantum.c
+ if(keymap_config.swap_lalt_lgui == 1 && keymap_config.swap_ralt_rgui == 1) {
+ use_cmd = false; // ... or, Alt-Tab, Ctrl-C, Ctrl-V, etc.
+ }
+
+ switch (id) {
+ case KC_ALT_TAB:
+ if(use_cmd) { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); }
+ else { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); }
+ case KC_CMD_TAB:
+ if(use_cmd) { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); }
+ else { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); }
+
+ case KC_CTL_TAB:
+ return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END ));
+ case KC_CMD_SLSH:
+ return (record->event.pressed ? MACRO( D(LGUI), D(SLSH),END ) : MACRO( U(SLSH),END ));
+
+ case KC_AG_FIND:
+ return use_cmd ? MACRODOWN( D(LGUI), T(F), END ) : MACRODOWN( D(LCTRL), T(F), END );
+ case KC_AG_AGAIN:
+ return use_cmd ? MACRODOWN( D(LGUI), T(G), END ) : MACRODOWN( D(LCTRL), T(G), END );
+ case KC_AG_UNDO:
+ return use_cmd ? MACRODOWN( D(LGUI), T(Z), END ) : MACRODOWN( D(LCTRL), T(Z), END );
+ case KC_AG_CUT:
+ return use_cmd ? MACRODOWN( D(LGUI), T(X), END ) : MACRODOWN( D(LCTRL), T(X), END );
+ case KC_AG_COPY:
+ return use_cmd ? MACRODOWN( D(LGUI), T(C), END ) : MACRODOWN( D(LCTRL), T(C), END );
+ case KC_AG_PASTE:
+ return use_cmd ? MACRODOWN( D(LGUI), T(V), END ) : MACRODOWN( D(LCTRL), T(V), END );
+
+ case KC_AG_DESK_L:
+ return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(SCLN), END ) : MACRODOWN( D(LALT), D(LCTRL), T(SCLN), END );
+ case KC_AG_DESK_R:
+ return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(QUOT), END ) : MACRODOWN( D(LALT), D(LCTRL), T(QUOT), END );
+
+ case KC_AG_TAB_C:
+ return use_cmd ? MACRODOWN( D(LGUI), T(W), END ) : MACRODOWN( D(LCTRL), T(W), END );
+ case KC_AG_TAB_N:
+ return use_cmd ? MACRODOWN( D(LGUI), T(T), END ) : MACRODOWN( D(LCTRL), T(T), END );
+ case KC_AG_TAB_R:
+ return use_cmd ? MACRODOWN( D(LGUI), D(LSHIFT), T(T), END ) : MACRODOWN( D(LCTRL), D(LSHIFT), T(T), END );
+ }
+
+ return MACRO_NONE;
+}
diff --git a/keyboards/tv44/keymaps/jeebak/readme.md b/keyboards/tv44/keymaps/jeebak/readme.md
new file mode 100644
index 000000000..43d20958a
--- /dev/null
+++ b/keyboards/tv44/keymaps/jeebak/readme.md
@@ -0,0 +1,129 @@
+jeebak's TV44 layout
+=======================
+NOTE: This is a port of jeebak's planck layout, for tv44.
+
+This WIP keymap attempts to minimize fingers straying away from the home row.
+To aid in this endeavor, when additional modifyer keys to switch layers are
+needed, they will be mapped to home row keys. The `keymap.c` file will contain
+the exact changes. The diagrams in this README shows the highlights of the
+changes from the default mappings.
+
+I also decided to change all calls to `persistant_default_layer_set()` to
+`default_layer_set()` since this is my personal perference.
+
+## Macros
+```
+#define ALT_TAB M(KC_ALT_TAB)
+```
+
+## Base Layers (Qwerty/Colemak/Dvorak)
+These base layers are mostly the same as the default mappings. The interesting
+changes are shown below.
+
+- The `Ctrl/Esc`, will emit an `Escape` when tapped, and act as a `Control` key when held,
+- `GUI/;` as `;` and `GUI`,
+- `Alt/"` as `"` and `Alt`,
+- `Sft/Ent` as `Enter` and `Shift`, and
+- `Hyper/Tab` as `Tab` and `Hyper`
+
+A `TODO` item is to see if it can also act as a `CapsLock` when double-tapped.
+The arrow keys, which have been moved to the
+[TouchCursor](http://martin-stone.github.io/touchcursor/) layer, have been
+replaced with the Media keys as shown. The `MC/kc` key activates the
+`MouseCursor` layer when held, and emits the corresponding `kc` for its layer,
+when tapped.
+```
+ ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
+ |Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ |---------`------`------`------`------`------`------`------`------`------`------`-------------|
+ | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L |GUI/; | Alt/" |
+ |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ | Shift | Z | X | C | V | B | N | M | , | . | / | Sft/Ent |
+ |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play |
+ `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
+```
+
+## Lower Layer (Symbols and Function Keys)
+The symbols and functions keys are essentially the same as the default mapping.
+The most notable changes are that the symbol keys from the `RAISE` layer have
+been moved here. The remaining Media keys replace those that are now on the
+base layers. The `BACKLIT` key has also been moved here.
+```
+ ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
+ | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ |---------`------`------`------`------`------`------`------`------`------`------`-------------|
+ | [ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | "|" |
+ |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ | ] | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ |
+ |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ | Brite | | | | | | Vol- | Mute |
+ `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
+```
+
+## Raise Layer (Numbers and Arithmetic Operators)
+All of the numbers and arithmetic operators are available on this layer. Some
+keys are duplicated for the convenience of their positions. The `0` and `$`
+keys at the far left are for quick access to beginning and end of line in vim.
+```
+ ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ |---------`------`------`------`------`------`------`------`------`------`------`-------------|
+ | $ | 4 | 5 | 6 | . | + | . | 4 | 5 | 6 | * | "|" |
+ |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ | = | 7 | 8 | 9 | 0 | - | . | 1 | 2 | 3 | / | \ |
+ |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ | Brite | | | | | | Vol- | Mute |
+ `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
+```
+
+## TouchCursor layer plus personal customizations
+[TouchCursor](http://martin-stone.github.io/touchcursor/) uses the `Space` key
+as the modifier, with the `IJKL` home row keys representing the inverted-T of
+the arrow keys. All of the default TouchCursor keymappings for the right hand
+are represented below. My personalizations include all of the keys shown for
+the left hand. Having the `Alt` and `Shift` keys (as well as the `Control` key
+from the base layers) readily accessible from the home row allows quick word
+jumps and highlighting when used in conjunction with the arrow keys. The
+`Alt-Tab` macro is not only useful under Windows, but also under Mac when used
+with alternative switchers like [HyperSwitch](https://bahoom.com/hyperswitch).
+The `Cmd-Tab` and `Ctrl-Tab` sequences are duplicated for easy access while in
+this layer. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN`
+keycodes do not seem to work. There are macros in place that'll "automatically"
+choose the correct version (`Cmd-Tab` vs. `Alt-Tab`, `Cmd-C` vs. `Ctrl-C`,
+etc.) depending on which layout you've currently selected (`AG_NORM` or
+`AG_SWAP`) in the `_ADJUST` layer. The `Desk_L` and `Desk_R` macros are what I
+use to switch between Virtual Desktops Left/Right. The `Tab_C`, `Tab_N` and
+`Tab_R` are for "Close Tab," "New Tab" and "Reopen Closed Tab" for apps such as
+Google Chrome.
+```
+ ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
+ | AltTab |CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | |
+ |---------`------`------`------`------`------`------`------`------`------`------`-------------|
+ | | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L| Desk_R |
+ |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ | | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| |
+ |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ | | | | | | | | |
+ `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
+```
+
+## Mouse Layer
+The Mouse layer, closely mimics the layout/behaviour of the TouchCursor layer.
+The `D` key (on QWERTY) is used to activate this layer. All 16 keycodes for the
+mouse from the `doc/keycode.txt` file are represented, and logically located,
+IMHO. The left and right click buttons are duplicated; on the right hand side,
+for a quick click here and there, and again on the left hand side for when the
+buttons need to be held for dragging things or highlighting text, thus allowing
+the right hand to be free to use the up/down/left/right actions.
+```
+ ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
+ | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | |
+ |---------`------`------`------`------`------`------`------`------`------`------`-------------|
+ | |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 |
+ |----------`------`------`------`------`------`------`------`------`------`------`------------|
+ | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | |
+ |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
+ | | | | | | | | |
+ `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
+```
diff --git a/keyboards/tv44/keymaps/smt/Makefile b/keyboards/tv44/keymaps/smt/Makefile
new file mode 100644
index 000000000..f4671a9d1
--- /dev/null
+++ b/keyboards/tv44/keymaps/smt/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/tv44/keymaps/smt/config.h b/keyboards/tv44/keymaps/smt/config.h
new file mode 100644
index 000000000..f8f0a5078
--- /dev/null
+++ b/keyboards/tv44/keymaps/smt/config.h
@@ -0,0 +1,36 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+/**
+ *TV44 keymap definition macro
+ */
+#define KEYMAP_TV44( \
+ 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, K30, K31, K32, K33, K34, K35, K36, \
+ K37, K38, K39, K40, K41, K42, K43, K44 \
+) { \
+ { 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, K30, K31, K32, K33, K34, K35, K36, }, \
+ { K37, K38, K39, K40, KC_NO, KC_NO, KC_NO, K41, K42, K43, KC_NO, K44 } \
+}
+
+/**
+ *TV45 keymap definition macro (arrows layout)
+ */
+#define KEYMAP_TV45( \
+ 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, K30, K31, K32, K33, K34, K35, K36, \
+ K37, K38, K39, K40, K41, K42, K43, K44, K45 \
+) { \
+ { 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, K30, K31, K32, K33, K34, K35, K36, }, \
+ { K37, K38, K39, K40, KC_NO, KC_NO, KC_NO, K41, K42, K43, K44, K45 } \
+}
+
+#endif
diff --git a/keyboards/tv44/keymaps/smt/keyboard-layout-minivan.png b/keyboards/tv44/keymaps/smt/keyboard-layout-minivan.png
new file mode 100644
index 000000000..2dca67fb6
--- /dev/null
+++ b/keyboards/tv44/keymaps/smt/keyboard-layout-minivan.png
Binary files differ
diff --git a/keyboards/tv44/keymaps/smt/keymap.c b/keyboards/tv44/keymaps/smt/keymap.c
new file mode 100644
index 000000000..de5ce03e2
--- /dev/null
+++ b/keyboards/tv44/keymaps/smt/keymap.c
@@ -0,0 +1,232 @@
+#include "tv44.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _COLEMAK 1
+#define _DVORAK 2
+#define _LOWER 3
+#define _RAISE 4
+#define _ADJUST 16
+
+// Keycodes
+enum planck_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK,
+ LOWER,
+ RAISE,
+ BACKLIT
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+// Custom macros
+#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl
+#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
+#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper
+#define ALT_GRV ALT_T(KC_GRV) // Tap for Backtick, hold for Alt
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ *
+ * ,---------+------+------+------+------+------+------+------+------+------+------+---------.
+ * |Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |---------`------`------`------`------`------`------`------`------`------`------`---------|
+ * | Ctrl/Esc | A | S | D | F | G | H | J | K | L | ; | ' |
+ * |----------`------`------`------`------`------`------`------`------`------`------`--------|
+ * | Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent|
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-------|
+ * | Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl |
+ * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
+ */
+[_QWERTY] = KEYMAP_TV45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ CTL_ESC , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ ALT_GRV , KC_LGUI , LOWER , KC_SPC , KC_SPC , RAISE , KC_RGUI, KC_RALT, KC_RCTL ),
+/*`---------+---------------+---------+-------^^^------+-------^^^-------+----------+--------+--------+--------------'*/
+
+/* Colemak
+ * ,---------+------+------+------+------+------+------+------+------+------+------+---------.
+ * |Hyper/Tab| Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ * |---------`------`------`------`------`------`------`------`------`------`------`---------|
+ * | Ctrl/Esc | A | R | S | T | D | H | N | E | I | O | ' |
+ * |----------`------`------`------`------`------`------`------`------`------`------`--------|
+ * | Shift | Z | X | C | V | B | K | M | , | . | / |Sft/Ent|
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-------|
+ * | Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl |
+ * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
+ */
+[_COLEMAK] = KEYMAP_TV45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ CTL_ESC , KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ ALT_GRV , KC_LGUI , LOWER , KC_SPC , KC_SPC , RAISE , KC_RGUI, KC_RALT, KC_RCTL ),
+/*`---------+---------------+---------+-------^^^------+-------^^^-------+----------+--------+--------+--------------'*/
+
+/* Dvorak
+ * ,---------+------+------+------+------+------+------+------+------+------+------+---------.
+ * |Hyper/Tab| ' | , | . | P | Y | F | G | C | R | L | Bksp |
+ * |---------`------`------`------`------`------`------`------`------`------`------`---------|
+ * | Ctrl/Esc | A | O | E | U | I | D | H | T | N | S | - |
+ * |----------`------`------`------`------`------`------`------`------`------`------`--------|
+ * | Shift | ; | Q | J | K | X | B | M | W | V | Z |Sft/Ent|
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-------|
+ * | Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl |
+ * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
+ */
+[_DVORAK] = KEYMAP_TV45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ HPR_TAB,KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ CTL_ESC , KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_LSFT , KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ ALT_GRV , KC_LGUI , LOWER , KC_SPC , KC_SPC , RAISE , KC_RGUI, KC_RALT, KC_RCTL ),
+/*`---------+---------------+---------+-------^^^------+-------^^^-------+----------+--------+--------+--------------'*/
+
+/* Lower
+ * ,---------+------+------+------+------+------+------+------+------+------+------+---------.
+ * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |---------`------`------`------`------`------`------`------`------`------`------`---------|
+ * | $ | 4 | 5 | 6 | . | + | * | 4 | 5 | 6 | . | PageUp |
+ * |----------`------`------`------`------`------`------`------`------`------`------`--------|
+ * | = | 7 | 8 | 9 | 0 | - | / | 1 | 2 | 3 | Up |PageDn |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-------|
+ * | Brite | | | Home | End | | Left | Down | Right |
+ * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
+ */
+[_LOWER] = KEYMAP_TV45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ KC_0 , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ KC_DLR , KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_ASTR, KC_4, KC_5, KC_6, KC_DOT, KC_PGUP ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_EQL , KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_SLSH, KC_1, KC_2, KC_3, KC_UP, KC_PGDN ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ BACKLIT , _______ , _______ , KC_HOME , KC_END , _______ , KC_LEFT, KC_DOWN, KC_RGHT ),
+/*`---------+---------------+---------+-------^^^------+-------^^^-------+----------+--------+--------+--------------'*/
+
+/* Raise
+ * ,---------+------+------+------+------+------+------+------+------+------+------+---------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |---------`------`------`------`------`------`------`------`------`------`------`---------|
+ * | F1 | F2 | F3 | F4 | F5 | F6 | _ | ? | + | { | } | |
+ * |----------`------`------`------`------`------`------`------`------`------`------`--------|
+ * | F7 | F8 | F9 | F10 | F11 | F12 | - | / | = | [ | ] | |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-------|
+ * | Brite | | | Play | Next | | Mute | Vol- | Vol+ |
+ * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
+ */
+[_RAISE] = KEYMAP_TV45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ KC_TILD,KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ BACKLIT , _______ , _______ , KC_MPLY , KC_MNXT , _______ , KC_MUTE, KC_VOLD, KC_VOLU ),
+/*`---------+---------------+---------+-------^^^------+-------^^^-------+----------+--------+--------+--------------'*/
+
+/* Adjust (Lower + Raise)
+ * ,---------+------+------+------+------+------+------+------+------+------+------+---------.
+ * | | Reset| | | | | | | | | | Del |
+ * |---------`------`------`------`------`------`------`------`------`------`------`---------|
+ * | | | | | |AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
+ * |----------`------`------`------`------`------`------`------`------`------`------`--------|
+ * | | | | | | | | | | | | |
+ * |-----------`------`------`------`------`-----'-------`------`------`------`------`-------|
+ * | | | | | | | | | |
+ * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
+ */
+[_ADJUST] = KEYMAP_TV45(
+/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
+ _______, RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,
+/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
+ _______ ,_______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______ ,
+/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
+ _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
+/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
+ _______ , _______ , _______ , _______ , _______ , _______ , _______, _______, _______ ),
+/*`---------+---------------+---------+-------^^^------+-------^^^-------+----------+--------+--------+--------------'*/
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_COLEMAK);
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_DVORAK);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/tv44/keymaps/smt/readme.md b/keyboards/tv44/keymaps/smt/readme.md
new file mode 100644
index 000000000..647eb8976
--- /dev/null
+++ b/keyboards/tv44/keymaps/smt/readme.md
@@ -0,0 +1,126 @@
+# smt's TV44 keymap
+
+This keymap is based on a combination of my Planck keymap and [jeebak's TV44 layout](https://github.com/qmk/qmk_firmware/tree/master/keyboards/tv44/keymaps/jeebak). I removed the macros and TouchCursor/MouseCursor layers, because I'm just not ready for that level of mind-mapping.
+
+I had been using something close to the default Minivan layout, but after spending a bit of time with the Planck and Preonic, I decided it would be better for me to try to standardize to some degree, where possible.
+
+Also, it's worth noting that my Minivan is one with the "arrows" layout, which has a 45th key, so I had to define a new KEYMAP_TV45 macro in config.h. In spite of this, the 45-key Minivan is still technically considered a "TV44" as far as I know.
+
+![smt's TV44 keymap](keyboard-layout-minivan.png)
+
+## Notable features (most of which can be found in my or jeebak's respective keymap file):
+
+1. **Shift/Enter**
+
+ I use both the left and right shift keys when I type. When I want to modify a key with shift, I hold shift with the hand opposite the one typing the key. In the default keymap, Enter is where shift would be on a standard keyboard layout. Oh, muscle memory.
+
+ Thankfully, QMK supports [mod-tap](https://github.com/jackhumbert/qmk_firmware/wiki#fun-with-modifier-keys) keys, and this allows me to set the Enter key to send a modifier (MOD_LSFT) when held, and KC_ENT when tapped. Awesome!
+
+2. **Hyper/Tab**
+
+ This key modifies with "Hyper" (see [Brett Terpstra's post](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) on this) when held, and outputs the code for Tab when tapped. On the Mac, I use KeyboardMaestro to remap my hyper-keys to do a lot of crazy things.
+
+3. **Ctrl/Escape**
+
+ I set up another mod-tap, this time for the Escape key that would act as a Control modifier when held.
+
+4. **Alt/Backtick**
+
+ I don't currently have LEDs on most of my keyboards, and I certainly don't want LED controls on the base layer of a 40%.
+
+ So, why use backtick in the lower left corner? I use it as my tmux prefix key, so I need to type it more frequently than most people. Putting it on the base layer works well for my use case, and it's consistent with where I place it in my Planck and Preonic keymaps.
+
+ I also like Alt in that position, so it works well as yet another mod-tap key.
+
+
+## Layers
+
+### Qwerty
+
+```
+,---------+------+------+------+------+------+------+------+------+------+------+---------.
+|Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp |
+|---------`------`------`------`------`------`------`------`------`------`------`---------|
+| Ctrl/Esc | A | S | D | F | G | H | J | K | L | ; | ' |
+|----------`------`------`------`------`------`------`------`------`------`------`--------|
+| Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent|
+|-----------`------`------`------`------`-----'-------`------`------`------`------`-------|
+| Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl |
+ `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
+```
+
+### Colemak
+
+```
+,---------+------+------+------+------+------+------+------+------+------+------+---------.
+|Hyper/Tab| Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+|---------`------`------`------`------`------`------`------`------`------`------`---------|
+| Ctrl/Esc | A | R | S | T | D | H | N | E | I | O | ' |
+|----------`------`------`------`------`------`------`------`------`------`------`--------|
+| Shift | Z | X | C | V | B | K | M | , | . | / |Sft/Ent|
+|-----------`------`------`------`------`-----'-------`------`------`------`------`-------|
+| Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl |
+ `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
+```
+
+### Dvorak
+
+```
+,---------+------+------+------+------+------+------+------+------+------+------+---------.
+|Hyper/Tab| ' | , | . | P | Y | F | G | C | R | L | Bksp |
+|---------`------`------`------`------`------`------`------`------`------`------`---------|
+| Ctrl/Esc | A | O | E | U | I | D | H | T | N | S | - |
+|----------`------`------`------`------`------`------`------`------`------`------`--------|
+| Shift | ; | Q | J | K | X | B | M | W | V | Z |Sft/Ent|
+|-----------`------`------`------`------`-----'-------`------`------`------`------`-------|
+| Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl |
+ `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
+```
+
+### Lower
+
+This is where I put the number row, two numpad clusters, common arithmetic operators, and cursorkeys: Arrow cluster, Home/End, Page Up/Page Down. `0` and `$` are also placed on the left side for convenient access to beginning-of-line and end-of-line Vim commands. BRITE has been moved here from the base layer.
+
+```
+,---------+------+------+------+------+------+------+------+------+------+------+---------.
+| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+|---------`------`------`------`------`------`------`------`------`------`------`---------|
+| $ | 4 | 5 | 6 | . | + | * | 4 | 5 | 6 | . | PageUp |
+|----------`------`------`------`------`------`------`------`------`------`------`--------|
+| = | 7 | 8 | 9 | 0 | - | / | 1 | 2 | 3 | Up |PageDn |
+|-----------`------`------`------`------`-----'-------`------`------`------`------`-------|
+| Brite | | | Home | End | | Left | Down | Right |
+ `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
+```
+
+### Raise
+
+As a developer, it makes the most sense for me to group all the commonly-used symbols that don't fit on the main layer. In particular, having the dual-column of parens-braces-brackets helps me keep them straight. I've dropped basic media controls onto this layer as well.
+
+```
+,---------+------+------+------+------+------+------+------+------+------+------+---------.
+| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+|---------`------`------`------`------`------`------`------`------`------`------`---------|
+| F1 | F2 | F3 | F4 | F5 | F6 | _ | ? | + | { | } | | |
+|----------`------`------`------`------`------`------`------`------`------`------`--------|
+| F7 | F8 | F9 | F10 | F11 | F12 | - | / | = | [ | ] | \ |
+|-----------`------`------`------`------`-----'-------`------`------`------`------`-------|
+| Brite | | | Play | Next | | Mute | Vol- | Vol+ |
+ `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
+```
+
+### Adjust (Lower + Raise)
+
+Utility layer. There isn't much here; it's mainly for swapping the default keymap between Qwerty and Dvorak, or putting the keyboard into flash mode via the Reset key.
+
+```
+,---------+------+------+------+------+------+------+------+------+------+------+---------.
+| | Reset| | | | | | | | | | Del |
+|---------`------`------`------`------`------`------`------`------`------`------`---------|
+| | | | | |AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
+|----------`------`------`------`------`------`------`------`------`------`------`--------|
+| | | | | | | | | | | | |
+|-----------`------`------`------`------`-----'-------`------`------`------`------`-------|
+| | | | | | | | | |
+ `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
+```
diff --git a/keyboards/tv44/keymaps/xyverz/Makefile b/keyboards/tv44/keymaps/xyverz/Makefile
new file mode 100644
index 000000000..f4671a9d1
--- /dev/null
+++ b/keyboards/tv44/keymaps/xyverz/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/tv44/keymaps/xyverz/config.h b/keyboards/tv44/keymaps/xyverz/config.h
new file mode 100644
index 000000000..df06a2620
--- /dev/null
+++ b/keyboards/tv44/keymaps/xyverz/config.h
@@ -0,0 +1,8 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// place overrides here
+
+#endif \ No newline at end of file
diff --git a/keyboards/tv44/keymaps/xyverz/keymap.c b/keyboards/tv44/keymaps/xyverz/keymap.c
new file mode 100644
index 000000000..8cbcf8d35
--- /dev/null
+++ b/keyboards/tv44/keymaps/xyverz/keymap.c
@@ -0,0 +1,92 @@
+#include "tv44.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+#define _DV 0
+#define _QW 1
+#define _CM 2
+#define _L1 3
+#define _L2 4
+
+// Macro name shortcuts
+#define DVORAK M(_DV)
+#define QWERTY M(_QW)
+#define COLEMAK M(_CM)
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_DV] = { /* 0: Dvorak */
+ {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC },
+ {MO(_L1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT },
+ {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT },
+ {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_SLSH, KC_MINS, XXXXXXX, MO(_L2) }
+ },
+
+ [_QW] = { /* 1: Qwerty */
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC },
+ {MO(_L1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT },
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT },
+ {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_SLSH, KC_MINS, XXXXXXX, MO(_L2) }
+ },
+
+ [_CM] = { /* 2: Colemak */
+ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC },
+ {MO(_L1), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT },
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT },
+ {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_SLSH, KC_MINS, XXXXXXX, MO(_L2) }
+ },
+
+ [_L1] = {/* 1: FN 1 */
+ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL },
+ {_______, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______ },
+ {_______, _______, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT },
+ {KC_ESC, KC_LGUI, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_SLSH, _______, _______ }
+ },
+
+ [_L2] = { /* 2: FN 2 */
+ {KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_ESC },
+ {_______, KC_F11, KC_F12, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_VOLU, KC_ENT },
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_VOLD, _______ },
+ {QWERTY, DVORAK, COLEMAK, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______ }
+ }
+
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case _DV:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_DV);
+ }
+ break;
+ case _QW:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_QW);
+ }
+ break;
+ case _CM:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_CM);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+
diff --git a/keyboards/tv44/keymaps/xyverz/readme.md b/keyboards/tv44/keymaps/xyverz/readme.md
new file mode 100644
index 000000000..ac84c08cf
--- /dev/null
+++ b/keyboards/tv44/keymaps/xyverz/readme.md
@@ -0,0 +1 @@
+# The default keymap for tv44 \ No newline at end of file
diff --git a/keyboards/tv44/readme.md b/keyboards/tv44/readme.md
new file mode 100644
index 000000000..4f691a4ca
--- /dev/null
+++ b/keyboards/tv44/readme.md
@@ -0,0 +1,28 @@
+tv44 keyboard firmware
+======================
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/tv44 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+
+To build with the default keymap, simply run `make default`.
+
+### Other Keymaps
+
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
+
+```
+$ make [default|jack|<name>]
+```
+
+Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` \ No newline at end of file
diff --git a/keyboards/tv44/rules.mk b/keyboards/tv44/rules.mk
new file mode 100644
index 000000000..dbba6bace
--- /dev/null
+++ b/keyboards/tv44/rules.mk
@@ -0,0 +1,69 @@
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= yes # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no # Audio output on port C6
diff --git a/keyboards/tv44/tv44.c b/keyboards/tv44/tv44.c
new file mode 100644
index 000000000..6dc0efd28
--- /dev/null
+++ b/keyboards/tv44/tv44.c
@@ -0,0 +1,28 @@
+#include "tv44.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // put your per-action keyboard code here
+ // runs for every action, just before processing by the firmware
+
+ return process_record_user(keycode, record);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ led_set_user(usb_led);
+}
diff --git a/keyboards/tv44/tv44.h b/keyboards/tv44/tv44.h
new file mode 100644
index 000000000..65c0b4593
--- /dev/null
+++ b/keyboards/tv44/tv44.h
@@ -0,0 +1,22 @@
+#ifndef TV44_H
+#define TV44_H
+
+#include "quantum.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, K37, K38, K39, K3A, K3B \
+) \
+{ \
+ { 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, KC_NO, KC_NO, KC_NO, K37, K38, K39, K3A, K3B } \
+
+#endif
diff --git a/keyboards/vision_division/Makefile b/keyboards/vision_division/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/vision_division/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/vision_division/Potential Layouts.txt b/keyboards/vision_division/Potential Layouts.txt
new file mode 100644
index 000000000..f715ac8c6
--- /dev/null
+++ b/keyboards/vision_division/Potential Layouts.txt
@@ -0,0 +1,84 @@
+/* Numeric Max / Numeric Normal - Full Grid
+ * .-----------------------------------. .--------------------------------------------------------------_--------------------------------------------------------------. .-----------------------------------.
+ * | | | | | | | | | | | | | | | | | | | | | | | | |
+ * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+ * .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------.
+ * | | | | | | | | | | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------|
+ * | | | | | | | | | | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------| o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------|
+ * | | | | | o | | | | | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------| o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------|
+ * | | | | | | | | | | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------|
+ * | | | | | | | | | | | | | | | | | | | | | | | | |
+ * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+ */
+
+//* Numeric Max / Homing Normal - Full Grid
+ * .-----------------------------------. .--------------------------------------------------------------_--------------------------------------------------------------. .--------------------------.
+ * | | | | | | | | | | | | | | | | | | | | | | | |
+ * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '--------------------------'
+ * .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .--------------------------.
+ * | | | | | | | | | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------|
+ * | | | | | | | | | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------| o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------|
+ * | | | | | o | | | | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------| o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------|
+ * | | | | | | | | | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------|
+ * | | | | | | | | | | | | | | | | | | | | | | | |
+ * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '--------------------------'
+ */
+
+//* Numeric Max / Homing Normal - Traditional
+ * .-----------------------------------. .-----------------------------------. .-----------------_-----------------. .-----------------------------------. .--------------------------.
+ * | | | | | | | | | | | | | | | | | | | | | | | |
+ * '-----------------------------------' '-----------------------------------' '-----------------------------------' '-----------------------------------' '--------------------------'
+ * .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .--------------------------.
+ * | | | | | | | | | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------|
+ * | | | | | | | | | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+ | o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| '--------+--------+--------'
+ * | | | | | o | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------| o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| .--------.
+ * | | | | | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+ | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| .--------+--------+--------.
+ * | | | | | | | | | | | | | | | | | | | | | |
+ * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '--------------------------'
+ */
+
+/* Numeric Max / Numeric Normal
+ * .-----------------------------------. .--------------------------------------------------------------_--------------------------------------------------------------. .-----------------------------------.
+ * | | | | | | | | | | | | | | | | | | | | | | | | |
+ * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+ * .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------.
+ * | | | | | | 1U / 2U | | | | | | | | | | | 1U / 2U | | | | | |
+ * |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------|
+ * | 1U | | | 1U | | | | | | | | | | | | | | | | | 1U | | | 1U |
+ * | / +--------+--------+ / | o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | / +--------+--------+ / |
+ * | 2U | | | 2U | o | 1U / 2U | | | | | | | | | | | | | 2U | | | 2U |
+ * |--------+--------+--------+--------| o |-----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| |--------+--------+--------+--------|
+ * | | | | | | 1U / 2U | | | | | | | | | | | 1U / 2U | | | | | |
+ * | '--------+--------' | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | '--------+--------' |
+ * | 1U / 2UH / 2UV | 1U / 2UH / 2UV | | | | | | | | 1U / 2U | | | | | | | | 1U / 2UH / 2UV | 1U / 2UH / 2UV |
+ * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+ */
+
+/* Numeric Max / Numeric Max
+ * .-----------------------------------. .-----------------------------------------------------------------------_-----------------------------------------------------------------------. .-----------------------------------.
+ * | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+ * .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------------------------. .-----------------------------------.
+ * | | | | | | 1U / 2U | | | | | | | | | | | | | 1U / 2U | | | | | |
+ * |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------|
+ * | 1U | | | 1U | | | | | | | | | | | | | | | | | | | 1U | | | 1U |
+ * | / +--------+--------+ / | o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | / +--------+--------+ / |
+ * | 2U | | | 2U | o | 1U / 2U | | | | | | | | | | | | | | | 2U | | | 2U |
+ * |--------+--------+--------+--------| o |-----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| |--------+--------+--------+--------|
+ * | | | | | | 1U / 2U | | | | | | | | | | | | | 1U / 2U | | | | | |
+ * | '--------+--------' | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | '--------+--------' |
+ * | 1U / 2UH / 2UV | 1U / 2UH / 2UV | | | | | | | | 1U / 2U | 1U / 2U | | | | | | | | 1U / 2UH / 2UV | 1U / 2UH / 2UV |
+ * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+ */
diff --git a/keyboards/vision_division/config.h b/keyboards/vision_division/config.h
new file mode 100644
index 000000000..5798d91ad
--- /dev/null
+++ b/keyboards/vision_division/config.h
@@ -0,0 +1,148 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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"
+
+// Due to the configurability of this keyboard, matrix sizes are determined in the keymap's config.h
+
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION ROW2COL
+
+#define BACKLIGHT_PIN B7
+#define BACKLIGHT_BREATHING
+#define BACKLIGHT_LEVELS 3
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 0
+
+#define MATRIX_MASKED
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+// #ifndef NO_DEBUG
+// # define NO_DEBUG
+// #endif
+
+/* disable print */
+// #ifndef NO_PRINT
+// # define NO_PRINT
+// #endif
+
+/* Only print user print statements */
+// #define USER_PRINT
+
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/vision_division/keymaps/default/Makefile b/keyboards/vision_division/keymaps/default/Makefile
new file mode 100644
index 000000000..28060947a
--- /dev/null
+++ b/keyboards/vision_division/keymaps/default/Makefile
@@ -0,0 +1,21 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = 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
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = yes # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/vision_division/keymaps/default/config.h b/keyboards/vision_division/keymaps/default/config.h
new file mode 100644
index 000000000..efd43f41b
--- /dev/null
+++ b/keyboards/vision_division/keymaps/default/config.h
@@ -0,0 +1,81 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+#include "matrix_types.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define DEVICE_VER 0x0001
+#define MANUFACTURER IBNobody
+#define PRODUCT Vision Division
+#define DESCRIPTION Full / Split Keyboard
+
+#define MATRIX_ROWS 6
+#define MATRIX_ROW_PINS { C2, C3, F4, F5, F6, F7 }
+
+// !!! MAKE SURE THAT THE LEFT/RIGHT PCB DEFINES MATCH ON ALL OF THESE COLUMNS
+
+// **LEFT** **RIGHT**
+#define PRODUCT_ID GET_PID( NUMERIC_NORMAL, NUMERIC_MAX_TEENSY)
+#define MATRIX_COLS GET_MATRIX_COLS( NUMERIC_NORMAL, NUMERIC_MAX_TEENSY)
+#define MATRIX_COL_PINS GET_MATRIX_COL_PINS( NUMERIC_NORMAL, NUMERIC_MAX_TEENSY)
+
+#define KEYMAP(MATRIX_LAYER, \
+ k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C, \
+ k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C, \
+ k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C, \
+ k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C, \
+ k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C, \
+ k601, k602, k603, k604, k605, k606, k607, k608, k609, k60A, k611, k612, k613, k614, k615, k616, k617, k618, k619, k61A, k61B, k61C \
+) \
+KEYMAP_MASTER(MATRIX_LAYER, NUMERIC_NORMAL, NUMERIC_MAX_TEENSY, \
+ k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, KC_NO, KC_NO, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C, \
+ k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, KC_NO, KC_NO, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C, \
+ k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, KC_NO, KC_NO, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C, \
+ k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, KC_NO, KC_NO, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C, \
+ k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, KC_NO, KC_NO, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C, \
+ k601, k602, k603, k604, k605, k606, k607, k608, k609, k60A, KC_NO, KC_NO, k611, k612, k613, k614, k615, k616, k617, k618, k619, k61A, k61B, k61C \
+)
+
+// Example Keymap Macros
+
+/*
+#define KEYMAP(MATRIX_LAYER, \
+ k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C, \
+ k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C, \
+ k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C, \
+ k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C, \
+ k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C, \
+ k601, k602, k603, k604, k605, k606, k607, k608, k609, k60A, k60B, k60C, k611, k612, k613, k614, k615, k616, k617, k618, k619, k61A, k61B, k61C \
+) \
+KEYMAP_MASTER(MATRIX_LAYER, NUMERIC_MAX_TEENSY, NUMERIC_MAX, \
+ k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C, \
+ k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C, \
+ k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C, \
+ k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C, \
+ k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C, \
+ k601, k602, k603, k604, k605, k606, k607, k608, k609, k60A, k60B, k60C, k611, k612, k613, k614, k615, k616, k617, k618, k619, k61A, k61B, k61C \
+)
+*/
+
+/*
+#define KEYMAP(MATRIX_LAYER, \
+ k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, \
+ k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, \
+ k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, \
+ k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, \
+ k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, \
+ k601, k602, k603, k604, k605, k606, k607, k608, k609, k60A, k611, k612, k613, k614, k615, k616, k617, k618, k619, k61A, k61B \
+) \
+KEYMAP_MASTER(MATRIX_LAYER, NUMERIC_NORMAL, HOMING_MAX_TEENSY, \
+ k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, KC_NO, KC_NO, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, KC_NO, \
+ k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, KC_NO, KC_NO, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, KC_NO, \
+ k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, KC_NO, KC_NO, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, KC_NO, \
+ k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, KC_NO, KC_NO, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, KC_NO, \
+ k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, KC_NO, KC_NO, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, KC_NO, \
+ k601, k602, k603, k604, k605, k606, k607, k608, k609, k60A, KC_NO, KC_NO, k611, k612, k613, k614, k615, k616, k617, k618, k619, k61A, k61B, KC_NO \
+)
+*/
+
+#endif \ No newline at end of file
diff --git a/keyboards/vision_division/keymaps/default/keymap.c b/keyboards/vision_division/keymaps/default/keymap.c
new file mode 100644
index 000000000..3282761c0
--- /dev/null
+++ b/keyboards/vision_division/keymaps/default/keymap.c
@@ -0,0 +1,622 @@
+#include "vision_division.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+#include "led.h"
+
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+ #include "song_list.h"
+#endif
+
+enum keyboard_layers {
+ LAYER_QWERTY = 0,
+ LAYER_UPPER,
+ LAYER_LOWER,
+ LAYER_FUNCTION,
+ LAYER_MOUSE,
+ LAYER_ADJUST,
+};
+enum keyboard_macros {
+ MACRO_QWERTY = 0,
+ MACRO_UPPER,
+ MACRO_LOWER,
+ MACRO_FUNCTION,
+ MACRO_MOUSE,
+ MACRO_TIMBRE_1,
+ MACRO_TIMBRE_2,
+ MACRO_TIMBRE_3,
+ MACRO_TIMBRE_4,
+ MACRO_TEMPO_U,
+ MACRO_TEMPO_D,
+ MACRO_TONE_DEFAULT,
+ MACRO_MUSIC_TOGGLE,
+ MACRO_AUDIO_TOGGLE,
+ MACRO_INC_VOICE,
+ MACRO_DEC_VOICE,
+ MACRO_BACKLIGHT,
+ MACRO_BREATH_TOGGLE,
+ MACRO_BREATH_SPEED_INC,
+ MACRO_BREATH_SPEED_DEC,
+ MACRO_BREATH_DEFAULT,
+ MACRO_MOUSE_MOVE_UL,
+ MACRO_MOUSE_MOVE_UR,
+ MACRO_MOUSE_MOVE_DL,
+ MACRO_MOUSE_MOVE_DR,
+ MACRO_HELP,
+ MACRO_HELP_1,
+ MACRO_HELP_2,
+ MACRO_HELP_3,
+ MACRO_HELP_4,
+ MACRO_HELP_5,
+ MACRO_HELP_6,
+ MACRO_HELP_7,
+ MACRO_HELP_8,
+ MACRO_HELP_9,
+ MACRO_HELP_0,
+ MACRO_GENERAL_1,
+ MACRO_GENERAL_2,
+ MACRO_GENERAL_3,
+ MACRO_GENERAL_4,
+ MACRO_GENERAL_5,
+ MACRO_CURSOR_UL,
+ MACRO_CURSOR_UR,
+ MACRO_CURSOR_DL,
+ MACRO_CURSOR_DR,
+ MACRO_MUTE_APP,
+ MACRO_COPY_CUT,
+};
+
+#define M_QWRTY M(MACRO_QWERTY)
+#define M_UPPER M(MACRO_UPPER)
+#define M_LOWER M(MACRO_LOWER)
+#define M_FUNCT M(MACRO_FUNCTION)
+#define M_MOUSE M(MACRO_MOUSE)
+
+#define TIMBR_1 M(MACRO_TIMBRE_1)
+#define TIMBR_2 M(MACRO_TIMBRE_2)
+#define TIMBR_3 M(MACRO_TIMBRE_3)
+#define TIMBR_4 M(MACRO_TIMBRE_4)
+#define TMPO_UP M(MACRO_TEMPO_U)
+#define TMPO_DN M(MACRO_TEMPO_D)
+#define TMPO_DF M(MACRO_TONE_DEFAULT)
+
+#define VC_UP M(MACRO_INC_VOICE)
+#define VC_DOWN M(MACRO_DEC_VOICE)
+
+#define M_BACKL M(MACRO_BACKLIGHT)
+#define M_BRTOG M(MACRO_BREATH_TOGGLE)
+#define M_BSPDU M(MACRO_BREATH_SPEED_INC)
+#define M_BSPDD M(MACRO_BREATH_SPEED_DEC)
+#define M_BDFLT M(MACRO_BREATH_DEFAULT)
+
+#define M_MS_UL M(MACRO_MOUSE_MOVE_UL)
+#define M_MS_UR M(MACRO_MOUSE_MOVE_UR)
+#define M_MS_DL M(MACRO_MOUSE_MOVE_DL)
+#define M_MS_DR M(MACRO_MOUSE_MOVE_DR)
+
+#define M_HELP M(MACRO_HELP)
+#define M_HELP1 M(MACRO_HELP_1)
+#define M_HELP2 M(MACRO_HELP_2)
+#define M_HELP3 M(MACRO_HELP_3)
+#define M_HELP4 M(MACRO_HELP_4)
+#define M_HELP5 M(MACRO_HELP_5)
+#define M_HELP6 M(MACRO_HELP_6)
+#define M_HELP7 M(MACRO_HELP_7)
+#define M_HELP8 M(MACRO_HELP_8)
+#define M_HELP9 M(MACRO_HELP_9)
+#define M_HELP0 M(MACRO_HELP_0)
+
+#define M_M1 M(MACRO_GENERAL_1)
+#define M_M2 M(MACRO_GENERAL_2)
+#define M_M3 M(MACRO_GENERAL_3)
+#define M_M4 M(MACRO_GENERAL_4)
+#define M_M5 M(MACRO_GENERAL_5)
+
+#define M_UL M(MACRO_CURSOR_UL)
+#define M_UR M(MACRO_CURSOR_UR)
+#define M_DL M(MACRO_CURSOR_DL)
+#define M_DR M(MACRO_CURSOR_DR)
+
+#define M_MUTEA M(MACRO_MUTE_APP)
+
+#define M_CP_CT M(MACRO_COPY_CUT)
+
+#define M_COPY KC_FN1
+
+#define SC_UNDO LCTL(KC_Z)
+#define SC_REDO LCTL(KC_Y)
+#define SC_CUT LCTL(KC_X)
+#define SC_COPY LCTL(KC_C)
+#define SC_PSTE LCTL(KC_V)
+#define SC_SELA LCTL(KC_A)
+#define SC_SAVE LCTL(KC_S)
+#define SC_OPEN LCTL(KC_O)
+#define SC_ACLS LALT(KC_F4)
+#define SC_CCLS LCTL(KC_F4)
+
+#define TG_NKRO MAGIC_TOGGLE_NKRO
+#define OS_SHFT KC_FN0
+
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+#define ________________ _______, _______
+#define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX
+
+const matrix_row_t matrix_mask[MATRIX_ROWS] =
+{
+// 1098765432109876543210987654321
+ 0b0000000001111111101111011111111,
+ 0b0000000001111111111111111111111,
+ 0b0000000001111111111111111111111,
+ 0b0000000001111111111111111111111,
+ 0b0000000001010111111111111111111,
+ 0b0000000001111101111111101011111,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] =
+{
+/* LAYER = LAYER_QWERTY
+ .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------.
+ | VOL DN | MUTE | VOL UP | BACKLT | | F1 | F2 | F3 | F4 | XXXXXX | F5 | F6 | F7 | F8 | XXXXXX | F9 | F10 | F11 | F12 | | PRINT | SCR LK | PAUSE | FN |
+ '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+ .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------.
+ | NUM LK | KP / | KP * | KP - | | ESC | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | BACKSP | | INS | HOME | PG UP | M1 |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------|
+ | KP 7 | KP 8 | KP 9 | KP + | | TAB | TAB | Q | W | E | R | T | Y | U | I | O | P | - | \ | | DEL | END | PG DN | M2 |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------|
+ | KP 4 | KP 5 | KP 6 | KP + | | CAP LK | BACKSP | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | o | CP/CT | UNDO | PASTE | M3 |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------|
+ | KP 1 | KP 2 | KP 3 | KP Ent | | LSHIFT | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | RSHIFT | | XXXXXX | UP | XXXXXX | M4 |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------|
+ | KP 0 | KP , | KP . | KP Ent | | LCTRL | XXXXXX | LWIN | XXXXXX | LALT | UPPER | SPACE . SPACE | LOWER | OSHIFT | RALT | APP | XXXXXX | RCTRL | | LEFT | DOWN | RIGHT | M5 |
+ '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+*/
+KEYMAP(LAYER_QWERTY, \
+ KC_VOLD, KC_MUTE, KC_VOLU, M_BACKL, KC_F1 , KC_F2 , KC_F3 , KC_F4 , XXXXXXX, KC_F5 , KC_F6 , KC_F7 , KC_F8 , XXXXXXX, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SLCK, KC_PAUS, M_HELP , \
+ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_ESC , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP, M_M1 , \
+ KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, KC_TAB , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, KC_BSLS, KC_DEL , KC_END , KC_PGDN, M_M2 , \
+ KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_CAPS, KC_BSPC, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , M_CP_CT, SC_UNDO, SC_PSTE, M_M3 , \
+ KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, KC_LSFT, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_RSFT, XXXXXXX, KC_UP , XXXXXXX, M_M4 , \
+ KC_KP_0, KC_PCMM, KC_PDOT, KC_PENT, KC_LCTL, XXXXXXX, KC_LGUI, XXXXXXX, KC_LALT, M_UPPER, KC_SPC , KC_SPC , M_LOWER, OS_SHFT, KC_RALT, KC_APP , XXXXXXX, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, M_M5 \
+),
+/* LAYER = LAYER_LOWER
+ .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------.
+ | ______ | MUTE A | ______ | ______ | | F13 | F14 | F15 | F16 | XXXXXX | F17 | F18 | F19 | F20 | XXXXXX | F21 | F22 | F23 | F24 | | ______ | ______ | ______ | ______ |
+ '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+ .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------.
+ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------|
+ | ______ | ______ | ______ | ______ | | ______ | ______ | $ | { | [ | ( | % | # | ) | ] | } | @ | ______ | ______ | | ______ | ______ | ______ | ______ |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------|
+ | ______ | ______ | ______ | ______ | | ______ | ______ | ^ | * | + | - | / | \ | _ | ' | " | ` | ______ | ______ | o | ______ | ______ | ______ | ______ |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------|
+ | ______ | ______ | ______ | ______ | | ______ | ______ | | | & | ! | ~ | ; | : | = | < | > | ? | ______ | ______ | | ______ | ______ | ______ | ______ |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------|
+ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ . ______ | LOWER | ______ | ______ | ______ | XXXXXX | ______ | | ______ | ______ | ______ | ______ |
+ '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+*/
+KEYMAP(LAYER_LOWER, \
+ _______, M_MUTEA, _______, _______, KC_F13 , KC_F14 , KC_F15 , KC_F16 , XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , XXXXXXX, KC_F21 , KC_F22 , KC_F23 , KC_F24 , _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, KC_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL , KC_LT , KC_GT , KC_QUES, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, M_LOWER, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______ \
+),
+/* LAYER = LAYER_UPPER
+ .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------.
+ | ______ | MUTE A | ______ | ______ | | F13 | F14 | F15 | F16 | XXXXXX | F17 | F18 | F19 | F20 | XXXXXX | F21 | F22 | F23 | F24 | | ______ | ______ | ______ | ______ |
+ '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+ .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------.
+ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------|
+ | ______ | ______ | ______ | ______ | | ______ | ______ | F1 | F2 | F3 | F4 | NUM LK | KP / | KP 7 | KP 8 | KP 9 | KP - | ______ | ______ | | ______ | ______ | ______ | ______ |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------|
+ | ______ | ______ | ______ | ______ | | ______ | ______ | F5 | F6 | F7 | F8 | CAP LK | KP * | KP 4 | KP 5 | KP 6 | KP + | ______ | ______ | o | ______ | ______ | ______ | ______ |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------|
+ | ______ | ______ | ______ | ______ | | ______ | ______ | F9 | F10 | F11 | F12 | SCR LK | KP 0 | KP 1 | KP 2 | KP 3 | KP Ent | ______ | ______ | | ______ | ______ | ______ | ______ |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------|
+ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | UPPER | KP 0 . KP 0 | ______ | RALT | KP . | KP Ent | XXXXXX | ______ | | ______ | ______ | ______ | ______ |
+ '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+*/
+KEYMAP(LAYER_UPPER, \
+ _______, M_MUTEA, _______, _______, KC_F13 , KC_F14 , KC_F15 , KC_F16 , XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , XXXXXXX, KC_F21 , KC_F22 , KC_F23 , KC_F24 , _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_CAPS, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_SLCK, KC_KP_0, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, M_UPPER, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, XXXXXXX, _______, _______, _______, _______, _______ \
+),
+/* LAYER = LAYER_MOUSE
+ .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------.
+ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ |
+ '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+ .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------.
+ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | MS AC0 | MS WHU | MS AC2 | MS BT1 |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------|
+ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | MS WHL | MS WHD | MS WHU | MS BT2 |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------|
+ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | o | MS BT1 | MS BT2 | MS BT3 | MS BT3 |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------|
+ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | XXXXXX | MS U | XXXXXX | MS BT4 |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------|
+ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ . ______ | ______ | ______ | ______ | ______ | ______ | ______ | | MS L | MS D | MS R | MS BT5 |
+ '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+*/
+KEYMAP(LAYER_MOUSE, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ACL0, KC_WH_U, KC_ACL2, KC_BTN1, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_U, KC_BTN2, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN3, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_MS_U, XXXXXXX, KC_BTN4, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5 \
+),
+/* LAYER = LAYER_ADJUST
+ .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------.
+ | VOICE- | AUDIO | VOICE+ | MUSIC | | HELP 1 | HELP 2 | HELP 3 | HELP 4 | XXXXXX | HELP 5 | HELP 6 | HELP 7 | HELP 8 | XXXXXX | HELP 9 | HELP 0 | XXXXXX | XXXXXX | | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
+ '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+ .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------.
+ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------|
+ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------|
+ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | o | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------|
+ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | RESET | XXXXXX | MOUSE | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
+ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------|
+ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER | XXXXXX . XXXXXX | LOWER | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
+ '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------'
+*/
+KEYMAP(LAYER_ADJUST, \
+ MUV_DE , AU_TOG , MUV_IN , MU_TOG , M_HELP1, M_HELP2, M_HELP3, M_HELP4, XXXXXXX, M_HELP5, M_HELP6, M_HELP7, M_HELP8, XXXXXXX, M_HELP9, M_HELP0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , XXXXXXX, M_MOUSE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_UPPER, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
+),
+};
+
+#ifdef AUDIO_ENABLE
+
+float tone_my_startup[][2] = SONG(ODE_TO_JOY);
+float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY);
+
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+
+float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE);
+float tone_music_on[][2] = SONG(DOE_A_DEER);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND);
+float tone_caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND);
+float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND);
+float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND);
+float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND);
+float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND);
+
+#endif /* AUDIO_ENABLE */
+
+void persistant_default_layer_set(uint16_t default_layer)
+{
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_MODS_ONESHOT(MOD_LSFT),
+ [1] = ACTION_MACRO_TAP(MACRO_COPY_CUT),
+};
+
+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_COPY_CUT:
+ if (record->event.pressed) {
+ register_code(KC_LCTL);
+ if (record->tap.count == 1) {
+ register_code(KC_C);
+ unregister_code(KC_C);
+ }
+ else if (record->tap.count == 2) {
+ register_code(KC_X);
+ unregister_code(KC_X);
+ }
+ unregister_code(KC_LCTL);
+ }
+ break;
+
+
+ // case MACRO_HELP_1:
+ // if (record->event.pressed)
+ // {
+ // uprint("H1");
+ // }
+ // break;
+
+ // case MACRO_HELP_2:
+ // if (record->event.pressed)
+ // {
+ // uprint("H2");
+ // }
+ // break;
+
+ // case MACRO_HELP_3:
+ // if (record->event.pressed)
+ // {
+ // uprint("H3");
+ // }
+ // break;
+
+ // case MACRO_HELP_4:
+ // if (record->event.pressed)
+ // {
+ // uprint("H4");
+ // }
+ // break;
+
+ // case MACRO_HELP_5:
+ // if (record->event.pressed)
+ // {
+ // uprint("H5");
+ // }
+ // break;
+
+ // case MACRO_HELP_6:
+ // if (record->event.pressed)
+ // {
+ // uprint("H6");
+ // }
+ // break;
+
+ // case MACRO_HELP_7:
+ // if (record->event.pressed)
+ // {
+ // uprint("H7");
+ // }
+ // break;
+
+ // case MACRO_HELP_8:
+ // if (record->event.pressed)
+ // {
+ // uprint("H8");
+ // }
+ // break;
+
+ // case MACRO_HELP_9:
+ // if (record->event.pressed)
+ // {
+ // uprint("H9");
+ // }
+ // break;
+
+ case MACRO_BREATH_TOGGLE:
+ if (record->event.pressed)
+ {
+ breathing_toggle();
+ }
+ break;
+
+ case MACRO_BREATH_SPEED_INC:
+ if (record->event.pressed)
+ {
+ breathing_speed_inc(1);
+ }
+ break;
+
+ case MACRO_BREATH_SPEED_DEC:
+ if (record->event.pressed)
+ {
+ breathing_speed_dec(1);
+ }
+ break;
+
+ case MACRO_BREATH_DEFAULT:
+ if (record->event.pressed)
+ {
+ breathing_defaults();
+ }
+ break;
+
+ case MACRO_QWERTY:
+ if (record->event.pressed)
+ {
+ persistant_default_layer_set(1UL<<LAYER_QWERTY);
+ }
+ break;
+
+ case MACRO_UPPER:
+ if (record->event.pressed)
+ {
+ layer_on(LAYER_UPPER);
+ breathing_speed_set(2);
+ breathing_pulse();
+ update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
+ }
+ else
+ {
+ layer_off(LAYER_UPPER);
+ update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
+ }
+ break;
+
+ case MACRO_LOWER:
+ if (record->event.pressed)
+ {
+ layer_on(LAYER_LOWER);
+ breathing_speed_set(2);
+ breathing_pulse();
+ update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
+ }
+ else
+ {
+ layer_off(LAYER_LOWER);
+ update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
+ }
+ break;
+
+ case MACRO_FUNCTION:
+ if (record->event.pressed)
+ {
+ breathing_speed_set(3);
+ breathing_enable();
+ layer_on(LAYER_FUNCTION);
+ }
+ else
+ {
+ breathing_speed_set(1);
+ breathing_self_disable();
+ layer_off(LAYER_FUNCTION);
+ }
+ break;
+
+#ifdef MOUSEKEY_ENABLE
+
+ case MACRO_MOUSE:
+ if (record->event.pressed)
+ {
+ layer_invert(LAYER_MOUSE);
+ }
+ break;
+
+#endif /* MOUSEKEY_ENABLE */
+
+#ifdef AUDIO_ENABLE
+
+ case MACRO_TIMBRE_1:
+ if (record->event.pressed) set_timbre(TIMBRE_12);
+ break;
+
+ case MACRO_TIMBRE_2:
+ if (record->event.pressed) set_timbre(TIMBRE_25);
+ break;
+
+ case MACRO_TIMBRE_3:
+ if (record->event.pressed) set_timbre(TIMBRE_50);
+ break;
+
+ case MACRO_TIMBRE_4:
+ if (record->event.pressed) set_timbre(TIMBRE_75);
+ break;
+
+ case MACRO_TEMPO_U:
+ if (record->event.pressed) increase_tempo(10);
+ break;
+
+ case MACRO_TEMPO_D:
+ if (record->event.pressed) decrease_tempo(10);
+ break;
+
+ case MACRO_TONE_DEFAULT:
+ if (record->event.pressed)
+ {
+ set_timbre(TIMBRE_DEFAULT);
+ set_tempo(TEMPO_DEFAULT);
+ }
+ break;
+
+#endif /* AUDIO_ENABLE */
+
+#ifdef BACKLIGHT_ENABLE
+ case MACRO_BACKLIGHT:
+ if (record->event.pressed)
+ {
+ backlight_step();
+ }
+ break;
+#endif /* BACKLIGHT_ENABLE */
+
+ default:
+ break;
+
+}
+return MACRO_NONE;
+};
+
+#ifdef AUDIO_ENABLE
+
+void matrix_init_user(void)
+{
+ set_voice(default_voice);
+ startup_user();
+ println("Matrix Init");
+}
+
+void led_set_user(uint8_t usb_led)
+{
+ static uint8_t old_usb_led = 0;
+
+ _delay_ms(10); // gets rid of tick
+
+ if (!is_playing_notes())
+ {
+ if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK)))
+ {
+ // If CAPS LK LED is turning on...
+ PLAY_NOTE_ARRAY(tone_caps_on, false, LEGATO);
+ }
+ else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK)))
+ {
+ // If CAPS LK LED is turning off...
+ PLAY_NOTE_ARRAY(tone_caps_off, false, LEGATO);
+ }
+ else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK)))
+ {
+ // If NUM LK LED is turning on...
+ PLAY_NOTE_ARRAY(tone_numlk_on, false, LEGATO);
+ }
+ else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK)))
+ {
+ // If NUM LED is turning off...
+ PLAY_NOTE_ARRAY(tone_numlk_off, false, LEGATO);
+ }
+ else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
+ {
+ // If SCROLL LK LED is turning on...
+ PLAY_NOTE_ARRAY(tone_scroll_on, false, LEGATO);
+ }
+ else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
+ {
+ // If SCROLL LED is turning off...
+ PLAY_NOTE_ARRAY(tone_scroll_off, false, LEGATO);
+ }
+ }
+
+ old_usb_led = usb_led;
+}
+
+void startup_user()
+{
+ _delay_ms(10); // gets rid of tick
+ // PLAY_NOTE_ARRAY(tone_my_startup, false, STACCATO);
+}
+
+void shutdown_user()
+{
+ // PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO);
+ _delay_ms(2000);
+ stop_all_notes();
+}
+
+void audio_on_user(void)
+{
+ PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO);
+}
+
+void music_on_user(void)
+{
+ PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO);
+}
+
+void music_scale_user(void)
+{
+ PLAY_NOTE_ARRAY(music_scale, false, STACCATO);
+}
+
+#endif /* AUDIO_ENABLE */ \ No newline at end of file
diff --git a/keyboards/vision_division/keymaps/default/readme.md b/keyboards/vision_division/keymaps/default/readme.md
new file mode 100644
index 000000000..bb0ed3862
--- /dev/null
+++ b/keyboards/vision_division/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for vision_division \ No newline at end of file
diff --git a/keyboards/vision_division/matrix_types.h b/keyboards/vision_division/matrix_types.h
new file mode 100644
index 000000000..893e5272a
--- /dev/null
+++ b/keyboards/vision_division/matrix_types.h
@@ -0,0 +1,168 @@
+#ifndef MATRIX_TYPES_H
+#define MATRIX_TYPES_H
+
+// Because the vision/division keyboard allows for multiple PCB configurations, the configuration
+// can get tricky. The PCB itself has 12 columns, but to achieve a full sized 14-column keyboard
+// with a 4-column numeric pad on the left and a 3-column homing key cluster on the right, the
+// right PCB must have its rightmost column cut off. Also either the rightmost two columns on the
+// left PCB or the leftmost two columns on the right PCB need to be cut away.
+//
+// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+// Left Numeric Max = 1 2 3 4 _ 5 6 7 8 9 0 A B C
+// Left Homing Max = 2 3 4 _ 5 6 7 8 9 0 A B C
+// Left Numeric Extended = 1 2 3 4 _ 5 6 7 8 9 0 A B
+// Left Homing Extended = 2 3 4 _ 5 6 7 8 9 0 A B
+// Left Numeric Normal = 1 2 3 4 _ 5 6 7 8 9 0 A
+// Left Homing Normal = 2 3 4 _ 5 6 7 8 9 0 A
+// Right Numeric Max = 1 2 3 4 5 6 7 8 _ 9 A B C
+// Right Homing Max = 1 2 3 4 5 6 7 8 _ 9 A B
+// Right Numeric Extended = 2 3 4 5 6 7 8 _ 9 A B C
+// Right Homing Extended = 2 3 4 5 6 7 8 _ 9 A B
+// Right Numeric Normal = 3 4 5 6 7 8 _ 9 A B C
+// Right Homing Normal = 3 4 5 6 7 8 _ 9 A B
+//
+//
+// A full keyboard would look like this:
+//
+// _Left_Numeric_Max__________|_Right_Homing_Normal
+// 1 2 3 4 _ 5 6 7 8 9 0 A B C|3 4 5 6 7 8 _ 9 A B
+//
+// The ideal full keyboard would use a normal and max rather than two extended because the max
+// size allows for a centered 2U space key.
+
+
+#define MATRIX_TYPE_ABSENT 0
+#define MATRIX_TYPE_NUMERIC_MAX 1
+#define MATRIX_TYPE_HOMING_MAX 2
+#define MATRIX_TYPE_NUMERIC_EXTENDED 3
+#define MATRIX_TYPE_HOMING_EXTENDED 4
+#define MATRIX_TYPE_NUMERIC_NORMAL 5
+#define MATRIX_TYPE_HOMING_NORMAL 6
+#define MATRIX_TYPE_NUMERIC_MAX_TEENSY 7
+#define MATRIX_TYPE_HOMING_MAX_TEENSY 8
+#define MATRIX_TYPE_NUMERIC_EXTENDED_TEENSY 9
+#define MATRIX_TYPE_HOMING_EXTENDED_TEENSY 10
+#define MATRIX_TYPE_NUMERIC_NORMAL_TEENSY 11
+#define MATRIX_TYPE_HOMING_NORMAL_TEENSY 12
+
+
+// Column Length
+
+#define MATRIX_COLS_ABSENT 0
+#define MATRIX_COLS_NUMERIC_MAX 12
+#define MATRIX_COLS_HOMING_MAX 11
+#define MATRIX_COLS_NUMERIC_EXTENDED 11
+#define MATRIX_COLS_HOMING_EXTENDED 10
+#define MATRIX_COLS_NUMERIC_NORMAL 10
+#define MATRIX_COLS_HOMING_NORMAL 9
+#define MATRIX_COLS_NUMERIC_MAX_TEENSY 12
+#define MATRIX_COLS_HOMING_MAX_TEENSY 11
+#define MATRIX_COLS_NUMERIC_EXTENDED_TEENSY 11
+#define MATRIX_COLS_HOMING_EXTENDED_TEENSY 10
+#define MATRIX_COLS_NUMERIC_NORMAL_TEENSY 10
+#define MATRIX_COLS_HOMING_NORMAL_TEENSY 9
+
+// Left PCB Pin assignments
+
+#define MATRIX_COL_PINS_LEFT_ABSENT
+
+#define MATRIX_COL_PINS_LEFT_NUMERIC_MAX C7, C5, C4, A7, A3, A6, A2, A5, A1, A0, A4, E6
+#define MATRIX_COL_PINS_LEFT_HOMING_MAX C5, C4, A7, A3, A6, A2, A5, A1, A0, A4, E6
+#define MATRIX_COL_PINS_LEFT_NUMERIC_EXTENDED C7, C5, C4, A7, A3, A6, A2, A5, A1, A0, A4
+#define MATRIX_COL_PINS_LEFT_HOMING_EXTENDED C5, C4, A7, A3, A6, A2, A5, A1, A0, A4
+#define MATRIX_COL_PINS_LEFT_NUMERIC_NORMAL C7, C5, C4, A7, A3, A6, A2, A5, A1, A0
+#define MATRIX_COL_PINS_LEFT_HOMING_NORMAL C5, C4, A7, A3, A6, A2, A5, A1, A0
+
+#define MATRIX_COL_PINS_LEFT_NUMERIC_MAX_TEENSY C1, C0, E1, E0, F3, F2, F1, F0, B0, B1, B2, B3
+#define MATRIX_COL_PINS_LEFT_HOMING_MAX_TEENSY C0, E1, E0, F3, F2, F1, F0, B0, B1, B2, B3
+#define MATRIX_COL_PINS_LEFT_NUMERIC_EXTENDED_TEENSY C1, C0, E1, E0, F3, F2, F1, F0, B0, B1, B2
+#define MATRIX_COL_PINS_LEFT_HOMING_EXTENDED_TEENSY C0, E1, E0, F3, F2, F1, F0, B0, B1, B2
+#define MATRIX_COL_PINS_LEFT_NUMERIC_NORMAL_TEENSY C1, C0, E1, E0, F3, F2, F1, F0, B0, B1
+#define MATRIX_COL_PINS_LEFT_HOMING_NORMAL_TEENSY C0, E1, E0, F3, F2, F1, F0, B0, B1
+
+// Right PCB Pin assignments
+
+#define MATRIX_COL_PINS_RIGHT_ABSENT
+
+#define MATRIX_COL_PINS_RIGHT_NUMERIC_MAX E6, A4, A0, A1, A5, A2, A6, A3, A7, C4, C5, C7
+#define MATRIX_COL_PINS_RIGHT_HOMING_MAX E6, A4, A0, A1, A5, A2, A6, A3, A7, C4, C5
+#define MATRIX_COL_PINS_RIGHT_NUMERIC_EXTENDED A4, A0, A1, A5, A2, A6, A3, A7, C4, C5, C7
+#define MATRIX_COL_PINS_RIGHT_HOMING_EXTENDED A4, A0, A1, A5, A2, A6, A3, A7, C4, C5
+#define MATRIX_COL_PINS_RIGHT_NUMERIC_NORMAL A0, A1, A5, A2, A6, A3, A7, C4, C5, C7
+#define MATRIX_COL_PINS_RIGHT_HOMING_NORMAL A0, A1, A5, A2, A6, A3, A7, C4, C5
+
+#define MATRIX_COL_PINS_RIGHT_NUMERIC_MAX_TEENSY B3, B2, B1, B0, F0, F1, F2, F3, E0, E1, C0, C1
+#define MATRIX_COL_PINS_RIGHT_HOMING_MAX_TEENSY B3, B2, B1, B0, F0, F1, F2, F3, E0, E1, C0
+#define MATRIX_COL_PINS_RIGHT_NUMERIC_EXTENDED_TEENSY B2, B1, B0, F0, F1, F2, F3, E0, E1, C0, C1
+#define MATRIX_COL_PINS_RIGHT_HOMING_EXTENDED_TEENSY B2, B1, B0, F0, F1, F2, F3, E0, E1, C0
+#define MATRIX_COL_PINS_RIGHT_NUMERIC_NORMAL_TEENSY B1, B0, F0, F1, F2, F3, E0, E1, C0, C1
+#define MATRIX_COL_PINS_RIGHT_HOMING_NORMAL_TEENSY B1, B0, F0, F1, F2, F3, E0, E1, C0
+
+// Fetch Macros
+
+#define GET_PID(LEFT_TYPE, RIGHT_TYPE) ( ( ( MATRIX_TYPE_ ## LEFT_TYPE ) << 8 ) + ( MATRIX_TYPE_ ## RIGHT_TYPE ) )
+#define GET_MATRIX_COL(TYPE) MATRIX_COLS_ ## TYPE
+#define GET_MATRIX_COLS(LEFT_TYPE, RIGHT_TYPE) ( ( GET_MATRIX_COL(LEFT_TYPE) ) + ( GET_MATRIX_COL(RIGHT_TYPE) ) )
+#define GET_MATRIX_COL_PINS(LEFT_TYPE, RIGHT_TYPE) { MATRIX_COL_PINS_LEFT_ ## LEFT_TYPE, MATRIX_COL_PINS_RIGHT_ ## RIGHT_TYPE }
+
+// Specialized Row Macros
+
+#define KEYMAP_ROW_LEFT_ABSENT( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C)
+
+#define KEYMAP_ROW_LEFT_NUMERIC_MAX( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C
+#define KEYMAP_ROW_LEFT_HOMING_MAX( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C
+#define KEYMAP_ROW_LEFT_NUMERIC_EXTENDED( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B
+#define KEYMAP_ROW_LEFT_HOMING_EXTENDED( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B
+#define KEYMAP_ROW_LEFT_NUMERIC_NORMAL( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A
+#define KEYMAP_ROW_LEFT_HOMING_NORMAL( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A
+#define KEYMAP_ROW_LEFT_NUMERIC_MAX_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C
+#define KEYMAP_ROW_LEFT_HOMING_MAX_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C
+#define KEYMAP_ROW_LEFT_NUMERIC_EXTENDED_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B
+#define KEYMAP_ROW_LEFT_HOMING_EXTENDED_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B
+#define KEYMAP_ROW_LEFT_NUMERIC_NORMAL_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A
+#define KEYMAP_ROW_LEFT_HOMING_NORMAL_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A
+
+#define KEYMAP_ROW_RIGHT_ABSENT( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C)
+
+#define KEYMAP_ROW_RIGHT_NUMERIC_MAX( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C
+#define KEYMAP_ROW_RIGHT_HOMING_MAX( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B
+#define KEYMAP_ROW_RIGHT_NUMERIC_EXTENDED( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C
+#define KEYMAP_ROW_RIGHT_HOMING_EXTENDED( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B
+#define KEYMAP_ROW_RIGHT_NUMERIC_NORMAL( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C
+#define KEYMAP_ROW_RIGHT_HOMING_NORMAL( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k03, k04, k05, k06, k07, k08, k09, k0A, k0B
+#define KEYMAP_ROW_RIGHT_NUMERIC_MAX_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C
+#define KEYMAP_ROW_RIGHT_HOMING_MAX_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B
+#define KEYMAP_ROW_RIGHT_NUMERIC_EXTENDED_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C
+#define KEYMAP_ROW_RIGHT_HOMING_EXTENDED_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B
+#define KEYMAP_ROW_RIGHT_NUMERIC_NORMAL_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C
+#define KEYMAP_ROW_RIGHT_HOMING_NORMAL_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k03, k04, k05, k06, k07, k08, k09, k0A, k0B
+
+// Changable Row Macro
+
+#define _KEYMAP_ROW( _LEFT_TYPE, _RIGHT_TYPE, \
+ k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C \
+) \
+KEYMAP_ROW_LEFT_ ## _LEFT_TYPE( k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C ), \
+KEYMAP_ROW_RIGHT_ ## _RIGHT_TYPE( k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C )
+
+// Changable Master Macro
+
+#define KEYMAP_MASTER(_MATRIX_LAYER, _LEFT_TYPE, _RIGHT_TYPE, \
+ k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C, \
+ k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C, \
+ k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C, \
+ k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C, \
+ k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C, \
+ k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C \
+) \
+[_MATRIX_LAYER] = { \
+ { _KEYMAP_ROW( _LEFT_TYPE, _RIGHT_TYPE, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C ) },\
+ { _KEYMAP_ROW( _LEFT_TYPE, _RIGHT_TYPE, k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C ) },\
+ { _KEYMAP_ROW( _LEFT_TYPE, _RIGHT_TYPE, k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C ) },\
+ { _KEYMAP_ROW( _LEFT_TYPE, _RIGHT_TYPE, k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C ) },\
+ { _KEYMAP_ROW( _LEFT_TYPE, _RIGHT_TYPE, k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C ) },\
+ { _KEYMAP_ROW( _LEFT_TYPE, _RIGHT_TYPE, k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C ) },\
+}
+
+
+#endif // MATRIX_TYPES_H \ No newline at end of file
diff --git a/keyboards/vision_division/readme.md b/keyboards/vision_division/readme.md
new file mode 100644
index 000000000..de200d7c5
--- /dev/null
+++ b/keyboards/vision_division/readme.md
@@ -0,0 +1,34 @@
+vision_division keyboard firmware
+======================
+
+## Keyboard Info
+
+[See this thread.](https://geekhack.org/index.php?topic=83692.msg2227856#msg2227856)
+
+Vision/Division is a full size or split keyboard that can be customized due to its pcb.
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/vision_division folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+
+To build with the default keymap, simply run `make`.
+
+### Other Keymaps
+
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with `keymap` option like:
+
+```
+$ make keymap=[default|jack|<name>]
+```
+
+Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` \ No newline at end of file
diff --git a/keyboards/vision_division/rules.mk b/keyboards/vision_division/rules.mk
new file mode 100644
index 000000000..6990960bf
--- /dev/null
+++ b/keyboards/vision_division/rules.mk
@@ -0,0 +1,70 @@
+
+
+# MCU name
+MCU = at90usb1286
+# MCU = at90usb1287
+# MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=1024
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= yes # USB Nkey Rollover
+BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE ?= no # MIDI controls
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no # Audio output on port C6 \ No newline at end of file
diff --git a/keyboards/vision_division/vision_division.c b/keyboards/vision_division/vision_division.c
new file mode 100644
index 000000000..a0e0f449c
--- /dev/null
+++ b/keyboards/vision_division/vision_division.c
@@ -0,0 +1,68 @@
+#include "vision_division.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // put your per-action keyboard code here
+ // runs for every action, just before processing by the firmware
+
+ return process_record_user(keycode, record);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ if (usb_led & (1 << USB_LED_CAPS_LOCK))
+ {
+ // HI
+ DDRD |= (1<<4);
+ PORTD |= (1<<4);
+ }
+ else
+ {
+ // Hi-Z
+ DDRD &= ~(1<<4);
+ PORTD &= ~(1<<4);
+ }
+
+ if (usb_led & (1 << USB_LED_NUM_LOCK))
+ {
+ // HI
+ DDRD |= (1<<5);
+ PORTD |= (1<<5);
+ }
+ else
+ {
+ // Hi-Z
+ DDRD &= ~(1<<5);
+ PORTD &= ~(1<<5);
+ }
+
+ if (usb_led & (1 << USB_LED_SCROLL_LOCK))
+ {
+ // HI
+ DDRD |= (1<<6);
+ PORTD |= (1<<6);
+ }
+ else
+ {
+ // Hi-Z
+ DDRD &= ~(1<<6);
+ PORTD &= ~(1<<6);
+ }
+
+ led_set_user(usb_led);
+}
+
diff --git a/keyboards/vision_division/vision_division.h b/keyboards/vision_division/vision_division.h
new file mode 100644
index 000000000..a1f3195e9
--- /dev/null
+++ b/keyboards/vision_division/vision_division.h
@@ -0,0 +1,6 @@
+#ifndef VISION_DIVISION_H
+#define VISION_DIVISION_H
+
+#include "quantum.h"
+
+#endif
diff --git a/keyboards/whitefox/Makefile b/keyboards/whitefox/Makefile
new file mode 100644
index 000000000..4e2a6f00f
--- /dev/null
+++ b/keyboards/whitefox/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/whitefox/bootloader_defs.h b/keyboards/whitefox/bootloader_defs.h
new file mode 100644
index 000000000..c67153be6
--- /dev/null
+++ b/keyboards/whitefox/bootloader_defs.h
@@ -0,0 +1 @@
+#define KIIBOHD_BOOTLOADER
diff --git a/keyboards/whitefox/chconf.h b/keyboards/whitefox/chconf.h
new file mode 100644
index 000000000..d9114ec85
--- /dev/null
+++ b/keyboards/whitefox/chconf.h
@@ -0,0 +1,524 @@
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file templates/chconf.h
+ * @brief Configuration file template.
+ * @details A copy of this file must be placed in each project directory, it
+ * contains the application specific kernel settings.
+ *
+ * @addtogroup config
+ * @details Kernel related settings and hooks.
+ * @{
+ */
+
+#ifndef CHCONF_H
+#define CHCONF_H
+
+#define _CHIBIOS_RT_CONF_
+
+/*===========================================================================*/
+/**
+ * @name System timers settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief System time counter resolution.
+ * @note Allowed values are 16 or 32 bits.
+ */
+#define CH_CFG_ST_RESOLUTION 32
+
+/**
+ * @brief System tick frequency.
+ * @details Frequency of the system timer that drives the system ticks. This
+ * setting also defines the system tick time unit.
+ */
+#define CH_CFG_ST_FREQUENCY 100000
+
+/**
+ * @brief Time delta constant for the tick-less mode.
+ * @note If this value is zero then the system uses the classic
+ * periodic tick. This value represents the minimum number
+ * of ticks that is safe to specify in a timeout directive.
+ * The value one is not valid, timeouts are rounded up to
+ * this value.
+ */
+#define CH_CFG_ST_TIMEDELTA 0
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel parameters and options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Round robin interval.
+ * @details This constant is the number of system ticks allowed for the
+ * threads before preemption occurs. Setting this value to zero
+ * disables the preemption for threads with equal priority and the
+ * round robin becomes cooperative. Note that higher priority
+ * threads can still preempt, the kernel is always preemptive.
+ * @note Disabling the round robin preemption makes the kernel more compact
+ * and generally faster.
+ * @note The round robin preemption is not supported in tickless mode and
+ * must be set to zero in that case.
+ */
+#define CH_CFG_TIME_QUANTUM 20
+
+/**
+ * @brief Managed RAM size.
+ * @details Size of the RAM area to be managed by the OS. If set to zero
+ * then the whole available RAM is used. The core memory is made
+ * available to the heap allocator and/or can be used directly through
+ * the simplified core memory allocator.
+ *
+ * @note In order to let the OS manage the whole RAM the linker script must
+ * provide the @p __heap_base__ and @p __heap_end__ symbols.
+ * @note Requires @p CH_CFG_USE_MEMCORE.
+ */
+#define CH_CFG_MEMCORE_SIZE 0
+
+/**
+ * @brief Idle thread automatic spawn suppression.
+ * @details When this option is activated the function @p chSysInit()
+ * does not spawn the idle thread. The application @p main()
+ * function becomes the idle thread and must implement an
+ * infinite loop.
+ */
+#define CH_CFG_NO_IDLE_THREAD FALSE
+
+/* Use __WFI in the idle thread for waiting. Does lower the power
+ * consumption. */
+#define CORTEX_ENABLE_WFI_IDLE TRUE
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Performance options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief OS optimization.
+ * @details If enabled then time efficient rather than space efficient code
+ * is used when two possible implementations exist.
+ *
+ * @note This is not related to the compiler optimization options.
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_OPTIMIZE_SPEED TRUE
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Subsystem options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Time Measurement APIs.
+ * @details If enabled then the time measurement APIs are included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_TM FALSE
+
+/**
+ * @brief Threads registry APIs.
+ * @details If enabled then the registry APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_REGISTRY TRUE
+
+/**
+ * @brief Threads synchronization APIs.
+ * @details If enabled then the @p chThdWait() function is included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_WAITEXIT TRUE
+
+/**
+ * @brief Semaphores APIs.
+ * @details If enabled then the Semaphores APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_SEMAPHORES TRUE
+
+/**
+ * @brief Semaphores queuing mode.
+ * @details If enabled then the threads are enqueued on semaphores by
+ * priority rather than in FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+
+/**
+ * @brief Mutexes APIs.
+ * @details If enabled then the mutexes APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_MUTEXES TRUE
+
+/**
+ * @brief Enables recursive behavior on mutexes.
+ * @note Recursive mutexes are heavier and have an increased
+ * memory footprint.
+ *
+ * @note The default is @p FALSE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+
+/**
+ * @brief Conditional Variables APIs.
+ * @details If enabled then the conditional variables APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#define CH_CFG_USE_CONDVARS TRUE
+
+/**
+ * @brief Conditional Variables APIs with timeout.
+ * @details If enabled then the conditional variables APIs with timeout
+ * specification are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_CONDVARS.
+ */
+#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+
+/**
+ * @brief Events Flags APIs.
+ * @details If enabled then the event flags APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_EVENTS TRUE
+
+/**
+ * @brief Events Flags APIs with timeout.
+ * @details If enabled then the events APIs with timeout specification
+ * are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_EVENTS.
+ */
+#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+
+/**
+ * @brief Synchronous Messages APIs.
+ * @details If enabled then the synchronous messages APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_MESSAGES TRUE
+
+/**
+ * @brief Synchronous Messages queuing mode.
+ * @details If enabled then messages are served by priority rather than in
+ * FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_MESSAGES.
+ */
+#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+
+/**
+ * @brief Mailboxes APIs.
+ * @details If enabled then the asynchronous messages (mailboxes) APIs are
+ * included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#define CH_CFG_USE_MAILBOXES TRUE
+
+/**
+ * @brief Core Memory Manager APIs.
+ * @details If enabled then the core memory manager APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_MEMCORE TRUE
+
+/**
+ * @brief Heap Allocator APIs.
+ * @details If enabled then the memory heap allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
+ * @p CH_CFG_USE_SEMAPHORES.
+ * @note Mutexes are recommended.
+ */
+#define CH_CFG_USE_HEAP TRUE
+
+/**
+ * @brief Memory Pools Allocator APIs.
+ * @details If enabled then the memory pools allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#define CH_CFG_USE_MEMPOOLS TRUE
+
+/**
+ * @brief Dynamic Threads APIs.
+ * @details If enabled then the dynamic threads creation APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_WAITEXIT.
+ * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
+ */
+#define CH_CFG_USE_DYNAMIC TRUE
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Debug options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Debug option, kernel statistics.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_STATISTICS FALSE
+
+/**
+ * @brief Debug option, system state check.
+ * @details If enabled the correct call protocol for system APIs is checked
+ * at runtime.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_SYSTEM_STATE_CHECK FALSE
+
+/**
+ * @brief Debug option, parameters checks.
+ * @details If enabled then the checks on the API functions input
+ * parameters are activated.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_ENABLE_CHECKS FALSE
+
+/**
+ * @brief Debug option, consistency checks.
+ * @details If enabled then all the assertions in the kernel code are
+ * activated. This includes consistency checks inside the kernel,
+ * runtime anomalies and port-defined checks.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_ENABLE_ASSERTS FALSE
+
+/**
+ * @brief Debug option, trace buffer.
+ * @details If enabled then the trace buffer is activated.
+ *
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
+
+/**
+ * @brief Trace buffer entries.
+ * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
+ * different from @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+
+/**
+ * @brief Debug option, stack checks.
+ * @details If enabled then a runtime stack check is performed.
+ *
+ * @note The default is @p FALSE.
+ * @note The stack check is performed in a architecture/port dependent way.
+ * It may not be implemented or some ports.
+ * @note The default failure mode is to halt the system with the global
+ * @p panic_msg variable set to @p NULL.
+ */
+#define CH_DBG_ENABLE_STACK_CHECK FALSE
+
+/**
+ * @brief Debug option, stacks initialization.
+ * @details If enabled then the threads working area is filled with a byte
+ * value when a thread is created. This can be useful for the
+ * runtime measurement of the used stack.
+ *
+ * @note The default is @p FALSE.
+ */
+#define CH_DBG_FILL_THREADS FALSE
+
+/**
+ * @brief Debug option, threads profiling.
+ * @details If enabled then a field is added to the @p thread_t structure that
+ * counts the system ticks occurred while executing the thread.
+ *
+ * @note The default is @p FALSE.
+ * @note This debug option is not currently compatible with the
+ * tickless mode.
+ */
+#define CH_DBG_THREADS_PROFILING FALSE
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel hooks
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Threads descriptor structure extension.
+ * @details User fields added to the end of the @p thread_t structure.
+ */
+#define CH_CFG_THREAD_EXTRA_FIELDS \
+ /* Add threads custom fields here.*/
+
+/**
+ * @brief Threads initialization hook.
+ * @details User initialization code added to the @p chThdInit() API.
+ *
+ * @note It is invoked from within @p chThdInit() and implicitly from all
+ * the threads creation APIs.
+ */
+#define CH_CFG_THREAD_INIT_HOOK(tp) { \
+ /* Add threads initialization code here.*/ \
+}
+
+/**
+ * @brief Threads finalization hook.
+ * @details User finalization code added to the @p chThdExit() API.
+ */
+#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
+ /* Add threads finalization code here.*/ \
+}
+
+/**
+ * @brief Context switch hook.
+ * @details This hook is invoked just before switching between threads.
+ */
+#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
+ /* Context switch code here.*/ \
+}
+
+/**
+ * @brief ISR enter hook.
+ */
+#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
+ /* IRQ prologue code here.*/ \
+}
+
+/**
+ * @brief ISR exit hook.
+ */
+#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
+ /* IRQ epilogue code here.*/ \
+}
+
+/**
+ * @brief Idle thread enter hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to activate a power saving mode.
+ */
+#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
+}
+
+/**
+ * @brief Idle thread leave hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to deactivate a power saving mode.
+ */
+#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
+}
+
+/**
+ * @brief Idle Loop hook.
+ * @details This hook is continuously invoked by the idle thread loop.
+ */
+#define CH_CFG_IDLE_LOOP_HOOK() { \
+ /* Idle loop code here.*/ \
+}
+
+/**
+ * @brief System tick event hook.
+ * @details This hook is invoked in the system tick handler immediately
+ * after processing the virtual timers queue.
+ */
+#define CH_CFG_SYSTEM_TICK_HOOK() { \
+ /* System tick event code here.*/ \
+}
+
+/**
+ * @brief System halt hook.
+ * @details This hook is invoked in case to a system halting error before
+ * the system is halted.
+ */
+#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
+ /* System halt code here.*/ \
+}
+
+/**
+ * @brief Trace hook.
+ * @details This hook is invoked each time a new record is written in the
+ * trace buffer.
+ */
+#define CH_CFG_TRACE_HOOK(tep) { \
+ /* Trace code here.*/ \
+}
+
+/** @} */
+
+/*===========================================================================*/
+/* Port-specific settings (override port settings defaulted in chcore.h). */
+/*===========================================================================*/
+
+#endif /* CHCONF_H */
+
+/** @} */
diff --git a/keyboards/whitefox/config.h b/keyboards/whitefox/config.h
new file mode 100644
index 000000000..b7116341f
--- /dev/null
+++ b/keyboards/whitefox/config.h
@@ -0,0 +1,78 @@
+/*
+Copyright 2015 Jun Wako <wakojun@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
+
+#define PREVENT_STUCK_MODIFIERS
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x0F0F
+#define DEVICE_VER 0x0001
+/* in python2: list(u"whatever".encode('utf-16-le')) */
+/* at most 32 characters or the ugly hack in usb_main.c borks */
+#define MANUFACTURER "Input Club"
+#define USBSTR_MANUFACTURER 'I', '\x00', 'n', '\x00', 'p', '\x00', 'u', '\x00', 't', '\x00', ' ', '\x00', 'C', '\x00', 'l', '\x00', 'u', '\x00', 'b', '\x00'
+#define PRODUCT "WhiteFox/QMK"
+#define USBSTR_PRODUCT 'W', '\x00', 'h', '\x00', 'i', '\x00', 't', '\x00', 'e', '\x00', 'F', '\x00', 'o', '\x00', 'x', '\x00', ' ', '\x00'
+
+/* key matrix size */
+#define MATRIX_ROWS 9
+#define MATRIX_COLS 8
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 6
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+//#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+//#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* Keymap for Infinity prototype */
+//#define INFINITY_PROTOTYPE
+
+/* Keymap for Infinity 1.1a (first revision with LED support) */
+//#define INFINITY_LED
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/whitefox/halconf.h b/keyboards/whitefox/halconf.h
new file mode 100644
index 000000000..46b37a4f4
--- /dev/null
+++ b/keyboards/whitefox/halconf.h
@@ -0,0 +1,353 @@
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file templates/halconf.h
+ * @brief HAL configuration header.
+ * @details HAL configuration file, this file allows to enable or disable the
+ * various device drivers from your application. You may also use
+ * this file in order to override the device drivers default settings.
+ *
+ * @addtogroup HAL_CONF
+ * @{
+ */
+
+#ifndef _HALCONF_H_
+#define _HALCONF_H_
+
+#include "mcuconf.h"
+
+/**
+ * @brief Enables the PAL subsystem.
+ */
+#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
+#define HAL_USE_PAL TRUE
+#endif
+
+/**
+ * @brief Enables the ADC subsystem.
+ */
+#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
+#define HAL_USE_ADC FALSE
+#endif
+
+/**
+ * @brief Enables the CAN subsystem.
+ */
+#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
+#define HAL_USE_CAN FALSE
+#endif
+
+/**
+ * @brief Enables the DAC subsystem.
+ */
+#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
+#define HAL_USE_DAC FALSE
+#endif
+
+/**
+ * @brief Enables the EXT subsystem.
+ */
+#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
+#define HAL_USE_EXT FALSE
+#endif
+
+/**
+ * @brief Enables the GPT subsystem.
+ */
+#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
+#define HAL_USE_GPT FALSE
+#endif
+
+/**
+ * @brief Enables the I2C subsystem.
+ */
+#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
+#define HAL_USE_I2C FALSE
+#endif
+
+/**
+ * @brief Enables the I2S subsystem.
+ */
+#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
+#define HAL_USE_I2S FALSE
+#endif
+
+/**
+ * @brief Enables the ICU subsystem.
+ */
+#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
+#define HAL_USE_ICU FALSE
+#endif
+
+/**
+ * @brief Enables the MAC subsystem.
+ */
+#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
+#define HAL_USE_MAC FALSE
+#endif
+
+/**
+ * @brief Enables the MMC_SPI subsystem.
+ */
+#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_MMC_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the PWM subsystem.
+ */
+#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
+#define HAL_USE_PWM FALSE
+#endif
+
+/**
+ * @brief Enables the RTC subsystem.
+ */
+#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
+#define HAL_USE_RTC FALSE
+#endif
+
+/**
+ * @brief Enables the SDC subsystem.
+ */
+#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
+#define HAL_USE_SDC FALSE
+#endif
+
+/**
+ * @brief Enables the SERIAL subsystem.
+ */
+#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL FALSE
+#endif
+
+/**
+ * @brief Enables the SERIAL over USB subsystem.
+ */
+#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL_USB TRUE
+#endif
+
+/**
+ * @brief Enables the SPI subsystem.
+ */
+#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the UART subsystem.
+ */
+#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
+#define HAL_USE_UART FALSE
+#endif
+
+/**
+ * @brief Enables the USB subsystem.
+ */
+#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
+#define HAL_USE_USB TRUE
+#endif
+
+/**
+ * @brief Enables the WDG subsystem.
+ */
+#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
+#define HAL_USE_WDG FALSE
+#endif
+
+/*===========================================================================*/
+/* ADC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
+#define ADC_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define ADC_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* CAN driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Sleep mode related APIs inclusion switch.
+ */
+#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
+#define CAN_USE_SLEEP_MODE TRUE
+#endif
+
+/*===========================================================================*/
+/* I2C driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the mutual exclusion APIs on the I2C bus.
+ */
+#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define I2C_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* MAC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables an event sources for incoming packets.
+ */
+#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
+#define MAC_USE_ZERO_COPY FALSE
+#endif
+
+/**
+ * @brief Enables an event sources for incoming packets.
+ */
+#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
+#define MAC_USE_EVENTS TRUE
+#endif
+
+/*===========================================================================*/
+/* MMC_SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ * This option is recommended also if the SPI driver does not
+ * use a DMA channel and heavily loads the CPU.
+ */
+#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
+#define MMC_NICE_WAITING TRUE
+#endif
+
+/*===========================================================================*/
+/* SDC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Number of initialization attempts before rejecting the card.
+ * @note Attempts are performed at 10mS intervals.
+ */
+#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
+#define SDC_INIT_RETRY 100
+#endif
+
+/**
+ * @brief Include support for MMC cards.
+ * @note MMC support is not yet implemented so this option must be kept
+ * at @p FALSE.
+ */
+#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
+#define SDC_MMC_SUPPORT FALSE
+#endif
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ */
+#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
+#define SDC_NICE_WAITING TRUE
+#endif
+
+/*===========================================================================*/
+/* SERIAL driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Default bit rate.
+ * @details Configuration parameter, this is the baud rate selected for the
+ * default configuration.
+ */
+#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
+#define SERIAL_DEFAULT_BITRATE 38400
+#endif
+
+/**
+ * @brief Serial buffers size.
+ * @details Configuration parameter, you can change the depth of the queue
+ * buffers depending on the requirements of your application.
+ * @note The default is 64 bytes for both the transmission and receive
+ * buffers.
+ */
+#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
+#define SERIAL_BUFFERS_SIZE 16
+#endif
+
+/*===========================================================================*/
+/* SERIAL_USB driver related setting. */
+/*===========================================================================*/
+
+/**
+ * @brief Serial over USB buffers size.
+ * @details Configuration parameter, the buffer size must be a multiple of
+ * the USB data endpoint maximum packet size.
+ * @note The default is 64 bytes for both the transmission and receive
+ * buffers.
+ */
+#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
+#define SERIAL_USB_BUFFERS_SIZE 256
+#endif
+
+/*===========================================================================*/
+/* SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
+#define SPI_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define SPI_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* USB driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
+#define USB_USE_WAIT TRUE
+#endif
+
+#endif /* _HALCONF_H_ */
+
+/** @} */
diff --git a/keyboards/whitefox/keymaps/default/keymap.c b/keyboards/whitefox/keymaps/default/keymap.c
new file mode 100644
index 000000000..714f90659
--- /dev/null
+++ b/keyboards/whitefox/keymaps/default/keymap.c
@@ -0,0 +1,51 @@
+/*
+Copyright 2015 Jun Wako <wakojun@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/>.
+*/
+#include "whitefox.h"
+
+const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Layer 0: Default Layer
+ * ,---------------------------------------------------------------.
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|Ins|
+ * |---------------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs|Del|
+ * |---------------------------------------------------------------|
+ * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Enter |PgU|
+ * |---------------------------------------------------------------|
+ * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD|
+ * |---------------------------------------------------------------|
+ * |Ctrl|Gui |Alt | Space |Fn0 |Alt |Gui | |Lef|Dow|Rig|
+ * `---------------------------------------------------------------'
+ */
+ [0] = KEYMAP( \
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_GRV, KC_INS, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, KC_DEL, \
+ KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NUHS,KC_ENT, KC_PGUP,\
+ KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, KC_PGDN,\
+ KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_FN0, KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT \
+ ),
+ [1] = KEYMAP( \
+ KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,KC_TRNS,KC_MUTE,\
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS,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_VOLU,\
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_PGUP,KC_VOLD,\
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_HOME,KC_PGDN,KC_END \
+ ),
+};
+
+const uint16_t fn_actions[] = {
+ [0] = ACTION_LAYER_MOMENTARY(1),
+};
diff --git a/keyboards/whitefox/keymaps/matt3o/keymap.c b/keyboards/whitefox/keymaps/matt3o/keymap.c
new file mode 100644
index 000000000..4455886a5
--- /dev/null
+++ b/keyboards/whitefox/keymaps/matt3o/keymap.c
@@ -0,0 +1,92 @@
+/*
+Copyright 2015 Jun Wako <wakojun@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/>.
+*/
+#include "whitefox.h"
+
+const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Layer 0: Default Layer
+ * ,---------------------------------------------------------------.
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|Ins|
+ * |---------------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs|Del|
+ * |---------------------------------------------------------------|
+ * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Enter |PgU|
+ * |---------------------------------------------------------------|
+ * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD|
+ * |---------------------------------------------------------------|
+ * |Ctrl|Gui |Alt | Space |Fn0 |Alt |Gui | |Lef|Dow|Rig|
+ * `---------------------------------------------------------------'
+ */
+ [0] = KEYMAP( \
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_GRV, KC_MUTE,\
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, KC_DEL, \
+ KC_FN0, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NUHS,KC_ENT, KC_PGUP,\
+ KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, KC_PGDN,\
+ KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_FN1, KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT \
+ ),
+ [1] = KEYMAP( \
+ KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_DEL , KC_INS ,\
+ 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_VOLU,\
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_PGUP,KC_VOLD,\
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_HOME,KC_PGDN,KC_END \
+ ),
+ [2] = KEYMAP( \
+ KC_SLEP,KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_FN2, \
+ KC_TRNS,KC_TRNS,KC_FN5 ,KC_FN6 ,KC_TRNS,KC_FN7 ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_TRNS,KC_TRNS,KC_TRNS, KC_FN3, \
+ KC_CAPS,KC_TRNS,KC_TRNS,KC_TRNS,KC_FN4 ,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_CALC,KC_TRNS,KC_TRNS,KC_TRNS,KC_MAIL,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 \
+ ),
+};
+
+/* Give numbers some descriptive names */
+#define ACTION_LEDS_ALL 1
+#define ACTION_LEDS_GAME 2
+
+const uint16_t fn_actions[] = {
+ [0] = ACTION_LAYER_MOMENTARY(1),
+ [1] = ACTION_LAYER_MOMENTARY(2),
+ [2] = ACTION_FUNCTION(ACTION_LEDS_ALL),
+ [3] = ACTION_FUNCTION(ACTION_LEDS_GAME),
+
+ [4] = ACTION_USAGE_CONSUMER(0x1B4),
+ [5] = ACTION_USAGE_CONSUMER(0x196),
+ [6] = ACTION_USAGE_CONSUMER(0x1A6),
+ [7] = ACTION_USAGE_CONSUMER(0x1A0),
+
+};
+
+/* custom action function */
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ /*
+ (void)opt;
+ switch(id) {
+ case ACTION_LEDS_ALL:
+ if(record->event.pressed) {
+ // signal the LED controller thread
+ chMBPost(&led_mailbox, LED_MSG_GAME_TOGGLE, TIME_IMMEDIATE);
+ }
+ break;
+ case ACTION_LEDS_GAME:
+ if(record->event.pressed) {
+ // signal the LED controller thread
+ chMBPost(&led_mailbox, LED_MSG_ALL_TOGGLE, TIME_IMMEDIATE);
+ }
+ break;
+ }
+ */
+}
diff --git a/keyboards/whitefox/led.c b/keyboards/whitefox/led.c
new file mode 100644
index 000000000..aed66c7c0
--- /dev/null
+++ b/keyboards/whitefox/led.c
@@ -0,0 +1,24 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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/>.
+*/
+
+#include "hal.h"
+
+#include "led.h"
+
+
+void led_set(uint8_t usb_led) {
+}
diff --git a/keyboards/whitefox/matrix.c b/keyboards/whitefox/matrix.c
new file mode 100644
index 000000000..9202ab023
--- /dev/null
+++ b/keyboards/whitefox/matrix.c
@@ -0,0 +1,132 @@
+#include <stdint.h>
+#include <stdbool.h>
+#include <string.h>
+#include "hal.h"
+#include "timer.h"
+#include "wait.h"
+#include "print.h"
+#include "matrix.h"
+
+
+/*
+ * Matt3o's WhiteFox
+ * Column pins are input with internal pull-down. Row pins are output and strobe with high.
+ * Key is high or 1 when it turns on.
+ *
+ * col: { PTD0, PTD1, PTD4, PTD5, PTD6, PTD7, PTC1, PTC2 }
+ * row: { PTB2, PTB3, PTB18, PTB19, PTC0, PTC8, PTC9, PTC10, PTC11 }
+ */
+/* matrix state(1:on, 0:off) */
+static matrix_row_t matrix[MATRIX_ROWS];
+static matrix_row_t matrix_debouncing[MATRIX_ROWS];
+static bool debouncing = false;
+static uint16_t debouncing_time = 0;
+
+
+void matrix_init(void)
+{
+//debug_matrix = true;
+ /* Column(sense) */
+ palSetPadMode(GPIOD, 0, PAL_MODE_INPUT_PULLDOWN);
+ palSetPadMode(GPIOD, 1, PAL_MODE_INPUT_PULLDOWN);
+ palSetPadMode(GPIOD, 4, PAL_MODE_INPUT_PULLDOWN);
+ palSetPadMode(GPIOD, 5, PAL_MODE_INPUT_PULLDOWN);
+ palSetPadMode(GPIOD, 6, PAL_MODE_INPUT_PULLDOWN);
+ palSetPadMode(GPIOD, 7, PAL_MODE_INPUT_PULLDOWN);
+ palSetPadMode(GPIOC, 1, PAL_MODE_INPUT_PULLDOWN);
+ palSetPadMode(GPIOC, 2, PAL_MODE_INPUT_PULLDOWN);
+
+ /* Row(strobe) */
+ palSetPadMode(GPIOB, 2, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOB, 3, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOB, 18, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOB, 19, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOC, 0, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOC, 8, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOC, 9, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOC, 10, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOC, 11, PAL_MODE_OUTPUT_PUSHPULL);
+
+ memset(matrix, 0, MATRIX_ROWS);
+ memset(matrix_debouncing, 0, MATRIX_ROWS);
+}
+
+uint8_t matrix_scan(void)
+{
+ for (int row = 0; row < MATRIX_ROWS; row++) {
+ matrix_row_t data = 0;
+
+ // strobe row
+ switch (row) {
+ case 0: palSetPad(GPIOB, 2); break;
+ case 1: palSetPad(GPIOB, 3); break;
+ case 2: palSetPad(GPIOB, 18); break;
+ case 3: palSetPad(GPIOB, 19); break;
+ case 4: palSetPad(GPIOC, 0); break;
+ case 5: palSetPad(GPIOC, 8); break;
+ case 6: palSetPad(GPIOC, 9); break;
+ case 7: palSetPad(GPIOC, 10); break;
+ case 8: palSetPad(GPIOC, 11); break;
+ }
+
+ wait_us(20); // need wait to settle pin state
+
+ // read col data: { PTD0, PTD1, PTD4, PTD5, PTD6, PTD7, PTC1, PTC2 }
+ data = ((palReadPort(GPIOC) & 0x06UL) << 5) |
+ ((palReadPort(GPIOD) & 0xF0UL) >> 2) |
+ (palReadPort(GPIOD) & 0x03UL);
+
+ // un-strobe row
+ switch (row) {
+ case 0: palClearPad(GPIOB, 2); break;
+ case 1: palClearPad(GPIOB, 3); break;
+ case 2: palClearPad(GPIOB, 18); break;
+ case 3: palClearPad(GPIOB, 19); break;
+ case 4: palClearPad(GPIOC, 0); break;
+ case 5: palClearPad(GPIOC, 8); break;
+ case 6: palClearPad(GPIOC, 9); break;
+ case 7: palClearPad(GPIOC, 10); break;
+ case 8: palClearPad(GPIOC, 11); break;
+ }
+
+ if (matrix_debouncing[row] != data) {
+ matrix_debouncing[row] = data;
+ debouncing = true;
+ debouncing_time = timer_read();
+ }
+ }
+
+ if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) {
+ for (int row = 0; row < MATRIX_ROWS; row++) {
+ matrix[row] = matrix_debouncing[row];
+ }
+ debouncing = false;
+ }
+ return 1;
+}
+
+bool matrix_is_on(uint8_t row, uint8_t col)
+{
+ return (matrix[row] & (1<<col));
+}
+
+matrix_row_t matrix_get_row(uint8_t row)
+{
+ return matrix[row];
+}
+
+void matrix_print(void)
+{
+ xprintf("\nr/c 01234567\n");
+ for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
+ xprintf("%X0: ", row);
+ matrix_row_t data = matrix_get_row(row);
+ for (int col = 0; col < MATRIX_COLS; col++) {
+ if (data & (1<<col))
+ xprintf("1");
+ else
+ xprintf("0");
+ }
+ xprintf("\n");
+ }
+}
diff --git a/keyboards/whitefox/mcuconf.h b/keyboards/whitefox/mcuconf.h
new file mode 100644
index 000000000..28f3c6cda
--- /dev/null
+++ b/keyboards/whitefox/mcuconf.h
@@ -0,0 +1,54 @@
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _MCUCONF_H_
+#define _MCUCONF_H_
+
+#define K20x_MCUCONF
+
+/*
+ * HAL driver system settings.
+ */
+
+/* Select the MCU clocking mode below by enabling the appropriate block. */
+
+#define KINETIS_NO_INIT FALSE
+
+/* PEE mode - 48MHz system clock driven by external crystal. */
+#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE
+#define KINETIS_PLLCLK_FREQUENCY 72000000UL
+#define KINETIS_SYSCLK_FREQUENCY 72000000UL
+#define KINETIS_BUSCLK_FREQUENCY 36000000UL
+#define KINETIS_FLASHCLK_FREQUENCY 24000000UL
+
+/*
+ * SERIAL driver system settings.
+ */
+#define KINETIS_SERIAL_USE_UART0 TRUE
+
+/*
+ * USB driver settings
+ */
+#define KINETIS_USB_USE_USB0 TRUE
+#define KINETIS_USB_USB0_IRQ_PRIORITY 5
+
+/*
+ * I2C driver settings
+ */
+#define KINETIS_I2C_USE_I2C0 TRUE
+#define KINETIS_I2C_I2C0_PRIORITY 4
+
+#endif /* _MCUCONF_H_ */
diff --git a/keyboards/whitefox/readme.md b/keyboards/whitefox/readme.md
new file mode 100644
index 000000000..0714ad563
--- /dev/null
+++ b/keyboards/whitefox/readme.md
@@ -0,0 +1,7 @@
+WhiteFox keyboard firmware
+======================
+
+This is an experimental port which came from the original TMK WhiteFox repo.
+
+The LED controller was not ported, as the original was a dirty hack and it would
+be good to have complete support.
diff --git a/keyboards/infinity_ergodox/Makefile b/keyboards/whitefox/rules.mk
index 7edc03d8c..18b690f49 100644
--- a/keyboards/infinity_ergodox/Makefile
+++ b/keyboards/whitefox/rules.mk
@@ -19,7 +19,7 @@ MCU_SERIES = K20x
# - MKL26Z64 for Teensy LC
# - MK20DX128 for Teensy 3.0
# - MK20DX256 for Teensy 3.1 and 3.2
-# - MK20DX128BLDR4 for Infinity 60% with Kiibohd bootloader
+# - MK20DX128BLDR4 for Infinity with Kiibohd bootloader
# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader
MCU_LDSCRIPT = MK20DX256BLDR8
@@ -27,8 +27,8 @@ MCU_LDSCRIPT = MK20DX256BLDR8
# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
# - STARTUP =
# - kl2x for Teensy LC
-# - k20x5 for Teensy 3.0 and Infinity 60%
-# - k20x7 for Teensy 3.1, 3.2 and Infinity ErgoDox
+# - k20x5 for Teensy 3.0 and Infinity KB
+# - k20x7 for Teensy 3.1 and 3.2
MCU_STARTUP = k20x7
# Board: it should exist either in <chibios>/os/hal/boards/
@@ -38,7 +38,6 @@ MCU_STARTUP = k20x7
# - PJRC_TEENSY_3 for Teensy 3.0
# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2
# - MCHCK_K20 for Infinity KB
-#BOARD = MCHCK_K20
BOARD = PJRC_TEENSY_3_1
# Cortex version
@@ -52,7 +51,8 @@ ARMV = 7
# Vector table for application
# 0x00000000-0x00001000 area is occupied by bootlaoder.*/
# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
-OPT_DEFS = -DCORTEX_VTOR_INIT=0x00002000
+#OPT_DEFS = -DCORTEX_VTOR_INIT=0x00001000
+OPT_DEFS =
# Build Options
# comment out to disable the options.
@@ -61,25 +61,8 @@ BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration
## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)
MOUSEKEY_ENABLE ?= yes # Mouse keys
EXTRAKEY_ENABLE ?= yes # Audio control and System control
-CONSOLE_ENABLE ?= yes # Console for debug
+#CONSOLE_ENABLE ?= yes # Console for debug
COMMAND_ENABLE ?= yes # Commands for debug and configuration
-SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
+#SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover
CUSTOM_MATRIX ?= yes # Custom matrix file
-SERIAL_LINK_ENABLE = yes
-VISUALIZER_ENABLE ?= yes
-LCD_ENABLE ?= yes
-LED_ENABLE ?= yes
-LCD_BACKLIGHT_ENABLE ?= yes
-
-ifdef LCD_ENABLE
-include drivers/gdisp/st7565ergodox/driver.mk
-endif
-
-ifdef LED_ENABLE
-include drivers/gdisp/IS31FL3731C/driver.mk
-endif
-
-ifndef QUANTUM_DIR
- include ../../Makefile
-endif \ No newline at end of file
diff --git a/keyboards/infinity_chibios/infinity_chibios.c b/keyboards/whitefox/whitefox.c
index 845eda01b..d35bf8338 100644
--- a/keyboards/infinity_chibios/infinity_chibios.c
+++ b/keyboards/whitefox/whitefox.c
@@ -14,4 +14,4 @@ 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/>.
*/
-#include "infinity_chibios.h"
+#include "whitefox.h"
diff --git a/keyboards/whitefox/whitefox.h b/keyboards/whitefox/whitefox.h
new file mode 100644
index 000000000..3b3c6bd21
--- /dev/null
+++ b/keyboards/whitefox/whitefox.h
@@ -0,0 +1,54 @@
+/*
+Copyright 2014 Jun Wako <wakojun@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 WHITEFOX_H
+#define WHITEFOX_H
+
+#include "quantum.h"
+
+/* WhiteFox
+ * ,---------------------------------------------------------------.
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|Ins|
+ * |---------------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs|Del|
+ * |---------------------------------------------------------------|
+ * |CapsL | A| S| D| F| G| H| J| K| L| ;| '|Enter |PgU|
+ * |---------------------------------------------------------------|
+ * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD|
+ * |---------------------------------------------------------------|
+ * |Ctrl|Gui |Alt | Space |App |Alt |Gui | |Lef|Dow|Rig|
+ * `---------------------------------------------------------------'
+ */
+
+#define KEYMAP( \
+ K00, K10, K20, K30, K40, K50, K60, K70, K80, K01, K11, K21, K31, K41, K51, K61, \
+ K71, K81, K02, K12, K22, K32, K42, K52, K62, K72, K82, K03, K13, K23, K33, \
+ K43, K53, K63, K73, K83, K04, K14, K24, K34, K44, K54, K64, K74, K84, K05, \
+ K15, K25, K35, K45, K55, K65, K75, K85, K06, K16, K26, K36, K46, K56, K66, \
+ K76, K86, K07, K17, K27, K37, K47, K57, K67, K77 \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07 }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17 }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27 }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37 }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47 }, \
+ { K50, K51, K52, K53, K54, K55, K56, K57 }, \
+ { K60, K61, K62, K63, K64, K65, K66, K67 }, \
+ { K70, K71, K72, K73, K74, K75, K76, K77 }, \
+ { K80, K81, K82, K83, K84, K85, K86, KC_NO } \
+}
+
+#endif
diff --git a/keyboards/xd60/Makefile b/keyboards/xd60/Makefile
new file mode 100644
index 000000000..57b2ef62e
--- /dev/null
+++ b/keyboards/xd60/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif
diff --git a/keyboards/xd60/config.h b/keyboards/xd60/config.h
new file mode 100644
index 000000000..4bbaec882
--- /dev/null
+++ b/keyboards/xd60/config.h
@@ -0,0 +1,79 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER XIUDI
+#define PRODUCT XD60v2
+#define DESCRIPTION XD60 v2 Keyboard PCB by XIUDI
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
+#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
+#define UNUSED_PINS
+
+/* Backlight Setup */
+#define BACKLIGHT_PIN F5
+#define BACKLIGHT_LEVELS 6
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCING_DELAY 5
+
+/* RGB Underglow
+ * F6 PIN for XD60v2 that has pre-soldered WS2812 LEDs
+ */
+#define RGB_DI_PIN F6
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 6 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
+/* 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 magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+#endif
diff --git a/keyboards/xd60/keymaps/default/keymap.c b/keyboards/xd60/keymaps/default/keymap.c
new file mode 100644
index 000000000..11be9afca
--- /dev/null
+++ b/keyboards/xd60/keymaps/default/keymap.c
@@ -0,0 +1,46 @@
+#include "xd60.h"
+#include "action_layer.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ // 0: Base Layer
+ KEYMAP(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
+ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, \
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT),
+
+ // 1: Function Layer
+ KEYMAP(
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \
+ KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
+ KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \
+ KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, KC_INS, \
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_HOME, KC_PGDOWN,KC_END),
+
+};
+
+// Custom Actions
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay
+};
+
+// Macros
+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;
+};
+
+// Loop
+void matrix_scan_user(void) {
+ // Empty
+};
diff --git a/keyboards/xd60/keymaps/default/readme.md b/keyboards/xd60/keymaps/default/readme.md
new file mode 100644
index 000000000..d2a87bd72
--- /dev/null
+++ b/keyboards/xd60/keymaps/default/readme.md
@@ -0,0 +1,9 @@
+# Default Keymap for XIUDI's 60% XD60 PCB
+
+![Default Keymap for XD60](https://img.alicdn.com/imgextra/i1/1713761720/TB2K0gTalPxQeBjy1XcXXXHzVXa_!!1713761720.png)
+
+## Additional Notes
+Default Keymap for XD60 as indicated on the original sale page.
+
+## Build
+To build the default keymap, simply run `make xd60-default`.
diff --git a/keyboards/xd60/keymaps/stanleylai/keymap.c b/keyboards/xd60/keymaps/stanleylai/keymap.c
new file mode 100644
index 000000000..feb2cd1b6
--- /dev/null
+++ b/keyboards/xd60/keymaps/stanleylai/keymap.c
@@ -0,0 +1,55 @@
+#include "xd60.h"
+#include "action_layer.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ // 0: Base Layer
+ KEYMAP(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
+ F(0), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
+ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, F(1), KC_UP, KC_DEL, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT),
+
+ // 1: Function Layer
+ KEYMAP(
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \
+ KC_CAPS, KC_MPRV, KC_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, \
+ F(0), KC_LEFT, KC_DOWN, KC_RIGHT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, \
+ KC_LSFT, KC_NO, KC_VOLD, KC_MUTE, KC_VOLU,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_INS, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_MPLY, KC_RGUI, KC_RALT, KC_HOME, KC_PGDOWN,KC_END),
+
+ // 2: RGB Layer
+ KEYMAP(
+ KC_NO, BL_TOGG, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
+ KC_NO, RGB_TOG, RGB_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
+ KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
+ KC_NO, KC_NO, RGB_HUD, RGB_SAD, RGB_VAD,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, F(1), KC_NO, KC_NO, \
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO),
+
+};
+
+// Custom Actions
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_MOMENTARY(1), // to Function Layer
+ [1] = ACTION_LAYER_MOMENTARY(2), // to RGB Layer
+};
+
+// Macros
+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;
+};
+
+// Loop
+void matrix_scan_user(void) {
+ // Empty
+};
diff --git a/keyboards/xd60/readme.md b/keyboards/xd60/readme.md
new file mode 100644
index 000000000..224498caa
--- /dev/null
+++ b/keyboards/xd60/readme.md
@@ -0,0 +1,17 @@
+# QMK Firmware for XIUDI's 60% XD60 PCB
+
+![Top View of a pair of XD60 Keyboard](./xd60.JPG)
+
+## Quantum MK Firmware
+For the full Quantum feature list, see [the parent readme.md](/readme.md).
+
+## Additional Notes
+The XD60 is essentially a GH60 rev. C, with support for a right-hand arrow cluster. Includes full compatibility with GH60 expansion boards. Board also supports in-switch LEDs (two-pin, single colour), as well as WS2182 LED strips for underglow lighting. Default keymap included, matching configuration on sale page.
+
+Version 2 PCBs include 6 soldered on RGB underglow LEDs on the bottom, and are labelled "XD60v2" on the top. They are otherwise identical to v1 PCBs.
+
+## Known Issues
+In-switch backlight LEDs seem to only support 1 brightness level.
+
+## Build
+To build the default keymap, simply run `make xd60-default`.
diff --git a/keyboards/xd60/rules.mk b/keyboards/xd60/rules.mk
new file mode 100644
index 000000000..174c3ec84
--- /dev/null
+++ b/keyboards/xd60/rules.mk
@@ -0,0 +1,65 @@
+# MCU name
+# MCU = at90usb1287
+MCU = atmega32u4
+
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+# LUFA specific
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/xd60/xd60.c b/keyboards/xd60/xd60.c
new file mode 100644
index 000000000..4307f5f59
--- /dev/null
+++ b/keyboards/xd60/xd60.c
@@ -0,0 +1,25 @@
+#include "xd60.h"
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ xd60_caps_led_on();
+ } else {
+ xd60_caps_led_off();
+ }
+
+ // if (usb_led & (1<<USB_LED_NUM_LOCK)) {
+ // xd60_esc_led_on();
+ // } else {
+ // xd60_esc_led_off();
+ // }
+
+ // if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
+ // xd60_fn_led_on();
+ // } else {
+ // xd60_fn_led_off();
+ // }
+
+ led_set_user(usb_led);
+}
diff --git a/keyboards/xd60/xd60.h b/keyboards/xd60/xd60.h
new file mode 100644
index 000000000..dd5f63c0c
--- /dev/null
+++ b/keyboards/xd60/xd60.h
@@ -0,0 +1,37 @@
+#ifndef XD60_H
+#define XD60_H
+
+#include "quantum.h"
+#include "led.h"
+
+/* XD60 LEDs
+ * GPIO pads
+ * 0 F7 not connected
+ * 1 F6 RGB PWM Underglow
+ * 2 F5 Backlight LED
+ * 3 F4 not connected
+ * B2 Capslock LED
+ * B0 not connected
+ */
+inline void xd60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
+inline void xd60_bl_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); }
+
+inline void xd60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
+inline void xd60_bl_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); }
+
+/* XD60 Keymap Definition Macro */
+#define KEYMAP( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K47, K3D, K3C, \
+ K40, K41, K42, K45, K4A, K4B, K48, K4C, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
+ { K40, K41, K42, KC_NO,KC_NO,K45, KC_NO,K47, K48, K49, K4A, K4B, K4C, K4D } \
+}
+
+#endif
diff --git a/keyboards/xd60/xd60.jpg b/keyboards/xd60/xd60.jpg
new file mode 100644
index 000000000..11654f0fd
--- /dev/null
+++ b/keyboards/xd60/xd60.jpg
Binary files differ