summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/Makefile7
-rwxr-xr-xkeyboards/handwired/promethium/keymaps/priyadi/flash.sh1
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/keymap.c158
-rw-r--r--keyboards/handwired/promethium/promethium.h108
-rw-r--r--keyboards/handwired/promethium/rules.mk2
-rw-r--r--keyboards/lets_split/imgs/letssplitv2.svg5809
-rw-r--r--keyboards/maxipad/Makefile2
-rw-r--r--keyboards/maxipad/config.h88
-rw-r--r--keyboards/maxipad/keymaps/default/Makefile21
-rw-r--r--keyboards/maxipad/keymaps/default/config.h8
-rw-r--r--keyboards/maxipad/keymaps/default/keymap.c40
-rw-r--r--keyboards/maxipad/keymaps/default/readme.md1
-rw-r--r--keyboards/maxipad/maxipad.c29
-rw-r--r--keyboards/maxipad/maxipad.h12
-rw-r--r--keyboards/maxipad/readme.md11
-rw-r--r--keyboards/maxipad/rules.mk23
-rw-r--r--keyboards/planck/planck.c2
-rw-r--r--keyboards/planck/rules.mk2
-rw-r--r--readme.md5
-rw-r--r--tmk_core/common.mk4
-rw-r--r--tmk_core/common/raw_hid.h8
-rw-r--r--tmk_core/protocol/lufa/descriptor.c87
-rw-r--r--tmk_core/protocol/lufa/descriptor.h35
-rw-r--r--tmk_core/protocol/lufa/lufa.c94
-rw-r--r--tmk_core/protocol/ps2_mouse.c52
-rw-r--r--tmk_core/protocol/ps2_mouse.h49
26 files changed, 6329 insertions, 329 deletions
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/Makefile b/keyboards/handwired/promethium/keymaps/priyadi/Makefile
index 2f6f27a732..46fdfa0118 100644
--- a/keyboards/handwired/promethium/keymaps/priyadi/Makefile
+++ b/keyboards/handwired/promethium/keymaps/priyadi/Makefile
@@ -4,16 +4,17 @@
# 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)
+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
+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
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/flash.sh b/keyboards/handwired/promethium/keymaps/priyadi/flash.sh
index fb81a54ee0..14a3b43789 100755
--- a/keyboards/handwired/promethium/keymaps/priyadi/flash.sh
+++ b/keyboards/handwired/promethium/keymaps/priyadi/flash.sh
@@ -1,3 +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
index b2da2f97b7..bf797a7491 100644
--- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c
+++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c
@@ -11,6 +11,8 @@
#include "process_unicode.h"
#include "quantum.h"
#include "rgbsps.h"
+#include "ps2_mouse.h"
+#include "ps2.h"
#define COUNT(x) (sizeof (x) / sizeof (*(x)))
// #define RGBLED_NUM 5
@@ -282,25 +284,25 @@ void led_layer_func(void) {
rgbsps_set(LED_K, 15, 0, 15);
rgbsps_set(LED_L, 15, 0, 15);
- rgbsps_set(LED_U, 15, 0, 10);
- rgbsps_set(LED_O, 15, 0, 10);
- rgbsps_set(LED_COMM, 15, 0, 10);
- rgbsps_set(LED_DOT, 15, 0, 10);
- rgbsps_set(LED_SCLN, 15, 0, 10);
- rgbsps_set(LED_P, 15, 0, 10);
-
- rgbsps_set(LED_Q, 10, 0, 15);
- rgbsps_set(LED_W, 10, 0, 15);
- rgbsps_set(LED_E, 10, 0, 15);
- rgbsps_set(LED_R, 10, 0, 15);
- rgbsps_set(LED_A, 10, 0, 15);
- rgbsps_set(LED_S, 10, 0, 15);
- rgbsps_set(LED_D, 10, 0, 15);
- rgbsps_set(LED_F, 10, 0, 15);
- rgbsps_set(LED_Z, 10, 0, 15);
- rgbsps_set(LED_X, 10, 0, 15);
- rgbsps_set(LED_C, 10, 0, 15);
- rgbsps_set(LED_V, 10, 0, 15);
+ rgbsps_set(LED_U, 15, 0, 0);
+ rgbsps_set(LED_O, 15, 0, 0);
+ rgbsps_set(LED_COMM, 15, 0, 0);
+ rgbsps_set(LED_DOT, 15, 0, 0);
+ rgbsps_set(LED_SCLN, 15, 0, 0);
+ rgbsps_set(LED_P, 15, 0, 0);
+
+ rgbsps_set(LED_Q, 0, 15, 0);
+ rgbsps_set(LED_W, 0, 15, 0);
+ rgbsps_set(LED_E, 0, 15, 0);
+ rgbsps_set(LED_R, 0, 15, 0);
+ rgbsps_set(LED_A, 0, 15, 0);
+ rgbsps_set(LED_S, 0, 15, 0);
+ rgbsps_set(LED_D, 0, 15, 0);
+ rgbsps_set(LED_F, 0, 15, 0);
+ rgbsps_set(LED_Z, 0, 15, 0);
+ rgbsps_set(LED_X, 0, 15, 0);
+ rgbsps_set(LED_C, 0, 15, 0);
+ rgbsps_set(LED_V, 0, 15, 0);
rgbsps_send();
}
@@ -361,7 +363,15 @@ void led_layer_num(void) {
}
void led_layer_emoji(void) {
- rgbsps_setall(15, 15, 0);
+ for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) {
+ rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 15, 15, 0);
+ }
+ for(uint8_t i = 0; i < COUNT(LED_MODS); i++) {
+ rgbsps_set(pgm_read_byte(&LED_MODS[i]), 15, 15, 0);
+ }
+ for(uint8_t i = 0; i < COUNT(LED_FN); i++) {
+ rgbsps_set(pgm_read_byte(&LED_FN[i]), 15, 15, 0);
+ }
rgbsps_set(LED_IND_FUNC, 0, 0, 0);
rgbsps_set(LED_IND_NUM, 0, 0, 0);
@@ -722,4 +732,110 @@ void shutdown_user()
stop_all_notes();
}
-#endif \ No newline at end of file
+#endif
+
+
+void ps2_mouse_init_user() {
+ // set TrackPoint sensitivity
+ PS2_MOUSE_SEND(0xE2, "set trackpoint sensitivity: 0xE2");
+ PS2_MOUSE_SEND(0x81, "set trackpoint sensitivity: 0x81");
+ PS2_MOUSE_SEND(0x4A, "set trackpoint sensitivity: 0x4A");
+ PS2_MOUSE_SEND(0x60, "set trackpoint sensitivity: 0x60");
+
+ // set TrackPoint speed
+ // (transfer function upper plateau speed)
+ PS2_MOUSE_SEND(0xE2, "set trackpoint speed: 0xE2");
+ PS2_MOUSE_SEND(0x81, "set trackpoint speed: 0x81");
+ PS2_MOUSE_SEND(0x60, "set trackpoint speed: 0x60");
+ PS2_MOUSE_SEND(0x90, "set trackpoint speed: 0x90");
+
+ // set TrackPoint Negative Inertia factor
+ PS2_MOUSE_SEND(0xE2, "set negative inertia factor: 0xE2");
+ PS2_MOUSE_SEND(0x81, "set negative inertia factor: 0x81");
+ PS2_MOUSE_SEND(0x4D, "set negative inertia factor: 0x4D");
+ PS2_MOUSE_SEND(0x03, "set negative inertia factor: 0x03");
+
+ // disable up threshold (click)
+ PS2_MOUSE_SEND(0xE2, "set disable up threshold: 0xE2");
+ PS2_MOUSE_SEND(0x47, "set disable up threshold: 0x47");
+ PS2_MOUSE_SEND(0x2C, "set disable up threshold: 0x2C");
+ PS2_MOUSE_SEND(0x01, "set disable up threshold: 0x01");
+
+ // enable TrackPoint Press to Select (PtS)
+ // print("ps2_mouse_init: send 0xE2: ");
+ // rcv = ps2_host_send(0xE2);
+ // phex(rcv); phex(ps2_error); print("\n");
+ // print("ps2_mouse_init: send 0x47: ");
+ // rcv = ps2_host_send(0x47);
+ // phex(rcv); phex(ps2_error); print("\n");
+ // print("ps2_mouse_init: send 0x2C: ");
+ // rcv = ps2_host_send(0x2C);
+ // phex(rcv); phex(ps2_error); print("\n");
+ // print("ps2_mouse_init: send 0x00: ");
+ // rcv = ps2_host_send(0x00);
+ // phex(rcv); phex(ps2_error); print("\n");
+
+ // set TrackPoint Press to Select threshold
+ // print("ps2_mouse_init: send 0xE2: ");
+ // rcv = ps2_host_send(0xE2);
+ // phex(rcv); phex(ps2_error); print("\n");
+ // print("ps2_mouse_init: send 0x81: ");
+ // rcv = ps2_host_send(0x81);
+ // phex(rcv); phex(ps2_error); print("\n");
+ // print("ps2_mouse_init: send 0x5C: ");
+ // rcv = ps2_host_send(0x5C);
+ // phex(rcv); phex(ps2_error); print("\n");
+ // // default PtS threshold is 0x08
+ // print("ps2_mouse_init: send 0x04: ");
+ // rcv = ps2_host_send(0x04);
+ // phex(rcv); phex(ps2_error); print("\n");
+
+ // set TrackPoint Press to Select time constant (zTc)
+ // print("ps2_mouse_init: send 0xE2: ");
+ // rcv = ps2_host_send(0xE2);
+ // phex(rcv); phex(ps2_error); print("\n");
+ // print("ps2_mouse_init: send 0x81: ");
+ // rcv = ps2_host_send(0x81);
+ // phex(rcv); phex(ps2_error); print("\n");
+ // print("ps2_mouse_init: send 0x5E: ");
+ // rcv = ps2_host_send(0x5E);
+ // phex(rcv); phex(ps2_error); print("\n");
+ // // default zTc is 0x26
+ // print("ps2_mouse_init: send 0x45: ");
+ // rcv = ps2_host_send(0x45);
+ // phex(rcv); phex(ps2_error); print("\n");
+
+ /*
+ // set TrackPoint Press to Select Jenks Curvature (jkcur)
+ print("ps2_mouse_init: send 0xE2: ");
+ rcv = ps2_host_send(0xE2);
+ phex(rcv); phex(ps2_error); print("\n");
+ print("ps2_mouse_init: send 0x81: ");
+ rcv = ps2_host_send(0x81);
+ phex(rcv); phex(ps2_error); print("\n");
+ print("ps2_mouse_init: send 0x5D: ");
+ rcv = ps2_host_send(0x5D);
+ phex(rcv); phex(ps2_error); print("\n");
+ // default jkcur is 0x87
+ print("ps2_mouse_init: send 0x87: ");
+ rcv = ps2_host_send(0x87);
+ phex(rcv); phex(ps2_error); print("\n");
+ */
+
+ /*
+ // set TrackPoint Minimum Drag (mindrag)
+ print("ps2_mouse_init: send 0xE2: ");
+ rcv = ps2_host_send(0xE2);
+ phex(rcv); phex(ps2_error); print("\n");
+ print("ps2_mouse_init: send 0x81: ");
+ rcv = ps2_host_send(0x81);
+ phex(rcv); phex(ps2_error); print("\n");
+ print("ps2_mouse_init: send 0x59: ");
+ rcv = ps2_host_send(0x59);
+ phex(rcv); phex(ps2_error); print("\n");
+ // default PtS mindrag is 0x14
+ print("ps2_mouse_init: send 0x14: ");
+ rcv = ps2_host_send(0x14);
+ phex(rcv); phex(ps2_error); print("\n");
+ */
+} \ No newline at end of file
diff --git a/keyboards/handwired/promethium/promethium.h b/keyboards/handwired/promethium/promethium.h
index 8f2a8c3be2..662eeab990 100644
--- a/keyboards/handwired/promethium/promethium.h
+++ b/keyboards/handwired/promethium/promethium.h
@@ -23,77 +23,77 @@
}
enum led_sequence {
- LED_IND_EMOJI,
- LED_IND_NUM,
- LED_IND_FUNC,
-
- LED_IND_BATTERY,
- LED_IND_USB,
LED_IND_BLUETOOTH,
+ LED_IND_USB,
+ LED_IND_BATTERY,
- LED_TAB,
- LED_ESC,
- LED_LSFT,
- LED_LCTL,
-
- LED_LGUI,
- LED_Z,
- LED_A,
- LED_Q,
+ LED_IND_FUNC,
+ LED_IND_NUM,
+ LED_IND_EMOJI,
- LED_W,
- LED_S,
- LED_X,
- LED_LALT,
+ LED_BKSP,
+ LED_ENT,
+ LED_RSFT,
+ LED_RCTL,
- LED_PUNC,
- LED_C,
- LED_D,
- LED_E,
+ LED_RGUI,
+ LED_SLSH,
+ LED_SCLN,
+ LED_P,
- LED_R,
- LED_F,
- LED_V,
- LED_NUM,
+ LED_O,
+ LED_L,
+ LED_DOT,
+ LED_RALT,
- LED_LSPC,
- LED_B,
- LED_G,
- LED_T,
+ LED_EMOJI,
+ LED_COMM,
+ LED_K,
+ LED_I,
- LED_TRACKPOINT1,
- LED_TRACKPOINT2,
- LED_TRACKPOINT3,
+ LED_U,
+ LED_J,
+ LED_M,
+ LED_FUNC,
LED_RSPC,
LED_N,
LED_HH,
LED_Y,
- LED_U,
- LED_J,
- LED_M,
- LED_FUNC,
+ LED_TRACKPOINT3,
+ LED_TRACKPOINT2,
+ LED_TRACKPOINT1,
- LED_EMOJI,
- LED_COMM,
- LED_K,
- LED_I,
+ LED_LSPC,
+ LED_B,
+ LED_G,
+ LED_T,
- LED_O,
- LED_L,
- LED_DOT,
- LED_RALT,
+ LED_R,
+ LED_F,
+ LED_V,
+ LED_NUM,
- LED_RGUI,
- LED_SLSH,
- LED_SCLN,
- LED_P,
+ LED_PUNC,
+ LED_C,
+ LED_D,
+ LED_E,
- LED_BKSP,
- LED_ENT,
- LED_RSFT,
- LED_RCTL
+ LED_W,
+ LED_S,
+ LED_X,
+ LED_LALT,
+
+ LED_LGUI,
+ LED_Z,
+ LED_A,
+ LED_Q,
+
+ LED_TAB,
+ LED_ESC,
+ LED_LSFT,
+ LED_LCTL,
};
#endif
diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk
index 0842780cce..891f523c22 100644
--- a/keyboards/handwired/promethium/rules.mk
+++ b/keyboards/handwired/promethium/rules.mk
@@ -61,7 +61,7 @@ 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
+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
diff --git a/keyboards/lets_split/imgs/letssplitv2.svg b/keyboards/lets_split/imgs/letssplitv2.svg
new file mode 100644
index 0000000000..c7bb1db86c
--- /dev/null
+++ b/keyboards/lets_split/imgs/letssplitv2.svg
@@ -0,0 +1,5809 @@
+<?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="letssplitv2.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></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"